二、Eureka服务注册与发现

news2024/11/27 4:22:14

Eureka服务注册与发现

Eureka基础知识

什么是服务治理

SpringCloud封装了Netflix公司开发的Eureka模块来实现服务治理。

在传统的RPC远程调用框架中,管理每个服务与服务之间依赖关系比较复杂、所以需要进行服务治理,管理服务与服务之间依赖关联,以实现服务调用,负载均衡、容错等,实现服务发现与注册。

什么是服务注册

Eureka采用了CS的设计架构,Eureka Server作为服务注册功能的服务器,它是服务注册中心。

而系统中的其他微服务,使用Eureka的客户端连接到Eureka Server并维持心跳连接。这样系统的维护人员可以通过Eureka Server来监控系统中各个微服务是否正常运行。

在服务注册与发现中,有一个注册中心。当服务器启动的时候,会把当前自己服务器的信息,比如:服务通讯地址等以别名方式注册到注册中心上。

另一方(消费者服务),以该别名的方式去注册中心上获取到实际的服务通讯地址,然后,再实现本地RPC远程调用。

**RPC远程调用框架核心设计思想:**在于注册中心,因为使用注册中心管理每个服务与服务之间的一个依赖关系(服务治理概念)。

在任何RPC远程框架中,都会有一个注册中心(存放服务地址相关信息(接口地址))。

Eureka两组件

  • Eureka Server提供服务注册服务

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

  • Eureka Client通过注册中心进行访问

是一个Java客户端,用于简化Eureka Server的交互,客户端同时也具备一个内置的、使用轮询(round-robin)负载算法的负载均衡器。在应用启动后,将会在Eureka Server发送心跳(默认周期30秒)。如果Eureka Server在多个心跳周期内没有收到某个节点的心跳,Eureka Server将会从服务注册表中把这个服务节点移出(默认90秒)

单机Eureka构建步骤

IDEA生成eurekaServer端服务注册中心

建Module:cloud-eureka-server7001

改POM

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <artifactId>cloud2021</artifactId>
        <groupId>com.aqrlmy.springcloud</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>
    <artifactId>cloud-eureka-server7001</artifactId>

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

        <dependency>
            <groupId>com.aqrlmy</groupId>
            <artifactId>cloud-api-commons</artifactId>
            <version>${project.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
        </dependency>
    </dependencies>
</project>

写YML

server:
  port: 7001

eureka:
  instance:
    hostname: localhost

  client:
    register-with-eureka: false
    fetchRegistry: false
    service-url:
      defaultZone: http://localhost:7001/eureka

主启动

@EnableEurekaServer

测试

http://localhost:7001/

服务提供者

EurekaClient端cloud-provider-payment8001将注册进EurekaServer成为服务提供者provider

修改Module:cloud-provider-payment8001

改POM

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

写YML

eureka:
  client:
    register-with-eureka: true
    fetchRegistry: true
    service-url:
      defaultZone: http://localhost:7001/eureka

主启动

@EnableEurekaClient

测试

先启动EurekaServer

http://localhost:7001/

服务消费者

EurekaClient端cloud-consumer-order80将注册进EurekaServer成为服务消费者consumer

修改Module:cloud-consumer-order80

POM

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

写YML

eureka:
  client:
    register-with-eureka: true
    fetchRegistry: true
    service-url:
      defaultZone: http://localhost:7001/eureka

主启动

@EnableEurekaClient

测试

  1. 先要启动EurekaServer,7001服务
  2. 再要启动服务提供者8001服务和服务消费者80服务
  3. eureka服务器

  1. 测试查询:http://localhost/consumer/payment/get/31
  2. 测试添加:postman测试添加
  3. 测试8001服务和80服务效果一样

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

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

相关文章

网上商店商城购物系统(asp.net,sqlserver,三层架构)

网上商店商城购物系统(asp.net,sqlserver,三层)(毕业论文10000字以上,程序代码,SqlServer数据库) 【运行环境】 VisualStudio SqlServer 代码下载&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1gzX_-Dzrt5jDHvQOCTN7qQ 提取码&#xff1a;8888 【项目包含内容…

Docker with IPV6

1、绪论 在 Docker 容器或群服务中使用 IPv6 之前&#xff0c;您需要在 Docker 守护进程中启用 IPv6 支持。之后&#xff0c;您可以选择对任何容器、服务或网络使用 IPv4 或 IPv6&#xff08;或两者&#xff09; 2、配置默认 Docker IPv6 注意&#xff1a;IPv6 网络仅在 Lin…

vue - vue使用webpack-bundle-analyzer进行代码打包的可视化数据分析

vue使用webpack-bundle-analyzer插件可以明确的看出每个文件模块的大小&#xff1b;常用来分析打包文件&#xff0c;优化代码等操作&#xff1b; 安装使用之后的效果如下&#xff1a;启动或打包项目&#xff0c;自动会在浏览器打开这个页面; 可以看出&#xff1a;右上角最蓝色的…

蓝牙学习五(广播包分析wireshark)

1.简介 软件工具&#xff1a;wireshark 硬件抓包工具&#xff1a;nrf52840 dongle 2.数据包分析 使用wireshark抓到的数据包分为两个部分&#xff0c;一部分是软件自己添加的内容&#xff0c;另一部分才是广播出来的数据。 2.1软件添加部分 软件添加的大部分内容可以不关注。这…

结构力学常用公式表,早晚用得到!

来源&#xff1a;360个人图书馆 常用截面几何与力学特征表​​​​​​​ 注&#xff1a; I 称为截面对主轴&#xff08;形心轴&#xff09;的截面惯性矩 (mm4)。基本计算公式如下&#xff1a; W称为截面抵抗矩 (mm)&#xff0c;它表示截面抵抗弯曲变形能力的大小&#xff0c…

SQL29 计算用户的平均次日留存率

原题链接 【描述】 题目&#xff1a;现在运营想要查看用户在某天刷题后第二天还会再来刷题的平均概率。请你取出相应数据。 【示例】&#xff1a;question_practice_detail 【题目分析】摘自题解区"Reg333"的题解 所谓次日留存&#xff0c;指的是同一用户&#x…

4-3:点赞功能

点赞 点赞 支持对帖子、评论点赞。第1次点赞&#xff0c;第2次取消点赞。 首页点赞数量统计帖子的点赞数量。 详情页点赞数量统计点赞数量。显示点赞状态。 Redis缓存用于点赞功能&#xff0c;可以提高性能。&#xff08;面向Key编程&#xff09; 1.建立RedisKeyUtil.java p…

力扣刷题记录162.1-----127. 单词接龙

目录一、题目二、代码三、运行结果一、题目 二、代码 class Solution { public://广度优先搜索int ladderLength(string beginWord, string endWord, vector<string>& wordList) {int i,j;//将vector转换成unordered_st 提高查询速度 目前理解不深unordered_set&l…

如何判断对象是否是垃圾

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。 我们都Java会自动进行内存管理&#xff0c;JVM会进行垃圾回收&#xff0c;哪它是怎么判定哪些是“垃圾”并决定“垃圾”的生死呢&#xf…

【allegro 17.4软件操作保姆级教程七】布线操作基础之二--铜皮操作

目录 1.1全局动态铜皮参数设置 1.2手动绘制铜皮 1.3手动挖铜 1.4 手动修改铜皮边界 1.5删除孤岛铜皮 1.6动/静态铜皮转换 1.7合并铜皮 1.8平面铺铜和铜皮分割 1.9铜皮颜色设置 今天分享布线操作技巧中的铜皮操作。 1.1全局动态铜皮参数设置 单板上的电源部分、铺地都…

【网安神器篇】——wmic_info信息收集工具

作者名&#xff1a;Demo不是emo 主页面链接&#xff1a;主页传送门 创作初心&#xff1a;舞台再大&#xff0c;你不上台&#xff0c;永远是观众&#xff0c;没人会关心你努不努力&#xff0c;摔的痛不痛&#xff0c;他们只会看你最后站在什么位置&#xff0c;然后羡慕或鄙夷座…

2万字一网通办远程视频踏勘建设方案67页

目 录 1. 建设背景 2. 建设周期 3. 需求分析 3.1. 需求定义 3.1.1. 需求活动目的 3.1.2. 需求分析流程 3.2. 技术需求 3.3. 用户分析 3.3.1. 办事企业 3.3.2. 踏勘人员 3.3.3. 审批人员 3.3.4. 系统管理人员 3.4. 性能需求 3.4.1. 系统架构 3.4.2. 响应时间 3.…

π110E30 单通道数字隔离器兼容代替Si8610BC-B-IS

π110E30 单通道数字隔离器兼容代替Si8610BC-B-IS 。具有出色的性能特征和可靠性&#xff0c;整体性能优于光耦和基于其他原理的数字隔离器产品。 传输通道间彼此独立&#xff0c;可实现多种传输方向的配置&#xff0c;可实现 1.5kV rms 到 5.0kV rms 隔离耐压等级和 DC 到 600…

MyBatis-Plus中查询操作知识点总结

系列文章目录 Mybatis-Plus知识点[MyBatisMyBatis-Plus的基础运用]_心态还需努力呀的博客-CSDN博客 Mybatis-PlusSpringBoot结合运用_心态还需努力呀的博客-CSDN博客 MyBaits-Plus中TableField和TableId用法_心态还需努力呀的博客-CSDN博客 MyBatis-Plus删除操作知识点总结…

【Android App】物联网中指南针、计步器、感光器、陀螺仪的讲解及实战演示(附源码 超详细必看)

需要源码请点赞关注收藏后评论区留言~~~ 一、指南针-磁场传感器 顾名思义&#xff0c;指南针只要找到朝南的方向就好了。 可是在App中并非使用一个方向传感器这么简单&#xff0c;事实上单独的方向传感器已经弃用&#xff0c;取而代之的是利用加速度传感器和磁场传感器。 获得…

区块链工作原理(区块链治理系统、比特币、以太坊、智能合约)

文章目录Blockchain Governance SystemOn-Chain GovernanceOff-Chain GovernanceBitCoin BlockchainEthereum BlockchainProperties of Blockchain SystemSmart ContractsScalability Issues in Blockchain SystemsBlockchain Governance System 每个国家或者城市都有自己的一…

我的第一个网页之----使用HTML编辑器编写HTML文档

HTML篇_三、使用HTML编辑器编写HTML文档 为了满足使用HTML语言进行学习、开发需求我们还需要选择使用一款开发工具来使用。我们可以选择更专业的开发工具来使用&#xff0c;在这里简单介绍几款本人使用过的开发工具&#xff0c;选择你的趁手武器。 一、简述几款HTML编辑器 1…

Proxmox VE 彻底删除本地存储

作者&#xff1a;田逸&#xff08;formyz&#xff09; 问题描述 从Proxmox VE web管理后台添加本地存储&#xff0c;如LVM、LVM-Thin&#xff08;精简逻辑卷&#xff09;等&#xff0c;有时候可能需要删除这些存储&#xff0c;但其Web管理后台却没有提供菜单或者按钮。要删除这…

手把手教你写Linux线程池

手把手教你写Linux线程池 如果需要线程池源码&#xff0c;关注Linux兵工厂&#xff0c;并由大量Linux资料赠送。 线程池 顾名思义&#xff0c;存储线程的池子。线程池是线程的一种使用模式。在平常业务开发中常规的逻辑是遇到任务然后创建线程去执行。但是线程的频繁创建就类…

NR小区搜索(五)S准则

微信同步更新欢迎关注同名modem协议笔记 UE根据支持的频段进行小区搜索过程&#xff0c;检测PSS/SSS->PBCH&#xff0c;然后就可以读到MIB&#xff0c;根据MIB中的pdcch-ConfigSIB1&#xff0c;可以找到CORESET0 和SearchSpace0的信息&#xff0c;进而可以确定一块时频域资…