比赛链接:
https://tianchi.aliyun.com/competition/entrance/531923/information
比赛内容: Apache Dubbo 作为一款可拓展性极高的 RPC 框架,支持高度自定义化的集群调度机制,本次比赛要求参赛者基于 Dubbo 提供的集群调度自定义化能力,辅以调用过滤链机 制、自定义负载均衡机制等功能,设计一种柔性调度机制。
本文主要介绍,如何在单台linux服务器中,使用docker部署测试环境。
1. 安装启动NACOS
1.1. 安装
sudo docker pull nacos/nacos-server
sudo mkdir -p /home/nacos/logs
1.2. 启动
docker run \
--name nacos -itd \
-e MODE=standalone \
-p 8848:8848 \
-v /home/nacos/logs:/home/nacos/logs \
nacos/nacos-server
1.3. 测试
访问:http://localhost:8848/nacos
账号/密码:nacos/nacos
2. 部署运行Consumer程序
2.1. Dockerfile
编写内容如下:
FROM openjdk:8-jre-alpine
ADD target/service-consumer.jar app.jar
ENTRYPOINT ["java", "-jar", "-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8888", "/app.jar"]
EXPOSE 8087
2.2. 生成
sudo docker build -t dubbo-consumer .
2.3. 运行
sudo docker run -d -p 8087:8087 --name dubbo-consumer dubbo-consumer
2.4. 测试
sudo docker logs dubbo-consumer
3. 部署运行Provider程序
3.1. dockerfile
编写内容如下:
FROM openjdk:8-jre-alpine
ARG env1=large
ARG port=20890
ENV quota $env1
RUN echo "[Debug] quota: $env1"
RUN echo "[Debug] port: $port"
ADD target/service-provider.jar app.jar
ENTRYPOINT ["java", "-jar","/app.jar"]
EXPOSE $port
3.2. 生成
sudo docker build -t dubbo-provider-small --build-arg env1=small --build-arg port=20880 .
sudo docker build -t dubbo-provider-medium --build-arg env1=medium --build-arg port=20870 .
sudo docker build -t dubbo-provider-large --build-arg env1=large --build-arg port=20890 .
3.3. 运行
sudo docker run -d -p 20880:20880 --name dubbo-provider-small dubbo-provider-small
sudo docker run -d -p 20870:20870 --name dubbo-provider-medium dubbo-provider-medium
sudo docker run -d -p 20890:20890 --name dubbo-provider-large dubbo-provider-large
3.4. 测试
sudo docker logs dubbo-provider-small
sudo docker logs dubbo-provider-medium
sudo docker logs dubbo-provider-large
4. 附:常用命令
- 启动nacos
sudo docker start nacos
- 重置consumer(需进入service-consumer目录)
sudo docker container rm dubbo-consumer -f
sudo docker build -t dubbo-consumer .
sudo docker run -d -p 8087:8087 -p 8888:8888 --name dubbo-consumer dubbo-consumer