【SpringCloud篇】Eureka服务的基本配置和操作

文章目录

  • 🌹简述Eureka
  • 🛸搭建Eureka服务
    • ⭐操作步骤
    • ⭐服务注册
    • ⭐服务发现

在这里插入图片描述

🌹简述Eureka

Eureka是Netflix开源的一个基于REST的服务治理框架,主要用于实现微服务架构中的服务注册与发现。它由Eureka服务器和Eureka客户端组成,其中Eureka服务器负责维护整个系统的服务实例信息,而Eureka客户端则负责向Eureka服务器注册自身信息,并从Eureka服务器获取其他服务实例的信息。

通过Eureka,服务提供者可以在其启动时向Eureka服务器注册自己的网络地址和元数据信息,而服务消费者则可以从Eureka服务器查询所需服务的实例列表,并基于负载均衡策略选择合适的服务实例进行调用。同时,Eureka还具备监控、故障转移、自我保护等功能,能够有效地应对网络分区等异常情况,确保整个系统的稳定性和可靠性。

总的来说,Eureka作为服务治理框架,为微服务架构提供了一套完善的服务注册与发现机制,帮助各个服务实例之间能够自动地找到彼此,实现服务之间的通信与协作。它是构建基于微服务架构的分布式系统的重要工具之一,被广泛应用于云计算、大数据等领域。

🛸搭建Eureka服务

⭐操作步骤

首先我们在eureka-server包中进行操作

首先我们先引入依赖

<dependencies>
        <!--eureka服务端-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
        </dependency>
    </dependencies>

下面我们新建一个启动类,来启动eureka服务

package cn.itcast.eureka;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;

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

在这里插入图片描述
下面我们编写一个配置文件application.yml

server:
  port: 10086 # 服务端口
spring:
  application:
    name: eurekaserver # eureka的服务名称
eureka:
  client:
    service-url:  # eureka的地址信息
      defaultZone: http://127.0.0.1:10086/eureka

这样我们就成功搭建eureka服务了

⭐服务注册

我们在user-service包中进行操作

在pom文件中引入eureka客户端依赖

 <!--eureka客户端依赖-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>

我们编写一个配置文件application.yml,配置eureka地址

server:
  port: 8081
  spring:
    datasource:
      url: jdbc:mysql://mysql:3306/cloud_user?useSSL=false
      username: root
      password: 123
      driver-class-name: com.mysql.jdbc.Driver
    application:
      name: userservice
mybatis:
  type-aliases-package: cn.itcast.user.pojo
  configuration:
    map-underscore-to-camel-case: true
logging:
  level:
    cn.itcast: debug
  pattern:
    dateformat: MM-dd HH:mm:ss:SSS
eureka:
  client:
    service-url:  # eureka的地址信息
      defaultZone: http://127.0.0.1:10086/eureka

下面我们在order-service中进行eureka服务注册

我们打开order-service包

在pom文件中引入eureka客户端依赖

 <!--eureka客户端依赖-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>

我们编写一个配置文件application.yml,配置eureka地址

server:
  port: 8081
  spring:
    datasource:
      url: jdbc:mysql://mysql:3306/cloud_user?useSSL=false
      username: root
      password: 123
      driver-class-name: com.mysql.jdbc.Driver
    application:
      name: orderservice
mybatis:
  type-aliases-package: cn.itcast.user.pojo
  configuration:
    map-underscore-to-camel-case: true
logging:
  level:
    cn.itcast: debug
  pattern:
    dateformat: MM-dd HH:mm:ss:SSS
eureka:
  client:
    service-url:  # eureka的地址信息
      defaultZone: http://127.0.0.1:10086/eureka

注意:order-service包和user-service包的yml文件的区别就是它们的name属性
order-service是name: orderservice
user-service是name: userservice

⭐服务发现

Eureka是Netflix开源的服务发现框架,用于在分布式系统中实现服务的自动注册与发现。它采用了客户端-服务器的架构模式,由一个或多个Eureka服务器和多个Eureka客户端组成。

服务提供者在启动时向Eureka服务器注册自己的信息,包括服务名称、网络地址等。Eureka服务器维护一个服务注册表,记录了所有已注册的服务信息。同时,服务提供者还会周期性地发送心跳信号给Eureka服务器,以确保自己的存活状态。

服务消费者在需要调用某个服务时,首先向Eureka服务器查询该服务的信息。Eureka服务器返回可用的服务实例列表给消费者,消费者可以根据自己的负载均衡策略选择其中一个实例进行调用。同时,消费者也会缓存服务实例信息,以减少对Eureka服务器的频繁查询。

当有服务提供者发生变动(例如启动、关闭、网络故障等)时,Eureka客户端会及时更新本地缓存的服务注册表。消费者通过定时任务或监听机制,可以感知到服务实例的变化,并及时做出相应的调整。

总的来说,Eureka通过服务注册与发现的机制,帮助分布式系统中的各个服务实例能够自动地找到彼此,实现服务之间的通信与协作。它具有简单、可靠、高可用等特点,被广泛应用于微服务架构中。

请添加图片描述

在技术的道路上,我们不断探索、不断前行,不断面对挑战、不断突破自我。科技的发展改变着世界,而我们作为技术人员,也在这个过程中书写着自己的篇章。让我们携手并进,共同努力,开创美好的未来!愿我们在科技的征途上不断奋进,创造出更加美好、更加智能的明天!

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/222565.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

15+铁死亡超高分推荐,快来码思路

今天给同学们分享一篇生信文章“Polydopamine Nanoparticles Targeting Ferroptosis Mitigate Intervertebral Disc Degeneration Via Reactive Oxygen Species Depletion, Iron Ions Chelation, and GPX4 Ubiquitination Suppression”&#xff0c;这篇文章发表在Adv Sci (Wei…

laravel记录mysql日志最便捷的办法

因为页面执行的sql很多&#xff0c;因此决定记录一下执行的sql语句。最简便快速的方式就是使用下面的代码&#xff1a; app\Providers\AppServiceProvider.php 在boot方法里面加上下面的代码&#xff1a; \DB::listen(function ($query) {$tmp str_replace(?, ".%s.&quo…

老师如何管理学生?

老师可以通过以下几点来管理学生&#xff1a; 1. 建立积极的关系&#xff1a;老师应该与学生建立积极的关系&#xff0c;鼓励学生参与课堂和课外活动&#xff0c;热情地回应学生的问题和需求。 2. 设定明确的规则&#xff1a;老师应该制定明确的课堂和学校规则&#xff0c;并向…

第一篇:MongoDB的安装、启动、关闭、链接shell

目录 简介 安装 安装遇到的问题 查看brew 当前使用的源&#xff1a; 更换brew 源。更换成清华大学镜像源 版本查看 MongoDB 数据目录与日志目录 启动方式一&#xff1a; 启动MongoDB 验证MongoDB 是否正常运行 停止或重新启动 停止MongoDB 服务 重新启动MongoDB服…

向量数据库有什么意义?AWS向量引擎的优势解析与未来展望

向量数据库是一种以向量为基础的数据库&#xff0c;它的出现为数据存储和检索带来了巨大的改进和创新。在传统的关系型数据库中&#xff0c;数据是以表格形式存储的&#xff0c;而向量数据库采用了更先进的数据结构&#xff0c;将数据以向量的形式进行存储和索引。 那么&#x…

从零开始,轻松实现Python接口自动化测试(基于PyCharm)

1.接口清单整理 &#xff08;1&#xff09;请求&#xff1a; 请求URL请求方法请求参数请求报文 &#xff08;2&#xff09;响应 状态码响应数据 2.用例设计 &#xff08;1&#xff09;单接口测试用例 模板&#xff1a;id、模块、接口名称、请求URL、用例名称、请求方法、…

PySpark开发环境搭建常见问题及解决

PySpark环境搭建常见问题及解决 1、winutils.exe问题2、SparkURL问题3、set_ugi()问题 本文主要收录PySpark开发环境搭建时常见的一些问题及解决方案&#xff0c;并收集一些相关资源 1、winutils.exe问题 报错摘要&#xff1a; WARN Shell: Did not find winutils.exe: {} ja…

配置集群免密登录

文章目录 前言配置集群免密登录1. 设置主机名与 IP 地址的映射关系2. 生成 SSH 密钥对3. 将公钥复制到集群节点4. 测试免密登录5. 配置节点之间互相免密登录 总结 前言 本文介绍了如何配置集群之间免密登录&#xff0c;以便在搭建集群环境时方便地进行节点之间的通信。通过设置…

力扣面试经典150题——Unix简化路径

https://leetcode.cn/problems/simplify-path/description/?envTypestudy-plan-v2&envIdtop-interview-150 思路&#xff1a;将串以/分割&#xff0c;判断字符串是…/./其他&#xff0c;进行入栈和出栈&#xff0c;最后留下的就是结果&#xff0c;拼装一下就好了。 三个…

Python的内置数据类型有哪些?

目录 一、数字类型 二、字符串类型 三、列表类型 四、元组类型 五、字典类型 六、集合类型 七、布尔类型 八、None类型 九、迭代器和生成器 总结 Python是一种高级编程语言&#xff0c;它具有丰富的内置数据类型。这些数据类型包括数字、字符串、列表、元组、字典、集…

Tubulysin F微管蛋白抑制剂 F 368870-67-1星戈瑞

Tubulysin F 是从粘细菌 Archangium geophyra 和 Angiococcus disciformis 中分离出来的天然产物。Tubulysin F 是一种具有细胞毒性活性的微管蛋白抑制剂&#xff0c;可抑制微管蛋白聚合并导致细胞周期停滞和细胞凋亡。 英文名称&#xff1a;Tubulysin F 中文名称&#xff1a;…

华为认证 | 11月底这门HCIP认证正式发布!

华为认证openGauss高级工程师HCIP-openGauss V1.0&#xff08;中文版&#xff09;自2023年11月30日起&#xff0c;正式在中国区发布。 01 发布概述 基于“平台生态”战略&#xff0c;围绕“云-管-端”协同的新ICT技术架构&#xff0c;华为公司打造了覆盖ICT领域的认证体系&…

C //例10.2 将一个磁盘文件中的信息复制到另一个磁盘文件中。

C程序设计 &#xff08;第四版&#xff09; 谭浩强 例10.2 例10.2 将一个磁盘文件中的信息复制到另一个磁盘文件中。 IDE工具&#xff1a;VS2010 Note: 使用不同的IDE工具可能有部分差异。 代码块 方法&#xff1a;使用指针&#xff0c;函数的模块化设计&#xff0c;动态分…

基础课18——表格问答引擎

1.定义 表格问答引擎是一种针对结构化二维表的知识问答引擎&#xff0c;它可以基于表格内容快速抽取信息&#xff0c;并回答用户提出的问题。表格问答引擎的核心技术包括自然语言处理和机器学习等&#xff0c;它通过对表格数据的处理和分析&#xff0c;能够实现自动化问答的目…

外包干了3年,技术退步太明显了。。。

简单的说下&#xff0c;我大学的一个同学&#xff0c;毕业后我自己去了自研的公司&#xff0c;他去了外包&#xff0c;快3年了我薪资、技术各个方面都有了很大的提升&#xff0c;他在外包干的这3年人都要废了&#xff0c;技术没一点提升&#xff0c;学不到任何东西&#xff0c;…

软件工程之架构设计

从公众号转载&#xff0c;关注微信公众号掌握更多技术动态 --------------------------------------------------------------- 一、架构设计的目的 1.什么是复杂的软件项目 复杂的软件项目通常有两个特点&#xff1a; 需求不确定 技术复杂 技术的复杂性主要体现在四个方面…

【每日一题】最小化旅行的价格总和

文章目录 Tag题目来源题目解读解题思路方法一&#xff1a;深搜动态规划 写在最后 Tag 【深搜动态规划】【树】【2023-12-06】 题目来源 2646. 最小化旅行的价格总和 题目解读 有一棵无向、无根的树&#xff0c;树中的节点从 0 到 n-1&#xff0c;每个节点有一个关联的价格&a…

【AntDB 数据库】国产数据库肇始之独具特色的场景需求

影响国产数据库源起、发展的因素有很多&#xff0c;除了数据库本身对国家和组织的重要战略性地位、市场趋势向好等因素外&#xff0c;还有哪些关键因素呢&#xff1f;今天AntDB数据库就跟大家一起回顾、探求一下我国最早一批国产数据库起源背后独具特色的场景需求。 过去40年&…

C++红黑树封装set和map(很详细)

前言 在前面&#xff0c;我们学习了红黑树。&#xff08;没学过红黑树直接看会很吃力&#xff09;set和map的底层就是红黑树&#xff0c;现在我们要用这棵树来封装STL里面的容器&#xff1a;set和map。 下面是之前讲过的红黑树&#xff0c;他只是普通的“Key”模型,适合封装set…

技术博客:Vue中各种混淆用法汇总

技术博客&#xff1a;Vue中各种混淆用法汇总 摘要 本文主要介绍了在Vue中使用的一些常见混淆用法&#xff0c;包括new Vue()、export default {}、createApp()、Vue.component、Vue3注册全局组件、Vue.use()等&#xff0c;以及如何使用混淆器对代码进行加固&#xff0c;保护应…