共享线程池实现思路

0 背景

开放平台的网关处于ISV(外部第三方服务商)和内部业务之间,在网关层面会调用不同的内部业务方,而内部业务方由不同的业务技术团队提供,不同的业务接口性能有不同,稳定性也不同。因此要屏蔽掉不同业务接口相互影响,以及对开放平台网关的影响。

为了提升网关的稳定性需要从以下两点着手:

http请求异步化。这种方式可以将容器的accept线程池与业务处理线程池隔离,避免业务处理时间过长导致拒绝网络请求。主流的实现主要有:

servlet 3 中的异步servlet,和jetty中 Continuation

NIO,最新的zuul 2 是这种方式。

在这里不多做讨论,后......

连接池实现小结

在实际工作中充满了连接池的使用,如JDBC连接池、JDBC连接池、jedis中连接池、http连接池以及tcp连接池等等,几乎需要使用连接的地方都会出现连接池。

0 为什么使用连接池

每次连接都需要经历建立连接(connect)->通信->关闭连接(Close),连接过程中的connect和close比较消耗系统资源。互联网绝大部分应用都是高IO的,在并发量较高时,频繁的connect和close将会成为系统的瓶颈。

连接池一般是在系统启动时初始化一批连接,当需要通行时,将从建立好的连接中找出空闲的连接用于通信,使用完毕之后再将连接放回连接池中,这样就避免了反复......

技术怎么和产品经理吵架

网上程序员和产品经理的段子很多,现实工作中程序员和产品经理吵架也成了家常便饭。时常听到程序员抱怨产品经理如何不靠谱,提的需求稀奇古怪,实现成本巨大;产品经理也经常抱怨这么简单的需求为什么程序员就一个劲的提问题,实现难度那么大,明显就是不配合,更有甚者会认为程序员是群傻子。

我还记得有次去面试,一个技术总监问我遇到产品和技术争执不下,就是要上一个需求,这时候该听谁的。问题问的比较觉得,但这也反映了很多技术的心理,在这种时候就是想有个当家作主的人。

但经过我的观察,将近90%(经验估计)情况下产品和技术的矛盾并不是不可调和的,甚至大家吵的都不是一件事情。

技术和产品到底该怎......

技术转技术管理后如何开始

现在互联网公司在选用技术管理人员时通常有种做法是在团队内部选取较为资深的开发人员,但开发人员走上管理岗位时都会很多不适应的情况。我之前在转向管理时,也参加了公司的管理培训。一般而言,公司的管理培训偏向管理手段,虽然实用但总觉缺少指导性。很多公众号里也有很多实战性的技术管理文章,但对于一个新手管理者而言,都是知道怎么做,缺少框架性的指导。

资深技术转向技术管理时该怎么做?

0 背景

美团点评的技术管理包含了技术和管理两部分:

技术方面要求要求达到了资深技术的水平,能够给团队以技术指导,是团队总技术架构师,是技术的总体负责人。这一点要求技术管理人员在技术方面也要不断精进,不可......

技术管理的放权

1. 为何要放权

每个初走上技术管理的人,之前基本都是因为技术比较强且管理能力也比较受认可,所以最终被提拔到Tech Leader(Team Leader)的位置上。因为之前的技术经历,刚做技术管理时,都会带上追求完美,避免犯错的特点,这些特点在做资深技术人员时非常有用,但作为技术管理上时,却会导致:

事事亲力亲为,因为其他人的能力基本不如自己,完成事情不如自己那么好;

在项目实施过程中,凡有可能出问题/已经出问题的点,自己都会深度参与,快速解决问题,却导致下属没有足够的机会锻炼,长久不能成长起来。

一些事情没有深度参与,出了问题之后,Leader会比较焦躁,这种情绪会带给团队......