本文总结了作者和团队的其他同学在全栈化实践中的痛点和问题,分享了自己的解决思路和经验,希望让后人可以更轻松加入全栈化大家庭,走的更快更稳。
ClickHouse是一个开源的OLAP引擎,不仅被全球开发者广泛使用,在字节各个应用场景中也可以看到它的身影。基于高性能、分布式特点,ClickHouse可以满足大规模数据的分析和查询需求,因此字节研发团队以开源ClickHouse为基础,推出火山引擎云原生数据仓库ByteHouse。 在日常工作中,研发人员经常会遇到业务链路过长,导致流程稳定性和数据一致性难保障的问题,这在分布式、跨服务的场景中更为明显。本篇文章提出针对这一问题的解决思路:在火山引擎ByteHouse中构建轻量级流程引擎,来解决数据一致性问题。 使用轻量级流程引擎可以帮我们使用统一的标准来解决复杂业务链路的编排问题,不仅提高业务代码的可读性和复用性,还能更专注业务核心逻辑的开发,让整体流程更加标准化、规范化。 总结来说,使用流程引擎有以下优势: 轻量级,接入方便,内存操作,性能有保障 易维护,流程配置与业务分离,支持热更新 易扩展,丰富的执行策略及算子支持
端外对用户的触达方式是多种多样的,不过对于用户而言, 用户在支付宝内,可以登陆运动小程序选择跑步骑行,也可以在出行中使用乘车码出行码等。对于用户而言,保持手机在 app 应用内部常亮是一件麻烦的事情,息屏后解锁再进入 app 查看同样麻烦。锁屏组件可以做到息屏后锁屏保持展示应用内数据,支持快速滑动删除锁屏组件。 也许这只是一个很简单的能力,但是在支付宝这个国民级 app 面前,一个微小的事情也会变得复杂起来。我们充分考虑了锁屏组件的生命周期感知,多业务注册过程中的优先级,耗电问题,快速接入等问题,为需要的业务方提供一个独立而完备的功能组件。
Stream 是 Redis 5.0 版本专门为消息队列设计的数据类型,借鉴了 Kafka 的 Consume Group 设计思路,提供了消费组概念。 同时提供了消息的持久化和主从复制机制,客户端可以访问任何时刻的数据,并且能记住每一个客户端的访问位置,从而保证消息不丢失。
canal 是阿里知名的开源项目,主要用途是基于 MySQL 数据库增量日志解析,提供增量数据订阅和消费。 这篇文章,我们手把手向同学们展示使用 canal 将 MySQL 增量数据同步到 ES 。