
SpringCloud
文章平均质量分 56
SpringCloud学习手记
至学者
有道无术,术尚可求,有术无道,止于术!
展开
-
Nacos源码启动 java.net.UnknownHostException: jmenv.tbsite.net
Nacos本地源码启动异常处理原创 2023-08-31 17:16:15 · 769 阅读 · 0 评论 -
nacos import com.alibaba.nacos.consistency.entity.ReadRequest
搭建Nacos源码环境原创 2023-08-31 15:58:55 · 1091 阅读 · 0 评论 -
com.alibaba.nacos.shaded.io.grpc.netty.shaded.io.netty.channel.AbstractChannel
nacos 启动增加端口配置原创 2023-03-05 03:30:08 · 7764 阅读 · 0 评论 -
Nacos配置文件误删恢复
Nacos配置文件误删恢复功能原创 2023-03-04 11:15:27 · 2008 阅读 · 0 评论 -
近期比较重要消息
InLong && SpringCloudTencent原创 2022-06-25 13:38:51 · 155 阅读 · 0 评论 -
Nacos1.4配置迁移之Nacos2.0.3提示【nacos 发布失败。请检查参数是否正确。】
一 概述今天Nacos1.4.2的配置往Nacos2.0.3上迁移的,在1.4.2版本上正常发布的配置迁移到2.0.3版本的时候提示nacos 发布失败。请检查参数是否正确。二 版本信息1.4.2 2.0.3三 解决问题 参考:Spring Cloud Alibaba Nacos2.0踩坑 - 闲人鹤 - 博客园 (cnblogs.com)https://www.cnblogs.com/huans...原创 2022-03-13 17:19:17 · 4933 阅读 · 0 评论 -
RequestParam.value() was empty on parameter 0
一 概述今天我在通过OpenFeign写远程调用,当项目启动的时候出现以下提示:FactoryBean threw exception on object creation; nested exception is java.lang.IllegalStateException: RequestParam.value() was empty on parameter 0二 解决方法出错原因:@RequestParam中没有设置value属性...原创 2022-02-28 19:53:00 · 6977 阅读 · 2 评论 -
简单回顾BASE理论
一 概述BASE是Basically Available(基本可用),Soft-state(软状态)和Eventually Consistent(最终一致性)三个短语的缩写。二 BASE理论基本可用:在分布式系统出现故障的时候,允许损失部分可用性(服务降级,页面降级)。软状态:允许分布式系统出现中间状态,而且中间状态不影响系统的可用性,当然此中间状态是指不同的data replication(数据备份节点)中间的数据更新可以出现延时的最终一致性...原创 2022-02-26 15:33:00 · 639 阅读 · 0 评论 -
简答回顾CAP理论
一 概述当我们接触到分布式系统的时候,CAP理论是一个必不可少的基础理论。二 CAP理论C(Consistency),即一致性:在分布式环境中,一致性是指数据在多个副本之间是否能够保证一致性的特性,等同于所有节点访问同一份最新的数据副本,在一致性的需求下,当一个系统在数据一致性的状态下执行更新操作后,应该保证系统的数据仍然处于一致的状态。 A (Availability),即可用性:每次请求都能获取正确的响应,但是不保证获取的数据是最新的数据。...原创 2022-02-26 15:19:37 · 1402 阅读 · 0 评论 -
回顾 Zookeeper watcher 事件机制原理剖析
一 概述 待续。。。原创 2022-02-21 16:54:20 · 963 阅读 · 0 评论 -
回顾Zookeeper节点的特性
一 概述在zookeeper中,我们可以将所有存储的数据理解为由znode组成的,节点也称作znode,是以key/value的形式存储数据。其整体结构类似于linus文件系统的模式以树性结构存储,其中根路径是以/来开头。二 Zookeeper的节点特性1. 同一级节点key是唯一的。2. 创建节点的时候,必须带上全路径。3. session关闭的时候,临时节点会被清除。4. 自动创建顺序节点。...原创 2022-02-21 16:53:17 · 888 阅读 · 0 评论 -
seata-server启动是内网ip导致springboot项目无法找到seata服务
一 概述在服务中配置seata之后项目启动正常,但是一直提示seata服务无法获取。二 解决方法查看seata服务在nacos中的服务注册发现配置根据配置可知,服务注册的ip时docker容器的内网ip,所以我们只需要将注册ip改为外网ip即可。通过启动shell脚本加上命令参数启动,将服务注册的ip修改为外网ip:shseata-server.sh-h [IP] -p [端口] 完成seata服务注册之后,再此启动项目就...原创 2022-02-20 16:31:23 · 5176 阅读 · 4 评论 -
回顾Feign请求超时的简单配置
feign: client: config: default: connectTimeout: 5000#建立连接所用时间 readTimeout: 5000 #建立连接后从服务器读取到可用资源所用时间原创 2022-01-23 01:28:35 · 1881 阅读 · 0 评论 -
currentServerAddr:http://localhost:8848, err : connect timed out
一 概述 今天在改项目的时候,突然启动提示:currentServerAddr:http://localhost:8848, err : connect timed out。二 解决方法1. 检查Nacos的配置信息,命名空间问题,没有问题。2. 猜测新增的jar包问题,修改jar包配置,没有解决。 3. 重新build项目,clean + install 项目都成功了。 4. 百度,有些提示bootstrap.y...原创 2022-01-19 08:04:45 · 8785 阅读 · 0 评论 -
回顾分步式事务之seata-TCC实现示例
一 概述TCC —(Try,Confirm,Cancel),一种柔性事务,也是一种事务补偿方案,同刚性事务不同的是,它可以允许在一定时间内,不同节点的数据是不一致的,但是追求最终的一致性。分为三阶段: 一阶段: prepare行为: 调用自定义的prepare逻辑。 二阶段: commit行为:调用自定义的commit逻辑。 三阶段:rollback行为:调用自定义的rollback逻辑。示意图: 理论理解不是很透,后续补充...原创 2022-01-01 20:35:14 · 576 阅读 · 0 评论 -
回顾Seata基于AT模式控制事务的流程
一 概述Seata 是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。Seata 将为用户提供了 AT、TCC、SAGA 和 XA 事务模式,为用户打造一站式的分布式解决方案。二 基于AT模式的事务控制流程1. 首先每个微服务都必须创建undo_log表; 2. 安装事务协调器(TC)—— seata-server:Releases · seata/seata · GitHubhttps://github.com/se...原创 2022-01-01 18:46:20 · 683 阅读 · 0 评论 -
回顾分布式事务之Seata
一 概述 TC - 事务协调者 维护全局和分布式事务的状态,驱动全局事务的提交和回滚。TM - 事务管理器 定义全局事务的范围:开始全局事务,提交或回滚全局事务。RM - 资源管理器 管理分支事务处理的资源,与TC交谈以注册分支事务和报告分支事务的状态,直接同数据库交互。二 Seata的分布式交易解决方案理解 视图:TC对事务全局进行控制,TM则是对主要事务(即如下单业务中的生成...原创 2022-01-01 18:06:01 · 362 阅读 · 0 评论 -
回顾声明式HTTP客户端——Feign
一 概述 Feign是一个声明式的HTTP客户端,它使得远程过程调用变的更加简单。Feign提供了HTTP请求的模板,通过编写简单的接口和插入注解,就可以定义好HTTP请求的参数,格式,地址等信息。 Feign整合了Ribbon(负载均衡)和 Hystrix(服务熔断),可以让我们不再需要显式的使用这两个组件。 未完,待续。。。...原创 2021-10-26 08:18:11 · 146 阅读 · 0 评论 -
回顾微服务之Nacos服务发现
一 概述为了适应企业的业务发展,提高软件研发的生产力,降低软件研发的成本,软件架构也作了升级和优化,将一个独立的系统拆分成若干个小的服务,每个小服务运行在不同的进程中,服务与服务之间采用RESTful,RPC等协议传输数据,每个服务所拥有的功能具有独立性强的特点,这样的设计就实现了单个服务的高内聚,服务于服务之间的低耦合效果,这些小服务就是微服务,基于这种方法设计的系统架构即微服务架构。二 微服务架构中服务发现的实现如图所示,服务实例本身并不记录服务生产方的网络地址,所有服务实例内部都会包含原创 2021-02-28 17:23:39 · 292 阅读 · 0 评论 -
微服务注册与发现之Nacos:failed to req API:/nacos/v1/ns/instance after all servers([127.0.0.1:8848])
一 概述具体错误信息:failed to req API:/nacos/v1/ns/instance after all servers([127.0.0.1:8848]) tried: failed to req API:127.0.0.1:8848/nacos/v1/ns/instance. code:400 msg: caused: cluster name can only have these characters: 0-9a-zA-Z-, current: DEFAULT_GROUP;原创 2021-02-27 21:31:38 · 18931 阅读 · 4 评论 -
Property ‘payload‘ does not exist on type ‘AxiosResponse<any>‘. 问题解决
一 概述Vue二 解决方法增加的一个名为axios.d.ts的文件axios.d.ts的文件内容import * as axios from 'axios'declare module 'axios' { interface AxiosInstance { (config: AxiosRequestConfig): Promise<any> }}Vue接触的不多,暂时先如此,待续。。。...原创 2021-02-26 21:45:33 · 5193 阅读 · 9 评论 -
回顾Sentinel的服务降级规则
一 概述Sentinel提供了多种规则来保护系统的不同部分,流量控制规则用于保护服务提供方,熔断降级规则用于保护服务消费方,系统保护规则用于保护整个系统。二 流量控制规则流量控制规则用于保护服务提供方,服务提供方指任何可以对外提供服务的系统,比如向终端用户提供Web服务的Web应用,向微服务消费方提供服务的Dubbo Service Provider等。系统的服务能力是有限的,如果消费方请求速度过高,则采用相应的保护策略,或者直接拒绝,或者排队等待。通过“流控规则”页面可以查看和配流量控制规则。原创 2021-02-23 18:48:00 · 207 阅读 · 0 评论 -
回顾Sentinel控制台的功能
一 概述Sentinel控制台是流量控制,熔断降级规则统一配置和管理的入口,它为用户提供了机器自发现,簇点链路自发现,监控,规则配置等功能。在Sentinel控制台上,我们可以配置规则并实时查看流量控制效果。使用Sentinel控制台的流程客户端接入 -> 机器自发现 -> 查看簇点链路 -> 配置流控规则 -> 查看流控效果二 Sentinel控制台的功能1 机器自发现:Sentinel提供内置的机器自发现功能,无需依赖第三方服务发现组件即可实现客户端的发现。原创 2021-02-23 18:35:31 · 270 阅读 · 0 评论 -
Sentinel控制台安装
一 概述Sentinel下载地址原创 2021-02-23 17:41:51 · 210 阅读 · 0 评论 -
回顾Sentinel实现流控降级
一 概述微服务中稳定性是一个很重要的问题,有时候会在某个时刻会有很多流量突然打到我们的系统上,导致我们的系统扛不住,如:瞬间的流量洪峰超出了系统的最大负载。 激增流量打垮了冷系统。 热点商品挤占正常商品流量。 CPU的负载居高不下。流量是具有实时性的,是不可预测的。在微服务中调用链路非常复杂,总会有一些不可靠的服务,如:RPC请求超时。 异常比例升高。 队列占满。 线程池占满。Sentinel是面向分布式架构的轻量级流量控制组件限流:将服务每秒钟的请求量(QPS)限制原创 2021-02-23 16:27:31 · 270 阅读 · 2 评论 -
回顾Nacos
一 概述Nacos是一个易于构建原生应用的动态服务发现,配置管理和服务管理平台,在Dubbo和Spring Cloud里都可以使用Nacos进行注册与发现。Nacos三大主要功能为:动态配置服务;服务发现与管理;动态DNS服务。二 Nacos注册中心Nacos注册中心是Nacos中负责注册,服务发现,健康检查等功能的组件。服务注册与发现组件支持使用Java,Go,NodeJs等客户端进行服务的注册与发现 支持Dubbo服务框架,SpringCloud Alibaba服务框架原创 2021-02-22 23:27:56 · 2144 阅读 · 0 评论 -
阿里云EDAS中的Nacos实现服务注册与发现
一 概述云服务器ECS(Elastic Compute Service,简称ECS),是一种简单高效,处理能力可弹性伸缩的计算服务,帮助您快速构建稳定,安全的应用,提升运维效率,降低IT成本,使得您更专注于核心业务创新。每个ECS实例上都运行着用户选择的操作系统,一般是某个Linux或Windows的发行版。用户的应用程序运行在实例的操作系统上。ECS的最重要的特点是弹性,支持垂直和水平扩展两种能力。垂直扩展可以在几分钟内升级CPU和内存,实时升级带宽;水平扩展可以在几分钟内创建数百个新的实原创 2021-02-22 21:48:35 · 2836 阅读 · 4 评论 -
Nacos实现服务注册与发现
一 概述服务注册即服务实例将自身服务信息注册到注册中心包括服务所在的IP和Port,服务版本以及访问协议等。DNS就是一个经典的服务注册。服务发现即服务实例通过注册中心,获取到注册到其中的服务实例的信息,通过这些信息去请求他们提供的服务。由于自动扩缩,故障与升级,整组服务实例会动态变更的问题的存在所以我们需要使用服务于注册中心。二 Nacos实现服务注册中心Nacos的安装Nacos本地访问的地址服务提供者实例ProviderApplication.java@Spr原创 2021-02-22 17:49:43 · 407 阅读 · 2 评论 -
回顾消息驱动:Spring Cloud Stream
一 概述Spring Cloud Stream是Spring Cloud微服务框架中构建消息驱动能力的组件。Stream可以进行基于消息队列的消息通信,它使用Spring Intergration连接消息中间件以实现消息时间驱动。基于Stream,开发者可以实现与消息队列相关的消息驱动型应用,Spring Cloud的消息总线Bus就是基于Stream实现的。二 消息队列的概念消息队列中间件是分布式系统中最为重要的组件之一,主要用于解决应用耦合,异步消息和流量削锋等问题,...原创 2021-01-20 23:07:39 · 137 阅读 · 0 评论 -
回顾API网关:Spring Cloud Gateway
一 概述在单体应用程序架构下,客户端(Web或移动端)通过向服务端发起一次网络调用获取数据。负载均衡将请求路由给N个相同的应用程序实例中的一个。然后应用程序会查询各种数据库处理业务逻辑,并将响应返回给客户端。微服务架构下,单体应用被切割成多个微服务,如果将所有的微服务直接对外暴露,就会出现安全方面的各种问题。二 客户端直接向每个发服务发送请求的主要问题客户端需求和每个微服务暴露的细粒度API不匹配。 部分服务使用的协议不是Web友好协议。可能使用Thrift二进制RPC,也可能使用AMQP原创 2021-01-20 17:34:33 · 206 阅读 · 0 评论 -
回顾SpringCloudConfig
一 概述应用服务处理实现系统功能,还需要连接资源和其他应用,经常有很多需要在外部配置的数据用于调整应用的行为,如切换不同的数据库,设置功能开关等。随着微服务数据量的不断增加,需要系统具备可伸缩和可扩展性,除此之外就是能够管理相当多的服务实例的配置数据。在应用的开发阶段,配置信息由各个服务自治管理,但是到了生产环境之后会给运维带来很大的麻烦,特别是微服务的规模比较大,配置的更新更为麻烦。二 配置中心的不同实现硬编码,缺点是需要修改代码,风险大。 放在xml等配置文件中,和应用一起打包,缺点就原创 2021-01-20 16:19:53 · 96 阅读 · 1 评论 -
回顾Hystrix实现思路
他将所有的远程调用逻辑封装到HystrixCommand或者HystrixObservableCommand对象中,这些远程调用将会在独立的线程中执行(资源隔离),这里使用了设计模式中的命令模式。 Hystrix对访问耗时超过设置阈值的请求采用自动超时的策略。该策略对所有的命令都有效(如果资源隔离的方式为信号量,该特效将失效),超时的阈值可以通过命令配置进行自定义。 为每一个服务提供者维护一个线程池(或者信号量),当线程池被占满时,对于该服务提供者的请求将会被直接拒绝(快速失败)而不是排队等待,减少系统原创 2021-01-18 15:59:14 · 119 阅读 · 0 评论 -
回顾微服务断路器Hystrix
一 概述在分布式系统下,微服务之间不可避免地会发生相互调用,但是没有一个系统能够保证自身运行的绝对正确。微服务在调用过程中,很可能会面临依赖服务失效的问题,这些问题的发生会有很多原因,有可能是因为服务之间的网络通信出现较大的延迟,或者是被调用的微服务发生了调用异常,还有可能是因为依赖的微服务负载过大无法及时响应请求等。Hystrix能够在依赖服务失效的情况下,通过隔离系统依赖服务的方式,防止服务级联失败;同时Hystrix提供失败回滚机制,使系统能够更快地从异常中恢复。二 Spring Clou原创 2021-01-18 15:29:16 · 373 阅读 · 0 评论 -
回顾负载均衡的一些知识
一 概述负载均衡是让用户的大量访问可以平均到集群服务上去以避免当个服务访问量过大而增加服务器负担。二 不同的负载均衡本地负载均衡,一般使用Ribbon,通过轮询机制,总请求次数 % 服务器总数取模后就调用相对应索引的服务。 服务器端的负载均衡,一般使用nginx待续...原创 2021-01-17 22:38:37 · 228 阅读 · 0 评论 -
回顾声明式RESTful客户端之Spring Cloud OpenFeign
一 概述OpenFeign是一个声明式RESTful网络请求客户端,使得编写Web服务客户端更加方便和快捷。只需要使用OpenFeign提供的注解修饰定义网络请求的接口类,就可以通过使用该接口的实例发送RESTful风格的网络请求。OpenFeign还可以集成Ribbon和Hytrix来提供负载均衡和网络断路器的功能。二 RESTful网络请求RESTful网络请求是指RESTful风格的网络请求,其中REST是Resource Representational State Transfer的缩原创 2021-01-17 17:21:34 · 413 阅读 · 4 评论 -
Eureka Server源码解析回顾
一 概述Eureka Server作为一个开箱即用的服务注册中心,提供了满足与Eureka Client交互需求的功能:服务注册 接受服务心跳 服务剔除 服务下线 集群同步 获取注册表中服务实例信息Eureka Server同时也是一个Eureka Client,在不禁止Eureka Server的客户端行为的时候,它会向它配置文件中的其他Eureka Server进行拉取注册表,服务注册和发送心跳等操作。二 服务实例注册表InstanceRegistry是Eureka Serv原创 2021-01-17 16:21:48 · 447 阅读 · 0 评论 -
回顾服务发现客户端的职责
一 概述con.netflix.discover.DiscoveryClient职责是负责与Eureka Server交互的关键逻辑。二 DiscoveryClient职责DiscovertClient是Eureka Client的核心类,包括与Eureka Server交互的关键逻辑:注册服务实例到Eureka Server中; 发送心跳更新与Eureka Server的租约; 在服务关闭时从Eureka Server中取消租约,服务下线; 查询在Eureka Server中注册的服原创 2021-01-17 10:02:31 · 77 阅读 · 0 评论 -
Eureka Client源码解析回顾
一 概述Eureka Client通过Starter的方式引入依赖,Spring Boot将会为项目使不同的注解进行自动配置。EurekaClientAutoConfiguration:Eureka Client自动配置类,负责Eureka Client中关键Beans的配置和初始化,如ApplicationInfoManager和EurekaClientConfig等。 RibbonEurekaAutoConfiguration:Ribbon负载均衡相关配置。 EurekaDiscoveryC原创 2021-01-16 19:28:15 · 210 阅读 · 0 评论 -
SpringCloud之Eureka回顾
一 概述位于微服务架构中服务的注册与发现包括两部分:一个是服务器端,另一个是客户端。二 服务注册与发现的服务器端Server是一个公共服务,为Client提供服务注册于发现的功能,维护注册到自身的Client的相关信息,同时提供接口给Client获取注册表中其他服务的信息,使得动态变化的Client能够进行服务间的相互调用。三 服务注册与发现的客户端Client将自己的服务信息通过一定的方式登记到Server上,并在正常范围内维护自己信息一致性,方便其他服务发现自己,同时可以通过Serv原创 2021-01-16 17:25:59 · 113 阅读 · 2 评论 -
回顾Spring Boot与Spring Cloud之间的渊源
一 概述Spring Cloud 基于 Spring Boot框架开发应用,为微服务开发中的架构问题提供了一整套的解决方案:如服务注册与发现,服务消费,服务容错,API网关,分布式调用追踪和分布式配置管理等。二 Spring Cloud与 Spring Boot之间的联系、Spring Boot是Spring的一套快速配置脚手架,可以基于Spring Boot快速开发单个服务,Spring Cloud是一个基于Spring Boot实现的云应用开发工具。 Spring Boot专注于快速,方便原创 2021-01-14 10:54:33 · 163 阅读 · 0 评论