CXYVIP官网源码交易平台_网站源码_商城源码_小程序源码平台-丞旭猿论坛
CXYVIP官网源码交易平台_网站源码_商城源码_小程序源码平台-丞旭猿论坛
CXYVIP官网源码交易平台_网站源码_商城源码_小程序源码平台-丞旭猿论坛

SpringCloud概念简介-免费源码丞旭猿

简介

Spring Cloud未开发者提供了一套快速开发分布式系统的组件,Spring Cloud 并不推荐重复造轮子,主张利用Spring boot对其他公司较成熟的组件进行封装。

其核心概念包括:

Spring Cloud 核心概念

1、配置中心

微服务系统中,存在很多功能开关和各种参数的配置项,传统的配置文件、数据库等方式无法满足开发人员对配置管理的需求,分布式配置中心应运而生。

特点包括:

统一管理

配置中心服务端负责配置的管理(新增、修改、删除、发布),继承了配置中心客户端的微服务程序可以统一从配置中心服务端拉去配置,从而实现整个微服务系统的统一配置管理。

区分环境

一个微服务应用中的某些配置项,在不同环境(dev、uat、prd)通常是不同的,作为分布式配置中心需要具有隔离不同环境的功能,使得同一个微服务在不同环境能拉取对应的配置。

实时刷新

当配置中心服务端中的配置发生修改时,配置中心客户端需要能实时监听到程序的改变,使得微服务应用程序可以实时获取最新配置,并且不用重新部署应用程序。

权限控制

在配置中心,可以针对不同的角色或者用户设置对应的权限,比如张三可以新建但不能发布、小明可以查看但不能修改。

版本控制

在使用配置中心的过程中,难免会出现误操作,而这个时候就要进行版本回退,作为配置中心,是一定要支持版本控制的。

灰度发布

在需要发布一项配置时,如果需要发布到多个实例(集群),那么此时可以只发布到部分实例,待测试通过后,再发布到全部实例,这就是配置的灰度发布。

常用组件:Spring Cloud Config、阿里Nacos、携程Apollo

2、注册中心

注册中心相当于微服务架构中的地址通讯录,每个微服务会将服务及地址注册到注册中心,服务消费者在调用某个微服务之前先从注册中心查找服务地址,然后进行调用。

特点包括:

自动注册

微服务应用在启动时,通过注册中心客户端组件,将服务相关信息自动注册到注册中心服务端。

健康检查

当已经注册到注册中心的微服务实例宕机后,注册中心服务端能发现实例已经宕机,并把信息从注册中心删除掉

自动发现

服务消费者需要能实时监听到注册中心的服务信息变更,以能真正的调用服务时不会滞后。

常用组件:Zookeeper、Eureka、Nacos、Consul

3、服务网关

服务网关是整个微服务架构对外的统一入口,所有客户端都能通过统一的网关使用微服务,服务网关起到了隔离外部和内部系统的作用,服务网关是微服务架构的标配组件。

特点包括:

高并发

作为微服务对外的入口,必须能支持高并发,能够承担更高的并发量,并保证高性能。

安全

服务网关通常具有权限认证、黑名单、白名单等保障网关安全的功能。

路由转发

服务网关接收到外部请求后,要求服务网关能根据请求和配置将请求转达到对应的后端微服务上。

监控与限流

作为系统的流量入口,服务网关要能监控流量情况,遇到突发情况时能及时限流,保证整个系统的稳定。

灰度发布

当某微服务有版本更新时,可以利用服务网关对流量进行切换,实现改为服务的灰度发布。

服务重试

当服务网关调用某个微服务失败后,可以通过服务网关设置重试策略来重新尝试调用该服务。

服务别名

可以在服务网关中给某个或某些微服务设置别名,从而对外屏蔽内部微服务的相关信息。

常用组件:Kong、Zuul、Spring Cloud Gateway

4、负载均衡

负载均衡是指将访问流量根据负载均衡算法分发到后端服务器的流量发布控制服务,通过负载均衡可以提高微服务的可用性以及性能。

常见算法:

简单轮询

将请求按顺序分发给后端服务器上,不关心服务器当前的状态,比如服务器性能、当前负载等。

加权轮询

根据服务器自身的性能给服务器设置不同的权重,将请求按顺序和权重分发给后端服务器,可以让性能高的机器处理更多的请求。

简单随机

将请求随即分发给后端服务器,请求越多,各个服务器接收到的请求越平均。

加权随机

根据服务器自身的性能给服务器设置不同的权重,将请求按照各个服务器的权重随即分发给后端服务器。

一致性哈希

根据请求的客户端ip,或请求参数通过hash算法得到一个数值,利用该数值取模映射出对应的后端服务器,这样能保证一个客户端或者相同参数的请求每次使用一台服务器。

最小活跃数

统计每台服务器上当前处理的请求数量,也就是请求活跃数,将请求分发给活跃数最小的服务器。

常用组件:nginx、lvs、ribbon

5、RPC调用

RPC调用就是远程过程调用,对于Java程序而言,RPC就是远程方法调用,表示一个方法调用远程的另一个方法,微服务中一个服务调用另外一个服务就可以用RPC调用。

HTTP和RPC调用的区别?

HTTP调用使用的是HTTP协议,是网络七层中的应用层协议,HTTP协议规定了数据传输的格式,Restful凤凤就是通过HTTP协议实现的。

RPC不是网络层面的协议,而是更上层更灵活的通信协议,RPC调用可以自定义数据格式、数据传输方式,只要能保证调用到远程方法即可。

常用组件:Dubbo、gRPC、Thrift、Feign

6、服务熔断

服务熔断是指,当服务A调用某个服务B不可用时,上游服务A为了保证自己不受影响,从而不再调用服务B,直接返回一个结果,减轻服务A和服务B的压力,直到服务B恢复。

三种状态:

Closed

熔断器不起作用,但当调用失败次数达到阈值时,则启动熔断器。

Open

此时不会真正调用下游服务,而是直接返回,当过了某段时间后,熔断器会进入到半打开状态。

Half-Open

此时会有部分请求访问下游服务,如果这些请求调用都成功,则认为下游服务器恢复了,那么则关闭熔断器,否则熔断器打开。

常用组件:Hystrix、Sentinel

7、服务降级

当发现系统压力过载时,可以通过关闭某个服务,或限流某个服务来减轻系统的压力。

熔断与降级的区别?

都是为了防止系统崩溃、都让用户体验到某些功能暂时不可用、熔断是下游服务故障触发的,降级是为了降低系统负载。

什么是服务雪崩?

服务A调用B,B调用C,此时大量请求突然调用A,加入服务A本身能抗住这些请求,但是服务C扛不住,导致服务C请求堆积,从而服务B请求堆积,然后一系列依赖的服务都会被请求堆积从到导致服务宕机,类似于雪崩,解决这个问题的方法就是降级与熔断。

常用组件:Hystrix、Sentinel

8、服务限流

服务限流指在高并发请求下,为了保护系统,可以对访问服务的请求进行数量上的限制,从而防止系统不被大量的请求压垮,在秒杀场景中,限流也是非常重要的。

常用限流算法:固定窗口计数器、滑动窗口计数器、令牌桶、漏桶。

常用组件:Hystrix、Sentinel

9、全局锁

全局锁,就是我们常说的分布式锁,是分布式系统的一种锁机制,通过全局锁可以很好的在分布式系统中互斥使用共享资源。

实现原理:

Zook利用watch机制和临时节点特性、Redis利用消费订阅机制与数据超时特性。

常用组件:Redisson、Curator

10、控制总线

控制总线也称消息总线,是为服务系统中用来连接系统中所有服务节点的,微服务中的所有服务节点可以通过控制总线来通讯。

应用场景:Spring Cloud Bus 就是控制总线的具体实现,某个微服务可以通过其来广播事件,而其他微服务可以接受并进行相关处理。 比如Spring Cloud Bus 配合 Spring Cloud Config 使用可以实现配置的动态刷新

Bus支持两种消息代理: RabbitMQ 和 Kafka

它又两种方式,一种是将消息推送到一个主机上,然后让主机根据局域网传播给其他主机,另一种方式是直接推送到配置中心上,让配置中心发送给其他主机。

11、分布式事务

再一次请求中,所涉及的分散在多个微服务上的操作要保证同时成功或者同时失败,这就是分布式事务,订单创建库存减少、银行转账等。

解决方案:直接通过数据库、通过消息队列、两阶段提交、三阶段提交

三个角色:事务协调器、事务管理者、资源管理者

常用框架:seata、lcn、bytetcc

12、服务安全

对于一个企业来说,微服务系统中的服务安全性越来越重要,服务的认证和授权是企业必须具备的,Spring Cloud Security是Spring Cloud 提供的服务安全组件。

特性:可扩展可配置的认证和授权;单点登录;防止会话固定、点击劫持、跨网站请求伪造等攻击,与Servlet API集成

13、链路追踪

链路追踪为微服务系统提供了完整的调用链路还原、调用请求统计、链路拓扑、应用依赖分析等功能,可以帮助开发者快速分析和诊断为服务架构下的性能瓶颈和定位问题。

收益:分布式调用链查询和诊断、应用性能实时汇总、分布式拓扑动态发现、多语言开发程序接入、丰富的下游对接场景。

常用技术:Sleuth、ZipKin

14、集群管理

集群管理指,对于微服务系统中的某个服务集群所提供的针对集群管理的功能,Spring Cloud Cluster职责就是集群管理。

功能:领导者选举、一致性存储、集群状态管理、一次性tokens

15、事件驱动

事件驱动就是消息驱动,在Spring Cloud中提供了Spring Cloud Stream来实现事件驱动,有了事件驱动,在微服务系统中可以更方便的通过发送消息来进行通信。

概念:目标绑定器,目标指的就是Kafka或者Rabbitmq、绑定桥梁,连接消息系统和应用程序、消息,应用程序和消息直接传递的数据。

特点:异步处理、流量削峰、服务解耦

16、云连接器

云连接器可以更方便的连接部署在云上的各种服务,Spring Cloud 中的Spring Cloud Connectors就是云连接器组件的一种实现。

目前支持的云平台:Spring Cloud Cloud Foundry、Spring Cloud Heroku

17、函数计算

函数计算也成为函数式编程,是时间serverless的一种手段,企业如果能使用函数计算就可以极大的节约成本,在Spring Cloud 中Spring CLoud Function就是来开发基于云平台的函数计算。

特点:支持响应式编程风格、输入输出类型透明转化、流处理数据、同一个jvm中运行多版本函数、打包函数到指定云平台

举报/反馈

声明:本文部分素材转载自互联网,如有侵权立即删除 。

© 版权声明
THE END
喜欢就支持一下吧
点赞0赞赏 分享
相关推荐
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容