微服务框架-SpringCloud

article/2025/8/27 10:00:55

3 总结

拜托!面试请不要再问我Spring Cloud底层原理_云深i不知处的博客-CSDN博客

最后再来总结一下,上述几个Spring Cloud核心组件,在微服务架构中,分别扮演的角色:

  • Eureka:各个服务启动时,Eureka Client都会将服务注册到Eureka Server,并且Eureka Client还可以反过来从Eureka Server拉取注册表,从而知道其他服务在哪里。
  • Ribbon:服务间发起请求的时候,基于Ribbon做负载均衡,从一个服务的多台机器中选择一台。
  • Feign:基于Feign的动态代理机制,根据注解和选择的机器,拼接请求URL地址,发起请求。
  • Hystrix:发起请求是通过Hystrix的线程池来走的,不同的服务走不同的线程池,实现了不同服务调用的隔离,避免了服务雪崩的问题。
  • Zuul:如果前端、移动端要调用后端系统,统一从Zuul网关进入,由Zuul网关转发请求给对应的服务。

在这里插入图片描述

1.什么是微服务(提供了许多组件,对微服务进行治理)

 

1.2   2个 微服务框架的对比

二.组件1-服务治理(也就是注册中心的意思)-Eureka (与远程调用有关)

远程调用有2种 resttemplate(封装了代码,简单)和httpclient(效率高,代码复杂)

如果没有注册中心,那么b调用a服务就需要将(a的网络协议,ip,端口都写到配置文件里边),不能动态获取

 

 3.搭建   Eureka服务端

 1. Eureka服务端启动类添加注解

@EnbleEurekaServer 声明这是一个Eureka Server
表示开启Eureka注册中心服务端,启动类添加注解.

@EnableEurekaClient 则表明是Eureka的Client,当项目使用Eureka的时候,两个注解的作用一样。启动类添加注解

2.Eureka控制台地址的访问(在IDEA中EurekaServer项目中,启动启动类.配置文件的port就是想问的路径)

第四步:加注解@EnableEurekaClient,   修改配置文件的内容

 

第五步: restTemplate动态获取a服务的路径(b服务里边注入DiscoveryClient对象,启动类加注解,通过注入的对象,通过A服务的服务名称最终获取到ip和端口完成远程调用)

 

 

二.服务治理--Consul(yml的配置,b掉a服务的代码与Eureka基本一样的,区别就是Consul不用自己搭IDEA的server模块了)

 它的下载安装和访问界面比较简单.(下载好之后,本地解压,是一个.exe的可执行文件,在黑窗口输入命令启动,然后在页面输入地址访问)

 

三.服务治理---Nacos (下载安装好,不用提供IDEA端的server模块,然后在2个辅助配置yml和添加注解,直接调用,   与Consul一样的操作.  代码比较简单)

 

四.负载均衡---Ribbon(做了集群,所以万一那个节点挂机,就需要负载均衡自动匹配)(在服务的消费方设置)

 

 

 第一种代码方式:

 

 第二种;yml配置的方法

五.feig你声明式服务调用(2个服务的调用)

feign和Openfeign的区别

OpenFeign服务接口调用_不断前进的皮卡丘的博客-CSDN博客

页面路径先到b服务,然后通过b服务的feign功能(2个注解启动类@EnableFeignClient和@FeignClient的value属性搭配,接口上的@RestMapping的路径映射去Eureka里边找服务a,最终完成调用)

以前有RestTemplate远程调用,Ribbon简化RestTemplate, feign最好用

HttpClient详细使用示例_justry_deng的博客-CSDN博客_httpclient

 

 

 

 

 

 六.熔断器(预防雪崩现象的发生)---Hystrix  (发生问题啦,它提供了2种功能,降级功能和熔断功能)

服务a掉b,b掉c. 如果c网络等问题,会导致b最终一直到c,自己资源耗尽也失败,然后a也同样的道理,a崩掉啦. 导致级联失败..

六.1   服务方和消费方降级方案

 

六.2  熔断功能 

 

七.API网关---GateWay (IDEA要写一个网关模块的微服务)

以前页面到前端代码,一个请求过来,前端可能调用后端多个微服务,复杂度高,修改配置麻烦,现在在前后端加入网关功能...

 

 

七.1 网关的路由配置(静态路由,上边的配置写死的.    动态路由比较灵活)

 

七.2  网关过滤器

 

 

 

八,Config+BUS  实现动态文件的管理和维护

 

外部配置文件一般放到gitee仓库中:

 

 

九。Bus消息总线 

十 Stream消息驱动:动态封装,可以切换mq的使用,同一套代码对不同的mq做编码的动作。(公司想切换mq的使用才能用到)

 

 

十二。Sleuth+Zipkin 链路追踪的

 

 

 


http://chatgpt.dhexx.cn/article/xmjXdeR0.shtml

相关文章

SpringCloud微服务框架(通俗易懂,一秒上手)

🎁🎁资源:https://pan.baidu.com/s/1zRmwSvSvoDkWh0-MynwERA&pwd1234 SpringCloud微服务框架 (一)认识微服务服务架构演变SpringCloud (二)微服务拆分案例服务拆分服务间调用 (三…

微服务学习——微服务框架

Nacos配置管理 统一配置管理 配置更改热更新 将配置交给Nacos管理的步骤: 在Nacos中添加配置文件在微服务中引入nacos的config依赖在微服务中添加bootstrap.yml,配置nacos地址、当前环境、服务名称、文件后缀名。这些决定了程序启动时去nacos读取哪个…

SpringCloud 微服务框架

单体架构:将业务全部功能集中到一个项目中,打成一个war包存储,部署在一台服务器中,只有一个数据库 优点 :架构简单,部署成本低。适合小型项目 问题:高并发性能问题,开发时代码耦合问题&#x…

零基础秒懂:手把手教你搭建一套微服务框架!

个人博客请访问 http://www.x0100.top 这套微服务框架能干啥? 这套系统搭建完之后,可以实现: 微服务架构,你的整个应用程序将会被拆分成一个个功能独立的子系统,独立运行,系统与系统之间通过 RPC 接口通…

微服务架构 — 微服务框架

目录 文章目录 目录微服务框架第一代微服务框架Spring CloudDubbo下一代微服务框架 — Service MeshIstioEnvoyKubernetes + Service Mesh = 完整的微服务框架微服务框架 微服务架构首先要面对分布式架构的内生复杂性,即:服务通信和服务治理的复杂性,例如:服务发现、熔断、…

微服务架构与开源框架

微服务架构介绍及实践 微服务现在是一个很火的概念,尤其是搞IT的大多数都对其有所了解。 到底火到什么程度呢?2016年有一个统计说,两千家企业里,30%在使用微服务,15%在实验开发和测试微服务架构,24%在学习…

微服务框架

这里写自定义目录标题 微服务框架功能Spring Cloud简介Eureka简介Eureka⼊⻔源码解析Eureka的⼀些概念 Register 服务注册 微服务框架功能 微服务具有以上的这些特点,那么作为⼀个微服务框架,⽐如Spring Cloud,应该具备⼀些什么功能 呢&…

微服务框架springcloud

基础 单体架构:将业务全部功能集中到一个项目中,打成一个war包存储,部署在一台服务器中,只有一个数据库 优点 :架构简单,部署成本低。适合小型项目 问题:高并发性能问题,开发时代码耦合问题&…

微服务框架的介绍

一、什么是微服务 微服务并没有一个官方的定义,可以理解为一种架构风格,将一个大型复杂软件应用由一个或多个微服务组成。系统中的各个微服务可被独立部署,各个微服务之间是松耦合的。每个微服务仅关注于完成一件任务并很好地完成该任务。在…

第六篇:微服务框架(SpringBoot、SpringCloud)

目录 一. 微服务框架 1. 微服务架构概念 2. 微服务的利与弊(为什么要用微服务) 二. SpringBoot 1. SpringBoot是什么? 2. SpringBoot核心注解是什么? 3. 什么是SpringBoot的自动配置?原理是什么? 4…

DLL文件的创建和调用

文章目录 前言一、DLL的优势二、使用步骤1.创建DLL文件2.调用DLL文件 总结 前言 动态数据库 (DLL) 是作为共享函数库的可执行文件。动态数据库提供了一种方法,使进程可以调用不属于其可执行代码的函数。本文将对DLL的创建和调用步骤进行保姆级讲解。 一、DLL的优势…

C# 调用 dll 文件

一、先使用C来创建一个 .dll 文件 1、创建新项目:CreateDll01 2、选择 “动态链接库(.dll)” 文件 3、在 CreateDll01.cpp 源文件中添加如下代码 // CreateDll01.cpp : 定义 DLL 应用程序的导出函数。 //#include "stdafx.h"extern "C" __decl…

dll是什么呢?dll丢失如何解决?

DLL的概念 DLL(Dynamic Link Library)文件为动态链接库文件,又称“应用程序拓展”,是软件文件类型。在Windows中,许多应用程序并不是一个完整的可执行文件,它们被分割成一些相对独立的动态链接库,即DLL文件&#xff0…

C++ 制作动态链接库.dll及.dll使用

声明:IDE是Visual studio -version 2022 其制作的动态链接库dll里面实现简单的加减法,提供给其他项目调用。 一、动态链接库(DLL)创建 1、创建DLL工程 流程:文件 -> 新建 -> 项目 -> 动态链接库&#xf…

.dll、.lib、.dll.a 的区别

我们已 ffmpeg 的动态链接库为例,描述一下这三个文件的作用: 目录整体结构: 分析 bin 目录: ffmpeg、ffplay、ffprobe 之所以这么小,是因为他们运行的时候会调用 .dll 文件当中的代码。dll:真正存放函数…

Java调用dll文件

目录 1 C创建dll 1.1 项目与工具 1.2 步骤与代码 2 Java使用JNA调用dll 2.1 项目与工具 2.2 步骤与代码 3 实际效果 4 参考链接 1 C创建dll 1.1 项目与工具 Visual Studio 2019 1.2 步骤与代码 ①使用VS创建动态链接库(DLL)项目 ②设置项目名与…

什么是dll文件

动态链接库(Dynamic Link Library 或者 Dynamic-link Library,缩写为 DLL),是微软公司在微软Windows操作系统中,实现共享函数库概念的一种方式。这些库函数的扩展名是 ”.dll"、".ocx"(包含…

什么是dll

DLL的概念 DLL(Dynamic Link Library)文件为动态链接库文件,又称“应用程序拓展”,是软件文件类型。在Windows中,许多应用程序并不是一个完整的可执行文件,它们被分割成一些相对独立的动态链接库,即DLL文件&#xff0c…

XWiKi 部分汉化

一、进入XWiki首页,用管理员进行登陆 账号:superadmin 密码:system 登陆后点击右上角,如下图所示 二、点开管理页面 如下图所示: 三、搜索localization 四、按照图中进行修改 然后部分汉化就完成了 当然,如…

XWiKi 汉化

进入XWiKi主页,然后点击菜单栏,进入管理,汉化前图片显示: 汉化后图片显示 一、进入安装目录/xwiki/WEB-INF/lib/下找到xwiki-platform-legacy-oldcore-10.7.jar 二、用zip解压软件进入xwiki-platform-legacy-oldcore-10.7.jar不要…