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 微服务架构(基础详解)

微服务架构的概念

微服务架构是一种架构模式,它提倡将单一的应用程序划分成一组小的服务,服务之间互相协调、互相融合,为用户提供最终价值,每个服务在其独立的进程中,服务与服务间采用轻量级通信机制互相协作(通常是基于HTTP协议的Restful API)。每个服务都围绕着具体业务进行构建,并且能够被独立的部署到生产环境、类生产环境等。另外,应当尽量避免统一的、集中的服务管理机制,对具体的一个服务而言,应根据业务上下文,选择合适的语言、工具对其进行构建。

SpringCloud微服务更新

打钩代表目前在用,打叉表示停更或被替代

SpringCloud微服务架构项目搭建注意事项

一、项目构建:	
	1、约定 > 配置 > 编码
	
二、微服务整体聚合父工程
	1、新建简单工程
	2、聚合父工程名字
	3、选择 maven 版本
	4、工程名字
	5、字符编码
	6、注解生效激活
	7、java 编译版本选择 1.8
	8File 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 与 Bus + RabbitMQ + Config 的集成:https://blog.csdn.net/qq_36763419/article/details/120851600

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 与SpringCloud Alibaba Nacos 服务注册中心的集成:https://blog.csdn.net/qq_36763419/article/details/121167710

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基础知识

Springcloud基础知识- Spring Cloud Hystrix | Hystrix 全局/解耦降级服务熔断故障监控

SpringCloud基础概念

SpringCloud知识概括

SpringCloud知识概括

SpringCloud基础组件完结--第七章