Broker to support backstage event hub
2.0K
version: '3.8'
services:
zookeeper:
image: zookeeper:3.8
container_name: zookeeper
hostname: zookeeper
ports:
- "2181:2181"
environment:
ZOO_MY_ID: 1
volumes:
- ./storage/zk-data1:/data
- ./storage/zk-datalog1:/datalog
networks:
- bookkeeper-network
healthcheck:
test: ["CMD-SHELL", "echo stat | nc localhost 2181 | grep 'Zookeeper version'"]
interval: 10s
timeout: 5s
retries: 3
bookie:
image: apache/bookkeeper:4.17.2
hostname: bookie
#command: bin/bookkeeper shell metaformat -nonInteractive -force
entrypoint: ["/opt/bookkeeper/init.sh"]
environment:
BK_metadataServiceUri: zk://zookeeper:2181/bookkeeper/ledgers
BK_DATA_DIR: /data/bookkeeper
volumes:
- bookie1-data:/data/bookkeeper
- ./init.sh:/opt/bookkeeper/init.sh
- ./bookkeeper.conf:/opt/bookkeeper/conf/bk_server.conf # Mount config
ports:
- "13181:3181"
networks:
- bookkeeper-network
depends_on:
- zookeeper
redis:
image: redis
container_name: redis
ports:
- "6379:6379"
volumes:
- redis-data:/data
networks:
- bookkeeper-network
mariadb:
image: mariadb:12.0.2
container_name: mariadb
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: broker
MYSQL_USER: appuser
MYSQL_PASSWORD: apppass
ports:
- "3306:3306"
volumes:
- mysql-data:/var/lib/mysql
networks:
- bookkeeper-network
broker:
image: backstage4j/broker:latest
container_name: broker
restart: unless-stopped
environment:
BIGBRO_BROKER_KEEPER_METADATASERVICEURI: zk://zookeeper:2181/bookkeeper/ledgers
BIGBRO_BROKER_KEEPER_ENSEMBLESIZE: 3
BIGBRO_BROKER_KEEPER_WRITEQUORUM: 2
BIGBRO_BROKER_KEEPER_ACKQUORUM: 2
SPRING_DATASOURCE_USERNAME: root
SPRING_DATASOURCE_PASSWORD: root
SPRING_DATASOURCE_URL: jdbc:mariadb://mariadb:3306/broker?useSSL=false&autoReconnect=true&serverTimezone=UTC&allowPublicKeyRetrieval=true&rewriteBatchedStatements=true&useBatchMultiSend=true
SPRING_DATA_REDIS_HOST: redis
SPRING_DATA_REDIS_PORT: 6379
MANAGEMENT_ENDPOINTS_WEB_EXPOSURE_INCLUDE: prometheus,loggers,admin
SERVER_IPPREFIX: 172
ports:
- "1571:1571"
- "1771:1771"
volumes:
- mysql-data:/var/lib/mysql
networks:
- bookkeeper-network
depends_on:
- zookeeper
- bookie
- redis
- mariadb
volumes:
redis-data:
mysql-data:
bookie1-data:
networks:
bookkeeper-network:
driver: bridge
# Single-node optimized configuration
useHostNameAsBookieID=true
journalDirectory=/data/bookkeeper/journal
ledgerDirectories=/data/bookkeeper/ledgers
indexDirectories=/data/bookkeeper/ledgers
journalSyncData=true
journalMaxSizeMB=512
journalMaxBackups=10
journalPreAllocSizeMB=16
gcWaitTime=30000
openFileLimit=4096
# Single-node specific optimizations
numAddWorkerThreads=4
numReadWorkerThreads=4
numJournalCallbackThreads=2
metadataServiceUri=zk://zookeeper:2181/bookkeeper/ledgers
#!/bin/bash
if [ ! -f "/data/bookkeeper/.metaformatted" ]; then
echo "Running BookKeeper metaformat..."
bin/bookkeeper shell metaformat -nonInteractive -force
touch /data/bookkeeper/.metaformatted
fi
# Start the bookie normally
bin/bookkeeper bookie
Content type
Image
Digest
sha256:0c7f64b56…
Size
231.9 MB
Last updated
7 months ago
docker pull backstage4j/broker