Commit c10c9352 by Nepxion

模拟复杂的测试用例

parent 9cffefdd
...@@ -126,11 +126,13 @@ public class DiscoveryConfigAdapter extends ConfigAdapter { ...@@ -126,11 +126,13 @@ public class DiscoveryConfigAdapter extends ConfigAdapter {
} }
// 订阅远程配置中心的规则更新(推送策略自己决定,可以所有服务都只对应一个规则信息,也可以根据服务名获取对应的规则信息) // 订阅远程配置中心的规则更新(推送策略自己决定,可以所有服务都只对应一个规则信息,也可以根据服务名获取对应的规则信息)
@Autowired
private PluginPublisher pluginPublisher;
@PostConstruct @PostConstruct
public void publish() { public void publish() {
InputStream inputStream = ...; InputStream inputStream = ...;
pluginPublisher.asyncPublish(inputStream);
publish(inputStream);
} }
} }
``` ```
......
...@@ -25,17 +25,17 @@ public class DiscoveryConfigAdapter extends ConfigAdapter { ...@@ -25,17 +25,17 @@ public class DiscoveryConfigAdapter extends ConfigAdapter {
@Override @Override
protected String getLocalContextPath() { protected String getLocalContextPath() {
// 规则文件放在resources目录下 // 规则文件放在resources目录下
return "classpath:rule1.xml"; return "classpath:rule.xml";
// 规则文件放在工程根目录下 // 规则文件放在工程根目录下
// return "file:rule1.xml"; // return "file:rule.xml";
} }
// 从远程配置中心获取规则 // 从远程配置中心获取规则
@Override @Override
public InputStream getRemoteInputStream() { public InputStream getRemoteInputStream() {
try { try {
return FileUtils.openInputStream(new File("src/main/resources/rule1.xml")); return FileUtils.openInputStream(new File("src/main/resources/rule.xml"));
} catch (IOException e) { } catch (IOException e) {
e.printStackTrace(); e.printStackTrace();
} }
...@@ -44,24 +44,16 @@ public class DiscoveryConfigAdapter extends ConfigAdapter { ...@@ -44,24 +44,16 @@ public class DiscoveryConfigAdapter extends ConfigAdapter {
} }
// 订阅远程配置中心的规则更新(推送策略自己决定,可以所有服务都只对应一个规则信息,也可以根据服务名获取对应的规则信息) // 订阅远程配置中心的规则更新(推送策略自己决定,可以所有服务都只对应一个规则信息,也可以根据服务名获取对应的规则信息)
/*@PostConstruct /*@Autowired
public void publish() { private PluginPublisher pluginPublisher;
ThreadLocalRandom threadLocalRandom = ThreadLocalRandom.current();
// 模拟每隔15秒通过EventBus接收远程配置中心推送过来的规则更新
Timer timer = new Timer();
timer.scheduleAtFixedRate(new TimerTask() {
public void run() {
// 本地文件模拟代替远程文件,随机读取
int index = threadLocalRandom.nextInt(5) + 1;
try {
InputStream inputStream = FileUtils.openInputStream(new File("src/main/resources/rule" + index + ".xml"));
publish(inputStream);
} catch (IOException e) {
e.printStackTrace();
}
} @PostConstruct
}, 10000L, 15000L); public void publish() {
try {
InputStream inputStream = FileUtils.openInputStream(new File("src/main/resources/rule.xml"));
pluginPublisher.asyncPublish(inputStream);
} catch (IOException e) {
e.printStackTrace();
}
}*/ }*/
} }
\ No newline at end of file
# Spring cloud config # Spring cloud config
spring.application.name=discovery-springcloud-example-a spring.application.name=discovery-springcloud-example-a
server.port=4321 server.port=1100
eureka.client.serviceUrl.defaultZone=http://10.0.75.1:9528/eureka/ eureka.client.serviceUrl.defaultZone=http://10.0.75.1:9528/eureka/
eureka.instance.preferIpAddress=true eureka.instance.preferIpAddress=true
eureka.instance.metadataMap.version=1.0 eureka.instance.metadataMap.version=1.0
...@@ -13,5 +13,5 @@ spring.application.discovery.control.enabled=true ...@@ -13,5 +13,5 @@ spring.application.discovery.control.enabled=true
# 开启和关闭远程配置中心规则文件读取。一旦关闭,默认读取本地规则文件(例如:rule.xml)。缺失则默认为true # 开启和关闭远程配置中心规则文件读取。一旦关闭,默认读取本地规则文件(例如:rule.xml)。缺失则默认为true
spring.application.discovery.remote.config.enabled=true spring.application.discovery.remote.config.enabled=true
management.port=5432 management.port=8100
management.security.enabled=false management.security.enabled=false
\ No newline at end of file
...@@ -43,8 +43,12 @@ ...@@ -43,8 +43,12 @@
<!-- 1. 消费端的application.properties未定义版本号(即eureka.instance.metadataMap.version不存在),则该消费端可以访问提供端任何版本 --> <!-- 1. 消费端的application.properties未定义版本号(即eureka.instance.metadataMap.version不存在),则该消费端可以访问提供端任何版本 -->
<!-- 2. 提供端的application.properties未定义版本号(即eureka.instance.metadataMap.version不存在),当消费端在xml里不做任何版本配置,才可以访问该提供端 --> <!-- 2. 提供端的application.properties未定义版本号(即eureka.instance.metadataMap.version不存在),当消费端在xml里不做任何版本配置,才可以访问该提供端 -->
<version> <version>
<!-- 表示消费端服务a的1.0,允许访问提供端服务b的1.0和1.1版本 --> <!-- 表示消费端服务a的1.0,允许访问提供端服务b的2.0和2.1版本 -->
<service consumer-service-name="discovery-springcloud-example-a" provider-service-name="discovery-springcloud-example-b" consumer-version-value="1.0" provider-version-value="1.0;1.1"/> <service consumer-service-name="discovery-springcloud-example-a" provider-service-name="discovery-springcloud-example-b" consumer-version-value="1.0" provider-version-value="2.0;2.1"/>
<!-- 表示消费端服务b的2.0,允许访问提供端服务c的3.0版本 -->
<service consumer-service-name="discovery-springcloud-example-b" provider-service-name="discovery-springcloud-example-c" consumer-version-value="2.0" provider-version-value="3.0"/>
<!-- 表示消费端服务b的2.1,允许访问提供端服务c的3.1和3.2版本 -->
<service consumer-service-name="discovery-springcloud-example-b" provider-service-name="discovery-springcloud-example-c" consumer-version-value="2.1" provider-version-value="3.1;3.2"/>
</version> </version>
</discovery> </discovery>
</rule> </rule>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<rule>
<register>
<blacklist filter-value="10.10;11.11">
<service service-name="discovery-springcloud-example-a" filter-value="172.16"/>
</blacklist>
</register>
<discovery>
<blacklist filter-value="10.10;11.11">
<service service-name="discovery-springcloud-example-b" filter-value="172.16"/>
</blacklist>
<version>
<service consumer-service-name="discovery-springcloud-example-a" provider-service-name="discovery-springcloud-example-b" consumer-version-value="1.0" provider-version-value="3.0"/>
</version>
</discovery>
</rule>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<rule>
<register>
<blacklist filter-value="10.10;11.11">
<service service-name="discovery-springcloud-example-a" filter-value="172.16"/>
</blacklist>
</register>
<discovery>
<blacklist filter-value="10.10;11.11">
<service service-name="discovery-springcloud-example-b" filter-value="172.16"/>
</blacklist>
<version>
<service consumer-service-name="discovery-springcloud-example-a" provider-service-name="discovery-springcloud-example-b" consumer-version-value="1.0;1.1" provider-version-value="1.0;1.1;2.0"/>
</version>
</discovery>
</rule>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<rule>
<register>
<blacklist filter-value="10.10;11.11">
<service service-name="discovery-springcloud-example-a" filter-value="172.16"/>
</blacklist>
</register>
<discovery>
<blacklist filter-value="10.10;11.11">
<service service-name="discovery-springcloud-example-b" filter-value="172.16"/>
</blacklist>
<version>
<service consumer-service-name="discovery-springcloud-example-a" provider-service-name="discovery-springcloud-example-b" consumer-version-value="1.0" provider-version-value="1.1"/>
<service consumer-service-name="discovery-springcloud-example-a" provider-service-name="discovery-springcloud-example-b" consumer-version-value="1.1" provider-version-value="1.0"/>
</version>
</discovery>
</rule>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<rule>
<register>
<blacklist filter-value="10.10;11.11">
<service service-name="discovery-springcloud-example-a" filter-value="172.16"/>
</blacklist>
</register>
<discovery>
<blacklist filter-value="10.10;11.11">
<service service-name="discovery-springcloud-example-b" filter-value="172.16"/>
</blacklist>
<version>
<service consumer-service-name="discovery-springcloud-example-a" provider-service-name="discovery-springcloud-example-b" consumer-version-value="" provider-version-value=""/>
</version>
</discovery>
</rule>
\ No newline at end of file
...@@ -19,6 +19,7 @@ ...@@ -19,6 +19,7 @@
<properties> <properties>
<spring.cloud.version>Dalston.SR5</spring.cloud.version> <spring.cloud.version>Dalston.SR5</spring.cloud.version>
<!-- <spring.cloud.version>Edgware.SR3</spring.cloud.version> --> <!-- <spring.cloud.version>Edgware.SR3</spring.cloud.version> -->
<discovery.plugin.version>2.0.9</discovery.plugin.version>
<java.version>1.8</java.version> <java.version>1.8</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties> </properties>
...@@ -37,6 +38,12 @@ ...@@ -37,6 +38,12 @@
<dependencies> <dependencies>
<dependency> <dependency>
<groupId>com.nepxion</groupId>
<artifactId>discovery-plugin-starter</artifactId>
<version>${discovery.plugin.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId> <groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId> <artifactId>spring-cloud-starter-eureka</artifactId>
</dependency> </dependency>
......
...@@ -12,6 +12,9 @@ package com.nepxion.discovery.plugin.example; ...@@ -12,6 +12,9 @@ package com.nepxion.discovery.plugin.example;
import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.context.annotation.Bean;
import com.nepxion.discovery.plugin.example.impl.DiscoveryConfigAdapter;
@SpringBootApplication @SpringBootApplication
@EnableDiscoveryClient @EnableDiscoveryClient
...@@ -19,4 +22,9 @@ public class DiscoveryApplication { ...@@ -19,4 +22,9 @@ public class DiscoveryApplication {
public static void main(String[] args) { public static void main(String[] args) {
new SpringApplicationBuilder(DiscoveryApplication.class).web(true).run(args); new SpringApplicationBuilder(DiscoveryApplication.class).web(true).run(args);
} }
@Bean
public DiscoveryConfigAdapter discoveryConfigLoader() {
return new DiscoveryConfigAdapter();
}
} }
\ No newline at end of file
package com.nepxion.discovery.plugin.example;
/**
* <p>Title: Nepxion Discovery</p>
* <p>Description: Nepxion Discovery</p>
* <p>Copyright: Copyright (c) 2017-2050</p>
* <p>Company: Nepxion</p>
* @author Haojun Ren
* @version 1.0
*/
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cloud.client.ServiceInstance;
import org.springframework.cloud.client.discovery.DiscoveryClient;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class DiscoveryController {
@Autowired
private DiscoveryClient discoveryClient;
@RequestMapping(path = "/instances", method = RequestMethod.GET)
public List<ServiceInstance> instances() {
return discoveryClient.getInstances("discovery-springcloud-example-c");
}
}
\ No newline at end of file
package com.nepxion.discovery.plugin.example.impl;
/**
* <p>Title: Nepxion Discovery</p>
* <p>Description: Nepxion Discovery</p>
* <p>Copyright: Copyright (c) 2017-2050</p>
* <p>Company: Nepxion</p>
* @author Haojun Ren
* @version 1.0
*/
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import org.apache.commons.io.FileUtils;
import com.nepxion.discovery.plugin.configcenter.ConfigAdapter;
public class DiscoveryConfigAdapter extends ConfigAdapter {
@Override
protected String getLocalContextPath() {
return "classpath:rule.xml";
}
@Override
public InputStream getRemoteInputStream() {
try {
return FileUtils.openInputStream(new File("src/main/resources/rule.xml"));
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
}
\ No newline at end of file
# Spring cloud config # Spring cloud config
spring.application.name=discovery-springcloud-example-b spring.application.name=discovery-springcloud-example-b
server.port=4322 server.port=1200
eureka.client.serviceUrl.defaultZone=http://10.0.75.1:9528/eureka/ eureka.client.serviceUrl.defaultZone=http://10.0.75.1:9528/eureka/
eureka.instance.preferIpAddress=true eureka.instance.preferIpAddress=true
eureka.instance.metadataMap.version=1.0 eureka.instance.metadataMap.version=2.0
\ No newline at end of file
management.port=8200
management.security.enabled=false
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<rule>
<discovery>
<version>
<!-- 表示消费端服务a的1.0,允许访问提供端服务b的2.0和2.1版本 -->
<service consumer-service-name="discovery-springcloud-example-a" provider-service-name="discovery-springcloud-example-b" consumer-version-value="1.0" provider-version-value="2.0;2.1"/>
<!-- 表示消费端服务b的2.0,允许访问提供端服务c的3.0版本 -->
<service consumer-service-name="discovery-springcloud-example-b" provider-service-name="discovery-springcloud-example-c" consumer-version-value="2.0" provider-version-value="3.0"/>
<!-- 表示消费端服务b的2.1,允许访问提供端服务c的3.1和3.2版本 -->
<service consumer-service-name="discovery-springcloud-example-b" provider-service-name="discovery-springcloud-example-c" consumer-version-value="2.1" provider-version-value="3.1;3.2"/>
</version>
</discovery>
</rule>
\ No newline at end of file
...@@ -19,6 +19,7 @@ ...@@ -19,6 +19,7 @@
<properties> <properties>
<spring.cloud.version>Dalston.SR5</spring.cloud.version> <spring.cloud.version>Dalston.SR5</spring.cloud.version>
<!-- <spring.cloud.version>Edgware.SR3</spring.cloud.version> --> <!-- <spring.cloud.version>Edgware.SR3</spring.cloud.version> -->
<discovery.plugin.version>2.0.9</discovery.plugin.version>
<java.version>1.8</java.version> <java.version>1.8</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties> </properties>
...@@ -37,6 +38,12 @@ ...@@ -37,6 +38,12 @@
<dependencies> <dependencies>
<dependency> <dependency>
<groupId>com.nepxion</groupId>
<artifactId>discovery-plugin-starter</artifactId>
<version>${discovery.plugin.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId> <groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId> <artifactId>spring-cloud-starter-eureka</artifactId>
</dependency> </dependency>
......
...@@ -12,6 +12,9 @@ package com.nepxion.discovery.plugin.example; ...@@ -12,6 +12,9 @@ package com.nepxion.discovery.plugin.example;
import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.context.annotation.Bean;
import com.nepxion.discovery.plugin.example.impl.DiscoveryConfigAdapter;
@SpringBootApplication @SpringBootApplication
@EnableDiscoveryClient @EnableDiscoveryClient
...@@ -19,4 +22,9 @@ public class DiscoveryApplication { ...@@ -19,4 +22,9 @@ public class DiscoveryApplication {
public static void main(String[] args) { public static void main(String[] args) {
new SpringApplicationBuilder(DiscoveryApplication.class).web(true).run(args); new SpringApplicationBuilder(DiscoveryApplication.class).web(true).run(args);
} }
@Bean
public DiscoveryConfigAdapter discoveryConfigLoader() {
return new DiscoveryConfigAdapter();
}
} }
\ No newline at end of file
package com.nepxion.discovery.plugin.example;
/**
* <p>Title: Nepxion Discovery</p>
* <p>Description: Nepxion Discovery</p>
* <p>Copyright: Copyright (c) 2017-2050</p>
* <p>Company: Nepxion</p>
* @author Haojun Ren
* @version 1.0
*/
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cloud.client.ServiceInstance;
import org.springframework.cloud.client.discovery.DiscoveryClient;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class DiscoveryController {
@Autowired
private DiscoveryClient discoveryClient;
@RequestMapping(path = "/instances", method = RequestMethod.GET)
public List<ServiceInstance> instances() {
return discoveryClient.getInstances("discovery-springcloud-example-c");
}
}
\ No newline at end of file
package com.nepxion.discovery.plugin.example.impl;
/**
* <p>Title: Nepxion Discovery</p>
* <p>Description: Nepxion Discovery</p>
* <p>Copyright: Copyright (c) 2017-2050</p>
* <p>Company: Nepxion</p>
* @author Haojun Ren
* @version 1.0
*/
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import org.apache.commons.io.FileUtils;
import com.nepxion.discovery.plugin.configcenter.ConfigAdapter;
public class DiscoveryConfigAdapter extends ConfigAdapter {
@Override
protected String getLocalContextPath() {
return "classpath:rule.xml";
}
@Override
public InputStream getRemoteInputStream() {
try {
return FileUtils.openInputStream(new File("src/main/resources/rule.xml"));
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
}
\ No newline at end of file
# Spring cloud config # Spring cloud config
spring.application.name=discovery-springcloud-example-b spring.application.name=discovery-springcloud-example-b
server.port=4323 server.port=1201
eureka.client.serviceUrl.defaultZone=http://10.0.75.1:9528/eureka/ eureka.client.serviceUrl.defaultZone=http://10.0.75.1:9528/eureka/
eureka.instance.preferIpAddress=true eureka.instance.preferIpAddress=true
eureka.instance.metadataMap.version=1.1 eureka.instance.metadataMap.version=2.1
\ No newline at end of file
management.port=8201
management.security.enabled=false
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<rule>
<discovery>
<version>
<!-- 表示消费端服务a的1.0,允许访问提供端服务b的2.0和2.1版本 -->
<service consumer-service-name="discovery-springcloud-example-a" provider-service-name="discovery-springcloud-example-b" consumer-version-value="1.0" provider-version-value="2.0;2.1"/>
<!-- 表示消费端服务b的2.0,允许访问提供端服务c的3.0版本 -->
<service consumer-service-name="discovery-springcloud-example-b" provider-service-name="discovery-springcloud-example-c" consumer-version-value="2.0" provider-version-value="3.0"/>
<!-- 表示消费端服务b的2.1,允许访问提供端服务c的3.1和3.2版本 -->
<service consumer-service-name="discovery-springcloud-example-b" provider-service-name="discovery-springcloud-example-c" consumer-version-value="2.1" provider-version-value="3.1;3.2"/>
</version>
</discovery>
</rule>
\ No newline at end of file
...@@ -2,8 +2,8 @@ ...@@ -2,8 +2,8 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<groupId>com.nepxion</groupId> <groupId>com.nepxion</groupId>
<artifactId>discovery-springcloud-example-b3</artifactId> <artifactId>discovery-springcloud-example-c1</artifactId>
<name>Nepxion Discovery Spring Cloud Example B3</name> <name>Nepxion Discovery Spring Cloud Example C1</name>
<packaging>jar</packaging> <packaging>jar</packaging>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<version>1.0.0</version> <version>1.0.0</version>
......
# Spring cloud config # Spring cloud config
spring.application.name=discovery-springcloud-example-b spring.application.name=discovery-springcloud-example-c
server.port=4324 server.port=1300
eureka.client.serviceUrl.defaultZone=http://10.0.75.1:9528/eureka/ eureka.client.serviceUrl.defaultZone=http://10.0.75.1:9528/eureka/
eureka.instance.preferIpAddress=true eureka.instance.preferIpAddress=true
eureka.instance.metadataMap.version=2.0 eureka.instance.metadataMap.version=3.0
\ No newline at end of file \ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<groupId>com.nepxion</groupId>
<artifactId>discovery-springcloud-example-c2</artifactId>
<name>Nepxion Discovery Spring Cloud Example C2</name>
<packaging>jar</packaging>
<modelVersion>4.0.0</modelVersion>
<version>1.0.0</version>
<description>Nepxion Discovery is an enhancement for Spring Cloud Discovery</description>
<url>http://www.nepxion.com</url>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.6.RELEASE</version>
</parent>
<properties>
<spring.cloud.version>Dalston.SR5</spring.cloud.version>
<!-- <spring.cloud.version>Edgware.SR3</spring.cloud.version> -->
<java.version>1.8</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring.cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<compilerArgs>
<arg>-parameters</arg>
</compilerArgs>
<encoding>${project.build.sourceEncoding}</encoding>
<source>${java.version}</source>
<target>${java.version}</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
\ No newline at end of file
package com.nepxion.discovery.plugin.example;
/**
* <p>Title: Nepxion Discovery</p>
* <p>Description: Nepxion Discovery</p>
* <p>Copyright: Copyright (c) 2017-2050</p>
* <p>Company: Nepxion</p>
* @author Haojun Ren
* @version 1.0
*/
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
@SpringBootApplication
@EnableDiscoveryClient
public class DiscoveryApplication {
public static void main(String[] args) {
new SpringApplicationBuilder(DiscoveryApplication.class).web(true).run(args);
}
}
\ No newline at end of file
# Spring cloud config
spring.application.name=discovery-springcloud-example-c
server.port=1301
eureka.client.serviceUrl.defaultZone=http://10.0.75.1:9528/eureka/
eureka.instance.preferIpAddress=true
eureka.instance.metadataMap.version=3.1
\ No newline at end of file
<!-- Logback configuration. See http://logback.qos.ch/manual/index.html -->
<configuration scan="true" scanPeriod="10 seconds">
<!-- Simple file output -->
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- encoder defaults to ch.qos.logback.classic.encoder.PatternLayoutEncoder -->
<encoder>
<pattern>discovery %date %level [%thread] %logger{10} [%file:%line] - %msg%n</pattern>
<charset>UTF-8</charset>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>log/discovery-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<maxFileSize>50MB</maxFileSize>
</rollingPolicy>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>INFO</level>
</filter>
<!-- Safely log to the same file from multiple JVMs. Degrades performance! -->
<prudent>true</prudent>
</appender>
<appender name ="FILE_ASYNC" class= "ch.qos.logback.classic.AsyncAppender">
<discardingThreshold>0</discardingThreshold>
<queueSize>512</queueSize>
<appender-ref ref ="FILE"/>
</appender>
<!-- Console output -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<!-- encoder defaults to ch.qos.logback.classic.encoder.PatternLayoutEncoder -->
<encoder>
<pattern>discovery %date %level [%thread] %logger{10} [%file:%line] - %msg%n</pattern>
<charset>UTF-8</charset>
</encoder>
<!-- Only log level WARN and above -->
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>INFO</level>
</filter>
</appender>
<!-- For loggers in the these namespaces, log at all levels. -->
<logger name="pedestal" level="ALL" />
<logger name="hammock-cafe" level="ALL" />
<logger name="user" level="ALL" />
<root level="INFO">
<!-- <appender-ref ref="FILE_ASYNC" /> -->
<appender-ref ref="STDOUT" />
</root>
</configuration>
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<groupId>com.nepxion</groupId>
<artifactId>discovery-springcloud-example-c3</artifactId>
<name>Nepxion Discovery Spring Cloud Example C3</name>
<packaging>jar</packaging>
<modelVersion>4.0.0</modelVersion>
<version>1.0.0</version>
<description>Nepxion Discovery is an enhancement for Spring Cloud Discovery</description>
<url>http://www.nepxion.com</url>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.6.RELEASE</version>
</parent>
<properties>
<spring.cloud.version>Dalston.SR5</spring.cloud.version>
<!-- <spring.cloud.version>Edgware.SR3</spring.cloud.version> -->
<java.version>1.8</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring.cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<compilerArgs>
<arg>-parameters</arg>
</compilerArgs>
<encoding>${project.build.sourceEncoding}</encoding>
<source>${java.version}</source>
<target>${java.version}</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
\ No newline at end of file
package com.nepxion.discovery.plugin.example;
/**
* <p>Title: Nepxion Discovery</p>
* <p>Description: Nepxion Discovery</p>
* <p>Copyright: Copyright (c) 2017-2050</p>
* <p>Company: Nepxion</p>
* @author Haojun Ren
* @version 1.0
*/
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
@SpringBootApplication
@EnableDiscoveryClient
public class DiscoveryApplication {
public static void main(String[] args) {
new SpringApplicationBuilder(DiscoveryApplication.class).web(true).run(args);
}
}
\ No newline at end of file
# Spring cloud config
spring.application.name=discovery-springcloud-example-c
server.port=1302
eureka.client.serviceUrl.defaultZone=http://10.0.75.1:9528/eureka/
eureka.instance.preferIpAddress=true
eureka.instance.metadataMap.version=3.2
\ No newline at end of file
<!-- Logback configuration. See http://logback.qos.ch/manual/index.html -->
<configuration scan="true" scanPeriod="10 seconds">
<!-- Simple file output -->
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- encoder defaults to ch.qos.logback.classic.encoder.PatternLayoutEncoder -->
<encoder>
<pattern>discovery %date %level [%thread] %logger{10} [%file:%line] - %msg%n</pattern>
<charset>UTF-8</charset>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>log/discovery-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<maxFileSize>50MB</maxFileSize>
</rollingPolicy>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>INFO</level>
</filter>
<!-- Safely log to the same file from multiple JVMs. Degrades performance! -->
<prudent>true</prudent>
</appender>
<appender name ="FILE_ASYNC" class= "ch.qos.logback.classic.AsyncAppender">
<discardingThreshold>0</discardingThreshold>
<queueSize>512</queueSize>
<appender-ref ref ="FILE"/>
</appender>
<!-- Console output -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<!-- encoder defaults to ch.qos.logback.classic.encoder.PatternLayoutEncoder -->
<encoder>
<pattern>discovery %date %level [%thread] %logger{10} [%file:%line] - %msg%n</pattern>
<charset>UTF-8</charset>
</encoder>
<!-- Only log level WARN and above -->
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>INFO</level>
</filter>
</appender>
<!-- For loggers in the these namespaces, log at all levels. -->
<logger name="pedestal" level="ALL" />
<logger name="hammock-cafe" level="ALL" />
<logger name="user" level="ALL" />
<root level="INFO">
<!-- <appender-ref ref="FILE_ASYNC" /> -->
<appender-ref ref="STDOUT" />
</root>
</configuration>
...@@ -18,7 +18,9 @@ ...@@ -18,7 +18,9 @@
<module>discovery-springcloud-example-a</module> <module>discovery-springcloud-example-a</module>
<module>discovery-springcloud-example-b1</module> <module>discovery-springcloud-example-b1</module>
<module>discovery-springcloud-example-b2</module> <module>discovery-springcloud-example-b2</module>
<module>discovery-springcloud-example-b3</module> <module>discovery-springcloud-example-c1</module>
<module>discovery-springcloud-example-c2</module>
<module>discovery-springcloud-example-c3</module>
</modules> </modules>
<properties> <properties>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment