当前位置: 首页 > news >正文

网站建设专员求职简历搜索引擎营销的基本方法

网站建设专员求职简历,搜索引擎营销的基本方法,引流用的电影网站怎么做,网站域名注册流程大部分做后端开发的朋友,都在开发接口。客户端或浏览器h5通过HTTP请求到我们后端的Controller接口,后端查数据库等返回JSON给客户端。大家都知道,HTTP协议有短连接、无状态、三次握手四次挥手等特点。而像游戏、实时通信等业务反而很不适合用…

大部分做后端开发的朋友,都在开发接口。客户端或浏览器h5通过HTTP请求到我们后端的Controller接口,后端查数据库等返回JSON给客户端。大家都知道,HTTP协议有短连接、无状态、三次握手四次挥手等特点。而像游戏、实时通信等业务反而很不适合用HTTP协议。

 

原因如下:

    1)HTTP达不到实时通信的效果,可以用客户端轮询但是太浪费资源;2)三次握手四次挥手有严重的性能问题;3)无状态。

比如说,两个用户通过App聊天,一方发出去的消息,对方要实时感知到消息的到来。两个人或多个人玩游戏,玩家要实时看到对方的状态,这些场景用HTTP根本不可能实现!因为HTTP只能pull(即“拉”),而聊天、游戏业务需要push(即“推”)。

随着业务蓬勃发展,用户的不断增多,用户创建的群、加入的群和好友不断增多和聊天活跃度的上升,某些用户不在线期间,产生大量的离线消息(尤其是针对群聊,离线消息特别多)。

等下次客户端上线时,服务端会给客户端强推全部的离线消息,导致客户端卡死在登录后的首页。并且产品提出的需求,要扩大群成员的人数(由之前的百人群扩展到千人群、万人群等)。

这样一来,某些客户端登录后必定会因为大量离线消息而卡死,用户体验极为不好。

 

和客户端的同事一起分析了一下原因:

    1)用户登录,服务端通过循环分批下发所有离线消息,数据量较大;2)客户端登录后进入首页,需要加载的数据不光有离线消息,还有其他初始化数据;3)不同价位的客户端处理数据能力有限,处理聊天消息时,需要把消息存储到本地数据库,并且刷新UI界面,回复给服务端ack消息,整个过程很耗性能。

客户端登录卡顿的主要原因是,服务端会强推大量离线消息给客户端,客户端收到离线消息后会回复服务端ack,然后将消息存储到本地数据库、刷新UI等。客户端反馈,即使客户端采用异步方式也会有比较严重的性能问题。即时通讯聊天软件app开发可以加小蓝豆的v:weikeyun24咨询

为什么客户端收到消息后还没有将数据存储到数据库就回复给服务端ack?很有可能存储失败,这本身不合理,这是其一。其二,服务端强推导致客户端卡死,不关心客户端的处理能力,不合理。

int max = 100;
//从新库读
while(max > 0) {
List<OfflineMsgInfo> offlineMsgListNew = shardChatOfflineMsgDao.getByToUid(uid, 20);
if(CollectionUtils.isEmpty(offlineMsgListNew)) {
break;
}
handleOfflineMsg(uid, offlineMsgListNew, checkOnlineWhenSendingOfflineMsg);
max--;
}

既然强推不合理,我们可以换一种方式,根据客户端不同机型的处理能力的不同,服务端采用不同的速度下发。

我们可以把整个过程当成一种生产者消费者模型,服务端是消息生产者,客户端是消息消费者。客户端收到消息,将消息存储在本地数据库,刷新UI界面后,再向服务端发送ack消息,服务端收到客户端的ack消息后,再推送下一批消息。

这么一来,消息下发速度完全根据客户端的处理能力,分批下发。但这种方式仍然属于推方式。

然而,理想很丰满,现实却很骨感。

针对这个方案,客户端提出一些问题:

    1)虽然这种方案,客户端不会卡死,但是如果当前用户的离线消息特别多,那么收到所有离线消息的时间会非常长;2)客户端每次收到消息后会刷新界面,很有可能客户端会发生,界面上下乱跳的画面。

最后,我们也对消息ack的逻辑进行了优化。

优化前:服务端采用push模型给客户端推消息,不论是在线消息还是离线消息,ack的逻辑都一样,其中还用到了kafka、redis等中间件,流程很复杂(我在这里就不详细展开介绍ack的具体流程了,反正不合理)。

离线消息和在线消息不同的是,我们不存储在线消息,而离线消息会有一个单独的库存储。完全没必要用在线消息的ack逻辑去处理离线消息,反而很不合理,不仅流程上有问题,也浪费kafka、redis等中间件性能。

优化后:我们和客户端决定在每次下拉加载离线消息时,将收到的上一批离线消息的msgId或消息偏移量等信息发送给服务端,服务端直接根据msgId删除离线库中已经发送给客户端的离线消息,再返回给客户端下一批离线消息。

另外:我们还增加了消息漫游功能,用户切换手机登录后仍然可以查到历史消息,这部分内容我就不展开详细介绍给大家了。

http://www.khdw.cn/news/23971.html

相关文章:

  • 网站建设推广人员免费永久个人域名注册
  • 营销型网站的设计步骤链接交换公司
  • 盐城网站开发代理咨询有哪些搜索引擎网站
  • 网站设计用的技术公司网站优化
  • 自助建站网站的宣传手册在线咨询 1 网站宣传
  • 上海海宏建设集团网站百度云搜索引擎
  • 郑州便宜网站建设报价短视频如何引流与推广
  • 南昌医院网站建设中山口碑seo推广
  • 证明做二维码打款网站链接网站推广方法
  • 网站建设财务策划书东莞关键词优化平台
  • 公司网站建设怎么做十大seo免费软件
  • 企业管理咨询顾问优化设计电子版
  • 永久免费个人网站网络营销教学大纲
  • 微信浏览的网站怎么做一键复制白云百度seo公司
  • 网站建设 推广杭州优化排名哪家好
  • 做nba直播网站好seo长尾快速排名
  • 深圳网站制作建设2021国内最好用免费建站系统
  • 奉贤网站开发百度推广seo怎么学
  • 查做外贸客户的网站百度app推广
  • 虎门仿做网站百度上搜索关键词如何在首页
  • 南通动态网站建设做个小程序需要花多少钱
  • php可以做视频网站自动收录
  • 恩施网站制作公司成人用品推广网页
  • 备案网站ip英文seo
  • 怎么做网站自动采集数据贵州快速整站优化
  • 企业网络营销策划方案范文上海全国关键词排名优化
  • jquery win8风格企业网站模板亚马逊关键词排名查询工具
  • 音乐网站开发结语黑马培训机构可靠吗
  • 白羊影院windows优化大师好用吗
  • 网站的title必应搜索引擎国际版