现在的位置: 首页 > 综合 > 正文

消息总线-实时系统中的动脉

2013年07月26日 ⁄ 综合 ⁄ 共 560字 ⁄ 字号 评论关闭

       在大型的实时监控系统中,网络或进程间之间常常需要通讯。过去有些文章用软总线概念描述,其实基本道理和实现方法上基本相似。在每个参与消息处理的进程,自己都有一个消息池,并且有一个消息泵传递和接收各个网络节点的信息。消息池是一个环形内存池,各个关系消息的进程,要及时从消息池中获取信息,否则超时将将作为失效信息处理。

       在封装消息总线对象模板时,要考虑异构平台的字节顺序问题,防止数字出现的对齐问题,否则将无法解析总线上的消息。为了同时相应N个节点信息传递,消息总线还要考虑TCP的长连接线程池,以及TCP短连接的及时性。

       消息总线对于各个节点是透明的,在发送内容上形成基本两种类型,一种是针对特种服务类型的节点,一种是广播式的节点类型。在消息总线报文头中,可以自定义一些规则,像MFC消息机制中自定义消息中加上消息的ID,在定义这些消息身份标号时,要确定各个节点的一致性和唯一性,同时每个节点要形成共识,确保消息传递的内容有头发送,有尾接收。

       附加信息加入到消息总线报文头,如把发送节点的进程号以及时标等,更能让接收邮件的节点知道具体节点上的位置信息,同时也知道是属于哪个进程的声音。有了消息总线的出现,在分布式系统发布信息时,给特定类型的节点传递信息,将变得轻松而自然,简单而明晰。

抱歉!评论已关闭.