注册服务集群踩坑

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

基本配置

首先得先建两个注册服务,因为同一份代码,所以就采用了不同分支。
在不同的环境配置信息里面配置
端口为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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您好!关于OpenSIPS注册服务集群的设置,以下是一些基本步骤: 1. 首先,确保您已经在每个服务器上安装了OpenSIPS。您可以根据需要选择适当的操作系统并进行安装。 2. 在每个服务器上编辑OpenSIPS配置文件(通常是/etc/opensips/opensips.cfg),确保在集群中的所有服务器上使用相同的配置。这包括设置监听地址、端口、数据库访问等。 3. 在配置文件中,您需要配置数据库后端以存储注册用户的信息。您可以选择使用MySQL、PostgreSQL等常见的数据库服务器。 4. 在每个服务器上设置OpenSIPS的数据库连接参数,以便它们可以连接到共享数据库并共享注册信息。确保所有服务器都使用相同的数据库连接参数。 5. 在配置文件中启用集群模块,例如使用“loadmodule”指令加载“clusterer”模块。这样,OpenSIPS服务器将能够在集群中进行通信和同步。 6. 配置集群中的服务器之间的通信方式。您可以使用UDP、TCP、TLS等协议进行通信。确保在所有服务器上使用相同的通信协议和端口。 7. 启动OpenSIPS服务器,并在集群中的每个节点上重复此步骤。 通过以上步骤,您应该能够设置一个基本的OpenSIPS注册服务集群。在实际部署过程中,可能还有其他配置和调整需要考虑,具体取决于您的需求和环境。建议您查阅OpenSIPS的官方文档以获取更详细的指导和参考。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值