本文根据蔡磊于唯品会“唯享·技”分享会 2018年6月9日上海场 分享内容整理而成。
“唯享·技” 是唯品会对外分享的..。 希望以此..分享唯品会的技术研究案例与实践的结果,也能听到更多技术方向上的干货分享。
唯有分享可以让技术的脚步更快, 享受技术钻研的乐趣,在此让我们听见技术流~
本文讲师
蔡磊
任职于唯品会基础架构服务化团队,负责API Gateway/Reverse Proxy的设计与开发,性能调优与疑难杂症。在..系统与微服务架构方面技术经验积累深厚。
目录
janus背景介绍与技术选型
线程模型与优化
netty深度调优与实践
性能瓶颈快速定位工具与方法论
通用计数器实现
一个有意思的gc问题
踩坑后的代码规范总结
janus背景介绍与技术选型
先说标题中的亿级网关,我的角度是用户量亿级,tps按小时算是百亿级别以上,主要是Api网关。
我们定位为:高性能、高可用、可扩展、可管理、可治理、安全的网关产品,作为唯品会所有流量的入口。
网关价值:所有中心化控制点都可以统一控制。
我们底层技术选型从Servlet到Akka到netty。Servlet就跳过,底层性能模型差太多;用Akka 这种纯异步的方式是比较好的,但是作为网关的话,可能不算适合,它在线程模型上是有一些问题的,这块我们后面会讲到;所以现在基本上主流的是用netty来做这一块。
我们现在这块主要做一个ApiGateway,但是我们考虑到一个问题,我们唯品会这边有部分Php程序,即一些老的程序,它们现在也要容器化,并且不止是Api接口有页面存在,容器化了之后就涉及到一个问题,动态的一些发现,包括要做一个对外的统一控制,所以我们也把我们的Api网关进行了一部分裁剪,然后做了整个的一个反向代理的网关 。