0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

分布式網(wǎng)關(guān)介紹及動(dòng)態(tài)路由實(shí)現(xiàn)

jf_78858299 ? 來(lái)源:牧羊人的方向 ? 作者:大唐小少 ? 2023-05-04 17:37 ? 次閱讀

服務(wù)網(wǎng)關(guān)作為分布式系統(tǒng)對(duì)外服務(wù)的統(tǒng)一入口,設(shè)計(jì)功能上具有路由轉(zhuǎn)發(fā)、熔斷限流、安全認(rèn)證以及監(jiān)控等功能。本文簡(jiǎn)要介紹服務(wù)網(wǎng)關(guān)的基本概念,以及動(dòng)態(tài)路由的實(shí)現(xiàn)方式,以加深了解。

1、什么是分布式服務(wù)網(wǎng)關(guān)

1.1 服務(wù)網(wǎng)關(guān)的基本概念

網(wǎng)關(guān)是客戶端訪問(wèn)系統(tǒng)請(qǐng)求及系統(tǒng)響應(yīng)所要經(jīng)過(guò)的網(wǎng)絡(luò)關(guān)口,網(wǎng)關(guān)封裝了系統(tǒng)內(nèi)部功能架構(gòu),為每個(gè)客戶端訪問(wèn)提供不同的接口。網(wǎng)關(guān)在功能上主要是進(jìn)行請(qǐng)求過(guò)濾,具體包括請(qǐng)求路由轉(zhuǎn)發(fā)、安全認(rèn)證、流量控制、負(fù)載均衡、日志、監(jiān)控等功能。

在分布式系統(tǒng)尤其是微服務(wù)架構(gòu)中,一個(gè)應(yīng)用系統(tǒng)被拆分為多個(gè)服務(wù),但是像路由請(qǐng)求、安全認(rèn)證、流量控制、日志和監(jiān)控等功能對(duì)每個(gè)服務(wù)來(lái)說(shuō)都是標(biāo)準(zhǔn)的功能模塊。如果沒(méi)有服務(wù)網(wǎng)關(guān),那么每個(gè)服務(wù)就需要單獨(dú)實(shí)現(xiàn)一套這樣的模塊,功能重復(fù)并且不利于統(tǒng)一管理。另外,多個(gè)微服務(wù)可能部署在不同的服務(wù)器上,傳統(tǒng)的直接訪問(wèn)應(yīng)用服務(wù)的方式增加了客戶端的復(fù)雜度,因此需要一個(gè)統(tǒng)一的客戶端訪問(wèn)入口進(jìn)行標(biāo)準(zhǔn)化管理。

圖片

1.2 服務(wù)網(wǎng)關(guān)的作用及功能

服務(wù)網(wǎng)關(guān)作為客戶端請(qǐng)求的統(tǒng)一入口,具備以下功能:

  1. 動(dòng)態(tài)路由 :根據(jù)請(qǐng)求路由到對(duì)應(yīng)的服務(wù)上去,如果服務(wù)不可用還會(huì)有重試機(jī)制
  2. 負(fù)載均衡 :多服務(wù)器提供同一種服務(wù),網(wǎng)關(guān)會(huì)從配置中心拉取各服務(wù)注冊(cè)信息,然后將請(qǐng)求負(fù)載到這些服務(wù)器進(jìn)行處理
  3. 流量控制 :限制并發(fā)請(qǐng)求的流量,避免內(nèi)部系統(tǒng)受到?jīng)_擊
  4. 安全認(rèn)證 :網(wǎng)關(guān)對(duì)相關(guān)權(quán)限驗(yàn)證、脫敏和流量清洗、簽名和黑名單功能
  5. 熔斷降級(jí) :當(dāng)服務(wù)不可用或者訪問(wèn)量過(guò)大,網(wǎng)關(guān)可以將請(qǐng)求做降級(jí),將流量打到其他服務(wù)器或者做其他處理,提示用戶暫時(shí)不可用
  6. 灰度發(fā)布 :先進(jìn)行小部分服務(wù)器升級(jí),通過(guò)網(wǎng)關(guān)將少量的服務(wù)路由到已升級(jí)的服務(wù)器用來(lái)測(cè)試服務(wù)是否正常,大部分請(qǐng)求依舊在老版本服務(wù)器上處理
  7. 日志服務(wù) :服務(wù)訪問(wèn)情況監(jiān)控和統(tǒng)計(jì)報(bào)表,請(qǐng)求的吞吐量、并發(fā)數(shù)、流量監(jiān)控、性能監(jiān)控和日常告警等
1.3 常見(jiàn)的分布式服務(wù)網(wǎng)關(guān)

常見(jiàn)的分布式服務(wù)網(wǎng)關(guān)有以下幾種:

  1. Nginx+Lua :基于Nginx的服務(wù)端網(wǎng)關(guān)方案,實(shí)現(xiàn)web服務(wù)器、反向代理、負(fù)載均衡、動(dòng)靜分離等功能;
  2. Kong :基于OpenResty實(shí)現(xiàn),是一款高性能、云原生、可擴(kuò)展的網(wǎng)關(guān)系統(tǒng);
  3. SpringCloud Zuul :基于Netty實(shí)現(xiàn)了異步IO,可自定義過(guò)濾器來(lái)處理請(qǐng)求,同時(shí)提供了動(dòng)態(tài)路由、監(jiān)控、彈性負(fù)載和安全功能
  4. SpringCloud Gateway :基于Spring WebFlux,提供統(tǒng)一的路由方式,并且基于Filter鏈的方式提供了網(wǎng)關(guān)的基本功能,如安全、限流、監(jiān)控等
1.3.1 Nginx+Lua實(shí)現(xiàn)

在《簡(jiǎn)單聊聊Nginx實(shí)現(xiàn)原理》中對(duì)Nginx的功能做了簡(jiǎn)單的介紹,可以實(shí)現(xiàn)反向代理、負(fù)載均衡、動(dòng)靜分離等功能。

圖片

1.3.2 Kong

Kong基于OpenResty實(shí)現(xiàn) ,OpenResty是基于Nginx的庫(kù),它將Nginx進(jìn)行封裝,使用Lua腳本就可以對(duì)Nginx進(jìn)行插件化管理。

  • 使用PostgreSQL或Cassandra來(lái)對(duì)其配置文件進(jìn)行持久化存儲(chǔ),使得可以進(jìn)行集群管理
  • 提供了插件模型,使用 Lua腳本來(lái)對(duì)Nginx整個(gè)生命周期進(jìn)行擴(kuò)展 。實(shí)現(xiàn)了一些常用插件( 限流、熔斷、驗(yàn)權(quán)等 )
  • 提供了Http/Rest的接口來(lái)實(shí)現(xiàn)配置,使得其可以更簡(jiǎn)單的構(gòu)建圖形化界面進(jìn)行動(dòng)態(tài)配置

圖片

1.3.3 Spring Cloud Zuul

Zuul是來(lái)自Netflix的基于JVM的路由器和服務(wù)器端負(fù)載均衡器,為微服務(wù)架構(gòu)提供了前門(mén)保護(hù)的作用,同時(shí)將權(quán)限控制這些較重的非業(yè)務(wù)邏輯內(nèi)容遷移到服務(wù)路由層面,使得服務(wù)集群主體能夠具備更高的可復(fù)用性和可測(cè)試性。官方定義如下:

Zuul是在云平臺(tái)上提供動(dòng)態(tài)路由,監(jiān)控,彈性,安全等邊緣服務(wù)的框架。Zuul 相當(dāng)于是設(shè)備和 Netflix 流應(yīng)用的 Web 網(wǎng)站后端所有請(qǐng)求的前門(mén)。即Zuul為微服務(wù)集群提供代理、過(guò)濾和路由等功能。

Zuul會(huì)把外部的請(qǐng)求過(guò)程分為不同階段,每個(gè)階段提供一系列的過(guò)濾器。這些過(guò)濾器實(shí)現(xiàn)了以下功能:

  1. 身份驗(yàn)證和安全性 :對(duì)需要身份驗(yàn)證的資源進(jìn)行過(guò)濾,拒絕處理不符合身份認(rèn)證的請(qǐng)求。
  2. 觀察和監(jiān)控 :跟蹤重要的數(shù)據(jù),為我們展示準(zhǔn)確的請(qǐng)求狀況
  3. 動(dòng)態(tài)路由 :將請(qǐng)求動(dòng)態(tài)路由到不同的服務(wù)集群
  4. 負(fù)載均衡 :設(shè)置每種請(qǐng)求的處理能力,刪除那些超出限制的請(qǐng)求
  5. 靜態(tài)響應(yīng)處理 :提供靜態(tài)的過(guò)濾器,直接響應(yīng)一些請(qǐng)求,而不將它們轉(zhuǎn)發(fā)到集群內(nèi)部
  6. 路由多樣化 :除了將請(qǐng)求路由到Spring Cloud集群內(nèi)部,還可以將請(qǐng)求路由到其他服務(wù)

圖片

Zuul的 核心原理是一系列filters ,在請(qǐng)求路由合并到用戶處理邏輯的過(guò)程中,這些過(guò)濾器參與驗(yàn)證、加載等過(guò)濾處理。zul定義了四種標(biāo)準(zhǔn)過(guò)濾器類(lèi)型,用于請(qǐng)求的典型生命周期。

  1. PRE:這樣的過(guò)濾器在請(qǐng)求被路由之前被調(diào)用 ??梢岳眠@樣的過(guò)濾器實(shí)現(xiàn)認(rèn)證,選擇集群內(nèi)要求的微服務(wù)器,記錄調(diào)試信息。
  2. ROUTING:該過(guò)濾器將請(qǐng)求路由到微服務(wù) 。此過(guò)濾器用于生成發(fā)送到微服務(wù)的請(qǐng)求,并使用Apachehttp客戶端或Netfilx Ribbon請(qǐng)求微服務(wù)。
  3. POST:在路由到微服務(wù)之后執(zhí)行該過(guò)濾器 。使用此過(guò)濾器可以將標(biāo)準(zhǔn)HTTP Header添加到響應(yīng)中,收集統(tǒng)計(jì)信息和指標(biāo),以及將響應(yīng)從微服務(wù)器發(fā)送到客戶端。
  4. ERROR:如果在其他階段發(fā)生錯(cuò)誤 ,則執(zhí)行該過(guò)濾器。
1.3.4 Spring Cloud Gateway

Spring Cloud Gateway是Spring官方基于Spring5.0,Spring Boot2.0和Project Reactor等技術(shù)開(kāi)發(fā)的網(wǎng)關(guān),Spring Cloud Gateway旨在為微服務(wù)架構(gòu)提供簡(jiǎn)單,有效且統(tǒng)一的API路由管理方式。 Spring Cloud Gateway作為Spring Cloud 生態(tài)系統(tǒng)中的網(wǎng)關(guān) ,目標(biāo)是替代Netflix Zuul,其不僅提供統(tǒng)一的路由方式,并且還基于Filter鏈的方式提供了網(wǎng)關(guān)基本的功能,例如:安全,監(jiān)控、埋點(diǎn),限流等。

圖片

1)Spring Cloud Gateway特性

  • 基于Spring Framework 5、Reactor和Spring Boot 2.0框架。
  • 根據(jù)請(qǐng)求的屬性可以匹配對(duì)應(yīng)的路由。
  • 集成Hystrix。
  • 集成Spring Cloud DiscoveryClient。
  • 把易于編寫(xiě)的Predicates和Filters作用于特定路由。
  • 具備一些網(wǎng)關(guān)的高級(jí)功能,如動(dòng)態(tài)路由、限流、路徑重寫(xiě)。

2)Spring Cloud Gateway核心概念

  • Filter(過(guò)濾器) :和Zuul的過(guò)濾器在概念上類(lèi)似,可以使用Filter攔截和修改請(qǐng)求,實(shí)現(xiàn)對(duì)上游的響應(yīng),進(jìn)行二次處理,實(shí)現(xiàn)橫切與應(yīng)用無(wú)關(guān)的功能,如安全、訪問(wèn)超時(shí)設(shè)置、限流等功能。
  • Route(路由) :網(wǎng)關(guān)配置的基本組成模塊,和Zuul的路由配置模塊類(lèi)似。一個(gè)Route模塊由一個(gè)ID、一個(gè)目標(biāo)URI、一組斷言和一組過(guò)濾器組成。如果斷言為真,則路由匹配,目標(biāo)URI會(huì)被訪問(wèn)。
  • Predicate(斷言) :Predicate來(lái)自Java 8的接口,它可以用來(lái)匹配來(lái)自HTTP請(qǐng)求的任何內(nèi)容,例如headers或參數(shù)。接口包含多種默認(rèn)方法,并將Predicate組合成復(fù)雜的邏輯(與、或、非),可以用于接口參數(shù)校驗(yàn)、路由轉(zhuǎn)發(fā)判斷等。

3)Spring Cloud Gateway核心處理流程

圖片

  1. Gateway的客戶端回向Spring Cloud Gateway發(fā)起請(qǐng)求
  2. 請(qǐng)求首先會(huì)被HttpWebHandlerAdapter進(jìn)行 提取組裝成網(wǎng)關(guān)的上下文 ,然后網(wǎng)關(guān)的上下文會(huì)傳遞到DispatcherHandler。
  3. DispatcherHandler是所有請(qǐng)求的分發(fā)處理器,DispatcherHandler主要 負(fù)責(zé)分發(fā)請(qǐng)求對(duì)應(yīng)的處理器 ,比如將請(qǐng)求分發(fā)到對(duì)應(yīng)RoutePredicateHandlerMapping(路由斷言處理器映射器)。
  4. 路由斷言處理映射器 主要用于路由的查找 ,以及找到路由后返回對(duì)應(yīng)的FilteringWebHandler。
  5. FilteringWebHandler主要 負(fù)責(zé)組裝Filter鏈表并調(diào)用Filter執(zhí)行一系列Filter處理 ,然后把請(qǐng)求轉(zhuǎn)到后端對(duì)應(yīng)的代理服務(wù)處理,
  6. 處理完畢后,將Response 返回到Gateway客戶端
1.3.5 Zuul和Gateway對(duì)比

Spring cloud Zuul和Spring Cloud Gateway處理的都是http請(qǐng)求,底層是serverlet服務(wù)。不同之處有以下幾點(diǎn):

  • 內(nèi)部實(shí)現(xiàn)
    • gateway對(duì)比zuul多依賴了spring-webflux,在spring的支持下,功能更強(qiáng)大,內(nèi)部實(shí)現(xiàn)了限流、負(fù)載均衡等,擴(kuò)展性也更強(qiáng),但同時(shí)也限制了僅適合于Spring Cloud套件
    • zuul則可以擴(kuò)展至其他微服務(wù)框架中,其內(nèi)部沒(méi)有實(shí)現(xiàn)限流、負(fù)載均衡等
  • 是否支持異步
    • Zuul 1.x只支持同步。Zuul 2.x基于Netty實(shí)現(xiàn)了異步IO
    • Gateway支持異步。 理論上gateway則更適合于提高系統(tǒng)吞吐量(但不一定能有更好的性能),最終性能還需要通過(guò)嚴(yán)密的壓測(cè)來(lái)決定
  • 擴(kuò)展性
    • Gateway具有更好的擴(kuò)展性,穩(wěn)定性也是非常好的
  • 性能
    • Spring webflux 有一個(gè)全新的非堵塞的函數(shù)式 Reactive Web 框架,可以用來(lái)構(gòu)建異步的、非堵塞的、事件驅(qū)動(dòng)的服務(wù),在伸縮性方面表現(xiàn)非常好
    • Zuul 1.x,是一個(gè)基于阻塞io的API Gateway。Zuul已經(jīng)發(fā)布了Zuul 2.x,基于Netty,也是非阻塞的,支持長(zhǎng)連接,但Spring Cloud暫時(shí)還沒(méi)有整合計(jì)劃

在實(shí)際生產(chǎn)使用中,Zuul 1.x雖然使用的是同步io,但是可以通過(guò)參數(shù)優(yōu)化提高性能理論上可以達(dá)到極限性能,而springcloud gateway使用的是異步io,不需優(yōu)化既可以達(dá)到接近極限的性能。

2、分布式網(wǎng)關(guān)動(dòng)態(tài)路由實(shí)現(xiàn)

相比較靜態(tài)路由,動(dòng)態(tài)路由的好處是對(duì)路由配置的修改、新增或者刪除,可以動(dòng)態(tài)生效,不需要重啟網(wǎng)關(guān)服務(wù)。這里主要介紹 基于Spring Cloud Gateway的動(dòng)態(tài)路由幾種實(shí)現(xiàn)方式 ,包括:

  • 基于Nacos
  • 基于數(shù)據(jù)庫(kù)
  • 基于內(nèi)存
2.1 基于Nacos的動(dòng)態(tài)路由

Nacos集成在Spring Cloud中,提供了快速實(shí)現(xiàn)動(dòng)態(tài)服務(wù)發(fā)現(xiàn)、服務(wù)配置、服務(wù)元數(shù)據(jù)及流量管理等功能。基于Nacos動(dòng)態(tài)路由是通過(guò)Nacos更新修改路由配置,通過(guò)接口調(diào)用動(dòng)態(tài)更新到本地緩存中。

圖片

1)加載配置和監(jiān)聽(tīng)路由

configInfo = configService.getConfig(NACOS_ROUTE_DATA_ID, NACOS_ROUTE_GROUP, DEFAULT_TIMEOUT);
configService.addListener(dataId, group, new Listener()

2)路由的動(dòng)態(tài)添加和刪除

routeDefinitionWriter.delete(Mono.just(id)).subscribe()
routeDefinitionWriter.save(Mono.just(definition)).subscribe();

3)路由信息刷新到本地緩存

publisher.publishEvent(new RefreshRoutesEvent(this));
2.2 基于數(shù)據(jù)庫(kù)的動(dòng)態(tài)路由

基于數(shù)據(jù)庫(kù)的動(dòng)態(tài)路由實(shí)現(xiàn),是 將路由信息寫(xiě)入數(shù)據(jù)庫(kù)中 ,再通過(guò)接口讀取路由配置信息以及更新路由信息,最后刷新到本地緩存中。

圖片

2.3 基于內(nèi)存的動(dòng)態(tài)路由

基于本地內(nèi)存的方式比較簡(jiǎn)單,Spring Boot已經(jīng)提供了兩個(gè)組件Spring Boot Admin和Spring Boot Actuator。 通過(guò)調(diào)用接口更新路由信息,再刷新即可完成路由更新 。

o.s.c.g.a.GatewayControllerEndpoint:
{GET /routes/{id}}: route(String)
{GET /routes}: routes()
{GET /routedefinitions}: routesdef()
{GET /globalfilters}: globalfilters()
{GET /routefilters}: routefilers()
{GET /routepredicates}: routepredicates()
{GET /routes/{id}/combinedfilters}: combinedfilters(String)
{DELETE /routes/{id}}: delete(String)
{POST /routes/{id}}: save(String,RouteDefinition)
{POST /refresh}: refresh()

圖片

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 網(wǎng)關(guān)
    +關(guān)注

    關(guān)注

    9

    文章

    4264

    瀏覽量

    50867
  • 路由
    +關(guān)注

    關(guān)注

    0

    文章

    275

    瀏覽量

    41739
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    分布式軟件系統(tǒng)

    降到最低。負(fù)載在各處理機(jī)之間分擔(dān),可以避免臨界瓶頸。 4、當(dāng)現(xiàn)有機(jī)構(gòu)中已存在幾個(gè)數(shù)據(jù)庫(kù)系統(tǒng),而且實(shí)現(xiàn)全局應(yīng)用的必要性增加時(shí),就可以由這些數(shù)據(jù)庫(kù)自下而上構(gòu)成分布式數(shù)據(jù)庫(kù)系統(tǒng)。 5、相等規(guī)模的分布式
    發(fā)表于 07-22 14:53

    關(guān)于分布式系統(tǒng)的全面介紹

    操作系統(tǒng)-----分布式系統(tǒng)概述
    發(fā)表于 07-25 06:59

    如何設(shè)計(jì)分布式干擾系統(tǒng)?

    ”的電子戰(zhàn)系統(tǒng),共同完成對(duì)敵信號(hào)的探測(cè)、定位、干擾任務(wù)。因此,嵌入網(wǎng)關(guān)分布式干擾系統(tǒng)研究的關(guān)鍵技術(shù)之一。目前國(guó)內(nèi)對(duì)分布式干擾系統(tǒng)的研究還停留在理論基礎(chǔ)上,而對(duì)其關(guān)鍵技術(shù)的研究不多。
    發(fā)表于 08-08 06:57

    HarmonyOS應(yīng)用開(kāi)發(fā)-分布式設(shè)計(jì)

    設(shè)計(jì)理念HarmonyOS 是面向未來(lái)全場(chǎng)景智慧生活方式的分布式操作系統(tǒng)。對(duì)消費(fèi)者而言,HarmonyOS 將生活場(chǎng)景中的各類(lèi)終端進(jìn)行能力整合,形成“One Super Device”,以實(shí)現(xiàn)
    發(fā)表于 09-22 17:11

    如何高效完成HarmonyOS分布式應(yīng)用測(cè)試?

    對(duì)HarmonyOS分布式應(yīng)用測(cè)試解決方案,具體方案介紹如下。二、分布式應(yīng)用測(cè)試解決方案DevEco Testing是一款全新的HarmonyOS測(cè)試解決方案。如圖2所示,是DevEco Testing測(cè)試能力
    發(fā)表于 12-13 18:07

    分布式軟總線實(shí)現(xiàn)近場(chǎng)設(shè)備間統(tǒng)一的分布式通信管理能力如何?

    現(xiàn)實(shí)中多設(shè)備間通信方式多種多樣(WIFI、藍(lán)牙等),不同的通信方式使用差異大,導(dǎo)致通信問(wèn)題多;同時(shí)還面臨設(shè)備間通信鏈路的融合共享和沖突無(wú)法處理等挑戰(zhàn)。那么分布式軟總線實(shí)現(xiàn)近場(chǎng)設(shè)備間統(tǒng)一的分布式通信管理能力如何呢?
    發(fā)表于 03-16 11:03

    基于ZigBee的分布式井蓋監(jiān)控系統(tǒng)

    隨著我國(guó)現(xiàn)代經(jīng)濟(jì)發(fā)展水平的不斷提高,城市井蓋數(shù)目逐漸增加。由于較多井蓋被盜,致使路面形成陷阱,危害到過(guò)往車(chē)輛和行人安全。本文提出了一種基于 ZigBee無(wú)線網(wǎng)絡(luò)的智能安全監(jiān)控系統(tǒng),解決分布式布控困難
    發(fā)表于 09-18 08:46

    WebGIS動(dòng)態(tài)匹配分布式設(shè)計(jì)

    針對(duì)WebGIS 在稅務(wù)系統(tǒng)應(yīng)用中遇到的對(duì)地圖數(shù)據(jù)要求動(dòng)態(tài)更新和動(dòng)態(tài)匹配的問(wèn)題進(jìn)行了分析,給出了納稅戶到街道動(dòng)態(tài)匹配的方法,結(jié)合分布式對(duì)象技術(shù),對(duì)納稅戶到街道
    發(fā)表于 06-16 09:27 ?10次下載

    F0rCES路由分布式事務(wù)研究

    研究了分布式事務(wù)在ForCES路由器中的應(yīng)用及實(shí)現(xiàn)機(jī)制。首先對(duì)ForCES中分布式事務(wù)的需求做了詳細(xì)分析,在此基礎(chǔ)上將修改的2PC機(jī)制引入ForCES,之后提出了一種基于狀態(tài)機(jī)的
    發(fā)表于 09-26 15:24 ?17次下載
    F0rCES<b class='flag-5'>路由</b>器<b class='flag-5'>分布式</b>事務(wù)研究

    基于Dijkstra算法的分布式電能路由策略的實(shí)現(xiàn)

    拓?fù)?;以Dijkstra為基礎(chǔ),節(jié)點(diǎn)僅根據(jù)其相鄰節(jié)點(diǎn)的狀態(tài)調(diào)節(jié)其自身狀態(tài),搜尋最短路徑,完成電能路由,實(shí)現(xiàn)電能的分布式管理和協(xié)調(diào)控制,使系統(tǒng)運(yùn)行在優(yōu)化狀態(tài)。多代理系統(tǒng)(multi-agent system,MAS)技術(shù)為
    發(fā)表于 12-22 11:46 ?5次下載
    基于Dijkstra算法的<b class='flag-5'>分布式</b>電能<b class='flag-5'>路由</b>策略的<b class='flag-5'>實(shí)現(xiàn)</b>

    分布式無(wú)紙化交互系統(tǒng)的實(shí)現(xiàn)原理

    維訊維分布式無(wú)紙化交互系統(tǒng)的實(shí)現(xiàn)原理主要是基于IP分布式網(wǎng)絡(luò),將分布式系統(tǒng)、無(wú)紙化系統(tǒng)、會(huì)議智慧屏、顯示大屏幕等有機(jī)融合,實(shí)現(xiàn)數(shù)據(jù)的
    的頭像 發(fā)表于 09-04 16:11 ?593次閱讀

    springcloud如何實(shí)現(xiàn)分布式

    Spring Cloud是基于Spring Boot開(kāi)發(fā)的一套分布式系統(tǒng)解決方案,它主要包括了多個(gè)子項(xiàng)目,如服務(wù)注冊(cè)與發(fā)現(xiàn)、配置中心、負(fù)載均衡、斷路器、路由等等。通過(guò)使用Spring Cloud
    的頭像 發(fā)表于 11-16 11:01 ?638次閱讀

    如何實(shí)現(xiàn)Redis分布式

    機(jī)制,下面將詳細(xì)介紹如何實(shí)現(xiàn)Redis分布式鎖。 一、引言 在分布式系統(tǒng)中,多個(gè)節(jié)點(diǎn)可能同時(shí)讀寫(xiě)同一共享資源。如果沒(méi)有實(shí)現(xiàn)互斥訪問(wèn)和同步機(jī)制
    的頭像 發(fā)表于 12-04 11:24 ?641次閱讀

    分布式鎖的三種實(shí)現(xiàn)方式

    ,下面將分別介紹三種常見(jiàn)的實(shí)現(xiàn)方式。 一、基于數(shù)據(jù)庫(kù)實(shí)現(xiàn)分布式鎖 在分布式系統(tǒng)中,數(shù)據(jù)庫(kù)是最常用的共享資源之一。因此,可以通過(guò)數(shù)據(jù)庫(kù)的特性
    的頭像 發(fā)表于 12-28 10:01 ?841次閱讀

    Redis實(shí)現(xiàn)分布式多規(guī)則限流的方式介紹

    市面上很多介紹 Redis 如何實(shí)現(xiàn)限流的,但是大部分都有一個(gè)缺點(diǎn),就是只能實(shí)現(xiàn)單一的限流,比如 1 分鐘訪問(wèn) 1 次或者 60 分鐘訪問(wèn) 10 次這種,但是如果想一個(gè)接口兩種規(guī)則都需要滿足呢,我們的項(xiàng)目又是
    的頭像 發(fā)表于 02-26 10:07 ?432次閱讀
    Redis<b class='flag-5'>實(shí)現(xiàn)</b><b class='flag-5'>分布式</b>多規(guī)則限流的方式<b class='flag-5'>介紹</b>