Wang Yapu Blog

谋定而后动,知止而有得

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

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

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

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

"Service Mesh for Dubbo (Golang)"

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

系统性能优化系列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等应用层信息...

nginx的几个重要概念

"connection、request、keepalive等"

Nginx重要基础概念 connection 在core模块下有ngx_connection.h和Ngx_connection.c两个文件,从ngx_connection.h可以看到ngx_listening_s的数据结构: struct ngx_connection_s { /* 连接未使用时,data成员用于充当连接池中空闲连接链表中的next指针。当连接被使用时,...

docker和paas基础分享

"docker镜像、文件系统、paas架构设计"

Docker和PaaS的基础分享 docker基本应用 docker --help docker镜像与docker文件系统 镜像是docker的灵魂所在,也是软件交付的产品。 FROM ubuntu:14.04 ADD run.sh / VOLUME /data CMD ["./run.sh"] rootfs 容器启动时内部进程可见的文件系统视角。 union...