【金秋打卡】第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-05-15鸿蒙生态设备数量超8亿台
- 2024-05-13TiDB + ES:转转业财系统亿级数据存储优化实践
- 2024-05-09“2024鸿蒙零基础快速实战-仿抖音App开发(ArkTS版)”实战课程已上线
- 2024-05-09聊聊如何通过arthas-tunnel-server来远程管理所有需要arthas监控的应用
- 2024-05-09log4j2这么配就对了
- 2024-05-09nginx修改Content-Type
- 2024-05-09Redis多数据源,看这篇就够了
- 2024-05-09Google Chrome驱动程序 124.0.6367.62(正式版本)去哪下载?
- 2024-05-09有没有大佬知道这种数据应该怎么抓取呀?
- 2024-05-09这种运行结果里的10.100000001,怎么能最快改成10.1?