分布式
文章平均质量分 59
你好y
这个作者很懒,什么都没留下…
展开
-
【分布式系统案例课】计数服务之计数服务设计
用户点击观看视频,请求先辈转发到 API 网关,API 网关将请求转发到 Counting Service, Counting Service 是通过MQ Client将请求转发到MQ 的某个分区队列,在后台 Counting Consumer 消费对应的 MQ 分区的消息进行聚合运算,最终将结果写入DB。如果DB Writer 每次都到其他的DB去查询数据性能会比较慢,可以引入缓存 Enchrich Data Cache ,这个缓存可以是Redis 缓存,也可以是消费者本地嵌入式的缓存。原创 2023-07-19 14:51:33 · 356 阅读 · 2 评论 -
【分布式系统案例课】计数服务之存储设计
Sharding Proxy 本身需要高可用部署,所以前置一般需要引入负载均衡设备来支持,例如 F5 或者软件 HAProxy。Sharding 只是解决了分摊负载的问题,高可用还要用数据复制 replication ,主从复制之后还可以进一步读写分离,写入数据写到主库上,读取数据从从库上读取。然后为了满足扩展性需求,考虑对数据库进行分区存储 Sharding ,实现按需扩展。为了屏蔽Sharding 和主从复制引入的复杂性,需要引入数据库访问代理 ,访问代理可以直接以客户库的形式嵌入到应用程序中。原创 2023-07-13 14:22:20 · 247 阅读 · 0 评论 -
【分布式系统案例课】计数服务之需求收集和总架构设计
技术问题是一个比较普遍的问题,比如对头条作者的粉丝或者是对获赞进行计数。非功能需求对系统的架构和设计是非常重要的。问题一:用户点击观察视频之后,这个数量要隔多久要求被更新,是一分钟?用户点击观看一个视频,一分钟之后刷新视频,就可以看到这个视频的观看数被更新了。这个问题决定该系统是一个线下的批处理系统,还是一个实时或者近实时的处理系统。分布式系统的核心是数据,所以我们可以从数据存储开始。有两条路径:一条是写入路径,一条是读取路径。问题二:预期的99百分位请求的延迟是多少?所以这是一个近实时的最终一致的系统。原创 2023-07-13 11:29:17 · 126 阅读 · 0 评论