写点什么

低代码平台技术分享官丨日志实时隔离,助力高效发布

  • 2023-07-31
    山东
  • 本文字数:1151 字

    阅读完需:约 4 分钟

随着企业数字化转型的持续深入,低代码开发技术已经成为 IT 领域技术发展的一个主要趋势和热点。浪潮低代码平台 inBuilder 提供全场景开发、全栈建模技术,加速引领企业数字化转型的步伐。本文聚焦 inBuilder 低代码开发过程中的应用发布环节,分享发布过程实时进度提示的技术细节。


你可能好奇,低代码开发中的发布过程是如何运作的,又是如何让开发人员实时感知发布的进度,以及有效隔离其他开发人员的发布日志呢?接下来,让我们一起探索这个神奇的过程。


首先,我们需要收集和存储发布过程中的日志。在 inBuilder 平台中,日志不再直接通过接口返回给前端,而是像邮差一样,根据开发人员的特征信息寻找他们的“信箱”,并将日志准确投递,这样,即使在用户众多的情况下,我们也能确保每一份日志都被准确、有序的存储。为了便于采集及规范发布过程中各模块产生的日志,这里定义了统一、规范的日志采集接口,各模块记录日志时,根据上下文 Session 信息获取用户的特征信息,比如用户编码(用户级别隔离)、用户页面唯一 ID(用户页面级别隔离)等附加到日志中,并通过统一接口写入日志采集系统。日志采集系统并没有直接将日志推送到前端展示,因为后端作为日志消息的生产者,前端作为日志消息的消费者,当后端产生大量的实时日志推送到前端,此时如果前端处理不及时,会造阻塞、丢包等异常现象,为了规避这种问题,需要增加一种中间存储作为日志缓冲,且需要保证日志的产生顺序,而队列的 FIFO 特征正好满足这一需求,最终我们将收集到的日志存储到高性能队列中。


那么,这些日志是如何被分发的呢?答案就是利用了一种叫做 Disruptor 的高性能队列。它就像一个超级快递员,根据日志中的用户特征或页面唯一 ID,将日志快速分发到不同的目的地。Disruptor 队列中被写入日志内容后,就会触发日志事件处理器的 onEvent 行为,在日志事件处理器中,可以根据日志内容灵活处理日志,比如判断日志中包含的节点关键字进行日志分发处理,此处是将日志按照用户页面唯一 ID 分发到了不同的目的地。


接下来,就是前后端之间的实时日志传输,早期的 Web 应用程序实现前后端实时日志传输是通过频繁的异步 Js 和 Ajax 请求实现长轮询,轮询效率非常低,且需要不停的建立连接、释放连接,浪费资源。Websocket 是一种在单个 Tcp 连接上进行全双工通讯的协议,通过后端声明 Websocket 连接点,即可基于 WebSocket 协议进行实时交互信息的目的。


最后,前端通过 JS 与后端建立 Websocket 连接,通过用户特征或用户页面唯一 ID 订阅到对应的消息通道,即可实时查看用户发布日志的最新动态。


浪潮低代码平台 inBuilder 就像是一个神奇的指南针,引领你在低代码开发的海洋里,准确地把握方向,实时掌握动态,从容面对数字化转型的挑战。让我们一起探索这个神奇的世界,解锁低代码开发的无限可能!


inBuilder低代码平台开源社区版,可免费下载、免费使用哦!

用户头像

还未添加个人签名 2023-03-07 加入

塑造企业一体化研发新范式

评论

发布
暂无评论
低代码平台技术分享官丨日志实时隔离,助力高效发布_低代码_inBuilder低代码平台_InfoQ写作社区