- dubbo admin 管理控制台搭建
1. 下载源码地址:https://github.com/apache/dubbo-admin.git
2. 我本机项目地址:/Users/dingyawu/Desktop/知识体系/dubbo/software/incubator-dubbo-ops-master/dubbo-admin
3. 修改application.properties配置项: dubbo.registry.address=zookeeper://127.0.0.1:2181
application.properties地址:/Users/dingyawu/Desktop/知识体系/dubbo/software/incubator-dubbo-ops-master/dubbo-admin/src/main/resources
3. 打包这个项目并且打包启动 java -jar dubbo-admin-0.0.1-SNAPSHOT.jar
4. 账号密码root、root,访问localhost:7001
5. /opt/software 是我腾讯云的包的地址
- Spring集成dubbo provider
引入jar包
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>dubbo</artifactId>
<version>2.6.2</version>
</dependency>
<!-- 注册中心使用的是zookeeper,引入操作zookeeper的客户端端 -->
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-framework</artifactId>
<version>2.12.0</version>
</dependency>
如何测试
public static void main(String[] args) throws IOException {
ClassPathXmlApplicationContext ioc = new ClassPathXmlApplicationContext("provider.xml");
ioc.start();
System.in.read();
}
provider.xml配置
标签:dubbo:application、dubbo:registry、dubbo:protocol、dubbo.provider
dubbo.service一定要和bean一起使用、 dubbo.monitor
3. Spring集成dubbo consumer
consumer.xml配置
标签:dubbo:application、dubbo:registry、dubbo:reference
<dubbo:protocol name="dubbo" port="20882" />
这个是给provider使用的
- 监控中心的搭建
1. 打包dubbo-monitor-simple,获取dubbo-monitor-simple-2.0.0-assembly.tar.gz
2. 复制解压,观测dubbo.properties,
其他服务和监控中心的通行接口dubbo.protocol.port=7070
监控中心的访问接口dubbo.jetty.port=8080
- dubbo 整合springboot
添加依赖
<dependency>
<groupId>com.alibaba.boot</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>0.2.0</version>
</dependency>
dubbo配置项
三个配置路径的优先级
jvm(-Ddubbo.protocol.port=20881) >
xml (<dubbo:protocol name="dubbo" port="20882"></dubbo:protocol>) >
dubbo.properties(dubbo.protocol.port=20883)
同时配置三个,dubbo的通信接口是20881
SpringBoot与dubbo整合的三种方式:
1)、导入dubbo-starter,在application.properties配置属性,使用@Service暴露服
务使用@Reference引用服务
2)、保留dubbo xml配置文件;导入dubbo-starter,使用@ImportResource导入dubbo的配置
文件即可
@ImportResource(locations="classpath:provider.xml")
导入一个资源配置文件
3)、使用注解API的方式:将每一个组件手动创建到容器中,让dubbo来扫描其他的组件
@EnableDubbo(scanBasePackages="com.roy")
开启基于注解的dubbo功能等同于dubbo.scan.base-packages=com.roy
- dubbo直连
@Reference(url = "127.0.0.1:20880") 这样配置的时候,即使zk挂了,也可以直接调用
或者通过控制台直接禁用提供者
7. 消费者的屏蔽和容错
mock=force:return+null 表示消费方对该服务的方法调用都直接返回 null 值,不发起远程调用。用来屏蔽不重要服务不可用时对调用方的影响。
还可以改为 mock=fail:return+null 表示消费方对该服务的方法调用在失败后,再返回 null 值,不抛异常。用来容忍不重要服务不稳定时对调用方的影响。
- 启动时检查
1. @Reference(loadbalance = "leastactive", check = false)
启动的时候检查会抛出异常,但不影响springboot启动
2. 统一配置消费者的规则,消费者的缺省配置
dubbo.consumer.check=false
3. 服务启动的时候没有注册中心也是ok的
dubbo.registry.check=false
#
#
9. springboot集成Hystrix
加入依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
<version>1.4.4.RELEASE</version>
</dependency>
然后在Application类上增加@EnableHystrix来启用hystrix starter
- provider的标签
dubbo:application、dubbo:registry、dubbo:protocol、dubbo:service
11. consumer的标签
dubbo:application、dubbo:registry、dubbo:reference、dubbo:consumer
12.