apache是一款高性能、輕量級(jí)的開(kāi)源java RPC框架,,它提供了三大核心能力:面向接口的遠(yuǎn)程方法調(diào)用,,智能容錯(cuò)和負(fù)載均衡,以及服務(wù)自動(dòng)注冊(cè)和發(fā)現(xiàn) 使用步驟 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,配置服務(wù)提供者 <?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"> <!-- 提供方應(yīng)用信息,,用于計(jì)算依賴關(guān)系 --> <dubbo:application name="hello-world-app" /> //<!-- 使用multicast廣播注冊(cè)中心暴露服務(wù)地址 --> //<dubbo:registry address="multicast://224.5.6.7:1234" /> <!-- 使用zookeeper廣播注冊(cè)中心暴露服務(wù)地址 --> <dubbo:registry address="zookeeper://224.5.6.7:2181" /> <!-- 用dubbo協(xié)議在20880端口暴露服務(wù) --> <dubbo:protocol name="dubbo" port="20880" /> <!-- 聲明需要暴露的服務(wù)接口 --> <dubbo:service interface="org.apache.dubbo.demo.DemoService" ref="demoService" /> <!-- 和本地bean一樣實(shí)現(xiàn)服務(wù) --> <bean id="demoService" class="org.apache.dubbo.demo.provider.DemoServiceImpl" /> </beans> 服務(wù)端配置: 1,,應(yīng)用名字 2,zookeeper地址 3,,協(xié)議和本服務(wù)交換端口 4,,需要暴露的接口(需要引入接口的實(shí)現(xiàn)類) 5,暴露的接口的實(shí)現(xiàn) 消費(fèi)端配置: 1,,應(yīng)用名字 2,,zookeeper地址 3,需要調(diào)用的接口 注解方式 @service (暴露服務(wù))@reference(消費(fèi)服務(wù)) @EnableBubbo開(kāi)啟dubbo 本地存根 消費(fèi)端 <dubbo :reference stub=”本地實(shí)現(xiàn)類”> 本地實(shí)現(xiàn)類必須實(shí)現(xiàn)要遠(yuǎn)程調(diào)用的接口,,并提供一個(gè)要調(diào)用接口的有參構(gòu)造 配置dubbo的方法: dubbo的高可用 dubbo的負(fù)載均衡 基于權(quán)重的隨機(jī)負(fù)載均衡機(jī)制 基于權(quán)重的輪詢負(fù)載均衡機(jī)制 最少活躍數(shù)負(fù)載均衡機(jī)制 一直性hash負(fù)載均衡機(jī)制 dubbo服務(wù)降級(jí) dubbo集群容錯(cuò) dubbo原理: |
|