自从今年1月26号开博,打算今年好好整理一下自己这些年的技术积累,整理一些读书笔记。不为别的,只为能回看过去,不忘初心。从开博到现在也快一周了吧,说好的一周至少写两篇文章的规定呢?嗐,万事开头难,且行且珍惜吧。
京东技术解密这本书从2014年12月3号晚23点看到了2015年1月26号晚22点,小两月了。记得这本书还在京东预售的时候,很期望能早点买到,因为个人一直对互联网行业高并发高性能的系统感兴趣,尽管自己在日常工作中用到的不多,也许是受了互联网同事们的蛊惑吧,觉得这才是技术的魅力所在。anaway,看完后,觉得里当初自己的对该书的期望还是有点距离,纯技术的部分其实涉及的不算多,更多的是将京东体系的系统如何创造和升级,工程师们如何妙手回春。就我个人看来,每一个成熟互联网的背后,其系统都有一批抛头颅,洒热血的工程师甘当炮灰,用自己的青春年华推动IT建设,每个故事都是一段传奇,虽然主角不同,然后剧情雷同,也是你我这样的人可以领悟和感同身受的吧。
以下列出读完此书后我个人的一些记录和想法,整理思绪,构建体系:
- 电商平台、物流平台、技术平台、互联网金融是京东未来十年4大战略业务,个人感觉这就是IT的本质的四个方向:向上延伸人的感知和体验,向下替代可重复性劳动,向左不断提升IT自身的能力,向右实现经济价值,从这个角度来说,电商、物流、技术无可厚非,对互联网金融,也许概念可以更大一点,既然为实现经济价值,说白了就是出来卖嘛,那么一切别人需要的都可以卖,物流能力可卖、技术能力可卖、平台上的一切资源皆可卖。当然前提是要有商德。
- 京东IT管理123分为一个愿景(做中国最有影响力的技术团队),2个重点(文化(信任、分享、成长)、结构(人才结构、组织结构)),3个体系(产品体系、架构体系、管理体系(项目管理、领导力系统))。包括了目标,战略,战术,保障。
- 京东数据中心网络包含3个核心服务:CDN、负载均衡(LVS、HaProxy、Nginx)、基础网络。存储、技术、网络是云计算IAAS层的核心内容,也是IT世界的最底层要素,CDN(内容分发网络)是大型网站毕竟之路,毕竟对于非CDN的集中式部署而言,即使能通过负载均衡分摊到后端多台服务器,单一方面负载均衡本身会成为瓶颈,一方面网络压力不是单线路网络可承载的,通过CDN,分而治之,就近访问,减少向主服务器访问的压力,只是CDN的分发和同步需要后台处理,不过现在这种技术也很成熟了。负载均衡为分摊压力,对于穷怕了的互联网公司而言,一般都是用软负载,无论是二层的LVS,4层的HaProxy,还是4/7层的Nginx,但是在不差钱的金融、银行,很多还是直接用硬件负载F5,毕竟硬件省事,而且是商业软件,有成熟的服务支持。
- 对于高并发连接,通用的做法是将容器线程池独立出来处理连接,而业务处理交给后端业务线程池处理,业务线程池可以根据业务优先级设定一些预留和限制模型,即共享线程池。
- 京东交易系统架构图:
使用Nginx做负载,Redis将数据缓存提升查询效率。
- 高稳定交易系统的10大原则:
- 性能提升的几点:尽量在内存中操作、尽量减少外部服务依赖、非同步化操作异步化、开关可控降级。
- 对于涉及多业务系统的复杂流程,可以梳理出主流程和状态机,然后由主流程系统负责整体流程的调度和数据的推送。
- 京东架构升级的四个步骤:SOA服务拆分、大数据分库分表、大字段分布式存储、缓存。
- 消息中间件:(消息转发采用基于日志复制的M-S、建立多个virtualTopic,合并多次写入、一个Topic多个调阅者单独记录每一个调阅者的消费位置,实现公用一份索引和消息体)
SOA治理的七大招术:
- 抽象共性业务构建用于复用和系统解耦
- 服务拆分:订单号服务
- 应用层平滑迁移:按用户切流量、按百分比切;监控系统+配置管理切换系统实现新老系统快速切换
- 数据库迁移的四个阶段:同步写老,异步写新;同步写新老;异步写老;同步写新;同步写新;
- 服务框架Dubbo,通过监控系统对进行监控和动态流量保护。
- 事件驱动:一是事件触发缓存更新;事件触发调用服务;
- 流程编排:对业务事件进行解析,根据业务规则对流程进行编排,确定调用因果关系,可并发调用执行服务
京东实时计算架构如下图:
本文链接: 我读《京东技术解密》,转载请注明。