封装rabbitmq

实际上,引用spring-rabbitmq, 可以使用rabbitmqtemplate

但如果直接用rabbitmq 的话,日后改别的 mq方式,就难了。

所以,在抽象出属于自己想买的一层mq

sender

接口 MessageSender send(Message message)

实现类 MessageSenderFactory 

在里面注入rabbitmqTemplate ,还有messagecoverter,写一个内部实现messagesender接口的类,复写send()

里面用到 TransactionSynchronizationManager.isSynchronizationActive()

TransactionSynchronizationManager.registerSynchronization(newTransactionSynchronizationAdapter() {})


listener

抽象类AbstractMessageListener

实现接口 MessageListener InitializingBean

复写  onmessage(message)

特别提下 

FixedBackOffPolicy  RetryTemplate

重试机制

写业务类继承AbstractMessageListener 复写 onmessage(message)


messagecoverter

KryoMessageConverter 实现messagecoverter

复写 frommessge  tomessage

用到  KryoPool

kryo=kryoPool.borrow();

kryo.register(com.xx.message.class);

kryo.readObject(new Input(), message)

kryo=kryoPool.borrow();

Output o=newOutput(1024,-1);

kryo.writeObject(o,object);

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容