Docker下dubbo开发,三部曲之一:极速体验
Posted 猿人课堂
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Docker下dubbo开发,三部曲之一:极速体验相关的知识,希望对你有一定的参考价值。
DUBBO是一个分布式服务框架,从本章开始,我们由浅入深,先体验再实战,逐步入门dubbo服务的开发、部署和调用,本章的目标是以最快的速度体验dubbo服务;
启动容器
创建一个docker-compose.yml文件,内容如下:
version: '2'
services:
zk_server:
image: daocloud.io/library/zookeeper:3.3.6
restart: always
dubbo_admin:
image: bolingcavalry/dubbo_admin_tomcat:0.0.1
links:
- zk_server:zkhost depends_on:
- "zk_server" ports:
- "8080:8080" restart: always
dubbo_provider:
image: bolingcavalry/dubbo_provider_tomcat:0.0.1
links:
- zk_server:zkhost depends_on:
- "dubbo_admin" environment:
TOMCAT_SERVER_ID: dubbo_provider_tomcat
restart: always
dubbo_consumer:
image: bolingcavalry/online_deploy_tomcat:0.0.1
ports:
- "8082:8080" environment:
TOMCAT_SERVER_ID: dubbo_consumer_tomcat
restart: always
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
然后用命令行在docker-compose.yml所在的目录下执行命令docker-compose up -d,启动yml文件中定义的四个容器,如下图:
录成功后,在“服务治理“菜单下点击“应用“,如下图:
以看到如下图的列表,有一个应用被dubbo发现:dubbo_service_provider,是服务提供者:
击上图中的dubbo_service_provider,可以看到这个应用提供了两个服务,如下图:
署服务消费者demo
接下来我们部署一个web应用来调用dubbo_provider提供的服务,部署分三步:
1. 确定zookeeper的ip;
2. 把zookeeeper的ip填入web应用的配置信息中;
3. 把web应用部署到docker容器16_dubbo_consumer_1中(执行docker-compose up -d命令时创建的容器);
先确定zookeeper的ip,前面执行docker-compose up -d的时候,控制台提示zookeeper容器的名称是16_zk_server_1,因此执行以下命令可看zookeeper容器ip:
docker exec -it 16_zk_server_1 ip a
1
如下图,ip是172.28.0.4
想用github的读者也可以点击这里直接下载压缩包;
下载源码后,在dubbo_service_consumer/src/main/resources目录下,打开spring-extends.xml文件,修改下图红框中的ip,改成172.28.0.4:
开控制台,在dubbo_service_consumer目录下执行以下命令开始 编译、打包、部署:
mvn clean package -U -Dmaven.test.skip=true tomcat7:redeploy
1
从控制台上可以看到在线部署的情况,如下图:
证远程调用
部署完成,可以测试了,测试的逻辑是在dubbo_consumer容器上的jsp页面发请求,对应的后台会远程调用dubbo_provider容器里的应用提供的RPC服务,也就是之前截图中看到的com.bolingcavalry.service.CalculateService和com.bolingcavalry.service.PlatformService这两个服务;
在浏览器输入http://localhost:8082/dubboserviceconsumer/add,可以看到一个简单的页面如下图:
两个输入框随便填数字,提交后页面展示如下图:
里的计算结果,就是调用dubbo_provider容器提供的CalculateService服务执行的结果,“来自[dubbo_provider_tomcat]“这句话中的”dubbo_provider_tomcat”则是PlatformService服务提供的(“dubbo_provider_tomcat“是dubbo_provider容器的环境变量,docker-compose.yml中设置的),都是dubbo_consumer容器中的应用远程调用服务的结果;
留下疑问
以上就是dubbo服务的体验过程,看完本文,您是否会有这样的疑惑:dubbo_provider的部署很简单,把war包和tomcat做成一个镜像就能通过docker-compose直接创建容器了,但dubbo_consumer为何要如此麻烦,自己下载源码、改参数、编译、部署,为什么不能像dubbo_provider那样直接做成镜像,那样的话体验起来不是更简单快捷么?
这的确是个问题,后面我会继续写文章和大家一起讨论,就不在本文展开了,本文的目的很简单,就是和大家一起体验一下dubbo环境和远程调用服务.
文章来自网络:https://blog.csdn.net/boling_cavalry/article/details/72303126
以上是关于Docker下dubbo开发,三部曲之一:极速体验的主要内容,如果未能解决你的问题,请参考以下文章
Docker下RabbitMQ四部曲之一:极速体验(单机和集群)