服务注册与发现
安装注册中心
到zookeeper下载zookeeper-3.4.14.tar.gz包,解压
到bin文件夹里找到zkServer.cmd,点击运行会直接闪退,在地址栏里输入cmd,
然后输入zkServer.cmd,如图报找不到zoo.cfg。
到conf文件夹里复制并取名为zoo.cfg
打开zoo.cfg配置,将dataDir地址改为 ../data ,意思是将数据保存在上一层新建的data文件夹里,默认是2181端口。
然后再cmd启动zkServer.cmd即可,如图成功启动
cmd打开bin文件夹下的zkCli.cmd测试下,将他作为注册中心使用
安装监控中心dubbo-admin,此为管理控制台
下载dubbo-admin GitHub - apache/dubbo-admin at master
另已备份于百度云盘。
dubbo从2.6开始,dubbo admin被单独分出来
1.解压找到dubbo-admin里的application.properties
配置的是访问端口以及zookeeper地址
pom.xml为jar包方式,与springboot结合。
2、Maven打成jar包
在该目录中cmd命令mvn clean package
第一次打包时间较长,如下图打包成功后dubbo-admin会多出一个target。
3.打开target,
将该jar包复制到dubbo下,然后cmd 输入 java -jar dubbo…,前提把zookeeper-server服务端打开。
先打开zookeeper服务端,
然后启动dubbo
如图dubbo监控中心启动成功
密码与用户名都为root
如图登陆成功进入
关闭dubbo服务
- 另起一个cmd命令窗口,找到dubbo配置的那个端口号所对应的进程。netstat -ano | findstr 7001 taskkill /f /t /PID 8664
总结springboot+dubbo配置
第一步导入dubbo的jar包
第二步配置好yml文件
第三步如果要暴露服务要用dubbo的@Service注解,如果是消费服务要用@Reference引入服务接口。
Dubbo.properties覆盖策略
启动时检查
如果只启动了消费者,就会报没有可用的提供者异常,关闭检查后只有消费者调用该服务时才会进行检查该服务是否可用。
超时时间与重试次数
另外可以设置服务调用超时时间,dubbo默认是1000毫秒,可以明确指定某个方法,接口的超时时间,一旦过了就会报错。
重试次数retries=,当服务超时断开连接后设置重新次数,如果有多台服务器,第一台没有调用成功,他会重试连接第二台知道成功为止。
多版本,也称之为灰度发布
本地存根,应该放在公共接口包里
Zookeeper宕机与dubbo直连
服务降级
Dubbo负载均衡机制(比如配置权重,hashid),集群容错机制、服务降级面试了解下
服务降级:牺牲某个非核心业务的资源来保证核心业务占用更多资源来流畅运行
操作如下,屏蔽操作是针对消费者来做的。直接操作dubbo控制台即可。
服务容错
提供者
首先导入hystrix jar包
<!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-netflix-hystrix -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
<version>2.2.4.RELEASE</version>
</dependency>
然后启动类上添加@EnableHystrix //开启服务容错
然后对某个方法使用注解@HystrixCommand来允许容错。
消费者
然后消费者的启动类也要开启注解,也要导入jar包即可。
然后消费者远程调用服务代码可能会出现异常,所以使用下图写法,意思是在出错的时候回去调用该类下名为Hello的方法。
随便再写一个Hello的方法即可。
dubbo底层使用了netty.