什么是微服务(描述,特点,优点,挑战)

Martin Fowler在他的博客中试试这样描述微服务的
In short, the microservice architectural style is an approach to developing a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms, often an HTTP resource API. These services are built around business capabilities and independently deployable by fully automated deployment machinery. There is a bare minimum of centralized management of these services, which may be written in different programming languages and use different data storage technologies.

用中文描述就是
微服务是一种架构风格,一种将一个单一应用程序程序开发为一组小型服务的方法,每个服务运行在自己的进程中,服务间通信采用轻量级通信机制(通常用HTTP资源API)。这些服务器围绕业务能力构建并且可通过全自动部署机制独立部署。这些服务公用一个最小型的集中式管理,每个服务都可以用不同的语言开发,不同的数据库存储技术。

从中可以看到,微服务具备以下特点

  • 每个服务可独立运行在自己的进程里
  • 一系列独立运行的微服务共同构建起整个系统
  • 每个服务为独立的业务开发,一个微服务值关注某个特定的功能,例如订单管理,用户管理等。
  • 微服务之间通过一些轻量的通信机制进行通信,例如通过RESTful API进行调用。
  • 可以使用不同的语言与数据存储技术
  • 全自动部署机制

微服务架构的优点

  1. 易于开发和维护:一个服务只会关注一个特定的业务功能,所以业务清晰,代码量少,开发和维护单个服务相对简单
  2. 单个服务启动快:单个服务代码量少,所以启动快
  3. 局部修改容易部署:单一应用只要有修改就得重新部署整个应用,微服务架构对某个服务修改,只需要重新部署这个服务即可
  4. 技术栈不受限制:可以结合业务需求团队特点,在不同的服务使用不同的技术栈
  5. 按需伸缩:可根据需求实现细粒度扩展

微服务架构的缺点

  1. 运维要求高:更多的服务意味着要投入更多的运维
  2. 分布式固有的复杂性:使用微服务构建的是一个分布式系统,对于一个分布式系统,系统容错,网络延迟,分布式事务都会带来巨大的问题
  3. 接口调整成本高:微服务之间通过接口进行通信,如果修改某一个服务的api,可能所有用到这个接口的微服务都需要进行调整
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值