自娱自乐
RocketMQ与其他的消息中间件对比具有很明显的有事,最大的特点就是吞吐量巨大,以及毫秒级别的推送深受广大推荐。
直接上代码,看代码理解
基于项目使用,特地配置化操作
Yml:
rocketmq: name-server: 集群地址
producer: access-key: 项目
secret-key: 项目
push-consumer: access-key: 项目 secret-key: 项目
1、由于每个项目的topic以及分组、tag等都有很多 因此可以写在配置中实时读取,以上均为写,因为在代码中有写死操作
2.本文仅仅以发送同步详细,异步消息,异步回调函数消息,事务消息,作为示例
代码篇
1.发送消息基类
package com.databus.data.tests;
import org.apache.rocketmq.client.exception.MQBrokerException;
import org.apache.rocketmq.client.exception.MQClientException;
import org.apache.rocketmq.remoting.exception.RemotingException;
/**
* 消息发送基类 每个生产者 都继承本类,重写发送
* @author xm
*/
public interface RocketMqEngine<T,U> {
/**
* 同步发送
* @param t
*/
void send(T t) throws MQBrokerException, RemotingException, InterruptedException, MQClientException;
/**
* 异步发送
* @param t
*/
void asyncSend(T t);
/**
* 异步发送
* @param t
*/
void syncSend(T t);
/**
*
* @param t 消息体BODY
* @param u 本地事务处理DATA
* @throws MQBrokerException 异常类型
* @throws RemotingException 异常类型
* @throws InterruptedException 异常类型
* @throws MQClientException 异常类型
*/
void sendTransaction(T t,U u)