自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(85)
  • 收藏
  • 关注

原创 故障处理流程规范(新)

2020年写过一篇文章:故障处理流程和标准,在过去的这三年内,故障处理流程输出了好几个版本,但都没有很好的落地,所以本次的目标是,制定一个简单、易操作,易落地的故障处理流程。将全链路中的各个组件和服务责任到人,当出现故障时,各司其职,快速分析定位,快速反馈。

2024-01-16 18:44:27 1082

原创 8.架构设计系列:常用设计模式的实践

设计模式使代码编写真正工程化,它是软件工程的基石,如同大厦的一块块砖石一样。每种设计模式都描述了一个在我们周围不断重复发生的问题,以及该问题的核心解决方案,因此在项目中合理地运用设计模式可以完美地解决很多问题,这也是设计模式能被广泛应用的原因。

2023-12-24 11:59:03 1031

原创 3.架构设计系列:高并发系统的设计目标

高并发确实是一个复杂且系统性的问题。因此,在做高并发设计时,同样要秉承架构设计的3个原则:简单、合适和演进。“过早的优化是万恶之源”,不能脱离业务的实际情况,更不要过度设计,合适的方案就是最完美的。另外,如果业务场景不同,高并发的落地方案也会存在差异,但是总体的设计思路和可借鉴的方案基本类似。

2023-12-24 11:49:53 1020

原创 6.架构设计系列:如何设计高可用架构

高可用架构是一种设计和架构方法,它旨在确保系统在面对各种故障、异常、硬件或软件问题,以及不可预测的事件下,继续提供稳定的服务。简单来说,高可用就是让我们的系统在任何情况下都尽最大可能能够对外提供服务。高可用架构追求提供连续的服务,不受单点故障、服务中断或其他问题的影响。这通常涉及到复制、冗余、负载均衡和自动故障转移等技术手段,以保持系统的稳定性和可用性。对于一个持续迭代、不断演进的系统而言,我们没有办法将故障发生的概率降为0,能做的只有尽可能的预防故障的发生,以及当故障发生后缩短故障的恢复时间。

2023-10-24 08:00:00 478

原创 研发效能:基于Git统计开发人员的代码量

通过代码量来度量开发人员的工作情况并不是一个完全合适的方法,因为代码量本身不能充分反映一个开发人员的工作表现和贡献。因此,更好的方式是采用多方面的评估方法来衡量开发人员的工作情况,包括代码质量、项目进度、问题解决能力、团队协作等方面的综合考量。评估开发人员的工作应该是基于目标和结果的,而不仅仅是代码量的数量。

2023-10-11 18:10:48 447

原创 5.架构设计系列:如何设计高性能架构

要搞清楚什么是高性能架构,我们需先弄明白高性能是什么。高性能定义首先,性能是什么,怎么理解它?简单来说,性能,指的是一件事务的处理能力。那么,什么是高性能呢?高性能,指的是处理一件事务的速度更快,所消耗的资源更少。高性能架构那么,什么是高性能架构呢?高性能架构,是指在有限的资源投入下,通过采用适当的技术和策略,让系统具备了优秀的性能。对于技术人员来说,在有限的资源投入下,如何提高系统性能,这是一个挑战,更是一个机遇。

2023-10-06 22:43:23 1363

原创 4.架构设计系列:如何设计可扩展架构

可扩展性的本质,是系统为了应对将来的需求变化,而提供的一种扩展能力。当有新的需求出现时,系统不需要或者仅需要少量修改就可以支持,无须整个系统重构或者重建。切记,不要过度预测,不要过度封装。

2023-09-18 08:00:00 489

原创 2.架构设计系列:几个常用的架构设计原则

在实际工作中,我们应以业务需求为导向,根据时间、资源和团队状况,做出权衡和决策。这对于构建一个好的架构设计来说至关重要。

2023-08-30 11:05:52 268

原创 7.架构设计系列:如何应对软件变化

如何应对软件变化?核心思想是:识别变化,封装变化,扩展变化。一个容易应对变化的软件设计应该遵从:高内聚低耦合原则。因此,我们应以实际需求变化来帮助我们识别变化,管理变化。

2023-08-18 18:25:07 346

原创 1.架构设计系列:什么是架构设计

架构设计,就是对系统结构进行设计。那么,系统结构是什么呢?它包括子系统、模块、组件,以及他们之间的协作关系。架构设计是经过系统性地思考,权衡利弊之后,在现有资源约束下的最合理决策。架构设计为开发团队提供了一个指导框架,确保系统在不断变化的环境中,能够保持稳定和可靠。在实际工作中,我们应以业务需求为导向,根据时间、资源和团队状况,做出权衡和决策。这对于构建一个好的架构设计来说至关重要。

2023-08-11 11:33:31 536

原创 3.L2Cache 核心原理解析

L2Cache 核心原理解析。

2023-07-27 14:27:42 1228 1

原创 PolarDB MySQL版DDL操作获取MDL锁失败

MDL锁(Metadata Lock),即表级别的元数据锁。跟数据锁一样,元数据锁也分读锁和写锁。

2023-06-29 14:06:28 767

原创 Amazon的研发理论 T-Shirt Size Estimation(项目优先级评估)

Amazon的研发理论中的T-Shirt Size Estimation方法为团队提供了一种简单而直观的方式来估计和规划项目的复杂性和工作量。它通过将项目分为不同的尺码,帮助团队更准确地了解项目的规模和挑战,并根据这些估计进行资源分配和计划制定。然而,团队应该意识到这只是一种指导性工具,需要结合实际情况进行灵活调整。通过团队的沟通和持续评估,T-Shirt Size Estimation方法可以为项目的成功交付提供有力支持。

2023-06-12 16:02:57 1115

原创 解决Kubernetes就绪检查导致网关不可用的问题

在K8s环境中,由于就绪检查设置不合理的问题,导致出现网关不可用的情况。本文将详细探讨这个问题的原因,并提供一些解决方案,帮助有需要的同学解决类似的问题。注:网关使用 spring-cloud-gateway。

2023-05-29 19:03:42 869

原创 6.l2cache [热key探测]技术方案调研

在高并发系统中,热key一直以来都是一个不可避免的问题(无法通过加机器来解决)。由于目前核心主链路中存在突发的无法预先感知的流量,而这些热点访问会对数据层造成冲击,严重时会导致Redis的带宽满载,最终可能导致系统崩溃,影响应用层系统稳定性。所以我们需要一种手段来自动探测热点数据,期望通过它大幅降低热点数据对数据层的冲击,并提升应用性能。

2023-05-26 14:25:15 1468

原创 基于trace_id实现ForkJoinPool的链路追踪

ForkJoinPool是Java提供的一种线程池实现,特别适用于处理递归分解的任务。Java 8提供的 Stream并行流采用了 ForkJoinPool 作为默认实现,当我们基于并行流做一些业务操作时,日志的链路追踪往往很容易在这里出现断层的情况。本文将探讨如何基于trace_id实现ForkJoinPool的链路追踪,以提升系统的可追溯性。

2023-05-09 19:17:09 1068 2

原创 如何编写高质量的代码?让你的代码更可读、可维护、鲁棒和高效

作为一名程序员,我们经常会遇到代码质量问题。写出高质量的代码不仅可以提高代码的可维护性和可读性,还可以降低错误发生的概率,减少后期修复的成本。因此,编写高质量代码是每个程序员都应该努力实现的目标。总之,写出高质量的代码需要考虑代码的可读性、可维护性、可扩展性、鲁棒性、性能和安全等方面。只有这样,才能编写出高质量的代码,提高代码的可维护性和可读性,降低错误发生的概率,减少后期修复的成本。

2023-04-27 15:32:26 859

原创 对运维工作的理解

对运维行业而言,其所面临的问题本质上都是系统工程问题。是为了解决 IT 系统快速交付的问题、解决伸缩性的问题、解决稳定性的问题、解决运行维护成本不断提高的问题。

2023-04-24 18:59:00 1032

原创 技术破局,业绩狂飙十倍:亿级电商平台重构大揭秘

在业绩年增10倍的狂飙式增长下(年GMV5亿到年50亿),一个累计超过百亿GMV的电商平台是如何进行从0到1的系统重构实践的。

2023-04-19 10:48:25 391

原创 1.L2Cache 分布式二级缓存框架

L2Cache 是一个基于内存Redis实现的满足高并发场景下的分布式二级缓存框架。

2023-04-19 09:58:31 883 1

原创 Spring Cloud Gateway集成Actuator的安全漏洞和解决方案

最近线上环境出现一起安全事件,就是由于Spring Cloud Gateway集成Actuator导致被攻击,攻击者通过动态添加路由规则,导致系统出现异常。下面将详细介绍这一事件。Spring Cloud Gateway集成Actuator后可以提供更多的监控和管理功能,但也增加了安全风险。在使用过程中,需要注意限制访问权限和动态路由规则的范围,以避免类似的攻击事件发生。

2023-04-18 18:02:46 3005

原创 关于负载均衡的粗略理解

对负载均衡的四层负载和七层负载的理解

2023-03-01 16:50:26 227

原创 MYSQL深度分页的常见优化方案

MYSQL深度分页的常见优化方案

2023-02-28 10:37:49 2002 2

转载 互联网常用英文缩写:DAU、ROI、MCN……

说明:通常统计一日(统计日)之内,登录或使用了某个产品的用户数(去除重复登录的用户)

2023-02-25 10:54:59 4029

转载 发布 Maven 构件到中央仓库【转载】

发布 Maven 构件到中央仓库

2023-02-22 17:26:09 945

原创 通过批处理批量更新代码(git pull)

批量更新代码(git pull)

2022-12-23 11:25:39 552

原创 【GIT教程】清除git仓库中某个文件的提交记录

清除git仓库中某个文件的提交记录

2022-12-16 16:10:02 4985

转载 【Git教程】如何清除git仓库的所有提交记录,成为一个新的干净仓库

清除git仓库的所有提交记录

2022-12-16 15:00:04 5358 4

原创 数据库CPU满载如何处理

数据库CPU满载的分析

2022-11-08 21:10:40 2844

转载 用了那么久的Lombok,你知道它的原理么?【转载】

Lombok插件的原理为何?如何手写一个Lombok插件?

2022-08-11 10:12:47 97

原创 快速理解ForkJoin框架的核心

快速理解ForkJoin框架的核心

2022-06-20 16:20:03 241

原创 2.如何使用 L2cache

如何使用L2cache

2022-06-02 11:31:06 2879 14

原创 实战-商品中心-l2cache中caffeine.getIfPresent()仅仅获取缓存,但触发了数据加载,导致被设置为NullValue的问题分析

实战-l2cache中caffeine.getIfPresent()仅仅获取缓存,但触发了数据加载,导致被设置为NullValue的问题分析

2022-06-02 11:05:12 3581

原创 mysql 创建数据库,添加用户,用户授权

一、创建mysql数据库1.创建数据库语法-- 创建名称为“testdb”数据库,并设定编码集为utf8CREATE DATABASE IF NOT EXISTS testdb DEFAULT CHARSET utf8 COLLATE utf8_general_ci;二、创建用户1.新建用户 --创建了一个名为:test 密码为:1234 的用户 create user 'test'@'localhost' identified by '1234';注意:此处的"localhost",

2022-04-05 00:15:38 601

转载 技术总监需要会些什么?

研发管理体系构建思考

2022-01-17 10:12:24 330 1

转载 Intellij idea高效使用教程

安装好Intellij idea之后,进行如下的初始化操作,工作效率提升十倍。一. 安装插件Codota 代码智能提示插件只要打出首字母就能联想出一整条语句,这也太智能了,还显示了每条语句使用频率。原因是它学习了我的项目代码,总结出了我的代码偏好。如果让它再加上机器学习,人工智能写代码的时代还会远吗?Key Promoter X 快捷键提示插件每次都会在右下角弹窗提示,帮助我们快速熟悉快捷键。CodeGlance 显示代码缩略图插件当代码很多的时候,方便查看,很有用。

2021-12-10 09:59:19 111

原创 笔记02:K8s集群搭建步骤

版本统一Docker 18.09.0kubeadm-1.14.0-0kubelet-1.14.0-0kubectl-1.14.0-0k8s.gcr.io/kube-apiserver:v1.14.0k8s.gcr.io/kube-controller-manager:v1.14.0k8s.gcr.io/kube-scheduler:v1.14.0k8s.gcr.io/kube-proxy:v1.14.0k8s.gcr.io/pause:3.1k8s.gcr.io/etcd:3.3.1

2021-12-04 11:15:25 1655

原创 笔记01:在windows上搭建centos+docker环境

在windows上搭建centos+docker环境

2021-12-04 11:12:21 695

转载 《我想进大厂》之mysql夺命连环13问

原创 科技缪缪 艾小仙 2020-09-03想进大厂,mysql不会那可不行,来接受mysql面试挑战吧,看看你能坚持到哪里?1. 能说下myisam 和 innodb的区别吗?myisam引擎是5.1版本之前的默认引擎,支持全文检索、压缩、空间函数等,但是不支持事务和行级锁,所以一般用于有大量查询少量插入的场景来使用,而且myisam不支持外键,并且索引和数据是分开存储的。innodb是基于聚簇索引建立的,和myisam相反它支持事务、外键,并且通过MVCC来支持高并发,索引和数据存储在一起。.

2021-09-29 13:15:18 179

原创 开发设计实践:一个优雅的支付网关路由设计方案

简介本文的核心主题是关于一个优雅的支付网关的设计方案是如何设计出来的。结合项目实战,后续会将支付网关的核心逻辑从项目中剥离出来并实现开源,以供参考。不同公司接入的第三方支付可能不一样,有的直连微信和支付宝,有的接入聚合支付通道,所以请将关注点重点放在设计方案这个层面,因为设计思想可以复用到别的场景,而代码则不一定适用。做一个有灵魂的码农。划重点,先上整体演进图:下面将详细介绍随着业务的发展,是如何一步一步演进出最后的设计方案的,具体如下:1、阶段一:青铜青铜,一顿操作猛如虎,以一个类走天下

2021-09-29 12:45:06 4147 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除