- 博客(60)
- 资源 (2)
- 问答 (4)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Netty学习(二)概述+EventLoop+Channel+ByteBuf
netty 不是 异步io ,只是调用时候的异步 ,有事件才处理。
2022-08-17 14:22:02
610
22
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 zookeeper-常用命令,集成springboot,分布式锁实现和原理 ,dock集群zookeeper搭建,
核心思想: 当客户想要获得锁,先创建节点,使用完毕锁,删除该节点客户端获取锁时,再lock 节点下创建临时顺序节点临时:防止客户端宕机锁得不到释放,顺序:找最小节点为什么创建的是临时顺序节点: 假如创建的是默认持久的节点 ,然后Clint1获取锁便 宕机了 ,Clien1与zk 失去连接 ,但是/lock/1得不到释放。锁得不到释放!!!这种情况再redis中的解决方案是:设置TTL 过期时间。临时节点的作用:当客户端 异常跟zk断联, 临时节点会自动释放。其他节点就可以获得锁。...
2022-08-14 15:15:18
526
3
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Redis做分布式锁,redission,rediscache,redis面试等.....
1)自动锁的时间续期 (2)TTL:time to live,自动设置过期时间 ,但是一旦自己设置了超时时间,会造成锁的时间不会自动续期,从而导致 当业务时间大于 锁的时间的时候,自己的锁被释放了,但是 业务还没有执行完毕,导致 其他线程占用锁而删除,可当第一个线程业务执行完毕时候删除锁的时候,删除的是第二个锁。漏洞:当1线程在 写入往redis写缓存之前卡住了,2号线程过来直接完成了双写模式,再切换1线程对缓存进行写,则2号线程是后发生的,但是缓存写进去的确是1号线程。需要指定过期时间(ttl)....
2022-08-07 11:06:37
551
6
原创 记录一下关于新增需求关于商品下架原因
很多方法会调用商品下架这个接口,调用链路错综复杂,需求是设计一个方法,当每次调用这个下架方法的时候记录一下下架原因。
2023-06-16 08:24:07
148
原创 kafka---springboot
/ 自定义分区策略 public class MyPartitioner implements Partitioner {@Override// 将value包含 hello 的消息发送 0 号分区 if(msgValue . contains("hello")) {System . out . println("消息发送 0 号分区 ");return 0;> map) {} }生产者配置分区器。
2022-09-16 19:49:23
1154
5
原创 正则表达式--文本处理神器
{3,7} : 会按照尽量匹配多的 ,例如 a{3,7} 匹配 aaaaaaa res:aaaaaaa 而不是 aaa。在匹配某个字符串的时候是选择性的,即:既可以匹配这个,又可以匹配那个,这时你需要用到哦 选择匹配符 |定位符,规定要匹配的字符串出现的位置,比如在字符串的开始还是在结束的位置,这个也是相当有用的,必须掌握。| : 匹配“|”之前或之后的表达式 ab|cd 匹配ab或者cd。i)b)c:表示只有b不区分大小写。i)bc:表示bc不区分大小写。符号 符号 示例 解释。
2022-09-15 13:58:10
318
原创 分布式锁之防止超卖 --mysql原子操作,乐观锁,redis事务,乐观锁
性能:一个sql > 悲观锁 > jvm锁 > 乐观锁如果追求极致性能、业务场景简单并且不需要记录数据前后变化的情况下。 优先选择:一个sql如果写并发量较低(多读),争抢不是很激烈的情况下优先选择:乐观锁如果写并发量较高,一般会经常冲突,此时选择乐观锁的话,会导致业务代码不间断的重试。 优先选择:mysql悲观锁不推荐jvm本地锁。
2022-09-07 10:45:27
1838
14
原创 图书馆后记。
清晨的阳光,很明朗,陈宇跟往常一样去教室上课,今天学校里开了一门新课,关于考取法律学证书。“hi~,你是陈宇吗?”,妹子笑得很灿烂,阳光映射在她脸庞,却反射进了我的心里。陈宇迟疑了一下,努力回想眼前的女生到底是谁,“请问 ,你是?,那不是陈宇前几天在班级微信群里加的妹子吗,没想到在这里遇见了她。“叮叮叮,下课了”,陈宇准备回寝室,此刻,一个妹子挡在了他面前,老师上课讲的很认真,陈宇听课也是认真的做着笔记。“我是徐莹莹”,妹子爽朗的回答。来到班级,周围都是陌生的面孔。众所周知,时光是不可能回溯。
2022-09-05 11:08:27
200
2
原创 MySQL8高级优化,持续更新......
索引可以高效获取数据,避免对数据进行全盘扫描(查询速度很慢),索引就是一种数据结构(树)MySQL官方对索引的定义为:索引(index)是帮助MySQL高效获取数据的数据结构(有序)。在数据之外,数据库系统还维护者满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据, 这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是索引。如下面的所示 :此时的索引树是一个平衡二叉树,上图的索引树的建立就是平衡二叉树的建立。此时 查找数据就像二分查找一样了。
2022-09-05 10:44:13
1876
原创 未来:spring响应式编程 Hands-On Reactive Programming in Spring 5(三),spring事件监听
事件发送者接收到消息之后 以一个 Controller (mvc 三层架构中的controller 层)发送给 人 ,让人知道现在的温度。Temperature类 将有一个 double 属性 ,他仅仅是一个事件对象(观察者模式中的事件对象)为了模仿传感器 ,让我们实现温度传感器类 并且 注册进spring 中成为一个bean对象我们模拟的 温度计 只依赖于 ApplicationEventPublisher这个类 ,...
2022-08-31 08:58:17
1473
原创 未来:spring响应式编程 Hands-On Reactive Programming in Spring 5(二)------Basic Concepts
看完这篇文章你会有很大收获!好学近乎知,力行近乎仁,知耻而后勇.这一章节我们要来谈谈.spring响应式编程了。
2022-08-23 18:16:12
687
5
原创 RocketMq最强总结 带你rocket从入门到入土为安
消息最大重试次数的设置对相同 Group ID 下的所有 Consumer 实例有效。如果只对相同 Group ID 下两个 Consumer 实例中的其中一个设置了 MaxReconsumeTimes,那么该配置对两个 Consumer 实例均生效。配置采用覆盖的方式生效,即最后启动的 Consumer 实例会覆盖之前的启动实例的配置。...
2022-08-23 14:50:58
672
1
原创 redisson究极爽文-手把手带你实现redisson的发布订阅,消息队列,延迟队列(死信队列),(模仿)分布式线程池
基于Redis的分布式队列Queue是Redisson提供的又一个功能组件,按照不同的特性,分布式队列Queue还可以分为双端队列Deque、阻塞队列Blocking Queue、有界阻塞队列(Bounded Blocking Queue)、阻塞双端队列(Blocking Deque)、阻塞公平队列(Blocking Fair Queue)、阻塞公平双端队列(Blocking Fair Deque)等功能组件,不同的功能组件其作用不尽相同,适用的业务场景也是不一样的。>在实际业务场景中,不管是采用哪一种功
2022-08-23 12:05:56
3018
11
原创 Elasticsearch(三)高级搜索DSL
hits.max_score:score的含义,就是document对于一个search的相关度的匹配分数,越相关,就越匹配,分数也高。filter,不需要计算相关度分数,不需要按照相关度分数进行排序,同时还有内置的自动cache最常使用filter的数据。避免用户一直等待查询结果,过了超时时间可以返回已经查询完毕的数据 ,有几条给几条。query,相反,要计算相关度分数,按照分数进行排序,而且无法cache结果。_shards:到几个分片搜索,成功几个,跳过几个,失败几个。took:耗费了几毫秒。
2022-08-19 15:00:22
413
原创 Netty(三)---黏包半包,滑动窗口
这种并不好 设定接收长度为十 ,每次空余的也会被填满。虽然能解决黏包问题,但是还是不能避免半包问题。浏览器访问8080端口。
2022-08-18 20:20:30
286
原创 Elasicsearch(三)---mapping,index,分词器,数据类型等
1)往es里面直接插入数据,es会自动建立索引,同时建立对应的mapping。(2)mapping中就自动定义了每个field的数据类型(3)不同的数据类型(比如说text和date),可能有的是exact value,有的是full text(4)exact value,在建立倒排索引的时候,分词的时候,是将整个值一起作为一个关键词建立到倒排索引中的;full text,会经历各种各样的处理,分词,normaliztion(时态转换,同义词转换,大小写转换),才会建立到倒排索引中。...
2022-08-18 11:20:43
411
原创 ELK ----elasticsearch笔记增删改查等
mysql 利用乐观锁加版本号解决并发读写问题,很容易造成用户数据修改不成功。修改时external version要大于当前文档的_version。防止吞吐量大的索引影响吞吐量小的索引。索引都是在一个个分片上的。基于乐观锁和悲观锁进行解释,和java中的乐观锁悲观锁差不多。es增删改都是基于版本号的。...
2022-08-18 10:55:28
190
原创 未来:spring响应式编程 Hands-On Reactive Programming in Spring 5 ,为啥需要响应式编程
为什么 使用响应式 的spring。
2022-08-16 09:35:01
472
原创 Elastcisearch 读书笔记
表在数据库中 是独立不同的, 然而 fields 拥有相同的名字 ,字段(fields )在相同的索引里面 不同的映射类型里 是相同的假设在数据库(elsticsearch )中 你定义了一个老师(mapping) 有name(field)属性 ,定义 了学生 有name 属性 ,然后 你删了老师 name字段 ,学 生的也跟着删除了。...
2022-08-15 14:19:42
128
原创 Netty(一)基础socketchannel,Buffer,selector黏包 半包解决 实战
non-blockiong io:非阻塞阻塞vs非阻塞。> selector 就是用来监听事件的 > selector 何时不阻塞 > 1. 客户端发起请求触发 accept> 2.客户端发送数据,客户端正常 异常关闭 ,都会触发read事件,如果数据大于buffer缓冲区 会触发多次读取事件> 3.channel 可写,会触发write事件> 4.在linux发生nio bug时也会> 调用selector.wakeup> 调用seletor.close> selector所在线程in
2022-08-12 14:54:15
771
1
原创 Mongodb固定集合,实现
固定集合(capped collection)是一种限定大小的集合,其中capped是覆盖、限额的意思。跟普通的集合相比,数据在写入这种集合时遵循FIFO原则。可以将这种集合想象为一个环状的队列,新文档在写入时会被插入队列的末尾,如果队列已满,那么之前的文档就会被新写入的文档所覆盖类似于环形队列,只不过 新来的元素会覆盖之前的元素。...
2022-08-09 21:50:20
356
原创 docker学习(八)深入浅出理解 dockerFille
一条条指令参数构成的文件是构建镜像的新方法dockerFile(原材料):面向开发 -》 docker(交付品)镜像为交付标准-》 docker容器(运行态)设计部署和运维 三者不可或缺。
2022-08-09 14:40:10
566
原创 com.mongodb.mongosh.result.CommandException: unrecognized update options field: multi
在使用mongoDB批量更新文档的时候报错。一次更新多条数据updateMany。
2022-08-08 21:03:38
383
原创 docker学习(七)redis集群三主三从
这是由于hash槽算法 ,将 key 算一个数值,分配到hash槽里面去 , 但是redsi-node1 所管理的hash‘槽是有范围的,k1,算的hash槽的值不归redsi-node1 管理。redis-cli --cluster del-node ip:端口号 id。redis-cli --cluster check ip+: + 端口号。步骤: 下线奴隶节点 -》 释放他主人的槽片给别的主人-》删除他。不能使用单机版的命令,应该使用集群的命令启动reids控制台。启动两台机器 ,一主一丛。...
2022-08-08 10:05:02
222
原创 docker mysql8.0 集群主从建立
修改配置文件mysql-master (主)在/mydata/mysql-master/conf 下建立my.conf文件并改写文件建立从mysql从配置文件进入从机mysql控制台配置主从同步数据库库配置:主库配置:创建账号:create user ‘slave1’@‘%’ identified by ‘slave1’;授权:grant all privileges ON . TO ‘slave1’@‘%’;验证方式修改为上一版的:ALTER USER slave1@‘%
2022-08-06 11:52:23
271
原创 商城订单设计流程(微服务版本)
3.订单支付一定改为支付状态 ,订单只有再订单未创建状态或是 已取消状态才能解锁库存。此处的消息队列就相当于一个定时任务器。2.解锁库存一定再订单超时未支付 之后。1.解锁库存时刻注意订单状态。......
2022-08-05 20:43:08
340
原创 docker(四)docker——mysql 8解决中文乱码,设置utf-8
代码】docker(四)docker——mysql 8解决中文乱码,设置utf-8。
2022-08-05 11:18:00
1336
原创 docker学习(三)容器数据卷挂载
容器数据卷完成保存容器数据 ,容器内的数据备份持久化。类似于一个u盘中的数据docker run - it -- privileged=true - v / 宿主机绝对路径目录: / 容器内目录 镜像名将docker 中的数据 映射到主机外面。(宿主机绝对路径目录)中的数据怎么改 ,(容器内目录) 中的数据怎么改。...
2022-08-05 10:16:37
351
vue关于饿了吗ui的作用域插槽
2023-02-15
合并两个链表,将b链表插入a链表报错
2022-04-02
idea jdbc 修改时区之后还是不能连接
2022-03-18
mybatis 中Mapper.xml文件中<sql>标签报红
2022-03-03
TA创建的收藏夹 TA关注的收藏夹
TA关注的人