消息代理系统
RocketMQ的客户端SDK代理。针对企业使用RocketMQ因没有相应语言的稳定SDK,且想通过RocketMQ进行系统通信的解决方案。
作者在2016年开发第一个应用于生产环境的程序,用于某上市互联网公司Java应用与PHP应用通过RocketMQ通信。后续还支持了某D轮互联网公司PHP&GO应用接入RocketMQ,单日峰值处理消息量 5000w+。
杭州市萧山区/滨江区的企业使用,免费提供技术支持,保障生产环境稳定性。
软件架构说明
通过HTTP请求代理服务接口实现消息发送
{
"topic": "demo-topic",
"tag": "tagA",
"keys": "dfd434", //非必须字段
"message": "hello world",
"producerGroupName": "demo-producer"
}
{
"msg": "消息发送成功",
"code": 200
}
根据code值判断消息是否发送成功
例如:某PHP系统开发消息消费接口
{
"topic":"demo-topic",
"tag":"tagA",
"message":"hello world",
"msgId":"DFDf434",
"keys":"dfd434"
}
其中 message 为需要处理的消息内容,其他的是消息的属性信息,例如可以在发送消息时传递keys来做消息幂等性消费。
消费成功返回:SUCCESS 消费失败返回:FAIL
# 进入项目目录
cd admin-ui
# 安装依赖
npm install
# 建议不要直接使用 cnpm 安装依赖,会有各种诡异的 bug。可以通过如下操作解决 npm 下载速度慢的问题
npm install --registry=https://registry.npmmirror.com
# 启动服务
npm run dev
浏览器访问 http://localhost:80
# 构建测试环境
npm run build:stage
# 构建生产环境
npm run build:prod
monster-admin模块,src/main/resources中application-dev.yml
# 开发环境配置
server:
# 服务器的HTTP端口,默认为8080
port: 8080
# 数据源配置
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driverClassName: com.mysql.cj.jdbc.Driver
druid:
# 主库数据源
master:
url: jdbc:mysql://127.0.0.1:3306/mq_proxy?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
username: root
password: 123456
# redis 配置
redis:
# 地址
host: 127.0.0.1
# 端口,默认为6379
port: 6379
# 数据库索引
database: 0
# 密码
password: 123456
数据库【与代理服务同库】
# 执行命令:
java –jar monster-admin.jar
例如:src/main/resources中新建application-prod.yml
# 启动时,通过命令行参数的方式指定配置属性:
java -jar monster-admin.jar --spring.profiles.active=prod
monster-mq-proxy模块,src/main/resources中application-dev.yml
# 基础配置
mq:
proxy:
# RocketMQ NameServer地址
nameServer: 127.0.0.1:9876
# 开发环境配置
server:
# 服务器的HTTP端口,默认为19876
port: 19876
# 数据源配置
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driverClassName: com.mysql.cj.jdbc.Driver
druid:
# 数据源
master:
url: jdbc:mysql://127.0.0.1:3306/mq_proxy?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
username: root
password: 123456
配置RocketMQ NameServer地址,数据库【与管理后台同库】,服务端口。
# 执行命令:
java –jar monster-mq-proxy.jar
例如:src/main/resources中新建application-prod.yml
# 启动时,通过命令行参数的方式指定配置属性:
java -jar monster-mq-proxy.jar --spring.profiles.active=prod
钉钉群:40650002839
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
1. 开源生态
2. 协作、人、软件
3. 评估模型