为什么你的微服务不对劲?
版权声明
我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。
TechLead 少个分号
扫码关注公众号
扫码阅读
手机扫码阅读
在云原生时代,微服务成为了开发者的默认选择,但实践中带来的问题似乎多于解决的问题。微服务的本质是一个昂贵的分布式系统,基于松耦合协议如HTTP实现应用间的通信。微服务的流行源自大型企业在开发团队扩大和系统需求增长时对单体应用进行拆分,以实现独立开发和部署。
微服务作为分布式系统,涉及多个代价和问题。分布式鉴权面临性能与权限即时撤销之间的矛盾。服务拆分后需要一个编排者来整合数据和流程,但这可能会影响团队独立交付的能力。分布式事务无法实现实时共识,尽管可以通过协调器达到近似共识。团队治理中追求复用能力和端到端交付存在矛盾。分布式查询则需要解决远程连接和笛卡尔运算失效的问题。
工程上,分布式系统的调试难度增加,日志分散在不同服务中,版本发布依赖于其他服务的更新。要设计良好的分布式系统,需要合理设计服务角色,确保服务具有独立提供能力。
参考资料涵盖了分布式系统理论,包括Fischer等人1985年关于分布式共识的不可能性论文,以及CAP定理的解释。
TechLead 少个分号
TechLead 少个分号
扫码关注公众号
还在用多套工具管项目?
一个平台搞定产品、项目、质量与效能,告别整合之苦,实现全流程闭环。
查看方案
TechLead 少个分号的其他文章
周末杂谈 | 追不上热点,但想聊聊程序员的心理问题
本来不想追这种热点的,这篇文章纯粹是为了分享一下我个人的经历,因为这段经历从后面来看其实非常宝贵。
系统设计 | "胖瘦" BFF:常见的两种微服务形态
了解\x26quot;胖瘦\x26quot; BFF微服务架构的两种形态,它们的优缺点以及如何选择最适合的方案。
建模方法元模型:如何设计一个建模方法
Eric DDD 中阐述了领域驱动设计的重要意义和一些基本实践,但是并没有给出一套具体的建模过程方法。本文会和大家一起探讨常用软件建模过程方法的基本逻辑,以及如何设计一套简单的建模过程。
自我提升 | 软件工程中的"政治" (长文)
了解和驾驭政治几乎是架构师的必修课,因为架构师做出的每一个技术决策都可能受到挑战。
为什么工程师都需要一块白板
一家靠谱的软件公司的墙面上都有许多写字的白板,越是专业的软件公司,越会使用白板来进行讨论。白板甚至是一种文化,越来越多的公司在办公室提供可以写字的墙面和容易擦写的马克笔。
加入社区微信群
与行业大咖零距离交流学习
PMO实践白皮书
白皮书上线
白皮书上线