常用动静中间件17个维度全方位比拟
客户端平衡算法:
zeromq:去中心化,不支持负载平衡。自己只是一个多线程收集库。 rocketmq:支持负载平衡。 一个broker凡是是一个处事器节点,broker分为master和slave,master和slave存储的数据一样,slave从master同步数据。 nameserver与每个集群成员保持心跳,生涯着Topic-Broker路由信息,统一个topic的行列会漫衍在差异的处事器上。 发送动静通过轮询行列的方法发送,每个行列吸取均匀的动静量。发送动静指定topic、tags、keys,无法指定投递到哪个行列(没故意义,集群斲丧和广播斲丧跟动静存放在哪个行列没有相关)。 tags选填,相同于 Gmail 为每封邮件配置的标签,利便处事器过滤行使。今朝只支 持每个动静配置一个 tag,以是也可以类比为 Notify 的 MessageType 观念。 keys选填,代表这条动静的营业要害词,处事器会按照 keys 建设哈希索引,配置后, 可以在 Console 体系按照 Topic、Keys 来查询动静,因为是哈希索引,请尽也许 担保 key 独一,譬喻订单号,商品 Id 等。 rocketmq的负载平衡计谋划定:Consumer数目应该小于便是Queue数目,假如Consumer高出Queue数目,那么多余的Consumer 将不能斲丧动静。这一点和kafka是同等的,rocketmq会尽也许地为每一个Consumer分派沟通数目的行列,分摊负载。 activemq:支持负载平衡。可以基于zookeeper实现负载平衡。 七 集群方法 Kafka:自然的‘Leader-Slave’无状态集群,每台处事器既是Master也是Slave。 分区首领匀称地漫衍在差异的kafka处事器上,分区副本也匀称地漫衍在差异的kafka处事器上,以是每一台kafka处事器既含有分区首领,同时又含有分区副本,每一台kafka处事器是某一台kafka处事器的Slave,同时也是某一台kafka处事器的leader。 kafka的集群依靠于zookeeper,zookeeper支持热扩展,全部的broker、斲丧者、分区都可以动态插手移除,而无需封锁处事,与不依赖zookeeper集群的mq对比,这是最大的上风。 rabbitmq:支持简朴集群,'复制'模式,对高级集群模式支持欠好。 rabbitmq的每一个节点,不管是单一节点体系可能是集群中的一部门,要么是内存节点,要么是磁盘节点,集群中至少要有一个是磁盘节点。 在rabbitmq集群中建设行列,集群只会在单个节点建设行列历程和完备的行列信息(元数据、状态、内容),而不是在全部节点上建设。 引入镜像行列,可以停止单点妨碍,确保处事的可用性,可是必要工钱地为某些重要的行列设置镜像。 zeromq:去中心化,不支持集群。 rocketmq:常用 多对'Master-Slave' 模式,开源版本需手动切换Slave酿成Master Name Server是一个险些无状态节点,可集群陈设,节点之间无任何信息同步。 Broker陈设相对伟大,Broker分为Master与Slave,一个Master可以对应多个Slave,可是一个Slave只能对应一个Master,Master与Slave的对应相关通过指定沟通的BrokerName,差异的BrokerId来界说,BrokerId为0暗示Master,非0暗示Slave。Master也可以陈设多个。每个Broker与Name Server集群中的全部节点成立长毗连,按时注册Topic信息到全部Name Server。 Producer与Name Server集群中的个中一个节点(随机选择)成立长毗连,按期从Name Server取Topic路由信息,并向提供Topic处事的Master成立长毗连,且按时向Master发送心跳。Producer完全无状态,可集群陈设。 Consumer与Name Server集群中的个中一个节点(随机选择)成立长毗连,按期从Name Server取Topic路由信息,并向提供Topic处事的Master、Slave成立长毗连,且按时向Master、Slave发送心跳。Consumer既可以从Master订阅动静,也可以从Slave订阅动静,订阅法则由Broker设置抉择。 客户端先找到NameServer, 然后通过NameServer再找到 Broker。 一个topic有多个行列,这些行列会匀称地漫衍在差异的broker处事器上。rocketmq行列的观念和kafka的分区观念是根基同等的,kafka统一个topic的分区尽也许地漫衍在差异的broker上,分区副本也会漫衍在差异的broker上。 rocketmq集群的slave会从master拉取数据备份,master漫衍在差异的broker上。 activemq:支持简朴集群模式,好比'主-备',对高级集群模式支持欠好。 八 打点界面
九 可用性
十 动静一再
十一 吞吐量TPS (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |