- 博客(180)
- 资源 (5)
- 收藏
- 关注
原创 关于akka官方quickstart示例程序(scala)的记录
Akka官方QuickStart示例展示了如何使用Akka Typed构建Actor系统。
2025-06-05 17:03:53
1413
5
原创 akka实践之应用的扩展性问题和actor模型
本文探讨了传统应用扩展面临的瓶颈及Akka框架的优势。传统方式在应对高并发时存在线程管理复杂、同步调用阻塞、数据库性能瓶颈等问题。Akka采用Actor模型提供统一解决方案:轻量级Actor封装状态和行为,通过异步消息传递实现解耦,支持事件溯源重建状态,具备监督机制保障容错。相比传统方法,Akka简化了并发编程,提高了系统弹性扩展能力,代码无需重构即可实现从单机到分布式的平滑演进。典型案例展示了Akka如何优雅解决传统聊天应用在扩展过程中遇到的状态管理、服务解耦等核心挑战。
2025-06-03 14:26:39
1004
原创 java程序从服务器端到Lambda函数的迁移与优化
本文探讨了Java应用从传统服务器架构向无服务器架构的转型。无服务器架构通过事件驱动模型(如AWS Lambda)显著降低了运维负担,实现了按需扩展和按使用量付费。文章详细介绍了Lambda函数的组成(Handler、Event、Context)、执行模型(同步、异步、轮询)以及不同事件源(API Gateway/S3/SQS)的处理方式。通过内存配置优化和标准化部署流程,开发者可以专注于业务逻辑而非基础设施管理。无服务器架构不仅改变了技术实现方式,更重塑了应用开发和运维的理念。
2025-05-31 23:08:11
1076
原创 Replacing iptables with eBPF in Kubernetes with Cilium
Replacing iptables with eBPF in Kubernetes with Cilium
2025-05-30 17:22:33
1068
原创 图解gpt之Transformer架构与设计原理
Transformer架构彻底革新了自然语言处理范式,其核心在于并行计算的注意力机制而非传统的序列处理方式。该模型由编码器和解码器组成:编码器通过多头自注意力机制提取输入序列特征,解码器则结合编码器信息和自身生成序列逐步输出结果。关键创新包括位置编码解决并行处理的位置感知问题,残差连接和层归一化稳定深层网络训练,以及自注意力机制捕捉长距离依赖关系。这种架构催生了BERT、GPT等突破性模型,成为现代NLP系统的基石。
2025-05-30 17:11:48
1991
原创 图解gpt之注意力机制原理与应用
大家有没有注意到,当序列变长时,比如翻译一篇长文章,或者处理一个长句子,RNN这种编码器就有点力不从心了。它把整个序列信息压缩到一个固定大小的向量里,信息丢失严重,而且很难记住前面的细节,特别是对于长距离依赖关系,比如一个句子开头的主语和后面动词的搭配关系,RNN可能就忘了。所以,我们需要一种更聪明的方法,让模型能够像我们人类一样,看问题的时候,知道哪些地方是重点,哪些地方可以忽略。这就是我们今天要讲的注意力机制。
2025-05-30 17:09:22
1416
原创 使用ray扩展python应用之流式处理应用
Ray作为分布式计算框架,可通过两种方式实现流式处理:1)利用底层组件定制开发;2)与Kafka等流式引擎集成。
2025-05-30 00:29:34
1450
原创 AI应用分布式框架ray的设计细节和理念
Ray通过统一任务并行和Actor模型,构建了一个动态执行引擎,采用分层架构(应用层和系统层)和分布式全局控制存储(GCS)实现高效调度和容错。关键创新包括:分布式调度器避免单点瓶颈,内存对象存储减少数据移动,以及基于血缘的容错机制。
2025-05-30 00:27:00
1315
原创 使用ray扩展python应用之ray系统的设计细节
本文深入解析分布式系统的核心概念与Ray框架的实现机制。主要内容包括:1)容错机制设计,重点分析Ray对无状态远程函数和有状态Actor的不同容错策略;2)数据管理,探讨Ray对象的不可变特性、存储机制及重建策略;3)高效的序列化方案,比较Cloudpickle、Arrow等工具的特点;4)灵活的资源管理,包括CPU/GPU分配和内存管理策略;5)系统扩展方式,介绍垂直与水平两种扩展途径。文章通过架构图例和代码片段,系统性地展示了Ray框架在分布式计算领域的技术实现。
2025-05-30 00:25:55
1360
原创 使用ray扩展python应用之remote函数和actor模式
Ray 的核心优势包括高性能调度器、对象存储和 Actor 模型,上层还提供丰富的工具库(如 Ray Serve、Ray Tune 等),覆盖从数据处理到模型部署的全流程。通过 Remote 函数和 Actor 模型实现高效并行计算,并内置容错机制。其易用性和灵活性使其成为规模化计算的理想选择。
2025-05-29 00:31:06
1738
原创 istio in action之服务网格和istio组件
微服务将大系统拆解成一个个独立的、小型的服务单元。每个服务可以独立部署、快速迭代,团队可以自主决策,大大降低了变更风险。当然,微服务不是万能药,它需要强大的自动化和DevOps实践作为支撑。而Istio这样的工具,正是在微服务环境下,帮助我们实现流量控制、服务间韧性、指标收集等关键能力,让快速迭代变得可行且安全。学习和进步,离不开反馈。自动化测试就是我们获取反馈、加速迭代的利器。它能让我们在代码变更后,立刻知道是否引入了新的bug,或者功能是否按预期工作。
2025-05-11 17:05:37
1247
原创 istio in action之应用弹性与容错机制
在分布式系统中,服务间的依赖关系就像一张错综复杂的网络,任何一个节点的抖动都可能引发连锁反应。这也是为什么我们需要强调弹性,因为在分布式系统中,服务之间通过网络进行通信,这本身就引入了无数个潜在的失败点。我们必须让服务从一开始就具备“容错”的意识,能够主动感知并尝试恢复,而不是被动等待。例如A服务访问B服务,可能的错误有在 Istio 这样的服务网格技术普及之前,我们通常需要在应用代码里自己写这些弹性逻辑。
2025-05-11 16:59:36
1185
原创 Fortio负载测试工具基础
Fortio 是一款高效、精准且易用的负载测试工具,最初为 Istio 服务网格设计,后独立发展。它支持 HTTP、HTTPS 和 gRPC 协议,具备稳定的性能和高可靠性。Fortio 不仅提供命令行和 Web UI 操作,还支持 REST API 远程控制,适用于服务性能评估、容量规划、混沌工程和自动化测试等多种场景。其模块化设计允许用户将其作为库嵌入项目,或仅使用部分功能。Fortio 还内置了 Web 服务器和 Grol 脚本语言,支持复杂的测试场景定义。通过合理设置参数,如并发连接数、请求分布和延
2025-05-10 01:38:04
1020
原创 learning ray之分布式训练和在线推理
这个案例会综合运用前面讲到的所有Ray Serve功能。我们需要获取用户搜索的关键词对应的文章内容。我们用Python的wikipedia库来实现这个功能。它会根据关键词搜索维基百科,返回一系列相关文章。我们选择排名第一的文章,并提取它的正文内容。如果没找到文章,就返回None。
2025-05-10 00:27:44
1539
原创 service mesh的定制化与性能考量
更重要的是,这种动态加载的能力,使得我们可以将一些原本属于业务逻辑的东西,比如根据用户的订阅计划来限制请求速率,或者根据用户类型将请求路由到不同的服务集群,或者进行复杂的多变量测试,这些都可以通过编写WASM模块,动态地注入到数据平面中去执行。方法很多,比如你想记录更详细的访问日志,或者想用特定的指标插件,或者需要一套自定义的认证授权流程,甚至想用更高级的限流算法,都可以通过扩展Sidecar代理来实现。,它扮演了桥梁的角色,接收来自Istio控制平面的配置,然后翻译成NGINX能够理解和使用的配置格式。
2025-05-10 00:27:22
1385
原创 learning ray之ray强化学习/超参调优和数据处理
当然,Ray还提供了更高级的库,比如RLLib,它提供了更丰富的强化学习算法和模型,可以处理更复杂的场景。这个类包含了游戏的关键信息:寻觅者的当前位置seeker,目标的位置goal,以及寻觅者可以执行的动作空间action_space和它能观察到的状态空间observation_space。这个过程会涉及到智能体的移动、状态的观察、奖励的获取,以及最终的决策。Simulation类的rollout方法就是实现这个过程的,它会跟踪游戏状态,执行策略动作,收集经验,并在游戏结束时返回所有经验。
2025-05-09 23:31:12
1649
原创 istio in action之流量控制与路由
我们可以在 apigateway 的 VirtualService 中,设置一个规则,当 apigateway 收到请求时,它内部调用 catalog 时,也要根据请求头来决定是调用 v1 还是 v2。Istio 提供了 ServiceEntry 这个资源,可以把 ServiceEntry 理解为一个“通行证”,它允许我们把外部服务的信息,比如主机名、端口、协议,添加到 Istio 的内部服务注册表里。在发布新版本时,我们也可以选一小部分用户,比如内部员工,作为我们的金丝雀,让他们先体验新版本。
2025-05-09 11:39:45
1123
原创 python中的celery和其他分布式任务队列
还有,如果某些特定的保证,比如事务性的任务流,是你的核心需求,而当前的队列无法满足,那也可能是另一个选择。选择合适的工具,是成功的关键。虽然它是用Python写的,但它的协议是开放的,理论上可以用任何语言实现,比如有人就用C++通过AMQP协议实现了对Celery的消费和发布。更高级的是,它可以处理复杂的任务流程,比如链式执行、并行执行、组合任务等。它能让你直观地看到任务的运行状态、进度、历史记录,还能监控Broker的性能,甚至可以远程控制Worker,比如重启Worker、撤销任务等等。
2025-05-09 11:05:39
1299
1
原创 learning ray之ray之core编程基础
上节课我们深入探讨了Ray的核心设计与架构,现在我们来聊聊如何用它来解决实际问题。大家可能觉得有点讽刺,因为Python本身在分布式计算上其实有点力不从心。它的解释器本质上是单线程的,这使得我们很难充分利用多核CPU,更别说整个集群的计算能力了。虽然Python生态系统里有一些工具,比如multiprocessing,但它们大多只能在单机上玩转,跨机器的分布式计算就有点力不从心了。所以,Ray Core API 就应运而生了。
2025-05-09 10:52:34
1087
原创 istio in action之Gateway流量入口与安全
看这个例子,当来自 coolstore-gateway 的流量,目标是 webapp.istioinaction.io 时,就把这些 HTTP 请求路由到名为 webapp 的服务的 80 端口。spec.gateways 字段指定了这个规则适用于哪个 Gateway,spec.hosts 指定了虚拟主机名,而 spec.http 部分则定义了具体的 HTTP 路由匹配和目标。
2025-05-09 10:45:28
1506
原创 learning ray之ray核心设计和架构
我们每天都在处理海量、多样且高速生成的数据,这对计算能力提出了前所未有的挑战。传统的单机计算模式在面对日益复杂的机器学习模型和大规模数据集时,往往显得力不从心。更重要的是,数据科学家们本应专注于模型训练、特征工程、超参数调优这些核心任务,而不是被繁琐的底层计算细节所困扰。因此,我们需要一种能够高效、灵活地将计算任务扩展到集群,并且易于使用的分布式计算框架,来解放数据科学家的创造力。过去十年,我们见证了大数据技术的蓬勃发展,比如 Hadoop、Spark 等。
2025-05-09 10:43:36
1065
原创 图解gpt之Seq2Seq架构与序列到序列模型
我们开始构建神经网络模型了。import torch.nn as nn # 导入 torch.nn 库# 定义编码器类,继承自 nn.Moduleself.hidden_size = hidden_size # 设置隐藏层大小self.embedding = nn.Embedding(input_size, hidden_size) # 创建词嵌入层self.rnn = nn.RNN(hidden_size, hidden_size, batch_first=True) # 创建 RNN 层。
2025-05-09 10:40:21
1293
原创 图解gpt之神经概率语言模型与循环神经网络
上节课我们聊了词向量表示,像Word2Vec这样的模型,它确实能捕捉到词语之间的语义关系,但问题在于,它本质上还是在孤立地看待每个词。英文的“Apple”,可以指苹果公司,也可以指水果。这种一词多义的特性,以及词语在上下文中的微妙变化,Word2Vec这种固定向量的表示方式就捉襟见肘了。而且,它还不能处理新词,一旦遇到词表里没有的词,就束手无策。所以,尽管有了词向量,NLP领域在很长一段时间内,也就是所谓的深度学习元年之前,其实并没有迎来真正的突破。
2025-05-09 10:38:37
1223
原创 Istio in action之Envoy Proxy详解
Envoy,这个由Lyft开发并开源的代理,最初是为了应对分布式系统中那些棘手的网络难题而生。它用C++构建,目标明确:高性能、高稳定,尤其在高负载下也能保持确定性。这两大原则,是理解Envoy价值的关键。在深入Envoy之前,我们先快速明确一个概念:什么是代理?简单来说,代理就像一个中间人,它站在客户端和服务器之间,拦截流量。它。比如,你公司里的互联网代理,所有访问外网的请求都得先经过它,它会根据你的组织策略,过滤掉不允许访问的网站或协议,然后才把请求放出去。
2025-05-09 10:35:34
963
原创 learning ray之ray简介和基础概念
Ray 是一种专为 Python 设计的分布式计算框架,旨在简化大规模计算任务的实现。随着数据量和计算需求的激增,传统的单机计算已无法满足需求。Ray 通过其清晰的三层架构(Core、Libraries、Ecosystem),提供强大的分布式计算能力,支持任务调度、Actor 模型和多种优化库,如 Tune、RLlib 和 Train。Ray 还简化了超参数优化、强化学习、分布式训练、数据处理和模型部署等复杂任务。其 Pythonic API 设计降低了学习门槛,使开发者能够轻松扩展 Python 代码到多
2025-05-09 10:33:06
797
原创 aws xray如何实现应用log和trace的关联关系
参考链接(https://stackoverflow.com/questions/76000811/search-cloudwatch-logs-for-aws-xray-trace-id-in-code)中的说明。参考链接(https://blog.csdn.net/sinat_41567654/article/details/129317614)中的步骤创建xray和ecs集成环境,加入以下额外逻辑。对于条件1,我们需要编辑segment,加入aws.cloudwatch_log属性。
2024-11-10 23:17:40
1133
原创 aws xray通过设置采样规则对请求进行过滤
(不需要重新部署代码,请求数量不会额外升高)X-Ray SDK 需要额外配置才能使用您在控制台中配置的采样规则。如果 SDK 无法访问 X-Ray 获取采样规则,它将恢复为每秒第一个请求的默认本地规则(1,5%)
2024-11-10 23:12:16
1231
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人