Para todo o projeto, acesse gitee para visualizar https://gitee.com/xwb1056481167/spring-cloud para visualizar
O projeto usou cloud-config-center-3344,
Bus de mensagens
Em um sistema com uma arquitetura de microsserviço, um intermediário de mensagem leve é geralmente usado para construir um tópico de mensagem comum, e outras instâncias de microsserviço no sistema são conectadas e
as mensagens geradas no tópico serão monitoradas e consumidas por todas as instâncias, em cada Por exemplo, no ônibus, você pode transmitir facilmente algumas notícias que precisam ser conhecidas por outras forças ligadas ao assunto.
princípio
Todas as instâncias do ConfigClient ouvem o mesmo tópico no MQ. O padrão é springCloudBus. Quando um serviço atualiza os dados, ela coloca a mensagem no tópico, para que outros serviços que ouvem o mesmo tópico possam ser notificados e, em seguida, atualize os seus próprios Configuração.
O ônibus atualmente suporta apenas RabbitMQ e Kafka
Instale RabbitMQ
1. Instale o erlang primeiro
Link para download: http://erlang.org/download/otp_win64_21.3.exe
Ou outro endereço http://erlang.org/download/
2. Baixe RabbitMQ e instale
1. Baixe e instale a
versão de instalação: https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.7.14/rabbitmq-server-3.7.14.exe
versão de descompressão: https://github.com / rabbitmq / rabbitmq-server / releases / download / v3.7.14 / rabbitmq-server-windows-3.7.14.zip
2. Digite o diretório sbin e, em seguida, cmd para executar rabbitmq-plugins enable rabbitmq_management
rabbitmq-plugins enable rabbitmq_management
A seguinte mensagem aparece e a instalação está completa
As seguintes informações de instalação aparecem nas janelas para verificar se a instalação foi bem-sucedida
http://localhost:15672/
Senha padrão convidado: convidado
Transmita notificação de duas ideias arquitetônicas
O primeiro tipo: (Use o barramento de mensagem para acionar um cliente / barramento / atualização sem atualizar a configuração de todos os outros clientes)
O segundo tipo: (usando o barramento de mensagem para acionar um configServer / bus / refresh) ponto de interrupção e atualizar a configuração de todos os clientes
Configuração em dois modos
SpringCloud Bus atualiza dinamicamente a transmissão global
O servidor é 3344 e os dois clientes são 3355 e 3366. Depois de modificar o github, você só precisa notificar 3344, e então 3355 e 3366 obterão automaticamente o conteúdo mais recente por meio das notícias springCloudBus assinadas por rabbitMQ.
1. Configuração do controle mestre de mensagem 3344
Configuração Cloud-config-center-3344
1. Integre o rabbitMQ no centro de mensagens de controle mestre
<!-- 添加消息总线RabbitMQ的支持(包含了bus和rabbitMQ) -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bus-amqp</artifactId>
</dependency>
2. yml define a configuração do rabbitMQ
spring:
#RabbitMQ的配置
rabbitmq:
host: localhost
port: 5672
username: guest
password: guest
# rabbitmq相关配置,暴露bus刷新配置的断点
management:
endpoints: #暴露bus刷新配置的断点
web:
exposure:
include: 'bus-refresh'
Dois, configure o cliente 3355, 3366
Configure cloud-config-client-3355, 3366
1. Pom adiciona suporte ao rabbitMQ
<!-- 添加rabbitmq的支持 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bus-amqp</artifactId>
</dependency>
spring-cloud-starter-bus-amqp integra bus e RabbitMQ
2. configuração yml
spring:
#rabbitmq的配置
rabbitmq:
host: localhost
port: 5672
username: guest
password: guest
#暴露监控断点
management:
endpoints:
web:
exposure:
include: "*" #*表示健康等其他参数,统一用*代替了
A configuração do 3366 é a mesma do 3355. Omitido aqui
teste
A seqüência de inicialização 7001, 3344, 3355, 3366 executa a atualização de atualização do barramento do controle mestre.
Se não houver comando curl, você precisa fazer o download de https://curl.haxx.se/download/curl-7.73.0. fecho eclair
url -X POST "http://localhost:3344/actuator/bus-refresh"
Efeito: Modificado o arquivo github, 3344 acessa o último no tempo, depois de executar manualmente o comando de controle mestre 3344, 3355 e 3366 são os dois arquivos de configuração mais recentes.
Notificação de ponto fixo de atualização dinâmica do SpringCloud Bus
Nota: Dois clientes de configuração (3355, 3366) ao mesmo tempo, deseja notificar apenas 3355, mas não deseja notificar 3366
Execute o seguinte comando
curl -X POST "http://localhost:3344/actuator/bus-refresh/{destination}"
Nota: A solicitação / bus / refresh não é enviada a uma instância de servidor específica, mas é enviada ao servidor de configuração e especifica o serviço ou instância cuja configuração precisa ser atualizada por meio da classe de parâmetro de destino.
O destino é: nome do serviço: número da porta, ou seja: spring.application.name:server.port
por exemplo: curl -X POST " http: // localhost: 3344 / atuator / bus-refresh / config-client: 3355 "