封装rabbitmq

2017-03-03  本文已影响0人  vivi_wong

实际上,引用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);

上一篇 下一篇

猜你喜欢

热点阅读