Merge pull request #1295 from yuhuangbin/sidecar-enhance

[Bugfix] sidecar registers port and group to nacos
pull/1868/head
Mercy Ma 5 years ago committed by GitHub
commit bd3d1681cb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -3,6 +3,8 @@ server:
spring: spring:
cloud: cloud:
nacos: nacos:
username: nacos
password: nacos
discovery: discovery:
server-addr: localhost:8848 server-addr: localhost:8848
gateway: gateway:
@ -17,7 +19,7 @@ sidecar:
# 异构微服务的端口 # 异构微服务的端口
port: 8060 port: 8060
# 异构微服务的健康检查URL # 异构微服务的健康检查URL
health-check-url: http://localhost:8060/health.json #health-check-url: http://localhost:8060/health.json
management: management:
endpoint: endpoint:
health: health:

@ -17,13 +17,11 @@
package com.alibaba.cloud.sidecar.nacos; package com.alibaba.cloud.sidecar.nacos;
import com.alibaba.cloud.nacos.NacosDiscoveryProperties; import com.alibaba.cloud.nacos.NacosDiscoveryProperties;
import com.alibaba.cloud.nacos.discovery.NacosDiscoveryAutoConfiguration;
import com.alibaba.cloud.sidecar.SidecarAutoConfiguration; import com.alibaba.cloud.sidecar.SidecarAutoConfiguration;
import com.alibaba.cloud.sidecar.SidecarDiscoveryClient; import com.alibaba.cloud.sidecar.SidecarDiscoveryClient;
import com.alibaba.cloud.sidecar.SidecarProperties;
import org.springframework.boot.autoconfigure.AutoConfigureBefore; import org.springframework.boot.autoconfigure.AutoConfigureBefore;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
@ -32,23 +30,15 @@ import org.springframework.context.annotation.Configuration;
* @author www.itmuch.com * @author www.itmuch.com
*/ */
@Configuration(proxyBeanMethods = false) @Configuration(proxyBeanMethods = false)
@AutoConfigureBefore({ NacosDiscoveryAutoConfiguration.class, @AutoConfigureBefore(SidecarAutoConfiguration.class)
SidecarAutoConfiguration.class }) @ConditionalOnBean(NacosDiscoveryProperties.class)
@ConditionalOnClass(NacosDiscoveryProperties.class)
public class SidecarNacosAutoConfiguration { public class SidecarNacosAutoConfiguration {
@Bean
@ConditionalOnMissingBean
public SidecarNacosDiscoveryProperties sidecarNacosDiscoveryProperties(
SidecarProperties sidecarProperties) {
return new SidecarNacosDiscoveryProperties(sidecarProperties);
}
@Bean @Bean
@ConditionalOnMissingBean @ConditionalOnMissingBean
public SidecarDiscoveryClient sidecarDiscoveryClient( public SidecarDiscoveryClient sidecarDiscoveryClient(
SidecarNacosDiscoveryProperties sidecarNacosDiscoveryProperties) { NacosDiscoveryProperties nacosDiscoveryProperties) {
return new SidecarNacosDiscoveryClient(sidecarNacosDiscoveryProperties); return new SidecarNacosDiscoveryClient(nacosDiscoveryProperties);
} }
} }

@ -16,6 +16,7 @@
package com.alibaba.cloud.sidecar.nacos; package com.alibaba.cloud.sidecar.nacos;
import com.alibaba.cloud.nacos.NacosDiscoveryProperties;
import com.alibaba.cloud.sidecar.SidecarDiscoveryClient; import com.alibaba.cloud.sidecar.SidecarDiscoveryClient;
import com.alibaba.nacos.api.exception.NacosException; import com.alibaba.nacos.api.exception.NacosException;
import org.slf4j.Logger; import org.slf4j.Logger;
@ -29,18 +30,18 @@ public class SidecarNacosDiscoveryClient implements SidecarDiscoveryClient {
private static final Logger log = LoggerFactory private static final Logger log = LoggerFactory
.getLogger(SidecarNacosDiscoveryClient.class); .getLogger(SidecarNacosDiscoveryClient.class);
private final SidecarNacosDiscoveryProperties sidecarNacosDiscoveryProperties; private final NacosDiscoveryProperties nacosDiscoveryProperties;
public SidecarNacosDiscoveryClient( public SidecarNacosDiscoveryClient(
SidecarNacosDiscoveryProperties sidecarNacosDiscoveryProperties) { NacosDiscoveryProperties nacosDiscoveryProperties) {
this.sidecarNacosDiscoveryProperties = sidecarNacosDiscoveryProperties; this.nacosDiscoveryProperties = nacosDiscoveryProperties;
} }
@Override @Override
public void registerInstance(String applicationName, String ip, Integer port) { public void registerInstance(String applicationName, String ip, Integer port) {
try { try {
this.sidecarNacosDiscoveryProperties.namingServiceInstance() this.nacosDiscoveryProperties.namingServiceInstance()
.registerInstance(applicationName, ip, port); .registerInstance(applicationName, nacosDiscoveryProperties.getGroup(), ip, port);
} }
catch (NacosException e) { catch (NacosException e) {
log.warn("nacos exception happens", e); log.warn("nacos exception happens", e);
@ -50,8 +51,8 @@ public class SidecarNacosDiscoveryClient implements SidecarDiscoveryClient {
@Override @Override
public void deregisterInstance(String applicationName, String ip, Integer port) { public void deregisterInstance(String applicationName, String ip, Integer port) {
try { try {
this.sidecarNacosDiscoveryProperties.namingServiceInstance() this.nacosDiscoveryProperties.namingServiceInstance()
.deregisterInstance(applicationName, ip, port); .deregisterInstance(applicationName, nacosDiscoveryProperties.getGroup(), ip, port);
} }
catch (NacosException e) { catch (NacosException e) {
log.warn("nacos exception happens", e); log.warn("nacos exception happens", e);

@ -1,49 +0,0 @@
/*
* Copyright 2013-2018 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.alibaba.cloud.sidecar.nacos;
import java.net.SocketException;
import com.alibaba.cloud.nacos.NacosDiscoveryProperties;
import com.alibaba.cloud.sidecar.SidecarProperties;
import org.apache.commons.lang3.StringUtils;
/**
* @author itmuch.com
*/
public class SidecarNacosDiscoveryProperties extends NacosDiscoveryProperties {
private final SidecarProperties sidecarProperties;
public SidecarNacosDiscoveryProperties(SidecarProperties sidecarProperties) {
this.sidecarProperties = sidecarProperties;
}
@Override
public void init() throws SocketException {
super.init();
String ip = sidecarProperties.getIp();
if (StringUtils.isNotBlank(ip)) {
this.setIp(ip);
}
Integer port = sidecarProperties.getPort();
this.setPort(port);
}
}
Loading…
Cancel
Save