从零搭建springcloud(二)注册中心 Eureka-Client (F版本)

从零搭建springcloud(二)注册中心 Eureka-Client (F版本)

  • 创建服务 Eureka-Client(注册中心客户端)
    • 创建一个新的springboot项目-生产者
      • 修改pom.xml文件
      • 编写application配置文件。
      • 在启动类上添加注解
      • 测试启动
    • 创建第二个eureka-client服务-消费者
      • 修改pom.xml文件
      • 修改配置文件
      • 在启动类中添加注解
      • 测试启动

创建服务 Eureka-Client(注册中心客户端)

在此之前,我们已经搭建了一个Eureka-Server服务:
从零搭建springcloud(一)注册中心 Eureka-Server (F版本)
Eureka-Server已经将各个微服务之间关联起来。现在我们来搭建Eureka-Client服务。

创建一个新的springboot项目-生产者

现在来搭建第一个Eureka-Client服务:生产者。
由于使用IDEA自带的springboot创建工具经常卡住,所以这次来介绍另一种方式。
进入 Spring Initializr 中
配置如下参数
从零搭建springcloud(二)注册中心 Eureka-Client (F版本)_第1张图片
然后它会自动下载创建好的springboot项目
在这里插入图片描述
解压并导入
从零搭建springcloud(二)注册中心 Eureka-Client (F版本)_第2张图片
选择maven项目。next。
从零搭建springcloud(二)注册中心 Eureka-Client (F版本)_第3张图片
将jdk修改为1.8
从零搭建springcloud(二)注册中心 Eureka-Client (F版本)_第4张图片
从零搭建springcloud(二)注册中心 Eureka-Client (F版本)_第5张图片
修改为java8版本,点击ok
从零搭建springcloud(二)注册中心 Eureka-Client (F版本)_第6张图片
目录结构如下。
从零搭建springcloud(二)注册中心 Eureka-Client (F版本)_第7张图片

修改pom.xml文件

具体内容及原因如下:

<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.0.3.RELEASE</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>
	<groupId>com.yang</groupId>
	<artifactId>springcloud-eureka-service</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<name>springcloud-eureka-service</name>
	<description>Demo project for Spring Boot</description>

	<properties>
		<java.version>1.8</java.version>
	</properties>

	<dependencies>

		<!--引入test starter  包括junit、assertj等依赖-->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
		</dependency>

		<!--引入eureka-client依赖,表明这是一个eureka-client服务-->
		<!--
			注意:在springcloud F版本后,
			Spring Boot 1.5.x 升级为 Spring Boot 2.0.x
			Spring Cloud Edgware SR4 => Spring Cloud Finchley.RELEASE
			依赖也由
			spring-cloud-starter-eureka-client
			升级为
			spring-cloud-starter-netflix-eureka-client
		-->
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
		</dependency>

		<!--引入web-starter,他表示web的场景,自动帮我们引入了web模块开发需要的相关jar包-->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>

	</dependencies>

	<!--引入springcloud的配置管理,按住Ctrl+左键单击artifactId可以查看其中具体的组件版本-->
	<dependencyManagement>
		<dependencies>
			<dependency>
				<groupId>org.springframework.cloud</groupId>
				<artifactId>spring-cloud-dependencies</artifactId>
				<!--指定springcloud版本为Finchley.RELEASE-->
				<version>Finchley.RELEASE</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
		</dependencies>
	</dependencyManagement>

	<build>
		<plugins>
			<!--引入maven插件-->
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>

</project>

编写application配置文件。

与第一期相同,重命名为application.yml文件。
配置文件内容如下:

#指定生产者服务启动的端口号
server:
  port: 8704
eureka:
  #定义主机名称
  instance:
    hostname: localhost
  #下面为eureka客户端的配置信息
  client:
    #指定注册中心的路径
    service-url:
      defaultZone: http://${eureka.instance.hostname}:8700/eureka/
#定义这个服务的名字
spring:
  application:
    name: eureka-service

在启动类上添加注解

进入启动类
从零搭建springcloud(二)注册中心 Eureka-Client (F版本)_第8张图片
在启动类上添加注解@EnableDiscoveryClient
在此解释一下这个注解的作用,类似于spring容器对bean的管理,添加@EnableDiscoveryClient注解后,这个服务就可以被注册中心扫描到,并注册到Eureka-Server中
代码如下

package com.yang.springcloudeurekaservice;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;

@SpringBootApplication
@EnableDiscoveryClient
public class SpringcloudEurekaServiceApplication {

	public static void main(String[] args) {
		SpringApplication.run(SpringcloudEurekaServiceApplication.class, args);
	}

}

测试启动

首先启动eureka-server服务
启动成功后,启动eureka-service服务。
打开注册中心 http://localhost:8700/
可以看到我们的eureka-service服务已经注册到eureka-server中了。
从零搭建springcloud(二)注册中心 Eureka-Client (F版本)_第9张图片

创建第二个eureka-client服务-消费者

创建→解压→导入→配置文件过程同上,在此不在重复。
取名为springcloud-eureka-consume

修改pom.xml文件

如下:

<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.0.3.RELEASE</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>
	<groupId>com.yang</groupId>
	<artifactId>springcloud-eureka-consume</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<name>springcloud-eureka-consume</name>
	<description>Demo project for Spring Boot</description>
	<properties>
		<java.version>1.8</java.version>
	</properties>

	<dependencies>

		<!--引入test starter  包括junit、assertj等依赖-->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
		</dependency>

		<!--引入eureka-client依赖-->
		<!--
			注意:在springcloud F版本后,
			Spring Boot 1.5.x 升级为 Spring Boot 2.0.x
			Spring Cloud Edgware SR4 => Spring Cloud Finchley.RELEASE
			依赖也由
			spring-cloud-starter-eureka-client
			升级为
			spring-cloud-starter-netflix-eureka-client
		-->
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
		</dependency>

		<!--引入web-starter,他表示web的场景,自动帮我们引入了web模块开发需要的相关jar包-->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>

	</dependencies>

	<!--引入springcloud的配置管理,按住Ctrl+左键单击artifactId可以查看其中具体的组件版本-->
	<dependencyManagement>
		<dependencies>
			<dependency>
				<groupId>org.springframework.cloud</groupId>
				<artifactId>spring-cloud-dependencies</artifactId>
				<!--指定springcloud版本为Finchley.RELEASE-->
				<version>Finchley.RELEASE</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
		</dependencies>
	</dependencyManagement>

	<build>
		<plugins>
			<!--引入maven插件-->
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>

</project>

修改配置文件

application中,启动端口设置为8801.
如下:

#指定生产者服务启动的端口号
server:
  port: 8801
eureka:
  #定义主机名称
  instance:
    hostname: localhost
  #下面为eureka客户端的配置信息
  client:
    #指定注册中心的路径
    service-url:
      defaultZone: http://${eureka.instance.hostname}:8700/eureka/
#定义这个服务的名字
spring:
  application:
    name: eureka-consume

在启动类中添加注解

同上

测试启动

可以看到eureka-consume服务也已经注册到eureka-server中
从零搭建springcloud(二)注册中心 Eureka-Client (F版本)_第10张图片
关于如何在微服务之间通信,请看下一篇博客
从零搭建springcloud(三)服务提供与调用 Feign 、 RestTemplate

你可能感兴趣的:(spring-cloud,eureka,搭建,java,spring,boot,eureka,cloud)