01 2023 档案

摘要:一句话简述问题 AWS RDS 服务并没有官方提供 private link 的链接通路,需要手动配置。 方案设计 如图所示,需要申请规划 VPC、Subnet、Security Group RDS-MySQL Proxy NLB Private Link Service 最后通过在需要访问 RDS 阅读全文
posted @ 2023-01-28 21:45 Blue Mountain 阅读(723) 评论(0) 推荐(1) 编辑
摘要:问题描述 微服务架构越来越流行,很多系统采用了 gRPC 进行微服务间的通信,在 k8s 下,自然而然就采用 Service 来实现负载均衡。 但是在观测 gRPC 流量时,发现服务的 gRPC 流量并不均衡,极端场景下出现流量95%都集中在其中一个 server 上,登录到 server 上去观察 阅读全文
posted @ 2023-01-28 21:23 Blue Mountain 阅读(2229) 评论(0) 推荐(0) 编辑
摘要:# 分布式锁 ## 必须满足的要求 * 安全性(Safety):在任意时刻,只有一个客户端可以获得锁(排他性)。 * 避免死锁:客户端最终一定可以获得锁,即使锁住某个资源的客户端在释放锁之前崩溃或者网络不可达。 * 容错性:只要锁服务集群中的大部分节点存活,Client 就可以进行加锁解锁操作。 # 阅读全文
posted @ 2023-01-23 19:08 Blue Mountain 阅读(41) 评论(0) 推荐(0) 编辑
摘要:# 应用场景 用于描述 LBS (Location-Based Service) 的数据结构,能够存储对象的经纬度信息,并且可以进行指定经纬度点指定距离范围内的查询、排序等能力。 # 类型介绍 是一种自定义结构,使用 GeoHash 的编码方法,即二分法进行经纬度的编码。 经纬度(116.37,39 阅读全文
posted @ 2023-01-05 22:28 Blue Mountain 阅读(21) 评论(0) 推荐(0) 编辑
摘要:# 聚合统计 ## 应用场景 统计手机 App 每天的新增用户数和第二天的留存用户数 ## 解决方案 由于Set 类型可以实现并集、交集、差集等能力。所以设计一个 Set 存所有的用户 Id, 并且每天新建一个 Set 存当天访问的用户Id,然后通过并集、交集、差集的计算得出结果。 方案关键点:这些 阅读全文
posted @ 2023-01-05 22:26 Blue Mountain 阅读(24) 评论(0) 推荐(0) 编辑
摘要:# 缺陷场景 在存储的 value 值较小且数量特别多的场景下,使用 String 类型进行存储会浪费大量的空间在维护元数据上,导致内存利用率下降。 # 原因分析 * Redis 在 vaule 设计上为了支持众多数据类型,会使用 RedisObject 来记录元数据以及指向数据位置的指针,大小为 阅读全文
posted @ 2023-01-04 12:08 Blue Mountain 编辑