如何更加高效的开发微信公众

在谈更高性能的微信公众平台接口开发之前,我们先了解下微信开发的基础。微信公众平台官网的解释是:公众平台开发接口提供与用户进行消息交互、自定义菜单交互的能力。对于已接入的第三方接口,当用户发送消息时,微信会推送至第三方服务器。以上就是微信公众平台的开发流程,很多人因不明白而使开发受阻。


用户主动发送的消息分成普通消息、事件消息、语音识别结果。普通消息包含文本、图片、语音、视频、位置、链接等多维度消息,也是开发者们最常用的。事件消息包含关注、取消关注、扫描二维码参数、上报地理位置、自定义菜单(点击、跳转)监控等。整个消息按标准XML格式进行传递,所以开发人员可以用任何语言进行代码开发。在大型项目中会涉及转发处理。消息处理主要指的是被动接收,以及靠高级接口进行主动发送、高级群发等。针对这块,不久前微信已推出了模板消息功能。微信在消息处理上的形态已基本形成。



用户处理可以根据OpenID获取用户信息,通过Auth接口进行网页授权,只要在微信浏览器中即可获得用户信息,朋友圈分享的一些功能开发主要依赖此接口。消息对开发人员来说就是指令和关键词,程序主要用于处理各种指令,并返回对应的数据,该逻辑使微信开发更加简单,准入门槛更低。微信的发展也带来了大量的数据存储及数据交互,特别是对于拥有很多商户的开发商来说。



数据存储与快速查询



微信交互完全靠OpenID来进行用户识别,在标准XML中(FromUserName),建议开发者在数据库中建立一个与OpenID对应的表,该表只做关系处理,粉丝相关的数据则使用单独的表去存储。粉丝表的操作非常多,用户关注时要插入,取消关注时要删除。



在一些现场活动中遇到大量用户加入时,如果没有经过优化,服务器基本会崩溃,此时要用数据库分表解决方案。拿MySQL来说,一般建议一张表存储500万数据(多用户系统),否则高并发情况下数据库压力会非常大。另外,比较重要的就是微信交互数据,微信公众平台服务器只提供5天的用户交互信息供运营者查询。



微信在做架构时已意识到这一点,该项不能一直存储供用户查询,否则服务器架构扛不住。从我们公司的角度来看,一个公众号平均有1000个粉丝; 万个公众号,6000万粉丝,每天10%的用户会发送至少一条消息。也就是说,有600万的消息存储量,微信580万公众号的数据压力可想而知。即便如此,对于我们这样的商业公司来说,再大的数据量也要存储,因为我们需要更多的用户数据为商家的发展提供数据分析和数据模型。现阶段我们的处理方案是:近期数据实时查询 、历史数据异步查询 、数据库采用分布式。



近期数据实时查询



将1~2个月的数据存储在实时数据库中,提供分布式解决方案,保证插入、查询的性能。



历史数据异步查询



暂时将数据从热点数据库转移到专门的数据分析服务器,只用来提供查询服务,可借助一些搜索查询,利用数据分析软件进行提炼与大数据挖掘。



数据库分布式



预估数据量比较大的内容,采用分布式存储,保证数据库的高性能服务。



实例解析



“分享有礼”是我们公司2014年七夕节上线的一个项目,上线两天,PV数就达到了200万,成功领取盒子的用户达20万人。该项目源于BMW的“分享至朋友圈,求助好友帮助领取奖品”的活动。技术评审时我们就意识到这是一个疯狂的项目。我们将面临Web、DB、带宽三项挑战,并且还要与微信服务器进行大量交互。



先说微信交互层面,朋友圈分享不需要用户进行关注,也不会产生用户信息交互,比较简单。但其业务逻辑中有个比较可怕的地方,即已领过盒子的用户,在第二次进入时要记录该用户已领取过盒子,同时用户打开朋友圈(朋友分享的链接),点击协助后也要对此进行记录。微信高级接口中有个Auth接口(Scope为snsapi_base),无须用户授权就可以获取用户OpenID。借此我们的解决方案是用户每打开一次,我们就去请求一次微信服务器。然而,这个解决方案带来的潜在风险很大。压力测试过程中,基本上2000并发压力就很大了,我们通过以下方法解决了该问题。



access_token进行了缓存存储,这可以减少一次服务器交互。

用户OpenID存储在浏览器Cookie中。程序先判断浏览器Cookie,Cookie中有就不请求,这减少了用户二次打开时的请求量。

用户数据存储的表加上了Memcached这种缓存中间件。



微信浏览器优化方案



在微信公众平台开发中,对微信浏览器的了解很重要。微信浏览器跟普通浏览器没什么区别,只是微信在其中做了一定的修改。当一个产品流量比较大时,上述架构会解决微信服务器交互的压力。所存在的带宽压力、Web压力还是需要靠Web开发技术来解决,手机浏览器每一个请求都要耗费流量。2G网络的用户也很多,所以该项是微信开发非常重要的一点。下面是一些优化小技巧。



图片Sprite把常用的小图片合并成为一张大图,减轻多次请求造成的流量浪费。

CSS、JS合并压缩推荐Google的工具Minify。

纯CSS、JS压缩推荐Apache自带的Gzip模块。



所以在进行微信开发时,用户较多的情况下,瞬间并发压力会比较大。不过作为开发人员,一定要预估好自己的产品以后的用户量和数据量。保证产品稳定、有效地运行。

返回观点列表
本文标签:

相关专题

  • 电商/商城开发
    电商/商城开发

    杭州派迪科技为高端客户提供商城开发建设咨询策划,商城官网设计,商城建设开发服务,以国际化视野和标准为基础,为各行业领军品牌提供高端商城开发定制、策划、设计、互动与制作

    查看详情
  • 微信公众号开发
    微信公众号开发

    杭州派迪科技微信公众号开发,为全国企业提供微信公众号商城、H5、功能系统开发,如您需要找专业的公众号开发团队,委托第三方公司开发公众号菜单及网页内容请联系派迪科技

    查看详情
  • 小程序开发
    小程序开发

    杭州派迪科技专业小程序开发,为企业提供微信小程序开发,包括小程序商城、小程序应用及其他平台,可根据客户需求进行定制开发,提供源代码,可二次开发,可申请软件著作权,欢迎咨询。我们以用户为中心的程序功能丰富、直观且性能极佳。我们以清晰的业务目标视图制作您的项目目的地,并确保它支持用户访问体验。可在跨设备上产生无缝的全渠道体验,应用程序具有丰富的 UI/UX、规范化的数据库和强大的框架,可提供更好性能。

    查看详情
  • 在线教育
  • APP/应用平台开发
    APP/应用平台开发

    杭州派迪科技专业的app开发平台,9年开发经验,专注app开发、app软件开发、手机app制作为教育行业、检修行业、商城电商系统等APP提供过全程策划及开发

    查看详情

体验从沟通开始,让我们聆听您的需求!

开始您的数字化品牌体验! 15158117070 期待您的来电!

[ 网站建设×品牌官网设计×大策略营销门户×微信小程序开发×微信公众号开发]

派迪业务总监微信号

派迪业务总监微信号

了解最新项目报价

派迪产品经理微信号

派迪产品经理微信号

免费获取项目策划

我们正使用 cookies 来改善您的访问体验

派迪科技非常重视您的个人隐私,当您访问我们的网站www.hzpady.com时,请同意使用所有cookies 。

如果您想详细了解我们如何使用cookies请访问我们的 《隐私政策》

Cookie 偏好

如果您想详细了解我们如何使用cookie请访问我们的 《隐私政策》

管理cookie偏好

基本 cookies

始终允许

这些 cookies 是网站运行所必需的,不能在我们的系统中关闭。它们通常仅针对您所做的相当于服务请求的操作而设置,例如设置您的隐私首选项、登录或填写表格。您可以将浏览器设置为阻止或提醒您有关这些 cookies 的信息,但网站的某些部分将无法运行。这些 cookies 不存储任何个人身份信息。

性能 cookies

始终允许
这些 cookies 使我们能够计算访问量和流量来源,以便我们可以衡量和改进我们网站的性能。它们帮助我们了解哪些页面受欢迎和不受欢迎,并了解访问者如何在网站上移动。这些 cookies 收集的所有信息都是汇总的,而且是匿名的。如果您不允许这些 cookies,我们将不知道您何时访问了我们的网站,也无法监控其性能。

功能性 cookies

这些 cookies 收集信息用于分析和个性化您的定向广告体验。您可以使用此拨动开关来行使选择不获取个人信息的权利。如果您选择关闭,我们将无法向您提供个性化广告,也不会将您的个人信息交给任何第三方。

定位 Cookies

这些 cookies 可能由我们的广告合作伙伴通过我们的网站设置。这些公司可能会使用它们来建立您的兴趣档案,并在其他网站上向您展示相关广告。它们不直接存储个人信息,而是基于唯一标识您的浏览器和互联网设备。如果您不允许使用这些 cookie,您将体验到较少针对性的广告。

我们正使用 cookies 来改善您的访问体验

派迪科技非常重视您的个人隐私,当您访问我们的网站www.hzpady.com时,请同意使用所有cookies 。

如果您想详细了解我们如何使用cookies请访问我们的 《隐私政策》