高性能可伸缩的分布式消息中间件设计

本博客迁移到部署在jae上的独立博客系统wordpress,博客地址:点击打开独立博客。欢迎你们一块儿来讨论IT技术。安全

 

        消息中间件基本上是每个大型互联网公司的标准基础技术组件配置,虽然有不少的开源消息中间件,功能也很强大,可是今天我仍是想介绍一下怎样自主架构与设计并实现一套完整的分布式消息中间件。服务器

        开源的消息中间件或多或少存在一些所谓“坑”,没有遇到你们用得都很happy,遇到的同窗就只有加班查资料、google搜索或者直接review开源代码寻找问题缘由了。还有就是基本上开源的消息中间件通常都是大而全的功能,通常比较强调通用嘛。今天为你们介绍的是能够灵活横向扩展而且具备高性能的分布式消息中间件的架构设计,也会介绍一些实现的关键技术,也可能不少开源软件实现也有一样的功能,因此经过了解这些设计与实现的核心技术,也能够更好的理解和使用开源的消息中间件。网络

1、设计目标

先简单此设计须要达到的一些目标吧:架构

(1)高性能:应该可以充分利用cpu、内存和网卡等资源,一般状况下是把网卡(1000M网卡)撑满;app

(2)消息转发实时性:延迟必须在一个设定目标内(可配置);负载均衡

(3)消息不丢失:正常状况下不丢失(若是因为某一个消息接收到本身网络出现问题致使链接断开丢失的不算,这个须要消息中间件的客户端解决的问题);分布式

(4)能够横向无缝扩展:当一个服务节点服务能力不足时,能够无缝的扩展服务节点,对其余服务节点和全部客户端透明;wordpress

(5)安全性:客户端须要经过用户名和密码才能和服务器创建链接、发送消息和订阅消息等;性能

(6)能够无缝升级系统:程序因为bug或者新增功能等上线是在所不免的,可是不该该影响正常的消息通讯;google

(7)能够无缝缩减服务节点:若是消息转发量不是很大使用过多的节点是资源的浪费(服务器、电费等);

(8)分布式,防单点;

(9)支持分组订阅:这个分组订阅的功能太好使用了,尤为在作任务的负载均衡调度的时候,后面我会用一篇单独的文章介绍基于分布式消息中间件的负载均衡调度系统设计;

 

(10)其余。。。。

 

2、基本架构图

先上图,在解释,以下图:

整个内容请看: www.wuyouqiang.com
相关文章
相关标签/搜索