Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: 2022.x #3445 A bean for InetIPv6Utils that could not found at pr… #3694

Open
wants to merge 2 commits into
base: 2022.x
Choose a base branch
from

Conversation

fqtrnt
Copy link
Contributor

@fqtrnt fqtrnt commented Apr 22, 2024

…oject start up

A bean for InetIPv6Utils could not be found at project start up when integrating Spring Cloud Config with Spring Cloud Alibaba Nacos Discovery.

Describe what this PR does / why we need it

Does this pull request fix one issue?

#3445

Describe how you did it

Describe how to verify it

  1. check out branch name fix from https://github.com/fqtrnt/nacos-issue.git
  2. change nacos server address and namespace for your enviroment in src/main/resources/bootstrap.yml
  3. setup springcloud config server and run
  4. run nacos-issue project

Special notes for reviews

…d at project start up

A bean for InetIPv6Utils could not be found at project start up
when integrating Spring Cloud Config with Spring Cloud Alibaba Nacos Discovery.
@CLAassistant
Copy link

CLAassistant commented Apr 22, 2024

CLA assistant check
All committers have signed the CLA.

@@ -38,7 +39,7 @@
@Configuration(proxyBeanMethods = false)
@ImportAutoConfiguration({ NacosDiscoveryAutoConfiguration.class,
NacosServiceAutoConfiguration.class, NacosDiscoveryClientConfiguration.class,
NacosReactiveDiscoveryClientConfiguration.class })
NacosReactiveDiscoveryClientConfiguration.class, UtilIPv6AutoConfiguration.class })
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

移除 UtilIPv6AutoConfiguration 配置类,将里面的配置移动到 NacosDiscoveryAutoConfiguration 可能会比较好一些

Copy link
Contributor Author

@fqtrnt fqtrnt Apr 24, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

按你的方案进行修改,应用启动一会儿就会闪退,原因是NacosServiceManager被创建出两个实例,其中一个实例的nacosDiscoveryProperties属性值为空,导致NPE异常闪退。
请问NacosServiceManager需要多实例吗?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

我这边基于 nacos-discovery-consumer-example 测试并未复现,移除 UtilIPv6AutoConfiguration 后,需要同时移除 META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports 里面相关的配置

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

集成org.springframework.cloud:spring-cloud-starter-config就会出现异常。
UtilIPv6AutoConfiguration用到的地方移除了。

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

我看了下 InetIPv6Utils 的引用,只有在 discovery 模块中用到,2022和2023版本目前在挺多项目中有集成,有可能是你项目中的一些个性化配置导致了这个问题

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

在集成SpringCloud Config配置服务时客户端不启用其discovery能力,即spring.cloud.config.discovery.enabled=false 是可以正常启动的。
目前我们是把SpringCloud Config服务注册到Nacos,其他服务通过Nacos来发现配置服务。
spring.cloud.config.discovery.enabled=true
config

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants