毕业论文
您现在的位置: 版本控制 >> 版本控制优势 >> 正文 >> 正文

Microservices和Spring

来源:版本控制 时间:2023/11/18
白癜风去哪里治疗呢 https://yyk.39.net/hospital/89ac7_map.html

SpringCloud的配置服务器功能使跨系统更新微服务变得轻而易举。让我们一步一步地设置和更改属性。使用微服务,我们创建了一个中央配置服务器,其中微服务的所有可配置参数都是编写版本控制的。中央配置服务器的好处是,如果我们更改微服务的属性,它可以即时反映该属性,而无需重新部署微服务。在微服务时代之前,我们创建了一个属性文件来维护我们的可配置参数,因此如果我们更改参数值或添加或删除参数,我们通常需要重新启动应用程序容器。此外,考虑环境。通常,我们有Development、Staging和Prod,每个都有单独的URL用于不同的服务,如JMS、JNDI等。此外,如果环境发生变化,我们需要选择正确的属性文件。例如,对于开发,我们需要加载开发属性文件。Spring提供了Profile概念,其中基于传递的配置文件,Spring加载适当的环境属性。就像配置文件值是dev一样,它会加载所有{}-dev.properties。但主要问题是它与代码库绑定或静态打包,所以属性文件的任何更改都意味着重新构建和重新部署应用程序,这违反了微服务原则,其中明确指出:只需构建一次并在任何环境中部署。因此,不知何故,我们需要一种维护所有属性的技术,如果有任何属性发生更改,它将获取更改并反映它们,而无需重新构建或重新启动应用程序。答案是SpringCloud配置服务器。

SpringCloud配置服务器架构

让我们介绍配置服务器的一些重要组件。

存储库区域:配置服务器将所有微服务属性文件存储在版本控制系统中,因此它们可以被...版本控制。而这个版本控制系统可以是最流行的Git,也可以是SVN。此外,您可以将其存储在文件系统中——那么您的配置文件应该是本机的。

配置服务器根据服务ID存储每个微服务属性。我们可以通过在微服务的bootstrap.properties文件中为spring.application.name属性提供一个唯一值来配置微服务服务ID。假设我有一个员工工资单微服务。我可以在EmployeePayrollbootstrap.property文件中创建如下服务ID。spring.application.name=EmployeePayroll。现在,在配置服务器中,我们有一组基于环境的EmployeePayroll属性文件,例如EmployeePayroll-dev.propertiesEmployeePayroll-stg.propertiesEmployeePayroll-prod.properties这些是基于配置文件价值的。请注意,属性文件名应采用以下格式。{ServiceID}-{profile}.properties。如果我们没有在属性文件中给出配置文件名称,那么它被认为是默认的。在这里,EmployeePayroll-dev是服务ID,dev/stg/prod是我们的环境。REST端点:每个微服务都需要与配置服务器通信,以便它可以解析属性值,因为所有属性都存储在thre.xml中。配置服务器发布一个REST端点,微服务通过该端点进行通信,或者我们可以在浏览器中查看属性。Actuator:如果微服务的任何属性已更改,则意味着它们已通过ActuatorrefreshREST端点进行刷新。通过这样做,我们的微服务在没有重建应用程序的情况下得到了更新。云总线:这是可选的,但非常有用。想想我们是否需要为每个服务手动刷新执行器端点。这将是一项繁重的任务,因为一个复杂的业务领域有许多微服务。在这种情况下,云总线有助于将更新的属性推送到其所有订阅的微服务。但是要触发这个动作,我们需要手动刷新一个微服务端点。稍后我会谈到云总线。负载均衡器:配置服务器应该是高可用的。如果我们只维护一个配置服务器框/容器,那将是单点故障。理想情况下,它应该是负载平衡的,以便我们可以运行多个配置服务器实例,并且负载平衡器池应该有一个公共地址,每个微服务都可以在其中进行通信。配置服务器架构图(不带负载均衡和云总线)图片标题现在我们将使用SpringCloud创建一个配置服务器。

设置文件系统

在这里,我将设置一个基于本机文件系统的配置服务器。我没有使用Git,所以我会创建一个本地文件结构,但是在生产环境中,请创建一个远程Git存储库。要设置本地文件系统,请在Linux环境中执行以下命令(Windows相同,但您只需要使用GUI创建文件。)

mkdirCentralRepo

cdCentralRepo

touchconfig.properties

viconfig.properties

Hitinsert

Writewel

转载请注明:http://www.0431gb208.com/sjszjzl/6604.html

  • 上一篇文章:
  • 下一篇文章: 没有了