braid

package module
v1.2.2 Latest Latest
Warning

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

Go to latest
Published: Oct 22, 2020 License: MIT Imports: 12 Imported by: 0

README

Braid

Braid 提供统一的模块 服务交互模型,通过注册插件(支持自定义),构建属于自己的微服务。


Go Report Card drone codecov

Plug-ins

Mailbox 异步交互组件,支持进程内以及集群中的消息订阅和发送。

BalancerSWRR 平滑加权负载均衡器,同时在开启link-cache后,会依据连接数进行权重的调整。

Discover 服务发现,提供服务的进入 离开 更新 消息。

Elector 选举,提供节点是否为 节点的消息。

Link-cache 链路缓存,固定基于用户凭证的节点访问链路。用户可以在此基础上做一些业务逻辑优化。

GRPC client & server GRPC的封装, 支持连接池,同时可以绑定分布式追踪插件,以及链路缓存插件。

JaegerTracer 基于jaeger的分布式追踪服务


Sample
b, _ := braid.New(
  NodeName,
  mailboxnsq.WithLookupAddr([]string{nsqLookupAddr}),
  mailboxnsq.WithNsqdAddr([]string{nsqdAddr}))

b.RegistPlugin(
  braid.Discover(
    discoverconsul.Name,
    discoverconsul.WithConsulAddr(consulAddr)),
  braid.Balancer(balancerswrr.Name),
  braid.GRPCClient(grpcclient.Name),
  braid.Elector(
    electorconsul.Name,
    electorconsul.WithConsulAddr(consulAddr),
  ),
  braid.LinkCache(linkerredis.Name),
  braid.JaegerTracing(tracer.WithHTTP(jaegerAddr), tracer.WithProbabilistic(0.01)))

b.Run()
defer b.Close()
Wiki

https://github.com/pojol/braid/wiki

Sample

https://github.com/pojol/braid-sample

Web

流向图,用于监控链路上的连接数以及分布情况

$ docker pull braidgo/sankey:latest
$ docker run -d -p 8888:8888/tcp braidgo/sankey:latest \
    -consul http://172.17.0.1:8900 \
    -redis redis://172.17.0.1:6379/0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Client added in v1.1.7

func Client() client.IClient

Client grpc-client

func Mailbox added in v1.2.2

func Mailbox() mailbox.IMailbox

Mailbox pub-sub

func Server added in v1.1.7

func Server() server.ISserver

Server grpc-server

Types

type Braid added in v1.1.3

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

Braid framework instance

func New added in v1.1.7

func New(name string, mailboxOpts ...interface{}) (*Braid, error)

New 构建braid

func (*Braid) Close added in v1.1.7

func (b *Braid) Close()

Close 关闭braid

func (*Braid) RegistPlugin added in v1.1.7

func (b *Braid) RegistPlugin(plugins ...Plugin) error

RegistPlugin 注册插件

func (*Braid) Run added in v1.1.7

func (b *Braid) Run()

Run 运行braid

type Plugin added in v1.1.7

type Plugin func(*Braid)

Plugin wraps

func Balancer

func Balancer(builderName string, opts ...interface{}) Plugin

Balancer plugin

func Discover

func Discover(builderName string, opts ...interface{}) Plugin

Discover plugin

func Elector added in v1.2.2

func Elector(builderName string, opts ...interface{}) Plugin

Elector plugin

func GRPCClient added in v1.1.7

func GRPCClient(builderName string, opts ...interface{}) Plugin

GRPCClient rpc-client

func GRPCServer added in v1.1.7

func GRPCServer(builderName string, opts ...interface{}) Plugin

GRPCServer rpc-server

func JaegerTracing added in v1.2.2

func JaegerTracing(protoOpt tracer.Option, opts ...tracer.Option) Plugin

JaegerTracing jt

func LinkCache added in v1.2.2

func LinkCache(builderName string, opts ...interface{}) Plugin

LinkCache plugin

Jump to

Keyboard shortcuts

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