diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000..c049141 Binary files /dev/null and b/.DS_Store differ diff --git a/pay-app-spring-microservices/.DS_Store b/pay-app-spring-microservices/.DS_Store new file mode 100644 index 0000000..e4e1568 Binary files /dev/null and b/pay-app-spring-microservices/.DS_Store differ diff --git a/pay-app-spring-microservices/app-config/src/main/resources/application.properties b/pay-app-spring-microservices/app-config/src/main/resources/application.properties index 7fd2213..11a84f2 100644 --- a/pay-app-spring-microservices/app-config/src/main/resources/application.properties +++ b/pay-app-spring-microservices/app-config/src/main/resources/application.properties @@ -3,7 +3,7 @@ spring.application.name=app-config server.port=8888 # Config -spring.cloud.config.server.git.uri=https://github.com/icesi-ops/training_microservices.git +spring.cloud.config.server.git.uri=https://github.com/gonzalodevarona/training_microservices spring.cloud.config.server.default-label=master spring.cloud.config.server.git.search-paths=pay-app-spring-microservices/config spring.cloud.config.server.git.skip-ssl-validation=true diff --git a/pay-app-spring-microservices/app-invoice/build.gradle b/pay-app-spring-microservices/app-invoice/build.gradle index 76d0556..2a19749 100644 --- a/pay-app-spring-microservices/app-invoice/build.gradle +++ b/pay-app-spring-microservices/app-invoice/build.gradle @@ -28,7 +28,8 @@ dependencies { implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.springframework.kafka:spring-kafka' implementation 'org.springframework.cloud:spring-cloud-starter-config' - + implementation 'org.springframework.cloud:spring-cloud-starter-consul-discovery' + implementation 'org.springframework.boot:spring-boot-starter-actuator' compileOnly 'org.projectlombok:lombok' runtimeOnly 'org.postgresql:postgresql' annotationProcessor 'org.projectlombok:lombok' diff --git a/pay-app-spring-microservices/app-pay/build.gradle b/pay-app-spring-microservices/app-pay/build.gradle index fdaf2e0..8a5142d 100644 --- a/pay-app-spring-microservices/app-pay/build.gradle +++ b/pay-app-spring-microservices/app-pay/build.gradle @@ -28,6 +28,8 @@ dependencies { implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.springframework.kafka:spring-kafka' implementation 'org.springframework.cloud:spring-cloud-starter-config' + implementation 'org.springframework.cloud:spring-cloud-starter-consul-discovery' + implementation 'org.springframework.boot:spring-boot-starter-actuator' compileOnly 'org.projectlombok:lombok' runtimeOnly 'mysql:mysql-connector-java' annotationProcessor 'org.projectlombok:lombok' diff --git a/pay-app-spring-microservices/app-transaction/build.gradle b/pay-app-spring-microservices/app-transaction/build.gradle index 1ca3403..4172b8d 100644 --- a/pay-app-spring-microservices/app-transaction/build.gradle +++ b/pay-app-spring-microservices/app-transaction/build.gradle @@ -27,6 +27,8 @@ dependencies { implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.springframework.kafka:spring-kafka' implementation 'org.springframework.cloud:spring-cloud-starter-config' + implementation 'org.springframework.cloud:spring-cloud-starter-consul-discovery' + implementation 'org.springframework.boot:spring-boot-starter-actuator' compileOnly 'org.projectlombok:lombok' annotationProcessor 'org.projectlombok:lombok' testImplementation 'org.springframework.boot:spring-boot-starter-test' diff --git a/pay-app-spring-microservices/appgw/gateway.config.yml b/pay-app-spring-microservices/appgw/gateway.config.yml index 1a7f68b..dc3e607 100644 --- a/pay-app-spring-microservices/appgw/gateway.config.yml +++ b/pay-app-spring-microservices/appgw/gateway.config.yml @@ -7,9 +7,14 @@ apiEndpoints: appconfig: host: localhost paths: ['/config','/config/*'] + appinvoice: + host: localhost + paths: ['/invoice','/invoice/*'] serviceEndpoints: appconfig: url: 'http://loadbalancer/config/' + appinvoice: + url: 'http://loadbalancer/invoice/' policies: - basic-auth - cors @@ -23,6 +28,7 @@ pipelines: default: apiEndpoints: - appconfig + - appinvoice policies: # Uncomment `key-auth:` when instructed to in the Getting Started guide. - key-auth: @@ -33,3 +39,9 @@ pipelines: prependPath: false ignorePath: false stripPath: false + - action: + serviceEndpoint: appinvoice + changeOrigin: true + prependPath: false + ignorePath: false + stripPath: false diff --git a/pay-app-spring-microservices/config/app-pay-dev.properties b/pay-app-spring-microservices/config/app-pay-dev.properties index b7959d8..b5d84f7 100644 --- a/pay-app-spring-microservices/config/app-pay-dev.properties +++ b/pay-app-spring-microservices/config/app-pay-dev.properties @@ -5,11 +5,11 @@ server.port=8010 # Kafka spring.kafka.template.default-topic=transaction-events spring.kafka.producer.bootstrap-servers=servicekafka:9092 -#spring.kafka.producer.bootstrap-servers=servicekafka:9092 +spring.kafka.producer.bootstrap-servers=servicekafka:9092 spring.kafka.producer.key-serializer=org.apache.kafka.common.serialization.IntegerSerializer spring.kafka.producer.value-serializer=org.apache.kafka.common.serialization.StringSerializer spring.kafka.admin.properties.bootstrap.servers=servicekafka:9092 -#spring.kafka.admin.properties.bootstrap.servers=servicekafka:9092 +spring.kafka.admin.properties.bootstrap.servers=servicekafka:9092 # JPA logging.level.org.hibernate.SQL=debug @@ -22,4 +22,10 @@ spring.datasource.url=jdbc:mysql://mysql:3306/db_operation?serverTimezone=Americ spring.datasource.username=root spring.datasource.password=mysql spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver -spring.jpa.database-platform=org.hibernate.dialect.MySQL8Dialect \ No newline at end of file +spring.jpa.database-platform=org.hibernate.dialect.MySQL8Dialect + +# Consul +spring.cloud.consul.host=consul +spring.cloud.consul.port=8500 +spring.cloud.consul.discovery.health-check-interval=5s +spring.cloud.consul.discovery.prefer-ip-address=true diff --git a/pay-app-spring-microservices/config/app-transaction-dev.properties b/pay-app-spring-microservices/config/app-transaction-dev.properties index 17d29f4..42cc919 100644 --- a/pay-app-spring-microservices/config/app-transaction-dev.properties +++ b/pay-app-spring-microservices/config/app-transaction-dev.properties @@ -4,13 +4,20 @@ server.port=8082 # Kafka spring.kafka.consumer.bootstrap-servers=servicekafka:9092 -#spring.kafka.consumer.bootstrap-servers=servicekafka:9092 +spring.kafka.consumer.bootstrap-servers=servicekafka:9092 +spring.kafka.admin.properties.bootstrap.servers=servicekafka:9092 spring.kafka.admin.properties.bootstrap.servers=servicekafka:9092 -#spring.kafka.admin.properties.bootstrap.servers=servicekafka:9092 spring.kafka.consumer.key-deserializer=org.apache.kafka.common.serialization.IntegerDeserializer spring.kafka.consumer.value-deserializer=org.apache.kafka.common.serialization.StringDeserializer spring.kafka.consumer.group-id=transaction-events-listener-group # MongoDB spring.data.mongodb.uri=mongodb://mongodb:27017/db_transaction -#spring.data.mongodb.uri=mongodb://mongodb:27017/db_transaction \ No newline at end of file +#spring.data.mongodb.uri=mongodb://mongodb:27017/db_transaction + + +# Consul +spring.cloud.consul.host=consul +spring.cloud.consul.port=8500 +spring.cloud.consul.discovery.health-check-interval=5s +spring.cloud.consul.discovery.prefer-ip-address=true \ No newline at end of file diff --git a/pay-app-spring-microservices/haproxy/haproxy.cfg b/pay-app-spring-microservices/haproxy/haproxy.cfg index 3b54b0c..7c4e178 100644 --- a/pay-app-spring-microservices/haproxy/haproxy.cfg +++ b/pay-app-spring-microservices/haproxy/haproxy.cfg @@ -15,6 +15,12 @@ frontend http_front mode http acl url_config path_beg /config use_backend config_back if url_config + acl url_config path_beg /invoice + use_backend app_invoice if url_config + acl url_config path_beg /pay + use_backend app_pay if url_config + acl url_config path_beg /transaction + use_backend app_transaction if url_config default_backend http_back @@ -23,6 +29,21 @@ backend config_back balance roundrobin http-request set-path "%[path,regsub(^/config/,/)]" server appconfig app-config.service.consul:8888 resolvers consul resolve-prefer ipv4 check +backend app_invoice + mode http + balance roundrobin + http-request set-path "%[path,regsub(^/invoice/,/)]" + server appinvoice app-invoice.service.consul:8006 resolvers consul resolve-prefer ipv4 check +backend app_pay + mode http + balance roundrobin + http-request set-path "%[path,regsub(^/pay/,/)]" + server apppay app-pay.service.consul:8010 resolvers consul resolve-prefer ipv4 check +backend app_transaction + mode http + balance roundrobin + http-request set-path "%[path,regsub(^/transaction/,/)]" + server apptran app-transaction.service.consul:8010 resolvers consul resolve-prefer ipv4 check backend http_back mode http balance roundrobin