diff --git a/apps/emqx_authn/src/simple_authn/emqx_authn_http.erl b/apps/emqx_authn/src/simple_authn/emqx_authn_http.erl index ceb4b30a8..66ea00af4 100644 --- a/apps/emqx_authn/src/simple_authn/emqx_authn_http.erl +++ b/apps/emqx_authn/src/simple_authn/emqx_authn_http.erl @@ -133,7 +133,7 @@ create(#{ method := Method case emqx_resource:create_local(Unique, emqx_connector_http, Config#{base_url => maps:remove(query, URIMap), - pool_type => random}) of + pool_type => hash}) of {ok, already_created} -> {ok, State}; {ok, _} -> diff --git a/apps/emqx_authz/src/emqx_authz_api_schema.erl b/apps/emqx_authz/src/emqx_authz_api_schema.erl index b05476b03..3aa0cd677 100644 --- a/apps/emqx_authz/src/emqx_authz_api_schema.erl +++ b/apps/emqx_authz/src/emqx_authz_api_schema.erl @@ -86,7 +86,7 @@ definitions() -> pool_type => #{ type => string, enum => [<<"random">>, <<"hash">>], - example => <<"random">> + example => <<"hash">> }, pool_size => #{type => integer}, enable_pipelining => #{type => boolean}, diff --git a/apps/emqx_bridge/etc/emqx_bridge.conf b/apps/emqx_bridge/etc/emqx_bridge.conf index f26172ef6..e1d2d4be7 100644 --- a/apps/emqx_bridge/etc/emqx_bridge.conf +++ b/apps/emqx_bridge/etc/emqx_bridge.conf @@ -51,7 +51,7 @@ # connect_timeout: "30s" # max_retries: 3 # retry_interval = "10s" -# pool_type = "random" +# pool_type = "hash" # pool_size = 4 # enable_pipelining = true # ssl { diff --git a/apps/emqx_connector/src/emqx_connector_http.erl b/apps/emqx_connector/src/emqx_connector_http.erl index c724ddb7a..61fcb1c67 100644 --- a/apps/emqx_connector/src/emqx_connector_http.erl +++ b/apps/emqx_connector/src/emqx_connector_http.erl @@ -105,7 +105,7 @@ retry_interval(default) -> <<"1s">>; retry_interval(_) -> undefined. pool_type(type) -> pool_type(); -pool_type(default) -> random; +pool_type(default) -> hash; pool_type(_) -> undefined. pool_size(type) -> non_neg_integer(); diff --git a/apps/emqx_retainer/src/emqx_retainer_pool.erl b/apps/emqx_retainer/src/emqx_retainer_pool.erl index 59ea1077a..6b48c0453 100644 --- a/apps/emqx_retainer/src/emqx_retainer_pool.erl +++ b/apps/emqx_retainer/src/emqx_retainer_pool.erl @@ -172,7 +172,7 @@ cast(Msg) -> %% @private worker() -> - gproc_pool:pick_worker(?POOL). + gproc_pool:pick_worker(?POOL, self()). run({M, F, A}) -> erlang:apply(M, F, A); diff --git a/apps/emqx_retainer/src/emqx_retainer_sup.erl b/apps/emqx_retainer/src/emqx_retainer_sup.erl index 3811ed8f2..0234c20e7 100644 --- a/apps/emqx_retainer/src/emqx_retainer_sup.erl +++ b/apps/emqx_retainer/src/emqx_retainer_sup.erl @@ -26,7 +26,7 @@ start_link() -> supervisor:start_link({local, ?MODULE}, ?MODULE, []). init([]) -> - PoolSpec = emqx_pool_sup:spec([emqx_retainer_pool, random, emqx_vm:schedulers(), + PoolSpec = emqx_pool_sup:spec([emqx_retainer_pool, hash, emqx_vm:schedulers(), {emqx_retainer_pool, start_link, []}]), {ok, {{one_for_one, 10, 3600}, [#{id => retainer,