一、什么是微服务?
微服务是系统架构的一种风格,是将原本独立的系统拆分成多个小型服务,这些小型服务都在各自的进程中运行,服务之间通过HTTP的RESTful API 进行通信协作。被拆分成的每一个小型服务都围绕着系统中的某一项或一些耦合度高的业务进行构建,能够独立部署。这些为服务可以使用不用的语言来编写。
二、单体架构是什么?
一个单体应用程序把它所有的功能都放在一个单一进程中,并且通过在多个服务器上赋值这个单体进行扩展。
三、微服务的优点?
1、易于开发和维护
2、单个微服务启动较快
3、局部修改容易部署
4、技术栈不受限制
5、按需伸缩
四、单体架构的缺点?
1、 复杂性逐渐变高
2、技术债务逐渐上升
3、部署速度逐渐变慢
4、阻碍技术创新
5、无法按需伸缩
五、为什么选择Spring Cloud?
Spring Cloud 是一个解决微服务架构实施的综合性解决框架。
服务治理:Spring Cloud Eureka —— 包含服务注册中心、服务注册与发现机制的实现。
客户端负载均衡:Spring Cloud Ribbon —— 客户端负载均衡的服务调用组件。
服务容错机制:Spring Cloud Hystrix —— 实现断路由模式,帮助服务依赖中出现的延迟和为故障提供强大的容错机制。
声明式服务调用:Spring Cloud Fegin —— 基于Ribbon和Hystrix的声明式服务调用组件。
API网关服务:Spring Cloud Zuul —— 提供智能路由、访问过滤等功能。
分布式配置管理:Spring Cloud Config —— 配置管理工具,支持使用Git存储配置内容,可以使用它实现应用配置的外部化 存储,并支持客户端配置信息刷新、加密/解密配置内容。
消息总线:Spring Cloud Bus —— 用于传播集群中的状态变化或事件,以触发后续的处理,比如用来动态刷新配置等。
消息驱动:Spring Cloud Stream —— 通过Redis、Rabbit或者Kafka实现的消费微服务,可以通过简单的声明式模型来发送 和接收消息。
分布式服务跟踪:Spring Cloud Sleuth