LeeQingShui's Blog

  • 标签

  • 分类

  • 归档

  • 关于

画地为牢:分布式限流框架——Sentinel

发表于 2022-11-21 | 更新于 2023-12-07
本文字数: 8.2k | 阅读时长 ≈ 12 分钟

序言

  当微服务调用链路中的某个服务出现故障,最终将可能引起整个链路中的所有微服务都不可用,这便是雪崩问题。

  解决雪崩问题,通常存在以下四种方案:

  • 超时处理:设定超时时间,请求超过一定时间没有响应就返回错误信息,不会无休止等待,但高并发下无法从根本上解决问题
  • 舱壁模式(线程隔离):限定每个业务能使用的线程数,避免耗尽整个 Tomcat 的资源
  • 熔断降级:由断路器统计业务执行的异常比例,若超出阈值则会熔断该业务,则拦截访问该业务的一切请求
  • 流量控制:限制业务访问的 QPS,避免服务因流量的突增而故障。

  前面三种是为了避免出错业务扩散造成雪崩效应,而最后一种是为了预防出现雪崩问题。

  本文要谈的 Sentinel 使用后面三种方式来处理雪崩问题。

阅读全文 »

踏雪留痕:分布式链路追踪框架——Skywalking

发表于 2022-11-05 | 更新于 2023-12-07
本文字数: 9.7k | 阅读时长 ≈ 14 分钟

序言

  对于个大型的几十个、 几百个微服务构成的微服务架构系统, 通常会遇到下面一些问题,比如:

  • 如何捋清各个微服务间的依赖关系?
  • 如何跟踪整个业务流程的调用处理顺序?
  • 如何进行各个微服务接口的性能分折?
  • 如何串联整个调用链路日志,快速定位问题?

  要处理这些问题,就需要分布式链路追踪框架出手了,本文要谈的 Skywalking 就是一款分布式链路追踪框架。

阅读全文 »

击电奔星:数据迁移利器——DataX

发表于 2022-11-01 | 更新于 2023-07-31
本文字数: 2.5k | 阅读时长 ≈ 4 分钟
此文章不对外开放
阅读全文 »

神兵利器:妙用 Linux 抓包工具 tcpdump 排查网络问题

发表于 2022-09-06 | 更新于 2024-02-08 | 分类于 Ops
本文字数: 3.3k | 阅读时长 ≈ 5 分钟

序言

  作为开发人员,我们经常需要和第三方公司进行接口联调工作。

  要想联调成功,除了需要双方按照约定的接口文档进行代码开发外,还有个要求——双方网络得保持畅通。

  然鹅,网络这个家伙有时候非常调皮,偏偏喜欢搞事情,emmm,为了甩锅(啊不,为了定位问题),我们可以使用抓包工具去观察下数据包的出入流量情况,来确定到底是哪一方的问题。

  tcpdump是 Linux 自带的一个不错的抓包工具,那么,就跟随这篇文章来学习怎么使用它吧!

阅读全文 »

(杂)数据结构之树

发表于 2022-08-19 | 更新于 2023-08-31 | 分类于 数据结构与算法
本文字数: 3.1k | 阅读时长 ≈ 4 分钟

序言

  树是一种很常用的数据结构,此文汇总了树的一些相关概念。

阅读全文 »

轻量级对象存储系统——Minio

发表于 2022-06-21 | 更新于 2025-12-04 | 分类于 开发工具
本文字数: 3.3k | 阅读时长 ≈ 5 分钟

序言

  MinIO 是在 GNU Affero 通用公共许可证 v3.0 下发布的高性能对象存储。 MinIO 提供与 Amazon S3 云存储服务兼容的 API,使用 MinIO 可以为机器学习、分析和应用程序数据工作负载构建高性能基础架构。

阅读全文 »

神兵利器: GitLab CI/CD UP 工作效率 🚀🚀🚀

发表于 2022-03-26 | 更新于 2025-10-13 | 分类于 开发工具
本文字数: 14k | 阅读时长 ≈ 21 分钟

前言

  在互联网行业中,当新产品的一个个需求确立下来,开发同学不仅仅需要进行代码开发,在每个功能完善的同时,都需要重新发布测试环境,换而言之,开发同学还肩负着持续的部署工作。

  为什么需要频繁部署?

  因为产品时由多个功能点组合而成,所以一般会拆分为各个功能点划分给不同的开发同学协同合作推进产品成型,每一个功能点完成后,都需要发布到测试环境交由测试同学进行验证,若出现 Bug,则告知开发同学进行修复,因此,在一个功能点完成后,一个 Bug 修复后,都需要发布到测试环境。

  开发同学是如何进行部署工作的呢?
  开发同学一般是在功能点完成或 Bug 修复后,进行一系列以下操作:

  • ① 将代码打包
  • ② 上传到测试环境服务器
  • ③ 删除(备份)旧包,kill 旧包进程,start 新包进程

  这一系列人工操作,是重复且会花费开发同学一定时间的。
  那么,以上操作能否自动化?降低开发同学的部署时间,提升团队的工作效率呢?

  当然可以,这个时候就需要使用 CI/CD 工具了,并且它的作用远不止于此。

阅读全文 »

聚沙成塔:巧用 Nexus 搭建 Maven 私服

发表于 2022-03-19 | 更新于 2025-02-10 | 分类于 开发工具
本文字数: 3.2k | 阅读时长 ≈ 5 分钟

前言

  在互联网行业中,成熟的公司都会有专门的技术团队开发出各式各样的产品供用户使用。对于公司内部的不同产品而言,并不是每一个产品都需要重零构建,大多数情况下都是在旧产品基础上组合拼凑,衍生出新产品。
  如果说 B、C 产品都是在 A 产品基础上开发的新产品,那么意味着什么呢?
  对程序员而言,这代表着继承,也可以说是代码复用。
  那么,就有个问题了,如何去让 B、C 产品的代码继承 A 产品代码呢?
  A 产品代码打个包嘛,每个 Java 程序员都会使用 Maven,引入下不就好了?
  话是这么说,但是有个问题,A 产品的包放在哪里?不可能放中央仓库吧?这可是公司内部的产品呀!
  嘿嘿,这个时候,就需要专门搭建一个存放公司产品包的仓库,去管理这些内部产品包了。(这种内部产品包被称为二方包,公司搭建的仓库被成为二方库)。

  一般而言,公司内部的二方库早就有开发搭建好了,用不着新人动手,但由于罗马并不是一天就能建成的,有的公司技术部门可能刚刚创立,会存在没搭建过私服的情况,这个时候就需要我们手动动手了。

  那么,下面跟随本文来搭建一个 Maven 私服吧!

阅读全文 »

(运维篇)MySQL 读写分离中间件—— ProxySQL

发表于 2022-02-26 | 更新于 2022-09-12 | 分类于 关系型数据库
本文字数: 3.3k | 阅读时长 ≈ 5 分钟
此文章不对外开放
阅读全文 »

(运维篇)MySQL 高可用架构 MGR

发表于 2022-02-22 | 更新于 2022-12-20 | 分类于 关系型数据库
本文字数: 2.7k | 阅读时长 ≈ 4 分钟
此文章不对外开放
阅读全文 »
123…15
LeeQingShui

LeeQingShui

147 日志
16 分类
67 标签
RSS
© 2018 – 2025 LeeQingShui | 站点总字数: 864k
赣 ICP 备 2022002212 号
本站已运行
本站总访问量 次 | 本站访客 人次
0%