sdk

package
v1.0.0-rc1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 23, 2026 License: MIT Imports: 7 Imported by: 0

Documentation

Overview

Package sdk предоставляет клиентские обёртки для вызова gRPC-методов других реплик.

Эти клиенты используются компонентами кластера (Election, Sync) для общения с удалёнными репликами.

Каждый клиент инкапсулирует в себе protobuf-клиент и предоставляет удобные методы для работы с domain-типами.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ElectionClient

type ElectionClient struct {
	// contains filtered or unexported fields
}

ElectionClient — клиент для вызова gRPC-методов Election.

Используется в election.Election для:

  • Синхронизации term (Election метод)
  • Отправки и получения бюллетеней (Vote метод)

func NewElectionClient

func NewElectionClient(grpcConn grpc.ClientConnInterface) *ElectionClient

NewElectionClient создаёт новый клиент Election.

func (*ElectionClient) Election

func (e *ElectionClient) Election(ctx context.Context, myHost string, term uint64) (uint64, error)

Election вызывает gRPC-метод Election у удалённой реплики.

Параметры:

  • ctx — контекст для отмены запроса
  • myHost — хост текущей реплики (для идентификации)
  • term — текущий term текущей реплики

Возвращает:

  • term удалённой реплики
  • ошибку, если запрос не удался

Используется в фазе AgeSync для синхронизации term.

func (*ElectionClient) Vote

func (e *ElectionClient) Vote(ctx context.Context, myHost string, bulletin *domain.Bulletin) (*domain.Bulletin, error)

Vote вызывает gRPC-метод Vote у удалённой реплики.

Параметры:

  • ctx — контекст для отмены запроса
  • myHost — хост текущей реплики (для идентификации)
  • bulletin — бюллетень текущей реплики (term + candidateId)

Возвращает:

  • бюллетень удалённой реплики
  • ошибку, если запрос не удался

Используется в фазе Vote для обмена бюллетенями.

type SyncClient

type SyncClient struct {
	// contains filtered or unexported fields
}

SyncClient — клиент для вызова gRPC-методов Sync.

Используется в sync.Process для:

  • Обмена списками хостов (Hosts метод)

func NewSyncClient

func NewSyncClient(grpcConn grpc.ClientConnInterface) *SyncClient

NewSyncClient создаёт новый клиент Sync.

func (*SyncClient) Hosts

func (s *SyncClient) Hosts(ctx context.Context, hosts set.Set[string]) (set.Set[string], error)

Hosts вызывает gRPC-метод Hosts у удалённой реплики.

Параметры:

  • ctx — контекст для отмены запроса
  • hosts — множество хостов текущей реплики

Возвращает:

  • множество хостов удалённой реплики
  • ошибку, если запрос не удался

Используется в синхронизации хостов для обнаружения новых реплик.

Примечание: метод обменивается списками хостов, позволяя репликам узнавать о новых узлах в кластере.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL