最近对公司实现分布服务,然后通过ActiveMQ发送消息,消息我是封装到一个实现了序列化的对象里面通过发送ObjectMessage来发送,在接收的时候发现虽然只发送了一个消息,但是在Listener的日志里面看到似乎消息被接收了N次,但是看发送端的Log,消息确实只发送了一次,而且另外一个代码分支发送同样的类的实例,却是正常的,后来看了一下,在出错的代码分支里面,类实例里面的一个变量没有设值,设置了值以后就好了。如下:
本文探讨了使用ActiveMQ发送序列化对象时遇到的消息重复问题。问题出现在特定代码分支中,当对象实例的一个变量未设置值时,接收到的消息数量异常增多。通过设置该变量的值,问题得以解决。
最近对公司实现分布服务,然后通过ActiveMQ发送消息,消息我是封装到一个实现了序列化的对象里面通过发送ObjectMessage来发送,在接收的时候发现虽然只发送了一个消息,但是在Listener的日志里面看到似乎消息被接收了N次,但是看发送端的Log,消息确实只发送了一次,而且另外一个代码分支发送同样的类的实例,却是正常的,后来看了一下,在出错的代码分支里面,类实例里面的一个变量没有设值,设置了值以后就好了。如下:
521
692
980
3547

被折叠的 条评论
为什么被折叠?