Skip to content
This repository was archived by the owner on Dec 5, 2023. It is now read-only.

Commit ca1adfe

Browse files
authored
Merge pull request #40 from microservices-demo/add-circuitbreaker
Add circuitbreaker
2 parents 59fc6e4 + 76247e7 commit ca1adfe

File tree

3 files changed

+38
-19
lines changed

3 files changed

+38
-19
lines changed

api/transport.go

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import (
1212
"github.com/go-kit/kit/log"
1313
"github.com/go-kit/kit/tracing/opentracing"
1414
httptransport "github.com/go-kit/kit/transport/http"
15+
"github.com/go-kit/kit/circuitbreaker"
1516
"github.com/gorilla/mux"
1617
"github.com/microservices-demo/user/users"
1718
stdopentracing "github.com/opentracing/opentracing-go"
@@ -37,70 +38,70 @@ func MakeHTTPHandler(ctx context.Context, e Endpoints, logger log.Logger, tracer
3738

3839
r.Methods("GET").Path("/login").Handler(httptransport.NewServer(
3940
ctx,
40-
e.LoginEndpoint,
41+
circuitbreaker.Hystrix("Login")(e.LoginEndpoint),
4142
decodeLoginRequest,
4243
encodeResponse,
4344
append(options, httptransport.ServerBefore(opentracing.FromHTTPRequest(tracer, "GET /login", logger)))...,
4445
))
4546
r.Methods("POST").Path("/register").Handler(httptransport.NewServer(
4647
ctx,
47-
e.RegisterEndpoint,
48+
circuitbreaker.Hystrix("Register")(e.RegisterEndpoint),
4849
decodeRegisterRequest,
4950
encodeResponse,
5051
append(options, httptransport.ServerBefore(opentracing.FromHTTPRequest(tracer, "POST /register", logger)))...,
5152
))
5253
r.Methods("GET").PathPrefix("/customers").Handler(httptransport.NewServer(
5354
ctx,
54-
e.UserGetEndpoint,
55+
circuitbreaker.Hystrix("UserGet")(e.UserGetEndpoint),
5556
decodeGetRequest,
5657
encodeResponse,
5758
append(options, httptransport.ServerBefore(opentracing.FromHTTPRequest(tracer, "GET /customers", logger)))...,
5859
))
5960
r.Methods("GET").PathPrefix("/cards").Handler(httptransport.NewServer(
6061
ctx,
61-
e.CardGetEndpoint,
62+
circuitbreaker.Hystrix("CardGet")(e.CardGetEndpoint),
6263
decodeGetRequest,
6364
encodeResponse,
6465
append(options, httptransport.ServerBefore(opentracing.FromHTTPRequest(tracer, "GET /cards", logger)))...,
6566
))
6667
r.Methods("GET").PathPrefix("/addresses").Handler(httptransport.NewServer(
6768
ctx,
68-
e.AddressGetEndpoint,
69+
circuitbreaker.Hystrix("AddressGet")(e.AddressGetEndpoint),
6970
decodeGetRequest,
7071
encodeResponse,
7172
append(options, httptransport.ServerBefore(opentracing.FromHTTPRequest(tracer, "GET /addresses", logger)))...,
7273
))
7374
r.Methods("POST").Path("/customers").Handler(httptransport.NewServer(
7475
ctx,
75-
e.UserPostEndpoint,
76+
circuitbreaker.Hystrix("UserPost")(e.UserPostEndpoint),
7677
decodeUserRequest,
7778
encodeResponse,
7879
append(options, httptransport.ServerBefore(opentracing.FromHTTPRequest(tracer, "POST /customers", logger)))...,
7980
))
8081
r.Methods("POST").Path("/addresses").Handler(httptransport.NewServer(
8182
ctx,
82-
e.AddressPostEndpoint,
83+
circuitbreaker.Hystrix("AddressPost")(e.AddressPostEndpoint),
8384
decodeAddressRequest,
8485
encodeResponse,
8586
append(options, httptransport.ServerBefore(opentracing.FromHTTPRequest(tracer, "POST /addresses", logger)))...,
8687
))
8788
r.Methods("POST").Path("/cards").Handler(httptransport.NewServer(
8889
ctx,
89-
e.CardPostEndpoint,
90+
circuitbreaker.Hystrix("CardPost")(e.CardPostEndpoint),
9091
decodeCardRequest,
9192
encodeResponse,
9293
append(options, httptransport.ServerBefore(opentracing.FromHTTPRequest(tracer, "POST /cards", logger)))...,
9394
))
9495
r.Methods("DELETE").PathPrefix("/").Handler(httptransport.NewServer(
9596
ctx,
96-
e.DeleteEndpoint,
97+
circuitbreaker.Hystrix("Delete")(e.DeleteEndpoint),
9798
decodeDeleteRequest,
9899
encodeResponse,
99100
append(options, httptransport.ServerBefore(opentracing.FromHTTPRequest(tracer, "DELETE /", logger)))...,
100101
))
101102
r.Methods("GET").PathPrefix("/health").Handler(httptransport.NewServer(
102103
ctx,
103-
e.HealthEndpoint,
104+
circuitbreaker.Hystrix("Health")(e.HealthEndpoint),
104105
decodeHealthRequest,
105106
encodeHealthResponse,
106107
append(options, httptransport.ServerBefore(opentracing.FromHTTPRequest(tracer, "GET /health", logger)))...,

glide.lock

Lines changed: 23 additions & 9 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

glide.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import:
88
- metrics/prometheus
99
- tracing/opentracing
1010
- transport/http
11+
- circuitbreaker
1112
- package: github.com/gorilla/mux
1213
- package: github.com/opentracing/opentracing-go
1314
- package: github.com/openzipkin/zipkin-go-opentracing
@@ -22,3 +23,6 @@ import:
2223
subpackages:
2324
- bson
2425
- package: gopkg.in/tomb.v2
26+
- package: github.com/afex/hystrix-go
27+
subpackages:
28+
- hystrix

0 commit comments

Comments
 (0)