浅谈微服务

技术方法论:向微服务迈进:

理论:"软件研发中任何一项技术、方法、架构都不可能是银弹"---Fred Brooks

哪些场景适合用微服务,呢些不适用?(微服务存在哪些理解误区、应用前提) 一些被验证过、被总结为经验的最佳实践有哪些?

目的:微服务的驱动力

微服务的目的:The goal of microservices is to sufficiently decompose the application in order to facilitate agile application development and deployment.

微服务的目的就是有效的拆分应用,以实现敏捷开发和部署。

为什么需要微服务?

凡事应先有目的,有预期收益再谈行动才合理。

有人说迈向微服务的目的是为了追求更先进的架构形式?这句话没什么含量,任何一次架构演进都是为了更加先进而没有为了倒退的。

有人说微服务是信息发展的必然阶段,为了应对日益庞大的压力,获得更好的性能。这个观点看似合理具体,准确,实则不然。笔者个人态度是反对以获得更好性能为主要目的的,这可以是辅助功能,现在单体通过采用可扩缩设计,同样能够集群部署,更重要的是云计算数据中心算力可以认为是无限的,且能通过扩展硬件的手段解决问题就别用复杂的软件方法(原因在于银弹中说过:硬件的成本能持续下降而软开不行),而且性能也不会因为采用了微服务架构就凭空产生。把系统拆分为微服务,一旦在某个关键地方卡住了业务流程,其整体的结果往往还不如单体。没有清晰的职责划分,导致扩展性失效,多加机器往往还不如单机。

所以 软件系统选择微服务架构,通常比较常见的、合理的驱动力来自组织内部、外部两方面,先列举一些外部因素:当意识到没有什么技术可以包打天下;当个人能力成为明显的制约;内部因素:变化特别快的创!

新业务系统往往会自主选择微服务,因为频繁的更迭会让开发者疲惫不堪;

总之,选择微服务一定是经过权衡利弊的。微服务最主要的目的是对系统进行有效的拆分,实现物理层面的隔离。微服务的核心价值就是拆分之后的系统能让局部单个服务有可能实现敏捷的卸载、部署、开发、升级。局部的持续更迭,是系统具备 Phoenix 特性的必要条件。

前提:微服务需要的条件

第一个先决条件就是决策者必须坚定不移的使用微服务,沟通决定设计;

第二个前提条件就是组织中具备一些对微服务有充分理解、有一定实践经验的技术专家。虽然微服务对于开发者来说是友善的,但对于架构者确要求很高,

我敢断言你的社交是不超过5个知己好友,15个可信任的伙伴,35个普通朋友,150个说得上话的人。------邓巴数

相关推荐
阿成学长_Cain1 小时前
Linux dirs命令详解|Bash目录堆栈管理快速切换目录实战教程
linux·运维·前端·数据库
小羊Yveesss1 小时前
2026年微信小程序后端怎么搭建?后台、数据、接口和运维怎么选
运维·微信小程序·小程序
山登绝顶我为峰 3(^v^)32 小时前
C/C++ 交叉编译方法
java·c语言·c++
一叶飘零_sweeeet2 小时前
Codex 与 Claude Code 深度拆解:两代 AI 编程智能体的技术本质与 Java 实战指南
java·ai·codex·claude code
Listen·Rain2 小时前
提示词和提示词模板
java·人工智能·spring boot
doiito2 小时前
【Web安全,微服务安全】HashiCorp Vault 项目深度分析报告
安全·微服务
wuqingshun3141592 小时前
重写equals而不重写hashCode,会出什么问题?
java·开发语言
我今晚不熬夜3 小时前
Java语言实现Modbus协议通过用串口读取数据(以RTU为例)
java·网络协议
想你依然心痛3 小时前
嵌入式Linux安全加固:SELinux、Capabilities与Seccomp——强制访问控制与沙箱
linux·运维·安全