解决ActiveMQ的Java客户端与C++客户端之间的通信问题

ActiveMQ对多言语客户端的支持是它的重要特色之一.它支持的客户端语言包括:JAVA,C/C++,.NET,Ruby,Perl等.

在最近的一个项目中使用到了JAVA与C++客户端,涉及到JAVA客户端之间,C++客户端之间以及JAVA与C++客户端之间的通信问题.在实际应用中,发现中文乱码问题,该问题只出现在JAVA与C++客户端之间的收发消息.

ActiveMQ对C++客户端的支持的开源项目叫做CMS,在ActiveMQ的官方网站上有链接.

经分析,造成该问题的根本原因是JAVA与C++编译时采用的字符集不一直造成的.

解决方法:一种是直接编写编码转换器,另外一种是修改CMS的源码.

另外,CMS目前的版本是3.0.1,以前的版本不支持failover这一重要功能.CMS目前支持的通信协议只限于TCP,没有JAVA客户端支持的通信协议广泛.

相关推荐