消息队列已经逐渐成为企业IT系统内部通信的核心手段。它具有低耦合、可靠投递、广播、流量控制、最终一致性等一系列功能,成为异步RPC的主要手段之一。 当今市面上有很多主流的消息中间件,如老牌的ActiveMQ、RabbitMQ,炙手可热的Kafka,阿里巴巴自主开发的Notify、MetaQ、RocketMQ等。 本文不会一一介绍这些消息队列的所有特性,而是探讨一下自主开发设计一个消息队列时,你需要思考和设计的重要方面。过程中我们会参考这些成熟消息队列的很多重要思想。 本文首先会阐述什么时候你需要一个消息队列,然后以Push模型为主,从零开始分析设计一个消息队列时需要考虑到的问题,如RPC、高可用、顺序和重复消息、可靠投递、消费关系解析等。 也会分析以Kafka为代表的pull模型所具备的优点。最后是一些高级主题,如用批量/异步提高性能、pull模型的系统设计理念、存储子系统的设计、流量控制的设计、公平调度的实现等。
分类目录归档:架构arch
一名分布式存储工程师的技能树是怎样的?
2. 对象存储,典型的就是Amazon S3,这种系统很多公司自己造给公司内部用,存图片等小文件,接口一般不会兼容Amazon S3,因为不需要,比如淘宝的TFS,基本思路就是将多个小文件合并成大文件存储,经典论文FB的HayStack。这种系统一般读多写少,不需要修改,很少删除,一致性也没那么强,系统相对好做。基本上HDFS+HBase就能搞定一个这种系统,HBase存元数据,利用HDFS的Append功能将小文件合并成大文件。
反作弊策略不要用IP做限制
昨天做了个摇号分享抽奖小活动,加了几道反作弊功能,其中第一道是通过IP进行过滤,通过对数据进行监控,发现有大量3G/4G用户的IP是相同的,估计是各移动运营商用户量暴增,公网IP有限。
微服务部署面临哪些挑战?
高可用性系统在大众点评的实践与经验
一致性HASH算法详解
比如你有 N 个 cache 服务器(后面简称 cache ),那么如何将一个对象 object 映射到 N 个 cache 上呢?
php-fpm进程数优化
1、php-fpm优化参数介绍
他们分别是:pm、pm.max_children、pm.start_servers、pm.min_spare_servers、pm.max_spare_servers。
线上nginx配置优化
nginx/conf/nginx.conf
1.worker_processes
nginx要开启的进程数,一般等于cpu的总核数。
开发示例:
worker_processes 2;
线上示例:
worker_processes 8; //线上最大开到8即可
web页面响应时间长,要怎么排查?
说明:
web页面响应时间长,要怎么排查?
浅谈大型web系统架构
大型网站架构演变
PHP + Memcache 实现多服务器session共享
很多时候一个完整的系统可能运行在多个服务器上,如果这多个服务器之间需要共享session的话,那么php默认的files保存session的方式就无能为力了。这时我们可以考虑使用memcache 来接管session的保存与读取工作。
如何安全的存储密码
程序安全之——代码注入
Nginx 使用 http auth basic 认证
以我们做一个简单的后台管理为例, 地址:http://xxxx/admin/*, 对admin 下面的文件进行权限管理;
Beanstalk 协议
Beanstalk 协议
《重构-改善既有代码的设计》读后感
请注释你那该死的代码!
我站出来就是为了要说一句: