![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
分布式
文章平均质量分 55
会飞的大鱼吃小鱼
信息系统项目管理师,系统架构师,目前就职于某国企,负责后端架构设计及开发。曾就职于世界500强大型互联网公司,有5年大型互联网高并发电商系统开发、10年+后端开发架构经验,目前发表专利10余篇。
展开
-
项目引入分布式调度中心xxl-job步骤
项目引入分布式调度中心步骤1、部署管理后台【1】刷mysql脚本【2】配置配置文件:secret key + mysql 地址 + 端口号【3】部署启动2、执行器引入【1】引入core 依赖【2】配置链接后台信息:后台address + secret key + 链接端口号【3】编写job类```java/**** 〈功能详细描述〉文档同步es xxl定时任务** @author huangliang* @see [相关类/方法](可选)* @since [产品/模块版本]原创 2022-05-01 00:15:00 · 626 阅读 · 0 评论 -
redis 分布式中间件设计分析
redis 分布式中间件设计分析一、客户端bean实例化的时候1、读取配置文件,从配置文件中获取哨兵,分片等信息2、访问哨兵,根据分片masterName 从哨兵中获取主机和丛机ip及端口号数据3、依赖jedis组件,重新封装Jedis 和 JedisPool 类,使之能够根据读写策略,读的时候随机选择主机或者丛机进行读,写的时候选择主机进行写4、重新封装ShardedJedis,使其能够根据key进行分片,且采用一致性hash算法进行分片计算5、添加zk对应的配置文件节点监听,当节点数据发生变原创 2021-09-06 22:09:20 · 104 阅读 · 0 评论 -
redis分布式客户端中间件
Redis分布式一、环境搭建搭建两组shard,每组一主一从,一个哨兵【1】主机redis配置#redis.conf# Redis configuration file example.# ./redis-server /path/to/redis.conf################################## INCLUDES ####################################这在你有标准配置模板但是每个redis服务器又需要个性设置的时候很有用。#原创 2021-09-06 19:25:25 · 214 阅读 · 0 评论 -
记录一次不同接口之间并发导致的生产问题
一、问题描述:用户在购物的一个订单中使用了3000多比红包;红包是平时通过签到分享获得的,每笔几分到几毛钱。我们系统整个订单流程大概是,用户加车的时候会计算可以用多少钱的红包,并将计算结果保存在一个订单奖励明细表中,记录的状态为待处理;提交订单的时候我们会扣账户下对应的红包,并将订单奖励明细表中的状态改为已发放,提交订单的数据库操作包括扣减用户账户下的红包、更新明显表的状态为已发放,记录审计记录,记录用券资源通知记录等表,这些表的操作都是在一个事务中进行的,并且我们会判断数据库实际的更新条数和预计要跟新的原创 2021-02-02 23:15:10 · 239 阅读 · 2 评论 -
缓存穿透-布隆过滤器
布隆过滤器布隆过滤器由一个很长的bit数组和一系列哈希函数组成的概率型数据结构,布隆过滤器可以用于检索一个元素是否在一个集合中。它的优点是空间效率和查询时间都比一般的算法要好的多。布隆过滤器如何解决redis中的缓存穿透,首先也是对所有可能查询的参数以hash形式存储,当用户想要查询的时候,使用布隆过滤器发现不在集合中,就直接丢弃,不再对持久层查询。缺点是有一定的误识别率和删除困难。一、问题产生背景数据库中查询不到的数据一直穿库。 cache_key = "id:1"; cache_value原创 2020-12-30 22:45:44 · 379 阅读 · 0 评论 -
多活服务指令编排
多活服务指令编排大体的请求流转路径DNS–>防火墙–>负载均衡VIP–>应用服务器–>数据库/缓存服务器DNS–>负载均衡VIP–>应用服务器–>数据库/缓存服务器一、防火墙防火墙作为外部流量的入口,当作全链路切换时,即使是共享型系统,也需要配置防火墙的部分流量切换步骤。先暂停:暂停的机房暂停流量的引入再切换:将用户请求切换到新的机房指令类型和功能说明类别作用暂停暂停流量引入切换将用户请求切换到新机房二、IDNS原创 2020-12-07 21:47:52 · 342 阅读 · 0 评论 -
数据迁移-商品数据迁移实践
数据迁移扩展-商品数据迁移实践一、背景描述:双11前对原商品数据重新做了分库分表和数据迁移,称双11空闲做下复盘。 原来我们商品主数据在2个公共库,每个库有100张商品主数据表,大概有3亿左右的商品数据,根据商品编码进行分库分表路由, 随着商品种类不断增加原库表数量不能满足,因此需要扩充以支持20亿商品数据的量。方案是将商品数据迁移到8个查询库去,每个查询库500张商品表,因此需要将原来的商品数据进行迁移和打散。二、整个过程数据迁移过程:1、前置准备申请表扩容的磁盘空间,每个库预计需要100G原创 2020-11-12 22:03:22 · 217 阅读 · 0 评论 -
缓存热点问题解决方案
缓存热点问题解决方案问题描述:同一时间访问同一个缓存key的请求数量过高,导致某台特定的redis服务器压力过大,而其他的redis服务器没有分担到压力。举例说明:店铺活动查询的时候缓存key为店铺编码,value为店铺能够参加的活动编码信息,某个时候店铺搞活动瞬时redis访问命令数飙升,热点key 所在的redis服务器压力瞬间飙升。解决方案:1、热点数据推送到jvm内存,内存有则直接访问内存,内存不存在再去访问缓存2、加随机数,将一份redis缓存数据通过key后面加随机数的方式生成多份分别原创 2020-11-11 22:22:35 · 638 阅读 · 0 评论 -
全局唯一序号生成方案
全局唯一序列号设计方案系统唯一ID是我们在设计一个系统的时候常常会遇见的问题,也常常为这个问题而纠结。生成ID的方法有很多,适应不同的场景、需求以及性能要求。所以有些比较复杂的系统会有多个ID生成的策略。一、全局唯一ID具备下面几个特性1、全局唯一性:不能出现重复的ID2、趋势递增:按照一定规则有序递增3、单调递增:保证下一个ID一定大于上一个ID4、信息安全:特定场景下连续递增ID的安全性单调递增与信息安全两个特性是互斥的,无法同时满足分布式系统架构中,除了需要满足ID生成自身的需求外,还原创 2020-11-11 22:15:04 · 2330 阅读 · 2 评论 -
后续待更新文章
后续待更新:1、券号、活动编码、券规则编码的生成策略2、热点缓存问题解决方案3、高并发接口多级缓存设计方案4、商品主数据扩容和数据库切换方案原创 2020-11-09 23:07:27 · 80 阅读 · 0 评论 -
分布式流控介绍和实现原理
分布式流控一、功能描述控制单jvm内接口每秒钟的有效请求数二、特点1、粒度控制到接口2、阈值为单jvm阈值三、适用场景1.保护单jvm服务请求2.适用于交易链路商品维度的3.适用于浏览线4.压力在应用四、使用举例适用于自身能力的防护,无整体tps限制要求,可根据单机器请求量来控制五、实现方式同样也是通过切面的方式切入到需要做流控的接口方法前,流控的处理流程逻辑如下所示:1、先获取接口当前时间秒的本地配额对象Map<timeSecondKey, 配额对象>2、如果原创 2020-11-09 21:53:14 · 638 阅读 · 0 评论 -
全局流控介绍和实现思路
全局流控一、描述:控制集群范围内接口每秒钟的有效请求数,例如有一个500台应用的系统集群,现预测数据库集群能够支持的最大的qps是10000【通过压测来判断数据库达到瓶颈时能够支持的访问量】,接口需要访问数据库那么可以判断出系统的压力主要在数据库上,而不在应用上,因此需要对请求进行流量控制防止数据库压力过大,这个时候就可以通过全局流控来保护数据库。二、特点:1、粒度控制到接口2、阈值位接口总阈值3、支持双机房分开控制4、依赖redis服务三、使用场景:1.保护整体服务请求2.适用于流量较原创 2020-11-05 22:05:39 · 776 阅读 · 0 评论