我使用 mysql 创建了 spring-boot 应用程序和数据库。然后我对它进行了 Docker 化和部署。下面显示我的 docker-compse.yml
version: '2'
services:
seat_reservation_service:
image: springio/seat_reservation_service
ports:
- "8090:8090"
environment:
- SPRING_PROFILES_ACTIVE=docker
seat_reservation_sql:
image: mysql:5.7
ports:
- 33306:3306
environment:
- MYSQL_ROOT_PASSWORD=root
- MYSQL_DATABASE=seat-reservation-query
这是我的 spring application.yml 文件
server:
port: 8090
spring:
profiles: docker
main:
banner-mode: 'off'
datasource:
url: jdbc:mysql://seat_reservation_sql:3306/seat-reservation-query?useSSL=false
username: root
password: root
validation-query: SELECT 1
test-on-borrow: true
jpa:
show_sql: false
hibernate:
ddl-auto: update
dialect: org.hibernate.dialect.MySQL5
properties:
hibernate:
cache:
use_second_level_cache: false
use_query_cache: false
generate_statistics: false
data:
rest:
base-path: /api/
rabbitmq:
host: rabbitmq-1
username: test
password: password
logging:
level:
org.springframework: false
org.hibernate: ERROR
path: logs/prod/
axon:
amqp:
exchange: SeatReserveEvents
eventhandling:
processors:
statistics.source: statisticsQueue
我的问题是我需要更多 seat_reservation_service
服务的副本。如果我扩展引用相同数据库的 seat_reservation_service
。根据微服务架构,我需要为每个副本使用单独的数据库。我怎样才能做到这一点?
if I use in memory database it can do
最佳答案
According to micro-service architecture I need separate database for each replica. How can I do that?
此“规则”指的是微服务类型,而不是同一微服务的实例。因此,您可以分别扩展 seat_reservation_service
和 seat_reservation_sql
。例如,您可能有 4 个 seat_reservation_service
实例和 3 个 seat_reservation_sql
实例(1 个主服务器和 2 个从服务器或 Galera 集群)。
关于mysql - Spring Boot 应用程序使用 mysql 进行扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48141031/