RocketMQ 介绍与安装
RocketMQ 介绍
MQ 介绍
定义:
MQ(Message Queue,消息队列)是一种用来保存消息数据的队列。
队列:数据结构的一种,特征为“先进先出”。
MQ 作用
应用解耦(技术上必须弄好才能使用 MQ)
快速应用变更维护
流量削锋(削峰填谷)
MQ 缺点
- 系统可用性降低(解决:搭集群)
- 系统复杂度提高(解决:程序员提升水平)
- 异步消息机制(以下都有解决方案)
- 消息时序性
- 消息丢失
- 消息一致性
- 消息重复使用
MQ 常见产品
- ActiveMQ :java 语言实现,万级数据吞吐量,处理速度 ms 级,主从架构,成熟度高。
- RabbitMQ :erlang 语言实现,万级数据吞吐量,处理速度 us 级,主从架构。
- RocketMQ :java 语言实现,十万级数据吞吐量,处理速度 ms 级,分布式架构,功能强大,扩展性强。
- kafka :scala 语言实现,十万级数据吞吐量,处理速度 ms 级,分布式架构,功能较少,应用于大数据较多。
RocketMQ 简介
RocketMQ 是阿里开源的一款非常优秀中间件产品,脱胎于阿里的另一款队列技术 MetaQ,后捐赠给 Apache 基金会作为一款孵化技术,仅仅经历了一年多的时间就成为 Apache 基金会的顶级项目。并且现在已经在阿里内部被广泛应用,且经受住了多次双十一的这种极致场景的压力(2017 年的双十一,RocketMQ 流转的消息量达到了万亿级,峰值 TPS 达到 5600 万)。
同时,它还解决了上述提到的所有的消息队列的缺点。
RocketMQ 架构
RocketMQ 安装
1)安装 JDK
2)解压 RocketMQ 安装包(下载地址):unzip rocketmq-all-4.5.2-bin-release.zip
3)修改目录名称:mv rocketmq-all-4.5.2-bin-release rocketmq
4)调整 RocketMQ 的启动内存:
RocketMQ 的默认内存占用非常高,一般需要 4-8G 的虚拟机 JVM 参数空间,因此可以通过更改 mqbroker 和 mqnamesrv 的配置来调整内存。
RocketMQ 有两个启动脚本:bin 目录下的 runbroker.sh 和 runserver.sh,编辑如下内容,然后重新启动 broker 。
# vi runserver.sh
JAVA_OPT=”${JAVA_OPT} -server -Xms128m -Xmx128m -Xmn128m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m”
# vi runbroker.sh
JAVA_OPT=”${JAVA_OPT} -server -Xms128m -Xmx128m -Xmn125m
- mqbroker 和 mqnamesrv 的内存也可以调整,这两项配置也很重要,默认是 500m 到 1g 。具体文件配置是 mqbroker.xml 和mqnamesrv.xml(文件里面的配置信息根据自己的情况修改):
<options>
<-Xms200m></-Xms200m>
<-Xmx200m></-Xmx200m>
<-XX:NewSize>50M</-XX:NewSize>
<-XX:MaxNewSize>50M</-XX:MaxNewSize>
<-XX:PermSize>30M</-XX:PermSize>
<-XX:MaxPermSize>30M</-XX:MaxPermSize>
</options>
- 注意:mqbroker.xml 和 mqnamesrv.xml 的内存不要超过 runbroker.sh 和runserver.sh 的内存,不然会因为内存不够导致崩溃。
5)bin 目录下启动 NameServer 服务:
sh mqnamesrv
# 后台启动
nohup sh mqnamesrv &
# 可以在当前目录的 nohup.out 中查看日志输出
6)bin 目录下启动 Borker 服务:
sh mqbroker -n localhost:9876
# 后台启动
nohup sh mqbroker -n localhost:9876 &
# 指定配置文件
sh mqbroker -n localhost:9876 -c ../conf/broker.conf
# 可以在当前目录的 nohup.out 中查看日志输出
7)关闭防火墙:
# 暂时关闭防火墙
systemctl stop firewalld
# 永久设置防火墙状态
systemctl enable firewalld.service # 打开
systemctl disable firewalld.service # 关闭
8)测试:
export NAMESRV_ADDR=localhost:9876
sh tools.sh org.apache.rocketmq.example.quickstart.Producer
sh tools.sh org.apache.rocketmq.example.quickstart.Consumer
RocketMQ 介绍与安装的更多相关文章
- rocketmq学习(一) rocketmq介绍与安装
1.消息队列介绍 消息队列本质上来说是一个符合先进先出原则的单向队列:一方发送消息并存入消息队列尾部(生产者投递消息),一方从消息队列的头部取出消息(消费者消费消息).但对于一个成熟可靠的消息队列来说 ...
- RocketMQ介绍与云服务器安装
RocketMQ 介绍与概念 在github上的说法来看: Apache RocketMQ是一个分布式消息传递和流媒体平台,具有低延迟,高性能和可靠性,万亿级容量和灵活的可扩展性.它提供了多种功能: ...
- 从零自学Hadoop(19):HBase介绍及安装
阅读目录 序 介绍 安装 系列索引 本文版权归mephisto和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作. 文章是哥(mephisto)写的,SourceLink 序 上一篇, ...
- 从零自学Hadoop(14):Hive介绍及安装
阅读目录 序 介绍 安装 系列索引 本文版权归mephisto和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作. 文章是哥(mephisto)写的,SourceLink 序 本系列已 ...
- Python之路-python(mysql介绍和安装、pymysql、ORM sqlachemy)
本节内容 1.数据库介绍 2.mysql管理 3.mysql数据类型 4.常用mysql命令 创建数据库 外键 增删改查表 5.事务 6.索引 7.python 操作mysql 8.ORM sqlac ...
- Bash on Windows 抢鲜测试 -- 介绍及安装
前言 微软在上周的Windows BUILD大会上宣布,WIN10将引入原生Bash,并将很快在技术预览版中推出. 如此一来,windows的命令行工具就不再只有cmd和powershell了,我们可 ...
- Tyk API网关介绍及安装说明
Tyk API网关介绍及安装说明 Tyk是一个开源的轻量级API网关程序. 什么是API网关 API网关是一个各类不同API的前置服务器.API网关封装了系统内部架构,对外提供统一服务.此外还可以实现 ...
- Python介绍、安装、使用
Python介绍.安装.使用 搬运工:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Python语言介绍 说到Python语言,就不得不说一下它的创始人Guido van Rossu ...
- Redis介绍以及安装(Linux)
Redis介绍以及安装(Linux) redis是当前比较热门的NOSQL系统之一,它是一个key-value存储系统.和Memcached类似,但很大程度补偿了memcached的不足,它支持存储的 ...
随机推荐
- MQTT协议 - arduino ESP32 通过精灵一号 MQTT Broker 进行通讯的代码详解
前言 之前研究了一段时间的 COAP 协议结果爱智那边没有测试工具,然后 arduino 也没有找到合适的库,我懒癌发作也懒得修这库,就只能非常尴尬先暂时放一放了.不过我在 爱智APP -> 设 ...
- Sentry 开发者贡献指南 - 前端 React Hooks 与虫洞状态管理模式
系列 Sentry 开发者贡献指南 - 前端(ReactJS生态) Sentry 开发者贡献指南 - 后端服务(Python/Go/Rust/NodeJS) 什么是虫洞状态管理模式? 您可以逃脱的最小 ...
- CF1064A Make a triangle! 题解
Content 有三条长度分别为 \(a,b,c\) 的线段.你可以在一个单位时间内将一条线段的长度增加 \(1\),试求出能使这三条线段组成一个三角形的最短时间. 数据范围:\(1\leqslant ...
- java 常用类库:时间类LocalDate;LocalTime;LocalDateTime;Calendar 类;Date ;
LocalDate类 LocalDate类代表不带时区的日期,列入2020-12-20.该类提供了静态的now()方法来获取当前的日期.这个类是线程安全的. LocalTime类 代表不带时区的时间, ...
- UiPath RPA培训2021.4版本解读 (2021年5月)-RPA学习天地
2021年5月26日Ui Path发布了新产品2021.4版本,我们来看看有什么新功能: 说明一下uipath的版本发布节奏: uipath的版本一般是每年发布2个版本,其中5月份发布的一般是FTS版 ...
- java类型转换拓展
数据类型拓展 在Java中二进制用0b开头,八进制用0开头,十六进制用0x表示 整数拓展 int i=10; int i2=010;//八进制 int i3=0x10;//十六进制0x,0-9,A- ...
- C笔试题:将int型数组强制转换为char*,再求strlen,涉及大小端
1 #include<stdio.h> 2 #include<string.h> 3 int main() 4 { 5 int a[2000]; 6 char *p = (ch ...
- qt5之设置无边窗口移动
Note qt version: 5.12 qt creator: 4.13 本文将介绍 设置无边窗口和设置窗口的移动 你要知道: QDialog 和 QMainWindow都是 QWidget的派生 ...
- 【LeetCode】677. Map Sum Pairs 解题报告(Python & C++)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 字典 前缀树 日期 题目地址:https://lee ...
- What is being transferred in transfer learning?
目录 概 主要内容 feature reuse mistakes and feature similarity loss landscape module criticality pre-traine ...