基础应用

Eureka简介

  1. Eureka是一个基于REST的服务,主要在AWS云中使用,定位服务来进行中间层服务器的负载均衡和故障转移。
  2. SpringCloud封装了Netflix公司开发的Eureka模块来实现服务注册和发现。Eureka采用了C-S的设计架构。EurekaServer作为服务注册功能的服务器, 它是服务注册中心。而系统中的其他微服务,使用Eureka的客户端连接到Eureka Server,并维持心跳连接。这样系统的维护人员就可以通过Eureka Server 来监控系统中各个微服务是否正常运行。SpringCloud的一些其他模块(比如Zuul)就可以通过Eureka Server来发现系统中的其他微服务,并执行相关的逻辑。
  3. Eureka由两个组件组成:Eureka服务器和Eureka客户端。Eureka服务器用作服务注册服务器。Eureka客户端是一个java客户端,用来简化与服务器的交互、作为轮询负载均衡器,并提供服务的故障切换支持。

版本要求

搭建Eureka服务注册中心

新建一个springboot项目,命名为eureka-server,spring-cloud版本为:Hoxton.SR5

添加依赖

  1. parent的pom配置
<modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.3.0.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.xx</groupId><artifactId>study-springcloud</artifactId><version>0.0.1-SNAPSHOT</version><name>study-springcloud</name><packaging>pom</packaging><description>Demo project for Spring Boot</description><properties><java.version>1.8</java.version><spring-cloud.version>Hoxton.SR5</spring-cloud.version></properties><modules><module>eureka</module></modules><dependencyManagement><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>${spring-cloud.version}</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement>
  1. Eurake Server依赖pom 。主要依赖如下:
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>

yml配置

server:port: 8761
eureka:instance:hostname: localhostclient:register-with-eureka: falsefetch-registry: falseservice-url:defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
spring:application:name: eureka-server

启动类

只需要一个注解@EnableEurekaServer,这个注解需要在springboot工程的启动application类上添加。

@SpringBootApplication
@EnableEurekaServer
public class EurekaServerApplication {public static void main(String[] args) {SpringApplication.run(EurekaServerApplication.class, args);}}

  • Eureka Server既可以独立部署,也可以集群部署。在集群部署的情况下,Eureka Server间会进行注册表信息同步的操作,这时被同步注册表信息的Eureka Server将会被其他同步注册表信息的Eureka Server称为peer。
  • 上述配置中的service-url指向的注册中心为实例本身,通常来讲,一个Eureka Server也是Eureka Client,它会尝试注册自己,所以需要至少一个注册中心的URL来定位对等点peer。如果不提供这样一个注册端点,注册中心也能工作,但是会在日志中打印无法向peer注册自己的信息。在独立(Standalone)Eureka Server的模式下,Eureka Server一般会关闭作为客户端注册自己的行为。
  • Eureka Server和Eureka Client之间的联系主要通过心跳的方式实现,心跳(Heartbeat)即Eureka Client定时向Eureka Server汇报本服务实例当前的状态,维护本服务实例在注册表中有效性。
  • Eureka Serve需要随时维持最新的服务实例信息,所以在注册表中的每个服务实例都需要定期发送心跳到Server中以使自己的注册保持最新的状态(数据一般直接保存在内存中)。为了避免Eureka Client在每次服务间调用都向注册中心请求依赖服务实例的信息,Eureka Client将定时从Eureka Server中拉取注册表中的信息,并将这些信息缓存到本地,用于服务发现。

搭建Eureka服务提供者

添加依赖

<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>

yml配置

server:port: 8080
eureka:client:service-url:defaultZone: http://localhost:8761/eureka/
spring:application:name: eureka-provider

提供服务接口

@RestController
@RequestMapping("/api")
public class ProviderController {@Value("${server.port}")private String serverPort;@PostMapping("/sayHello")public String sayHello(String name) {return "我是服务端" + serverPort + ",你好" + name;}
}

启动类

@SpringBootApplication
@EnableEurekaClient
public class EurekaProviderApplication {public static void main(String[] args) {SpringApplication.run(EurekaProviderApplication.class, args);}}

搭建Eureka服务调用者

添加依赖

<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>

yml配置

server:port: 8081servlet:context-path: /consumer
eureka:client:service-url:defaultZone: http://localhost:8761/eureka/
spring:application:name: eureka-consumer

消费者接口

@RestController
@RequestMapping("/api")
public class ConsumerController {@Resourceprivate RestTemplate restTemplate;@PostMapping("/askHello")public String askHello(){MultiValueMap<String, String> body = new LinkedMultiValueMap<>();body.add("name", "consumer8081");ResponseEntity<String> responseEntity = restTemplate.postForEntity("http://EUREKA-PROVIDER/provider/api/sayHello", body,String.class);return responseEntity.getBody();}
}

RestTemplate配置

@Configuration
public class RestTemplateConfig {/*** @return org.springframework.web.client.RestTemplate* @description 注入一个可以进行负载均衡的Rest Temple用于服务问调用* @author fengfan* @date 2022/5/18 14:43*/@Bean@LoadBalancedpublic RestTemplate restTemplate(){return new RestTemplate();}}

启动类

@SpringBootApplication
@EnableEurekaClient
public class EurekaConsumerApplication {public static void main(String[] args) {SpringApplication.run(EurekaConsumerApplication.class, args);}}

测试

SpringCloud笔记(Hoxton)——Netflix之Eureka服务注册与发现相关推荐

  1. 跟着狂神学SpringCloud(Rest环境搭建+Eureka服务注册与发现+ribbon+Feign负载均衡+Hystrix+服务熔断+Zuul路由网关+SpringCloud config分布)

    跟着狂神学SpringCloud SpringCloud 回顾之前的知识- JavaSE 数据库 前端 Servlet Http Mybatis Spring SpringMVC SpringBoot ...

  2. SpringCloud[01]Eureka服务注册与发现

    文章目录 Eureka服务注册与发现 1. Eureka基础知识 1. 什么是服务治理 2. 什么是服务注册与发现 3. Eureka包含两个组件:**Eureka Server** 和 **Eure ...

  3. springcloud Eureka服务注册和发现

    一,Eureka基本介绍: Spring Cloud 封装了 Netflix 公司开发的 Eureka 模块来实现服务注册和发现(请对比Zookeeper). Eureka 采用了 C-S 的设计架构 ...

  4. 二、Eureka服务注册与发现

    SpringCloud系列目录: 一.SpringCloud简介 二.Eureka服务注册与发现 三.Eureka注册与发现之Eureka Comsumer 四.Eureka.Server Provi ...

  5. 详解Eureka服务注册与发现和Ribbon负载均衡【纯理论实战】

    Eureka服务注册与发现 Eureka简介 在介绍Eureka前,先说一下CAP原则 CAP原则又称CAP定理,指的是在一个分布式系统中,Consistency(一致性). Availability ...

  6. 【夯实Spring Cloud】Spring Cloud中的Eureka服务注册与发现详解

    本文属于[夯实Spring Cloud]系列文章,该系列旨在用通俗易懂的语言,带大家了解和学习Spring Cloud技术,希望能给读者带来一些干货.系列目录如下: [夯实Spring Cloud]D ...

  7. Eureka服务注册与发现:什么是服务注册与发现,Server注册中心

    Eureka服务注册与发现 一套微服务架构的系统由很多单一职责的服务单元组成,而每个服务单元又有众多运行实例.例如,世界上最大的收费视频网站Netflix的系统是由600多个服务单元构成的,运行实例的 ...

  8. SpringCloud系列之Eureka服务注册及发现

    Eureka 1. Eureka简介 1.1 什么是Eureka 2. Eureka实例 2.1 编写Eureka Server 2.2 编写Eureka Client 3. Eureka源码解析 3 ...

  9. SpringCloud与微服务Ⅴ --- Eureka服务注册与发现

    一.Eureka是什么 Eureka是Netflix的一个子模块,也是核心模块之一.Eureka是一个基于REST的服务,用于定位服务,以实现云端中间层服务发现和故障转移.服务注册与发现对于微服务架构 ...

最新文章

  1. 小目标 | DAX高级实践-Power BI与Excel联合应用
  2. CSS问题的撰写准则
  3. 三星 P600 android,顶级硬件S pen笔手写—三星P600_三星 Galaxy Note 10.1 2014 Edition P600_平板电脑市场-中关村在线...
  4. 数据库实现,以及工厂方法模式实现
  5. linux环境部署常用命令
  6. bolt在java,java – 在Apache Storm中将不同的元组从1个spout发送到不同的bolt
  7. FILEUTILS 介绍
  8. (转)微服务架构的理论基础 - 康威定律
  9. 【机器学习基础】常用激活函数(激励函数)理解与总结
  10. 计算机传真,电脑收发传真
  11. 利用色彩范围和钢笔工具抠图
  12. android flurry 教程,Flurry没有集成到Android应用中
  13. C#微信公众号开发实践--通过控制台程序发布图文消息(2020/8/4实测可用)
  14. c# api接口管理
  15. 利用程序随机构造N个已解答的数独棋盘
  16. 【Linux】资源查看top显示信息说明|top、iftop、iotop、htop、atop工具
  17. Linux基本命令-grep 命令
  18. 百度推广建立推广计划和推广单元技巧
  19. 818品牌logo背后的故事
  20. 调用OpenLayers,实现简单的地图搜索

热门文章

  1. 老挑毛 win7 linux,老毛桃u盘装win7系统|老挑毛u盘装系统步骤|老挑毛u盘装系统-系统城...
  2. 电阻参数_关于电阻的相关参数
  3. ITRON的内存管理,中断处理,时钟管理
  4. 只需两分钟,如何下载b站高清封面图片
  5. 跨专业考研应该怎么做?
  6. cad特性匹配快捷键命令_CAD复制图形或特性的相关命令和操作
  7. CCNP13:QOS【分类、队列、标记、丢弃】技术
  8. 铁道部正在研究高铁月票 重申上座率120%准确可靠
  9. ss terminal下客户端sslocal+proxychains或者privoxy
  10. 存储、计算、分布式知识点思维导图(收集整理适合小白)