Documentation ¶
Index ¶
Constants ¶
View Source
const Name = "proglog"
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Picker ¶
type Picker struct {
// contains filtered or unexported fields
}
Picker はRPCをバランスさせる処理 (リゾルバが発見したサーバアドレスの中から各RPCを処理するサーバを選択) を行う。 Consume, ConsumeStream のRPCをフォロワーサーバに、Produce, ProduceStream のRPCをリーダーサーバに送信する。
NOTE: ピッカーの役割として呼び出しの送信先決定を行うが、gRPCにはデフォルトのバランサ (※) があるため、今回は独自実装が不要となる。 ※サブコネクションを管理し、接続状態を収集および集約する balancer.Balancer のこと。
func (*Picker) Build ¶
func (p *Picker) Build(buildInfo base.PickerBuildInfo) balancer.Picker
Build は引数のサブコネクションから取得したフォロワーの集合を設定したピッカーを生成する。
NOTE: gRPCは当メソッドにサブコネクションのマップと、それらサブコネクションに関する情報を渡してピッカーを生成する。
type Resolver ¶
type Resolver struct {
// contains filtered or unexported fields
}
Resolver はgRPCの resolver.Builder インタフェースと resolver.Resolver インタフェースを実装する。
func (*Resolver) Build ¶
func (r *Resolver) Build( target resolver.Target, cc resolver.ClientConn, opts resolver.BuildOptions, ) (resolver.Resolver, error)
Build はサーバを発見できるリゾルバ構築に必要なデータと、リゾルバが発見したサーバで更新するクライアントコネクション を受け取り、リゾルバが GetServers API を呼び出せるように、サーバへのクライアントコネクションを設定する。
func (*Resolver) ResolveNow ¶
func (r *Resolver) ResolveNow(resolver.ResolveNowOptions)
ResolveNow はターゲットを解決し、サーバを発見し、ロードバランサが選択できるサーバを知らせるために サーバとのクライアントコネクションを更新する。
Click to show internal directories.
Click to hide internal directories.