摘要:
1. 概述 对于分布式系统,人们首先对现实中的分布式系统进行高层抽象,然后做出各种假设,发展了诸如CAP, FLP 等理论,提出了很多一致性模型,Paxos 是其中最璀璨的明珠。我们对分布式系统的时序,复制模式,一致性等基础理论特别关注。 在共识算法的基础上衍生了选举算法,并且为分布式事务提供了部分 阅读全文
摘要:
1.前言 相信许多开发同学看过《深入理解java虚拟机》,也阅读过java虚拟机规范,书籍和文档给人的感觉不够直观,本文从一个简单的例子来看看jvm是如何工作的吧。 本文所有操作均在mac上进行。 2.示例代码 示例代码采用最常见的双重检索单例模式: package interview.desgin 阅读全文
摘要:
一.前言 从上个世纪到现在,工程师们在优化服务器性能的过程中,提出了各种不同的io模型,比如非阻塞io,io复用,信号驱动式io,异步io。具体io模型在不同平台上的实现也不一样,比如io复用在bsd上可以由kqueue实现,在solaris系统上可以由/dev/poll实现。为了实现系统的可移植性 阅读全文
摘要:
1.前言 众所周知,Java是一门跨平台语言,针对不同的操作系统有不同的实现。本文从一个非常简单的api调用来看看Java具体是怎么做的. 2.源码分析 从FileInputStream.java中看到readBytes最后是native调用 /** * Reads a subarray as a 阅读全文
摘要:
一. 引言 k8s 提供了一下四种方式来暴露端口,分别是: ClusterIP, 仅供集群内部访问 NodePort,端口映射,给node随机分配端口,然后由service进行代理 LoadBalancer, 负载均衡模式,一般由云服务商提供负载均衡策略 Ingress,网关模式,使用自定义的htt 阅读全文
摘要:
一. 对比 redis 提供了redis sentinal 的高可用策略,以及redis cluster来支持扩展性(同时也支持高可用)。redis cluster,ealsticsearch 都属于有状态数据存储服务,这里做一个简单的对比。 特性 redis cluster elasticsear 阅读全文
摘要:
1. 前言 当在浏览器中输入百度地址后,发生了什么?一般可以分为以下几个步骤 将域名www.baidu.com 解析为IP地址 浏览器所在主机和服务器建立TCP/IP连接 浏览器向服务器发送http请求 服务器处理http请求,并生成html文件返回 浏览器解析html文件,渲染页面 从计算机网络的 阅读全文
摘要:
一. 概述 在后台应用开发过程中,许多组件会打出日志,connection timeout, connection reset by peer,让人一头雾水。timeout 通常比较好理解,可能是网络不通。那么connection reset by peer 呢? 二. 预备知识 为了理解这个问题, 阅读全文
摘要:
一.概述 分布式系统存在网络,时钟,以及许多不可预测的故障。分布式事务,一致性与共识问题,迄今为止仍没有得到很好的解决方案。要想完美地解决分布式系统中的问题不太可能,但是实践中应对特定问题仍有许多可靠的解决方案。本文不会谈及诸如BASE, CAP, ACID 等空泛的理论,只基于实践中遇到的问题提出 阅读全文
摘要:
一.导言 随着容器技术的发展,软件界对容器管理的需求越来越迫切,于是出现了一些kubernetes(即k8s),docker swarm 等容器管理软件。同时k8s等服务编排软件也让微服务变得可行,快速扩容缩容,自动处理网络配置等特性也让k8s如火如荼。 k8s能做什么? 服务发现和负载均衡,使用d 阅读全文