Eureka使用总结(自用)
目录
至此,完成对Eureka服务端的实现,我们对子项目进行运行:
访问localhost:6868/,如果显示主页,则说明服务端运行成功
其余类这里不过多展示,同样运行application,成功运行
什么是Eureka
是指服务注册与发现组件,用于实现服务的自动注册与发现,Spring Cloud Eureka 是对Netflix公司的Eureka的二次封装,它实现了服务治理的功能,Spring Cloud Eureka提供服务端与客户端,服务端即是Eureka服务注册中心,客户端完成微服务向Eureka服务的注册与发现。服务端和客户端均采用Java语言编写。
Eureka作为初代的服务注册和发现组件,其基本思想和原理对于后来的Nacos有深远的影响,在nacos中也能隐约看到其身影
本文简单演示Eureka的搭建,为后续实训项目接轨
有趣故事
Eureka的故事来源于人人追求真善美的古希腊,“Eureka”是希腊语,意思是“我发现了!”
这个有魔力的单词是来源于阿基米德。在公元前200多年,他在洗澡时发现了证明王冠是否纯金的方法(黄金密度),他激动地一边大喊“Eureka!”一边跳出澡盆奔去王宫,连衣服都忘了穿。后来人们用Eureka这个词来形容洞察浮现的瞬间。
SMS、库存、积分服务器,服务迁移变更等需要修改相应的URL地址,怎么不修改URL地址?
在微服务中,spring-provider对外提供服务,需要对外暴露自己的地址。而consumer(调用者)需要记录服务提供者的地址。将来地址出现变更,还需要及时更新。这在服务较少的时候并不觉得有什么,但是在现在日益复杂的互联网环境,一个项目肯定会拆分出十几,甚至数十个微服务。此时如果还人为管理地址,不仅开发困难,将来测试、发布上线都会非常麻烦
这就好比是 网约车出现以前,人们出门叫车只能叫出租车。一些私家车想做出租却没有资格,被称为黑车。而很多人想要约车,但是无奈出租车太少,不方便。私家车很多却不敢拦(没有人告诉哪些车私家车可以拉人),而且满大街的车,谁知道哪个才是愿意载人的。一个想要,一个愿意给,就是缺少引子,缺乏管理啊。
此时滴滴这样的网约车平台出现了,所有想载客的私家车全部到滴滴注册,记录你的车型(服务类型),身份信息(联系方式)。这样提供服务的私家车,在滴滴那里都能找到,一目了然。
此时要叫车的人,只需要打开APP,输入你的目的地,选择车型(服务类型),滴滴自动安排一个符合需求的车到你面前,为你服务,完美!
Eureka做什么?
Eureka就好比是滴滴中心,负责管理、记录服务提供者的信息。服务调用者无需自己寻找服务,而是把自己的需求告诉Eureka,然后Eureka会把符合你需求的服务告诉你。
同时,服务提供方与Eureka之间通过“心跳” 机制进行监控,当某个服务提供方出现问题,Eureka自然会把它从服务列表中剔除。
这就实现了服务的自动注册、发现、状态监控。
Eureka服务端:
在项目中搭建Eureka子模块 ,目录参考如下:
maven依赖:
<?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>org.flowerfog</groupId>
<artifactId>staff_parent</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<groupId>org.example</groupId>
<artifactId>staff-eureka</artifactId>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
<!--feign -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
<dependency>
<groupId>org.flowerfog</groupId>
<artifactId>staff-common</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>org.flowerfog</groupId>
<artifactId>staff-common-model</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
</project>
Application:
package org.flowergfog;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
/**
* Eure服务端
*/
@SpringBootApplication
@EnableEurekaServer
public class EureApplication {
public static void main(String[] args) {
SpringApplication.run(EureApplication.class);
}
}
配置:
#eureka服务的配置文件
server:
port: 6868 #服务端口
spring:
application:
name: staff-employee #指定服务名
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/staff?useUnicode=true&characterEncoding=utf8
username: root
password: root
eureka:
client:
registerWithEureka: false #是否将自己注册到Eureka服务中,本身就是所有无需注册
fetchRegistry: false #是否从Eureka中获取注册信息
serviceUrl: #Eureka客户端与Eureka服务端进行交互的地址
defaultZone: http://127.0.0.1:${server.port}/eureka/
至此,完成对Eureka服务端的实现,我们对子项目进行运行:
访问localhost:6868/,如果显示主页,则说明服务端运行成功
Eureka客户端:
就是简单的在配置文件中搭建对url访问的权限
yml:
eureka:
client:
service-url:
defaultZone: http://localhost:6868/eureka/
server:
port: 9003
spring:
application:
name: staff-employee #指定服务名
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/staff?useUnicode=true&characterEncoding=utf8
username: root
password: root
jpa:
database: MySQL
show-sql: true
open-in-view: true
redis:
host: 127.0.0.1
port: 6379
其余类这里不过多展示,同样运行application,成功运行
至此,Eureka的简单实现完成
原文地址:https://blog.csdn.net/m0_73302939/article/details/144788627
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!