Можно ли реализовать этот пример программного обеспечения с помощью микросервисов? - PullRequest
0 голосов
/ 29 мая 2020

Это довольно упрощенный пример моего кода в Spring Boot и MySQL в этом примере. (Обычно эти классы создаются на отдельной фабрике)

@Entity
@Table(name = "countries")
public class Country {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    Long id;
    ArrayList<Division> divisions;
    public Country() {
        divisions.add(new Division(divisions.size() + 1)); 
    }
}

@Entity
@Table(name = "divisions")
public class Division {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    Long id;
    int division;
    final int MAX_NUMBER_OF_LEAGUES_IN_DIV = (int) Math.pow(2, division - 1);
    ArrayList<League> leagues;
    public Division(int division) {
        this.division = division;
        leagues.add(new League(leagues.size() + 1));
    }
}

@Entity
@Table(name = "leagues")
public class League {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    Long id;
    int leagueNumber;
    ArrayList<Team> teams;
    public League(int leagueNumber) {
        this.id = id;
        this.leagueNumber = leagueNumber;
        for(int i = 0; i < 10; i++) {
            teams.add(new Team(teams.size() + 1));
        }
    }
}

@Entity
@Table(name = "teams")
public class Team {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    Long id;
    ArrayList<Player> players;
    public Team() {
        for(int i = 0; i < 5; i++) {
            players.add(...);
        }
    }
}

В последнее время я много читал о микросервисах, но не знаю, как я могу их использовать. Можно ли использовать для этих элементов микросервисы? Нужно ли делать микросервисы из каждого класса? Но как я могу их контролировать?

  1. Например, каждая команда будет иметь 1 менеджера, который подключается к команде, у которой еще нет менеджера, когда новый менеджер регистрируется.
  2. Когда нет команд без менеджера, новая лига должна быть создана с другими X командами
  3. А когда в дивизионе максимальное количество лиг, новый дивизион должен быть создан с новой лигой и такими командами, как :
    • Дивизион 1: 1 Лига
    • Дивизион 2: 2 лиги
    • Дивизион 3: 4 лиги
    • Дивизион 4: 8 лиг и т. Д.

Итак, в «нормальном» приложении я вижу, как это может работать, но возможно ли что-то подобное реализовать с помощью микросервисов?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...