0
点赞
收藏
分享

微信扫一扫

SpringCloud-服务注册与实现-Eureka创建服务注册中心(附源码下载)

洛茄 2023-03-11 阅读 59


场景


Rureka(服务发现框架)

Eureka是Netflix开发的服务发现框架,本身是一个基于REST的服务,主要用于定位运行在AWS域中的中间层服务,以达到负载均衡和中间层服务故障转移的目的。SpringCloud将它集成在其子项目spring-cloud-netflix中,以实现SpringCloud的服务发现功能。
Eureka包含两个组件:Eureka Server和Eureka Client。
Eureka Server提供服务注册服务,各个节点启动后,会在Eureka Server中进行注册,这样EurekaServer中的服务注册表中将会存储所有可用服务节点的信息,服务节点的信息可以在界面中直观的看到。
Eureka Client是一个java客户端,用于简化与Eureka Server的交互,客户端同时也就是一个内置的、使用轮询(round-robin)负载算法的负载均衡器。
在应用启动后,将会向Eureka Server发送心跳,默认周期为30秒,如果Eureka Server在多个心跳周期内没有接收到某个节点的心跳,Eureka Server将会从服务注册表中把这个服务节点移除(默认90秒)。
Eureka Server之间通过复制的方式完成数据的同步,Eureka还提供了客户端缓存机制,即使所有的Eureka Server都挂掉,客户端依然可以利用缓存中的信息消费其他服务的API。综上,Eureka通过心跳检查、客户端缓存等机制,确保了系统的高可用性、灵活性和可伸缩性。

注:

实现

参照上面创建统一的依赖管理的实现,新建文件夹以及pom文件

然后复制如下代码到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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<parent>
<groupId>com.badao</groupId>
<artifactId>hello-spring-cloud-dependencies</artifactId>
<version>1.0.0-SNAPSHOT</version>
<relativePath>../hello-spring-cloud-dependencies/pom.xml</relativePath>
</parent>

<artifactId>hello-spring-cloud-eureka</artifactId>
<packaging>jar</packaging>

<name>hello-spring-cloud-eureka</name>
<url>javascript:void(0)</url>
<inceptionYear>2019-Now</inceptionYear>

<dependencies>
<!-- Spring Boot Begin -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!-- Spring Boot End -->

<!-- Spring Cloud Begin -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
<!-- Spring Cloud End -->
</dependencies>

<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<!--指定程序入口类-->
<mainClass>com.badao.hello.spring.cloud.eureka.EurekaApplication</mainClass>
</configuration>
</plugin>
</plugins>
</build>
</project>

注意:

这里的parent标签要与上面的统一的依赖管理对应起来。

要修改指定的程序入口类为自己相应的路径。

然后手动将pom.xml托管。

然后新建src/main/java目录

SpringCloud-服务注册与实现-Eureka创建服务注册中心(附源码下载)_Eureka

 

然后将其设置为源码目录

SpringCloud-服务注册与实现-Eureka创建服务注册中心(附源码下载)_Server_02

 

然后再新建src/main/resources

SpringCloud-服务注册与实现-Eureka创建服务注册中心(附源码下载)_xml_03

 

然后将其设置为资源目录

SpringCloud-服务注册与实现-Eureka创建服务注册中心(附源码下载)_Server_04

 

然后再java下新建package,这里以完整项目名作为后缀包名

SpringCloud-服务注册与实现-Eureka创建服务注册中心(附源码下载)_Server_05

 

然后新建应用启动类EurekaApplication

SpringCloud-服务注册与实现-Eureka创建服务注册中心(附源码下载)_spring_06

 

添加如下代码

package com.badao.hello.spring.cloud.eureka;

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);
}
}

注:

添加注解@EnableEurekaServer表示启动一个服务注册中心

如果代码有红色错误出现,需要设置JDK

SpringCloud-服务注册与实现-Eureka创建服务注册中心(附源码下载)_Eureka_07

 

然后再resources下新建application.yml

spring:
application:
name: hello-spring-cloud-eureka

server:
port: 8761

eureka:
instance:
hostname: localhost
client:
registerWithEureka: false
fetchRegistry: false
serviceUrl:
defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/

注:

1.服务注册与发现是根据上面的name去寻找。

2.port表示端口号。

3.hostname表示eureka服务的地址,这里是本地所以是localhost。

4.client下的两个为false的配置,表示这是服务端,如果不加则表示为客户端。

5.serviceURL设置eureka的地址。

然后打开Maven面板,双击Install,不然会提示程序找不到启动类。

SpringCloud-服务注册与实现-Eureka创建服务注册中心(附源码下载)_Eureka_08

 

然后运行启动类。打开浏览输入:

localhost:8761

SpringCloud-服务注册与实现-Eureka创建服务注册中心(附源码下载)_Server_09

 


举报

相关推荐

0 条评论