自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(54)
  • 收藏
  • 关注

原创 Golang基于DTM的分布式事务SAGA实战

SAGA是“长时间事务”(Long Lived Transaction)运作效率的方法,大致思路是把一个大事务分解为可以交错运行的一系列子事务的集合。原本提出 SAGA 的目的,是为了避免大事务长时间锁定数据库的资源,后来才逐渐发展成将一个分布式环境中的大事务,分解为一系列本地事务的设计模式。

2024-08-15 10:44:07 294

原创 Gin框架接入pyroscope完美替代pprof实现检测内存泄露

并且设置上context超时控制,做好超时熔断措施,做好监控警告,下游基础设施如果达到瓶颈,我们可对下游基础进行主从 水平扩容等。我们在使用golang 高并行处理下游任务的时候,一定要对下游基础设施要有敬畏之心,调用时限制。之前我们生产项目中出现过一次严重的内存泄露,例子如下图所示,该接口qps非常高。这个时候可以点击pprof groutine很好定位哪一块出现了内存泄露。数量已经爆表了,我的mac风扇开始转了。我们可以看到各种指标。pyroscope监控。我们点击Single。

2024-08-14 15:17:54 506

原创 分布式事务

GO语言分布式事务管理服务,支持TCC、SAGA、XA、二阶段消息(2PC)。勿用担心悬挂、空补偿、幂等等异常问题,首创子事务屏障技术代为处理。:阿里开源分布式事务框架,Seata-go暂时只支持TCC,X协议。cap理论与base理论是分布式缓存,分布式事务的基石。golang分布式事务框架。

2024-08-10 16:25:43 221

原创 rocketMQ5.0定时/延迟消息实战

在新的版本中定时消息等价于延迟消息定时消息:例如,当前系统时间为2022-06-09 17:30:00,您希望消息在下午19:20:00定时投递,则定时时间为2022-06-09 19:20:00,转换成时间戳格式为1654773600000。延时消息:例如,当前系统时间为2022-06-09 17:30:00,您希望延时1个小时后投递消息,则您需要根据当前时间和延时时长换算成定时时刻,即消息投递时间为2022-06-09 18:30:00,转换为时间戳格式为1654770600000。

2024-08-08 18:04:59 374

原创 rocketMQ5.0事务消息实战

docker ps查看rocketMQ 容器名称。

2024-08-08 17:38:49 702

原创 高并发场景下慎用replace into来进行数据库操作

REPLACE INTO 操作虽然简单易用,但在使用时需要注意其带来的各种影响,包括锁粒度、性能开销、数据一致性、事务处理和并发控制等方面。在高并发和大数据量环境下,建议评估其性能影响,并根据实际需求选择合适的替代方案,如使用 INSERT ... ON DUPLICATE KEY UPDATE 来避免不必要的删除操作。

2024-08-05 10:55:48 474

转载 (转)Redis最佳实践:7个维度+43条使用规范,带你彻底玩转Redis

腾讯redis业务专家已授权:出处。

2024-08-03 15:03:20 33

原创 Gin框架接入Prometheus,grafana辅助pprof检测内存泄露

我们在使用golang 高并行处理下游任务的时候,一定要对下游基础设施要有敬畏之心,调用时最好设置上context超时控制,做好超时熔断措施,做好监控警告,下游基础设施如果达到瓶颈,我们可对下游基础进行主从 水平扩容等。我们想给Prometheus新增监听任务新增ginapp项目只需要在原来的配置文件下面新增ginapp相关metric。之前我们生产项目中出现过一次严重的内存泄露,例子如下图所示,该接口qps非常高。配置之后我们看以在dashboard看到。数量已经爆表了,我的mac风扇开始转了。

2024-08-14 11:58:11 659

原创 grom接入Prometheus,grafana

docker-compose.yml,与prometheus.yml 配置文件。在granfa配置好相关datasoure可以看到相关数据库连接串指标。// SetMaxOpenConns 设置打开数据库连接的最大数量。我们用go的高并发 限制运行协程数量最大100.在prometheus可以看到相关指标信息。在同级目录下分别创建。

2024-08-13 12:21:48 366

原创 RocketMQ5.0消费者负载均衡实战-顺序消息负载均衡

在看本篇文章之前可以看一下非顺序消息消息负载均衡相关。

2024-08-12 10:40:16 376

原创 RocketMQ5.0消费者负载均衡实战

广播消费可以理解为一个topic被多个不同下游服务订阅消费:基于consumer group来区别不同的服务(消费者)。共享消费可以理解为consumer GroupA为k8s service的概念,消费consumer为pod,将外部的请求通过lb,随机分配给不同的pod。看起来几乎平均分配。生产者产生1000条消息,启动两个消费者服务订阅相同的topic,consumerGroup分别为group1,group2。消息粒度负载均衡策略保证同一个队列的消息可以被多个消费者共同处理,但是该策略使用的消息。

2024-08-11 15:41:12 230

原创 golang并发控制

Channel: 使用channel控制子协程,有缓冲的channel控制并发数量,无缓冲channel同步调用。WaitGroup : 使用信号量机制控制子协程。Context: 使用上下文控制子协程。

2024-08-11 10:17:01 321

原创 RocketMQ5.0 队列

服务端5.x版本:队列名称为一个集群分配的全局唯一的字符串组成,和物理节点解耦。

2024-08-11 09:25:22 286

原创 RocketMQ5.0死信队列

消费逻辑的最终兜底机制,。您可以通过消费死信队列的消息进行业务恢复。

2024-08-10 17:45:01 310

原创 RocketMQ5.0课笔记-架构设计

rocketmq云原生架构。

2024-08-07 15:25:34 345

原创 RocketMQ5.0课笔记-消息场景

rocketmq高可用的方案设计。rocketMQ的负载均衡。

2024-08-07 15:20:49 190

原创 RocketMQ5.0消费挤压处理方式

RocketMQ 无法避免消息重复(Exactly-Once),所以如果业务对消费重复非常敏感,务必要在业务层面进行去重处理。可以借助关系数据库进行去重。首先需要确定消息的唯一键,可以是msgId,也可以是消息内容中的唯一标识字段,例如订单Id等。在消费之前判断唯一键是否在关系数据库中存在。如果不存在则插入,并消费,否则跳过。(实际过程要考虑原子性问题,判断是否存在可以尝试插入,如果报主键冲突,则插入失败,直接跳过)

2024-08-06 14:21:58 299

原创 RocketMQ5.0 Consumer Group

消费者分组(Consumer Group)是指一组消费同一类消息的消费者实例。每个消费者分组有一个唯一的名称,用于标识该分组。消费者分组的设计使得消息能够被多个消费者实例并行消费,同时确保每条消息只被一个消费者实例处理一次。:在集群消费模式下,同一个消费者分组中的多个消费者实例共同消费消息,每条消息只会被其中一个消费者实例消费。这种模式适用于负载均衡的场景。:在广播消费模式下,同一个消费者分组中的每个消费者实例都会消费所有的消息。这种模式适用于每个消费者都需要处理所有消息的场景。

2024-08-05 20:06:57 248

原创 RocketMQ5.0消费者与消费者的负载均衡

RocketMQ 消费者分为以下几类PushConsumer 、 SimpleConsumer 以及 PullConsumer

2024-08-03 17:37:38 738

原创 k8s架构图

2024-08-02 16:32:48 194

原创 rocketMQ 5.0消费重试与流控机制

2024-08-02 16:23:46 126

原创 RocketMQ5.0 生产者

生产者消息类型:

2024-08-01 16:43:10 387

原创 docker 部署rocketMQ

ps:docker在同一个network方式下rocketmq下面可以通过容器名称直接访问。docker 默认会创建 bridge链接方式的rocketmq局域网。查看docker创建那些network。起用dashborad。指定容器name访问。

2024-08-01 15:15:01 194

原创 RocketMQ中的参数约束和建议

(取值范围:无限制)

2024-07-31 15:58:27 110

原创 rocketmq普通消息-消息类型

引用Send消息发送方发出一条消息后,会在收到服务端之后才发下一条消息的通讯方式,被广泛应用于各种场景,如重要的通知消息、短消息通知等。用途1.• 适用于需要确保消息可靠到达的场景,如系统报警、重要通知、事件提醒等。同步发送确保消息发送成功后,系统能得到立即确认,保证消息不会丢失。2.• 订单系统中的订单创建、订单支付等关键操作需要确保数据一致性和可靠性。通过同步发送,系统可以在发送消息后立即确认消息已成功写入消息队列,从而保证订单数据的一致性和完整性。3.

2024-07-31 15:29:28 877

原创 CAP理论 与 BASE理论

BASE理论的核心思想是,通过放宽对一致性的要求,可以获得更高的可用性和分区容忍性。CAP理论的核心在于,在分布式系统中,只能在一致性、可用性和分区容忍性这三个属性中最多同时满足两个。:在可用性和分区容忍性之间做出权衡,但不保证数据一致性。:强调通过牺牲强一致性来获得更高的可用性和分区容忍性,适用于需要高可用性的场景,并保证最终的一致性。:强调在一致性、可用性和分区容忍性之间的权衡,分布式系统只能在这三者中最多同时满足两个。:系统的状态可以是软的,不一定是固定的,允许数据副本之间存在一定程度的不一致。

2024-07-28 10:12:17 430

原创 分布式事务方案 2pc/3pcTCC SAGA 消息最终一致性

b站讲的通俗易懂的 分布式事务方案。

2024-07-27 22:05:20 393

原创 mqtt-EMQX 代理

如果你的应用需求超出了资源受限设备的能力范围,EMQX 提供的高性能和扩展性可能非常有用。• 由于其高级功能和集群支持,EMQX 的部署和管理可能比 Mosquitto 更加复杂,这在资源受限环境中可能增加额外的运维负担。• EMQX 可能会消耗更多的内存和 CPU 资源,尤其是在高负载和复杂配置的情况下。虽然 EMQX 提供了许多先进的功能,但它的资源需求通常高于轻量级的 MQTT 代理,如 Mosquitto。• EMQX 支持高可用部署,包括主备模式和分布式集群,以确保服务的可靠性和稳定性。

2024-07-24 16:04:43 151

原创 mqtt- 轻量级的消息传输协议

发布者将消息发布到一个主题(topic),而订阅者订阅一个或多个主题以接收相关消息。• 客户端可以在连接时设置遗嘱消息(Last Will and Testament),当客户端异常断开连接时,代理会发布这条消息通知其他订阅者。• MQTT 支持“保留”消息(Retained Messages),这些消息会被保存在代理服务器上,并在有新的订阅者订阅该主题时发送给他们。• 负责接收、存储和转发消息到适当的客户端。• 客户端断开连接时,代理服务器会根据设置的遗嘱消息发布相应的信息(如果配置了遗嘱消息)。

2024-07-24 15:20:54 811

原创 langchain 实现Auto-GPT

2024-07-23 17:49:10 92

原创 大模型数据隐私

2024-07-22 10:41:41 106

原创 langchin---Agent

在LangChain中,Agent 是一个核心组件,用于处理复杂的、多步骤的任务和对话。• 在生成响应时可以调用外部工具获取所需的信息或执行必要的操作。• Agent分析用户的输入,理解上下文,并生成可能的推理步骤。• 通过与各种API、数据库和其他服务集成,扩展LLM的功能。• 通过大语言模型(LLM)生成推理链,确定需要执行的操作。• 将复杂任务分解为多个子任务,并按顺序执行这些子任务。• Agent根据推理结果调用适当的工具或执行特定操作。• 管理任务的执行流程,确保任务的完成。

2024-07-22 09:53:11 265

原创 langchain memory

向量数据库(Vector Database)是一种专门设计用来存储、管理和检索高维向量数据的数据库系统。向量数据库的主要优势在于其对高维向量数据的高效处理能力,尤其适用于需要进行相似性搜索的应用场景,如图像检索、推荐系统、自然语言处理等。• 利用k近邻算法进行相似性搜索,适合于与文本搜索结合的场景。• 一种开源的向量数据库,专为处理大规模、高维向量数据设计。• 由Spotify开发的用于推荐系统的相似性搜索库。• 构建基于树的索引,适合高维空间中的近似最近邻搜索。• 高效处理大规模、高维向量数据。

2024-07-22 09:23:04 436

原创 langchain集成应用

串联式调用链

2024-07-22 09:11:49 282

原创 ai gpt大模型实战技巧与原则

OpenAI Translator

2024-07-20 20:17:14 99

原创 Moderration 监管模型

监管模型(Moderation Models)在机器学习和自然语言处理领域中用于自动识别并过滤不适当的内容。这些模型广泛应用于社交媒体平台、在线社区和其他需要内容监控的服务,以确保平台上的内容符合社区准则和法律法规。:使用自然语言处理技术将文本内容分类为不同的类别,例如正常、不适当、垃圾邮件、仇恨言论等。常见的模型包括朴素贝叶斯、支持向量机和深度学习模型如BERT和Transformer。:通过分析文本中的情感来判断内容的性质,例如积极、消极或中立。这种技术可以帮助识别潜在的仇恨言论或攻击性语言。

2024-07-19 22:23:37 314

原创 LangChain

LangChain:介绍与入门 | 🦜️🔗 LangchainWelcome to LangChainGo | 🦜️🔗 LangchainGo

2024-07-19 15:39:04 91

原创 AI大模型学习笔记-gpt

Multimodal)技术指的是处理和整合来自多种不同类型数据(模态)的信息和方法。在计算机科学和人工智能领域,这种技术可以应用于多个方面,比如图像、文字、语音、视频等。这种技术的主要目标是通过整合不同模态的数据来提升模型的理解、分析和决策能力。

2024-07-19 14:47:39 352

原创 AI大模型学习笔记

注意力模型,上下文向量。抓取全文的重点,学习输入的全文的权重。不重要的话降低权重,重要的话 提高权重。

2024-07-18 21:42:04 87

原创 Kubernetes网络模型

都拥有一个独 立的IP地址,并假定所有Pod都在一个可以直接连通的、扁平的网络空 间中。设计这个原则的原因是,用户不需要 额外考虑如何建立Pod之间的连接,也不需要考虑如何将容器端口映射 到主机端口等问题。一个 Pod内部的所有容器共享一个网络堆栈(相当于一个网络命名空间,它 们的IP地址、网络设备、配置等都是共享的)。按照这个网络原则抽象 出来的为每个Pod都设置一个IP地址的模型也被称作IP-per-Pod模型。(2)抽象的Pod到Pod之间的通信。(1)容器到容器之间的直接通信。

2024-07-18 15:44:50 258

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除