Springcloud笔记(2)-Eureka服务注册中心

这篇具有很好参考价值的文章主要介绍了Springcloud笔记(2)-Eureka服务注册中心。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Eureka服务注册

Eureka作为一个微服务的治理中心,它是一个服务应用,可以接收其他服务的注册,也可以发现和治理服务实例。

服务治理中心是微服务(分布式)架构中最基础和最核心的功能组件,它主要对各个服务实例进行管理,包括服务注册和服务发现

本文参考:springcloud教程 -- 1.快速搭建入门级demo,看这一篇就够了-CSDN博客

Springcloud笔记(2)-Eureka服务注册中心,springcloud,eureka,spring cloud

两个组件

Eureka包含两个组件:Eureka Server和Eureka Client。 

Eureka Server提供服务注册,各个节点启动后,会在Eureka Server中进行注册,这样Eureka Server中的服务注册表中将会存储所有可用服务节点的信息,服务节点的信息可以在界面中直观的看到。

Eureka Client用于简化与Eureka Server的交互,在应用启动后,将会向Eureka Server发送心跳,如果Eureka Server在多个心跳周期内没有接收到某个节点的心跳,Eureka Server将会从服务注册表中把这个服务节点移除。

eureka模块

这里的一个模块就是一个微服务。

主要依赖,这个依赖用于指明当前服务为eureka server。

 <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
            <version>4.0.0</version>
        </dependency>

新建一个服务,需要在主工程上右键选择new->module

Springcloud笔记(2)-Eureka服务注册中心,springcloud,eureka,spring cloud

j-cloud-server-eureka的启动类需加上注解@EnableEurekaServer, 来声明其是一个基于Eureka的服务注册发现中心

注解@EnableEurekaServer,它代表着在Spring Boot应用启用之时,也启动Eureka服务器。此时,我们以Java Application的形式运行,就能够启用Eureka服务治理中心

eureka的配置文件,定义了defaultZone: http://jorian:123456@localhost:8761/eureka 这个配置用来声明要将服务注册到哪个eureka上,但是本服务是eureka server服务,所以用reguster-with-eureka为false来指明不需要注册本服务。(是否注册都可以)

Springcloud笔记(2)-Eureka服务注册中心,springcloud,eureka,spring cloud

配置介绍

●spring.application.name:配置的是Spring应用的名称,也是微服务的名称,在Spring Cloud中,一个微服务可以拥有多个实例。

●eureka.client.register-with-eureka:这个配置项是取消当前微服务,寻找其他Eureka服务治理中心进行注册。

●eureka.client.fetch-registry:取消服务获取功能,关于服务获取,本章后续会讨论。●eureka.client.serviceUrl.defaultZone:如果需要注册微服务,可以通过这个属性来配置服务治理中心的注册地址,完成服务注册的功能。 

启动主程序,访问http://localhost:8761/

Springcloud笔记(2)-Eureka服务注册中心,springcloud,eureka,spring cloud

可以看到没有注册任何服务。

生产者模块

j-cloud-provider1

依赖,该依赖用来配置eureka的client服务。

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

在该服务的application添加eureka配置,指明要将服务注册到这个eureka地址上。这就是服务注册。

配置文件的application name还指明了这个服务的名字。

Springcloud笔记(2)-Eureka服务注册中心,springcloud,eureka,spring cloud

启动类添加注解:@EnableEurekaClient来声明其是一个client(生产者或者消费者,在这里他是生产者)

启动该程序,在euraka可以看到该服务已注册到eureka上。这就是服务发现。

Springcloud笔记(2)-Eureka服务注册中心,springcloud,eureka,spring cloud

新建一个provider2注册到eureka,并启用。

两个生产者要用同样的application name,代表同一个应用的两个实例

(两个生产者模块用来演示负载均衡策略) 

架构图

所谓微服务,是指完成某一业务功能的独立系统。一个微服务可以有多个实例,所谓实例,是指一个具体的服务节点。

为什么要有多个服务节点?

1、高可用,即使某个节点不可用时,服务仍可用。

2、高性能,在大并发情况下,分摊请求压力。

实例对Eureka服务治理中心发送REST风格的请求,将自己的相关配置发送到Eureka服务治理中心完成注册。

Springcloud笔记(2)-Eureka服务注册中心,springcloud,eureka,spring cloud

消费者模块

新建消费者模块consumer并配置。

url的服务器和端口被定义为了provider-user,与生产者配置项spring.application.name是一致的,这样Eureka服务治理中心就知道你在请求哪个服务。

@RequestMapping("/hello")
    public String hello(){
        //指出服务地址   http://{服务提供者应用名名称}/{具体的controller}
        String url="http://provider-user/user/sayHello";
 
        //返回值类型和我们的业务返回值一致
        return resttemplate.getForObject(url, String.class);

访问http://localhost:8001/hello

即可以访问到生产者返回的信息。 

负载均衡

eureka配置了ribbon负载均衡策略(如果已经在模块中引入了spring-cloud-starter-netflix-eureka-client,它的父pom便会自动引入spring-cloud-starter-netflix-ribbon)

消费者的请求会在客户端被决定好发送到哪台服务提供者进行处理。

重复访问消费者地址N次,因为配置了两个生产者,http://localhost:8001/hello,会发现返回结果在两个provider切换,实现了负载均衡

Springcloud笔记(2)-Eureka服务注册中心,springcloud,eureka,spring cloud

Springcloud笔记(2)-Eureka服务注册中心,springcloud,eureka,spring cloud

多个服务注册中心

实际使用时,部署多个服务注册中心,防止服务注册中心宕机导致服务不可用。 

源码:2504973175/j-cloud - 码云 - 开源中国 (gitee.com)

Eureka服务治理原理

Eureka服务治理有以下几个重要概念。

服务治理中心-就是eureka服务

服务提供者--注册到eureka上,所以eureka可以对其进行治理。在本文中就是provider-user。

服务消费者-  服务的消费者会调用其他微服务,如本文消费者调用的provider-user,Eureka会解析类似provider-user这样的微服务名称。解析的过程是,首先根据这个名称从服务治理中心获取服务提供者的实例列表,保存在本地,然后通过特定的负载均衡的策略确定具体的实例,最后通过请求该实例获取数据。例子中使用了Ribbon来实现服务消费。

看另一个例子

Springcloud笔记(2)-Eureka服务注册中心,springcloud,eureka,spring cloud

 微服务实例和服务治理中心的关系

任何的微服务都可以对Eureka服务治理中心(也称为Eureka服务端)发送REST风格的请求。在Eureka的机制中,一般是由具体的微服务(也称为Eureka客户端)来主动维持它们之间的关系。微服务向注册中心发送restful风格请求,可以请求在服务中心注册、续约、下线

注册:微服务启动后,向eureka发消息注册自己的实例。

续约:微服务实例会按照一个频率对Eureka服务器维持心跳,告诉Eureka该实例是可用的,借此来避免被Eureka服务端剔除出去

下线:在系统出现故障,需要停止或者重启某个微服务实例的时候,在正常操作下,实例会对Eureka发送下线REST风格请求,告知服务治理中心,这样客户端就不能再请求这个实例了

服务治理中心互相关系

Eureka可以有效地管理具体的微服务实例。但是服务治理中心之间和本身也会提供一定的服务,甚至可以说服务治理中心也是Eureka客户端,因为它也可以注册到其他的Eureka服务器中,被其他的Eureka服务器治理

相互复制:Eureka本身也会相互注册,以保证高可用和高性能。各个Eureka服务器之间也会相互复制,也就是当微服务发生注册、下线和续约这些操作的时候,Eureka会将这些消息转发到其他服务治理中心的实例上,这样就完成同步了

服务剔除:在实际的工作中,有时候有些服务会因为网络故障、内存溢出或者宕机而导致服务不能正常工作,这个时候就要将这些无效的服务实例剔除出去

●自我保护:用来检测自己是否正常。

微服务之间互相调用

服务获取:服务获取是指微服务实例作为Eureka的客户端,从Eureka服务治理中心获取其他微服务实例清单的功能,通过一种负载均衡的算法选择其中的一个实例进行调用

●服务调用。服务调用是指一个微服务调用另一个微服务的过程。在Spring Cloud中,大部分会采用REST风格请求文章来源地址https://www.toymoban.com/news/detail-745064.html

到了这里,关于Springcloud笔记(2)-Eureka服务注册中心的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • SpringCloud搭建Eureka服务注册中心(六)

    前面说过eureka是c/s模式的  server服务端就是服务注册中心,其他的都是client客户端,服务端用来管理所有服务,客户端通过注册中心,来调用具体的服务; 我们先来搭建下服务端,也就是服务注册中心; project xmlns=\\\"http://maven.apache.org/POM/4.0.0\\\" xmlns:xsi=\\\"http://www.w3.org/2001/XMLSche

    2024年02月10日
    浏览(63)
  • SpringCloud学习笔记(二)_Eureka注册中心

    一、Eureka简介 Eureka是一项基于REST(代表性状态转移)的服务,主要在AWS云中用于定位服务,以实现负载均衡和中间层服务器的故障转移。我们称此服务为Eureka Server。Eureka还带有一个基于Java的客户端组件Eureka Client,它使与服务的交互更加容易。客户端还具有一个内置的负载

    2024年02月11日
    浏览(43)
  • 【微服务 SpringCloud】实用篇 · Eureka注册中心

    微服务(3) 假如我们的服务提供者 user-service部署了多个实例(不同实例,端口号不一致) ,如图: 大家思考几个问题: 我们刚才的编程,是写死在程序里的,ip和端口都是写死的, 这种硬编码的方式,之后改变ip和端口代码不就没法用了? order-service在发起远程调用的时候

    2024年02月08日
    浏览(40)
  • SpringCloud微服务技术栈的注册中心Eureka

    在微服务架构中,服务的数量庞大,而且每个服务可能会有多个实例。此时,需要一个中心化的地方来管理和维护各个服务的相关信息,这就是微服务治理中很重要的一环:服务注册与发现。其中,服务注册是指将提供服务的应用实例注册到注册中心,而服务发现则是指从注

    2023年04月09日
    浏览(53)
  • SpringCloud微服务 【实用篇】| Eureka注册中心、Ribbon负载均衡

    目录 一:Eureka注册中心 1. Eureka原理 2. 动手实践 ①搭建EurekaServer ②服务注册 ③服务发现  二:Ribbon负载均衡 1. 负载均衡原理 2. 负载均衡策略 3. 懒加载 tips:前些天突然发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家,感兴趣的同学可以

    2024年02月05日
    浏览(49)
  • # 从浅入深 学习 SpringCloud 微服务架构(三)注册中心 Eureka(3)

    段子手168 Eureka Server 可以通过运行多个实例并相互注册的方式实现高可用部署, Eureka Server 实例会彼此增量地同步信息,从而确保所有节点数据一致。 事实上,节点之间相互注册是 Eureka Server 的默认行为。 1)修改 eureka_server 子工程(子模块)中的 application.yml 文件 模拟两个

    2024年04月26日
    浏览(41)
  • 微服务springcloud 02 创建项目中的三个service子系统,springcloud中注册中心Eureka介绍和把三个系统注册到Eureka中

    item service项目 01.使用springboot创建项目 02.选择依懒项 在这里插入代码片 spring web 03.添加sp01-commons依赖 在pom.xml文件中 04.修改application.yml ItemServiceImpl 05.创建接口实现类和controller类 ItemController 注:Spring MVC接受参数的几个注解,controller类中使用的参数注解 注解@GetMapping()=@

    2024年02月09日
    浏览(62)
  • SpringCloud--Eureka注册中心

              Spring Cloud 封装了 Netflix 公司开发的 Eureka 模块来实现服务注册和发现。Eureka 采用了 C-S 的设计架构。Eureka Server 作为服务注册功能的服务器,它是服务注册中心。而系统中的其他微服务,使用 Eureka 的客户端连接到 Eureka Server并维持心跳连接。这样系统的维护人员就

    2024年01月17日
    浏览(39)
  • SpringCloud --- Eureka注册中心

    假如我们的服务提供者user-service部署了多个实例,如图 思考几个问题: order-service在发起远程调用的时候,该如何得知user-service实例的ip地址和端口? 有多个user-service实例地址,order-service调用时该如何选择? order-service如何得知某个user-service实例是否依然健康,是不是已经宕

    2023年04月24日
    浏览(41)
  • 【SpringCloud-1】注册中心-Eureka

    springcloud微服务,相对于dubbo这种SOA架构,提供了一站式的全套解决方案,什么意思呢?就是说springcloud不需要依赖其他组件,自己提供了全套的  常规项目需要使用的技术和解决问题的方案。  比如dubbo需要依赖zk作为注册中心,springcloud有自己的注册中心,对于其他如链路追

    2024年02月09日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包