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

微服务 - 高级篇

微服务 - 高级篇

  • 一、服务治理
    • (一)服务注册与发现
    • (二)负载均衡
    • (三)服务熔断与降级
  • 二、分布式事务
    • (一)解决方案
    • (二)最终一致性
  • 三、性能优化
    • (一)代码优化
    • (二)资源调优
    • (三)缓存策略
  • 四、安全与监控
    • (一)安全机制
    • (二)监控与告警
  • 五、容器化与自动化部署
    • (一)容器技术
    • (二)CI/CD 流水线

一、服务治理

(一)服务注册与发现

在大型微服务生态中,服务实例时刻处于动态变化状态,服务注册与发现机制因此成为基石性存在。以 Consul 为例,其底层依赖分布式一致性协议 Raft,该协议确保集群内各节点状态的强一致性。在集群部署时,各个节点借助 Gossip 协议维持成员关系并同步状态。配置过程中,数据中心、服务器地址等关键参数需谨慎设置,只有这样,服务实例才能精准完成注册与被发现的流程。设想一个综合性出行平台,涵盖打车服务、租车服务、酒店预订服务等多个微服务。当打车服务启动时,会把自身网络地址、端口等关键信息注册至 Consul;而酒店预订服务在需要调用打车服务时,便能通过 Consul 迅速获取可用的打车服务实例地址。再看 Eureka,它采用 AP(可用性和分区容错性)架构,服务实例间通过相互复制状态达成最终一致性。在对可用性要求近乎苛刻的云环境等场景下,Eureka 表现卓越,其独特的自我保护机制能在网络异常时防止误删服务实例,全力保障服务调用顺畅。

(二)负载均衡

除了广为人知的轮询、随机等基础负载均衡算法,动态负载均衡策略在优化微服务性能方面扮演着极为关键的角色。例如,基于响应时间的负载均衡策略,它会实时监测每个服务实例处理请求的响应时长,并将新请求分配至响应时间最短的实例。以在线办公平台的文档协作服务为例,在高峰时段,部分实例可能因处理复杂文档格式转换而负载过高、响应时间变长,此时基于响应时间的负载均衡就能把后续请求导向处理常规文档且响应迅速的实例,极大提升整体协作效率。还有基于资源利用率的负载均衡策略,其依据服务实例的 CPU、内存等资源使用状况,动态调整负载分配,有效避免个别实例因资源枯竭而崩溃,切实维持系统整体性能稳定。

(三)服务熔断与降级

熔断机制原理类似现实中的保险丝。以 Hystrix 为例,它会持续监控服务调用的失败率等关键指标。一旦失败率超过预设阈值(如 50%),且在特定时间窗口(如 10 秒)内持续保持这一状态,就会触发熔断。熔断后,后续针对该服务的请求不再尝试实际调用,而是直接返回预先设定的 fallback 结果,以此避免因大量无效等待耗尽系统资源。在降级策略方面,以视频直播平台为例,当遭遇热门赛事直播导致流量暴增时,对于非核心的弹幕特效展示功能,可以降低特效复杂度甚至暂时关闭,优先确保视频流的稳定播放,为用户提供基本可用的服务体验。

二、分布式事务

(一)解决方案

1.两阶段提交(2PC):在分布式事务体系中,存在一个协调者与多个参与者。第一阶段,协调者向所有参与者发送事务预提交请求,参与者执行事务操作但暂不提交,随后向协调者反馈准备提交的状态。第二阶段,若所有参与者均准备就绪,协调者便发送提交请求,参与者正式提交事务;若有任一参与者未准备好,协调者则发送回滚请求,参与者回滚事务。然而,2PC 存在单点故障隐患,一旦协调者崩溃,整个事务可能陷入不确定状态。
2.三阶段提交(3PC):3PC 在 2PC 基础上增设预询问阶段。协调者先向参与者发送询问能否参与事务的请求,参与者反馈自身状态。仅当所有参与者都回复可参与时,才进入预提交阶段,后续流程与 2PC 相似。3PC 在一定程度上缓解了 2PC 的单点故障问题,但实现过程复杂,性能开销较大。
3.TCC(Try - Confirm - Cancel):TCC 将事务拆解为三个阶段。Try 阶段,参与者尝试预留资源;Confirm 阶段,若 Try 阶段全部成功,参与者正式提交资源;Cancel 阶段,若 Try 阶段出现失败,参与者释放已预留资源。比如在一个横跨电商平台订单服务、支付服务和库存服务的场景中,订单服务在 Try 阶段锁定订单,支付服务尝试冻结支付金额,库存服务尝试锁定库存。若三者均成功,进入 Confirm 阶段完成支付和库存扣减;否则进入 Cancel 阶段解锁订单、解冻金额并释放库存。

(二)最终一致性

消息队列在实现数据最终一致性方面发挥着重要作用。例如,在电商平台的订单创建与售后服务关联场景中,订单创建成功后,订单服务向消息队列发送包含订单信息的消息。售后服务监听该队列,接收到消息后更新售后流程信息。即便在某些时刻出现网络延迟或服务短暂故障,致使售后服务未能及时处理消息,借助消息队列的重试机制和持久化特性,最终售后流程信息也能得到准确更新。分布式日志系统,如 Apache Kafka,不仅具备消息队列功能,更因其强大的持久化和高吞吐量特性,为实现最终一致性提供坚实保障。通过记录和重播操作日志,确保分布式系统中各节点数据状态最终达成同步。

三、性能优化

(一)代码优化

在微服务代码架构里,算法复杂度对性能影响深远。例如,在一个商品推荐微服务中,若采用简单的遍历算法推荐商品,随着商品数量和用户数据量增长,计算量将呈指数级攀升。而采用协同过滤等高效算法,能够显著提升推荐速度和精准度。在数据库查询优化层面,合理创建索引是核心要点。以用户行为分析微服务为例,若频繁依据用户行为时间戳查询相关数据,在时间戳字段创建索引,可使查询速度从全表扫描的数秒缩短至毫秒级。在网络通信优化领域,运用异步通信替代同步通信,能够有效减少线程等待时间。比如在社交平台的消息推送微服务中,采用异步方式向众多用户推送消息,可同时处理海量推送任务,极大提高整体通信效率。借助性能分析工具,如 Java 开发中的 YourKit,能够直观呈现代码中各方法的执行时长、调用频次等,助力开发者快速锁定性能瓶颈。

(二)资源调优

依据微服务的业务特性和负载变化情况,合理调配服务器资源极为重要。对于计算密集型微服务,如科学计算微服务,需分配充足的 CPU 资源。通过调整服务器的 CPU 核心绑定策略,将该微服务进程固定至特定 CPU 核心,避免频繁的 CPU 上下文切换,大幅提升计算效能。对于内存需求大的微服务,如大数据缓存服务,要精确设置内存分配参数,防范内存溢出。以 Memcached 缓存服务为例,根据缓存数据规模和访问模式,合理设定最大内存限制和淘汰策略,既能保证缓存容纳足够数据,又能防止因内存耗尽导致服务崩溃。在磁盘 I/O 优化方面,对于频繁读写磁盘的日志服务等微服务,采用高速固态硬盘(SSD)替换传统机械硬盘,可显著提升读写速度,降低 I/O 等待时间。

(三)缓存策略

分布式缓存 Redis 在微服务架构中应用极为广泛。在缓存应用场景上,对于读取频繁且数据更新频率低的内容,如新闻资讯平台的热门新闻详情,可将其缓存至 Redis。在缓存过期策略方面,采用 LRU(最近最少使用)策略,当缓存空间不足时,淘汰最长时间未被访问的数据。例如在音乐播放平台的歌曲缓存中,长时间未被播放的歌曲缓存数据会优先被淘汰。针对缓存穿透问题,即查询不存在的数据每次都穿透至数据库,可借助布隆过滤器,在查询缓存前先判断数据是否可能存在,避免无效查询冲击数据库。对于缓存雪崩问题,即大量缓存同时过期导致瞬间数据库压力剧增,可通过设置随机过期时间,使缓存过期时间分散,减轻对数据库的冲击。

四、安全与监控

(一)安全机制

在微服务架构下,安全认证与授权是保障系统安全的关键防线。OAuth 2.0 作为一种开放标准,常用于第三方应用授权场景。例如,一个在线教育平台与第三方学习工具合作,用户通过教育平台授权第三方工具获取其学习进度等数据,教育平台运用 OAuth 2.0 协议,向第三方工具发送包含用户授权信息的令牌,第三方工具验证令牌后提供相应数据服务。JWT(JSON Web Token)则是用于在网络应用间安全传输信息的开放标准。在一个金融交易微服务系统中,用户登录认证成功后,系统生成包含用户身份和权限信息的 JWT,用户后续访问各微服务时携带该 JWT,微服务通过验证 JWT 确认用户身份和权限,有效防止非法访问。为防范数据泄露,对用户密码、银行卡号等敏感数据进行加密存储与传输,采用 SSL/TLS 加密协议保障网络通信安全,并定期开展安全漏洞扫描,抵御 SQL 注入、DDoS 攻击等安全威胁。

(二)监控与告警

构建全面的微服务监控体系是保障系统稳定运行的重要手段。应用性能监控(APM)工具,如 New Relic,能够实时追踪微服务调用链,展示每个服务调用的耗时、成功率等关键指标,助力开发者快速定位性能问题根源。日志监控通过收集和分析微服务产生的日志,如借助 ELK(Elasticsearch、Logstash、Kibana)堆栈,能够发现系统运行中的异常状况,如错误日志、访问异常等。指标监控聚焦系统关键性能指标,如 CPU 使用率、内存占用、网络流量等,通过 Prometheus 和 Grafana 组合,能够实时呈现这些指标的变化趋势。在告警规则设置方面,当 CPU 使用率连续 15 分钟超过 85%,或服务调用失败率超过 15% 时,系统通过邮件、短信等方式及时通知运维人员,以便迅速采取措施解决系统问题。

五、容器化与自动化部署

(一)容器技术

Docker 容器的高级特性为微服务部署带来诸多优势。在容器网络方面,Docker 支持多种网络模式,如桥接网络、主机网络和 Overlay 网络等。在一个包含前端 Web 服务、后端 API 服务和数据库服务的微服务架构中,前端容器和后端容器可通过桥接网络实现高效通信,完成数据交互;若需跨主机通信,Overlay 网络则能发挥作用。存储映射功能允许容器将自身数据存储至宿主机或共享存储,确保数据持久化。例如,一个数据库容器通过存储映射将数据库文件存储在宿主机特定目录,即便容器重启,数据也不会丢失。多阶段构建能够有效减小镜像体积。在构建一个 Go 语言微服务镜像时,第一阶段使用包含编译工具的基础镜像进行代码编译,第二阶段使用仅包含运行时依赖的最小镜像,将编译结果复制进去,生成的最终镜像体积大幅缩小,显著提升部署速度。Kubernetes 作为强大的容器编排工具,能够实现服务自动扩缩容。当一个电商平台的商品搜索微服务在促销活动期间负载飙升时,Kubernetes 依据预设的 CPU 使用率等指标,自动创建更多容器实例处理请求;活动结束后,又自动减少实例数量,节省资源。通过滚动升级,Kubernetes 能够在不中断服务的前提下,逐步更新微服务的容器镜像,保障系统稳定性。

(二)CI/CD 流水线

搭建持续集成和持续部署流水线是提升软件开发与部署效率的核心环节。在持续集成阶段,每当开发人员将代码提交至代码仓库,如 GitHub,CI 工具(如 GitLab CI/CD)自动触发构建流程。首先拉取代码,接着进行代码编译,若编译通过,运行单元测试和集成测试。以一个 JavaScript 微服务项目为例,使用 Jest 进行测试,测试覆盖率需达到 90% 以上才算通过。测试通过后,将代码打包成容器镜像并推送至镜像仓库,如 Harbor。在持续部署阶段,CD 工具(如 Spinnaker)从镜像仓库拉取最新镜像,依据 Kubernetes 配置文件,将新的微服务容器部署至生产环境。整个过程实现代码从提交到上线的自动化,极大缩短开发周期,提高软件交付质量与效率,确保微服务系统能够快速响应业务需求变化。

相关文章:

微服务 - 高级篇

微服务 - 高级篇 一、服务治理(一)服务注册与发现(二)负载均衡(三)服务熔断与降级 二、分布式事务(一)解决方案(二)最终一致性 三、性能优化(一&a…...

【Linux】线程基础

🔥个人主页:Quitecoder 🔥专栏:linux笔记仓 目录 01.背景知识02.线程概念简单使用线程线程调度成本更低 01.背景知识 OS进行内存管理,不是以字节为单位的,而是以内存块为单位的,默认大小为4kb&…...

WHAM 人体3d重建部署笔记 vitpose

目录 视频结果: docker安装说明: conda环境安装说明: 依赖项: 依赖库: 安装 mmpose,mmcv 下载模型权重: 算法原理, demo脚本 报错inference_top_down_pose_model: 测试命令: 视频结果: wham_smpl预测结果 git地址: GitHub - yohanshin/WHAM WHAM: Recons…...

netplan是如何操控systemd-networkd的? 笔记250324

netplan是如何操控systemd-networkd的? netplan通过以下方式操控systemd-networkd: 工作原理:netplan读取位于/etc/netplan/目录下的YAML格式的配置文件,这些配置文件描述了网络接口的配置。netplan会将这些配置文件解析并转换为systemd-ne…...

[学成在线]06-视频分片上传

上传视频 需求分析 教学机构人员进入媒资管理列表查询自己上传的媒资文件。 点击“媒资管理” 进入媒资管理列表页面查询本机构上传的媒资文件。 教育机构用户在"媒资管理"页面中点击 "上传视频" 按钮。 点击“上传视频”打开上传页面 选择要上传的文件…...

机器视觉场景应用中,有没有超景深的工业镜头

在机器视觉领域,确实存在具有超景深特性的工业镜头,这类镜头通过特殊的光学设计或技术手段,能够显著扩大清晰成像的纵向范围,从而满足复杂检测场景中对多平面物体清晰成像的需求。以下是相关技术要点及典型镜头类型: 1. 远心镜头 远心镜头是超景深镜头的典型代表,其特点包…...

初探 Dubbo Rust SDK打造现代微服务的新可能

一、背景故事:为什么要在微服务中用 Rust? 微服务世界曾是 Java 的天下,后来 Go 异军突起,如今,Rust 凭借其“高性能 安全 零成本抽象”的特性,正在逐步走入服务端核心舞台。 问题随之而来:…...

如何理解响应式编程

思考: 分析Netty与Reactor背压协调策略 用户的问题是关于如何在 Netty 和 Project Reactor 联合使用时处理背压问题,特别是当 Reactor 的处理速度跟不上 Netty 的事件产生速度时该怎么办。这是一个技术性很强的问题,涉及到 Netty 的非阻塞特…...

Python网络编程入门

一.Socket 简称套接字,是进程之间通信的一个工具,好比现实生活中的插座,所有的家用电器要想工作都是基于插座进行,进程之间要想进行网络通信需要Socket,Socket好比数据的搬运工~ 2个进程之间通过Socket进行相互通讯&a…...

DeepSeek 助力 Vue3 开发:打造丝滑的表格(Table)之添加导出数据功能示例14,TableView15_14多功能组合的导出表格示例

前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏+关注哦 💕 目录 DeepSeek 助力 Vue3 开发:打造丝滑的表格(Table)之添加导出数据功能示例14,TableView15_14多功…...

鸿蒙特效教程10-卡片展开/收起效果

鸿蒙特效教程10-卡片展开/收起效果 在移动应用开发中,卡片是一种常见且实用的UI元素,能够将信息以紧凑且易于理解的方式呈现给用户。 本教程将详细讲解如何在HarmonyOS中实现卡片的展开/收起效果,通过这个实例,你将掌握ArkUI中状…...

如何创建一个socket服务器?

1. 导入必要的库 首先,需要导入Python的socket库,它提供了创建和管理socket连接的功能。 python import socket 2. 创建服务器端socket 使用socket.socket()函数创建一个服务器端的socket对象,指定协议族(如socket.AF_INET表示…...

react自定义hook

自定义hook: 用来封装复用的逻辑,,自定义hook是以use开头的普通函数,,将组件中可复用的状态逻辑抽取到自定义的hook中,简化组件代码 常见自定义hook例子: 封装一个简单的计数器 import {useS…...

Android Compose 框架的状态与 ViewModel 的协同(collectAsState)深入剖析(二十一)

Android Compose 框架的状态与 ViewModel 的协同(collectAsState)深入剖析 一、引言 在现代 Android 应用开发中,构建响应式和动态的用户界面是至关重要的。Android Compose 作为新一代的声明式 UI 工具包,为开发者提供了一种简…...

系统与网络安全------网络应用基础(1)

资料整理于网络资料、书本资料、AI,仅供个人学习参考。 TCP/IP协议及配置 概述 TCP/IP协议族 计算机之间进行通信时必须共同遵循的一种通信规定 最广泛使用的通信协议的集合 包括大量Internet应用中的标准协议 支持跨网络架构、跨操作系统平台的数据通信 主机…...

linux常用指令(6)

今天我们继续学习一些linux常用指令,丰富我们linux基础知识,那么话不多说,来看. 1.cp指令 功能描述:拷贝文件到指定目录 基本语法:cp [选项] source dest 常用选项:-r:递归复制整个文件夹 拷贝文件: 拷贝文件夹&am…...

EasyUI数据表格中嵌入下拉框

效果 代码 $(function () {// 标记当前正在编辑的行var editorIndex -1;var data [{code: 1,name: 1,price: 1,status: 0},{code: 2,name: 2,price: 2,status: 1}]$(#dg).datagrid({data: data,onDblClickCell:function (index, field, value) {var dg $(this);if(field ! …...

【设计模式】单件模式

七、单件模式 单件(Singleton) 模式也称单例模式/单态模式,是一种创建型模式,用于创建只能产生 一个对象实例 的类。该模式比较特殊,其实现代码中没有用到设计模式中经常提起的抽象概念,而是使用了一种比较特殊的语法结构&#x…...

C++类与对象的第二个简单的实战练习-3.24笔记

哔哩哔哩C面向对象高级语言程序设计教程(118集全) 实战二 Cube.h #pragma once class Cube { private:double length;double width;double height; public:double area(void);double Volume(void);//bool judgement(double L1, double W1, double H1);…...

【视频】m3u8相关操作

1、视频文件转m3u8 1.1 常用命令 1)默认只保留 5 个ts文件 ffmpeg -i input.mp4 -start_number 0 -hls_time 10 -hls_list_size 0 -f hls stream1.m3u82)去掉音频 -an,保留全部ts文件 ffmpeg -i input.mp4 -vf scale=640:480 -an -start_number 0 -hls_time 10 -hls_lis…...

G-Star 校园开发者计划·黑科大|开源第一课之 Git 入门

万事开源先修 Git。Git 是当下主流的分布式版本控制工具,在软件开发、文档管理等方面用处极大。它能自动记录文件改动,简化合并流程,还特别适合多人协作开发。学会 Git,就相当于掌握了一把通往开源世界的钥匙,以后参与…...

前端框架学习路径与注意事项

学习前端框架是一个系统化的过程,需要结合理论、实践和工具链的综合掌握。以下是学习路径的关键方面和注意事项: 一、学习路径的核心方面 1. 基础概念与核心思想 组件化开发:理解组件的作用(复用性、隔离性)、组件通信…...

Apache Hive:基于Hadoop的分布式数据仓库

Apache Hive 是一个基于 Apache Hadoop 构建的开源分布式数据仓库系统,支持使用 SQL 执行 PB 级大规模数据分析与查询。 主要功能 Apache Hive 提供的主要功能如下。 HiveServer2 HiveServer2 服务用于支持接收客户端连接和查询请求。 HiveServer2 支持多客户端…...

langgraph简单Demo3(画一个简单的图)

文章目录 画图简单解析再贴结果图 画图 from langgraph.graph import StateGraph, END from typing import TypedDict# 定义状态结构 # (刚入门可能不理解这是什么,可以理解为一个自定义的变量库,你的所有的入参出参都可以定义在这里) # 如下&#xff1…...

LCR 187. 破冰游戏(python3解法)

难度:简单 社团共有 num 位成员参与破冰游戏,编号为 0 ~ num-1。成员们按照编号顺序围绕圆桌而坐。社长抽取一个数字 target,从 0 号成员起开始计数,排在第 target 位的成员离开圆桌,且成员离开后从下一个成员开始计数…...

10分钟打造专属AI助手!ToDesk云电脑/顺网云/海马云操作DeepSeek哪家强?

文章目录 一、引言云计算平台概览ToDesk云电脑:随时随地用上高性能电脑 二 .云电脑初体验DeekSeek介绍版本参数与特点任务类型表现 1、ToDesk云电脑2、顺网云电脑3、海马云电脑 三、DeekSeek本地化实操和AIGC应用1. ToDesk云电脑2. 海马云电脑3、顺网云电脑 四、结语…...

解决 Element UI 嵌套弹窗显示灰色的问题!!!

解决 Element UI 嵌套弹窗显示灰色的问题 🔍 问题描述 ❌ 在使用 Element UI 开发 Vue 项目时,遇到了一个棘手的问题:当在一个弹窗(el-dialog)内部再次打开另一个弹窗时,第二个弹窗会显示为灰色,影响用户体验。 问题…...

【大模型】DeepSeek攻击原理和效果解析

前几天看到群友提到一个现象,在试图询问知识库中某个人信息时,意外触发了DeepSeek的隐私保护机制,使模型拒绝回答该问题。另有群友提到,Ollama上有人发布过DeepSeek移除模型内置审查机制的版本。于是顺着这条线索,对相…...

AI对软件工程(software engineering)的影响在哪些方面?

AI对软件工程(software engineering)的影响是全方位且深远的,它不仅改变了传统开发流程,还重新定义了工程师的角色和软件系统的构建方式。以下是AI影响软件工程的核心维度: 一、开发流程的智能化重构 需求工程革命 • …...

K8S学习之基础四十五:k8s中部署elasticsearch

k8s中部署elasticsearch 安装并启动nfs服务yum install nfs-utils -y systemctl start nfs systemctl enable nfs.service mkdir /data/v1 -p echo /data/v1 *(rw,no_root_squash) >> /etc/exports exports -arv systemctl restart nfs创建运行nfs-provisioner需要的sa账…...

部署高可用PostgreSQL14集群

目录 基础依赖包安装 consul配置 patroni配置 vip-manager配置 pgbouncer配置 haproxy配置 验证 本文将介绍如何使用Patroni、Consul、vip-manager、Pgbouncer、HaProxy组件来部署一个3节点的高可用、高吞吐、负载均衡的PostgresSQL集群(14版本)&…...

爬虫案例-爬取某站视频

文章目录 1、下载FFmpeg2、爬取代码3、效果图 1、下载FFmpeg FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。 点击下载: ffmpeg 安装并配置 FFmpeg 步骤: 1.下载 FFmpeg: 2.访问 FFmpeg 官网。 3.选择 Wi…...

PV操作指南

🔥《PV操作真香指南——看完就会的祖传攻略》🍵 一、灵魂三问❓ Q1:PV是个啥? • 💡 操作系统界的红绿灯:控制进程"何时走/何时停"的神器 • 🧱 同步工具人:解决多进程&q…...

计算机考研复试机试-考前速记

考前速记 知识点 1. 链表篇 1. 循环链表报数3&#xff0c;输出最后一个报数编号 #include <iostream> using namespace std;typedef struct Node {int no;struct Node* next; }Node, *NodeList;void createNodeListTail(NodeList&L, int n) {L (Node*)malloc(siz…...

【漏洞复现】Next.js中间件权限绕过漏洞 CVE-2025-29927

什么是Next.js&#xff1f; Next.js 是由 Vercel 开发的基于 React 的现代 Web 应用框架&#xff0c;具备前后端一体的开发能力&#xff0c;广泛用于开发 Server-side Rendering (SSR) 和静态站点生成&#xff08;SSG&#xff09;项目。Next.js 支持传统的 Node.js 模式和基于边…...

路由选型终极对决:直连/静态/动态三大类型+华为华三思科配置差异,一张表彻底讲透!

路由选型终极对决&#xff1a;直连/静态/动态三大类型华为华三思科配置差异&#xff0c;一张表彻底讲透&#xff01; 一、路由&#xff1a;互联网世界的导航系统二、路由类型深度解析三者的本质区别 三、 解密路由表——网络设备的GPS华为&#xff08;Huawei&#xff09;华三&a…...

【AI】知识蒸馏-简单易懂版

1 缘起 最近要准备升级材料&#xff0c;里面有一骨碌是介绍LLM相关技术的&#xff0c;知识蒸馏就是其中一个点&#xff0c; 不过&#xff0c;只分享了蒸馏过程&#xff0c;没有讲述来龙去脉&#xff0c;比如没有讲解Softmax为什么引入T、损失函数为什么使用KL散度&#xff0c;…...

uniapp运行到支付宝开发者工具

使用uniapp编写专有钉钉和浙政钉出现的样式问题 在支付宝开发者工具中启用2.0构建的时候&#xff0c;在开发工具中页面样式正常 但是在真机调试和线上的时候不正常 页面没问题&#xff0c;所有组件样式丢失 解决 在manifest.json mp-alipay中加入 "styleIsolation&qu…...

STM32学习笔记之keil使用记录

&#x1f4e2;&#xff1a;如果你也对机器人、人工智能感兴趣&#xff0c;看来我们志同道合✨ &#x1f4e2;&#xff1a;不妨浏览一下我的博客主页【https://blog.csdn.net/weixin_51244852】 &#x1f4e2;&#xff1a;文章若有幸对你有帮助&#xff0c;可点赞 &#x1f44d;…...

卷积神经网络 - 参数学习

本文我们通过两个简化的例子&#xff0c;展示如何从前向传播、损失计算&#xff0c;到反向传播推导梯度&#xff0c;再到参数更新&#xff0c;完整地描述卷积层的参数学习过程。 一、例子一 我们构造一个非常简单的卷积神经网络&#xff0c;其结构仅包含一个卷积层和一个输出…...

【加密社】币圈合约交易量监控,含TG推送

首先需要在币安的开发者中心去申请自己的BINANCE_API_KEY和BINANCE_API_SECRET 有了这个后&#xff0c;接着去申请一个TG的机器人token和对话chatid 如果不需要绑定tg推送的话&#xff0c;可以忽略这步 接下来直接上代码 引用部分 from os import system from binance.c…...

大模型概述

大模型属于Foundation Model&#xff08;基础模型&#xff09;[插图]&#xff0c;是一种神经网络模型&#xff0c;具有参数量大、训练数据量大、计算能力要求高、泛化能力强、应用广泛等特点。与传统人工智能模型相比&#xff0c;大模型在参数规模上涵盖十亿级、百亿级、千亿级…...

【CSS3】完整修仙功法

目录 CSS 基本概念CSS 的定义CSS 的作用CSS 语法 CSS 引入方式内部样式表外部样式表行内样式表 选择器基础选择器标签选择器类选择器id 选择器通配符选择器 画盒子文字控制属性字体大小字体粗细字体倾斜行高字体族font 复合属性文本缩进文本对齐文本修饰线文字颜色 复合选择器后…...

C++ 的 if-constexpr

1 if-constexpr 语法 1.1 基本语法 ​ if-constexpr 语法是 C 17 引入的新语法特性&#xff0c;也被称为常量 if 表达式或静态 if&#xff08;static if&#xff09;。引入这个语言特性的目的是将 C 在编译期计算和求值的能力进一步扩展&#xff0c;更方便地实现编译期的分支…...

【电气设计】接地/浮地设计

在工作的过程中&#xff0c;遇到了需要测量接地阻抗的情况&#xff0c;组内讨论提到了保护接地和功能接地的相关需求。此文章用来记录这个过程的学习和感悟。 人体触电的原理&#xff1a; 可以看到我们形成了电流回路&#xff0c;导致触电。因此我们需要针对设备做一些保护设计…...

Gone v2 配置管理3:连接 Nacos 配置中心

&#x1f680; 发现 gone-io/gone&#xff1a;一个优雅的 Go 依赖注入框架&#xff01;&#x1f4bb; 它让您的代码更简洁、更易测试。&#x1f50d; 框架轻量却功能强大&#xff0c;完美平衡了灵活性与易用性。⭐ 如果您喜欢这个项目&#xff0c;请给我们点个星&#xff01;&a…...

深度强化学习中的深度神经网络优化策略:挑战与解决方案

I. 引言 深度强化学习&#xff08;Deep Reinforcement Learning&#xff0c;DRL&#xff09;结合了强化学习&#xff08;Reinforcement Learning&#xff0c;RL&#xff09;和深度学习&#xff08;Deep Learning&#xff09;的优点&#xff0c;使得智能体能够在复杂的环境中学…...

浅拷贝与深拷贝

浅拷贝和深拷贝是对象复制中的两种常见方式&#xff0c;它们在处理对象的属性时有本质的区别。 一. 浅拷贝&#xff08;Shallow Copy&#xff09; 浅拷贝是指创建一个新对象&#xff0c;然后将当前对象的非静态字段复制到新对象中。如果字段是值类型的&#xff0c;那么将复制字…...

macOS 安装 Miniconda

macOS 安装 Miniconda 1. Quickstart install instructions2. 执行3. shell 上初始化 conda4. 关闭 终端登录用户名前的 base参考 1. Quickstart install instructions mkdir -p ~/miniconda3 curl https://repo.anaconda.com/miniconda/Miniconda3-latest-MacOSX-arm64.sh -o…...

分布式限流方案:基于 Redis 的令牌桶算法实现

分布式限流方案&#xff1a;基于 Redis 的令牌桶算法实现 前言一、原理介绍&#xff1a;令牌桶算法二、分布式限流的设计思路三、代码实现四、方案优缺点五、 适用场景总结 前言 在分布式场景下&#xff0c;接口限流变得更加复杂。传统的单机限流方式难以满足跨节点的限流需求…...