在 十亿数据的订单分表 里面,已经搭建了一个分库分表的项目,它可以很好的运行,看起来也很简单(只需要在application里面加入一些配置即可)
但事情肯定不会如此简单,这次再来看看分库分表带来的一些问题,以及如何去解决
在 十亿数据的订单分表 里面,已经搭建了一个分库分表的项目,它可以很好的运行,看起来也很简单(只需要在application里面加入一些配置即可)
但事情肯定不会如此简单,这次再来看看分库分表带来的一些问题,以及如何去解决
当数据量超过千万,达到亿级的时候,基本的MySQL已无法满足需求。想解决这个问题,从硬件层面可以升级更好的服务服务器比如云服务器或换更好的数据库比如postgresql,从软件层面就需要分库分表了。
这篇文章以十亿的数据量,订单表的形式来进行分库分表的学习,需要解决以下问题
MySQL的分库分表,首选的技术组件是 Apache ShardingSphere,其它的就是常规组件了
https://www.bilibili.com/video/BV1azy3BhEcZ
开始
UAT环境下,调用链路是 DubboA > DubboB > DubboC,现在在本地启动了一个服务DubboB1,如何在不修改UAT环境,让 UAT的DubboA 调用到本地的DubboB1: DubboA > DubboB1 > DubboC (PS: 网络畅通)
这其实就是一个Dubbo灰度的实践策略
https://www.bilibili.com/video/BV1Z9CJBFEX2/
Dubbo和Nacos都已经学过一些了,这期来学习一下它俩的集成。
注:Dubbo有接口级和应用级的注册方式,下面是以应用级为讲解。 Dubbo接口级和应用级注册的区别
https://www.bilibili.com/video/BV1PTWRzzE93
在 Nacos配置文件如何初始化的 里面,讲到了 NacosConfigApplicationContextInitializer,其实这里不但会做配置文件加载的初始化,还会做监听器的初始化
https://www.bilibili.com/video/BV1Zd4UzpE1X
Nacos 自定义了一个初始化的类 NacosConfigApplicationContextInitializer,继承关系如下
https://www.bilibili.com/video/BV13maZzJErs
Java开发者肯定都用过Redis做分布式锁,简单来说就是利用Redis的高性能,Redis加锁(插入一条数据),如果数据存在就说明已经被其它线程锁了,业务执行完毕后就释放锁(删除数据)。
但实际使用过程中,如果并发稍大,还是会存在一些问题,那么基于这些问题来学习分布式锁。有一个很好的开源工具 Redisson 用它来实现分布式锁可以有效的解决我们自定义锁的问题。
https://www.bilibili.com/video/BV19EapznEtX
https://www.bilibili.com/video/BV1ZUedzdEVr
昨天晚上系统从阿里云迁移到腾讯云,今天就出现MQ消息堆积。在已往的认知里,消息堆积基本上是消费者不给力,但在监控上看发现生产者消息很少,每秒也就几条,没理由消费者忙不过来。
但基于认知,还是第一时间去增加了消费者(把pod从3个节点加到了5个,队列始终是3个),过了几个小时又出现了消息堆积,这时候我们犯了第一个错误。当某个消费组的消费者数量大于队列数的时候,增加消费者其实是没用的。 可参看 RocketMQ 消费关系图
https://www.bilibili.com/video/BV163YyzbE9g
ConcurrentHashMap之所以是安全的map就是因为它在put的时候进行了锁处理,下面是整个put的过程,基本上都写了注释,看完之后可以帮助你更好的理解它的原理。