RocketMQ 01 Linux安装

RocketMQ 01

主要内容:

  • 编译安装
  • HelloWorld
  • 官网名词

官方网站

http://rocketmq.apache.org

GitHub

https://github.com/apache/rocketmq

Quick Start

Linux下使用Maven编译源码安装

Rocketmq4.6+需要jdk1.8环境编译和运行
在这里插入图片描述

各版本要求

VersionClientBrokerNameServer
4.0.0-incubating>=1.7>=1.8>=1.8
4.1.0-incubating>=1.6>=1.8>=1.8
4.2.0>=1.6>=1.8>=1.8
4.3.x>=1.6>=1.8>=1.8
4.4.x>=1.6>=1.8>=1.8
4.5.x>=1.6>=1.8>=1.8
4.6.x>=1.6>=1.8>=1.8
1.从GitHub上下载源码并上传到服务器

在这里插入图片描述

2.在Linux上安装Maven

下载Maven

wget https://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz

添加阿里云镜像

修改maven/conf目录下的settings.xml

mirrors节点下添加

<mirror> <id>aliyun-maven</id> <mirrorOf>*</mirrorOf> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public</url> 
</mirror>

配置maven环境变量

修改/etc/profile

export M2_HOME=/usr/local/maven
export PATH=$PATH:$M2_HOME/bin

配置java环境变量

export JAVA_HOME="/usr/java/jdk1.8.0_181-amd64"
export CLASS_PATH="$JAVA_HOME/lib"
export PATH=".$PATH:$JAVA_HOME/bin"

环境变量修完执行source /etc/profile立即生效

进入rocketmq主目录编译项目

mvn -Prelease-all -DskipTests clean install -U
3.启动nameserver

bin目录下执行

./mqnamesrv

正常提示
在这里插入图片描述

4.启动Broker
./mqbroker -n localhost:9876

正常提示
在这里插入图片描述

5.测试消息发送

使用tool.sh脚本执行测试程序

bin目录下执行

./tools.sh org.apache.rocketmq.example.quickstart.Producer

提示如下表示成功
在这里插入图片描述

6.接受消息

./tools.sh org.apache.rocketmq.example.quickstart.Consumer

控制台rocketmq-console编译安装

下载

https://github.com/apache/rocketmq-externals

中文指南

https://github.com/apache/rocketmq-externals/blob/master/rocketmq-console/doc/1_0_0/UserGuide_CN.md

上传到服务器并解压缩
编译

进入rocketmq-console目录

执行编译

mvn clean package -Dmaven.test.skip=true
启动

编译成功后在rocketmq-console/target目录下执行rocketmq-console-ng-1.0.1.jar

启动时,直接动态添加nameserver地址或编辑application.properties添加属性

java -jar rocketmq-console-ng-1.0.1.jar --rocketmq.config.namesrvAddr=127.0.0.1:9876

启动成功后访问服务器8080端口即可
在这里插入图片描述

pom.xml依赖
 <dependency><groupId>org.apache.rocketmq</groupId><artifactId>rocketmq-client</artifactId><version>4.6.1</version></dependency>

安装启动常见错误

编译时包无法在mirror上找到 提示502错误

**原因:**网络不好或maven仓库服务器出错

重试即可,或者欢迎镜像仓库

发送失败提示connect to null failed
 ./tools.sh org.apache.rocketmq.example.quickstart.Producer
22:49:02.470 [main] DEBUG i.n.u.i.l.InternalLoggerFactory - Using SLF4J as the default logging framework
RocketMQLog:WARN No appenders could be found for logger (io.netty.util.internal.PlatformDependent0).
RocketMQLog:WARN Please initialize the logger system properly.
java.lang.IllegalStateException: org.apache.rocketmq.remoting.exception.RemotingConnectException: connect tonull failed

**原因:**不知道nameserver在哪儿

tools脚本中添加

export NAMESRV_ADDR=localhost:9876
启动broker失败 Cannot allocate memory

**原因:**jvm启动初始化内存分配大于物理内存

[root@node-113b bin]# ./mqbroker -n localhost:9876
Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00000005c0000000, 8589934592, 0) failed
; error='Cannot allocate memory' (errno=12)#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (mmap) failed to map 8589934592 bytes for committing reserved memory.
# An error report file with more information is saved as:
# /usr/local/rocketmq/bin/hs_err_pid1997.log

修改启动脚本中的jvm参数

runbroker.sh broker

runserver.sh nameserver

默认数值给的都很大,改小即可

JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m -Xmn128m -XX:MetaspaceSize=64m -XX:MaxMetaspaceSize=100m"
启动broker成功但提示:Failed to obtain the host name
[root@node-113b bin]# ./mqbroker -n localhost:9876
22:30:42.307 [main] ERROR RocketmqCommon - Failed to obtain the host name
java.net.UnknownHostException: node-113b: node-113b: No address associated with hostnameat java.net.InetAddress.getLocalHost(InetAddress.java:1505) ~[na:1.8.0_181]at org.apache.rocketmq.common.BrokerConfig.localHostName(BrokerConfig.java:189) [rocketmq-common-4.6
.1.jar:4.6.1]	at org.apache.rocketmq.common.BrokerConfig.<init>(BrokerConfig.java:38) [rocketmq-common-4.6.1.jar:4
.6.1]	at org.apache.rocketmq.broker.BrokerStartup.createBrokerController(BrokerStartup.java:110) [rocketmq
-broker-4.6.1.jar:4.6.1]	at org.apache.rocketmq.broker.BrokerStartup.main(BrokerStartup.java:58) [rocketmq-broker-4.6.1.jar:4
.6.1]Caused by: java.net.UnknownHostException: node-113b: No address associated with hostnameat java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method) ~[na:1.8.0_181]at java.net.InetAddress$2.lookupAllHostAddr(InetAddress.java:928) ~[na:1.8.0_181]at java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1323) ~[na:1.8.0_181]at java.net.InetAddress.getLocalHost(InetAddress.java:1500) ~[na:1.8.0_181]... 4 common frames omitted
The broker[DEFAULT_BROKER, 192.168.150.213:10911] boot success. serializeType=JSON and name server is localh
ost:9876

**原因:**无法解析当前的主机名

hosts里添加映射即可

192.168.150.213 node-113b
linux日期校准

安装ntpdate

yum install ntpdatentpdate ntp1.aliyun.com

RocketMQ 官网名词

官网首页

在这里插入图片描述

Apache RocketMQ™ is a unified messaging engine, lightweight data processing platform.

Apache RocketMQ™ 是一个标准化的消息引擎,轻量级的处理平台

unified messaging engine :标准化消息引擎

lightweight data processing platform:轻量级处理平台

生词:

Community:社区

unified :统一的;一致标准的

messaging :消息传递,收发

engine:引擎

platform:平台

processing :处理、计算


在这里插入图片描述

Low Latency

低延迟

More than 99.6% response latency within 1 millisecond under high pressure.

在高压力下,1毫秒的延迟内可以响应超过99.6%的请求

Finance Oriented

金融方向,面向金融

High availability with tracking and auditing features.

系统具有高可用性支撑了追踪和审计的特性

Industry Sustainable

行业可发展性

Trillion-level message capacity guaranteed.

保证了万亿级别的消息容量。

生词:

Low Latency :低延迟

high pressure:高压

Oriented :面向

Finance : 金融

tracking :追踪

auditing :审计

Industry :产业、行业

Sustainable:可持续发展

Trillion-level : 万亿级别

capacity : 容量

guaranteed:有保证的

在这里插入图片描述

Vendor Neutral

中立厂商

Neutral:中立的

Vendor :厂商

A new open distributed messaging and streaming standard since latest 4.1 version.

在最新的4.1版本开放了一个新的分布式消息和流标准

BigData Friendly

对大数据友好

Batch transferring with versatile integration for flooding throughput.

批量传输与多功能集成支撑了海量吞吐。

Massive Accumulation

大量的积累

Given sufficient disk space, accumulate messages without performance loss.

只要给与足够的磁盘空间,就可以累积消息而不会造成性能损失。

生词:

standard : 标准

since : 自……以来

latest :最新的

version:版本

BigData :大数据

Batch :批量

transferring :转移、传输

versatile:多功能的

integration :集成

flooding:淹没、泛洪、泛滥

throughput:吞吐量

flooding throughput: 海量吞吐

Massive :大量的

Accumulation : 积累

sufficient:足够的

disk space:磁盘空间

accumulate :积累

performance loss:性能损失

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/821169.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SGI_STL和Nginx内存池源码剖析--源码移植

将SGISTL内存配置器和Nginx内存池源码&#xff0c;移植到自己的项目中。 源码文件复杂&#xff0c;并且有很多项目中使用不到的宏定义&#xff0c;所以通过改写和移植&#xff0c;可以很好的适应C的其他项目。 SGI-STL源码移植资源-CSDN文库 nginx内存池源码移植资源-CSDN文库…

游戏动画技术:从传统到深度学习

一、传统游戏动画技术简介 3D游戏动画的骨骼动画和蒙皮技术动画交互控制&#xff1a;状态机、动作融合和IK基于状态机的动画控制原理和问题 二、Motion Matching技术简介 传统状态机动画的缺陷Motion Matching的原理&#xff1a;根据角色状态自动匹配动画Dance Card动捕流程…

android不同版本(支持>10)获取当前连接的wifi名称

1、AndroidManifest.xml 配置权限 <uses-permission android:name"android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name"android.permission.CHANGE_NETWORK_STATE" /> <uses-permission android:name&q…

《大话数据结构》02 算法

算法是解决特定问题求解步骤的描述&#xff0c;在计算机中表现为指令的有限序列&#xff0c;并且每条指令表示一个或多个操作。 1. 两种算法的比较 大家都已经学过一门计算机语言&#xff0c;不管学的是哪一种&#xff0c;学得好不好&#xff0c;好歹是可以写点小程序了。现在…

MySQL事务(学习)

1.事务的特性是什么&#xff1f; 事务是一组操作的集合&#xff0c;它是一个不可分割的工作单位&#xff0c;事务会把所有的操作作为一个整体一起向系统提交或撤销操作请求&#xff0c;即这些操作要么同时成功&#xff0c;要么同时失败。 事务包含了4个特性ACID 事务4个特性…

开发需求总结14-数组对象中根据相同的id进行排序

需求描述: 大家都知道element里el-table组件实现单选、全选,只需要在el-table-column,设type属性为selection,通过selection-change事件就可以得到选中的数组。一般像批量发布、批量审批、批量拒绝等场景,不涉及选中后排序,是可以直接将选中后的数据的id作为参数,传递给…

windows编译xlnt,获取Excel表里的数据

用git拉取项目 这个文件是空的 要用git拉下来&#xff0c;使用终端编译xlnt库 点击解决方案 运行生成 然后新建项目&#xff0c;配置好库&#xff0c; #include <iostream> #include <xlnt/xlnt.hpp>int main() {// 打开 Excel 文件xlnt::workbook workbook;workb…

优斯特:防静电包装解决方案的巧妙运用

在现代电子产品生产与运输领域&#xff0c;防静电包装已成为保障产品安全的必备环节。优斯特凭借其创新的防静电包装解决方案&#xff0c;为客户提供了一种巧妙的方式来确保产品在存储和运输过程中不受静电影响&#xff0c;并且不会被刮花或损坏。 静电对产品的影响 静电对电子…

大数据行业英语单词巩固20240413

Integration - 整合 Example: The integration of new software into our system will improve efficiency. 示例&#xff1a;将新软件集成到我们的系统中将提高效率。 Automation - 自动化 Example: Automation of repetitive tasks can save time and reduce errors. 示例&a…

MacOS Github Push项目 精简版步骤

大白菜教程&#xff1a;小白菜 macOS github提交代码-CSDN博客 步骤1&#xff1a;git init步骤2&#xff1a; touch .gitignore 创建ignore文件 open .gitignore 打开ignore文件 编写ignore文件.idea/ 是文件夹的意思.git/ 也是自动生成的文件夹 也不上传.DS_St…

ENVI实战—一文学会使用传感器自带信息配准工具进行几何校正

实验1&#xff1a;学会使用传感器自带信息配准工具 目的&#xff1a;利用ENVI的传感器自带信息配准工具&#xff0c;掌握几何校正的一般方法。 过程&#xff1a; 1.对MODIS影像进行校正&#xff1a; ①读取影像&#xff1a;打开文件&#xff0c;点击“打开为”&#xff0c;…

【CSS基础】9.形变transform

1. transform介绍 CSS transform属性允许对某个一个元素进行形变&#xff0c;包括旋转、位移、缩放、倾斜等并非所有的盒子都可以形变&#xff08;通常来说行内级盒子不能进行形变&#xff09; 2. transform的用法 transform可以增加多个transform function&#xff0c;通过空…

锁策略^o^

锁策略 一&#xff0c;悲观锁 VS 乐观锁 悲观锁&#xff1a;总是假设最坏的情况&#xff0c;每次去拿数据的时候都认为别人会修改&#xff0c;所以每次在拿数据的时候都会碰上锁&#xff0c;这样别人想拿这个数据就会阻塞&#xff0c;直到它拿到锁。 乐观锁&#xff1a;假设…

《组合实体模式(极简c++)》

本文章属于专栏- 概述 - 《设计模式&#xff08;极简c版&#xff09;》-CSDN博客 模式说明 方案&#xff1a;组合实体模式是一种结构型设计模式&#xff0c;旨在将一组对象组合成单个对象实体来处理。这个实体统一对外提供操作&#xff0c;而不需要直接操作每个对象。优点&…

13.继承(基类、派生类、同名函数、同名变量、虚拟继承、虚拟继承的原理、继承关系和访问限定符)

1.继承的概念及定义 1.1继承的概念 ​ 继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段&#xff0c;它允许程序员在保持原有类特性的基础上进行扩展&#xff0c;增加功能&#xff0c;这样产生新的类&#xff0c;称派生类。继承呈现了面向对象程序设计的…

VMware 虚拟机中的 Ubuntu 16.04 设置 USB 连接

VMware 虚拟机中的 Ubuntu 16.04 设置 USB 连接 1. VMware USB Arbitration Service2. 可移动设备 USB 口连接主机3. 虚拟机 -> 可移动设备 -> 连接 (断开与主机的连接)4. 状态栏 -> 断开连接 (连接主机)References 1. VMware USB Arbitration Service 计算机 -> …

JS 千分位格式化

1 js实现 function formatNumber(number) {let [int,dec] number.toString().split(.);const splitFn (num,isInt true) > {if(num ) return ;if(isInt) num num.split().reverse();let str [];for(let i 0; i < num.length; i){if(i ! 0 && i % 3 0) s…

四.吊打面试官系列-数据库优化-Mysql锁和事务原理

前言 本篇文章主要讲解两块内容&#xff1a;Mysql中的锁和ACID原理&#xff0c;这2个部分是面试的时候被问的蛮多的看完本篇文章之后相信你对Mysql事务会有更深层次的理解&#xff0c;如果文章对你有所帮助请记得好评 一.Mysql中的锁 1.锁的分类 在Mysql中锁也分为很多种&a…

第四百五十四回

文章目录 1. 问题描述2. 优化方法2.1 缩小范围2.2 替代方法 3. 示例代码4. 内容总结 我们在上一章回中介绍了"如何获取AppBar的高度"相关的内容&#xff0c;本章回中将介绍关于MediaQuery的优化.闲话休提&#xff0c;让我们一起Talk Flutter吧。 1. 问题描述 我们在…

11-1.Vue2.x基本列表—v-for

文章目录 Vue2.x基本列表—v-for Vue2.x基本列表—v-for <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><title>基本列表</title><script type"text/javascript" src"../js/vue.j…