Источник данных SpringBoot и шардинг вручную - PullRequest
0 голосов
/ 03 марта 2020

Я хочу подключить приложение SpringBoot к унаследованной системе баз данных с ручным управлением сегментированием.

С помощью идентификатора пользователя, указанного пользователем, я могу найти фрагмент, где сохранен автомобиль. (примеры: carId = 1 в шарде 1, carId = 2 в шарде 2)

Я не знаю, как это сделать правильно (автопровод ?, источник данных ?, ..).

Можете ли вы мне помочь?

Мое приложение

@SpringBootApplication
public class CarApiApplication {

    public static void main(String[] args) {
        SpringApplication.run(CarApiApplication.class, args);
    }
}

Мой контроллер

@RestController
public class CarController {

    @Autowired
    CarService carService;

    @GetMapping("/car/{carId}")
    public Optional<Car> car(
            @PathVariable(value = "carId") String carId
    ) {
        return carService.getTransaction(carId);
    }
}

Мой сервис

public class CarService {

    @Autowired
    private CarJpaRepository carJpaRepository;

    public Optional<Car> getCar(String carId) {
        Optional<Car> car = carJpaRepository.findById(carId);
        return car;
    }
}

Мой репозиторий

public interface CarJpaRepository extends JpaRepository<Transaction, Long> {

}

Моя конфигурация

spring.shard1.driver-class-name=com.mysql.cj.jdbc.Driver
spring.shard1.url=jdbc:mysql://localhost:3306/shard1?serverTimezone=UTC&useLegacyDatetimeCode=false
spring.shard1.username=root
spring.shard1.password=root

spring.shard2.driver-class-name=com.mysql.cj.jdbc.Driver
spring.shard2.url=jdbc:mysql://localhost:3306/shard2?serverTimezone=UTC&useLegacyDatetimeCode=false
spring.shard2.username=root
spring.shard2.password=root

spring.shard3.driver-class-name=com.mysql.cj.jdbc.Driver
spring.shard3.url=jdbc:mysql://localhost:3306/shard3?serverTimezone=UTC&useLegacyDatetimeCode=false
spring.shard3.username=root
spring.shard3.password=root

spring.shard4.driver-class-name=com.mysql.cj.jdbc.Driver
spring.shard4.url=jdbc:mysql://localhost:3306/shard4?serverTimezone=UTC&useLegacyDatetimeCode=false
spring.shard4.username=root
spring.shard4.password=root
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...