解锁微服务:五大进阶业务场景深度剖析
目录
医疗行业:智能诊疗的加速引擎
电商领域:数据依赖的破局之道
金融行业:运维可观测性的提升之路
物流行业:智慧物流的创新架构
综合业务:服务依赖的优化策略
医疗行业:智能诊疗的加速引擎
在医疗行业迈向智能化的进程中,NVIDIA 推出的面向医疗应用场景的系列微服务(NIM)堪称一大创举。它融合医学影像分析、自然语言处理等尖端 AI 技术,在药物研发、医学影像解读、基因组学分析等多个医疗核心工作流中发挥着关键作用,实现从筛查、诊断到治疗全程的智能化辅助 。
在药物研发环节,时间就是生命,每缩短一秒研发周期,都可能为无数患者带来生的希望。NVIDIA 的微服务套件中包含生成式化学模型 MolMIM、蛋白质结构预测模型 ESMFold 以及帮助研究人员了解药物分子如何与靶点相互作用的模型 DiffDock 等。这些模型就像一个个不知疲倦的科研助手,通过对数以万亿计的药物化合物进行快速筛选与分析,能够精准地预测药物的活性和潜在副作用,极大地加速了新药的研发进程。过去,研发一款新药可能需要耗费十几年甚至几十年的时间,而现在借助这些微服务,研发周期有望大幅缩短,让更多救命良药能够更快地推向市场。
医学影像解读一直是医疗诊断中的重要环节,但传统的人工解读不仅效率低,还容易受到医生主观因素和疲劳等影响。NVIDIA 的医疗微服务凭借卓越的图像识别能力,能够在肿瘤诊疗等阶段实现精细到微观层面的病变识别。通过对 X 光、CT、MRI 等医学影像的深入分析,它可以敏锐地捕获其中的微妙变化,比如极其微小的肿瘤病灶,为医生提供更详尽精确的病理分析参考,让疾病无处遁形,大大提高了诊断的准确性和及时性。
基因组学分析对于了解疾病的遗传机制、实现个性化医疗至关重要。NVIDIA 的 Universal DeepVariant 微服务相较于在 CPU 上运行的普通 DeepVariant,可将基因组分析工作流中的变体识别速度提高 50 倍以上。这使得科研人员能够更快速地分析患者的基因数据,找出与疾病相关的基因变异,为精准医疗提供有力支持。例如,在癌症治疗中,通过对患者肿瘤基因的分析,医生可以制定出更具针对性的治疗方案,提高治疗效果,减少不必要的治疗副作用。
电商领域:数据依赖的破局之道
在电商的供应链系统里,商品、订单、采购这三个微服务紧密关联,牵一发而动全身。在设计这个系统时,需要满足两个关键需求:一是能够根据商品的型号、分类、生成年份、编码等信息查找订单;二是可以依据同样的商品信息查找采购订单 。
起初,按照严格的微服务划分原则,商品相关的职责被存放在商品系统中。在查询订单与采购单时,如果查询字段包含商品字段,就得按照特定顺序进行查询:先根据商品字段调用商品的服务,返回匹配的商品信息;接着在订单或采购单中,通过 IN 语句匹配商品 ID,再关联查询对应的单据。但随着业务的迅猛发展,商品数量呈爆发式增长,匹配的商品越来越多,订单服务中包含 IN 语句的查询效率急剧下降。商品服务作为核心服务,依赖它的服务与日俱增,商品数据量的不断膨胀让其不堪重负,响应速度越来越慢,甚至频繁出现请求超时的情况。由于商品服务超时,相关服务处理请求也经常失败,业务方每次查询订单或采购单时,只要带上商品关键字,就会遭遇查询效率低下且频繁失败的问题。
为了解决这些问题,数据冗余方案应运而生。简单来说,就是在订单、采购单中保存一些商品字段信息。这样一来,每次查询时就可以不再依赖商品服务。但新的问题又出现了,如果商品进行了更新,如何同步冗余的数据呢?最初设想了两种办法,第一种是每次更新商品时,先调用订单与采购服务,再更新商品的冗余数据。但这种方式存在严重的数据一致性问题,如果订单与采购的冗余数据更新失败,整个操作都需要回滚,这显然不合理,因为冗余数据并非商品服务的核心需求,不能因边缘流程影响核心流程。同时,还会导致严重的依赖问题,商品服务本应专注于商品本身,却因这种方式需要调用众多其他服务,与作为底层核心服务的初衷背道而驰 。
于是,第二种通过消息发布订阅的方案被采用。每次更新商品时,先发布一条消息,订单与采购服务各自订阅这条消息后,再各自更新商品冗余数据。这种方式让商品无须调用其他服务,只需关注自身逻辑,即便订单、采购等服务的更新冗余数据失败,也可使用消息重试机制保证数据的一致性。然而,这个看似完美的方案也存在缺陷。在实际业务中,仅仅保存冗余数据远远不够,还需要将商品分类与生产批号的清单进行关联查询。这意味着每个服务不仅要订阅商品变更消息,还需订阅商品分类、商品生产批号变更等近十种消息,几乎要把商品的一小半逻辑复制过来。而且,每个依赖的服务都需要重复实现冗余数据更新同步的逻辑,导致大量重复代码。此外,MQ 消息类型过多,联调时 MQ 之间的联动极为麻烦,常常不知道某条消息被哪台服务节点消费,为了让特定服务器消费特定消息,需要临时改动双方代码,且联调完成后还容易忘记改回原代码 。
为了彻底解决这些问题,最终采用了解耦业务逻辑的数据同步方案。将商品及商品相关的一些表,如分类表、生产批号表、保修类型、包换类型等,实时同步到需要依赖和使用它们的服务的数据库,并且保持表结构不变。在查询采购、订单等服务中的数据时,直接关联同步过来的商品相关表,同时严禁采购、订单等服务修改商品相关表。为了实现这一方案,项目组经过多方调研,选用了 Bifrost 这款开源中间件。Bifrost 能够模拟成 MySQL 的从库,监听源数据库的 Binlog,然后将数据实时同步到目标数据库,且支持多种目标数据库,正好满足从 MySQL 同步到 MySQL 的需求。它界面管理方便,架构简单,出现问题易于调查,作者更新活跃且自带监控报警功能 。
通过这一系列的优化,商品服务的开发人员可以专注于自身业务逻辑,无需再为数据依赖问题烦恼。需要关联使用商品数据的采购服务等,开发人员也只需在查询时加上关联语句,极大地提高了系统的稳定性和查询效率,为电商业务的高效运转提供了坚实保障。
金融行业:运维可观测性的提升之路
在金融行业全力推进数字化转型的浪潮下,业务的快速发展带来了日志类型和数量的爆发式增长 。各类软硬件产生的日志数据不仅分散在各个角落,而且繁杂无序,缺乏统一的全生命周期管理以及高效的监控分析处理能力,这给业务监控告警、日志搜索分析和审计溯源等工作带来了极大的阻碍。同时,随着云原生环境中微服务化进程的不断加速,业务系统的微服务化改造虽然带来了诸多优势,但也在运维排障方面竖起了一道道复杂的屏障。
某金融客户在面对这些挑战时,深刻认识到提升运维可观测性的紧迫性和重要性。为了实现云原生可观测性建设这一核心目标,该客户采取了一系列行之有效的措施。
首先是完善管理制度规范。技术平台是为管理服务的,要搭建好技术平台,就必须先梳理和完善管理规范制度。该金融客户与合作方一起,对现有的客户规范以及业内规范展开了全面深入的调研。他们仔细梳理每一个条目,精心总结日志管理规范,并对其能力应用进行了前瞻性的规划。以业务日志的规范化为例,他们进行了 4 层丰富度的详细说明,针对不同级别明确了不同的规范度、可实现的效果以及能达到的能力级别。通过这样细致的规范梳理,能够更准确地评估客户现有不同业务系统及其日志的规范化程度,进而根据客户数字化推进的阶段,合理反推不同业务系统下一步的管理要求 。
其次是建设统一日志平台。管理制度的规范化是实现数字化转型的 “道”,而具体的实现则需要 “术” 的支持,这里的 “术” 就是基于擎创的日志管理平台作为基础底座,构建以可观测性提升为核心的统一日志平台。该平台架构主要分为 4 层,最底层是数据源层及接入层,将日志数据、监控数据、调用链数据等都归为数据源,并针对不同的数据源,运用 agent、syslog、API 等不同的采集技术进行全面纳管。在数据处理层,采用数据中台进行数据缓冲、计算和存储,把原始的基础数据通过规范化、清洗、聚合计算、数据关联等一系列操作,实现从数据到业务运行状态观测的关键转变。在应用层,通过前端提供直观、高效的交互界面,让运维使用方能够轻松操作;在后端及中间件层,则对运行状态观测数据进行缓冲高效查询及部分业务逻辑处理 。
最后是整合观测数据。数据源的丰富度和质量直接决定了可观测性的挖掘深度。在现有的环境中,该金融客户接入了操作系统、数据库、中间件、硬件设备、容器及应用等各类日志及监控数据。在链路层,通过 skywalking 接入了多套业务系统的链路数据,同时在日志中,根据客户规范增加了对应的 TID 标示,用于实现日志及链路数据的深度融合。
通过这一系列的举措,该金融客户在运维可观测性提升方面取得了显著的成效。实现了业务日志的统一查询,能够全局性覆盖主要业务系统,快速高效地查询日志,并通过对部分日志的合并、解析和分析,实现了日志的更高效利用。在此基础上,还开发了如二次查询、全链路排障、数据湖冷备数据查询、上下文行数自动滚动、日志内 xml/json 段格式化、用户使用统计分析等贴合实际生产环境的功能。能够密切关注业务系统运行状态及告警,从日志角度对业务系统进行统计分析,快速了解系统的整体概览状态。实现了业务日志全链路串联,打通统一日志系统与 Skywalking 的数据,通过中间层处理,用 TID 在日志及 Skywalking 中做上下文关联,通过全局流水号、业务流水号或任意内容搜索,就能获取业务系统详细日志及链路信息,实现了排障一体化解决,同时还能直观方便地了解业务系统中业务拓扑及单笔交易的链路拓扑,为排障提供了极大的便利 。整合了监控内容,减少了运维场景下在不同平台之间的跳转,大大提升了运维效率。对接原有数据湖,实现数据双写,一份用于日常查询排障,存储容量限制后定期滚动删除;另一份存储于数据湖内长期保存,用于审计场景,并且实现了冷备数据的在线查询,以及更高的压缩率和接近热数据查询的查询速度。
物流行业:智慧物流的创新架构
在物流行业的数字化变革浪潮中,高达智慧物流中台系统凭借其创新的微服务架构,成为推动行业发展的重要力量 。该系统主要为自建物流公司或整合物流公司精心设计,致力于解决传统物流模式中效率低下、成本高昂等难题。
在功能板块上,它涵盖了合同管理、运单管理、智能调度等多个关键领域,并全面支持北斗定位以及物流货主、承运商、司机之间的在线协同。以合同管理为例,传统的物流合同管理往往依赖人工操作,不仅效率低下,而且容易出现合同条款遗漏、审批流程繁琐等问题。而在高达智慧物流中台系统中,合同管理实现了数字化和自动化。从合同的起草、审批到签订,每一个环节都在系统中清晰呈现,大大缩短了合同处理周期,降低了人为错误的风险 。
运单管理同样实现了质的飞跃。在传统物流模式下,运单信息分散在各个环节,查询和跟踪极为不便。而该系统通过统一的运单管理平台,实现了运单信息的实时共享和全程跟踪。无论是货主、承运商还是司机,都可以通过移动端随时查询运单的最新状态,如货物的位置、预计送达时间等,真正做到了信息透明化 。
智能调度是该系统的核心亮点之一。在实际物流运输中,车辆的调度和分配是一个复杂的问题,涉及到货物的重量、体积、运输路线、车辆的载重和续航能力等多个因素。传统的调度方式往往依赖人工经验,难以实现最优的资源配置。高达智慧物流中台系统的智能调度策略系统则通过对承运商的各项指标参数,如运输任务响应效率、派车及时率、运输破损率、回单及时率、客户满意度等进行综合评定打分,基于评定结果自动推荐承运商及自有车辆资源完成派单。这种智能化的调度方式不仅提高了运输效率,还降低了运输成本 。
在运输链精细化管理方面,该系统通过合同管理、计划管理、调度管理、财务管理、司机端货主端协同等多个环节的紧密配合,实现了运输链的全方位优化。例如,在财务管理方面,系统能够自动生成运费结算清单,根据不同的计费规则,如按月、按重量、按时间、按次数等进行费用统计,大大提高了财务结算的效率和准确性 。
在实际应用中,该系统的优势得到了充分体现。某大型物流企业在引入高达智慧物流中台系统后,通过智能调度实现了车辆利用率提高 30%,运输成本降低 20%。同时,通过实时定位和轨迹跟踪功能,货物的准时送达率从原来的 80% 提升到了 95% 以上,客户满意度大幅提升 。
综合业务:服务依赖的优化策略
在一个包含商品、订单、加盟商、门店(运营)、工单(门店)等多个服务的综合业务系统中,存在着复杂的服务依赖关系 。该系统有两个 App,一个面向客户,另一个供公司员工和加盟商员工使用,涉及总部商品管理、总部门店管理、加盟商员工、门店人员等多种角色,且每个部门内部还有更细致的角色划分 。
在这样的架构下,网关层承担着路由、认证、监控和限流熔断等重要职责。它负责将所有请求根据 URI 指向对应的后台服务,对请求进行集中认证鉴权,记录 API 请求数据以进行管理和性能监控,以及在流量过大或后台服务出现问题时进行限流和熔断操作 。
然而,随着业务的不断发展,这个看似完美的架构逐渐暴露出一些问题。例如,许多页面需要展示多个服务的数据,像 App 首页,对于门店运营人员,要展示工单数量、最近的工单、销售订单数据、最近待处理的订单以及低于库存安全值的商品等信息。这就导致在接口设计时,经常需要纠结该把接口放在哪个服务中,决策效率低下,职责划分也不够统一 。
另外,用户的一个提交操作往往需要修改多个服务的数据,比如一个工单操作,可能要同时修改库存、销售订单状态和工单数据。由于这类需求众多,服务之间的调用关系变得错综复杂,严重影响了系统的迭代和维护 。
为了解决这些问题,项目组决定抽象出一个 API 层。客户端的接口通常有聚合、分布式调用和装饰这三种需求。聚合是指一个接口需要将多个后台服务返回的数据进行整合,然后返回给客户端;分布式调用是指一个接口可能需要依次调用多个后台服务,以实现对多个后台服务数据的修改;装饰则是指一个接口需要对后台返回的数据进行重新处理,比如删除某些字段或者对某些字段进行封装,使其符合客户端的需求 。
在客户端与后台服务之间增加 API 层后,所有请求经过网关都由这个共用的 API 层处理,API 层通过调用其他后台服务来完成相应功能。这样一来,接口放置的纠结情况大幅减少,若涉及聚合、装饰、分布式调用的逻辑,都放在 API 层;若涉及数据存储或查询数据库的逻辑,则根据目标数据所在的服务来确定逻辑位置 。同时,后台服务之间的依赖也显著减少,目前主要是 API 层调用各个后台服务 。
但新的问题随之而来,即客户端适配问题。系统中有 App、H5、PC 网页、小程序等多种客户端,不同客户端的页面需求存在差异。例如 App 功能较多,页面可能要求包含更多信息;而小程序追求轻量化,相同页面所需的数据可能较少 。这就导致后台服务的同一个 API 需要为不同客户端进行不同的适配 。而且,客户端经常会有一些细微的改动,如增加或减少一个字段,为了降低响应速度,需遵循数据最小化原则,这使得后台服务需要频繁发布新版本 。再加上后台服务版本发布时要同时考虑不同客户端的兼容问题,进一步增加了系统的复杂度 。
为了解决客户端适配问题,引入了 BFF(Backend for Frontend)设计模式。BFF 的主要理念是为每种客户端提供专门的 API 服务。不同的客户端请求经过同一个网关后,会分别重定向到为其设计的 API 服务。例如,微信小程序有专门的 WX API 服务 。由于每个 API 服务只针对一种客户端,因此可以针对特定客户端进行优化,使逻辑更简洁高效,响应速度也比通用的 API 服务更快,因为无需判断不同客户端的逻辑 。
相关文章:
解锁微服务:五大进阶业务场景深度剖析
目录 医疗行业:智能诊疗的加速引擎 电商领域:数据依赖的破局之道 金融行业:运维可观测性的提升之路 物流行业:智慧物流的创新架构 综合业务:服务依赖的优化策略 医疗行业:智能诊疗的加速引擎 在医疗行业迈…...
C++:虚函数与多态性习题2
题目内容: 编写程序,声明抽象基类Shape,由它派生出3个派生类:Circle、Rectangle、Triangle,用虚函数分别计算图形面积,并求它们的和。要求用基类指针数组,使它每一个元素指向一个派生类对象。 …...
开源软件协议介绍
一、可以闭源使用/不具传染性的协议 允许商业使用和分发 1、BSD:详细介绍 2、LGPL许可证:详细介绍 3、MPL2.0:详细介绍 二、具有传染性/使用后需要开源自身软件的协议 不建议商业使用 1、GPL许可证:详细介绍...
MapReduce简单应用(一)——WordCount
目录 1. 执行过程1.1 分割1.2 Map1.3 Combine1.4 Reduce 2. 代码和结果2.1 pom.xml中依赖配置2.2 工具类util2.3 WordCount2.4 结果 参考 1. 执行过程 假设WordCount的两个输入文本text1.txt和text2.txt如下。 Hello World Bye WorldHello Hadoop Bye Hadoop1.1 分割 将每个文…...
【HarmonyOS之旅】基于ArkTS开发(三) -> 兼容JS的类Web开发(三)
目录 1 -> 生命周期 1.1 -> 应用生命周期 1.2 -> 页面生命周期 2 -> 资源限定与访问 2.1 -> 资源限定词 2.2 -> 资源限定词的命名要求 2.3 -> 限定词与设备状态的匹配规则 2.4 -> 引用JS模块内resources资源 3 -> 多语言支持 3.1 -> 定…...
(9) 上:学习与验证 linux 里的 epoll 对象里的 EPOLLIN、 EPOLLHUP 与 EPOLLRDHUP 的不同
(1)经过之前的学习。俺认为结论是这样的,因为三次握手到四次挥手,到 RST 报文,都是 tcp 连接上收到了报文,这都属于读事件。所以: EPOLLIN : 包含了读事件, FIN 报文的正常四次挥手、…...
Avalonia与QtQuick的简单对比
这个是Avalonia开发的示例应用程序(官方入门示例)(Avalonia 11.1.0 .Net 9.0) 刚启动时,内存占用150M左右,稍等一会儿后,内存占用降低到77M左右,CPU占用一直都在,我i9-…...
WebForms DataList 深入解析
WebForms DataList 深入解析 引言 在Web开发领域,控件是构建用户界面(UI)的核心组件。ASP.NET WebForms框架提供了丰富的控件,其中DataList控件是一个灵活且强大的数据绑定控件。本文将深入探讨WebForms DataList控件的功能、用法以及在实际开发中的应用。 DataList控件…...
jetson编译torchvision出现 No such file or directory: ‘:/usr/local/cuda/bin/nvcc‘
文章目录 1. 完整报错2. 解决方法 1. 完整报错 jetson编译torchvision,执行python3 setup.py install --user遇到报错 running build_ext error: [Errno 2] No such file or directory: :/usr/local/cuda/bin/nvcc完整报错信息如下: (pytorch) nxnx-desktop:~/Do…...
《苍穹外卖》项目学习记录-Day10订单状态定时处理
利用Cron表达式生成器生成Cron表达式 1.处理超时订单 查询订单表把超时的订单查询出来,也就是订单的状态为待付款,下单的时间已经超过了15分钟。 //select * from orders where status ? and order_time < (当前时间 - 15分钟) 遍历集合把数据库…...
“新月智能武器系统”CIWS,开启智能武器的新纪元
新月人物传记:人物传记之新月篇-CSDN博客 相关文章链接:星际战争模拟系统:新月的编程之道-CSDN博客 新月智能护甲系统CMIA--未来战场的守护者-CSDN博客 “新月之智”智能战术头盔系统(CITHS)-CSDN博客 目录 智能武…...
FPGA| 使用Quartus II报错Top-level design entity ““ is undefined
1、使用FPGA准备点亮LED测试下板子,发现这个报错Error (12007): Top-level design entity "LEDLED" is undefined 工程如上图 报错如下图 2、分析到原因是因为工程名称和顶层模块里面的module名称不一样导致 解决办法:修改module名称和顶层模…...
如何实现滑动列表功能
文章目录 1 概念介绍2 使用方法3 示例代码 我们在上一章回中介绍了沉浸式状态栏相关的内容,本章回中将介绍SliverList组件.闲话休提,让我们一起Talk Flutter吧。 1 概念介绍 我们在这里介绍的SliverList组件是一种列表类组件,类似我们之前介…...
数据结构:优先级队列—堆
一、优先级队列 1、优先级队列概念 优先级队列,听名字我们就知道他是一种队列,队列在前面我们已经学习过了,它是一种先进先出的数据结构,但是在特殊的情况下,我们我们队列中元素是带有一定优先级的,它需要…...
SpringCloud系列教程:微服务的未来(十八)雪崩问题、服务保护方案、Sentinel快速入门
前言 在分布式系统中,雪崩效应(Avalanche Effect)是一种常见的故障现象,通常发生在系统中某个组件出现故障时,导致其他组件级联失败,最终引发整个系统的崩溃。为了有效应对雪崩效应,服务保护方…...
Java小白入门教程:Object
目录 一、定义 二、作用 三、使用场景 四、语法以及示例 1、创建Object类型的对象 2、使用 toString()方法 3、使用 equals()方法 4、使用 hashCode()方法 5、使用 getClass()方法 6、使用 clone()方法 7、使用 finalize()方法 一、定义 在Java中, object…...
ubuntu 更新24LTS中断导致“系统出错且无法恢复,请联系系统管理员”
22LTS to 24LTS 更新过程中手jian把更新程序controlC导致的。 解决 目前企图完成更新来恢复,重启后有软件包冲突,sudo apt upgrade报冲突。无法进行。 将原来source.list重新 sudo dpkg --configure -a sudo apt install -f 这些都不管用。还是显示gno…...
【单细胞第二节:单细胞示例数据分析-GSE218208】
GSE218208 1.创建Seurat对象 #untar(“GSE218208_RAW.tar”) rm(list ls()) a data.table::fread("GSM6736629_10x-PBMC-1_ds0.1974_CountMatrix.tsv.gz",data.table F) a[1:4,1:4] library(tidyverse) a$alias:gene str_split(a$alias:gene,":",si…...
ComfyUI安装调用DeepSeek——DeepSeek多模态之图形模型安装问题解决(ComfyUI-Janus-Pro)
ComfyUI 的 Janus-Pro 节点,一个统一的多模态理解和生成框架。 试用: https://huggingface.co/spaces/deepseek-ai/Janus-1.3B https://huggingface.co/spaces/deepseek-ai/Janus-Pro-7B https://huggingface.co/spaces/deepseek-ai/JanusFlow-1.3B 安装…...
FLTK - FLTK1.4.1 - demo - bitmap
文章目录 FLTK - FLTK1.4.1 - demo - bitmap概述笔记END FLTK - FLTK1.4.1 - demo - bitmap 概述 // 功能 : 演示位图数据在按钮上的显示 // * 以按钮为范围或者以窗口为范围移动 // * 上下左右, 文字和图像的相对位置 // 失能按钮,使能按钮 // 知识点 // FLTK可…...
网络安全技术简介
网络安全技术简介 随着信息技术的迅猛发展,互联网已经成为人们日常生活和工作中不可或缺的一部分。与此同时,网络安全问题也日益凸显,成为全球关注的焦点。无论是个人隐私泄露、企业数据被盗取还是国家信息安全受到威胁,都与网络…...
2025.2.1——四、php_rce RCE漏洞|PHP框架
题目来源:攻防世界 php_rce 目录 一、打开靶机,整理信息 二、解题思路 step 1:PHP框架漏洞以及RCE漏洞信息 1.PHP常用框架 2.RCE远程命令执行 step 2:根据靶机提示,寻找版本漏洞 step 3:进行攻击…...
Upscayl-官方开源免费图像AI增强软件
upscayl 链接:https://pan.xunlei.com/s/VOI0Szqe0fCwSSUSS8zRqKf7A1?pwdhefi#...
【LeetCode 刷题】二叉树-公共祖先
此博客为《代码随想录》二叉树章节的学习笔记,主要内容为二叉树公共祖先问题相关的题目解析。 文章目录 236. 二叉树的最近公共祖先235. 二叉搜索树的最近公共祖先 236. 二叉树的最近公共祖先 题目链接 class Solution:def lowestCommonAncestor(self, root: Tre…...
本地部署DeepSeek开源多模态大模型Janus-Pro-7B实操
本地部署DeepSeek开源多模态大模型Janus-Pro-7B实操 Janus-Pro-7B介绍 Janus-Pro-7B 是由 DeepSeek 开发的多模态 AI 模型,它在理解和生成方面取得了显著的进步。这意味着它不仅可以处理文本,还可以处理图像等其他模态的信息。 模型主要特点:Permalink…...
群晖搭建Gitea教程(使用系统自带的postgresql)
基于群晖7.2.2,使用套件中心的gitea,和系统自带的postgresql postgresql: 切换到postgres用户 sudo -I -u postgres 在想要保存数据库的磁盘路径下创建PostgreSql文件夹 初始化数据库文件夹配置 initdb -D ./PostgreSql 备份./PostgreSql路径下的post…...
洛谷 P8724 [蓝桥杯 2020 省 AB3] 限高杆
洛谷题目传送门 题目描述 某市有 n 个路口,有 m 段道路连接这些路口,组成了该市的公路系统。其中一段道路两端一定连接两个不同的路口。道路中间不会穿过路口。 由于各种原因,在一部分道路的中间设置了一些限高杆,有限高杆的路…...
DeepSeek文生图模型Janus-Pro论文解读 —— 多模态AI的革命?
介绍 整个AI行业仍在适应最近发布的、震惊人工智能领域的 DeepSeek-R1。1月28日除夕当天的凌晨,DeepSeek 又发布了另一款出色的开源模型 Janus-Pro。这一次,它是一款能与其他顶级多模态模型相媲美的多模态人工智能模型。 在本文中,我们将解…...
C语言:整型提升
一, 整型提升 C语⾔中整型算术运算总是⾄少以缺省(默认)整型类型的精度来进⾏的。 为了获得这个精度,表达式中的字符和短整型操作数在使⽤之前被转换为普通整型,这种转换称为整型提升。 整型提升的意义: …...
DRM系列六:Drm之KMS
KMS(Kernel Mode Setting)是负责显示输出的核心组件,它处理与plane、crtc、encoder和connector相关的各项任务。简单来说,KMS就是结构体drm_mode_config、drm_mode_object和组件(object)的结合。 KMSdrm_m…...
前端 Vue 性能提升策略
一、引言 前端性能优化是确保 Web 应用快速响应和流畅用户体验的关键。对于使用 Vue.js 构建的应用,性能优化不仅涉及通用的前端技术,还包括针对 Vue 特性的特定优化措施。本文将从多个方面探讨如何全面提升前端和 Vue 应用的性能。 二、前端性能优化基础 1. 减少初始加载…...
【C语言】static关键字的三种用法
【C语言】static关键字的三种用法 C语言中的static关键字是一个存储类说明符,它可以用来修饰变量和函数。static关键字的主要作用是控制变量或函数的生命周期和可见性。以下是static关键字的一些主要用法和含义: 局部静态变量: 当static修饰…...
数仓实战项目,大数据数仓实战(离线数仓+实时数仓)
1.课程目标 2.电商行业与电商系统介绍 3.数仓项目整体技术架构介绍 4.数仓项目架构-kylin补充 5.数仓具体技术介绍与项目环境介绍 6.kettle的介绍与安装 7.kettle入门案例 这个连线是点击shift键,然后鼠标左键拖动 ctrls保存一下 csv输入配置 Excel输出配置 配置完 …...
Unity安装教学与相关问题
文章目录 1. 前言2.Unity Hub2.1 下载Unity Hub2.2 安装Unity Hub2.3 注册Unity账号2.4 在Hub上登录账号2.5 在Hub上获取许可证 3. 下载并安装Unity3.1 从Unity Hub下载(推荐)3.1.1 选择下载版本3.1.2 选择下载组件3.1.3 安装Visual Studio Community 20…...
Linux_线程同步生产者消费者模型
同步的相关概念 同步:在保证数据安全的前提下,让线程能够按照某种特定的顺序访问临界资源,从而有效避免饥饿问题,叫做同步竞态条件:因为时序问题,而导致程序异常,我们称之为竞态条件。 同步的…...
边缘检测算法(candy)
人工智能例子汇总:AI常见的算法和例子-CSDN博客 Canny 边缘检测的步骤 1. 灰度转换 如果输入的是彩色图像,则需要先转换为 灰度图像,因为边缘检测通常在单通道图像上进行。 2. 高斯滤波(Gaussian Blur) 由于边缘…...
Hot100之双指针
283移动零 题目 思路解析 那我们就把不为0的数字都放在数组前面,然后数组后面的数字都为0就行了 代码 class Solution {public void moveZeroes(int[] nums) {int left 0;for (int num : nums) {if (num ! 0) {nums[left] num;// left最后会变成数组中不为0的数…...
租房管理系统实现智能化租赁提升用户体验与运营效率
内容概要 在当今快速发展的租赁市场中,租房管理系统的智能化转型显得尤为重要。它不仅帮助房东和租客之间建立更高效的沟通桥梁,还优化了整个租赁流程。通过智能化技术,这套系统能够自动处理资产管理、合同签署、财务管理等所有关键环节。这…...
spring和Mybatis的逆向工程
在现代企业级开发中,使用Spring和MyBatis进行快速、高效的数据库操作是非常常见的。本文将深入探讨如何使用Spring和MyBatis进行逆向工程,帮助开发者自动生成数据库相关的代码,提高开发效率和代码质量。 一、什么是逆向工程 逆向工程是指从…...
计算机网络 IP 网络层 2 (重置版)
IP的简介: IP 地址是互联网协议地址(Internet Protocol Address)的简称,是分配给连接到互联网的设备的唯一标识符,用于在网络中定位和通信。 IP编制的历史阶段: 1,分类的IP地址: …...
松灵机器人 scout ros2 驱动 安装
必须使用 ubuntu22 必须使用 链接的humble版本 #打开can 口 sudo modprobe gs_usbsudo ip link set can0 up type can bitrate 500000sudo ip link set can0 up type can bitrate 500000sudo apt install can-utilscandump can0mkdir -p ~/ros2_ws/srccd ~/ros2_ws/src git cl…...
【Leetcode 每日一题】541. 反转字符串 II
问题背景 给定一个字符串 s s s 和一个整数 k k k,从字符串开头算起,每计数至 2 k 2k 2k 个字符,就反转这 2 k 2k 2k 字符中的前 k k k 个字符。 如果剩余字符少于 k k k 个,则将剩余字符全部反转。如果剩余字符小于 2 k…...
掌握API和控制点(从Java到JNI接口)_35 JNI开发与NDK 03
3、 如何载入 .so档案 VM的角色 由于Android的应用层级类别都是以Java撰写的,这些Java类别转译为Dex型式的Bytecode之后,必须仰赖Dalvik虚拟机器(VM: Virtual Machine)来执行之。 VM在Android平台里,扮演很重要的角色。此外,在执…...
解锁豆瓣高清海报(二) 使用 OpenCV 拼接和压缩
解锁豆瓣高清海报(二): 使用 OpenCV 拼接和压缩 脚本地址: 项目地址: Gazer PixelWeaver.py pixel_squeezer_cv2.py 前瞻 继上一篇“解锁豆瓣高清海报(一) 深度爬虫与requests进阶之路”成功爬取豆瓣电影海报之后,本文将介绍如何使用 OpenCV 对这些海报进行智…...
【C/C++】Windows SAPI自实现文字转语音
本文通过封装Windows SAPI(Speech Application Programming Interface),提供了一个现代化的C接口实现文字转语音功能。主要特性包括支持同步/异步语音合成、可调节语速(-10到10)和音量控制(0-100%ÿ…...
openmv的端口被拆分为两个 导致电脑无法访问openmv文件系统解决办法 openmv USB功能改动 openmv驱动被更改如何修复
我之前误打误撞遇到一次,直接把openmv的全部端口删除卸载然后重新插上就会自动重新装上一个openmv端口修复成功,大家可以先试试不行再用下面的方法 全部卸载再重新插拔openmv 要解决OpenMV IDE中出现的两个端口问题,可以尝试以下步骤&#x…...
8.攻防世界Web_php_wrong_nginx_config
进入题目页面如下 尝试弱口令密码登录 一直显示网站建设中,尝试无果,查看源码也没有什么特别漏洞存在 用Kali中的dirsearch扫描根目录试试 命令: dirsearch -u http://61.147.171.105:53736/ -e* 登录文件便是刚才登录的界面打开robots.txt…...
音叉模态分析
目录 0 序言 1 自由状态下模态求解 1.1 添加模态项目 1.2 生成网格 1.3 设置最大模态阶数 1.4 求解 1.5 结果查看 1.6 结果分析 2 音叉能否释放频率440Hz的音调 3 预应力模态求解 3.1 静态结构分析 3.1.1 添加静态结构项目 3.1.2生成网格 3.1.3添加边界条件 3.1…...
智慧园区系统集成解决方案引领未来城市管理的智能化转型
内容概要 在现代城市管理的背景下,“智慧园区系统集成解决方案”正扮演着越来越重要的角色。这种解决方案不仅仅是技术上的创新,更是一种全新的管理理念,它旨在通过高效的数据整合与分析,优化资源配置,提升运营效率。…...
(即插即用模块-特征处理部分) 二十、(TPAMI 2022) Permute-MLP 置换MLP模块
文章目录 1、Permute-MLP layer2、代码实现 paper:Vision Permutator: A Permutable MLP-Like Architecture for Visual Recognition Code:https://github.com/Andrew-Qibin/VisionPermutator 1、Permute-MLP layer 传统的 MLP-like 模型(如…...