网站建设销售怎么做/seo单页快速排名

网站建设销售怎么做,seo单页快速排名,网络营销推广的成功案例,网站后台模板 jquery背景 队列还是非常重要的中间件,可以帮助我们:提高处理效率、完成更复杂的处理流程 最初,我觉得只要掌握一种消息队列就够了,现在想想挺好笑的。 过去的探索 因为我用python,而rabbitmq比较贴合快速和复杂的数据处…

背景

队列还是非常重要的中间件,可以帮助我们:提高处理效率、完成更复杂的处理流程

最初,我觉得只要掌握一种消息队列就够了,现在想想挺好笑的。

过去的探索

因为我用python,而rabbitmq比较贴合快速和复杂的数据处理,然后就选了这款。一开始我觉得不靠谱,服务老是断了,后来发现,是因为ubuntu做服务器如果用wifi的话天然容易这样。当时不明白为什么,所以弃用了rabbitmq一段时间。

后来再次使用时,功能倒是大体ok了,在早期版本好像直接支持延时消息啥的,当时都把插件装上搞好了。后来又觉得rabbitmq的并发太小了,在大规模etl的时候比较吃不消。所以又弃用了。

再后来,我想搞一些简单,使用一点的队列,于是搞了redis stream。在某些方面的确也还挺好用,速度和吞吐都还比较大。但是是吃内存的,而且在后来也出过一次问题:在维持十几个队列进行大量流转时,我发现有些队列失效了,要删除才能释放内存。这样的隐患看起来更大,所以又多少被打入冷宫。

兜兜转转又回到了kafka。这个是最早我比较排斥的,因为看起来比价麻烦,而且更偏向java。但搭起来的确很好用,吞吐大,也不需要内存,主要依赖硬盘。但是kafka搭起来稍微麻烦一点,组要zookeeper,而且对网络和机器资源的要求很高。有一次,我不确定是不是kafka的问题,把我一台机器的网络整个带崩了。当然大部分时候也是没问题的。

后来也陆续看了一些队列,但类型也就是上面三种了,差异不大。还有个zmq,感觉是更底层的队列转发,没去管了。

一些对应的结论:

  • 1 rabbitmq 可以在稍微小的场景用,功能可以比较全面,方便重试等
  • 2 redis 把持久化去掉,不需要了,这样万一stream出问题重启服务就行
  • 3 kafka 适合保存大量的对话日志,有7天滚动删除,需要用资源稍微高一点的机器运行

新的思考

最近碰到一些问题,又触发了我关于这方面的思考。

问题1:一个同事抱怨请求的微服务失败率过高,任务失败后他的重试比较难搞?

问题2:机器人会有很多零散的数据需要向量化,而现有的向量化微服务是处理批量的,这样导致了能力无法输出?

问题3:大模型不断出新的模型,以及现有的接口价格还是稍贵(虽然已经是业内最低),如何能确保替换?

对于问题1,后来我发现还是数据连接失活的问题,已经解决掉了。但如果是大模型接口不稳定导致的问题,应该如何解决呢? – RabbitMQ

由于调用大模型处理的需求一般都是比较昂贵且缓慢的,这意味着天然的并发就不会太高。RabbitMQ即使在消息体很大的情况下,应该也能做到2000左右的并发(这个后续我可以压一下),那样在并发处理上就够了。

然后利用rabbitmq本身丰富的机制,比如死信队列这种来完成重试。
在这里插入图片描述
这样可以应对接口的不稳定调用情况,减少我们自己进行失败的检查和调度。

对于问题2,应该就是做一个微批次服务了。服务端用队列接收请求,只有到一定批次时或者到指定轮询时间(1s),服务才会处理队列的数据,此时就可以发挥服务的批量处理效率了。这对于矩阵处理类的服务特别有效,使用redis stream这样简单的队列来完成这种服务正好。 – Redis Stream。

对于问题3,那么就是一个广播的过程。用kafka比较合适,一方面可以支持很大的吞吐,然后对于不同的消费者,这时应该是不同的模型都可以重复消费。每一个input,只存一次,在kafka,然后可以被重复消费,消费的结果进行实时比对。胜利的模型上台,失败的模型退位。

还有一个比较让我本能抗拒的问题,但其实应该是可以的,后面我也要尝试。

【实时队列服务】服务只是一个消息入口,并不直接处理,而是发到kafka。然后由多个worker盯着kafka进行消费。

这种间接服务是有点不靠谱的,抛开入口服务不谈,这里有kafka队列和worker两个不稳定因素。但如果可行的话,这样反而是比较好的:

  • 1 数据存在历史(7天缓存),必要的时候可以追溯和回放
  • 2 数据存到kafka,可以有更高的弹性处理能力,对那些延时要求不高的,比如允许timeout 30秒的任务来说肯定是可以的

worker处理完之后进行返回 ,可以采用webhook, websocket或者sse的方式将结果实时的返给请求。

【复杂ETL流转】将数据的处理抽象为在若干个kafka之间进行流转。

这样最大的好处是可以让不同人/流程之间的交互变的简单,可能会稍微费点硬盘,但应该是值得的。

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

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

相关文章

TensorFlow 与 TensorFlow Lite:核心解析与层应用

1. 引言 TensorFlow 是 Google 开发的开源机器学习框架,支持从数据预处理、模型训练到推理部署的完整生命周期。然而,在嵌入式和移动设备上,原生 TensorFlow 过于庞大,因此 Google 推出了轻量级版本——TensorFlow Lite&#xff…

DeepSeek大模型在政务服务领域的应用

DeepSeek大模型作为国产人工智能技术的代表,近年来在政务服务领域的应用呈现多点开花的态势。通过多地实践,该技术不仅显著提升了政务服务的效率与智能化水平,还推动了政府治理模式的创新。以下从技术应用场景、典型案例及发展趋势三个维度进…

电子电气架构 --- 分布到集中的动カ系统及基于域控制器的架构

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 所有人的看法和评价都是暂时的,只有自己的经历是伴随一生的,几乎所有的担忧和畏惧,都是来源于自己的想象,只有你真的去做了,才会发现有多快乐。…

深入理解C/C++堆数据结构:从原理到实战

一、堆的本质与特性 1.1 什么是堆数据结构? 堆(Heap)是一种特殊的完全二叉树,它满足以下核心性质: 堆序性:每个节点的值都满足特定顺序关系 结构性:完全二叉树的结构特性(除最后一…

Python学习第十七天

Django框架-SQLite3 介绍 Django内置了对 SQLite3 数据库的支持。SQLite3 是一个轻量级的嵌入式数据库引擎,非常适合开发、测试和小型项目。以下是关于 Django 中 SQLite3 的介绍和应用指南。(除了这些还支持mysql、oracle以及其他查询文档,…

Docker 》》Docker Compose 》》network 网络 compose

docker 默认的网络 三种模式 # 列出所有当前主机上或Swarm集群上的网络 docker network ls#查看网络详情 docker network inspect network名称# 清除未使用的docker网络 docker network prune -f# 创建网络 ocker network create -d bridge 网络名称 docker network create –s…

Python数字信号处理之最佳等波纹滤波器阶数估计原理

Matlab中的阶数估计函数 在MATLAB中,使用firpmord函数可以估算等波纹FIR滤波器的最小阶数。该方法基于Parks-McClellan算法,通过通带和阻带的频率边界、幅度响应及允许的最大误差来自动计算参数。 rp 3; % Passband ripple in dB rs 40; …

JumpServer基础功能介绍演示

堡垒机可以让运维人员通过统一的平台对设备进行维护,集中的进行权限的管理,同时也会对每个操作进行记录,方便后期的溯源和审查,JumpServer是由飞致云推出的开源堡垒机,通过简单的安装配置即可投入使用,本文…

Android LeakCanary 使用 · 原理详解

一、简介 LeakCanary 是 Square 公司开源的 Android 内存泄漏检测工具,通过自动化监控和堆转储分析,帮助开发者快速定位内存泄漏根源。其核心设计轻量高效,已成为 Android 开发中必备的调试工具。 二、使用方式 1. 集成步骤 在项目的 buil…

每日一题---dd爱框框(Java中输入数据过多)

dd爱框框 实例: 输入: 10 20 1 1 6 10 9 3 3 5 3 7 输出: 3 5 这道题要解决Java中输入的数过多时,时间不足的的问题。 应用这个输入模板即可解决: Java中输入大量数据 import java.util.*; import java.io.*;pu…

redis部署架构

一、redis多实例部署 实例1 安装目录:/app/6380 数据目录:/app/6380/data 实例2 安装目录:/app/6381 数据目录:/app/6381/data 1、创建实例安装目录 2、拷贝实例的配置文件 3、编辑实例的配置文件 第…

面试vue2开发时怎么加载编译速度(webpack)

可以输入命令获取默认 webpack 设置 vue inspect > set.js 1.使用缓存 configureWebpack: {cache: {type: filesystem, // 使用文件系统缓存类型buildDependencies: {config: [__filename] // 缓存依赖,例如webpack配置文件路径}}}, 2.启用 vue-loader (测试明…

深度学习-服务器训练SparseDrive过程记录

1、cuda安装 1.1 卸载安装失败的cuda 参考:https://blog.csdn.net/weixin_40826634/article/details/127493809 注意:因为/usr/local/cuda-xx.x/bin/下没有卸载脚本,很可能是apt安装的,所以通过执行下面的命令删除: a…

Browser Copilot 开源浏览器扩展,使用现有或定制的 AI 助手来完成日常 Web 应用程序任务。

一、软件介绍 文末提供源码和开源扩展程序下载 Browser Copilot 是一个开源浏览器扩展,允许您使用现有或定制的 AI 助手来帮助您完成日常 Web 应用程序任务。 目标是提供多功能的 UI 和简单的框架,以实现和使用越来越多的 copilots(AI 助手&…

解锁C++:指针与数组、字符串的深度探秘

目录 一、指针与数组:亲密无间的伙伴 1.1 指针是数组的 “快捷通道” 1.2 数组名与指针:微妙的差别 1.3 动态数组:指针大显身手 二、指针与字符串:千丝万缕的联系 2.1 字符指针与 C 风格字符串 2.2 指针与 std::string 类 2.3 字符串常量与指针 三、指针在数组和字…

20250315-OpenAI-AgentSDK实验

凑热闹。可以用GLM跑。 这里暂时用GLM底座“魔鬼修改”,代码库仅供参考(共同进步吧) openai-agents-python-glm: 基于GLM底座运行SDK,学习实验SDK内的mAGT功能。https://gitee.com/leomk2004/openai-agents-python-glm 自言自语&a…

Qt QML实现弹球消砖块小游戏

前言 弹球消砖块游戏想必大家都玩过,很简单的小游戏,通过移动挡板反弹下落的小球,然后撞击砖块将其消除。本文使用QML来简单实现这个小游戏。 效果图: 正文 代码目录结构如下: 首先是小球部分,逻辑比较麻…

Python的那些事第四十五篇:继承自Nose的测试框架Nose2

Nose2:继承自Nose的测试框架 摘要 本文深入探讨了Nose2这一继承自Nose的测试框架。在软件开发过程中,测试是确保代码质量和稳定性的重要环节,而测试框架为测试工作的开展提供了有力支持。Nose2作为Nose的继承者,在保留Nose优势的基础上进行了诸多改进和扩展,为Python测试…

如何通过 Airbyte 将数据摄取到 Elasticsearch

作者:来自 Elastic Andre Luiz Airbyte 是一个数据集成工具,可自动化并可扩展地将信息从各种来源传输到不同的目的地。它使你能够从 API、数据库和其他系统提取数据,并将其加载到 Elasticsearch 等平台,以实现高级搜索和高效分析。…

RBAC 模型的简单实现

RBAC 模型基本介绍 RBAC(Role-Based Access Control,基于角色的访问控制)是一种广泛应用的权限管理模型。它的核心思想是通过角色来管理权限,而不是直接分配权限给用户。用户被赋予一个或多个角色,而每个角色拥有不同…