[b]Dubbo简单了解[/b]
1.以zookeeper进行接口管理,所以要有zookeeper
2.是实现远程程序调用的一种应用框架
[b]Dubbo的架构如图所示:[/b]
[img]http://dl2.iteye.com/upload/attachment/0121/3240/b8ce3699-de53-3533-8bd5-9cb25bc413b6.png[/img]
[b]节点角色说明:[/b]
Provider: 暴露服务的服务提供方。
Consumer: 调用远程服务的服务消费方。
Registry: 服务注册与发现的注册中心。
Monitor: 统计服务的调用次调和调用时间的监控中心。
Container: 服务运行容器。
[b]调用关系说明:[/b]
0. 服务容器负责启动,加载,运行服务提供者。
1. 服务提供者在启动时,向注册中心注册自己提供的服务。
2. 服务消费者在启动时,向注册中心订阅自己所需的服务。
3. 注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。
4. 服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。
5. 服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心。
[b]Dubbo提供了很多协议,Dubbo协议、RMI协议、Hessian协议[/b]
[b]配置:[/b]
[b]Provider:[/b]
[b]Consumer:[/b]
参考原文(Dubbo与Zookeeper、SpringMVC整合和使用):[url]https://my.oschina.net/farces/blog/639428[/url]
参考原文(配置文件详解):[url]http://www.cnblogs.com/linjiqin/p/5859153.html[/url]
参考原文(例子):[url]http://blog.youkuaiyun.com/morning99/article/details/40426781[/url]
参考原文(应用说明):[url]http://dubbo.io/[/url]
参考原文(Dubbo令牌验证):[url]http://blog.youkuaiyun.com/u010317829/article/details/52152709[/url]
参考原文(springboot与dubbo整合):[url]http://www.th7.cn/Program/java/201609/959357.shtml[/url]
1.以zookeeper进行接口管理,所以要有zookeeper
2.是实现远程程序调用的一种应用框架
[b]Dubbo的架构如图所示:[/b]
[img]http://dl2.iteye.com/upload/attachment/0121/3240/b8ce3699-de53-3533-8bd5-9cb25bc413b6.png[/img]
[b]节点角色说明:[/b]
Provider: 暴露服务的服务提供方。
Consumer: 调用远程服务的服务消费方。
Registry: 服务注册与发现的注册中心。
Monitor: 统计服务的调用次调和调用时间的监控中心。
Container: 服务运行容器。
[b]调用关系说明:[/b]
0. 服务容器负责启动,加载,运行服务提供者。
1. 服务提供者在启动时,向注册中心注册自己提供的服务。
2. 服务消费者在启动时,向注册中心订阅自己所需的服务。
3. 注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。
4. 服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。
5. 服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心。
[b]Dubbo提供了很多协议,Dubbo协议、RMI协议、Hessian协议[/b]
[b]配置:[/b]
[b]Provider:[/b]
<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属性,表示使用那个协议
[b]Consumer:[/b]
<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整合和使用):[url]https://my.oschina.net/farces/blog/639428[/url]
参考原文(配置文件详解):[url]http://www.cnblogs.com/linjiqin/p/5859153.html[/url]
参考原文(例子):[url]http://blog.youkuaiyun.com/morning99/article/details/40426781[/url]
参考原文(应用说明):[url]http://dubbo.io/[/url]
参考原文(Dubbo令牌验证):[url]http://blog.youkuaiyun.com/u010317829/article/details/52152709[/url]
参考原文(springboot与dubbo整合):[url]http://www.th7.cn/Program/java/201609/959357.shtml[/url]