微服务
- 用户与服务器的正常运作
- 一个服务器的承载量是有限的,所以用户数量上涨时,就需要增加服务器。
- 在运行发现不同服务器都有各自侧重的业务,于是服务器中就存放侧重的业务,其余业务就都拿出来。
于是乎,到达了最后的一个阶段就是微服务。
微服务核心问题
服务器模块化之后就出现了4个核心问题?
- 服务器很多,客户如何定位到相应业务的服务器
- 服务器之间的通信
- 如何管理这些服务器
- 服务器挂机了怎么办
基于上述四个问题,出现了三种技术来解决
SpringCloud
- Spring Cloud顾名思义是跟云相关的,云程序实际上就是指分布式应用程序,所以Spring Cloud就是为了让分布式应用程序编写更方便,更容易而提供的一组基础设施,它的核心是Spring框架,利用Spring Boot的自动配置,力图实现最简化的分布式应用程序开发。
- Spring Cloud包含了一大堆技术组件,既有开源社区开发的组件,也有商业公司开发的组件,既有持续更新迭代的组件,也有即将退役不再维护的组件。
微服务优缺点
优点
- 单一职责原则
- 每个服务足够内聚,足够小,代码容易理解的,这样能聚焦一个指定的业务功能或业务需求
- 开发简单的,开发效率高,一个服务可能就是专一的只干一件事
- 微服务能够被小团队单独开发
- 微服务是松耦合的,是有功能意义的服务,无论是在开发阶段或部署额阶段都是独立的
- 微服务能使用不同的语言开发
- 易于和第三方集成,微服务允许容易且灵活的方法集成自动部署
- 微服务只是业务逻辑的代码,不会和HTML,CSS或者其他界面混合
- 每个微服务都有自己的存储能力,可以有自己的数据库的,也可以有统一数据库
缺点
- 开发人员要处理分布式系统的复杂性
- 多服务运维难度,随着服务的增加,运维的压力也在增大
- 系统部署依赖
- 服务间通信成本
- 数据一致性
- 系统集成测试
- 性能监控