当前位置: 首页 > 网络应用技术

Spring Cloud Config的四个模式,一篇文章已满!

时间:2023-03-08 11:21:37 网络应用技术

  传统配置疼痛点:

  为了应对这些问题,Spring Cloud早期发布了用于集中配置管理的Spring Cloud配置,该配置成功解决了这些问题。

  Spring Cloud Config分为服务器和客户端。在它们中,Spring Cloud Config Server是指定应用程序中所有服务的所有服务的服务。借助Spring Cloud Config Server,可以实现集中管理的所有应用程序的配置,以避免重复配置。

  春季云配置带来了许多好处:

  Spring Cloud Config Server通过GIT仓库向微服务提供了配置属性架构:

  文本通过Spring Boot Project在Spring Cloud配置上启动了讨论。将有以下方面扩展:

  请注意,整个项目的构建是逐步的,重复的步骤不会重复。

  春季云配置服务器

  首先,您需要构建春季云配置服务器服务。Spring Cloud Config Server服务应用作单独的应用程序操作和维护,因此我们仅针对Spring Cloud Config Server启动服务。

  依靠:

  我在这里选择的弹簧启动版本,弹簧云版本如下(如果版本不对应于异常,则可以选择所需的相应版本):

  application.yml配置文件:

  下面的配置文件中有几个点。

  a,默认标签,配置文件的分支,默认值是master

  B,搜索路径,配置文件的根目录位于

  C,URI,仓库地址

  写启动课,您需要在启动类中添加@enableconfigserver注释

  此时,我们可以开始测试Spring Cloud Config Server.push到Git Warehouse的配置文件,配置文件的名称为uservice-dev.yml,配置文件的内容如下:

  启动Spring Cloud Config Server应用程序,请访问http:// localhost:28888/uservice/dev/master,它可以获取以下信息以证明成功启动了Spring Cloud Config Server服务。

  请注意,Spring Cloud配置具有一组访问规则。通过这组规则,可以获得相应的数据。数据的响应格式略有不同。

  我在这里使用第一种方式。此方法可以返回详细的配置信息,以及分支信息,配置文件信息,应用程序名称等。默认分支名称Master可以省略.http:// localHost:28888/uservice/dev等于http:// localhost:localhost:28888/uservice/dev/master

  接下来,您可以开始配置的春季云配置客户端

  新的Spring Cloud Config Client Service,将从Spring Cloud Config Config Server获得配置信息。

  依靠:

  配置文件bootstrap.yml:

  有必要注意使用配置以获取配置信息,我们需要将与配置相关的配置提取到最优先的Bootstrap.yml配置文件,否则将不生效。Spring-cloud-cloud-starter-starter-config将访问端口8888默认情况下。如果您的Spring Cloud配置服务器未开始使用此端口,则可以在Bootstrap.yml文件中指定Spring Cloud Config Server端口信息,因此无法获得,否则将无法获得。服务器。

  我的配置文件在这里演示了多环境开发和产品。注意我的config.uri地址时,http:// localhost:28888,不是http:// localhost:8888888

  汇编两个用户和用户2以获取配置信息。这两个类别与配置不同。它们是通过@Value或@ConfigurationProperties获得的:

  编写其余访问的终点,以获取两个用户的配置信息:

  启动服务并分别访问两个休息点。目前,可以单独获取以下信息,表明已经获得了我们的配置信息。

  http:// localhost:18888/user/user1

  http:// localhost:18888/user/user2

  目前,我们将用户名修改为中文“李Zi”,并将其推向Gitee。修改后的配置文件如下:

  再次访问两个休息点,发现两个请求都返回了旧数据并且没有得到最新的配置。不要慌张,没有人通知他更新它绝对是旧数据!此时,我们介绍的实际依赖关系和Management.Endpoints将以方便地使用。

  我们可以在http:// localhost:18888/Actuator/Refresh端点启动邮政请求。

  再次访问两个休息端,并分别返回以下数据

  http:// localhost:18888/user/user1

  http:// localhost:18888/user/user2

  @Value获得了用于获取配置信息的最新数据,@configurationProperties获得了配置信息以获取更新的数据,因此,当我们开发时,请记住使用@configurationProperties组合配置以获取配置信息。

  要实施自动刷新的功能,我们需要使用两件事。第一个是Github,Gitee,GitLab提供的Webhook函数,第二个是@refreshscope注释。

  步骤1:配置Webhook(我在这里使用Gitee)

  输入仓库所在的配置文件。选择“管理”选项卡之后

  请注意,URL填充在执行器提供的刷新端点中,这是Postman上要求的地址。您可以选择触发地址所需的事件。通常,您选择push。重要的是要注意,您需要公司内部需要提供公共网络地址的GitLab代码仓库。通常,公司可以在公司内使用内部网络地址。

  步骤2:添加@refreshscope注释

  在大多数情况下,我们将在微服务环境中使用配置中心。此处使用了尤里卡配置中心,与弹簧云配置结合使用以实现Configuration Dynamic Refresh。要实现此功能,我们需要介绍Eureka依赖依赖项,启动注册中心服务,并修改Spring Cloud Cloud Config Server和Spring Cloud Conform config Server和春季云配置客户端。

  依靠:

  配置文件:

  开始课:

  修改春季云配置服务器

  增加依赖性:

  修改配置文件(添加eureka客户端配置):

  修改启动类(添加@enableeureklient注释):

  此时,启动Eurekaserver和Spring Cloud Config Server,您可以在Eureka上看到Spring Cloud Cloud Config Server注册信息。

  修改春季云配置客户端

  增加依赖性:

  修改配置文件(添加Eureka客户端配置,修改配置配置信息):

  我们在不使用注册中心的情况下指定了URI,我们可以在使用注册中心后直接使用服务名称。

  修改启动类(添加@enableeureklient注释):

  重新访问两个休息端,这可以是一致的。如果您需要配置尤里卡的高可用群集,则我的“春季云系列列”中有文章以供参考。

  在生产环境中,我们经常部署集群。目前,我使用webhook刷新一个端点,而且看起来很时尚。这次我们可以使用Spring Cloud Bus实现多端刷新。它通过消息队列实现,以广播更新通知。

  官方简介地址:

  https://spring.io/projects/spring-cloud-bus

  让我们首先安装RabbitMQ以使用Spring Cloud Bus(正式支持Rabbit和Kafka)

  修改春季云配置客户端应用中相关的配置和依赖项

  依靠:

  修改配置文件(引用兔子配置,其他配置保持不变):

  目前,我们使用想法使用不同的端口来使用IDEA启动两个使用不同端口的服务

  选择服务后,单击编辑配置...

  修改配置,指定端口和服务名称,然后检查允许并行运行

  复制一种配置,然后从另一个端口开始

  目前,您可以访问单点EUREKA并检查注册信息

  RabbitMQ上有两个匿名队列

  目前,我们根据不同端口访问其余端口

  http:// localhost:19999/user/user2

  http:// localhost:18888/user/user2

  修改Gitee上的配置文件

  如果您不配置Webhook,请使用Postman向http:// localhost:18888/cartuator/bus-refresh端点启动发布请求。请注意,这是BUS -REFRESH.RE-访问两个休息端点。目前,配置信息已经刷新:

  作者:李Ziyi