pipeline详解
一. pipeline设计模式简介
1 2 3 4 5 | pipeline模式又称为流水线模式,pipeline又称为管道,是一种在计算机普遍使用的技术,举个最普遍的例子,如下图所示cpu流水线,一个流水线分为4个部分,每个部分可以独立工作,于是可以处理多个数据流。linux管道也是一个常用的管道技术,其字符处理功能十分强大,在面试过程中长被问到。在分布处理领域,由于管道模式是数据驱动,而目前流行的spark分布式处理平台也是数据驱动的,两者非常合拍,于是在park的新的api里面pipeline模式得到了广泛的应用。还有java web中的 struct 的filter,netty的pipeline, 无处不见的pipeline模式。 解决的问题: 有时一些线程的步骤比较冗长,而且由于每个阶段的结果与下阶段的执行有关系,又不能分开 解决思路 可以将任务的处理分解为若干个处理阶段,上一个阶段任务的结果交给下一个阶段来处理,这样每个线程的处理是并行的,可以充分利用资源提高计算效率 |
二. 相关概念
1 2 3 | 管道模型包含两个部分: pipeline管道,valve阀门(也称为hander) pipeline管道,可以比作生产车间生产线,在这里可以认为是容器的逻辑处理总线 valve 阀门,可以比作生产线上的工人,负责完成各自的部分工作。阀门也可以叫做handler处理者 |
三. python开发pipeline功能
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | 使用python 开发pipeline功能,用fastcore模块 学习连接:http: //www.coolpython.net/informal_essay/21-03/py-pipeline.html ##################################### from fastcore.transform import Pipeline def lower(string_input): "" " 大写转小写 :param string_input: : return : "" " return string_input.lower() def remove_(string_input): "" " 去除空格 :param string_input: : return : "" " return string_input.replace( "-" , " " ) def strip(string_input): "" " 去除回车字符 :param string_input: : return : "" " return string_input.strip( "\n" ) input_string = "IT-is-a-test\n" pipe = Pipeline([lower, remove_, strip]) output = pipe(input_string) print(output) |
四. jenkins中的pipeline
1 2 | jenkins中的pipeline使用groovy语言来开发 groovy教程:https: //www.w3cschool.cn/groovy/groovy_basic_syntax.html |
五. elasticsearch中的pipeline
1 2 3 4 5 | elasticsearch是java语言开发的,elasticsearch的pipeline的使用实际上是调用elasticsearch的接口,pipeline功能也是java开发的 elasticsearch的各种processor的用法 https: //www.elastic.co/guide/en/elasticsearch/reference/7.5/ingest-processors.html |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律