第十一天:浪迹天涯网上商城(1.0版本)--商品服务中心-spring cloud server 和 client 的情感纠葛

1、问题的背景

在上一篇文章中

第十天:浪迹天涯网上商城(1.0版本)--商品服务中心-spring cloud client的bug发现与解决 我提到的这个问题,后来我发现我错了。解决的方法完全不应该是那样的。

2、解决问题的思路与步骤

1、基于第十天:浪迹天涯网上商城(1.0版本)--商品服务中心-spring cloud client的bug发现与解决, 我继续改造下我们自定的配置。代码如下:


2、在上个图中第20行打断点的地方,就是我们追踪问题的关键。问题就出在propertySource,因为在程序启动的时候,会去读取server.port这个参数值,去决定tomcat的服务端口号。经过debug追踪测试,我发现,程序启动的时候,会读取所有的配置。就比如下图所展示就是这个对象里面有4个MapPropertySource。


程序会循环这个配置,找到server.port配置的值。 通过分析,spring cloud client这个程序首先去循环从配置中心获取到的资源数据。如果没有找到,就从自己配置的bootstrap.properties循环目标数据,如果没有的话,再依次从application.properties获取。从这张图上分析,我们从配置中心拿到了server.port,这就导致了本程序使用了从配置中心读到的端口值,这是不正确的。

解决方案:从这里很简单的我们就知道,应该是配置中心langjitianya-configuration的配置有问题。经过分析,修改如下:


这样改的原因是:不要将langjitianya-configuration配置中下的/src/main/resources这个目录下的资源对外暴露,这样其他的client端就不会获取到这部分配置信息,那么就不会造成干扰。而且我们也不需要定制化的配置了。现在程序简单如下:


3、启动服务

1、启动服务正常


猜你喜欢

转载自blog.csdn.net/pfnie/article/details/80715053