SpringCloud
文章平均质量分 72
豆恭梓
在读计算机研究生一枚^_^
展开
-
Nacos多配置文件、共享配置文件
上面的配置中,我们分别从 DEFAULT_GROUP 中获取了 config-a.yml 和 config-b.yml 配置内容,并且 config-a.yml 支持刷新,config-b.yml 不支持刷新。 spring.cloud.nacos.config.extension-configs[n].dataId , 指 定 多 个 配 置 的dataId,必须包含文件格式,支持 properties、yaml 或 yml;除了通过上面的方式指定一个唯一配置外,我们还可以同时获取多个配置文件的内容。原创 2023-07-20 16:32:40 · 4812 阅读 · 0 评论 -
Nacos 配置文件中心快速入门
Nacos配置中心作用使用 Spring Cloud Alibaba Nacos Config,可基于 Spring Cloud 的编程模型快速接入 Nacos 配置管理功能。上一节 Spring Cloud Alibaba Nacos 注册中心记录了 Nacos 作为注册中心的使用方式,这节继续记录下 Nacos 作为配置中心的使用方式。原创 2023-07-20 15:39:02 · 112 阅读 · 0 评论 -
Nacos集成openfeign做远程调用
如果没有学 feign 的同学,可以使用 restTemplate 来做。原创 2023-07-20 15:07:34 · 99 阅读 · 0 评论 -
Nacos做注册中心快速入门
访问测试 http://localhost:8001/discovery?我们搭建 alibaba-nacos-consumer 和 alibaba-nacos-provider,就是一个消费者一个提供者。这两个项目的依赖都是一样的,因为 springboot 更新原因,导致创建项目时选择不了低版本,所以直接贴出 pom 文件参考。访问测试: http://localhost:8002/hello?至此,服务注册和服务发现已经完成了,基本和 eureka 一样。两个配置文件基本一致,注意端口和应用名称。原创 2023-07-20 14:16:45 · 51 阅读 · 0 评论 -
Nacos简介、核心概念、安装启动
Nacos 致力于发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。原创 2023-07-20 13:20:07 · 147 阅读 · 0 评论 -
Gateway总结和面试
最后简单聊一下 nginx,在过去几年微服务架构还没有流行的日子里,nginx 已经得到了广大开发者的认可,其性能高、扩展性强、可以灵活利用 lua 脚本构建插件的特点让人没有抵抗力。无论如何,nginx 作为一个好用的组件,最终使不使用它都是由业务来驱动的,只要它能为我们方便的解决问题,那用它又有何不可呢?Redis 单线程 (IO 为什么快,因为我们现在的处理器是多核心数的,redis 底层使用的是IO 的多路复用)Zuul 也是 web 网关,本质上就是一组过滤器,按照定义的顺序,来执行过滤操作。原创 2023-07-19 21:21:15 · 95 阅读 · 0 评论 -
Gateway跨域配置
ajax要求同源策略 如果8080去访问 8081就不属于同源。所有的请求都要走网关。原创 2023-07-19 21:15:26 · 288 阅读 · 0 评论 -
Gateway 结合 redis 实现请求量限流
IP 限流(5s 内同一个 ip 访问超过 3 次,则限制不让访问,过一段时间才可继续访问)请求量限流(只要在一段时间内(窗口期),请求次数达到阀值,就直接拒绝后面来的访问了,过一段时间才可以继续访问)(粒度可以细化到一个 api(url),一个服务)原创 2023-07-14 22:21:24 · 217 阅读 · 0 评论 -
Gateway过滤器和token校验实战
全局过滤器的优点的初始化时默认挂到所有路由上,我们可以使用它来完成IP过滤,限流等功能。原创 2023-07-12 22:18:03 · 360 阅读 · 0 评论 -
Gateway集群、动态路由、负载均衡
基础服务设施(eureka,gateway configserver auth-server)这里使用虚拟机实现。原创 2023-07-11 17:47:40 · 419 阅读 · 0 评论 -
SpringCloud Gateway 简介、工作流程、快速入门
网关是微服务最边缘的服务,直接暴露给用户,用来做用户和微服务的桥梁没有网关:客户端直接访问我们的微服务,会需要在客户端配置很多的 ip:port,如果user-service 并发比较大,则无法完成负载均衡有网关:客户端访问网关,网关来访问微服务,(网关可以和注册中心整合,通过服务名称找到目标的 ip:prot)这样只需要使用服务名称即可访问微服务,可以实现负载均衡,可以实现token 拦截,权限验证,限流等操作你们项目里面 用的什么网关?原创 2023-07-11 17:29:32 · 596 阅读 · 0 评论 -
微服务链路追踪(Zipkin、Sleuth)
官网:https://spring.io/projects/spring-cloud-sleuth链路追踪就是:追踪微服务的调用路径。原创 2023-07-08 17:11:28 · 871 阅读 · 0 评论 -
Feign 的工程化实例
直接实现 UserOrderFeign接口 注解也会被一起带过来。原创 2023-07-08 15:17:46 · 37 阅读 · 0 评论 -
Hystrix 的常用配置以及隔离方式解析
好处 :当 B 服务调用失败了 或者请求 B 服务的量太大了 不会对 C 服务造成影响 用户访问比较大的情况下使用比较好 异步的方式,隔离的彻底。缺点 并发请求不易太多 当请求过多 (有阈值)就会拒绝请求 做一个保护机制,影响其他服务。SEMAPHORE 信号量隔离 每次请进来 有一个原子计数器 做请求次数的++ 当请求完成以后 –应用场景 调用第三方服务 并发量大的情况下。缺点 :线程间切换开销大,对机器性能影响。场景 使用内部调用 ,并发小的情况下。好处 对 cpu 开销小。原创 2023-07-08 11:07:28 · 364 阅读 · 0 评论 -
仿Hystrix手写断路器
断路器打开后,过一段时间,让少许流量尝试调用 B 服务,如果调用成功则断路器关闭,使服务正常调用,如果失败,则继续半开。开:在一段时间内,调用失败次数达到阀值(5s 内失败 3 次)则断路器打开,直接 return错误信息。在五秒内访问失败次数达到阈值,才会打开断路器。关:服务正常调用 A —》B。原创 2023-07-07 15:30:05 · 44 阅读 · 0 评论 -
在 OpenFeign 中使用 Hystrix
当有服务调用的时候,才会出现服务雪崩,所以 Hystrix 常和 OpenFeign,Ribbon 一起出现。原创 2023-07-06 22:11:17 · 347 阅读 · 0 评论 -
Hystrix前言--什么是服务雪崩
这是在高并发的前提下,比如A、B只有100个线程,都在做这样一个操作,100个线程不能回收,当第101个客户来访问的时候直接报503。线程没有及时回收。不管是调用成功还是失败,只要线程可以及时回收,就可以解决服务雪崩。熔断器,也叫断路器!(正常情况下 断路器是关的 只有出了问题才打开)用来保护微服务不雪崩的方法。思想和我们上面画的拦截器一样。Hystrix 是 Netflix 公司开源的一个项目,它提供了熔断器功能,能够阻止分布式系统中出现联动故障。原创 2023-07-06 21:40:45 · 81 阅读 · 0 评论 -
为什么有了ribbon和eureka,还需要openfeign?
尽管 Ribbon 和 Eureka 提供了负载均衡和服务发现的核心功能,但 OpenFeign 提供了更高级的抽象和便利性,使得微服务之间的通信更加简单和优雅。它提供了声明性 API 定义、集成负载均衡和服务发现、错误处理和容错机制等功能,使得开发人员可以更专注于业务逻辑,减少了大量的样板代码和配置。声明性 API 定义: OpenFeign 提供了基于注解的方式来定义和描述服务间的 API 接口,使得开发人员可以以接口的形式定义微服务之间的交互,而无需手动编写 HTTP 请求和解析响应的代码。原创 2023-07-06 21:28:51 · 258 阅读 · 0 评论 -
OpenFeign 源码分析
(学习别人的思想,可以找 bug,优化你的代码,提高代码的健壮性)看源码之前要先大致猜想一下 他是怎么实现的?(先使用在分析)原创 2023-07-06 17:49:08 · 465 阅读 · 1 评论 -
OpenFeign 调用参数处理(开发重点)
get 请求只用来传递基本参数 而且加注解@RequestParam (URL restful风格的传递参数用@PathVariable)post 请求用来传递对象参数 并且加注解@RequestBody。原创 2023-07-06 16:17:20 · 770 阅读 · 0 评论 -
OpenFeign快速入门
Feign 是声明性(注解)Web 服务客户端。它使编写 Web 服务客户端更加容易。要使用 Feign,请创建一个接口并对其进行注解。它具有可插入注解支持,包括 Feign 注解和 JAX-RS 注解。Feign 还支持可插拔编码器和解码器。Spring Cloud 添加了对 Spring MVC 注解的支持,并支持使用 HttpMessageConverters,Spring Web 中默认使用的注解。原创 2023-07-06 14:45:13 · 160 阅读 · 0 评论 -
Ribbon源码分析(负载均衡源码)
加了@LoadBalanced //ribbon 的负载均衡注解的RestTemplate,是必须要走Ribbon 的流程(见4.1)的。接上文,如果想用原生的RestTemplate,要新new一个。原创 2023-07-05 22:31:17 · 480 阅读 · 0 评论 -
Ribbon快速入门
Spring Cloud Ribbon 是一个基于 HTTP 和 TCP 的客户端负载均衡工具,它基于 Netflix Ribbon 实现。通过 Spring Cloud 的封装,可以让我们轻松地将面向服务的 REST 模版请求自动转换成客户端负载均衡的服务调用。轮询 hash 权重 …简单的说 Ribbon 就是 netfix 公司的一个开源项目,主要功能是提供客户端负载均衡算法和服务调用。Ribbon 客户端组件提供了一套完善的配置项,比如连接超时,重试等。原创 2023-07-05 16:41:13 · 317 阅读 · 0 评论 -
六、Eureka服务发现(源码分析)
根据服务名称发现服务的实例过程客户端会在本地缓存服务端的列表拉取列表是有间隔周期的 (导致服务上线 客户端不能第一时间感知到 (可以容忍))其实每次做服务发现 都是从本地的列表来进行的重要的类:DiscoveryClient 类里面的构造方法执行线程初始化调用(为了后面的拉取服务)CacheRefreshThread 类里面的 run 方法执行服务列表的拉取(方便后期做服务发现)fetchRegistry()方法去判断全量拉取还是增量拉取全量拉取发生在:当服务列表为 null。原创 2023-07-04 19:04:51 · 263 阅读 · 0 评论 -
五、Eureka服务注册、续约、剔除、下线源码分析
总结:当 eureka 启动的时候,会向我们指定的 serviceUrl 发送请求,把自己节点的数据以post请求的方式,数据以json 形式发送过去。当返回的状态码为 204 的时候,表示注册成功。重要的类:DiscoveryClient 里面的 register()方法完后注册的总体构造AbstractJerseyEurekaHttpClient 里面的 register()方法具体发送注册请求(post)InstanceRegistry 里面 register()方法接受客户端的注册请求。原创 2023-07-03 18:24:11 · 1508 阅读 · 0 评论 -
四、构建高可用的 Eureka-Server 集群
http://localhost:8761/eureka/,http://localhost:8762/eureka/ 这样写,eureka 认为只有一个机器,就是 localhost。Eureka server的集群里面,没有主机和从机的概念,节点都是对等的,只有集群里面有一个集群存活,就能保证服务的可用性。发现并没有出现集群信息,只是同一个服务 server 启动了多台 没有数据交互 不是真正意义上的集群。eureka没有分布式数据一致性的机制节点都是相同的。原创 2023-07-01 15:55:31 · 585 阅读 · 0 评论 -
三、eureka-server端和客户端配置文件讲解
通过这张图理解为什么要进行文件配置。原创 2023-07-01 15:30:22 · 990 阅读 · 0 评论 -
二、Spring Cloud Eureka 简介、快速入门
在分布式 微服务里面 CAP 定理问:为什么 zookeeper 不适合做注册中心?CAP 原则又称 CAP 定理,指的是在一个分布式系统中,一致性可用性分区容错性(Partition tolerance)(这个特性是不可避免的)CAP 原则指的是,这三个要素最多只能同时实现两点,不可能三者兼顾。原创 2023-07-01 14:22:59 · 701 阅读 · 0 评论 -
一、微服务和SpringCloud简介
微服务(不是一个框架 而是一种架构思想),是著名的 oo (面向对象, ObjectOriented )专家 Martin Fowler 提出来的,它是用来描述将软件应用程序设计为独立部署的服务的一种特殊方式。最近两年,微服务在各大技术会议、文章、书籍上出现的频率已经让人意识到它对于软件领域所带来的影响力。微服务架构的系统是个分布式系统按业务领域划分为独立的服务单元,有自动化运维、容错、快速演进的特点,它能够解决传统单体架构系统的痛点,同时也能满足越来越复杂的业务需求。原创 2023-07-01 13:38:34 · 656 阅读 · 1 评论