-
Notifications
You must be signed in to change notification settings - Fork 147
最佳实践 Provider
Suclogger edited this page Jul 11, 2017
·
1 revision
- 同一个应用使用同一个pruducerGroup,放在spring配置文件中
- 打印消息日志,务必要打印 sendresult:sync方式重写doAfterSynSend方法,async方法在callback中处理
- 如果不关注消息是否成功发送到broker,使用sendOneWay方法发送消息
- 一个应用尽可能用一个 Topic,消息子类型用 tags 来标识,因为Topic过多会影响Broker性能
你可以全局只继承一次AbstractMQProducer,然后用这个producer发送不同topic和tag的消息:
@MQProducer
class DemoProducerWithTopicAndTag : AbstractMQProducer()
...
@Autowired
DemoProducerWithTopicAndTag yourProducer;
yourProducer.sendOneWay(String topic, String tag, Object msgObj)
因为通常topic是写在配置文件中的,如果维护全局单例的Producer就需要多个地方注入topic,如果你觉得这样比较麻烦,你可以创建多个producer,每个producer专用于发送同一个topic(和Tag)的消息,放心,底层的的producer依然是单例:
@MQProducer(topic = "mytopic", tag = "2")
class DemoProducerWithTopicAndTag : AbstractMQProducer()
...
@Autowired
DemoProducerWithTopicAndTag yourProducer;
yourProducer.sendOneWay(Object msgObj)