深入了解Zookeeper核心原理

2021-07-06
阅读 6 分钟
4.3k
之前的文章Zookeeper基础原理&应用场景详解中将Zookeeper的基本原理及其应用场景做了一个详细的介绍,虽然介绍了其底层的存储原理、如何使用Zookeeper来实现分布式锁。但是我认为这样也仅仅只是了解了Zookeeper的一点皮毛而已。所以这篇文章就给大家详细聊聊Zookeeper的核心底层原理。不太熟悉Zookeeper的可以回过头...

Zookeeper原理解析&使用场景详解

2021-04-21
阅读 4 分钟
3.1k
例如,Kafka中就是用Zookeeper来保存其集群中的相关元数据,例如Broker、Topic以及Partition等等。同时,基于Zookeeper的Watch监听机制,还可以用其实现发布、订阅的功能。
封面图

RocketMQ基础概念剖析&源码解析

2021-03-23
阅读 12 分钟
3.3k
Topic是一类消息的集合,是一种逻辑上的分区。为什么说是逻辑分区呢?因为最终数据是存储到Broker上的,而且为了满足高可用,采用了分布式的存储。
封面图

基于Redo Log和Undo Log的MySQL崩溃恢复流程

2021-02-05
阅读 4 分钟
7.8k
在之前的文章「简单了解InnoDB底层原理」聊了一下MySQL的Buffer Pool。这里再简单提一嘴,Buffer Pool是MySQL内存结构中十分核心的一个组成,你可以先把它想象成一个黑盒子。

深入了解MySQL主从复制的原理

2021-01-13
阅读 8 分钟
8.8k
这种方式与Redis的主从复制的思路没有太大的出入。如果你对Redis的主从复制感兴趣可以去看看《Redis的主从复制》。那既然Redis和MySQL都采用了复制这种方式,主从复制所带来的意义是什么呢?

深度图解Redis Cluster原理

2020-12-18
阅读 6 分钟
4.3k
上文我们聊了基于Sentinel的Redis高可用架构,了解了Redis基于读写分离的主从架构,同时也知道当Redis的master发生故障之后,Sentinel集群是如何执行failover的,以及其执行failover的原理是什么。

Redis基础—了解Redis是如何做数据持久化的

2020-11-10
阅读 7 分钟
2.1k
我们知道虽然单机的Redis虽然性能十分的出色, 单机能够扛住10w的QPS,这是得益于其基于内存的快速读写操作,那如果某个时间Redis突然挂了怎么办?我们需要一种持久化的机制,来保存内存中的数据,否则数据就会直接丢失。

Redis基础——剖析基础数据结构及其用法

2020-10-21
阅读 7 分钟
3.7k
这是一个系列的文章,打算把Redis的基础数据结构、高级数据结构、持久化的方式以及高可用的方式都讲一遍,公众号会比其他的平台提前更新,感兴趣的可以提前关注,「SH的全栈笔记」,下面开始正文。

大白话聊聊微服务——人人都能看懂的演进过程

2020-09-07
阅读 5 分钟
2.4k
这篇博客的本意是希望看到这篇文章的读者能够很轻松的理解我想表达的意思。但程序向的分享经常会不经意间就贴上了代码,很可能就会让人看的很懵。而且我认为分享一个东西,只有对方真正明白了其中的逻辑,才是有意义的分享。所以接下来我会尝试用大家都能理解的语言来聊一聊”微服务“。

简单了解InnoDB底层原理

2020-07-28
阅读 4 分钟
3.3k
很多文章都是直接开始介绍有哪些存储引擎,并没有去介绍存储引擎本身。那么究竟什么是存储引擎?不知道大家有没有想过,MySQL是如何存储我们丢进去的数据的?

浅谈JVM与垃圾回收

2020-07-03
阅读 7 分钟
5.9k
简单的介绍一下JVM(Java Virtual Machine)吧,它也叫Java虚拟机。虽然它叫虚拟机,但是实际上不是我们所理解的虚拟机,它更像操作系统中的一个进程。JVM屏蔽了各个操作系统底层的相关的东西,Java程序只需要生成对应的字节码文件,然后由JVM来负责解释运行。

深入了解ConcurrentHashMap

2020-06-02
阅读 7 分钟
1.9k
在上一篇文章【简单了解系列】从基础的使用来深挖HashMap里,我从最基础的使用中介绍了HashMap,大致是JDK1.7和1.8中底层实现的变化,和介绍了为什么在多线程下可能会造成死循环,扩容机制是什么样的。感兴趣的可以先看看。

【俗话说】换个角度理解TCP的三次握手和四次挥手

2020-03-03
阅读 4 分钟
1.6k
TCP,全称Transmission Control Protocol,是一种面向连接、可靠的、基于字节流的单播协议。与我们常说的TCP/IP协议不同,TCP/IP是一个协议族,涉及到OSI模型中的网络层、应用层和应用层。而我们要聊的TCP就是在传输层的协议,现在应用的特别广泛的HTTP请求,就是基于TCP的。

【硬核教程】只需1秒—你也可以有自己的API文档

2019-12-27
阅读 4 分钟
1.4k
Nothing is true. Everything is permitted. 写在前面 先聊聊为什么想到了要用Vuepress来代替原来写在Confluence上的文档。 大意是有个需要其他部门接入的项目,这个项目有个用md写的接入文档,其他部门的人需要看着这个文档才知道怎么接以及哪些东西需要接。 但是有个问题是这个文档长的一匹,有多长呢? 而且这个md文...

游戏服务器和Web服务器的区别

2019-10-15
阅读 4 分钟
2.8k
用Go语言写游戏服务器也有一个多月了,也能够明显的感受到两者的区别。这篇文章就是想具体的聊聊其中的区别。当然,在了解区别之间,我们先简单的了解一下Go语言本身。

用go-module作为包管理器搭建go的web服务器

2019-06-10
阅读 15 分钟
5.7k
本篇博客主要介绍了如何从零开始,使用Go Module作为依赖管理,基于Gin来一步一步搭建Go的Web服务器。并使用Endless来使服务器平滑重启,使用Swagger来自动生成Api文档。

初探Java类型擦除

2019-05-27
阅读 5 分钟
2.7k
上面的判断结果是true。代表了两个传入了不同泛型的List最终都编译成了ArrayList,成为了同一种类型,原来的泛型参数String和Integer被擦除掉了。这就是类型擦除的一个典型的例子。

手把手教你从零开始搭建SpringBoot后端项目框架

2018-09-18
阅读 18 分钟
8k
原料 新鲜的IntelliJ IDEA、一双手、以及电脑一台。 搭建框架 新建项目 打开IDE,点击File -> New Project。在左侧的列表中的选择Maven项目,点击Next。 填写GroupId和ArtifactId 什么是GroupId和ArtifactId?大家可以参考一下google出来的定义,可以参考一下。 <!--more--> GroupID是项目组织唯一的标识符,实...