Add environment configuration and documentation for various services
- Created .env.example files for Kafka, Kibana, KodBox, Kong, Langfuse, Logstash, n8n, Nginx, OceanBase, OpenCoze, RocketMQ, TiDB, and TiKV. - Added README.md and README.zh.md files for OceanBase, RocketMQ, TiDB, and TiKV, detailing usage, configuration, and access instructions. - Implemented docker-compose.yaml files for OceanBase, RocketMQ, TiDB, and TiKV, defining service configurations, health checks, and resource limits. - Included broker.conf for RocketMQ to specify broker settings. - Established a consistent timezone (UTC) across all services. - Provided optional port overrides in .env.example files for flexibility in deployment.
This commit is contained in:
13
src/rocketmq/.env.example
Normal file
13
src/rocketmq/.env.example
Normal file
@@ -0,0 +1,13 @@
|
||||
# RocketMQ version
|
||||
ROCKETMQ_VERSION=5.3.1
|
||||
ROCKETMQ_DASHBOARD_VERSION=2.0.0
|
||||
|
||||
# Timezone
|
||||
TZ=UTC
|
||||
|
||||
# Port overrides (optional)
|
||||
# ROCKETMQ_NAMESRV_PORT_OVERRIDE=9876
|
||||
# ROCKETMQ_BROKER_PORT_OVERRIDE=10909
|
||||
# ROCKETMQ_BROKER_VIP_PORT_OVERRIDE=10911
|
||||
# ROCKETMQ_BROKER_HA_PORT_OVERRIDE=10912
|
||||
# ROCKETMQ_DASHBOARD_PORT_OVERRIDE=8080
|
||||
87
src/rocketmq/README.md
Normal file
87
src/rocketmq/README.md
Normal file
@@ -0,0 +1,87 @@
|
||||
# RocketMQ
|
||||
|
||||
Apache RocketMQ is a distributed messaging and streaming platform with low latency, high performance and reliability, trillion-level capacity and flexible scalability.
|
||||
|
||||
## Usage
|
||||
|
||||
```bash
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
## Components
|
||||
|
||||
This setup includes:
|
||||
|
||||
- **NameServer**: Manages broker routing information
|
||||
- **Broker**: Stores and delivers messages
|
||||
- **Dashboard**: Web UI for monitoring and management
|
||||
|
||||
## Configuration
|
||||
|
||||
The broker configuration is in `broker.conf`. Key settings:
|
||||
|
||||
- `brokerClusterName`: Cluster name
|
||||
- `brokerName`: Broker name
|
||||
- `autoCreateTopicEnable`: Auto-create topics (enabled by default)
|
||||
- `flushDiskType`: Disk flush strategy (`ASYNC_FLUSH` for better performance)
|
||||
|
||||
## Ports
|
||||
|
||||
- `9876`: NameServer port
|
||||
- `10909`: Broker listening port (fastRemotingServer)
|
||||
- `10911`: Broker port (remoting server)
|
||||
- `10912`: Broker HA port
|
||||
- `8080`: Dashboard Web UI
|
||||
|
||||
## Access
|
||||
|
||||
### Dashboard
|
||||
|
||||
Access the RocketMQ Dashboard at: <http://localhost:8080>
|
||||
|
||||
### Command Line Tools
|
||||
|
||||
Execute admin commands:
|
||||
|
||||
```bash
|
||||
# List clusters
|
||||
docker compose exec broker mqadmin clusterList -n namesrv:9876
|
||||
|
||||
# List topics
|
||||
docker compose exec broker mqadmin topicList -n namesrv:9876
|
||||
|
||||
# Create topic
|
||||
docker compose exec broker mqadmin updateTopic -n namesrv:9876 -c DefaultCluster -t TestTopic
|
||||
|
||||
# Query message
|
||||
docker compose exec broker mqadmin queryMsgById -n namesrv:9876 -i <messageId>
|
||||
```
|
||||
|
||||
## Example: Send and Receive Messages
|
||||
|
||||
```bash
|
||||
# Send messages
|
||||
docker compose exec broker sh /home/rocketmq/rocketmq/bin/tools.sh org.apache.rocketmq.example.quickstart.Producer
|
||||
|
||||
# Consume messages
|
||||
docker compose exec broker sh /home/rocketmq/rocketmq/bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer
|
||||
```
|
||||
|
||||
## Client Connection
|
||||
|
||||
Configure your RocketMQ client to connect to:
|
||||
|
||||
- NameServer: `localhost:9876`
|
||||
|
||||
## Notes
|
||||
|
||||
- This is a single-master setup suitable for development
|
||||
- For production, use a multi-master or multi-master-multi-slave setup
|
||||
- Adjust JVM heap sizes in `JAVA_OPT_EXT` based on your needs
|
||||
- Data is persisted in named volumes
|
||||
|
||||
## References
|
||||
|
||||
- [RocketMQ Official Documentation](https://rocketmq.apache.org/docs/quick-start/)
|
||||
- [RocketMQ Docker Hub](https://hub.docker.com/r/apache/rocketmq)
|
||||
- [RocketMQ Dashboard](https://github.com/apache/rocketmq-dashboard)
|
||||
87
src/rocketmq/README.zh.md
Normal file
87
src/rocketmq/README.zh.md
Normal file
@@ -0,0 +1,87 @@
|
||||
# RocketMQ
|
||||
|
||||
Apache RocketMQ 是一个分布式消息和流平台,具有低延迟、高性能和可靠性,万亿级容量和灵活的可扩展性。
|
||||
|
||||
## 使用方法
|
||||
|
||||
```bash
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
## 组件说明
|
||||
|
||||
此配置包含:
|
||||
|
||||
- **NameServer**:管理 Broker 路由信息
|
||||
- **Broker**:存储和传递消息
|
||||
- **Dashboard**:监控和管理的 Web UI
|
||||
|
||||
## 配置说明
|
||||
|
||||
Broker 配置在 `broker.conf` 文件中,主要设置:
|
||||
|
||||
- `brokerClusterName`:集群名称
|
||||
- `brokerName`:Broker 名称
|
||||
- `autoCreateTopicEnable`:自动创建主题(默认启用)
|
||||
- `flushDiskType`:磁盘刷新策略(`ASYNC_FLUSH` 性能更好)
|
||||
|
||||
## 端口说明
|
||||
|
||||
- `9876`:NameServer 端口
|
||||
- `10909`:Broker 监听端口(fastRemotingServer)
|
||||
- `10911`:Broker 端口(remoting server)
|
||||
- `10912`:Broker HA 端口
|
||||
- `8080`:Dashboard Web UI
|
||||
|
||||
## 访问方式
|
||||
|
||||
### Dashboard
|
||||
|
||||
访问 RocketMQ Dashboard:<http://localhost:8080>
|
||||
|
||||
### 命令行工具
|
||||
|
||||
执行管理命令:
|
||||
|
||||
```bash
|
||||
# 列出集群
|
||||
docker compose exec broker mqadmin clusterList -n namesrv:9876
|
||||
|
||||
# 列出主题
|
||||
docker compose exec broker mqadmin topicList -n namesrv:9876
|
||||
|
||||
# 创建主题
|
||||
docker compose exec broker mqadmin updateTopic -n namesrv:9876 -c DefaultCluster -t TestTopic
|
||||
|
||||
# 查询消息
|
||||
docker compose exec broker mqadmin queryMsgById -n namesrv:9876 -i <messageId>
|
||||
```
|
||||
|
||||
## 示例:发送和接收消息
|
||||
|
||||
```bash
|
||||
# 发送消息
|
||||
docker compose exec broker sh /home/rocketmq/rocketmq/bin/tools.sh org.apache.rocketmq.example.quickstart.Producer
|
||||
|
||||
# 消费消息
|
||||
docker compose exec broker sh /home/rocketmq/rocketmq/bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer
|
||||
```
|
||||
|
||||
## 客户端连接
|
||||
|
||||
配置 RocketMQ 客户端连接到:
|
||||
|
||||
- NameServer:`localhost:9876`
|
||||
|
||||
## 注意事项
|
||||
|
||||
- 这是一个单主配置,适合开发环境
|
||||
- 生产环境建议使用多主或多主多从配置
|
||||
- 根据需要在 `JAVA_OPT_EXT` 中调整 JVM 堆大小
|
||||
- 数据持久化在命名卷中
|
||||
|
||||
## 参考资料
|
||||
|
||||
- [RocketMQ 官方文档](https://rocketmq.apache.org/docs/quick-start/)
|
||||
- [RocketMQ Docker Hub](https://hub.docker.com/r/apache/rocketmq)
|
||||
- [RocketMQ Dashboard](https://github.com/apache/rocketmq-dashboard)
|
||||
22
src/rocketmq/broker.conf
Normal file
22
src/rocketmq/broker.conf
Normal file
@@ -0,0 +1,22 @@
|
||||
# Broker configuration
|
||||
brokerClusterName=DefaultCluster
|
||||
brokerName=broker-a
|
||||
brokerId=0
|
||||
|
||||
# Network settings
|
||||
brokerIP1=broker
|
||||
listenPort=10911
|
||||
|
||||
# Storage settings
|
||||
storePathRootDir=/home/rocketmq/store
|
||||
storePathCommitLog=/home/rocketmq/store/commitlog
|
||||
|
||||
# Auto create topic
|
||||
autoCreateTopicEnable=true
|
||||
autoCreateSubscriptionGroup=true
|
||||
|
||||
# Delete when
|
||||
deleteWhen=04
|
||||
|
||||
# Flush settings
|
||||
flushDiskType=ASYNC_FLUSH
|
||||
98
src/rocketmq/docker-compose.yaml
Normal file
98
src/rocketmq/docker-compose.yaml
Normal file
@@ -0,0 +1,98 @@
|
||||
x-default: &default
|
||||
restart: unless-stopped
|
||||
logging:
|
||||
driver: json-file
|
||||
options:
|
||||
max-size: 100m
|
||||
max-file: "3"
|
||||
|
||||
services:
|
||||
namesrv:
|
||||
<<: *default
|
||||
image: apache/rocketmq:${ROCKETMQ_VERSION:-5.3.1}
|
||||
command: sh mqnamesrv
|
||||
environment:
|
||||
TZ: ${TZ:-UTC}
|
||||
JAVA_OPT_EXT: "-Xms512m -Xmx512m"
|
||||
ports:
|
||||
- "${ROCKETMQ_NAMESRV_PORT_OVERRIDE:-9876}:9876"
|
||||
volumes:
|
||||
- namesrv_logs:/home/rocketmq/logs
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
cpus: '1.0'
|
||||
memory: 1G
|
||||
reservations:
|
||||
cpus: '0.25'
|
||||
memory: 512M
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "mqadmin clusterList -n localhost:9876 || exit 1"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
start_period: 30s
|
||||
|
||||
broker:
|
||||
<<: *default
|
||||
image: apache/rocketmq:${ROCKETMQ_VERSION:-5.3.1}
|
||||
command: sh mqbroker -n namesrv:9876 -c /home/rocketmq/broker.conf
|
||||
environment:
|
||||
TZ: ${TZ:-UTC}
|
||||
JAVA_OPT_EXT: "-Xms1g -Xmx1g"
|
||||
ports:
|
||||
- "${ROCKETMQ_BROKER_PORT_OVERRIDE:-10909}:10909"
|
||||
- "${ROCKETMQ_BROKER_VIP_PORT_OVERRIDE:-10911}:10911"
|
||||
- "${ROCKETMQ_BROKER_HA_PORT_OVERRIDE:-10912}:10912"
|
||||
volumes:
|
||||
- broker_logs:/home/rocketmq/logs
|
||||
- broker_store:/home/rocketmq/store
|
||||
- ./broker.conf:/home/rocketmq/broker.conf:ro
|
||||
depends_on:
|
||||
namesrv:
|
||||
condition: service_healthy
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
cpus: '2.0'
|
||||
memory: 2G
|
||||
reservations:
|
||||
cpus: '0.5'
|
||||
memory: 1G
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "mqadmin clusterList -n namesrv:9876 | grep -q broker || exit 1"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
start_period: 30s
|
||||
|
||||
dashboard:
|
||||
<<: *default
|
||||
image: apacherocketmq/rocketmq-dashboard:${ROCKETMQ_DASHBOARD_VERSION:-2.0.0}
|
||||
environment:
|
||||
TZ: ${TZ:-UTC}
|
||||
JAVA_OPTS: "-Xms256m -Xmx256m -Drocketmq.namesrv.addr=namesrv:9876"
|
||||
ports:
|
||||
- "${ROCKETMQ_DASHBOARD_PORT_OVERRIDE:-8080}:8080"
|
||||
depends_on:
|
||||
namesrv:
|
||||
condition: service_healthy
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
cpus: '1.0'
|
||||
memory: 512M
|
||||
reservations:
|
||||
cpus: '0.25'
|
||||
memory: 256M
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "wget --no-verbose --tries=1 --spider http://localhost:8080 || exit 1"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
start_period: 30s
|
||||
|
||||
volumes:
|
||||
namesrv_logs:
|
||||
broker_logs:
|
||||
broker_store:
|
||||
Reference in New Issue
Block a user