Springcloud基础知识
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Springcloud基础知识相关的知识,希望对你有一定的参考价值。
参考技术A 1.eureka:2.ribbon:
3.feign:
4.zuul路由网关:
5.hystrix断路器:
6.config配置中心:
7.bus消息总线
8.sleuth 链路追踪
eureka集群:相互注册,相互守望。
自我保护机制:防止网络故障的情况下,server端对client端进行清理。正常情况下,server端在90秒内接收不到client端的心跳,就会注销该服务。但启动了自我保护,则不会立即清理,依旧会保留该微服务信息。一句话,宁可保留错误的信息,也不会盲目注销任何可能健康的服务。
服务注册流程:
ribbon主要负责客户端的负载均衡和服务调用。
ribbon负载均衡和nginx负载均衡的区别:ribbon负载均衡时本地服务调用,nginx负载均衡是服务端负载均衡。
ribbon负载均衡策略:轮询,随机,可用过滤(过滤掉那些失效或者高并发的服务)
ribbon采用RestTemplate进行服务调用。
主要解决服务间的调用。
需要创建一个接口,并添加注解feignclient即可。feign集成了ribbon。
网关是微服务的入口,外部由网关访问各个微服务,核心是路由和过滤。
有了路由网关,各个微服务的端口就不会对外暴露,只需要暴露路由网关的ip地址即可。
动态路由:通过服务名就可以路由到对应的服务中。
过滤器:因为每一个请求都会经过路由网关,所以经常在路由网关中进行全局过滤。例如跨域等。
hystrix主要解决分布式系统中,服务之间调用出现延迟,异常,宕机等情况时,避免整个服务出现问题,提高了系统的可用性。
服务降级:当服务出现问题后,直接给用户一个fallback的友好提示。
服务熔断:当服务调用出现问题后,直接熔断,而不是等待超时,之后通过服务降级给用户一个友好提示。服务熔断是服务降级的一种方式。
服务雪崩:多个服务之间调用,因为某一个服务出现故障,导致系统崩溃。
服务限流:限制并发数量,有序进行。
当微服务中有非常多的微服务时,往往修改一个相同的配置,就需要修改全部服务的配置,造成耗时费力,所以需要一个全局的配置中心,只修改一处,全局生效。
并且有了配置中心后,还可以进行测试,开发和生成环境的统一配置。
通常bootstrap.yml的配置优先级比application.yml的优先级高,所以config配置中心会优先加载,再结合application.yml的配置。
bus需要和config配合使用,因为config配置后,要么需要重启,要么需要发送post请求通知。所以通过bus可以刷新配置,统一动态配置。
对各个微服务之间的调用进行路径追踪。
SpringCloud 微服务架构(基础详解)
SpringCloud 微服务架构(基础详解)
- 微服务架构的概念
- SpringCloud微服务更新
- SpringCloud微服务架构项目搭建注意事项
- RestTemplate
- 微服务注册中心
- 负载均衡服务调用
- 服务降级、熔断、限流、隔离
- 服务网关
- 服务配置
- 消息配置
- 分布式请求链路追踪
- SpringCloud Alibaba 基础详解
微服务架构的概念
微服务架构是一种架构模式,它提倡将单一的应用程序划分成一组小的服务,服务之间互相协调、互相融合,为用户提供最终价值,每个服务在其独立的进程中,服务与服务间采用轻量级通信机制互相协作(通常是基于HTTP协议的Restful API)。每个服务都围绕着具体业务进行构建,并且能够被独立的部署到生产环境、类生产环境等。另外,应当尽量避免统一的、集中的服务管理机制,对具体的一个服务而言,应根据业务上下文,选择合适的语言、工具对其进行构建。
SpringCloud微服务更新
打钩代表目前在用,打叉表示停更或被替代
SpringCloud微服务架构项目搭建注意事项
一、项目构建:
1、约定 > 配置 > 编码
二、微服务整体聚合父工程
1、新建简单工程
2、聚合父工程名字
3、选择 maven 版本
4、工程名字
5、字符编码
6、注解生效激活
7、java 编译版本选择 1.8
8、File Type过滤
三、对父工程的pom管理的jar包内容优化
1、将maven默认 <package>jar</package> 改为 <package>pom</package>
2、统一jar包管理版本 <properies></properies>
3、<dependencyManager>子模块继承之后,提供作用:锁定版本 + 子 modlue 不用写 groupId 和 version,对jar包的管理值负责声明,不负责引入。
四、微服务模块的构建步骤
1、建 module
2、改 pom
3、写 yml
4、主启动
5、业务类
RestTemplate
概念:
RestTemplate
提供了便捷访问Http服务的方法,是一种简单便捷的访问restful
服务模板类,是spring
提供的用于访问Rest服务的客户端模板工具集
。参考spring官网。
使用:
(url,requestMap,ResponseBean.class)
这三个参数分别代表如下:
1、REST请求地址
2、请求参数
3、HTTP响应转换被转换成的对象类型
将RestTemplate注入到spring容器中,交给spring进行管理:
@Configuration
public class ApplicationContextConfig
@Bean
public RestTemplate getRestTemplate()
return new RestTemplate();
微服务注册中心
CAP原则:https://blog.csdn.net/qq_36763419/article/details/120014638
Eureka(停更)
SpringCloud 与 Eureka 的集成:https://blog.csdn.net/qq_36763419/article/details/119734826
Zookeeper
SpringCloud 与 Zookeeper 的集成:https://blog.csdn.net/qq_36763419/article/details/119954590
Consul
SpringCloud 与 Consul 的集成:https://blog.csdn.net/qq_36763419/article/details/119987591
Nacos
负载均衡服务调用
Ribbon负载均衡服务调用
SpringCloud 与 Ribbon 的集成:https://blog.csdn.net/qq_36763419/article/details/120015109
OpenFeign服务接口调用
SpringCloud 与 OpenFeign 的集成:https://blog.csdn.net/qq_36763419/article/details/120063156
服务降级、熔断、限流、隔离
Hystrix(停更)
SpringCloud 与 Hystrix 的集成:https://blog.csdn.net/qq_36763419/article/details/120119872
服务网关
SpringCloud Gateway
SpringCloud 与 Gateway 的集成:https://blog.csdn.net/qq_36763419/article/details/120492044
服务配置
SpringCloud Config
SpringCloud 与 Config 的集成:https://blog.csdn.net/qq_36763419/article/details/120765489
消息配置
SpringCloud Bus服务总线
SpringCloud Stream消息驱动
SpringCloud 与 Stream + RabbitMQ 的集成:https://blog.csdn.net/qq_36763419/article/details/120969333
分布式请求链路追踪
SpringCloud Sleuth分布式请求链路追踪
SpringCloud 与 Sleuth + Zipkin 的集成:https://blog.csdn.net/qq_36763419/article/details/121065169
SpringCloud Alibaba 基础详解
SpringCloud Alibaba 概念
SpringCloud 与SpringCloud Alibaba 的集成:https://blog.csdn.net/qq_36763419/article/details/121127017
SpringCloud Alibaba Nacos 服务注册中心
SpringCloud Alibaba Nacos 服务配置中心
Nacos 作为服务配置中心:https://blog.csdn.net/qq_36763419/article/details/121188285
SpringCloud Alibaba Nacos 集群与持久化
Nginx(高可用) + Nacos(集群) + mysql(主从复制): https://blog.csdn.net/qq_36763419/article/details/121179174
SpringCloud Alibaba Sentinel 服务熔断降级、限流
SpringCloud 与 Sentinel 服务熔断降级、限流的集成:https://blog.csdn.net/qq_36763419/article/details/121325199
SpringCloud Alibaba Seata 分布式事务框架
SpringCloud 与 Seata 分布式事务的集成:https://blog.csdn.net/qq_36763419/article/details/121563729
持续更新中。。。。。。
以上是关于Springcloud基础知识的主要内容,如果未能解决你的问题,请参考以下文章
Springcloud基础知识- Spring Cloud Hystrix | Hystrix 全局/解耦降级服务熔断故障监控