微服务-成本与收益

微服务-成本与收益

很多情况下,为了解决手头的问题,我们付出了巨大的努力采用微服务模式,但是并不清楚它的成本和收益。

接下来我将详细介绍什么是微服务,这种模式吸引人的原因,以及它所面临的主要挑战。

READ MORE

浅谈tcp_nodelay的作用

浅谈tcp_nodelay的作用

今天在用nginx作web缓存的时候,发现在http里加入这样个参数,能有效的提高数据的实时响应性,那就是tcp_nodelay.下面我们来说说tcp_nodelay的原理:
READ MORE

git中永久删除文件

git中永久删除文件

今天看到自己两年前在 Github 写的个小项目上了两位数的forkstar,于是想看看原来写的还能不能用,当然也想看看以前自己写的代码还能不能看懂,于是git clone了一下,发现奇慢(题主预期是瞬间):
READ MORE

Linux 内核通知链机制

Linux 内核通知链机制

一、概念:


大多数内核子系统都是相互独立的,因此某个子系统可能对其它子系统产生的事件感兴趣。为了满足这个需求,也即是让某个子系统在发生某个事件时通知其它的子 系统,Linux内核提供了通知链的机制。通知链表只能够在内核的子系统之间使用,而不能够在内核与用户空间之间进行事件的通知。 READ MORE

Linux 组调度浅析

Linux 组调度浅析

cgroup 与组调度

linux内核实现了control group功能(cgroup,since linux 2.6.24),可以支持将进程分组,然后按组来划分各种资源。比如:group-1拥有30%的CPU和50%的磁盘IO、group-2拥有10%的CPU和20%的磁盘IO、等等。具体参阅cgroup相关文章。
READ MORE

Linux 进程调度浅析

Linux 进程调度浅析

操作系统要实现多进程,进程调度必不可少。进程调度是对TASK_RUNNING状态的进程进行调度(参见《Linux进程状态浅析》)。如果进程不可执行(正在睡眠或其他),那么它跟进程调度没多大关系。

所以,如果你的系统负载非常低,盼星星盼月亮才出现一个可执行状态的进程。那么进程调度也就不会太重要。哪个进程可执行,就让它执行去,没有什么需要多考虑的。
READ MORE

Linux 进程状态浅析

Linux 进程状态浅析

众所周知,现在的分时操作系统能够在一个CPU上运行多个程序,让这些程序表面上看起来是在同时运行的。linux就是这样的一个操作系统。

在linux系统中,每个被运行的程序实例对应一个或多个进程。linux内核需要对这些进程进行管理,以使它们在系统中“同时”运行。linux内核对进程的这种管理分两个方面:进程状态管理,和进程调度。本文主要介绍进程状态管理,进程调度见《linux进程调度浅析》。 READ MORE

区块链核心技术:拜占庭共识算法之PBFT

区块链核心技术:拜占庭共识算法之PBFT

PBFT是Practical Byzantine Fault Tolerance的缩写,意为实用拜占庭容错算法。该算法是Miguel Castro (卡斯特罗)和Barbara Liskov(利斯科夫)在1999年提出来的,解决了原始拜占庭容错算法效率不高的问题,将算法复杂度由指数级降低到多项式级,使得拜占庭容错算法在实际系统应用中变得可行。该论文发表在1999年的操作系统设计与实现国际会议上(OSDI99)。没错,这个Loskov就是提出著名的里氏替换原则(LSP)的人,2008年图灵奖得主。

摘要部分

OSDI99这篇论文描述了一种副本复制(replication)算法解决拜占庭容错问题。 READ MORE

如何正确使用HD Wallets

如何正确使用HD Wallets

HD Wallets:扩展性树型钱包(hierarchical deterministic wallets)

参考地址:https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki

原理简介:

  1. 生成HD Wallets钱包的时候除了会生成主私钥(master private key)和主公钥(master public key),还会生成一个chain code

  2. 利用 master private key + chain code可以得到指定的子私钥(sub private key);

  3. 利用 master public key + chain code可以得到指定的子公钥(sub-public key);
    READ MORE