This commit is contained in:
Piotr Biernat 2024-12-05 16:57:56 +01:00
parent 5b1bf92845
commit 5feb115f62
16 changed files with 49 additions and 33 deletions

View File

@ -5,10 +5,20 @@
"Tags": ["catalog-svc", "catalog", "https", "service"], "Tags": ["catalog-svc", "catalog", "https", "service"],
"Port": 443, "Port": 443,
"Connect": { "Connect": {
"Native": true "Native": true,
"SidecarService": {
"Port": 20000,
"Check": {
"Name": "Connect Envoy Sidecar",
"TCP": "127.0.0.1:20000",
"Interval": "5s"
}
}
}, },
"Check": { "Check": {
"TCP": "__IP__:443", "TCP": "__IP__:443",
"Interval": "5s",
"Timeout": "1s",
"DeregisterCriticalServiceAfter": "10s" "DeregisterCriticalServiceAfter": "10s"
} }
} }

View File

@ -7,7 +7,7 @@ APP_PATH_PREFIX=/catalog
APP_KV_NAMESPACE=dev.egommerce/service/catalog-svc APP_KV_NAMESPACE=dev.egommerce/service/catalog-svc
LOGGER_ADDR=api-logger:24224 LOGGER_ADDR=api-logger:24224
REGISTRY_ADDR=api-registry:8500 REGISTRY_ADDR=api-registry:8501
DATABASE_URL=postgres://postgres:12345678@postgres-db:5432/egommerce DATABASE_URL=postgres://postgres:12345678@postgres-db:5432/egommerce
CACHE_ADDR=api-cache:6379 CACHE_ADDR=api-cache:6379
CACHE_PASSWORD=12345678 CACHE_PASSWORD=12345678

View File

@ -1,14 +1,15 @@
# Builder # Builder
FROM golang:alpine FROM golang:alpine
WORKDIR /go/src/app
COPY src ./
ARG BIN_OUTPUT=/go/bin ARG BIN_OUTPUT=/go/bin
ARG GO_SERVER=cmd/server/main.go ARG GO_SERVER=cmd/server/main.go
ARG GO_MIGRATE=cmd/migrate/main.go ARG GO_MIGRATE=cmd/migrate/main.go
ARG GO_WORKER=cmd/worker/main.go ARG GO_WORKER=cmd/worker/main.go
ARG GO_HEALTH=cmd/health/main.go ARG GO_HEALTH=cmd/health/main.go
WORKDIR /go/src/app
COPY src ./
RUN export CGO_ENABLED=0 ; export GOOS=linux ; export GOARCH=amd64 && \ RUN export CGO_ENABLED=0 ; export GOOS=linux ; export GOARCH=amd64 && \
go build -ldflags="-w -s" -o "$BIN_OUTPUT/server" $GO_SERVER && \ go build -ldflags="-w -s" -o "$BIN_OUTPUT/server" $GO_SERVER && \

View File

@ -27,6 +27,7 @@ COPY ./bin /bin
RUN chmod 755 /bin/entrypoint.sh /bin/migrate.sh RUN chmod 755 /bin/entrypoint.sh /bin/migrate.sh
RUN apk add curl RUN apk add curl
# is required / ^^
EXPOSE 443 EXPOSE 443

View File

@ -14,13 +14,18 @@ waitForService()
done done
} }
update-resolv # provided by stack - better approach - single copy update-resolv
update-ca-certificates update-ca-certificates
waitForService "postgres-db:5432" waitForService "api-registry:8501"
waitForService "api-eventbus:5672" waitForService "esb.service.ego.io:5672"
waitForService "api-logger:24224" waitForService "logger.service.ego.io:24224"
waitForService "api-registry:8500" waitForService "postgresdb.service.ego.io:5432"
# waitForService "api-eventbus:5672"
# waitForService "api-logger:24224"
# waitForService "db-postgres:5432"
register-service
# run migrations # run migrations
migrate.sh migrate.sh

View File

@ -1,7 +1,7 @@
#!/bin/sh #!/bin/sh
# RUN IN REPO ROOT DIR !! # RUN IN REPO ROOT DIR !!
export IMAGE_PREFIX="git.pbiernat.io/egommerce/catalog" export IMAGE_PREFIX="git.ego.cloudns.be/egommerce/catalog"
export BUILDER_IMAGE="egommerce-builder:catalog" export BUILDER_IMAGE="egommerce-builder:catalog"
export BUILD_TIME=$(date +"%Y%m%d%H%M%S") export BUILD_TIME=$(date +"%Y%m%d%H%M%S")
export SERVER_IMAGE="$IMAGE_PREFIX-svc" export SERVER_IMAGE="$IMAGE_PREFIX-svc"

View File

@ -1,7 +1,7 @@
#!/bin/sh #!/bin/sh
# RUN IN REPO ROOT DIR !! # RUN IN REPO ROOT DIR !!
export IMAGE_BASE="git.pbiernat.io/egommerce/catalog" export IMAGE_BASE="git.ego.cloudns.be/egommerce/catalog"
export SERVER_IMAGE="$IMAGE_BASE-svc" export SERVER_IMAGE="$IMAGE_BASE-svc"
export WORKER_IMAGE="$IMAGE_BASE-worker" export WORKER_IMAGE="$IMAGE_BASE-worker"

View File

@ -29,7 +29,7 @@ func main() {
} }
func healthCheck() bool { func healthCheck() bool {
run, err := os.Open("/app.run") run, err := os.Open("./app.run")
if err != nil { if err != nil {
return false return false
} }

View File

@ -25,7 +25,7 @@ func main() {
a.RegisterPlugin(app.CachePlugin(cArr)) a.RegisterPlugin(app.CachePlugin(cArr))
a.RegisterPlugin(app.DatabasePlugin(cArr)) a.RegisterPlugin(app.DatabasePlugin(cArr))
a.RegisterPlugin(app.EventbusPlugin(cArr)) a.RegisterPlugin(app.EventbusPlugin(cArr))
a.RegisterPlugin(app.RegistryPlugin(cArr)) // a.RegisterPlugin(app.RegistryPlugin(cArr))
while := make(chan struct{}) while := make(chan struct{})
err := a.Start(while) err := a.Start(while)

View File

@ -4,7 +4,7 @@ go 1.18
require ( require (
git.pbiernat.io/egommerce/api-entities v0.2.3 git.pbiernat.io/egommerce/api-entities v0.2.3
git.pbiernat.io/egommerce/go-api-pkg v0.3.18 git.pbiernat.io/egommerce/go-api-pkg v0.3.28
github.com/georgysavva/scany/v2 v2.0.0 github.com/georgysavva/scany/v2 v2.0.0
github.com/go-pg/migrations/v8 v8.1.0 github.com/go-pg/migrations/v8 v8.1.0
github.com/go-pg/pg/v10 v10.11.1 github.com/go-pg/pg/v10 v10.11.1

View File

@ -37,8 +37,8 @@ cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9
dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU=
git.pbiernat.io/egommerce/api-entities v0.2.3 h1:mR6EYfZkAzh4teydb7KXDBWoxwVW3qasnmmH5J3mnas= git.pbiernat.io/egommerce/api-entities v0.2.3 h1:mR6EYfZkAzh4teydb7KXDBWoxwVW3qasnmmH5J3mnas=
git.pbiernat.io/egommerce/api-entities v0.2.3/go.mod h1:INXAG5x4+i+vNwg1NpfPHiDW8nY1kn1K7pgLOtX+/I0= git.pbiernat.io/egommerce/api-entities v0.2.3/go.mod h1:INXAG5x4+i+vNwg1NpfPHiDW8nY1kn1K7pgLOtX+/I0=
git.pbiernat.io/egommerce/go-api-pkg v0.3.18 h1:0+C9BMsllrNvRbh4kb7dJ5lrzP1Lc7J4pb+KV76YrXk= git.pbiernat.io/egommerce/go-api-pkg v0.3.28 h1:PiqwprMSJxtK/nLUiidfBQUHz2n6XIpWZysWNfby4kw=
git.pbiernat.io/egommerce/go-api-pkg v0.3.18/go.mod h1:XIy2mmvRNIzQmYIUAcDZafhRPxTQFS2HDmsK7ZQ6980= git.pbiernat.io/egommerce/go-api-pkg v0.3.28/go.mod h1:XIy2mmvRNIzQmYIUAcDZafhRPxTQFS2HDmsK7ZQ6980=
github.com/Azure/azure-sdk-for-go v44.0.0+incompatible h1:e82Yv2HNpS0kuyeCrV29OPKvEiqfs2/uJHic3/3iKdg= github.com/Azure/azure-sdk-for-go v44.0.0+incompatible h1:e82Yv2HNpS0kuyeCrV29OPKvEiqfs2/uJHic3/3iKdg=
github.com/Azure/go-autorest v14.2.0+incompatible h1:V5VMDjClD3GiElqLWO7mz2MxNAK/vTfRHdAubSIPRgs= github.com/Azure/go-autorest v14.2.0+incompatible h1:V5VMDjClD3GiElqLWO7mz2MxNAK/vTfRHdAubSIPRgs=
github.com/Azure/go-autorest/autorest v0.11.18 h1:90Y4srNYrwOtAgVo3ndrQkTYn6kf1Eg/AjTFJ8Is2aM= github.com/Azure/go-autorest/autorest v0.11.18 h1:90Y4srNYrwOtAgVo3ndrQkTYn6kf1Eg/AjTFJ8Is2aM=

View File

@ -1,6 +1,7 @@
package app package app
import ( import (
"fmt"
"log" "log"
"os" "os"
"strconv" "strconv"
@ -104,6 +105,12 @@ func RegistryPlugin(cArr map[string]string) Plugin {
os.Exit(1) // TODO: retry in background... os.Exit(1) // TODO: retry in background...
} }
svc, _ := registry.Connect()
tlsCnf := svc.ServerTLSConfig()
// s.Base.App.Server().TLSConfig = tlsCnf
fmt.Println("Podmiana configa TLS", tlsCnf)
// defer svc.Close()
err = registry.Register() err = registry.Register()
if err != nil { if err != nil {
log.Fatalf("Failed to register in the Consul service. Err: %v", err) log.Fatalf("Failed to register in the Consul service. Err: %v", err)
@ -115,12 +122,6 @@ func RegistryPlugin(cArr map[string]string) Plugin {
return registry return registry
// svc, _ := registry.Connect()
// tlsCnf := svc.ServerTLSConfig()
// s.Base.App.Server().TLSConfig = tlsCnf
// fmt.Println("Podmiana configa TLS")
// defer svc.Close()
// go func() { // Consul KV updater // go func() { // Consul KV updater
// ticker := time.NewTicker(time.Second * 15) // ticker := time.NewTicker(time.Second * 15)
// for range ticker.C { // for range ticker.C {

View File

@ -21,7 +21,7 @@ const (
defNetAddr = ":443" defNetAddr = ":443"
defMongoDbURL = "mongodb://mongodb:12345678@mongo-db:27017" defMongoDbURL = "mongodb://mongodb:12345678@mongo-db:27017"
defPathPrefix = "/catalog" defPathPrefix = "/catalog"
defRegistryAddr = "api-registry:8500" defRegistryAddr = "api-registry:8501"
defEbEventsExchange = "api-events" defEbEventsExchange = "api-events"
defEbEventsQueue = "catalog-svc" defEbEventsQueue = "catalog-svc"
) )

View File

@ -1,8 +1,6 @@
package server package server
import ( import (
"strings"
"github.com/gofiber/fiber/v2" "github.com/gofiber/fiber/v2"
"git.pbiernat.io/egommerce/go-api-pkg/fluentd" "git.pbiernat.io/egommerce/go-api-pkg/fluentd"
@ -17,10 +15,10 @@ func SetupMiddleware(s *Server) {
func LoggingMiddleware(log *fluentd.Logger) func(c *fiber.Ctx) error { func LoggingMiddleware(log *fluentd.Logger) func(c *fiber.Ctx) error {
return func(c *fiber.Ctx) error { return func(c *fiber.Ctx) error {
path := string(c.Request().URI().Path()) // path := string(c.Request().URI().Path())
if strings.Contains(path, "/health") { // if strings.Contains(path, "/health") {
return c.Next() // return c.Next()
} // }
log.Log("Request: %s, remote: %s, via: %s", log.Log("Request: %s, remote: %s, via: %s",
c.Request().URI().String(), c.Request().URI().String(),

View File

@ -69,7 +69,7 @@ func (s *Server) RegisterHandler(name string, fn func() any) {
func (s *Server) OnShutdown() { func (s *Server) OnShutdown() {
// s.GetLogger().Log("Server %s is going down...", s.ID) // s.GetLogger().Log("Server %s is going down...", s.ID)
s.GetRegistry().Unregister() // s.GetRegistry().Unregister()
// a.clearMetadataCache() // a.clearMetadataCache()
s.GetEventBus().Close() s.GetEventBus().Close()
s.GetDatabase().Close() s.GetDatabase().Close()

View File

@ -89,7 +89,7 @@ func (w *Worker) GetCache() *redis.Client {
return (w.handlers["cache"]).(*redis.Client) return (w.handlers["cache"]).(*redis.Client)
} }
func (w *Worker) GetDatabase() *pgxpool.Pool { // FIXME hardcoded index issue func (w *Worker) GetDatabase() *pgxpool.Pool {
return (w.handlers["database"]).(*pgxpool.Pool) return (w.handlers["database"]).(*pgxpool.Pool)
} }
@ -158,8 +158,8 @@ func (w *Worker) processMsg(cSrv *service.CatalogService, d amqp.Delivery) {
w.GetLogger().Log("Event: %s", event.EVENT_WAREHOUSE_STOCK_UPDATED) w.GetLogger().Log("Event: %s", event.EVENT_WAREHOUSE_STOCK_UPDATED)
} }
rnr := NewCommandRunner(data, cSrv) r := NewCommandRunner(data, cSrv)
ok, _ = rnr.run(data) ok, _ = r.run(data)
if ok { if ok {
w.GetLogger().Log("Successful executed message \"%s\"\n", name) w.GetLogger().Log("Successful executed message \"%s\"\n", name)
fmt.Printf("Successful executed message \"%s\"\n", name) fmt.Printf("Successful executed message \"%s\"\n", name)