Dubbo2.X的初识
Dubbo背景
Dubbo是分布式远程服务通信框架,与传统单体框架相比,扩展了远程服务之间的通信、服务的治理,其中在单点服务之间的通信上采用RPC模式,而且在通信协议上支持Java的RMI、webservice、JAX-RS、http等协议。
从Dubbo的开发您可以了解到如果我们要去开发一款远程通信框架,需要思路的方向。
1、底层网络通信协议的处理。
2、序列号与反序列号的处理。
3、服务的治理。
Dubbo框架在服务的治理中实现了:服务链路的跟踪与监测、服务的发现与感知、点节点故障的容错机制、请求分发机制。
从这些可以体验到Dubbo不仅仅是个RCP框架,更多的将服务在生产环境中的一套服务治理平台。
Dubbo的基本使用
服务提供端
- Dubbo依赖jar
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo</artifactId>
<version>2.7.2</version>
</dependency>
- 日志依赖的jar
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.26</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.3</version>
</dependency>
- 添加接口和实现类
略
- 创建Dubbo的配置文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:dubbo="http://dubbo.apache.org/schema/dubbo"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd">
<dubbo:application name="提供方应用信息,用于计算依赖关系"/>
<dubbo:registry address="使用multicast广播注册中心暴露服务地址" file="服务地址缓存存储的路径" group="服务组名称"/>
<dubbo:protocol name="用dubbo协议" port="20880端口暴露服务" />
<dubbo:service interface="需要暴露的服务接口" ref="payService"/>
<bean id="payService" class="本地bean实现的服务"/>
</beans>
- 启动服务
Main.main(args);
- 添加日志文件
略
服务消费端
- 配置文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:dubbo="http://dubbo.apache.org/schema/dubbo"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd">
<dubbo:application name="提供方应用信息,用于计算依赖关系"/>
<dubbo:registry address="multicast广播注册中心暴露服务地址A"/>
<dubbo:reference id="" interface="" url="dubbo://x.x.x.x:20880/xx.xx.xx.IXxxService"/>
</beans>
- 远程访问
略
Dubbo的本质
简单理解就是SpringIOC容器启动一个Netty服务的发布。
使用zookeeper注册Dubbo的服务
- jar的依赖
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-framework</artifactId>
<version>4.0.1</version>
</dependency>
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-recipes</artifactId>
<version>4.0.1</version>
</dependency>
- Dubbo实现集成的原理
- dubbo链接消费端的缓存
主要目的是减少访问的请求的次数。配置缓存
多注册中心的配置
略
- 其他配置
1、是发开启重试机制,当失败的时候。
2、zookeeper的登录信息
3、zookeeper的根节点的设置
Dubbo多协议的配置
略
Dubbo的监控平台的安装与配置
Dubbo-Admin
Dubbo终端的操作
ls 显示服务列表
ps 显示显示服务端口的链接详细信息
count 统计
总结
Dubbo通过zookeeper动态感知服务。