PerfMa童庭坚:全链路压测体系建设方案的思考与实践
日前杭州笨马CTO童庭坚接受了软件质量效能社区的邀请,与行业同仁分享了关于全链路压测体系建设方案的思考与实践。以下为本场直播的核心内容: 系统性能测试的几个痛点在金融、零售快消、物流、新能源等传统行业
记一次微服务耗时毛刺排查
前段时间的某天,注意到一个服务的平均耗时出现了如下图的毛刺现象。注意到毛刺出现极其规律,每30分钟出现一个毛刺。考虑到这种规律性,并结合服务的流量较小(20 QPS)推测,可能是某个定时请求的接口进行
这么流行的ZooKeeper,原来是这样设计的!
为什么会有ZooKeeper 我们知道要写一个分布式应用是非常困难的,主要原因就是局部故障。一个消息通过网络在两个节点之间传递时,网络如果发生故障,发送方并不知道接收方是否接收到了这个消息。有可能是收
Kafka的生产者优秀架构设计
前言 Kafka 是一个高吞吐量的分布式的发布订阅消息系统,在全世界都很流行,在大数据项目里面使用尤其频繁。笔者看过多个大数据开源产品的源码,感觉 Kafka 的源码是其中质量比较上乘的一个,这得益于
多机房灾备实践
2017年主导了公司新机房(100多台服务器规模)建设以及机房切换,前期工作主要是招标选供应商,服务器,网络设备等,定下来后就开始进行采购,2017年过年之前设备到位。年后开始规划实施。下面我就分享下
RedLock: 看完这篇文章后请不要有任何疑惑了
后台经常会有小伙伴咨询RedLock相关问题,笔者在此再来一篇文章剖析一下RedLock,希望此文能解决你对它所有的疑惑和误解。 为什么需要RedLock这一点很好理解,因为普通的分布式锁算法在加锁时
久等了,网传字节跳动总结的设计模式出版了!
作者:小傅哥博客:[https://bugstack.cn](https://bugstack.cn)沉淀、分享、成长,让自己和他人都能有所收获!😄 一、前言`来自延迟满足的幸福`可能你的生活里很多
微服务注册中心的选型和思考
概述 在微服务时代,注册中心越来越被重视。服务治理逐渐跟业务服务并驾齐驱。所以本文想对注册中心进行体系化探索。注册中心,起源于分布式时代。不管是水平拆分架构,或者垂直拆分架构,对于多服务、多实例的支持
微服务架构中分布式事务实现方案如何取舍
提起微服务架构,不可避免的两个话题就是服务治理和分布式事务。数据库和业务模块的垂直拆分为我们带来了系统性能、稳定性和开发效率的提升的同时也引入了一些更复杂的问题,例如在数据一致性问题上,我们不再能够依
如此火爆的ZooKeeper,到底如何选主?
前言 前面一篇文章我们已经给大家讲解了ZooKeeper的核心的原理,这一篇我们重点分析ZooKeeper的Leader选举算法。Leader的选举是ZooKeeper的最重要技术之一,也是保证分布式
微服务架构何去何从?
前言微服务架构模式经过5年多的发展,在各行各业如火如荼地应用和实践。如何在企业中优雅地设计微服务架构?是企业面对的一个重要问题。本文将讲述微服务架构1.0设计与实践以及面临问题和破局,最后讲述微服务架
世界最优秀的分布式文件系统架构演进之路
前言 Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。Hadoop实现了一个分布式文件系
数学,离一个程序员有多近?
作者:小傅哥博客:[https://bugstack.cn](https://bugstack.cn) 沉淀、分享、成长,让自己和他人都能有所收获!😄 一、前言`数学离程序员有多近?`ifelse也
浅谈JDK并发包下面的分治思想及分治思想在高并发场景的运用
提到分治思想,大家比较容易想起其在归并排序与快速排序中的运用。今天先给大家分享一下JDK并发包下面分治思想的运用,再和大家分享一下如何利用分治思想解决高并发场景下面的一些问题。本文说的分治思想是广义范
国内酒店:通过架构改进,我们计划优化掉300+台服务器
背景 线上问题回顾2019年8月某天,那时我刚入职还不到一个月,遇到一个特殊的线上问题:某报价应用个别机器连续FGC不停(准确的说是FGC几乎没任何效果),这些机器重启后不久继续开始不停的FGC。当时
PerfMa技术沙龙•上海2021︱全链路压测体系建设的探索与实践
背景介绍近几年全链路压测无疑成为了一个热门话题,在各大技术峰会上都可以看到它的身影。业务场景的越发复杂化、海量数据冲击下整个业务系统链的可用性、服务能力的瓶颈等都已成为目前亟待解决的技术难题~- 环境
记一次存储故障的排查过程
高可用真是一丝细节都不得马虎。平时跑的好好的系统,在相应硬件出现故障时就会引发出潜在的Bug。偏偏这些故障在应用层的表现稀奇古怪,很难让人联想到是硬件出了问题,特别是偶发性出现的问题更难排查。今天,笔
如何修改 Nginx 源码实现 worker 进程隔离
最近我们线上网关替换为了 APISIX,也遇到了一些问题,有一个比较难解决的问题是 APISIX 的进程隔离问题。
年纪轻轻,为什么要搞中间件开发?“路怎么走,让你们自己挑”
作者:小傅哥博客:[https://bugstack.cn](https://bugstack.cn)沉淀、分享、成长,让自己和他人都能有所收获!😄 一、前言`年纪轻轻,为什么要搞中间件开发?`五年
Netty + JavaFx 实战:仿桌面版微信聊天
作者:小傅哥博客:[https://bugstack.cn](https://bugstack.cn) 沉淀、分享、成长,让自己和他人都能有所收获!😄 一、前言本项目是作者小傅哥使用```JavaF
笔记整理:技术架构涵盖内容和演变过程总结
前言架构,说的是开发用的框架吗?对于刚接触编程的新人来说,可能并不能很清楚的知道架构是怎么来的,都包括什么内容。如果非得说什么架构,那么可能就是目前在 IDEA 中打开的工程就是架构。抛开技术圈内的架
90%的程序员,都没用过多线程和锁,怎么成为架构师?
作者:小傅哥博客:[https://bugstack.cn](https://bugstack.cn)Github:[https://github.com/fuzhengwei/CodeGuide/w
记一次k8s pod频繁重启的优化之旅
记一次k8s pod频繁重启的优化之旅
微服务3:微服务拆分策略
前面我们学习了微服务的全景架构,了解到相对于传统单体架构,微服务的优势,以及系统服务化的发展趋势。  对于新启动的项目,我们在权衡之后可以大方的使用微服务架构。但其实大部分情况下,我们还要去维护一些以前研发的单体系统,这些系统可能因为访问流量的膨胀、功能的扩张而显得非常臃肿不堪,急需要向微服务架构
微服务1:微服务及其演进史
0 微服务系列微服务1:微服务及其演进史微服务2:微服务全景架构 1 传统单体系统介绍在很多项目的业务初期阶段,高速迭代上线是首要考虑的事情,对后期的容量预估、可扩展性和系统健壮性、高可用一般没有那么重视。但随着业务的发展,用户量、请求量的暴增,发现原来的单体系统已经远远不
微服务2:微服务全景架构
微服务架构中的 每个节点高度服务化,都是具有业务逻辑的, 符合高内聚、低耦合原则以及单一职责原则的单元,包括数据库和数据模型; 不同的服务通过“管道”的方式灵活组合,从而构建出庞大的系统。
架构与思维:一次缓存雪崩的灾难复盘
云办公系统用户实时信息查询功能优化发布之后,系统发生宕机事件(系统挂起,页面无法加载)。
架构与思维:高并发下幂等性解决方案
幂等函数(幂等方法),是指使用相同的参数结构重复执行,产生相同的结果的函数,重复执行幂等函数不会影响系统的状态或者造成改变。
一次线上事故,我顿悟了异步的精髓
在高并发的场景下,异步是一个极其重要的优化方向。前段时间,生产环境发生一次事故,笔者认为事故的场景非常具备典型性 。写这篇文章,笔者想和大家深入探讨该场景的架构优化方案。希望大家读完之后,可以对异步有更深刻的理解。1 业务场景老师登录教研平台,会看到课程列表,点击课程后,课程会以视频的形式展
架构与思维:高并发下解决主从延时的一些思路
1 回顾下MySQL主从复制主从复制,是指建立一个和主数据库完全一样的数据库环境(称为从数据库),并将主库的操作行为进行复制的过程:将主数据库的DDL和DML的操作日志同步到从数据库上,然后在从数据库上对这些日志进行重新执行,来保证从数据库和主数据库的数据的一致性。1.1 为什么要做主从复制
假如我是核酸系统架构师
成都核酸检测系统“崩溃”事件,将东软推至风口浪尖,同时也在技术圈内引发了广泛的讨论。
【全网首发】微服务10:系统服务熔断、限流
分布式系统环境下,服务间类似依赖非常常见,一个业务调用通常依赖多个基础服务。如下图,对于同步调用,当库存服务不可用时,商品服务请求线程被阻塞,当有大批量请求调用库存服务时,最终可能导致整个商品服务资源耗尽,无法继续对外提供服务。并且这种不可用可能沿请求调用链向上传递,这种现象被称为雪崩效应
看完这一篇,ShardingSphere-jdbc 实战再也不怕了
谈到分库分表中间件时,我们自然而然的会想到 ShardingSphere-JDBC 。 这篇文章,我们聊聊 ShardingSphere-JDBC 相关知识点,并实战演示一番。
分布式:分布式系统下的唯一序列
1 介绍在分布式系统中,由于涉及到多个不同业务module的交互,以及高并发的场景。我们需要系统能够生成一个跨业务module的全网唯一序列号,来保证我们业务操作的独立性和唯一性。 在常见的业务场景中,比如全局订单Id,唯一标识的支付编号等,都需要这个来保证。那生成ID都有哪些解决
微服务5:服务注册与发现(实践篇)
★微服务系列微服务1:微服务及其演进史微服务2:微服务全景架构 微服务3:微服务拆分策略微服务4:服务注册与发现微服务5:服务注册与发现(实践篇)1 服务注册中心前面我们对业内几种比较常见的注册中心做了介绍:Eureka、Zookeeper、Consul、Etcd。并且在
【全网首发】Spring DeferredResult 是个什么玩意?
大家好,我是yes。今天我们就来盘一下 Spring DeferredResult,这玩意使用起来是很简单的,回答的话可深可浅。浅一点就是直接回答它的作用,深一点的话就是原理了,而这个原理其实还需要涉及到 tomcat (默认 tomcat 为 web 容器)。我们先来看下 DeferredR
如何监控 Log4j2 异步日志遇到写入瓶颈
在之前的一篇文章中(一次鞭辟入里的 Log4j2 异步日志输出阻塞问题的定位),我们详细分析了一个经典的 Log4j2 异步日志阻塞问题的定位,主要原因还是日志文件写入慢了。并且比较深入的分析了 Log4j2 异步日志的原理,最后给出了一些解决方案。
【译】Java、Go 和 Python三种语言的多线程性能比较
通过经典矩阵乘法算法、快速排序算法和康威生命游戏的并行实现,分析和比较 Java、Go 和 Python 使用它们的并行工具解决几种算法的性能。
【全网首发】如果我们是那晚负责修复 B 站崩了的开发人员
大家好,我是 yes。早在十几天前,我就看到了 B 站发的那篇解释一年前网站崩溃的文章。当时的第一反应是时间过得真快,总觉得 B 站崩了仿佛在昨日,脑子里还能浮现当时热闹的微博和朋友圈的画面。那时候我还加班加点写了一篇文章:我是小R,昨晚我好像把B站搞崩了!根据当时的场景,我分析的原因是 C
读完 RocketMQ 源码,我学会了如何优雅的创建线程
RocketMQ 是一款开源的分布式消息系统,基于高可用分布式集群技术,提供低延时、高可靠的消息发布与订阅服务。这篇文章,笔者整理了 RocketMQ 源码中创建线程的几点技巧,希望大家读完之后,能够有所收获。1 创建单线程首先我们先温习下常用的创建单线程的两种方式:实现 Runnab
高并发存储优化篇:诸多策略,缓存为王
Part1、缓存是什么1.1存储宕机的致命代价2015年5月28号,携程网站和APP全面瘫痪持续12小时,数据库被物理删除的消息在朋友圈风传。按上季度财报估算,此次宕机直接影响携程营收大约1200w美元,携程股价也大跌11%。这还只是发生在互联网刚刚普及的2015年。如果发生在现在。。。据公司
实现定时任务的六种策略
这篇文章,我们聊聊实现定时任务的六种策略。1 自定义单线程上图中,我们启动一个线程,该线程无限循环执行,每隔20毫秒执行业务代码。这种方式非常简单易用,在很多中间件中得到广泛应用。2 JDK ScheduledExecutorServiceScheduledExecutorServic
Redis 高负载下的中断优化
本文转自美团技术团队博客,原文链接:https://tech.meituan.com/2018/03/16/redis-high-concurrency-optimization.html 背景201
微服务4:服务注册与发现
★ 微服务系列微服务1:微服务及其演进史微服务2:微服务全景架构 微服务3:微服务拆分策略微服务4:服务注册与发现1 微服务的注册与发现我们前面在全景架构中对服务注册与发现做了大致的说明,本章我们着重详细说明微服务下注册与发现的这个能力。微服务注册与发现类似于生活中的"电话
【全网首发】微服务11:熔断、降级的Hystrix实现(附源码)
微服务1:微服务及其演进史微服务2:微服务全景架构微服务3:微服务拆分策略微服务4:服务注册与发现微服务5:服务注册与发现(实践篇)微服务6:通信之网关微服务7:通信之RPC微服务8:通信之RPC实践篇(附源码)微服务9:服务治理来保证高可用微服务10:系统服务熔断、限流1 介绍
【全网首发】你管这玩意儿叫高并发?(一)
你好,我是坤哥准备写一个针对高并发的系列,今天我们先聊一下高并发下的网络 IO 模型设计高并发即我们所说的 C10K(一个server 服务 1w 个 client),C10M,写出高并发的程序相信是每个后端程序员的追求,高并发架构其实有一些很通用的架构设计,如无锁化,缓存等,今天我们主要研究下
【全网首发】浅谈长连接负载均衡
hello,大家好,我是小楼,终于忙完了一阵,今天来更新一篇长连接的负载均衡问题。 首先说明下,长连接我不是专业的,只是在工作上有一点点的接触,分享也是基于一点点的经验和一些思考,如有出入,欢迎私聊。
借助SpotBugs将程序错误扼杀在摇篮中
推荐一个静态扫描工具SpotBugs,让你提前发现bug,下班没烦恼
祖传代码如何优化性能?
hello大家好呀,我是小楼~今天又带来一次性能优化的分享,这是我刚进公司时接手的祖传(坏笑)项目,这个项目在我的文章中屡次被提及,我在它上面做了很多的性能优化,比如《记一次提升18倍的性能优化》这篇文章,比较偏向某个细节的优化,本文更偏向宏观上的性能优化,可以说是个老演员了。背景为了新
Java:基于AOP的动态数据源切换(附源码)
1 动态数据源的必要性我们知道,物理服务机的CPU、内存、存储空间、连接数等资源都是有限的,某个时段大量连接同时执行操作,会导致数据库在处理上遇到性能瓶颈。而在复杂的互联网业务场景下,系统流量日益膨胀。为了解决这个问题,行业先驱门充分发扬了分而治之的思想,对大库表进行分割,然后实施更好的控制和
【译】比较低延迟消息队列中的持久性方法
Chronicle Queue Enterprise 的一个重要特性是支持跨多个服务器的 TCP 复制,以确保应用程序基础架构的高可用性。
【全网首发】架构与思维:互联网高性能Web架构
1 什么是高性能Web架构在互联网业务中,我们经常会面临流量巨大的复杂的分布式场景。这就要求我们在设计系统的时候保证系统具有承载高并发(High Concurrency)的能力,同时能够保证系统的高可用性(High Availability)。所以,具备高性能Web架构通常是指,通过稳健的系统
深度剖析 Seata TCC 模式【图解 + 源码分析】
Seata 目前支持 AT 模式、XA 模式、TCC 模式和 SAGA 模式,之前文章更多谈及的是非侵入式的 AT 模式,今天带大家认识一下同样是二阶段提交的 TCC 模式。
一个奇葩的线上问题,导致我排查了一天!
昨天线上又出了个问题,花了一天的时间才找到原因,说起来原因其实特别的坑爹啊。事情是这样的,最近我们上线了一个刷新用户 token 的功能,也就是 APP 里经常有的,只要你经常操作,就能让你一直保持在线状态,不用一直重新登录,需求就是这么一个并不复杂的需求,也很快的上线了。但是上线之后发现了一个
线上排查性能问题,这些命令你一定用得到!
收藏过去排查性能问题的一些常用命令,这些场景,你遇到过么?
一文读懂直播卡顿优化那些事儿
整体看直播卡顿这件事,从问题起因到解决思路。
架构与思维:分布式锁方案分析
前面的文章我们介绍了分布式系统和它的CAP原理:一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance)。参考这篇《分布式事务》 我们知道,一个分布式系统无法同时满足三个特性,所以在设计系统之初,就有一个特性要被妥协和牺牲,因为分区
【全网首发】盘点低延时网络架构中使用的那些黑科技!
大家好,我是飞哥!最近我简单研究了一下低延迟网络架构,今天和大家分享分享。谈到优秀的低延时网络架构,大家首先可能想到的是各家互联网大厂,比如腾讯阿里字节,总会觉得大厂做的肯定最好。但其实在在一般的互联网应用中,用户虽然也讨厌卡顿,但整体上来对延迟其实并不算太敏感,只要按钮点下后一秒之内能响应,用户
微服务9:服务治理来保证高可用
★微服务系列微服务1:微服务及其演进史微服务2:微服务全景架构 微服务3:微服务拆分策略微服务4:服务注册与发现微服务5:服务注册与发现(实践篇)微服务6:通信之网关微服务7:通信之RPC微服务8:通信之RPC实践篇(附源码)微服务9:服务治理来保证高可用1 微服务带来的挑战在第2篇《微服务
近期业务大量突增微服务性能优化总结-4.增加对于同步微服务的 HTTP 请求等待队列的监控
最近,业务增长的很迅猛,对于我们后台这块也是一个不小的挑战,这次遇到的核心业务接口的性能瓶颈,并不是单独的一个问题导致的,而是几个问题揉在一起:我们解决一个之后,发上线,之后发现还有另一个的性能瓶颈问
面试官问我:什么是高并发下的请求合并?
我重新给个我觉得合理的场景,告诉大家我理解的请求合并和高并发下的请求合并是什么玩意。
【译】设计分布式系统时,我们容易忽视的8个经典错误假设
你在做分布式系统吗?微服务、Web API、SOA、Web服务、服务器、数据库、缓存、负载均衡——是不是把这些组合到一起就行了呢?当然不是,分布式系统不仅仅要组合在一起,更重要的是它们之间如何高效的合作。20 多年前,Peter Deutsch 和 James Gosli
掌握四种强大且隐秘的缓存,内功更进一步
这篇文章,笔者想聊聊缓存,只不过并不是大家耳熟能详的 Redis ,而是那些隐藏在中间件或者框架中强大却又隐秘的缓存,笔者愿称他们为缓存世界的扫地僧
从全局角度,如何设计一个秒杀系统?
大家好,我是树哥。秒杀系统的设计是高级职位面试中非常高频的一道题目,它可以较好地考察候选人的知识体系情况。对于我们来说,学习秒杀系统的设计,能够让我们学以致用,设计系统的时候考虑得更加全面。今天就让树哥带你一起来看看怎么设计一个秒杀系统!活动一般出现在电商的促销活动中,一般是指定了很少数量的商
微服务7:通信之RPC
★微服务系列微服务1:微服务及其演进史微服务2:微服务全景架构 微服务3:微服务拆分策略微服务4:服务注册与发现微服务5:服务注册与发现(实践篇)微服务6:通信之网关微服务7:通信之RPC1 什么是RPC通信RPC:Remote Procedure Call Prot
【升职加薪秘籍】我在服务监控方面的实践(1)-监控蓝图
如何对线上服务进行监控,内容涉及到的指标设计,软件配置,监控方案等等你都可以拿来直接复刻到你的项目里,这是一套非常适合中小企业的监控体系
可恶,又是个线上问题!
这几天,在搞 ShardingSphere,这不又来了一个问题嘛,启动的时候报了一个NPE出来。好在,这个问题不影响使用,只是启动会报点错,接下来,又是辛苦的排查过程。直接定位到报错的地方,发现是ShardingSphere在启动时候去加载表一些元数据信息报错,看到这个地方就很明显的猜测是 m

有开始,就会有进​步!

在追求性能的道路上,记录每一刻的成长!源码解读,编程技巧,外文翻译,技术实践,线上案例等等,记录自己,启发他人!

专家作者推荐

巡山小汪

关注微信公众号《解Bug之路》,有问题请在公众号中咨询:) 无论多么艰苦的时刻,都不要忘记,辉煌的未来,在你的眼中闪耀!

飞哥开发内功

《深入理解Linux网络》作者,腾讯搜狗十年工程师,公众号「开发内功修炼」作者!

踩刀诗人

聊聊技术,唠唠段子,偶尔做菜写诗,欢迎关注我的公众号 踩刀诗人

Brand

搜索关注微信公众号【架构与思维】:撰稿者为bat、字节的几位高阶研发/架构,专注技术分享。

专题推荐

本系列文章主要针对Dubbo2.6.2(dubbox2.8.4)版本,从源码的角度分析Dubbo内部的实现细节,加深对Dubbo的各配置参数底层实现原理的理解,更好的指导Dubbo实践。
11篇文章14468阅读量
GC(Garbage Collection)很大程度上帮助Java程序员解决了内存释放的问题,有了GC,就不需要再手动的去控制内存的释放。
12篇文章30275阅读量