Skip to content

Commit

Permalink
add kitchen-service #3
Browse files Browse the repository at this point in the history
  • Loading branch information
thangchung committed Nov 20, 2022
1 parent 52d588f commit 117bf3c
Show file tree
Hide file tree
Showing 17 changed files with 437 additions and 27 deletions.
11 changes: 5 additions & 6 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -27,17 +27,16 @@ run-barista:
CGO_ENABLED=0 go run -tags migrate github.com/thangchung/go-coffeeshop/cmd/barista
.PHONY: run-barista

run-kitchen:
cd cmd/kitchen && go mod tidy && go mod download && \
CGO_ENABLED=0 go run -tags migrate github.com/thangchung/go-coffeeshop/cmd/kitchen
.PHONY: run-kitchen

run-proxy:
cd cmd/proxy && go mod tidy && go mod download && \
CGO_ENABLED=0 go run -tags migrate github.com/thangchung/go-coffeeshop/cmd/proxy
.PHONY: run-proxy

run-migrator:
cd cmd/counter && dbmate up &>/dev/null && cd -
cd cmd/barista && dbmate up &>/dev/null && cd -
cd cmd/kitchen && dbmate up &>/dev/null && cd -
.PHONY: run-migrator

test:
go test -v main.go

Expand Down
6 changes: 3 additions & 3 deletions cmd/barista/config.yml
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
app:
name: 'counter-service'
name: 'barista-service'
version: '1.0.0'

http:
host: '0.0.0.0'
port: 5002

rabbit_mq:
url: amqp://guest:guest@172.25.33.104:5672/
url: amqp://guest:guest@172.28.255.101:5672/

logger:
log_level: 'debug'
rollbar_env: 'counter-service'
rollbar_env: 'barista-service'
4 changes: 2 additions & 2 deletions cmd/counter/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,10 @@ http:

postgres:
pool_max: 2
url: postgres://postgres:P@ssw0rd@172.25.33.104:5432/postgres?sslmode=disable
url: postgres://postgres:P@ssw0rd@172.28.255.101:5432/postgres?sslmode=disable

rabbit_mq:
url: amqp://guest:guest@172.25.33.104:5672/
url: amqp://guest:guest@172.28.255.101:5672/

product_client:
url: 0.0.0.0:5001
Expand Down
14 changes: 14 additions & 0 deletions cmd/kitchen/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
app:
name: 'kitchen-service'
version: '1.0.0'

http:
host: '0.0.0.0'
port: 5004

rabbit_mq:
url: amqp://guest:[email protected]:5672/

logger:
log_level: 'debug'
rollbar_env: 'kitchen-service'
47 changes: 47 additions & 0 deletions cmd/kitchen/config/config.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
package config

import (
"fmt"
"log"
"os"

"github.com/ilyakaznacheev/cleanenv"
configs "github.com/thangchung/go-coffeeshop/pkg/config"
)

type (
Config struct {
configs.App `yaml:"app"`
configs.HTTP `yaml:"http"`
configs.Log `yaml:"logger"`
RabbitMQ `yaml:"rabbit_mq"`
}

RabbitMQ struct {
URL string `env-required:"true" yaml:"url" env:"RABBITMQ_URL"`
}
)

func NewConfig() (*Config, error) {
cfg := &Config{}

dir, err := os.Getwd()
if err != nil {
log.Fatal(err)
}

// debug
fmt.Println(dir)

err = cleanenv.ReadConfig(dir+"/config.yml", cfg)
if err != nil {
return nil, fmt.Errorf("config error: %w", err)
}

err = cleanenv.ReadEnv(cfg)
if err != nil {
return nil, err
}

return cfg, nil
}
25 changes: 25 additions & 0 deletions cmd/kitchen/main.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
package main

import (
"os"

"github.com/golang/glog"
"github.com/thangchung/go-coffeeshop/cmd/kitchen/config"
"github.com/thangchung/go-coffeeshop/internal/kitchen/app"
mylog "github.com/thangchung/go-coffeeshop/pkg/logger"
)

func main() {
cfg, err := config.NewConfig()
if err != nil {
glog.Fatal(err)
}

logger := mylog.New(cfg.Level)

a := app.New(logger, cfg)
if err = a.Run(); err != nil {
glog.Fatal(err)
os.Exit(1)
}
}
18 changes: 18 additions & 0 deletions docker-compose-full.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -100,5 +100,23 @@ services:
networks:
- coffeeshop-network

kitchen:
build:
context: .
dockerfile: ./docker/Dockerfile-kitchen
image: go-coffeeshop-kitchen
environment:
APP_NAME: 'kitchen-service in docker'
IN_DOCKER: "true"
PG_URL: postgres://postgres:P@ssw0rd@postgres:5432/postgres
RABBITMQ_URL: amqp://guest:guest@rabbitmq:5672/
depends_on:
postgres:
condition: service_healthy
rabbitmq:
condition: service_healthy
networks:
- coffeeshop-network

networks:
coffeeshop-network:
3 changes: 0 additions & 3 deletions docker/Dockerfile-barista
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,6 @@ RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 \
# Step 3: Final
FROM scratch

# COPY --from=builder /app/config /config
# COPY --from=builder /app/migrations /migrations

# GOPATH for scratch images is /
COPY --from=builder /app/cmd/barista/config.yml /
COPY --from=builder /app/db/migrations /db/migrations
Expand Down
3 changes: 0 additions & 3 deletions docker/Dockerfile-counter
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,6 @@ FROM scratch

EXPOSE 5002

# COPY --from=builder /app/config /config
# COPY --from=builder /app/migrations /migrations

# GOPATH for scratch images is /
COPY --from=builder /app/cmd/counter/config.yml /
COPY --from=builder /app/db/migrations /db/migrations
Expand Down
22 changes: 22 additions & 0 deletions docker/Dockerfile-kitchen
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# Step 1: Modules caching
FROM golang:1.19.2-alpine3.16 as modules
COPY go.mod go.sum /modules/
WORKDIR /modules
RUN go mod download

# Step 2: Builder
FROM golang:1.19.2-alpine3.16 as builder
COPY --from=modules /go/pkg /go/pkg
COPY . /app
WORKDIR /app
RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 \
go build -tags migrate -o /bin/app ./cmd/kitchen

# Step 3: Final
FROM scratch

# GOPATH for scratch images is /
COPY --from=builder /app/cmd/kitchen/config.yml /
COPY --from=builder /app/db/migrations /db/migrations
COPY --from=builder /bin/app /app
CMD ["/app"]
3 changes: 0 additions & 3 deletions docker/Dockerfile-product
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,6 @@ FROM scratch

EXPOSE 5001

# COPY --from=builder /app/config /config
# COPY --from=builder /app/migrations /migrations

# GOPATH for scratch images is /
COPY --from=builder /app/cmd/product/config.yml /
COPY --from=builder /bin/app /app
Expand Down
3 changes: 0 additions & 3 deletions docker/Dockerfile-proxy
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,6 @@ FROM scratch

EXPOSE 5000

# COPY --from=builder /app/config /config
# COPY --from=builder /app/migrations /migrations

# GOPATH for scratch images is /
COPY --from=builder /app/cmd/proxy/config.yml /
COPY --from=builder /bin/app /app
Expand Down
5 changes: 5 additions & 0 deletions internal/barista/app/app.go
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,8 @@ func (a *App) Run() error {

amqpConn, err := rabbitmq.NewRabbitMQConn(a.cfg.RabbitMQ.URL, a.logger)
if err != nil {
cancel()

a.logger.Fatal("app - Run - rabbitmq.NewRabbitMQConn: %s", err.Error())
}
defer amqpConn.Close()
Expand All @@ -58,6 +60,8 @@ func (a *App) Run() error {
defer counterOrderPub.CloseChan()

if err != nil {
cancel()

return errors.Wrap(err, "publisher-Counter-NewOrderPublisher")
}

Expand All @@ -76,6 +80,7 @@ func (a *App) Run() error {

if err != nil {
a.logger.Fatal("app - Run - consumer.NewOrderConsumer: %s", err.Error())
cancel()
}

go func() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,17 +16,19 @@ type BaristaOrderedEventHandler interface {
Handle(context.Context, *event.BaristaOrdered) error
}

type DefaultBaristaOrderedEventHandler struct {
var _ BaristaOrderedEventHandler = (*baristaOrderedEventHandler)(nil)

type baristaOrderedEventHandler struct {
counterPub *publisher.Publisher
}

func NewBaristaOrderedEventHandler(counterPub *publisher.Publisher) *DefaultBaristaOrderedEventHandler {
return &DefaultBaristaOrderedEventHandler{
func NewBaristaOrderedEventHandler(counterPub *publisher.Publisher) BaristaOrderedEventHandler {
return &baristaOrderedEventHandler{
counterPub: counterPub,
}
}

func (h *DefaultBaristaOrderedEventHandler) Handle(ctx context.Context, e *event.BaristaOrdered) error {
func (h *baristaOrderedEventHandler) Handle(ctx context.Context, e *event.BaristaOrdered) error {
fmt.Println(e)

delay := calculateDelay(e.ItemType)
Expand Down
Loading

0 comments on commit 117bf3c

Please sign in to comment.