dubbo是阿里一款高性能,轻量级的rpc框架,有两大核心功能:远程服务调用和服务治理。本文主要介绍dubbo的运用。
一,安装注册中心zookeeper
1,为什么需要注册中心,不要能不能远程服务调用
答:可以采取服务dubbo服务直连方式(@Reference注解loadbalance属性指定调用的服务的ip端口)也能在没有注册中心情况下进行远程服务调用,但每个服务的调用需要到控制台查看ip,不利于开发。
2,为什么采用zookeeper,而不是其他
由于zookeeper工业强度很强(呵呵,以后会写一篇文章介绍),所以官方文档推荐它作为注册中心。
3,安装教程(windows为例)
3.1 官网或者百度云提取码:j5w2下载,然后解压
3.2 把conf下zoo_sample.cfg的文件名该为zoo.cfg(最好备份),进去内容指定dataDir的存放地址;还有种方法是修改bin目录下的zkEnv.cmd,把启动的配置文件指定为zoo_sample.cfg
3.3 双击zkServer.cmd启动,如果启动失败请看另一篇博文https://blog.csdn.net/qq_41274660/article/details/106986911
二,创建服务提供者消费者共有接口的maven项目
1,因为dubbo是面向接口的远程服务调用,所以需要相应的接口供服务提供者和消费者使用
2,创建接口,代码示例如下(方便复制粘贴)
package dubboImp;import test.UserAddress;import java.util.List;public interface UserService {List<UserAddress> getUserAddressList(String userId);
}
三,创建服务提供者项目
1,创建一个springboot项目(都是和springboot整合示例),引入dubbo starter依赖和二中的项目依赖
<dependency><groupId>com.alibaba.boot</groupId><artifactId>dubbo-spring-boot-starter</artifactId><version>0.2.0</version><!--springboot2.x.x 版本对应dubbo 0.2.x版本--></dependency>
2,配置配置文件
springboot和dubbo整合有三种配置方式,这里使用最常见的配置方式,其他的请百度
server:port: 8081dubbo:application:name: boot-order-service-provider #应用名protocol: dubbo #协议registry:protocol: zookeeper #指定zookeeper为注册中心address: 127.0.0.1:2181 #注册中心地址 monitor:protocol: registryprovider:timeout: 3000
3,编写需要暴露的服务和暴露服务
package com.fq.dubboprovider;import com.alibaba.dubbo.config.annotation.Service;
import dubboImp.UserService;
import org.springframework.stereotype.Component;
import test.UserAddress;import java.util.Arrays;
import java.util.List;@Service //这个注解暴露接口,注意是dubbo中的
public class UserServiceImpl implements UserService { @Overridepublic List<UserAddress> getUserAddressList(String userId) {UserAddress address1 = new UserAddress(1, "XXXXX", "1", "car","123456","Y");UserAddress address2 = new UserAddress(1, "YYYYYY", "2", "ea", "4562144", "Y");return Arrays.asList(address1,address2);}
}
4,启动类加@EnableDubbo,如果配置文件指定了dubbo.scan.base-package则不需要
四,创建服务消费者项目
1,除了编写消费者接口外其他步骤和三一样
2,编写消费者接口
package com.fq.dubboconsumer;import com.alibaba.dubbo.config.annotation.Reference;
import dubboImp.OrderService;
import dubboImp.UserService;
import org.springframework.stereotype.Service;
import test.UserAddress;import java.util.List;@Service
public class OrderServiceImpl implements OrderService {@Reference //引用远程服务的注解private UserService userService;public List<UserAddress> initOrder(String userId) {List<UserAddress> userAddressList = userService.getUserAddressList(userId);return userAddressList;}
}
到了这一步之后可以写一个请求去测试远程服务调用了
五,安装dubbo控制台
可以到官方github项目下载运行,为了方便这里提供已经打包好的jar包,提取码:r3sr,下载下来,控制台java -jar命令运行即可,通过http://localhost:7001/访问,用户名密码都是root。在这里对负载均衡智能容错进行管理,去探索吧
六,安装及监控中心
官网github项目下载或者百度云下载压缩包提取码:4ied,压缩包下载下来后解压,进入/assembly.bin目录双击start.bat启动,
http://localhost:8080/访问
转载请注明出处https://blog.csdn.net/qq_41274660/article/details/107009838