canal
canal的入门 从mysql开始说起,mysql可以进行主从的配置,主节点内部有一个binlog日志是用来做持久化处理,如果是row格式下就是对应每一条记录的修改,然后主从同步可以在主节点插入后进行从节点同步操作(dump sync)。也就是开启一个线程去发送binlog日志流事件给slave节点,slave收到后同步然后完成ack,整个主从同步…
项目之大事务和长连接优化
项目之大事务和长连接优化 其实主要是连接池这一块,主流用得很多都是druid,一个阿里巴巴开源的连接池,拓展性和可靠性比较强,而spring默认采用是HikariCP,而我们项目开发也是采用这个连接池。 先讲述一下业务的场景,接收一个文件的链接,然后在方法中开启事务,但是这个文件,内容比较多,首先说下流程 对输入内容分块 内容向量化 导入到向量数据…
项目负载均衡
负载均衡技术 分类 DNS负载均衡 IP负载均衡 MAC链路层负载均衡 就是mac转发 DNS负载均衡 就是利用域名解析多个IP来实现的 一般大型网站这个是作为第一个负载均衡点,我们著名的CDN其实也是和这个思想差不多。 IP负载均衡 用的比较多,也就是中间网关,然后由网关分发,也就是我们的反向代理。 负载均衡算法 轮询 加权轮询 平滑加权轮询 随…
基于读写锁线程安全的LRU
LRU实现加载内存库 场景:基于我们目前平台有很多是数据量不大,但是并发量不低的时候,没必要去milvus走索引,直接在jvm的堆空间直接暴搜就行,减少rpc调用时间;但是这种情况只适合量少,不然会占用大量堆内存,造成GC压力;这里使用到了读写锁和concurnHashMap保证线程安全,但是其实这个场景的crud是基本没有多大并发设置,所以就使用…
k个一组翻转链表
25. K 个一组翻转链表 输入:head = [1,2,3,4,5], k = 2 输出:[2,1,4,3,5] 递归思想,一次递归翻转一个k 注意head.next得设置成下一个的头 在统计时需要获取本轮递归的最后一个元素(作为res返回,也就是翻转后的头节点)和下一个递归的头节点 // 需要保证获取到 本次递归的最后一个元素(翻转后的头元素)…
滑动窗口最大值
滑动窗口最大值 239. 滑动窗口最大值 示例 1: 输入:nums = [1,3,-1,-3,5,3,6,7], k = 3 输出:[3,3,5,5,6,7] 解释: 滑动窗口的位置 最大值 --------------- ----- [1 3 -1] -3 5 3 6 7 3 1 [3 -1 -3] 5 3 6 7 3 1 3 [-1 -3 5…
rabbitmq入门
消息队列 Visual Host 这个是一个作用域,不同的VH只能访问自己的exchange,queue,message; 每个用户都需要配置自己的VH,/是全部 工作模式 Rabbit Mq主要有6种工作模式 简单工作队列 (一个生产者一个队列) 工作队列 (一个生产者多个队列) 发布订阅 (一个生产者一个交换机一个队列) 路由 主题 RPC 交…
java函数式接口
函数式接口 函数式接口就是把代码延迟执行 这个注解表明改接口只有一个方法 @FunctionalInterface lambda就是其中一种应用 常见函数式接口 Supplier T get() Consumer void accept(T t) andThen Predicate boolean Test(T t) and or Not Func…
milvus
milvus架构篇 关键字:架构,shard,vchannel,pchannel,segment,封闭区段,增长区段,对象存储,数据**日志**快照,索引日志快照 milvus的数据结构 collection:table channel:通道(多querynode并行查询) segment:物理存储单元 patition:逻辑存储单元 官方的 结构…