New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(mqttconn): employ ecpool instead of single worker #10754
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🔥
Hi @keynslug |
Hi @zmstone, not yet I'm afraid. Was invested into this |
3dfc950
to
6cd0e38
Compare
Also drop fiddling with `mountpoint` since this option seems not to be used anywhere.
Inline `emqx_connector_mqtt_msg` module code into `emqx_connector_mqtt_worker` module, since it's not really used anywhere else and does not provide any reusable abstractions.
Also move this logic to the mqtt connector itself, in order to avoid dealing with extra callback layer.
Also rename `subscriptions` -> `ingress` and `forwards` -> `egress` for consistency with the config schema.
6cd0e38
to
f96891b
Compare
It adds no value: the only mode was `cluster_shareload` and we just as well can decide to "share" the load across cluster just by looking if the remote topic is shared subcription filter or not.
That currently tunes the number of MQTT clients employed both for subscriptions (if shared subscription is used) and for publishing to a remote broker.
Each with a more refined set of responsibilities, at the cost of slight code duplication. Also provide two different config fields for each pool size.
With fixed typings and empty pool handling.
* emqx_connector 0.1.25 * emqx_rule_engine 5.0.19 * emqx_ee_bridge 0.1.15
2ac25bf
to
d738897
Compare
d738897
to
95cc9b9
Compare
ab59147
to
1783b1b
Compare
Need a changelog for this? |
Co-authored-by: Zaiming (Stone) Shi <zmstone@gmail.com>
1783b1b
to
42a4c02
Compare
Enhancements
|
增强
|
Part of EEC-856
Fixes EMQX-10056
This PR adds a ecpool of workers to the MQTT connector. This should alleviate the current bottleneck of using single
emqtt
worker.TODOs / Followups.
pool_size
/reconnect_interval
).pool_size
times.Summary
🤖 Generated by Copilot at ae3ef14
Refactored the
emqx_connector_mqtt
module and its worker to improve code quality and consistency. Moved schema validation and parsing to a separate module. Deleted the unusedemqx_connector_mqtt_msg
module. Updated the test suite to reflect the changes.PR Checklist
Please convert it to a draft if any of the following conditions are not met. Reviewers may skip over until all the items are checked:
Added tests for the changesChange log has been added tochanges/{ce,ee}/(feat|perf|fix)-<PR-id>.en.md
filesIf there should be document changes, a PR to emqx-docs.git is sent, or a jira ticket is created to follow up