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

认识微服务

单体架构

不适合大型复杂项目

微服务架构

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

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

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

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

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

SpringCloud

OpenFeign

微服务的远程调用

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

网关

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

类比

网关:小区开门的老大爷

微服务:小区的各个住户

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

检查:身份校验

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

找不着带你过去:转发

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

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

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

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

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

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

配置路由规则

微服务的治理

服务治理包含两部分:

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

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

注册中心原理

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

Nacos注册中心组件

服务注册

服务治理包含两部分:

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

服务发现

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

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

总结(一)

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

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

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

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

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

RabbitMQ

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

小间距LED显示屏的技术原理分析

在现代显示技术领域,小间距LED显示屏以其卓越的显示效果和灵活的应用场景,逐渐成为市场的新宠。本文将深入探讨小间距LED显示屏的技术原理,分析其在显示领域的应用优势。 A、小间距LED显示屏的基本概念 小间距LED显示屏是指LED灯珠之间的间距…

linux hadoop-3.3.6 hbase-2.5.7

软件下载 hadoop https://dlcdn.apache.org/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz 可以直接下载到本地,也可以直接下载进虚拟机中 如果速度较慢,可以用;另一个 wget https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common…

spring-boot-maven-plugin插件打包和java -jar命令执行原理

文章目录 1. Maven生命周期2. jar包结构2.1 不可执jar包结构2.2 可执行jar包结构 3. spring-boot-maven-plugin插件打包4. 执行jar原理 1. Maven生命周期 Maven的生命周期有三种: clean:清除项目构建数据,较为简单,不深入探讨&a…

spring容器创建bean过程中使用到的几个factory

文章目录 前述BeanFactoryFactoryBeanObjectFactory 前述 spring我们可以理解为一个帮我们管理bean的容器,使用spring框架之前创建bean都是通过new的方式,使用spring框架之后, 我们只需要告诉spring框架我们有那些bean,它会帮我们…

k8s证书过期处理

证书一共分为 根CA(ca.crt) master各组件的证书(包括etcd、apiserver、front-proxy、controller-manager等各种) kubelet证书 k8s证书有效期说明: 1、原生版本有效期master节点: /etc/kubernetes/ssl/…

YOLOv10改进系列,YOLOv10损失函数更换为Powerful-IoU(2024年最新IOU),助力高效涨点

改进前训练结果: 改进后的结果: 摘要 边界框回归(BBR)是目标检测中的核心任务之一,BBR损失函数显著影响其性能。然而,观察到现有基于IoU的损失函数存在不合理的惩罚因子,导致回归过程中锚框扩展,并显著减缓收敛速度。为了解决这个问题,深入分析了锚框扩展的原因。针…

基于 K8S kubernetes 的常见日志收集方案

目录 1、日志对我们来说到底重不重要? 2、常见的日志收集方案 2.1 EFK 2.2 ELK Stack 2.3 ELKfilebeat 2.4 其他方案 2、elasticsearch组件介绍 3、filebeat组件介绍 3.1 filebeat和beat关系 3.2 filebeat是什么? 3.3 Filebeat工作原理 3.4 …

ELFK日志分析平台,架构和通信

整个架构,加上跳板机,总共12台机器 技术方案: 1. 配置nfs服务器,为web集群提供共享网络文件系统 # 部署 NFS 服务 [rootnfs ~]# dnf install -y nfs-utils [rootnfs ~]# vim /etc/exports /var/webroot 192.168.1.0/24(rw,…

xml重点笔记(尚学堂 3h)

XML:可扩展标记语言 主要内容(了解即可) 1.XML介绍 2.DTD 3.XSD 4.DOM解析 6.SAX解析 学习目标 一. XML介绍 1.简介 XML(Extensible Markup Language) 可扩展标记语言,严格区分大小写 2.XML和HTML XML是用来传输和存储数据的。 XML多用在框架的配置文件…

剖析 MySQL 数据库连接池(C++版)

目录 ☀️0. 前言 🌤️1. 数据库连接池概述 ⛅1.1 服务器与数据库交互 ⛅1.2 MySQL 数据库网络模型 ⛅1.3 MySQL 连接驱动安装 ⛅1.4 同步(synchronous)连接池与异步(asynchronous)连接池 ⛅1.5 同步连接池和异…

记录开发一个英语听力训练网站

背景 在当前全球经济衰退的背景下,IT相关的工作在国内的竞争也是越来越激烈,为了能够获得更多的可能性,英语的学习也许能为程序员打开一扇新的窗户,比如很多远程的工作尤其是国际化背景的工作团队,英语的协作沟通是必…

yolov8-obb中存在的一个bug

yolov8支持OBB目标检测,且能提供较好的性能。 但是最近在使用yolov8-obb的过程中,发现yolov8-obb存在一个bug。即训练数据如果包含不带旋转角度的水平目标时,训练出的模型,经常会输出垂直的检测框,需要旋转90度以后才能得到最终结果。把yolov8-obb相关的源码阅读一遍才发…

初始爬虫5

响应码: 数据处理: re模块(正则表达式) re模块是Python中用于正则表达式操作的标准库。它提供了一些功能强大的方法来执行模式匹配和文本处理。以下是re模块的一些常见用法及其详细说明: 1. 基本用法 1.1 匹配模式 …

STM32 的 RTC(实时时钟)详解

目录 一、引言 二、RTC 概述 三、RTC 的工作原理 1.时钟源 2.计数器 3.闹钟功能 4.备份寄存器 四、RTC 寄存器 1.RTC_TR(Time Register,时间寄存器) 2.RTC_DR(Date Register,日期寄存器) 3.RTC_S…

TCP 拥塞控制:一场网络数据的交通故事

从前有条“高速公路”,我们叫它互联网,而这条公路上的车辆,则是数据包。你可以把 TCP(传输控制协议)想象成一位交通警察,负责管理这些车辆的行驶速度,以防止交通堵塞——也就是网络拥塞。 第一…

【MPC】无人机模型预测控制复现Data-Driven MPC for Quadrotors项目(Part 1)

无人机模型预测控制复现Data-Driven MPC for Quadrotors项目 参考链接背景和问题方法与贡献实验结果安装ROS创建工作空间下载RotorS仿真器源码和依赖创建Python虚拟环境下载data_driven_mpc仓库代码下载并配置ACADO求解器下载并配置ACADO求解器的Python接口下载并配置rpg_quadr…

基于密码的大模型安全治理的思考

文章目录 前言一、大模型发展现状1.1 大模型技术的发展历程1.2 大模型技术的产业发展二、大模型安全政策与标准现状2.1 国外大模型安全政策与标准2.2 我国大模型安全政策与标准前言 随着大模型技术的迅速发展和广泛应用,其安全性问题日益凸显。密码学作为网络空间安全的核心技…

如何简化机器人模型,加速仿真计算与可视化

通常,我们希望将自己设计的机器人模型导入仿真环境。由于是通过 CAD 软件设计的,导出的 urdf 使用 STL 或 DAE 文件来表示 3D 几何。但原始的 STL 或 DAE 文件通常过于复杂(由数十万个三角面片组成),这会减慢仿真速度,有时也会导致仿真软件报错(如Webots)。为了在正确描述…

【Linux】调试和Git及进度条实现

这里是阿川的博客,祝您变得更强 ✨ 个人主页:在线OJ的阿川 💖文章专栏:Linux入门到进阶 🌏代码仓库: 写在开头 现在您看到的是我的结论或想法,但在这背后凝结了大量的思考、经验和讨论 目录 1.…

KVM创建的虚拟机无法访问外网

基础环境如下: [rootlocalhost ~]# virsh domifaddr CentOS7_YFName MAC address Protocol Address -------------------------------------------------------------------------------vnet0 52:54:00:cb:a6:0d ipv4 192.168.…