Рубрики
Без рубрики

Микросервисы и облачная конфигурация с использованием Spring Boot

Подключение микросервиса к серверу конфигурации spring и серверу eureka

Автор оригинала: 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 HttpEntity createCustomer(
            @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

На основе конфигураций сервер 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-адресом и локальным портом, это будет использоваться шлюзом для перенаправления трафика на микросервис.

И если вы перейдете к экземпляру 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”