Eureka和Nacos

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

Spring Cloud提供了多种服务注册和发现的解决方案,Eureka和Nacos是其中两个非常流行的选项。下面,我们将深入探索这两种注册中心的工作原理、配置和使用方法。

Eureka

Eureka是Netflix开发的服务发现框架,它包括两个部分:Eureka Server(服务端)和Eureka Client(客户端)。

Eureka Server

Eureka Server作为服务注册的中心节点,各个服务实例启动时会向它注册自己,并定期发送心跳以保持注册状态。

在Spring Boot中创建Eureka Server的代码如下:

package com.example.eurekaserver;

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

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

application.propertiesapplication.yml中,你可以进行一些配置,例如:

server:
  port: 8761

eureka:
  client:
    registerWithEureka: false
    fetchRegistry: false
  server:
    enableSelfPreservation: false # 关闭自我保护模式以应对服务实例不稳定的网络条件

Eureka Client

Eureka Client会向Eureka Server注册,并且从Server中发现其他服务的信息。

在Spring Boot中创建Eureka Client的代码如下:

package com.example.productservice;

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

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

application.propertiesapplication.yml中,对于Eureka Client的配置,需要指定Eureka Server的地址:

eureka:
  client:
    serviceUrl:
      defaultZone: http://localhost:8761/eureka/
  instance:
    preferIpAddress: true # 使用IP地址而不是hostname注册服务实例

Nacos

Nacos是阿里巴巴开源的一个更具动态性的服务发现和配置管理平台,支持DNS和HTTP协议。

Nacos Server

使用Nacos之前,你需要部署Nacos Server,它可以运行在单机模式或集群模式。

Nacos Client

在Spring Boot应用中,你可以通过包含spring-cloud-starter-alibaba-nacos-discovery依赖并使用@EnableDiscoveryClient注解来启用Nacos Client。

package com.example.productservice;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;

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

application.propertiesapplication.yml中配置Nacos的地址:

spring:
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848

源码解析

Spring Cloud对服务注册和发现做了高级抽象,使得源码级别的深入解析超出了一般使用的范围。不过,我们可以理解一些关键类和接口。

Eureka Client

Eureka Client的工作流程是由com.netflix.discovery.DiscoveryClient类实现的,它负责将服务信息注册到Eureka Server,并且定期发送心跳来维持其在注册表中的状态。当你需要发现其他服务时,同样是通过此类来查询Eureka Server获取服务信息。

Nacos Client

Nacos Client的功能是由com.alibaba.nacos.api.naming.NamingService接口和其实现类来提供的。它负责与Nacos Server进行交互,包括服务注册、服务发现、健康检查等。

注意事项

  • Eureka已经进入维护模式,Spring Cloud在Greenwich版本后不再主动更新对Eureka的支持。
  • Nacos除了服务注册和发现以外,还提供了配置管理的功能,可以替代Spring Cloud Config。
  • 无论是使用Eureka还是Nacos,都应该确保注册中心自身的高可用性和稳定性。
  • 服务注册与发现还涉及到网络安全、服务权限控制等复杂问题,在公有云环境或者大规模部署中尤其重要。

最终的实现细节和配置可能因实际需求和部署环境的差异而有所不同。在实际的生产环境中,通常还会涉及到更多的运维配置和安全措施。文章来源地址https://www.toymoban.com/news/detail-825455.html

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

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

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

相关文章

  • eureka迁移到nacos--双服务中心注册

    服务注册中心的迁移有多种方式,官网使用nacos sync,还有民间开发的双注册中心组件eureka-nacos-proxy,但是我用了不太顺利,所以用的是阿里巴巴的双注册中心组件edas-sc-migration-starter spring boot:2.5.3 引入依赖 正常启动即可发现两边都已经注册 如果要用open feign,需要在启动类

    2024年02月10日
    浏览(34)
  • Java分布式微服务1——注册中心(Eureka/Nacos)

    远程调用 向其他服务器请求信息(远程调用) 先在application或者configuration中注册一个Bean方便之后使用(可忽略) 使用restTemplate方法发送请求 getForObject/postForObject/… 1、Eureka注册中心 上面的url是硬编码写死的,很不方便切换,所以使用Eurake注册中心来管理服务提供者的地址 E

    2024年02月14日
    浏览(54)
  • Nacos vs. Eureka:微服务注册中心的对比

    Nacos vs. Eureka:微服务注册中心的对比 前言: 欢迎来到本篇博客,今天我们将深入研究两个常用的微服务注册中心:Nacos 和 Eureka。微服务架构的兴起使得服务注册中心成为整个体系中不可或缺的一部分,而选择一个适合自己项目的注册中心显得尤为重要。 1. Nacos 和 Eureka 简介

    2024年02月03日
    浏览(41)
  • 微服务架构的服务注册和发现究竟采用Nacos还是Eureka ?

    微服务架构已经成为了构建分布式应用程序的主要方式之一,而服务注册与发现在微服务架构中扮演着至关重要的角色。在这个领域,有两个非常流行的工具,它们分别是Nacos和Eureka。我们来深入探讨这两者之间的区别,以帮助您在选择适合您项目的服务注册与发现工具时提

    2024年02月02日
    浏览(47)
  • 【微服务开篇-RestTemplate服务调用、Eureka注册中心、Nacos注册中心】

     本篇用到的资料: https://gitee.com/Allengan/cloud-demo.git https://gitee.com/Allengan/cloud-demo.git 目录 1.认识微服务 1.1.单体架构 1.2.分布式架构 1.3.微服务 1.4.SpringCloud 1.5.总结 2.服务拆分和远程调用 2.1.服务拆分原则 2.2.服务拆分示例 2.2.1.导入Sql语句 2.2.2.导入demo工程 2.3.实现远程调用案例

    2024年02月08日
    浏览(37)
  • 微服务理解、Nacos与Eureka、Feign和Gateway

    目录 分布式架构 微服务是一种经过良好架构设计的分布式架构方案 SpringCloud是目前国内使用最广泛的微服务框架 服务拆分原则 Eureka Ribbon负载均衡 Ribbon负载均衡的原理 Ribbon负载均衡策略IRule Ribbon饥饿加载 Nacos注册中心 Nacos同集群优先的负载均衡 权重配置 环境隔离 Nacos与

    2024年02月06日
    浏览(44)
  • 分布式微服务技术栈-SpringCloud<Eureka,Ribbon,nacos>

    分布式架构的一种 把服务进行 拆分 springcloud 解决了 服务拆分过程中的 治理问题 与单体应用 进行区分 (单体架构 把业务所有功能集中开发,打成一个包部署) 每个模块独立开发和部署(服务集群) 服务之间互相调用 出现分布式技术 Webservice ESB Hession Dubbo 异步通信 消息队

    2024年02月07日
    浏览(50)
  • 微服务SpringCloudday1 认识微服务与服务注册(Eureka与nacos)

    随着互联网行业的发展,对服务的要求也越来越高,服务架构也从单体架构逐渐演变为现在流行的微服务架构。这些架构之间有怎样的差别呢? 了解微服务架构的优缺点 单体架构 :将业务的所有功能集中在一个项目中开发,打成一个包部署。 优点: 架构简单 部署成本低

    2024年02月12日
    浏览(33)
  • Nacos服务注册和配置中心(Config,Eureka,Bus)1

            Spring Cloud是若干个框架的集合,包括spring-cloud-config、spring-cloud-bus等近20个子项目,提供了服务治理、服务网关、智能路由、负载均衡、断路器、监控跟踪、分布式消息队列、配置管理等领域的解决方案, Spring Cloud Alibaba可以集成Zuul、Gateway等网关组件,也可集成R

    2024年02月16日
    浏览(34)
  • Nacos服务注册和配置中心(Config,Eureka,Bus)2

            Nacos领域模型,Namespace命名空间、Group分组、集群这些都是为了进行归类管理,把服务和配置文件进行归类,归类之后就可以实现一定的效果,比如隔离。对于服务来说,不同命名空间中的服务不能够互相访问调用         Namespace:命名空间,对不同的环境进行

    2024年02月16日
    浏览(53)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包