g-server

module
v1.0.5 Latest Latest
Warning

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

Go to latest
Published: Mar 10, 2021 License: MIT

README ¶

g-server

Self-use microservice framework

🚀Installation

go get -u github.com/coder2z/g-server

đź””Features

Encapsulate many tool functions and methods, and continue to update. Most of the methods are open source and other open source projects.

xapp            = > runtime app info
datasource      = > xcfg data 
xcode           = > err coder encapsulation
xgovern         = > system monitoring
xgrpc           = > grpc encapsulation
xinvoker        = > invoker
xmoniter        = > prometheus
xregistry       = > service registration discovery
xtrace          = > trace
xversion        = > frame version

⚓Usage

config file
[db]
    [db.dev]
        password = "root"
        dbName = "ndisk"

[redis]
    [redis.dev]
main.go usage
package main

import (
	"context"
	"fmt"
	"github.com/BurntSushi/toml"
	"github.com/coder2z/g-saber/xflag"
	"github.com/coder2z/g-saber/xcfg"
	"github.com/coder2z/g-saber/xcfg/datasource/manager"
	"github.com/coder2z/g-server/xinvoker"
	xgorm "github.com/coder2z/g-server/xinvoker/gorm"
	xredis "github.com/coder2z/g-server/xinvoker/redis"
)

func main() {
	xflag.Register(
		xflag.CommandNode{
			Name: "run",
			Command: &xflag.Command{
				Use:   "run ",
				Short: "run your app",
				Run: func(cmd *xflag.Command, args []string) {
					RunApp()
				},
			},
			Flags: func(c *xflag.Command) {
				c.Flags().StringP("config", "c", "", "配置文件")
				_ = c.MarkFlagRequired("config")
			},
		},
	)

	_ = xflag.Parse()

}

func RunApp() {
	data, err := manager.NewDataSource(xflag.NString("run", "config"))
	if err != nil {
		panic(err)
	}
	err = xcfg.LoadFromDataSource(data, toml.Unmarshal)
	if err != nil {
		panic(err)
	}

	xinvoker.Register(
		xgorm.Register("db"),
		xredis.Register("redis"))
	_ = xinvoker.Init()

	db := xgorm.Invoker("dev")
	rc := xredis.Invoker("dev")
	d, _ := db.DB()
	fmt.Println(d.Ping(), rc.Ping(context.Background()))
}
run
 go run main.go run -c=test.toml

🎉Contribute code

Open source projects are inseparable from everyone’s support. If you have a good idea, encountered some bugs and fixed them, and corrected the errors in the document, please submit a Pull Request~

  1. Fork this project to your own repo
  2. Clone the project in the past, that is, the project in your warehouse, to your local
  3. Modify the code
  4. Push to your own library after commit
  5. Initiate a PR (pull request) request and submit it to the provide branch
  6. Waiting to merge

đź“•License

Distributed under MIT License, please see license file within the code for more details.

Directories ¶

Path Synopsis
datasource
* * @Author: yangon * @Description * @Date: 2020/12/25 18:20 *
* * @Author: yangon * @Description * @Date: 2020/12/25 18:20 *
* * @Author: myxy99 <myxy99@foxmail.com> * @Date: 2021/1/2 12:56 * * @Author: myxy99 <myxy99@foxmail.com> * @Date: 2021/1/2 12:55
* * @Author: myxy99 <myxy99@foxmail.com> * @Date: 2021/1/2 12:56 * * @Author: myxy99 <myxy99@foxmail.com> * @Date: 2021/1/2 12:55
* * @Author: yangon * @Description * @Date: 2020/12/25 17:35 * * * @Author: yangon * @Description * @Date: 2020/12/25 17:33 *
* * @Author: yangon * @Description * @Date: 2020/12/25 17:35 * * * @Author: yangon * @Description * @Date: 2020/12/25 17:33 *
balancer
* * @Author: yangon * @Description * @Date: 2021/3/8 14:45 *
* * @Author: yangon * @Description * @Date: 2021/3/8 14:45 *
balancer/consistent_hash
* * @Author: yangon * @Description * @Date: 2021/3/8 14:39 * * * @Author: yangon * @Description * @Date: 2021/3/8 14:41 *
* * @Author: yangon * @Description * @Date: 2021/3/8 14:39 * * * @Author: yangon * @Description * @Date: 2021/3/8 14:41 *
balancer/least_connection
* * @Author: yangon * @Description * @Date: 2021/3/8 14:57 *
* * @Author: yangon * @Description * @Date: 2021/3/8 14:57 *
balancer/random
* * @Author: yangon * @Description * @Date: 2021/3/8 14:58 *
* * @Author: yangon * @Description * @Date: 2021/3/8 14:58 *
balancer/round_robin
* * @Author: yangon * @Description * @Date: 2021/3/8 15:00 *
* * @Author: yangon * @Description * @Date: 2021/3/8 15:00 *
client
* * @Author: myxy99 <myxy99@foxmail.com> * @Date: 2021/1/2 12:50
* * @Author: myxy99 <myxy99@foxmail.com> * @Date: 2021/1/2 12:50
server
* * @Author: myxy99 <myxy99@foxmail.com> * @Date: 2021/1/2 12:50
* * @Author: myxy99 <myxy99@foxmail.com> * @Date: 2021/1/2 12:50
* * @Author: yangon * @Description * @Date: 2020/12/23 13:18 *
* * @Author: yangon * @Description * @Date: 2020/12/23 13:18 *
email
* * @Author: myxy99 <myxy99@foxmail.com> * @Date: 2020/11/5 0:20 * * @Author: yangon * @Description * @Date: 2020/12/23 13:52 * * * @Author: myxy99 <myxy99@foxmail.com> * @Date: 2020/11/4 11:18
* * @Author: myxy99 <myxy99@foxmail.com> * @Date: 2020/11/5 0:20 * * @Author: yangon * @Description * @Date: 2020/12/23 13:52 * * * @Author: myxy99 <myxy99@foxmail.com> * @Date: 2020/11/4 11:18
gorm
* * @Author: yangon * @Description * @Date: 2020/12/23 13:52 * * * @Author: myxy99 <myxy99@foxmail.com> * @Date: 2020/11/4 11:18
* * @Author: yangon * @Description * @Date: 2020/12/23 13:52 * * * @Author: myxy99 <myxy99@foxmail.com> * @Date: 2020/11/4 11:18
mongo
* * @Author: yangon * @Description * @Date: 2020/12/23 13:52 * * * @Author: yangon * @Description * @Date: 2020/12/23 17:09 * * * @Author: myxy99 <myxy99@foxmail.com> * @Date: 2020/11/4 11:18
* * @Author: yangon * @Description * @Date: 2020/12/23 13:52 * * * @Author: yangon * @Description * @Date: 2020/12/23 17:09 * * * @Author: myxy99 <myxy99@foxmail.com> * @Date: 2020/11/4 11:18
oss
* * @Author: yangon * @Description * @Date: 2020/12/23 13:52 * * * @Author: myxy99 <myxy99@foxmail.com> * @Date: 2020/11/4 11:18 * * @Author: yangon * @Description * @Date: 2020/12/23 16:26 *
* * @Author: yangon * @Description * @Date: 2020/12/23 13:52 * * * @Author: myxy99 <myxy99@foxmail.com> * @Date: 2020/11/4 11:18 * * @Author: yangon * @Description * @Date: 2020/12/23 16:26 *
oss/alioss
* * @Author: yangon * @Description * @Date: 2020/12/23 16:34 *
* * @Author: yangon * @Description * @Date: 2020/12/23 16:34 *
oss/file
* * @Author: yangon * @Description * @Date: 2020/12/23 16:30 *
* * @Author: yangon * @Description * @Date: 2020/12/23 16:30 *
oss/standard
* * @Author: yangon * @Description * @Date: 2020/12/23 16:25 *
* * @Author: yangon * @Description * @Date: 2020/12/23 16:25 *
redis
* * @Author: yangon * @Description * @Date: 2020/12/23 13:52 * * * @Author: myxy99 <myxy99@foxmail.com> * @Date: 2020/11/4 11:18
* * @Author: yangon * @Description * @Date: 2020/12/23 13:52 * * * @Author: myxy99 <myxy99@foxmail.com> * @Date: 2020/11/4 11:18
sms
* * @Author: yangon * @Description * @Date: 2020/12/23 13:52 * * * @Author: myxy99 <myxy99@foxmail.com> * @Date: 2020/11/4 11:18 * * @Author: yangon * @Description * @Date: 2021/1/6 18:05 *
* * @Author: yangon * @Description * @Date: 2020/12/23 13:52 * * * @Author: myxy99 <myxy99@foxmail.com> * @Date: 2020/11/4 11:18 * * @Author: yangon * @Description * @Date: 2021/1/6 18:05 *
* * @Author: yangon * @Description * @Date: 2020/12/25 16:29 * * * @Author: yangon * @Description * @Date: 2020/12/25 16:48 * * * @Author: yangon * @Description * @Date: 2020/12/25 16:45 * * * @Author: yangon * @Description * @Date: 2020/12/25 16:34 *
* * @Author: yangon * @Description * @Date: 2020/12/25 16:29 * * * @Author: yangon * @Description * @Date: 2020/12/25 16:48 * * * @Author: yangon * @Description * @Date: 2020/12/25 16:45 * * * @Author: yangon * @Description * @Date: 2020/12/25 16:34 *
* * @Author: myxy99 <myxy99@foxmail.com> * @Date: 2021/1/1 22:04
* * @Author: myxy99 <myxy99@foxmail.com> * @Date: 2021/1/1 22:04
xdirect
* * @Author: myxy99 <myxy99@foxmail.com> * @Date: 2021/1/1 22:44 * * @Author: myxy99 <myxy99@foxmail.com> * @Date: 2021/1/1 22:44
* * @Author: myxy99 <myxy99@foxmail.com> * @Date: 2021/1/1 22:44 * * @Author: myxy99 <myxy99@foxmail.com> * @Date: 2021/1/1 22:44
xetcd
* * @Author: myxy99 <myxy99@foxmail.com> * @Date: 2021/1/1 22:20 * * @Author: myxy99 <myxy99@foxmail.com> * @Date: 2021/1/1 22:34 * * @Author: myxy99 <myxy99@foxmail.com> * @Date: 2021/1/1 22:21
* * @Author: myxy99 <myxy99@foxmail.com> * @Date: 2021/1/1 22:20 * * @Author: myxy99 <myxy99@foxmail.com> * @Date: 2021/1/1 22:34 * * @Author: myxy99 <myxy99@foxmail.com> * @Date: 2021/1/1 22:21
xk8s
* * @Author: myxy99 <myxy99@foxmail.com> * @Date: 2021/1/1 22:08 * * @Author: myxy99 <myxy99@foxmail.com> * @Date: 2021/1/1 22:12
* * @Author: myxy99 <myxy99@foxmail.com> * @Date: 2021/1/1 22:08 * * @Author: myxy99 <myxy99@foxmail.com> * @Date: 2021/1/1 22:12
* * @Author: myxy99 <myxy99@foxmail.com> * @Date: 2021/1/2 13:42 * * @Author: myxy99 <myxy99@foxmail.com> * @Date: 2021/1/2 13:44
* * @Author: myxy99 <myxy99@foxmail.com> * @Date: 2021/1/2 13:42 * * @Author: myxy99 <myxy99@foxmail.com> * @Date: 2021/1/2 13:44
jaeger
* * @Author: myxy99 <myxy99@foxmail.com> * @Date: 2021/1/2 14:49
* * @Author: myxy99 <myxy99@foxmail.com> * @Date: 2021/1/2 14:49
* * @Author: yangon * @Description * @Date: 2021/3/8 10:50 *
* * @Author: yangon * @Description * @Date: 2021/3/8 10:50 *

Jump to

Keyboard shortcuts

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