apache是一款高性能、轻量级的开源java RPC框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现 使用步骤 1,引入dubbo依赖 <dependency> <groupId>com.alibaba</groupId> <artifactId>dubbo</artifactId> <version>2.6.2</version> </dependency> 2,引入操作zookeeper的客户端的curator <dependency> <groupId>org.apache.curator</groupId> <artifactId>curator-framework</artifactId> <version>2.12.0</version> </dependency> (dubbo 2.6之前需要引如zkclient) 3,配置服务提供者 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www./schema/beans" xmlns:xsi="http://www." xmlns:dubbo="http://dubbo./schema/dubbo" xsi:schemaLocation="http://www./schema/beans http://www./schema/beans/spring-beans-4.3.xsd http://dubbo./schema/dubbo http://dubbo./schema/dubbo/dubbo.xsd"> <!-- 提供方应用信息,用于计算依赖关系 --> <dubbo:application name="hello-world-app" /> //<!-- 使用multicast广播注册中心暴露服务地址 --> //<dubbo:registry address="multicast://224.5.6.7:1234" /> <!-- 使用zookeeper广播注册中心暴露服务地址 --> <dubbo:registry address="zookeeper://224.5.6.7:2181" /> <!-- 用dubbo协议在20880端口暴露服务 --> <dubbo:protocol name="dubbo" port="20880" /> <!-- 声明需要暴露的服务接口 --> <dubbo:service interface="org.apache.dubbo.demo.DemoService" ref="demoService" /> <!-- 和本地bean一样实现服务 --> <bean id="demoService" class="org.apache.dubbo.demo.provider.DemoServiceImpl" /> </beans> 服务端配置: 1,应用名字 2,zookeeper地址 3,协议和本服务交换端口 4,需要暴露的接口(需要引入接口的实现类) 5,暴露的接口的实现 消费端配置: 1,应用名字 2,zookeeper地址 3,需要调用的接口 注解方式 @service (暴露服务)@reference(消费服务) @EnableBubbo开启dubbo 本地存根 消费端 <dubbo :reference stub=”本地实现类”> 本地实现类必须实现要远程调用的接口,并提供一个要调用接口的有参构造 配置dubbo的方法: dubbo的高可用 dubbo的负载均衡 基于权重的随机负载均衡机制 基于权重的轮询负载均衡机制 最少活跃数负载均衡机制 一直性hash负载均衡机制 dubbo服务降级 dubbo集群容错 dubbo原理: |
|