同步操作将从 iresty/Apache APISIX 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
title |
---|
dubbo-proxy |
dubbo-proxy plugin allows you proxy HTTP request to dubbo.
If you are using OpenResty, you need to build it with dubbo support, see how to build
To make http2dubbo work in APISIX, we enhance the dubbo module based on Tengine's mod_dubbo
. The modifications are contributed back to Tengine, but they are not included in the latest release version (Tengine-2.3.2) yet. So Tengine itself is unsupported.
Name | Type | Requirement | Default | Valid | Description |
---|---|---|---|---|---|
service_name | string | required | dubbo provider service name | ||
service_version | string | required | dubbo provider service version | ||
method | string | optional | the path of uri | dubbo provider service method |
Name | Type | Requirement | Default | Valid | Description |
---|---|---|---|---|---|
upstream_multiplex_count | number | required | 32 | >= 1 | the maximum number of multiplex requests in an upstream connection |
First of all, enable the dubbo-proxy plugin in the config.yaml
:
# Add this in config.yaml
plugins:
- ... # plugin you need
- dubbo-proxy
Then reload APISIX.
Here's an example, enable the dubbo-proxy plugin on the specified route:
curl http://127.0.0.1:9080/apisix/admin/upstream/1 -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
{
"nodes": {
"127.0.0.1:20880": 1
},
"type": "roundrobin"
}'
curl http://127.0.0.1:9080/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
{
"uris": [
"/hello"
],
"plugins": {
"dubbo-proxy": {
"service_name": "org.apache.dubbo.sample.tengine.DemoService",
"service_version": "0.0.0",
"method": "tengineDubbo"
}
},
"upstream_id": 1
}'
You can follow the Quick Start example in Tengine and use the configuration above to test it. They should provide the same result.
The returned data from upstream dubbo service must be a Map<String, String>
.
If the returned data is
{
"status": "200",
"header1": "value1",
"header2": "valu2",
"body": "blahblah"
}
the converted HTTP response will be
HTTP/1.1 200 OK # "status" will be the status code
...
header1: value1
header2: value2
...
blahblah # "body" will be the body
When you want to disable the dubbo-proxy plugin on a route/service, it is very simple, you can delete the corresponding json configuration in the plugin configuration, no need to restart the service, it will take effect immediately:
$ curl http://127.0.0.1:9080/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
{
"methods": ["GET"],
"uris": [
"/hello"
],
"plugins": {
},
"upstream_id": 1
}
}'
The dubbo-proxy plugin has been disabled now. It works for other plugins.
If you want to disable dubbo-proxy plugin totally,
you need to comment out in the config.yaml
:
plugins:
- ... # plugin you need
#- dubbo-proxy
And then reload APISIX.
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。