这是一个胶水层
的Spring Boot Starter组件,为Dubbo服务提供通过APISIX网关的调用入口。
1.先将该项目安装到Maven本地仓库:mvn clean install -Dmaven.test.skip=true
2.在需要给APISIX网关暴露Dubbo服务调用的模块中引入该组件:
<dependency>
<groupId>org.chench.extra.spring.boot</groupId>
<artifactId>dubbo-apisix-springboot-starter</artifactId>
<version>1.0.0</version>
</dependency>
3.在APISIX中创建路由信息
在APISIX中通过dubbo-proxy
插件创建与上游Dubbo服务的路由关系。
curl http://127.0.0.1:9180/apisix/admin/routes/2 -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
{
"uris": [
"/demo"
],
"plugins": {
"dubbo-proxy": {
"service_name": "org.chench.extra.dubbo.apisix.APISIX2DubboService",
"service_version": "0.0.0",
"method": "invoke"
}
},
"upstream": {
"type": "roundrobin",
"nodes": {
"192.168.2.8:20881": 1 # 指定要调用的上游Dubbo服务地址
}
}
}'
注意:在上述示例路由信息中,如下几个参数是需要根据实际情况进行修改的。
uris
:这个参数修改为具体的接口路径
upstream
:修改为具体的Dubbo服务地址
4.调用APISIX接口
curl http://127.0.0.1:9080/demo -X POST --data '
{
"service": "org.chench.extra.dubbo.consumer.service.HelloServiceConsumer", # 要调用的Dubbo服务接口完整限定名
"method": "hello", # 要调用的Dubbo服务接口方法
"parameters": [ # 要调用的Dubbo服务接口参数列表
{
"type": "java.lang.String", # 参数类型完整限定类名
"value": "chench" # 参数值
}
]
}'