package
1.13.0
Repository: https://github.com/hqbobo/frame.git
Documentation: pkg.go.dev

# README

service

所有微服务相关函数都封装在这里

主要函数

func NewService(name string, config *conf.GlobalConfig) *Service

本函数主要用来创建微服务需要配合 /qygame/common/conf使用

内部结合了

  • 注册中心
  • 消息队列
  • Cache缓存
  • Mysql数据库
  • 链路监控

所有内部相关模块将会自动启动只要有相关配置


func NewCliService(name string, config *conf.GlobalConfig) *Service

本函数主要是用来创建一个微服务客户端调用微服务使用

    //创建微服务客户端
    service := service.NewCliService(define.SVC_USER, config)
    //绑定user微服务
    svc := proto.NewUserService(define.SVC_USER, service.Client())

func SetClientBalance(ctx context.Context, key int64) context.Context

为客户端调用设置负载均衡key值 选取策略为 key % (节点数量) 配合NewCliService使用


Publish(topic string, msg *broker.Message, opts ...broker.PublishOption) error

发送消息到消息队列,要使用本函数必须优先初始化NewService并且在配置内包含相关配置

service.Publish("test111", &broker.Message{
    Header: map[string]string{
        "AAA": "BBBBB",
        "CCCCC": "DDDDDD",
    },
    Body: []byte("消息内容"+time.Now().String()),
}); err != nil {
    log.Fatal("%s",err.Error())
}

Subscribe(topic string, handler broker.Handler, opts ...broker.SubscribeOption) (broker.Subscriber, error)

注册消息队列监听函数,要使用本函数必须优先初始化NewService并且在配置内包含相关配置

service.Subscribe("test111", func(p broker.Event) error {
    log.Warn("[sub] received message:%s header %s", string(p.Message().Body), p.Message().Header)
    return nil
})

# Functions

NewCliService 新建client.
NewEvent Event事件.
NewService 新建服务避免并发使用.
PanicHandlerWrapper accepts an opentracing Tracer and returns a Handler Wrapper.
Deprecated Publish 消息队列发送用户全局广播.
RegisterEvent is syntactic sugar for registering a subscriber.
SetClientBalance 设置微服务调用负载均衡key.
Deprecated Subscribe 消息队列接收.
TraceSpan 创建一个链路追踪节点.

# Structs

BrokerMessage 消息队列定义.
Service 封装的Service.

# Interfaces

Span Span结构.

# Type aliases

BrokerEvent BrokerEvent定义.
BrokerHanlde 消息队列定义.
Client 转换.
Dlock 分布式锁.
Event 转换.