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

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

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

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

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

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

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

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值