微服务注册与发现——Eureka

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


服务发现(注册)机制

nodejs的Eureka Client开源实现

微服务注册与发现——Eureka,微服务,eureka,架构
服务发现组件具备功能:
服务注册表
服务注册与服务发现
服务检查

Eureka架构图
微服务注册与发现——Eureka,微服务,eureka,架构

Eureka使用

引用

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

配置

server:
  port: 8761

eureka:
  client:
    registerWithEureka: false # 是否将自己注册到Eureka Server
    fetch-registry: false # 是否从Eureka Server获取注册信息
    service-url:
      defaultZone: http://localhost:8761/eureka/ # 设置与Eureka Server交互的地址,多个地址用,分隔

启动类标记

@SpringBootApplication
@EnableEurekaServer // 声明这是一个Eureka Server
public class EurekaApplication {
    public static void main(String[] args) {
        SpringApplication.run(EurekaApplication.class, args);
    }
}

访问

http://localhost:8761/

微服务注册与发现——Eureka,微服务,eureka,架构

微服务注册

微服务工程添加引用

注意添加版本号,否则会下载不下来

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-eureka</artifactId>
    <version>1.4.7.RELEASE</version>
</dependency>

增加配置

spring:
  application:
    name: microservice-provider-user # 用于指定注册到Eureka Server上的应用名称

eureka:
  client:
    serviceUrl:
      defaultZone: http://localhost:8761/eureka/
    instance:
      prefer-ip-address: true # 表示将自己的IP注册到Eureka Server

启动类增加注解

import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
@EnableDiscoveryClient // 声明这是一个Eureka Client

启动服务注册

微服务注册与发现——Eureka,微服务,eureka,架构

Eureka Server集群部署

防止因Eureka Server宕机导致微服务不可用
通过运行多个实例并相互注册的方式实现高可用部署,实例间彼此增量地同步信息,确保所有节点数据一致。

修改配置文件

spring:
  application:
    name: microservice-discovery-eureka
---
spring:
  config:
    activate:
      on-profile: peer1 # 指定profile=peer1
server:
  port: 8761
eureka:
  instance:
    hostname: peer1 # 指定当profile=peer1时,主机名是peer1
  client:
    serviceUrl:
      defaultZone: http://peer2:8762/eureka/ # 将自己注册到peer2这个Eureka上面去
---
spring:
  config:
    activate:
      on-profile: peer2
server:
  port: 8762
eureka:
  instance:
    hostname: peer2
  client:
    serviceUrl:
      defaultZone: http://peer1:8761/eureka/

启动多个eureka实例

java -jar microservice-discovery-eureka-3.0.2.jar --spring.profiles.active=peer1
java -jar microservice-discovery-eureka-3.0.2.jar --spring.profiles.active=peer2

微服务注册与发现——Eureka,微服务,eureka,架构
微服务注册与发现——Eureka,微服务,eureka,架构

微服务注册到多个eureka实例

eureka:
  client:
    serviceUrl:
      defaultZone: http://peer1:8761/eureka/,http://peer2:8762/eureka/
    instance:
      prefer-ip-address: true # 表示将自己的IP注册到Eureka Server

为Eureka Server添加用户认证

前面的示例均可以匿名访问,可以通过spring-security先登录之后在访问

引入spring-security

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-security</artifactId>
</dependency>

配置

server:
  port: 8761

eureka:
  client:
    registerWithEureka: false # 是否将自己注册到Eureka Server
    fetch-registry: false # 是否从Eureka Server获取注册信息
    service-url:
      defaultZone: http://user:password123@localhost:8761/eureka/
spring:
  security:
    user:
      name: user # 配置登录的账号
      password: password123 # 配置登录的密码

关闭security的csrf,否则client无法注册

未设置,client注册会报Cannot execute request on any known server

/**
 * 高版本的丢弃了
 *
 * security:
 *   basic:
 *    enabled: true
 * 配置,应该使用以下方式开启
 * @param http
 * @throws Exception
 */
@Configuration
@EnableWebSecurity
public class WebSecurityConfig {
    @Bean
    public SecurityFilterChain filterChain(HttpSecurity http) throws Exception{
        http.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.NEVER);
        http.csrf().disable();
        //注意:为了可以使用 http://${user}:${password}@${host}:${port}/eureka/ 这种方式登录,所以必须是httpBasic,
        // 如果是form方式,不能使用url格式登录
        http.authorizeRequests().anyRequest().authenticated().and().httpBasic();
        return http.build();
    }
}

client注册

仅需修改注册地址即可,注意和server保持一致

eureka:
  client:
    service-url:
      defaultZone: http://user:password123@localhost:8761/eureka/ # 需要这种格式 http://user:password@EUREKA_HOST:EUREKA_PORT/eureka/

Eureka自我保护模式

https://blog.csdn.net/fengzelun/article/details/117718784

常见问题

1、Cannot execute request on any known server

https://juejin.cn/post/6995434651862958087文章来源地址https://www.toymoban.com/news/detail-767479.html

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

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

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

相关文章

  • 1-Eureka服务注册与发现以及Eureka集群搭建(实操型)

    直接看下面的文章 idea创建maven多模块项目. 简单介绍一下: 父工程: dog-cloud-parent 管理实体项目: dog-po 微服务-服务提供者: dog-provider-8001 微服务-服务消费者: dog-consumer-80 如下: 1.3.1 父工程:dog-cloud-parent pom如下: 1.3.2 管理实体项目:dog-po 如下: 1.3.3 服务提供者:dog-

    2024年02月16日
    浏览(56)
  • 服务注册发现_搭建单机Eureka注册中心

    创建cloud-eureka-server7001模块 pom添加依赖 写yml文件 主启动类 测试 访问浏览器localhostL:7001 参数: Environment: 环境,默认为test,该参数在实际使用过程中,可以不用更改 Data center: 数据中心,使用的是默认的是 “MyOwn” Current time:当前的系统时间 Uptime:已经运行了多少时间

    2024年02月07日
    浏览(47)
  • springcloud Eureka服务注册与发现

    代码上传到 :https://github.com/13thm/study_springcloud/tree/main/days3 什么是服务治理 Spring Cloud 封装了 Netflix 公司开发的 Eureka 模块来实现服务治理 什么是服务注册与发现 Eureka采用了CS的设计架构,Eureka Server 作为服务注册功能的服务器,它是服务注册中心。而系统中的其他微服务,使

    2024年01月18日
    浏览(70)
  • 第二章 Eureka服务注册与发现

    gitee:springcloud_study: springcloud:服务集群、注册中心、配置中心(热更新)、服务网关(校验、路由、负载均衡)、分布式缓存、分布式搜索、消息队列(异步通信)、数据库集群、分布式日志、系统监控链路追踪。 1. Eureka基础知识 什么是服务治理? 在传统的rpc远程调用框

    2024年02月03日
    浏览(55)
  • 什么是SpringCloud Eureka服务注册与发现

    😀前言 本篇博文是关于SpringCloud Eureka 介绍,希望你能够喜欢 🏠个人主页:晨犀主页 🧑个人简介:大家好,我是晨犀,希望我的文章可以帮助到大家,您的满意是我的动力😉😉 💕欢迎大家:这里是CSDN,我总结知识的地方,欢迎来到我的博客,感谢大家的观看🥰 如果文

    2024年02月09日
    浏览(49)
  • Eureka:构建可靠的服务注册和发现系统

    在分布式系统中,服务注册和发现是一项关键任务。Netflix开源的Eureka框架为我们提供了一种可靠、高效的解决方案。本文将介绍Eureka的主要特点和工作原理,并提供一些实际的代码示例。 服务注册和发现 :Eureka允许微服务在启动时自动向注册中心注册自己的信息,包括服务

    2024年02月12日
    浏览(46)
  • Eureka、Zookeeper、Consul服务注册与发现

    一、Eureka服务注册与发现 1.1 概念 Eureka 是 Netflix 公司开源的一个服务注册与发现的组件 。 Eureka 和其他 Netflix 公司的服务组件(例如负载均衡、熔断器、网关等) 一起,被 Spring Cloud 社区整合为Spring-Cloud-Netflix 模块。 Eureka 包含两个组件:Eureka Server (注册中心) 和 Eureka Clien

    2024年02月02日
    浏览(45)
  • Spring Cloud Eureka:服务注册与发现

    💗wei_shuo的个人主页 💫wei_shuo的学习社区 🌐Hello World ! Spring Cloud Eureka是Spring Cloud生态系统中的一个组件,它是用于实现服务注册与发现的服务治理组件。在微服务架构中,服务之间存在复杂的依赖关系,而Spring Cloud Eureka可以帮助解决服务之间相互查找和通信的问题 Eurek

    2024年02月09日
    浏览(58)
  • SpringCloud服务注册与发现组件Eureka(五)

    Eureka github 地址: https://github.com/Netflix/eureka Eureka是Netflix开发的服务发现框架,本身是一个基于REST的服务,主要用于定位运行在AWS域中的中间层服务,以达到负载均衡和中间层服务故障转移的目的。SpringCloud将它集成在其子项目spring-cloud-netflix中,以实现SpringCloud的服务发现功

    2024年02月09日
    浏览(65)
  • 【Spring Cloud 三】Eureka服务注册与服务发现

    【Spring Cloud一】微服务基本知识 目前公司项目使用的注册中心主要是Spring Cloud Alibaba的Nacos做的注册中心和配置中心。之前也是对Nacos的基本原理通过手写代码的方式进行了实现。出于对于Eureka的好奇所以就对Spring Cloud Neflix的Eureka进行理论学习和实践。 Eureka是一个 注册发现中

    2024年02月14日
    浏览(191)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包