原创 BFF架構設計與網關的演進

介紹 BFF是(Backends For Frontends)單詞的縮寫,主要是用於服務前端的後臺應用程序,來解決多訪問終端業務耦合問題。 最近在公司的微服務架構中遇到了一些多終端訪問接口的問題,不同的終端擁有不同的接口服務,有不

原创 Redis集羣原理和搭建

一個系統建立集羣主要需要解決兩個問題:數據同步問題和集羣容錯問題。 1. Naive方案 一個簡單粗暴的方案是部署多臺一模一樣的Redis服務,再用負載均衡來分攤壓力以及監控服務狀態。這種方案的優勢在於容錯簡單,只要有一臺存活,整

原创 XA兩階段提交協議 - 手寫XA, Atomikos 與 Spring boot 集成

因爲事務需要實現ACID,即原子性、一致性、隔離性、持久性,所以需要採用一定的機制來保證,通常採用的是分階段提交的方式。 XA:XA協議,規定事務管理器和資源管理器接口,採用二階段提交協議。 一階段提交協議 一階段提交協議相對簡單

原创 Redis緩存和MySQL數據一致性

1、需求起因 在高併發的業務場景下,數據庫大多數情況都是用戶併發訪問最薄弱的環節。所以,就需要使用redis做一個緩衝操作,讓請求先訪問到redis,而不是直接訪問MySQL等數據庫。 這個業務場景,主要是解決讀數據從Redis緩

原创 AWS S3存儲服務

存儲桶權限 性能調優 防盜鏈 可以參考 https://blog.csdn.net/myarche/article/details/103990437 EC2 的選擇

原创 lombok 註解 @Data @Getter @Setter @RequiredArgsConstructor @ToString @EqualsAndHashCode

官方文檔:@EqualsAndHashCode 原文中提到的大致有以下幾點: 此註解會生成equals(Object other) 和 hashCode()方法。 它默認使用非靜態,非瞬態的屬性 可通過參數exclude排除一些

原创 K8S學習筆記(持續更新)

文章目錄K8S架構容器的生命週期在Kubernetes集羣中運行一個NginxConfigMap集羣方案常用命令Ingress K8S架構 容器的生命週期 在Kubernetes集羣中運行一個Nginx Confi

原创 Docker 概念原理,常用操作(持續更新)

文章目錄**什麼是docker****Docker vs. Virtual macheine****Docker 架構****鏡像操作****容器操作和生命週期**進入容器內部外部網絡訪問容器容器通信容器數據管理查看容器的log將

原创 AWS學習筆記(持續更新)

簡單應用部署 全站加速——使用 Amazon CloudFront 加速內容分發

原创 Spring Boot 異步框架@Async @EnableAsync

一、現實場景 在現實的互聯網項目開發中,針對高併發的請求,一般的做法是高併發接口單獨線程池隔離處理。 假設現在2個高併發接口: 一個是修改用戶信息接口,刷新用戶redis緩存. 一個是下訂單接口,發送app push信息. 設計解

原创 團隊擴張時的能力構建和質量保證

文章目錄如何完成新人能力構建新人Onboarding流程CheckPointHOMEWORK讓新人通過作業來學習,完成測試用例新人狀態跟蹤人才梯隊構建激活團隊氛圍,形成知識分享土壤 如何完成新人能力構建 新人Onboarding流

原创 AWS 私有VPC訪問互聯網 & S3 VPC EndPoint(VPCE)

一般情況下我們首選NAT Gateway的方式來訪問互聯網

原创 springboot2.x 使用Mockito編碼完成接口測試

內容Junit 4 Junit 5 註解不同Spring context Mockito demoSpring上下文測試註解方法說明Servlet容器環境的測試輕量級測試Mock MVC更多用法 Junit 4 Junit 5 註

原创 整潔架構讀書筆記(Clean Architecture)

又稱乾淨的架構The Clean Architecture,這是著名軟件工程大師Robert C Martin提出的一種架構整潔清晰之道,也是當前各種語言開發的目標架構。乾淨、清晰、整潔的架構應該只包含單向的依賴關係,這樣纔可以在

原创 架構解決方案與融合(DDD, 六邊形,洋蔥,整潔,事件驅動,CQRS,SOA,Mircoservice, C4)

領域驅動設計和實踐 https://www.jianshu.com/p/c62d9afe3132 六邊形架構(端口和適配器架構)設計和實踐 https://www.jianshu.com/p/c2a361c2406c https: