From 5b572e5fa6dac8dedc842e49352f08026513e36c Mon Sep 17 00:00:00 2001 From: kevin Date: Tue, 28 Jul 2020 16:29:13 +0800 Subject: [PATCH] add doc --- doc/images/resilience.jpg | Bin 0 -> 153038 bytes readme.md | 70 +++++++++++++++++++++++++ stash/config/config.go | 41 --------------- stash/es/index.go | 82 ------------------------------ stash/es/writer.go | 65 ------------------------ stash/etc/config.json | 75 --------------------------- stash/filter/filters.go | 104 -------------------------------------- stash/handler/handler.go | 64 ----------------------- stash/stash.go | 57 --------------------- 9 files changed, 70 insertions(+), 488 deletions(-) create mode 100644 doc/images/resilience.jpg create mode 100644 readme.md delete mode 100644 stash/config/config.go delete mode 100644 stash/es/index.go delete mode 100644 stash/es/writer.go delete mode 100644 stash/etc/config.json delete mode 100644 stash/filter/filters.go delete mode 100644 stash/handler/handler.go delete mode 100644 stash/stash.go diff --git a/doc/images/resilience.jpg b/doc/images/resilience.jpg new file mode 100644 index 0000000000000000000000000000000000000000..058e4e765aec56d20a6dea19943269379b16fdff GIT binary patch literal 153038 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 r7Sa;`liD@^GYEi_{Xej^xE1;g 部门:晓黑板研发部 +> +> git地址: + +## 1. go-zero框架背景 + +18年初,晓黑板后端在经过频繁的宕机后,决定从`Java+MongoDB`的单体架构迁移到微服务架构,经过仔细思考和对比,我们决定: + +* 基于Go语言 + * 高效的性能 + * 简洁的语法 + * 广泛验证的工程效率 + * 极致的部署体验 + * 极低的服务端资源成本 +* 自研微服务框架 + * 个人有过很多微服务框架自研经验 + * 需要有更快速的问题定位能力 + * 更便捷的增加新特性 + +## 2. go-zero框架设计思考 + +对于微服务框架的设计,我们期望保障微服务稳定性的同时,也要特别注重研发效率。所以设计之初,我们就有如下一些准则: + +* 保持简单 +* 高可用 +* 高并发 +* 易扩展 +* 弹性设计,面向故障编程 +* 尽可能对业务开发友好,封装复杂度 +* 尽可能约束做一件事只有一种方式 + +我们经历不到半年时间,彻底完成了从`Java+MongoDB`到`Golang+MySQL`为主的微服务体系迁移,并于18年8月底完全上线,稳定保障了晓黑板后续增长,确保了整个服务的高可用。 + +## 3. go-zero项目实现和特点 + +go-zero是一个集成了各种工程实践的包含web和rpc框架,有如下主要特点: + +* 强大的工具支持,尽可能少的代码编写 +* 极简的接口 +* 完全兼容net/http +* 支持中间件,方便扩展 +* 高性能 +* 面向故障编程,弹性设计 +* 内建服务发现、负载均衡 +* 内建限流、熔断、降载,且自动触发,自动恢复 +* API参数自动校验 +* 超时级联控制 +* 自动缓存控制 +* 链路跟踪、统计报警等 +* 高并发支撑,稳定保障了晓黑板疫情期间每天的流量洪峰 + +如下图,我们从多个层面保障了整体服务的高可用: + +![弹性设计](/Users/kevin/Develop/go/opensource/go-zero/doc/images/resilience.jpg) + +## 4. go-zero框架收益 + +* 保障大并发服务端的稳定性,经受了充分的实战检验 +* 极简的API定义 +* 一键生成Go, iOS, Android, Dart, TypeScript, JavaScript代码,并可直接运行 +* 服务端自动校验参数合法性 + +## 5. go-zero近期开发计划 + +* 升级grpc到最新版 +* 加入Power of Two Choices Peak Exponentially Weighted Moving Average负载均衡算法 +* 自动生成API mock server,便于客户端开发 +* 自动生成服务端功能测试 \ No newline at end of file diff --git a/stash/config/config.go b/stash/config/config.go deleted file mode 100644 index e0a0d507..00000000 --- a/stash/config/config.go +++ /dev/null @@ -1,41 +0,0 @@ -package config - -import ( - "time" - - "zero/kq" -) - -type ( - Condition struct { - Key string - Value string - Type string `json:",default=match,options=match|contains"` - Op string `json:",default=and,options=and|or"` - } - - ElasticSearchConf struct { - Hosts []string - DailyIndexPrefix string - TimeZone string `json:",optional"` - MaxChunkBytes int `json:",default=1048576"` - Compress bool `json:",default=false"` - } - - Filter struct { - Action string `json:",options=drop|remove_field"` - Conditions []Condition `json:",optional"` - Fields []string `json:",optional"` - } - - Config struct { - Input struct { - Kafka kq.KqConf - } - Filters []Filter - Output struct { - ElasticSearch ElasticSearchConf - } - GracePeriod time.Duration `json:",default=10s"` - } -) diff --git a/stash/es/index.go b/stash/es/index.go deleted file mode 100644 index ed150f6f..00000000 --- a/stash/es/index.go +++ /dev/null @@ -1,82 +0,0 @@ -package es - -import ( - "context" - "sync" - "time" - - "zero/core/fx" - "zero/core/logx" - "zero/core/syncx" - - "github.com/olivere/elastic" -) - -const sharedCallsKey = "ensureIndex" - -type ( - IndexFormat func(time.Time) string - IndexFunc func() string - - Index struct { - client *elastic.Client - indexFormat IndexFormat - index string - lock sync.RWMutex - sharedCalls syncx.SharedCalls - } -) - -func NewIndex(client *elastic.Client, indexFormat IndexFormat) *Index { - return &Index{ - client: client, - indexFormat: indexFormat, - sharedCalls: syncx.NewSharedCalls(), - } -} - -func (idx *Index) GetIndex(t time.Time) string { - index := idx.indexFormat(t) - if err := idx.ensureIndex(index); err != nil { - logx.Error(err) - } - return index -} - -func (idx *Index) ensureIndex(index string) error { - idx.lock.RLock() - if index == idx.index { - idx.lock.RUnlock() - return nil - } - idx.lock.RUnlock() - - _, err := idx.sharedCalls.Do(sharedCallsKey, func() (i interface{}, err error) { - idx.lock.Lock() - defer idx.lock.Unlock() - - existsService := elastic.NewIndicesExistsService(idx.client) - existsService.Index([]string{index}) - exist, err := existsService.Do(context.Background()) - if err != nil { - return nil, err - } - if exist { - idx.index = index - return nil, nil - } - - createService := idx.client.CreateIndex(index) - if err := fx.DoWithRetries(func() error { - // is it necessary to check the result? - _, err := createService.Do(context.Background()) - return err - }); err != nil { - return nil, err - } - - idx.index = index - return nil, nil - }) - return err -} diff --git a/stash/es/writer.go b/stash/es/writer.go deleted file mode 100644 index ac4e0fa6..00000000 --- a/stash/es/writer.go +++ /dev/null @@ -1,65 +0,0 @@ -package es - -import ( - "context" - "time" - - "zero/core/executors" - "zero/core/logx" - "zero/stash/config" - - "github.com/olivere/elastic" -) - -const docType = "doc" - -type ( - Writer struct { - client *elastic.Client - indexer *Index - inserter *executors.ChunkExecutor - } - - valueWithTime struct { - t time.Time - val string - } -) - -func NewWriter(c config.ElasticSearchConf, indexer *Index) (*Writer, error) { - client, err := elastic.NewClient( - elastic.SetSniff(false), - elastic.SetURL(c.Hosts...), - elastic.SetGzip(c.Compress), - ) - if err != nil { - return nil, err - } - - writer := Writer{ - client: client, - indexer: indexer, - } - writer.inserter = executors.NewChunkExecutor(writer.execute, executors.WithChunkBytes(c.MaxChunkBytes)) - return &writer, nil -} - -func (w *Writer) Write(t time.Time, val string) error { - return w.inserter.Add(valueWithTime{ - t: t, - val: val, - }, len(val)) -} - -func (w *Writer) execute(vals []interface{}) { - var bulk = w.client.Bulk() - for _, val := range vals { - pair := val.(valueWithTime) - req := elastic.NewBulkIndexRequest().Index(w.indexer.GetIndex(pair.t)).Type(docType).Doc(pair.val) - bulk.Add(req) - } - _, err := bulk.Do(context.Background()) - if err != nil { - logx.Error(err) - } -} diff --git a/stash/etc/config.json b/stash/etc/config.json deleted file mode 100644 index 35a610d2..00000000 --- a/stash/etc/config.json +++ /dev/null @@ -1,75 +0,0 @@ -{ - "Input": { - "Kafka": { - "Name": "easystash", - "Brokers": [ - "172.16.186.156:19092", - "172.16.186.157:19092", - "172.16.186.158:19092", - "172.16.186.159:19092", - "172.16.186.160:19092", - "172.16.186.161:19092" - ], - "Topic": "k8slog", - "Group": "pro", - "NumProducers": 16, - "MetricsUrl": "http://localhost:2222/add" - } - }, - "Filters": [ - { - "Action": "drop", - "Conditions": [ - { - "Key": "k8s_container_name", - "Value": "-rpc", - "Type": "contains" - }, - { - "Key": "level", - "Value": "info", - "Type": "match", - "Op": "and" - } - ] - }, - { - "Action": "remove_field", - "Fields": [ - "message", - "_source", - "_type", - "_score", - "_id", - "@version", - "topic", - "index", - "beat", - "docker_container", - "offset", - "prospector", - "source", - "stream" - ] - } - ], - "Output": { - "ElasticSearch": { - "Hosts": [ - "172.16.141.14:9200", - "172.16.141.15:9200", - "172.16.141.16:9200", - "172.16.141.17:9200", - "172.16.140.195:9200", - "172.16.140.196:9200", - "172.16.140.197:9200", - "172.16.140.198:9200", - "172.16.140.199:9200", - "172.16.140.200:9200", - "172.16.140.201:9200", - "172.16.140.202:9200" - ], - "DailyIndexPrefix": "k8s_pro-" - } - } -} \ No newline at end of file diff --git a/stash/filter/filters.go b/stash/filter/filters.go deleted file mode 100644 index c1a59f30..00000000 --- a/stash/filter/filters.go +++ /dev/null @@ -1,104 +0,0 @@ -package filter - -import ( - "strings" - - "zero/stash/config" - - "github.com/globalsign/mgo/bson" -) - -const ( - filterDrop = "drop" - filterRemoveFields = "remove_field" - opAnd = "and" - opOr = "or" - typeContains = "contains" - typeMatch = "match" -) - -type FilterFunc func(map[string]interface{}) map[string]interface{} - -func CreateFilters(c config.Config) []FilterFunc { - var filters []FilterFunc - - for _, f := range c.Filters { - switch f.Action { - case filterDrop: - filters = append(filters, DropFilter(f.Conditions)) - case filterRemoveFields: - filters = append(filters, RemoveFieldFilter(f.Fields)) - } - } - - return filters -} - -func DropFilter(conds []config.Condition) FilterFunc { - return func(m map[string]interface{}) map[string]interface{} { - var qualify bool - for _, cond := range conds { - var qualifyOnce bool - switch cond.Type { - case typeMatch: - qualifyOnce = cond.Value == m[cond.Key] - case typeContains: - if val, ok := m[cond.Key].(string); ok { - qualifyOnce = strings.Contains(val, cond.Value) - } - } - - switch cond.Op { - case opAnd: - if !qualifyOnce { - return m - } else { - qualify = true - } - case opOr: - if qualifyOnce { - qualify = true - } - } - } - - if qualify { - return nil - } else { - return m - } - } -} - -func RemoveFieldFilter(fields []string) FilterFunc { - return func(m map[string]interface{}) map[string]interface{} { - for _, field := range fields { - delete(m, field) - } - return m - } -} - -func AddUriFieldFilter(inField, outFirld string) FilterFunc { - return func(m map[string]interface{}) map[string]interface{} { - if val, ok := m[inField].(string); ok { - var datas []string - idx := strings.Index(val, "?") - if idx < 0 { - datas = strings.Split(val, "/") - } else { - datas = strings.Split(val[:idx], "/") - } - - for i, data := range datas { - if bson.IsObjectIdHex(data) { - datas[i] = "*" - } - } - - m[outFirld] = strings.Join(datas, "/") - } - - return m - } -} diff --git a/stash/handler/handler.go b/stash/handler/handler.go deleted file mode 100644 index c278542f..00000000 --- a/stash/handler/handler.go +++ /dev/null @@ -1,64 +0,0 @@ -package handler - -import ( - "time" - - "zero/stash/es" - "zero/stash/filter" - - jsoniter "github.com/json-iterator/go" -) - -const ( - timestampFormat = "2006-01-02T15:04:05.000Z" - timestampKey = "@timestamp" -) - -type MessageHandler struct { - writer *es.Writer - filters []filter.FilterFunc -} - -func NewHandler(writer *es.Writer) *MessageHandler { - return &MessageHandler{ - writer: writer, - } -} - -func (mh *MessageHandler) AddFilters(filters ...filter.FilterFunc) { - for _, f := range filters { - mh.filters = append(mh.filters, f) - } -} - -func (mh *MessageHandler) Consume(_, val string) error { - m := make(map[string]interface{}) - if err := jsoniter.Unmarshal([]byte(val), &m); err != nil { - return err - } - - for _, proc := range mh.filters { - if m = proc(m); m == nil { - return nil - } - } - - bs, err := jsoniter.Marshal(m) - if err != nil { - return err - } - - return mh.writer.Write(mh.getTime(m), string(bs)) -} - -func (mh *MessageHandler) getTime(m map[string]interface{}) time.Time { - if ti, ok := m[timestampKey]; ok { - if ts, ok := ti.(string); ok { - if t, err := time.Parse(timestampFormat, ts); err == nil { - return t - } - } - } - - return time.Now() -} diff --git a/stash/stash.go b/stash/stash.go deleted file mode 100644 index b0eddf9c..00000000 --- a/stash/stash.go +++ /dev/null @@ -1,57 +0,0 @@ -package main - -import ( - "flag" - "time" - - "zero/core/conf" - "zero/core/lang" - "zero/core/proc" - "zero/kq" - "zero/stash/config" - "zero/stash/es" - "zero/stash/filter" - "zero/stash/handler" - - "github.com/olivere/elastic" -) - -const dateFormat = "2006.01.02" - -var configFile = flag.String("f", "etc/config.json", "Specify the config file") - -func main() { - flag.Parse() - - var c config.Config - conf.MustLoad(*configFile, &c) - proc.SetTimeoutToForceQuit(c.GracePeriod) - - client, err := elastic.NewClient( - elastic.SetSniff(false), - elastic.SetURL(c.Output.ElasticSearch.Hosts...), - ) - lang.Must(err) - - indexFormat := c.Output.ElasticSearch.DailyIndexPrefix + dateFormat - var loc *time.Location - if len(c.Output.ElasticSearch.TimeZone) > 0 { - loc, err = time.LoadLocation(c.Output.ElasticSearch.TimeZone) - lang.Must(err) - } else { - loc = time.Local - } - indexer := es.NewIndex(client, func(t time.Time) string { - return t.In(loc).Format(indexFormat) - }) - - filters := filter.CreateFilters(c) - writer, err := es.NewWriter(c.Output.ElasticSearch, indexer) - lang.Must(err) - - handle := handler.NewHandler(writer) - handle.AddFilters(filters...) - handle.AddFilters(filter.AddUriFieldFilter("url", "uri")) - q := kq.MustNewQueue(c.Input.Kafka, handle) - q.Start() -}