Message Router旨在打造一个适配所有主流消息组件的消息路由中间件
java -jar MessageRouter-0.2.0-fat.jar -conf your_config.json
我们将消息中间件的连接和监听过程以及分发规则进行了抽象,你只需要配置连接信息和转发规则即可实现消息分发。
字段名称 |
释义 |
name |
唯一标识名称 |
type |
类型,当前仅支持File |
字段名称 |
释义 |
bootstrap.servers |
服务器 |
topics |
订阅主题列表 |
字段名称 |
释义 |
group.id |
消费者组ID |
auto.offset.reset |
数据读取策略 |
{
"name": "k1",
"type": "Kafka",
"config": {
"bootstrap.servers": "localhost:9092",
"topics": [
"test1"
],
"producer": {
"acks": "1"
},
"consumer": {
"group.id": "my_group",
"auto.offset.reset": "earliest"
}
}
}
字段名称 |
释义 |
host |
主机 |
port |
端口 |
user |
用户名 |
password |
密码 |
virtualHost |
虚拟主机 |
connectionTimeout |
连接超时时间 |
requestedHeartbeat |
心跳时间 |
handshakeTimeout |
握手超时时间 |
requestedChannelMax |
请求通道最大值 |
networkRecoveryInterval |
网络恢复间隔 |
automaticRecoveryEnabled |
启用自动恢复 |
提示:部分字段不设置也会存在默认值,您并不需要设置每一项,但因精力原因文档尚未完善,如果您有兴趣可以发起PR
传入队列名称即可
字段名称 |
释义 |
key |
唯一标识符 |
exchange |
交换机 |
routingKey |
路由Key |
{
"name": "r1",
"type": "rabbitmq",
"config": {
"options": {
"host": "localhost",
"port": 5672,
"user": "guest",
"password": "guest",
"virtualHost": "/",
"connectionTimeout": 6000,
"requestedHeartbeat": 60,
"handshakeTimeout": 6000,
"requestedChannelMax": 5,
"networkRecoveryInterval": 500,
"automaticRecoveryEnabled": true
},
"queues": [
"test1"
],
"target": {
"amq.topic@test1": {
"exchange": "amq.topic",
"routingKey": "test1"
}
}
}
}
{
"name": "f1",
"type": "File",
"config": {
"path": "D:/temp/test/f1"
}
}
字段名称 |
释义 |
source |
消息源连接名称 |
target |
消息目标连接名称 |
{
"source": "f1",
"target": "f2"
}
{
"connection": {
"connect": [
{
"name": "f1",
"type": "File",
"config": {
"path": "D:/temp/test/f1"
}
},
{
"name": "f2",
"type": "File",
"config": {
"path": "D:/temp/test/f2"
}
},
{
"name": "k1",
"type": "Kafka",
"config": {
"bootstrap.servers": "localhost:9092",
"topics": [
"test1"
],
"producer": {
"acks": "1"
},
"consumer": {
"group.id": "my_group",
"auto.offset.reset": "earliest"
}
}
},
{
"name": "r1",
"type": "rabbitmq",
"config": {
"options": {
"host": "localhost",
"port": 5672,
"user": "guest",
"password": "guest",
"virtualHost": "/",
"connectionTimeout": 6000,
"requestedHeartbeat": 60,
"handshakeTimeout": 6000,
"requestedChannelMax": 5,
"networkRecoveryInterval": 500,
"automaticRecoveryEnabled": true
},
"queues": [
"test1"
],
"target": {
"amq.topic@test1": {
"exchange": "amq.topic",
"routingKey": "test1"
}
}
}
}
]
},
"route": {
"routes": [
{
"source": "f1",
"target": "r1.amq.topic@test1"
},
{
"source": "f2",
"target": "k1.test1"
},{
"source": "r1.test1",
"target": "f2"
}
]
}
}
因为有了下面这些开源项目,才让我们项目的开发和使用过程更加舒适:
MessageRouter is licensed under the Apache License 2.0