Construção e uso do barramento de mensagem do springcloud-bus

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 "

Acho que você gosta

Origin blog.csdn.net/www1056481167/article/details/113584610
Recomendado
Clasificación