04-微服务技术栈(基础):Eureka服务注册与发现

简介: 因前面提到Netflix相关组件已逐步被SpringCloud剔除,Eureka作为其中的注册中心,在此关注功能性即可,本章节不深入阐述其底层原理。后续章节替换为Nacos后,针对Nacos再做细节讨论。

1.Eureka工程搭建启动

  • 新建module,名称:eureka-server
  • 引入pom依赖,如maven未刷新需手动刷新拉取

 

       org.springframework.cloud

       spring-cloud-starter-netflix-eureka-server

 

  • 新建启动类:EurekaApplication

package cn.itcast.eureka;


import org.springframework.boot.SpringApplication;

import org.springframework.boot.autoconfigure.SpringBootApplication;

import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;


/**

* Eureka启动类

*

* @author

* @date 2022-12-22 16:20

*/

@EnableEurekaServer

@SpringBootApplication

public class EurekaApplication {


   public static void main(String[] args) {

       SpringApplication.run(EurekaApplication.class, args);

       System.out.println("Eureka服务启动成功");

   }

}


  • 新建配置文件:application.yml

server:

 port: 10086 # 服务端口

spring:

 application:

   name: eurekaserver # eureka的服务名称

eureka:

 client:

   serviceUrl:  # eureka的地址信息

     defaultZone: http://127.0.0.1:10086/eureka

   register-with-eureka: false

   fetch-registry: false

至此,eureka已完成创建、部署、访问。至此工程目录结构如下

打开Idea-Service控制台

稍后章节我们需工程多开部署(为后续Ribbon测试打好基础),需读者提前打开一下控制台窗口

2.user-service接入并启动

2.1 引入pom依赖

   org.springframework.cloud

   spring-cloud-starter-netflix-eureka-server

2.2 更新配置文件

以下配置文件注意缩进,其中application为spring下二级路径,主要为了区分多个注册在eureka上的服务。

 application:

   name: userservice

eureka:

 client:

   service-url: #eureka服务路径

     defaultZone: http://127.0.0.1:10086/eureka/

2.3 启动并查看Eureka信息

2.3 复制模拟多实例部署

右键UserApplication,选择:Copy Configuration

设置应用信息,打开VM参数设置

VM参数设置如下:-Dserver.port=8082

启动应用并查看Eureka信息,此时变成两个活跃实例

3.order-service接入并启动

重复user-service操作,pom文件依赖操作完全一致,但配置文件中应用名称不同,在此单独贴出

 application:

   name: orderservice

eureka:

 client:

   service-url:

     defaultZone: http://127.0.0.1:10086/eureka/

启动后访问页面如下


至此我们的工程部署运行情况如下:

此时工程目录结构如下

4.常见问题及解决方案

  1. Eureka启动报错但页面访问正常

确保Eureka信息配置中增加:register-with-eureka: false、fetch-registry: false,以避免因Eureka自身注册自身带来的启动异常

  1. 应用启动正常,访问Eureka发现注册失败
  1. 确保应用引入依赖:spring-cloud-starter-netflix-eureka-server
  2. 确保优先启动Eureka,而后启动user-service、order-service
  1. 如遇其他未知问题,为避免浪费时间可直接使用此工程导入

📎cloud.zip

5.总结

本节读者带领大家完成SpringCloud集成组件Eureka的开发、部署,并完成业务应用在Eureka的注册、访问。基于此细心的读者朋友们可以发现:上一章节还写死的访问地址,已经变成动态从注册中心获取了,避免了接口提供方注册信息变更、导致消费方接口服务调用异常的场景。随着Eureka的剔除,Nacos又将如何优雅替换Eureka呢?待我们后续继续实操逐步发掘吧。


思考问题

  • Eureka是什么?解决了什么问题?
  • Eureka如何实现服务注册与服务发现?
  • 还有哪些技术可以实现服务注册与服务发现?

6.推荐阅读资料

相关文章
|
运维 监控 负载均衡
动态服务管理平台:驱动微服务架构的高效引擎
动态服务管理平台:驱动微服务架构的高效引擎
257 17
|
弹性计算 API 持续交付
后端服务架构的微服务化转型
本文旨在探讨后端服务从单体架构向微服务架构转型的过程,分析微服务架构的优势和面临的挑战。文章首先介绍单体架构的局限性,然后详细阐述微服务架构的核心概念及其在现代软件开发中的应用。通过对比两种架构,指出微服务化转型的必要性和实施策略。最后,讨论了微服务架构实施过程中可能遇到的问题及解决方案。
|
运维 监控 负载均衡
探索微服务架构下的服务治理:动态服务管理平台深度解析
探索微服务架构下的服务治理:动态服务管理平台深度解析
|
运维 监控 安全
探索微服务架构下的服务治理:动态服务管理平台的力量
探索微服务架构下的服务治理:动态服务管理平台的力量
|
弹性计算 Kubernetes API
构建高效后端服务:微服务架构的深度剖析与实践####
本文深入探讨了微服务架构的核心理念、设计原则及实现策略,旨在为开发者提供一套系统化的方法论,助力其构建灵活、可扩展且易于维护的后端服务体系。通过案例分析与实战经验分享,揭示了微服务在提升开发效率、优化资源利用及增强系统稳定性方面的关键作用。文章首先概述了微服务架构的基本概念,随后详细阐述了其在后端开发中的应用优势与面临的挑战,最后结合具体实例,展示了如何从零开始规划并实施一个基于微服务的后端项目。 ####
|
NoSQL 前端开发 测试技术
👀探秘微服务:从零开启网关 SSO 服务搭建之旅
单点登录(Single Sign-On,简称SSO)是一种认证机制,它允许用户只需一次登录就可以访问多个应用程序或系统。本文结合网关和SaToken快速搭建可用的Session管理服务。
927 8
|
弹性计算 持续交付 API
构建高效后端服务:微服务架构的深度解析与实践
在当今快速发展的软件行业中,构建高效、可扩展且易于维护的后端服务是每个技术团队的追求。本文将深入探讨微服务架构的核心概念、设计原则及其在实际项目中的应用,通过具体案例分析,展示如何利用微服务架构解决传统单体应用面临的挑战,提升系统的灵活性和响应速度。我们将从微服务的拆分策略、通信机制、服务发现、配置管理、以及持续集成/持续部署(CI/CD)等方面进行全面剖析,旨在为读者提供一套实用的微服务实施指南。
|
Java 网络安全 Nacos
Nacos作为流行的微服务注册与配置中心,其稳定性与易用性广受好评
Nacos作为流行的微服务注册与配置中心,其稳定性与易用性广受好评。然而,“客户端不发送心跳检测”是使用中常见的问题之一。本文详细探讨了该问题的原因及解决方法,包括检查客户端配置、网络连接、日志、版本兼容性、心跳检测策略、服务实例注册状态、重启应用及环境变量等步骤,旨在帮助开发者快速定位并解决问题,确保服务正常运行。
224 5
|
监控 Nacos 数据安全/隐私保护
动态服务管理平台在微服务架构中的实践与探索
动态服务管理平台在微服务架构中的实践与探索
|
运维 监控 Nacos
探索微服务架构下的服务治理:动态服务管理平台的力量
探索微服务架构下的服务治理:动态服务管理平台的力量

热门文章

最新文章