logserver

package
v0.0.0-...-7066845 Latest Latest
Warning

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

Go to latest
Published: Mar 16, 2024 License: MIT Imports: 11 Imported by: 0

Documentation

Index

Constants

View Source
const (
	RESET_SUCC = "Reset SUCCESS"
	RESET_FAIL = "Reset FAILED"
)

Variables

This section is empty.

Functions

func NewgRPCServer

func NewgRPCServer(c *LogImplConfig, opts ...grpc.ServerOption) (*grpc.Server, error)

根据实际使用的日志存储结构、访问控制机制和服务器选项创建 gRPC 服务器

Types

type Authorizer

type Authorizer interface {
	Authorize(subject, object, action string) error
}

访问控制接口 无论是否使用 casbin 库来做访问控制 都需要实现 Authorize 方法

type CommitLog

type CommitLog interface {

	// 将一条日志追加到日志存储结构中
	// 成功时返回这条日志的下标
	Append(*api.Record) (uint64, error)

	// 给定一个下标读取对应的日志
	// 成功时返回读取到的日志记录
	Read(uint64) (*api.Record, error)

	// 删除当前日志存储结构中的所有日志
	Reset() error
}

这里的 CommitLog 是一个通用的日志存储结构需要实现的接口 这意味着我们在服务端真正使用的日志存储结构可以 不使用 internal/log 目录下的实现的 Log 结构体 而是只要实现这三种方法即可

type LogImplConfig

type LogImplConfig struct {
	CommitLog  CommitLog
	Authorizer Authorizer
}

配置实际使用了哪一种日志存储结构实现及哪一种访问控制实现

Jump to

Keyboard shortcuts

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