Nats + Redis PubSub cluster updates replacing Gossip protocol

This commit is contained in:
mdecimus
2025-05-14 19:43:47 +02:00
parent 7ec5701af8
commit 839b7189fa
65 changed files with 1807 additions and 1350 deletions

View File

@@ -39,7 +39,7 @@ tokio = { version = "1.23", features = ["full"] }
jemallocator = "0.5.0"
[features]
#default = ["sqlite", "postgres", "mysql", "rocks", "elastic", "s3", "redis", "azure", "enterprise"]
#default = ["sqlite", "postgres", "mysql", "rocks", "elastic", "s3", "redis", "azure", "nats", "enterprise"]
default = ["rocks", "enterprise"]
sqlite = ["store/sqlite"]
foundationdb = ["store/foundation", "common/foundation"]
@@ -49,6 +49,7 @@ rocks = ["store/rocks"]
elastic = ["store/elastic"]
s3 = ["store/s3"]
redis = ["store/redis"]
nats = ["store/nats"]
azure = ["store/azure"]
enterprise = [ "jmap/enterprise",
"smtp/enterprise",

View File

@@ -13,7 +13,7 @@ use http::HttpSessionManager;
use imap::core::ImapSessionManager;
use managesieve::core::ManageSieveSessionManager;
use pop3::Pop3SessionManager;
use services::{StartServices, gossip::spawn::GossiperBuilder};
use services::{StartServices, broadcast::subscriber::spawn_broadcast_subscriber};
use smtp::{StartQueueManager, core::SmtpSessionManager};
use trc::Collector;
use utils::wait_for_shutdown;
@@ -33,7 +33,6 @@ async fn main() -> std::io::Result<()> {
// Init services
init.start_services().await;
init.start_queue_manager();
let gossiper = GossiperBuilder::try_parse(&mut init.config);
// Log configuration errors
init.config.log_errors();
@@ -83,10 +82,8 @@ async fn main() -> std::io::Result<()> {
};
});
// Spawn gossip
if let Some(gossiper) = gossiper {
gossiper.spawn(init.inner, shutdown_rx.clone()).await;
}
// Start broadcast subscriber
spawn_broadcast_subscriber(init.inner, shutdown_rx);
// Wait for shutdown signal
wait_for_shutdown().await;