server:
port: ${server.instance.port:5678}
spring:
application:
name: nodeservice
sidecar:
port: ${nodeserver.instance.port:3000}
health-uri: http://localhost:${nodeserver.instance.port:3000}/health.json
eureka:
instance:
hostname: ${nodeserver.instance.name:localhost}
preferIpAddress: ${preferipaddress:false}
leaseRenewalIntervalInSeconds: 5 #default is 30, recommended to keep default
metadataMap:
instanceId: ${spring.application.name}:${spring.application.instance_id:${random.value}}
client:
serviceUrl:
defaultZone: http://localhost:8761/eureka/,http://localhost:8762/eureka/
知道为什么吗?
Eureka:只注册第一个成功的URL。在您的示例中,第一个成功的url是http://localhost:8761/eureka/,因此不能继续注册下一个url http://localhost:8762/eureka/。
您可以通过以下方法重写:
application.yml
eureka:
client:
serviceUrl:
defaultZone: http://localhost:8761/eureka/
additionalZones: http://localhost:8762/eureka
@SpringBootApplication
@EnableEurekaClient
public class Application implements ApplicationContextAware {
@Value("${eureka.client.serviceUrl.additionalZones:}")
String additionalZones;
ConfigurableApplicationContext applicationContext;
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
@Bean
public Map<String, EurekaClient> additionalEurekaClients(ApplicationInfoManager manager,
@Autowired(required = false) HealthCheckHandler healthCheckHandler) {
HashMap clients = new HashMap<>();
if(Text.isEmpty(additionalZones))
return clients;
String[] hosts = additionalZones.split(",");
for(int i=0; i < hosts.length; i++)
{
EurekaClient client = new CloudEurekaClient(manager, new SimpleEurekaClientConfig(hosts[i].trim(),"defaultZone"), null,
this.applicationContext);
client.registerHealthCheck(healthCheckHandler);
String clientName = "client_"+ (i+1);
clients.put(clientName, client);
}
return clients;
}
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
this.applicationContext = (ConfigurableApplicationContext) applicationContext;
}
@PreDestroy
public void unRegisterInAllConfiguredDiscovery() {
Map<String, EurekaClient> additionalEurekaClients = this.applicationContext.getBean("additionalEurekaClients", Map.class);
additionalEurekaClients.forEach((k, v) -> v.shutdown());
}
}
package com.netflix.eureka;
import org.springframework.cloud.netflix.eureka.EurekaClientConfigBean;
import java.util.Arrays;
import java.util.List;
public class SimpleEurekaClientConfig extends EurekaClientConfigBean {
private String eurekaUrl;
private String zone;
private String region = "us-east-1";
public SimpleEurekaClientConfig(String eurekaUrl, String zone, String region) {
this.eurekaUrl = eurekaUrl;
this.zone = zone;
this.region = region;
}
public SimpleEurekaClientConfig(String eurekaUrl, String zone) {
this.eurekaUrl = eurekaUrl;
this.zone = zone;
}
@Override
public String getRegion() {
return region;
}
@Override
public String[] getAvailabilityZones(String s) {
return new String[] {zone};
}
@Override
public List<String> getEurekaServerServiceUrls(String s) {
return Arrays.asList(eurekaUrl);
}
@Override
public boolean shouldEnforceRegistrationAtInit() {
return true;
}
@Override
public boolean shouldRegisterWithEureka() {
return true;
}
}
我知道你可以通过从批处理文件或类似文件中调用jar来将它作为Windows服务运行,而且我知道当你使用一个应用服务器,如WAS或Glassfish时,你有JVMS本身正在“运行”。但除非我弄错了,否则这些不一定是“服务”。也就是说,在没有任何用户输入的情况下执行的进程。根据我的理解,你仍然需要调用JVM来让它执行一个进程(如果我错了,请随时纠正我)。但我一直很好奇什么是Windows服务的Java
我试图创建一个JPA项目,eclipse确实连接到数据库,但是没有显示任何表。数据库确实有表,用户“约翰”拥有数据库中的所有许可。从提示符或使用MySQL客户端执行查询没有问题。 下面是"驱动程序属性"中的连接设置: 驱动程序:MySQL JDBC驱动程序 数据库:myDatabase URL:JDBC:mysql://localhost:3306 用户名:john 密码:****** “测试连接
我在一个项目中使用java scala(与sbt一起)。 语言信息: 当我运行任何时,我得到一个奇怪的警告提示: 我无法理解这种行为。 更新: 我检查了 选项,它具有相同的行为: 感谢这么快的解释1.8Java新功能! 但是如何解决警告的发生? 以下是的内容: Eclipse有< code>eclipse.ini: 更新2 我从两个配置文件中删除了包含的所有行。 但是这个错误警告一直出现(当<co
当我试图在Eclipse v3.8中添加新服务器时,所有Apache Tomcat版本都列在选择服务器选项中,只有v8.0: 我检查了JST服务器适配器和JST服务器适配器扩展是否已经安装。 我需要Apache Tomcat v8.0,我该怎么做? PS:我用的是Xubuntu。
问题内容: 我目前正在使用dropzone.js v3.10.2,但在显示已上传的现有文件时遇到问题。我比php更加胜任,但是关于ajax和js的知识却很有限 如果您能帮助的话,那太好了 提前致谢 index.php upload.php PS。我知道PHP正在检索数据 提前致谢 达米安 问题答案: 我检查了代码(来自starTutorial),它对我也不起作用(?) 我设法通过替换它来使其工作:
问题内容: 我有一个非常简单的RESTful控制器,可以使用并生成JSON。我需要脱机测试此控制器,即没有服务器运行,也没有数据库运行。而且我为无法找到解决方案而发疯。我的初始测试用例将包括: 测试REST URI,即GET,POST,PUT,DELETE-我必须能够根据发送的数据声明返回的数据。 断言将测试JSON数据 我有以下URI: / pcusers-返回所有用户 / pcusers /