一、该问题的重现步骤是什么?
基于BladeX-Biz开发了业务功能,里面用到了业务字典,项目中引入blade-dict-api.jar,
1)将Biz项目和BladeX运行在一台服务器上,则Biz项目通过DictBizCache.getValue(“test“,1)可以获取到值,但是如果运行在不同的服务器上,则获取不到值。
2)将Biz项目和BladeX运行在一台服务器上,先调用DictBizCache.getValue(“test“,1)获取一次值,然后把Biz项目关闭,再另一台服务器启动Biz项目,再次获取相同的值可以得到,如果再新建一个业务字典,获取新建的值获取不到。
2.
3.
二、你期待的结果是什么?实际看到的又是什么?
期待正常获取值
三、你正在使用的是什么产品,什么版本?在什么操作系统上?
BladeX-Biz 2.7.2 windows
四、请提供详细的错误堆栈信息,这很重要。
无错误信息
五、若有更多详细信息,请在下面提供。
这与字典模块没有关系
你在不同的服务器部署,那首先得保证服务器之间能相互联通,blade-dict-api是通过feign来调用的,网段不通自然就无法获取数据。
你说部署在同一个服务器就能调用,那自然是可以直接feign联通的。
你说不同服务器不能调用,你让两台服务器注册到nacos的ip能互相ping通就行。
你说先在同一台部署调用,然后关掉在其他服务器就能获取,是因为第一次调用拿到数据的时候存到redis了,后面只要能连到redis的服务自然就能取到值。后面新增的字典因为不在redis,服务也不通,所以无法获取。
综上所述,不是框架的问题,而是你部署的问题,你解决相互调用的问题就行了。
网络是通的,我明天再看一下吧
扫一扫访问 Blade技术社区 移动端