微服务的理解

10 篇文章 0 订阅

为什么我们需要微服务?它能给企业带来什么价值

背景

传统企业的IT软件大多都是各种独立系统的堆砌,这些系统的问题总结来说就是扩展性差,可靠性不高,维护成本高.

SOA的软件架构专门针对这些问题给出了一套解决方案.
由于SOA早期均使用了总线模式,这种总线模式是与某种技术栈强绑定的,比如:J2EE。这导致很多企业的遗留系统很难对接,切换时间太长,成本太高,新系统稳定性的收敛也需要一些时间。最终SOA开起来很美,但却成为了企业级奢侈品,中小公司都望而生畏。

微服务

微服务,从本质意义上看,还是SOA架构。
但内涵有所不同,微服务并不绑定某种特殊的技术,在一个微服务的系统中,可以有Java编写的服务,也可以有 Python 编写的服务,他们是靠Restful架构风格统一成一个系统的。

基于这种简单的的协议规范,无论是兼容老旧系统,还是上线新业务,都可以随着时代的步伐,滚动升级.
所以微服务架构,既保护用户已有投资,又很容易向新技术演进。

微服务提供的能力,以及背后需要付出的代价。

  • 单个微服务代码量小,易修改和维护。但是,系统复杂度的总量是不变的,每个服务代码少了,但服务的个数肯定就多了。就跟拼图游戏一样,切的越碎,越难拼出整幅图。一个系统被拆分成零碎的微服务,最后要集成为一个完整的系统,其复杂度肯定比大块的功能集成要高很多。

  • 可独立部署和运行。但依赖一个高效的集群通信机制成为一个问题

  • 单个微服务拥有自己的进程,进程本身就可以动态的启停,可无缝升级,但需要强大的版本管理和部署能力

  • 可独立做负载均衡,提高性能和可靠性,动态伸缩,高可靠.

  • 需要服务发现, 服务注册

  • 服务的安全性, 监控, 降级, 权限控制, 熔断.

综上: 微服务,需要系统要提供一套基础的架构,提供微服务的底座功能, 支持微服务的松耦合和带来的优点.

需要以下:
1. 负载均衡
2. 服务注册, 发现, 依赖管理
3. 消息总线, RPC, MQ
4. 调用链
5. 日志(汇集)
6. 可用性保障, 服务降级,熔断等

什么样的服务能拆分为微服务:
1.职责业务独立
2.数据和逻辑独立, RPC调用的成本
3.与其他系统松耦合

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值