使用SpringCloud搭建Eureka注册中心

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

目录

前言

一、搭建EurekaServer

1、在cloud-demo父工程下,创建子模块 eureka-server。

 2、引入eureka依赖

3、给eureka-server模块编写启动类

4、编写配置文件

5、启动服务

二、服务注册 

1、引入依赖

2、配置文件

3、启动服务

 三、服务发现

1、引入依赖

3、服务拉取

总结 


前言

        在使用Eureka之前,我们要先了解一下什么是Eureka,为什么要使用Eureka。

       在分布式架构中,我们往往会根据业务功能对系统进行拆分,每个业务模块作为独立项目开发,称为一个服务。它的优点是降低服务耦合,有利于服务的升级和拓展。缺点是:随着项目的扩展,服务模块会越来越多,每个服务之间的调用关系就会越来越复杂。而SpringCloud是目前国内使用最广泛的微服务框架。官网地址:Spring Cloud。SpringCloud集成了各种微服务功能组件,并基于SpringBoot实现了这些组件的自动装配,从而提供了良好的开箱即用体验。

其中常见的组件包括:

使用SpringCloud搭建Eureka注册中心

Eureka注册中心在 SpringCloud中就起到了很大的作用。

使用SpringCloud搭建Eureka注册中心

 我们只需要把每一个微服务注册在Eureka上,那么每一个微服务之前的相互调用就只需要从Eureka上获取对应的服务来进行通信。那么接下来,我们就来看看Eureka的搭建。

一、搭建EurekaServer

首先需要搭建一个注册中心服务端,eureka-server,这必须是一个独立的微服务!

1、在cloud-demo父工程下,创建子模块 eureka-server。

首先我们先了解一下父工程中每个模块的作用:user-service负责获取用户信息,order-service负责获取订单信息,目前两个服务之前并没有远程通信,接下来,我们要在order-service中远程调用user-service获取用户的信息。看一下父工程(SpringBoot项目)的模块以及初始的pom文件所引入的依赖。

使用SpringCloud搭建Eureka注册中心

    <packaging>pom</packaging>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.3.9.RELEASE</version>
        <relativePath/>
    </parent>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
        <spring-cloud.version>Hoxton.SR10</spring-cloud.version>
        <mysql.version>8.0.19</mysql.version>
        <mybatis.version>2.1.1</mybatis.version>
    </properties>

    <dependencyManagement>
        <dependencies>
            <!-- springCloud -->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <!--nacos的管理依赖-->
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>2.2.5.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <!-- mysql驱动 -->
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>${mysql.version}</version>
            </dependency>
            <!--mybatis-->
            <dependency>
                <groupId>org.mybatis.spring.boot</groupId>
                <artifactId>mybatis-spring-boot-starter</artifactId>
                <version>${mybatis.version}</version>
            </dependency>
        </dependencies>
    </dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>
    </dependencies>

 然后创建子模块eureka-server工程:

使用SpringCloud搭建Eureka注册中心

 2、引入eureka依赖

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

3、给eureka-server模块编写启动类

package cn.itcast.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);
    }
}

4、编写配置文件

编写一个application.yml配置文件:

server:
  port: 10086
spring:
  application:
    name: eureka-server
eureka:
  client:
    service-url: 
      defaultZone: http://127.0.0.1:10086/eureka

5、启动服务

启动微服务,在浏览器中访问:http://127.0.0.1:10086 ,看下图就说明配置成功了!

使用SpringCloud搭建Eureka注册中心

二、服务注册 

我们将要被调用的微服务user-service注册到eureka中。

1、引入依赖

在user-service的pom文件中,引入下面的eureka-client依赖:

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

2、配置文件

在user-service中,修改application.yml文件,添加服务名称、eureka地址:

spring:
  application:
    name: userservice
eureka:
  client:
    service-url:
      defaultZone: http://127.0.0.1:10086/eureka

3、启动服务

查看eureka管理页面发现,userservice已经注册成功:

使用SpringCloud搭建Eureka注册中心

 三、服务发现

下面,我们将order-service的逻辑修改:向eureka-server拉取user-service的信息,实现服务发现。

1、引入依赖

之前说过,服务发现、服务注册统一都封装在eureka-client依赖,因此这一步与服务注册时一致。

在order-service的pom文件中,引入下面的eureka-client依赖:

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

2、配置文件

服务发现也需要知道eureka地址,因此第二步与服务注册一致,都是配置eureka信息:

在order-service中,修改application.yml文件,添加服务名称、eureka地址:

spring:
  application:
    name: orderservice
eureka:
  client:
    service-url:
      defaultZone: http://127.0.0.1:10086/eureka

3、服务拉取

先解释一下:

目前没有openfeign,所以order-service和user-service的远程调用方式目前采用RestTemplate向客户端发送请求。有关RestTemplate类的了解,大家可以自行去了解,这里就不过多介绍了。

  接下来在order-service的OrderApplication中,给RestTemplate这个Bean添加一个@LoadBalanced注解:

使用SpringCloud搭建Eureka注册中心

 修改order-service服务中的cn.itcast.order.service包下的OrderService类中的queryOrderById方法。修改访问的url路径,用服务名代替ip、端口:

使用SpringCloud搭建Eureka注册中心

此时,spring会自动帮助我们从eureka-server端,根据userservice这个服务名称,获取实例列表, 远程调用user-service的方法。

总结 

在闲暇时间多积累学过的技术,哪怕长时间不使用忘记了也能回来回顾一下技术,日积月累,慢慢变强!文章来源地址https://www.toymoban.com/news/detail-445016.html

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

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

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

相关文章

  • 【SpringCloud】02 注册中心Eureka的原理与使用

    本文是SpringCloud系列第二篇,请先阅读前置文章。 所有代码都基于01认识微服务,了解服务拆分与远程调用中的基础代码cloud-demo,可以前往下载。 在上一篇文章中,我们在OrderService类的queryOrderById方法里,使用RestTemplate里向user-service微服务发起调用请求,根据用户id查询用户

    2024年02月05日
    浏览(31)
  • 在项目中同时使用SpringCloud和Dubbo,注册中心选用Eureka?

    在pom.xml文件中添加Dubbo相关依赖:服务提供者和服务消费者都需要 1)配置服务提供者 1、在配置文件中配置Dubbo的相关信息: 2、在服务提供者的启动类上添加@EnableDubbo注解: 3、编写服务提供者的接口和实现类: 添加@Service,指定interfaceClass属性来指定要暴露的接口 2)配置

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

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

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

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

    2023年04月24日
    浏览(29)
  • SpringCloud:Eureka服务注册中心

    Eureka是一个服务治理组件,它主要包括服务注册和服务发现,主要用来搭建服务注册中心。 在搭建微服务项目时遇到的三个问题: 服务消费者该如何获取服务提供者的地址信息? 如果有多个服务提供者,消费者该如何选择? 消费者如何得知服务提供者的健康状态? Eureka的作

    2024年01月20日
    浏览(26)
  • 【SpringCloud-1】注册中心-Eureka

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

    2024年02月09日
    浏览(26)
  • SpringCloud之Eureka 服务注册中心

    5 Eureka 服务注册中心 5.1什么是 Eureka Netflix在涉及Eureka时,遵循的就是API原则. Eureka是Netflix的有个子模块,也是核心模块之一。Eureka是基于REST的服务,用于定位服务,以实现云端中间件层服务发现和故障转移,服务注册与发现对于微服务来说是非常重要的,有了服务注册与发

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

    🍁 博客主页: 👉@不会压弯的小飞侠 ✨ 欢迎关注: 👉 点赞 👍 收藏 ⭐ 留言 ✒ ✨ 系列专栏: 👉SpringCloud专栏 ✨ 知足上进,不负野心。 🔥 欢迎大佬指正,一起学习!一起加油! 服务拆分注意事项 1.单一职责:不同微服务,不要重复开发相同业务 2.数据独立:不要访问

    2024年01月17日
    浏览(32)
  • 注册中心 —— SpringCloud Netflix Eureka

    Eureka 是一个基于 REST 的服务发现组件,SpringCloud 将它集成在其子项目 spring-cloud-netflix 中,以实现 SpringCloud 的服务注册与发现,同时提供了负载均衡、故障转移等能力,目前 Eureka2.0 已经不再维护,故不推荐使用 Eureka 有两种角色组件: Eureka Server:服务注册中心组件,提供了

    2024年02月13日
    浏览(25)
  • Springcloud1--->Eureka注册中心

    Eureka:就是服务注册中心(可以是一个集群),对外暴露自己的地址 提供者:启动后向Eureka注册自己信息(地址,提供什么服务) 消费者:向Eureka订阅服务,Eureka会将对应服务的所有提供者地址列表发送给消费者,并且定期更新 心跳(续约):提供者定期通过http方式向Eureka刷

    2024年02月05日
    浏览(26)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包