Quick start
在 ~/.bashrc 配置
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home
并使之生效 source ~/.bashrc
。
- 启动 nameserver
nohup sh bin/mqnamesrv &
tail -f ~/logs/rocketmqlogs/namesrv.log
- 启动broker
nohup sh bin/mqbroker -n localhost:9876 &
tail -f ~/logs/rocketmqlogs/broker.log
- 收发消息demo
先配置 ~/.bash_profile
export NAMESRV_ADDR=localhost:9876
source ~/.bash_profile
发消息
sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer
收消息
sh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer
也可以直接看给的官方的源代码的demo:
rocketmq-all-4.3.0/example/src/main/java/org/apache/rocketmq/example/quickstart/Consumer.java rocketmq-all-4.3.0/example/src/main/java/org/apache/rocketmq/example/quickstart/Producer.java
需要修改代码加上 nameserver 的地址,再运行。
consumer.setNamesrvAddr("127.0.0.1:9876");
producer.setNamesrvAddr("127.0.0.1:9876");
- 关闭server
sh bin/mqshutdown broker
sh bin/mqshutdown namesrv
Simple Message Example
RocketMQ 发消息的三种方式:
- reliable synchronous
- reliable asynchronous
- one-way
Order Message
RocketMQ 支持有序的消息,这个顺序是 FIFO
Architecture
NameServer Cluster
服务发现和路由
- 接收Broker的注册并通过心跳机制来检查Broker是否存活
- 每个nameserver都包含Broker集群的全部路由信息,以及clients的查询队列
Broker Cluster
消息存储。有 Topic 和 Queue 两种机制。支持 push/pull 模型。有容错机制…
参考
- http://rocketmq.apache.org/