核心接口必须可支持跨机房的双活容灾,client端出现问题必须可切换,并且要有降级方案;
RPC调用最好是依赖中间件JSF,这样是点对点的长连接服务,减少每次建连的开销,HTTP依赖需要经过内网的LB,增加一层代理的开销,会出现一些不可控的问题 。
随着流量不断增加,并行化遇到了瓶颈,每次请求会创建大量的线程,线程的维护和上下文切换成本本身比较消耗CPU资源,因此基于现有HttpClient和JSF基础组件的异步化支持,进一步进行异步化的改造,单机压测效果还是比较明显,并发能力提升40% 。
5. 监控
系统流量到一定程度,系统的各维度监控尤为重要,可以帮助我们缩短排查、定位问题的时间,甚至可以帮助预警风险,当前APP业务从用户到后端整个服务链条的监控都已经非常完善,包括各运营商入口流量的监控、内外部网络质量、负载均衡、以及网关流量的监控以外,我重点介绍下单品页业务层的监控,下边是业务监控系统数据异步埋点的架构,主要分为两类数据,第一业务指标数据比如单品页各渠道访问数据,通过UDP协议实时埋点到Kafka,然后storm实时在线分析形成最终需要的数据落地,另一类是大流量数据,比如系统异常信息落到磁盘日志中,然后通过logCollector异步发送到Kafka中,这类数据对磁盘IO、网卡IO的流量占比大,针对磁盘IO,会按照文件大小100M滚动生成日志文件,数据搬走之后进行删除操作,网卡IO在数据传输过程中进行了限速,按照1m/s的速度进行传输,可进行动态调整,基本对业务不产生任何影响,大促峰值期间会针对一定比例降级 。
文章插图
业务系统除了基本的服务器各项指标CPU、MEM监控,服务的性能、可用率监控以外,介绍几个比较实用的业务能力监控:
方法tree监控,一次请求在单品页SOA系统内部所经过的每一个类的方法作为结点形成这么一颗树,这棵树非常直观看到系统内部的依赖结构关系和任何一个节点的请求量的大小,如果性能、可用率、异常量、访问量出现异常可第一时间标红报警,出现任何故障可第一时间聚焦到具体某一个点上,极大提升了定位和处理故障的时间;
文章插图
异常监控,系统依赖的外部服务以及系统内部抛出的任何一条异常的堆栈信息都被异步埋点记录下来,进行实时的统计和报警,对系统健康度的把控起到至关重要的作用;
文章插图
文章插图
用户行为的跟踪,详细记录用户在什么时间做了什么事情以及当时的网络情况,方便用户出现问题时回放出问题时的现场,快速帮助用户解决问题 。
监控细节还有很多,以上几个监控手段对当前业务系统帮助非常大也是非常实用的一些能力,现在业务系统已经做到非常透明,任何人都可以清晰看到系统的健康度,并且部分服务具备通过故障自动容错的能力,对系统整体的稳定性提供了非常大的保障 。
6. 限流手段
京东APP上所有商品价格库存都是分区域的,因此很多刷子以及爬虫不断的来爬京东各区域的价格、库存和促销信息等,有一个很明显的特征就是大量刷子刷时用户登录态的占比会明显下降,因此单品页针对用户的行为实时行为数据进行分析和控制:
流量清洗能力,根据用户的pin、IP的实时分析和清洗,并可以根据已登录和未登录做不同策略;
- 小红书在线官网首页,小红书在线官网首页如何运营?
- 网站内容页优化怎么做,网站优化的3大建议?
- 京东如何开店,京东开店基本流程?
- 页面无法显示怎么办,页面无法显示如何解决?
- 京东购物车营销,如何做好京东购物车营销?
- seo首页关键词如何排名,seo首页关键词排名的4大技巧?
- 儿童页游有哪些(儿童页游很早的4款介绍?
- 网站页面布局怎么做,6个设计布局示例?
- 淘宝详情页如何制作,淘宝详情页制作方法推荐?
- 详情页制作教程,详情页制作教程思路推荐?