Loading

09 2023 档案

摘要:Protobuf Protocol Buffers是一种轻便高效的结构化数据存储格式,可用于结构化数据串行化,即序列化。适合于做数据存储或RPC数据交换格式。 优点: 序列化过程快,所需存储的字节数更少。紧凑的数据存储,快速解析向后兼容性好。跨语言兼容性好 缺点: 自解释性不好,因为存储是按二进制来 阅读全文
posted @ 2023-09-28 20:46 墨鱼yyyl 阅读(23) 评论(0) 推荐(0) 编辑
摘要:160. 相交链表 题目: 给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null 。 图示两个链表在节点 c1 开始相交**:** 思路: A链表长度为a+b,B链表长度为c+b,因此让两个指针p1,p2分别从A、B 阅读全文
posted @ 2023-09-27 19:27 墨鱼yyyl 阅读(6) 评论(0) 推荐(0) 编辑
摘要:线程池 32708534-318e-49b1-9014-ed7e7803c392 核心类 — ThreadPoolExecutor 构造方法 /** * 用给定的初始参数创建一个新的ThreadPoolExecutor。 */ public ThreadPoolExecutor(int corePo 阅读全文
posted @ 2023-09-27 09:55 墨鱼yyyl 阅读(3) 评论(0) 推荐(0) 编辑
摘要:ReentrantLock 实现了Lock接口,是一个可重入且独占式的锁,与 synchronized 关键字类似,但更加灵活。 内部类 Sync 实现了 AQS,且基于Sync实现了公平锁和非公平锁。但默认使用非公平锁。 公平锁、非公平锁原理 ReentrantLock中的Sync继承了AQS,实 阅读全文
posted @ 2023-09-27 09:47 墨鱼yyyl 阅读(11) 评论(0) 推荐(0) 编辑
摘要:垃圾回收算法解析 标记-清除算法 分为标记和清楚两个阶段: 标记:将所有不需要回收的对象进行标记清楚:将所有没有被标记的对象进行清楚 猜测:为什么是对不回收的对象标记?是因为一次垃圾回收中,很多对象都是会被清除,留下的较少,因此标记它所进行修改的语句执行的会少一些。 问题: 效率:标记和清楚两个过程 阅读全文
posted @ 2023-09-27 09:44 墨鱼yyyl 阅读(5) 评论(0) 推荐(0) 编辑
摘要:1. 安装grpc相关环境 1.1 解压缩包 将压缩包解压至某个路径即可 1.2 添加系统环境变量 然后给path增加对应的bin目录 2. python调用grpc 2.1 安装grpc库 pip install grpcio pip install protobuf pip install gr 阅读全文
posted @ 2023-09-27 09:38 墨鱼yyyl 阅读(160) 评论(0) 推荐(0) 编辑
摘要:最开始sprinboot解决跨域问题 使用的继承WebMvcConfiguer类,重写addCorsMappings方法,在CorsRegistry中设置跨域属性 @Override public void addCorsMappings(CorsRegistry registry) { regis 阅读全文
posted @ 2023-09-26 15:50 墨鱼yyyl 阅读(4) 评论(0) 推荐(0) 编辑
摘要:cron表达式语法 组成 例子:0/5 * * * * ?* cron表达式由7部分组成,每个部分由空格隔开,分别是秒(0~ 59),分(0~ 59),时(0~ 23),日期(1~ 该月最后一天), 月份(1~12),星期几(1 ~ 7,1是星期天),年份(一般空着不设置) 通用字符:*、-、/、, 阅读全文
posted @ 2023-09-26 15:48 墨鱼yyyl 阅读(21) 评论(0) 推荐(0) 编辑
摘要:SpringMVC源码解读 CORS实现解读 SpringMVC中官方推荐实现CORS的源码解读 推荐的跨域实现 @Configuration public class WebConfig implements WebMvcConfigurer { @Override public void add 阅读全文
posted @ 2023-09-26 15:46 墨鱼yyyl 阅读(53) 评论(1) 推荐(0) 编辑
摘要:工作模式 工作队列模式 work queues:一个生产者,一个消费队列,多个消费者,消费组之间是竞争关系,一条消息只能被其中的一个消费者进行消费。应用场景:对于任务过重或任务较多情况使用工作队列可以提高任务处理的速度。 发布订阅模式 在发布订阅模式中,多了一个Exchange角色,过程稍微进行变化 阅读全文
posted @ 2023-09-26 15:44 墨鱼yyyl 阅读(5) 评论(0) 推荐(0) 编辑
摘要:907.子数组的最小值之和 题目: 给定一个整数数组 arr,找到 min(b) 的总和,其中 b 的范围为 arr 的每个(连续)子数组。 思路: 贡献法,就是对于一个元素,找到以它为最小值或者最大值的一个区间,对于这个区间内每个包含该元素的子区间,它都会有一个贡献,例如:一个元素i,左区间是L, 阅读全文
posted @ 2023-09-26 15:41 墨鱼yyyl 阅读(6) 评论(0) 推荐(0) 编辑
摘要:TCP 什么是TCP 是面向连接的、可靠的、基于字节流的传输层通信协议。 面向连接:一定是一对一才能连接,不能像UDP那样一个主机同时向多个主机发送消息。可靠的:无论网络链路中出现了怎样的链路变化,TCP都可以保证一个报文一定能到达接收端。字节流:TCP报文是有序的,当前一个TCP报文没有收到的时候 阅读全文
posted @ 2023-09-26 15:40 墨鱼yyyl 阅读(19) 评论(0) 推荐(0) 编辑
摘要:缓存设计 缓存雪崩 为了保证缓存中的数据和数据库中的数据一致性,一般都会给redis的数据设置过期时间TTL,当缓存的数据过期后若用户访问的那份数据需要重写生成缓存,会查询数据库,然后更新到缓存中。 如果当大量缓存数据在同一时间过期或失效,或redis宕机,此时有大量请求无法走缓存,会打到数据库中, 阅读全文
posted @ 2023-09-26 15:35 墨鱼yyyl 阅读(56) 评论(0) 推荐(0) 编辑
摘要:持久化机制 进行持久化的方式: AOF日志:每执行一条写操作的命令,就把该命令以追加的方式写入到一个文件里。RDB快照:将某一时刻的内存数据以二进制的方式写入磁盘混合持久化方式:集成了AOF和RDB的优点 AOF日志 先执行命令再写日志的优缺点 优点: 避免了额外的检查开销:因为是在执行成功后才写日 阅读全文
posted @ 2023-09-26 15:33 墨鱼yyyl 阅读(12) 评论(0) 推荐(0) 编辑
摘要:两阶段提交 事务提交后,redo log 和bin log 都需要刷新到磁盘中,但这两个刷盘是独立的逻辑,可能出现某一个成功,另一个失败的状况。 在将redo log刷盘后,MySQL宕机,binlog没有来得及刷盘。此时在重启MySQL后,会通过redo log 将值更新,但bin log中没有这 阅读全文
posted @ 2023-09-26 15:32 墨鱼yyyl 阅读(117) 评论(0) 推荐(0) 编辑
摘要:bin log binlog文件记录了所有数据库表结构更改和编数据修改的日志。 与redo log的区别 适用对象不同:binlog是server层实现的日志,所有存储引擎都可以使用,而redo log是InnoDB实现的日志。文件格式不同:binlog有三种格式,STATEMENT(默认),ROW 阅读全文
posted @ 2023-09-26 15:31 墨鱼yyyl 阅读(17) 评论(0) 推荐(0) 编辑
摘要:MySQL日志 undo log(回滚日志):由InnoDB生成的日志,实现事务中的原子性,主要用于事务回滚和MVCC。redo log(重做日志):由InnoDB生成的日志,实现事务中的持久性,主要用于掉电等故障恢复。bin log(归档日志):由Server层生成的日志,主要用于数据备份和主从复 阅读全文
posted @ 2023-09-26 15:25 墨鱼yyyl 阅读(73) 评论(0) 推荐(0) 编辑
摘要:MVCC实现机制 mvcc的实现依赖于几个字段 表中的隐藏列: row_id:行id,没有主键和唯一列时默认生成的一个隐藏主键,有的话不生成 6字节trx_id:修改该行的事务id、roll_pointer:回滚指针,指向undo log 版本链 ReadView字段:creator_trx_id、 阅读全文
posted @ 2023-09-26 15:22 墨鱼yyyl 阅读(16) 评论(0) 推荐(0) 编辑
摘要:线程池 核心类 — ThreadPoolExecutor 构造方法 /** * 用给定的初始参数创建一个新的ThreadPoolExecutor。 */ public ThreadPoolExecutor(int corePoolSize,//线程池的核心线程数量 int maximumPoolSi 阅读全文
posted @ 2023-09-26 15:20 墨鱼yyyl 阅读(6) 评论(0) 推荐(0) 编辑
摘要:HashMap详解 get(Object key) 源码解析 public V get(Object key) { Node<K,V> e; return (e = getNode(hash(key), key)) == null ? null : e.value; } 可以看到主要是调用了 get 阅读全文
posted @ 2023-09-26 15:17 墨鱼yyyl 阅读(8) 评论(0) 推荐(0) 编辑
摘要:基于AOP实现接口防重复设计 1. 使用背景 ​ 由于客户端抖动、快速操作、网络通信或者服务器响应慢,造成服务器重复处理。防止重复提交,除了从前端控制,后台也需要控制。因为前端的限制不能解决彻底。接口实现,通常要求幂等性,保证多次重复提交只有一次有效。而对于更新操作,达到幂等性很难。 幂等性: ​ 阅读全文
posted @ 2023-09-26 15:13 墨鱼yyyl 阅读(17) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示