分享我在第十届GOPS的PPT《百万并发下Nginx的优化之道》

分享我在第十届GOPS的PPT《百万并发下Nginx的优化之道》

非常荣幸参加已经举办了十届的GOPS。我在架构及高可用专场分享,并担任出品人及主持人。

本次会议地点在上海光大会展中心,我在大会场超级五分钟里演讲的内容只是PPT的前5页。这次我想分享的是C10M问题在Nginx上的应用。优化从来都是一个持续过程,所以最需要的是方法论。我会从硬件、集群到单机软件的优化作一个系统的阐述,希望可以把我的心得有效的传达给大家。

PPT我分为四个部分,分别是方法论概述、一个请求在Nginx中是如何被处理的、应用层优化、系统层优化。其中第二部分我更希望用一种感性的方式,为后面的内容作好铺垫。

以下只列出我在专场分享中的PPT正文:[……]

阅读全文

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

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

我们选购电脑时,CPU处理器的配置会有缓存大小,它是CPU性能的重要指标。

为什么呢?因为CPU计算速度与访问主存速度非常不匹配!

先来看计算速度。单颗CPU计算速度目前在2GHz-4GHz之间,以2.5GHz计即每秒钟计算25亿次,每个时钟周期耗时1/2.5GHz==0.4纳秒。当前所有的计算机都遵循冯诺依曼结构,所以执行任何指令(例如加法操作)的流程必然遵循下图:

所以,做一次加法的指令是由多个时钟周期组成的(如取指令和数字、放入寄存器、执行ALU、将结果写回主存),做ALU执行指令仅需要1个时钟周期,而取指令或者取数据、回写结果数据就需要与主存打交道了。[……]

阅读全文

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

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

前端与后端的思维专注点很不相同,前端聚焦在如何把内容以可视化的方式展现给用户,后端聚焦在如何利用IT基础设施实现业务逻辑。所以前端参与后端开发时(全栈工程师必备!)首先需要理解后端会做哪些事,其次才是如何才能做好这些事。

所谓“利用IT基础设施实现业务逻辑”,意味着以下几个概念:

  • IT基础设施有哪些?

数据库一定是最重要的,这里特指关系数据库,例如mysql。因为前端所用的数据库往往非常简单,浏览器或者APP毕竟只服务于一位用户,而后端的数据库需要服务于全部用户,这不是一个量级。在现实世界中,一旦量级发生改变,需要用到的技术就完全不一样了。数据库的基本操作ACID、事务、[……]

阅读全文

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

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

作为写了十多年代码的技术表示:产品思维比程序员们想象中重要得多!掌握了产品思维的程序员能力可以double!我把产品思维的养成要点,从我的认知上提炼了下,供大家参考。

理解产品思维前,首先需要了解产品经理是一群什么样的人;其次我们再来看产品思维的本质;再次看看程序员们的技术思维有什么特点;最后谈谈技术人员如何具备产品思维。

1、产品经理是一群什么样的人?

1)产品经理必须能保护技术人员!

需求是混乱无序的,需求有来自管理层关于公司长期目标的、有来自合作伙伴的诉求、有来自销售和市场对新客户的功能代言、有来自运营对存量用户使用体验的代言、有来自品牌对活动运营的诉求,还有来自所谓“用户”[……]

阅读全文

《风起陇西》:杰出的三国谍战小说

《风起陇西》:杰出的三国谍战小说

花了近一个月,在喜马拉雅听完了马亲王的这本《风起陇西》(之所以听了这么久,主要我对这种休闲小说都是放在晚上睡前听的。)。书不长,但情节精彩异常,对三国谜来说给了完全不同的视角。为什么喜欢三国呢?其实我的阅读入门读物就是《三国演义》,那是在初一时开始读的。在这之前,主要都是在读小人书、故事会之类的读物,呵。入门读物都是对人生影响巨大的,至少会激活基因中的很多隐藏因素:-)每次读三国,前半部分总是读的激情澎湃,反复读过10遍以上有么有,但是到白帝城刘备死后就跳跃式快进了。而这本《风起陇西》其实说得是诸葛亮二出祁山到四出祁山之间的故事,用了非常西式的写作方法,人物的对话可能会有代出感,但这不重要,因[……]

阅读全文

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

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

应百林哲笑含的邀请,于2018.6.9号至7.1号前往广州白云国际会议中心参加《CSDI Summit 中国软件研发管理行业技术峰会》。会上认识了很多互联网一线老师是最大的收获:

本次我分享的主题是《兼顾灵活与性能的nginx》:

意外的惊喜是CSDI的讲师证书非常精美:

最后附上本次演讲的PPT内容:

兼顾灵活与性能的nginx

以下为文字速录内容:

大家好,我是杭州市智链达数据有限公司的联合创始人和CTO,为什么又要介绍一下?因为我们公司是一个互联网服务企业,但是我们面向的客户是建筑企业,所以在座的各位都不是我的潜在客户,所以接下[……]

阅读全文

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

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

Raft是分布式环境下的一致性算法,它通过少数服从多数的选举来维持集群内数据的一致性。它与RBFT算法名称有点像,然而Raft算法里不能存在拜占庭节点,而RBFT则能容忍BFT节点的存在。Raft非常类似于paxos协议(参见我的这篇文章《paxos算法如何容错的–讲述五虎将的实践》),然而它比paxos协议好理解许多(因为paxos协议难以具体实现,所以zookeeper参考paxos实现了它自己的Zab算法)。同样,Raft有一个用GO语言实现的etcd服务,它的功能与Zookeeper相同,在容器操作系统CoreOS作为核心组件被使用。

本文先从算法整体上说明其特点,再细说其实现。[……]

阅读全文

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

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

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

1、区块链解决方案的特性

1.1 分布式帐本

区块链核心概念是分布式帐本,就像下面的图1所示,同样的帐本(全量的交易数据,详见下节)在任意一台节点(不包括客户端)上都有。所以,其优点是数据很难造假,造假后也可以通过追溯记录来追究法律责任。而缺点就是极[……]

阅读全文

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

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

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

1、搭建e2e_cli环境快速部署fabric的11个步骤:

1、安装docker_ce版。

如果已经安装了老版docker,请先卸载。

yum remove docker docker-common docker-sel[......]

阅读全文

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

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

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

事实上,互联网行业的项目需求从来不是静态的,项目是动态的、永远在不停迭代,所以即使你能力再好效率再高,也不可能让你处在空档期,[……]

阅读全文

浙公网安备 33010802009076号