首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

所谓好的用户体验

所谓好的用户体验 由 Ghostzhang 发表于 2012-07-16 19:20 怎样的用户体验才是好的用户体验呢?...好像有点跑题了,这次的思考是:并不是所有关注用户感受的体验就叫做是“好”的用户体验。 从何而来这想法呢?...上面的唠叨是一个引子,结果就是"不能赚钱的交互不是好交互",简单的说就是好的交互可以赚钱,可是不好的用户体验也是能赚钱的。...但是从商家的角度来说,我们需要考虑几个因素,第一个就是成本,这个是直接决定了能给用户提供最佳体验的上限到哪,好的椅子意味着更高的成本;其次是投入产出比,开门做生意,不为赚钱是很少的,投入越多,意味着盈利周期可能越长...麦当劳的椅子虽然用户体验不是最好的,但却是这么多年来产品与体验最好的平衡,从而实现利润的最大化。 当你再次遇到这种问题时,就知道如何处之泰然了。(本届 年会 的主题)

3.1K30

好的工作想法从哪里来

提出论点 好的研究想法,兼顾摘果子和啃骨头。...两年前,曾看过刘知远老师的一篇文章《好的研究想法从哪里来》,直到现在印象依然很深刻,文中分析了摘低垂果实容易,但也容易撞车,啃骨头难,但也可能是个不错的选择。...学生年代,作为老师的一个不成器弟子,学术上没有什么建树,幸运的毕了业。现如今到了工业界摸爬滚打,虽然换了个环境,但是发现生存的道理没变。 反面例子 不好的工作想法会加剧“卷”的用户体验。...这样的工作体验确实很糟糕。 我的触发点 沿着你造梦的方向先动手干起来。一年前刚开始决定做攻击者画像的时候,其实心里有底也没底。...引用 好的研究想法从哪里来 杜跃进:数据安全治理的基本思路 来都来了。

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

    消息队列面试解析系列(一)- 消息队列的意义

    配备的仓库就起到了“通信”过程中“缓存”作用。 这就是现实版的消息队列。 2 消息队列适用场景 理解了消息队列由来,看看开发中,何时需要 MQ 呢?...好程序有自我保护能力,即应该可在海量请求下,还能在自身能力范围尽可能多处理请求,拒绝处理不了的请求且保证自身运行正常,就像线程池一般顺畅。...而不是像你我简单粗暴地直接拒绝请求并返回错误,这可不是啥好的用户体验。 思路就是使用MQ隔离网关和后端服务,达成流控和保护后端服务。...消息队列不可能能存放无限的消息,消息队列满应该也会有拒绝策略,比如线程池的任务队列,任务队列满,并且超过最大的线程池数,四种的拒绝策略。 实际上,只要有足够的磁盘容量,消息队列确实可以存放无限的消息。...4.4 消息队列应该也会做多备的策略?比如队列消息的服务挂了,那些消息全部不见,这样不是也会存在问题么?

    1K00

    消息队列的理解

    队列的主要作用是消除高并发访问高峰,加快网站的响应速度。...消息队列在大型电子商务类网站,如京东、淘宝、去哪儿等网站有着深入的应用, 在不使用消息队列的情况下,用户的请求数据直接写入数据库,在高并发的情况下,会对数据库造成巨大的压力,同时也使得系统响应延迟加剧。...在使用队列后,用户的请求发给队列后立即返回,再由消息队列的消费者进程从消息队列中获取数据,异步写入数据库。 由于消息队列的服务处理速度远快于数据库,因此用户的响应延迟可得到有效改善。...1 消息队列说明 消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题。 实现高性能,高可用,可伸缩和最终一致性架构。是大型分布式系统不可缺少的中间件。...目前在生产环境,使用较多的消息队列有ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ等。 2 消息队列应用场景 消息队列在实际应用中常用的使用场景。

    60700

    消息队列面试解析系列(一)-消息队列(MQ)的意义

    配备的仓库就起到了“通信”过程中“缓存”作用。 这就是现实版的消息队列。 2 消息队列适用场景 理解了消息队列由来,看看开发中,何时需要 MQ 呢?...好程序有自我保护能力,即应该可在海量请求下,还能在自身能力范围尽可能多处理请求,拒绝处理不了的请求且保证自身运行正常,就像线程池一般顺畅。...而不是像你我简单粗暴地直接拒绝请求并返回错误,这可不是啥好的用户体验。 思路就是使用MQ隔离网关和后端服务,达成流控和保护后端服务。...消息队列不可能能存放无限的消息,消息队列满应该也会有拒绝策略,比如线程池的任务队列,任务队列满,并且超过最大的线程池数,四种的拒绝策略。 实际上,只要有足够的磁盘容量,消息队列确实可以存放无限的消息。...4.4 消息队列应该也会做多备的策略?比如队列消息的服务挂了,那些消息全部不见,这样不是也会存在问题么?

    1.5K20

    为什么需要消息队列,及使用消息队列的好处?

    一、消息队列的特性 业务无关,一个具有普适性质的消息队列组件不需要考虑上层的业务模型,只做好消息的分发就可以了,上层业务的不同模块反而需要依赖消息队列所定义的规范进行通信。...FIFO,先投递先到达的保证是一个消息队列和一个buffer的本质区别。 容灾,对于普适的消息队列组件来说,节点的动态增删和消息的持久化,都是支持其容灾能力的重要基本特性。...性能,这个不必多说了,消息队列的吞吐量上去了,整个系统的内部通信效率也会有提高。 二、为什么需要消息队列?...消息可以非常简单,例如只包含文本字符串;也可以更复杂,可能包含嵌入对象。消息被发送到队列中,“ 消息队列 ”是在消息的传输过程中保存消息的容器 。...不要出现顾客A下的单,发货发给了顾客B等情况。 5.2、简单的、统一的操作机制 需定义简单的,语义明确的,业务无关的,恰当稳妥的统一的访问方式。 5.3、容错 控制好单点故障,确保数据安全。

    54720

    如何使用消息队列的事务消息

    1 MQ事务的意义 “发消息”过程,往往是为通知另外一个系统更新数据,MQ的“事务”,主要解决消息生产者和消息消费者的数据一致性问题。...第二步发送半消息第三步创建订单,这2个顺序反一下是等价的,即先创建订单在发送半消息。 半消息并非消息内容不完整,包含的就是完整的消息内容。...我个人觉得这种方案在不支持半消息的队列方案里也是一种选择,不知道您觉得这种实现方案有没有什么问题。 如果有个生产者和消费者都可访问,并且性能还不错的数据库,肯定使用这个数据库实现事务较好。...执行本地事务,执行本地事务成功 此阶段像mysql的service层写binlog的阶段,写binlog成功,最后提交或者回滚队列事务。...消息对消费者不可见,将其消息的主题topic和队列id修改为half topic,原先的主题和队列id也做为消息的属性,如果事务提交或者回滚会将其消息的队列改为原先的队列。

    2K10

    什么是好的错误消息?

    而且,最重要的是,我要怎么做才能修复它? 图片 那怎样写才是一个好的提示呢? 在介绍好的提示之前,我们先来看一下什么是不好的错误提示。...,当风险很大的时候,任何人都最不愿意听到这句话。所以这时候不是安可爱的时候。我们需要向用户表明,我们知道这是严重的,我们明白这对他们很重要。...尽量把重点放在问题上,而不是导致问题的行动上。 Generic for no reason 太官方的说辞:比如「稍后尝试」。知道原因而不告诉用户,是不好的。...好的错误提示 图片 Say what happened and why: 说明出错的原因:让用户清楚的知道发生错误的原因,可以通过视觉和文字的结合来完成。解释用户为什么会出现这个错误。...即使是技术原因,也要说明是我们的原因,而不是用户操作错误。比如:「由于技术上的原因,暂时无法连接到你的账户」。 Provide reassurance 提供保证:比如「你的修改已被保存到草稿」。

    1.6K30

    mq消息队列的作用

    我们在工作中,经常用到各自各样的mq消息队列中间件,今天我们来学习一下为什么需要用消息队列,用了对我们的好处是什么? 一. 解耦 现在的系统都是拆分成多个模块,模块直接需要相互调用来完成协作。...,不符合系统设计的开闭原则 引入mq消息中间件后 用户下订单后,订单系统发送下单成功消息到mq就返回响应给用户了,其他系统通过订阅消息topic来消费消息,执行各自的业务逻辑。...引入了mq中间件后 请求A系统+投递消息到消息队列约1s,B系统和C系统异步消费mq消息,这样可以大大缩短响应时间,提高系统的吞吐量,性能可以大大的提高。...四.小结 引入mq中间件后 解耦,这样可以很轻松的接入多个系统,这需要mq消息队列支持,多个系统订阅同一个消息的功能; 异步,这样可以大大提高系统的性能,这需要mq消息队列高性能 削峰填谷,这样大大提高了系统的高可用...,这需要mq消息队列高可用 后面我们再来学习消息队列是怎么实现这些功能的。

    1.1K30

    聊聊消息队列的理解

    今天想谈谈自己对消息队列,message queue的理解,队列的特点就是先进先出,FIFO模式,消息队列的使用在于系统应用间的解耦,挺符合软件工程中那句"高内聚,低耦合"的特点,学生时期记得一点内容,...谈谈消息队列的优缺点,消息队列可以应用于系统间的解耦,异步请求,高峰限流,比如应用A要向应用B,应用C传递数据,一般的处理就是在应用A通过接口调用的方式调用应用B,应用C的接口方法进行同步请求处理,缺点是同步调用有可能导致网络超时...引入消息队列后我们将应用B,应用C需要的数据投递到消息队列中,应用B,应用C根据自己监听的队列名称去进行数据的处理,这样就解决了系统应用之间同步调用,应用耦合的解耦了,符合上面"高内聚,低耦合"的特点。...消息队列用于高峰限流,比如秒杀活动促销为数不多的电子产品,只有部分用户可以抢到,如果直接通过接口调用的方式进行抢购电子产品,系统应用数据库由于扛不住这么高的并发,应用会出现故障咯,采用消息队列的方式,消息队列接收用户的请求...使用了中间件好处很多,系统解耦,提高系统的并发处理请求能力,提高用户体验等优点,但是万事万物都有两面性,我们要保证以及确保中间件组件的高可用,不然这样会出现空谈的现象。

    51520

    关于消息队列的思考

    来源:http://t.cn/EbxTHT5 消息队列组成 消息队列的消费语义 1、消息至多被消费一次 2、消息至少被消费一次 3、消息仅被消费一次 结语 ---- 消息队列是服务架构中常见的组件,可用于服务间解耦...、事件广播、任务异步/延迟处理等,本文对于消息队列的实现如何满足几种消费语义进行了阐述。...img 消息队列的消费语义 消息至多被消费一次 消息至少被消费一次 消息仅被消费一次 为了支持上面3种消费语义,可以分3个阶段考虑消息队列系统中Producer、Message Broker、Consumer...需要满足的条件: 1、消息至多被消费一次 该语义是最容易满足的,特点是整个消息队列吞吐量大,实现简单。...结语 现在业内已经有许多成熟的消息队列的实现了,对于选择用哪一个实现,可以先根据业务需要支持的消费语义进行初步筛选,之后再根据运维难度、社区活跃度、性能、可用性等综合考虑选择合适的消息队列系统,如何判断一个消息队列实现是否支持某个消费语义

    59610

    消息队列的异步处理

    这种方式可以提高系统的性能和响应速度,同时还能改善用户体验。消息队列是一种中间件,用于在不同的组件或系统之间传递消息。它提供了一种可靠的机制来存储和传递消息,并确保消息的顺序性和可靠性。...在异步处理中,消息队列充当了一个缓冲区,用于存储待处理的任务。异步处理的一般工作流程:发送消息:将需要异步处理的任务或请求封装成消息,并发送到消息队列。消息包含了任务的相关信息和参数。...处理消息:消息队列接收到消息后,将其存储在队列中,等待后续的处理。处理可以由一个或多个消费者(也称为工作者)执行。消费消息:消费者从消息队列中获取消息,并执行相应的任务。...在实际应用中,常用的消息队列包括 RabbitMQ、Kafka、ActiveMQ 等。这些消息队列都提供了丰富的功能和配置选项,以满足不同的应用需求。...例如,可以配置消息队列的持久化方式、消息传递的确认机制、消费者的负载均衡等。

    1.7K20

    什么是消息队列?消息队列使用场景是怎样的?

    后来的方式改成了:小红对小明说「我放到书架上的书你都要看」,然后小红每次发现不错的书都放到书架上,小明则看到书架上有书就拿下来看。 书架就是一个消息队列,小红是生产者,小明是消费者。 这就是消息队列。...当然,也有侧重点,个人认为消息队列的主要特点是异步处理,主要目的是减少请求响应时间和解耦。所以主要的使用场景就是将比较耗时而且不需要即时(同步)返回结果的操作作为消息放入消息队列。...同时由于使用了消息队列,只要保证消息格式不变,消息的发送方和接收方并不需要彼此联系,也不需要受对方的影响,即解耦和。 ?...消息队列其中一种模式 那么,该使用消息队列的情况需要满足什么条件呢?...所以在软件的正常功能开发中,并不需要去刻意的寻找消息队列的使用场景,而是当出现性能瓶颈时,去查看业务逻辑是否存在可以异步处理的耗时操作,如果存在的话便可以引入消息队列来解决。

    99220

    消息队列的简单了解

    基本原理与实现      消息队列通常由内核维护,存储在内核中的消息链表中,并由消息队列标识符(如msqid_ds结构体)来标识。...每个消息队列都有一个队列头,用结构struct msg_queue描述,包含队列的大量信息,例如队列键值、用户ID、组ID以及消息数目等。...消息队列的操作包括创建或打开现有队列、添加消息、读取消息和控制消息队列等操作。这些操作通过系统调用如msgget、msgsnd、msgrcv等实现。...消息队列的优势 异步通信:消息队列支持异步通信,即发送方和接收方不必同时在线,提高了系统的效率和并发性能。 解耦:消息队列使得生产者和消费者之间的耦合度降低,有助于系统的模块化设计。...这些技术可以扩展信息收集的维度、提高信息的准确度,并满足用户差异化的认知体验和全方位的感官体验。         结合大数据流处理系统如Storm,可以在保证高可靠性的前提下,实现数据的实时处理。

    9410

    消息队列带来的问题

    消息队列有什么优缺点 优点在上篇文章已经说过了,在特殊场景下有其对应的好处:解耦、异步、削峰。 缺点有以下几个: 系统可用性降低 系统引入的外部依赖越多,越容易挂掉。...如何保证消息队列的高可用? 系统复杂度提高 硬生生加个 MQ 进来,你怎么保证消息没有重复消费?怎么处理消息丢失的情况?怎么保证消息传递的顺序性?头大头大,问题一大堆,痛苦不已。...所以消息队列实际是一种非常复杂的架构,你引入它有很多好处,但是也得针对它带来的坏处做各种额外的技术方案和架构来规避掉,做好之后,你会发现,妈呀,系统复杂度提升了一个数量级,也许是复杂了 10 倍。...消息可靠性 有较低的概率丢失数据 基本不丢 经过参数优化配置,可以做到 0 丢失 同 RocketMQ 功能支持 MQ 领域的功能极其完备 基于 erlang 开发,并发能力很强,性能极好,延时很低...MQ 功能较为完善,还是分布式的,扩展性好 功能较为简单,主要支持简单的 MQ 功能,在大数据领域的实时计算以及日志采集被大规模使用 综上,各种对比之后,有如下建议: 一般的业务系统要引入 MQ,最早大家都用

    1K20

    kafka 消息队列的原理

    kafka 是一个分布式消息队列 群集部署, 可以部署在多个数据中心 topic: key, value, timestamp 每个topic:有分区日志 每个分区日志记录是顺序的, 不可变的串行offset...Geo-Replication MirrorMaker 可以把消息复制到多个数据中心或者云区域 生产者负责把消息推送到指定的分区(patition), 和消息 消费者可以分组 同分组的消费者会一load...topic 一个 分区推送的消息保证顺序性 - 消费者看到消息的顺序与日志的顺序一致 - 假如有N台消息服务器 , kafka能容忍宕机了N-1台服务器并且不会丢失数据 kafka 是一个消息系统,...存储系统, 流处理系统 作为消息系统, kafka的特点与优势 消息队列有两种: 队列(queue) 一群消费者消费同一个队列, 每个消息被其中一个消费者消费....优点: 消息可以同时被多个消费者消费 缺点:消息处理慢, 一次只能消费一个消息 kafka 的消费者组(consumer group)泛化了这两种消息队列, 一个消费者组就是queue, 订阅是跨消费者组的

    1.2K60

    消息队列的消息大量积压怎么办?

    扩容Con实例数量时,必须同步扩容主题中的分区(也叫队列)数量,确保Con实例数和分区数量相等。 若Con实例数量>分区数量,这样的扩容实际上徒劳。...优先检查日志是否有大量消费错误,若无错误,可打印堆栈信息,看消费线程是不是卡在哪里不动,如触发死锁或卡在等待某些资源。 消费端是否可通过同步消费提升消费性能呢?...消费端进行批量操作,感觉和上面的先将消息放在内存队列,然后再并发消费消息类似,若机器宕机,这些批量消息都会丢失,若在DB层面,批量操作在大事务,会导致锁竞争,也会导致主备不一致。...有的MQ提供“死信队列”功能,会自动把这种反复消费都失败的消息丢到死信队列,避免一条消息卡主队列。...总结 消息积压处理: 1、发送端优化,增加批量和线程并发两种方式处理 2、消费端优化,优化业务逻辑代码、水平扩容增加并发并同步扩容分区数量 查看消息积压的方法: 1、消息队列内置监控,查看发送端发送消息与消费端消费消息的速度变化

    1.6K20

    剖析nsq消息队列(四) 消息的负载处理

    当nsqd有消息需要发送给订阅客户端去处理时,发给哪个客户端是需要考虑的,也就是我要说的消息的负载。 ?...如果不考虑负载情况,把随机的把消息发送到某一个客服端去处理消息,如果机器的性能不同,可能发生的情况就是某一个或几个客户端处理速度慢,但还有大量新的消息需要处理,其他的客户端处于空闲状态。...理想的状态是,找到当前相对空闲的客户端去处理消息。 nsq的处理方式是客户端主动向nsqd报告自已的可处理消息数量(也就是RDY命令)。...nsqd根据每个连接的客户端的可处理消息的状态来随机把消息发送到可用的客户端,来进行消息处理 如下图所示: ?...inFlightCount会+1并保存到发送中的队列中,当客户端发送FIN会-1在之前的帖子中有说过。

    1.3K30
    领券