站内信功能 java_站内信功能
1. 方案描述
该方案用于系统站内信功能模块在百万级用户量情况下的效率问题,只是后台管理员给前台用户发送站内信,用户与用户之间的发送不在讨论内。
2. 方案详情
假设系统的用户量达到了200W,活跃用户为10W,系统后台管理员要给全体用户发送一条感谢信,如果按照之前的存储方式,消息队列需要插入200W条数据,可是除了活跃的10W用户,其他用户都忘了自己有该网站的账号,他都有可能不再登陆该网站了,数据库保存的消息队列无意义了。
现表结构如下:
消息表
编号 ID NUMBER
标题 TITLE VARCHAR2(50) 50
正文 CONTENTS VARCHAR2(1000)
发送状态 STATUS NUMBER
发送日期 SEND_DATE DATE
发送方式 SEND_TYPE NUMBER
最新创建人 FCU VARCHAR2(50) 50
更新人 LCU VARCHAR2(50) 50
创建时间 FCD DATE
最新更新时间 LCD DATE
删除标记 DELETE_TAG CHAR(1) 1
消息容器编号 ID NUMBER
站内信ID MESSAGE_ID NUMBER
收件人ID MEMBER_ID NUMBER
是否已读 READ_STATUS NUMBER
会员表
主键 id NUMBER
会员编号 u_number NUMBER
电子邮箱 u_email VARCHAR2(200) 200
密码 u_passwd VARCHAR2(50) 50
企业认证 company_admit NUMBER(1) 1
帐号禁用 帐号禁用 NUMBER(1) 1
创建人 FCU NUMBER
最后更新人 LCU NUMBER
首次创建时间 FCD DATE
最后更新时间 LCD DATE
删除标记 DETELE_TAG char(1) 1
在尽量不改变表结构的前提下,改变一下程序写数据库的方式:
后台管理员发送一条站内信,接收对象为全体会员,系统往站内信表插入一条站内信,其中发送方式区分接收的对象(0为全体发送,1为只发送给注册会员,2为只发送给企业会员,3为指定会员发送),这样,发送给全体会员的一条站内信暂时只生成了一条数据。
前台会员登陆的时候,根据会员自身的会员类型(普通会员,企业会员)查询站内信表中属于自己的最新消息(根据自己所持消息的最新时间与消息表的发送时间做 比对),往消息容器中插入自身与所持消息的关联数据,默认未未读,在前台会员点击某一条未读站内信的时候,将容器中的对应站内信状态改为已读。
如果后台管理员只指定发送站内信给某几个会员,则往站内信表插入一条站内信后,将这几个会员与该站内信的关联直接往消息容器中写关联,不需要前台会员取。
另:因为改变了发送接收方式,后台管理员只指定发送站内信给某几个会员,但是站内信状态未未发送,只是保存草稿,需要往站内信主表增加一个字段,保存指定会员的id串,用于关联此草稿与指定会员的关联,此处就要求发送给指定会员的数量不能太多,需要限制。
这样,百万级用户量的系统,活跃度为10%的用户登陆系统,只生成了10W的数据,用户活跃度越低,此方案效率越明显,如果是100%活跃度的话,此方案和现有方法无区别。
站内信功能 java_站内信功能相关推荐
- 内网安全,站在十年的路口
什么是内网安全?这个名词我们经常听说,却没有人能说出它的准确定义,即使是在维基百科和百度百科中也查找不到准确的结果.可是,这个概念从诞生至今已有十年的历史,它就像一个神秘的影子伴随着企业不断成长,我们 ...
- 【微信小程序控制硬件 第13篇】安信可B站直播学习总结,微信小程序MQTT远程控制ESP8266 NodeMCU,谈谈微信生态那些事;
[微信小程序控制硬件第1篇 ] 全网首发,借助 emq 消息服务器带你如何搭建微信小程序的mqtt服务器,轻松控制智能硬件! [微信小程序控制硬件第2篇 ] 开始微信小程序之旅,导入小程序Mqtt客户 ...
- python发送短信每天有限额吗_发送短信如何限制1小时内最多发送11条短信
发送短信如何限制1小时内最多发送11条短信 场景: 发送短信属于付费业务,有时为了防止短信攻击,需要限制发送短信的频率,例如在1个小时之内最多发送11条短信. 如何实现呢? 思路有两个 截至到当前时刻 ...
- 借助花生壳把内网网站映射给外网。(内网穿透/路由器端口映射)、外网控制内网...
其实这个东西几年前我就弄过,但是当时心智不成熟,没学会怎么玩耍,今天玩了一把也没啥的, 1.搭建网站 假设内网电脑是192.168.100.9 访问Http://192.168.100.9能打开网站, ...
- 安卓开发中发送短信的方法 APP内单发短信 群发短信 APP跳转到短信页 单条短信 多条短信Intent跳转
1.APP内部直接发送短息 包括发送单条短信 发送多条短信 APP内部发送短信首先要获取一个发送短信的权限 <uses-permission android:name="android ...
- 环信集成 2---基于环信Demo3.0,实现单聊功能
这几天在做环信,所以把环信相关的东西拿过来,做个系统点的东西 注意: 这里Demo集成的是带有实时语音功能的(libEaseMobClientSDK.a). 环信库是直接拖拽EaseMobSDK文件夹 ...
- 【源码分享】POSCMS功能如何实现短信验证码
对接短信的时候发现一家短信公司,有些不错的短信验证码的插件,对接起来挺方便的,有需求的可以看一下.http://www.ihuyi.com/ 插件说明 本插件系互亿无线针对POSCMS V3.2.0 ...
- 银行卡怎么突然收不到短信信息服务器,银行卡开通了短信通知功能为什么没收到通知?十条原因看清楚...
朋友说,自己的银行卡已经在银行设置了短信通知功能,为什么资金变动没有收到通知呢?会有风险吗? 大家知道,短信通知功能在银行是收费功能,大多数银行每个月3元左右,目的就是及时了解账户金额的变动,以防范风 ...
- JAVA接入短信接口,实现短信验证码功能
最近网站要加短信验证功能,不得不要折腾一番.好了,不多说了,说一下过程.首先是短信服务商的选择,以前没接触过,只能找度娘了,找了三家,对比一下. 价格: 1.秒嘀科技 - 短信接口.短信验证码.语音验 ...
- 即时通讯im聊天仿v信聊呗闲聊潮信该有的功能都有ios安卓web端
即时通讯im聊天仿v信聊呗闲聊潮信该有的功能都有ios安卓web端 App特色说明 经过测试.好用的,无BUG. 这个直接就可以运营了.聊天通信流畅. 推荐服务器配置:4核4G带宽5M 网盘下载地址: ...
最新文章
- 聚类之K-means均值聚类
- 奥斯陆大学计算机,奥斯陆大学雅思要求
- linux - word frequency
- 记载一次项目中的小事故
- 【超时原因】1047 Student List for Course (25 分)
- python value函数_python 函数基础
- arp协议的主要功能是_程序员需要掌握的一些网络协议汇总
- 《我的成功可以复制》读后感这一、两天可以静下心来,将唐骏先生写的《我...
- 程序员应该坚持写博客
- 最大流最小割经典例题_最大流最小割基本
- SVN:Attempted to lock an already-locked dir svn: Working copy '工作空间路径/lib' locked
- HTML中哪些标记能放在首部,HTML基本结构与常用标记
- 什么是MRAM(不挥发性磁性随机存储器)
- c语言列宽作用,c语言|格式化输入输出详解
- 代替Beyond Compare的代码对比工具WinMerge
- Ht7038 三相电能计量芯片 测量6路电流。
- 重置或者修改mysql的root密码
- Android 详细讲解修改app状态栏颜色
- 微信小程序云开发实现一个社区 Demo(补充)
- 二叉树的几个基本性质
热门文章
- Intellij idear使用心得
- 华为 21 级程序员月薪曝光:270k 封神!众网友直呼长见识
- 深度学习之鸡兔同笼问题
- jQuery中siblings无效
- 2048C语言源码linux
- OpenCV-图像翻转函数cv::filp
- [愚见]《EnlightenGAN: Deep Light EnhancementWithout Paired Supervision》
- 2021正睿csp7连day2
- 错误代码warning C4013: ‘sqrt‘ undefined; assuming extern returning int怎么解决?
- 随机变量分布函数:相关习题解答