日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

配置從HTTP到Dubbo協(xié)議轉(zhuǎn)換

更新時(shí)間:

在分布式微服務(wù)場(chǎng)景下,后端的各個(gè)服務(wù)之間一般基于RPC框架相互調(diào)用,Dubbo就是一種常見(jiàn)的RPC框架。針對(duì)將一個(gè)Dubbo服務(wù)以RESTful風(fēng)格向外暴露的場(chǎng)景,云原生網(wǎng)關(guān)提供從HTTP到Dubbo的協(xié)議轉(zhuǎn)換功能。本文介紹通過(guò)配置協(xié)議轉(zhuǎn)換使用HTTP請(qǐng)求訪問(wèn)Dubbo服務(wù)。

說(shuō)明

目前僅支持Java語(yǔ)言的Dubbo框架。

操作步驟

  1. 登錄MSE網(wǎng)關(guān)管理控制臺(tái),并在頂部菜單欄選擇地域。

  2. 在左側(cè)導(dǎo)航欄,選擇云原生網(wǎng)關(guān) > 網(wǎng)關(guān)列表,單擊目標(biāo)網(wǎng)關(guān)名稱(chēng)。

  3. 在左側(cè)導(dǎo)航欄,單擊路由管理,然后選擇路由頁(yè)簽。

  4. 在當(dāng)前頁(yè)面單擊創(chuàng)建路由,配置相關(guān)參數(shù),下表僅說(shuō)明協(xié)議轉(zhuǎn)換配置項(xiàng)。創(chuàng)建路由的具體操作,請(qǐng)參見(jiàn)創(chuàng)建路由

    配置項(xiàng)

    描述

    Dubbo服務(wù)名

    Dubbo服務(wù)的完整服務(wù)名。

    服務(wù)版本

    Dubbo服務(wù)的版本,當(dāng)后端服務(wù)沒(méi)有設(shè)置版本時(shí)此項(xiàng)默認(rèn)為0.0.0。

    服務(wù)分組

    Dubbo服務(wù)的分組,當(dāng)后端服務(wù)沒(méi)有設(shè)置分組時(shí)此項(xiàng)可以不填。

    方法映射

    說(shuō)明

    方法映射指一個(gè)Dubbo方法的映射規(guī)則,通過(guò)單擊+方法映射您可以配置多條方法映射,方法映射包含以下配置項(xiàng)。

    Dubbo方法名

    Dubbo方法的完整名稱(chēng)。

    HTTP方法

    設(shè)置HTTP請(qǐng)求中的Method參數(shù)。

    方法匹配路徑

    匹配Path參數(shù),需要在前綴是的Path基礎(chǔ)上進(jìn)行填寫(xiě)。例如,Path為/dubboDemo,則此處需要在/dubboDemo的基礎(chǔ)上填寫(xiě)方法的匹配路徑,例如/dubboDemo/hello

    Header透?jìng)鬟x型

    是否需要把HTTP請(qǐng)求的Header作為隱式參數(shù)(Attachment)透?jìng)鹘o后端的Dubbo服務(wù)。可選項(xiàng):

    • 透?jìng)魉蠬eader

    • 不透?jìng)鱄eader

    • 透?jìng)髦付℉eader

      多個(gè)Key用英文逗號(hào)(,)分隔,例如content-length,content-type

    參數(shù)映射

    配置Dubbo方法的參數(shù)映射規(guī)則,Dubbo方法的參數(shù)以key-value的形式從HTTP請(qǐng)求中提取。可以配置多條參數(shù)映射規(guī)則,單擊+參數(shù)映射進(jìn)行添加。

    • 入?yún)⑽恢?/b>:配置當(dāng)前參數(shù)從HTTP請(qǐng)求中的什么位置來(lái)提取。

      • 請(qǐng)求參數(shù):從HTTP請(qǐng)求的Query參數(shù)中提取

      • 請(qǐng)求頭:從HTTP請(qǐng)求的Header中提取

      • 請(qǐng)求路徑:從HTTP請(qǐng)求的Path中提取

      • 請(qǐng)求體:從HTTP請(qǐng)求的Body中提取

    • 入?yún)⑽惶崛ey:配置當(dāng)前參數(shù)對(duì)應(yīng)的Key。

    • 后端參數(shù)類(lèi)型:配置當(dāng)前參數(shù)的完整類(lèi)型名。按照規(guī)范,目前支持以下幾種Java類(lèi)型。

      • java.lang.String

      • java.lang.Long

      • java.lang.Double

      • java.lang.Boolean

      • java.util.List

      • java.util.Map

      • 自定義類(lèi)型,例如,org.apache.dubbo.samples.basic.api.DubboTest

    重要

    java.util.List、java.util.Map以及自定義類(lèi)型只支持從Body中提取參數(shù)。

使用示例

通過(guò)幾組配置樣例介紹如何通過(guò)配置協(xié)議轉(zhuǎn)換功能,實(shí)現(xiàn)使用HTTP請(qǐng)求訪問(wèn)Dubbo服務(wù)。

Dubbo服務(wù)接口

以下示例代碼為后端Dubbo服務(wù)的接口。

package com.alibaba.nacos.example.dubbo.service;
import java.util.List;
import java.util.Map;
public interface DemoService {
    String sayHello(String name);
    String echoList(List<String> input);
    String echoMap(Map<String, String> map);
    String echoPerson(Person p);
}

其中Person為自定義類(lèi)型,定義如下所示。

package com.alibaba.nacos.example.dubbo.service;
import java.io.Serializable;
public class Person implements Serializable {
    public String name;
    public String second_name;
    public int age;
}

示例一:后端參數(shù)值從請(qǐng)求參數(shù)中提取,參數(shù)類(lèi)型為java.lang.String

配置項(xiàng)

描述

Dubbo服務(wù)名

com.alibaba.nacos.example.dubbo.service.DemoService

服務(wù)版本

1.0.0

方法映射

Dubbo方法名

sayHello

HTTP方法

GET

方法匹配路徑

/dubboDemo/hello

Header透?jìng)鬟x型

透?jìng)魉蠬eader

參數(shù)映射

入?yún)⑽恢?/b>:請(qǐng)求參數(shù)

入?yún)⑽惶崛ey:param1

后端參數(shù)類(lèi)型:java.lang.String

在終端使用Curl命令發(fā)起一個(gè)HTTP請(qǐng)求驗(yàn)證結(jié)果。

curl "http://xxx.xxx.xxx/dubboDemo/hello?param1=abcd"

示例二:后端參數(shù)值從請(qǐng)求頭中提取,參數(shù)類(lèi)型為java.lang.String

配置項(xiàng)

描述

Dubbo服務(wù)名

com.alibaba.nacos.example.dubbo.service.DemoService

服務(wù)版本

1.0.0

方法映射

Dubbo方法名

sayHello

HTTP方法

GET

方法匹配路徑

/dubboDemo/hello

Header透?jìng)鬟x型

透?jìng)魉蠬eader

參數(shù)映射

入?yún)⑽恢?/b>:請(qǐng)求頭

入?yún)⑽惶崛ey:param1

后端參數(shù)類(lèi)型:java.lang.String

在終端使用Curl命令發(fā)起一個(gè)HTTP請(qǐng)求驗(yàn)證結(jié)果。

curl "http://xxx.xxx.xxx/dubboDemo/hello" -H "param1: abcd"

示例三:后端參數(shù)值從請(qǐng)求路徑中提取,參數(shù)類(lèi)型為java.lang.String

說(shuō)明

入?yún)⑽恢脼檎?qǐng)求路徑時(shí),需要在方法匹配路徑里配置對(duì)應(yīng)的模板。

配置項(xiàng)

描述

Dubbo服務(wù)名

com.alibaba.nacos.example.dubbo.service.DemoService

服務(wù)版本

1.0.0

方法映射

Dubbo方法名

sayHello

HTTP方法

GET

方法匹配路徑

/dubboDemo/hello/{param1=*}

Header透?jìng)鬟x型

透?jìng)魉蠬eader

參數(shù)映射

入?yún)⑽恢?/b>:請(qǐng)求路徑

入?yún)⑽惶崛ey:param1

后端參數(shù)類(lèi)型:java.lang.String

在終端使用Curl命令發(fā)起一個(gè)HTTP請(qǐng)求驗(yàn)證結(jié)果。

curl "http://xxx.xxx.xxx/dubboDemo/hello/abcd"

示例四:后端參數(shù)值從請(qǐng)求體中提取,參數(shù)類(lèi)型為java.lang.String

配置項(xiàng)

描述

Dubbo服務(wù)名

com.alibaba.nacos.example.dubbo.service.DemoService

服務(wù)版本

1.0.0

方法映射

Dubbo方法名

sayHello

HTTP方法

POST

方法匹配路徑

/dubboDemo/hello

Header透?jìng)鬟x型

透?jìng)魉蠬eader

參數(shù)映射

入?yún)⑽恢?/b>:請(qǐng)求體

入?yún)⑽惶崛ey:param1

后端參數(shù)類(lèi)型:java.lang.String

在終端使用Curl命令發(fā)起一個(gè)HTTP請(qǐng)求驗(yàn)證結(jié)果。

curl "http://xxx.xxx.xxx/dubboDemo/hello/" -X POST -d '{"param1": "abcd"}'

示例五:后端參數(shù)值從請(qǐng)求體中提取,參數(shù)類(lèi)型為java.util.List

重要

java.util.List類(lèi)型的參數(shù)僅支持從請(qǐng)求體中提取。

配置項(xiàng)

描述

Dubbo服務(wù)名

com.alibaba.nacos.example.dubbo.service.DemoService

服務(wù)版本

1.0.0

方法映射

Dubbo方法名

echoList

HTTP方法

POST

方法匹配路徑

/dubboDemo/echolist

Header透?jìng)鬟x型

透?jìng)魉蠬eader

參數(shù)映射

入?yún)⑽恢?/b>:請(qǐng)求體

入?yún)⑽惶崛ey:param1

后端參數(shù)類(lèi)型:java.util.List

在終端使用Curl命令發(fā)起一個(gè)HTTP請(qǐng)求驗(yàn)證結(jié)果。

curl "http://xxx.xxx.xxx/dubboDemo/echolist/" -X POST -d '{"param1": ["abc", "def", "ghi"]}'

示例六:后端參數(shù)值從請(qǐng)求體中提取,參數(shù)類(lèi)型為java.util.Map

重要

java.util.Map類(lèi)型的參數(shù)僅支持從請(qǐng)求體中提取。

配置項(xiàng)

描述

Dubbo服務(wù)名

com.alibaba.nacos.example.dubbo.service.DemoService

服務(wù)版本

1.0.0

方法映射

Dubbo方法名

echoMap

HTTP方法

POST

方法匹配路徑

/dubboDemo/echomap

Header透?jìng)鬟x型

透?jìng)魉蠬eader

參數(shù)映射

入?yún)⑽恢?/b>:請(qǐng)求體

入?yún)⑽惶崛ey:param1

后端參數(shù)類(lèi)型:java.util.Map

在終端使用Curl命令發(fā)起一個(gè)HTTP請(qǐng)求驗(yàn)證結(jié)果。

curl "http://xxx.xxx.xxx/dubboDemo/echomap/" -X POST -d '{"param1": {"key1": "value1", "key2": "value2", "key3": "value3"}}'

示例七:后端參數(shù)值從請(qǐng)求體中提取,參數(shù)類(lèi)型為自定義類(lèi)型

重要

自定義類(lèi)型的參數(shù)僅支持從請(qǐng)求體中提取。

配置項(xiàng)

描述

Dubbo服務(wù)名

com.alibaba.nacos.example.dubbo.service.DemoService

服務(wù)版本

1.0.0

方法映射

Dubbo方法名

echoPerson

HTTP方法

POST

方法匹配路徑

/dubboDemo/echoperson

Header透?jìng)鬟x型

透?jìng)魉蠬eader

參數(shù)映射

入?yún)⑽恢?/b>:請(qǐng)求體

入?yún)⑽惶崛ey:param1

后端參數(shù)類(lèi)型:com.alibaba.nacos.example.dubbo.service.Person

在終端使用Curl命令發(fā)起一個(gè)HTTP請(qǐng)求驗(yàn)證結(jié)果。

curl "http://xxx.xxx.xxx/dubboDemo/echoperson/" -X POST -d '{"param1": {"name": "Tom", "second_name": "John", "age": 21}}'