彻底抛弃模板消息!拥抱一个更优秀的订阅消息吧!

**小程序支持订阅消息:**打破小程序对模版消息的限制,让商家与用户更加灵活的互动。通过用户的授权或者主动发起订阅,商家可以根据时间规律或者业务节点规律为用户订阅消息提醒,帮助商家唤醒用户提高转化和粘性,也为用户提供更好的使用体验。

传统推送模式

以往/目前的小程序,向用户推送消息,需要采用一个比较麻烦的能力:模板消息
具体步骤如下:

  1. 小程序前端代码,采用表单或者支付功能,获取到用户的推送码
  2. 小程序后端需要获取access_token,并维持其有效性
  3. 后端通过用户openId和上边推送码,结合小程序模板id+access_token,请求给微信推送API接口,完成一次推送流程

说起来挺简单的,但操作起来却很浪费时间和精力。
所以后来,就有了一些推送平台的出现。

比如我们的古人云小程序推送平台(https://mssnn.cn),能更简单地辅助开发者集成模板推送功能。

但是呢,这个模板消息,也是有弊端的:

  1. 需要用户主动触发
  2. 有时效性,7天内用户如果无触发操作,则无法向该用户推送消息了

小程序模板消息

什么是订阅消息

为了解决上边的弊端问题,微信又推出了一种更高效的推送方式:订阅消息推送。

简单的说,就是只需用户点击一次推送授权(类似获取头像等授权)之后,开发者就可以不需要经过其他如收集推送码等操作,在任意时间(大概是这样,没有时间限制)都可以向该用户下发小程序卡片消息

当然,也是会有限制的,比如不能频繁下发等。

这个非常棒的能力,目前仍在内测中,我们也暂时无法获知已经使用上线的案例。除了官方的小程序示例。

功能实现探索

经过一番资料搜索整理,包括官方的开发文档,都未找到相关的资料。
那么,该功能是如何实现的呢?
我们深入研究了官方的小程序示例源码。

该小程序是开源的,项目地址是:
https://github.com/wechat-miniprogram/miniprogram-demo

通过对订阅消息页面的代码整理,我们发现了关键点:

首先,是采用open-type为subscribe的button组件,来获取用户的授权

然后,我们追踪一下具体的推送函数dosendmsg:

subscribeMessageUrl变量在config.js配置文件中:

所以。。其实。。

我们也获取不到后端的具体实现代码了
但我们终究还是明白了前端是如何实现的这个订阅消息功能,这对广大开发者来说都是一件值得关注的好事!

我们将会持续关注该能力,争取第一时间为大家提供具体的消息!

### 如何在Kafka中配置消息超时并丢弃过期消息 在Apache Kafka中,可以通过设置`log.retention.*`参数来管理日志文件的清理行为。这些参数决定了消息在主题分区的日志中保留的时间长度或大小限制。如果超过设定条件,则消息会被标记为可删除,并由Kafka定期清理。 #### 日志保留时间配置 通过调整`log.retention.hours`、`log.retention.minutes`或者`log.retention.ms`可以指定消息的最大存活时间。例如: ```properties log.retention.hours=24 ``` 上述配置表示所有存储在这个主题下的消息将在24小时之后被自动清除[^1]。需要注意的是,默认情况下该属性适用于整个Broker级别;然而也可以针对特定的主题单独定义其保留策略。 另外还有一种基于字节数量的方式来进行控制——即当达到一定体积后便开始移除旧记录直到满足新的空间需求为止。这需要用到如下几个选项之一: - `log.segment.bytes`: 单个segment文件最大尺寸. - `log.roll.ms`: 创建新segment之前等待毫秒数. 一旦启用了分片机制(`log.cleanup.policy=compact,delete`) ,那么即使设置了较短的有效期限也可能不会立即生效,因为Compact操作本身存在延迟特性[^2]. 对于消费者端而言,在面对大量突发流量可能导致处理不过来的状况下(如每秒钟生产五万笔订单),应当考虑增加Consumer实例数量形成集群共同承担负载压力的同时优化单线程内的解析效率至低于平均耗时两百毫秒之下才能有效缓解积压现象的发生概率[^3]. 最后值得注意的一点是除了官方文档外还有很多第三方库可以帮助我们便捷地完成诸如过滤等功能开发工作[^4],但在实际应用过程中仍需依据具体业务逻辑做出相应修改适配最佳实践方案. ```bash cd /export/servers/kafka_2.11-1.0.0 bin/kafka-configs.sh --zookeeper node01:2181,node02:2181,node03:2181 --alter --add-config retention.ms=86400000 --entity-type topics --entity-name itcast_order ``` 以上命令展示了如何改名为itcast_order 的Topic上的retention时间为一天 (以毫秒计) 。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值