1、JMS介绍和使用场景及基础编程模型
简介:讲解什么是消息队列,JMS的基础知识和使用场景
1、什么是JMS: Java消息服务(Java Message Service),Java平台中关于面向消息中间件的接口
2、JMS是一种与厂商无关的 API,用来访问消息收发系统消息,它类似于JDBC(Java Database Connectivity)。这里,JDBC 是可以用来访问许多不同关系数据库的 API
3、使用场景:
1)跨平台
2)多语言
3)多项目
4)解耦
5)分布式事务
6)流量控制
7)最终一致性
8)RPC调用
上下游对接,数据源变动->通知下属
4、概念
JMS提供者:Apache ActiveMQ、RabbitMQ、Kafka、Notify、MetaQ、RocketMQ
JMS生产者(Message Producer)
JMS消费者(Message Consumer)
JMS消息
JMS队列
JMS主题
JMS消息通常有两种类型:点对点(Point-to-Point)、发布/订阅(Publish/Subscribe)
5、编程模型
MQ中需要用的一些类
ConnectionFactory :连接工厂,JMS 用它创建连接
Connection :JMS 客户端到JMS Provider 的连接
Session: 一个发送或接收消息的线程
Destination :消息的目的地;消息发送给谁.
MessageConsumer / MessageProducer: 消息接收者,消费者
官网地址:http://rocketmq.apache.org/
学习参考 学习资源:
1)http://jm.taobao.org/2017/01/12/rocketmq-quick-start-in-10-minutes/
2)https://www.jianshu.com/p/453c6e7ff81c
简介:阿里开源消息队列 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:给生产和消费者提供路由信息,提供轻量级的服务发现和路由
简介:RocketMQ4.x本地快速部署
1、安装前提条件(推荐)
64bit OS, Linux/Unix/Mac
64bit JDK 1.8+;
2、快速开始 http://rocketmq.apache.org/docs/quick-start/
官网下载:http://rocketmq.apache.org/docs/quick-start/
3、解压压缩包
进入bin目录
**namesrv相当于kafka中的zookeeper**
nohup sh mqnamesrv &
查看日志
tail -f nohup.out
结尾:The Name Server boot success. serializeType=JSON 表示启动成功
ps -ef | grep java
nohup sh mqbroker -n 10.139.12.15:9876 autoCreateTopicEnable=true &
通过查看日志和java进程都可以可以看放到BrokerStartup启动成功
tail -f ~/logs/rocketmqlogs/broker.log
Send & Receive Messages
发送数据
export NAMESRV_ADDR=10.139.12.15:9876
sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer
若想环境变量永久生效可以添加到系统环境变量
接收消息
sh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer
常见问题解决:
org.apache.rocketmq.client.exception.MQClientException: No route info of this topic, TopicTest
关闭nameserver
sh mqshutdown namesrv
关闭broker
sh mqshutdown broker
简介:RoekerMQ4.x可视化控制台讲解
1、下载 https://github.com/apache/rocketmq-externals
2、编译打包
解压 进入 rocketmq-externals-master/rocketmq-console
mva打包命令
mvn clean package -Dmaven.test.skip=true
默认端口号为8080
使用浏览器输入:10.139.12.149:8080
如果8080 端口号被占用 可以在启动jar包时指定端口号
打开浏览器登录
4、无法连接获取broker信息
1)修改配置文件,名称路由地址为 namesrvAddr,例如我本机为
在与 rocketmq-console-ng-1.0.1.jar 同级的目录中新建config文件夹
将rocketmq-externals-master/rocketmq-console/src/main/resources/在的application.properties配置文件拷贝到config文件夹中
修改application.properties配置文件
rocketmq.config.namesrvAddr=192.168.0.101:9876
6、注意:
在阿里云,腾讯云或者虚拟机,记得检查端口号和防火墙是否启动
简介:Springboot2.x整合RocketMQ4.x实战,加入相关依赖,开发生产者代码
启动nameser和broker
SpringBoot整合RocketMQ