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

基本配置

首先得先建两个注册服务,因为同一份代码,所以就采用了不同分支。
在不同的环境配置信息里面配置
端口为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端口的注册服务
1399733-20180619205110828-1301631145.png
8767端口的注册服务,可以访问,并且发现端口为8766的注册服务已经注册到端口为8767的注册服务
1399733-20180619205157868-1909699365.png
查找原因
看到第一个截图,怃然以为是注册服务添加了安全机制,需要输入用户名和密码才可以访问,但从配置中我没有安全机制的配置信息(可以看我上一篇的文章,来了解注册服务的安全机制配置)。全局检索配置信息,只发现只有一个正式环境的配置我添加了安全机制的,但又细想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/}

这样也能够实现注册服务双实例,从而达到集群的概念
1399733-20180619205227489-512589958.png
1399733-20180619205242930-658456268.png

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

转载于:https://www.cnblogs.com/levcon/p/9201050.html

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐