前言

其实这个应该是写在 netty 的 epoll 前面的,只是刚好在看 epoll,而且 reactor 也是基于 epoll 这种操作系统带来的异步实现的。所以补上

阅读全文 »

前言

Netty 作为 java 中最成功的网络框架,里面包含了很多的设计理念和方式。后续希望针对 Netty 学习下如何实现高性能、易扩展、使用简单的网络底层框架。我开始看 kafka 的还觉得很奇怪,为什么 kafka 不使用 netty 而是自己实现了一套底层网络。后面发现开始其实是使用了 netty 的,但是后面将他移除了。官方解释的原因是 jar 包冲突。这个问题在 quora 上还有人提问。希望自己在看完 netty 和 kafka 能够看到除了 jar 包冲突以外的更好的优化或者性能。本文不会对 Netty 的使用做一个解释,而是专注于 netty 中关于 epoll 的实现

阅读全文 »

前言

随着互联网的繁荣,使用网络的人越来越多,对一个服务而言就是调用他的人越来越多,让一个服务器能够接受越来越多的客户端,尽量压榨服务器的资源成了后续程序员的研究方向。也就是有了著名的C10K 问题,C10M问题。本文主要探讨下IO在网络请求的演进。

阅读全文 »

前言

计算机网络是一个很大和很复杂的模块,本文只能说是看书的一些笔记。主要是记录下tcp的连接,http,https的一些处理。

阅读全文 »

前言

本文主要是为后续涉及到的kafka,rocketmq,pulsar 现在较为流行的基于磁盘存储的消息队列做一个OS层的简单介绍。了解和回顾为什么基于磁盘这种比较“慢”的IO系统能够承载出要求高吞吐的消息队列系统。主要涉及到:文件读写和部分socket,仅仅针对linux系统。

阅读全文 »

Basic Paxos

前言

分布式共识算法,分布式共识和分布式一致性还是有一定的差异的。

  • 分布式一致 《数据密集型系统设计》作者 Martin Kleppmann 在书中提到,一致性其实在ACID 中处于一个比较尴尬的地位,因为一致性其实是包含业务态的,是否一致性本质上说程序是否按照业务输入得到业务预期的输出。主要讲究的是并发执行的过程中,程序是否会出现超出预期的输出。主要是执行完毕后的状态
  • 分布式共识 分布式共识主要是作用在分布式系统中,多个程序能够在值或者操作上得到共识,也就是所有或者major的服务都获取和确定到某一个值或者某一次操作。在工程上将,个人觉得是客户端获取到的值是确定且唯一的。

个人认为,分布式共识主要的作用是实现分布式一致。通过每次的共识,最终做到服务状态的一致。

阅读全文 »
0%