摘要:
请说明什么是传统的消息传递方法? 传统的消息传递方法包括两种: ·排队:在队列中,一组用户可以从服务器中读取消息,每条消息都发送给其中一个人。 ·发布-订阅:在这个模型中,消息被广播给所有的用户。 为什么要使用 kafka,为什么要使用消息队列 缓冲和削峰:上游数据时有突发流量,下游可能扛不住,或者 阅读全文
摘要:
请说明什么是传统的消息传递方法? 传统的消息传递方法包括两种: ·排队:在队列中,一组用户可以从服务器中读取消息,每条消息都发送给其中一个人。 ·发布-订阅:在这个模型中,消息被广播给所有的用户。 为什么要使用 kafka,为什么要使用消息队列 缓冲和削峰:上游数据时有突发流量,下游可能扛不住,或者 阅读全文
摘要:
Redis 是单进程单线程的? Redis 是单进程单线程的,redis 利用队列技术将并发访问变为串行访问,消 除了传统数据库串行控制的开销。 Redis 的持久化机制是什么?各自的优缺点? 使用过Redis分布式锁么,它是怎么实现的? 先拿setnx来争抢锁,抢到之后,再用expire给锁加一个 阅读全文
摘要:
Kafka之所以那么快的另外一个原因就是零拷贝(zero-copy)技术。本文我们就来了解Kafka中使用的零拷贝技术为什么那么快。 传统的文件拷贝 传统的文件拷贝通常需要从用户态去转到核心态,经过read buffer,然后再返回到用户态的应用层buffer,然后再从用户态把数据拷贝到核心态的so 阅读全文
摘要:
背景 开源版的RocketMQ只提供了18个层级的消息队列延时,这个功能在开源版中显得特别鸡肋,但是在阿里云中的RocketMQ却提供了支持40天之内任意秒级延时队列,果然有些功能你只能充钱才能拥有。当然你或许想换一个开源的消息队列,在开源社区中消息队列延时消息很多都没有被支持比如:RabbitMQ 阅读全文
摘要:
bool flock ( int handle, int operation [, int &wouldblock] );flock() 操作的 handle 必须是一个已经打开的文件指针。operation 可以是以下值之一:要取得共享锁定(读取程序),将 operation 设为 LOCK_SH(PHP 4.0.1 以前的版本设置为 1)要取得独占锁定(写入程序),将 operation 设为 LOCK_EX(PHP 4.0.1 以前的版本中设置为 2)要释放锁定(无论共享或独占),将 operation 设为 LOCK_UN(PHP 4.0.1 以前的版本中设置为 3)如果你不希 阅读全文
摘要:
--英文原著:Darrell Brogdon,发表于 http://www.phpbuilder.com/columns/darrell20000319.php3) 可能很多人都想过使用PHP编写一些定时发信之类的程序,但是却没有办法定时执行PHP;一次去PHPBuilder的时候,发现了这一篇文章,于是想给大家翻译一下(同时做了一些修改),希望对大家有用。 ---------------------------------------------------------------------------------- 我们都知道,PHP是一种非常好的动态网页开发语言(速度飞快,开发周期短… 阅读全文
摘要:
mongodb采用find来进行查询操作,根据传进去的参数不同,可以进行不同类型的操作。1. 最简单的查询首先,最简单的查询,当然是不带任何条件的查询,这在我们前面的例子中也看过了,如db.blog.find(),该查询将返回blog集合中所有的文档。2. 限定条件在关系型数据库(RDB)中,我们通过where来限定查询条件,如:select *from userwhere age =28我们来看看在mongodb中如何进行类似的操作:db.user.find({"age":28})mongodb的第一个参数用来指定要返回哪些文档,如,上面的例子表示,返回user集合中,a 阅读全文
|