国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Nginx、Kong、Apisix、Gateway網(wǎng)關(guān)比較

這篇具有很好參考價值的文章主要介紹了Nginx、Kong、Apisix、Gateway網(wǎng)關(guān)比較。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

Nginx

Nginx是一款高性能的http 服務(wù)器/反向代理服務(wù)器及電子郵件(IMAP/POP3)代理服務(wù)器。能夠支撐 5 萬并發(fā)鏈接,并且 cpu、內(nèi)存等資源消耗卻非常低,運行非常穩(wěn)定,由C語言編寫。支持負(fù)載均衡、限流熔斷、熱部署、安全認(rèn)證等。

應(yīng)用場景

  1. http 服務(wù)器:獨立提供 http 服務(wù),用于做網(wǎng)頁靜態(tài)服務(wù)器
  2. 虛擬主機(jī):可以實現(xiàn)在一臺服務(wù)器虛擬出多個網(wǎng)站
  3. 反向代理,負(fù)載均衡:多臺服務(wù)器集群可以使用 nginx 做反向代理

缺陷

  1. Nginx不支持集群管理
  2. Nginx不支持配置的熱加載。修改配置重新加載Nginx的時間可能需要半個小時以上

正向代理服務(wù)器位于客戶端和服務(wù)器之間,為了向服務(wù)器獲取數(shù)據(jù),客戶端要向代理服務(wù)器發(fā)送一個請求,并指定目標(biāo)服務(wù)器,代理服務(wù)器將目標(biāo)服務(wù)器返回的數(shù)據(jù)轉(zhuǎn)交給客戶端。正向代理代理的是客戶端,我們需要在客戶端進(jìn)行一些代理的設(shè)置。

反向代理我們只需要將請求發(fā)送到反向代理服務(wù)器,由反向代理服務(wù)器去選擇目標(biāo)服務(wù)器獲取數(shù)據(jù)后,在返回給客戶端,此時反向代理服務(wù)器和目標(biāo)服務(wù)器對外就是一個服務(wù)器,暴露的是代理服務(wù)器地址,隱藏了真實服務(wù)器IP地址。反向代理代理的是服務(wù)器,作為客戶端的我們是無法感知到服務(wù)器的真實存在的。

Kong?

Kong是一款基于OpenResty(Nginx + Lua模塊)編寫的高可用、易擴(kuò)展的Gateway項目。Kong是基于Nginx和Apache Cassandra或PostgreSQL構(gòu)建的,能提供易于使用的RESTful API來操作和配置API管理系統(tǒng),所以它可以水平擴(kuò)展多個Kong服務(wù)器,通過前置的負(fù)載均衡配置把請求均勻地分發(fā)到各個Server,來應(yīng)對大批量的網(wǎng)絡(luò)請求。解決了Nginx問題,支持集群部署和熱加載。

支持使用插件進(jìn)行定制功能,但插件基于lua編寫,不易維護(hù),目前官網(wǎng)提供的基礎(chǔ)插件有:HTTP基本認(rèn)證、密鑰認(rèn)證、文件日志、API請求限流、請求轉(zhuǎn)發(fā)以及Nginx監(jiān)控。

相關(guān)組件

  1. Kong Server:基于nginx的服務(wù)器,用來接收API請求。
  2. Apache Cassandra/PostgreSQL:用來存儲操作數(shù)據(jù)。
  3. Kong dashboard:官方推薦UI管理工具,當(dāng)然,也可以使用restfull方式管理admin api

Kong的網(wǎng)關(guān)架構(gòu)

  1. Kong核心基于OpenResty構(gòu)建,實現(xiàn)了請求/響應(yīng)的Lua處理化
  2. Kong插件攔截請求/響應(yīng)
  3. Kong Restful管理API提供了API/API消費者/插件的管理
  4. 數(shù)據(jù)中心用于存儲Kong集群節(jié)點信息、API、消費者、插件等信息,目前提供了PostgreSQL和Cassandra支持,如果需要高可用建議使用Cassandra
  5. Kong集群中的節(jié)點通過gossip協(xié)議自動發(fā)現(xiàn)其他節(jié)點,當(dāng)通過一個Kong節(jié)點的管理API進(jìn)行一些變更時也會通知其他節(jié)點。每個Kong節(jié)點的配置信息是會緩存的,如插件,那么當(dāng)在某一個Kong節(jié)點修改了插件配置時,需要通知其他節(jié)點配置的變更。

缺陷

  1. Kong需要依賴于PostgreSQL或Cassandra數(shù)據(jù)庫,這使Kong的整個架構(gòu)非常臃腫,會帶來高可用的問題。如果數(shù)據(jù)庫故障了,那么整個API網(wǎng)關(guān)都會出現(xiàn)故障。
  2. Kong的路由使用的是遍歷查找,當(dāng)網(wǎng)關(guān)內(nèi)有超過上千個路由時,它的性能就會出現(xiàn)比較急劇的下降。

APISIX

Apache APISIX基于 nginx(openresty)和 Lua 實現(xiàn)的一款國產(chǎn)軟件,是一個動態(tài)、實時、高性能的云原生API網(wǎng)關(guān),提供了負(fù)載均衡、動態(tài)上游、灰度發(fā)布、服務(wù)熔斷、身份認(rèn)證、可觀測性等豐富的流量管理功能??梢允褂肁pacheAPISIX處理傳統(tǒng)的南北向流量,也可以處理服務(wù)間的東西向流量。同時,它也支持作為K8s Ingress Controller來使用。

主要特性

  1. 全動態(tài)能力:APISIX支持熱加載
  2. 高性能路由匹配算法:使用壓縮前綴樹RadixTree,當(dāng)對某個請求進(jìn)行匹配時,RadixTree將采用層層遞進(jìn)的方式進(jìn)行匹配,其復(fù)雜度為O(K)(K是路由中URI的長度,與API數(shù)量多少無關(guān))。當(dāng)進(jìn)行IP匹配時使用Hash的方式進(jìn)行查找,時間復(fù)雜度為O(1),性能更高。
  3. 精細(xì)化路由:APISIX支持使用Nginx內(nèi)置變量做為路由的匹配條件,你可以自定義匹配函數(shù)來過濾請求,匹配路由。
  4. 運維友好:APISIX支持與以下工具和平臺集成:Zipkin、SkyWalking、Consul、Nacos、Eureka。通過APISIXDashboard控制臺,運維人員可以通過友好且直觀的UI配置APISIX。
  5. 支持多語言插件:目前官網(wǎng)支持80多種插件(grpc、serverless、skywalking、kafka、es等),也支持通過PluginRunner或者Wasm(運行字節(jié)碼文件)自定義插件。

APISIX網(wǎng)關(guān)架構(gòu)

Nginx、Kong、Apisix、Gateway網(wǎng)關(guān)比較,分布式框架,負(fù)載均衡,運維,分布式

數(shù)據(jù)面:它是真正去處理來自客戶端請求的一個組件,去處理用戶的真實流量,包括像身份驗證、證書卸載、日志分析和可觀測性等功能。數(shù)據(jù)面本身并不會存儲任何數(shù)據(jù),所以它是一個無狀態(tài)結(jié)構(gòu)。如果監(jiān)聽etcd的配置信息變更,APISIX就可以將獲取最新配置的時間控制在毫秒級別之內(nèi),達(dá)到實時生效。

控制面:使用etcd存儲配置,能更好地體現(xiàn)高可用特性,擁有低于毫秒級別的變化通知。

應(yīng)用場景

負(fù)載均衡和API網(wǎng)關(guān)

具備高性能、安全等特性,在負(fù)載均衡的服務(wù)能力上也更優(yōu)秀。從Nginx切換到APISIX不僅性能不會下降,而且可以享受到動態(tài)、統(tǒng)一管理等特性帶來的管理效率的提升。

微服務(wù)網(wǎng)關(guān)

支持多種語言編寫擴(kuò)展插件,可以解決東西向微服務(wù)API網(wǎng)關(guān)面臨的主要問題(異構(gòu)多語言和通用問題)。內(nèi)置支持的服務(wù)注冊中心有Nacos、Eureka等,可以平滑替代Zuul、Gateway等微服務(wù)API網(wǎng)關(guān)。(東西向微服務(wù)指系統(tǒng)內(nèi)各個微服務(wù)間的調(diào)用)

K8s Ingress

官網(wǎng)的 Ingress主要基于Nginx配置文件的方式,使用APISIX Ingress Controller可以支持全動態(tài),無需重啟加載。同時繼承了APISIX的所有優(yōu)勢,還支持原生KubernetesCRD,方便用戶遷移。

Gateway

API網(wǎng)關(guān)為微服務(wù)架構(gòu)的系統(tǒng)提供簡單、有效 且統(tǒng)一的API路由管理,作為系統(tǒng)的統(tǒng)一入口,提供內(nèi)部服務(wù)的路由中轉(zhuǎn),給客戶端提供統(tǒng)一的服務(wù),可以實現(xiàn)一些和業(yè)務(wù)沒有耦合的公用邏輯,主要功能包含認(rèn)證、鑒權(quán)、路由轉(zhuǎn)發(fā)、安全策略、防刷、流量控制、監(jiān)控日志等。

Gateway 是Spring Cloud官方推出的第二代網(wǎng)關(guān)框架,定位于取代 Netflix Zuul。旨在為微服務(wù)架構(gòu)提供一種簡單且有效的 API 路由的管理方式,并基于Filter 的方式提供網(wǎng)關(guān)的基本功能,例如說安全認(rèn)證、監(jiān)控、限流等等。Spring Cloud Gateway 是由 WebFlux + Netty + Reactor 實現(xiàn)的響應(yīng)式的 API 網(wǎng)關(guān)。

相關(guān)概念

路由:路由是網(wǎng)關(guān)中最基礎(chǔ)的部分,路由信息包括一個ID、一個目的URI、一組斷言工廠、一組Filter組成

斷言:斷言函數(shù)允許開發(fā)者去定義匹配Http request中的任何信息,比如請求頭和參數(shù)等。如果斷言為真,則說明請求的URL和配置的路由匹配

過濾器:分為Gateway FilIer和Global Filter。Filter可以對請求和響應(yīng)進(jìn)行處理。默認(rèn)支持的過濾器有:AddRequestHeader請求頭,AddRequestParameter請求參數(shù)、RequestRateLimiter限流、Hystrix熔斷、Retry重試等20多種過濾器,也支持自定義過濾器。

# 相關(guān)配置
spring:
  cloud:
    gateway:
      #設(shè)置路由:路由id、路由到微服務(wù)的uri、斷言
      routes:
        - id: order_route  #路由ID,全局唯一,建議配置服務(wù)名
          uri: lb://mall-order  #lb 整合負(fù)載均衡器ribbon,loadbalancer
          predicates:
            - Path=/order/**   # 斷言,路徑相匹配的進(jìn)行路由
          filters: #過濾器
			‐ AddRequestHeader=X‐Request‐color, red  #添加請求頭過濾

工作原理

跟 Zuul 的差不多,最大的區(qū)別就是 Gateway 的 Filter 只有 pre和 post 兩種。

客戶端向 Spring Cloud Gateway 發(fā)出請求,如果請求與網(wǎng)關(guān)程序定義的路由匹配,則該請求就會被發(fā)送到網(wǎng)關(guān)Web 處理程序, 先執(zhí)行pre過濾器,再執(zhí)行代理請求,代理請求完成后執(zhí)行post 過濾器邏輯。

網(wǎng)關(guān)選型

云原生領(lǐng)域APISIX更加優(yōu)于Kong和Nginx,Apisix 是對標(biāo)云原生網(wǎng)關(guān)的,嚴(yán)格來說和 Spring Cloud Gateway 這種業(yè)務(wù)形網(wǎng)關(guān)沒什么可比性。

如果是小公司,架構(gòu)簡單,業(yè)務(wù)單一,則使用Gateway作為業(yè)務(wù)網(wǎng)關(guān)完全夠用,而且還便于定制化擴(kuò)展。若架構(gòu)復(fù)雜,業(yè)務(wù)流量大,k8s容器化部署,對標(biāo)云原生的則可以使用Apisix。也可以Apisix和gateway搭配使用,流量網(wǎng)關(guān)使用Apisix,業(yè)務(wù)網(wǎng)關(guān)使用gateway,使用流量網(wǎng)關(guān)對公網(wǎng)入口流量進(jìn)行轉(zhuǎn)發(fā)到業(yè)務(wù)網(wǎng)關(guān),再由業(yè)務(wù)網(wǎng)關(guān)將請求轉(zhuǎn)發(fā)至各個系統(tǒng)。

Nginx、Kong、Apisix、Gateway網(wǎng)關(guān)比較,分布式框架,負(fù)載均衡,運維,分布式文章來源地址http://www.zghlxwxcb.cn/news/detail-627614.html

到了這里,關(guān)于Nginx、Kong、Apisix、Gateway網(wǎng)關(guān)比較的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 分布式系統(tǒng)網(wǎng)關(guān)和sentinel

    1.網(wǎng)關(guān) 作用:網(wǎng)關(guān)是給分布式系統(tǒng)進(jìn)行請求路由分配的服務(wù) 功能: 請求路由 請求過濾 請求鑒權(quán) 流量控制 統(tǒng)一日志 2.搭建網(wǎng)關(guān)(微服務(wù)) 2.1依賴、配置文件、啟動類 2.2配置路由(id,斷言,url) 常用的斷言標(biāo)準(zhǔn): path路徑斷言 method方法斷言 host 域名斷言 2.3過濾器 路由過濾

    2024年02月02日
    瀏覽(20)
  • 架構(gòu)師系列- 定時任務(wù)(一)- 單機(jī)和分布式定時任務(wù)比較

    架構(gòu)師系列- 定時任務(wù)(一)- 單機(jī)和分布式定時任務(wù)比較

    定時任務(wù)概述 在很多應(yīng)用中我們都是需要執(zhí)行一些定時任務(wù)的,比如定時發(fā)送短信,定時統(tǒng)計數(shù)據(jù),在實際使用中我們使用什么定時任務(wù)框架來實現(xiàn)我們的業(yè)務(wù),定時任務(wù)使用中會遇到哪些坑,如何最大化的提高定時任務(wù)的性能。 我們這里主要介紹單機(jī)和分布式兩大類的解

    2024年04月27日
    瀏覽(30)
  • 【重點】springcloud分布式中g(shù)ateway+shiro+jwt認(rèn)證流程(思路)

    項目原來是單體架構(gòu),現(xiàn)拆分成spring cloud微服務(wù)架構(gòu)。 如下兩個方法的 切入點 都是在ShiroConfig 配置類(@Configuration)中@Bean注入的 : ?? ?1 shiroFilterFactoryBean - ? JwtFilter 中的onAccessDenied() ?? ??? ??? ??? ? - 無token:直接放過 ?? ??? ??? ??? ??? ??? ?-- 登錄/login?

    2024年02月10日
    瀏覽(14)
  • Gateway+Springsecurity+OAuth2.0+JWT 實現(xiàn)分布式統(tǒng)一認(rèn)證授權(quán)!

    Gateway+Springsecurity+OAuth2.0+JWT 實現(xiàn)分布式統(tǒng)一認(rèn)證授權(quán)!

    目錄 1. OAuth2.0授權(quán)服務(wù) 2. 資源服務(wù) 3. Gateway網(wǎng)關(guān) 4. 測試 ? 在SpringSecurity+OAuth2.0 搭建認(rèn)證中心和資源服務(wù)中心-CSDN博客??????? 基礎(chǔ)上整合網(wǎng)關(guān)和JWT實現(xiàn)分布式統(tǒng)一認(rèn)證授權(quán)。 ? 大致流程如下: 1、客戶端發(fā)出請求給網(wǎng)關(guān)獲取令牌 2、網(wǎng)關(guān)收到請求,直接轉(zhuǎn)發(fā)給授權(quán)服務(wù)

    2024年01月24日
    瀏覽(19)
  • 分布式調(diào)用與高并發(fā)處理 Nginx

    分布式調(diào)用與高并發(fā)處理 Nginx

    Nginx是一款輕量級的Web服務(wù)器、反向代理服務(wù)器,由于它的內(nèi)存占用少,啟動極快,高并發(fā)能力強,在互聯(lián)網(wǎng)項目中廣泛應(yīng)用。Nginx 專為性能優(yōu)化而開發(fā),使用 異步非阻塞事件驅(qū)動模型 。 常見服務(wù)器 Apache Tomcat ? 沒有Nginx的情況 ? 有了Nginx的話 ?HTTP服務(wù)器 Nginx本身也是一個

    2024年02月15日
    瀏覽(20)
  • 分布式 - 服務(wù)器Nginx:基礎(chǔ)系列之Nginx配置文件結(jié)構(gòu)

    分布式 - 服務(wù)器Nginx:基礎(chǔ)系列之Nginx配置文件結(jié)構(gòu)

    Nginx的核心配置文件默認(rèn)是放在 /usr/local/nginx/conf/nginx.conf : nginx.conf 配置文件中默認(rèn)有三大塊:全局塊、events塊、http塊。其中http 塊中可以配置多個server塊,每個server塊又可以配置多個location塊。 01. user 指令 user指令也可以用于指定Nginx服務(wù)器worker進(jìn)程的運行用戶和用戶組。它

    2024年02月10日
    瀏覽(32)
  • 分布式 - 服務(wù)器Nginx:一小時入門系列之Nginx環(huán)境準(zhǔn)備

    1. Nginx 環(huán)境準(zhǔn)備 虛擬機(jī)鏡像,基于Centos7,網(wǎng)盤鏈接: https://pan.baidu.com/s/1NmCR-vdAcZLouRRn9V1yTA 密碼: 1b60,虛擬機(jī)的用戶名/密碼:root/123456,使用的環(huán)境和應(yīng)用放置在/home目錄下: 目錄 簡介 說明 AdminLTE-3.2.0 靜態(tài)web后臺管理系統(tǒng) 靜態(tài)web的配置演示 apps/ruoyi-admin.jar 若依后臺管理系統(tǒng)

    2024年02月14日
    瀏覽(19)
  • [架構(gòu)之路-221]:鴻蒙系統(tǒng)和安卓系統(tǒng)的比較:微內(nèi)核VS宏內(nèi)核, 分布式VS單體式

    [架構(gòu)之路-221]:鴻蒙系統(tǒng)和安卓系統(tǒng)的比較:微內(nèi)核VS宏內(nèi)核, 分布式VS單體式

    目錄 一、鴻蒙系統(tǒng)和安卓系統(tǒng)的系統(tǒng)架構(gòu) 1.1?鴻蒙系統(tǒng)的分層架構(gòu) 1.2?安卓系統(tǒng)的分層架構(gòu) 1.3?鴻蒙系統(tǒng)和安卓系統(tǒng)是操作系統(tǒng)嗎? 二、鴻蒙系統(tǒng)和安卓系統(tǒng)的系統(tǒng)架構(gòu)比較 2.1 它們與Linux操作系統(tǒng)的關(guān)系 2.2 架構(gòu)比較 三、操作系統(tǒng)基礎(chǔ) 3.1 微內(nèi)核架構(gòu) 3.2 宏內(nèi)核架構(gòu) 3.3 傳統(tǒng)

    2024年02月07日
    瀏覽(22)
  • Windows服務(wù)器設(shè)置Nginx實現(xiàn)分布式服務(wù)

    Windows服務(wù)器設(shè)置Nginx實現(xiàn)分布式服務(wù)

    下載Nginx-1.16.1版本。解壓到如下目錄: 設(shè)置環(huán)境變量: 檢查版本: 啟動nginx.exe ,出現(xiàn)黑框一閃而過,進(jìn)程中出現(xiàn)如下情況代表啟動成功: 下載wiremock-standalone-2.25.1.jar,可以使用Maven配置pom.xml下載。注意下載standalone版本。新建ServerA、ServerB兩個目錄,分別拷貝jar,新建啟動

    2024年02月07日
    瀏覽(29)
  • 分布式 - 服務(wù)器Nginx:基礎(chǔ)系列之Nginx簡介 | 下載安裝 | 啟動和停止服務(wù)

    分布式 - 服務(wù)器Nginx:基礎(chǔ)系列之Nginx簡介 | 下載安裝 | 啟動和停止服務(wù)

    Nginx是一個高性能的Web服務(wù)器,同時也是一個反向代理服務(wù)器。它最初是為了解決C10K問題而開發(fā)的,即如何讓一個服務(wù)器同時處理成千上萬個并發(fā)連接。Nginx采用了事件驅(qū)動的異步非阻塞處理方式,能夠高效地處理大量并發(fā)連接,因此被廣泛應(yīng)用于高并發(fā)的Web應(yīng)用場景中。 此

    2024年02月10日
    瀏覽(57)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包