
后端
StevenIsSnail
辛苦理所当然。年轻就拼搏。挑战不确定。
展开
-
消息队列ZeroMQ实践
消息队列ZeroMQ实践来自于:服务端框架工具经验 作者:郭忆 2014-08-13 10:54一、 ZeroMQ简介ZeroMQ被称为史上最快消息队列,它处于会话层之上,应用层之下,使用后台异步线程完成消息的接受和发送,完美的封装了Socket API,大大简化了编程人员的复杂度,被称为史上最强大的消息中间件。ZMQ是用C语言编写的,30us内完成消息的传输,能转载 2014-09-11 17:35:10 · 9990 阅读 · 0 评论 -
web程序员面试
有如下一个场景,某个服务需要构建一个列表数据返回给调用方(调用方通常是客户端),服务本身是一个数据聚合器,它由内部多个远程服务的数据聚合而生成。在正常情况下,需要将所有内部服务的结果全获取成功后再返回。但是在一个大系统中,多个服务中某个服务出现不稳定的概率会比较大,当出现如图远程服务3不可用的时候,有3种不同的解决思路。 方案1:忽略出错的数据(图中数据3),直接返回数据转载 2015-01-13 02:56:30 · 601 阅读 · 0 评论 -
谈谈Facebook的聊天系统架构
Computer System, 高性能Web架构 1 Comment今天看到一份 Facebook 公司 2009 年的 Slideshow, 介绍它的聊天系统架构, 其中的一张图结构非常清晰, 所以我对这张图谈谈我的看法.Web Tier: 用 PHP 开发, 聊天相关的业务逻辑代码. 如 AJAX 请求, HTML 页面拼接等. 这个模块整个其它的 3 个模块转载 2015-01-14 16:49:55 · 594 阅读 · 0 评论 -
各种推送技术
1 web服务器向浏览器 推送http://www.aikaiyuan.com/7968.html人们常常提到”Comet”, 或者”Web 服务器推”, “HTTP 长连接”, 事实上, 他们指的是同一件东西, 可以统称为 Comet 技术. 但是, Comet 技术又不是单独的一种东西, 而解决某一个问题的许多技术的统称. 要解决的问题是 Web 服务器向浏览器实时推送数据转载 2015-01-15 16:45:39 · 1257 阅读 · 0 评论 -
操作系统内存管理
一 页式管理 1 页式管理的基本原理将各进程的虚拟空间划分成若干个长度相等的页(page),页式管理把内存空间按页的大小划分成片或者页面(page frame),然后把页式虚拟地址与内存地址建立一一对应页表,并用相应的硬件地址变换机构,来解决离散地址变换问题。页式管理采用请求调页或预调页技术实现了内外存存储器的统一管理。 它分为 1 静态页式管理。静态分页管理的第一步是为要求内存的作业或进转载 2014-09-27 10:16:04 · 594 阅读 · 0 评论 -
Redis内存存储结构分析
Redis: A persistent key-value database with built-in net interface written in ANSI-C for Posix systems1 Redis 内存存储结构本文是基于 Redis-v2.2.4 版本进行分析.1.1 Redis 内存存储总体结构Redis 是支持多key-value数据库(表转载 2014-11-24 22:01:12 · 661 阅读 · 0 评论 -
Redis内核之事件驱动
原文: http://blog.youkuaiyun.com/heiyeshuwu/article/details/41214089作者:cf (360电商技术组)概述Redis实现了自己的事件驱动,与开源事件库libevent、libev一样,都是基于I/O多路复用技术实现的。出于性能和代码精炼两方面考虑,redis未像memcache一样使用libevent或libev成熟的事转载 2014-11-24 21:42:08 · 629 阅读 · 0 评论 -
Redis的字典(dict)rehash过程源码解析
原文http://blog.youkuaiyun.com/yuanrxdu/article/details/24779693分类: redis 分布式系统2014-04-30 13:35 439人阅读 评论(0) 收藏 举报redis代码分析cnosqlRedis的内存存储结构是个大的字典存储,也就是我们通常说的哈希表。Redis小到可以存储几万记录的CACHE,大到可以存储几千万转载 2014-11-24 21:49:42 · 1884 阅读 · 0 评论 -
Memcached 及 Redis 架构分析和比较
作者:刘旭晖 Raymond 转载请注明出处Email:colorant at 163.comBLOG:http://blog.youkuaiyun.com/colorant/Memcached和Redis作为两种Inmemory的key-value数据库,在设计和思想方面有着很多共通的地方,功能和应用方面在很多场合下(作为分布式缓存服务器使用等) 也很相似转载 2014-11-24 21:47:10 · 659 阅读 · 0 评论 -
微信tcp长连接
在开发过程中,我们经常会用到TCP/IP连接实现即时数据传输,对于java Server 来说如果用在PC段问题不会太大,在PC上资源空间相对比较大,呆在手机上不一样,要考虑很多问题,下面我说说在手机客户端实现TCP/IP连接中,我们讨论下一下几个问题:第一,耗电 关于耗掉问题,我想很多朋友开发中也遇到过,其实在android中耗电主要是因为占用cpu时间长和一些感应转载 2014-07-25 15:59:08 · 5791 阅读 · 0 评论 -
CentOS-7-64bit 配置Apache + MySQL + PHP,防火墙,vnc,yum,groupinstall安装桌面
此文为转载+修改一、配置防火墙,开启80端口、3306端口CentOS 7.0默认使用的是firewall作为防火墙,这里改为iptables防火墙。1、关闭firewall:#停止firewall服务systemctl stop firewalld.service#禁止firewall开机启动system转载 2015-06-07 11:16:56 · 1696 阅读 · 0 评论 -
PHP程序的执行流程
http://blogread.cn/it/article/5524?f=wb为了以后能开发PHP扩展,就一定要了解PHP的执行顺序。这篇文章就是为C开发PHP扩展做铺垫。 Web环境我们假设为Apache。在编译PHP的时候,为了能够让Apache支持PHP,我们会生成一个mod_php5.so的模块。Apache加载这个模块,在url访问.php文件的时候,就会转给mod_php5.so模转载 2015-07-31 21:47:37 · 1037 阅读 · 0 评论 -
网络协议栈和tcpdump抓包练习
1 HTTP 抓包sudo tcpdump -Av -c 100 dst 45.56.11.12800:48:55.309909 IP (tos 0x0, ttl 64, id 8600, offset 0, flags [DF], proto TCP (6), length 1060) x-OptiPlex-9020.local.60977 > ec2-54-65-转载 2015-01-13 00:52:32 · 1562 阅读 · 0 评论 -
软件系统结构与开发环境
《软件系统结构与开发环境》 Chapter 2 软件开发平台与软件系统架构 之 JAVAJVM的结构和解释执行代码流程jvm包括J2ee 框架注意RMI协议(远程调用),HTTP扩展的SOAP协议,三层(服务层(EJB),中间层,web层...)Servlet 和 HttpServletRequest, RequestDispatcher(包含其他Servlet或重定向htt转载 2015-01-15 03:18:23 · 1168 阅读 · 0 评论 -
短网址API设计
短网址服务做得最好的应该就是:bit.ly(包括支持数据统计等) 了。短网址服务说白了就是URL映射,将较长的URL映射成短字符串。短址本质上是实现了一个映射函数 f(x)-> y 。对于每一个 y, 能够找到唯一的一个 x 使得 f(x) = y。即不能产生一短URL地址对应多个长URL。可能的数据库存储格式为:ID,int, 自动增长;LURL,varchar,转载 2015-01-13 02:23:09 · 1039 阅读 · 0 评论 -
单点登录
单点登录(Single sign-on,SSO)是一种访问控制,在多个软件应用中,用户只需登录其中一个应用,就可以成功访问其他应用;同样,用户只需注销其中一个应用,就可以成功注销其他应用。 当一个公司产品线越来越复杂,做的东西越来越多,考虑到用户的便利性和业务的交集,单点登录也就变得越来越必然。譬如,阿里巴巴中的淘宝网,天猫,聚划算和一淘,考虑下面的场景:我们用户登录淘宝网购物,紧转载 2015-01-13 02:52:09 · 3655 阅读 · 0 评论 -
【系统设计】相关总结
1 nosql, bigdata, concurrency, distribute 1. NO SQL:K/V store: Memcached, RedisDocument based: Mongodb, CouchDB (zhaoce大牛最钟爱的)Column based: HBase, CassandraGraph based: Neo4j2. BigData原创 2014-11-30 21:41:45 · 880 阅读 · 0 评论 -
分布式Redis搭建案例
分布式Redis搭建案例来自于:服务端框架工具经验 作者:但红卫 2014-08-10 16:51使用场景项目需要有大量的数据缓存,包括永久的账号信息缓存,计数,临时的信息缓存等。 对同一个key,有很多不同的value值需要保存,为了减少在线请求的网络请求开销,redis中的hash类型比较符合需求。另由于存储数据量较大,需要进行多台服务器的部署,经过调研选择转载 2014-09-11 17:36:57 · 963 阅读 · 0 评论 -
Node.js之网游服务器实践
Node.js之网游服务器实践来自于:服务端框架工具经验 作者:尧飘海 2014-08-13 11:50随着Node.js的不断发展与壮大,应用范围也越来越广泛,从传统的企业应用,到互联网使用,再到云计算的发展,它的身影也是随处可见。当然,它的受欢迎程度能在短时间内得到这么快的发展,除却与其本身的事件模型及V8的性能优化等一系列特性有关之外,还和国内外很多互联网公司的攻城师的大转载 2014-09-11 17:41:06 · 582 阅读 · 0 评论 -
数据库表结构设计常见场景及若干技巧
数据库表结构设计常见场景及若干技巧来自于:数据可视化 作者:曾丹 2014-09-09 13:14一、树型关系的数据表不少人在进行数据库设计的时候都遇到过树型关系的数据,例如常见的类别表,即一个大类,下面有若干个子类,某些子类又有子类这样的情况。当类别不确定,用户希望可以在任意类别下添加新的子类,或者删除某个类别和其下的所有子类,而且预计以后其数量会逐步增长,此时我们就转载 2014-09-11 17:40:34 · 2416 阅读 · 0 评论 -
分布式版本管理工具GIT使用心得
分布式版本管理工具GIT使用心得来自于:服务端框架工具经验 作者:gufeiyong 2014-08-13 11:01为什么选择git从这个项目开始,我们项目组已经全面把代码管理从SVN转移到了GIT。很多人会问为什么不用SVN呢?svn有什么不好吗? SVN缺点SVN的确是一个很强大的版本管理工具,但是他有以下一些缺点:1.代码提交更新等操作速度慢。由于s转载 2014-09-11 17:48:32 · 993 阅读 · 1 评论 -
nginx源码
Nginx基本数据结构概览来自于:服务端架构设计 作者:杭建 2014-08-26 21:10引言nginx实现中有很多结构体,一般命名为ngx_xxx_t。这些结构体分散在许多头文件中。src/core/ngx_core.h中把几乎所有的头文件都集合起来。也因此造成了nginx各部分源代码的耦合。但实际上nginx各个部分逻辑划分还是很明确的,整体上是一种松散的结构。转载 2014-09-11 17:59:04 · 815 阅读 · 0 评论 -
深入浅出node.js游戏服务器开发3--基于Pomelo的MMO RPG开发
深入浅出node.js游戏服务器开发3--基于Pomelo的MMO RPG开发来自于:服务端框架工具经验 作者:谢骋超 2014-08-13 11:43作者:谢骋超,张小刚在上一篇文章中,我们介绍了如何使用Pomelo来搭建聊天服务器。在这篇文章中,我们为大家介绍如何使用Pomelo框架来搭建MMO RPG服务器,并分析其设计思路和实现方法。转载 2014-09-11 17:42:09 · 1019 阅读 · 0 评论 -
RabbitMQ流控机制
Q实现了一种流控机制来避免上述问题。RabbitMQ流控机制的核心是一个称为{InitialCredit, MoreCreditAfter}的元组,默认情况下值为{200, 50}。假如消息发送者进程A要给接收者进程B发消息,每发一条消息,Credit数量减1,直到为0,A被block住,对于接收者B,每接收MoreCreditAfter条消息,会向A发送一条消息,给予A Mo转载 2014-09-11 17:52:11 · 6724 阅读 · 0 评论 -
Kafka是个奇葩!——Linkin论文学习笔记
Kafka是啥?是个消息中间件吗?那和市面上其他一堆堆的中间件例如ActiveMQ, RabbitMQ有什么区别?答案只有一个:Kafka是个集群的消息中间件+存储,一个节点可以存储几T的数据!为啥一个中间件需要存储数据呢?慢慢道来……原来,对于Linkin这样的互联网企业来说,用户和网站上产生的数据有三种:需要实时响应的交易转载 2014-09-11 17:37:56 · 3884 阅读 · 0 评论 -
进程ipc和线程通信
一、互斥与同步1.互斥:是指某一资源同时只允许一个访问者对其进行访问,具有唯一性和排它性。但互斥无法限制访问者对资源的访问顺序,即访问是无序的。2.同步:是指在互斥的基础上(大多数情况),通过其它机制实现访问者对资源的有序访问。在大多数情况下,同步已经实现了互斥,特别是所有写入资源的情况必定是互斥的。少数情况是指可以允许多个访问者同时访问资源.3.同步是一种更为复杂的互斥,转载 2014-09-27 10:09:46 · 635 阅读 · 0 评论 -
tcp状态迁移
图1 TCP状态变迁图 咋一看这图,让人头大。下面会详细分析图中的所有状态,这些状态跟TCP三次握手与四次挥手有着非常密切的联系,关于这个可以参看前面拙文。 CLOSED:表示初始状态。对服务端和C客户端双方都一样。 LISTEN:表示监听状态。服务端调用了listen函数,可以开始accept连接了。 SYN转载 2014-09-27 10:03:59 · 624 阅读 · 0 评论 -
反向代理的概念及提高WEB服务器的安全性
反向代理的概念及提高WEB服务器的安全性 2007-09-08 09:43:52分类:反向代理的概念及提高WEB服务器的安全性公司上了几台服务器用suid做了反向代理,开始还有点闹不明白,不过后来清楚了,问能不能抵抗dos之类的攻击,呵呵用Squid实现反向代理背景介绍:代理服务器是使用非常普遍的一种将局域网主机联入互联网的一种方式,使用代理上网转载 2014-09-27 00:28:14 · 2832 阅读 · 0 评论 -
HTTP协议头部与Keep-Alive模式详解
1、什么是Keep-Alive模式?我们知道HTTP协议采用“请求-应答”模式,当使用普通模式,即非KeepAlive模式时,每个请求/应答客户和服务器都要新建一个连接,完成 之后立即断开连接(HTTP协议为无连接的协议);当使用Keep-Alive模式(又称持久连接、连接重用)时,Keep-Alive功能使客户端到服 务器端的连接持续有效,当出现对服务器的后继请求时,Keep-Alive转载 2014-09-27 00:35:26 · 596 阅读 · 2 评论 -
一道fork的triky面试题
一个fork的面试题2012年8月1日陈皓发表评论阅读评论68,947 人阅读 前两天有人问了个关于Unix的fork()系统调用的面试题,这个题正好是我大约十年前找工作时某公司问我的一个题,我觉得比较有趣,写篇文章与大家分享一下。这个题是这样的:题目:请问下面的程序一共输出多少个“-”?123456转载 2014-09-27 10:20:02 · 705 阅读 · 0 评论 -
现代体系结构(指令流水),中断处理(中断隐指令,中断门,Do_IRQ,关中断,Do_IRQ_Handler, 软中断SWI,中断嵌套与屏蔽),语句同步处理
现代体系结构:1 流水五级流水: ( =》代表经过时钟边缘触发。对于a-》b=》c:b为时钟触发,a为触发前的输入,c为触发后的输出。 -》代表不经过时钟触发器的计算/处理 )PC=>PC+4->PC->instruction->IR=>RegCtrl->IRex=>ExCtrl->IRmem=>MemCtrl->IRwb=>WbCtrl->Reg每条命令经过5次 =》时原创 2016-02-21 00:00:14 · 2120 阅读 · 3 评论