编程随记 ---- 拼包程序(四)

博主对自己写的拼包程序进行主干网数据测试,发现程序无法使用,原因是主干网流量大、连接数多,原程序无法维持和保存数据。老大给出解决方法,如节省保存数据空间、采用操作系统资源管理算法等。此次经历暴露了程序框架等问题,也让博主意识到自身基础不扎实。
编程随记 ---- 拼包程序(四)
  
    正当自我感觉很好的时候,老大让我测试一下主干网捕获下来的数
据。一测之后,才发觉自己写的程序根本无法使用。捕获的数据少的可
怜,甚至几乎为零。测试使我彻底冷静下来。原来拼包程序并不是如我
想象中的那么简单。其复杂度来源于拼包程序的应用环境----主干网。
    主干网的流量达到了G级别的量级。也就是说每秒钟至少有几G的流
量。而其中30%的数据是有效数据,也就是说同时存在的连接数有上百万
个。而每个连接平均正常保存15秒的话,很显然,自己写的程序就无法
有效执行。因为大多数的连接都被我丢弃了。因为我写的程序根本无法
同时维持这么多的连接,根本无法保存这么多的数据。很显然,这个程
序根本无法应用到主干网上。后来我测试过,只能在校园网这种量级上
运行。而在主干网上基本无法保存一个有效的连接数据,因为连接数太
多,前面连接还没有实现三次握手协议,后面的连接九把它给替换掉了。
这样,后面到来的前面连接数据就无法正常保存,同样被丢弃了。于是
几乎所有的数据都被丢弃了。
    想到这,我才发觉自己一开始忽略的问题----主干网。确实自己把
这个问题想的太简单了。在主干网上,原本不是问题的问题就显露出来
了。才发觉自己还是没有考虑周到。也怪自己以前没有经验。这时我才
发觉以前做的这个拼包程序都是无用功。而面临的问题,自己感到很难
解决。感到十分困难。可是更让我沮丧的是:老大告诉我这个问题他们
已经解决,程序目前在主干网上运行的好好的。才感到自己没有想象中
的那么聪明,自己以前太傲了。太不知天高地厚了。如果当初在写这个
程序的时候,能够及时积极的和老大讨论一下的话,也许结果就不是这
么悲惨了。
    后来,老大告诉我解决这个问题的方法。其实网络上的数据很多是
重复的,所以保存数据所需的空间可以得到节省,通过保留一份,其他
用指针指向即可。还可以采用一些操作系统资源管理的一些算法来管理
内存资源。每个连接只有当来了真实数据后再分配空间,在三次握手的
时候不需要分配空间。分配的空间尽可能少,不够时再申请。这样同一
时间能够同时维护的连接数才能达到上百万个,甚至更多。
    听了老大的讲解后,自己豁然开朗。以前感觉学操作系统没什么用
处。现在才发现,很多经典的东西都来自于操作系统。只是当初没有这
个意识。看来以后确实需要好好补补这方面的知识。
    等到了解这个问题,到知道怎么去解决这个问题的时候,才发觉已
经晚了。已经没时间去重新把这个拼包程序改进了。因为又有新的工程
要做,又有新的程序要编。而这次暴露出的问题却有关于程序的框架以
及类的接口与实现剥离的问题。
    只有当真正面临某个实际问题时,才会发觉自己的基础是这么的不
扎实。只有当真正开始编写代码时,才发觉自己没有掌握的东西和一知
半解的东西。只有真正开始投入某个工程时,才发觉试验和应用之间的
差距。只有真正跟问题真枪实干时,才会发现问题,发现自己的弱点。
    只有不断地总结,人才会长大。
   
Spring AI Alibaba 是社区核心实现之一,期望帮助开发者更容易地构建智能体应用。它在设计理念上区别于 Spring AI 只做底层原子抽象,基于 Graph 开发者能构建工作流、多智能体应用。在设计理念上借鉴 Langgraph,可理解为 Java 版的 Langgraph 实现,社区还增加了大量预置 Node、简化了 State 定义过程等,方便开发者编写对等低代码平台的工作流、多智能体等 [^1]。 使用 Spring AI Alibaba 时,因为其基于 Spring Boot 3.x 开发,本地 JDK 版本要求为 17 及以上。以下是 Maven 依赖配置示例: ```xml <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>3.5.0</version> <relativePath/> </parent> <properties> <java.version>21</java.version> </properties> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!--spring-ai-alibaba--> <dependency> <groupId>com.alibaba.cloud.ai</groupId> <artifactId>spring-ai-alibaba-starter</artifactId> <version>1.0.0-M5.1</version> </dependency> ``` 还需要配置 API 密钥: ```properties spring: ai: dashscope: api-key: your-api-key ``` 在扩展功能方面,除了 spring-ai-alibaba-core 中含的 JsonDocumentParser 和 TextDocumentParser,spring-ai-alibaba 还提供了许多 document-parser 的扩展,如 Markdown、pdf 等 [^2]。其内部原理遵循 RAG 运作原理,使用 spring-ai-rag 的框架 [^3]。 在使用案例上,Spring AI Alibaba Graph 可用于人类反馈相关应用,基于 Graph 开发者可以构建工作流、多智能体应用 [^1]。另外,在源码学习中,在 DeepResearchConfiguration 里,planner 节点是一个 PlannerNode 类型的节点,创建时需要传入 2 个参数,分别是 plannerAgent 和 converter [^5]。
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值