中间件
文章平均质量分 77
今天例外
这个作者很懒,什么都没留下…
展开
-
【图解】redis主从同步流程——全量同步、部分同步、命令传播
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、全量同步二、增量同步三、命令传播总结前言本文主要介绍Redis高可用下的主从同步问题,包括全量同步、部分同步、命令传播。注意一点:Redis同步是异步同步,因为redis在处理了客户端的命令之后,会立刻返回给客户端结果,而后才会进行主从同步,所以redis主从同步和客户端请求不是同步的。一、全量同步PSYNC <runid> <offset> 命令:PSYNC: redis2.8以.原创 2022-03-31 02:15:32 · 27077 阅读 · 2 评论 -
【图解】Redis的持久化方案—RDB持久化、AOF持久化、AOF重写
Redis的持久化方案(冷备):RDB和AOFRDB:Redis Dump Binary,把当前进程数据生成快照保存到硬盘的过程,触发RDB分为自动和手动两种方式。手动触发:手动触发的命令:save和bgsave,两个命令都可以触发生成快照生成RDB文件,但是有区别:save:阻塞Redis的服务器进程直至RDB文件创建完成bgsave:会由Redis主进程fork出来一个子进程,子进程会把数据集先写入临时文件,写入成功之后,再替换之前的RDB文件,用二进制压缩存储,保证RDB文件始终存储的原创 2022-03-28 18:01:50 · 22380 阅读 · 0 评论 -
集群模式下RedisTemplate使用Scan命令全节点模糊匹配key
为什么需要模糊匹配key?因为有时候,缓存的key设计的不合理,比如商品信息的缓存设计成:门店编码+商品id,当我们需要查询一个门店下的所有商品缓存的时候,可能就需要获取这个门店编码下的所有商品信息的key然后遍历获取门店下的所有商品。为什么使用Scan?因为Keys是阻塞的,严重影响性能,官方不建议生产环境使用,取而代之的是Scan命令。Scan命令怎么使用呢?语法:scan cursor [MATCH pattern] [COUNT count]语法说明:[]里面的代表.原创 2021-08-20 17:35:58 · 27904 阅读 · 4 评论 -
ES和SQL查询对比 多字段组合条件查询
SQL:select * from tableName where (province = '河南' and age = 25) or (province = '河北' and age = 26)ES:{ "from": 0, "size": 10, "query": { "bool": { "filter": [ { "bool": { "should": [ { "bool": { "m原创 2021-08-19 11:38:55 · 23059 阅读 · 1 评论 -
Redis Scan模糊搜索key并批量删除key
脚本如下:eval "redis.replicate_commands(); local resp = redis.call('SCAN', 0, 'MATCH', 'md:v2:prdGp*', 'COUNT', 1000000); local datalist = resp[2]; for i=1, #datalist do redis.call('DEL',datalist[i]) end" 0命令解释:md:v2:prdGp* 就是要模糊匹配的key, 如果需要替换即可使用方式:.原创 2021-04-25 17:42:55 · 23109 阅读 · 0 评论 -
RedisSet缓存List数据并设置过期时间——Lua实现
RedisSet缓存List数据操作并设置过期时间—Lua脚本实现工作中自己开发需要,现有的工具不能满足,于是自己定制了一套批量缓存List内容数据,而不是将整个List作为一个value缓存,并且删除原有的数据,同时设置过期时间,定义方法内容 /** * @description 批量缓存List数据,并且删除原有的数据,同时设置过期时间 * @param clazz List的数据泛型 * @param duration 过期时间 单位/秒 * @a原创 2021-04-22 17:06:39 · 26197 阅读 · 0 评论 -
最详细的分库分表Demo—springboot_shardingjdbc_mybatis
分库分表 — Shardingjdbc分库分表:分库分表为什么分表? 肯定是因为需要怎么进行分表?垂直分表和水平分表什么是垂直分表?如果表过大,垂直分表就是按照业务角度将大列分为几个表,划分的原则一般是频繁变化的分为一个表,不频繁变化的,尤其大字段,如text和blob字段这种影响io性能的划分为另外一个表中,这样就实现了垂直分表。如下图:什么是水平分表?就是将数据根据策略分到不同的表中,从而使数据均匀的分布在不同的数据库和表中,也是最常见的分表方式。如下就是将一个表分为四个表:将ds库中的o原创 2021-04-19 15:54:53 · 23035 阅读 · 2 评论 -
ES—集群架构详解
ES集群节点介绍master node:整个集群的管理者,索引管理,分片管理,以及整个集群的状态的管理,master节点是从master候选节点中选出的,成为master候选节点的方式:node.master:true 默认(true)data node:数据节点,存储主要数据,负责索引的数据的检索和聚合等操作,成为data node的方式:node.data:true 默认(true)coordinating node:协调节点,所有节点都可以接受来自客户端的请求进行转发,因为每个节点都知道原创 2021-03-19 16:39:12 · 25603 阅读 · 0 评论 -
ES-聚合查询
ES-聚合查询聚合查询aggregations—聚合,可以简写为aggs,提供了一种基于查询条件来对数据进行分桶、计算的方法。类似于 SQL 中的 group by 再加一些函数方法的操作。聚合可以嵌套,由此可以组成复杂的操作。聚合查询:大致可以分为三类:Bucketing Aggregations(分桶聚合): 聚合对象是文档,将满足条件的文档分到一个桶(组)里,这样就达到分桶的目的。// 根据年龄进行分组,小于40, 40-60, 大于60。{ "aggs": {原创 2021-03-16 10:49:13 · 24135 阅读 · 0 评论 -
RocketMQ—高级使用场景原理
Producer生产消息的过程 Producer投送消息的过程简单来说,是首先找到这个Topic对应的所有Broker的Queue,并按照投放策略, 把消息投放到对应的broker上的Queue上。Consumer消费消息的过程 同一个消费者组,里面的消费者,在进行消费的时候,比如消费的Topic一共有5个Queue,q1,q2,q3,q4,q5 这个消费者组里面有3个消费者c1,c2,c3,负载均衡下五个消费者会分轮训分配给这3个消费者, c1会监听消费q1,q4;c2监听消费q2,q5;.原创 2020-09-30 18:15:49 · 20934 阅读 · 3 评论 -
RocketMQ-名词和架构
RocketMQrocketMQ是做什么的我就不用解释了吧,以及他的背景。本文主要是为了让大家明白RocketMQ的工作原理。主要名词解释ProducerGroup由一组Producer组成TopicBrokerQueueConsumerGroup原创 2020-09-29 17:29:39 · 20164 阅读 · 0 评论 -
Apollo 配置详解
Apollo的总体架构Apollo的使用架构Apollo的不同维度的配置分类下面按照生效顺序Application在springboot的application.property定义appid这个key的value,标识该类型的应用。EnvironmentDEV(开发环境)FAT(功能测试)UAT(验收测试)PRO(生产环境)Cluster(集群)N...原创 2020-04-03 16:33:00 · 28848 阅读 · 0 评论 -
Redis数据结构和集群
RedisRedis不是简单得Key-Value存储,它实际上是一个数据结构服务器,支持不同类型的值,Redis的Key是二进制安全的,也就是说你可以用任何的二进制序列作为Key值,比如一个图片的二进制,甚至空字符串都是可以作为Key值。Redis常规数据类型介绍:常规得数据类型支持5种String:List:按照插入顺序排序的字符串元素集合,他们基本上都是链表Hash:由Field和...原创 2020-01-08 18:04:45 · 19772 阅读 · 0 评论 -
Flowable—多实例任务:会签
多实例任务 会签什么是会签?举个例子:比如我们有一个任务 可能需要多人审批,审批通过的条件可能比较多样,比如五个人审批。3个人审批过了就算过了,再或者有一个人权限比较高,拥有一票否决权。 即是其余所有人都过了,他点了个否定 就算不过了,这种就是会签。我们从上面可以清楚看到,这个流程有两个任务节点,分别是多实例任务节点,和任务2. 任务2就是普通的userTask,多实例任务1 其实也是us...原创 2019-12-31 11:07:31 · 35101 阅读 · 9 评论 -
Flowable的数据库表介绍
1. Flowable数据库表命名规则介绍ACT_RE_*’RE’表示repository(存储)。RepositoryService接口操作的表。带这个前缀的表存储的主要是一些静态信息,比如:流程的定义,和流程相关的资源(图片,规则等)。ACT_RU_*’RU’表示runtime。这是运行时的表存储着流程变量,用户任务,变量,职责(job)等运行时的数据。flowable只存储实例执行...原创 2019-12-26 16:03:51 · 21134 阅读 · 0 评论 -
分布式锁的实现—Redis(条理清晰)
实现分布式锁的必要条件:互斥性和不会发生死锁互斥性的保证:就是同时只能有一个线程注册成功获取到锁 比如 jedis.setNX(key,value):如果不存在就设置避免发生死锁:就是获得锁以后 无论这个加锁的客户端怎么样,都要最终能释放出来锁;比如 jedis.expire(key,expiretime)redis的分布式锁的实现机制就是:获得锁:多线程竞争注册相同的key并存储va...原创 2019-12-25 17:42:24 · 20085 阅读 · 1 评论 -
Eurake和Zookeeper作为服务注册中心的区别 以及CAP原则如何理解
CAP原则C: Consistency 一致性A: Available 可用性P: Partition Tolerance 分区容错性怎么理解CAP原则如果我们的系统是分布式部署,节点之间组成的网络应该是连通的,然而可能额因为一些问题导致网路无法连通,这样整个网络就分成了几块区域,这时候就形成了分区,如果你的一些数据在一个节点中保存,因为网络导致分区,没办法和其他的分区的实例进...原创 2019-12-20 17:53:08 · 20045 阅读 · 1 评论 -
Flowable——UserTask和异构的业务权限适配
UserTask无论在那个流程引擎中,UserTask都是其核心Activity之一,我们的流程或多或少都会有人参与其中,所以这篇博客主要讲解一下如何对usertask进行操作,而且最重要的是,流程引擎作为一个中间件的角色,我们的业务系统在接入的时候,会涉及到角,权限问题,比如:我们规定这个UserTask谁来操作,那些指定的人来做,直接接入我们自己单独的业务系统的权限管理进行控制。走案...原创 2019-12-04 14:34:50 · 21047 阅读 · 1 评论 -
Flowable—建模设计器等环境部署搭建
Flowable部署Flowable-Modeler为所有Flowable UI应用提供单点登录认证功能,并且为拥有IDM管理员权限的用户提供了管理用户、组与权限的功能。Folwable-IDM让具有建模权限的用户可以创建流程模型、表单、选择表与应用定义.Flowable-Admin管理应用。让具有管理员权限的用户可以查询BPMN、DMN、Form及Content引擎,并提供了许多选...原创 2019-11-28 17:40:56 · 20886 阅读 · 0 评论 -
Flowable—基本概念和重要名词解释
Flowable的使用教程Flowable的用户使用手册Flowable相关的中文官方项目Flowable工作流引擎的源代码Flowable API中的名词详解原创 2019-11-27 16:52:13 · 23567 阅读 · 0 评论 -
Kafka详解
KafKa介绍Kafka是有LinkedIn公司基于Scala语言开发的一个分布式消息系统,现已开源。Kafka 的标语已经从“一个高吞吐量,分布式的消息系统”改为"一个分布式流平台"Kafka与传统的消息系统的区别在于: - 分布式:Kafka是一个分布式系统,易于向外拓展 - 高吞吐,低延迟:能同时为生产者和消费者提供高吞吐 - 可扩展:kafka集群支持热扩展 - 持久性:消...原创 2019-10-08 15:21:10 · 20871 阅读 · 1 评论