基于Redis的分布式锁到底安全吗?

haifeiWu
分布式锁的实现 Redlock 算法安全吗?

阅读全文

【译】Raft 学生指南

haifeiWu
在过去的几个月中,我一直担任MIT的 [6.824 分布式系统课程](https://pdos.csail.mit.edu/6.824/)的助教。 传统上,该班级有许多基于 Paxos 共识算法的实验,但是今年,我们决定转向 [Raft](https://raft.github.io/)。 Raft 的设计更易于理解,我们希望这种改变可以使学生的学习更轻松。

Raft阅读全文

ThreadPoolExecutor 的简单梳理

haifeiWu
前两天在一个技术交流群里,看到群友在讨论关于 `Java` 线程池的使用,以及线程池的几个参数如何设置的问题,本着脑子会忘的原则,记录下自己对线程池的理解~

Java阅读全文

MapReduce 的简单实现

haifeiWu
最近有幸拜读 Google 分布式的三大论文,本着好记性不如烂笔头的原则,谈谈楼主对分布式系统开发的一点小小的心得~

Java阅读全文

使用 Map 实现策略模式

haifeiWu
上篇文章在谈到优化代码的时候,有一部分涉及到了使用策略模式优化我们的代码,本篇文章将围绕策略模式谈谈自己的思考~

阅读全文

使用 Go 优化我们的接口

haifeiWu
标题起的是有点大,不过还好本片文章主要也是使用 Go 来优化 HTTP 服务的,也算打个擦边球吧~

阅读全文

如何使用 Redis 实现分布式锁

haifeiWu
锁是我们在设计和实现大多数系统时绕不过的话题。一旦有竞争条件出现,在没有保护的操作的前提下,可能会出现不可预知的问题。

Java阅读全文

Kafka Consumer 的 Rebalance 机制

haifeiWu
上周参加了 Kafka Meetup 北京站的技术分享,本文简单介绍下 Kafka Consumer 的 Rebalance 机制以及其新版本中的优化策略~

Java阅读全文

实时数据并发写入 Redis 优化

haifeiWu
对于并发请求如何在不强制加锁的情况下快速更新呢?这里有热腾腾的线上实践……

阅读全文

Redis 与 Lua 使用中的小问题

haifeiWu
在 Redis 里执行 `get` 或 `hget` 不存在的 `key` 或 `field` 时返回值在终端显式的是 `(nil)`,对于这样的问题,在 Lua 脚本中如何判空呢?

Redis阅读全文

Git 命令

ChanghuiN
熟练使用工具决定工作效率,Git 是工作中常见的分布式版本控制系统。本篇文章总结一些常用的命令以及原理。

工具阅读全文

二分查找算法细节详解

haifeiWu
我相信对很多读者朋友来说,编写二分查找的算法代码属于玄学编程,虽然看起来很简单,就是会出错,要么会漏个等号,要么少加个 1。

Java阅读全文

实现自己的 RPC 框架(二)

haifeiWu
书接上回,前段时间自己搞了个 RPC 的轮子,不过相对来说比较简单,最近在原来的基础上加以改造,使用 Zookeeper 实现了 provider 自动寻址以及消费者的简单负载均衡。

Java阅读全文

lang3 的 split 方法误用

haifeiWu
apache 的 lang3 是我们开发常用到的三方工具包,然而对这个包不甚了解的话,会产生莫名其秒的 bug ,在这里做下记录。

Java阅读全文

[译] 为什么String在Java中是不可变的

haifeiWu
String 在 Java 中是不可变的。 不可变类只是一个无法修改其实例的类。 创建实例时,将初始化实例中的所有信息,并且无法修改信息。

Java阅读全文

双重检查锁定与单例

haifeiWu
对于单例模式,相信大多数人都可以写出好几种实现方法,懒汉,饿汉等等,然而小小单例真要写好,写的完全正确也并非易事。

Java阅读全文

LRU 算法

haifeiWu
LRU 是 Least Recently Used 的缩写,即最近最少使用,是一种常用的页面置换算法,选择最近最久未使用的页面予以淘汰。

算法阅读全文

EventBus 源码解析

ChanghuiN
EventBus,事件发布-订阅总线。现在的事件总线框架有很多,比如:otto、EventBus、RxBus、LiveData 改装。

Android源码解析阅读全文

我理解的 TCP 连接

haifeiWu
TCP 是面向连接的协议。运输连接是用来传输 TCP 报文的。TCP 运输连接的建立和释放是每一次面向连接通信中必不可少的过程

Java阅读全文

我理解的零拷贝

haifeiWu

最近做的业务涉及到的 I/O 操作比较多,对于Linux上的 I/O 操作的优化 Zero Copy 早有耳闻,今天打算由上而下(从应用层到底层,当然并不会涉及到内核的细节)的研究一下这个问题。

Java阅读全文