![](https://img-blog.csdnimg.cn/a07c77840321496099d976bad514ca31.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
SpringCloud
文章平均质量分 95
SpringCloud专栏,推荐微服务专栏
卡布奇诺-海晨
《微服务实战》专栏是本人的实战经验总结,《Spring家族及微服务系列》专注Spring、SpringMVC、SpringBoot、SpringCloud系列、Nacos等源码解读、热门面试题、架构设计等。全栈开发工程师,从事多年软件开发,在大厂呆过。持有软件中级、六级等证书。有研究MyBatis的经验,设计模式,基本算法,也有相关的博文输出。未来时间允许情况下,推出更多的关于框架源码的知识以及结合工作经验的沉淀。程序员这条路一开始走对了后面就轻松些,作为过来人,有经验感受在博文透露。程序员这条路最好有个引路人,每个人都可以努力,但是方向不对努力白费。某音有视频教程(某马/某千等都是上万价格)
展开
-
极力推荐SpringCloudAlibaba企业级实战
2023年,以以往的经验,自研了uniapp微信小程序,基于Vue3+TypeScript+Uniapp,发布上线到了微信端。2024年初,以同一套代码,部署到了客户量在国内数一数二的抖音,实现了多端部署。当然,这套框架也给软件商业带来了一定的价值。在B站可以看看企业级解决方案原创 2024-04-29 16:30:24 · 759 阅读 · 2 评论 -
Linux shell 脚本基础与部署SpringCloud实战
需要注意的是,虽然Shell脚本具有很多优点,但也需要谨慎使用。在编写脚本时,要确保代码的安全性和稳定性,避免潜在的安全漏洞和错误。同时,对于复杂的部署需求,可能需要结合其他工具和技术来实现更高效的自动化部署。原创 2024-04-18 23:01:18 · 823 阅读 · 0 评论 -
SpringCloud集成SkyWalking链路追踪并收集日志2
在微服务架构中,一次客户端请求在对应的接口中可能需要通过多次跨服务调用完成,以skywalking安装教程中的项目演示为例,一次成功结束的请求可能需要经过商品微服务、订单微服务以及支付微服务三个服务共同处理,其中商品服务调用订单服务,订单服务调用支付服务。这就是微服务架构的调用链。skywalking通过一个请求上下文将一次客户端请求中涉及到的服务调用进行追踪,列出该调用链中涉及的微服务名、微服务中的接口名,这样我们就容易找到对应的接口,查看相应的代码去排查遇到的bug问题等。原创 2024-04-12 10:42:11 · 1153 阅读 · 0 评论 -
一文总结 MetaQ/RocketMQ 原理
相比较于 RocketMQ/MetaQ,Kafka 具有更高的吞吐量。Kafka 默认采用异步发送的机制,并且还拥有消息收集和批量发送的机制,这样的设置可以显著提高其吞吐量。由于 Kafka 的高吞吐量,因此通常被用于日志采集、大数据等领域。RocketMQ/MetaQ 不采用异步的方式发送消息。因为当采用异步的方式发送消息时,Producer 发送的消息到达 Broker 就会返回成功。此时如果 Producer 宕机,而消息在 Broker 刷盘失败时,就会导致消息丢失,从而降低系统的可靠性。。原创 2023-10-26 09:30:26 · 450 阅读 · 0 评论 -
业务系统架构实践总结
我理解当时团队是随着预算发展对业务了解的深入,做了架构演进式的领域划分,从对业务的认知经验和感觉出发,划成了动名结合体。分配、消耗、熔断是动词,账户、预算是名词,按这些亦动亦名的关键概念划了单个的域,并基于此单拎为系统,db也是独立的。这是第一点,领域划分方法论的问题。原创 2023-10-22 16:39:23 · 1065 阅读 · 0 评论 -
RPC框架
RPC(Remote Procedure Call)是一种用于在不同计算机上的程序之间进行远程通信的协议和技术。RPC框架是一组工具和库,用于简化和管理远程通信的复杂性。通过RPC框架,你可以像调用本地函数一样调用远程计算机上的函数或方法,使分布式系统的开发变得更加容易。原创 2023-09-04 10:37:40 · 255 阅读 · 0 评论 -
如何避免重复消费消息
消息中间件通常采用一些策略来避免消息的重复消费。这在分布式系统中非常重要,以确保消息被处理一次且仅一次,避免产生错误或重复的结果。以下是一些常见的方法:原创 2023-08-31 11:39:15 · 684 阅读 · 0 评论 -
OpenSergo & Spring Cloud Alibaba 带来的服务治理能力
随着微服务技术的发展,微服务(MicroServices) 的概念早已深入人心,越来越多的公司开始使用微服务架构来开发业务应用。如果采用得当,微服务架构可以带来非常大的优势。微服务架构的最大好处是它可以提升开发效率和系统整体的稳定性:原创 2023-08-12 09:37:34 · 801 阅读 · 0 评论 -
Nacos 无缝支持 confd 配置管理
本文介绍了使用 Nacos 结合 confd 来做自动化管理,confd 作为轻量级的配置管理工具可以做到对第三方系统无代码侵入性。本文只是简单使用 nginx 的黑名单功能来演示 Nacos+confd 的使用方式,当然 nginx 还具有限流、反向代理等功能以及其他的系统比如 haproxy、tomcat、docker 等也同样可以使用 Nacos+confd 做管理。原创 2023-07-04 15:26:04 · 429 阅读 · 0 评论 -
跨注册中心服务同步实践
同步任务添加之后,需要确保下服务是否成功同步到目标集群,可以通过目标集群的控制台进行查询;NacosSync 支持高可用集群模式部署,你只需要把数据库配置成同一个即可;如果梳理不清楚订阅和发布的服务,建议可以把服务都做双向同步;Dubbo 客户端目前不支持Nacos的权重功能,如果你用到了权重功能,需要重新考虑一下方案是否合适。原创 2023-06-28 09:35:39 · 541 阅读 · 0 评论 -
Nacos 打通 CMDB 实现就近访问
CMDB 在企业中,一般用于存放与机器设备、应用、服务等相关的元数据。一般当企业的机器及应用达到一定规模后就需要这样一个系统来存储和管理它们的元数据。有一些广泛使用的属性例如机器的IP、主机名、机房、应用、region 等,这些数据一般会在机器部署时录入到 CMDB,运维或者监控平台会使用这些数据进行展示或者相关的运维操作。原创 2023-06-24 11:47:41 · 1579 阅读 · 1 评论 -
Eureka 平滑迁移 Nacos 方案
建议是从最下层 Provider 开始迁移。但如果调用链路太复杂,比较难分析,所以设计的方案中是支持随便找一个非流量入口应用进行迁移。因为流量入口的应用比较特殊,所以建议迁移流量入口应用时需要根据自己应用的实际情况考虑迁移方案。原创 2023-06-20 10:41:13 · 1935 阅读 · 1 评论 -
叽里呱啦 Nacos 1.1.4 升级 1.4.1 最佳实践
1. 升级生产环境时是从 rc 环境上把运行中的 Nacos server 直接复制到生产环境用于升级,而复制过去的目录包含了 rc 环境的缓存数据,会影响 Nacos server 的正常工作。2. 生产环境各个业务服务使用的 Nacos 客户端版本没有统一管控,有的版本比服务端高。而高版本的客户端在 server 端升级上去后,被开启了一些高版本的功能。回滚回低版本的 server 端时,这些高版本的功能低版本的 server 端无法兼容,导致回滚后无法自动注册,需要重启业务服务才能注册。原创 2023-06-12 09:26:41 · 1726 阅读 · 1 评论 -
虎牙在全球 DNS 秒级生效上的实践
增强了高可用的保障能力。包括进程监控、内部运营和外部运营的探测。另外,原来的开源版本用的是本机部署的方式,做成了集群化的部署,解决了服务推送、服务负载均衡方面的问题。原创 2023-05-30 08:43:35 · 475 阅读 · 0 评论 -
虎牙直播在微服务改造的实践总结2
传统的配置下发方式是服务端下发文件,更新配置的生效时间较长。由于需要提前知道负责均衡集群的机器信息,扩展和缩小容量需要等元信息同步以后才能接入流量,使得扩容流量的接入时间较长。为解决这一问题,虎牙引入 Nacos作为配置中心监听器,然后采用了客户端主动监听配置更新的方式。原创 2023-05-23 20:00:32 · 2197 阅读 · 5 评论 -
虎牙直播在微服务改造的实践总结
在虎牙的微服务场景中,原先存在多个注册中心,每个注册中心服务于不同的微服务部分,导致缺少一个能够整合这些注册中心,并将它们逐一打通的大型注册中心来管理整个微服务生态系统。因此,考虑使用Nacos作为服务注册中心,以下是考虑使用Nacos的原因:原创 2023-05-19 15:34:13 · 1940 阅读 · 0 评论 -
Nacos 服务网格2
钉钉云上和集团互通的场景,本质其实就是混合云场景下的应用互通,我们是用了网关去打通这两个环境,钉钉 VPC(阿里云部署)这边用的是 MSE 云原生网关,集团用的是 Envoy 网关,他们之间使用 Dubbo3.0 的Triple 协议实现网络通讯,网关的控制面都使用的是 Istio,Istio 会通过 MCP 协议从 Nacos 同步服务列表数据。原创 2023-05-13 13:26:15 · 387 阅读 · 0 评论 -
Nacos 服务网格⽣态
Kubernetes 在应用打包、部署、调度和弹性领域是绝对的王者,吸引了无数互联网公司开启了应用容器化改造之旅。在这迁移过程中,人们渐渐发现虽然服务运行时的底层依赖可以切换到 Kubernetes 平台,但整个业务系统依赖的配置中心、注册中心、网关、消息队列、认证鉴权、可观测等服务治理组件并不能被 Kubernetes 生态完全替代。原创 2023-05-03 20:24:11 · 1886 阅读 · 5 评论 -
Nacos Docker & Kubernetes ⽣态
Nacos-k8s 项目包含了三种类型的部署方式, 原生部署、Helm 部署、以及利用 Operator 开发的Nacos-Operator 部署, 本文演示如何通过 Operator 方式把 Nacos 集群在 Kubernetes 部署起来。原创 2023-04-20 09:34:09 · 1501 阅读 · 1 评论 -
Nacos Spring ⽣态
从最后⼀张图中,可以看到在 receiveConfigInfo 的回调逻辑中,当有配置变更的时候,会重新生成 NacosPropertySource,并且替换掉 environment 中过时的 NacosPropertySource,完成这个步骤之后,就可以通过 environment.getProperty() 动态的获取到配置值了。但问题是,@Value 方式注入的 Bean 对象的配置项是无法动态刷新的,因为 Bean 已经生成无法再更改;为了实现动态的刷新,Nacos 又引入了 @NacosVal原创 2023-04-14 19:00:36 · 1980 阅读 · 0 评论 -
Nacos 性能报告
Nacos2.0 对连接模型、服务发现的数据模型及运作模式进行了大范围的重构,因此需要在相同或类 似的场景下,了解 Nacos2.0 的服务发现性能负载和容量与 Nacos1.X 的区别,帮助用户更快的运 用评估 Nacos 系统负荷。原创 2023-04-10 14:20:38 · 1752 阅读 · 0 评论 -
【微服务】Nacos 前端设计
我们需要提供⼀个简单控制台提升易用性,并且可以得到开发者的共建。前端框架上选择目前比较流行的 react 技术,组件上选择 fusion/antd。原创 2023-01-17 18:41:20 · 1918 阅读 · 6 评论 -
【微服务】Nacos 认证机制
随着 Nacos 在生产使用,用户要求权限管理机制。考虑到做完整的账号权限管理机制,需要比较大的代价。因此先做⼀个管理员账号的登录管理,从而降低安全风险。原创 2023-01-11 12:09:56 · 2336 阅读 · 4 评论 -
【微服务】Nacos 账号权限体系
为了 Nacos 提升安全能力,更好满足生产要求,需要设计账号权限体系,又要能兼容云上和阿里内部场景。避免后续代码无法融合。 这块的挑战是要做好抽象,不然没法和不同账号权限体系打通。默认我们提供⼀个简单的实现,当有类似于 RAM 这样的权限体系后,直接对接即可。原创 2023-01-09 11:22:30 · 4303 阅读 · 12 评论 -
【微服务】Nacos 配置管理模块
Nacos 配置管理⼀致性协议分为两个大部分,第⼀部分是 Server 间⼀致性协议,⼀个是 SDK 与Server 的⼀致性协议,配置作为分布式系统中非强⼀致数据,在出现脑裂的时候可用性高于⼀致性,因此阿里配置中心是采用 AP ⼀致性协议。原创 2023-01-04 12:13:09 · 3190 阅读 · 15 评论 -
【微服务】Nacos 健康检查机制
在上文中,我们介绍了 Nacos 注册中心中的服务数据模型,说明了服务、实例以及集群的内容,关系及它们的生命周期。期间健康检查是⼀个被反复提及的词语,这是由于注册中心不应该仅仅提供服务注册和发现功能,还应该保证对服务可用性进行监测,对不健康的服务和过期的进行标识或剔除,维护实例的生命周期,以保证客户端尽可能的查询到可用的服务列表。因此本文将详细介绍Nacos 注册中心中的健康检查机制。原创 2023-01-02 09:56:17 · 7372 阅读 · 25 评论 -
【微服务】Nacos 注册中心服务数据模型
本节将较为详尽的展开介绍 Nacos 注册中心中的服务数据模型内容。主要会为读者详细介绍Nacos2.0 版本中注册中心所涉及到的数据模型、各个数据模型的含义及各个数据模型的生命周期,并介绍 Nacos2.0 版本和 Nacos1.0 版本中,服务数据模型的差异点。原创 2022-12-30 12:15:34 · 3744 阅读 · 19 评论 -
【微服务】Nacos 注册中心的设计原理
注册中心的核心数据是服务的名字和它对应的网络地址,当服务注册了多个实例时,我们需要对不健康的实例进行过滤或者针对实例的⼀些特征进行流量的分配,那么就需要在实例上存储⼀些例如健康状态、权重等属性。原创 2022-12-28 19:47:16 · 9469 阅读 · 10 评论 -
【微服务】Nacos的寻址机制
Nacos 支持单机部署以及集群部署,针对单机模式,Nacos 只是自己和自己通信;对于集群模式,则集群内的每个 Nacos 成员都需要相互通信。因此这就带来⼀个问题,该以何种方式去管理集群内的 Nacos 成员节点信息,而这,就是 Nacos 内部的寻址机制。原创 2022-12-26 13:05:48 · 3014 阅读 · 19 评论 -
【微服务】Nacos为什么丢弃短连接(http)而选择拥抱长连接(gRPC)
配置和服务器模块的数据推送通道不统⼀,http 短连接性能压力巨大,未来 Nacos 需要构建能够同时支持配置以及服务的长链接通道,以标准的通信模型重构推送通道。原创 2022-12-22 09:25:54 · 20588 阅读 · 66 评论 -
【微服务】Nacos ⼀致性协议
Nacos 在开源支持就定下了⼀个目标,尽可能的减少用户部署以及运维成本,做到用户只需要⼀个程序包,就可以快速以单机模式启动 Nacos 或者以集群模式启动 Nacos。而 Nacos 是⼀个需要存储数据的⼀个组件,因此,为了实现这个目标,就需要在 Nacos 内部实现数据存储。单机下其实问题不大,简单的内嵌关系型数据库即可;但是集群模式下,就需要考虑如何保障各个节点之间的数据⼀致性以及数据同步,而要解决这个问题,就不得不引入共识算法,通过算法来保障各个节点之间的数据的⼀致性。原创 2022-12-21 10:11:48 · 3767 阅读 · 2 评论 -
【微服务】Nacos 如何做到⼀致性协议下沉的与自研 Distro 协议
既然 Nacos 已经做到了将 AP、CP 协议下沉到了内核模块,而且尽可能的保持了⼀样的使用体验。那么这个⼀致性协议下沉,Nacos 是如何做到的呢?原创 2022-12-19 22:11:08 · 1111 阅读 · 23 评论 -
【微服务】Sentinel集群流量控制
为什么要使用集群流控呢?假设我们希望给某个用户限制调用某个 API 的总 QPS 为 50,但机器数可能很多(比如有 100 台)。这时候我们很自然地就想到,找一个 server 来专门来统计总的调用量,其它的实例都与这台 server 通信来判断是否可以调用。这就是最基础的集群流控的方式。原创 2022-12-01 22:54:01 · 1000 阅读 · 4 评论 -
【微服务】SpringCloud断路器Hystrix
当使用包裹Ribbon客户端的Hystrix命令时,要确保Hystrix超时配置为比配置的Ribbon超时更长,包括可能进行的任何重试。例如,如果Ribbon连接超时是一秒钟,并且Ribbon客户端可能重试了3次请求,则Hystrix超时应该稍微超过3秒。原创 2022-11-26 20:56:54 · 620 阅读 · 0 评论 -
Spring Cloud网关路由谓词
Spring Cloud Gateway提供了一个基于Spring生态系统的API网关,其中包括:Spring 5,Spring Boot 2和项目Reactor。Spring Cloud网关的目的是提供一种简单而有效的方法来路由到API,并向它们提供跨领域的关注,例如:安全性,监视/度量和弹性。原创 2022-11-17 09:54:14 · 1333 阅读 · 4 评论 -
【微服务】Sentinel 适配网关进行流量控制
外部请求进入 API Gateway 时会经过 Sentinel 实现的 filter,其中会依次进行路由/API 分组匹配、请求属性解析和参数组装。Sentinel 会根据配置的网关流控规则来解析请求属性,并依照参数索引顺序组装参数数组,最终传入SphU.entry(res, args)中。Sentinel API Gateway Adapter Common 模块向 Slot Chain 中添加了一个GatewayFlowSlot,专门用来做网关规则的检查。......原创 2022-11-09 10:05:50 · 2767 阅读 · 10 评论 -
【微服务】Sentinel 控制台
Sentinel 提供一个轻量级的开源控制台,它提供机器发现以及健康情况管理、监控(单机和集群),规则管理和推送的功能。这里,将会详细讲述如何通过简单的步骤就可以使用这些功能。原创 2022-11-05 09:14:09 · 3531 阅读 · 14 评论 -
Sentinel 工作主流程
在 Sentinel 里面,所有的资源都对应一个资源名称以及一个 Entry。Entry 可以通过对主流框架的适配自动创建,也可以通过注解的方式或调用 API 显式创建;每一个 Entry 创建的时候,同时也会创建一系列功能插槽(slot chain)。原创 2022-10-05 11:17:44 · 1097 阅读 · 0 评论 -
SpringCloud Alibaba系列以及要点
SpringCloud Alibaba系列是阿里巴巴用SpringCloud实践产物,经得住市场的考验,同时配套不少好用的中间件,因此在这里安利一波。笔者SpringCloud Alibaba系列专栏是经过实际生产总结的,目前项目的基础搭建放在了码云的私人仓库。集项目搭建、开发、系统测试以及系统部署于一体的专栏,为知识付费的。这两三天搭建了SpringCloud Alibaba版微信小程序电商项目,前后端完全分离并且已经可以展示小程序首页功能。.........原创 2022-08-07 21:12:52 · 1941 阅读 · 5 评论 -
【毕业季】角色转换
这篇就不分享技术文章了,但是这一封信是发自内心的、关于自己一路走来的一些经验感受分享给大家。不知不觉已经出来工作两年了,一路走来不断成长。一方面是工作经验,一方面是自己在每个休息时间仍然在不断探索未知的知识海洋到底几万里。过程中比较苦逼,也许简简单单的问题也会让你摸索几个晚上,甚至怀疑是不是在做着无用功,但是想着功夫不负有心人、熟能生巧,还是不断地走了重复的路。就像在转圈圈,也乐此不疲。...原创 2022-06-26 15:59:12 · 1600 阅读 · 3 评论