title: Consumer Groups keywords:
通过 Consumer Groups,你可以在同一个消费者组中启用任意数量的插件,并在一个或者多个消费者中引用该消费者组。
以下示例展示了如何创建消费者组并将其绑定到消费者中。
创建一个共享相同限流配额的消费者组:
:::note
您可以这样从 config.yaml
中获取 admin_key
并存入环境变量:
admin_key=$(yq '.deployment.admin.admin_key[0].key' conf/config.yaml | sed 's/"//g')
:::
curl http://127.0.0.1:9180/apisix/admin/consumer_groups/company_a \ -H "X-API-KEY: $admin_key" -X PUT -d ' { "plugins": { "limit-count": { "count": 200, "time_window": 60, "rejected_code": 503, "group": "grp_company_a" } } }'
在消费者组中创建消费者:
curl http://127.0.0.1:9180/apisix/admin/consumers \ -H "X-API-KEY: $admin_key" -X PUT -d ' { "username": "jack", "plugins": { "key-auth": { "key": "auth-one" } }, "group_id": "company_a" }'
当 APISIX 无法找到 group_id
中定义的消费者组时,创建或者更新消费者的请求将会终止,并返回错误码 404
。
如果消费者已经配置了 plugins
字段,那么消费者组中配置的插件将与之合并。
:::tip
此处需要注意两点:
:::
如下示例,假如你配置了一个消费者组:
{ "id": "bar", "plugins": { "response-rewrite": { "body": "hello" } } }
并配置了消费者:
{ "username": "foo", "group_id": "bar", "plugins": { "basic-auth": { "username": "foo", "password": "bar" }, "response-rewrite": { "body": "world" } } }
那么 response-rewrite
中的 body
将保留 world
。