自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

微服務超全的設計選型參考

開發(fā) 前端
微服務架構(gòu)模式的核心包含如下幾部分:微服務之間的 RPC 通信。Java Chassis 提供了非常高效的通信方式,并支持多協(xié)議擴展,比如最快的 REST 通信模式實現(xiàn), 異步的二進制通信模式 HIGHWAY 。

[[320760]]

 微服務架構(gòu)模式的核心包含如下幾部分:

  • 微服務之間的 RPC 通信。Java Chassis 提供了非常高效的通信方式,并支持多協(xié)議擴展,比如最快的 REST 通信模式實現(xiàn), 異步的二進制通信模式 HIGHWAY 。
  • 分布式微服務實例和服務發(fā)現(xiàn)。結(jié)合 ServiceComb Service Center, 實現(xiàn)分布式、多集群服務發(fā)現(xiàn)能力,以及強大的微服務元數(shù)據(jù)管理能力。
  • 配置外置,動態(tài)、集中的配置管理。能夠使用 ServiceComb Kie, 華為云配置中心、 Nacos、 Apollo 等多種配置中心, 并且和 Spring Boot 配置管理能力完整融合。
  • 分布式故障管理,服務容錯、隔離、熔斷。內(nèi)置故障實例隔離、故障重試、耗時接口隔離等重要分布式故障處理能力??蛇x使用 Hystrix 的 容錯、隔離、熔斷能力, 只需要做簡單的配置。
  • 分布式日志追蹤。提供 Open Tracing 支持。

此外還有性能監(jiān)控,日志記錄系統(tǒng)、健康檢查等。Java Chassis 采用優(yōu)雅的設計模式,實現(xiàn)了上述所有的核心部件的功能,并且使得這些功能 開箱即用。使用 Java Chassis , 開發(fā)者能夠更加聚焦于業(yè)務功能開發(fā),快速的構(gòu)建商業(yè)可用的微服務應用。

Java Chassis 的軟件工程實踐

Java Chassis 在設計的時候, 不僅考慮了如何更好的使用微服務架構(gòu)模式, 還把優(yōu)秀的軟件工程思想融合進來, 幫助開發(fā)者更好的管理信息 資產(chǎn), 提升軟件工程管理能力。

下圖簡單的描述 “以契約為中心” 的核心概念。

 

微服務超全的設計選型參考

 

可以通過 Invocation 獲取到 Java Chassis 的契約等源數(shù)據(jù)信息, 是 Java Chassis 的一個核心對象。

Java Chassis 的運行時架構(gòu)

為了支持軟件工程實踐, Java Chassis 的運行時架構(gòu)是一個啞鈴結(jié)構(gòu), 兩端分別是“編程模型” 和 “通信模型”, 中間是“運行模型”。

 

微服務超全的設計選型參考

 

“編程模型” 面向開發(fā)者寫服務接口的習慣, “通信模型” 面向微服務之間的高效編碼和通信, “運行模型” 基于“契約”, 提供一種服務服務無關 的插拔機制,能夠讓開發(fā)者獨立于業(yè)務實現(xiàn)開發(fā)治理功能,并且靈活的移除和增加功能,以及調(diào)整這些治理功能的處理順序。

“運行模型” 的核心抽象接口是 Handler , 這個接口是一個異步的定義, Java Chassis 運行時模型采用純異步的實現(xiàn), 讓整個系統(tǒng)運行非常 高效。

Java Chassis 微服務應用架構(gòu)

有很多優(yōu)秀的微服務應用架構(gòu)實踐。微服務應用架構(gòu)應該充分考慮系統(tǒng)的彈性, 能夠針對系統(tǒng)的性能瓶頸點進行擴容, 需要考慮應用系統(tǒng)內(nèi)部微服務 拆分的靈活性, 為業(yè)務的變更做好及時調(diào)整。

下圖展示了一個典型的應用架構(gòu)。接入層采用一些網(wǎng)絡基礎設施,比如 DNS , 浮動 IP 等方便用戶采用統(tǒng)一的 URL 訪問系統(tǒng), 或者采用 API 網(wǎng)關等 基礎設施實現(xiàn)系統(tǒng)的能力開放。業(yè)務層包含應用網(wǎng)關, 進行一些認證鑒權、 審計等功能, 經(jīng)過認證的請求被應用網(wǎng)關轉(zhuǎn)發(fā)到微服務系統(tǒng)內(nèi)部。

 

微服務超全的設計選型參考

 

Java Chassis 微服務技術選型

Java 語言擁有龐大的技術體系和標準, 并且廣泛的應用到業(yè)務的系統(tǒng)的各個方面。和 Java Chassis 有緊密關系的技術包括 JSP/Servlet 標準 和容器, Spring 和 Spring Boot 技術, 以及 Spring Boot 提供的 REST 開發(fā)框架 Spring MVC。

Java Chassis 和 JSP/Servlet 標準

Java Chassis 不依賴于 JSP/Servlet 標準, 可以基于 Vert.x 的 HTTP 實現(xiàn), 提供非常輕量級和高效的 REST 服務, 在性能要求高的核心 業(yè)務場景, 使用這種輕量級的技術非常合適。這種場景下, 沒有完整的實現(xiàn) JSP/Servlet 相關接口, 比如 HttpServletRequest, HttpServletResponse 等。 servicecomb-samples ( https://github.com/apache/servicecomb-samples/tree/master/porter_lightweight ) 提供了一個完整的使用這種部署模式的例子。

Java Chassis 可以部署運行于 JSP/Servlet 容器里面, 在這個場景下, Java Chassis 的核心部件就是一個 Servlet , 在這個 Servlet 里面 實現(xiàn)了 Java Chassis 的核心 RPC 系統(tǒng)。采用 JSP/Servlet 容器運行 Java Chassis, 業(yè)務請求首先經(jīng)過容器的 HTTP 實現(xiàn), 然后經(jīng)過 Filter, 進入 Java Chassis 的 RestServlet , 運行 Java Chassis 的運行時模型 (Handlers) , 進入業(yè)務接口處理。

Java Chassis 和 Spring、Spring Boot

Java Chassis 目前依賴于 Spring, 但是從設計上是可以獨立于 Spring 運行的。Spring 是被廣泛使用的技術, 非常輕量級, 在 Java Chassis 中可以直接使用 Spring 相關的技術。Java Chassis 不依賴于 Spring Boot, 但是可以將 Java Chassis 運行于 Spring Boot 基礎之上。

Spring Boot 2 開始也提供了多種運行環(huán)境支持, WebApplicationType.NONE, WebApplicationType.SERVLET, WebApplicationType.REACTIVE, Java Chassis 可以集成 NONE, SERVLET 兩種模式。在 NONE 模式下集成 Java Chassis, 和 Spring Boot 自身的 REACTIVE 非常類似, 但是比 Spring Boot 的 REACTIVE 運行更加高效, 并且支持早期的 RestTemplate API 和 RPC API 來訪問服務。

  • Spring MVC

Java Chassis 繼承了 Spring MVC 的接口設計, 提供了 Provider 和 Consumer 層面的 API 接口來定義 REST 接口和訪問 REST 接口。但是需要 注意的是, 兩個是完全不同的實現(xiàn), 實現(xiàn)機制也不一樣。Spring Boot 主要基于 Servlet, 實現(xiàn)了 MVC 模式, 不僅可以開發(fā) REST 接口, 還可以 開發(fā)其他 HTTP 功能, 比如重定向, 返回 HTML 頁面等, 還可以通過 @ExceptionHandler, @ControllerAdvice 等機制攔截 Servlet 請求,進行 異常處理。Java Chassis 只實現(xiàn)了 REST 服務定義和調(diào)用, 并且在異常處理機制和請求攔截機制上不一樣。

Java Chassis 與 Spring Cloud

Java Chassis 和 Spring Cloud 都實現(xiàn)了微服務架構(gòu)模式, 相比而言, Java Chassis 是一個更加緊湊的實現(xiàn), 開箱即用, 而 Spring Cloud 則是 相對松散的實現(xiàn), 整合了大量的 Hystrix 組件。

微服務架構(gòu)模式關注微服務內(nèi)部和微服務之間的設計, 也關注微服務與微服務基礎設施之間的關系。Java Chassis 微服務基礎設施包括服務注冊和發(fā)現(xiàn), 服務配置管理, 灰度發(fā)布和契約管理等功能。Spring Cloud 可以使用 spring-cloud-huawei ( https://github.com/huaweicloud/spring-cloud-huawei ) 來使用 Java Chassis 相關的微服務基礎設施。

 

微服務超全的設計選型參考

 

責任編輯:華軒 來源: 今日頭條
相關推薦

2023-08-27 16:13:50

架構(gòu)微服務器

2022-09-09 16:27:09

微服務架構(gòu)數(shù)據(jù)存儲

2020-06-09 22:05:44

NGINX微服務架構(gòu)

2021-01-04 09:35:55

微服務架構(gòu)配置中心

2019-10-24 11:17:57

架構(gòu)運維技術

2020-04-20 15:00:22

DevOps工具代碼

2019-10-16 08:41:46

微服務架構(gòu)Nginx

2020-11-25 09:56:48

架構(gòu)運維技術

2021-08-30 11:36:23

微服務開發(fā)技術

2018-07-12 09:59:39

microServicmockautoTest

2022-08-14 07:04:44

微服務架構(gòu)設計模式

2020-09-11 09:44:04

微服務分布式鏈路

2015-10-22 10:28:45

MySQL高可用方案

2020-09-14 06:47:54

Java中Websocket

2019-10-21 16:54:48

數(shù)據(jù)庫設計SQL

2022-08-08 13:55:47

通信設計模式微服務

2022-08-07 22:11:25

微服務架構(gòu)

2021-02-24 14:01:13

微服務開發(fā)框架

2022-06-07 09:00:00

微服務數(shù)據(jù)庫Microstrea

2019-04-04 09:11:41

微服務CDPLinkflow
點贊
收藏

51CTO技術棧公眾號