京东中间件应用实战_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > 京东中间件应用实战

京东中间件应用实战

 2017/12/6 13:22:38  杉枫  程序员俱乐部  我要评论(0)
  • 摘要:在互联网应用研发过程中,中间件扮演着极其重要角色,因为数据存取、服务划分、消息传递、负载均衡、DNS、CDN等等。中间件在互联网应用开发中有着重要作用,其中以微服务、数据存取、消息队列三大中间件最为重要。微服务,最早程序研发是一个大的整体,存在问题研发困难,困难主要表现在修改后程序容易导致其他模块不可用,单体程序还存在一个流量预估难题,平时还好电商大促流量突增,单体程序流量预估难度极大,而微服务一下子将问题简化多个量级,只要预估好每个人维护微服务程序就可以了。JD微服务是自己研发框架
  • 标签:应用 京东

       在互联网应用研发过程中,中间件扮演着极其重要角色,因为数据存取、服务划分、消息传递、

负载均衡、DNS、CDN等等。

       中间件在互联网应用开发中有着重要作用,其中以微服务、数据存取、消息队列三大中间件最

为重要。

       微服务,最早程序研发是一个大的整体,存在问题研发困难,困难主要表现在修改后程序容易

导致其他模块不可用,单体程序还存在一个流量预估难题,平时还好电商大促流量突增,单体程序

流量预估难度极大,而微服务一下子将问题简化多个量级,只要预估好每个人维护微服务程序就可

以了。

       JD微服务是自己研发框架,与dubbo相比整个架构设计紧凑简洁,dubbo相比设计扩展性强,

各有优劣。核心差异不大,线上有个大流量服务大促时6000万/分钟,100万qps 150台4核16G容

器。dubbo是阿里开源好东西,对业界微服务化极大推动,感谢开源,dubbo能够支持千万级、亿

级每分钟掉用量处理,是极其优秀框架,最近又重启更新,需要用到微服务的可以放心用起来。

       微服务本身客户端实现软负载均衡,节省大量硬件作为负载均衡使用,缺点也是有的,微服务

横向扩展容易,纵向也能够方便分层,但尽量不能分太多层,因为每层均存在网络耗时。

       记得app首页入口图初版服务,单个容器规格4核8G内存50G硬盘,但个容器能处理请求10万/

分钟,而且还可以加量继续压,轻轻松松完成c100k处理。

       数据存取,存储读取是应用程序永恒主题,分布式缓存redis这篇文章介绍过大型电商互联网架构中redis运用,

redis内存缓存是快,天下武功唯快不破,但是内存目前还是极其昂贵资源,分布式文件系统,Google

大数据三架马车之一bigtable,能支撑Google搜索引擎对于网页存储与检索,感兴趣也可进行研究使用,

遗憾是google未开源,但百度开源了分布式文件系统BFS对应HDFS、以及分布式数据库TERA对应

bigtable,据官方公开文档查询性能在10ms以下,进行参数设置性能能到1ms。

       消息队列,消息队列在为复杂程序节藕,大公司不同部门系统、模块之间数据通讯,移动端数据上

报等多个重要流程,均离不开他,在数据通讯传输占有核心地位。

       清晰记得新浪微博,在初期有一段时间点赞时响应极其慢,最尴尬的事还经常失败,用户体验极差,

简直让用户抓狂,后来看到网上分享了解到是因为点赞包含多个流程,在原微博上点赞加一,在自己用

户上增加和这条微博点赞关系,权重计算处权重加一用于微博feed分发这条用等等逻辑,再一次需要全

走完非常慢,用消息队列节藕,点赞发消息就可以给客户端反馈成功,性能呈指数级提升,各个模块取

消息进行消费处理进行相应操作就可以了,用户体验极大提升。

       对于数据交互通信场景,了解到大数据那块数据分两块一个是离线hive表交乎一个是读取mysql或提

供微服务拉取数据交互,有前边这些还不够,因为又个需要及时增删改场景就需要消息队列进行处理,比

如评论或问答用户回答质量差这时就需要,删除消息将质量差评论、问答删除掉。对了目前各大互联网

公司用的比较多消息队列是Kafka以及ActiveMQ。

       数据上报场景,移动时代数据点击、浏览、GMV、转化率等各个指标都离不开数据埋点上报,个性

化推荐系统特征工程中数据汇总上报也离不开消息队列,上报流程一般是Storm实施消费消息数据落到大

数据HDFS、HBase等。这个过程中消息队列都是必不可少的。

       互联网公司中间件占有重要地位,对于应用快速开发,数据稳定访问,数据上报等,服务高性能、高

可用发挥着重要作用。中间件之中又以服务划分、服务治理,数据存取,消息队列中间件最为重要。

        其他中间件,例如JD本身有自己研发UMP能方便监控应用性能、可用率、容器cpu、内存、线程等多

个指标,开源比如性能监控有大众点评CAT。再有智能DNS、CDN、负载均衡lvs、haproxy等等中间件也

在互联网架构中发挥这重要作用。

        容器本身在JD也发挥着重要作用,线上服务100%在容器中,大数据spark那些据了解也在容器化进行

中。以docker代表容器化技术,cpu、内存隔离性好,网络吞吐也极高,是一种极其优秀技术。

       docker目前存在问题,大促时有些个别机器,它的服务cpu、内存占用过高影响其他容器里面服务,这

种情况备战期间要仔细观察,尽量和负载高应用避开,这种问题个人看到占比极其小,容器技术在互联网公

司目前发挥着重要作用。

        写出来记录一下,一是为后续查找方便,另外如果对读者如果遇到相应问题正在一筹莫展,文章如果能

带来一些启发那就更好了。

      扫码关注公众号

上一篇: QQ安全中心应急手机功能下线:2018年5月底全部关闭 下一篇: 没有下一篇了!
发表评论
用户名: 匿名