展开

关键词

Web网站设计

写在前面: 是网站信息传播机制的重要的一部分,足够写一大章来说明。本文只梳理设计原则,后续相关内容会持续更新。 这里的包括但不限于公告、提醒或消息(不同使用场景下的功能定义不同)。 关于各客户端平台(ios、android、wp等)的机制,在其交互设计指南中有更详细的说明,大家可自行参考。一、定义,顾名思义即信息的传达处理。 notice.jpg设计的原则可简单的归纳为: 1、消息传播效率最高(获取、处理、信息传达、用户反馈等效率) 2、避免产生骚扰(噪音、频繁提示)二、分类不用的平台和产品本身由于对业务的需求不一样 ,将其管道推送到用户,以便用户处理。 如解除好友关或加入黑名单后自动将删除双方的私信记录。 触发的消息一般设置一定的回收删除时间。 如提醒、、公告等。过期后自动在产品里删除。物理上可以设置是否备份。

3.8K40

消息设计文档

一、功能概述1.不同的的消息,管理后台、小程序(BC)、微信公众号、短信、邮件等2.不同业务的消息,充值、提现到账、更新、公告等3.消息明细,标题、简述、详情、已读未读状态4.有效时间,失效时间 、活动、更新等信息,需要用到MQ及时更新缓存特殊说明需要考虑做成一个组件,各个应用需要使用是调用即可2.1 用户提现业务时序图——私有信息,需要用到MQ解藕类主要思想利用MQ进行业务解偶。 、数据库设计3.1 私有消息模板表(msg_notify_private_template)消息模板主要是方便在发送时可以灵活使用模版,模版主要包括:【腾讯】您充值的 ${amount} 元已经到账 ; 3.2 私有消息信息记录表(msg_notify_private_record)私有信息基本都是文本信息,明确下有没有可能有其他类型的信息??? ; 3.3 公有消息信息记录表(msg_notify_public_record)公有信息包括文本、图片、语音消息,公有信息一般都是由后台管理员发送出去,主要包括网站公告、banner、活动、更新等

1.5K42
  • 广告
    关闭

    90+款云产品免费体验

    提供包括云服务器,云数据库在内的90+款云计算产品。打造一站式的云产品试用服务,助力开发者和企业零门槛上云。

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Redis消息的实现

    Redis消息的实现 Posted on 2012-02-29 by 老王 http:huoding.com20120229146最近忙着用Redis实现一个消息,今天大概总结了一下技术细节 实际上消息和微博差不多,也存在推拉选择的问题,同样答案也是类似的,那就是应该推拉结合。 …最近Tumblr发表了一篇类似的文章:Staircar: Redis-powered notifications,介绍了他们使用Redis实现消息的一些情况,有兴趣的不妨一起看看。 过使用消息队列,我们可以异步处理请求,从而缓解的压力。 LPOPredis本身虽然是一个新项目,但很有朝气,开发维护也很活跃,如果你的下一个Web应用里需要使用轻量级的消息队列,不妨使用它,顺便说一句,redis里还有set结构,可以用来实现一个高效能的tag

    11420

    Redis消息的实现

    最近忙着用Redis实现一个消息,今天大概总结了一下技术细节,其中演示代码如果没有特殊说明,使用的都是PhpRedis扩展来实现的。 实际上消息和微博差不多,也存在推拉选择的问题,同样答案也是类似的,那就是应该推拉结合。 Redis的速度是很快的,但是借助PIPELINE,会更快,代码如下: 说明:所谓PIPELINE,就是省略了无谓的折返跑,把命令打包给服务端一处理。 …最近Tumblr发表了一篇类似的文章:Staircar: Redis-powered notifications,介绍了他们使用Redis实现消息的一些情况,有兴趣的不妨一起看看。

    4830

    微服务架构实践之邮件改造

    拆分背景随着平台业务增长,功能耦合度越来越高,部署周期变长,代码样式混乱、新人入手复杂、独立功能影响的稳定性等等,等等,等等问题。 以邮件为案例对服务进行拆分,独立服务,独立部署,独立进程,做到及时上线而不影响平台正常运营。以此为例,望大家对于经手的功能模块,有一个良好的规划,不要碍于项目进度而给自己或者别人制造麻烦。 拆分原因邮件分散于各个,配置变更容易遗漏代码分散,功能修复麻烦,相应的增加部署难度多人经手,代码风格不同,不易于维护发送模版不规范,导致发送风格迥异线上生产环境出现问题,在不影响正常运行的情况下 ,不易于修复功能集成在项目,增加了调试的难度影响平台稳定性拆分优势拆分虽然会增加了复杂性,但是可以得到更多的好处数据闭环实现自我管,不依赖于任何,即去依赖化这样的好处是别人抖动不会影响到自己数据异构 ,即将各个的数据传输过来,按照自己的要求去处理基于Maven管理项目,相比于项目中的Ant构建更高级,当然功能不仅仅是构建,还有一些列的优势SpringMvc+Dubbo实现服务治理,对外开放接口,

    27810

    微服务架构实践之邮件改造

    拆分背景随着平台业务增长,功能耦合度越来越高,部署周期变长,代码样式混乱、新人入手复杂、独立功能影响的稳定性等等,等等,等等问题。 以邮件为案例对服务进行拆分,独立服务,独立部署,独立进程,做到及时上线而不影响平台正常运营。以此为例,望大家对于经手的功能模块,有一个良好的规划,不要碍于项目进度而给自己或者别人制造麻烦。 拆分原因邮件分散于各个,配置变更容易遗漏代码分散,功能修复麻烦,相应的增加部署难度多人经手,代码风格不同,不易于维护发送模版不规范,导致发送风格迥异线上生产环境出现问题,在不影响正常运行的情况下 ,不易于修复功能集成在项目,增加了调试的难度影响平台稳定性拆分优势拆分虽然会增加了复杂性,但是可以得到更多的好处数据闭环实现自我管,不依赖于任何,即去依赖化这样的好处是别人抖动不会影响到自己数据异构 ,即将各个的数据传输过来,按照自己的要求去处理基于Maven管理项目,相比于项目中的Ant构建更高级,当然功能不仅仅是构建,还有一些列的优势SpringMvc+Dubbo实现服务治理,对外开放接口,

    65660

    智能事故检测,位置跟踪和(CS HCI)

    运输的进步提高了我们的生活速度。 同时,道路交事故是一个重大的全球性健康问题,它导致了生命,财产和宝贵时间的巨大损失。 这被认为是当今死亡率最高的原因之一。 在本文中,我们开发了一种智能事故检测,位置跟踪和,该可以在发生事故时立即检测出事故。 全球定位(GPS)设备可查找事故的确切位置。 全球移动(GSM)模块将包括Google地图中位置链接在内的消息发送到最近的警察控制室和医院,以便他们可以访问该链接,找出事故现场的最短路线并采取主动行动,加快救援过程。 Sajedur Rahman, Mohammad Nazmus Sakib原文地址:https:arxiv.orgabs2001.00470智能事故检测,位置跟踪和(CS HCI).pdf

    20830

    消息用户需求

    消息用户需求1 引言1.1 编写目的1.2 项目概述2 综合描述2.1 目标范围2.2 用户特性2.3 约定假设2.4 技术选型原则3 需求说明3.1 功能概要3.1.1 消息合并3.1.2 消息信息的传达处理。目的是为了让用户获得需要得到的消息(包括:希望用户了解的信息及用户彼此互动触发的信息流)及提醒并进行处理。 消息是企业信息化中信息传播机制的重要的部分,根据具体业务需要可以动态的把用户操作和相关的业务融合,极大提升用户操作体验。?概述本用户主要分为两大类用户:普用户、管理员。 消息,顾名思义即信息的传达处理。目的是为了让用户获得需要得到的消息及提醒并进行处理。消息按发送接收对象不同分成为三类,提醒、告、个人私信。 按照规则汇总完成后,将其管道推送到用户,以便用户处理。1. 分发方式  分发方式多采用pull拉取方式,部分特定类型的信息,需要在指定时间内主动推送(Push)给用户。。

    79040

    开发利器推荐|fileboy v1.9 发布,文件变更监听

    fileboy,文件变更监听,使用 Go 编写。适用于 Hot Reload (典型的如开发go项目,无需每次手动执行 go build;又比如前端 node 打包) 或者 监控的场景。 ...编译环境go version 1.12更新日志CHANGELOG运行下载已经编译好的对应平台二进制文件,重命名为 fileboy , 加入 Path 中即可。 filegirl.yaml ,修改为适合自己项目的配置项;运行 fileboy 即可.如果你定义了 command -> exec 命令,想事先确认是否能正常执行,可以运行 fileboy exec命令,会尝试运行你的自定义命令 你可以事先编写好相应的报警脚本,然后定义 filegirl.yaml 中的 command 命令,交由 fileboy 自动运行监控报警。器在什么时候会发送 http 请求 ? 器发送 http 的前提是在配置文件中设置了 callUrl 参数(不为空即为已设置)。

    43620

    ,居然有人使用拉取?

    广义,有1对1的,以及一对多的,有相对实时的业务,以及能够容忍一定延时的。结合具体的场景来看下,这样的一些,究竟是推还是拉? 一、对1的典型业务,计数类:有10个美女添加了你为好友有8个好友私信了你很多业务经常有这类计数结果只针对你,这类是推送,还是拉取的呢? 二、对多的对多的消息,会比对1的消息复杂一些,以两个场景为例:QQ登录弹窗新闻QQ右下角弹窗广告IM登录弹窗新闻这个的需求是:同一天,用户登录弹出的新闻是相同的(很多业务符合这样的场景 三、总结广义,究竟是推送还是拉取呢?不同业务,不同需求,实现方式不同。 对1的:实时性要求高,可以推送实时性要求低,可以拉取对N的:登录弹窗新闻,拉取更佳,可以用一个last_msg_date来避免大量数据的存储批量弹窗广告,常见的方法是推送,需要注意限速,

    36430

    Echo 的模块是怎么做的

    概述 是一个很常见且必要的需求,当发生点赞、关注、评论操作的时候,就会给相应的用户发送。 整体来看就两个需求,发送和显示:1)发送:A 给 B 点赞,给 B 发送 点赞 类型的(TOPIC_LIKE)A 给 B 点赞,给 B 发送 关注 类型的(TOPIC_FOLLOW )A 给 B 点赞,给 B 发送 评论 类型的(TOPIC_COMMNET)整体逻辑就是,当发生比如点赞操作的时候,就会触发消息队列的点赞事件,然后消费者消费这个事件,具体的消费逻辑就是往表里面插入一条数据 (也使用私信那张表 message,不过的 from_id 在代码里写死了为 1,表示是发送出来的,所以这也就是为什么说大家在部署的时候一定要注意在 user 表中事先存储一个 id 2)显示列表(显示点赞、评论、关注三种类型的详情(分页显示某一类型所包含的)显示未读消息数量封装事件对象各位不妨想一想,消费者想要过消费这个消息实现往数据库表

    14020

    Android如何获取的开启状态详解

    前言大家应该都有所体会,平常在android应用中,有时候会用到是否开启的状态,以便进行下一步操作,所以,获取到状态是很有必要的,之前一直苦于找不到合适的方法来解决,因为毕竟涉及到,不好办, 有图有真相,首先到设置里边关闭该应用的开关:?然后在应用中,点击按钮,获取状态:?这时候,回到设置里,打开按钮:?再次点击应用中的测试按钮,可以看到,已经可用了:?

    33830

    用Electron创建跨平台应用(第三弹)开启

    对于QQ这类实时讯软件, 设置是非常常见的功能, 对于办公用的电子邮件服务, 收到新邮件进行也是非常必要的Electron适用于创建跨平台应用, 对于这类常见需求, 也提供了非常好用的 api用户收到后, 往往会过点击, 打开与相对应的界面, 这个功能往往也是必须的需求: 我们需要创建一个动漫更新的, 当用户点击, 就会打开相应的界面播放动漫, , 发出)效果展示 ? = function(){ shell.openExternal(option.href) } } 的图标最好是ico格式图片, 但简书不支持上传ico格式的图片, 我们可以过http:www.bitbug.net 小结:Electron对这种常见功能封装的很好, 善用功能, 能让我们的程序更好用用Electron创建跨平台应用是一个连载, 如果阅读本篇有困难,可以补一下前两弹的内容 用Electron

    27420

    feed留,单聊群聊,,状态同步,到底是推还是拉?

    画外音:微博是弱关,关注无需对方同意,粉丝可以无上限;朋友圈是强关,好友需要对方同意,好友个数有上线。如果推送,姚晨发布消息的时候,要把消息ID投递到所有粉丝的主页消息队列里,推送量巨大。 和朋友小窗沟是单聊,群内扯淡是群聊。单聊,很容易想到是服务器推送,但浏览器里的聊天工具JS只能使用http式的request - response协议,又能不能保证消息的实时性呢? 如果是推送,1条消息将转变为500条消息,压力会异常之大。如果是拉取,消息的实时性又该如何保障呢? 三、消息听上去比较泛,典型的业务是QQ的登录广告弹窗,以及登录后的右下角广告提示。QQ每天首次登录后的新闻弹窗拉取?第二次登录却又没有。QQ运行过程中的QQ弹窗广告推送? 一次推送几千万条,会不会抖动?或许,真实的实现方式或许与我们想的并不一样。四、状态同步玩桌面QQ时,收到过“你的好友XXOO登录了”的弹窗提示么?这是一个好友登录登出状态的客户端同步。

    49430

    :你收到一封新的智商挑战邀请,请点击应战

    但我们都觉得自己都有渊博的识。谁的识面更广、见识更长呢?我们决定用今天晓程序为大家带来的这款小程序「头脑王者」来一决胜负。关注「晓程序」公众号,微信后台回复「0109」,一张图教你玩转小程序。 点击自己的经验条,小程序就会显示标注着你的经验和等级的用户信息界面,还会根据你答过的题生成的一张你擅长的领域的计图来计你的「战斗力」。? 闲来无事花个半分钟来做上五道题,不仅可以拓宽自己的识面,还可以检测一下自己的识储备,多么修身养性的娱乐爱好啊!大家还不赶紧打开手机,一起头脑风暴起来啊!?

    17840

    Android——《Android第一行代码》中使用 方法,Android8.0NotificationCompat.builder()方法的使用及引导用户开启

    1、该书中使用的Android版本较老,8.0以下,没有渠道这一说法,所以使用的高版本Android,需要进行适配,即判断本机是否在8.0以上,是的话,添加渠道,方法如下:public class APP中,结果发现上面好使的程序失效了,经过一番波折,发现是手机问题,不什么时候升级优化了,把我的APP   允许 关掉了(设置->管理->允许),因此有必要在程序中加入打开引导程序 ,引导用户打开开关: 检查手机是否打开,若没有,引导用户打开 public void checkAllowNotify(){ 判断APP是否已经打开 NotificationManagerCompat NotificationManagerCompat.from(this); boolean isEnabled = notification.areNotificationsEnabled(); 若未打卡,引导用户打开(考虑兼容性 请在“”中打开权限) .setNegativeButton(取消, new DialogInterface.OnClickListener() { @Override public void onClick

    40340

    Android栏微技巧,8.0栏的适配

    大家好,今天我们继续来学习Android 8.0的适配。之前我们已经讲到了,Android 8.0最主要需要进行适配的地方有两处:应用图标和栏。 那么本篇文章,我们自然要将重点放在栏上面了,学习一下Android 8.0栏适配。其实在8.0之前,还有一次栏变动比较大的版本,就是5.0栏是Android原创的一个功能,虽说乔布斯一直认为Android是彻彻底底抄袭iOS的一个产品,但是栏确实是Android原创的,反而苹果在iOS 5之后也加入了类似的栏功能。 8.0栏适配从Android 8.0开始,Google引入了渠道这个概念。什么是渠道呢?顾名思义,就是每条都要属于一个对应的渠道。 这里我们在MainActivity中创建了两个渠道,首先要确保的是当前手机的版本必须是Android 8.0或者更高,因为低版本的手机并没有渠道这个功能,不做版本检查的话会在低版本手机上造成崩溃

    78440

    iOS的底层框架库

    库中的消息注册和发送是可以用来实现跨进程信的一种底层的机制。 库的API库中的所有函数都在notify.h文件中被声明,因此当你要使用库提供的函数时,需要在代码中#include 。 库不仅支持iOS还支持macOS,而且是跨进程的消息。 函数中的不会附带任何的附加参数。三、消息监听者的暂停、恢复、取消当注册某个消息时,会返回一个token值来标识这个信息。 ,还有一些未被公开的消息,我们可以过这些未被公开的消息来获取更多关于状态的改变,下面的列表将列出所有的底层的消息,具体每个是什么意义就读者自行猜测和验证吧。

    35720

    iOS的底层框架库

    库中的消息注册和发送是可以用来实现跨进程信的一种底层的机制。 库的API库中的所有函数都在notify.h文件中被声明,因此当你要使用库提供的函数时,需要在代码中#include 。 库不仅支持iOS还支持macOS,而且是跨进程的消息。 函数中的不会附带任何的附加参数。三、消息监听者的暂停、恢复、取消当注册某个消息时,会返回一个token值来标识这个信息。 ,还有一些未被公开的消息,我们可以过这些未被公开的消息来获取更多关于状态的改变,下面的列表将列出所有的底层的消息,具体每个是什么意义就读者自行猜测和验证吧。

    26030

    RocketMQ 添加监控和告警

    首先提出我们的监控诉求,出现如下情况时,希望能够及时接收到告警:RocketMQ 服务宕机RocketMQ 消费者下线RocketMQ 消息出现长时间或者大量堆积本文将过修改 rocketmq-console RocketMQ的集群组件组成一个完整的RocketMQ集群,一般组成关如下图所示: ? 其预留的定时任务实现类为: org.apache.rocketmq.console.task.MonitorTask 定时任务的扫描频率可根据自身要求考量设置。 定时任务的扫描频率可根据自身要求考量设置 public void scanProblemConsumeGroup() { for (Map.Entry configEntry : monitorService.queryConsumerMonitorConfig logger.info(op=look consumeInfo {}, JsonUtil.obj2String(consumeInfo)); notify the alert system 根据自身的要求加如方式

    1.2K40

    扫码关注云+社区

    领取腾讯云代金券