微服务架构
概述
- 微服务是一种架构风格,将单体应用划分成一组小的服务,服务之间相互协作,实现业务功能每个服务运行在独立的进程中,服务间采用轻量级的通信协作机制(通常为HTTP/JSON),每个服务围绕业务能力进行构建,并且能够自动化机制独立的部署。
优势
- 通过分解巨大单体为多个服务方法解决了复杂性的问题。它把庞大的单一模块应用分解为一系列服务,同时保持总体功能不变,但整体并发却得到了极大提升。
- 让每个服务都能够独立开发,开发者能自由的选择可行的技术,提供API服务。
- 微服务的架构模式是每个服务独立的部署。开发者不再需要协调其他服务部署对本服务的影响。这种改变可以加快部署进度。
- 微服务使得每个服务可以独立扩展,可以根据模型的规模来部署满足的规模,使用更合适与服务资源需求的硬件。
挑战
- 并非所有的系统都能拆分为微服务
- 部署较以往更加复杂,每个微服务需要独立部署,从而增加系统的复杂度,【容器技术能够解决这个问题】
- 性能问题,由于微服务注重独立性,互相通信只能通过标准接口,可能产生延迟或调用出错。
- 数据一致性问题,作为分布式部署的微服务,在保持数据一致性方面需要比单体架构更加困难