摘要: 在写入数据库的时候需要有锁,比如同时写入数据库的时候会出现丢数据,那么就需要锁机制。 数据锁分为乐观锁和悲观锁,那么它们使用的场景如下: 1. 乐观锁适用于写少读多的情景,因为这种乐观锁相当于JAVA的CAS,所以多条数据同时过来的时候,不用等待,可以立即进行返回。 2. 悲观锁适用于写多读少的情景 阅读全文
posted @ 2018-12-23 20:04 黄青石 阅读(5629) 评论(3) 推荐(2) 编辑
摘要: 之前写了一篇关于RPC的文章,浏览量十分感人:),但是感觉文章写得有些粗,觉得很多细节没有讲出来,这次把里边的细节再次补充和说明。 这次主要说的内容分为: 1. RPC的主要结构图。 2.分析结构图的中的细节和步骤。 关于RPC,大家都不陌生,其简写和介绍什么的我就不过多介绍了,可以从我上篇文章中看 阅读全文
posted @ 2018-11-21 22:43 黄青石 阅读(752) 评论(0) 推荐(0) 编辑
摘要: 因为kafka用到的地方比较多,日志收集、数据同步等,所以咱们来聊聊kafka。 首先先看看kafaka的结构,producer将消息放到一个Topic然后push到broker,然后cosumer从broker中拉取对应Topic的消息。 broker可能大家不太熟悉,这个broker就是构成ka 阅读全文
posted @ 2018-11-18 22:57 黄青石 阅读(1390) 评论(2) 推荐(1) 编辑
摘要: 分布式锁就是多台机器,分布在不同的JVM中,这些不同JVM内的方法需要获取一个唯一锁,比如获取锁之后要把数据写入数据库,保证数据在同一时刻只有一台机器写入数据库。 分布式锁的实现有多种实现方法,除了今天聊到的ZK实现的分布式锁还有Redis通过SETNXPX或Lua脚本实现,还可以通过数据库的锁实现 阅读全文
posted @ 2018-09-15 14:53 黄青石 阅读(2406) 评论(0) 推荐(0) 编辑
摘要: 相信很多同学都使用缓存,那么在使用的过程中是否遇到过一些问题(本文拿Redis为例): 1. 在集群环境中,如果遇到了大量的查询,先经过缓存拦截,缓存没有再走到DB。这种是普通的操作 Client -> Redis -> DB。那么如果请求的数量非常大的时候,直接穿透了缓存该如何处理呢? 1.1 出 阅读全文
posted @ 2018-07-14 17:41 黄青石 阅读(711) 评论(0) 推荐(3) 编辑
摘要: 最近公司打算使用springboot2.0, springboot支持HTTP/2,所以提前先搭建一下环境。网上很多都在springboot1.5实现的,所以还是有些差异的。接下来咱们一块看一下。 文章的主要思路: 1.工程的结构。 2.重要代码说明。 3.运行结果。 4.总结。 1) 我用的开发工 阅读全文
posted @ 2018-04-15 14:07 黄青石 阅读(1549) 评论(0) 推荐(2) 编辑
摘要: 为了同学们看起来一目了,特按如下思路进行讲解。 1.出现的场景 2.分析及解决的过程 3.总结 最近公司要使用zookeeper做配置管理(后面简称ZK),然后自己就提前用虚拟机进行了ZK三台集群的搭建。之后开始选择使用zookeeper的java client工具,google了半天,发现了一个很 阅读全文
posted @ 2018-03-17 13:03 黄青石 阅读(1677) 评论(2) 推荐(2) 编辑
摘要: 相信很多人知道ThreadLocal是针对每个线程的,但是其中的原理相信大家不是很清楚,那咱们就一块看一下源码。 首先,我们先看看它的set方法。非常简单,从当前Thread中获取map。那么这个getMap方法是什么样的呢?咱们继续看。 从当前线程中去获取单钱线程的threadLocals. 继续 阅读全文
posted @ 2018-01-14 21:27 黄青石 阅读(1253) 评论(0) 推荐(0) 编辑
摘要: 什么是RPC? RPC是Remote Procedure Call的缩写,像Client-Servier一样的远程过程调用,也就是调用远程服务就跟调用本地服务一样方便,一般用于将程序部署在不同的机器上,供客户端进行调用。就像一个request-response调用系统一样简单。在面向对象编程的程序中 阅读全文
posted @ 2017-11-08 14:57 黄青石 阅读(19615) 评论(0) 推荐(2) 编辑
摘要: 写JAVA程序,一定要了解JVM(JAVA Virtual machine)一些基础知识和垃圾收集。如果对JVM已经很了解了,可以不用继续往下阅读了。本文只针对Java 7, 后续版本的可能跟本文会有所差异。接下来咱们先看一张图: Java虚拟机分为堆,栈,永久区,程序计数器,虚拟机栈,本地方法栈咱 阅读全文
posted @ 2017-10-24 23:50 黄青石 阅读(956) 评论(2) 推荐(4) 编辑