# 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 创建一个链路追踪节点.
# Interfaces
Span Span结构.
# Type aliases
BrokerEvent BrokerEvent定义.
BrokerHanlde 消息队列定义.
Client 转换.
Dlock 分布式锁.
Event 转换.