原创 聲明式調用 —— SpringCloud OpenFeign

Feign 簡介 Spring Cloud Feign 是一個 HTTP 請求調用的輕量級框架,可以以 Java 接口註解的方式調用 HTTP 請求,而不用通過封裝 HTTP 請求報文的方式直接調用 Feign 通過處理註解,將請求模板化,

原创 負載均衡 —— SpringCloud Netflix Ribbon

Ribbon 簡介 Ribbon 是 Netfix 客戶端的負載均衡器,可對 HTTP 和 TCP 客戶端的行爲進行控制。爲 Ribbon 配置服務提供者地址後,Ribbon 就可以基於某種負載均衡算法自動幫助服務消費者去請求。Ribbon

原创 微服務網關 —— SpringCloud Gateway

Gateway 簡介 Spring Cloud Gateway 基於 Spring 5、Spring Boot 2 和 Project Reactor 等技術,是在 Spring 生態系統之上構建的 API 網關服務,Gateway 旨在提

原创 註冊中心/配置管理 —— SpringCloud Consul

Consul 概述 Consul 是一個可以提供服務發現,健康檢查,多數據中心,key/Value 存儲的分佈式服務框架,用於實現分佈式系統的發現與配置。Cousul 使用 Go 語言實現,因此天然具有可移植性,安裝包僅包含一個可執行文件,

原创 註冊中心 —— SpringCloud Netflix Eureka

Eureka 簡介 Eureka 是一個基於 REST 的服務發現組件,SpringCloud 將它集成在其子項目 spring-cloud-netflix 中,以實現 SpringCloud 的服務註冊與發現,同時提供了負載均衡、故障轉移

原创 註冊中心/配置管理 —— SpringCloud Alibaba Nacos

Nacos 簡介 Nacos 是一個易於使用的動態服務發現、配置和服務管理平臺,用於構建雲原生的應用程序 Nacos 的關鍵特性包括以下幾項: 服務發現和服務健康監測:服務提供者使用原生 SDK、OpenAPI 等註冊服務後,服務消費者可

原创 MyBatis 核心組件 —— Configuration

概述 Mybatis 的核心組件如下所示: Configuration:用於描述 MyBatis 的主配置信息,其他組件需要獲取配置信息時,直接通過 Configuration 對象獲取。除此之外,MyBatis 在應用啓動時,將 Map

原创 MyBatis 常用工具類

SQL 類 MyBatis 提供了一個 SQL 工具類,使用這個工具類,我們可以很方便在 Java 代碼動態構建 SQL 語句 String newSql = new SQL() ({ SELECT("P.ID, P.USERNAME,

原创 Java 網絡編程 —— 安全網絡通信

SSL 簡介 SSL(Secure Socket Layer,安全套接字層)是一種保證網絡上的兩個節點進行安全通信的協議。IETF(Interet Engineering Task Force)國際組織對 SSL 作了標準化,制定了 RFC

原创 Java 網絡編程 —— RMI 框架

概述 RMI 是 Java 提供的一個完善的簡單易用的遠程方法調用框架,採用客戶/服務器通信方式,在服務器上部署了提供各種服務的遠程對象,客戶端請求訪問服務器上遠程對象的方法,它要求客戶端與服務器端都是 Java 程序 RMI 框架採用代

原创 Java 網絡編程 —— 基於 UDP 的數據報和套接字

UDP 簡介 UDP(User Datagram Protocol,用戶數據報協議)是傳輸層的另一種協議,比 TCP 具有更快的傳輸速度,但是不可靠。UDP 發送的數據單元被稱爲 UDP 數據報,當網絡傳輸 UDP 數據報時,無法保證數據報

原创 Java 網絡編程 —— 客戶端協議處理框架

概述 Java 對客戶程序的通信過程進行了抽象,提供了通用的協議處理框架,該框架封裝了 Socket,主要包括以下類: URL 類:統一資源定位符,表示客戶程序要訪問的遠程資源 URLConnection 類:表示客戶程序與遠程服務器的連

原创 Java 網絡編程 —— 創建非阻塞的 HTTP 服務器

HTTP 概述 HTTP 客戶程序必須先發出一個 HTTP 請求,然後才能接收到來自 HTTP 服器的響應,瀏覽器就是最常見的 HTTP 客戶程序。HTTP 客戶程序和 HTTP 服務器分別由不同的軟件開發商提供,它們都可以用任意的編程語言

原创 Java 網絡編程 —— 實現非阻塞式的客戶端

創建阻塞的 EchoClient 客戶程序一般不需要同時建立與服務器的多個連接,因此用一個線程,按照阻塞模式運行就能滿足需求 public class EchoClient { private SocketChannel

原创 Java 網絡編程 —— 異步通道和異步運算結果

從 JDK7 開始,引入了表示異步通道的 AsynchronousSockerChannel 類和 AsynchronousServerSocketChannel 類,這兩個類的作用與 SocketChannel 類和 ServerSock