SpringCloud(二):Eureka服务注册中心
一、Eureka服务注册与发现:
1.两核心:Eureka Server 和 Eureka Client
2.创建服务注册中心子工程
二、把Eureka加入到SpringCloud项目中
1.右击项目新建一个子模块(Eureka服务注册中心)
2.在pom.xml里加入依赖,表示该子工程是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>SpringCloud-Demo</artifactId>
<groupId>com.nine.winfred</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>shop-eureka</artifactId>
<packaging>war</packaging>
<version>1.0-SNAPSHOT</version>
<dependencies>
<!--eureka 服务端注册-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
</dependencies>
</project>
3.右击子工程下面的java新建主启动类
4.主启动类代码
package com.nine.winfred;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
@SpringBootApplication
@EnableEurekaServer
public class EurekaApplication {
public static void main(String[] args) {
SpringApplication.run(EurekaApplication.class,args);
}
}
5.右击子工程下面的 resources 新建 application.yml
6.application.yml 里加入代码
server:
port: 7001
spring:
application:
name: server-eureka
eureka:
instance:
hostname: localhost
client:
register-with-eureka: false #false表示不向注册中心注册自己
fetch-registry: false #false表示自己端就是注册中心,我的职责就是维护服务实例,并不需要去检索服务
service-url:
defaultZone: http://localhost:7001/eureka/
7.然后回到主启动类先运行一下测试配置是否成功
打开注册中心查看 http://localhost:(eureka服务端口号)/
进入到spring Eureka 注册页面表示成功
8.这样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>SpringCloud-Demo</artifactId>
<groupId>com.nine.winfred</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>shop-user</artifactId>
<packaging>war</packaging>
<version>1.0-SNAPSHOT</version>
<dependencies>
<!--公共模块-->
<dependency>
<groupId>com.nine.winfred</groupId>
<artifactId>shop-common</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<!--springboot-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- Eureka 客户端注册 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
</dependencies>
</project>
9.然后在application.yml里加入代码
server:
port: 8071
spring:
application:
name: server-user
eureka:
client:
register-with-eureka: true #表示是否将自己注册进EurekaServer,默认为true,改为false就不入驻
fetchRegistry: true #是否从EurekaServer抓取已有的注册信息,默认为true。单节点无所谓,集群必须设置为true才能配合ribbon使用负载均衡
service-url:
defaultZone: http://localhost:7001/eureka
10.主启动类里加入注解(表示该子工程要在Eureka注册中心注册)
@EnableEurekaClient
11.在(shop-user、shop-product、shop-order)这三个模块里进行同样的操作
①:导入依赖;
②:新建主启动类并加上 @EnableEurekaClient 注解;
③:在application.yml 里加入代码,各个模块的端口号不一样。如图)
12.全部配置完成之后,我们就可以开始测试了
我们这里有四个主启动类,配置不同的端口号就是为了能让他们同时运行,首先我们要先运行Eureka 的主启动类,再运行其他子工程的主启动类
13.四个都运行成功了,且未报错,我们就可以打开注册中心查看
http://localhost:(eureka服务端口号)/
14.可以看到三个子工程都在Eureka中注册成功了
三、配置控制台
有些人的启动之后的控制台可能是这样的,设置成我这样的话需要这样设置
1.先把这个打开,点击即可
2.点击Services
3.选择SpringBoot
4.成功