dubbo-proxy

    Requirement

    If you are using OpenResty, you need to build it with dubbo support, see how to build

    Static Attributes

    NameTypeRequirementDefaultValidDescription
    upstream_multiplex_countnumberrequired32>= 1the maximum number of multiplex requests in an upstream connection

    First of all, enable the dubbo-proxy plugin in the :

    Then reload APISIX.

    1. curl http://127.0.0.1:9080/apisix/admin/upstreams/1 -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
    2. {
    3. "nodes": {
    4. "127.0.0.1:20880": 1
    5. },
    6. }'
    7. curl http://127.0.0.1:9080/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
    8. {
    9. "/hello"
    10. ],
    11. "plugins": {
    12. "dubbo-proxy": {
    13. "service_name": "org.apache.dubbo.sample.tengine.DemoService",
    14. "service_version": "0.0.0",
    15. "method": "tengineDubbo"
    16. },
    17. "upstream_id": 1

    Test Plugin

    You can follow the 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

    1. HTTP/1.1 200 OK # "status" will be the status code
    2. ...
    3. header1: value1
    4. header2: value2
    5. ...
    6. 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:

    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:

    1. plugins: