Spring Cloud Netflix 教程和源码

news/2024/11/29 2:52:13/

本教程目标

想要系统地学习 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=8761eureka.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;@SpringBootApplicationpublic 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.ppmy.cn/news/1129299.html

相关文章

038:mapboxGL 旋转地图(rotateTo)

第038个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+mapbox中旋转地图。 直接复制下面的 vue+mapbox源代码,操作2分钟即可运行实现效果 文章目录 示例效果配置方式示例源代码(共68行)相关API参考:专栏目标示例效果 配置方式 1)查看基础设置:https://xiaozhuan…

0x2C动态定义数据标识符服务

其实就是临时在指定地址创建个信息DID,里面可以存写临时数据,到时候可以给自己读写,但是这东西一重启或者过段时间就没了。要用0x22服务去读取,0x2A来写,不能用0x2E来写,协议认为0x2E不能指定地址来写。 这…

git_06_创建分支/查看分支

创建分支 # 创建分支的同时,切换到该分支上 > git checkout -b 分支名称 # 将本地分支推送到远端 > git push origin 分支名称:分支名称查看分支 # 查看本地分支 > git branch # 查看远程分支 > git branch -r # 查看所有分支 > git branch -a切换…

蓝桥等考Python组别七级003

第一部分:选择题 1、Python L7 (15分) 下面for循环语句中,变量i的取值范围是( )。 for i in range(1, 8): print(i) 1~81~70~80~7正确答案:B 2、Python L7 (15分) 下面哪一年是闰年?( ) 1994年

Oracle 11g_FusionOS_安装文档

同事让安装数据库,查询服务器信息发现操作系统是超聚变根据华为openEuler操作系统更改的自研操作系统,安装过程中踩坑不少,最后在超聚变厂商的技术支持下安装成功,步骤可参数该文。 一、 安装环境准备 1.1 软件下载 下载地址:…

Docker制作镜像并部署bind9(yum安装bind)--use

镜像制作 1.1 下载镜像 docker pull centos:centos7.9.2009 1.2 运行容器 [rootlocalhost ~]# docker run -d \ --privileged \ --namebind9 \ --restartalways \ -p 53:53/udp \ -p 53:53/tcp \ -v /data/bind9:/etc/bind \ -v /sys/fs/cgroup:/sys/fs/cgroup \ centos:ce…

【Verilog 教程】 6.1Verilog函数

关键词:函数,大小端转换,数码管译码 在 Verilog 中,可以利用任务(关键字为 task)或函数(关键字为 function),将重复性的行为级设计进行提取,并在多个地方调用…

【红日靶场】vulnstack2-完整渗透过程

文章目录 一、网络拓扑二、描述配置环境渗透开始信息收集开始攻击干掉杀软cs上线权限提升 内网探测横向移动再次横向rdp连接痕迹清除 总结: 一、网络拓扑 网络配置: 二、描述 红队实战系列,主要以真实企业环境为实例搭建一系列靶场&#x…