微服务总览

news2025/1/15 12:49:51

微服务保护

  • 微服务总览

微服务总览

在这里插入图片描述

  • 接入层反向代理功能,可以将用户域名访问的地址以负载均衡的方式代理到网关地址,并且并发能力非常高,并且会采用主备nginx的方式防止nginx寄了,备份nginx监控主nginx状态,主寄了备用就变成主nginx
  • 网关:主要关注路由功能,声明路由(id-唯一标识,uri-服务地址,predicates-断言,filters-过滤器),nginx代理过来的地址,网关通过查询路由,并且将nacos注册中心的微服务的地址拿过来,进而动态访问相应的微服务;跨域限流权限处理
  • nacos注册中心服务注册(所有服务地址注册到nacos注册中心),服务发现(网关调用,服务与服务之间调用通过服务名称,拉去服务地址进行调用),健康状态监控(服务给注册中心定时发送心跳检测,以保证服务发现阶段发现的都是健康的服务)
  • naco高可用:搭建nacos集群,设置mysql记录集群信息,并且为了简化集群里面每个nacos的地址,一般再集群中部署一个nginx,再nginx记录每个nacos的地址
  • 服务与服务之间的调用Feign:使用Feign组件进行服务间调用,基于Http协议(ps:基于rpc协议的代表为dubbo,并发能力更强,但是太偏底层,不够灵活),具体的,Feign是声明式组件,即只需要进行声明接口,加上@FeignClient(“被调用微服务”),并且在用的时候之间注入声明的接口对象即可(拓展:为什么声明了接口就可以注入接口对象呢?Feign帮我们创建的,加了注解@EnableFeignClients(被扫描的包),当SpringBoot项目启动,会看到这个注解,扫描这个包,找到相应的生命接口,通过jdk的动态代理声明代理对象放入IOC容器中),并且Feign集成了Ribbon,便于进行负载均衡。
  • Ribbon:主要功能就是负载均衡,假如我发起了一个请求,请求地址是微服务名称,那么Ribbon会拦截这个请求,获取请求的服务名称,去nacos注册中心拉去服务列表,根据你配置的规则(继承IRule)去选择相应的地址去替换请求中的微服务名。
  • nacos配置中心:将所有微服务的配置放入配置中心,实现配置解耦合热更新(修改配置,无需重启微服务就可以生效),共享配置等功能
  • RabbitMQ:实现异步调用,Feign只能实现同步调用

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

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

相关文章

展开说说:Android Fragment完全解析-卷三

本文章分析了Fragment的管理器FragmentManager、事务FragmentTransaction 、以及完整的声明周期和动态加载Fragment的原理解析。 1、Fragment管理器 FragmentManager 类负责在应用的 fragment 上执行一些操作,如添加、移除或替换操作,以及将操作添加到…

搭建MongoDB分片集群

文章目录 一、什么是分片二、分片集群1、组件构成2、分片集群内各组件间交互 三、数据如何切分四、分片策略1、哈希分片2、范围分片 五、分片集群架构六、搭建分片集群1、涉及主机2、所有主机安装MongoDB3、分片节点副本集的创建3.1、第一套副本集shard13.1.1、准备存放数据和日…

python项目==一个web项目,配置模板指定文件清洗规则,调用模板规则清洗文件

代码地址 一个小工具。 一个web项目,配置模板指定文件清洗规则,调用模板规则清洗文件 https://github.com/hebian1994/csv-transfer-all 技术栈: SQLite python flask vue3 elementplus 功能介绍: A WEB tool for cleaning…

Pyside6详细使用教程python之GUI开发

1、首先需要安装Pyside6,终端执行命令: pip3.10 install pyside6 2、你们的一般是 pip install pyside6 2、如下代码创建一个简易程序导入必要的模块 import sys from PySide6.QtWidgets import QApplication, QWidget, QVBoxLayout, QPushButton,…

three.js入门指南

WebGL和Three.js的概念 什么是WebGL WebGL是基于OpenGL ES 2.0的Web标准,可以通过HTML5 Canvas元素作为DOM接口访问。 也就是WebGL是作为OpenGL的网页端入口。它作为一个底层标准,然后我们可以通过JavaScript代码,在网页上实现三维图形的渲…

重看Spring聚焦BeanDefinition分析和构造

目录 一、对BeanDefinition的理解 (一)理解元信息 (二)BeanDefinition理解分析 二、BeanDefinition的结构设计分析 (一)整体结构体会 (二)重要接口和类分析 三、构造 BeanDef…

JavaSE——正则表达式(1/2):概述、初步使用(普通方法,正则表达式)、书写规则(字符类,预定义字符,数量词,其他,特殊案例)

目录 概述 初步使用 普通方法 正则表达式 书写规则 字符类 预定义字符 数量词 其他 特殊案例 概述 正则表达式 就是由一些特定的字符组成,代表的是一个规则。 作用一:用来校验数据格式是否合法 (更简单、更便捷) 作…

C语言 | Leetcode C语言题解之第66题加一

题目: 题解: /*** Note: The returned array must be malloced, assume caller calls free().*/ int* plusOne(int* digits, int digitsSize, int* returnSize){for(int i digitsSize - 1; i > 0; --i){digits[i] digits[i] 1;//最后元素1判断是不…

SQL注入漏洞扫描---sqlmap

what SQLMap是一款先进的自动执行SQL注入的审计工具。当给定一个URL时,SQLMap会执行以下操作: 判断可注入的参数。判断可以用哪种SQL注入技术来注入。识别出目标使用哪种数据库。根据用户的选择,读取哪些数据库中的数据。 更详细语法请参考…

NIO和NIO.2对比

Java NIO (New Input/Output) 是从Java 1.4版本开始引入的一个新的I/O API,用于替代原来的BIO(Blocking I/O)API。NIO提供了更加灵活和高效的网络通信方式,特别适合于高吞吐量的网络编程。NIO的主要特点是非阻塞模式,它…

Spark Stream

一、Spark Streaming是什么 Spark Streaming 用于流式数据的处理。Spark Streaming 支持的数据输入源很多,例如:Kafka、Flume、Twitter、ZeroMQ 和简单的 TCP 套接字等等。数据输入后可以用 Spark 的高度抽象原语如:map、reduce、join、wind…

linux 服务器利用阿里网盘API实现文件的上传和下载

文章目录 背景脚本初始化 阿里云盘API工具 aligo安装aligoaligo教程实战parse.py 演示上传文件上传文件夹下载文件下载文件夹 背景 最近在用ubuntu系统做实验,而ubuntu 系统的文件上传和下载操作很麻烦; 于是便打算使用阿里网盘的API 进行文件下载与上传…

深度学习每周学习总结P7(咖啡豆识别)

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 | 接辅导、项目定制 –来自百度网盘超级会员V5的分享 数据链接 提取码:7zt2 –来自百度网盘超级会员V5的分享 目录 0. 总结1. 数据导入及处理部分…

正点原子[第二期]Linux之ARM(MX6U)裸机篇学习笔记-10.1-NXP SDK 移植

前言: 本文是根据哔哩哔哩网站上“正点原子[第二期]Linux之ARM(MX6U)裸机篇”视频的学习笔记,在这里会记录下正点原子 I.MX6ULL 开发板的配套视频教程所作的实验和学习笔记内容。本文大量引用了正点原子教学视频和链接中的内容。…

IDEA 多模块项目报错 Cannot Save Settings 问题

IDEA 多模块项目报错 Cannot Save Settings 问题 Cannot Save Settings: Module "spring_cloud_sentinel_demo" must not contain source root "D:\java_test\Intesij_idea\spring_cloud_sentinel_demo\order_service_rest\src\main\resources"…

一键去除衣物DeepNode合成软件下载

dn软件Windows版下载地址:点击下载 ai一键去除衣物(DeepNode)是一款非常好用的一键换装软件,它可以创造出不同的图像效果,还可以对人的面部特征进行微调,使用户的图片更有特色。软件中还有许多模板可以随意使用以供参考&#xff0…

高效时间序列分析的开源利器:QuestDB

QuestDB:探索数据的深度,加速决策的速度- 精选真开源,释放新价值。 概览 时序数据库(Time Series Database,简称TSDB)是一种专门设计和优化的数据库系统,用于高效地存储、管理和查询带有时间戳…

【neteq】tgcall的调用

G:\CDN\P2P-DEV\Libraries\tg_owt\src\call\call.cc基本是按照原生webrtc的来的:G:\CDN\P2P-DEV\tdesktop-offical\Telegram\ThirdParty\tgcalls\tgcalls\group\GroupInstanceCustomImpl.cpptg对neteq的使用 worker 线程创建call Call的config需要neteqfactory Call::CreateAu…

C语言-链表实现贪吃蛇控制台游戏

使用C语言和链表实现贪吃蛇游戏 一、引言 贪吃蛇游戏是一个经典的游戏,它的玩法简单而富有挑战性。在这个博客中,我将分享如何使用C语言和链表数据结构来自主实现贪吃蛇游戏。我会详细介绍游戏的设计思路、编码过程、遇到的问题及解决方案,…

PG控制文件的管理与重建

一.控制文件位置与大小 逻辑位置:pgpobal 表空间中 物理位置:$PGDATA/global/pg_control --pg_global表空间的物理位置就在$PGDATA/global文件夹下 物理大小:8K 二.存放的内容 1.数据库初始化的时候生成的永久化参数,无法更改…