当前位置:网站首页>微服务系列二:微服务架构面临的挑战
微服务系列二:微服务架构面临的挑战
2022-08-07 07:56:00 【Micro Stone】
微服务系统相对于以往的单体系统更为复杂。在构建的时候,研发团队必须要管理和支持很多组件,环境会变得更加复杂。下面是我以往构建微服务系统时整理的一些主要挑战。

一、限界上下文
限界上下文概念起源于领域驱动设计 (DDD) 圈子。它的出现促进了优先对象模型的服务方法,定义了服务责任和绑定的数据模型。有边界的上下文澄清、封装并定义了模型的特定责任。每个模型都必须在子域内隐式定义一个上下文,并且每个上下文都定义了边界。换句话说,服务拥有其数据并对其完整性和可变性负责。它支持微服务最重要的特性:独立性和解耦。
二、动态扩展和缩减
不同微服务上的负载可能在不同类型的实例上。除了自动扩展你的微服务应该自动缩减。降低了微服务的成本,可以动态分配负载。
三、监控
传统的监控方式与微服务差异性很大,微服务有多个服务组成了单个应用程序支持的相同功能。当应用程序中出现错误时,找到根本原因具有很大的挑战性。
四、容错
容错是不会降低整个系统的单个服务。当故障发生时,应用程序可以在一定的满意度下运行。如果没有容错能力,系统中的单个故障可能会导致完全崩溃。断路器可以实现容错,它是一种将请求包装到外部服务,并检测它们何时出现故障的模式。微服务需要一定程度上容忍内部和外部故障。
五、循环依赖
跨不同服务的依赖管理,这个功能非常重要。如果不及时识别和解决,循环依赖可能会产生问题,当依赖关系形成了环,最终导致:在安装 A 软件包之前,必须要安装 A、B、C、D 软件包
六、DevOps 文化
微服务非常适合 DevOps。它提供更快的交付服务、跨数据的可见性和具有成本效益的数据。它可以将他们对容器化转换的使用从面向服务的架构 (SOA) 扩展到微服务架构 (MSA)。
微服务的其他挑战
- 随着我们添加更多微服务,我们必须确保它们可以一起扩展。更多的粒度意味着更多的组件,增加了系统的复杂性。
- 传统的日志记录是无效的,因为微服务是无状态的、分布式的、独立的。日志记录必须能够跨多个平台关联事件。
- 当更多的服务相互交互时,失败的可能性也会增加。
边栏推荐
- pip3升级后报错f“pip[sys.version_info.major)“
- 传输层(UDP协议,TCP协议三次握手、四次挥手)
- PG 函数,根据表名生成对应的建表语句
- 面试官:如果要存 IP 地址,用什么数据类型比较好?很多人都会答错
- 神经网络和pid有什么区别,基于神经网络的pid控制
- rest client: a lightweight vscode plugin for api requests
- Actionformer: Localizing moments of actions with transformers 论文阅读笔记
- 服务端获取用户ip
- 神经网络权值是什么意思,神经网络权重取值范围
- A Pursuit of Temporal Accuracy in General Activity Detection TAG论文阅读笔记
猜你喜欢

Web3 Reference Architecture

学神经网络需要什么基础,神经网络需要什么基础

明明加了唯一索引,为什么还是产生重复数据?

FPGA开发第二弹:流水灯实验

Model fine-tuning transfer learning Finetune method Daquan

31. Understand what is avalanche, penetration and breakdown of redis?What happens after redis crashes?What are the countermeasures

别看了,这就是你的题呀(二)

Transport layer (UDP protocol, TCP protocol three-way handshake, four-way wave)

传输层(UDP协议,TCP协议三次握手、四次挥手)

30.01 C/S、TCP/IP协议妙趣横生、惟妙惟肖谈
随机推荐
HPC技术:MPICH实现原理分析
当一个用户登录时,会引发哪些安全性的思考呢
The server gets the user ip
HPC Technology: Analysis of MPICH Implementation Principle
运筹学基础【二】 之 预测
E-commerce data warehouse notes 1 (data warehouse concept, project requirements and architecture design, data generation module)
网络安全笔记3——双钥密码体制
Redis 定长队列的探索和实践
Swordsman Offer II 091. Paint the House
RestTemplate
org.apache.ibatis.binding.BindingException
Sort -- Hill sort
VoLTE Basic Self-Learning Series | IMS Network Overview
Transport layer (UDP protocol, TCP protocol three-way handshake, four-way wave)
jenkins配置自动打包
排序--选择排序
大屏显示之动态词云组件
JVM:(五)运行时数据区之虚拟机栈
DCDC电源方案设计踩坑
CTO强烈禁止使用Calendar,那用啥?