8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

Kafka 用于自动刷新微服务

jleyva 2月前

26 0

描述:我正在做一个有 2 个服务的本地项目。配置服务器(连接到 git 并获取属性)和产品服务。目前,如果我在配置存储中更新属性……

描述:我正在做一个有 2 个服务的本地项目。配置服务器(连接到 git 并获取属性)和产品服务。目前,如果我在配置存储中更新属性,我需要在产品微服务中进行手动刷新,这将刷新配置服务器并更新属性。

但是如果我们有多个服务,我们就无法做到这一点。因此我的朋友建议我使用dockerized kafka。最近几天尝试将其集成到我的微服务中。注意:我的ms不是dockerized。因为我会这样做。现在我的项目计划中不需要它。

这是我的代码:

配置服务器应用程序.yaml

server:
  port: 8071

spring:
  application:
    name: configserver
  profiles:
    active: git
  cloud:
    config:
      server:
        git:
          uri: "https://github.com/xxxx/swiftcart-config-store"
          searchPaths: "configs/{application},configs/common"
          cloneOnStart: true
        kafka:
          enabled: true
          topic: config-updates
          bootstrap-servers: "localhost:9092"
    bus:
      enabled: true  # Enable Spring Cloud Bus

产品服务应用程序.yaml

server:
  port: 8081

spring:
  application:
    name: product-service
  profiles:
    active: dev
  config:
    import: "optional:configserver:http://localhost:8071/"
  kafka:
    bootstrap-servers: localhost:9092
    consumer:
      group-id: product-service-group
      auto-offset-reset: earliest
    template:
      default-topic: config-updates

  cloud:
    bus:
      enabled: true  # Enable Spring Cloud Bus

management:
  endpoints:
    web:
      exposure:
        include: "*"
  endpoint:
    health:
      show-details: always
    refresh:
      enabled: true

springdoc:
  api-docs:
    path: /v3/api-docs
  swagger-ui:
    path: /swagger-ui.html

logging:
  level:
    org.springframework.kafka: DEBUG
    org.apache.kafka: DEBUG

我在其他目录中创建的 Docker compose.yaml

version: '3.8'

services:
  kafka:
    image: confluentinc/cp-kafka:7.2.0
    ports:
      - "9092:9092"
    environment:
      - KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181
      - KAFKA_LISTENERS=PLAINTEXT:PLAINTEXT://0.0.0.0:9092,PLAINTEXT_HOST://0.0.0.0:29092
      - KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://localhost:9092,PLAINTEXT_HOST://kafka:29092
      - KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR=1
      - KAFKA_GROUP_INITIAL_OFFSET_CONFIG=earliest
    networks:
      - swiftcart_network

  zookeeper:
    image: confluentinc/cp-zookeeper:7.2.0
    ports:
      - "2181:2181"
    environment:
      - ZOOKEEPER_CLIENT_PORT=2181
    networks:
      - swiftcart_network

  kafdrop:
    image: obsidiandynamics/kafdrop:latest
    ports:
      - "9000:9000"
    environment:
      - KAFKA_BROKERCONNECT=kafka:9092
    networks:
      - swiftcart_network

networks:
  swiftcart_network:
    driver: bridge

那么问题是什么?当我刷新配置服务器时,它没有刷新微服务。它甚至没有更新配置服务器。

我用来刷新配置服务器的 URL:

http://localhost:8071/actuator/bus-refreshhttp://localhost:8071/actuator/refresh

但是,如果我刷新产品服务,http://localhost:8081/actuator/refreshProperties将会更新。

如果您对此有任何想法,请告诉我。非常感谢。

帖子版权声明 1、本帖标题:Kafka 用于自动刷新微服务
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由jleyva在本站《spring-boot》版块原创发布, 转载请注明出处!
最新回复 (0)
  • 假设您的问题是配置刷新不发生。注意 - 我在这里没有使用 Kafka。

    请检查下面今天运行的 github 代码,以便在无需重启的情况下使用客户端服务上的执行器进行刷新。

    我已经在 github 属性上更改了作者姓名并运行刷新,从而从 github 更新了客户端配置文件和配置服务器配置。

    Client boot properties :- 
    server.port=8080
    spring.application.name=a-bootiful-client
    spring.config.import=optional:configserver:http://localhost:8888/
    management.endpoints.web.exposure.include=*
    spring.cloud.config.uri=http://localhost:8888
    management.security.enabled=false
    

    https://github.com/Roshanmutha/rcmuthaconfigserver/blob/master/README.md

    Boot Config server properties:-
    
    server.port=8888
    spring.cloud.config.server.git.uri=https://github.com/Roshanmutha/Configuration
    spring.cloud.config.server.git.default-label=master
    

    完整代码: https://github.com/Roshanmutha/rcmutha-configclient - 使用属性的客户端 https://github.com/Roshanmutha/rcmuthaconfigserver - 配置服务器 https://github.com/Roshanmutha/Configuration - Github 配置

    $ curl --location --request POST 'http://localhost:8080/actuator/refresh' % 总计 % 已接收 % Xferd 平均速度 时间 时间 当前 Dload 上传 总耗费 剩余速度 100 39 0 39 0 0 14 0 --:--:-- 0:00:02 --:--:-- 14[\'config.client.version\',\'auther.name\']

    附言:我会尝试使用 kafka,并在几天后发布。谢谢

返回
作者最近主题: