作者:kan
1. NIMM地址
上篇文章我们介绍了NIMM的架构。今天我们介绍一下NIMM的细节, 包括NIMM地址, NIMM消息分发方式以及NIMM的传输方式。
NIMM地址是由4段组成, 每段都是一个数字:
<Domain ID>:<IDC ID>:<ServerID>:<SocketID>
下面是每段的具体含义:
Domain ID:域ID。长度4B。应用域的编号。一个大型的网站可能多个应用,每个应用一个域,比如news 服务,编号是1; blog 服务,编号是2;
IDC ID:数据中心ID。长度2B。 数据中心的编号。该大型网站可能有多个数据中心。比如北京移动数据中心的编号是1,上海移动数据中心的编号是2;
Server ID: 服务ID。长度2B。同一个程序可能有多个实例运行着,比如说3个,可以将第一个编号为100,第二个编号为101,第三个编号为102;
Socket ID: 套接字ID。长度2B。套接字编号。
2. NIMM 消息分发方式
NIMM的消息分发方式分为三种: Unicast, Anycast, Multicast. 下面分别进行介绍:
Unicast: 单播。发送端只给唯一的一个接收端发送消息;
Anycast: 任播。发送端会给多个接收端发送消息,但是最多只有一个消息接收端会收到消息;
Muliticast: 多播。发送端会给多个接收端发送消息,并且每个接收端都会接收到消息。
通过设置接收端的NIMM地址,发送端就可以决定消息的分发方式:
ServerID 在1~65534之间,表示单播
serverID 为0, 表示任播
serverID为65535,表示多播。
举个例子:
1.1.100.1,是个单播地址
1.1.0.1,是一个任播地址
1.1.65535.1,是一个多播地址
3. NIMM 消息的传输方式
NIMM分别提供了两种传输方式
1) 不可靠传输,又叫NIMM Socket。发送端将消息发送给消息服务器后,消息服务器会将消息发给接收端。也就是说,每个消息的发送,发送端不会收到消息服务器的一个确认消息。类似于TCP/IP协议栈里德UDP协议。
2) 可靠传输,又叫NIMM Session。发送端将消息发送给消息服务器后,消息服务器会将消息发给接收端,接收端收到消息后,会给消息服务器发送一个确认消息,消息服务器再给发送端发送一个确认消息。也就是说,每个消息的发送,发送端都会收到消息服务器的一个确认消息。类似于TCP/IP协议栈里德TCP协议