@wxf
2018-05-23T08:19:57.000000Z
字数 2519
阅读 1136
Java工具箱
课程目标:
1.入门
①、为什么需要使用消息中间件
②、消息中间件概述
③、JMS规范
④、JMS代码演练
2.拓展
①、ActiveMQ集群配置
②、消息中间件在大型系统中的最佳实践
③、使用其他消息中间件
通过服务调用让其他系统感知事件发生,如下:
在未使用消息中间件时系统与系统之间的耦合性比较高。
通过消息中间件解耦服务调用
说明:用户登录成功后,登录系统会发送一个消息给消息中间件,此时用户登录信息就可以返回给用户客户端,告诉用户已经登录成功。而与此同时消息中间件会异步发送消息给各个服务系统并由各自系统进行处理。
消息中间件的好处
ActiveMQ | RabbitMQ | Kafka | |
---|---|---|---|
跨语言 | 支持(Java优先) | 语言无关 | 支持(Java优先) |
支持协议 | OpenWire, Stopmp, XMPP, AMQP | AMQP | |
优点 | 遵循JMS规范安装部署方便 | 继承Erlang天生的并发性,最初用于金融行业,稳定性,安全性有保障 | 依赖zk,可动态扩展节点高性能、高吞吐量、无限扩容消息可指定追溯 |
缺点 | 会莫名丢失消息 | Erlang语言难度大,不支持动态扩展 | 严格的顺序机制。不支持消息优先级、不支持标准的消息协议、不利于平台迁移 |
综合评价 | 适合中小企业级消息应用场景,不适合上千个队列的应用场景 | 适合对稳定性要求较高的企业级应用 | 一般应用在大数据日志处理或对实时性,可靠性要求较低的场景使用 |
SingleConnectionFactory
对于建立JMS连接的请求只会返回一个连接;CahingConnectionFactory
继承自SingleConnectionFactory,新增了缓存功能。高可用
,以排除单点故障引起的服务中断负载均衡
,以提升效率为更多客户提供服务实现ActiveMQ集群配置时,客户端同样也需要配置
failover:(uri1,...,uriN)?transportOptions
配置方案原理详解
共享存储集群的原理
基于可复制的LevelDB Store的原理
集群方式对比
高可用 | 负载均衡 | |
---|---|---|
Master Slave | 是 | 否 |
Broker Cluster | 否 | 是 |
那么有没有一种方案既可以做到高可用又可以做到负载均衡呢?
下面我们将针对上面的集群方案进行配置。
配置方案图:
相关推荐:【消息队列 MQ 专栏】RabbitMQ