本篇快速入门将详细介绍使用 docker 部署 EventMesh,以 RocketMQ 作为对接的中间件。
首先,你可以打开一个命令行,并且使用下面的 pull 命令从 Docker Hub 中下载最新发布的 EventMesh 。
sudo docker pull eventmesh/eventmesh:v1.3.0
在下载过程中和下载结束后,你可以看到命令行中显示以下的文字:
ubuntu@VM-16-4-ubuntu:~$ sudo docker pull eventmesh/eventmesh:v1.3.0 v1.3.0: Pulling from eventmesh/eventmesh 2d473b07cdd5: Downloading [======> ] 9.649MB/76.1MB 2b97b2e51c1a: Pulling fs layer ccef593d4fe7: Pulling fs layer 70beb7ae51cd: Waiting 0a2cf32321af: Waiting 5d764ea8950d: Waiting 71d02dcd996d: Waiting v1.3.0: Pulling from eventmesh/eventmesh 2d473b07cdd5: Pull complete 2b97b2e51c1a: Pull complete ccef593d4fe7: Pull complete 70beb7ae51cd: Pull complete 0a2cf32321af: Pull complete 5d764ea8950d: Pull complete 71d02dcd996d: Pull complete Digest: sha256:267a93a761e999790f8bd132b09541f0ffab551e8618097a4adce8e3e66bbe4e Status: Downloaded newer image for eventmesh/eventmesh:v1.3.0 docker.io/eventmesh/eventmesh:v1.3.0
接下来,你可以使用以下命令列出并查看本地已有的镜像。
sudo docker images
终端中会显示如下所示的镜像信息,可以发现 EventMesh 镜像已经成功下载到本地了。
ubuntu@VM-16-4-ubuntu:~$ sudo docker images REPOSITORY TAG IMAGE ID CREATED SIZE eventmesh/eventmesh v1.3.0 da0008c1d03b 7 days ago 922MB
在根据 EventMesh 镜像运行对应容器之前,你需要创建一些配置文件。
本篇入门指导使用 RocketMQ 作为对接的中间件,所以需要两个配置文件,分别是:eventMesh.properties 和 rocketmq-client.properties。
首先,你需要使用下面的命令创建这两个文件。
sudo mkdir -p /data/eventmesh/rocketmq/conf cd /data/eventmesh/rocketmq/conf sudo touch eventmesh.properties sudo touch rocketmq-client.properties
这个配置文件中包含 EventMesh 运行时环境和集成进来的其他插件所需的参数。
使用下面的 vi 命令编辑 eventmesh.properties。
sudo vi eventmesh.properties
在快速入门的阶段,你可以直接将 GitHub 仓库中的对应配置文件中的内容复制过来,链接为:https://github.com/apache/incubator-eventmesh/blob/1.3.0/eventmesh-runtime/conf/eventmesh.properties 。
其中的一些默认属性键值对如下所示:
| 属性 | 默认值 | 备注 |
|---|---|---|
| eventMesh.server.http.port | 10105 | EventMesh http server port |
| eventMesh.server.tcp.port | 10000 | EventMesh tcp server port |
| eventMesh.server.grpc.port | 10205 | EventMesh grpc server port |
这个配置文件中包含 RocketMQ nameserver 的一些信息。
使用下面的 vi 命令编辑 rocketmq-client.properties。
sudo vi rocketmq-client.properties
在快速入门的阶段,你可以直接将 GitHub 仓库中的对应配置文件中的内容复制过来,链接为:https://github.com/apache/incubator-eventmesh/blob/1.3.0/eventmesh-runtime/conf/rocketmq-client.properties 。但要记得将默认值改为一个实际正在运行的 nameserver 地址。
默认的键值对示例如下所示:
| 属性 | 默认值 | 备注 |
|---|---|---|
| eventMesh.server.rocketmq.namesrvAddr | 127.0.0.1:9876;127.0.0.1:9876 | RocketMQ namesrv default address |
现在你就可以开始根据下载好的 EventMesh 镜像运行容器了。
使用到的命令是 docker run,有以下两点内容需要格外注意。
docker run 的 -p 选项。docker run 的 -v 选项。综合一下,对应的启动命令为:
sudo docker run -d \ -p 10000:10000 -p 10105:10105 \ -v /data/eventmesh/rocketmq/conf/eventMesh.properties:/data/app/eventmesh/conf/eventMesh.properties \ -v /data/eventmesh/rocketmq/conf/rocketmq-client.properties:/data/app/eventmesh/conf/rocketmq-client.properties \ eventmesh/eventmesh:v1.3.0
如果运行命令之后看到新输出一行字符串,那么运行 EventMesh 镜像的容器就启动成功了。
接下来,你可以使用下面的命令查看容器的状态。
sudo docker ps
如果成功的话,你会看到终端打印出了如下所示容器的信息,其中就有运行 EventMesh 镜像的容器。
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES d1e1a335d4a9 eventmesh/eventmesh:v1.3.0 "/bin/sh -c 'sh star…" About a minute ago Up About a minute 0.0.0.0:10000->10000/tcp, :::10000->10000/tcp, 0.0.0.0:10105->10105/tcp, :::10105->10105/tcp focused_bartik
从这个信息中可以看出,container id 是 d1e1a335d4a9,随机 name 是 focused_bartik,它们都可以用来唯一标识这个容器。注意:在你的电脑中,它们的值可能跟这里的不同。
在成功的运行了 EventMesh 容器后,你可以通过进入容器、查看日志、删除容器等方式管理容器。
进入容器 命令示例:
sudo docker exec -it [your container id or name] /bin/bash
在容器中 查看日志 命令示例:
cd ../logs tail -f eventmesh.out
删除容器 命令示例:
sudo docker rm -f [your container id or name]
既然 EventMesh 已经通过容器运行了,现在你可以参考 eventmesh-examples 模块 编写并测试自己的代码了。
希望你享受这个过程并获得更多收获!