Dubbo原理

/ Java / 0 条评论 / 691浏览
Dubbo Admin名称改成了Dubbo OPS,目前功能简陋,不建议使用(2018/10月)。架构上使用了前后端分离。前端使用Vue实现,后端使用Spring Boot实现。在安装之前你需要先安装Node和NPM用于运行前端项目。

wget http://mirrors.hust.edu.cn/apache/maven/maven-3/3.1.1/binaries/apache-maven-3.1.1-bin.tar.gz
tar zxf apache-maven-3.1.1-bin.tar.gz -C /usr/local

vi /etc/profile
export M2_HOME=/usr/local/maven3
export PATH=$PATH:$JAVA_HOME/bin:$M2_HOME/bin
source /etc/profile

1. git clone
https://github.com/apache/incubator-dubbo-ops.git  【master分支就是dubbo-admin】

2. 修改配置文件-zoo
dubbo-admin-backend/src/resources/application-production.properties

3.dubbo-admin-frontend端口配置
https://blog.csdn.net/u012627861/article/details/82754027

npm install 
npm run build
npm run dev或npm start启动项目 

4. 后端项目端口修改

//mvn clean package
//java -jar dubbo-admin-backend-0.0.1-SNAPSHOT.jar -- 这种方式启动有点问题404
mvn --projects dubbo-admin-backend spring-boot:run  --启动

wiki
http://dubbo.apache.org/zh-cn/docs/admin/ops/dubbo-ops.html


下载dubbo-demo项目 - Provider + Consumer + API
1. 执行provider注册服务 右击run

2. 执行consumer main



负载均衡(高可用)
 对服务提供者的配置文件,Dubbo 任务application name相同则认为是同一集群。部署多个同一集群的不同端口服务即可。
 zookeeper自己本身没有负载均衡功能,但是他的特性可以借助其他方法实现类似负载均衡的能力。比如dubbo消费者取得了服务器列表之后,会随机调用其中的一个。就实现了类似负载均衡
【service调用---】dubbo://10.1.13.192:20880 


 在实际调用过程中,Provider的位置对于Consumer来说是透明的,
但上一次调用服务的位置(IP地址)和下一次调用服务的位置,是不确定的。这个地方就是实现了软负载
0 - 服务提供者先启动start,然后注册register服务 
2 - 消费订阅subscribe服务,如果没有订阅到自己想获得的服务,它会不断的尝试订阅  
3 - 新的服务注册到注册中心以后,注册中心会将这些服务通过notify到消费者
5 -  Monitor功能需要单独配置,不配置或者配置以后,Monitor挂掉并不会影响服务的调用

Provider过程