diff --git a/docker-compose-prod/docker-compose.gateway.yml b/docker-compose-prod/docker-compose.gateway.yml
index b6f72fcd..25703fad 100644
--- a/docker-compose-prod/docker-compose.gateway.yml
+++ b/docker-compose-prod/docker-compose.gateway.yml
@@ -8,18 +8,18 @@ services:
image: gateway:1.0.0
environment:
INTERNAL_SECRET: super-secret-key-123
- MS_MEETING_URI: http://ms-meeting:8080
- MS_VOTING_URI: http://ms-voting:8080
+ MS_MEETING_URI: lb://ms-meeting
+ MS_VOTING_URI: lb://ms-voting
MS_HOUSING_URI: http://ms-housing:8080
- MS_INVITATION_URI: http://ms-invitation:8080
- MS_REPORT_URI: http://ms-report:8080
- MS_NOTIFICATION_URI: http://ms-notification:8080
+ MS_INVITATION_URI: lb://ms-invitation
+ MS_REPORT_URI: lb://ms-report
+ MS_NOTIFICATION_URI: lb://ms-notification
JWT_SECRET: ThisIssfnsdkjfksjfksdjfksdjfsdbjfadfjsjdfhgsjashkfjhsjfhjsdhvfdjvksdfhsjkd
CONSUL_HOST: consul
CONSUL_PORT: 8500
- SPRING_PROFILES_ACTIVE: dev
+ SPRING_PROFILES_ACTIVE: prod
ports:
- "9000:8080"
depends_on:
diff --git a/docker-compose-prod/docker-compose.housing.yml b/docker-compose-prod/docker-compose.housing.yml
index ecdcbca7..7b11e810 100644
--- a/docker-compose-prod/docker-compose.housing.yml
+++ b/docker-compose-prod/docker-compose.housing.yml
@@ -1,6 +1,6 @@
services:
ms-housing:
- container_name: ms-housing-prod
+ #container_name: ms-housing-prod
restart: always
build:
dockerfile: Dockerfile
@@ -28,6 +28,7 @@ services:
depends_on:
- db-housing
- rabbitmq
+ - consul
expose:
- "8080"
@@ -39,6 +40,4 @@ services:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: housing
MYSQL_USER: test
- MYSQL_PASSWORD: test
- ports:
- - "3308:3306"
\ No newline at end of file
+ MYSQL_PASSWORD: test
\ No newline at end of file
diff --git a/docker-compose-prod/docker-compose.invitation.yml b/docker-compose-prod/docker-compose.invitation.yml
index 79469539..b463e7f3 100644
--- a/docker-compose-prod/docker-compose.invitation.yml
+++ b/docker-compose-prod/docker-compose.invitation.yml
@@ -27,8 +27,8 @@ services:
GATEWAY_URL: http://gateway:8080
SPRING_PROFILES_ACTIVE: prod
- ports:
- - "8083:8080"
+ expose:
+ - "8080"
depends_on:
- db-invitation
- rabbitmq
diff --git a/docker-compose-prod/docker-compose.meeting.yml b/docker-compose-prod/docker-compose.meeting.yml
index ce49fe36..1badc6f8 100644
--- a/docker-compose-prod/docker-compose.meeting.yml
+++ b/docker-compose-prod/docker-compose.meeting.yml
@@ -30,8 +30,8 @@ services:
- consul
- rabbitmq
- db-meeting
- ports:
- - "8087:8080"
+ expose:
+ - "8080"
db-meeting:
container_name: db-meeting-prod
image: mysql:8.0
@@ -40,6 +40,4 @@ services:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: meeting
MYSQL_USER: test
- MYSQL_PASSWORD: test
- ports:
- - "3311:3306"
+ MYSQL_PASSWORD: test
\ No newline at end of file
diff --git a/docker-compose-prod/docker-compose.notification.yml b/docker-compose-prod/docker-compose.notification.yml
index cd55b469..05170f14 100644
--- a/docker-compose-prod/docker-compose.notification.yml
+++ b/docker-compose-prod/docker-compose.notification.yml
@@ -25,8 +25,8 @@ services:
CONSUL_PORT: 8500
SPRING_PROFILES_ACTIVE: prod
- ports:
- - "8095:8080"
+ expose:
+ - "8080"
depends_on:
- db-notification
- rabbitmq
@@ -40,5 +40,3 @@ services:
MYSQL_DATABASE: notification
MYSQL_USER: test
MYSQL_PASSWORD: test
- ports:
- - "3307:3306"
diff --git a/docker-compose-prod/docker-compose.report.yml b/docker-compose-prod/docker-compose.report.yml
index 5b58fdb8..338d42f2 100644
--- a/docker-compose-prod/docker-compose.report.yml
+++ b/docker-compose-prod/docker-compose.report.yml
@@ -30,8 +30,8 @@ services:
depends_on:
- rabbitmq
- db-report
- ports:
- - "8084:8080"
+ expose:
+ - "8080"
db-report:
container_name: db-report-prod
image: mysql:8.0
@@ -41,5 +41,3 @@ services:
MYSQL_DATABASE: report
MYSQL_USER: test
MYSQL_PASSWORD: test
- ports:
- - "3310:3306"
diff --git a/docker-compose-prod/docker-compose.voting.yml b/docker-compose-prod/docker-compose.voting.yml
index 3680fe6b..20af1f74 100644
--- a/docker-compose-prod/docker-compose.voting.yml
+++ b/docker-compose-prod/docker-compose.voting.yml
@@ -1,6 +1,6 @@
services:
ms-voting:
- container_name: ms-voting-prod
+ #container_name: ms-voting-prod
restart: always
build:
dockerfile: Dockerfile
@@ -33,8 +33,10 @@ services:
- rabbitmq
- consul
- db-voting
- ports:
- - "8080:8080"
+ deploy:
+ replicas: 2
+ expose:
+ - "8080"
db-voting:
container_name: db-voting-prod
image: mysql:8.0
@@ -44,5 +46,3 @@ services:
MYSQL_DATABASE: voting
MYSQL_USER: test
MYSQL_PASSWORD: test
- ports:
- - "3306:3306"
diff --git a/gateway/pom.xml b/gateway/pom.xml
index 7b5c5f66..d84b47d6 100644
--- a/gateway/pom.xml
+++ b/gateway/pom.xml
@@ -80,6 +80,10 @@
org.springframework.boot
spring-boot-starter-actuator
+
+ org.springframework.cloud
+ spring-cloud-starter-loadbalancer
+
org.springframework.cloud
spring-cloud-starter-gateway-server-webflux
diff --git a/gateway/src/main/java/com/micro/gateway/clientHousing/WebClientConfig.java b/gateway/src/main/java/com/micro/gateway/clientHousing/WebClientConfig.java
new file mode 100644
index 00000000..1c995270
--- /dev/null
+++ b/gateway/src/main/java/com/micro/gateway/clientHousing/WebClientConfig.java
@@ -0,0 +1,15 @@
+package com.micro.gateway.clientHousing;
+
+import org.springframework.cloud.client.loadbalancer.LoadBalanced;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.reactive.function.client.WebClient;
+
+@Configuration
+public class WebClientConfig {
+ @Bean
+ @LoadBalanced
+ public WebClient.Builder loadBalancedWebClientBuilder() {
+ return WebClient.builder();
+ }
+}
diff --git a/gateway/src/main/resources/application-prod.yml b/gateway/src/main/resources/application-prod.yml
index 8c962a74..1730ef29 100644
--- a/gateway/src/main/resources/application-prod.yml
+++ b/gateway/src/main/resources/application-prod.yml
@@ -8,6 +8,16 @@ spring:
consul:
host: ${CONSUL_HOST}
port: ${CONSUL_PORT}
+ discovery:
+ enabled: true
+ register: true
+ service-name: ${spring.application.name}
+ health-check-interval: 10s
+ instance-id: ${spring.application.name}:${random.value}
+ prefer-agent-address: false
+ prefer-ip-address: false
+ query-passing: true
+
gateway:
server:
@@ -53,6 +63,11 @@ spring:
- "PUT"
- "OPTIONS"
allowCredentials: true
+ discovery:
+ locator:
+ lower-case-service-id: true
+ enabled: true
+
management:
endpoint:
health:
diff --git a/housing_association/src/main/resources/application-prod.yml b/housing_association/src/main/resources/application-prod.yml
index 39bf8c7c..b1c62b69 100644
--- a/housing_association/src/main/resources/application-prod.yml
+++ b/housing_association/src/main/resources/application-prod.yml
@@ -26,6 +26,15 @@ spring:
consul:
host: ${CONSUL_HOST}
port: ${CONSUL_PORT}
+ discovery:
+ enabled: true
+ register: true
+ service-name: ${spring.application.name}
+ instance-id: ${spring.application.name}-${random.value}
+ health-check-path: /actuator/health
+ health-check-interval: 10s
+ hostname: ${HOSTNAME:localhost}
+ prefer-ip-address: true
amqp:
exchanges:
diff --git a/voting/src/main/resources/application-prod.yml b/voting/src/main/resources/application-prod.yml
index 0f376f12..fad2eaf3 100644
--- a/voting/src/main/resources/application-prod.yml
+++ b/voting/src/main/resources/application-prod.yml
@@ -25,6 +25,15 @@ spring:
consul:
host: ${CONSUL_HOST}
port: ${CONSUL_PORT}
+ discovery:
+ enabled: true
+ register: true
+ service-name: ${spring.application.name}
+ instance-id: ${spring.application.name}-${random.value}
+ health-check-path: /actuator/health
+ health-check-interval: 10s
+ hostname: ${HOSTNAME:localhost}
+ prefer-ip-address: true
amqp:
queues:
@@ -54,3 +63,4 @@ management:
endpoint:
health:
show-components: always
+ show-details: always