Skip to content

Commit

Permalink
eureka 集群调用和负载均衡
Browse files Browse the repository at this point in the history
  • Loading branch information
xjtushilei committed Jun 13, 2017
1 parent 1027e80 commit 71ff754
Show file tree
Hide file tree
Showing 12 changed files with 166 additions and 2 deletions.
1 change: 1 addition & 0 deletions pom.xml
Expand Up @@ -13,6 +13,7 @@
<module>spring-cloud-config-client</module>
<module>spring-cloud-eureka-server</module>
<module>spring-cloud-eureka-client</module>
<module>spring-cloud-eureka-consumer</module>

</modules>

Expand Down
6 changes: 4 additions & 2 deletions readme.md
Expand Up @@ -15,7 +15,8 @@
- config-server : 8888
- config-client : 8082
- eureka-server : 8761,8762
- eureka-client : 8083
- eureka-client : 8083,8084,8085 (构建负载均衡集群)
- eureka-consumer : 8086 (用来消费 eureka-client 提供的服务)


## 依赖说明
Expand All @@ -28,4 +29,5 @@
## 文章链接

> 1. [spring-cloud-config:分布式配置管理](http://www.xjtushilei.com/2017/06/12/spring-cloud-series-spring-cloud-config)
> 2. [spring-cloud-eureka:服务注册与发现](http://www.xjtushilei.com/2017/06/13/spring-cloud-series-spring-cloud-eureka)
> 2. [spring-cloud-eureka:服务注册与发现](http://www.xjtushilei.com/2017/06/13/spring-cloud-series-spring-cloud-eureka)
> 3. [spring-cloud-eureka-consumer:远程服务调用和及其负载均衡](http://www.xjtushilei.com/2017/06/13/spring-cloud-series-spring-cloud-eureka-consumer)
@@ -0,0 +1,21 @@
package com.xjtushilei;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
* @author shilei
* @Date 2017/6/12.
*/
@RestController
public class HelloController {

@Value("${server.port}")
String port;

@RequestMapping("/hi")
public String hi() {
return port + " 端口为您服务!";
}
}
@@ -0,0 +1,3 @@
server.port=8084
spring.application.name=eureka-client-1
eureka.client.service-url.defaultZone=http://peer1:8761/eureka/,http://peer2:8762/eureka/
@@ -0,0 +1,3 @@
server.port=8085
spring.application.name=eureka-client-1
eureka.client.service-url.defaultZone=http://peer1:8761/eureka/,http://peer2:8762/eureka/
24 changes: 24 additions & 0 deletions spring-cloud-eureka-consumer/.gitignore
@@ -0,0 +1,24 @@
target/
!.mvn/wrapper/maven-wrapper.jar

### STS ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans

### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr

### NetBeans ###
nbproject/private/
build/
nbbuild/
dist/
nbdist/
.nb-gradle/
31 changes: 31 additions & 0 deletions spring-cloud-eureka-consumer/pom.xml
@@ -0,0 +1,31 @@
<?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">
<modelVersion>4.0.0</modelVersion>

<groupId>com.xjtushilei</groupId>
<artifactId>spring-cloud-eureka-consumer</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>

<name>spring-cloud-eureka-consumer</name>
<description>Demo project for Spring Boot</description>

<parent>
<groupId>com.xjtushilei</groupId>
<artifactId>spring-cloud-simple</artifactId>
<version>1.0-SNAPSHOT</version>
<relativePath/>
</parent>


<dependencies>
<!--远程调用-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-feign</artifactId>
</dependency>
</dependencies>


</project>
@@ -0,0 +1,21 @@
package com.xjtushilei;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
* @author shilei
* @Date 2017/6/13.
*/
@RestController
public class ConsumerController {

@Autowired
HelloRemoteInterface helloRemoteInterface;

@RequestMapping("/hello")
public String hello() {
return helloRemoteInterface.hi();
}
}
@@ -0,0 +1,17 @@
package com.xjtushilei;

import org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.RequestMapping;

/**
* @author shilei
* @Date 2017/6/13.
*/
@Component
@FeignClient(name = "eureka-client-1")
public interface HelloRemoteInterface {

@RequestMapping(value = "/hi")
public String hi();
}
@@ -0,0 +1,16 @@
package com.xjtushilei;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
import org.springframework.cloud.netflix.feign.EnableFeignClients;

@SpringBootApplication
@EnableEurekaClient
@EnableFeignClients
public class SpringCloudEurekaConsumerApplication {

public static void main(String[] args) {
SpringApplication.run(SpringCloudEurekaConsumerApplication.class, args);
}
}
11 changes: 11 additions & 0 deletions spring-cloud-eureka-consumer/src/main/resources/application.yml
@@ -0,0 +1,11 @@
server:
port: 8086

spring:
application:
name: eureka-consumer

eureka:
client:
service-url:
defaultZone: http://localhost:8761/eureka/
@@ -0,0 +1,14 @@
server:
port: 8761

spring:
application:
name: eureka-server

eureka:
instance:
lease-expiration-duration-in-seconds: 6
lease-renewal-interval-in-seconds: 2
client:
service-url:
defaultZone: http://localhost:8761/eureka/

0 comments on commit 71ff754

Please sign in to comment.