场景
SpringCloud学习之运行第一个Eureka程序:
https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/90611451
SpringCloud -创建统一的依赖管理:
https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/102530574
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通过心跳检查、客户端缓存等机制,确保了系统的高可用性、灵活性和可伸缩性。
注:
博客:
https://blog.csdn.net/badao_liumang_qizhi
关注公众号
霸道的程序猿
获取编程相关电子书、教程推送与免费下载。
实现
参照上面创建统一的依赖管理的实现,新建文件夹以及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>https://blog.csdn.net/badao_liumang_qizhi</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目录
然后将其设置为源码目录
然后再新建src/main/resources
然后将其设置为资源目录
然后再java下新建package,这里以完整项目名作为后缀包名
然后新建应用启动类EurekaApplication
添加如下代码
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
然后再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,不然会提示程序找不到启动类。
然后运行启动类。打开浏览输入:
localhost:8761
源码下载
https://download.csdn.net/download/badao_liumang_qizhi/11858953