免费起名网最好的网站,以公司做网站,用jsp做的汽车网站,大型门户网站建设包括哪些方面目录 RocketMQ概述MQ概述常见的MQ产品常见的协议 Rocket的安装和启动基本概念系统架构安装RocketMQ和控制台 RocketMQ概述
MQ概述
Message Queue#xff1a;是提供消息队列服务的中间件#xff0c;提供消息生产#xff0c;存储#xff0c;消费的全过程。 作用#xff1a… 目录 RocketMQ概述MQ概述常见的MQ产品常见的协议 Rocket的安装和启动基本概念系统架构安装RocketMQ和控制台 RocketMQ概述
MQ概述
Message Queue是提供消息队列服务的中间件提供消息生产存储消费的全过程。 作用限流削峰异步解耦。
常见的MQ产品
ActiveMQ早期产品使用Java开发的 RabbitMQ吞吐量比kafuka和RocketMQ低不是Java开发ErLang定制开发难度大 Kafuka高吞吐量常用于大数据领域实时计算和日志收集采用Scala/Java开发采用自研协议 RocketMQ阿里巴巴产品经过多年双十一检验使用Java开发
常见的协议 JMSJava Messaging Service (Java消息服务)。是Java平台上有关MOM(的技术规范它便于消息系统中的Java应用程序进行消息交换并且通过提供标准的产生、发送、接收消息的接口简化企业应用的开发。ActiveMO是该协议的典型实现。 STOMP Streaming Text Orientated Message Protocol是一种MOM设计的简单文本协议。STOMP提供一个可互操作的连接格式允许客户端与任意STOMP消息代理进行交互。ActiveMQ是该协议的典型实现RabbitMO通过插件可以支持该协议。 AMOPAdvanced Message Oueuing Protocol高级消息队列协议,一个提供统一消息服务的应用层标准是应用层协议的一个开放标准是一种MOM设计。基于此协议的客户端与消息中间件可传递消息并不受客户端/中间件不同产品不同开发语言等条件的限制。 RabbitMQ是该协议的典型实现。
Rocket的安装和启动
基本概念
消息Message消息系统所传输信息的物理载体生产和消费数据的最小单位每条消息必须属于一个主题。 主题Topic Topic表示一类消息的集合每个主题包含若干条消息每条消息只能属于一个主题是RocketMQ进行消息订阅的基本单位一个生产者可以同时发送多种Topic的消息;而一个消费者只对某种特定的Topic感兴趣即只可以订阅和消费一种Topic的消息。 队列Queue 存储消息的物理实体。一个Topic中可以包含多个Queue每个Queue中存放的就是该Topic的消息Topic的Queue也被称为一个Topic中消息的分区。一个Topic的Queue中的消息只能被一个消费者组中的一个消费者消费
系统架构
1producer消息生产者负责生产消息。Producer通过MO的负载均衡模块选择相应的Broker集群队列进行消息投递投递的过程支持快速失败并且低延迟。 RocketMQ中的消息生产者都是以生产者组(Producer Group) 的形式出现的。生产者组是同一类生产者的集合这类Producer发送相同Topic类型的消息。 2Consumer消息消费者负责消费消息。一个消息消费者会从Broker服务器中获取到消息并对消息进行相关业务处理。 RocketMO中的消息消费者都是以消费者组 (Consumer Group) 的形式出现的。消费者组是同一类消费者的集合这类Consumer消费的是同一个Topic类型的消息。消费者组使得在消息消费方面实现负载均衡和容错的目标变得非常容易。 3NameServerNameServer是一个Broker与Topic路由的注册中心支持Broker的动态注册与发现。主要包括两个功能
Broker管理: 接受Broker集群的注册信息并且保存下来作为路由信息的基本数据;提供心跳检测机制检查Broker是否还存活。路由信息管理: 每个NameServer中都保存着Broker集群的整个路由信息和用于客户端查询的队列信息。Producer和Conumser通过NameServer可以获取整个Broker集群的路由信息从而进行消息的投递和消费。
安装RocketMQ和控制台
1到官网下载下载 下载地址 下载二进制的 2把这个包放到linux中解压修改bin中的 runserver.shrunbroker.sh
unzip rocketmq-all-5.1.3-bin-release.zip把下面这些内存改小配置文件都看一遍不同版本的配置文件可能不同我这里是已经改好的 3修改conf下broker.conf加上下面两行
namesrvAddr服务器外网IP:9876
brokerIP1服务器外网IP3.5设置密码
创建密码文件 首先你需要创建一个密码文件其中包含用户的用户名和密码。可以使用如下格式创建一个密码文件例如broker-users.properties
# 用户名密码
userApasswordA
userBpasswordB
密码文件放置位置 将创建的密码文件放置在 RocketMQ 的配置目录下一般是 conf 文件夹。Broker 配置 修改 broker.conf 配置文件找到以下配置项并添加对应的值
# 启用密码认证
enablePropertyFiltertrue# 指定密码文件的路径
propertyFile${user.home}/conf/broker-users.properties
4改完之后 看官网教程往下走就行 官网教程注意启动broker的时候执行
nohup sh mqbroker -n localhost:9876 --enable-proxy -c ../conf/broker.conf tail -f nohup.out5安装控制台我是在docker中装的 安装docker教程直接运行的springboot项目太麻烦了 运行如下命令即可
docker run -d --restartalways --name rmqadmin -e JAVA_OPTS-Drocketmq.namesrv.addr你的主机ip:9876 -Dcom.rocketmq.sendMessageWithVIPChannelfalse -p 9800:8080 pangliang/rocketmq-console-ng