原创 Redis Cluster配置傳播及故障恢復筆記

本筆記是對Redis Cluster Spec - Configuration handling, propagation, and failovers的歸納總結。 Epoch 可以把Epoch當作是一個版本號,是一個64位無符號整形 每

原创 Redis Cluster節點故障探測算法筆記

本筆記是對Redis Cluster Spec - Failure Detection的歸納總結 狀態轉換圖 每個Node在本地維護了一張其他Node的狀態表,並根據Failure Detection算法更新這張表裏的Node的狀態 每個

原创 MySQL Master Slave Docker部署例子

原文地址:https://chanjarster.github.io... 本文對應代碼:github 用Docker部署基於GTID的MySQL Master-Slave Replication例子。 啓動Master 寫一個文件mysq

原创 Spring Boot配置Redis Sentinel的例子

原文地址:https://chanjarster.github.io... 本文介紹Spring Boot連接Redis Sentinel的例子。 本文關聯的源碼:github 基本信息 拓撲(M代表redis-master,S代表redi

原创 理解Spring Cloud Gateway Filters的執行順序

本文基於Spring Cloud Gateway 2.1.1.RELEASE。 在講SCG的Filter的排序問題之前得先比較一下Spring Cloud Gateway在對待Filter的方面與Zuul2有着哪些不同。 Filter的Sc

原创 處理Empty Mono的方法

在Reactor編程中有時候我們需要對empty Mono<T>做一些特定業務邏輯。下面看一段非reactor編程的代碼: public void oldCheck(Token token) { if (token == null) {

原创 Perf分析CPU性能問題筆記

本文僅僅是一個筆記。 場景 觀察進程的CPU使用情況 觀察進程內各個函數的CPU使用情況: sudo perf top -p <pid> 同時顯示函數調用鏈: sudo perf top -g -p <pid> 記錄採樣結果,以供後續分析,

原创 各大API網關性能比較

用於實現API網關的技術有很多,大致分爲這麼幾類: 通用反向代理:Nginx、Haproxy、…… 網絡編程框架:Netty、Servlet、…… API網關框架:Spring Cloud Gateway、Zuul、Zuul2、…… A

原创 關於同步/異步、阻塞/非阻塞IO的摘要

四種IO模型 Boost application performance using asynchronous I/O把同步阻塞、同步非阻塞、異步阻塞、異步非阻塞的模型講得很清楚。 處理大量連接的問題 event-driven模型派(異步模

原创 如何在Tomcat中做TLS客戶端認證

常見的https網站做的是服務端認證(server authentication),瀏覽器通過證書判斷你所訪問的https://baidu.com是否真的是百度,而不是其他人僞造的網站。同時還對流量加密,防止別人竊聽你的流量。 tls還可以

原创 穩定與非穩定版本軟件的Docker Image構建策略

原文 Image tag是不穩定的 Docker image的tag是不穩定的,這句話的意思是就算tag不變,其所代表的image並非一成不變,例如openjdk:8在去年代表jdk 8u161今年則代表jdk 8u191。就算你使用ope

原创 爲何把日誌打印到控制檯很慢?

原文 在容器打印日誌到控制檯阻塞的排障的時候看到一個觀點: 把日誌打印到控制檯要比打印到文件慢,而且是非常慢。 log4j2和logback的兩個issue官方也提到了這一點(見LOG4J2-2239、LOGBACK-1422)。 那麼爲何

原创 Docker容器如何獲得自己的名字

原文 本文介紹的方法是通過環境變量把容器自己的名字傳遞進去,僅支持以下兩種部署方式: docker service create docker stack deploy docker service create docker serv

原创 容器打印日誌到控制檯阻塞的排障

原文 今日生產環境發現有些容器停止響應了,但是容器沒有死,docker exec -it <container-name> /bin/bash也能正常使用。 在容器內部使用jstack <pid>發現log4j2的Console Appen

原创 Docker Swarm部署應用的總結

原文 大綱 本文只是一種實際部署方案的例子,涉及到的技術有(除Docker/Docker Swarm外): Docker overlay network Fluentd Prometheus stack vegasbrianc的Prom