Commit graph

25 commits

Author SHA1 Message Date
Joachim Bauch 602452fa25
Support resuming sessions that exist on a different Hub in the cluster. 2024-04-23 11:52:43 +02:00
Joachim Bauch 9adb762ccf
Close file watcher on shutdown to prevent goroutine leaks. 2024-04-23 10:53:28 +02:00
Joachim Bauch bf68a15943
Make sure "clientsMap" is updated so all clients are closed on shutdown. 2024-04-23 10:37:15 +02:00
Joachim Bauch d0d68f0d21
Include previous value with etcd watch events. 2024-04-15 11:57:52 +02:00
Joachim Bauch 26102e7acb
Backoff when retrying watch. 2024-04-15 08:37:52 +02:00
Joachim Bauch 88a575c36c
Cancel GRPC self-check if client is closed. 2024-04-15 08:37:52 +02:00
Joachim Bauch fdab3db819
Update etcd watch handling.
- Properly cancel watch if object is closed.
- Retry watch if interupted.
- Pass revision to watch to not miss changes.
2024-04-15 08:37:52 +02:00
Joachim Bauch 9ba5b4330a
Switch to "grpc.NewClient" from deprecated "grpc.Dial". 2024-04-08 11:50:15 +02:00
Joachim Bauch bde0b08eb1
Reuse backoff waiting code in etcd clients. 2024-02-27 16:27:17 +01:00
Joachim Bauch 7d09c71ab9
Strongly type "StreamType". 2024-02-27 15:20:14 +01:00
Joachim Bauch b1c78f6e9d
Use DNS monitor from static GRPC clients configuration. 2024-01-30 17:03:45 +01:00
Joachim Bauch c134883138
Switch to atomic types from Go 1.19 2023-10-30 09:32:46 +01:00
Joachim Bauch fd29f83454
Use "struct{}" channel if only used as signaling mechanism. 2023-06-15 11:30:28 +02:00
Joachim Bauch deaa17acc5
Implement per-backend session limit for clusters. 2022-07-13 11:52:20 +02:00
Joachim Bauch 95d5e50705
Disconnect sessions with the same room session id synchronously.
Previously there was a difference in the events being received by other
sessions for the clustered case compared to the single-server case.
Now the events / ordering are the same for both cases.
2022-07-11 10:39:06 +02:00
Joachim Bauch 40e1b208c0
etcd: Fix race in initialized event.
It could happen that the initialized event was triggered even though the
watch was not fully created yet.
2022-07-08 10:56:36 +02:00
Joachim Bauch b2da4002a4
grpc: Reload certificate if file has changed and support mutual authentication. 2022-07-04 11:05:21 +02:00
Joachim Bauch 44bf8b74c2
grpc: Make sure DNS discovery of clients continues if initial lookup failed. 2022-07-01 11:42:49 +02:00
Joachim Bauch 15dabeee1e
grpc: Check clients for own server id asychronously.
The external address of the (own) GRPC server might only be reachable after
some time, so performing the check only initially could fail but will
succeed later.
2022-07-01 10:22:16 +02:00
Joachim Bauch 01858a89f4
grpc: Enable DNS discovery for GRPC clients. 2022-06-30 11:35:35 +02:00
Joachim Bauch 20cc51c2fe
grpc: Automatically detect if a target is the current server itself.
This allows configuring the same list of targets for all instances without
having to setup the "own" address differently for each server.
2022-06-30 11:35:35 +02:00
Joachim Bauch 25dabf910d
Allow configuring GRPC targets through etcd. 2022-06-30 11:35:32 +02:00
Joachim Bauch b6e419f18a
Add metrics for GRPC calls. 2022-06-30 11:35:31 +02:00
Joachim Bauch b315c09a3b
Allow configuring GRPC transport credentials. 2022-06-30 11:35:30 +02:00
Joachim Bauch a0d3af14e0
Add initial clustering support. 2022-06-30 11:35:28 +02:00