EventMesh Runtime (Docker)
The documentation introduces the steps to install the latest release of EventMesh Runtime with Docker and connect to Apache RocketMQ. It’s recommended to use a Linux-based system with Docker Engine. Please follow the Docker tutorial to get familiar with the basic concepts (registry, volume, etc.) and commands of Docker.
Dependencies
64-bit OS,we recommend Linux/Unix;
64-bit JDK 1.8+;
Gradle 7.0+, we recommend 7.0.*
4g+ available disk to deploy eventmesh-store
If you choose standalone mode, you could skip this file and go to the next step: Start Eventmesh-Runtime; if not, you could choose RocketMQ as the store layer.
Pull EventMesh Image
Download the pre-built image of eventmesh from Docker Hub with docker pull
:
$ sudo docker pull eventmesh/eventmesh:v1.4.0
To verify that the eventmesh/eventmesh
image is successfully installed, list the downloaded images with docker images
:
$ sudo docker images
eventmesh/eventmesh v1.4.0 6e2964599c78 2 weeks ago 937MB
Edit Configuration
Edit the eventmesh.properties
to change the configuration (e.g. TCP port, client blacklist) of EventMesh Runtime. To integrate RocketMQ as a connector, these two configuration files should be created: eventmesh.properties
and 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.properties
The eventmesh.properties
file contains the properties of EventMesh runtime environment and integrated plugins. Please refer to the default configuration file for the available configuration keys.
sudo vim eventmesh.properties
Configuration Key | Default Value | Description |
---|---|---|
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-client.properties
The rocketmq-client.properties
file contains the properties of the Apache RocketMQ nameserver.
sudo vim rocketmq-client.properties
Please refer to the default configuration file and change the value of eventMesh.server.rocketmq.namesrvAddr
to the nameserver address of RocketMQ.
Configuration Key | Default Value | Description |
---|---|---|
eventMesh.server.rocketmq.namesrvAddr | 127.0.0.1:9876;127.0.0.1:9876 | The address of RocketMQ nameserver |
Run and Manage EventMesh Container
Run an EventMesh container from the eventmesh/eventmesh
image with the docker run
command. The -p
option of the command binds the container port with the host machine port. The -v
option of the command mounts the configuration files from files in the host machine.
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.4.0
The docker ps
command lists the details (id, name, status, etc.) of the running containers. The container id is the unique identifier of the container.
$ sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
<container_id> eventmesh/eventmesh:v1.4.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 <container_name>
To connect to the EventMesh container:
sudo docker exec -it [container id or name] /bin/bash
To read the log of the EventMesh container:
tail -f ../logs/eventmesh.out
To stop or remove the container:
sudo docker stop [container id or name]
sudo docker rm -f [container id or name]