简单了解微服务--黑马(在更)

news2025/1/9 2:20:40

认识微服务

单体架构

不适合大型复杂项目

微服务架构

将单体结构的各个功能模块拆分为多个独立的项目

拆取的独立项目分别开发,在部署的时候也要分别去编译打包,分别去部署,不同的模块部署在不同的服务器上,对外提供不同的功能,相当于每个模块都是一个小的服务,即微服务。

另外还需要做到数据库的数据隔离,每个服务有各自的数据库,互不影响

好处:单体架构在编译部署时要花费大量的时间,微服务拆分开之后,打包编译的速度非常快

坏处:复杂度提升,运维成本变高

SpringCloud

OpenFeign

微服务的远程调用

只需定义接口,无需去实现,底层会帮我们完成跨服务的远程调用,包括服务的拉取,负载均衡,发送请求等等复杂的代码。

网关

网络的关口,负责请求路由转发身份校验

类比

网关:小区开门的老大爷

微服务:小区的各个住户

前端:相当于某人要来小区找人

检查:身份校验

告诉某某某xxx住在xxx号:路由

找不着带你过去:转发

小区可以看成是微服务的集群,小区的住户看成各个微服务

网关(开门的大爷)就能解决微服务太多,前端不知道请求谁的问题,前端只需要知道网关的地址即可,网关根据前端的请求来判断由哪个微服务来处理请求。

判断的过程-->路由,网关将请求转发的过程-->转发

思考:微服务很多,网关如何知道每个微服务的实例ip地址和端口?

注册中心。所有微服务一经启动,都会将信息注册到注册中心,此时注册中心就会有微服务的所有信息,网关也是微服务,启动之后可以去注册中心拉取所有微服务地址。

微服务不需要暴露给前端,只需要将网关暴露给前端即可

配置路由规则

微服务的治理

服务治理包含两部分:

part1:所有微服务在启动时都应该提交自己的服务信息到nacos-->服务的注册

part2:服务的调用者去注册中心拉取服务列表进行服务的调用-->服务的发现

注册中心原理

核心用于微服务的治理-->治理过程复杂-->使用注册中心的组件Nacos

Nacos注册中心组件

服务注册

服务治理包含两部分:

part1:所有微服务在启动时都应该提交自己的服务信息到nacos-->服务的注册

服务发现

part2:服务的调用者去注册中心拉取服务列表进行服务的调用-->服务的发现

步骤1,2和服务的注册是通用的,需要单独完成服务发现的列表拉取

总结(一)

在对单体架构进行微服务的拆分过程中,发现的问题,利用微服务组件进行问题的解决。

远程调用:例如,服务拆分之后,每个服务进行单一的职责,复杂服务会出现服务之间的调用(如查询),即远程调用,使用OpenFeign进行解决。

服务治理:远程调用有很多,调用关系错综复杂,需要对微服务地址进行维护,并知道它们的健康状态,即服务的治理,使用Nacos组件进行实现。

网关:服务很多,前端不知道调用谁,引入网关进行解决。

配置管理:微服务越来越多,每个服务都有自己的配置文件,配置太多太复杂,并且配置出现变更需要重新启动服务,服务的可用性降低,使用Nacos组件进行问题解决,可以对配置进行抽取和共享,简化微服务的配置,还可以实现微服务配置的热更新,服务无需重启,提高服务的可用性

RabbitMQ

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

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

相关文章

算法导论(第3版)

目录 第一部分 基础知识第2章 算法基础2.1 插入排序 第二部分 排序和顺序统计量第三部分 数据结构第四部分 高级设计和分析技术第五部分 高级数据结构第六部分 图算法第七部分 算法问题选编第八部分 附录:数学基础知识 第一部分 基础知识 第2章 算法基础 2.1 插入…

【智路】智路OS 服务组件开发

https://airos-edge.readthedocs.io/zh/latest/dev_guide/service_dev.html 1 总览 1.1 功能 感知服务包含感知的整体pipeline,主要模块包括单相机感知和融合。 单相机感知模块 主要功能为接收IP相机RTSP视频流,解码成RGB图片,通过算法识…

【黑马点评】已解决java.lang.NullPointerException异常

Redis学习Day3——黑马点评项目工程开发-CSDN博客 问题发现及描述 在黑马点评项目中,进行到使用Redis提供的Stream消息队列优化异步秒杀问题时,我在进行jmeter测试时遇到了重大的错误 发现无论怎么测试,一定会进入到catch中,又由…

DRS部署(DM8-DM8)

DRS部署 一、规划端口二、设置环境变量三、开启源数据库的归档和逻辑日志四、配置DDL同步五、创建用户六、 DRS服务部署(DM8目的端)6.1 部署 drs 服务6.2启动drs服务 七、 DRS 服务部署(DM8 源端)7.1 部署 DRS服务7.2 启动dmhs服务…

C++第七节课 运算符重载

一、运算符重载 并不是所有情况下都需要运算符重载&#xff0c;要看这个运算符对这个类是否有意义&#xff01; 例如&#xff1a;日期减日期可以求得两个日期之间的天数&#xff1b;但是日期 日期没有意义&#xff01; #include<iostream> using namespace std; clas…

SpringBoot启动成功,但端口启动失败

目录 一、问题展示 二、问题分析 2.1.端口与Tomcat的关系 2.2.问题分析 三、SpringBoot常见知识记录 3.1.SpringBoot项目常用jar包 3.1.1.必要性jar包 3.1.2.选择性jar包 3.2.标签的作用及取值 3.2.1.compile&#xff08;编译范围&#xff09; 3.2.2.provided…

爵士编曲:爵士鼓编写 爵士鼓笔记 底鼓和军鼓 闭镲和开镲 嗵鼓

底鼓和军鼓 底鼓通常是动的音色&#xff0c;军鼓通常是大的音色。 “动”和“大”构成基础节奏。“动大”听着不够有连接性&#xff0c;所以可以加入镲片&#xff01; 开镲 直接鼓棒敲击是开镲音色 闭镲 当脚踩下踏板&#xff0c;2个镲片合并&#xff0c;然后用鼓棒敲击&am…

Koa安装和应用

文章目录 1、Koa21.1 简介1.2 安装1.3 简单使用1.4 使用脚手架创建Koa项目 1、Koa2 1.1 简介 Koa 是一个新的 web 框架&#xff0c;由 Express 幕后的原班人马打造&#xff0c; 致力于成为 web 应用和 API 开发领域中的一个更小、更富有表现力、更健壮的基石。 通过利用 async…

rust快速创建Tauri App ——基于create-tauri-app

Tauri App Tauri是一个工具包&#xff0c;可以帮助开发人员使用现有的几乎任何前端框架为主要桌面平台制作应用程序。核心是用Rust构建的&#xff0c;CLI利用Node.js使Tauri成为创建和维护优秀应用程序的真正多语言方法。 cargo install create-tauri-appcreate-tauri-app&am…

多版本node管理工具nvm

什么是nvm&#xff1f; 在项目开发过程中&#xff0c;使用到vue框架技术&#xff0c;需要安装node下载项目依赖&#xff0c;但经常会遇到node版本不匹配而导致无法正常下载&#xff0c;重新安装node却又很麻烦。为解决以上问题&#xff0c;nvm&#xff1a;一款node的版本管理工…

FSFP——专为蛋白质工程设计的少样本学习策略

论文地址&#xff1a;通过小样本学习&#xff0c;以最少的湿实验室数据提高蛋白质语言模型的效率 参考文献&#xff1a;AI蛋白质设计“新引擎”:FSFP驱动大模型超低采样学习,少量数据显著提升蛋白质语言模型的性能 前言介绍&#xff1a;上海交通大学自然科学研究院洪亮教授课…

在STM32工程中使用Mavlink与飞控通信

本文讲述如何在STM32工程中使用Mavlink协议与飞控通信&#xff0c;特别适合自制飞控外设模块的项目。 需求来源&#xff1a; 1、增稳云台里的STM32单片机需要通过串口接收飞控传来的云台俯仰、横滚控制指令和相机拍照控制指令&#xff1b; 2、自制的有害气体采集器需要接收飞…

PCL 曲线点云提取

文章目录 一、简介二、实现代码三、实现效果参考文献一、简介 提取曲线点云的方法主要分为两种:参数化与非参数化,其中参数化是指事先直线曲线的形状,反之,非参数化则是不依赖与曲线的参数,通常是一种聚类的行为。这里我们采用非参数方法(TriplClust),将点集划分为一个未…

Java ETL - Apache Beam 简介

基本介绍 Apache Beam是一个用于大数据处理的开源统一编程模型。它允许用户编写一次代码&#xff0c;然后在多个批处理和流处理引擎上运行&#xff0c;如Apache Flink、Apache Spark和Google Cloud Dataflow等。Apache Beam提供了一种简单且高效的方式来实现数据处理管道&…

上海儿童自闭症寄宿制学校,让孩子找到归属感

在探讨自闭症儿童教育的广阔图景中&#xff0c;上海作为一座充满人文关怀的城市&#xff0c;始终致力于为这些特殊的孩子提供更加全面、专业的支持体系。而当我们把这份关注与努力投射到具体实践上&#xff0c;广州的星贝育园自闭症儿童寄宿制学校便成为了这样一个温馨而有力的…

蓝桥杯DS18B20程序源码

蓝桥杯DS18B20程序源码解析 蓝桥杯&#xff0c;作为一项全国瞩目的电子设计竞赛&#xff0c;其核心挑战在于参赛者需深度融合单片机编程与各类电子元件的应用能力。在众多项目中&#xff0c;涉及DS18B20数字温度传感器的程序源码尤为引人注目&#xff0c;它巧妙地将单片机技术…

ollama安装(ubuntu20.04)

Ollama是一款开源的自然语言处理工具&#xff0c;它可以帮助开发者快速构建文本处理应用。 ollama官网: https://ollama.ai/ 一、ollama 自动安装 linux统一采用sh脚本安装&#xff0c;一个命令行搞定。 curl -fsSL https://ollama.com/install.sh | sh二、ollama 手动安装 o…

使用 OpenCV 和 Matplotlib:绘制其彩色直方图以及拓展

如何使用 OpenCV 和 Matplotlib 读取、处理并显示图像。即将为您解答&#xff1a; 绘制其彩色直方图 代码解释 读取图像并转换颜色空间&#xff1a; image cv2.imread(001.jpg) image_rgb cv2.cvtColor(image, cv2.COLOR_BGR2RGB)cv2.imread(001.jpg)&#xff1a;从文件中…

C#基于SkiaSharp实现印章管理(7)

印章中的文本主要分为两种&#xff1a;1&#xff09;从左向右水平绘制的文本&#xff1b;2&#xff09;沿指定路径绘制的文本。前者使用SKCanvas的DrawText绘制文本&#xff0c;后者则使用SKCanvas的DrawTextOnPath绘制文本。   针对上述情况&#xff0c;调整SealElement类型…

Python编码系列—Python代理模式:为对象赋予超能力的魔法

&#x1f31f;&#x1f31f; 欢迎来到我的技术小筑&#xff0c;一个专为技术探索者打造的交流空间。在这里&#xff0c;我们不仅分享代码的智慧&#xff0c;还探讨技术的深度与广度。无论您是资深开发者还是技术新手&#xff0c;这里都有一片属于您的天空。让我们在知识的海洋中…