当前位置: 首页 > article >正文

SpringBoot和微服务学习记录Day2

微服务

微服务将单体应用分割成更小的的独立服务,部署在不同的服务器上。服务间的关联通过暴露的api接口来实现

优点:高内聚低耦合,一个模块有问题不影响整个应用,增加可靠性,更新技术方便
缺点:增加运维难度,分布式系统复杂,测试开发部署较于单体应用不便

常见微服务架构的技术栈

1.Dubbo 阿里出品,后捐赠Apache
2.SpringCloud Netfilx (逐渐淘汰)
3.SpringCloud Spring官方
4.SpringCloudAlibaba

注册中心

微服务通过http协议使不同的服务进行通信,这些服务需要放在一个池子里进行管理,这就是服务的注册中心,并且其本身也是一个微服务

特点

1.可以对所有微服务信息存储,IP地址端口号,名称
2.查询可用的微服务和对应的网络地址进行服务的调用(进网吧分配机子)
3.对微服务进行心跳检测,如果某个微服务宕机,从注册表中移除

常用的注册中心

Eureka
Consul
Zookeeper
Nacos

CAP定理:不能同时满足以下三原则

C:一致性,数据的一致,所有节点的数据副本都是最新的
A:可用性,一定时间内保证获取数据,即使某些结点发生故障,及时反馈
P:分区容错性,必须满足的条件

为了保证一致性,所有数据一致,发生网络故障就需要阻塞相关资源,也满足不了可用性,因此两者矛盾

Eureka:

1.向服务端和客户端分别引入各自依赖
2.配置文件中向注册中心中注册
3.服务端取消迫切注册,取消自身注册
4.客户端需要加上@EanableEurakaClient注解,表示是客户端
5.服务端有自我保护机制,心跳检测,90秒是否在线,也可以关闭
6.不能保证数据一致性,逐渐被淘汰

Consul:

1.用于代替Eureka,它保证了一致性和分区容错性 
2.启动consul,默认端口是8500
3.注册客户端,引入consul依赖同时引入健康检查依赖,否则即使服务可用,consul也获取不到状态

微服务中模块间相互调用

1.必须在注册中心注册过
2.使用RestTemplate调用接口
3.服务间其实是跨域请求,但是因为在注册中心注册过,可以接受请求

负载均衡

将请求通过特定的算法(默认是轮询策略),均匀的分配到服务器集群中,优化资源的使用,提升可靠性

OpenFeign

一种解决集群负载均衡的技术,相较于RestTemlpate + Ribbon这种实现,它不需要具体的发送http请求,简化操作

1.引入OpenFeign依赖,在主启动类加上@EnableFeignClients注解
2.创建接口,在接口上加上@FeignClient注解,写上集群的名称
3.创建请求方法,与对应请求服务的路径一致,之后在其他服务中注入该接口调用方法
4.get请求传参即使只有一个参数也要加上@RequstParam注解

相关文章:

SpringBoot和微服务学习记录Day2

微服务 微服务将单体应用分割成更小的的独立服务,部署在不同的服务器上。服务间的关联通过暴露的api接口来实现 优点:高内聚低耦合,一个模块有问题不影响整个应用,增加可靠性,更新技术方便 缺点:增加运维…...

4.9复习记

1.地宫取宝--记忆化搜索,可以先写void dfs,然后在改成ll 形式的,边界条件return 0/1; 记忆化数组与dfs元素保持一致,记得记忆化剪枝 这个题特殊在value可能是0,不取的时候应该记为-1 https://mpbeta.cs…...

LinuxSocket套接字编程

1.介绍函数使用 1.创建套接字 int socket(int domain, int type, int protocol); domain:指定协议族,如AF_INET(IPv4)或AF_INET6(IPv6)。 type:指定套接字类型,如SOCK_DGRAM&#…...

动态科技感html导航网站源码

源码介绍 动态科技感html导航网站源码,这个设计完美呈现了科幻电影中的未来科技界面效果,适合展示技术类项目或作为个人作品集的入口页面,自适应手机。 修改卡片中的链接指向你实际的HTML文件可以根据需要调整卡片内容、图标和颜色要添加更…...

Java进阶版线程池(超详细 )

线程池 线程池工具类 Executors Executors 是 Java 提供的一个工具类,它包含了多个静态方法,能够方便地创建不同类型的线程池。 newFixedThreadPool 创建一个固定大小的线程池,线程池中的线程数量固定,当有新任务提…...

每日算法:洛谷U535992 J-C 小梦的宝石收集(双指针、二分)

题目描述 小梦有 n 颗能量宝石,其中第 i 颗的能量为 ai​,但这些能量宝石十分不稳定,随时有可能发生崩坏,导致他们全部消失! 小梦想要留住宝石们,不希望他们发生崩坏,同时他发现:如…...

YOLOv11训练中精准率召回率与mAP@0.5的动态变化分析

目标检测模型的训练过程涉及多个关键性能指标和损失函数的变化,这些数据能够直观反映模型的收敛速度、最终精度以及改进效果。本文旨在通过绘制YOLOv11模型在训练过程中的精准率(Precision)、召回率(Recall)、mAP0.5 、…...

Java常用工具算法-6--秘钥托管云服务AWS KMS

前言: 之前我们介绍了一些常用的加密算法(如:对称加密AES,非对称加密RSA,ECC等),不论是哪一种都需要涉及到秘钥的管理。通常的做法都是把秘钥放到配置文件中进行配置,但是对于一些高…...

11. Langchain输出解析(Output Parsers):从自由文本到结构化数据

引言:从"自由发挥"到"规整输出" 2025年某金融机构的合同分析系统升级前,AI生成的合同摘要需人工二次处理达47分钟/份。引入LangChain结构化解析后,处理时间缩短至3分钟。本文将详解如何用LangChain的解析器,…...

docker stack常用命令

1、Docker Stack介绍 Docker Stack管理swarm堆栈与Swarm协调器配合使用,是Docker Swarm环境中用于管理一组相关服务的工具。它使得在Swarm集群中部署、管理和扩展一组相互关联的服务变得简单。主要用于定义和编排容器化应用的多个服务。以下是Docker Stack的一些关…...

python reportlab模块----操作PDF文件

reportlab模块----操作PDF文件 一. 安装模块二. reportlab相关介绍三. 扩展canvas类四. 水平写入完整代码五. 垂直写入完整代码 一. 安装模块 pip install reportlab二. reportlab相关介绍 # 1. letter 生成A4纸张尺寸 from reportlab.lib.pagesizes import letter print(let…...

解锁基因密码之重测序(从测序到分析)

在生命科学的奇妙世界中,基因恰似一本记录着生命奥秘的“天书”,它承载着生物体生长、发育、衰老乃至疾病等一切生命现象的关键信息。而重测序技术,则是开启基因“天书”奥秘的一把神奇钥匙。 试想,你手中有一本经典书籍的通用版…...

TQTT_KU5P开发板教程---QSFP25G光口回环测试

文档实现功能介绍 本文档通过一个叫做ibert的IP,实现25G光口回环测试例子。工程新建方法请参考文档《流水灯》,其中只是将文件名进行修改。 Vivado 起始页(或 file-->Project-->New 创建新工程(Create New Project) 向导起始页面 点…...

JVM虚拟机篇(七):JVM垃圾回收器全面解析与G1深度探秘及四种引用详解

JVM垃圾回收器全面解析与G1深度探秘及四种引用详解 JVM虚拟机(七):JVM垃圾回收器全面解析与G1深度探秘及四种引用详解一、JVM有哪些垃圾回收器1. Serial回收器2. ParNew回收器3. Parallel Scavenge回收器4. Serial Old回收器5. Parallel Old回…...

柑橘病虫害图像分类数据集OrangeFruitDaatset-8600

文章目录 1. 前言2. 数据类别介绍3. 数据集地址 1. 前言 柑橘,作为水果界的 “宠儿”,不仅以其酸甜可口的味道深受大众喜爱,更是在全球水果产业中占据着举足轻重的地位。无论是早餐中的一杯橙汁,还是下午茶里的柑橘甜点&#xff…...

深度学习总结(4)

张量积 张量积(tensor product)或点积(dot product)是最常见且最有用的张量运算之一。注意,不要将其与逐元素乘积(*运算符)弄混。在NumPy中,使用np.dot函数来实现张量积&#xff0c…...

利用CST Microwave Studio设计贴片天线

利用CST Microwave Studio设计贴片天线的步骤如下,分为几个关键阶段: --- ### **1. 初始设置** - **新建项目**:打开CST,创建新项目(File > New),选择“Antenna (Planar)”或“Microwave &…...

STM32之SG90舵机控制(附视频讲解)

目录 前言: 一、硬件准备与接线 1.1 硬件清单 1.2 接线 二、 SG90舵机简介 1.1 外观 1.2 基本参数 1.3 引脚说明 1.4 控制原理 1.5 特点 1.6 常见问题 三、 单片机简介 四、 程序设计 4.1 定时器配置 4.2 角度控制函数 4.3 主函数调用 五、 总结 …...

(1)英特尔 RealSense T265(三)

文章目录 前言 4.4 地面测试 4.5 飞行测试 4.6 室内外实验 4.7 数据闪存记录 4.8 启动时自动运行 4.9 使用 OpticalFlow 进行 EKF3 光源转换 前言 Realsense T265 通过 librealsense 支持 Windows 和 Linux 系统。不同系统的安装过程差异很大,因此请参阅 gi…...

Spring入门概念 以及入门案例

Spring入门案例 Springspring是什么spring的狭义与广义spring的两个核心模块IoCAOP Spring framework特点spring入门案例不用new方法,如何使用返回创建的对象 容器:IoC控制反转依赖注入 Spring spring是什么 spring是一款主流的Java EE轻量级开源框架 …...

xwiki的中文国际化

https://www.xwiki.org/xwiki/bin/view/Documentation/DevGuide/Tutorials/InternationalizingApplications/ 首先启用中文支持(参考此网页) 到Wiki的管理界面,进入Localization,在Supported Languages和Default Language里填zh&…...

多模态大语言模型arxiv论文略读(七)

MLLM-DataEngine: An Iterative Refinement Approach for MLLM ➡️ 论文标题:MLLM-DataEngine: An Iterative Refinement Approach for MLLM ➡️ 论文作者:Zhiyuan Zhao, Linke Ouyang, Bin Wang, Siyuan Huang, Pan Zhang, Xiaoyi Dong, Jiaqi Wang,…...

【操作系统(Linux)】——生产者消费者同步互斥模型

✅ 一、程序功能概述 我们将做的:实现一个经典的「生产者-消费者问题」多线程同步模型的案例,主要用到 循环缓冲区 POSIX 信号量 sem_t pthread 多线程库,非常适合理解并发控制、线程通信和缓冲区管理。 案例目标:通过多个生产…...

SQL ③-基本语法

SQL基本语法 表操作 创建表 CREATE TABLE table_name (column1 datatype constraint,column2 datatype constraint,column3 datatype constraint,... );删除表 DROP [TEMPORARY] TABLE [IF EXISTS] table_name [, table_name...];TEMPORARY:表示临时表&#xff…...

【Pandas】pandas DataFrame bool

Pandas2.2 DataFrame Conversion 方法描述DataFrame.astype(dtype[, copy, errors])用于将 DataFrame 中的数据转换为指定的数据类型DataFrame.convert_dtypes([infer_objects, …])用于将 DataFrame 中的数据类型转换为更合适的类型DataFrame.infer_objects([copy])用于尝试…...

2025年3月全国青少年软件编程等级考试(Python五级)试卷及答案

2025.03电子学会 全国青少年软件编程等级考试(Python五级)试卷 一、单选题 1.以下哪个选项不是Python中的推导式?( ) A.列表推导式 B.字典推导式 C.集合推导式 D.元组推导式 2.以下Python代码的返回结果是?( ) [x**2 for…...

esp32cam -> 服务器 | 手机 -> 服务器 直接服务器传输图片

服务器先下载python : 一、Python环境搭建(CentOS/Ubuntu通用) 一条一条执行 安装基础依赖 # CentOS sudo yum install gcc openssl-devel bzip2-devel libffi-devel zlib-devel # Ubuntu sudo apt update && sudo apt install b…...

豆浆机语音提示芯片方案:基于可远程在线更换语音的WT2003H-16S芯片

随着智能家居概念的普及,消费者对家电产品的智能化、便捷性提出了更高要求。豆浆机作为厨房常用电器,其操作便捷性和用户体验直接影响市场竞争力。传统豆浆机多依赖指示灯或简单蜂鸣器提示用户操作状态,信息传递单一且无法满足个性化需求。 在…...

解密工业控制柜:认识关键硬件(PLC)

前言 作为一名视觉开发工程师,我们不仅要做到做好自己的工作,我们更需要在工业现场学习更多知识,最近网上流传很多,“教会徒弟,饿死师傅”;在自动化行业中,在项目下来很忙的时候,我们…...

【嵌入式系统设计师】知识点:第11 章 嵌入式系统设计案例分析

提示:“软考通关秘籍” 专栏围绕软考展开,全面涵盖了如嵌入式系统设计师、数据库系统工程师、信息系统管理工程师等多个软考方向的知识点。从计算机体系结构、存储系统等基础知识,到程序语言概述、算法、数据库技术(包括关系数据库、非关系型数据库、SQL 语言、数据仓库等)…...