原创 一年看完64本書後最大的收穫:讀書無用

2019年年初定了一個目標一年要看52本書,現在一年過去,目標已經實現,但是心裏邊並沒有太多的開心,最近一直在反思這件事情,這篇文章做一個總結。 一、立下目標 2019年年初決定給自己找了一件事情做,找來找去發現讀書是一個很好的選

原创 ZK節點

1. ZK節點的組織 zookeeper採用樹狀結構對數據進行存儲,整個數據存儲結構非常類似於linux的文件系統。如下圖所示,節點node_1的路徑是/node_1,節點node_1_1的路徑是/node_1/node_1_1。

原创 zk的session

zk維護的數據主要有:客戶端的會話(session)狀態及數據節點(dataNode)信息。zk在內存中構造了個DataTree的數據結構,維護着path到dataNode的映射以及dataNode間的樹狀層級關係。爲了提高讀取性

原创 架構的演變和成熟度

翻譯的有點爛,歡迎提出修改意見,如果是在看不下去請閱讀文末的原文。 要點: 匆忙採用微服務,可能會出現架構穩定方面的差距和反模式。 瞭解歷史範式轉變的警告和陷阱,會使我們能夠從以前的錯誤中吸取教訓,並使我們的組織能夠在最新的技術

原创 重談分佈式一致性:zk和kafka中的副本

這篇文章翻譯自:https://www.confluent.fr/blog/distributed-consensus-reloaded-apache-zookeeper-and-replication-in-kafka/,有興趣

原创 CRUD玩的這麼溜,你知道CQRS嗎

轉自,建議去看原文哈:https://blog.csdn.net/bntX2jSQfEHy7/article/details/96657886 今天主要跟大家分享一下什麼是 CQRS,以及在項目中如何去使用。 一、CRUD系統 我們平常最

原创 併發和高併發

併發和高併發 併發包含了高併發,併發有可能發生在單個機器上,也有可能發生在分佈式的場景下,發生在分佈式場景下的一般就是高併發了。Java併發包下的java.util.concurrent的類都是解決在單機情況下的併發問題的,我們常見和常用

原创 什麼是架構以及架構的分類

寫這篇文章的目的是弄明白到底什麼是架構,我們在開發設計過程中會遇到各種各樣的圖,到底哪些是屬於架構圖?別人讓你畫架構圖的時候,你要知道你畫的到底是不是架構圖,怎麼畫架構圖。 一、什麼是架構 把一個整體(完成人類生存的所有工作)切分

原创 Apache 的架構師們遵循的 30 條設計原則

本文作者叫 Srinath,是一位科學家,軟件架構師,也是一名在分佈式系統上工作的程序員。 他是 Apache Axis2 項目的聯合創始人,也是 Apache Software 基金會的成員。 他是WSO2流處理器(wso2.com/a

原创 Thrift使用和原理

Thrift是一種支持多語言的軟件框架,在各個服務之間的RPC通信領域應用非常廣泛。RPC(遠程過程調用)是一個計算機通信協議,該協議允許運行於一臺計算機的程序調用另一臺計算機的子程序,而程序員無需額外地爲這個交互作用編程。(參考

原创 年前離職到底值不值?

這篇文章總結了我在2019年換工作的心路歷程,從8月份有換工作的想法到12月份入職新公司,前前後後經歷了很多事情,其中最讓我糾結的可能就是年前離職還是年後離職這個問題,糾結的根本原因大概有以下四點: 原公司會在1月份發13薪和季度獎金,

原创 kafka是如何做到高效的

上篇文章是我們在設計系統的如何讓它做到高可用,這篇文章學習一下在設計時候如何把消息隊列設計的高效,當然這個還是以kafka爲原型去學習,首先從整體上看,有哪些措施導致了kafka的快呢? 總體架構: 利用Partition實現並

原创 kafka寫入的過程

前幾天和大佬交流,說一些大牛可以分分鐘複製一箇中間件,拿這個標準衡量自己還是差的有點遠的,在工作中經常用到的是kafka,現在有點時間再深入瞭解一下kafka的寫入過程。 幾個基本的概念: broker: 消息處理結點,多個br

原创 kafka如何做到高可用的

常常想如果讓你去設計一個高可用的系統,你怎麼去做?這裏要回答兩個問題: 如何保證宕機的時候數據不丟失? 答:副本 多副本之間數據如何同步? 答:同步;異步;半同步;ISR 這裏我們看一下kafka是怎麼設計做到高可用的,學習一

原创 爲什麼需要zk

我們在kafka裏看到了zk的使用,現在我們需要回答一個問題,爲什麼要用zk,爲什麼它在分佈式系統裏有着如此無可替代的地位,什麼情況下我們要用zk?我們可以先看一下官網的回答:zk爲分佈式應用提供分佈式協調服務,首先zk是用在分佈