本文共 989 字,大约阅读时间需要 3 分钟。
ISBN: 978-7-121-38505-6
推荐指数: ★★★★★ 作者:高翔龙 阅读时间: 2021-05-09 页数: 223
适合架构师阅读的书籍之一,
实战性也是有的,原理性的讲解也有。 先从问题引入,然后带入解决方案,有理有据。微服务和服务化两个概念完全一样。
集群和分布式的区别
假设你厨艺高超,声名远播,周末盛情邀请了几个小伙伴来你家聚餐,你一个人负责买菜、切菜、炒菜、上菜,这便是单机架构;而某一天更多朋友来你家做客,你发现似乎力不从心,这时你需要几个人一起帮忙,提高效率,这就是集群架构;假设你家大业大,有上百位朋友都约你家里吃饭,你会需要更多的人来协作帮忙,并且相互之间要明确职责分工,A组负责买菜,B组负责洗菜,C组负责炒菜,D组负责上菜,这就是分布式+集群架构。压测数据进行打标:URL上打标,或者在HTTP的header中打标
然后进行拦截判断,打标数据进入测试逻辑。应对高并发、大流量的常规手段:
Nginx+Lua实现接入层限流 基于时间分片削峰 基于消息队列
缓存技术
本地缓存会共享JVM有限内存资源。 off-heap(堆外内存)技术:内存数据库MapDB 高性能分布式缓存Redis 路由算法:Hash算法、Consistent Hash算法、分槽算法。 多级缓存方案:本地缓存+分布式缓存 RedisCluster模式一主多从读/写分离方案。 缓存穿透思考? Lua脚本库存减扣方案。 基于AliSQL数据库提升并发写性能读写分离
垂直分库:将原本冗余在单库中的数据表拆分到不同业务库中。 水平分库:把同一个表的数据按一定规则拆到不同的数据库中,每个库可以放在不同的服务器上。 垂直分表:大字段分出来单独成表。 水平分表:MySQL单表超过500万行读操作会成为瓶颈。写操作并不受影响。实现以上的功能需要用到Sharding中间件
常见的有:Cobar,MyCat,TDDL,Shark 分布式事务问题? 数据库HA方案.常用工具:
jps async-profiler arthas转载地址:http://dbeiz.baihongyu.com/