dubbo核心概念
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.springframework.org/schema/beans"
xmlns:xsi="http://www.198bona.com"
xmlns:dubbo="http://dubbo.apache.org/schema/dubbo"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/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原理: