美文网首页go
组件分享之后端组件——基于Golang实现的以并行线程计算或分发

组件分享之后端组件——基于Golang实现的以并行线程计算或分发

作者: cn華少 | 来源:发表于2022-06-23 21:34 被阅读0次

    组件分享之后端组件——基于Golang实现的以并行线程计算或分发到机器集群组件GLOW

    背景

    近期正在探索前端、后端、系统端各类常用组件与工具,对其一些常见的组件进行再次整理一下,形成标准化组件专题,后续该专题将包含各类语言中的一些常用组件。欢迎大家进行持续关注。

    组件基本信息

    内容

    本节我们分享一个基于Golang实现的以并行线程计算或分发到机器集群组件glow。类似于 Hadoop Map Reduce、Spark、Flink、Storm 等。

    具体使用如下:

    1、安装

    go get github.com/chrislusf/glow
    go get github.com/chrislusf/glow/flow
    

    2、使用案例

    package main
    
    import (
        "flag"
        "strings"
    
        "github.com/chrislusf/glow/flow"
    )
    
    func main() {
        flag.Parse()
    
        flow.New().TextFile(
            "/etc/passwd", 3,
        ).Filter(func(line string) bool {
            return !strings.HasPrefix(line, "#")
        }).Map(func(line string, ch chan string) {
            for _, token := range strings.Split(line, ":") {
                ch <- token
            }
        }).Map(func(key string) int {
            return 1
        }).Reduce(func(x int, y int) int {
            return x + y
        }).Map(func(x int) {
            println("count:", x)
        }).Run()
    }
    

    具体原理如下:

    image.png
    本文声明:
    88x31.png
    知识共享许可协议
    本作品由 cn華少 采用 知识共享署名-非商业性使用 4.0 国际许可协议 进行许可。

    相关文章

      网友评论

        本文标题:组件分享之后端组件——基于Golang实现的以并行线程计算或分发

        本文链接:https://www.haomeiwen.com/subject/mocuvrtx.html