分布式
文章平均质量分 95
屁颠屁颠过日子
这个作者很懒,什么都没留下…
展开
-
分布式 - redis分布式锁
第一,这个方案必须要求要操作的「共享资源服务器」有拒绝「旧 token」的能力,例如,要操作 MySQL,从锁服务拿到一个递增数字的 token,然后客户端要带着这个 token 去改 MySQL 的某一行,这就需要利用 MySQL 的「事物隔离性」来做。多个 Redis 实例一起来用,其实就组成了一个「分布式系统」,总会出现「异常节点」,这是一个分布式系统「容错」问题,如果只存在「故障」节点,只要大多数节点正常,那么整个系统依旧是可以提供正确服务的。大部分要操作的资源服务器,都是没有这种互斥能力的。原创 2024-04-02 22:21:32 · 1073 阅读 · 0 评论 -
分布式 - 全局id
test_tag在第一台 Leaf 机器上是1-1000的号段,当这个号段用完时,会去加载另一个长度为step=1000的号段,假设另外两台号段都没有更新,这时第一台机器新加载的号段就应该是3001-4000。Leaf 取号段的时机是在号段消耗完的时候进行的,号段临界点的ID下发时间取决于下一次从DB取回号段的时间,并且在这期间进来的请求也会因为DB号段没有取回来,导致线程阻塞。使用redis实现;因为这种方案依赖时间,如果机器的时钟发生了回拨,那么就会有可能生成重复的ID号,需要解决时钟回退的问题。原创 2024-04-02 21:46:46 · 715 阅读 · 0 评论