- 博客(92)
- 问答 (1)
- 收藏
- 关注

原创 闲聊注册中心——ZK、Eureka、Sofa-Registry
文字 | jiayangchen封面图片| UnsplashClay Banks1. 写在前面最开始服务之间的调用借助的是域名,域名其实是个好东西,使用起来很方便,但所有调用请求都得...
2020-04-25 11:00:00
1126

原创 图文解析 Nacos 配置中心的实现
图文解析 Nacos 配置中心的实现本文不会贴太多源码,基本靠图片和文字叙述全文共 2582 字,预计阅读时间 12 分钟什么是 NacosNacos 是阿里发起的开源项目,地址:https://github.com/alibaba/nacos。Nacos 主要提供两种服务,一是配置中心,支持配置注册、变更下发、层级管理等,意义是不停机就可以动态刷新服务内部的配置项;二是作为命名服务...
2020-01-17 16:32:13
9003
3

原创 借 Go 语言 database/sql 包谈数据库驱动和连接池设计
1.这是公众号的第 40 篇文章2. 即使不了解 Go 语言,阅读本文也不会有障碍3. 封面图片来自Mael BALLANDonUnsplash什么是池化技术da...
2019-08-10 20:30:14
648

原创 [图文] Seata AT 模式分布式事务源码分析
推荐阅读 Seata TCC 分布式事务源码分析公众号 Young_Blog什么是 Seata AT 模式Seata AT 的使用方法第一步,增加全局事务注解第二步,配置代理数据源第三步,新建 undo_log 表Seata AT 的工作流程工作流程总览图解 AT 模式一阶段流程图解二阶段 Commit 流程图解二阶段 Rollback 流程本节小结...
2019-07-05 19:56:42
3096
7
原创 2021 年终总结
当 2021 年的日程本翻过最后一页的时候,新买的 2022 年日程本正好到货了,恍惚间又是一年,又到了写年总的时候,聊一聊今年的变化吧。先说说工作,年初基本都在准备晋升,其实之前已经晋升...
2022-01-01 21:03:42
2295
原创 2020 年终总结
因为很多事情,今年的年终总结拖到了现在,虽迟但到!每年的年终总结对我来说是个很难得的跟自己对话的机会,从里面找找做的好的,反思反思做的不好的,这个习惯肯定会坚持下去。今年的世界非常魔幻,这...
2021-03-01 19:09:24
345
原创 【译文】Implementing Raft: Part 1 - Elections
本文翻译自 Eli Bendersky 的博客原文地址见文末,翻译已获原作者许可,禁止商用译者 YoungChen封面图这是讲解 Raft 一致性协议和 Go 语言实现系列文章的第二篇,...
2021-01-15 09:00:00
608
2
原创 【译文】Implementing Raft: Part 0 - Introduction
本文翻译自 Eli Bendersky 的博客原文地址见文末,翻译已获原作者许可,禁止商用译者 YoungChen封面图这是介绍 Raft 一致性协议的系列文章的第一篇,完整的目录结构如...
2020-12-10 09:15:00
359
原创 OSTEP[13-15] Address Space And Address Translation
文 |YoungChen封面图 |ssssMultiprogramming and Time Sharing早期的操作系统设计针对内存地址空间没有提供很好的抽象,机器的物理内存中的内...
2020-10-16 19:24:41
456
原创 OSTEP[7-10] High-level Policies An OS Scheduler Employs
文 | YoungChen封面 |MatthewHenryCPU Scheduling首先假设:操作系统了解每个任务运行时间的长短,文章介绍了两类调度策略,第一类是选择执行时间最短的...
2020-07-31 19:20:03
242
原创 OSTEP[4-6]:Low-level Mechanisms Of Running Processes
文 | YoungChen封面图片 |Tandem什么是 OSTEPOSTEP 全称叫《Operating System:Three Easy Pieces》,从 virtualiza...
2020-07-25 10:07:00
394
原创 【旧文重新排版】重读 Amazon Dynamo 论文有感
文 | YoungChen封面图片 | Unsplash旧文重新排版,方便阅读本文内容不仅仅局限于 Dynamo1. 什么是 Dynamo亚马逊在业务发展期间面临一些问题,主要受限于关系...
2020-04-30 23:01:54
267
原创 【旧文重新排版】RocketMQ 分享全纪实
文 |YoungChen图片 | Unsplash为了解决之前发布的旧文排版粗糙、不易阅读的问题1. 为什么分享 RocketMQ为什么没有选择 Kafka 而是 RocketMQ 呢...
2020-04-28 08:40:00
365
原创 【旧文重新排版】借 Go 语言 database/sql 包谈数据库驱动和连接池设计
文 | jiayangchen封面图片 |Unsplash因为之前的文章感觉排版太差了,不容易阅读接下来会把一些旧文重新排版再发一下即使你不了解 Go 语言,阅读本文也不会有障碍1. ...
2020-04-26 23:27:58
528
转载 Google Summer of Code 学生申请指南
(投稿一篇 17 年写的文章划划水)本文的受众主要是想在暑假找点事情做,挣点外快的同学,亦或是想积累一下参与真实软件开发经验的同学。背景介绍Google Summer of Code[...
2020-04-02 19:16:17
1305
原创 盘点下近一年我关注的 UP 主
多事之秋,希望这个年大家过得平平安安近一年,在B站和油管关注了一批很不错的 UP 主,涉及教育、财经、摄影、旅行、电影、美食等等,这里来说说一些我觉得比较好的,如果是B站油管都有频道的,...
2020-01-21 19:15:12
947
原创 图文解析 Nacos(1) 配置中心的实现
1. 全文共 2582 字,预计阅读时间 12 分钟2. 本文不会贴太多源码,基本靠图片和文字叙述3. 这是公众号的第53 篇文章什么是 Nacos配置中心的架构Nacos 使用示例官...
2020-01-17 20:06:42
2355
1
原创 毕业一年,我的 2019,新年伊始新的开始
我的肩上是风,风上是闪烁的星群。—— 北岛《结局或开始》2019 年回想起来,聚焦在工作、学习和生活上讲的话,工作能力上有了不小的进步,离全栈工程师的目标愈发接近了,增强了面对困难的自信...
2020-01-01 16:01:41
1019
1
原创 重读 Amazon Dynamo 论文有感
本文内容不仅仅局限于 Dynamo什么是 DynamoDynamo 和 MySQL 的关系?数据分片数据分片的实现方式Redis 集群的数据分片Dynamo 的数据分片一致性哈希的改进数据复制Dynamo 的读写流程数据一致性和冲突解决Dynamo 集群成员状态监测总结参考资料什么是 Dynamo亚马逊在业务发展期间面临一些问题,主要受限于关系型数据库的...
2019-12-21 15:11:15
1490
转载 RocketMQ 分享全纪实
为什么分享 RocketMQ消息队列的组成部分RocketMQ 的架构Name Server生产组和消费者Topic 和 MessageQueueBrokerRocket...
2019-09-20 18:57:26
172
原创 再谈 InnoDB MVCC 机制
之前写过一篇 MVCC 的文章,文章里出现了一些错误容易误导阅读的同学,错误集中在 RR 生成 ReadView 的时间点不清晰和未考虑到某些情况并不能完全套用 MVCC...
2019-06-22 17:06:30
431
原创 一天半的黄山之行总结
花了一天半的时间走了一圈黄山加宏村,原以为时间会很紧张,可能会走的很累,结果玩下来感觉时间上还是挺充裕的,就是一些行程安排上还可以再优化。本篇写一下我的行程总结,想去黄山...
2019-06-02 17:34:35
558
原创 [深度] Seata TCC 分布式事务源码分析
Seata 是什么Seata 是阿里近期开源的分布式事务框架,地址:https://github.com/seata/seata。框架包括了集团的 TXC(云版本叫 GTS)和蚂蚁金服的 TCC 两种模式,短短数月 Github 上的 star 数已经接近一万,算是目前唯一有大厂背书的分布式事务解决方案。TXC 在 Seata 中又叫 AT 模式,意为补偿方法是框架自动生成的,对用户完全屏蔽,...
2019-05-21 16:04:32
1039
原创 Seata TCC 分布式事务源码分析
Seata 是什么Seata是阿里近期开源的分布式事务框架,地址:https://github.com/seata/seata。框架包括了集团的TXC(云版本叫GTS)和蚂蚁金服的TCC两种模式,短短数月Github上的star数已经接近一万,算是目前唯一有大厂背书的分布式事务解决方案。TXC在Seata中又叫AT模式,意为补偿方法是框架自动生成的,对用户完...
2019-05-03 14:13:05
1143
原创 MySQL InnoDB MVCC 机制的原理及实现
什么是 MVCCMVCC (Multiversion Concurrency Control) 中文全程叫多版本并发控制,是现代数据库(包括 MySQL、Oracle、PostgreSQL 等)引擎实现中常用的处理读写冲突的手段,目的在于提高数据库高并发场景下的吞吐性能。如此一来,不同事务并发过程中,SELECT 操作可以不加锁而是通过 MVCC 机制读取指定的版本历史记录,并通过一些手段保证...
2019-05-01 15:18:18
757
原创 MySQL InnoDB 中的 redo/undo log
写在前面讲到 InnoDB、MVCC 等概念时,我们时常听到 redo log 和 undo log 的名字,那么二者的作用是什么呢?其实二者并非事务操作独有,索引更新时也会记录 redo/undo log,甚至记录 undo log 时也会记录 redo log,而本文聚焦于事务方面的 redo/undo log。什么是 redo logMySQL 中使用了大量内存 Cache 区域,对数...
2019-05-01 15:12:50
848
原创 InnoDB 中的 redo 和 undo log
写在前面讲到InnoDB、MVCC等概念时,我们时常听到redo log和undo log的名字,那么二者的作用是什么呢?其实二者并非事务操作独有,索引更新时...
2019-04-13 17:20:38
800
1
转载 毕业后终于来打卡的顾村公园
顾村公园从大一开始就想去的,拖了四年多终于成行,虽然是挑了清明这个人挤人的日子,不过也没办法。顾村公园临近在七号线的尾巴,从中山公园出发大概一小时左右,门票可以点评上买,...
2019-04-05 22:31:10
199
原创 MySQL 索引背后的隐藏之道
索引的 “哲学思想”我们为什么需要索引?显而易见,使用索引可以加快我们检索数据的速度,生活中书籍的目录、图书馆里的各种书架编号、号码簿上的检索页等,都少不了索引的身影。回...
2019-03-23 18:01:30
228
原创 MySQL 索引机制背后的隐藏之道
索引的 “哲学思想”我们为什么需要索引?显而易见,使用索引可以加快我们检索数据的速度,生活中书籍的目录、图书馆里的各种书架编号、号码簿上的检索页等,都少不了索引的身影。回到计算机的世界,任何一种数据结构都不是凭空产生的,一定会有它的诞生背景和解决的问题。我们先举个最简单的例子,下图是一个有序递增的数组,里面包含十个元素,没有重复。如果我想要查找元素 24 ,该怎么做呢?第一想到的自然...
2019-03-23 17:47:59
397
原创 先锋之矛 — MySQL InnoDB 中的锁
写在前面数据库本质上是一种共享资源,因此在最大程度提供并发访问性能的同时,仍需要确保每个用户能以一致的方式读取和修改数据。锁机制(Locking)就是解决这类问题的最好武...
2019-03-10 18:28:54
200
原创 MySQL InnoDB 中的锁机制详解
写在前面数据库本质上是一种共享资源,因此在最大程度提供并发访问性能的同时,仍需要确保每个用户能以一致的方式读取和修改数据。锁机制(Locking)就是解决这类问题的最好武器。首先新建表 test,其中 id 为主键,name 为辅助索引,address 为唯一索引。CREATE TABLE `test` ( `id` int(11) NOT NULL AUTO_INCREMENT, ...
2019-03-10 18:19:18
286
原创 概述!MySQL InnoDB 存储引擎
InnoDB 存储引擎MySQL得益于开放的可插拔设计,允许替换不同的底层存储引擎,InnoDB就是其中的代表,最初由第三方公司开发后被Oracle收购,是OL...
2019-03-09 16:49:45
199
原创 Thread setUncaughtExceptionHandler
setUncaughtExceptionHandler 用于获取线程运行时异常线程在执行时是不能抛出 checked 异常的,IDE 只会提示你用 try-catch 包裹起来。因此主线程无法直接获取子线程的线程信息,而每个 Thread 可以通过 setUncaughtExceptionHandler 注册一个回调接口setUncaughtExceptionHandlerpublic cl...
2019-03-01 19:50:25
1877
原创 基于 “不可变类” 实现一个线程安全的 Integer 计数器
ImmutableIntegerCounter// final 修饰,不能继承public final class ImmutableIntegerCounter { // final 修饰,不允许其他线程对其更改 private final int initial; public ImmutableIntegerCounter(int initial) { ...
2019-02-28 19:52:03
566
原创 用 Wait 和 Notify 实现 “生产者-消费者” 模型
生产者-消费者模型import java.util.LinkedList;import java.util.concurrent.TimeUnit;public class ProducerConsumer { public static void main(String[] args) throws InterruptedException { final i...
2019-02-27 20:11:36
475
原创 详解 Java 中的 Wait 和 Notify 机制
写在前面Wait 和 Notify 是 Java 面试中常见的问题,但是在平时工作中可能不常见到。大家或多或少知道些背景知识,例如二者均为 Object 类的方法,而不是 Thread 特有的(因为锁是每个对象都具有的特性,因此操作锁的方法也紧跟对象,没毛病),且都只能在同步代码块中调用(即前提是先获得对象的监视器锁,一般来说在 synchronized 代码块中使用),否则抛出异常 Illeg...
2019-02-26 20:09:42
2709
1
原创 你需要知道的,缓存架构的设计和常见问题
缓存架构的设计缓存层通常架设在 DB 和业务逻辑层之间,核心功能就是从DB生成一条缓存数据,可以在后续若干次查询请求过程中不再访问DB,请求在缓存层直接命中后返回,从而可以达到加快访问速度的作用,同时也能在流量暴增时充当保护层防止DB被打垮。缓存的引入虽然有优势,但也会带来一些问题,例如缓存穿透、缓存雪崩等,所以哪些场景适合使用缓存需要斟酌。读多写少的场景是很适合的,可以显著降低 DB 的压力...
2019-02-23 15:07:55
321
原创 回顾《深入理解 Java 虚拟机》之线程安全与锁优化
什么叫线程安全我之前面试的时候就被问到过这个问题,其实说几句话描述下线程安全估计谁都能做到,问题是如何下一个准确的定义呢?书中选取了 Brain Goetz 的定义:当多线程访问同一个对象时,如果不用考虑这些线程在运行时环境下的调度和交替执行,也不需要进行额外的同步,或者在调用方进行任何其他的协调操作,调用这个对象的行为都可以获得正确的结果,那么这个对象就是线程安全的通俗来讲,就是我们作...
2019-02-17 17:28:55
299
空空如也
请问类似微信右上角这样的菜单,文字前怎么加上图标
2016-08-20
TA创建的收藏夹 TA关注的收藏夹
TA关注的人