原创 springcloud3(七) 安全框架Hdiv

Hdiv Security 是支持應用程序自我保護的先驅,是同類產品中的第一款產品,可在整個軟件開發生命週期 (SDLC) 中提供針對安全漏洞和業務邏輯缺陷的保護。Hdiv Security 的統一平臺使 DevSecOps 成爲現實。Hd

原创 springcloud3(六) 服務降級限流熔斷組件Resilience4j

代碼地址:https://github.com/showkawa/springBoot_2017/tree/master/spb-demo/spb-gateway/src/test/java/com/kawa/spbgateway/circ

原创 架構設計(三) 服務降級,限流和熔斷的設計

隨着公司業務不斷的複雜化,隨之而來的就是微服務的爆發式增長,流量一下就起來了,對於網關來說就不得不考慮服務的保護了,也就是下面講到的降級,限流和熔斷 1. 服務降級的設計 什麼是服務降級? 當服務器壓力劇增的情況下,根據實際業務情況及流量

原创 Javassist基本用法彙總

最近項目需要對基礎架構做增強,需要基於字節碼在不侵入原有代碼的情況下實現, 故把javassist的基本用法過了一遍。這篇博客就是把主要講講爲什麼要用javassist以及javassist的基本用法。 1.爲什麼要使用javassist(

原创 IO - Netty的核心模塊

 這篇博客主要簡單介紹Netty上表中的組件 1. Bootstrap、ServerBootstrap Bootstrap意思是引導,一個Netty應用通常由一個Bootstrap開始,主要作用是配置整個Netty程序,串聯各個組件,Ne

原创 IO - Netty的模型

這邊博客分兩個部分,先介紹下IO線程模型,然後介紹下Netty的模型加上一個簡單的demo 1. IO線程模型的介紹  IO線程模型分爲三大類 1.傳統阻塞式模型 2.Reactor模型(反應堆模型) 3.Proactor模型(前攝器)

原创 springcloud3(五) spring cloud gateway動態路由的四類實現方式

寫這篇博客主要是爲了彙總下動態路由的多種實現方式,沒有好壞之分,任何的方案都是依賴業務場景需求的,現在網上實現方式主要有: 基於Nacos, 基於數據庫(PosgreSQL/Redis), 基於Memory(內存),而我們公司是第四種方案:

原创 架構設計(二) 互聯網網關平臺對比

現在在新的公司基礎服務組(中臺)待了快一年了,主要折騰公司的網關平臺生態,我們公司網關平臺是基於SpringCloud Gateway爲基礎構建的,屬於從零到一構建整個網關平臺的生態,目前核心服務基本完成,後期新的需求,POC和MVP都在路

原创 SaaS架構(二) 多租戶數據隔離方案

 多租戶在數據存儲上存在三種主要的方案,分別是: 1. 獨立數據庫 即一個租戶一個數據庫,這種方案的用戶數據隔離級別最高,安全性最好,但成本較高。 優點: 爲不同的租戶提供獨立的數據庫,有助於簡化數據模型的擴展設計,滿足不同租戶的獨特需求

原创 網絡IO模型(BIO,NIO,AIO)

網絡IO模型 I/O 模型簡單的理解:就是用什麼樣的通道進行數據的發送和接收,很大程度上決定了程序通信的性能.Java共支持3種網絡編程模型/IO模式:BIO、NIO、AIO Java BIO : 同步並阻塞(傳統阻塞型),服務器實現模式爲

原创 JAVA多線程(八) Condition源碼分析

Condition接口 Condition是一個接口,其提供的就兩個核心方法,await和signal方法。分別對應着Object的wait和notify方法。調用Object對象的監視器方法的這兩個方法,需要在同步代碼塊裏面,即必須先獲

原创 JAVA多線程(九) ForkJoin框架 Fork/Join 框架-設計與實現(翻譯自論文《A Java Fork/Join Framework》原作者 Doug Lea)

Fork/Join框架是Java7提供的一個用於並行執行任務的框架,是一個把大任務分割成若干個小任務,最終彙總每個小任務結果後得到大任務結果的框架。 Fork就是把一個大任務切分爲若干子任務並行的執行,Join就是合併這些子任務的執行結果

原创 程序員英語學習(二) 標點符號對應的英語單詞彙總

作爲程序員和各種標點字符打交道基本是每天都會經歷的,但是不會用英語描述出來也是挺尷尬的,所以我這邊彙總以下常用的標點符號,不一定最全,但一定是最符合程序員常用的。  symbol,sign 符號;標誌 = equal sign 等於

原创 linux shell快速入門

Shell 是一個命令行解釋器,它爲用戶提供了一個向 Linux 內核發送請求以便運行程序的界面系統級程序,用戶可以用 Shell 來啓動、掛起、停止甚至是編寫一些程序。 1.shell腳本格式要求 1. 腳本以#!/bin/bash 開

原创 Win10常用快捷鍵彙總

 我個人推薦smart work, 在我的team從來不鼓勵加班,所以如何做高效工作呢,那就是高效利用我們的開發工具,只有熟練的使用武器才能給你減少時間上的浪費,從而帶來一些時間增益。下面我這邊將彙總一些常用工具快捷鍵,可以提高我們工作效率