rabbitMQ基于JMS收发消息

sinat_38366536 2017-07-05 11:15:26
求大神回复!!rabbitMQ怎么基于JMS收发消息??

我们项目本来使用ActiveMQ, 代码写完了,后来领导要求使用rabbitMQ,rabbitMQ收发对象类型消息需要序列化和反序列化,我本人没有使用Spring(领导不让用。。。使用spring貌似是可以不用序列化的),可是我之前写的代码都是基于JMS实现的,在rabbitMQ官网上查询了一下,发现它有JMS的组件, 于是选择用rabbitmq-jms客户端。

我写的ActiveMQ的代码如下:

ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(user, password, url);
connection = (ActiveMQConnection) connectionFactory.createConnection();
Destination destination = initTopic(SubjectManager.RCS_ROBOT_RT);
MessageProducer producer = session.createProducer(destination);
MapMessage rtMQMessage = session.createMapMessage();
rtMQMessage.setLong("robotID", data.getRobotID());
rtMQMessage.setLong("rtTime", System.currentTimeMillis()/1000);
rtMQMessage.setLong("addressCodeID", data.getAddressCodeID());
rtMQMessage.setShort("addressCodeInfoX", data.getAddressCodeInfoX());
//....这里发送消息
producer.send(rtMQMessage);
//....其他省略

rabbitMQ 的例子(官网)如下:

private static final String EXCHANGE_NAME = "topic_logs";

public static void main(String[] argv)
throws Exception {

ConnectionFactory factory = new ConnectionFactory();
factory.setHost("192.168.1.201");
factory.setUsername("guest");
factory.setPassword("guest");
Connection connection = factory.newConnection();
Channel channel = connection.createChannel();

//设置转发器名称 类型
channel.exchangeDeclare(EXCHANGE_NAME, "topic");

String routingKey = getRouting(argv);
String message = getMessage(argv);

channel.basicPublish(EXCHANGE_NAME, routingKey, null, message.getBytes());
System.out.println(" [x] Sent '" + routingKey + "':'" + message + "'");

connection.close();
}
...全文
247 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

50,528

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧