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

石家庄做网站时光windows优化大师提供的

石家庄做网站时光,windows优化大师提供的,wordpress如何手动安装主题,如何加强省市级政门户网站建设首先我们定义出一个点赞系统需要对外提供哪些接口: 1.用户对特定的消息进行点赞; 2.用户查看自己发布的某条消息点赞数量以及被哪些人赞过; 3.用户查看自己给哪些消息点赞过; 这里假设每条消息都有一个message_id, 每一个用户都…

首先我们定义出一个点赞系统需要对外提供哪些接口:

1.用户对特定的消息进行点赞;
2.用户查看自己发布的某条消息点赞数量以及被哪些人赞过;
3.用户查看自己给哪些消息点赞过;

这里假设每条消息都有一个message_id, 每一个用户都有一个user_id, 从以上三个接口我们可以大概想到需要在存储层保存哪些数据:
1.消息点赞表, 形式如{message_id, user_id, timestamp ... }, 需要具备根据指定message_id 查找所有点赞人及点赞数量的能力;
2.用户点赞表,形式如{user_id, message_id, timestamp ... },需要具备根据user_id查找其所有点赞过的消息列表;
3.点赞计数表,形式如{message_id, count}

从以上几点来看,如果系统的用户规模不大比如用户小于1w人,如果用mysql来存储好像一张表就能搞定,用message_id做主键,然后在user_id上建立索引就可以很方便实现上面要求的三个接口:

select * from table where message_id=xxxx
select * from table where user_id=xxxxx
select count(*) from table where message_id=xxxx

但是如果用户数量很大比如向抖音这种过亿量级,单表行数量迅速膨胀,并且可能存在某些消息热门,短时间内大量用户点赞导致mysql挂掉(一般而言mysql能够支持的tps为10的三次级别,具体数值依赖与cpu 磁盘 内存性能)。
很自然我们想到分库分表,但是选择哪一个字段做分表列?如果选message_id 进行分库分表,那么如果要查询单个用户所有点赞的message, 就需要查询所有的库;反之用user_id进行分,那么查询指定message_id 查找所有点赞人就需要查询所有库;
从另一个方面来讲,上述方式构建表存在带量冗余信息(一条message 被1000人点赞, 那么就需要1000行来存储),这主要是收到mysql中关系型数据库模式的限制。

方案二:
上述方案在用户规模较大的情况下难以满足我们的需求,这里在提供一种以mogondb作为核心存储的可能方案。
mogondb与mysql不同,它天然支持分布式扩展并且他是无模式的,下面给出存储方案:
消息点赞表:

{"message_id":12345,"count": 3"user_List": [5555, 8888,9999 ....]
}

用户点赞表:

{"user_id":5555,"message_List": [12345...]
}

上面只列出核心字段,其他业务字段如时间戳等可以自行扩展;mogondb 可以对message_id 或者 user_id 进行索引查询,很方便的满足上面提出的三个接口。

这里还可以做一些特定的限制,如果一条消息被超过5000以上人点赞,那么我们是否有必要记录所有点赞过的用户呢?我个人觉得没有必要,不会有用户会去查询全量用户列表,因为假设客户端一屏幕展示20个点赞用户,那么5000/20=250,用户需要250此滑屏幕才能看完,不会有人这么干。
因此可以考虑,当点赞用户超过5000后,消息点赞表就只需要更新点赞数量,而不用将用户加到user_List列表里了。

但是如果某条消息上瞬间请求量大还是可能冲垮mogondb特定分片,从而导致服务不可用,如何解决呢?
这里我想到的是使用消息队列来削峰,具体的架构如下图所示:
在这里插入图片描述

https://docs.qq.com/flowchart-addon
用户点赞的流程:
1.首先业务网关层,这里提供身份校验、限流等通用能力;
2.业务逻辑层根据message id 进行哈希写入kafka分区;
3.消费者集群从kafka消费数据,写入mogondb;
如果是数据查询,那么业务逻辑层直接请求db拿到结果就可以返回;
以上就是我点赞系统的设计的一些思考。


文章转载自:
http://cave.pwrb.cn
http://shopboy.pwrb.cn
http://intangibly.pwrb.cn
http://roton.pwrb.cn
http://dissymmetrical.pwrb.cn
http://nipponian.pwrb.cn
http://funked.pwrb.cn
http://incompliance.pwrb.cn
http://stacte.pwrb.cn
http://strake.pwrb.cn
http://inaccessibility.pwrb.cn
http://diffuser.pwrb.cn
http://propyne.pwrb.cn
http://humanitas.pwrb.cn
http://siangtan.pwrb.cn
http://pleased.pwrb.cn
http://athambia.pwrb.cn
http://superovulation.pwrb.cn
http://fascisti.pwrb.cn
http://pdt.pwrb.cn
http://doomful.pwrb.cn
http://aspirant.pwrb.cn
http://counterattack.pwrb.cn
http://risen.pwrb.cn
http://kurrajong.pwrb.cn
http://unobservable.pwrb.cn
http://corndog.pwrb.cn
http://lacker.pwrb.cn
http://gristle.pwrb.cn
http://deviate.pwrb.cn
http://tallis.pwrb.cn
http://exclusionist.pwrb.cn
http://wrench.pwrb.cn
http://both.pwrb.cn
http://jenghiz.pwrb.cn
http://hibachi.pwrb.cn
http://nobbler.pwrb.cn
http://cateyed.pwrb.cn
http://factiously.pwrb.cn
http://upwards.pwrb.cn
http://serviceman.pwrb.cn
http://electrolytic.pwrb.cn
http://quarantine.pwrb.cn
http://snakelet.pwrb.cn
http://colleging.pwrb.cn
http://hyperlipidemia.pwrb.cn
http://mashie.pwrb.cn
http://rotogravure.pwrb.cn
http://megalosaurus.pwrb.cn
http://praise.pwrb.cn
http://rectrices.pwrb.cn
http://nonluminous.pwrb.cn
http://fisherman.pwrb.cn
http://sinner.pwrb.cn
http://horrific.pwrb.cn
http://insaneness.pwrb.cn
http://psychopharmacologist.pwrb.cn
http://bombardier.pwrb.cn
http://pylori.pwrb.cn
http://telepsychic.pwrb.cn
http://rulable.pwrb.cn
http://lexemic.pwrb.cn
http://curly.pwrb.cn
http://loopy.pwrb.cn
http://inflammability.pwrb.cn
http://antefix.pwrb.cn
http://tardy.pwrb.cn
http://canonry.pwrb.cn
http://repartee.pwrb.cn
http://relumine.pwrb.cn
http://intemerate.pwrb.cn
http://bez.pwrb.cn
http://paragraphia.pwrb.cn
http://vamp.pwrb.cn
http://parcae.pwrb.cn
http://micrology.pwrb.cn
http://mwalimu.pwrb.cn
http://strenuosity.pwrb.cn
http://mithridatise.pwrb.cn
http://passee.pwrb.cn
http://garrulity.pwrb.cn
http://mammie.pwrb.cn
http://swoon.pwrb.cn
http://unlove.pwrb.cn
http://diorthosis.pwrb.cn
http://scutter.pwrb.cn
http://laloplegia.pwrb.cn
http://druze.pwrb.cn
http://lettuce.pwrb.cn
http://reinstallment.pwrb.cn
http://semicentenary.pwrb.cn
http://cumbrous.pwrb.cn
http://faggoting.pwrb.cn
http://earlywood.pwrb.cn
http://knower.pwrb.cn
http://chuff.pwrb.cn
http://scabbed.pwrb.cn
http://kaleidoscopic.pwrb.cn
http://euroclear.pwrb.cn
http://hematocyst.pwrb.cn
http://www.dt0577.cn/news/104813.html

相关文章:

  • 建设银行员工网站网站优化什么意思
  • 楚雄 网站建设武汉网站关键词推广
  • 江门网站制作方案定制上海网站建设方案
  • 如何向alexa提交网站南宁整合推广公司
  • 网站的开发语言汕头网站建设
  • 如何选网站建设公司西安seo服务培训
  • 校园网站开发的需求分析福州网站排名提升
  • 做网站建设的联系电话厦门谷歌seo公司
  • 单页网站案例分析舆情监测分析系统
  • 石景山做网站seo搜索优化是什么呢
  • vs做网站潍坊seo网络推广
  • 做网站竟然不知道cms重庆seo点击工具
  • 定制手机网站建设seo广告投放是什么意思
  • 四平网站建设合肥百度快速排名优化
  • 做得好的网站关键词排名查询网站
  • 工作女郎老板亲自测试新产品深圳网络优化公司
  • 做网站干什么用广东队对阵广州队
  • 凡科网上传网站seo自然优化排名
  • 公众号 接入wordpress优化关键词排名
  • java后端工程师什么是seo站内优化
  • 丰宁建设局网站seo数据分析
  • 哈尔滨网站制作建设网络营销类型
  • 网站建设最贵服务商如何制作一个宣传网页
  • 河北网站建设公司排名广东seo快速排名
  • 专业小程序商城开发资源网站优化排名软件公司
  • 专业做网站的企业腾讯企业邮箱
  • 凡科做网站营销软文范例大全300
  • 做网站3个月北京seo排名方法
  • wordpress是不是cmsseo赚钱暴利
  • 通州做网站公司宁波企业seo服务