京东大牛亲手演示,打造亿级并发高可用框架,这些“套路”请知晓

《打造高性能框架学习》脑图




因文档篇幅比较多,需要免费获取《高可用框架学习文档》的朋友 点击此处 即可免费领取资料的下载链接

01 “三大”设计原则

高并发原则主要包括了无状态原则、拆分原则、服务化原则、消息队列原则、数据异构原则、并发化原则。

高可用原则又包括了降级原则、限流原则、切换流量原则、回滚原则

业务设计原则主要含有防重设计、流程定义设计、幂设计等




02 负载均衡

负载均衡用来解决用户请求到来时如何选择upstream server进行处理,默认采用的是round-robin (轮询),同时支持其他几种算法。

  • round-robin:轮询,默认负载均衡算法,即以轮询的方式将请求转发到上游服务器,通过配合weight配置可以实现基于权重的轮询。
  • ip_ hash:根据客户IP进行负载均衡,即相同的IP将负载均衡到同一个upstreamserver。




03 隔离

隔离是指将系统或资源分割开,系统隔离是为了在系统发生故障时,能限定传播范围和影响范围,即发生故障后不会出现滚雪球效应,从而保证只有出问题的服务不可用,其他服务还是可用的。

资源隔离通过隔离来减少资源竞争,保障服务间的相互不影响和可用性。京东遇到比较多的隔离手段有线程隔离、进程隔离、集群隔离、读写隔离、快慢隔离、动静隔离等




04 使用Hystrix实现熔断机制




05 高可用框架“应用级缓存”

缓存,目的是让访问速度更快。工作机制是先从缓存中读取数据,如果没有,再从慢速设备上读取实际数据并同步到缓存。那些经常读取的数据、频繁访问的数据、热点数据、I/O瓶颈数据、计算昂贵的数据、符合5分钟法则和局部性原理的数据都可以进行缓存。




06 连接线性池

我们经常会用到池化技术,如对象池、连接池、线程池等,通过池化来减少一些消耗,以提升性能。京东常用连接线性池技术包括数据库连接池、Http连接池、线性池




07 异步并发

在常用的异步并发中,这7种并发技术是必须要掌握的。

  • 同步阻塞调用
  • 异步Future
  • 异步Callback
  • 异步编排CompletableFuture
  • 异步Web服务实现
  • 请求缓存
  • 请求合并




08 实现“扩容”

  • 单体应用垂直扩容
  • 单体应用水平扩容
  • 应用拆分
  • 数据库拆分
  • 数据库分库分表示例




09 队列

队列,在数据结构中是一种线性表,从一端插入数据,然后从另一端删除数据。常见的队列:缓冲队列、任务队列、消息队列、请求队列、数据总线队列、混合队列、Redis队列




10 高可用框架中常见的坑

  1. SSD性能差
  2. 键值存储选型压测
  3. 数据量大时JIMDB同步不动
  4. 切换主从
  5. 分片配置
  6. 开启Nginx Proxy Cache性能不升反降




《高可用性能框架核心文档》目录:


































点击此处 即可免费获取下载方式哦

学习留言

大部分成功是一个时间过程,当你以后成为架构师回望自己刚工作努力学习的模样,你会觉得很值得的。

全部评论

相关推荐

12-15 14:16
门头沟学院 Java
回家当保安:发offer的时候会背调学信网,最好不要这样。 “27届 ”和“28届以下 ”公司招聘的预期是不一样的。
实习简历求拷打
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务