Skip to content

Commit 6e40215

Browse files
committed
add grpc and docker swarm
1 parent ebe696d commit 6e40215

33 files changed

+1425
-130
lines changed

authentication-service/authApp

0 Bytes
Binary file not shown.

broker-service/brokerApp

5.95 MB
Binary file not shown.

broker-service/cmd/api/handlers.go

+46
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,18 @@ package main
22

33
import (
44
"broker/event"
5+
"broker/logs"
56
"bytes"
7+
"context"
68
"encoding/json"
79
"errors"
810
"log"
911
"net/http"
1012
"net/rpc"
13+
"time"
14+
15+
"google.golang.org/grpc"
16+
"google.golang.org/grpc/credentials/insecure"
1117
)
1218

1319
type RequestPayload struct {
@@ -275,6 +281,46 @@ func (app *Config) LogItemViaRPC(w http.ResponseWriter, l LogPayload) {
275281

276282
}
277283

284+
func (app *Config) LogViaGRPC(w http.ResponseWriter, r *http.Request) {
285+
var requestPayload RequestPayload
286+
287+
err := app.readJSON(w, r, &requestPayload)
288+
log.Println("THIS IS THE REQUESTpayload :", requestPayload)
289+
if err != nil {
290+
app.errorJSON(w, err)
291+
return
292+
}
293+
294+
conn, err := grpc.Dial("logger-service:50001", grpc.WithTransportCredentials(insecure.NewCredentials()), grpc.WithBlock())
295+
if err != nil {
296+
app.errorJSON(w, err)
297+
return
298+
}
299+
defer conn.Close() // defer closing it or we'll have connections left open all over the places and it's a resource leak
300+
301+
// create a client
302+
c := logs.NewLogServiceClient(conn)
303+
ctx, cancel := context.WithTimeout(context.Background(), time.Second)
304+
defer cancel()
305+
306+
_, err = c.WriteLog(ctx, &logs.LogRequest{
307+
LogEntry: &logs.Log{
308+
Name: requestPayload.Log.Name,
309+
Data: requestPayload.Log.Data,
310+
},
311+
})
312+
if err != nil {
313+
app.errorJSON(w, err)
314+
return
315+
}
316+
317+
var payload jsonResponse
318+
payload.Error = false
319+
payload.Message = "logged"
320+
321+
app.writeJSON(w, http.StatusAccepted, payload)
322+
}
323+
278324
// package main
279325

280326
// import (

broker-service/cmd/api/main.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import (
1111
amqp "github.com/rabbitmq/amqp091-go"
1212
)
1313

14-
const webPort = "80"
14+
const webPort = "8080" // listen on this port inside docker
1515

1616
// Receiver that we use for the application
1717
type Config struct {

broker-service/cmd/api/routes.go

+2
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@ func (app *Config) routes() http.Handler {
3333

3434
mux.Post("/", app.Broker)
3535

36+
mux.Post("/log-grpc", app.LogViaGRPC)
37+
3638
// single point of entry to broker service
3739
mux.Post("/handle", app.HandleSubmission)
3840

broker-service/go.mod

+7
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,12 @@ go 1.18
55
require (
66
github.com/go-chi/chi/v5 v5.0.8 // indirect
77
github.com/go-chi/cors v1.2.1 // indirect
8+
github.com/golang/protobuf v1.5.3 // indirect
89
github.com/rabbitmq/amqp091-go v1.8.1 // indirect
10+
golang.org/x/net v0.9.0 // indirect
11+
golang.org/x/sys v0.7.0 // indirect
12+
golang.org/x/text v0.9.0 // indirect
13+
google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1 // indirect
14+
google.golang.org/grpc v1.56.2 // indirect
15+
google.golang.org/protobuf v1.30.0 // indirect
916
)

broker-service/go.sum

+19
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,10 @@ github.com/go-chi/chi/v5 v5.0.8 h1:lD+NLqFcAi1ovnVZpsnObHGW4xb4J8lNmoYVfECH1Y0=
44
github.com/go-chi/chi/v5 v5.0.8/go.mod h1:DslCQbL2OYiznFReuXYUmQ2hGd1aDpCnlMNITLSKoi8=
55
github.com/go-chi/cors v1.2.1 h1:xEC8UT3Rlp2QuWNEr4Fs/c2EAGVKBwy/1vHx3bppil4=
66
github.com/go-chi/cors v1.2.1/go.mod h1:sSbTewc+6wYHBBCW7ytsFSn836hqM7JxpglAy2Vzc58=
7+
github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
8+
github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg=
9+
github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
10+
github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
711
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
812
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
913
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
@@ -15,6 +19,21 @@ github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSS
1519
github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
1620
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
1721
go.uber.org/goleak v1.2.1/go.mod h1:qlT2yGI9QafXHhZZLxlSuNsMw3FFLxBr+tBRlmO1xH4=
22+
golang.org/x/net v0.9.0 h1:aWJ/m6xSmxWBx+V0XRHTlrYrPG56jKsLdTFmsSsCzOM=
23+
golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns=
24+
golang.org/x/sys v0.7.0 h1:3jlCCIQZPdOYu1h8BkNvLz8Kgwtae2cagcG/VamtZRU=
25+
golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
26+
golang.org/x/text v0.9.0 h1:2sjJmO8cDvYveuX97RDLsxlyUxLl+GHoLxBiRdHllBE=
27+
golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
28+
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
29+
google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1 h1:KpwkzHKEF7B9Zxg18WzOa7djJ+Ha5DzthMyZYQfEn2A=
30+
google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1/go.mod h1:nKE/iIaLqn2bQwXBg8f1g2Ylh6r5MN5CmZvuzZCgsCU=
31+
google.golang.org/grpc v1.56.2 h1:fVRFRnXvU+x6C4IlHZewvJOVHoOv1TUuQyoRsYnB4bI=
32+
google.golang.org/grpc v1.56.2/go.mod h1:I9bI3vqKfayGqPUAwGdOSu7kt6oIJLixfffKrpXqQ9s=
33+
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
34+
google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
35+
google.golang.org/protobuf v1.30.0 h1:kPPoIgf3TsEvrm0PFe15JQ+570QVxYzEvvHqChK+cng=
36+
google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
1837
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
1938
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
2039
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=

0 commit comments

Comments
 (0)