原文地址: 莫问博客
一、springcloud的版本说明:
springcloud项目是由多个独立项目集合而成的,每个项目都是独立的,各自进行自己的迭代和版本发布。所以springcloud不方便使用版本号来管理,而是使用版本名。以避免和子项目版本号的冲突。由于实际项目中使用过F版本和G版本,并且目前的最新版本也是G版本,出于稳定性考虑,接下来的教程cloud均采用Greenwich.SR1,spingboot使用2.1.4.RELEASE版本
二、创建服务注册中心
2.1、创建一个maven主工程spingcloud-study,注意文中使用的代码均是本人整理之后的,所以启动的时候注意注释掉其他服务,也可以直接下载项目源码进行学习,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>spingcloud</groupId>
<artifactId>spingcloud-study</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
<modules>
<module>eureka</module>
<module>user-service</module>
<module>external-api-service</module>
<module>config-server</module>
<module>admin-server</module>
</modules>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<spring-cloud.version>Greenwich.SR1</spring-cloud.version>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.4.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-feign</artifactId>
<version>1.4.7.RELEASE</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.11</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.58</version>
</dependency>
</dependencies>
<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>
</project> 2.2、创建eureka工程,然后在该工程下创建eureka-server1、eureka-server2、eureka-server3,eureka工程的添加依赖如下,这样它的子项目都有了该依赖
<?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">
<parent>
<artifactId>spingcloud-study</artifactId>
<groupId>spingcloud</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>eureka</artifactId>
<packaging>pom</packaging>
<modules>
<module>eureka-server1</module>
<module>eureka-server2</module>
<module>eureka-server3</module>
</modules>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka-server</artifactId>
<version>1.4.7.RELEASE</version>
</dependency>
</dependencies>
</project> 2.3、三个eureka子工程的application.yml文件如下,注意这里的eureka.client.serviceUrl.defaultZone配置项是在集群下,eureka服务互相注册发现,比如eureka-server1的配置就是另外两个eureka的地址
server:
port: 7081
spring:
application:
name: eureka-server #给你的微服务应用起一名字
eureka:
client:
serviceUrl:
defaultZone: http://localhost:7082/eureka/,http://localhost:7083/eureka/ 2.4、创建启动类,加入注解@EnableEurekaServer,以eureka-server1为例,启动类为
package com.lxd.eureka;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
/**
* @author liuxiaoding
* @data 2019/7/4
*/
@EnableEurekaServer
@SpringBootApplication
public class Eureka_1Application {
public static void main(String[] args) {
SpringApplication.run(Eureka_1Application.class,args);
}
}
2.5、依次启动eureka-server1、eureka-server2、eureka-server3,访问 http://localhost:7081/ ,如下图,三个rureka已经互相注册了
三、创建服务提供者,注册到eureka中
3.1、创建user-service工程,创建user-service1、user-service2子工程,无需加入依赖,因为我们在springcloud-study的父依赖中已经加入了
3.2、在启动类中加入@EnableEurekaClient注解,以user-service1为例
package com.lxd.user;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
import org.springframework.cloud.openfeign.EnableFeignClients;
/**
* @author liuxiaoding
* @data 2019/7/4
*/
@EnableEurekaClient
@SpringBootApplication
public class User_1Applcation {
public static void main(String[] args) {
SpringApplication.run(User_1Applcation.class,args);
}
}
Application.yml文件如下
spring:
application:
name: user-service
server:
port: 8002
eureka:
client:
serviceUrl:
defaultZone: http://localhost:7081/eureka/,http://localhost:7082/eureka/,http://localhost:7083/eureka/ 3.3依次启动user-service1、user-service2,浏览器打开 http://localhost:7081/ ,如下,该服务已注册到注册中心
2.6 结束,如有问题可以留言