发表于: 2020-08-07 22:34:00
1 2144
今天完成的事情
1.【Spring Cloud 重写项目】部署注册中心
2.【Spring Cloud 重写项目】部署管理中心
3.【Spring Cloud 重写项目】部署服务端
4.【Spring Cloud 重写项目】部署客户端
5.【Spring Cloud 重写项目】测试
spring boot admin & eureka server & providers & redis & mysql
consumer
在腾讯云布置的服务器集成了注册中心、admin、网站服务端、rredis、mysql
阿里云服务器布置了网站客户端与 nginx
服务端 feign 自带 ribbon 负载均衡,客户端使用 nginx upstream
实现了双服务端+双客户端,测试任意挂一台 client\service 都没有问题,登录状态用 JWT 保存,与服务端无关(刚挂会有一个请求失败,刷新网页后正常)。
注册中心截图
admin 截图
遇到的问题
1. 无法连接到 eureka server
原因:
eureka client 的配置中 server-url.default-zone: http://xxxx 在一些版本中是无法连接到注册中心的,之前在本地测试无论写成 default-zone 还是 defaultZone 都是可以正常运行的,不清楚是怎么回事。
解决的方法:
eureka client 配置都改成 defaultzone
这个问题花了一下午加半个晚上
2. 网站服务端工作正常,但是邮件服务健康状态显示失败导致 admin 显示服务离线
测试邮件服务工作正常,是健康检查无法 telnet 到邮件服务商的地址。
解决方法;
关闭邮件服务健康检查
management.health.mail.enabled: false
关闭后 admin 显示服务正常在线,邮件服务测试无故障。
收获
1. 关于 eureka 注册中心在外网环境的设置
在 eureka 网页上看到的地址都是 instance-id,这个只是一个显示的服务 id,不会影响访问。真正要注意的右键 instance-id 之后复制到的地址,这个才是其他的服务从注册中心拉取到的服务地址,是会用于访问的。
鼠标放上去显示的的这个地址是 ip 还是域名这取决于我们的配置
eureka:
instance:
lease-renewal-interval-in-seconds: 10
health-check-url-path: /actuator/health
prefer-ip-address: true # 使用 ip 地址注册
ip-address: 127.0.0.1 # 默认用于注册的 ip 地址,可以在运行服务的时候添加参数覆盖
比如在上面这个配置里面,我决定使用 ip 地址注册到注册中心。那么在注册中心就会像上图那样显示。
其中的哪个 ip 地址可以在我们在服务器上启动的时候使用参数覆盖,如下所示
java -jar consumer-0.0.1-SNAPSHOT.jar --eureka.instance.ip-address=119.xxx.xx.199
这样的话其他的服务就可以通过这个 ip 来消费我们提供的服务。当然我们也可以设置使用域名来注册,那么这个配置文件需要做一些改动。
明天的计划
1. 完成任务九深度思考
评论