zoukankan      html  css  js  c++  java
  • 注册服务集群踩坑

    老大说新的平台要把微服务的注册服务集群搭建起来,提高平台的稳定性。我一想之前我们的阳欧巴以及搭过一遍了,照着他写的文档来就行了,万万没想到,自己还是踩了不少坑。

    基本配置

    首先得先建两个注册服务,因为同一份代码,所以就采用了不同分支。
    在不同的环境配置信息里面配置
    端口为8766的配置,注册地址为8767的端口

    ---
    server:
      port: 8766
    spring:
      profiles: default
      cloud:
        config:
          enabled: false
      client:
        registerWithEureka: true
        fetchRegistry: false
    eureka:
      client:
        serviceUrl:
          defaultZone: ${EUREKA_DEFAULT_ZONE:http://localhost:8767/eureka/}
    

    端口为8767的配置,注册地址为8766的端口

    server:
      port: 8767
    spring:
      profiles: default
      cloud:
        config:
          enabled: false
      client:
        registerWithEureka: true
        fetchRegistry: false
    eureka:
      client:
        serviceUrl:
          defaultZone: ${EUREKA_DEFAULT_ZONE:http://localhost:8766/eureka/}
    

    是否向服务注册中心注册自己,默认为true

      client:
        registerWithEureka: true
    

    是否检索服务

    client:
        fetchRegistry: false
    

    其它配置含义执行搜索哈

    此时运行出来的第一个坑,一个注册服务可以访问,另一个不行

    8766端口的注册服务

    8767端口的注册服务,可以访问,并且发现端口为8766的注册服务已经注册到端口为8767的注册服务

    查找原因
    看到第一个截图,怃然以为是注册服务添加了安全机制,需要输入用户名和密码才可以访问,但从配置中我没有安全机制的配置信息(可以看我上一篇的文章,来了解注册服务的安全机制配置)。全局检索配置信息,只发现只有一个正式环境的配置我添加了安全机制的,但又细想spring boot里面的配置信息不回窜了吧,而后检查后发现不存在。怎么办呢?又问了问阳欧巴,阳欧巴也说可能窜环境了,自己又开始检查。果不其然,由于之前项目给正式环境的注册服务加了安全机制,导致我双向注册时,其中一个需要验证,并且用户名和密码是不知道的,也就无法查看注册信息。

    验证猜想

    我将之前引入的安全机制的maven包去掉,重新启动服务,发现可以了。

            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-security</artifactId>
            </dependency>
    

    另一种解决方法

    在当前环境中同样的添加安全机制的配置

    spring:
      profiles: default
    security:
      basic:
        enabled: true
      user:
        name: 888888 # 用户名
        password: 888888   # 用户密码
      cloud:
        config:
          enabled: false
    eureka:
      client:
        serviceUrl:
          defaultZone: ${EUREKA_DEFAULT_ZONE:http://888888: 888888@localhost:8767/eureka/}
    
    spring:
      profiles: default
    security:
      basic:
        enabled: true
      user:
        name: 888888  # 用户名
        password: 888888   # 用户密码
      cloud:
        config:
          enabled: false
    eureka:
      client:
        serviceUrl:
          defaultZone: ${EUREKA_DEFAULT_ZONE:http://888888: 888888@localhost:8766/eureka/}
    

    这样也能够实现注册服务双实例,从而达到集群的概念

    结束,明天将继续完善相关微服务的集群工作,希望老大看到这篇文章,不要闲我干活慢,因为今天后端就我和阳欧巴,今天忙的要不要不要的,基本没时间弄了,明天继续哈。

  • 相关阅读:
    odoo权限
    odoo开发bug记录
    odoo视图
    odoo13线上发布
    odoo开发环境搭建
    request
    urllib
    b站排行榜-爬虫
    DockerFile
    Docker基本操作
  • 原文地址:https://www.cnblogs.com/levcon/p/9201050.html
Copyright © 2011-2022 走看看