From aeffd07490b0396709a3adc4814bfde7822da2c6 Mon Sep 17 00:00:00 2001 From: Edislei Reis Date: Sat, 7 Nov 2020 17:17:04 -0300 Subject: [PATCH] =?UTF-8?q?Desafio=2002=20-=20Microsservi=C3=A7os=20se=20c?= =?UTF-8?q?omunicando=20utilizando=20filas?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- filas-aula-2/Evidences/CouldNotProcess.png | Bin 0 -> 8529 bytes filas-aula-2/Evidences/InvalidCoupon.png | Bin 0 -> 8707 bytes filas-aula-2/Evidences/Processed.png | Bin 0 -> 7987 bytes filas-aula-2/Evidences/Resultado.png | Bin 0 -> 61274 bytes filas-aula-2/README.md | 18 +++ filas-aula-2/a/.env | 10 ++ filas-aula-2/a/Dockerfile | 13 +++ filas-aula-2/a/a.go | 66 +++++++++++ .../a/templates/home.html | 0 filas-aula-2/a/templates/process.html | 26 +++++ filas-aula-2/b/.env | 10 ++ filas-aula-2/b/Dockerfile | 9 ++ filas-aula-2/b/b.go | 103 ++++++++++++++++++ filas-aula-2/b/go.mod | 11 ++ filas-aula-2/c/Dockerfile | 9 ++ .../c/c.go | 2 +- filas-aula-2/docker-compose.yaml | 43 ++++++++ filas-aula-2/go.mod | 11 ++ filas-aula-2/go.sum | 15 +++ microsservicos-aula-1/a/a.go | 64 ----------- microsservicos-aula-1/b/b.go | 70 ------------ microsservicos-aula-1/go.mod | 5 - microsservicos-aula-1/go.sum | 12 -- 23 files changed, 345 insertions(+), 152 deletions(-) create mode 100644 filas-aula-2/Evidences/CouldNotProcess.png create mode 100644 filas-aula-2/Evidences/InvalidCoupon.png create mode 100644 filas-aula-2/Evidences/Processed.png create mode 100644 filas-aula-2/Evidences/Resultado.png create mode 100644 filas-aula-2/README.md create mode 100644 filas-aula-2/a/.env create mode 100644 filas-aula-2/a/Dockerfile create mode 100644 filas-aula-2/a/a.go rename {microsservicos-aula-1 => filas-aula-2}/a/templates/home.html (100%) create mode 100644 filas-aula-2/a/templates/process.html create mode 100644 filas-aula-2/b/.env create mode 100644 filas-aula-2/b/Dockerfile create mode 100644 filas-aula-2/b/b.go create mode 100644 filas-aula-2/b/go.mod create mode 100644 filas-aula-2/c/Dockerfile rename {microsservicos-aula-1 => filas-aula-2}/c/c.go (99%) create mode 100644 filas-aula-2/docker-compose.yaml create mode 100644 filas-aula-2/go.mod create mode 100644 filas-aula-2/go.sum delete mode 100644 microsservicos-aula-1/a/a.go delete mode 100644 microsservicos-aula-1/b/b.go delete mode 100644 microsservicos-aula-1/go.mod delete mode 100644 microsservicos-aula-1/go.sum diff --git a/filas-aula-2/Evidences/CouldNotProcess.png b/filas-aula-2/Evidences/CouldNotProcess.png new file mode 100644 index 0000000000000000000000000000000000000000..51a60ff85eced91a627cd32b8199c9a3e6faa7fe GIT binary patch literal 8529 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 literal 0 HcmV?d00001 diff --git a/filas-aula-2/Evidences/InvalidCoupon.png b/filas-aula-2/Evidences/InvalidCoupon.png new file mode 100644 index 0000000000000000000000000000000000000000..520d22bd2aada5dbb1eccc247b5850375000b26d GIT binary patch literal 8707 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 S{Qd2UqotvzUjEoN^1lG#Rq&qx literal 0 HcmV?d00001 diff --git a/filas-aula-2/Evidences/Resultado.png b/filas-aula-2/Evidences/Resultado.png new file mode 100644 index 0000000000000000000000000000000000000000..b6a68d78fb94ae285fda647cc3419189b7a792e7 GIT binary patch literal 61274 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 DbMBcM literal 0 HcmV?d00001 diff --git a/filas-aula-2/README.md b/filas-aula-2/README.md new file mode 100644 index 0000000..317bfc7 --- /dev/null +++ b/filas-aula-2/README.md @@ -0,0 +1,18 @@ +# Desafio 02 + +Foram criadas as filas e exchanges para o RabbitMQ, sendo que, após os testes foram obtidos os seguintes resultados: + +### Execução completa do lote: +![](Evidences/Resultado.png) + +### Cenário de sucesso (Processed): + +![](Evidences/Processed.png) + +### Cenário de falha (Cupom inválido): + +![](Evidences/InvalidCoupon.png) + +### Cenário de falha (Connection error - could not process): + +![](Evidences/CouldNotProcess.png) diff --git a/filas-aula-2/a/.env b/filas-aula-2/a/.env new file mode 100644 index 0000000..8394d8e --- /dev/null +++ b/filas-aula-2/a/.env @@ -0,0 +1,10 @@ +RABBITMQ_DEFAULT_USER=rabbitmq +RABBITMQ_DEFAULT_PASS=rabbitmq +RABBITMQ_DEFAULT_HOST=rabbit +RABBITMQ_DEFAULT_PORT=5672 +RABBITMQ_DEFAULT_VHOST=/ +RABBITMQ_CONSUMER_NAME=app-name +RABBITMQ_CONSUMER_QUEUE_NAME=exemplo +RABBITMQ_NOTIFICATION_EX=amq.direct +RABBITMQ_NOTIFICATION_ROUTING_KEY=jobs +RABBITMQ_DLX=dlx \ No newline at end of file diff --git a/filas-aula-2/a/Dockerfile b/filas-aula-2/a/Dockerfile new file mode 100644 index 0000000..8217f56 --- /dev/null +++ b/filas-aula-2/a/Dockerfile @@ -0,0 +1,13 @@ +FROM golang:1.15 + +WORKDIR /go/src/fullcycle + +COPY templates . + +# Install go dependencies +RUN go get github.com/joho/godotenv && \ + go get github.com/wesleywillians/go-rabbitmq/queue + +RUN GOOS=linux go build + +ENTRYPOINT [ "./fullcycle" ] \ No newline at end of file diff --git a/filas-aula-2/a/a.go b/filas-aula-2/a/a.go new file mode 100644 index 0000000..6e5e973 --- /dev/null +++ b/filas-aula-2/a/a.go @@ -0,0 +1,66 @@ +package main + +import ( + "encoding/json" + "html/template" + "log" + "net/http" + + "github.com/joho/godotenv" + "github.com/wesleywillians/go-rabbitmq/queue" +) + +type Order struct { + Coupon string + CcNumber string +} + +type Result struct { + Status string +} + +func init() { + err := godotenv.Load() + if err != nil { + log.Fatal("Error loading .env") + } +} + +func main() { + http.HandleFunc("/", home) + http.HandleFunc("/process", process) + http.ListenAndServe(":9090", nil) +} + +func home(w http.ResponseWriter, r *http.Request) { + t := template.Must(template.ParseFiles("templates/home.html")) + t.Execute(w, Result{}) +} + +func process(w http.ResponseWriter, r *http.Request) { + + coupon := r.PostFormValue("coupon") + ccNumber := r.PostFormValue("cc-number") + + order := Order{ + Coupon: coupon, + CcNumber: ccNumber, + } + + jsonOrder, err := json.Marshal(order) + if err != nil { + log.Fatal("Error parsing to json") + } + + rabbitMQ := queue.NewRabbitMQ() + ch := rabbitMQ.Connect() + defer ch.Close() + + err = rabbitMQ.Notify(string(jsonOrder), "application/json", "orders_ex", "") + if err != nil { + log.Fatal("Error sending message to the queue") + } + + t := template.Must(template.ParseFiles("templates/process.html")) + t.Execute(w, "") +} diff --git a/microsservicos-aula-1/a/templates/home.html b/filas-aula-2/a/templates/home.html similarity index 100% rename from microsservicos-aula-1/a/templates/home.html rename to filas-aula-2/a/templates/home.html diff --git a/filas-aula-2/a/templates/process.html b/filas-aula-2/a/templates/process.html new file mode 100644 index 0000000..db04c59 --- /dev/null +++ b/filas-aula-2/a/templates/process.html @@ -0,0 +1,26 @@ + + + + + + + Checkout example · Bootstrap + + + + +
+
+

Checkout

+
+ +

Recebemos o seu pedido! Em breve lhe enviaremos um email de confirmação.

+ + + +
+ + \ No newline at end of file diff --git a/filas-aula-2/b/.env b/filas-aula-2/b/.env new file mode 100644 index 0000000..c04a83e --- /dev/null +++ b/filas-aula-2/b/.env @@ -0,0 +1,10 @@ +RABBITMQ_DEFAULT_USER=rabbitmq +RABBITMQ_DEFAULT_PASS=rabbitmq +RABBITMQ_DEFAULT_HOST=rabbit +RABBITMQ_DEFAULT_PORT=5672 +RABBITMQ_DEFAULT_VHOST=/ +RABBITMQ_CONSUMER_NAME=payment-ms +RABBITMQ_CONSUMER_QUEUE_NAME=orders +RABBITMQ_NOTIFICATION_EX=amq.direct +RABBITMQ_NOTIFICATION_ROUTING_KEY= +RABBITMQ_DLX=dlx \ No newline at end of file diff --git a/filas-aula-2/b/Dockerfile b/filas-aula-2/b/Dockerfile new file mode 100644 index 0000000..e37e52d --- /dev/null +++ b/filas-aula-2/b/Dockerfile @@ -0,0 +1,9 @@ +FROM golang:1.15.3 + +WORKDIR /go/src/fullcycle + +COPY . . + +RUN GOOS=linux go build b.go + +ENTRYPOINT [ "./b" ] \ No newline at end of file diff --git a/filas-aula-2/b/b.go b/filas-aula-2/b/b.go new file mode 100644 index 0000000..6cc114f --- /dev/null +++ b/filas-aula-2/b/b.go @@ -0,0 +1,103 @@ +package main + +import ( + "encoding/json" + "io/ioutil" + "log" + "net/http" + "net/url" + "fmt" + + "github.com/joho/godotenv" + uuid "github.com/google/uuid" + "github.com/streadway/amqp" +// "github.com/wesleywillians/go-rabbitmq/queue" +) + +type Result struct { + Status string +} + +type Order struct { + ID uuid.UUID + Coupon string + CcNumber string +} + +func NewOrder() Order { + id := uuid.New(); + return Order{ID: id} +} + +const ( + InvalidCoupon = "invalid" + ValidCoupon = "valid" + ConnectionError = "connection error" +) + +func init() { + err := godotenv.Load() + if err != nil { + log.Fatalf("Error loading .env file") + } +} + +func main() { + messageChannel := make(chan amqp.Delivery) + + rabbitMQ := queue.NewRabbitMQ() + ch := rabbitMQ.Connect() + defer ch.Close() + + rabbitMQ.Consume(messageChannel) + + for msg := range messageChannel { + process(msg) + } +} + +func process(msg amqp.Delivery) { + + order := NewOrder() + json.Unmarshal(msg.Body, &order) + + resultCoupon := makeHttpCall("http://microservice-c:9092", order.Coupon) + + switch resultCoupon.Status { + case InvalidCoupon: + log.Println("Order: ", order.ID, ": invalid coupon!") + + case ConnectionError: + msg.Reject(false) + log.Println("Order: ", order.ID, ": could not process!") + + case ValidCoupon: + log.Println("Order: ", order.ID, ": Processed") + } +} + +func makeHttpCall(urlMicroservice string, coupon string) Result { + + values := url.Values{} + values.Add("coupon", coupon) + + res, err := http.PostForm(urlMicroservice, values) + if err != nil { + result := Result{Status: ConnectionError} + return result + } + + defer res.Body.Close() + + data, err := ioutil.ReadAll(res.Body) + if err != nil { + log.Fatal("Error processing result") + } + + result := Result{} + + json.Unmarshal(data, &result) + + return result + +} diff --git a/filas-aula-2/b/go.mod b/filas-aula-2/b/go.mod new file mode 100644 index 0000000..27f2bfa --- /dev/null +++ b/filas-aula-2/b/go.mod @@ -0,0 +1,11 @@ +module github.com/codeedu/avancadev-micrservice-1dia + +go 1.15 + +require ( + github.com/joho/godotenv v1.3.0 + github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e // indirect + github.com/satori/go.uuid v1.2.0 + github.com/wesleywillians/go-rabbitmq v0.0.0-20201027193450-55e6a80937af + gopkg.in/check.v1 v1.0.0-20200902074654-038fdea0a05b // indirect +) \ No newline at end of file diff --git a/filas-aula-2/c/Dockerfile b/filas-aula-2/c/Dockerfile new file mode 100644 index 0000000..6450107 --- /dev/null +++ b/filas-aula-2/c/Dockerfile @@ -0,0 +1,9 @@ +FROM golang:1.15 + +WORKDIR /go/src/fullcycle + +COPY . . + +RUN GOOS=linux go build + +ENTRYPOINT [ "./fullcycle" ] \ No newline at end of file diff --git a/microsservicos-aula-1/c/c.go b/filas-aula-2/c/c.go similarity index 99% rename from microsservicos-aula-1/c/c.go rename to filas-aula-2/c/c.go index 68690b1..a80ac33 100644 --- a/microsservicos-aula-1/c/c.go +++ b/filas-aula-2/c/c.go @@ -54,4 +54,4 @@ func home(w http.ResponseWriter, r *http.Request) { fmt.Fprintf(w, string(jsonResult)) -} \ No newline at end of file +} diff --git a/filas-aula-2/docker-compose.yaml b/filas-aula-2/docker-compose.yaml new file mode 100644 index 0000000..492ac51 --- /dev/null +++ b/filas-aula-2/docker-compose.yaml @@ -0,0 +1,43 @@ +version: '3' + +volumes: + rabbitdata: + driver: local + +services: + + rabbit: + image: "rabbitmq:3-management" + hostname: 'rabbithost' + environment: + RABBITMQ_ERLANG_COOKIE: "SWQOKODSQALRPCLNMEQG" + RABBITMQ_DEFAULT_USER: "rabbitmq" + RABBITMQ_DEFAULT_PASS: "rabbitmq" + RABBITMQ_DEFAULT_VHOST: "/" + ports: + - "15672:15672" + - "5672:5672" + volumes: + - rabbitdata:/var/lib/rabbitmq + restart: on-failure + + microservice-a: + build: ./a + ports: + - 9090:9090 + depends_on: + - rabbit + restart: on-failure + + microservice-b: + build: + context: ./b + depends_on: + - rabbit + restart: on-failure + + microservice-c: + build: ./c + ports: + - 9092:9092 + restart: on-failure \ No newline at end of file diff --git a/filas-aula-2/go.mod b/filas-aula-2/go.mod new file mode 100644 index 0000000..27f2bfa --- /dev/null +++ b/filas-aula-2/go.mod @@ -0,0 +1,11 @@ +module github.com/codeedu/avancadev-micrservice-1dia + +go 1.15 + +require ( + github.com/joho/godotenv v1.3.0 + github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e // indirect + github.com/satori/go.uuid v1.2.0 + github.com/wesleywillians/go-rabbitmq v0.0.0-20201027193450-55e6a80937af + gopkg.in/check.v1 v1.0.0-20200902074654-038fdea0a05b // indirect +) \ No newline at end of file diff --git a/filas-aula-2/go.sum b/filas-aula-2/go.sum new file mode 100644 index 0000000..0c58204 --- /dev/null +++ b/filas-aula-2/go.sum @@ -0,0 +1,15 @@ +github.com/joho/godotenv v1.3.0 h1:Zjp+RcGpHhGlrMbJzXTrZZPrWj+1vfm90La1wgB6Bhc= +github.com/joho/godotenv v1.3.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs= +github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= +github.com/satori/go.uuid v1.2.0 h1:0uYX9dsZ2yD7q2RtLRtPSdGDWzjeM3TbMJP9utgA0ww= +github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0= +github.com/streadway/amqp v1.0.0 h1:kuuDrUJFZL1QYL9hUNuCxNObNzB0bV/ZG5jV3RWAQgo= +github.com/streadway/amqp v1.0.0/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw= +github.com/wesleywillians/go-rabbitmq v0.0.0-20201027193450-55e6a80937af h1:pE+leqmw6k0BXMHeFwoMQY/6N8rGR6NWYfrYpVTdHY8= +github.com/wesleywillians/go-rabbitmq v0.0.0-20201027193450-55e6a80937af/go.mod h1:a8g6tNV76FrnJSlQDpAeuJ4EA8JvRGSejc8PAkKfro4= +gopkg.in/check.v1 v1.0.0-20200902074654-038fdea0a05b h1:QRR6H1YWRnHb4Y/HeNFCTJLFVxaq6wH4YuVdsUOr75U= +gopkg.in/check.v1 v1.0.0-20200902074654-038fdea0a05b/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= \ No newline at end of file diff --git a/microsservicos-aula-1/a/a.go b/microsservicos-aula-1/a/a.go deleted file mode 100644 index 3510a55..0000000 --- a/microsservicos-aula-1/a/a.go +++ /dev/null @@ -1,64 +0,0 @@ -package main - -import ( - "encoding/json" - "github.com/hashicorp/go-retryablehttp" - "html/template" - "io/ioutil" - "log" - "net/http" - "net/url" -) - -type Result struct { - Status string -} - -func main() { - http.HandleFunc("/", home) - http.HandleFunc("/process", process) - http.ListenAndServe(":9090", nil) -} - -func home(w http.ResponseWriter, r *http.Request) { - t := template.Must(template.ParseFiles("templates/home.html")) - t.Execute(w, Result{}) -} - -func process(w http.ResponseWriter, r *http.Request) { - - result := makeHttpCall("http://localhost:9091", r.FormValue("coupon"), r.FormValue("cc-number")) - - t := template.Must(template.ParseFiles("templates/home.html")) - t.Execute(w, result) -} - -func makeHttpCall(urlMicroservice string, coupon string, ccNumber string) Result { - - values := url.Values{} - values.Add("coupon", coupon) - values.Add("ccNumber", ccNumber) - - retryClient := retryablehttp.NewClient() - retryClient.RetryMax = 5 - - res, err := retryClient.PostForm(urlMicroservice, values) - if err != nil { - result := Result{Status: "Servidor fora do ar!"} - return result - } - - defer res.Body.Close() - - data, err := ioutil.ReadAll(res.Body) - if err != nil { - log.Fatal("Error processing result") - } - - result := Result{} - - json.Unmarshal(data, &result) - - return result - -} diff --git a/microsservicos-aula-1/b/b.go b/microsservicos-aula-1/b/b.go deleted file mode 100644 index 38acb90..0000000 --- a/microsservicos-aula-1/b/b.go +++ /dev/null @@ -1,70 +0,0 @@ -package main - -import ( - "encoding/json" - "fmt" - "io/ioutil" - "log" - "net/http" - "net/url" -) - -type Result struct { - Status string -} - -func main() { - http.HandleFunc("/", home) - http.ListenAndServe(":9091", nil) -} - -func home(w http.ResponseWriter, r *http.Request) { - coupon := r.PostFormValue("coupon") - ccNumber := r.PostFormValue("ccNumber") - - resultCoupon := makeHttpCall("http://localhost:9092", coupon) - - result := Result{Status: "declined"} - - if ccNumber == "1" { - result.Status = "approved" - } - - if resultCoupon.Status == "invalid" { - result.Status = "invalid coupon" - } - - jsonData, err := json.Marshal(result) - if err != nil { - log.Fatal("Error processing json") - } - - fmt.Fprintf(w, string(jsonData)) -} - - -func makeHttpCall(urlMicroservice string, coupon string) Result { - - values := url.Values{} - values.Add("coupon", coupon) - - res, err := http.PostForm(urlMicroservice, values) - if err != nil { - result := Result{Status: "Servidor fora do ar!"} - return result - } - - defer res.Body.Close() - - data, err := ioutil.ReadAll(res.Body) - if err != nil { - log.Fatal("Error processing result") - } - - result := Result{} - - json.Unmarshal(data, &result) - - return result - -} diff --git a/microsservicos-aula-1/go.mod b/microsservicos-aula-1/go.mod deleted file mode 100644 index 3937b0c..0000000 --- a/microsservicos-aula-1/go.mod +++ /dev/null @@ -1,5 +0,0 @@ -module github.com/codeedu/avancadev-micrservice-1dia - -go 1.15 - -require github.com/hashicorp/go-retryablehttp v0.6.7 diff --git a/microsservicos-aula-1/go.sum b/microsservicos-aula-1/go.sum deleted file mode 100644 index 344c0a4..0000000 --- a/microsservicos-aula-1/go.sum +++ /dev/null @@ -1,12 +0,0 @@ -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/hashicorp/go-cleanhttp v0.5.1 h1:dH3aiDG9Jvb5r5+bYHsikaOUIpcM0xvgMXVoDkXMzJM= -github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= -github.com/hashicorp/go-hclog v0.9.2 h1:CG6TE5H9/JXsFWJCfoIVpKFIkFe6ysEuHirp4DxCsHI= -github.com/hashicorp/go-hclog v0.9.2/go.mod h1:5CU+agLiy3J7N7QjHK5d05KxGsuXiQLrjA0H7acj2lQ= -github.com/hashicorp/go-retryablehttp v0.6.7 h1:8/CAEZt/+F7kR7GevNHulKkUjLht3CPmn7egmhieNKo= -github.com/hashicorp/go-retryablehttp v0.6.7/go.mod h1:vAew36LZh98gCBJNLH42IQ1ER/9wtLZZ8meHqQvEYWY= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/stretchr/testify v1.2.2 h1:bSDNvY7ZPG5RlJ8otE/7V6gMiyenm9RtJ7IUVIAoJ1w= -github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=