广告业务系统 之 框架沉淀 —— “数据消费型服务框架”

广告业务系统 之 框架沉淀 —— “数据消费型服务框架”

数据消费型服务统一框架

由于 ADX 系统中,大量数据以流式涌动,整个链路中出现了 “多处流转都需要以消费中间件数据的模式完成“ 的奇观。为了提升代码的复用性、及可扩展性,我们将 ”数据消费“ 逻辑做抽象隔离成统一框架,业务逻辑以 “组件” 的形式进行嵌入。

在具体的实现中,需要用到的就是 Goland 中的 Plugin 功能。

主流程

我们将消费中间件数据的逻辑 确认后,在处理数据的时候,以 抽象函数做接口 实现。

在这里插入图片描述
如图,我们把消费数据放置于 channel 中,在 抽象函数 Deal() 中做数据处理。各个业务服务只需实现 Deal() 函数 以组件形式构建就可以直接复用 公共库A’ 。

Plugin 构建

在业务服务 A\B\C 中,我们需要实现对应的 处理函数 Deal()。

在这里插入图片描述
在 服务 A 中,除了 消费处理 Deal () 外,还可以覆盖实现 主流程中的 Init() 函数,做一切附带的其他功能实现。

#!/bin/bash

# build
export GOPROXY=https://goproxy.cn,direct
export GONOPROXY=*XXXX*
export GOINSECURE=*XXXX*

mkdir -p target/bin

git config --global url."ssh://git@XXXX:PPPP".insteadOf "https://XXXX"
GOBIN=`pwd`/bin go install XXXX/A'
mv bin/A' bin/A'_consumer

go build -buildmode=plugin -o bin/A.so  ./main
if [[ $? -eq 0 ]]; then
    echo "succeed to build."
else
    echo "fail to build!!!"
fi

实际构建中,我们将 公共库A’ 进行构建后,在把 业务A 以组件模式进行构建。这时构建路径中会存在两个文件,一个为 公共库A’ 的编译文件,一个以 .so 结尾的组件文件。

此时,执行 主流程/公共库A’ 的启动命令即可。

在 ADX 系统中,涵盖多条数据链路,且流转经历的微服务繁多。总结归类,在最大程度提升服务的可维护性,健壮性的同时,降低人智、资源成本 也是我们追寻的目标之一。


见后续文章!

推荐阅读:
暨 广告、推荐、搜索 三大顶级复杂业务之 “广告业务系统详叙”
广告业务系统 之 承前启后 —— “消息中心”
广告业务系统 之 数据中转站 —— “日志中心-实时服务监控”
广告业务系统 之 数据桥梁 —— “日志中心-曝光数据流转结算”
广告业务系统 之 核心通道 —— “日志中心-s2s监测上报”
广告业务系统 之 辅助决策 —— “ AB 实验平台”
广告业务系统 之 框架沉淀 —— “数据消费型服务框架”
广告业务系统 之 智能保险丝 —— “智能流控”
广告业务系统 之 敏捷交付 —— “基于 Docker 容器同机部署”
广告业务系统 之 业务串联 —— “ PDB - 广告投放【保量保价】”


三行代码搞定 —— 反转链表…
Kafka 高吞吐、高性能核心技术及最佳应用场景…
HTTPS 如何保证数据传输安全 —— TLS 协议…
五分钟搭建基于 Prometheus + Grafana 实时监控系统…

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

魏小言

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值