快速学会Dubbo的配置环境及相关配置

网友投稿 255 2022-12-12

快速学会Dubbo的配置环境及相关配置

目录1. Dubbo相关概念1.1 自动服务发现工作原理2. 启动文件2.1 zookeeper-3.4.11\bin\zkServer.cmd2.2 zookeeper-3.4.11\bin\zkCli.cmd2.3 java -jar dubbo-admin-0.0.1-SNAPSHOT.jar2.4 dubbo-monitor-simple-2.0.0\assembly.bin\start.bat3. 修改项目文件3.1 在pom.xml文件里导入相关依赖3.2 在application.properties文件 / src/main/resources/provider.xml文件中配置dubbo3.2.1 提供者3.2.2 消费者3.3 使用注解开启功能4. 配置文件4.1 配置文件的优先级4.2 不同粒度配置的覆盖关系4.3 关闭启动检查check4.4 超时timeout4.5 重试次数retries4.6 多版本version4.7 本地存根stub4.8 SpringBoot与Dubbo整合的三种方式

1. Dubbo相关概念

1.1 自动服务发现工作原理

2. 启动文件

这里指使用zookeeper作为注册中心;并启动相关dubbo监控;

2.1 zookeeper-3.4.11\bin\zkServer.cmd

可以在zookeeper-3.4.11\conf路径下配置zookeeper客户端的端口号以及data数据:

在zookeeper-3.4.11\bin目录下运行cmd启动zookeeper服务:

2.2 zookeeper-3.4.11\bin\zkCli.cmd

在zookeeper-3.4.11\bin目录下运行cmd启动zookeeper客户端:

2.3 java -jar dubbo-admin-0.0.1-SNAPSHOT.jar

可以在incubator-dubbo-ops-master\dubbo-admin\src\main\resources路径下修改application.properties文件中修改DubboWeb界面的端口:

在项目根路径下打开命令行,执行mvn clean package将项目http://打成jar包,再执行java -jar dubbo-admin-0.0.1-SNAPSHOT.jar命令运行Dubbo;

2.4 dubbo-monitor-simple-2.0.0\assembly.bin\start.bat

可以在dubbo-monitor-simple-2.0.0\conf路径下的dubbo.properties文件配置监控页端口:

在dubbo-monitor-simple-2.0.0\assembly.bin路径下双击运行start.bat文件:

3. 修改项目

文件

需要对项目文件做些修改;以开启dubbo相关功能;

3.1 在pom.xml文件里导入相关依赖

com.alibaba

dubbo

2.6.2

org.apache.curator

curator-framework

2.12.0

3.2 在application.properties文件 / src/main/resources/provider.xml文件中配置dubbo

3.2.1 提供者

xmlns:xsi="http://w3.org/2001/XMLSchema-instance"

xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"

xsi:schemaLocation="http://springframework.org/schema/beans http://springframework.org/schema/beans/spring-beans.xsd

http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd

http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd">

ref="userServiceImpl01" timeout="1000" version="1.0.0">

ref="userServiceImpl02" timeout="1000" version="2.0.0">

xmlns:xsi="http://w3.org/2001/XMLSchema-instance"

xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"

xsi:schemaLocation="http://springframework.org/schema/beans http://springframework.org/schema/beans/spring-beans.xsd

http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd

http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd">

ref="userServiceImpl01" timeout="1000" version="1.0.0">

ref="userServiceImpl01" timeout="1000" version="1.0.0">

ref="userServiceImpl02" timeout="1000" version="2.0.0">

ref="userServiceImpl02" timeout="1000" version="2.0.0">

3.2.2 消费者

xmlns:xsi="http://w3.org/2001/XMLSchema-instance"

xmlns:dubbo="http://dubbo.apache.org/schema/dubbo"

xmlns:context="http://springframework.org/schema/context"

xsi:schemaLocation="http://springframework.org/schema/beans http://springframework.org/schema/beans/spring-beans.xsd

http://springframework.org/schema/context http://springframework.org/schema/context/spring-context-4.3.xsd

http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd

http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd">

id="userService" timeout="5000" retries="3" version="*">

xmlns:xsi="http://w3.org/2001/XMLSchema-instance"

xmlns:dubbo="http://dubbo.apache.org/schema/dubbo"

xmlns:context="http://springframework.org/schema/context"

xsi:schemaLocation="http://springframework.org/schema/beans http://springframework.org/schema/beans/spring-beans.xsd

http://springframework.org/schema/context http://springframework.org/schema/context/spring-context-4.3.xsd

http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd

http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd">

id="userService" timeout="5000" retries="3" version="*">

id="userService" timeout="5000" retries="3" version="*">

在进行SpringBoot整合Dubbo时,以上信息可以配置进application.properties文件里;详情请见《4.8 SpringBoot与Dubbo整合的三种方式》

3.3 使用注解开启功能

注解

位置

功能

@EnableDubbo

开启dubbo相关功能

主启动类

@Service

暴露服务

服务提供者provider

@Reference

远程调用

服务消费者consumer

4. 配置文件

Dubbo 的 XML Schema 配置参考手册

dubbo:consumer 配置

4.1 配置文件的优先级

JVM 启动 -D 参数优先;

XML 次之;

Properties 最后,相当于缺省值;

4.2 不同粒度配置的覆盖关系

越上面优先级越高;

精确优先 (方法级优先,接口级次之,全局配置再次之);

消费者设置优先(如果级别一样,则消费方优先,提供方次之);

4.3 关闭启动检查check

提供者有三种关闭启动检查注册中心的配置:

Spring配置文件

dubbo.properties

dubbo.reference.com.foo.BarService.check=false

dubbo.reference.check=false

dubbo.consumer.check=false

dubbo.registry.check=false

通过 -D 参数

java -Ddubbo.reference.com.foo.BarService.check=false

java -Ddubbo.reference.check=false

java -Ddubbo.consumer.check=false

java -Ddubbo.registry.check=false

消费者有一种关闭启动检查服务提供者的配置:

4.4 超时timeout

提供者:

ref="userServiceImpl01" timeout="1000"">

ref="userServiceImpl01" timeout="1000"">

消费者:

id="BarService" timeout="5000">

id="BarService" timeout="5000">

id="BarService" timeout="5000">

id="BarService" timeout="5000">

可以体现:

精确优先 (方法级优先,接口级次之,全局配置再次之);

消费者设置优先(如果级别一样,则消费方优先,提供方次之);

4.5 重试次数retries

消费者:

id="BarService" timeout="5000" retries="3" >

id="BarService" timeout="5000" retries="3" >

4.6 多版本version

提供者:

ref="userServiceImpl01" timeout="1000" version="1.0.0">

ref="userServiceImpl01" timeout="1000" version="1.0.0">

ref="userServiceImpl02" timeout="1000" version="2.0.0">

ref="userServiceImpl02" timeout="1000" version="2.0.0">

消费者:

id="userService" timeout="5000" retries="3" version="*">

id="userService" timeout="5000" retries="3" version="*">

4.7 本地存根stub

提供者:

public class UserServiceStub implements UserService {

private final UserService userService;

/**

* 传入的是userService远程的代理对象

* @param userService

*/

public UserServiceStub(UserService userService) {

super();

this.userService = userService;

}

@Override

public List getUserAddressList(String userId) {

System.out.println("UserServiceStub.....");

if(!StringUtils.isEmpty(userId)) {

return userService.getUserAddressList(userId);

}

return null;

}

}

消费者:

id="userService" timeout="5000" retries="3" version="*" stub="com.*.UserServiceStub">

id="userService" timeout="5000" retries="3" version="*" stub="com.*.UserServiceStub">

4.8 SpringBoot与Dubbo整合的三种方式

1.导入dubbo-starter;在application.properties配置属性;使用@Service暴露服务;使用@Reference引用服务;

2.保留dubbo xml配置文件;导入dubbo-starter;使用@ImportResource导入dubbo的配置文件即可;

在主启动类上@ImportResource(locations="classpath:provider.xml");

3.使用注解API的方式;将每一个组件手动创建到容器中,让dubbo来扫描其他的组件;使用@Service暴露服务;

主启动类上:@EnableDubbo(scanBasePackages="com.atguigu.gmall");

在config包下进行如下配置:

@Configuration

public class MyDubboConfig {

@Bean

public ApplicationConfig applicationConfig() {

ApplicationConfig applicationConfig = new ApplicationConfig();

applicationConfig.setName("boot-user-service-provider");

return applicationConfig;

}

//

@Bean

public RegistryConfig registryConfig() {

RegistryConfig registryConfig = new RegistryConfig();

registryConfig.setProtocol("zookeeper");

registryConfig.setAddress("127.0.0.1:2181");

return registryConfig;

}

//

@Bean

public ProtocolConfig protocolConfig() {

ProtocolConfig protocolConfig = new ProtocolConfig();

protocolConfig.setName("dubbo");

protocolConfig.setPort(20882);

return protocolConfig;

}

/**

*

ref="userServiceImpl01" timeout="1000" version="1.0.0">

ref="userServiceImpl01" timeout="1000" version="1.0.0">

*/

@Bean

public ServiceConfig userServiceConfig(UserService userService){

ServiceConfig serviceConfig = new ServiceConfig<>();

serviceConfig.setInterface(UserService.class);

serviceConfig.setRef(userService);

serviceConfig.setVersion("1.0.0");

//配置每一个method的信息

MethodConfig methodConfig = new MethodConfig();

methodConfig.setName("getUserAddressList");

methodConfig.setTimeout(1000);

//将method的设置关联到service配置中

List methods = new ArrayList<>();

methods.add(methodConfig);

serviceConfig.setMethods(methods);

//ProviderConfig

//MonitorConfig

return serviceConfig;

}

}

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:解决Test类中不能使用Autowired注入bean的问题
下一篇:使用kotlin编写spring cloud微服务的过程
相关文章

 发表评论

暂时没有评论,来抢沙发吧~