内容简介:照例附上本项目实现的是将一个简单的天气预报系统一步一步改造成一个SpringCloud微服务系统的过程。本章主要讲解高可用HA(High Availability)是分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计减少系统不能提供服务的时间。
照例附上 项目github链接
本项目实现的是将一个简单的天气预报系统一步一步改造成一个SpringCloud微服务系统的过程。本章主要讲解 实现服务的高可用 。
什么是高可用
高可用HA(High Availability)是分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计减少系统不能提供服务的时间。
假设系统一直能够提供服务,我们说系统的可用性是100%。
如果系统每运行100个时间单位,会有1个时间单位无法提供服务,我们说系统的可用性是99%。
很多公司的高可用目标是4个9,也就是99.99%,这就意味着,系统的年停机时间为8.76个小时。
如何保障系统的高可用
我们都知道,单点是系统高可用的大敌,单点往往是系统高可用最大的风险和敌人,应该尽量在系统设计的过程中避免单点。方法论上,高可用保证的原则是“集群化”,或者叫“冗余”:只有一个单点,挂了服务会受影响;如果有冗余备份,挂了还有其他backup能够顶上。
保证系统高可用,架构设计的核心准则是:冗余。
有了冗余之后,还不够,每次出现故障需要人工介入恢复势必会增加系统的不可服务实践。所以,又往往是通过“自动故障转移”来实现系统的高可用。
下面我们重点讲解通过集成Eureka设置多节点的注册中心,从而实现服务的高可用。
实现服务的高可用
集成Eureka
我们需要将前面拆分好的四个微服务:城市数据API微服务,天气数据采集微服务,天气数据API微服务,天气预报微服务,集成Eureka,实现服务的发现与注册功能。
主要的操作步骤为:
- 添加pom.xml配置
- 添加application.yml配置
- 添加注解
至于如何进行添加,我在上一章进行了详细的讲述,这里就不展开了。
启动服务
我们将各个服务生成jar包,并通过命令行指定端口进行启动,启动命令如下:
java -jar micro-weather-eureka-server-1.0.0.jar --server.port=8761
测试结果
从上图可以看到我们有4个微服务,每个微服务启动了两个实例。每个实例已经集成了Eureka客户端,并且在Eureka服务器中完成了注册。
各个微服务之间可以通过应用的名称相互访问,每个微服务启动了多个实例,这样当我们的任何一个实例挂掉了,因为在其他节点有注册,所以还可以提供服务,如此一来我们便实现了服务的高可用!
以上所述就是小编给大家介绍的《服务的高可用 | 从0开始构建SpringCloud微服务(10)》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。