Dubbo简单了解

Dubbo简单了解

1.以zookeeper进行接口管理,所以要有zookeeper
2.是实现远程程序调用的一种应用框架


Dubbo的架构如图所示:



节点角色说明:
Provider: 暴露服务的服务提供方。
Consumer: 调用远程服务的服务消费方。
Registry: 服务注册与发现的注册中心。
Monitor: 统计服务的调用次调和调用时间的监控中心。
Container: 服务运行容器。


调用关系说明:
0. 服务容器负责启动,加载,运行服务提供者。
1. 服务提供者在启动时,向注册中心注册自己提供的服务。
2. 服务消费者在启动时,向注册中心订阅自己所需的服务。
3. 注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。
4. 服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。
5. 服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心。


Dubbo提供了很多协议,Dubbo协议、RMI协议、Hessian协议


配置:
Provider:
<dubbo:application name="dubbo_provider"></dubbo:application>
//提供方应用名称信息,这个相当于起一个名字,我们dubbo管理页面比较清晰是哪个应用暴露出来的


<dubbo:protocol name="dubbo" port="20880" />
//协议定义,
//name协议名,
//port监听端口号
//

<dubbo:service interface="com.mor.server.dubbo.service.DemoServer"
        ref="demoService" />
<bean id="demoService" class="com.mor.server.dubbo.service.DemoServerImpl" />
//定义服务,
//interface就是服务类的接口,
//ref为ref引用对应的实现类的Bean的ID
//registry向指定注册中心注册,在多个注册中心时使用,值为<dubbo:registry>的id属性,多个注册中心ID用逗号分隔,如果不想将该服务注册到任何registry,可将值设为N/A
//register 默认true ,该协议的服务是否注册到注册中心。

<dubbo:registry  protocol="zookeeper"  address="192.9.145.19:2181,192.9.145.19:2182,192.9.145.19:2183"  />
//注册中心定义,
//protocol协议类型,
//address注册中心IP和端口,
//register是否向此注册中心注册服务,如果设为false,将只订阅,不注册。
//check注册中心不存在时,是否报错。
//subscribe是否向此注册中心订阅服务,如果设为false,将只注册,不订阅。
//timeout注册中心请求超时时间(毫秒)。

<dubbo:provider timeout="5000" />
//提供方配置,
//timeout,调用超时时间
//registry,值为<dubbo:registry>的id属性,表示使用那个注册中心
//protocol,值为<dubbo:protocol>的id属性,表示使用那个协议


Consumer:
<dubbo:application name="dubbo_provider"></dubbo:application>
//消费方应用名,用于计算依赖关系,不是匹配条件,不要与提供方一样

<dubbo:registry  protocol="zookeeper"  address="192.9.145.19:2181,192.9.145.19:2182,192.9.145.19:2183" />
//注册中心定义,protocol协议类型,address注册中心IP和端口

<dubbo:reference id="demoService" interface="com.mor.server.dubbo.service.DemoServer" />
//消费方要引用的类,id为名字,interface就是服务类的接口

<dubbo:consumer timeout="5000" />
//消费方配置,
//timeout,调用超时时间




参考原文(Dubbo与Zookeeper、SpringMVC整合和使用): https://my.oschina.net/farces/blog/639428
参考原文(配置文件详解): http://www.cnblogs.com/linjiqin/p/5859153.html
参考原文(例子): http://blog.csdn.net/morning99/article/details/40426781
参考原文(应用说明): http://dubbo.io/
参考原文(Dubbo令牌验证): http://blog.csdn.net/u010317829/article/details/52152709
参考原文(springboot与dubbo整合): http://www.th7.cn/Program/java/201609/959357.shtml

猜你喜欢

转载自huangyongxing310.iteye.com/blog/2338599