一、微服务架构概述
微服务是一种架构模式。将单一应用划分成一组小的服务,服务之间互相协调、互相配合。
每个服务运行在其独立的进程中,服务与服务之间采用轻量级的通信机制互相协作(通常是基于HTTP协议的RESTful API),每个服务都围绕具体业务进行构建,并且能够独立部署到生产环境。
应当避免统一的、集中式的服务管理机制,对具体的一个服务而言,根据业务上下文,选择合适的语言、工具对其进行构建。
一、 SpringCloud简介
SpringCloud:分布式微服务架构的一站式解决方案,多种微服务架构落地技术的集合体。“微服务全家桶”
SpringCloud和SpringBoot都是基于Spring,SpringBoot为了简化封装Spring而来,SpringCloud则是将各个SpringBoot集成在一起。
1.服务开发:SpringBoot
2. 服务分布式配置:SpringCloud Config(之前使用Config,携程网的Apollo阿波罗、或者Nacos【推荐使用】)
3.服务注册与发现 Eureka(之前Eureka,springcloud自带,已停更,替换:方案一:zookeeper+dubbo。替换方案二:Consul(go语言填写,不推荐)。替换方案三:Nacos【推荐,重点非常重要】)
4.服务调用(与负载)Ribbon、Feign。(之前使用Ribbon(目前大部分还在使用),LoadBalancer(还很初级,未来逐渐慢慢替代Ribbon)).(之前使用Feign,目前使用OpenFeign【推荐使用】)
5.服务熔断(与降级)Hystrix(之前使用Hystrix,目前还在大范围使用,但是官网不推荐使用,resilinece4j国外使用【国内用的少】,国内替换使用【Spring cloud Alibaba Sentinel】)
6.负载均衡
7.服务降级
8.服务消息队列
9.配置中心管理
10.服务网关 Zuul(之前使用Zuul,getway【推荐使用】)
11