自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 资源 (2)
  • 收藏
  • 关注

原创 Golang框架实战-KisFlow流式计算框架(11)-Prometheus Metrics统计

接下来我们根据上述的配置协议,来定义KisFlow的策略配置结构体,并且提供一些响应的初始化方法。我们在项目文档中创建文件,在这里我们将需要的Config定义实现。//kistype Global为kisflow的全局配置//是否启动prometheus监控//是否需要kisflow单独启动端口监听//prometheus取点监听地址// GlobalConfig 默认全局配置,全部均为关闭这里提供了一个全局的GlobalConfig对象,并且是公有变量,方便其他模块共享全局配置。

2024-03-28 10:15:08 302 1

原创 Golang框架实战-KisFlow流式计算框架(10)-Flow多副本

KisFlow如果在执行流体中,需要被多个Goroutine来并发使用,可能需要同一个配置的创建多个Flow来匹配多个并发的计算流,所以Flow需要一个创建副本的能力。中,首先会根据flow的配置信息,重新创建一个KisFlow实例,并且将flow所关联的Params等配置信息一同拷贝,最后通过。会根据一个已有的KisFlow实例,完全克隆一个资源隔离的但是具有相同配置的KisFlow实例。上述代码为了调试,给Flow新增了一个打印全部FuncParams信息的接口。首先,给Flow的抽象层新增一个接口。

2024-03-26 09:39:59 448

原创 Golang框架实战-KisFlow流式计算框架(9)-Cache/Params 数据缓存与数据参数

KisFlow提供了配置文件中,在配置Flow、Function、Connector等的默认携带参数:Params。这里面开发者均可以给定义的模块,提供Params,其中Flow提供的Params也会叠加到Function中去。我们在之前构建Flow模块的时候,已经将这些参数读取进了每个模块的内存中,但是并没有给开发者暴露接口。分别为取出一个key,和取出全部的参数,但都是取出当前正在执行的Function的Params参数。我们可以看到,现在可以正确的取出各个层级的Params的配置参数了。

2024-03-13 09:42:08 852

原创 Golang框架实战-KisFlow流式计算框架(8)-KisFlow Action

首先,先对Flow的Abort()接口做定义。// Run 调度Flow,依次调度Flow中的Function并且执行// Link 将Flow中的Function按照配置文件中的配置进行连接// CommitRow 提交Flow数据到即将执行的Function层// Input 得到flow当前执行Function的输入源数据// GetName 得到Flow的名称// GetThisFunction 得到当前正在执行的Function。

2024-03-11 09:50:46 864 2

原创 Golang框架实战-KisFlow流式计算框架(7)-配置导入与导出

现在每次建立Flow和Function等,都需要一系列繁琐的添加,不是很方便,接下来,我们可以通过批量读写配置文件,构建KisFlow中的结构关系,并且也可以将KisFlow的结构导出到本地文件中。目前我们先用文件的形式做配置的持久化,开发者也可以今后做数据库或者远程配置的持久化均可。这里的Funcs成员,其key的含义,之前我们定义的是KisID,现在要修正为key的含义是FunctionName。同理,Function和Connector的解析办法如下。注意,这里的配置文件路径,写的是绝对路径。

2024-03-07 10:35:46 813

原创 Golang框架实战-KisFlow流式计算框架(6)-Connector

KisFlow中提供Connector,来给开发者定义第三方存储引擎的自定义读写插件模式。如果数据流的数据需要临时从某引擎去读或者需要存储到某个存储引擎中,可以通过Connector来编写相对应的读写逻辑,并且通过配置,自定义挂载在Flow中的某个Function中。Connector也是灵活配置的。这样具有相同逻辑的存储算法可以在多个Function中进行复用。在创建文件,这里用来定义Connector的抽象接口,如下:import ("context"

2024-03-06 13:35:45 880

原创 Golang框架实战-KisFlow流式计算框架(5)-Function调度

创建文件,来创建kis_pool模块。import ("context""errors""fmt""sync"// kisPool 用于管理全部的Function和Flow配置的池子fnRouter funcRouter // 全部的Function管理路由fnLock sync.RWMutex // fnRouter 锁flowRouter flowRouter // 全部的flow对象flowLock sync.RWMutex // flowRouter 锁// 单例。

2024-03-04 10:37:39 841

原创 Golang框架实战-KisFlow流式计算框架(4)-数据流

KisFlow中可以传递任意类型数据作为Flow的数据源。而且KisFlow支持批量数据的流逝计算处理。首先需要对KisFlow中内部支持的数据类型做一个基本的定义,我们将这部分的定义代码写在中的文件中。package common // KisRow 一行数据 type KisRow interface {} // KisRowArr 一次业务的批量数据 type KisRowArr [ ] KisRow /*KisDataMap 当前Flow承载的全部数据,

2024-02-28 09:54:31 370

原创 Golang框架实战-KisFlow流式计算框架(3)-项目构建/基础模块-(下)

在kis-flow中创建一个新的目录function用来存放function的代码。首先抽象接口编写在kis/目录下。import ("context"// Function 流式计算基础计算模块,KisFunction是一条流式计算的基本计算逻辑单元,// 任意个KisFunction可以组合成一个KisFlow// Call 执行流式计算逻辑// SetConfig 给当前Function实例配置策略// GetConfig 获取当前Function实例配置策略。

2024-02-26 10:00:05 374

原创 Golang框架实战-KisFlow流式计算框架(2)-项目构建/基础模块-(上)

fname: 测试KisFunction_S1source:name: 被校验的测试数据源1-用户订单维度must:- userid- orderidoption:cname: 测试KisConnector_1参数说明:接下来我们根据上述的配置协议,来定义KisFunction的策略配置结构体,并且提供一些响应的初始化方法。我们在项目文档中创建文件,在这里我们将需要的Config定义实现。import (// FParam 在当前Flow中Function定制固定配置参数类型。

2024-02-23 17:10:58 907

原创 Golang框架实战-KisFlow流式计算框架(1)-概述

本人亲身经历过一个大规模的系统,多达上千个需要计算的业务数据字段,而早期因为没有规划好,最后导致存在1000+的脚本在定时跑,最后导致了脚本之间对数据的影响,数据始终无法准确,导致业务数据经常性的报数据问题错误。如下面一个场景:某个业务计算字段的值,正确为100,错误为99, 但是由于历史代码的臃肿,会有多个计算脚本对其值做修复补丁计算,会有各个脚本相互冲突,在一定的时间间隔内会存在数据值抖动,可能最终一个补丁修复正确,但是这种情况就会存在一定时间范围内业务数据不正确,最终却奇迹正确的情况,很让用户苦恼。

2024-02-22 15:48:55 838

原创 【视频版】《Easy搞定Golang设计模式》

如果你想很容的通过Go语言掌握设计模式

2022-10-08 15:57:47 851 1

Zinx--Golang轻量级并发服务器框架

我们为什么要做Zinx,Golang目前在服务器的应用框架很多,但是应用在游戏领域或者其他长链接的领域的轻量级企业框架甚少。 ​ 设计Zinx的目的是我们可以通过Zinx框架来了解基于Golang编写一个TCP服务器的整体轮廓,让更多的Golang爱好者能深入浅出的去学习和认识这个领域。 ​ Zinx框架的项目制作采用编码和学习教程同步进行,将开发的全部递进和迭代思维带入教程中,而不是一下子给大家一个非常完整的框架去学习,让很多人一头雾水,不知道该如何学起。 ​ 教程会一个版本一个版本迭代,每个版本的添加功能都是微小的,让一个服务框架小白,循序渐进的曲线方式了解服务器框架的领域。 ​ 当然,最后希望Zinx会有更多的人加入,给我们提出宝贵的意见,让Zinx成为真正的解决企业的服务器框架!在此感谢您的关注!

2019-03-18

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除