Lab 9
Lab 9
Lab-9
Algorithm:
Output:
1. Running service A
2. Running service B
Code:
Service A
main.go
package main
import (
"encoding/json"
"math/rand"
"net/http"
"time"
"log"
)
w.Header().Set("Content-Type", "application/json")
json.NewEncoder(w).Encode(response)
}
func main() {
http.HandleFunc("/number", generateRandomNumber)
port := ":3000"
log.Printf("Service A running on port %s", port)
log.Fatal(http.ListenAndServe(port, nil))
}
Go.mod
module servicea
go 1.20
Dockerfile
FROM golang:1.20
WORKDIR /app
COPY go.mod ./
COPY . .
EXPOSE 3000
CMD ["./servicea"]
Sevice B
Main.go
package main
import (
"encoding/json"
"log"
"net/http"
)
Go.mod
module serviceb
go 1.20
Dockerfile
FROM golang:1.20
WORKDIR /app
COPY go.mod ./
RUN go mod tidy
COPY . .
EXPOSE 4000
CMD ["./serviceb"]
Algorithm:
Output:
3. Running service A
4. Running service B
Code:
Server A
Server.js
app.listen(PORT, () => {
console.log(`Service A running on port ${PORT}`);
});
Package.json
{
"name": "service-a",
"version": "1.0.0",
"main": "server.js",
"dependencies": {
"express": "^4.18.2"
}
}
Dockerfile
FROM node:18
# Working directory
WORKDIR /app
COPY package.json ./
RUN npm install
COPY . .
# Expose port
EXPOSE 3000
Server B
Server.js
app.listen(PORT, () => {
console.log(`Service B running on port ${PORT}`);
});
Package.json
{
"name": "service-b",
"version": "1.0.0",
"main": "server.js",
"dependencies": {
"express": "^4.18.2",
"axios": "^1.4.0"
}
}
Dockerfile
FROM node:18
# Working directory
WORKDIR /app
COPY package.json ./
RUN npm install
COPY . .
# Expose port
EXPOSE 4000