分布式
文章平均质量分 57
mengml_smile
我就是我 不一样的自我
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
数据一致性一分钟
如何保证Mysql数据库到ES的数据一致性原创 2024-12-19 17:22:57 · 283 阅读 · 0 评论 -
分布式事务
BASE理论(Basically Available Soft state Eventually consistent):即使无法做到强一致性,但每个应用都可以根据自身业务特点,采用适当的方式来使系统达到最终一致性。这个定理的内容是指:在一个分布式系统中、Consistency(一致性)、Availability(可用性)、Partitiontolerance(分区容错性),三者不可得兼。SAGA需要用前端组建绘制编排图之后生成json在服务中使用。AT模式(常用)需要客户端有undo_log表。原创 2024-11-19 17:32:25 · 479 阅读 · 0 评论 -
RPC一分钟
ProtoBuf是一种高效的序列化协议,相比XML或JSON等文本格式,它能更紧凑、更快地序列化和反序列化数据,从而减少网络传输的负担和提高性能。HTTP/2作为传输层:gRPC基于HTTP/2协议,利用其多路复用、头部压缩等特性,可以更高效地管理多个并发的请求和响应,减少网络延迟并提高连接的利用率。多语言支持:gRPC几乎支持所有主流编程语言,包括C++、Java、Python、Go、Ruby、C#、Node.js等,便于构建多语言微服务架构。支持身份验证机制,增强服务安全性。原创 2024-12-02 10:05:00 · 664 阅读 · 0 评论 -
手写dubbo核心
dubbo像调用本地方法一样的模式linkrpc-apiUserServiceaddUser(UserDTO) 操作:修改useridUserDTORPCCommonReqDTOString classPathString methodNameObject[] argsrpc-providermaven依赖api工程UserServiceImpladdUser(UserDTO)NetServerthreadPool变量startUp()Serv原创 2021-01-13 18:12:50 · 159 阅读 · 0 评论 -
大型分布式系统架构设计
参考文章大型分布式系统架构设计.架构图.演变原创 2021-09-10 09:23:54 · 300 阅读 · 0 评论 -
秒杀系统设计
秒杀系统涉及到的知识点:高并发,cache,锁机制基于缓存架构redis,Memcached的先进先出队列。稍微大一点的秒杀,肯定是分布式的集群的,并发来自于多个节点的JVM,synchronized所有在JVM上加锁是不行了数据库压力秒杀超卖问题如何防止用户来刷, 黑名单?IP限制?利用memcached的带原子性特性的操作做并发控制.秒杀简单设计方案如:比如有10件商品要秒杀,可以放到缓存中,读写时不要加锁。当并发量大的时候,可能有25个人秒杀成功,这样后面的就可以直接抛秒杀结束的静态原创 2020-08-10 17:52:47 · 3328 阅读 · 0 评论 -
缓存雪崩解决/缓存降级
mysql等组件最大连接数一般10000读多写少缓存 读少写多队列雪崩(获取车次有没有票)限流rearrentlock1.redis获取2.没命中加锁3.再次确认缓存是否命中4.然后在取db放入redis返回5.最后释放锁缺点粒度小concurrenthashmap<String,String> lockmap1.redis获取2.没命中加锁1.boolean lock = false; lock = lockmap.putifAbsent(seq,“.原创 2021-04-04 12:11:09 · 551 阅读 · 1 评论 -
SpringCloud各个组件实战
springroot三板斧* 依赖* 配置* 启动类注解ribbon作用1.服务发现(切分url)2.负载均衡负载均衡规则配置文件java-configpeonfeignrestemplate 写法混乱调用方维护一个interface(url和被调用方uri一致 内置ribbon动态代理自动实现)nacos自动配置 引入alibaba-nacos-config依赖 bootstrap.yml @refreshScope熔断 hy...原创 2021-03-21 22:45:24 · 270 阅读 · 0 评论 -
负载均衡
负载算法随机算法 轮询算法好的随机算法可以使选择比较均衡,但还是会出现机器性能差异导致的调用耗时不一样。优点是实现简单加权轮询 加权随机算法可以根据不同的机器性能调整不同的权重比,从而降低机器性能差异带来的问题最小时延算法根据服务调用耗时动态调整,可以达到比较好的负载均衡。缺点是实现比较复杂一致性hash算法可以使消费者始终对应一个服务提供者。缺点是实现相对复杂。同时通过优化hashcode算法和增加虚拟节点解决分布不均的问题...原创 2021-03-16 19:31:40 · 128 阅读 · 0 评论 -
接口幂等性一致性可扩展性
接口幂等性token机制 访问api成功删除redis(本身访问接口redis中存在token)数据库唯一索引redis setnx状态机 审批中/驳回/重新发起/审批通过/审批拒绝 或者 待提交/待支付/已支付乐观锁接口数据的一致性规避分布式事务——业务整合(服务整合到一个服务中)异步消息同步 将分布式事务转换为多个本地事务,然后依靠三方记录重试等方式达到最终一致性接口可扩展性不变的作为核心业务 可变的抽象接口...原创 2021-03-12 14:53:44 · 292 阅读 · 0 评论 -
分库分表
分库分表问题分页查询全局视野法(每个分片查询满足条件数据之后合并取值)业务折中 禁止跳页查询 (time字段参数传回)允许精度丢失(id取模均匀每个分片取分隔数据合并)二次查询法(1)将order by time offset X limit Y,改写成order by time offset X/N limit Y(2)找到最小值time_min(3)between二次查询,order by time between $time_min and $time_i_max(4)设置虚拟t原创 2021-02-28 17:13:39 · 131 阅读 · 0 评论 -
秒杀系统
分析瞬时高并发读(查车次查票等)多写(下单支付)少设计核心思想 漏斗型(避免直筒型系统的短板)前端遮罩定时限制点击缓存页面服务端轻重分离 抢到/到账 分离请求进队列超时未支付情况利用redis缓存真正的请求进db安全性限流业务设计上轻重逻辑分离用户分流页面简化 比如有票/无票(用户不关心多少张票)...原创 2021-02-18 16:36:45 · 252 阅读 · 1 评论 -
高并发解决方案
高并发扩容分流集群负载均衡动静分离cdn分流提速缓存 空间换时间异步 业务链上的某些业务点用户不关注稳定限流tomcat mysql redis 最大连接数几种限流方式降级原创 2020-12-31 18:21:05 · 165 阅读 · 0 评论 -
限流从零到一
限流保护服务正常使用 链接堆积过多导致整个机器(内包含多个服务)不可用开放平台(微信)防止恶意攻击实现AOP无侵入接口时间窗口请求数 服务每秒/每分钟/每天请求数 开放平台 每日2000次基于redis实现 lua脚本保证原子性(自增1和设置过期时间 否则会因cpu调度线程让周期延长 导致该访问到的被限流不能访问)平滑限流接口请求数 流量整形令牌桶redis RateLimiter(单点) lua原子性(分布式) 容量 速率(时间 现有令牌个数)漏桶mq令.原创 2020-12-31 18:19:51 · 148 阅读 · 0 评论 -
注册中心 ZooKeeper、Eureka、Consul 、Nacos
注册中心 ZooKeeper、Eureka、Consul 、NacosCAP理论 一致性 可用性 分区容错性 三者只能同时两个 不可能三个兼顾 在分布式中必须保证P 所以只看A和PZK不能保证服务可用性Leader选举 时间过长30~120sZookeeper 集群中半数以上服务器节点不可用数据存储不适用淘宝的双十一,京东的618就是紧遵AP的最好参照EurekaPeer to Peer 互相注册Eureka Server 将会注销该实例(默认为90秒 可配置)Eure原创 2020-12-02 20:26:20 · 875 阅读 · 1 评论
分享