【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: 8081spring:datasource:url: jdbc:mysql://mysql:3306/cloud_user?useSSL=falseusername: rootpassword: 123driver-class-name: com.mysql.jdbc.Driverapplication:name: userservice
mybatis:type-aliases-package: cn.itcast.user.pojoconfiguration:map-underscore-to-camel-case: true
logging:level:cn.itcast: debugpattern: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: 8081spring:datasource:url: jdbc:mysql://mysql:3306/cloud_user?useSSL=falseusername: rootpassword: 123driver-class-name: com.mysql.jdbc.Driverapplication:name: orderservice
mybatis:type-aliases-package: cn.itcast.user.pojoconfiguration:map-underscore-to-camel-case: true
logging:level:cn.itcast: debugpattern: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通过服务注册与发现的机制,帮助分布式系统中的各个服务实例能够自动地找到彼此,实现服务之间的通信与协作。它具有简单、可靠、高可用等特点,被广泛应用于微服务架构中。

请添加图片描述

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

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用NimoShake将数据从AWS DynamoDB迁移至阿里云MongoDB

本文介绍从AWS DynamoDB到阿里云MongoDB的迁移框架。 它概述了以下步骤&#xff1a; 在阿里云上配置云数据库MongoDB版并应用公网终端节点在 AWS EC2 上安装 Nimoshake将AWS EC2访问阿里云MongoDB版列入白名单配置 Nimoshake 并开始迁移过程验证目标数据库上的增量数据 1. 创…

基于人工智能技术《量化投资AI系统》的集群架构设计与实现

乔总&#xff1a; 前些日子你我的共同朋友潘总&#xff0c;推荐您来聊聊将ChatGPT应用于量化投资的合作。在与您及您的团队进行了超过2个多小时的沟通后&#xff0c;恕我直言&#xff0c;不客气地说&#xff0c;感觉您的团队对人工智能技术几乎是空白。为了让您的团队对人工智…

Spring boot命令执行 (CVE-2022-22947)漏洞复现和相关利用工具

Spring boot命令执行 (CVE-2022-22947)漏洞复现和相关利用工具 名称: spring 命令执行 (CVE-2022-22947) 描述: Spring Cloud Gateway是Spring中的一个API网关。其3.1.0及3.0.6版本&#xff08;包含&#xff09;以前存在一处SpEL表达式注入漏洞&#xff0c;当攻击者可以访问A…

八、Lua数组和迭代器

一、Lua数组 数组&#xff0c;就是相同数据类型的元素按一定顺序排列的集合&#xff0c;可以是一维数组和多维数组。 在 Lua 中&#xff0c;数组不是一种特定的数据类型&#xff0c;而是一种用来存储一组值的数据结构。 实际上&#xff0c;Lua 中并没有专门的数组类型&#xf…

逢疫读史引以为鉴,防微杜渐警钟长鸣

世事变幻&#xff0c;皆有定数&#xff1b;生死福祸&#xff0c;必有因由。连日来&#xff0c;“多国又爆发大规模传染病”这个话题&#xff0c;不断地出现在网络空间&#xff0c;令人骇然。为此笔者花了很多时间和精力&#xff0c;查阅了许多相关文献、史料&#xff0c;在此仅…

vuepress-----2、初体验

2、初体验 目标 创建GitHub账号创建Github项目初体验vuepress默认主体的首页 初体验 (opens new window) --- home: true heroImage: /hero.png heroText: Hero 标题 tagline: Hero 副标题 actionText: 快速上手 → actionLink: /zh/guide/ features: - title: 简洁至上deta…

ChatGPT哪些行业需要学习?

2023年随着OpenAI开发者大会的召开&#xff0c;最重磅更新当属GPTs&#xff0c;多模态API&#xff0c;未来自定义专属的GPT。微软创始人比尔盖茨称ChatGPT的出现有着重大历史意义&#xff0c;不亚于互联网和个人电脑的问世。360创始人周鸿祎认为未来各行各业如果不能搭上这班车…

30、pytest入门内容回顾

整体结构 解读与实操 pytest30讲主要从四个方面由浅入深的进行解读&#xff0c; 开始 讲解了pytest的概述&#xff0c;安装前的准备工作&#xff08;python,pycharm,pytest&#xff09;&#xff0c;运行方式&#xff08;命令行&#xff09;&#xff0c;断言&#xff08;assert…

算法通关村——原来这就是堆

堆结构是一种非常重要的基础数据结构&#xff0c;也是算法的重要内容&#xff0c;很多题目甚至只能用堆来进行&#xff0c;所以我们必须先明确什么类型的题目可以用堆&#xff0c;以及如何使用堆来解决。由于堆的构造和维护过程都非常复杂&#xff0c;因此面试时一般不需要手写…

漫步者开放式耳机怎么样?南卡、漫步者开放式耳机哪个好?

现在开放式耳机的市场越来越混杂&#xff0c;我们作为消费者在挑选的时候&#xff0c;一定要找准需求点才能把踩坑几率降到最低。实在不会挑选的也不要紧&#xff0c;我最近入了2款目前市面最畅销的百元款开放式耳机&#xff1a;南卡OE CC和漫步者comfo fit&#xff0c;亲身上耳…

【Java Web学习笔记】 1 - HTML入门

项目代码 https://github.com/yinhai1114/JavaWeb_LearningCode/tree/main/html 零、网页的组成 HTML是网页内容的载体。内容就是网页制作者放在页面上想要让用户浏览的信息&#xff0c;可以包含文字、图片视频等。 CSS样式是表现。就像网页的外衣。比如&#xff0c;标题字体、…

虹科干货 | 关于JSON数据库

来源&#xff1a;艾特保IT 虹科干货 | 关于JSON数据库 原文链接&#xff1a;https://mp.weixin.qq.com/s/NutCGWa32rOcEHrk3UDGcQ 欢迎关注虹科&#xff0c;为您提供最新资讯&#xff01; 如何理解JSON数据库&#xff1f;作为NoSQL数据库的一种类型&#xff0c;JSON数据库有哪…

探索 IndexedDB 的世界:大规模数据存储的解决方案

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…

【鸿蒙应用ArkTS开发系列】- 选择图片、文件和拍照功能实现

文章目录 前言创建多媒体Demo工程创建MediaBean 实体类创建MediaHelper工具类API标记弃用问题动态申请多媒体访问权限实现选择图片显示功能打包测试 前言 在使用App的时候&#xff0c;我们经常会在一些社交软件中聊天时发一些图片或者文件之类的多媒体文件&#xff0c;那在鸿蒙…

二手车销售技巧 如何卖好二手车

在后疫情时代&#xff0c;消费出现降级&#xff0c;很多原本计划购买新车的消费者&#xff0c;进而把目光投向了二手车&#xff0c;二手车市场遇到了难得的发展机遇。二手车市场作为汽车产业链的重要组成部分&#xff0c;也迎来了前所未有的发展机遇。然而&#xff0c;与此同时…

Git版本管理配置说明 - Visual Studio

一、 Git服务端配置 在源代码管理服务器新建文件夹,并配置共享访问权限Everyone(读取/写入)。 在本地访问这台服务器共享目录,确保正确打开。 在VS中打开项目,点选Git更改,点击“创建Git仓库”,创建项目初始版本。 弹出如下对话框: 因为我们只是在局域网中开发项…

【Linux】命令行参数

文章目录 前言一、C语言main函数的参数二、环境变量总结 前言 我们在Linux命令行输入命令的时候&#xff0c;一般都会跟上一些参数选项&#xff0c;比如l命令&#xff0c;ls -a -l。以前我总是觉得这是理所当然的&#xff0c;没深究其本质究竟是什么&#xff0c;今天才终于知道…

王者小游戏

游戏里的经验动物 Bear package beast; import sxt.GameFrame; public class Bear extends Beast {public Bear(int x, int y, GameFrame gameFrame) {super(x, y, gameFrame);setImg("C:\\Users\\辛欣\\OneDrive\\桌面\\王者荣耀图片(1)\\王者荣耀图片\\beast\\bear.jp…

输入通道数 和 输出通道数 的理解

输入通道数&#xff08;in_channels&#xff09;输出通道数&#xff08;out_channels&#xff09; 在卷积神经网络中通常需要输入 in_channels 和 out_channels &#xff0c;即输入通道数和输出通道数&#xff0c;它们代表什么意思呢&#xff1f; 输入通道数&#xff08;in_c…

软件设计之组合模式

组合模式&#xff1a;将对象组合成树形结构。 案例&#xff1a;公司管理。一个公司可以分总公司和分公司&#xff0c;无论是总公司还是分公司都有自己的部门&#xff0c;如人力资源管理部门、财务部门。分公司可以建立自己在不同地域的办事处。请使用组合模式打印出某个公司的…