这个服务器错误是什么意思?

这个服务器错误是什么意思?
>     org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'videoMobileController': Invocation of init
> method failed; nested exception is
> org.springframework.data.mongodb.UncategorizedMongoDbException: could
> not initialize sharding on connection 54.xx.xx.198:27017 :: caused by
> :: mongos specified a different config database string : stored :
> 54.xx.xx.55:27019 vs given : 54.xx.xx.249:27019; nested exception is com.mongodb.MongoException: could not initialize sharding on
> connection 54.xx.xx.198:27017 :: caused by :: mongos specified a
> different config database string : stored : 54.xx.xx.55:27019 vs given
> : 54.xx.xx.249:27019
>             at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:133)

答案1

如果不查看日志等,我无法确定,但所涉及的 IP 地址和错误表明以下内容:

  • 你在 EC2 中配置了一个 mongodb 分片集群
  • 集群是使用 IP 地址(而不是主机名)配置的
  • 配置数据库(你只运行一个,所以我希望这仅用于测试而不是生产)位于重新启动的主机上,其 IP 地址在重新启动时发生变化
  • 由于这一变化,你重新启动了mongos进程,并通过在启动时修改配置字符串将它们指向新的 IP 地址
  • 您没有重新启动其余的 MongoDB 进程
  • 因此,集群的其他部分仍然期望配置服务器位于旧 IP 地址上,并因不匹配而引发错误

假设我上面的描述很接近,那么你的问题的根源就是两个基本的事情:

  1. 如果你移动配置服务器并更改主机名(在你的情况下是 IP 地址),你必须遵循此程序特别注意步骤 5:“关闭所有现有的 MongoDB 进程”
  2. 配置集合或集群时不要使用 IP 地址,而是使用主机名,即使它们只是/etc/hosts而不是 DNS,它们也提供了一个抽象级别,如果您正在处理 IP 地址是瞬态的环境并且您无法控制重新启动时 IP 和实例会收到什么,这非常有用。

要解决此问题,您需要重新启动mongodmongos进程,基本上按照上面 1 中链接的步骤进行。一旦集群的所有部分都同意配置服务器的 IP 地址(或主机名),这个问题就会自行解决。

相关内容