1. Rocketmq4.x消息队列介绍
1、Apache RocketMQ是阿里开源的一款高性能、高吞吐量的分布式消息中间件
2、特点
1)在高压下1毫秒内响应延迟超过99.6%。
2)适合金融类业务,高可用性跟踪和审计功能。
3)支持发布订阅模型,和点对点
4)支持拉pull和推push两种消息模式
5)单一队列百万消息
6)支持单master节点,多master节点,多master多slave节点
3、基础概念
Producer:消息生产者
Producer Group:消息生产者组,发送同类消息的一个消息生产组
Consumer:消费者
Consumer Group:消费同个消息的多个实例
Tag:标签,子主题(二级分类),用于区分同一个主题下的不同业务的消息
Topic:主题
Message:消息
Broker:MQ程序,接收生产的消息,提供给消费者消费的程序
Name Server:给生产和消费者提供路由信息,提供轻量级的服务发现和路由
中文开发指南:https://github.com/apache/rocketmq/tree/master/docs/cn
4. Rocketmq架构
2. rocketmq下载与安装
http://rocketmq.apache.org/docs/quick-start/
硬件条件:
- 64bit OS, Linux/Unix/Mac is recommended;(Windows user see guide below)
- 64bit JDK 1.8+;
- Maven 3.2.x;
- Git;
- 4g+ free disk for Broker server
下载地址:
http://rocketmq.apache.org/dowloading/releases/ 这里我下载了4.2.0版本:rocketmq-all-4.2.0-bin-release.zip, 上传到linux:
解压后切换属主
以守护进程启动nameserver:
nohup sh mqnamesrv &
Cat nohup.out查看启动信息,可以发现没有启动成功:(参考:https://www.cnblogs.com/rocker-pg/p/9805899.html)
因为虚拟机上的linux堆内存达不到配置文件的默认值: 修改runserver.sh的jvm参数,把堆内存的值改小一些
修改后重新启动:
同理修改runborcker.sh的JVM参数:
启动borcker:
[itcast@promote bin]$ nohup sh mqbroker -n 127.0.0.1:9876 &
查看启动日志,报错,未知的主机名:
修改 /etc/hosts和/etc/sysconfig/network中主机名一致,然后重启虚拟机,再重新启动nameserver 和broker
/etc/sysconfig/network:
3.rocketmq可视化控制台
下载https://github.com/apache/rocketmq-externals 并打包:
mvn clean package -Dmaven.test.skip=true
打包成功后,进入target目录,找到jar包rocketmq-console-ng-1.0.1.jar并启动:
java -jar rocketmq-console-ng-1.0.1.jar,然后访问http://localhost:8080/#/ 就可以看到了