springcloud
文章平均质量分 80
springcloud
jiqiren1994
基本所有文章都是总结性质得文章,将网上大部分博主的内容整合了一下,加入了部分自己的理解,方便自己工作时查阅资料用,好处就是不用忘记了去搜各种文章。
展开
-
Nacos + Sentinel + Dubbo 三剑合璧
删除OpenFeign 和 Ribbon,使用Dubbo RPC 和 Dubbo LB⾸先,需要删除或者注释掉⽗⼯程中的热部署依赖<!--热部署--> <!--<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <optional>true</opt原创 2021-02-06 11:47:47 · 335 阅读 · 0 评论 -
SCA Sentinel 分布式系统的流量防卫兵
一、Sentinel 介绍Sentinel是⼀个⾯向云原⽣微服务的流量控制、熔断降级组件。替代Hystrix,针对问题:服务雪崩、服务降级、服务熔断、服务限流。Hystrix:服务消费者(⾃动投递微服务)—>调⽤服务提供者(简历微服务)。在调⽤⽅引⼊Hystrix—> 单独搞了⼀个Dashboard项⽬—>Turbine。Sentinel:1)独⽴可部署Dashboard/控制台组件2)减少代码开发,通过UI界⾯配置即可完成细粒度控制(⾃动投递微服务)Sentinel 分为原创 2021-02-06 11:41:37 · 122 阅读 · 0 评论 -
SCA Nacos 服务注册和配置中心
一、Nacos 介绍Nacos (Dynamic Naming and Configuration Service)是阿⾥巴巴开源的⼀个针对微服务架构中服务发现、配置管理和服务管理平台。Nacos就是注册中心+配置中心的组合(Nacos=Eureka+Config+Bus)。官⽹:https://nacos.io 下载地址:https://github.com/alibaba/Nacos二、Nacos功能特性服务发现与健康检查动态配置管理动态DNS服务服务和元数据管理(管理平台的⻆度,na原创 2021-02-06 10:42:42 · 235 阅读 · 2 评论 -
Spring Cloud 核心组件 (SCA)
Spring Cloud 核心组件第⼀代 Spring Cloud (主要是 SCN)很多组件已经进⼊停更维护模式。Spring Cloud:Netflix,Spring官⽅,SCA(被Spring官⽅认可)注意:市场上主要使⽤的还是SCN,SCA⼀套框架的集合Alibaba 更进⼀步,搞出了Spring Cloud Alibaba(SCA),SCA 是由⼀些阿⾥巴巴的开源组件和云产品组成的,2018年,Spring Cloud Alibaba 正式⼊住了 Spring Cloud 官⽅孵化器。原创 2021-02-06 09:48:06 · 412 阅读 · 0 评论 -
Spring Cloud OAuth2 + JWT 实现
Spring Cloud OAuth2介绍Spring Cloud OAuth2 是 Spring Cloud 体系对OAuth2协议的实现,可以⽤来做多个微服务的统⼀认证(验证身份合法性)授权(验证权限)。通过向OAuth2服务(统⼀认证授权服务)发送某个类型的grant_type进⾏集中认证和授权,从⽽获得access_token(访问令牌),⽽这个token是受其他微服务信任的。注意:使⽤OAuth2解决问题的本质是,引⼊了⼀个认证授权层,认证授权层连接了资源的拥有者,在授权层⾥⾯,资源的拥有者可原创 2021-02-06 00:58:08 · 1699 阅读 · 2 评论 -
微服务统⼀认证⽅案 OAuth2
微服务架构下统一认证思路基于Session的认证方式在分布式的环境下,基于session的认证会出现⼀个问题,每个应⽤服务都需要在session中存储⽤户身份信息,通过负载均衡将本地的请求分配到另⼀个应⽤服务需要将session信息带过去,否则会重新认证。我们可以使⽤Session共享、Session黏贴等⽅案。Session⽅案也有缺点,⽐如基于cookie,移动端不能有效使⽤等。基于token的认证方式基于token的认证⽅式,服务端不⽤存储认证数据,易维护扩展性强, 客户端可以把token原创 2021-02-06 00:37:05 · 161 阅读 · 1 评论 -
Sleuth + Zipkin
一、sleuth配置每一个需要被追踪踪迹的微服务工程都引入依赖坐标<!--链路追踪--><dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-sleuth</artifactId></dependency>每一个微服务都修改application.yml配置文件,添加日志级别#分布原创 2021-02-06 00:21:53 · 90 阅读 · 0 评论 -
分布式链路追踪技术适用场景
场景描述为了⽀撑⽇益增⻓的庞⼤业务量,我们会使⽤微服务架构设计我们的系统,使得我们的系统不仅能够通过集群部署抵挡流量的冲击,⼜能根据业务进⾏灵活的扩展。那么,在微服务架构下,⼀次请求少则经过三四次服务调⽤完成,多则跨越⼏⼗个甚⾄是上百个服务节点。那么问题接踵⽽来:如何动态展示服务的调⽤链路?(⽐如A服务调⽤了哪些其他的服务—依赖关系)如何分析服务调⽤链路中的瓶颈节点并对其进⾏调优?(⽐如A—>B—>C,C服务处理时间特别⻓)如何快速进⾏服务链路的故障发现?这就是分布式链路追踪技术原创 2021-02-06 00:10:12 · 451 阅读 · 0 评论 -
Spring Cloud Stream消息驱动组件
介绍Spring Cloud Stream 消息驱动组件帮助我们更快速,更⽅便,更友好的去构建消息驱动微服务的。(消息驱动:基于消息机制做⼀些事情)MQ:消息队列/消息中间件/消息代理,产品有很多,ActiveMQ RabbitMQ RocketMQ Kafka。Stream解决的痛点问题MQ消息中间件⼴泛应⽤在应⽤解耦合、异步消息处理、流量削峰等场景中。不同的MQ消息中间件内部机制包括使⽤⽅式都会有所不同,⽐如RabbitMQ中有Exchange(交换机/交换器)这⼀概念,kafka有Topic原创 2021-02-06 00:00:12 · 148 阅读 · 0 评论 -
跨域
一、为什么会出现跨域问题跨域:指的是浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器对javascript施加的安全限制。同源策略:是指协议,域名,端口都要相同,其中有一个不同都会产生跨域。二、解决跨域的方法设置document.domain解决无法读取非同源网页的 Cookie问题跨文档通信 API:window.postMessage()JSONPCORSnginx 反向代理三、使用nginx解决跨域问题浏览器的同源策略只记录它访问对象的ip和port,访问其原创 2021-01-31 23:20:09 · 73 阅读 · 0 评论 -
Cookie
Cookie的诞生由于HTTP协议是无状态的,而服务器端的业务必须是要有状态的。Cookie诞生的最初目的是为了存储web中的状态信息,以方便服务器端使用。比如判断用户是否是第一次访问网站。目前最新的规范是RFC 6265,它是一个由浏览器服务器共同协作实现的规范。cookie的类型可以按照过期时间分为两类:会话cookie和持久cookie。会话cookie是一种临时cookie,用户退出浏览器,会话Cookie就会被删除了,持久cookie则会储存在硬盘里,保留时间更长,关闭浏览器,重启电脑,它依原创 2021-01-31 22:33:31 · 218 阅读 · 0 评论 -
springCloud 应用
需求以注册、登录为主线,串联起验证码⽣成及校验、邮件发送、IP防暴刷、⽤户统⼀认证等功能。实现需基于Spring Cloud 微服务架构,技术涉及Nginx、Eureka、Feign(Ribbon、Hystrix)、Gateway、Config+Bus等。思路首先完成后台的所有功能,也就是springCloud 的相关功能。第一步创建父工程与注册中心...原创 2021-01-29 22:56:44 · 747 阅读 · 0 评论 -
Spring Cloud Config 分布式配置中心
分布式配置中心应用场景往往,我们使⽤配置⽂件管理⼀些配置信息,⽐如application.yml.单体应⽤架构,配置信息的管理、维护并不会显得特别麻烦,⼿动操作就可以,因为就⼀个⼯程;微服务架构,因为我们的分布式集群环境中可能有很多个微服务,我们不可能⼀个⼀个去修改配置然后重启⽣效,在⼀定场景下我们还需要在运⾏期间动态调整配置信息,⽐如:根据各个微服务的负载情况,动态调整数据源连接池⼤⼩,我们希望配置内容发⽣变化的时候,微服务可以⾃动更新。场景总结如下:集中配置管理,⼀个微服务架构中可能有成百上原创 2021-01-28 23:41:25 · 83 阅读 · 0 评论 -
GateWay网关组件
引言⽹关(翻译过来就叫做GateWay):微服务架构中的重要组成部分。局域⽹中就有⽹关这个概念,局域⽹接收或者发送数据出去通过这个⽹关,⽐如⽤Vmware虚拟机软件搭建虚拟机集群的时候,往往我们需要选择IP段中的⼀个IP作为⽹关地址。我们学习的GateWay–>Spring Cloud GateWay(它只是众多⽹关解决⽅案中的⼀种)。GateWay简介Spring Cloud GateWay是Spring Cloud的⼀个全新项⽬,⽬标是取代Netflix Zuul,它基于Spring5.原创 2021-01-28 23:37:27 · 772 阅读 · 0 评论 -
Feign远程调用组件
引言服务消费者调⽤服务提供者的时候使⽤RestTemplate技术存在许多不便之处:1)拼接url2)restTmplate.getForObJectFeign简介Feign是Netflix开发的⼀个轻量级RESTful的HTTP服务客户端(⽤它来发起请求,远程调⽤的),是以Java接口注解的方式调用Http请求,⽽不⽤像Java中通过封装HTTP请求报⽂的⽅式直接调⽤,Feign被⼴泛应⽤在Spring Cloud 的解决⽅案中。类似于Dubbo,服务消费者拿到服务提供者的接⼝,然后像调⽤本原创 2021-01-28 23:16:25 · 183 阅读 · 0 评论 -
Hystrix Turbine聚合监控
引言之前,我们针对的是⼀个微服务实例的Hystrix数据查询分析,在微服务架构下,⼀个微服务的实例往往是多个(集群化)。⽐如⾃动投递微服务实例1(hystrix) ip1:port1/actuator/hystrix.stream实例2(hystrix) ip2:port2/actuator/hystrix.stream实例3(hystrix) ip3:port3/actuator/hystrix.stream按照已有的⽅法,我们就可以结合dashboard仪表盘每次输⼊⼀个监控数据流url,进原创 2021-01-28 23:00:26 · 344 阅读 · 0 评论 -
Hystrix 熔断器学习
Hystrix简介Hystrix(豪猪----->刺),宣⾔“defend your app”是由Netflix开源的⼀个延迟和容错库,⽤于隔离访问远程系统、服务或者第三⽅库,防⽌级联失败,从⽽提升系统的可⽤性与容错性。Hystrix主要通过以下⼏点实现延迟和容错。包裹请求:使⽤HystrixCommand包裹对依赖的调⽤逻辑。 ⾃动投递微服务⽅法(@HystrixCommand 添加Hystrix控制) ——调⽤简历微服务跳闸机制:当某服务的错误率超过⼀定的阈值时,Hystrix可以跳闸,原创 2021-01-28 22:47:21 · 163 阅读 · 0 评论 -
Hystrix Dashboard 学习
Hystrix Dashboard断路监控仪表盘正常状态是UP,跳闸是⼀种状态CIRCUIT_OPEN,可以通过/health查看,前提是⼯程中需要引⼊SpringBoot的actuator(健康监控),它提供了很多监控所需的接⼝,可以对应⽤系统进⾏配置查看、相关功能统计等。<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-a原创 2021-01-28 22:40:12 · 174 阅读 · 0 评论 -
微服务中的雪崩效应
微服务中的雪崩效应什么是微服务中的雪崩效应呢?微服务中,⼀个请求可能需要多个微服务接⼝才能实现,会形成复杂的调⽤链路。扇⼊:代表着该微服务被调⽤的次数,扇⼊⼤,说明该模块复⽤性好扇出:该微服务调⽤其他微服务的个数,扇出⼤,说明业务逻辑复杂扇⼊⼤是⼀个好事,扇出⼤不⼀定是好事。在微服务架构中,⼀个应⽤可能会有多个微服务组成,微服务之间的数据交互通过远程过程调⽤完成。这就带来⼀个问题,假设微服务A调⽤微服务B和微服务C,微服务B和微服务C⼜调⽤其它的微服务,这就是所谓的“扇出”。如果扇出的链路原创 2021-01-28 22:08:04 · 1137 阅读 · 0 评论 -
分布式调度的理解
什么是分布式调度什么是分布式任务调度?有两层含义1)运⾏在分布式集群环境下的调度任务(同⼀个定时任务程序部署多份,只应该有⼀个定时任务在执⾏)2)分布式调度—>定时任务的分布式—>定时任务的拆分(即为把⼀个⼤的作业任务拆分为多个⼩的作业任务,同时执⾏)定时任务与消息队列的区别共同点异步处理⽐如注册、下单事件应⽤解耦不管定时任务作业还是MQ都可以作为两个应⽤之间的⻮轮实现应⽤解耦,这个⻮轮可以中转数据,当然单体服务不需要考虑这些,服务拆分的时候往往都会考虑流量削峰双原创 2020-11-07 23:34:29 · 840 阅读 · 0 评论 -
Ribbon 学习
关于负载均衡负载均衡⼀般分为服务器端负载均衡和客户端负载均衡。所谓服务器端负载均衡,⽐如Nginx、F5这些,请求到达服务器之后由这些负载均衡器根据⼀定的算法将请求路由到⽬标服务器处理。所谓客户端负载均衡,⽐如我们要说的Ribbon,服务消费者客户端会有⼀个服务器地址列表,调⽤⽅在请求前通过⼀定的负载均衡算法选择⼀个服务器进⾏访问,负载均衡算法的执⾏是在请求客户端进⾏。Ribbon是Netflix发布的负载均衡器。Eureka⼀般配合Ribbon进⾏使⽤,Ribbon利⽤从Eureka中读取到服务信原创 2021-01-25 23:12:22 · 125 阅读 · 1 评论 -
Eureka服务注册中心学习
1、关于服务注册中心注意:服务注册中心本质上是为了解耦服务提供者和服务消费者。对于任何⼀个微服务,原则上都应存在或者⽀持多个提供者(比如简历微服务部署多个实例),这是由微服务的分布式属性决定的。更进⼀步,为了⽀持弹性扩缩容特性,⼀个微服务的提供者的数量和分布往往是动态变化的,也是⽆法预先确定的。因此,原本在单体应⽤阶段常⽤的静态LB机制就不再适⽤了,需要引⼊额外的组件来管理微服务提供者的注册与发现,⽽这个组件就是服务注册中⼼。1.1 服务注册中心⼀般原理分布式微服务架构中,服务注册中心⽤于存储服原创 2021-01-24 21:16:53 · 234 阅读 · 2 评论 -
springcloud 综述
一、 Spring Cloud 是什么[百度百科]Spring Cloud是⼀系列框架的有序集合。它利⽤Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中⼼、消息总线、负载均衡、断路器、数据监控等,都可以⽤ Spring Boot的开发⻛格做到⼀键启动和部署。Spring Cloud并没有重复制造轮⼦,它只是将⽬前各家公司开发的⽐较成熟、经得起实际考验的服务框架组合起来,通过Spring Boot⻛格进⾏再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了⼀原创 2021-01-24 16:57:21 · 76 阅读 · 0 评论 -
微服务架构学习
SOA应用架构SOA (Service-Oriented Architecture),即⾯向服务的架构。根据实际业务,把系统拆分成合适的、独⽴部署的模块,模块之间相互独⽴(通过Webservice/Dubbo等技术进⾏通信)。优点:分布式、松耦合、扩展灵活、可重⽤。缺点:服务抽取粒度较⼤、服务调⽤⽅和提供⽅耦合度较⾼(接⼝耦合度)微服务应用架构微服务架构可以说是SOA架构的⼀种拓展,这种架构模式下它拆分粒度更小、服务更独立。把应⽤拆分成为⼀个个微⼩的服务,不同的服务可以使⽤不同的开发语⾔和存储,服原创 2021-01-24 15:38:36 · 197 阅读 · 0 评论