dubbo学习资料1分析和总结(全文)

来源:公文范文 发布时间:2022-10-25 20:30:09

下面是小编为大家整理的dubbo学习资料1分析和总结(全文),供大家参考。

dubbo学习资料1分析和总结(全文)

 

 Dubbo 是阿里巴巴SOA 服务化治理方案的核心框架,每天为2,000+个服务提供3,000,000,000+次访问量支持,并被广泛应用于阿里巴巴集团的各成员站点:

  那么,Dubbo 是什么?

 Dubbo 是一个分布式服务框架,致力于提供高性能和透明化的RPC 远程服务调用方案,以及 SOA 服务治理方案。

 其核心部分包含: 

 远程通讯: 提供对多种基于长连接的NIO 框架抽象封装,包括多种线程模型,序列化, 以及“请求-响应”模式的信息交换方式。

 

 集群容错: 提供基于接口方法的透明远程过程调用,包括多协议支持,以及软负载均衡, 失败容错,地址路由,动态配置等集群支持。

 

 自动发现: 基于注册中心目录服务,使服务消费方能动态的查找服务提供方,使地址透明,使服务提供方可以平滑增加或减少机器。

 Dubbo 能做什么?

 

 透明化的远程方法调用,就像调用本地方法一样调用远程方法,只需简单配置,没有任何API 侵入。

 

 软负载均衡及容错机制,可在内网替代 F5 等硬件负载均衡器,降低成本,减少单点。

 

 服务自动注册与发现,不再需要写死服务提供方地址,注册中心基于接口名查询服务提供者的IP 地址,并且能够平滑添加或删除服务提供者。

 Dubbo 采用全Spring 配置方式,透明化接入应用,对应用没有任何 API 侵入,只需用 Spring 加载Dubbo 的配置即可,Dubbo 基于Spring 的 Schema 扩展进行加载。

  实例:

  服务提供方:HuoDong

  定义服务接口: (该接口需单独打包,在服务提供方和消费方共享) Java

 代码

 1. public interface DemoService { 2. public void sayHello();

 在服务提供方实现接口:(对服务消费方隐藏实现)

  用 Spring 配置声明暴露服务:

  applicationProvider.xml:

 Xml

 代码

 1. <?xml version="1.0" encoding="UTF-8" ?>

 2. <beans

 xmlns="http://www.springframework.org/schema/beans" 3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4. xmlns:dubbo="http://code.alibabatech.com/schema/dubbo" 5. xsi:schemaLocation="http://www.springframework.org/schema/beans 6. http://www.springframework.org/schema/beans/spring-beans.xsd 7. http://code.alibabatech.com/schema/dubbo 8. http://code.alibabatech.com/schema/dubbo/dubbo.xsd 9. "> >

 10. <dubbo:application name="hello-world-app" />

 11. <dubbo:registry protocol="zookeeper" address="172.17.0.119:2181,1 72.17.0.120:2181,172.17.0.121:2181,172.17.0.122:2181,172.17.0.123:2181 " />

 12. <dubbo:protocol name="dubbo" port="20880" />

 13. <dubbo:service

 interface="org.huodong.service.DemoService" 14. ref="demoService" />

 <!-- 和本地 bean 一样实现服务 --> 15. <bean id="demoService" class="org.huodong.service.DemoServiceImpl " />

 16. </beans>

 3. } Java

 代码

 1. public class DemoServiceImpl implements

 DemoService{ 2. @Override 3. public void sayHello() { 4. System.out.println("hello zy!"); 5.} 6. }

 ps:这里是把服务器方和提供方都注册到了zookeeper 上统一管理。上面的IP 为安装了zookeeper 的服务器地址。如果不想用zookeeper 管理的话,可以改为 <dubbo:registry address="multicast://224.5.6.7:1234" />

  服务消费者方 Fashion:

 applicationConsumer.xml:

  Xml

 代码

 1. <?xml version="1.0" encoding="UTF-8" ?>

 2. <beans

 xmlns="http://www.springframework.org/schema/beans" 3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4. xmlns:dubbo="http://code.alibabatech.com/schema/dubbo" 5. xsi:schemaLocation="http://www.springframework.org/schema/beans 6. http://www.springframework.org/schema/beans/spring-beans.xsd 7. http://code.alibabatech.com/schema/dubbo 8. http://code.alibabatech.com/schema/dubbo/dubbo.xsd 9. "> >

 10. <!-- 消费方应用名,用于计算依赖关系,不是匹配条件,不要与提供方一样 --> 11. <dubbo:application

 name="consumer-of-helloworld-app" />

 <!- - 使用 multicast 广播注册中心暴露发现服务地址 --> 12. <dubbo:registry

 protocol="zookeeper" address="172.17.0.119:2181,1 72.17.0.120:2181,172.17.0.121:2181,172.17.0.122:2181,172.17.0.123:2181 " />

 <!-- 生成远程服务代理,可以和本地 bean 一样使用 demoService --> 13. <dubbo:reference id="demoService" interface="org.huodong.service.D emoService" />

 14. </beans>

 调用远程服务(ChatAction.java):

 Java

 代码

 1. 2. 3. 4. 5. 6. 7. 8. 9. public class ChatAction private

 DemoService public

 ModelAndView implements Controller { demoService; handleRequest(HttpServletRequest req, HttpServletResponse res) throws Exception { demoService.sayHello(); //调用提供方的方法 return null; } public DemoService getDemoService() { return demoService;

 注:需要的jar 包,消费方和服务方都需要

 然后把服务方的DemoService 打成一个jar 包,这里只定义了一个方法,如果定义了好多个 service 或者 service 的实现中需要用到辅助类或javabean 的话,那么都要打包进去。

 ps: 在公司的 zookeeper 中通过页面 http://172.17.0.121:8080/governance/services 可以找 到所有注册的服务,然后可以在这里设置每个服务所使用的提供者(IP

  地址等信息),一个服务可以设置好多提供者(比如一个是服务器的,一个是本地的),但是只能一个是启用状态,其余都是禁用状态。

 10. 11. 12. 13. 14. } } public void setDemoService(DemoService demoService) { this.demoService = demoService; }

推荐访问:学习资料 分析 全文
上一篇:与机构签订《车辆使用安全责任书》某年
下一篇:e_workbook_main分析和总结分析和总结(2022年)

Copyright @ 2013 - 2018 小艾秘书网 All Rights Reserved

小艾秘书网 版权所有 湘ICP备11019447号-75