forked from lavina/lavina
wip
This commit is contained in:
parent
0e59ab1351
commit
1969901436
|
@ -29,6 +29,17 @@ use crate::terminator::Terminator;
|
|||
- определение модели данных
|
||||
- определение протокола общения между нодами
|
||||
- модель верификации поведения нод
|
||||
|
||||
Лидер кластера
|
||||
- выбирается из нод, которые уже в кластере
|
||||
- не больше одного
|
||||
- занимается аллокацией шардов на ноды
|
||||
|
||||
Лидер шарда
|
||||
- выбирается лидером кластера из реплик шарда
|
||||
- принимает команды на изменение сущностей в шарде
|
||||
- посылает изменения репликам
|
||||
|
||||
*/
|
||||
|
||||
#[derive(Deserialize, Debug, Clone)]
|
||||
|
@ -74,12 +85,10 @@ impl ClusterRegistry {
|
|||
let listener = TcpListener::bind(config.listen_on).await?;
|
||||
let listener_task = start_connection_listener(listener, inner.clone()).await;
|
||||
let mut client = EtcdClient::connect(&[config.etcd_address], None).await?;
|
||||
dbg!(client.maintenance_client().status().await?);
|
||||
dbg!(client.leader(b"kek").await);
|
||||
dbg!(client.kv_client().get(b"kek", None).await?);
|
||||
let a = dbg!(client.election_client().campaign(b"kek", b"my name", 0).await?);
|
||||
dbg!(client.leader(b"kek").await?);
|
||||
dbg!(client.election_client().resign(Some(ResignOptions::new().with_leader(a.leader().unwrap().clone()))).await);
|
||||
let campaign_response = client.election_client().campaign(b"kek", b"my name", 0).await?;
|
||||
dbg!(campaign_response);
|
||||
let leader = client.leader("kek").await?;
|
||||
dbg!(leader);
|
||||
|
||||
|
||||
Ok(ClusterRegistry {
|
||||
|
|
Loading…
Reference in New Issue