微服務 Dubbo的最佳實踐

2021-10-02 17:18:21 字數 2409 閱讀 3366

這樣的配置可以讓 provider 的實現者一開始就思考 provider 端的服務特點和服務質量等問題。建議在provider端配置的屬性有:

timeout:方法呼叫的超時時間

retries:失敗重試次數,預設是 2 (加上第一次呼叫,會呼叫 3 次)

loadbalance:負載均衡演算法(有多個 provider 時,如何挑選 provider 呼叫),預設是隨機random。還可以配置輪詢roundrobin、最不活躍優先leastactive和一致性雜湊consistenthash

actives:消費者端的最大併發呼叫限制,即當 consumer 對乙個服務的併發呼叫到上限後,新呼叫會阻塞直到超時,在方法上配置dubbo:method則針對該方法進行併發限制,在介面上配置dubbo:service,則針對該服務進行併發限制

<

dubbo:service

inte***ce

="com.alibaba.hello.api.helloservice"

version

="1.0.0"

ref="helloservice"

timeout

="300"

retries

="2"

loadbalance

="random"

actives

="0"

/>

<

dubbo:service

inte***ce

="com.alibaba.hello.api.worldservice"

version

="1.0.0"

ref="helloservice"

timeout

="300"

retries

="2"

loadbalance

="random"

actives

="0"

>

<

dubbo:method

name

="findallperson"

timeout

="10000"

retries

="9"

loadbalance

="leastactive"

actives

="5"

/>

<

dubbo:service

/>

這樣做的考量有下面兩個:

服務提供方,比消費方更清楚服務的效能引數,比如呼叫超時時間,合理的重試次數等

provider 端的配置可以作為 consumer 的預設值,否則對於provider 是不可控的。

建議在provider端配置的屬性有:

threads:服務執行緒池大小

executes:乙個服務提供者並行執行請求上限,即當 provider 對乙個服務的併發呼叫達到上限後,新呼叫會阻塞,此時 consumer 可能會超時。在方法上配置dubbo:method則針對該方法進行併發限制,在介面上配置dubbo:service,則針對該服務進行併發限制

<

dubbo:protocol

threads

="200"

/>

<

dubbo:service

inte***ce

="com.alibaba.hello.api.helloservice"

version

="1.0.0"

ref="helloservice"

executes

="200"

>

<

dubbo:method

name

="findallperson"

executes

="50"

/>

dubbo:service

>

微服務最佳實踐框架

優化選型 底層的最優方案 服務選型 開發框架 spring boot 服務閘道器 zuul 服務註冊與發現 eureka 服務呼叫 feign 斷路器hystrix 靜態頁nginx lua redis 快取redis自建雲 雲服務 訊息佇列 rabbitmq 雲服務 資料庫mysql 雲服務 服務...

微服務最佳實踐 MSE 微服務引擎

簡介 微服務引擎 mse microservice engine 是乙個面向業界主流開源微服務框架 spring cloud 和 dubbo 的一站式微服務平台。其由四個主要部分組成 微服務治理中心 微服務註冊中心 微服務配置中心 微服務閘道器。mse 在 2019 年 7 月正式上線,最早僅支援 ...

微服務之 Dubbo

使用dubbo進行遠端呼叫實現服務互動,它支援多種協議,如hessian http rmi memcached redis等等。由於dubbo將這些協議的實現進行了封裝了,無論是服務端 開發服務 還是客戶端 呼叫服務 都不需要關心協議的細節,只需要在配置中指定使用的協議即可,從而保證了服務提供方與服...