zhaohai666 opened a new pull request, #1375:
URL: https://github.com/apache/rocketmq-clients/pull/1375
P3 fix(nodejs): transport layer self-healing and logger close deferral
- `Endpoints.getGrpcTarget()`: prefix the gRPC target with the resolver
scheme —
`ipv4:` / `ipv6:` (bracketed IPv6 hosts) / `dns:` — so grpc-js resolves
multi-address
and bare-IPv6 targets correctly.
- `RpcClientManager`: key rpc clients by the `endpoints.facade` **string**
instead of
object identity (endpoints are recreated on every route fetch, leaking
duplicate
channels); add `evict()`.
- `RpcClient`: keepalive (5 min / 30 s + `keepalive_permit_without_calls`)
and max
message size channel options.
- `BaseClient` heartbeat: rejoin isolated endpoints after success; after ≥ 2
consecutive
failures rebuild the transport (evict stale `RpcClient` + refresh
telemetry session),
throttled by a 30 s per-endpoints cooldown.
- Verify-message command replies with `VerifyMessageResult` (nonce) instead
of echoing
the command.
- `logger.close()` deferred to the next macrotask (`setImmediate`) so
subclass shutdown
logs no longer throw `log stream had been closed`.
**Tests:** `nodejs/test/route/Endpoints.test.ts` (4 cases, offline, all pass)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]