上一节简单讲解了SpringCloud的一些东西和我要实现的功能,大致的思路框架。这一节我们将把核心流程展示如下。
一、创建maven父项目(负责整体项目的编译和打包功能,没有实际代码)
pom文件如下所示:
<?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>mymall-master</groupId>
<artifactId>mymall-master</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>pom</packaging>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.3.5.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<modules>
<module>common-moudle</module>
<module>accountservice</module>
<module>eurekaserver</module>
<module>mallserviceApp</module>
</modules>
</project>
二、创建子项目
(1)Eureka-Server 服务管制中心
pom文件如下:
<?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>
<parent>
<groupId>mymall-master</groupId>
<artifactId>mymall-master</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<groupId>eureka-server</groupId>
<artifactId>eureka-server</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka-server</artifactId>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Brixton.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
Application.class如下:
package com.application;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
@EnableEurekaServer
@SpringBootApplication
public class Application {
public static void main(String[] args){
new SpringApplicationBuilder(Application.class).web(true).run(args);
}
}
application-server1.properties-----application-server2.properties-----application-server3.properties文件如下:
spring.application.name=eureka-server
server.port=1111
eureka.instance.hostname=server1
eureka.client.serviceUrl.defaultZone=http://server2:1112/eureka/,http://server3:1113/eureka/
spring.application.name=eureka-server
server.port=1112
eureka.instance.hostname=server2
eureka.client.serviceUrl.defaultZone=http://server1:1111/eureka/,http://server3:1113/eureka/
spring.application.name=eureka-server
server.port=1113
eureka.instance.hostname=server3
eureka.client.serviceUrl.defaultZone=http://server1:1111/eureka/,http://server2:1112/eureka/
其中server1 、server2、server3的变量设置如下:(本人是win7)
win:C:\Windows\System32\drivers\etc\hosts文件中,添加:
127.0.0.1 server1
127.0.0.1 server2
127.0.0.1 server3
编译项目,启动服务管制中心,本例子是启动了三个端口的服务管制中心,代表了三台服务器:
java - jar eureka-server-1.0-SNAPSHOT.jar --spring.profiles.active=server1
java - jar eureka-server-1.0-SNAPSHOT.jar --spring.profiles.active=server2
java - jar eureka-server-1.0-SNAPSHOT.jar --spring.profiles.active=server3