Event Store Docker 部署

1. 前提

  • 建议使用 64 位的 Linux / Unix 系统
  • 4GB+ 可用磁盘,用于 Event Store 服务器。

本文将以 RocketMQ 事件存储为例,您也可以选择其它 EventMesh 支持的事件存储。EventMesh 在非 standalone 模式下,依赖 RocketMQ 作为存储层。若您保持默认的 standalone 模式,则可跳过该步,直接进行 EventMesh Runtime 的部署。

在生产环境应使用 standalone 之外的事件存储,以支持更大的吞吐量和更高的可用性。

2. Docker 部署

2.1 拉取镜像

在命令行输入如下命令直接从 Docker Hub 上获取 RocketMQ 镜像:

  1. #获取 rocketmq 镜像
  2. sudo docker pull apache/rocketmq:4.9.4

您可以使用以下命令列出并查看本地已有的镜像:

  1. sudo docker images

如果终端显示如下所示的镜像信息,则说明 RocketMQ 镜像已经成功下载到本地。

  1. REPOSITORY TAG IMAGE ID CREATED SIZE
  2. apache/rocketmq 4.9.4 a2a50ca263c3 13 months ago 548MB

rocketmq_docker_1

2.2 运行容器

运行 namesrv 容器和 broker 容器:

  1. sudo docker run -d -p 9876:9876 \
  2. -v `pwd`/data/namesrv/logs:/root/logs \
  3. -v `pwd`/data/namesrv/store:/root/store \
  4. --name rmqnamesrv \
  5. apache/rocketmq:4.9.4 \
  6. sh mqnamesrv

运行 broker 容器:

  1. sudo docker run -d -p 10911:10911 -p 10909:10909 \
  2. -v `pwd`/data/broker/logs:/root/logs \
  3. -v `pwd`/data/broker/store:/root/store \
  4. --name rmqbroker \
  5. --link rmqnamesrv:namesrv \
  6. -e "NAMESRV_ADDR=namesrv:9876" \
  7. apache/rocketmq:4.9.4 \
  8. sh mqbroker -c ../conf/broker.conf

rocketmq_docker_2

请注意 rocketmq-broker ippod ip, 如果你想修改这个 ip, 可以通过挂载容器中 broker.conf 文件的方式并修改文件中的 brokerIP1 配置项为自定义值。

至此 Event Store 的部署已完成,请转至下一步完成 EventMesh Runtime 的部署。