From 234e484bfdb137f2e35000ad33b5aa55144778c5 Mon Sep 17 00:00:00 2001 From: john Date: Thu, 21 Jun 2018 15:51:23 +0800 Subject: [PATCH] =?UTF-8?q?gkafka.Client.Topics=E6=96=B9=E6=B3=95=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E8=BF=87=E6=BB=A4=E5=8A=9F=E8=83=BD=EF=BC=8C=E5=8E=BB?= =?UTF-8?q?=E6=8E=89=E7=B3=BB=E7=BB=9Ftopic=EF=BC=9B=E5=AE=8C=E5=96=84gtim?= =?UTF-8?q?e.StrToTime=E6=96=B9=E6=B3=95=E5=AF=B9=E6=A0=87=E6=B3=A8UTC?= =?UTF-8?q?=E6=97=B6=E9=97=B4=E7=9A=84=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- g/database/gkafka/gkafka.go | 18 +++++++++++++++++- g/os/gtime/gtime.go | 3 +++ geg/{util => os}/gtime/gtime1.go | 1 + geg/{util => os}/gtime/gtime2.go | 1 + 4 files changed, 22 insertions(+), 1 deletion(-) rename geg/{util => os}/gtime/gtime1.go (95%) rename geg/{util => os}/gtime/gtime2.go (94%) diff --git a/g/database/gkafka/gkafka.go b/g/database/gkafka/gkafka.go index 4f85044c0..54e42cad1 100644 --- a/g/database/gkafka/gkafka.go +++ b/g/database/gkafka/gkafka.go @@ -15,6 +15,13 @@ import ( "gitee.com/johng/gf/g/os/glog" ) +var ( + // 当使用Topics方法获取所有topic后,进行过滤忽略的topic,多个以','号分隔 + ignoreTopics = map[string]bool { + "__consumer_offsets" : true, + } +) + // kafka Client based on sarama.Config type Config struct { GroupId string // group id for consumer. @@ -93,7 +100,16 @@ func (client *Client) Topics() ([]string, error) { client.rawConsumer = c } } - return client.rawConsumer.Topics() + if topics, err := client.rawConsumer.Topics(); err == nil { + for k, v := range topics { + if _, ok := ignoreTopics[v]; ok { + topics = append(topics[ : k], topics[k + 1 : ]...) + } + } + return topics, nil + } else { + return nil, err + } } // Receive message from kafka from specified topics in config, in BLOCKING way, gkafka will handle offset tracking automatically. diff --git a/g/os/gtime/gtime.go b/g/os/gtime/gtime.go index 79869ab14..889e62e3b 100644 --- a/g/os/gtime/gtime.go +++ b/g/os/gtime/gtime.go @@ -125,6 +125,9 @@ func StrToTime(str string, format...string) (time.Time, error) { } } // 如果字符串中有时区信息,那么执行时区转换,将时区转成UTC + if match[4] != "" && match[6] == "" { + match[6] = "000000" + } if match[6] != "" { zone := strings.Replace(match[6], ":", "", -1) zone = strings.TrimLeft(zone, "+-") diff --git a/geg/util/gtime/gtime1.go b/geg/os/gtime/gtime1.go similarity index 95% rename from geg/util/gtime/gtime1.go rename to geg/os/gtime/gtime1.go index 80f982462..f4ba82bd0 100644 --- a/geg/util/gtime/gtime1.go +++ b/geg/os/gtime/gtime1.go @@ -16,6 +16,7 @@ func main() { "2014-01-17T01:19:15+08:00", "2018-02-09T20:46:17.897Z", "2018-02-09 20:46:17.897", + "2018-02-09T20:46:17Z", "2018-02-09 20:46:17", "2018-02-09", } diff --git a/geg/util/gtime/gtime2.go b/geg/os/gtime/gtime2.go similarity index 94% rename from geg/util/gtime/gtime2.go rename to geg/os/gtime/gtime2.go index ce72ecd24..a0ab79fe6 100644 --- a/geg/util/gtime/gtime2.go +++ b/geg/os/gtime/gtime2.go @@ -12,6 +12,7 @@ func main() { "2014-01-17T01:19:15+08:00", "2018-02-09T20:46:17.897Z", "2018-02-09 20:46:17.897", + "2018-02-09T20:46:17Z", "2018-02-09 20:46:17", "2018-02-09", }