首先上一张rocketmq的架构图:
Rocket主要使用两个组件:Name Server和Broker。
Name Server:mq的寻址服务。用于把mq的Broker路由信息做聚合。客户端通过name server去获取topic的路由信息,从而决定对哪些Broker做连接。nameserver是无状态的,互相之间不通信息,客户端寻找nameserver是,随机选一个进行连接,nameserver中所有状态都由Broker上报。
Broker:用于消息存储、转发。主从架构,同步策略可以配置。Broker向所有name server建立长连接,注册topic信息。
发送消息需要构造一个Producer,阿里云文档给出了示例:
Properties properties = new Properties();
// AccessKey 阿里云身份验证,在阿里云服务器管理控制台创建
properties.put(PropertyKeyConst.AccessKey,"XXX");
// SecretKey 阿里云身份验证,在阿里云服务器管理控制台创建
properties.put(PropertyKeyConst.SecretKey, "XXX");
//设置发送超时时间,单位毫秒
properties.setProperty(PropertyKeyConst.SendMsgTimeoutMillis, "3000");
// 设置 TCP 接入域名,进入控制台的实例管理页面的“获取