![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
面试总结
文章平均质量分 92
面试总结
yangnk42
这个作者很懒,什么都没留下…
展开
-
红包场景的系统设计和实践
红包的业务场景主要是:包红包-->发红包-->抢红包-->拆红包技术和架构特点:多写少读的场景,瞬时并发量比较大,拆红包和转账可以异步执行,可以实现双缓存操作解决高并发的方案:服务多实例,按照订单号进行动态路由;实现双缓存设计,热点数据可以提前预热;红包算法在内存中进行实时计算;提升高可用的方案:利用异步机制将拆红包和转账操作异步化;利用流控和降级措施避免服务不可用的场景出现;人工干预有问题的记录;对计划内风险因素做好规划和定时处理,计划外风险因素做好演练和预案;本文由博客一文多发平台。原创 2023-10-18 09:44:00 · 251 阅读 · 0 评论 -
分库分表(4)——ShardingJDBC原理和源码分析
使用Groovy的表达式,提供对SQL语句中的=和IN的分片操作支持,只支持单分片键。ComplexShardingStrategy支持多分片键,由于多分片键之间的关系复杂,因此并未进行过多的封装,而是直接将分片键值组合以及分片操作符透传至分片算法,完全由应用开发者实现,提供最大的灵活度。对于携带分片键的 SQL,根据分片键的不同可以划分为单片路由(分片键的操作符是等号)、多片路由(分片键的操作符是 IN)和范围路由(分片键的操作符是 BETWEEN)。SQL中如果无分片字段,将执行全路由,性能较差。原创 2023-10-13 00:09:24 · 603 阅读 · 0 评论 -
分库分表(3)——ShardingJDBC实践
Apache ShardingSphere 是一套开源的分布式数据库中间件解决方案组成的生态圈,它由 JDBC、Proxy 和 Sidecar(规划中)这 3 款相互独立,却又能够混合部署配合使用的产品组成。它们均提供标准化的数据分片、分布式事务和数据库治理功能,可适用于如 Java 同构、异构语言、云原生等各种多样化的应用场景。一套开源的分布式数据库中间件解决方案。有三个产品:JDBC、Proxy、Sidecar。原创 2023-10-10 22:29:52 · 430 阅读 · 0 评论 -
分库分表(2)——动态数据源实践
当把数据库进行分布分表等集群化部署后,在应用层就需要能够随时切换访问数据源,这就需要用到动态数据源的技术。应用是通过DataSource来访问数据库的,所以动态数据源实现的技术归根结底是在能够根据情况动态切换DataSource。基于Spring提供的AbstractRoutingDataSource组件,实现快速切换后端访问的实际数据库,该类实质充当了DataSource的路由中介, 能有在运行时, 根据某种key值来动态切换到真正的DataSource上。源码分析。原创 2023-10-10 21:56:18 · 212 阅读 · 0 评论 -
分库分表理论总结
分库分表是在面对高并发、海量数量时常见的数据库层面的解决方案。通过把数据分散到不同的数据库中,使得单一数据库的数据量变小来缓解单一数据库的性能问题,从而达到提升数据库性能的目的。比如:将电商数据库拆分为若干独立的数据库,并且对于大表来说也拆分为若干小表,通过这种数据库拆分的方法来解决数据库的性能问题。数据库分布式核心内容无非就是数据切分(Sharding),以及切分后对数据的定位、整合。原创 2023-10-06 16:11:30 · 357 阅读 · 1 评论