Spring Cloud Netflix 教程和源码

news2024/12/25 16:44:33

本教程目标

想要系统地学习 Spring Cloud Netflix, 把自己的学习过程记录下来。

状态

持续更新中

微服务架构

微服务架构是一种将应用程序拆分为一组独立的、可独立部署的服务的架构模式。每个服务都运行在自己的进程中,可以独立地进行开发、测试和部署。微服务架构可以提高应用程序的可扩展性、可维护性和可复用性。

在微服务架构中,服务之间的通信通常是通过API来进行的。每个服务都有自己的API,客户端可以通过这些API来调用服务,从而实现服务之间的通信。服务之间可以通过RESTful API、gRPC、Thrift等方式来进行通信。

微服务架构中的服务通常是由小型、自治的团队来开发和管理的。每个服务都有自己的数据库,可以独立地进行扩展和升级。服务之间的依赖关系通常是通过API接口来管理的,而不是通过硬编码的方式来管理的。

微服务架构的优点包括:

  • 可扩展性:由于每个服务都是独立的,因此可以根据需要对服务进行扩展,而不会影响其他服务的运行。
  • 可维护性:由于每个服务都是独立的,因此可以对服务进行独立的维护和升级,而不会影响其他服务的运行。
  • 可复用性:由于每个服务都是独立的,因此可以将服务复用在其他项目中,从而提高开发效率和代码质量。
  • 可测试性:由于每个服务都是独立的,因此可以对服务进行独立的测试,而不会影响其他服务的运行。

微服务架构的缺点包括:

  • 部署和管理复杂性:由于每个服务都是独立的,因此需要对每个服务进行单独的部署和管理,这可能会增加部署和管理的复杂性。
  • 故障隔离性:由于每个服务都是独立的,因此如果一个服务出现故障,可能会导致整个应用程序出现故障,这可能会增加故障隔离性的问题。
  • 数据一致性:由于每个服务都是独立的,因此需要对数据一致性进行特殊的处理,这可能会增加数据一致性的问题。
  • 性能问题:由于每个服务都是独立的,因此可能需要增加网络通信的成本,这可能会导致性能问题。

SpringCloud微服务架构

在这里插入图片描述

Eureka 介绍

Spring Cloud Netflix Eureka是一个Netflix公司开发的服务注册和发现工具。
在微服务架构中,服务之间需要互相调用和通信,而Eureka可以提供服务注册和发现的功能,使得服务之间可以互相调用和通信。

Eureka是一个基于REST的服务注册和发现工具,它可以注册和发现Spring Boot应用程序。Eureka服务器存储所有注册的应用程序的元数据,并提供一个简单的REST API来获取这些元数据。服务注册到Eureka时,它们会提供一些元数据,如服务名称、IP地址、端口号、服务健康状况等。服务发现使用这些元数据来找到其他服务,并可以执行一些操作,如心跳检测、服务下线、服务健康检查等。

Eureka提供了许多配置选项,可以根据具体需求进行配置。例如,可以配置Eureka服务器是否启用JMX监控,Eureka客户端是否在启动时向Eureka服务器注册,Eureka客户端是否从Eureka服务器获取服务实例列表等。

Spring Cloud Netflix Eureka是一个轻量级、易于使用的服务注册和发现工具,可以简化微服务架构的开发和部署。

Eureka 配置文件中常见的属性及其作用
属性名Eureka服务器Eureka客户端
server.port固定动态
eureka.instance.metadata-map.app.instance-id固定动态
eureka.instance.metadata-map.app.name固定动态
eureka.server.enable-jmx固定false
eureka.server.jmx-port固定false
eureka.server.healthcheck.port固定false
eureka.server.auto-registration.enabled固定false
eureka.client.register-with-eurekafalsetrue
eureka.client.fetch-registryfalsetrue
eureka.client.healthcheck-interval-secondsfalse30
eureka.client.register-on-startupfalsetrue
eureka.client.renewal-interval-secondsfalse90
eureka.client.region默认默认

代码

1. eureka_server
项目地址

项目地址

启动步骤
  • 创建Eureka Server的配置文件,通常使用的是application.properties或application.yml文件。在配置文件中,需要配置Eureka Server的端口号、注册中心的地址等信息。例如:
     

    eureka.server.port=8761
    eureka.server.registryURL=http://localhost:8761/eureka/
    eureka.server.metadata-map.application.version=1.0.0
  • 创建Eureka Server的类,通常使用的是EurekaServerApplication类。在类中,需要使用@SpringBootApplication注解来启用Spring Boot的自动配置,并使用main方法来启动Eureka Server。例如:
   

    package com.example.eureka.server;

    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;

    @SpringBootApplication
    public class EurekaServerApplication {

        public static void main(String[] args) {
            SpringApplication.run(EurekaServerApplication.class, args);
        }
    }
  • 使用IDEA或Maven等工具运行Eureka Server应用程序。在运行过程中,Eureka Server将会启动并监听指定的端口号,等待服务实例的注册和注销。

注意:在运行Eureka Server之前,需要确保Eureka Server的配置文件中的注册中心地址是正确的,并且已经启动了Eureka Server。

测试

访问路径 http://localhost:8761/
在这里插入图片描述

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

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

相关文章

数据库管理-第108期 因Exadata存储节点操作系统空间异常的紧急处理(20230928)

数据库管理-第108期 因Exadata存储节点操作系统空间异常的紧急处理(20230928) 众所周知,明天放假了,本着对客户数据库软硬件负责任的态度,进行了一次深入彻底的软硬件巡检(就是检查包括计算节点、存储节点…

vue3中状态适配

写一个函数,在函数中定义一个对象 用于存放键值对,最后返回指定状态所对应的的值,即对象[指定状态] 的 对象的值。 在模板中把状态传入 // vue3 setup语法糖中 const formatXXXState (xxxState)>{const stateMap {键1: 值1,键2: 值2,.…

Linux-正则三剑客

目录 一、正则简介 1.正则表达式分两类: 2.正则表达式的意义 二、Linux三剑客简介 1.文本处理工具,均支持正则表达式引擎 2.正则表达式分类 3.基本正则表达式BRE集合 4.扩展正则表达式ere集合 三、grep 1.简介 2.实践 3.贪婪匹配 四、sed …

VS+Qt+opencascade三维绘图stp/step/igs/stl格式图形读取显示

程序示例精选 VSQtopencascade三维绘图stp/step/igs/stl格式图形读取显示 如需安装运行环境或远程调试,见文章底部个人QQ名片,由专业技术人员远程协助! 前言 这篇博客针对《VSQtopencascade三维绘图stp/step/igs/stl格式图形读取显示》编写…

postman安装使用教程

本文只是基于 Chrome 浏览器的扩展插件来进行的安装,并非单独应用程序。 首先,你要台电脑,其次,安装有 Chrome 浏览器,那你接着往下看吧。 1. 官网安装(别看) 打开官网,https://ww…

【计算机网络】P2P文件分发介绍

文章目录 P2P体系结构的自扩展性BitTorrent协议参考资料 考虑一个场景:从单一服务器向大量主机(称为对等方)分发一个大文件。 两种处理方式 客户-服务器文件分发:服务器需要向每个对等方发送该文件的一个副本 P2P文件分发&#xf…

使用代理后pip install 出现ssl错误

window直接设置代理 httphttp://127.0.0.1:7890;httpshttp://127.0.0.1

Java 并发编程面试题——BlockingQueue

目录 1.什么是阻塞队列 (BlockingQueue)?2.BlockingQueue 有哪些核心方法?3.BlockingQueue 有哪些常用的实现类?3.1.ArrayBlockingQueue3.2.DelayQueue3.3.LinkedBlockingQueue3.4.PriorityBlockingQueue3.5.SynchronousQueue 4.✨BlockingQu…

【C++】构造函数和析构函数第二部分(拷贝构造函数)--- 2023.9.28

目录 什么是拷贝构造函数?编译器默认的拷贝构造函数构造函数的分类及调用结束语 什么是拷贝构造函数? 用一句话来描述为拷贝构造即 “用一个已知的对象去初始化另一个对象” 具体怎么使用我们直接看代码,代码如下: class Maker…

什么是DOM和DOM操作

什么是DOM? DOM(文档对象模型):HTML文档的结构化表示。允许JavaScript访问HTML元素和样式来操作它们。(更改文本,HTML属性甚至CSS样式) 树结构由HTML加载后自动生成 DOM树结构 这个是一个很简单的HTML代…

Redis与分布式-主从复制

接上文 常用中间件-OAuth2 1.主从复制 启动两个redis服务器。 修改第一个服务器地址 修改第二个redis 然后分别启动 redis-server.exe redis.windows.conf) 查看当前服务器的主从状态,打开客户端:输入info replication命令来查看当前的主从状态&am…

数据结构基础9:排序全家桶

排序全家桶: 一:插入排序:1.简单插入排序:2.希尔排序: 二:选择排序:1.简单选择排序:2.堆排序(空间复杂度为O(1)): 三:快速排序;方法一…

共同见证丨酷雷曼武汉运营中心成立2周年

酷雷曼武汉运营中心2周年 全国合作商齐贺武汉公司2周年庆 2021年 作为酷雷曼辐射全国版图的又一重要据点 酷雷曼武汉运营中心 在“中国光谷”正式成立 沉浸式参观酷雷曼武汉公司 2年时间 尽管历经诸多客观因素的挑战 但后浪扬帆,依然交出了不斐的成绩 解决…

用AI写文章被百家号封禁

我是卢松松,点点上面的头像,欢迎关注我哦! 千万不要用AI创作,尤其是原文照搬!不要用ai,不要用,不要用!重要的事情说三遍。 近日ID名为“爸爸在家赚钱”用AI写了4-5篇文章投稿在百家号,随后百度就把他帐号…

【Bond与你白话IaC之Terraform for Docker篇】 攻城狮如何向女友解释IaC呢?

前言: 最近有机会与朋友聊到IaC(Infra as code)说到是否有比较好的切入点进行学习。 客观地说,看到XaX或XasX结构的的名词,让人立刻会与最前沿的云技术联系起来,但实际上其背后的思想仍然来自于传统系统的痛…

python web编程一:token、session、cookie、密码加解密

1 认证 1 传统的session-cookie机制 HTTP协议是无状态协议,为了解决它产生了cookie和session技术。 浏览器发起第一次请求到服务器,服务器发现浏览器没有提供session id,就认为这是第一次请求,会返回一个新的session id给浏览器…

Flask扩展:简化开发的利器以及26个日常高效开发的第三方模块(库/插件)清单和特点总结

目录 寻找扩展 使用扩展 创建扩展 26个常用的Flask扩展模块 总结 原文:Flask扩展:简化开发的利器以及26个日常高效开发的第三方模块(库/插件)清单和特点总结 (qq.com) Flask是一个轻量级的Python Web框架,它提供…

14.(开发工具篇github)如何在Github配置ssh key

第一步:检查本地主机是否已经存在ssh key 上图表示已存在。跳第三步 第二步:生成ssh key ssh-keygen -t rsa -C "xxxxxx.com"第三步:获取ssh key公钥内容(id_rsa.pub) cat id_rsa.pub第四步:G…

如何将图片转为ico格式

这里主要是记录一个网站,如果你有更好的办法欢迎留言~ ico简介 ICO(Icon)是一种用于表示图标的文件格式,常用于Windows操作系统中。ICO格式的图片通常用于表示应用程序、文件夹、网站等的图标。 ICO文件可以包含多个图标&#x…

在 .NET 8 Release Candidate 1 中推出 .NET MAUI:质量

作者:David Ortinau 排版:Alan Wang 今天,我们很高兴地宣布 .NET MAUI 在 .NET 8 Release Candidate 1 中已经可用,该版本带有适用于生产应用程序的正式许可证,因此您可以放心地将此版本用于生产环境。我们在 .NET 8 中…