1. Dubbo
1.1 什么是Dubbo
- Apache Dubbo |ˈdʌbəʊ| 是一款高性能、轻量级的开源Java RPC框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。
- Dubbo官网:https://dubbo.apache.org/zh/
1.2 Dubbo架构
节点 | 说明 |
---|---|
服务提供者(Provider) | 暴露服务的服务提供方,服务提供者在启动时,向注册中心注册自己提供的服务。 |
服务消费者(Consumer) | 调用远程服务的服务消费方,服务消费者在启动时,向注册中心订阅自己所需的服务,服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。 |
注册中心(Registry) | 注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。 |
监控中心(Monitor) | 服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心。 |
调用关系说明
- 服务容器负责启动,加载,运行服务提供者。
- 服务提供者在启动时,向注册中心注册自己提供的服务。
- 服务消费者在启动时,向注册中心订阅自己所需的服务。
- 注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。
- 服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。
- 服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心。
Dubbo 架构具有以下几个特点,分别是连通性、健壮性、伸缩性、以及向未来架构的升级性。
1.3 Dubbo环境支持
Dubbo推荐我们使用ZooKeeper 注册中心,写下来,我们来认识和安装ZooKeeper。
2. ZooKeeper
2.1 什么是ZooKeeper
- ZooKeeper 是一个集中式服务,用于维护配置信息、命名、提供分布式同步和提供组服务。
- Zookeeper 是 Apache Hadoop 的子项目,是一个树型的目录服务,支持变更推送,适合作为 Dubbo 服务的注册中心,工业强度较高,可用于生产环境,并推荐使用
- Zookeeper官网:https://zookeeper.apache.org/
2.2 ZooKeeper的特性
- 一致性∶数据一致性,数据按照顺序分批入库;
- 原子性:事务要么成功要么失败,不会局部化;
- 单—视图∶客户端连接集群中的任─zk节点,数据都是一致的;
- 可靠性:每次对zk的操作状态都会保存在服务端;
- 实时性:客户端可以读取到k服务端的最新数据。
2.3 下载ZooKeeper
下载地址:https://downloads.apache.org/zookeeper/
2.4 启动ZooKeeper
2.4.1 可能会遇到的问题
问题1:初次运行会闪退
运行/bin/zkServer.cmd,初次运行会闪退。
解决方案:
我们可以在zkServer.cmd里面加pause,截止闪退,重启查看报错信息。
zkServer.cmd里面加pause
问题2:下载的版本未编译
重启,查看错误信息
原因分析:
也即是下载的是未编译的 jar 包。
注:zookeeper 好像从 3.5 版本以后,命名就发生了改变,如果是 apache-zookeeper-3.6.3.tar.gz 这般命名的,都是未编译的,而 apache-zookeeper-3.5.5-bin.tar.gz 这般命名的,才是已编译的包。
解决方案:
重新下载 apache-zookeeper-3.6.3-bin.tar.gz 包,然后解压使用。
问题3:缺少zoo.cfg
解决方案:
将conf文件夹下面的zoo_sample.cfg复制一份改名为zoo.cfg即可。
问题4:服务端口被占用
解决方案:
在zoo.cfg中配置admin.serverPort=8081修改端口。
2.4.2 成功启动
经历几大波折,成功启动。
2.4.3 使用zkCli.cmd测试
2.4.3.1 查看节点
ls /
2.4.3.2 创建节点
create -e /test 123
2.4.3.3 查看某个节点
get /test
3. Dubbo Admin控制台
- 为了让用户更好的管理监控众多的dubbo服务,官方提供了一个可视化的监控程序dubbo-admin,不过这个监控即使不装也不影响使用。
- 是一个监控管理后台查看我们注册了哪些服务,哪些服务被消费了
3.1 下载Dubbo Admin控制台
下载地址:https://github.com/apache/dubbo-admin/tree/master
没有安装Git的直接选择下载
3.2 安装Dubbo Admin控制台
3.2.1 解压
3.2.2 指定zookeeper地址
3.2.3 打包dubbo-admin
在项目目录下打包dubbo-admin
mvn clean package -Dmaven.test.skip=true
第一次打包的过程有点慢,需要耐心等待!直到成功!
打包成功界面
3.3 启动Dubbo Admin控制台
执行 dubbo-admin\target 下的dubbo-admin-0.0.1-SNAPSHOT.jar
java -jar dubbo-admin-0.0.1-SNAPSHOT.jar
【注意:zookeeper的服务一定要打开!】不然会报错
3.4 测试是否启动成功
浏览器输入:http://localhost:7001/
默认用户名:root
默认密码:root
内容参考:https://www.bilibili.com/video/BV1PE411i7CV
仅用于学习!