当前位置: 首页 > 软件库 > 程序开发 > 微服务框架 >

wego_framework

golang 集成开发框架
授权协议 未知
开发语言 Google Go
所属分类 程序开发、 微服务框架
软件类型 开源软件
地区 国产
投 递 者 宦瀚
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

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

开发流程:

  1. 编写 service 中间件
  2. 组合中间件形成 service chain
  3. handler 由 filter(endpoint)和 service chain 组合形成 
  4. provider 中注册 handler
  5. server 的路由中注册各种 handler

内置支持 Server

  • http
  • grpc
  • websocket
  • cronjob
  • timer
  • command
  • redis queue
  • 内部event server
  • gateway server

main.go

    //如果参数配置了registy,则自动进行consul的服务注册 grpc http 都可
	//例如go run main.go -name=test_service  -registy=127.0.0.1:8500 -server=grpc
	wego.Provider(&providers.ConsulRegistyProvider{})
    
    //这里注册自己的handler
	wego.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{})
	
	//内置加载事件服务,无需路由,直接调用  handler
    wego.Router("event", servers.NewEventCommServer())
	
	wego.Start()

举例

    //经过jwt认证后的用户id,和name
	fmt.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中获取一个链接
    defer client.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", ->接收处理的handler
		Params: params,
	}
	events.Fire(payload)
	//redis queue使用 默认db->1
    msg := make(map[string]interface{})
    msg["aaa"] = "bbb"
    err := queues.Fire(
        "demo1",     ->发送的redis 队列
        "queue_test",  ->侦听队列的server需要处理的路由handler
        msg,
    )
    //远程服务调用,// 为现有php模式而封装
    params:=make(map[string]interface{})
    params["test_rpc_post"] = "test_rpc_post"
    resp := clients.
        Micro("consul_demo").    //服务的名称
        Service("demo.post").    //服务的注册的handler
        Params(params).
        Run()
    该方法会从consul中获取注册的服务,并随机选择一个进行请求,支持grpc和http post
    http post 对应的远端路由为 http:/host+port/demo/post
 相关资料
  • 问题内容: 我使用JADE框架作为依赖项创建了一个maven项目,但是与普通的Java应用程序相比,该框架需要不同的命令来执行jar。 建立: 跑: 哪里是 要么 是否可以使用maven插件构建 可运行的jar, 所以我只需键入而不是上面的命令? 将编辑命令后Eclipse项目的变化构建参数 的pom.xml 文件? 问题答案: JADE没有可用的此类插件,因为它没有得到广泛使用的框架,而且没有人

  • "But I say to you that listen, Love your enemies, do good to those who hate you, bless those who curse you, pray for those who abuse you. If anyone strikes you on the cheek, offer the other also; and

  • 集成开发文档提供了详细的数据接入说明,确保您可以快速正确的接入数据 在集成诸葛io SDK和阅读集成文档之前,请先阅读《集成检查事项》

  • xcode开发SRS,参考:SRS for osx. windows/linux下开发srs的IDE:http://blog.csdn.net/win_lin/article/details/39579799 我也比较过其他的IDE,可以参考:开源日志:关于IDE/源代码编辑 QtCreator SRS添加了QT的配置文件,使用QT打开srs/trunk/src/qt/srs/srs-qt.pro

  • "But I say to you that listen, Love your enemies, do good to those who hate you, bless those who curse you, pray for those who abuse you. If anyone strikes you on the cheek, offer the other also; and

  • 我本人一直是建议在学习周期使用文本编辑器或者是Sublime Text 这个工具来写 Python 程序的,因为这样有利于我们了解整个流程。 当然,如果你有一定的编程基础,是可以使用集成的开发环境的,这样可以提高效率。这时,你可以选择 PyCharm ,PyCharm 是由 JetBrains 打造的一款 Python IDE,支持 macOS、 Windows、 Linux 系统。 PyChar

  • 本小节我们将介绍如何在我们的电脑上安装并配置开发工具:IntelliJ IDEA 如果你想查看如何安装配置 Eclipse IDE,请点击此处查看 1. IDE 概述 1.1 IDE 是什么? IDE 即 Integrated Development Environment 的缩写,中文意为集成开发环境,是用于提供程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面等工具。集成

  • 本小节我们将介绍如何在我们的电脑上安装并配置开发工具:Eclipse IDE 如果你想查看如何安装配置 IntelliJ IDEA,请点击此处查看 1. IDE 概述 1.1 IDE 是什么? IDE 即 Integrated Development Environment 的缩写,中文意为集成开发环境,是用于提供程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面等工具。集成