<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.1.RELEASE</version> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <java.version>1.8</java.version> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka-server</artifactId> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>Camden.SR5</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> |
@EnableEurekaServer @SpringBootApplication public class EurekaRegistryDemo { public static void main( String[] args ) { SpringApplication.run(EurekaRegistryDemo.class, args); } } |
server: port: 8080 #當前應用端口 spring: application: name: eureka-registry #應用名稱 eureka: client: serviceUrl: defaultZone: http://localhost:8080/eureka/ #Eureka Server地址 register-with-eureka: false #因爲自己是註冊中心,所以不註冊自己 fetch-registry: false instance: metadataMap: instanceId: ${spring.application.name}:${spring.application.instance_id:${random.value}} |
@SpringBootApplication @EnableEurekaClient @EnableAutoConfiguration public class EurekaClientDemo { public static void main(String[] args) { new SpringApplicationBuilder(EurekaClientDemo.class).web(true).run(args); } } |
public interface TestApi { @RequestMapping(value="/testhello/{name}", method=RequestMethod.GET) public String testHello(@PathVariable("name") String name); } |
@RestController public class TestControl implements TestApi { public String testHello(@PathVariable("name")String name) { return "Hello world,"+name; } } |
server.port=9090 spring.application.name=eureka.client eureka.client.serviceUrl.defaultZone=http://localhost:8080/eureka/ eureka.instance.appname=eureka.client.01 |
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.1.RELEASE</version> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <java.version>1.8</java.version> </properties> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-feign</artifactId> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka</artifactId> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>Camden.SR5</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> |
@SpringBootApplication @EnableDiscoveryClient public class FeginApplication { public static void main(String[] args) { SpringApplication.run(FeginApplication.class, args); } } |
@RestController public class TestService { private TestApi computeClient; private static final String SERVER_NAME = "eureka.client"; @Autowired private DiscoveryClient discoveryClient; @RequestMapping(value = "/gethello/{name}", method = RequestMethod.GET) public String getHello(@PathVariable("name") String name) { Builder feignBuilder= Feign.builder().decoder(new ResponseEntityDecoder(new SpringDecoder(new ObjectFactory<HttpMessageConverters>(){ public HttpMessageConverters getObject() throws BeansException { return new HttpMessageConverters(); } }))).client(new ApacheHttpClient()).contract(new SpringMvcContract()); computeClient = feignBuilder.target(TestApi.class,discoveryClient.getInstances(SERVER_NAME).get(0).getUri().toString()); return computeClient.testHello(name); } } |
server.port=7070 spring.application.name=eureka.test eureka.client.serviceUrl.defaultZone=http://localhost:8080/eureka/ eureka.instance.appname=eureka.test.01 |