rpcx

package
v1.1.21 Latest Latest
Warning

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

Go to latest
Published: May 14, 2026 License: MIT Imports: 14 Imported by: 0

README

1.

go get -u google.golang.org/grpc go get -u google.golang.org/protobuf

2.

go install google.golang.org/protobuf/cmd/protoc-gen-go@latest go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest

3.

protoc --go_out=. ./rpcx/proto/common_worker.proto protoc --go-grpc_out=. ./rpcx/proto/common_worker.proto

4. 生成TLS证书

说明:以下 openssl genrsa 仅用于生成 TLS 证书私钥
与业务层加密/签名方案无关;当前业务链路以 Ed25519/X25519 为主(见根目录 README_SECURITY.md)。

生成ca私钥

openssl genrsa -out ca.key 4096

自签名生成ca.crt 证书文件

如果在 Windows 使用 Git Bash 出现错误

name is expected to be in the format /type0=value0/type1=value1/type2=... where characters may be escaped by . This name is not in that format: ...

则需要在命令前加上

MSYS_NO_PATHCONV=1

例如 MSYS_NO_PATHCONV=1 openssl ...

MSYS_NO_PATHCONV=1 openssl req -new -x509 -days 3650 -key ca.key -out ca.crt -subj "/CN=localhost"

生成server/client key file

openssl genrsa -out server.key 2048 openssl genrsa -out client.key 2048

生成server/client csr file

openssl req -new -key server.key -out server.csr -config TLS.md -extensions SAN openssl req -new -key client.key -out client.csr -config TLS.md -extensions SAN

生成server/client crt file

Generates server.crt which is the certChainFile for the server

openssl x509 -req -days 3650 -in server.csr -CA ca.crt -CAkey ca.key -set_serial 01 -out server.crt -extfile TLS.md -extensions SAN openssl x509 -req -days 3650 -in client.csr -CA ca.crt -CAkey ca.key -set_serial 01 -out client.crt -extfile TLS.md -extensions SAN

Generates server.pem which is the privateKeyFile for the Server

openssl pkcs8 -topk8 -nocrypt -in server.key -out server.pem

独立server.key进行SAN自签

openssl genrsa -out server.key 2048 openssl req -new -key server.key -out server.csr -config TLS.md -extensions SAN openssl x509 -req -days 3650 -in server.csr -set_serial 01 -signkey server.key -out server.crt -extfile TLS.md -extensions SAN

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Wrap added in v1.1.0

func Wrap[Req, Resp proto.Message](handler func(context.Context, Req) (Resp, error)) func(context.Context, proto.Message) (proto.Message, error)

Wrap 创建类型安全的handler包装器,避免运行时反射开销 Req 和 Resp 是具体的 proto.Message 指针类型(如 *pb.TestRequest/*pb.TestResponse) 核心:极简、高效,错误完全透传,仅做必要的nil/类型校验

Types

type RPCManager added in v1.1.0

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

func NewRPCManager added in v1.1.0

func NewRPCManager() *RPCManager

NewRPCManager 创建GRPC管理器

func (*RPCManager) AddCipher added in v1.1.0

func (g *RPCManager) AddCipher(usr int64, cipher crypto.Cipher) error

AddCipher 注册某一客户端用户 Cipher:*crypto.Ed25519Object(CreateEd25519WithBase64:服务端私钥 + 该客户端公钥)。 RPCX 当前仅明文 P=0:s=SHA256(规范字段),e=Ed25519.Sign(SHA256(规范字段))。

func (*RPCManager) AddHandler added in v1.1.0

func (g *RPCManager) AddHandler(router string, handler impl.RequestHandler, constructor impl.RequestConstructor)

AddHandler 注册业务处理器 新增构造函数参数,转发到 impl.SetHandler

func (*RPCManager) AddLocalCache added in v1.1.0

func (g *RPCManager) AddLocalCache(cacheAware cache.Cache) *RPCManager

AddLocalCache 增加本地缓存实例

func (*RPCManager) AddRedisCache added in v1.1.0

func (g *RPCManager) AddRedisCache(cacheAware cache.Cache) *RPCManager

AddRedisCache 增加Redis缓存实例

func (*RPCManager) GetCipher added in v1.1.0

func (g *RPCManager) GetCipher() map[int64]crypto.Cipher

GetCipher 获取cipher密钥列表 (实现ConfigProvider接口)

func (*RPCManager) GetLocalCache added in v1.1.0

func (g *RPCManager) GetLocalCache() cache.Cache

GetLocalCache 获取本地缓存

func (*RPCManager) GetRedisCache added in v1.1.0

func (g *RPCManager) GetRedisCache() cache.Cache

GetRedisCache 获取Redis缓存

func (*RPCManager) StartServer added in v1.1.0

func (g *RPCManager) StartServer(addr string) error

StartServer 启动GRPC服务

func (*RPCManager) StartServerByTimeout added in v1.1.0

func (g *RPCManager) StartServerByTimeout(addr string, timeout int) error

StartServerByTimeout 带超时的启动GRPC服务

func (*RPCManager) StopServer added in v1.1.0

func (g *RPCManager) StopServer() error

StopServer 停止GRPC服务

func (*RPCManager) StopServerByTimeout added in v1.1.0

func (g *RPCManager) StopServerByTimeout(timeout time.Duration) error

StopServerByTimeout 带超时的停止GRPC服务

Directories

Path Synopsis
Package impl 实现 gRPC CommonWorker:P=0 明文;s=SHA256(规范字段);e=Ed25519.Sign(SHA256(规范字段));Cipher 为 *crypto.Ed25519Object。
Package impl 实现 gRPC CommonWorker:P=0 明文;s=SHA256(规范字段);e=Ed25519.Sign(SHA256(规范字段));Cipher 为 *crypto.Ed25519Object。

Jump to

Keyboard shortcuts

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