Автор оригинала: Victor de la Cruz.
Теперь, когда у нас есть конфигурационный сервер , реестр эврика-сервера и репозиторий github конфигурация.репозиторий для конфигураций мы можем начать создавать первый микросервис, этот микросервис будет обрабатывать данные клиентов. Как и в предыдущем проекте, нам нужно создать новый проект из start.spring.io со следующими зависимостями:
- База данных H2
- Весенняя Паутина
- Клиент конфигурации
- Весенние данные JPA
- Клиент Эврика
С помощью предыдущих зависимостей мы можем создать необходимые конечные точки REST:
POST /customers GET /customers
У этого микросервиса будет конечная точка для создания нового клиента и вторая конечная точка для извлечения всех созданных клиентов
Репо Git
если вы хотите проверить результаты, вот репозиторий клиент-ms
Доступ к серверу конфигурации
Первое, что нам нужно сделать, это подключить микросервис к серверу конфигурации и получить конфигурации, когда микросервисы создают контекст приложения, для этого давайте добавим следующие строки в загрузочный файл.yml
:
spring: application: name: customer cloud: config: uri: http://localhost:8081
Необходимо задать следующие свойства: весна.применение.имя
и spring.cloud.config.uri
, первый-это в данном случае имя файла из главной ветви в репозитории git, а второй-расположение сервера конфигурации spring, помните, что мы используем 8081
портвейн. Это вся конфигурация, которая нам сейчас нужна, вы можете указать, например, на конкретную ветвь в репозитории git, чтобы узнать больше о конфигурации, которую вы можете просмотреть в документах spring.
Включить клиент eureka
Давайте добавим новые записи в файл customer.yml
находится в главной ветви репозитория git
eureka: client: eureka-server-u-r-l-context: http://localhost:8082/eureka service-url: defaultZone: http://localhost:8082/eureka
Теперь микросервис подключится к реестру сервера eureka, я добавил следующую запись:
application: welcome: message: This is an example
мы собираемся отобразить это сообщение в журнале при создании нового клиента.
Создание клиентов конечная точка
1.- Создайте объект java для сохранения нового клиента со свойствами: идентификатор
, имя
//Customer.java @Entity @Table(name="customer") public class Customer { @Id private String uuid; private String name; // getter and setter methods }
2.- Создайте новый репозиторий
public interface CustomerRepository extends JpaRepository{ }
3.- Создайте контроллер с помощью @PostMapping
и @Получить отображение
В следующем фрагменте кода мы можем увидеть свойство приветственное сообщение
это будет введено из репозитория git и показано в журнале приложений
@RestController @RequestMapping("/customers") public class CustomerController { private CustomerRepository customerRepository; @Value("${application.welcome.message}") private String helloMessage; private final Logger log = LoggerFactory.getLogger(CustomerController.class); public CustomerController(CustomerRepository customerRepository) { this.customerRepository = customerRepository; } @PostMapping public HttpEntitycreateCustomer( @RequestBody Customer customer ){ log.info(helloMessage); this.customerRepository.saveAndFlush(customer); return new ResponseEntity<>(customer, HttpStatus.OK); } @GetMapping public HttpEntity > findAll() { log.info(helloMessage); return new ResponseEntity<>(this.customerRepository.findAll(), HttpStatus.OK); } }
Тестовое приложение
Чтобы протестировать микросервис, вы должны запустить все приложения spring: server config, eureka server и клиентский микросервис. Вот шаги по созданию контекста приложения: 1.- Подключитесь к конфигурации сервера spring и извлеките конфигурации с помощью: имя приложения
и uri конфигурации spring cloud
2.- На основе конфигураций сервер spring вернет конфигурации из https://github.com/VCGDEV/application-configs.git/customer.yml
2019-09-27 20:24:32 INFO o.s.c.c.c.ConfigServicePropertySourceLocator:151 - Located environment: name=customer, profiles=[default], label=null, version=d81dfaf847f8341cf09d45397f1998adede6eca5, state=null 2019-09-27 20:24:32 INFO o.s.c.b.c.PropertySourceBootstrapConfiguration:101 - Located property source: CompositePropertySource {name='configService', propertySources=[MapPropertySource {name='configClient'}, MapPropertySource {name='https://github.com/VCGDEV/application-configs.git/customer.yml'}]}
3.- Конфигурации для порта
, эврика
, приложение.приветствие.сообщение
и база данных
будет использоваться МОК для создания и внедрения необходимых объектов. 4.- Приложение будет зарегистрировано на сервере eureka
2019-09-27 20:24:41 INFO o.s.c.n.e.s.EurekaServiceRegistry:41 - Registering application CUSTOMER with eureka with status UP 2019-09-27 20:24:41 INFO c.n.d.DiscoveryClient:844 - DiscoveryClient_CUSTOMER/192.168.8.105:customer:8083: registering service... 2019-09-27 20:24:41 INFO c.n.d.DiscoveryClient:853 - DiscoveryClient_CUSTOMER/192.168.8.105:customer:8083 - registration status: 204
И если вы перейдете к экземпляру eureka: как вы можете видеть, наше приложение указано в экземпляре, повторно зарегистрированном с ip-адресом и локальным портом, это будет использоваться шлюзом для перенаправления трафика на микросервис.
Теперь я перейду к конечным точкам
Конечная точка ПОСЛЕ
ПОЛУЧИТЬ конечную точку
и журнал каждый раз, когда поражаются конечные точки ! [лог.png](https://ucarecdn.com/07c17a65-d081-46cd-a6d1 -4289с0в96в69
Наконец, мы используем архитектуру микросервиса: сервер конфигурации
, сервер эврики
, централизованная конфигурация
и служба поддержки клиентов
, шлюз
будет создан в будущем.
Спасибо за чтение и, пожалуйста, напишите отзыв
Оригинал: “https://www.codementor.io/@vcg_cruz/microservices-and-cloud-configuration-using-spring-boot-z7sbpxygp”