wego_framework golang 集成开发框架开源项目

我要开发同款
匿名用户2019年09月30日
54阅读
所属分类Google Go、程序开发、微服务框架
授权协议未知

作品详情

wego 是一个采用go-kit模式封装的golang开发框架,专注编写业务逻辑。

开发流程:

编写service中间件组合中间件形成servicechainhandler由filter(endpoint)和servicechain组合形成 provider中注册handlerserver的路由中注册各种handler

内置支持Server

httpgrpcwebsocketcronjobtimercommandredisqueue内部eventservergatewayserver

main.go

//如果参数配置了registy,则自动进行consul的服务注册grpchttp都可//例如gorunmain.go-name=test_service-registy=127.0.0.1:8500-server=grpcwego.Provider(&providers.ConsulRegistyProvider{})//这里注册自己的handlerwego.Provider(&provider.ExamProvider{})//下面的server,根据启动args参数决定wego.Router("grpc",&router.GrpcRouter{})wego.Router("http",&router.HttpRouter{})wego.Router("queue",&router.QueueRouter{})wego.Router("command",&router.CommandRouter{})wego.Router("websocket",&router.WebSocketRouter{})wego.Router("timer",&router.TimerRouter{})wego.Router("cron",&router.CronRouter{})//内置加载事件服务,无需路由,直接调用handlerwego.Router("event",servers.NewEventCommServer())wego.Start()

举例

//经过jwt认证后的用户id,和namefmt.Println(ctx.Request("claim.Id"))fmt.Println(ctx.GetValue("request.claim.Name"))//cache使用v,_:=cache.Get("aaaaa")v:=make(map[string]interface{})v["aaa"]="bbb"v["ccc"]="ddd"_=cache.Set("aaaaa",v,60)//日志使用ctx.Log.Info("one....")ctx.Log.Infof(format,arg...)//请求参数ctx.Request("claim.Id")//返回值ctx.Response("aa.bb","cc")ctx.Response("aa.cc","dd")//redis使用client:=clients.Redis()//从pool中获取一个链接deferclient.Close()//延时释放链接,本方法执行完毕时释放_,_=client.Do("SET","go_key","value")//mysql使用user:=model.CommUser{Id:id}has,_:=clients.DB().Get(&user)//event使用params:=make(map[string]interface{})payload:=&contracts.Payload{Route:"two",->接收处理的handlerParams:params,}events.Fire(payload)//redisqueue使用默认db->1msg:=make(map[string]interface{})msg["aaa"]="bbb"err:=queues.Fire("demo1",->发送的redis队列"queue_test",->侦听队列的server需要处理的路由handlermsg,)//远程服务调用,//为现有php模式而封装params:=make(map[string]interface{})params["test_rpc_post"]="test_rpc_post"resp:=clients.Micro("consul_demo").//服务的名称Service("demo.post").//服务的注册的handlerParams(params).Run()该方法会从consul中获取注册的服务,并随机选择一个进行请求,支持grpc和httpposthttppost对应的远端路由为http:/host+port/demo/post
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论