Spring启动应用程序使用mysql扩展

时间:2018-01-07 20:02:45

标签: mysql docker spring-boot docker-compose microservices

我使用mysql创建了spring-boot应用程序和数据库。然后我Dockerised并部署了它。下面显示我的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。根据微服务架构,我需要为每个副本提供单独的数据库。我怎样才能做到这一点?

  

如果我在内存数据库中使用它可以做

1 个答案:

答案 0 :(得分:0)

  

根据微服务架构,我需要为每个副本提供单独的数据库。我怎么能这样做?

这&#34;规则&#34;是指微服务类型,而不是相同微服务的实例。因此,您可以单独缩放elseif (!empty($post['ID']) && ($post['type']== 'm')) { echo '<audio controls>'; echo '<source src="data:audio/mp3;base64,'.base64_encode($post['image']).'"‌​>'; echo '</audio>'; } seat_reservation_service。例如,您可以有4个seat_reservation_sql个实例和3个seat_reservation_service个实例(1个主服务器和2个从服务器或一个Galera群集)。