微服务架构---概述

微服务架构介绍

传统的web应用都是一个war包,所有的代码都在该文件中。运行时,都在一个操作系统进程中。这种架构叫单体式架构。
微服务架构---概述
微服务架构是按业务功能把应用划分为各个独立的部分,各部分都是独立运行的操作系统进程,它们一起协作完成系统的功能,构成一个完整的应用。示意图:
微服务架构---概述
总的来说,每个服务运行在自己的进程中,并使用轻量级机制通信,通常是HTTP API,这些服务基于业务能力构建,并能够通过自动化部署机制来独立部署,这些服务使用不同的编程语言实现,以及不同数据存储技术,并保持低限度的集中式管理

优点

1)解决了系统的复杂性问题:服务间相互独立(解耦),单个服务更易开发,理解和维护;
2)支持高并发:每个服务可以独立扩展
3)可重用;
4)更易升级:每个服务可以单独升级
5)系统的技术更新更容易;
6)系统之间互操作更容易。

缺点

1)架构更复杂:是分布式系统,分布式系统比单体式应用技术上更复杂,需处理通信失败等分布式问题;
2)使用多个数据库,需解决数据一致性问题(事务);
3)测试一个微服务应用很复杂
需部署和启动所有的微服务;
4)部署一个微服务应用很复杂
NetFlix网站有大约600个服务,每个服务都有多个实例,这就需要许多配置、部署、扩展和监控的部分;
5)监控和管理一个微服务应用很复杂

适用场景

1)大型信息系统中对性能要求不高和数据传输量不大的部分,典型案例:软通动力的智慧城市业务系统;
2)高并发的大中型互联网应用中对性能要求不高和数据传输量不大的部分,典型案例:阿里的淘宝网站。
不适合大数据处理,系统软件,实时系统等领域。

微服务技术框架

主要微服务框架:spring cloud, dubbo, istio

从技术完整性,学习难度,社区活跃度,市场占有率等方面综合考虑,选择学习spring cloud
而Spring cloud 学习路线为
1)spring boot
2)RESTful服务
3)spring cloud
4)docker
Spring Cloud 项目地址:
https://spring.io/projects/spring-cloud