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
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
import com.alibaba.cloud.nacos.discovery.NacosDiscoveryAutoConfiguration;
import com.alibaba.cloud.nacos.discovery.NacosDiscoveryClientConfiguration;
import com.alibaba.cloud.nacos.discovery.reactive.NacosReactiveDiscoveryClientConfiguration;
import com.alibaba.cloud.nacos.util.UtilIPv6AutoConfiguration;

import org.springframework.boot.autoconfigure.ImportAutoConfiguration;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
Expand All @@ -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

public class NacosDiscoveryClientConfigServiceBootstrapConfiguration {

}
Loading