12 陶辉

尚未进行身份认证

www.taohui.pub

等级
TA的排名 4k+

巧用 Nginx 实现大规模分布式集群的高可用性

本文是我对2019年GOPS深圳站演讲的文字整理。这里我希望带给各位读者的是,如何站在整个互联网背景下系统化地理解Nginx,因为这样才能解决好大流量分布式网络所面临的高可用问题。标题里有“巧用”二字,何谓巧用?同一个问题会有很多种解决方案,但是,各自的约束性条件却大不相同。巧用就是找出最简单、最适合的方案,而做到这一点的前提就是必须系统化的理解Nginx!本文分四个部分讲清楚如何达到这一...

2019-08-09 08:28:17

一文解释清楚Google BBR拥塞控制算法原理

BBR对TCP性能的提升是巨大的,它能更有效的使用当下网络环境,Youtube应用后在吞吐量上有平均4%提升(对于日本这样的网络环境有14%以上的提升):报文的往返时延RTT降低了33%,这样如视频这样的大文件传输更快,用户体验更好:不像CUBIC这种基于丢包做拥塞控制,常导致瓶颈路由器大量报文丢失,所以重新缓存的平均间隔时间也有了11%提升:在Linux4.19内核中已经...

2019-08-07 09:07:14

如何快速掌握HTTP协议?

HTTP协议极其庞杂,它影响着浏览器、爬虫、代理服务器、防火墙、CDN、Web容器、微服务等诸多方面,自身的规范却并不统一,所要面对的各类软件的新旧版本也同时存在于网络上。在这种情况下,如果对HTTP没有一个深入的理解,就很容易被各种各样的网络问题难倒。那么,如何才能快速掌握HTTP协议呢?在我看来,需要从以下四个方面入手:工欲善其事,必先利其器,首先我们先要掌握好抓包及相关的...

2019-05-12 14:56:01

为什么要出web协议这门课

我们公司有定期的分享课,好几位开发部的同学–包括android原生、JS前端、python后端–要求我分享网络协议方面的知识,我做过两场培训,一个是讲TLS/SSL协议,一个是讲HTTP协议的设计原则,结果培训完大家反馈有收获,但是太难了,收获又不是很大。我总结大家学习效果不好的原因后得出:1、必须由浅入深,才能让团队中的新人快速成长;2、必须系统化、体系化的讲解;3、必须实时配合抓包...

2019-05-06 08:34:03

《数学之美》与算法

原文链接:https://www.taohui.pub/2019/02/23/%e3%80%8a%e6%95%b0%e5%ad%a6%e4%b9%8b%e7%be%8e%e3%80%8b%e4%b8%8e%e7%ae%97%e6%b3%95/《数学之美》是一本非常好的算法进阶书,它与吴军老师从事的工作领域密切相关,所以工程性很强。半年时间断断续续读完此书,这里做个笔记,也希望能帮助还未读过本书...

2019-02-23 18:02:13

《Nginx核心知识100讲》资料

 与《深入理解Nginx:模块开发与架构解析》这本书不同,这门课只是从使用层面来讲Nginx,不会讲模块开发,不会讲源码,但会讲到Nginx架构、模块实战、性能优化(包括Linux系统)、Openresty等。课程知识点架构图如下:所有课件、编译参数、nginx.conf配置文件参见github:https://github.com/russelltao/geektime-nginx最...

2019-01-16 15:22:57

如何高效的主持会议

达利欧《原则》谈到“如果由你主持会议,应把握好对话”,深有感触,主持好会议不容易,这需要各种综合能力:时间管理、冲突管理、同理心、对企业文化的理解、集体心理学、强大的逻辑分析能力等。这里我以达利欧的建议为主线,谈谈我的个人理解。1、明确主持人及会议服务对象会议一定要以实现负责人的某个目标为目的!比如,我有一个方案,但我不确定它是否足够完备、合理,那么我的目的就是找持有不同意见的权威人士坐下...

2018-10-21 17:32:03

利用cpu缓存实现高性能程序

我们选购电脑时,CPU处理器的配置会有缓存大小,它是CPU性能的重要指标。为什么呢?因为CPU计算速度与访问主存速度非常不匹配!先来看计算速度。单颗CPU计算速度目前在2GHz-4GHz之间,以2.5GHz计即每秒钟计算25亿次,每个时钟周期耗时1/2.5GHz==0.4纳秒。当前所有的计算机都遵循冯诺依曼结构,所以执行任何指令(例如加法操作)的流程必然遵循下图:所以,做一次加...

2018-09-05 08:51:45

前端程序员如何快速转型全栈工程师(基础版)

前端与后端的思维专注点很不相同,前端聚焦在如何把内容以可视化的方式展现给用户,后端聚焦在如何利用IT基础设施实现业务逻辑。所以前端参与后端开发时(全栈工程师必备!)首先需要理解后端会做哪些事,其次才是如何才能做好这些事。所谓“利用IT基础设施实现业务逻辑”,意味着以下几个概念:IT基础设施有哪些?数据库一定是最重要的,这里特指关系数据库,例如mysql。因为前端所用的数据库往往非常简单,...

2018-09-04 07:50:14

产品思维的修炼–技术的必修课

作为写了十多年代码的技术表示:产品思维比程序员们想象中重要得多!掌握了产品思维的程序员能力可以double!我把产品思维的养成要点,从我的认知上提炼了下,供大家参考。理解产品思维前,首先需要了解产品经理是一群什么样的人;其次我们再来看产品思维的本质;再次看看程序员们的技术思维有什么特点;最后谈谈技术人员如何具备产品思维。1、产品经理是一群什么样的人?1)产品经理必须能保护技术人员!...

2018-07-25 08:15:38

CSDI2018广州关于《Nginx》的分享(附文字速录与PPT)

应百林哲笑含的邀请,于2018.6.9号至7.1号前往广州白云国际会议中心参加《CSDISummit中国软件研发管理行业技术峰会》。会上认识了很多互联网一线老师是最大的收获:本次我分享的主题是《兼顾灵活与性能的nginx》:意外的惊喜是CSDI的讲师证书非常精美:最后附上本次演讲的PPT内容:兼顾灵活与性能的nginx以下为文字速录内容:大家好,我是杭州市智链达数据有限公司的联合创始人和CTO...

2018-07-11 14:29:55

分布式环境Raft一致性共识算法解读

Raft是分布式环境下的一致性算法,它通过少数服从多数的选举来维持集群内数据的一致性。它与RBFT算法名称有点像,然而Raft算法里不能存在拜占庭节点,而RBFT则能容忍BFT节点的存在。Raft非常类似于paxos协议(参见我的这篇文章《paxos算法如何容错的–讲述五虎将的实践》),然而它比paxos协议好理解许多(因为paxos协议难以具体实现,所以zookeeper参考paxos实现了它自...

2018-06-03 16:16:32

区块链开源实现hyperledger fabric架构详解

hyperledgerfabric是区块链中联盟链的优秀实现,主要代码由IBM、Intel、各大银行等贡献,目前v1.1版的kafka共识方式可达到1000/s次的吞吐量。本文中我们依次讨论:区块链的共通特性、fabric核心概念、fabric的交易执行流程。本文来源于笔者欲对公司部分业务上链而进行培训的PPT,故图多文字少,不要怕太长。1、区块链解决方案的特性1.1分布式帐本区块...

2018-05-26 10:34:44

区块链开源实现fabric快速部署及CLI体验

本文描述fabric快速部署的步骤,及演示基于官方example02的智能合约进行CLI命令行体验。区块链涉及服务很多,且大量使用docker容器技术,所以请严格遵守以下步骤去部署,以减少各种问题的出现,方便我们先对联盟链有个大概的感觉。本文描述环境是centos7操作系统,请其他版本更正相关的安装工具(如ubuntu操作系统请把yum命令换成apt-get)。1、搭建e2e_cli环境快速部署f...

2018-05-22 09:53:41

从码农到工程师:只要做到这6点

许多程序员自称码农,因为每天事情总也做不完,而这些工作也没有给自己带来职业上的提升,总在原地打转,自己的工作似乎随时可被新人替换,可有可无。于是,年轻些的考虑着转管理或者转行,年纪大些的则被所谓的40岁危机困扰焦虑着。另一方面,有些程序员工作高效,能力出众,每当机会来临时总能获得职位上升,收入迅速的提高,个人价值的提升又从精神上给自己带来满足感,常常斗志昂扬,而这样能解决复杂问题的程序员才叫工程师...

2018-04-21 09:07:51

深入浅出人脸识别技术

在深度学习出现后,人脸识别技术才真正有了可用性。这是因为之前的机器学习技术中,难以从图片中取出合适的特征值。轮廓?颜色?眼睛?如此多的面孔,且随着年纪、光线、拍摄角度、气色、表情、化妆、佩饰挂件等等的不同,同一个人的面孔照片在照片象素层面上差别很大,凭借专家们的经验与试错难以取出准确率较高的特征值,自然也没法对这些特征值进一步分类。深度学习的最大优势在于由训练算法自行调整参数权重,构造出一个准确率...

2018-04-19 11:07:59

Udp的反向代理:nginx

在实时性要求较高的特殊场景下,简单的UDP协议仍然是我们的主要手段。UDP协议没有重传机制,还适用于同时向多台主机广播,因此在诸如多人会议、实时竞技游戏、DNS查询等场景里很适用,视频、音频每一帧可以允许丢失但绝对不能重传,网络不好时用户可以容忍黑一下或者声音嘟一下,如果突然把几秒前的视频帧或者声音重播一次就乱套了。使用UDP协议作为信息承载的传输层协议时,就要面临反向代理如何选择的挑战。通常我们...

2018-04-19 11:05:44

GIT仓库代码统计

虽然以代码行数来衡量项目或者程序员并不是一件靠谱的事,但是从统计角度看趋势对于技术管理人员还是很有帮助的!推荐一个比较好用的git仓库代码统计工具:git_stats,它用于按git提交人、提交次数、修改文件数、代码行数、注释量在时间维度上进行统计,亦可按各文件类型进行简单的统计,非常方便。实际上,这么多功能通常都是用WEB在多个页面上显示的,git_stats也是如此,它需要你先安装好ruby以...

2018-04-17 21:15:59

《见识》读书笔记:大家智慧

周末抽空在读吴军老师的《见识》,今天在读“大家智慧”章节时对商业的一些看法有所感,在此记录一二。吴军提到拉里佩奇的商业智慧是从本质中寻找商业模式。这个本质就是将有用的信息带给用户,想做到这一点其实挺难的。比如百度,你想搜索对你有用的信息,比起google来需要更多的技巧,添加更多的关键字。为什么呢?产品的商业价值在影响着这一点,百度的竞价排名里认为你需要综合考虑百度的利益,所以结果展示不会以对你有...

2018-04-07 18:08:44

详解python django面向关系数据库的ORM对象映射系统(1)

django是一套开发成本低、迭代周期快的pythonweb框架,而如mysql等关系数据库则是网站的必备组件,django通过设计一套python对象与数据库表的映射系统ORM,使得开发者不用写一行SQL语句就能实现极其复杂的关系数据库操作,特别是关联多张表的SQL操作。这让开发者的精力可以放在业务的迭代实现中,忽略SQL细节,同时提供了还不错的SQL语句性能。本文主要分析该ORM系统的实现原理及其设计思路,顺带描述python元类这个“黑魔法”。接下来,我们首先描述djangomodel的一般用法,

2017-12-18 14:09:57

查看更多

CSDN身份
  • 博客专家
勋章 我的勋章
  • 领英
    领英
    绑定领英第三方账户获取
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。