adasfddasfa 2023-11-06 12:35 采纳率: 0%
浏览 253

微服务天机学堂运行的问题

黑马天机学堂,为什么我本地启动的服务已经注册到虚拟机的nacos了,前端页面调用服务不行呢,直接用虚拟机运行的服务就可以

img

img

img

  • 写回答

3条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-11-06 15:38
    关注

    【相关推荐】



    • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/7456173
    • 你也可以参考下这篇文章:微服务在nacos的注册成功后,但是服务列表中不展示的问题。
    • 您还可以看一下 张长志老师的微服务高级进阶篇Nacos源码分析课程中的 00nacos源码分析概要小节, 巩固相关知识点
    • 除此之外, 这篇博客: nacos配置中文动态监听刷新,微服务常用应用中的 配置文件需要动态更新,在日常应用中非常广泛,如(国际化配置,第三方秘钥修改等等 ),提供一下例子仅供学习交流 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:

       

      package *;
      
      import ch.qos.logback.classic.Level;
      import ch.qos.logback.classic.LoggerContext;
      import com.alibaba.cloud.nacos.NacosConfigManager;
      import com.alibaba.cloud.nacos.NacosConfigProperties;
      import com.alibaba.fastjson.JSONObject;
      import com.alibaba.nacos.api.config.listener.Listener;
      import com.alibaba.nacos.api.exception.NacosException;
      import lombok.extern.slf4j.Slf4j;
      import org.apache.commons.lang3.StringUtils;
      import org.apache.commons.lang3.concurrent.BasicThreadFactory;
      import org.slf4j.LoggerFactory;
      import org.springframework.boot.ApplicationArguments;
      import org.springframework.boot.ApplicationRunner;
      import org.springframework.stereotype.Component;
      import org.yaml.snakeyaml.Yaml;
      import org.yaml.snakeyaml.constructor.Constructor;
      
      import javax.annotation.Resource;
      import java.io.ByteArrayInputStream;
      import java.io.InputStream;
      import java.util.Objects;
      import java.util.concurrent.Executor;
      import java.util.concurrent.ScheduledThreadPoolExecutor;
      
      /**
       * nacos文件更新处理
       * @author Simon
       */
      @Component
      @Slf4j
      public class NacosListener implements ApplicationRunner {
      
          @Resource
          private NacosConfigProperties nacosConfigProperties;
      
          @Override
          public void run(ApplicationArguments args) throws Exception {
              var configService = new NacosConfigManager(nacosConfigProperties).getConfigService();
              try {
                  //配置文件名称,这里是例子找出第一个配置文件此处文件自定义配置
                  var config = nacosConfigProperties.getSharedConfigs().get(0);
                  configService.addListener(config.getDataId(), config.getGroup(), new Listener() {
                      @Override
                      public Executor getExecutor() {
                          return new ScheduledThreadPoolExecutor(1,
                                  new BasicThreadFactory.Builder().namingPattern("nacos-listen-pool-%d").daemon(Boolean.TRUE).build());
                      }
                      @Override
                      public void receiveConfigInfo(String content) {
                          if (StringUtils.isNotEmpty(content)) {
                              loadData(content);
                          }
                      }
                  });
                  log.info("nacos配置文件动态更新已添加监听");
              } catch (NacosException e) {
                  log.error("nacos配置文件错误");
              }
          }
      
      
          public void loadData(String content){
              log.info("nacos主配置文件发生变化{}", content);
              //默认解析yaml格式的文件,其他类型自行配置解析
              Yaml yaml = new Yaml(new Constructor(JSONObject.class));
              InputStream inputStream = new ByteArrayInputStream(content.getBytes());
              JSONObject load = yaml.load(inputStream);
              //例子,如更新日志级别
              var logLevel = load.getJSONObject("log");
              if (Objects.nonNull(logLevel)) {
                  var sqlLevel = logLevel.get("sql_level");
                  if(Objects.nonNull(sqlLevel)){
                      log.info("sql日志级别动态修改:{}",sqlLevel);
                      LoggerContext loggerContext = (LoggerContext) LoggerFactory.getILoggerFactory();
                      loggerContext.getLogger("此处为代码对应的包名").setLevel(Level.toLevel(sqlLevel.toString(),Level.DEBUG));
                  }
              }
          }
      }
      

    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 创建了问题 11月6日