Gleam-Go

分布式任务执行系统
授权协议 Apache
开发语言 Google Go
所属分类 服务器软件、 分布式应用/网格
软件类型 开源软件
地区 不详
投 递 者 尹赞
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

Gleam 是一个高性能和高效的分布式执行系统。纯 Go 编写,可独立运行,也可分布式运行。

高性能

  • 纯 Go 编写的 mapper 和 reducer 具有高性能和并发性

  • LuaJIT 的性能,可与 C,Java,Go 相媲美。 它可流式处理数据,而不用在 Go 和 Lua 之间的上下文切换

  • 数据通过内存时,可选择是否流入磁盘

  • 多个 map/reduce 步骤被合并在一起以获得更好的性能

内存高效

  • Gleam 不会发生常见的 GC 问题。 每个执行器在单独的 OS 进程中运行。 存储器由 OS 管理。 一台机器可以托管多个执行器

  • Gleam 主服务器和代理服务器是内存高效,只消耗大约 10 MB 内存

  • Gleam 尝试根据数据大小提示自动调整所需的内存大小,避免尝试法导致的错误,及手动调整工作

灵活性

  • Gleam 流可以独立运行,也可分布式运行

  • 在记忆模式或 OnDisk 模式下可调

易于定制

  • Go 代码比 Scala,Java,C ++ 更易读

  • 可选的 LuaJIT FFI 库可以轻松调用任何 C 函数,以获得更高的性能或使用任何现有的 C 库

  • (future)使用 Lua 编写的 UDF 编写 SQL

  • github.com/gohouse/gorose          关系数据库gororse不错,性能据说也还不错. github.com/mongodb/mongo-go-driver/mongo    #mongodb数据库  gopkg.in/ldap.v2                                                  #这是一个ldap库 golang

 相关资料
  • 执行任务事件 function onTask(\swoole_server $server, $taskId, $workerId,$callBackObj); 在task_worker进程内被调用,可以用以下方法向task_worker进程投递新的任务 AsyncTaskManager::getInstance()->add(Runner::class); 当前的Task进程在调用onTask回

  • 在这最后一章中,我们将回到:kv应用程序,给它添加一个路由层,使之可以根据桶的名字,在各个节点间分发请求。 路由层会接收一个如下形式的路由表: [{?a..?m, :"foo@computer-name"}, {?n..?z, :"bar@computer-name"}] 路由者(负责转发请求的角色,可能是个节点)将根据桶名字的第一个字节查这个路由表, 然后根据路由表所示将用户对桶的请求发给相应

  • 写了个基于kratos的服务,基本需求是:可以增删管理定时任务(如配置每天、每周发个统计报告),支持分布式结构,持久化任务。加分项包括:注册回调、结果和日志记录、失败重试等。 看kratos已经支持的transport有两个:asynq和machinery,但似乎都不满足需要基本的持久化任务需求,machinery甚至还不能删除已经添加的任务。 考虑到服务可能会重启,那么添加过的任务如何恢复呢?如

  • 我正在使用Eclipse的STS插件创建gradle多项目。我以为我在读完教程后得到了基本的知识,但我无法再现所显示的行为。添加时 对于父项目的build.gradle,我将假设每个项目执行的任务'hello‘。为子项目实际进行了2次,但结果只是: 我的项目树看起来或多或少是这样的:

  • 我正在开发一个Spring集成应用程序。 我有一个入站通道适配器,用于读取目录,然后是一个拆分器,用于将文件拆分为行,最后是一个udp出站通道适配器,用于发送行 我想每秒钟发一封信 我可以通过定义自己的拆分器并在每次读取一行时等待1s来做到这一点,但我想知道是否可以在xml文件中尽可能简单地完成它。 提前谢谢