Skip to content

Commit

Permalink
Develop (#238)
Browse files Browse the repository at this point in the history
* refactor project structure; downward jupiter package; migrate jupiter tool

* enhance:Improve code readability&reduce memory copy

* registerBiz ctx timeout error

* refactor project structure; downward jupiter package; migrate jupiter tool

* resolve conflict

* resolve security problem

Co-authored-by: fuzengyao <[email protected]>
Co-authored-by: [email protected] <[email protected]>
Co-authored-by: denghuaguang <[email protected]>
Co-authored-by: myxy99 <[email protected]>
  • Loading branch information
5 people authored Aug 6, 2021
1 parent 612e8e9 commit 7214e4f
Show file tree
Hide file tree
Showing 14 changed files with 123 additions and 1,129 deletions.
10 changes: 0 additions & 10 deletions cmd/jupiter/go.mod

This file was deleted.

1,088 changes: 0 additions & 1,088 deletions cmd/jupiter/go.sum

This file was deleted.

5 changes: 2 additions & 3 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -19,14 +19,13 @@ require (
github.com/fatih/structtag v1.2.0
github.com/flosch/pongo2 v0.0.0-20200518135938-dfb43dbdc22a
github.com/fsnotify/fsnotify v1.4.9
github.com/gin-gonic/gin v1.6.3
github.com/gin-gonic/gin v1.7.0
github.com/go-redis/redis v6.15.8+incompatible
github.com/go-resty/resty/v2 v2.2.0
github.com/gobuffalo/packr/v2 v2.2.0 // indirect
github.com/gogf/gf v1.13.3
github.com/golang/mock v1.4.4 // indirect
github.com/golang/protobuf v1.4.2
github.com/google/go-cmp v0.5.1 // indirect
github.com/gopherjs/gopherjs v0.0.0-20200217142428-fce0ec30dd00 // indirect
github.com/gorilla/websocket v1.4.2
github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0
Expand Down Expand Up @@ -54,7 +53,7 @@ require (
github.com/uber/jaeger-client-go v2.23.1+incompatible
github.com/uber/jaeger-lib v2.2.0+incompatible // indirect
github.com/urfave/cli v1.22.5
go.mongodb.org/mongo-driver v1.4.1
go.mongodb.org/mongo-driver v1.5.1
go.uber.org/atomic v1.6.0 // indirect
go.uber.org/automaxprocs v1.3.0
go.uber.org/multierr v1.5.0
Expand Down
26 changes: 26 additions & 0 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,8 @@ github.com/aws/aws-sdk-go v1.15.24/go.mod h1:mFuSZ37Z9YOHbQEwBWztmVzqXrEkub65tZo
github.com/aws/aws-sdk-go v1.23.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo=
github.com/aws/aws-sdk-go v1.29.15 h1:0ms/213murpsujhsnxnNKNeVouW60aJqSd992Ks3mxs=
github.com/aws/aws-sdk-go v1.29.15/go.mod h1:1KvfttTE3SPKMpo8g2c6jL3ZKfXtFvKscTgahTma5Xg=
github.com/aws/aws-sdk-go v1.34.28 h1:sscPpn/Ns3i0F4HPEWAVcwdIRaZZCuL7llJ2/60yPIk=
github.com/aws/aws-sdk-go v1.34.28/go.mod h1:H7NKnBqNVzoTJpGfLrQkkD+ytBA93eiDYi/+8rV9s48=
github.com/baiyubin/aliyun-sts-go-sdk v0.0.0-20180326062324-cfa1a18b161f/go.mod h1:AuiFmCCPBSrqvVMvuqFuk0qogytodnVFVSN5CeJB8Gc=
github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8=
Expand Down Expand Up @@ -237,6 +239,8 @@ github.com/gin-gonic/gin v1.4.0/go.mod h1:OW2EZn3DO8Ln9oIKOvM++LBO+5UPHJJDH72/q/
github.com/gin-gonic/gin v1.5.0/go.mod h1:Nd6IXA8m5kNZdNEHMBd93KT+mdY3+bewLgRvmCsR2Do=
github.com/gin-gonic/gin v1.6.3 h1:ahKqKTFpO5KTPHxWZjEdPScmYaGtLo8Y4DMHoEsnp14=
github.com/gin-gonic/gin v1.6.3/go.mod h1:75u5sXoLsGZoRN5Sgbi1eraJ4GU3++wFwWzhwvtwp4M=
github.com/gin-gonic/gin v1.7.0 h1:jGB9xAJQ12AIGNB4HguylppmDK1Am9ppF7XnGXXJuoU=
github.com/gin-gonic/gin v1.7.0/go.mod h1:jD2toBW3GZUr5UMcdrwQA10I7RuaFOl/SGeDjXkfUtY=
github.com/gliderlabs/ssh v0.2.2/go.mod h1:U7qILu1NlMHj9FlMhZLlkCdDnU1DBEAqr0aevW3Awn0=
github.com/go-acme/lego/v3 v3.4.0/go.mod h1:xYbLDuxq3Hy4bMUT1t9JIuz6GWIWb3m5X+TeTHYaT7M=
github.com/go-check/check v0.0.0-20180628173108-788fd7840127 h1:0gkP6mzaMqkmpcJYCFOLkIBwI7xFExG03bbkOkCvUPI=
Expand Down Expand Up @@ -292,6 +296,8 @@ github.com/go-playground/universal-translator v0.17.0 h1:icxd5fm+REJzpZx7ZfpaD87
github.com/go-playground/universal-translator v0.17.0/go.mod h1:UkSxE5sNxxRwHyU+Scu5vgOQjsIJAF8j9muTVoKLVtA=
github.com/go-playground/validator/v10 v10.2.0 h1:KgJ0snyC2R9VXYN2rneOtQcw5aHQB1Vv0sFl1UcHBOY=
github.com/go-playground/validator/v10 v10.2.0/go.mod h1:uOYAAleCW8F/7oMFd6aG0GOhaH6EGOAJShg8Id5JGkI=
github.com/go-playground/validator/v10 v10.4.1 h1:pH2c5ADXtd66mxoE0Zm9SUhxE20r7aM3F26W0hOn+GE=
github.com/go-playground/validator/v10 v10.4.1/go.mod h1:nlOn6nFhuKACm19sB/8EGNn9GlaMV7XkbRSipzJ0Ii4=
github.com/go-redis/redis v6.15.8+incompatible h1:BKZuG6mCnRj5AOaWJXoCgf6rqTYnYJLe4en2hxT7r9o=
github.com/go-redis/redis v6.15.8+incompatible/go.mod h1:NAIEuMOZ/fxfXJIrKDQDz8wamY7mA7PouImQ2Jvg6kA=
github.com/go-resty/resty/v2 v2.1.0/go.mod h1:dZGr0i9PLlaaTD4H/hoZIDjQ+r6xq8mgbRzHZf7f2J8=
Expand Down Expand Up @@ -400,6 +406,8 @@ github.com/google/go-cmp v0.4.0 h1:xsAVV57WRhGj6kEIi8ReJzQlHHqcBYCElAvkovg3B/4=
github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.1 h1:JFrFEBb2xKufg6XkJsJr+WbKb4FQlURi5RUcBveYu9k=
github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.2 h1:X2ev0eStA3AbceY54o37/0PQ/UWqKEiiO2dKL5OPaFM=
github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-github v17.0.0+incompatible/go.mod h1:zLgOLi98H3fifZn+44m+umXrS52loVEgC2AApnigrVQ=
github.com/google/go-querystring v0.0.0-20170111101155-53e6ce116135/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck=
github.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck=
Expand Down Expand Up @@ -526,6 +534,10 @@ github.com/jinzhu/now v1.0.1/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/
github.com/jmespath/go-jmespath v0.0.0-20160202185014-0b12d6b521d8/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k=
github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af h1:pmfjZENx5imkbgOkpRUYLnmbU7UEFbjtDA2hxJ1ichM=
github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k=
github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg=
github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo=
github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8=
github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U=
github.com/joho/godotenv v1.3.0 h1:Zjp+RcGpHhGlrMbJzXTrZZPrWj+1vfm90La1wgB6Bhc=
github.com/joho/godotenv v1.3.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg=
github.com/jonboulle/clockwork v0.1.0 h1:VKV+ZcuP6l3yW9doeqz6ziZGgcynBVQO+obU0+0hcPo=
Expand Down Expand Up @@ -729,6 +741,8 @@ github.com/patrickmn/go-cache v0.0.0-20180527043350-9f6ff22cfff8/go.mod h1:3Qf8k
github.com/patrickmn/go-cache v2.1.0+incompatible/go.mod h1:3Qf8kWWT7OJRJbdiICTKqZju1ZixQ/KpMGzzAfe6+WQ=
github.com/pelletier/go-toml v1.4.0 h1:u3Z1r+oOXJIkxqw34zVhyPgjBsm6X2wn21NWs/HfSeg=
github.com/pelletier/go-toml v1.4.0/go.mod h1:PN7xzY2wHTK0K9p34ErDQMlFxa51Fk0OUruD3k1mMwo=
github.com/pelletier/go-toml v1.7.0 h1:7utD74fnzVc/cpcyy8sjrlFr5vYpypUixARcHIMIGuI=
github.com/pelletier/go-toml v1.7.0/go.mod h1:vwGMzjaWMwyfHwgIBhI2YUM4fB6nL6lVAvS1LBMMhTE=
github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU=
github.com/philchia/agollo/v4 v4.0.0 h1:DiZWsZ6YOT98eH77IuOsax4w/01F0W6TUWYNbAEsHy4=
github.com/philchia/agollo/v4 v4.0.0/go.mod h1:SBdQmfqqu/XCWJ1MDzYcCL3X+p3VJ+uQBy0nxxqjexg=
Expand Down Expand Up @@ -898,6 +912,12 @@ github.com/valyala/fasttemplate v1.1.0/go.mod h1:UQGH1tvbgY+Nz5t2n7tXsz52dQxojPU
github.com/vmware/govmomi v0.18.0/go.mod h1:URlwyTFZX72RmxtxuaFL2Uj3fD1JTvZdx59bHWk6aFU=
github.com/vultr/govultr v0.1.4/go.mod h1:9H008Uxr/C4vFNGLqKx232C206GL0PBHzOP0809bGNA=
github.com/xanzy/ssh-agent v0.2.1/go.mod h1:mLlQY/MoOhWBj+gOGMQkOeiEvkx+8pJSI+0Bx9h2kr4=
github.com/xdg-go/pbkdf2 v1.0.0 h1:Su7DPu48wXMwC3bs7MCNG+z4FhcyEuz5dlvchbq0B0c=
github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI=
github.com/xdg-go/scram v1.0.2 h1:akYIkZ28e6A96dkWNJQu3nmCzH3YfwMPQExUYDaRv7w=
github.com/xdg-go/scram v1.0.2/go.mod h1:1WAq6h33pAW+iRreB34OORO2Nf7qel3VV3fjBj+hCSs=
github.com/xdg-go/stringprep v1.0.2 h1:6iq84/ryjjeRmMJwxutI51F2GIPlP5BfTvXHeYjyhBc=
github.com/xdg-go/stringprep v1.0.2/go.mod h1:8F9zXuvzgwmyT5DUm4GUfZGDdT3W+LCvS6+da4O5kxM=
github.com/xdg/scram v0.0.0-20180814205039-7eeb5667e42c h1:u40Z8hqBAAQyv+vATcGgV0YCnDjqSL7/q/JyPhhJSPk=
github.com/xdg/scram v0.0.0-20180814205039-7eeb5667e42c/go.mod h1:lB8K/P019DLNhemzwFU4jHLhdvlE6uDZjXFejJXr49I=
github.com/xdg/stringprep v0.0.0-20180714160509-73f8eece6fdc h1:n+nNi93yXLkJvKwXNP9d55HC7lGK4H/SRcwB5IaUZLo=
Expand All @@ -908,6 +928,8 @@ github.com/xeipuuv/gojsonschema v0.0.0-20180618132009-1d523034197f/go.mod h1:5yf
github.com/xeipuuv/gojsonschema v1.1.0/go.mod h1:5yf86TLmAcydyeJq5YvxkGPE2fm/u4myDekKRoLuqhs=
github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2 h1:eY9dn8+vbi4tKz5Qo6v2eYzo7kUS51QINcR5jNpbZS8=
github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU=
github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d h1:splanxYIlg+5LfHAM6xpdFEAYOk8iySO56hMFq6uLyA=
github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d/go.mod h1:rHwXgn7JulP+udvsHwJoVG1YGAP6VLg4y9I5dyZdqmA=
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
github.com/yuin/goldmark v1.1.32 h1:5tjfNdR2ki3yYQ842+eX2sQHeiwpKJ0RnHO4IYOc4V8=
github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
Expand All @@ -920,6 +942,8 @@ go.etcd.io/etcd v3.3.13+incompatible h1:jCejD5EMnlGxFvcGRyEV4VGlENZc7oPQX6o0t7n3
go.etcd.io/etcd v3.3.13+incompatible/go.mod h1:yaeTdrJi5lOmYerz05bd8+V7KubZs8YSFZfzsF9A6aI=
go.mongodb.org/mongo-driver v1.4.1 h1:38NSAyDPagwnFpUA/D5SFgbugUYR3NzYRNa4Qk9UxKs=
go.mongodb.org/mongo-driver v1.4.1/go.mod h1:llVBH2pkj9HywK0Dtdt6lDikOjFLbceHVu/Rc0iMKLs=
go.mongodb.org/mongo-driver v1.5.1 h1:9nOVLGDfOaZ9R0tBumx/BcuqkbFpyTCU2r/Po7A2azI=
go.mongodb.org/mongo-driver v1.5.1/go.mod h1:gRXCHX4Jo7J0IJ1oDQyUxF7jfy19UfxniMS4xxMmUqw=
go.opencensus.io v0.20.1/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk=
go.opencensus.io v0.20.2/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk=
go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU=
Expand Down Expand Up @@ -1115,6 +1139,8 @@ golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs=
golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
golang.org/x/text v0.3.3 h1:cokOdA+Jmi5PJGXLlLllQSgYigAEfHXJAERHVMaCc2k=
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.3.5 h1:i6eZZ+zk0SOf0xgBpEpPD18qWcJda6q1sxt3S0kzyUQ=
golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4 h1:SvFZT6jyqRaOeXpc5h/JSfZenJ2O330aBsf7JfSUXmQ=
Expand Down
11 changes: 11 additions & 0 deletions pkg/client/etcdv3/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -84,4 +84,15 @@ func (config *Config) WithLogger(logger *xlog.Logger) *Config {
// Build ...
func (config *Config) Build() (*Client, error) {
return newClient(config)
<<<<<<< HEAD
}

func (config *Config) MustBuild() *Client {
client, err := config.Build()
if err != nil {
xlog.Panicf("build etcd client failed: %v", err)
}
return client
=======
>>>>>>> master
}
5 changes: 5 additions & 0 deletions pkg/conf/api.go
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,11 @@ func Get(key string) interface{} {
return defaultConfiguration.Get(key)
}

// Exists returns whether key exists
func Exists(key string) bool {
return defaultConfiguration.Get(key) != nil
}

// Set set config value for key
func Set(key string, val interface{}) {
defaultConfiguration.Set(key, val)
Expand Down
8 changes: 8 additions & 0 deletions pkg/conf/datasource.go
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,14 @@ func init() {
}
log.Printf("load config from datasource[%s] completely!", configAddr)
}})

flag.Register(&flag.StringFlag{Name: "config-tag", Usage: "--config-tag=mapstructure", Default: "mapstructure", Action: func(key string, fs *flag.FlagSet) {
defaultGetOptions.TagName = fs.String("config-tag")
}})

flag.Register(&flag.StringFlag{Name: "config-namespace", Usage: "--config-namespace=jupiter, 配置内建组件的默认命名空间, 默认是jupiter", Default: "jupiter", Action: func(key string, fs *flag.FlagSet) {
defaultGetOptions.Namespace = fs.String("config-namespace")
}})
}

// Register registers a dataSource creator function to the registry
Expand Down
15 changes: 5 additions & 10 deletions pkg/conf/datasource/etcdv3/register.go
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
package etcdv3

import (
"net/url"

"github.com/douyu/jupiter/pkg/client/etcdv3"
"github.com/douyu/jupiter/pkg/conf"
"github.com/douyu/jupiter/pkg/flag"
"github.com/douyu/jupiter/pkg/util/xnet"
"github.com/douyu/jupiter/pkg/xlog"
)

Expand All @@ -24,24 +23,20 @@ func init() {
// configAddr is a string in this format:
// etcdv3://ip:port?basicAuth=true&username=XXX&password=XXX&key=XXX&certFile=XXX&keyFile=XXX&caCert=XXX&secure=XXX

urlObj, err := url.Parse(configAddr)
urlObj, err := xnet.ParseURL(configAddr)
if err != nil {
xlog.Panic("parse configAddr error", xlog.FieldErr(err))
return nil
}
etcdConf := etcdv3.DefaultConfig()
etcdConf.Endpoints = []string{urlObj.Host}
if urlObj.Query().Get("basicAuth") == "true" {
etcdConf.BasicAuth = true
}
if urlObj.Query().Get("secure") == "true" {
etcdConf.Secure = true
}
etcdConf.BasicAuth = urlObj.QueryBool("basicAuth", false)
etcdConf.Secure = urlObj.QueryBool("secure", false)
etcdConf.CertFile = urlObj.Query().Get("certFile")
etcdConf.KeyFile = urlObj.Query().Get("keyFile")
etcdConf.CaCert = urlObj.Query().Get("caCert")
etcdConf.UserName = urlObj.Query().Get("username")
etcdConf.Password = urlObj.Query().Get("password")
return NewDataSource(etcdConf.Build(), urlObj.Query().Get("key"))
return NewDataSource(etcdConf.MustBuild(), urlObj.Query().Get("key"))
})
}
27 changes: 21 additions & 6 deletions pkg/conf/option.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,9 @@ package conf
type (
GetOption func(o *GetOptions)
GetOptions struct {
TagName string
TagName string
Namespace string
Module string
}
)

Expand All @@ -34,19 +36,32 @@ func TagName(tag string) GetOption {
}

func TagNameJSON() GetOption {
return TagName("json")
}

func TagNameTOML() GetOption {
return TagName("toml")
}

func TagNameYAML() GetOption {
return TagName("yaml")
}

func BuildinModule(module string) GetOption {
return func(o *GetOptions) {
o.TagName = "json"
o.Namespace = "jupiter"
o.Module = module
}
}

func TagNameTOML() GetOption {
func Namespace(namespace string) GetOption {
return func(o *GetOptions) {
o.TagName = "toml"
o.Namespace = namespace
}
}

func TagNameYAML() GetOption {
func Module(module string) GetOption {
return func(o *GetOptions) {
o.TagName = "yaml"
o.Module = module
}
}
16 changes: 7 additions & 9 deletions pkg/datasource/etcdv3/register.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ import (
"github.com/douyu/jupiter/pkg/conf"
"github.com/douyu/jupiter/pkg/datasource/manager"
"github.com/douyu/jupiter/pkg/flag"
"github.com/douyu/jupiter/pkg/util/xnet"
"github.com/douyu/jupiter/pkg/xlog"
"net/url"
)

// DataSourceEtcdv3 defines etcdv3 scheme
Expand All @@ -24,24 +24,22 @@ func init() {
// configAddr is a string in this format:
// etcdv3://ip:port?basicAuth=true&username=XXX&password=XXX&key=XXX&certFile=XXX&keyFile=XXX&caCert=XXX&secure=XXX

urlObj, err := url.Parse(configAddr)
urlObj, err := xnet.ParseURL(configAddr)
if err != nil {
xlog.Panic("parse configAddr error", xlog.FieldErr(err))
return nil
}
etcdConf := etcdv3.DefaultConfig()
etcdConf.Endpoints = []string{urlObj.Host}
if urlObj.Query().Get("basicAuth") == "true" {
etcdConf.BasicAuth = true
}
if urlObj.Query().Get("secure") == "true" {
etcdConf.Secure = true
}

etcdConf.Secure = urlObj.QueryBool("secure", false)
etcdConf.BasicAuth = urlObj.QueryBool("basicAuth", false)

etcdConf.CertFile = urlObj.Query().Get("certFile")
etcdConf.KeyFile = urlObj.Query().Get("keyFile")
etcdConf.CaCert = urlObj.Query().Get("caCert")
etcdConf.UserName = urlObj.Query().Get("username")
etcdConf.Password = urlObj.Query().Get("password")
return NewDataSource(etcdConf.Build(), urlObj.Query().Get("key"))
return NewDataSource(etcdConf.MustBuild(), urlObj.Query().Get("key"))
})
}
3 changes: 2 additions & 1 deletion pkg/flag/flag.go
Original file line number Diff line number Diff line change
Expand Up @@ -259,7 +259,8 @@ type StringFlag struct {
EnvVar string
Default string
Variable *string
Action func(string, *FlagSet)
// Action hooked after call fs.Parse()
Action func(string, *FlagSet)
}

// Apply implements of Flag Apply function.
Expand Down
15 changes: 15 additions & 0 deletions pkg/sentinel/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,21 @@ import (
"github.com/douyu/jupiter/pkg/xlog"
)

const ModuleName = "sentinel"

func Load(name string, opts ...conf.LoadOption) *Config {
var options = conf.DefaultLoadOptions(ModuleName)
for _, opt := range opts {
opt(&options)
}

var config = DefaultConfig()
if err := conf.UnmarshalKey(options.KeyPath(name), config); err != nil {
xlog.Panic("unmarshal key", xlog.Any("err", err))
}
return config
}

// StdConfig ...
func StdConfig(name string) *Config {
return RawConfig("jupiter.sentinel." + name)
Expand Down
9 changes: 7 additions & 2 deletions pkg/sentinel/init.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,13 @@ func init() {
// 加载完配置,初始化sentinel
conf.OnLoaded(func(c *conf.Configuration) {
log.Print("hook config, init sentinel rules")
if conf.Get("jupiter.reliability.sentinel") != nil {
RawConfig("jupiter.reliability.sentinel").Build()
var config = DefaultConfig()
if err := conf.UnmarshalKey("sentinel", &config, conf.BuildinModule("reliability")); err != nil {
log.Printf("read sentinel config failed %v", err)
return
}

// initialize global sentinel
config.Build()
})
}
14 changes: 14 additions & 0 deletions pkg/server/xgin/server.go
Original file line number Diff line number Diff line change
Expand Up @@ -102,3 +102,17 @@ func (s *Server) Info() *server.ServiceInfo {
// info.Name = info.Name + "." + ModName
return &info
}

func (s *Server) Healthz() bool {
if s.listener == nil {
return false
}

conn, err := s.listener.Accept()
if err != nil {
return false
}

conn.Close()
return true
}

0 comments on commit 7214e4f

Please sign in to comment.