我真的很难过这个 . 我们希望使用Spring Cloud Consul进行服务发现,我的大学正在推动使用Spring Cloud Consul Config而不是Spring Cloud Config,我之前已经为相关项目实施了Spring Cloud Consig Config . 问题是,Spring Cloud Config运行良好,并且具有无缝的开箱即用版本控制管道(git),用于动态集中管理属性 . 为了在Spring Cloud Consul Config中支持相同的功能,似乎需要重新发明已经融入Spring Cloud Config的轮子 .
有没有人有使用两者的经验?将两者结合使用是否合理?也就是说,让Spring Cloud Config Client指向Spring Cloud Config Server以获得更多“静态”环境属性(在dev,qa,stage,production和static之间不同的东西)和Spring Cloud Consul Config用于纯动态属性(如服务)发现?
如果我错了,请有人纠正我,但是根据我的理解,为了使用Spring Cloud Consul Config支持“静态”属性的动态版本控制,我需要做些什么,我需要在git和物理之间进行某种管道“ / config“每个Spring Cloud Consul Config应用程序实例的运行实例的目录:/
2 回答
tl; dr:我使用spring cloud config和spring cloud consul但不使用spring cloud consul config .
我没有专门使用spring cloud consul配置,因为我没有使用consul配置,但我使用的是一个Spring Cloud 配置服务器,它在 Consul 中注册,我还有其他微服务通过consul访问spring cloud配置服务器进行服务发现 . 服务器和客户端都使用spring cloud consul来注册和发现配置服务器 . 配置服务器和配置客户端都使用spring cloud配置 .
这是我的设置:
Spring Cloud Config Server
依赖关系:
bootstrap.properties:
application.properties:
Application.java:
Spring Cloud Client Application
依赖关系:
bootstrap.properties:
Application.java:
据我了解,在配置管理的情况下,与spring cloud配置相比,Consul(与git2Consul)提供跨多个数据中心交换数据和节点故障转移的解决方案 .
对于单数据中心使用,spring cloud配置(具有简单的故障转移解决方案,例如LVS,主/从,rsync机制等)就足够了 .
对于服务发现,Consul具有 Health 检查机制,可以自动切换路由 . 在Spring cloud配置中,需要做额外的工作来实现半自动发现 .