您的位置:首页 > 其它

Dubbo介绍及使用教程

2018-03-20 16:12 316 查看

1、dubbo是什么

Dubbo是阿里巴巴开源的一个高性能的分布式服务框架,使得应用可以通过高性能的RPC实现服务的输入和输出,并且是soa服务治理方案,和spring框架无缝衔接。

2、rpc是什么

Rpc(Remote Procedure CallProtocol),远程过程调用协议,基于这个协议我们可以通过网络从远程计算机调用服务,并且不需要了解网络底层技术,能够为dubbo实现远程调用接口做支持。

3、dubbo核心功能

主要是三个,远程通讯,集群容错,自动发现(基于注册中心,使用消费方可以直接找到服务方)。

4、dubbo架构



Container:服务运行容器

Provideer:服务提供方

Consumer:服务消费方

Registry:注册中心

Monitor:统计服务调用次数和时间的监控中心

调用过程说明:

0、服务容器负责加载、启动服务。

1、服务提供者启动时向注册中心注册自己提供的服务

2、服务消费者启动时向注册中心订阅自己需要的服务

3、注册中心将服务提供方的地址列表发送给消费方

4、消费方通过软负载均衡方法,从地址列表中选择一个服务提供方调用服务,调用失败在选择另一台(集群容错)

5、消费方和服务方将调用次数和时间存储到内存中,定时一分钟发送给监控中心

5、dubbo使用

首先在linux上面安装好zookeeper,网上有很多相关的教程可以查看。

然后编写两个maven工程,一个作为服务提供者,一个作为服务消费者。



父工程用于管理我们的jar包版本

对于两个工程的pom文件的编写不做介绍,核心程序如下:

1、接口工程中编写一个接口



2、服务提供工程中实现这个接口



3、编写服务提供工程的spring配置文件

<!-- 发布dubbo服务 -->
<!-- 提供方应用信息,用于计算依赖关系 -->
<dubbo:application name="zdubbo-service" />
<!-- 注册中心的地址 -->
<dubbo:registry protocol="zookeeper" address="192.168.156.80:2181" />
<!-- 用dubbo协议在20889端口暴露服务 -->
<dubbo:protocol name="dubbo" port="20889" />
<!-- 声明需要暴露的服务接口 -->
<dubbo:service interface="zdubbo.provider.service.DubboService" ref="dubboServiceImpl" timeout="300000"/>


主要是这个工作,首先配置包扫描器,用来扫描服务类,然后发布服务,发布服务需要有服务的名称,注册中心的地址,及在哪个端口暴露服务,最后声明需要提供的服务接口。

4、通过web.xml配置容器启动监听器加载spring配置文件

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
id="WebApp_ID"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <display-name>zdubbo-service</display-name>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<!-- 初始化spring容器 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring/applicatio
aa59
nContext-*.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
</web-app>


5、服务消费者pom文件添加对接口jar包的引用

<dependency>
<groupId>com.zdubbo</groupId>
<artifactId>zdubbo.interface</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>


6、编写controller类对服务进行调用



7、编写spring配置文件完成视图解析,注解配置,引用服务的配置



核心是引用服务,需要有服务应用名称,注册中心地址,和需要引用的接口即可

8、编写配置文件通过前端控制器加载spring配置文件



9、测试





调用成功!

参考程序链接:https://download.csdn.net/download/liuyuanq123/10297901
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: