docker-compose.yml
version: '3'
services:
dashboard:
container_name: dashboard
image: lhstack/rocketmq:dashboard-5.1.0
ports:
- '8080:8080'
environment:
NAMESRV_ADDRS: "192.168.3.188:9876,192.168.3.188:9886" # 多个namesrv地址用,隔开
ACCESS_KEY: "RocketMq" # 开启了acl后使用
SECRET_KEY: "12345678" # 开启了acl后使用
USE_TLS: true # 是否启用tls
LOGIN_REQUIRED: true #设置是否需要登录,对应环境变量DATA/users.properties
##users.properties
# admin=admin,1 #1: 超级管理员
# user1=user1
# user1=user1,0 #0: 普通用户
DATA: /root/data #数据保存路径
MSG_TRACK_TOPIC_NAME: "test-track-topic" # 自定义消息轨迹topic,生产者和消费者如果使用了消息轨迹功能,如果需要在这个上面发送消息,并且开启消费轨迹,则三端需一致
deploy:
resources:
limits:
cpus: 50m
memory: 512M
logging:
options:
max-size: 1k
max-file: 1
docker-compose.yml
version: '3'
services:
namesrv:
container_name: namesrv
image: lhstack/rocketmq:4.9.3-alpine
environment:
JAVA_OPT: "-Xmx64m -Xms64m -XX:MaxMetaspaceSize=32m"
logging:
options:
max-file: '1'
max-size: '16k'
restart: always
ports:
- '9886:9886'
deploy:
resources:
limits:
cpus: '0.5'
memory: '128M'
networks:
rocketmq:
ipv4_address: 168.128.98.76
command:
- sh
- -c
- |
cat >/namesrv.properties<<EOF
listenPort=9886
useEpollNativeSelector=true
EOF
mqnamesrv -c /namesrv.properties
broker:
container_name: broker
image: lhstack/rocketmq:4.9.3-alpine
environment:
JAVA_OPT: "-Xmx384m -Xms384m -XX:MaxMetaspaceSize=128m"
depends_on:
- namesrv
logging:
options:
max-file: '1'
max-size: '16k'
restart: always
deploy:
resources:
limits:
cpus: '0.5'
memory: '512M'
network_mode: host
command:
- sh
- -c
- |
cat > /broker.conf<<EOF
brokerClusterName = DefaultCluster
brokerName = broker-a
brokerId = 0
deleteWhen = 04
fileReservedTime = 48
brokerRole = ASYNC_MASTER
flushDiskType = ASYNC_FLUSH
aclEnable = false
listenPort = 10922
namesrvAddr = 168.128.98.76:9886
EOF
mqbroker -c /broker.conf
networks:
rocketmq:
driver: bridge
ipam:
driver: default
config:
- subnet: '168.128.0.0/16'
rocketmq.yml
apiVersion: v1
kind: Service
metadata:
name: rocketmq-namesrv
spec:
type: ClusterIP
ports:
- name: tcp
port: 9876
selector:
app: rocketmq-namesrv
---
apiVersion: v1
kind: ConfigMap
metadata:
name: rocketmq
data:
namesrv.properties: |
listenPort=9876
useEpollNativeSelector=true
broker.conf: |
brokerClusterName = DefaultCluster
brokerName = broker-a
brokerId = 0
deleteWhen = 04
fileReservedTime = 48
brokerRole = ASYNC_MASTER
flushDiskType = ASYNC_FLUSH
aclEnable = true
listenPort = 10911
namesrvAddr = rocketmq-namesrv.default.svc.cluster.local:9876
plain-acl.yml: |
globalWhiteRemoteAddresses:
accounts:
- accessKey: RocketMq
secretKey: 12345678
whiteRemoteAddress:
admin: true
- accessKey: TestAccount
secretKey: TestSecret
whiteRemoteAddress:
admin: false
defaultTopicPerm: DENY
defaultGroupPerm: SUB
topicPerms:
- topicA=DENY
groupPerms:
- groupA=DENY
---
apiVersion: v1
kind: Pod
metadata:
name: rocketmq-namesrv
labels:
app: rocketmq-namesrv
spec:
volumes:
- name: conf
configMap:
name: rocketmq
items:
- key: namesrv.properties
path: namesrv.properties
containers:
- name: rocketmq-namesrv
image: lhstack/rocketmq
imagePullPolicy: IfNotPresent
volumeMounts:
- name: conf
mountPath: /namesrv.properties
subPath: namesrv.properties
resources:
requests:
cpu: 10m
memory: 32Mi
limits:
cpu: 20m
memory: 64Mi
ports:
- name: tcp
containerPort: 9876
env:
- name: JAVA_OPT
value: "-Xmx64m -Xms64m -Xmn1m"
command:
- sh
- -c
- |
mqnamesrv -c /namesrv.properties
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: rocketmq-broker
spec:
replicas: 1
selector:
matchLabels:
app: rocketmq-broker
template:
metadata:
labels:
app: rocketmq-broker
spec:
volumes:
- name: conf
configMap:
name: rocketmq
items:
- key: broker.conf
path: broker.conf
- name: plain
configMap:
name: rocketmq
items:
- key: plain-acl.yml
path: plain-acl.yml
- name: data
hostPath:
path: /home/rocketmq/data
containers:
- name: rocketmq-broker
image: lhstack/rocketmq
imagePullPolicy: IfNotPresent
ports:
- name: tcp
containerPort: 10911
resources:
requests:
cpu: 50m
memory: 128Mi
limits:
cpu: 100m
memory: 1.2Gi
env:
- name: JAVA_OPT
value: "-Xmx1g -Xms1g"
volumeMounts:
- name: data
mountPath: /root
- name: conf
mountPath: /broker.conf
subPath: broker.conf
- name: plain
mountPath: /rocketmq/conf/plain_acl.yml
subPath: plain-acl.yml
command:
- sh
- -c
- mqbroker -c /broker.conf
Content type
Image
Digest
Size
108.9 MB
Last updated
over 4 years ago
docker pull lhstack/rocketmq