【金秋打卡】第11天 构建微服务设计架构知识体系--微服务可用性之服务隔离
2022/11/5 3:24:02
本文主要是介绍【金秋打卡】第11天 构建微服务设计架构知识体系--微服务可用性之服务隔离,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
课程名称:海量数据高并发场景,构建Go+ES8企业级搜索微服务
课程章节:5-5
课程讲师:少林码僧
课程内容:
服务隔离的目的
在系统发生故障的时候限制其影响范围
隔离在保障整个服务的可用性上具有重要作用
进程之间的通信方式
在不同的机器上需经过远程调用,比如RESTFul API,gRpc 等通信方式
如果是在同一台机器上,可以通过共享内存,线程管道,系统提供的的“收发消息”,系统信号
资源隔离
通过限制docker对资源的使用上限
将物理机分成多个虚拟机
如果消耗资源很大,可以尝试把消耗资源的服务部署到单独的机器或者集群
快慢隔离
避免整个队列被重任务阻塞
比如视频处理,视频审核,需要大规模分析的任务
比如error级别日志和非error级别日志分开采集处理
热点隔离
热点操作:读操作,写操作
热点数据:静态热点(能提前预测的,可以冷启动的),动态热点(不能提前预测)。
CAP理论
一致性指的是读操作保证能够返回最新的写操作结果,多个节点的情况下,无论读哪一个节点,都能读到任一节点最新的写操作
可用性指的是非故障节点在合理的时间内返回合理的响应
当出现网络分区后,系统能继续发挥作用
对热点数据的处理
实现动态发现热点的功能
提前预热缓存
隔离、使用单独的服务来处理
业务核心度隔离
按照服务的核心成都,将服务分级:比如账号服务,不要把账号服务和其他服务放在一起,公用一个库
重要程度高的服务使用单独资源,并提供冗余资源来提高容灾能力
非核心应用,如为了省资源,可以部署到同一个集群
读写分离
动静分离表分离
对表字段进行动静分离提高查询性能
尽可能让主表中存储更新频率低的字段,避免缓存页失效。但实际上,mysql8 以后都不用缓存了,但是mysql本身还是需要依赖内存进行update,undolog和redolog都是在内存中操作的。
以短视频为例,视频基本信息一旦生成基本不会变动,但是播放量,点赞点才都是频繁变更的,这部分就要数据进行分离
动静分离CDN
静态资源可以通过CDN来加速
静态资源要单独域名,cname映射到CDN服务厂商提供的DNS服务器
应用隔离
将系统划分为若干个服务模块,各个模块之间是相对独立的,这就是解耦
微服务就是一个应用隔离的方式
物理隔离
服务器,机房,集群等维度的隔离
比如 异地多活的设计
课程收获:
这篇关于【金秋打卡】第11天 构建微服务设计架构知识体系--微服务可用性之服务隔离的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-24Java中定时任务实现方式及源码剖析
- 2024-11-24Java中定时任务实现方式及源码剖析
- 2024-11-24鸿蒙原生开发手记:03-元服务开发全流程(开发元服务,只需要看这一篇文章)
- 2024-11-24细说敏捷:敏捷四会之每日站会
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解