This commit is contained in:
Piotr Biernat 2024-12-05 16:56:54 +01:00
parent faefaceaf1
commit 7957488a31
15 changed files with 41 additions and 31 deletions

View File

@ -5,10 +5,20 @@
"Tags": ["basket-svc", "basket", "https", "service"], "Tags": ["basket-svc", "basket", "https", "service"],
"Port": 443, "Port": 443,
"Connect": { "Connect": {
"Native": true "Native": true,
"SidecarService": {
"Port": 20001,
"Check": {
"Name": "Connect Envoy Sidecar",
"TCP": "127.0.0.1:20001",
"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=/basket
APP_KV_NAMESPACE=dev.egommerce/service/basket-svc APP_KV_NAMESPACE=dev.egommerce/service/basket-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

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

1
deploy/certs Symbolic link
View File

@ -0,0 +1 @@
../../stack/deploy/certs/basket-svc/

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.24
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.10.7 github.com/go-pg/pg/v10 v10.10.7

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.24 h1:if6xsFOStckWdGm7kcgKWOhOGOe6iIBOOr+3DjgX5tM=
git.pbiernat.io/egommerce/go-api-pkg v0.3.18/go.mod h1:XIy2mmvRNIzQmYIUAcDZafhRPxTQFS2HDmsK7ZQ6980= git.pbiernat.io/egommerce/go-api-pkg v0.3.24/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

@ -21,7 +21,7 @@ const (
defNetAddr = ":443" defNetAddr = ":443"
defMongoDbURL = "mongodb://mongodb:12345678@mongo-db:27017" defMongoDbURL = "mongodb://mongodb:12345678@mongo-db:27017"
defPathPrefix = "/basket" defPathPrefix = "/basket"
defRegistryAddr = "api-registry:8500" defRegistryAddr = "api-registry:8501"
defEbEventsExchange = "api-events" defEbEventsExchange = "api-events"
defEbEventsQueue = "basket-svc" defEbEventsQueue = "basket-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

@ -18,7 +18,7 @@ import (
) )
const ( const (
ServiceUserAgent = "basket-httpclient" ServiceUserAgent = "basket-api/internal"
) )
type BasketService struct { type BasketService struct {

View File

@ -35,8 +35,7 @@ func AddProductToBasket(srv *service.BasketService, productID, qty int, basketID
return basket, nil return basket, nil
} }
qty = item.Quantity + qty err = srv.UpdateItem(ctx, item, item.Quantity+qty)
err = srv.UpdateItem(ctx, item, qty)
if err != nil { if err != nil {
srv.Log("UpdateItem error: %v", err) srv.Log("UpdateItem error: %v", err)
} }

View File

@ -22,12 +22,12 @@ type CommandRunner struct {
func NewCommandRunner(cmd string, srvc *service.BasketService) *CommandRunner { func NewCommandRunner(cmd string, srvc *service.BasketService) *CommandRunner {
rnr := &CommandRunner{} rnr := &CommandRunner{}
rnr.cmd = getCommand(cmd, srvc) rnr.cmd = initCommand(cmd, srvc)
return rnr return rnr
} }
func getCommand(cmd string, srvc *service.BasketService) Command { func initCommand(cmd string, srvc *service.BasketService) Command {
// fmt.Printf("getCommand: %v\n", cmd) // fmt.Printf("getCommand: %v\n", cmd)
var c Command var c Command

View File

@ -174,8 +174,8 @@ func (w *Worker) processMsg(srvc *service.BasketService, m amqp.Delivery) {
// w.Logger.Log("Removing product #%d from basket #%s. ReqID: #%s", productID, basketID, reqID) // w.Logger.Log("Removing product #%d from basket #%s. ReqID: #%s", productID, basketID, reqID)
// } // }
rnr := NewCommandRunner((data["command"]).(string), srvc) r := NewCommandRunner((data["command"]).(string), srvc)
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)