• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
 






lalala

 
 

Powered by 博客园
博客园 | 首页 | 新随笔 | 联系 | 订阅 订阅 | 管理

07 2023 档案

 
sychronized 原理,锁升级优化
摘要:Java 对象头 以 32 位虚拟机为例 普通对象 所以以 Integer 和 int 为例子 Integer 8字节对象头 + 4字节 int 值,所以大小是 int 的 3 倍 int 4字节 int 值 数组对象 如 Student[] s = new Student[8],还包括数组长度 l 阅读全文
posted @ 2023-07-31 23:22 archaique 阅读(97) 评论(0) 推荐(0)
分布式锁
摘要:参考: java guide:分布式锁常见实现方案总结 小林 coding: 如何用 redis 实现分布式锁的? 在多线程环境中,如果多个线程同时访问共享资源(例如商品库存、外卖订单),会发生数据竞争,可能会导致出现脏数据或者系统问题,威胁到程序的正常运行。 分布式锁是用于分布式环境下并发控制的一 阅读全文
posted @ 2023-07-31 11:32 archaique 阅读(121) 评论(0) 推荐(0)
Redis —— 事务
摘要:参考: 小林:Redis面试篇 shuxiaohua:Jedis分析一-Pipeline is currently not supported for JedisClusterConnection. java guide: Redis常见面试题总结(下) javap: Redis客户端使用技巧,Re 阅读全文
posted @ 2023-07-27 20:20 archaique 阅读(156) 评论(0) 推荐(0)
MySql —— 死锁场景
摘要:参考: 小林coding: https://xiaolincoding.com/mysql/lock/deadlock.html 出世&入世:https://blog.csdn.net/weixin_54828627/article/details/129379140 死锁的四个必要条件: 互斥 占 阅读全文
posted @ 2023-07-26 10:18 archaique 阅读(453) 评论(0) 推荐(0)
RocketMQ 生产端与消费端
摘要:参考: en_oc:RocketMQ源码详解 | Consumer篇 · 其一:消息的 Pull 和 Push 田守枝:深入理解RocketMQ Rebalance机制 官方文档:Apache RocketMQ Kong Blog: RocketMQ——4. Consumer 消费消息 ksfzha 阅读全文
posted @ 2023-07-24 17:48 archaique 阅读(461) 评论(0) 推荐(0)
MySql —— Buffer Pool
摘要:有了缓冲池后: 当读取数据时,如果数据存在于 Buffer Pool 中,客户端就会直接读取 Buffer Pool 中的数据,否则再去磁盘中读取。 当修改数据时,首先是修改 Buffer Pool 中数据所在的页,然后将其页设置为脏页,最后由后台线程将脏页写入到磁盘。 Buffer Pool 有多 阅读全文
posted @ 2023-07-23 16:39 archaique 阅读(168) 评论(0) 推荐(0)
Zookeeper
摘要:参考: java guide : https://javaguide.cn/distributed-system/distributed-process-coordination/zookeeper/zookeeper-intro.html jsongj: http://www.jasongj.co 阅读全文
posted @ 2023-07-19 13:58 archaique 阅读(65) 评论(0) 推荐(0)
Gossip 协议
摘要:参考: 凤凰架构:https://icyfenix.cn/distribution/consensus/gossip.html java guide: https://javaguide.cn/distributed-system/protocol/gossip-protocl.html Paxos 阅读全文
posted @ 2023-07-18 15:56 archaique 阅读(91) 评论(0) 推荐(0)
Multi Paxos 、Raft 、ZAB 、Quorum 算法
摘要:一、将共识问题分解为三个问题 1.选主 图一 Paxos 算法的"活锁"问题 《https://www.cnblogs.com/suBlog/p/17554677.html》 Basic Paxos 的活锁问题,两个提案节点互不相让地争相提出自己的提案,抢占同一个值的修改权限,导致整个系统在持续性地 阅读全文
posted @ 2023-07-18 15:30 archaique 阅读(356) 评论(0) 推荐(0)
Basic Paxos 算法
摘要:参考: 凤凰架构:https://icyfenix.cn/distribution/consensus/paxos.html Paxos 算法将分布式系统中的节点分为三类: 提案节点:称为 Proposer,提出对某个值进行设置操作的节点,设置值这个行为就被称之为提案(Proposal),值一旦设置 阅读全文
posted @ 2023-07-18 14:34 archaique 阅读(105) 评论(0) 推荐(0)
MyBatis Q&A
摘要:参考: 开发百宝箱:https://pdai.tech/md/framework/orm-mybatis/mybatis-overview.html 每天都要进步一点点 :MyBatis源码阅读(八) Executor执行器 1、MyBatis 分页原理 (1)逻辑(内存)分页——MyBatis 使 阅读全文
posted @ 2023-07-17 11:31 archaique 阅读(46) 评论(0) 推荐(0)
二、共享模型之管程
摘要:共享带来的问题 两个线程对初始值为 0 的静态变量一个做自增,一个做自减,各做 5000 次,结果是 0 吗? static int counter = 0; public static void main(String[] args) throws InterruptedException { T 阅读全文
posted @ 2023-07-16 17:06 archaique 阅读(39) 评论(0) 推荐(0)
CAP & BASE 理论
摘要:参考: java guide : https://javaguide.cn/distributed-system/protocol/cap-and-base-theorem.html 凤凰架构:https://icyfenix.cn/distribution/consensus/ CAP CAP 定 阅读全文
posted @ 2023-07-14 17:36 archaique 阅读(62) 评论(0) 推荐(0)
Redis 高可用 —— 集群
摘要:为什么需要 Cluster 当数据量过大时,redis 响应会特别慢。 主要是 Redis RDB 持久化机制导致的,Redis 会 Fork 子进程完成 RDB 持久化操作,fork 执行的耗时与 Redis 数据量成正相关(因为子进程会复制一份父进程的页表,数据量越多,页表越大)。 而 Fork 阅读全文
posted @ 2023-07-13 17:59 archaique 阅读(136) 评论(0) 推荐(0)
MySql —— 可重复读完全解决了幻读问题吗
摘要:参考: 小林coding: https://xiaolincoding.com/mysql/transaction/phantom.html#%E4%BB%80%E4%B9%88%E6%98%AF%E5%B9%BB%E8%AF%BB 当同一个查询在不同的时间产生不同的结果集时,事务中就会出现所谓的幻 阅读全文
posted @ 2023-07-12 23:54 archaique 阅读(799) 评论(0) 推荐(0)
LeetCode —— 子数组/子串/子序列
摘要:560. 和为 K 的子数组(前缀和计数map) 官方题解:https://leetcode.cn/problems/subarray-sum-equals-k/solution/he-wei-kde-zi-shu-zu-by-leetcode-solution/ 假设 left 到 right 下 阅读全文
posted @ 2023-07-12 21:40 archaique 阅读(183) 评论(0) 推荐(0)
LeetCode —— 哈希表
摘要:1. 两数之和 class Solution { public int[] twoSum(int[] nums, int target) { int[] result = new int[2]; Map<Integer, Integer> map = new HashMap(); for (int 阅读全文
posted @ 2023-07-12 21:15 archaique 阅读(53) 评论(0) 推荐(0)
ThreadLocal
摘要:参考: java guide : https://javaguide.cn/java/concurrent/java-concurrent-questions-03.html 阿里云开发者社区:https://developer.aliyun.com/article/1180633 Dongguab 阅读全文
posted @ 2023-07-12 16:48 archaique 阅读(26) 评论(0) 推荐(0)
LeetCode —— 买卖股票的最佳时机专题
摘要:121. 买卖股票的最佳时机 minPrice 维护到当天为止的最低价格 maxProfit 维护到当天我为止的最大利润 例如: [2,5,1,3], 第二天: minPrice=2 maxProfit=3; 第四天:minPrice=1 maxProfit=max(3, 3-1=2)=3; cla 阅读全文
posted @ 2023-07-08 21:25 archaique 阅读(30) 评论(0) 推荐(0)
LeetCode —— 贪心
摘要:55. 跳跃游戏 如果当前数字为3,代表在这一格可以跳1或2或3格 维护一个全局最远可到达的下标 maxReach 遍历 nums 数组,如果 maxReach 小于当前下标 i ,说明现在这里就不可以到达,更别说终点了,return false 接下来就是现在这个下标可以到达的情况 现在这个下标的 阅读全文
posted @ 2023-07-08 20:53 archaique 阅读(27) 评论(0) 推荐(0)
Redis 高可用 —— 哨兵
摘要:参考 码哥字节:https://xie.infoq.cn/article/1c714709d00b2b55e8416fb99 小林coding: https://xiaolincoding.com/redis/cluster/sentinel.html 锦鱼不忘旧时晨:https://blog.cs 阅读全文
posted @ 2023-07-05 17:50 archaique 阅读(121) 评论(0) 推荐(0)
LeetCode —— 图
摘要:200. 岛屿数量 695. 岛屿的最大面积 精品题解 https://leetcode.cn/problems/number-of-islands/solution/dao-yu-lei-wen-ti-de-tong-yong-jie-fa-dfs-bian-li-/ 注意深度优先遍历,对一格陆地 阅读全文
posted @ 2023-07-03 22:24 archaique 阅读(32) 评论(0) 推荐(0)
MySQL —— 为什么单表不要超过 2000w
摘要:InnoDB 采用 B+ 树存储,真正的数据行存在聚簇索引的叶子节点上 B+ 树的每个节点是一页,一页固定大小是 16k ,其中 1k 是页头,15k 是可以存放 索引/数据行 的空间 B+ 树的层数要尽可能小,以减少查找数据时磁盘 IO 的次数(磁盘 IO 很慢),实际中一般是 3 层 下面假设 阅读全文
posted @ 2023-07-03 17:41 archaique 阅读(326) 评论(0) 推荐(0)
MySQL —— 数据页与 B+ 树索引
摘要:数据页包括七个部分 在 File Header 中有两个指针,分别指向上一个数据页和下一个数据页,连接起来的页相当于一个双向的链表,如下图所示: 采用链表的结构是让数据页之间不需要是物理上的连续的,而是逻辑上的 连续。 数据页的组成: 将所有的记录 划分成几个组,这些记录包括最小记录和最大记录,但不 阅读全文
posted @ 2023-07-02 17:25 archaique 阅读(1005) 评论(0) 推荐(2)
MySQL —— 索引
摘要:参考 小林 coding : https://xiaolincoding.com/mysql/index/index_interview.html#%E4%BB%80%E4%B9%88%E6%98%AF%E7%B4%A2%E5%BC%95 可以按照四个角度来分类索引。 按「数据结构」分类:B+tre 阅读全文
posted @ 2023-07-01 22:14 archaique 阅读(110) 评论(0) 推荐(0)