Wang Yapu Blog

谋定而后动,知止而有得

深入剖析分布式监控 CAT —— 消息文件存储

"文件索引设计"

深入剖析分布式监控 CAT —— 消息文件存储 项目简介 CAT(Central Application Tracking),是基于 Java 开发的分布式实时监控系统。CAT 目前在美团点评的产品定位是应用层的统一监控组件,在中间件(RPC、数据库、缓存、MQ 等)框架中得到广泛应用,为各业务线提供系统的性能指标、健康状况、实时告警等。 CAT 目前在美团点评已经基本覆盖全部业务线,...

第一届天池 PolarDB 数据库性能大赛

"文件存储、高效的 KV 存储引擎"

第一届天池 PolarDB 数据库性能大赛 这次天池 PolarDB 数据库性能大赛竞争相当激烈,眼睛一闭一睁成绩就会被血洗,最后榜单成绩是第三名,答辩翻车了,最终取得了大赛季军。云计算领域接触的是最前沿的技术,阿里云的 PolarDB 作为云原生数据库里程碑式的革新产品,也为这次比赛提供了最先进的硬件环境。 整个比赛获益良多,体会比较深的两点: 为了充分使用新硬件, 榨干硬件的...

天池中间件大赛——单机百万消息队列存储分享

"单机百万小队列、文件存储"

天池中间件大赛——单机百万消息队列存储分享 这次天池中间件性能大赛初赛和复赛的成绩都正好是第五名,本次整理了复赛《单机百万消息队列的存储设计》的思路方案分享给大家,实现方案上也是决赛队伍中相对比较特别的。 赛题回顾wangyapu.iocoder.cn 实现一个进程内的队列引擎,单机可支持100万队列以上。 实现消息put、get接口。 在规定时间内完成数据发送、索引校检...

天池中间件Golang版Service Mesh思路分享

"Service Mesh for Dubbo (Golang)"

天池中间件大赛Golang版Service Mesh思路分享 这次天池中间件性能大赛初赛和复赛的成绩都正好是第五名,出乎意料的是作为Golang是这次比赛的“稀缺物种”,这次在前十名中我也是侥幸存活在C大佬和Java大佬的中间。 关于这次初赛《Serviwangyapu.iocoder.cnce Mesh for Dubbo》难度相对复赛《单机百万消息队列的存储设计》简单一些,最终成绩是...

系统性能优化系列1——定位系统层面问题

"性能问题定位的常用方法"

系统优化总结 之前组内一位大佬分享了一些关于系统性能优化方面的干货,这里我将它整理成文并且加入自己平时常用的一些工具和技巧。由于关于系统性能优化涉及的内容非常多,我会分几篇文章来分享。这次分享下定位系统层面问题的常用方法。 系统性能定义 Throughout 吞吐量 (系统每秒钟可以处理的请求数) Latency 延迟 (系统处理一个请求的延迟) Usage 资源利用率...

读书笔记 —— 你的灯亮着吗

"发现问题的真正所在"

读书笔记 —— 你的灯亮着吗 问题是什么 问题: 没有人会读序言。 解决方法: 把序言作为第 1 章。 解决方法带来的新问题: 第 1 章很无聊。 新的解决方法: 删了第 1 章,把第 2 章作为第 1 章。 先问自己几个问题再给出答案也许是更明智的做法。这是什么类型的问题?谁碰到了问题?问题是什么?或者说,此时此刻,问题的本质是什么? ...

Nginx内存池管理

"内存池数据结构和操作"

Nginx的内存池管理 内存池工作原理 nginx以并发能力强,占用内存少著称,实现代码简洁精妙。 nginx内存池的基本思想是预先分配一大块内存作为内存池,小块内存申请和释放从内存池中分配,大块内存另外进行分配。分配的内存块地址会进行内存对齐,提高IO效率。 优点: 将大量小内存的申请聚集到一块,比malloc更快。 减少内存碎片,防止内存泄漏。...

Nginx的前端负载均衡

"竞争问题、worker负载均衡、惊群问题"

Nginx的前端负载均衡 进程模型 nginx进程模型图: nginx采用多进程的方式,nginx启动后一个master进程管理多个worker进程,一般worker进程个数会设置和cpu核数一样。 master进程接收外界信号,发送信号各个worker进程,并监控各个worker进程的运行状态。如果有worker进程异常挂起或者退出,maste...

理解Nginx连接池

"配置、连接池数据结构、工作原理"

Nginx连接池 配置 worker_processes 12; events { use epoll; worker_connections 2048000; } 在linux系统中,每一个进程能够打开的文件描述符fd是有限的。通过ulimit -n,可以得到一个进程所能够打开的fd的最大数,因为每个socket连接会占用掉一个fd,所以这也会限制...

Nginx特性简介

"四层负载和七层负载区别、性能对比、业界使用等"

Nginx特性简介 四层负载和七层负载区别 四层负载:基于IP+端口的负载均衡 通过虚拟IP+端口接收请求,然后再分配到真实的服务器。通过三层的VIP和四层的端口号来判断哪些流量需要做负载均衡,对需要处理的流量进行NAT处理,转发至后台服务器,并记录下这个TCP或者UDP的流量是由哪台服务器处理的,后续这个连接的所有流量都同样转发到同一台服务器处理。 七层负载:基于URL等应用层信息...