TIPC简化了集群开发
来源:互联网 发布:java快速开发框架 2017 编辑:程序博客网 时间:2024/06/14 15:52
TIPC是爱立信的某个工程师弄出来的,后来开源了。这段时间我琢磨了一下,觉得这个玩意还真不错。TIPC是Transparent Interprocess Communication的缩写,即是进程间通信的一种协议,之所以冠之以Transparent,透明的,因为它发布了一层更为简洁实用的框架,让使用的人不再需要知道某个进程运行在哪一台机子上,就能够和与这个进程通信。TIPC本质上是用socket实现的,而且现在已经成为linux内核的一部分,足以见得是好东西。 平时我们使用的socket,TCP也好,UDP也好,用来标识一对socket的通信,无非是用两个socket的IP地址和端口号。比如使用UDP的socket,要发一个datagram到另一个socket,需要指定对端的地址,这个地址是由那台机的IP和端口组成。socket是在内核中管理,当内核检测到socket有数据可读时,就会通知拥有这个socket的进程去读取里面的数据。 这里的不方便之处在于,要指定对端地址,我们必须知道这个socket在哪台机,端口是多少,才能发送数据出去。能不能只提供一些应用层的信息,就可以让内核自己去查到socket的位置,再把消息发过去?TIPC做的就是这样的事。使用TIPC,我们在创建socket的时候在内核中注册自己的服务类型service type,那么在发送端,只需要指定服务类型就可以由内核路由到相应的socket。这个时候,对应用层来说,对端地址仅仅是一个服务类型service type!很显然,内核维护着这么一张TIPC的路由表,即由服务去查找socket。而每台机都有这样的路由表,他们之间信息就像能够共享一样地为整个集群的TIPC socket服务。有了TIPC,这个socket使用了哪个IP,那个端口,我们都不再需要知道,很好很强大。 TIPC的其他的特性还有: 1. 有些时候多个进程提供同样的服务,仅仅是为了负载平衡或其他原因,这种情况可以用一个整数变量instance来标识不同socket,但是指定同样的service type。这个时候socket的地址是由service type和instance共同来指定。发送数据时候只需要指定service type和一个instance的值,也可以指定service type和instance的一个区间。对于后者,就是broadcast你的datagram。 2. 管理前面说的TIPC路由表的是内核当中的一个进程叫做name server。它知晓着集群中所有的TIPC socket。在发送datagram给服务某个service的socket之前,你可以向它请求服务这个service的socket是否已经在工作了,它会告诉你service的状态。并且注册了一个observer,当你关心的socket起来之后发消息通知你,这样就可以避免你把datagram发给一个根本不存在的socket。
- TIPC简化了集群开发
- [转]TIPC socket简化了集群开发
- 集群间通信协议——TIPC简介
- TIPC通信协议
- tipc编程
- TIPC 链接
- Flex开发简化了商业智能通过里亚斯
- TIPC配置过程
- tipc协议详解
- TIPC 透明通信协议
- J2EE简化应用开发
- XDoclet简化Struts开发
- 简化开发,易化MDA
- 新标准简化SOA开发
- StrutsTestCase 简化开发过程
- StrutsTestCase 简化开发过程
- PB7简化Web开发
- NSOperationQueue 简化多线程开发
- 建设制作研究咨询行业网站招标!
- 新站做好百度优化必读
- LPSTR、LPCSTR、LPTSTR和LPCTSTR的意义及区别
- 搜索引擎优化一通看网站优化优势
- Ubuntu安装配置samba
- TIPC简化了集群开发
- XXX集团财务决策支持系统概述(系列一)
- 64位Linux并行计算大气模型效率优化研究
- 20091108细节图
- XXX集团财务决策支持系统的起因(系列二)
- 这些话听一遍胜读十年书
- XXX集团财务决策支持系统——现有系统功能(系列三)
- 白领黑皮书————在职场中摸爬滚打的那些事儿
- 百度优化 www.xianfeng365.cn 像大家SEOER致敬