Dubbo
Apache Dubbo 是一款高性能,轻量级的开源RPC服务框架
Apache Dubbo 提供了六大核心能力:
1、面向接口代理的高性能RPC调用
2、智能容错和负载均衡
3、服务自动注册和发现
4、高度可扩展能力
5、运行期流量调度
6、可视化的服务治理与运维.
SpringCloud 提供了微服务的全家桶的整套解决方案,Dubbo只是实现了微服务中RPC部分的功能,基本相当于SpringCloud中的Feign,还需要组合其它服务才能实现全部功能
阿里云微服务
https://promotion.aliyun.com/ntms/act/edasdubbo.html
Dubbo官网
https://dubbo.apache.org/zh/
实现Dubbo架构
zookeeper做注册中心、服务发现
通过Dubbo来实现服务的provider(生产者)和consumer(消费者)
环境说明
#准备三台zookeeper集群 #可用之前安装脚本一键安装
#10.0.0.101 node1
#10.0.0.102 node2
#10.0.0.103 node3
#准备两台主机充当provider(生产者)
#10.0.0.104 provider1
#10.0.0.105 provider2
#准备两台主机充当consumer(消费者)
#10.0.0.106 consumer1
#10.0.0.107 consumer2
生产者安装示例(注意:此案例只支持Ubuntu18.04和Jdk8或11,但不支持Ubuntu20.04)
安装文档
https://github.com/apache/dubbo/tree/dubbo-2.1.5 https://github.com/apache/dubbo/tree/dubbo-2.1.5/dubbo-demo-provider
在10.0.0.104和10.0.0.105主机在启动provider
#Ubuntu系统
[root@ubuntu1804 ~]#apt -y install openjdk-8-jdk net-tools
#红帽系统
[root@centos8 ~]#yum -y install java-1.8.0-openjdk-devel nc
[root@ubuntu1804 ~]#tar xf dubbo-demo-provider-2.1.5-assembly.tar.gz -C /usr/local/
[root@ubuntu1804 ~]#ln -s /usr/local/dubbo-demo-provider-2.1.5/ /usr/local/dubbo-demo-provider
[root@ubuntu1804 ~]#vim /usr/local/dubbo-demo-provider/conf/dubbo.properties #dubbo.registry.address=multicast://224.5.6.7:1234 #注释此行,不使用默认的组播注册中心,添加下面行使用zookeeper做为注册中心
dubbo.registry.address=zookeeper://10.0.0.101:2181 | zookeeper://10.0.0.102:2181 | zookeeper://10.0.0.103:2181 #修改此行, zookeeper集群配置
#dubbo.registry.address=zookeeper://10.0.0.101:2181 #单zookeeper节点使用此配置
#启动provider
[root@ubuntu1804 ~]#/usr/local/dubbo-demo-provider/bin/start.sh
Starting the demo-provider ....
OK!
PID: 20846
STDOUT: logs/stdout.log
消费者安装示例
安装文档
https://github.com/apache/dubbo/tree/dubbo-2.1.5 https://github.com/apache/dubbo/tree/dubbo-2.1.5/dubbo-demo-consumer
在10.0.0.106和10.0.0.107主机在启动consumer
[root@ubuntu1804 ~]#apt -y install openjdk-8-jdk
[root@centos8 ~]#yum -y install java-1.8.0-openjdk nc
[root@ubuntu1804 ~]#tar xf dubbo-demo-consumer-2.1.5-assembly.tar.gz -C /usr/local/ [root@ubuntu1804 ~]#ln -s /usr/local/dubbo-demo-consumer-2.1.5/ /usr/local/dubbo-demo-consume
#和provider一样的zookeeper配置信息
[root@ubuntu1804 ~]#vim /usr/local/dubbo-demo-provider/conf/dubbo.properties #dubbo.registry.address=multicast://224.5.6.7:1234 #注释此行,不使用默认的组播注册中心,添加下面行使用zookeeper做为注册中心
dubbo.registry.address=zookeeper://10.0.0.101:2181 | zookeeper://10.0.0.102:2181 | zookeeper://10.0.0.103:2181 #修改此行, zookeeper集群配置
#dubbo.registry.address=zookeeper://10.0.0.101:2181 #单zookeeper节点使用此配置
#启动consumer
[root@ubuntu1804 ~]#/usr/local/dubbo-demo-consumer/bin/start.sh
Starting the demo-consumer ....
OK!
PID: 20804
STDOUT: logs/stdout.log
#注意: 如果有多个生产者.则消费会轮询多个消费都进行服务
Dubbo管理工具:图形化的web界面--Dubbo Admin
官方说明
https://github.com/apache/dubbo-admin
内存建议4G以上
安装示例
[root@ubuntu1804 ~]#cd /usr/local/src/
#git方式下载,此方法很慢
[root@ubuntu1804 src]#git clone https://github.com/apache/dubbo-admin.git
#直接下载zip文件,再解压缩
[root@ubuntu1804 src]#ll dubbo-admin-develop.zip -h
-rw-r--r-- 1 root root 1.2M Feb 18 16:08 dubbo-admin-develop.zip
[root@ubuntu1804 src]#unzip dubbo-admin-develop.zip
#进入到源码目录
[root@ubuntu1804 src]#cd dubbo-admin-develop/
[root@ubuntu1804 dubbo-admin-develop]#pwd /usr/local/src/dubbo-admin-develop [root@ubuntu1804 dubbo-admin-develop]#ls
codestyle doc dubbo-admin-distribution dubbo-admin-test LICENSE mvnw.cmd pom.xml README_ZH.md DISCLAIMER docker dubbo-admin-server dubbo-admin-ui mvnw NOTICE README.md
#修改zookeeper 地址为实际IP
[root@ubuntu1804 dubbo-admin-develop]#vim dubbo-adminserver/src/main/resources/application.properties
admin.registry.address=zookeeper://10.0.0.101:2181,10.0.0.102:2181,10.0.0.103:2181 admin.config-center=zookeeper://10.0.0.101:2181,10.0.0.102:2181,10.0.0.103:2181 admin.metadatareport.address=zookeeper://10.0.0.101:2181,10.0.0.102:2181,10.0.0.103:2181
#优化maven配置
[root@ubuntu1804 dubbo-admin-develop]#echo 'export MAVEN_OPTS="-Xmx2g -Xms2g"' >> /etc/profile.d/maven.sh
[root@ubuntu1804 dubbo-admin-develop]#source /etc/profile.d/maven.sh
#因为此项目中使用了nodejs,建议用下面方式加速
[root@ubuntu1804 dubbo-admin-develop]#apt -y install npm
[root@ubuntu1804 dubbo-admin-develop]#npm config get registry https://registry.npmjs.org/
[root@ubuntu1804 dubbo-admin-develop]#npm config set registry https://registry.npm.taobao.org
[root@ubuntu1804 dubbo-admin-develop]#npm config get registry https://registry.npm.taobao.org/
#执行java源码编译并跳过测试单元,推荐此方式
[root@ubuntu1804 dubbo-admin-develop]#mvn clean install package - Dmaven.test.skip=true
启动服务
#确保zookeeper已启动
[root@node1 ~]#zkServer.sh status
/usr/bin/java
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost. Client SSL: false.
Mode: follower
[root@ubuntu1804 ~]#java -jar /usr/local/src/dubbo-admin-develop/dubbo-admindistribution/target/dubbo-admin-0.3.0-SNAPSHOT.jar --server.port=8888
登录 Web 界面验证
浏览器访问下面地址,用登录名和密码为root登录