RocketMQ入坑之路(一)入门

阿里云RocketMQ使用http协议接入 1、pom <dependency> <groupId>com.aliyun.mq</groupId> <artifactId>mq-http-sdk</artifactId> <!--以下版本号请替换为Java SDK的最新版本号--> <version>1.0.3.2</version> 阅读详情

什么是消息队列 MQ?

这里摘抄阿里云RocketMQ 的一段话,详情请看阿里云官方文档,写的非常不错,这里附上链接:https://www.alibabacloud.com/help/zh/doc-detail/29532.htm?spm=a2c63.p38356.b99.2.38567c62R1BFHD

消息队列 RocketMQ 是阿里巴巴集团自主研发的专业消息中间件,基于高可用分布式集群技术,提供消息订阅和发布、消息轨迹查询以及定时(延时)消息、资源统计、监控报警等一系列消息云服务,是企业级互联网架构的核心产品。 消息队列 RocketMQ 历史超过9年,为分布式应用系统提供异步解耦、削峰填谷的能力,同时具备海量消息堆积、高吞吐、可靠重试等互联网应用所需的特性,是阿里巴巴双11使用的核心产品。

消息队列 RocketMQ 是阿里云正式商用的产品,目前在阿里云多个地域(Region)提供了高可用消息云服务,单个域内采用多机房部署,可用性极高,即使整个机房都不可用,仍然可以为应用提供消息发布服务,产品稳定性及可用性完全按照阿里巴巴内部标准来实施,无单点。

消息队列 RocketMQ 目前提供 TCP 和 HTTP 协议层面的接入方式,支持 Java、C++、 .NET、Go、Python、Nodejs、PHP 这七种编程语言,方便不同编程语言开发的应用快速接入消息队列 RocketMQ 消息云服务。 用户可以将应用部署在阿里云 ECS、企业自建云,或者嵌入到移动端、物联网设备中与消息队列 RocketMQ 建立连接进行消息收发,同时本地开发者也可以通过公网接入消息队列 RocketMQ 服务进行消息收发。

产品功能

消息队列 RocketMQ 提供了基于 TCP 和 HTTP 协议的多种编程语言的接入方式以及多维度的管理工具,同时针对不同的应用场景提供了一系列的特色功能。

功能概览图

产品功能

多协议支持

  • 支持 HTTP 协议:采用 RESTful 标准,方便易用,快速接入,跨网络能力强,并支持七种语言客户端。
  • 支持 TCP 协议:区别于 HTTP 简单的接入方式,提供更为专业、可靠、稳定的 TCP 协议的 SDK 接入。
  • 支持 STOMP 协议:类似于 HTTP 的纯文本的协议机制,常用于脚本语言(如 Ruby、Python、Perl)和消息队列 RocketMQ Broker 进行轻量级交互。

管理工具

  • Web 控制台:支持 Topic 管理、生产者管理、消费者管理、消息查询、消息轨迹展示和查询、资源报表以及监控报警管理。
  • OpenAPI:提供 API 便于将消息队列 RocketMQ 管理工具集成到自己的控制台。
  • mqadmin 命令集:专有云输出提供一套丰富的管理命令集,以命令方式对消息队列 RocketMQ 服务进行管理。

特色功能

  • 事务消息:实现类似 X/Open XA 的分布事务功能,以达到事务最终一致性状态。
  • 定时(延时)消息:允许消息生产者指定消息进行定时(延时)投递,最长支持 40 天。
  • 大消息:支持最大 4 MB 消息。
  • 消息轨迹:通过消息轨迹,能清晰定位消息从发布者发出,经由消息队列 RocketMQ 服务端,投递给消息订阅者的完整链路,方便定位排查问题。
  • 广播消费:允许同一个 Group ID 所标识的所有 Consumer 都各自消费某条消息一次。
  • 顺序消息:允许消息消费者按照消息发送的顺序对消息进行消费。
  • 重置消费进度:根据时间重置消费进度,允许用户进行消息回溯或者丢弃堆积消息。
  • 死信队列:将无法正常消费的消息储存到特殊的死信队列供后续处理。
  • 全球消息路由:用于全球不同地域之间的消息同步复制,保证地域之间的数据一致性。消息收发模型

消息队列 RocketMQ 支持“发布/订阅”模型,消息发布者(生产者)可以将一条消息发送服务端的某个主题(Topic),多个消息接收方(消费者)订阅这个主题以接收该消息,如下图所示:

Pub-Sub模型

 

RocketMQ nameserver、broker、生产者和消费者之间的关系 

请参考博客:https://blog.youkuaiyun.com/LinYaoGai/article/details/77876078  最好先了解下各个核心模块之间的关系和功能!!!

 

Linux安装RocketMQ服务

  1. (本次RocketMQ的版本4.4.0、JDK1.8、centos7)下载安装zip包    http://mirror.bit.edu.cn/apache/rocketmq/4.4.0/rocketmq-all-4.4.0-bin-release.zip
  2. unzip命令解压后的目录如下:
  3. 修改默认的配置文件:RocketMQ的bin目录下的runserver.sh 和runbroker.sh的JVM内存配置最小4G,如果服务器不满足条件需要进行调整。另外要删除MetaspaceSize配置,因为这是JDK1.8的配置。修改后如图:
  4. 启动mqnamesrv服务 
    nohup sh mqnamesrv &

    tail -f ~/logs/rocketmqlogs/namesrv.log 根据启动日志查看启动情况

  5. mqbroker服务如果rocketmq-client的生产者和消费者需要访问云服务器的broker需要更改conf目录下的broker.conf,另外需要开放默认端口号10911,如下图增加brokerIP1外网IP设置:
  6. 启动mqbroker服务,如果没有创建Topic启动会报错,设置允许自动创建Topic即可
    nohup sh mqbroker -n localhost:9876 autoCreateTopicEnable=true &

     tail -f ~/logs/rocketmqlogs/broker.log 根据日志查看启动情况

  7. 注意事项

 

  • 最好新建一个用户去安装部署,注意一些文件目录访问权限,sh执行权限
  • 针对rocketmq-client客户端的生产者和消费者访问云服务broker的时候,一定要配置外网访问IP
  • rocketmq-client客户端连接mq服务,可能有多个109端口开头的端口不能访问,需服务器开放
  • mqnamesrv默认端口,新建一个properties文件配置listenPort属性,启动时加上 -c 指定配置文件即可,同理broker一样
  • 日志输出文件的目录是可配置的,详情见RocketMQ的conf目录logback.xml

部署RocketMQ-console控制台

简介

RocketMQ-Console是RocketMQ项目的扩展插件,是一个图形化管理控制台,提供Broker集群状态查看,Topic管理,Producer、Consumer状态展示,消息查询等常用功能,这个功能在安装好RocketMQ后需要额外单独安装、运行。

RocketMQ-Console下载

进入rocketmq-externals项目GitHub地址,如下图,可看到RocketMQ项目的诸多扩展项目,其中就包含我们需要下载的rocketmq-console。 

使用git命令下载项目源码,由于我们仅需要rocketmq-console,故下载此项目对应分支即可。

git clone -b release-rocketmq-console-1.0.0 https://github.com/apache/rocketmq-externals.git

RocketMQ-Console配置

进入rocketmq-externals/rocketmq-console/项目文件夹并修改配置文件。

  • namesrvAddr是mqnamesrv的服务地址
  • server.contextPath为web服务访问的根path
  • server.port为web服务端口(如果是云服务器记得开放)
vim src/main/resources/application.properties 

更改好配置文件后回到rocketmq-console的根目录进行打包,这里是maven(如果未安装,自行搜索引擎 -_-)

$ mvn clean package -Dmaven.test.skip=true
$ java -jar target/rocketmq-console-ng-1.0.0.jar
#如果不想配置namesrvAddr的服务地址,多个以分号结尾
$ java -jar target/rocketmq-console-ng-1.0.0.jar --rocketmq.config.namesrvAddr='ip:9876;ip:9877'

启动如果报连接错误,ip请使用服务器的内网ip地址,可能localhost指向的ip是docker、或者其他虚拟ip

启动成功后访问http:ip+port/server.contextPath访问即可,如下图:

 

结语

如果后面有实战,将续写实战篇,敬请期待!!!!感谢您花时间浏览这篇博客,有相关疑问或者需求请留言~~

java实现阿里云rocketMQ消息的发送与消费(http协议sdk) 阅读详情

相关推荐

RocketMQ (一) 安装

安装 安装配置 jdk8 1. 上传jdk压缩文件 将文件jdk-8u212-linux-x64.tar.gz上传到 /root 目录 2. 解压缩 执行解压命令 # 将jdk解压到 /usr/local/ 目录 tar -xf jdk-8u212-linux-x64.tar.gz -C /usr/local/ # 切换到 /usr/local/ 目录, 显示列表, 查看解压缩的jdk目录 cd /usr/local ll 3. 配置环境变量 修改 /etc/profile 配置文件, 配置环境变量

wanght笔记 1万+

RocketMQ

转载于:链接地址

白小白的小白的博客 825

消息队列RocketMQ入门指南

本次的示例是关于订单系统改造,用户下单完成后,服务器需要进行库存扣减、订单状态更新、以及优惠券、积分等边边角角的业务,如果顺序执行这些逻辑+网络开销,接口耗时对于用户体验是非常不友好的。的开发者,这篇文章都将为你提供一个清晰的入门指南。因为近期收到很多读者的私信,所以也专门创建了一个交流群,感兴趣的读者可以通过上方的公众号获取笔者的联系方式完成好友添加,点击备注。,作为阿里巴巴开源的一款高性能、高可靠的分布式消息中间件,凭借其强大的功能和稳定的性能,成为了众多开发者和企业的首选。

禅与计算机程序设计的艺术 4211

RocketMQ安装

RocketMQ安装

weixin_42705499的博客 3191

RocketMQ入坑指南(五):SpringBoot集成RocketMQ和具体使用方式

经过前面几章的学习,本章内容着重介绍了Springboot如何集成RocketMQ,如何发送普通消息、顺序消息、延时消息和事务消息,示例代码已上传优快云

u014374743的博客 3885

最新 RocketMQ 入门教程

文章目录一. RocketQM简介1.1 功能作用优点1.2 图示1.3 基本概念二. 下载安装与配置1. 下载安装2. RocketMQ 配置2.1 配置环境变量2.2 本地部署2.2.1 启动RocketMQ2.2.2 启动Broker程序2.2.3 部署RocketMQ插件三. springboot整合RocketMQ3.1 创建spring boot项目3.2 配置pom.xml文件3.3...

星辰里的月光 3719

RocketMq-主从集群搭建

复制5.1内容,修改brokerName=broker-a 为brokerName=broker-b即可。复制5.2内容,修改brokerName=broker-a 为brokerName=broker-b即可。下面配置只在node1节点上预先配置好。标题描述为该配置文件在那台服务器上使用。###broker名字,名字一样的节点就是一组主从节点。##broker名字,名字一样的节点就是一组主从节点。###所属集群名字,名字一样的节点就在同一个集群内。##所属集群名字,名字一样的节点就在同一个集群内。

别浪 2561

RocketMQ入坑指南(二):JAVA接入RocketMQ

RocketMQ入坑指南(二):JAVA接入RocketMQ

u014374743的博客 4049

RocketMQ之(一)RocketMQ入门

RocketMQ入门

qq_50994235的博客 3882

Spring Cloud Alibaba 教程 | RocketMQ(一):快速入门

RocketMQ概述 RocketMQ是一款由阿里研发的高性能高可靠性的分布式消息队列,使用Java语言开发,该项目已经贡献给了Apache基金会,成为Apache的顶级开源项目。 在早期,阿里内部使用ActiveMQ作为其消息传递中间件,随着业务的快速增长,基于ActiveMQ的消息队列集群在处理大规模业务吞吐量时会遇到IO等性能瓶颈,阿里研发团队曾努力优化ActiveMQ,但无奈效果不理想,紧...

攻城狮Luke 3902

RocketMQ入门

可以看到一个topc下有多个queue,每个queue都存放着message,每个message可能还会有tag,按照顺序发送给消费者consumer,发过的消息都在offset后面。MQ会为每个broker维护一个commitlog,一旦文件存放到commitlog,消息就不会丢失。当无法拉取消息时,broker允许producer在30s内发送一个消息,然后直接给消费者消费。后两个索引文件的维护是基于一个线程去异步维护后两个索引文件。

Seven Coding 762

一、RocketMQ入门

消息中间件是分布式系统中用于解耦、异步通信的重要组件。本文介绍了RocketMQ的核心概念与使用方式,包括NameServer、Broker、Producer和Consumer等角色,以及Topic、Message Queue等基本概念。重点讲解了三种消息发送方式(同步、异步、单向)和两种消费模式(集群消费和广播消费),并通过代码示例演示了具体实现。

weixin_44063529的博客 874

RocketMQ入坑指南(四):消费者的使用方式

在这里先祝福大家新年快乐!因为假期原因,距离上一篇的生产者教程已经过了很久,今天是上班的第一天,我们继续分享RocketMQ的第四篇教程,主要介绍消费者相关的知识。消费者组:一个逻辑概念,在使用消费者时需要指定一个组名。一个消费者组可以订阅多个Topic。消费者实例:一个消费者组程序部署了多个进程,每个进程都可以称为一个消费者实例。订阅关系:一个消费者组订阅一个Topic的某一个 Tag,这种记录被称为订阅关系。实际使用中,要保证消费订阅关系一致,一个消费者组中的订阅Topic和Tag必须一致。

u014374743的博客 5146

【RocketMQ】RocketMQ快速入门

Metaq1.x是RocketMQ前身的第一个版本,本质上把Kafka做了一次java版本的重写(Kafka是scala语言开发)。Meta2.x,主要是对存储部分进行了优化,因为kafka的数据存储,它的partition是一个全量的复制,在阿里、在淘宝的这种海量交易。Kafka这种机制的横向拓展是非常不好的。2012年阿里同时把Meta2.0从阿里内部开源出来,取名RocketMQ,同时为了命名上的规范(版本上延续),所以这个就是RocketMQ3.0。现在RocketMQ主要维护的是4.x的版本,也是

morris 2万+

RocketMQ.rar

C#集成RocketMQ经验分享 https://blog.youkuaiyun.com/DoWhatYouSay/article/details/104925104

rocketmq_for_csharp

商用的rocketmq支持C#客户端,开源的不具备这个接口,由于项目需要开发了支持c#的接口,目前接口只支持consumer的订阅读取,producer的发送。 作者也是个小白级别,怕下载不实用可以先咨询作者,KOUKOU:1335075189

消息队列 ~ RocketMQ ~ 从入门到入坑。

消息队列 ~ RocketMQ ~ 从入门到入坑。

lyfGeek的博客 660

FPGA实战 —— 基于UART的多设备串口通信系统设计

本文深入探讨了基于FPGA的多设备UART串口通信系统设计。针对工业控制与物联网应用中一对多通信的需求,文章对比了共享总线式、多路独立式等硬件连接方案,并详细阐述了可配置UART IP核、波特率自适应算法以及多路数据仲裁与分发逻辑等核心设计要点。最后,通过一个四传感器采集节点的实战案例,展示了从硬件连接到Verilog代码实现的完整系统构建过程。

weixin_29172963的博客 232

rocketmq queue_RocketMQ入坑系列(一)角色介绍及基本使用

从今天起,开始Rocket MQ系列。这位MQ经过了双11这种变态级别冲击的洗礼,有稳定出色的表现,作为我们这样的技术人员很有必要研究一下它。先从以下几个方面对RocketMQ入个门:消息队列介绍Rocket MQ介绍Rocket MQ安装使用消息队列什么是「消息队列」呢?队列,大家肯定都不陌生了,在数据结构中,它是一种先进先出的结构。消息队列可以看成是一个容器,里面存放各种消息,这些消...

weixin_39719427的博客 510

量子密钥分发系统设计与实现(一):系统基本架构讨论

本文主要对量子密钥分发系统中的基础架构和基于系统的量子密钥协商过程进行了初步讨论,为后期系列文章进行铺垫。

量子领域相关话题 3891

告别绕线!用Altium Designer从零设计一个PCB平面变压器(附3D模型)

本文详细介绍了如何使用Altium Designer从零设计一个PCB平面变压器,包括磁芯选型、电气参数计算、PCB设计实战技巧以及3D验证与生产输出。通过将绕组直接集成到PCB层中,配合嵌入式磁芯,实现了小型化、高功率密度的电源设计,适用于中低电流、高频应用场景。附3D模型,帮助读者快速掌握这一创新设计流程。

weixin_33716154的博客 442
上一篇: springboot多模块拆分与打jar包、war包
下一篇: Centos7.5 安装Node 12.13.0
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值