Spring-Cloud中服务发现是什么?干什么的?怎么用?

news2024/11/26 4:46:39

 🐓 是什么

Spring Cloud通过EurekaConsul等服务注册与发现组件来实现微服务间的相互感知。服务提供者将自己的服务信息注册到注册中心,服务消费者从注册中心获取服务提供者的信息,从而进行服务调用。

 🐓 干什么

Spring Cloud中,服务发现是一种机制,用于自动检测和定位分布式系统中的服务实例。它允许服务实例在启动时向服务注册中心注册自己的网络地址,并且服务消费者可以从服务注册中心查询和获取所需服务实例的网络地址。这样,服务消费者就可以通过服务发现机制动态地找到并调用服务提供者,而无需硬编码服务提供者的网络地址。

通过使用服务发现机制,Spring Cloud应用程序可以更加灵活和可靠地处理分布式系统中的服务调用和依赖关系。它可以有效地解决服务实例的动态变化网络地址的变更以及服务的可用性健康状态等问题,提高系统的可扩展性容错性可维护性

服务发现的主要功能包括服务的注册查询注销以及服务健康检查。当服务提供者启动并注册到服务注册中心时,它的网络地址和服务信息将被存储在注册中心中。服务消费者可以通过查询注册中心来获取所需服务的网络地址列表,并根据负载均衡策略选择一个合适的服务实例进行调用。同时,服务注册中心还会定期检查已注册的服务实例的健康状况,如果某个服务实例出现故障或不可达,注册中心会将其标记为不健康并从服务列表中移除。

 🐓 怎么用

Eureka(服务注册和发现)的使用案例

git代码仓库:springCloud-eureka: Eureka(服务注册和发现)的使用案例

 

 总体架构图

从组件功能看:

黄色注册中心集群,分别部署在北京、天津、青岛机房;

红色服务提供者,分别部署北京和青岛机房;

淡绿色服务消费者,分别部署在北京和天津机房;

从机房分布看:

北京机房部署了注册中心、服务提供者和服务消费者;

天津机房部署了注册中心和服务消费者;

青岛机房部署了注册中心和服务提供者;

 

手动搭建 

搭建服务注册中心(如Eureka Server),用于服务的注册和发现。

新建项目,选择Spring Initializr,JDK 1.8,选择默认的https://start.spring.io。

编辑Group和Artifact。

        

选择依赖,在Spring Cloud Discovery中选择Eureka Server

项目命名,完成创建。

修改pom.xml文件,添加Eureka Server的依赖。

修改启动类,添加@EnableEurekaServer注解。

修改配置文件application.yml或application.properties,配置Eureka Server的相关参数,如服务端口、服务名称等。

server:  
  port: 8761 # 指定服务端口  
spring:  
  application:  
    name: eureka-server # 指定服务名称  
eureka:  
  client:  
    service-url:  
      defaultZone: http://localhost:8761/eureka/ # 指定服务注册中心的地址  
  server:  
    enable-self-preservation: false # 禁用自我保护模式(仅建议开发环境使用)

注意,在配置文件中,defaultZone的值需要设置为Eureka Server的地址,如果是单机环境,可以设置为localhost。如果是集群环境,需要设置为其他Eureka Server的地址。 

最后启动项目,访问http://localhost:8761/,即可看到Eureka Server的管理界面。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

nodejs安装教程(及过程中的易错)

nodejs:Nodejs 是基于 Chrome 的 V8 引擎开发的一个 C 程序,目的是提供一个 JS 的运行环境。 npm:npm 是 Node Package Manager 的缩写,意思是 Node 的包管理系统,是最大的软件包仓库 下载nodejs 首先我们需要在node…

VNC 与 虚拟机 保姆级 快速入门图文指导

Time: 2024年3月5日22:31:49 By[ V ]: MemoryErHero 重要的事情先说三遍: 1 虚拟机内无需安装 VNC-Viewer-7.0.1-Windows 2 虚拟机内无需安装 VNC-Viewer-7.0.1-Windows 3 虚拟机内无需安装 VNC-Viewer-7.0.1-Windows 1 VNC 图文安装 流程 ① VNC-Viewer-7.0.1-Windows.e…

【Python】Python注册微服务到nacos

Python注册微服务到Nacos 1.Nacos部署 github 的nacos项目的发布页(Releases alibaba/nacos GitHub ),选择所要下载的nacos版本,在nacos下方的assets中选择安装包进行下载。 解压nacos安装包到指定目录。 tar -zxvf nacos-ser…

SpringCloud-MQ消息队列

一、消息队列介绍 MQ (MessageQueue) ,中文是消息队列,字面来看就是存放消息的队列。也就是事件驱动架构中的Broker。消息队列是一种基于生产者-消费者模型的通信方式,通过在消息队列中存放和传递消息,实现了不同组件、服务或系统…

微信小程序触屏事件_上划下划事件

一、微信小程序触屏事件 bindtouchstart:手指触摸动作开始 bindtouchmove:手指触摸后移动 bindend:手指触摸动作结束 属性类型说明touchesArray触摸事件,当前停留在屏幕中的触摸点信息的数组 Touch 对象 属性类型说明identi…

【数据结构和算法初阶(C语言)】顺序表+单链表经典例题图文详解(题解大合集,搭配图文演示详解,一次吃饱吃好)

目录 1.移除链表元素 1.1思路1:遍历删除 1. 2 思路2:尾插法 2.反转链表 3.链表的中间节点 3.1解题思想及过程 3.2快慢指针思想解题---变式:返回链表的倒数第K个节点 4.合并两个有序链表 4.1解题思想 1取小的尾插 5.反转链表 6…

【工作经验分享】,金三银四大厂面经总结

面试题 一般Android面试分为两部分:Java部分和Android部分,下面说一下自己面试过程遇到的一些具体题目和一些相关知识点。 一 JAVA相关 1)JAVA基础 1.java基本数据类型有哪些,int, long占几个字节 2. 和 equals有什…

Maven【5】在IDEA环境中配置和使用Maven

【1】创建父工程 1.创建 Project 按照idea工程的布局,project相当于父工程,里面的module相当于子工程(模块工程) 我们先来创建最外层这个父工程:

vue在线查看pdf文件

1.引入组件 npm install --save vue-pdf2、pdf组件页面模板 <template><div class"scrollBox" ><el-dialog :visible.sync"open" :top"1" width"50%" append-to-body><div slot"title"><el…

【强化学习的数学原理-赵世钰】课程笔记(七)时序差分方法

一.内容概述 第五节课蒙特卡洛&#xff08;Mento Carlo&#xff09;方法是全课程中第一次介绍 model-free 的方法&#xff0c;本节课的 Temporal-difference learning&#xff08;TD learning&#xff09;是我们要介绍的第二种 model-free 的方法。基于蒙特卡洛&#xff08;Me…

清澈喷嚏,宝宝舒爽轻松:新生儿打喷嚏的温馨指南

引言 新生儿的喷嚏声&#xff0c;如同小鸟啁啾&#xff0c;是宝宝在探索世界时展示的自然表现。尽管这种可爱的行为可能会让家长产生担忧&#xff0c;但实际上&#xff0c;喷嚏是宝宝健康成长的正常体征之一。在这篇文章中&#xff0c;我们将分享一些关于新生儿打喷嚏的注意事…

答题pk小程序源码技术大解析

答题pk小程序源码解析 在数字化时代&#xff0c;小程序因其便捷性、即用性而受到广泛欢迎。其中&#xff0c;答题pk小程序更是成为了一种寓教于乐的现象。它不仅为用户提供了趣味性的知识竞技平台&#xff0c;还为企业、教育机构等提供了互动营销和知识传播的新途径。本文将对…

Minio容器化部署并整合SpringBoot

1、启动minio容器 docker run -p 9000:9000 -p 9090:9090 --name minio -d --restartalways -e MINIO_ACCESS_KEYminio -e MINIO_SECRET_KEYminio -v /usr/local/minio/data:/data -v /usr/local/minio/config:/root/.minio minio/minio server /data --console-addr…

HTML入门:05HTML多媒体

HTML入门&#xff1a;05HTML多媒体 1 video标签1.1 控制按钮&#xff1a;controls1.2 宽度和高度&#xff1a;width和heightt1.3 预载&#xff1a;preload1.4 静音&#xff1a;muted1.5 自动播放&#xff1a;autoplay1.6 无限循环&#xff1a;loop1.7 poster 2 audio标签 在早期…

二百二十七、Linux——通过shell脚本判断HDFS文件是否存在,如果存在则删除HDFS文件

一、目的 在用脚本去实现对HDFS中过期的ODS层原始数据进行删除后&#xff0c;发现还需要在脚本中对HDFS文件是否存在进行判断&#xff0c;否则如果HDFS文件不存在那么任务执行就会报错 报错原因是这一天的HDFS文件并不存在 原有脚本 #! /bin/bash source /etc/profile nowda…

【bug日记】已解决:Invalid bound statement (not found): 找不到对应的Mapper映射类

急着解决问题的哥们直接用目录跳到下文哈 我放传送门了 目录 试错 尝试过确认的东西&#xff1a; 最终解决方案&#xff01;已经完美解决&#xff1a; 只需要在你配置数据源的地方&#xff1a; 更改为&#xff1a; MybatisSqlSessionFactoryBean sessionFactory …

AcWing 1024. 装箱问题

解题思路 相关代码 import java.util.Scanner;public class Main {public static void main(String[] args){Scanner scanner new Scanner(System.in);int v scanner.nextInt();int n scanner.nextInt();int a[] new int[n1];for(int i1;i<n;i) a[i]scanner.nextInt();…

【金九银十】,架构师花费近一年时间整理出来的安卓核心知识

面试经历 主要是根据回忆总结的&#xff08;会有遗漏点&#xff09;。 1. 腾讯&#xff08;QQ音乐&#xff09; 腾讯面试涉及到的范围也很广&#xff0c;甚至问到了C、Kotlin Flutter &#xff0c;也具有一定挑战性的&#xff0c;以下包括腾讯腾讯安卓客户端三面&#xff0c…

k8s-控制器

概述 控制器是什么 控制器是 k8s 内置的管理工具。可以帮助用户实现 Pod 的自动部署、自维护、扩容、滚动更新等功能的自动化程序 为什么要使用控制器 有大量 Pod 需要维护管理需要维护 Pod 的健康状态控制器可以像机器人一样可以替用户完成维护管理的工作 Deployment 控制…