Skip to content

Commit 066b127

Browse files
authored
Merge pull request #14 from gojek/conn-pool
Add connection pool and wait for ready for gRPC communication #403
2 parents 6060a60 + 34f835b commit 066b127

File tree

16 files changed

+1719
-77
lines changed

16 files changed

+1719
-77
lines changed

.github/workflows/go.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@ name: Test
22
on: [push, pull_request]
33

44
env:
5-
GO_VERSION: 1.18
6-
GO_LINT_VERSION: v1.48.0
5+
GO_VERSION: "1.20"
6+
GO_LINT_VERSION: v1.52.2
77

88
jobs:
99
test:

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ tidy:
88

99
setup:
1010
@echo "Getting CI dependencies..."
11-
@test -x ${GOPATH}/bin/golangci-lint || go get github.com/golangci/golangci-lint/cmd/golangci-lint@v1.48.0
11+
@test -x ${GOPATH}/bin/golangci-lint || go get github.com/golangci/golangci-lint/cmd/golangci-lint@v1.52.2
1212

1313
lint: setup
1414
@echo "Linting code..."

config/config.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ package config
33
import (
44
"encoding/json"
55
"fmt"
6-
"io/ioutil"
76
"net/http"
7+
"os"
88
"strings"
99
"time"
1010

@@ -218,7 +218,7 @@ func (c *ProxyConfig) initComponent() (fiber.Component, error) {
218218
// InitComponentFromConfig takes in the path to a config file, parses the contents
219219
// and if successful, constructs a fiber Component
220220
func InitComponentFromConfig(configPath string) (fiber.Component, error) {
221-
if yamlFile, err := ioutil.ReadFile(configPath); err != nil {
221+
if yamlFile, err := os.ReadFile(configPath); err != nil {
222222
return nil, err
223223
} else if cfg, err := parseConfig(yamlFile); err != nil {
224224
return nil, err

config/config_test.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,7 @@ func TestFromConfig(t *testing.T) {
123123
assert.True(t,
124124
cmp.Equal(tt.expectedComponent, got,
125125
cmpopts.IgnoreUnexported(grpc.ClientConn{}, dynamicpb.Message{}),
126+
cmpopts.IgnoreInterfaces(struct{ grpc.ClientConnInterface }{}),
126127
cmp.AllowUnexported(
127128
fiber.BaseComponent{},
128129
fiber.Proxy{},

go.mod

Lines changed: 195 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,212 @@
11
module github.com/gojek/fiber
22

3-
go 1.18
3+
go 1.20
44

55
require (
66
github.com/ghodss/yaml v1.0.0
7-
github.com/google/go-cmp v0.5.8
7+
github.com/go-coldbrew/grpcpool v0.0.0-20230414075243-75e5835d29e8
8+
github.com/google/go-cmp v0.5.9
89
github.com/opentracing/opentracing-go v1.1.0
9-
github.com/stretchr/testify v1.8.0
10-
go.uber.org/zap v1.17.0
11-
google.golang.org/grpc v1.48.0
12-
google.golang.org/protobuf v1.28.0
10+
github.com/stretchr/testify v1.8.2
11+
go.uber.org/zap v1.24.0
12+
google.golang.org/grpc v1.54.0
13+
google.golang.org/protobuf v1.30.0
1314
)
1415

1516
require (
17+
4d63.com/gocheckcompilerdirectives v1.2.1 // indirect
18+
4d63.com/gochecknoglobals v0.2.1 // indirect
19+
github.com/Abirdcfly/dupword v0.0.11 // indirect
20+
github.com/Antonboom/errname v0.1.9 // indirect
21+
github.com/Antonboom/nilnil v0.1.3 // indirect
22+
github.com/BurntSushi/toml v1.2.1 // indirect
23+
github.com/Djarvur/go-err113 v0.0.0-20210108212216-aea10b59be24 // indirect
24+
github.com/GaijinEntertainment/go-exhaustruct/v2 v2.3.0 // indirect
25+
github.com/Masterminds/semver v1.5.0 // indirect
26+
github.com/Microsoft/go-winio v0.5.0 // indirect
27+
github.com/OpenPeeDeeP/depguard v1.1.1 // indirect
28+
github.com/VividCortex/ewma v1.2.0 // indirect
29+
github.com/alexkohler/prealloc v1.0.0 // indirect
30+
github.com/alingse/asasalint v0.0.11 // indirect
31+
github.com/ashanbrown/forbidigo v1.5.1 // indirect
32+
github.com/ashanbrown/makezero v1.1.1 // indirect
33+
github.com/beorn7/perks v1.0.1 // indirect
34+
github.com/bkielbasa/cyclop v1.2.0 // indirect
35+
github.com/blizzy78/varnamelen v0.8.0 // indirect
36+
github.com/bombsimon/wsl/v3 v3.4.0 // indirect
37+
github.com/breml/bidichk v0.2.4 // indirect
38+
github.com/breml/errchkjson v0.3.1 // indirect
39+
github.com/butuzov/ireturn v0.1.1 // indirect
40+
github.com/cespare/xxhash/v2 v2.2.0 // indirect
41+
github.com/charithe/durationcheck v0.0.10 // indirect
42+
github.com/chavacava/garif v0.0.0-20230227094218-b8c73b2037b8 // indirect
43+
github.com/cheggaaa/pb/v3 v3.0.8 // indirect
44+
github.com/curioswitch/go-reassign v0.2.0 // indirect
45+
github.com/daixiang0/gci v0.10.1 // indirect
1646
github.com/davecgh/go-spew v1.1.1 // indirect
17-
github.com/golang/protobuf v1.5.2 // indirect
18-
github.com/kr/text v0.2.0 // indirect
19-
github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e // indirect
47+
github.com/denis-tingaikin/go-header v0.4.3 // indirect
48+
github.com/emirpasic/gods v1.12.0 // indirect
49+
github.com/esimonov/ifshort v1.0.4 // indirect
50+
github.com/ettle/strcase v0.1.1 // indirect
51+
github.com/fatih/color v1.15.0 // indirect
52+
github.com/fatih/structtag v1.2.0 // indirect
53+
github.com/firefart/nonamedreturns v1.0.4 // indirect
54+
github.com/fsnotify/fsnotify v1.5.4 // indirect
55+
github.com/fzipp/gocyclo v0.6.0 // indirect
56+
github.com/go-critic/go-critic v0.7.0 // indirect
57+
github.com/go-git/gcfg v1.5.0 // indirect
58+
github.com/go-git/go-billy/v5 v5.3.1 // indirect
59+
github.com/go-git/go-git/v5 v5.3.0 // indirect
60+
github.com/go-toolsmith/astcast v1.1.0 // indirect
61+
github.com/go-toolsmith/astcopy v1.1.0 // indirect
62+
github.com/go-toolsmith/astequal v1.1.0 // indirect
63+
github.com/go-toolsmith/astfmt v1.1.0 // indirect
64+
github.com/go-toolsmith/astp v1.1.0 // indirect
65+
github.com/go-toolsmith/strparse v1.1.0 // indirect
66+
github.com/go-toolsmith/typep v1.1.0 // indirect
67+
github.com/go-xmlfmt/xmlfmt v1.1.2 // indirect
68+
github.com/gobwas/glob v0.2.3 // indirect
69+
github.com/gofrs/flock v0.8.1 // indirect
70+
github.com/golang/protobuf v1.5.3 // indirect
71+
github.com/golangci/check v0.0.0-20180506172741-cfe4005ccda2 // indirect
72+
github.com/golangci/dupl v0.0.0-20180902072040-3e9179ac440a // indirect
73+
github.com/golangci/go-misc v0.0.0-20220329215616-d24fe342adfe // indirect
74+
github.com/golangci/gofmt v0.0.0-20220901101216-f2edd75033f2 // indirect
75+
github.com/golangci/golangci-lint v1.52.2 // indirect
76+
github.com/golangci/lint-1 v0.0.0-20191013205115-297bf364a8e0 // indirect
77+
github.com/golangci/maligned v0.0.0-20180506175553-b1d89398deca // indirect
78+
github.com/golangci/misspell v0.4.0 // indirect
79+
github.com/golangci/revgrep v0.0.0-20220804021717-745bb2f7c2e6 // indirect
80+
github.com/golangci/unconvert v0.0.0-20180507085042-28b1c447d1f4 // indirect
81+
github.com/gordonklaus/ineffassign v0.0.0-20230107090616-13ace0543b28 // indirect
82+
github.com/gostaticanalysis/analysisutil v0.7.1 // indirect
83+
github.com/gostaticanalysis/comment v1.4.2 // indirect
84+
github.com/gostaticanalysis/forcetypeassert v0.1.0 // indirect
85+
github.com/gostaticanalysis/nilerr v0.1.1 // indirect
86+
github.com/hashicorp/errwrap v1.0.0 // indirect
87+
github.com/hashicorp/go-multierror v1.1.1 // indirect
88+
github.com/hashicorp/go-version v1.6.0 // indirect
89+
github.com/hashicorp/hcl v1.0.0 // indirect
90+
github.com/hexops/gotextdiff v1.0.3 // indirect
91+
github.com/imdario/mergo v0.3.12 // indirect
92+
github.com/inconshreveable/mousetrap v1.0.1 // indirect
93+
github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 // indirect
94+
github.com/jgautheron/goconst v1.5.1 // indirect
95+
github.com/jingyugao/rowserrcheck v1.1.1 // indirect
96+
github.com/jirfag/go-printf-func-name v0.0.0-20200119135958-7558a9eaa5af // indirect
97+
github.com/julz/importas v0.1.0 // indirect
98+
github.com/junk1tm/musttag v0.5.0 // indirect
99+
github.com/kevinburke/ssh_config v1.1.0 // indirect
100+
github.com/kisielk/errcheck v1.6.3 // indirect
101+
github.com/kisielk/gotool v1.0.0 // indirect
102+
github.com/kkHAIKE/contextcheck v1.1.4 // indirect
103+
github.com/kulti/thelper v0.6.3 // indirect
104+
github.com/kunwardeep/paralleltest v1.0.6 // indirect
105+
github.com/kyoh86/exportloopref v0.1.11 // indirect
106+
github.com/ldez/gomoddirectives v0.2.3 // indirect
107+
github.com/ldez/tagliatelle v0.4.0 // indirect
108+
github.com/leonklingele/grouper v1.1.1 // indirect
109+
github.com/lufeee/execinquery v1.2.1 // indirect
110+
github.com/magiconair/properties v1.8.6 // indirect
111+
github.com/maratori/testableexamples v1.0.0 // indirect
112+
github.com/maratori/testpackage v1.1.1 // indirect
113+
github.com/matoous/godox v0.0.0-20230222163458-006bad1f9d26 // indirect
114+
github.com/mattn/go-colorable v0.1.13 // indirect
115+
github.com/mattn/go-isatty v0.0.17 // indirect
116+
github.com/mattn/go-runewidth v0.0.12 // indirect
117+
github.com/matttproud/golang_protobuf_extensions v1.0.1 // indirect
118+
github.com/mbilski/exhaustivestruct v1.2.0 // indirect
119+
github.com/mgechev/revive v1.3.1 // indirect
120+
github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d // indirect
121+
github.com/mitchellh/go-homedir v1.1.0 // indirect
122+
github.com/mitchellh/mapstructure v1.5.0 // indirect
123+
github.com/moricho/tparallel v0.3.1 // indirect
124+
github.com/nakabonne/nestif v0.3.1 // indirect
125+
github.com/nbutton23/zxcvbn-go v0.0.0-20210217022336-fa2cb2858354 // indirect
126+
github.com/nishanths/exhaustive v0.9.5 // indirect
127+
github.com/nishanths/predeclared v0.2.2 // indirect
128+
github.com/nunnatsa/ginkgolinter v0.9.0 // indirect
129+
github.com/olekukonko/tablewriter v0.0.5 // indirect
130+
github.com/pelletier/go-toml v1.9.5 // indirect
131+
github.com/pelletier/go-toml/v2 v2.0.5 // indirect
132+
github.com/phayes/checkstyle v0.0.0-20170904204023-bfd46e6a821d // indirect
20133
github.com/pkg/errors v0.9.1 // indirect
21134
github.com/pmezard/go-difflib v1.0.0 // indirect
22-
github.com/stretchr/objx v0.4.0 // indirect
135+
github.com/polyfloyd/go-errorlint v1.4.0 // indirect
136+
github.com/princjef/gomarkdoc v0.4.1 // indirect
137+
github.com/princjef/mageutil v1.0.0 // indirect
138+
github.com/prometheus/client_golang v1.12.1 // indirect
139+
github.com/prometheus/client_model v0.2.0 // indirect
140+
github.com/prometheus/common v0.32.1 // indirect
141+
github.com/prometheus/procfs v0.7.3 // indirect
142+
github.com/quasilyte/go-ruleguard v0.3.19 // indirect
143+
github.com/quasilyte/gogrep v0.5.0 // indirect
144+
github.com/quasilyte/regex/syntax v0.0.0-20210819130434-b3f0c404a727 // indirect
145+
github.com/quasilyte/stdinfo v0.0.0-20220114132959-f7386bf02567 // indirect
146+
github.com/rivo/uniseg v0.2.0 // indirect
147+
github.com/russross/blackfriday/v2 v2.1.0 // indirect
148+
github.com/ryancurrah/gomodguard v1.3.0 // indirect
149+
github.com/ryanrolds/sqlclosecheck v0.4.0 // indirect
150+
github.com/sanposhiho/wastedassign/v2 v2.0.7 // indirect
151+
github.com/sashamelentyev/interfacebloat v1.1.0 // indirect
152+
github.com/sashamelentyev/usestdlibvars v1.23.0 // indirect
153+
github.com/securego/gosec/v2 v2.15.0 // indirect
154+
github.com/sergi/go-diff v1.2.0 // indirect
155+
github.com/shazow/go-diff v0.0.0-20160112020656-b6b7b6733b8c // indirect
156+
github.com/sirupsen/logrus v1.9.0 // indirect
157+
github.com/sivchari/containedctx v1.0.2 // indirect
158+
github.com/sivchari/nosnakecase v1.7.0 // indirect
159+
github.com/sivchari/tenv v1.7.1 // indirect
160+
github.com/sonatard/noctx v0.0.2 // indirect
161+
github.com/sourcegraph/go-diff v0.7.0 // indirect
162+
github.com/spf13/afero v1.8.2 // indirect
163+
github.com/spf13/cast v1.5.0 // indirect
164+
github.com/spf13/cobra v1.6.1 // indirect
165+
github.com/spf13/jwalterweatherman v1.1.0 // indirect
166+
github.com/spf13/pflag v1.0.5 // indirect
167+
github.com/spf13/viper v1.12.0 // indirect
168+
github.com/ssgreg/nlreturn/v2 v2.2.1 // indirect
169+
github.com/stbenjam/no-sprintf-host-port v0.1.1 // indirect
170+
github.com/stretchr/objx v0.5.0 // indirect
171+
github.com/subosito/gotenv v1.4.1 // indirect
172+
github.com/sylvia7788/contextcheck v1.0.4 // indirect
173+
github.com/t-yuki/gocover-cobertura v0.0.0-20180217150009-aaee18c8195c // indirect
174+
github.com/tdakkota/asciicheck v0.2.0 // indirect
175+
github.com/tetafro/godot v1.4.11 // indirect
176+
github.com/timakin/bodyclose v0.0.0-20221125081123-e39cf3fc478e // indirect
177+
github.com/timonwong/loggercheck v0.9.4 // indirect
178+
github.com/tomarrell/wrapcheck/v2 v2.8.1 // indirect
179+
github.com/tommy-muehle/go-mnd/v2 v2.5.1 // indirect
180+
github.com/ultraware/funlen v0.0.3 // indirect
181+
github.com/ultraware/whitespace v0.0.5 // indirect
182+
github.com/uudashr/gocognit v1.0.6 // indirect
183+
github.com/x-cray/logrus-prefixed-formatter v0.5.2 // indirect
184+
github.com/xanzy/ssh-agent v0.3.0 // indirect
185+
github.com/yagipy/maintidx v1.0.0 // indirect
186+
github.com/yeya24/promlinter v0.2.0 // indirect
187+
gitlab.com/bosi/decorder v0.2.3 // indirect
23188
go.uber.org/atomic v1.7.0 // indirect
24189
go.uber.org/multierr v1.6.0 // indirect
25-
golang.org/x/net v0.0.0-20220722155237-a158d28d115b // indirect
26-
golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f // indirect
27-
golang.org/x/text v0.3.7 // indirect
28-
google.golang.org/genproto v0.0.0-20220519153652-3a47de7e79bd // indirect
29-
gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f // indirect
190+
golang.org/x/crypto v0.5.0 // indirect
191+
golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e // indirect
192+
golang.org/x/exp/typeparams v0.0.0-20230224173230-c95f2b4c22f2 // indirect
193+
golang.org/x/mod v0.9.0 // indirect
194+
golang.org/x/net v0.9.0 // indirect
195+
golang.org/x/sync v0.1.0 // indirect
196+
golang.org/x/sys v0.7.0 // indirect
197+
golang.org/x/term v0.7.0 // indirect
198+
golang.org/x/text v0.9.0 // indirect
199+
golang.org/x/tools v0.7.0 // indirect
200+
google.golang.org/genproto v0.0.0-20230403163135-c38d8f061ccd // indirect
201+
gopkg.in/ini.v1 v1.67.0 // indirect
202+
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 // indirect
203+
gopkg.in/warnings.v0 v0.1.2 // indirect
30204
gopkg.in/yaml.v2 v2.4.0 // indirect
31205
gopkg.in/yaml.v3 v3.0.1 // indirect
206+
honnef.co/go/tools v0.4.3 // indirect
207+
mvdan.cc/gofumpt v0.4.0 // indirect
208+
mvdan.cc/interfacer v0.0.0-20180901003855-c20040233aed // indirect
209+
mvdan.cc/lint v0.0.0-20170908181259-adc824a0674b // indirect
210+
mvdan.cc/unparam v0.0.0-20221223090309-7455f1af531d // indirect
211+
mvdan.cc/xurls/v2 v2.2.0 // indirect
32212
)

0 commit comments

Comments
 (0)