搭建Eureka服务注册中心

前言

我们在别的章节中已经详细讲解过eureka注册中心的作用,本节会简单讲解eureka作用,侧重注册中心的搭建。
Eureka作为服务注册中心可以进行服务注册和服务发现,注册在上面的服务可以到Eureka上进行服务实例的拉取,主要作用就是进行请求时的负载均衡。在注册中心注册了orderService服务,但是这个服务有多个实例,实例A的端口是8001,实例B的端口是8002,在我们之前请求orderService服务的时候会指明具体的端口号,但指明了端口号,请求就总往一台服务上进行发送,其他服务就无法分担请求。这样orderService服务的集群就失效了,还是单台服务抗下了所有,但有了注册中心后,我们请求时就不需要声明具体的端口号,而是服务名,向指明了服务名的服务发起请求就可以了,请求会根据默认的请求规则(轮询),向A、B服务实例发起请求。

实战

1. 搭建SpringBoot项目

创建一个SpringBoot【cloud-eureka-demo】项目。

版本最好同我的一致:

  • SpringBoot选择2.3.12.RELEASE【这个版本必须搭配JDK1.8,17不行】

2. 搭建Eureka注册中心

在上面创建好的SpringBoot 项目上新建一个模块:【eureka-server】
在这里插入图片描述
虽然我们这里是新建模块,但是要注意新建模块有两种方式,上面创建的是一个独立的模块,与【cloud-eureka-demo】并不存在父子模块的关系,eureka与其他模块不存在依赖关系,应该作为独立模块存在,可以单独部署。在微服务项目中各个模块本身就是独立的一个服务,所以可以使用这种方式创建,项目结构目录直接帮我们创建好了,挺省事的。如果要创建父子关系的模块,可以使用下面的方式:
在这里插入图片描述
这里就会让我们选择父模块。

在微服务项目中使用Maven创建具有父子模块关系的项目结构好还是独立的模块好?


对于微服务项目,通常推荐使用Maven创建具有父子模块关系的项目结构。
使用Maven创建具有父子模块关系的项目可以带来以下几个优势:

  • 模块化管理:通过父子模块的关系,可以将不同的功能或服务划分为独立的子模块,并且可以分别进行构建、测试和部署。这样可以提高项目的可维护性和扩展性。注意:父子模块的关系并不会影响各个子模块的独立构建和部署。每个子模块都有自己的构建配置和插件配置,可以独立进行构建和部署。对于测试,也可以针对每个子模块进行独立的测试,以保证测试的独立性和有效性。
  • 依赖管理:通过在父模块中定义公共的依赖和版本信息,可以确保各个子模块之间的依赖关系是一致的。这样可以减少冲突和版本不一致的问题,并且简化了依赖管理的工作。
  • 统一构建和发布:使用父模块的pom.xml文件可以统一管理项目的构建配置和插件配置。这样可以确保各个子模块在构建过程中遵循相同的规范和流程,并且可以方便地进行整体构建和发布。
  • 可重用性:父模块可以作为一个通用的框架或基础设施模块,提供公共的代码、配置和工具类等,供子模块进行复用。这样可以提高代码的可重用性和开发效率。
    总之,使用Maven创建具有父子模块关系的项目结构可以提供更好的模块化管理、依赖管理和统一构建发布等优势。这种方式适用于较大型的微服务项目或者需要更灵活组织结构的项目。

对于微服务项目,使用独立的模块也是一种常见的方式,特别是当各个模块对应的是独立的服务时。
使用独立的模块可以带来以下几个优势:

  • 独立部署:每个模块可以独立进行构建、测试和部署,这样可以更灵活地对每个服务进行管理和扩展。如果某个模块需要进行升级或者有故障发生,可以只对该模块进行处理,而不会影响其他模块。
  • 解耦合:每个模块可以独立开发和维护,它们之间通过定义好的接口进行通信,从而实现了解耦合。这样可以提高系统的可维护性和可扩展性,也方便团队并行开发。
  • 技术栈灵活:不同的模块可以选择不同的技术栈和框架来实现,根据具体需求选择最适合的技术栈。这样可以充分发挥各个模块的特长,并且可以更好地满足业务需求。
  • 服务独立性:每个模块对应一个独立的服务,可以根据需要对每个服务进行独立的水平扩展和负载均衡配置,以满足不同的性能和可用性要求。
    总结来说,使用独立的模块可以提供更好的独立部署、解耦合、技术栈灵活性和服务独立性。这种方式适用于对每个服务的独立性要求较高的微服务项目。
2.1. 版本搭配
  • 引入Eureka依赖需要引入SpringCloud
  • SpringCloud->Hoxton.SR1版本与JDK8搭配

pom.xml

<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.3.12.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.lzk</groupId>
    <artifactId>eureka-server</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>eureka-server</name>
    <description>eureka-server</description>
    <properties>
        <java.version>8</java.version>
        <spring-cloud.version>Hoxton.SR1</spring-cloud.version>
    </properties>

    <dependencies>

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

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

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
</project>

2.2. 配置文件
spring:
  application:
    name: eurekaserver

server:
  port: 10086

eureka:
  client:
    # 是否将自身作为一个eureka服务注册
    register-with-eureka: false
    # 是否从服务上拉取服务实例
    fetch-registry: false
    service-url:
      defaultZone: http://localhost:10086/eureka
2.3. 启动类

在启动类上添加@EnableEurekaServer注解

@SpringBootApplication
@EnableEurekaServer
public class EurekaServerApplication {

    public static void main(String[] args) {
        SpringApplication.run(EurekaServerApplication.class, args);
    }
}
2.4. 访问服务

启动服务后,如果出现以下错误是版本错误,检查项目是否是JDK8
在这里插入图片描述

在浏览器上访问:http://localhost:10086/,出现以下页面就是成功搭建了注册中心。
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

加载符号文件

1、加载符号文件 当程序突发崩溃时&#xff0c;当我们尝试通过core文件分析原因时&#xff0c;通常会遇到以下问题&#xff0c;那么这种情况该怎么解决呢&#xff1f; 适用场景 二进制文件与符号文件分离的情况。 # 将test中的调试信息以外的数据剥离&#xff0c;生成符号文…

性能分析与调优: Linux 文件系统观测工具

目录 一、实验 1.环境 2.mount 3.free 4.top 5.vmstat 6.sar 7.slabtop 8.strace 9.opensnoop 10.filetop 11.cachestat 二、问题 1.Ftrace实例如何实现 2.Function trace 如何跟踪实例 3.function_graph Trace 如何跟踪实例 4.trace event 如何跟踪实例 5.未…

C语言入门教程,C语言学习教程(第一部分:编程基础 )二

九、进制详解&#xff1a;二进制、八进制和十六进制 我们平时使用的数字都是由 0~9 共十个数字组成的&#xff0c;例如 1、9、10、297、952 等&#xff0c;一个数字最多能表示九&#xff0c;如果要表示十、十一、二十九、一百等&#xff0c;就需要多个数字组合起来。 例如表示…

SpringIOC之support模块GenericApplicationContext

博主介绍&#xff1a;✌全网粉丝5W&#xff0c;全栈开发工程师&#xff0c;从事多年软件开发&#xff0c;在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战&#xff0c;博主也曾写过优秀论文&#xff0c;查重率极低&#xff0c;在这方面有丰富的经验…

外贸企业建站步骤有哪些?海洋建站怎么做?

外贸企业建站平台推荐&#xff1f;做外贸如何搭建贸易网站&#xff1f; 外贸企业要想在激烈的市场竞争中立于不败之地&#xff0c;建立一个专业而吸引人的网站是至关重要的一环。海洋建站将深入探讨外贸企业建站的关键步骤&#xff0c;为您提供一个清晰的指南&#xff0c;助您…

自行车商城网站网页设计与制作web前端设计html+css+js成品。电脑网站制作代开发。vscodeDrea

【自行车商城网站网页设计与制作web前端设计htmlcssjs成品。电脑网站制作代开发。vscodeDrea】 https://www.bilibili.com/video/BV1wT4y1p7jq/?share_sourcecopy_web&vd_sourced43766e8ddfffd1f1a1165a3e72d7605

xilinix 7系列器件生成已加密文件和已经过身份验证的文件

注释 &#xff1a;如需了解更多信息&#xff0c;请参阅《使用加密确保 7 系列 FPGA 比特流的安全》(XAPP1239)。 要生成加密比特流&#xff0c;请在 Vivado IDE 中打开已实现的设计。在主工具栏中&#xff0c;依次选择“Flow” → “Bitstream Settings”&#xff08;流程 >…

ARCGIS PRO SDK 设置UI控件状态:启用/禁用

举例&#xff1a; 第一步&#xff1a;添加两个 Button 分别命名为Connect、Disconnect 第二步&#xff1a;nfig.daml添加状态和条件&#xff1a;在 DAML 中定义条件。请记住&#xff0c;条件存在于模块标记<modules>之外&#xff0c;下代码定义&#xff1a;Disconnected_…

前端八股文(网络篇)一

目录 1.Get和Post的请求的区别 2.常见的HTTP请求头和响应头 3.常见的HTTP请求方法 4.HTTP与HTTPS协议的区别 5.对keep-alive的理解 6.页面有多张图片&#xff0c;HTTP是怎样的加载表现&#xff1f; 7.HTTP请求报文是什么样的&#xff1f; 8.HTTP响应报文是什么样&#x…

基于SSM+BootStrap的学生宿舍管理系统(带文档、Java毕业设计)

大家好&#xff0c;我是DeBug&#xff0c;很高兴你能来阅读&#xff01;作为一名热爱编程的程序员&#xff0c;我希望通过这些教学笔记与大家分享我的编程经验和知识。在这里&#xff0c;我将会结合实际项目经验&#xff0c;分享编程技巧、最佳实践以及解决问题的方法。无论你是…

速卖通跨境智星:解决IP及环境问题,实现批量注册轻松搞定

如果想要注册大批量的速卖通买家号&#xff0c;关键问题之一就是IP及浏览环境的管理。为了确保每个账号都能独立运行&#xff0c;使用独立的IP是必不可少的。近期&#xff0c;速卖通跨境智星备受关注&#xff0c;支持绑定代理IP&#xff0c;并内置反指纹技术&#xff0c;为用户…

阿里云99元赠送云·原生建站(电商版)是什么?

购买阿里云99元服务器赠送云原生建站&#xff08;电商版&#xff09;&#xff0c;什么是云原生建站&#xff1f;类似模板建站&#xff0c;云原生建站预置响应式模板CMS内容管理系统&#xff0c;用户可以按需随意切换模板样式&#xff0c;通过模板可视化在线编辑轻松完成网站搭建…

湖南大学-数据库系统-2017期末考试解析

【写在前面】 这是2017年的卷子&#xff0c;复习备考的时候做了并与同学校对了答案。答案仅供参考。这张难度不大&#xff0c;比起前一年的并没有增加什么知识点。这一年好像没有简答题。 一、 单选题&#xff08;每小题 2 分&#xff0c;共 20 分&#xff09; 1 、数据库的概…

手把手教你使用Python轻松搞定发邮件

目录 一、引言 二、准备工作 三、安装必要的库 四、配置SMTP服务器 五、编写代码发送邮件 六、增强邮件安全性 七、扩展功能 八、常见问题与解决方案 九、总结 一、引言 在当今数字化的世界中&#xff0c;电子邮件已成为商业和个人交流的主要方式。Python&#xff0c…

ubuntu工具

samba samba可以将linux文件目录通过局域网映射到win系统。 samba服务器搭建流程主要分为四个步骤&#xff1a; 安装samba包 sudo apt-get install samba samba-common -y # 安装成功确认版本信息 samba -V设置共享目录的本地系统权限及samba共享权限 # 创建用户 useadd sm…

Python input()函数:获取用户输入的字符串

input() 函数用于向用户生成一条提示&#xff0c;然后获取用户输入的内容。由于 input() 函数总会将用户输入的内容放入字符串中&#xff0c;因此用户可以输入任何内容&#xff0c;input() 函数总是返回一个字符串。 例如如下程序&#xff1a; msg &#xff1d; input("请…

Lumerical Monitors------ Global properties

Lumerical Monitors------ Global properties Global properties 全局属性 Global properties 全局属性 在 Lumerical 中&#xff0c;这里以 FDTD 工程文件举例&#xff0c;所有的 monitors 都可以通过上方选项卡中的 monitor 标签页添加。 注意上面有一个 Global properties…

一条SQL查询语句是如何执行的?

前言 MySQL 的逻辑架构图 大体来说&#xff0c;MySQL 可以分为 Server 层和存储引擎层两部分。 server层&#xff1a; 主要包括连接器、查询缓存、分析器、优化器、执行器等&#xff0c;涵盖 MySQL 的大多数核心服务功能&#xff0c;以及所有的内置函数&#xff08;如日期、时间…

关于CodeReview的一些思考

在日常开发中&#xff0c;Code Review 的重要性日益凸显。它不仅有助于提升代码质量&#xff0c;还促进了团队成员之间的知识共享和技能提升。本文将主要聚焦于 Code Review&#xff0c;分享在这个过程中的一些心得和思考。 CodeReview常用到的一些术语 之前看到公司的大佬经…

2020年认证杯SPSSPRO杯数学建模D题(第二阶段)让电脑桌面飞起来全过程文档及程序

2020年认证杯SPSSPRO杯数学建模 D题 让电脑桌面飞起来 原题再现&#xff1a; 对于一些必须每天使用电脑工作的白领来说&#xff0c;电脑桌面有着非常特殊的意义&#xff0c;通常一些频繁使用或者比较重要的图标会一直保留在桌面上&#xff0c;但是随着时间的推移&#xff0c;…