Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added consul.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
Expand Up @@ -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/duvanovik/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
Expand All @@ -12,4 +12,4 @@ spring.cloud.config.server.git.skip-ssl-validation=true
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
spring.cloud.consul.discovery.prefer-ip-address=true
2 changes: 2 additions & 0 deletions pay-app-spring-microservices/app-invoice/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -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 'org.postgresql:postgresql'
Expand Down
Original file line number Diff line number Diff line change
@@ -1 +1,8 @@
# 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
#management.endpoints.web.exposure.include=health


2 changes: 2 additions & 0 deletions pay-app-spring-microservices/app-pay/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -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'
Expand Down
2 changes: 2 additions & 0 deletions pay-app-spring-microservices/app-transaction/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -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'
Expand Down
62 changes: 48 additions & 14 deletions pay-app-spring-microservices/appgw/gateway.config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,19 @@ apiEndpoints:
appconfig:
host: localhost
paths: ['/config','/config/*']
appinvoice:
host: localhost
paths: ['/invoice','/invoice/*']
apptransaction:
host: localhost
paths: ['/transaction','/transaction/*']
serviceEndpoints:
appconfig:
url: 'http://loadbalancer/config/'
url: 'http://loadbalancer/config/'
appinvoice:
url: 'http://loadbalancer/invoice/all/'
apptransaction:
url: 'http://loadbalancer/transaction/all/'
policies:
- basic-auth
- cors
Expand All @@ -20,16 +30,40 @@ policies:
- proxy
- rate-limit
pipelines:
default:
apiEndpoints:
- appconfig
policies:
# Uncomment `key-auth:` when instructed to in the Getting Started guide.
- key-auth:
- proxy:
- action:
serviceEndpoint: appconfig
changeOrigin: true
prependPath: false
ignorePath: false
stripPath: false
pipeline1:
apiEndpoints:
- appconfig
policies:
# Uncomment `key-auth:` when instructed to in the Getting Started guide.
# - key-auth:
- proxy:
- action:
serviceEndpoint: appconfig
changeOrigin: true
prependPath: false
ignorePath: false
stripPath: false
pipeline2:
apiEndpoints:
- appinvoice
policies:
#- key-auth:
- proxy:
- action:
serviceEndpoint: appinvoice
changeOrigin: true
prependPath: false
ignorePath: false
stripPath: false
pipeline3:
apiEndpoints:
- apptransaction
policies:
#- key-auth:
- proxy:
- action:
serviceEndpoint: apptransaction
changeOrigin: true
prependPath: false
ignorePath: false
stripPath: false
8 changes: 7 additions & 1 deletion pay-app-spring-microservices/config/app-pay-dev.properties
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,12 @@
spring.application.name=app-pay
server.port=8010

# 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

# Kafka
spring.kafka.template.default-topic=transaction-events
spring.kafka.producer.bootstrap-servers=servicekafka:9092
Expand All @@ -22,4 +28,4 @@ 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
spring.jpa.database-platform=org.hibernate.dialect.MySQL8Dialect
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,12 @@
spring.application.name=app-transaction
server.port=8082

# 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

# Kafka
spring.kafka.consumer.bootstrap-servers=servicekafka:9092
#spring.kafka.consumer.bootstrap-servers=servicekafka:9092
Expand All @@ -13,4 +19,5 @@ 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
#spring.data.mongodb.uri=mongodb://mongodb:27017/db_transaction

21 changes: 21 additions & 0 deletions pay-app-spring-microservices/haproxy/haproxy.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,13 @@ frontend http_front
bind *:80
mode http
acl url_config path_beg /config
acl url_invoice path_beg /invoice
acl url_transaction path_beg /transaction
acl url_pay path_beg /pay
use_backend config_back if url_config
use_backend invoice_back if url_invoice
use_backend transaction_back if url_transaction
use_backend pay_back if url_pay

default_backend http_back

Expand All @@ -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 invoice_back
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 transaction_back
mode http
balance roundrobin
http-request set-path "%[path,regsub(^/transaction/,/)]"
server apptransaction app-transaction.service.consul:8082 resolvers consul resolve-prefer ipv4 check
backend pay_back
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 http_back
mode http
balance roundrobin
Expand Down