随笔分类 -  架构设计

架构设计
进程分配内存的两种方式--brk() 和mmap()(不设计共享内存)(转)
摘要:如何查看进程发生缺页中断的次数? 用ps -o majflt,minflt -C program命令查看。 majflt代表major fault,中文名叫大错误,minflt代表minor fault,中文名叫小错误。 这两个数值表示一个进程自启动以来所发生的缺页中断的次数。 发成缺页中断后,执行 阅读全文
posted @ 2019-08-09 14:43 Dufe王彬 阅读(308) 评论(0) 推荐(0) 编辑
EPOLL内核原理极简图文解读(转)
摘要:预备知识:内核poll钩子原理内核函数poll_wait把当前进程加入到驱动里自定义的等待队列上 当驱动事件就绪后,就可以在驱动里自定义的等待队列上唤醒调用poll的进程 故poll_wait作用:可以让驱动知道 事件就绪的时候唤醒哪些等待进程 钩子poll内核f_op->poll必须配合驱动自己的 阅读全文
posted @ 2019-07-30 11:05 Dufe王彬 阅读(417) 评论(0) 推荐(0) 编辑
从零到卓越:京东客服即时通讯系统的技术架构演进历程(转)
摘要:京东的客服即时通讯系统名为咚咚是。咚咚之于京东相当于旺旺之于淘宝,它们都是服务于买家和卖家的沟通。 自从京东开始为第三方卖家提供入驻平台服务后,咚咚也就随之诞生了。 我们首先看看它诞生之初是什么样的。 1.0 版:诞生了(时间:2010 - 2011) 为了业务的快速上线,1.0 版本的技术架构实现 阅读全文
posted @ 2018-11-22 11:39 Dufe王彬 阅读(2522) 评论(0) 推荐(0) 编辑
一套海量在线用户的移动端IM架构设计实践分享(含详细图文)(转)
摘要:1、写在前面 1.1、引言 如果在没有太多经验可借鉴的情况下,要设计一套完整可用的移动端IM架构,难度是相当大的。原因在于,IM系统(尤其是移动端IM系统)是多种技术和领域知识的横向应用综合体:网络编程、通信安全、高并发编程、移动端开发等,如果要包含实时音视频聊天的话,则还要加上难度更大的音视频编解 阅读全文
posted @ 2018-11-22 11:23 Dufe王彬 阅读(2623) 评论(0) 推荐(1) 编辑
微信、陌陌等著名IM软件设计架构详解(转)
摘要:对微信、陌陌等进行了分析,发出来分享一下(时间有些久了) 电量:对于移动设备最大的瓶颈就是电量了。因为用户不可能随时携带电源,充电宝。所以必须考虑到电量问题。那就要检查我们工程是不是有后台运行,心跳包发送时间是不是合理。 流量:对于好多国内大部分屌丝用户来说可能还是包月30M,那么我们必须站在广大用 阅读全文
posted @ 2018-09-17 17:33 Dufe王彬 阅读(304) 评论(0) 推荐(0) 编辑
运维中的日志切割操作梳理(Logrotate/python/shell脚本实现)(转)
摘要:对于Linux系统安全来说,日志文件是极其重要的工具。不知为何,我发现很多运维同学的服务器上都运行着一些诸如每天切分Nginx日志之类的CRON脚本,大家似乎遗忘了Logrotate,争相发明自己的轮子,这真是让人沮丧啊!就好比明明身边躺着现成的性感美女,大家却忙着自娱自乐,罪过!logrotate 阅读全文
posted @ 2018-05-11 14:33 Dufe王彬 阅读(215) 评论(0) 推荐(0) 编辑
游戏服务端架构 介绍(转)
摘要:游戏服务端架构 介绍 端游、手游服务端常用的架构是什么样的? http://www.zhihu.com/question/29779732 根据知乎问答文章整理而成。 作者:韦易笑 谢邀,手游页游和端游的服务端本质上没区别,区别的是游戏类型。 类型1:卡牌、跑酷等弱交互服务端 卡牌跑酷类因为交互弱, 阅读全文
posted @ 2018-03-17 15:04 Dufe王彬 阅读(321) 评论(0) 推荐(0) 编辑
跟我学OpenResty(Nginx+Lua)开发目录贴 (转)
摘要:使用Nginx+Lua开发近一年的时间,学习和实践了一些Nginx+Lua开发的架构,为了让更多人使用Nginx+Lua架构开发,利用春节期间总结了一份基本的学习教程,希望对大家有用。也欢迎谈探讨学习一些经验。 目录 第一章 安装Nginx+Lua开发环境 第二章 Nginx+Lua开发入门 第三章 阅读全文
posted @ 2017-11-20 16:21 Dufe王彬 阅读(1379) 评论(0) 推荐(0) 编辑
Swagger入门教程(转)
摘要:[译]5.41 Swagger tutorial 单击此处查看原文 更多概念参见:Implementing Swagger with your API docs 关于 Swagger Swagger能成为最受欢迎的REST APIs文档生成工具之一,有以下几个原因: Swagger 可以生成一个具有 阅读全文
posted @ 2017-10-28 16:12 Dufe王彬 阅读(1860) 评论(0) 推荐(0) 编辑
网络游戏的同步
摘要:近期完成一个稍稍涉及网络同步的游戏,结合网络上查到的一点资料和自己的心得做个小结。 游戏描述:略形象的归纳为地图中5个玩家在5个不同位置消息,地图中有20个道具,玩家选择出发时间,出发角度和出发速度去奔向某道具。现在玩家1向server发消息,准备从当前currposition出发,对应的currt... 阅读全文
posted @ 2014-08-25 18:23 Dufe王彬 阅读(311) 评论(0) 推荐(0) 编辑
海量文件或数据 导致高并发,高流量处理方案
摘要:在互联网快速发展的背景下,特别是Web 2.0,网络上的数据内容呈几何级的增长,而其中增长最快并且最容易给技术架构带来挑战的就是数目庞大的小文件,如何来解决这种高并发,大流量,小文件,热点不集中的问题,经过我们大量研究,实践之后,总结出这种海量小文件,高并发所存在的关键问题和解决方案。  我们先对比一下在Web 1.0的解决方案和Web 2.0的我们碰到的困难。  Web 1.0解决方案:  1、源数据量小,单台squid即可达到很高的命中率。  2、请求量大,用lvs+squid或者dns轮询即可解决问题。  3、squid服务器磁盘IO压力大,用超大内存做Cache。  Web 2.0目前 阅读全文
posted @ 2010-12-12 20:59 Dufe王彬 阅读(1037) 评论(0) 推荐(0) 编辑
数据库瓶颈之关系型数据库性能优化总结
摘要:对于web应用开发,多数性能瓶颈均出现在数据库上,除了采用分布式架构或云处理(大公司基本上都是),更重要的是平时程序设计时要遵照一些规则,从根本上提高系统的性能,以下总结了一些常用的规则方法,仅供参考,欢迎跟帖补充。。1、 把数据、日志、索引放到不同的I/O设备上,增加读取速度。数据量(尺寸)越大,提高I/O越重要。2、 纵向、横向分割表,减少表的尺寸,如:可以把大数据量的字段拆分表。3、 根据查询条件,建立索引,优化索引、优化访问方式,限制结果集的数据量。注意填充因子要适当(最好是使用默认值0)。索引应该尽量小,尽量使用字节数小的列建索引,不要对有限的几个值的列建单一索引。4、 用OR的字句 阅读全文
posted @ 2010-12-12 20:58 Dufe王彬 阅读(453) 评论(0) 推荐(0) 编辑
一个支持40万并发用户的即时通讯架构介绍(转载)
摘要:前言:看了些讨论类似QQ的系统的文章,自己以前参与的一个项目,就做这个,不过规模相对小点。写份文档,旨在清理清理思路,交流一下经验。这里的一些模块名称(ACS、NAS),采用了以前公司的命名方式,我觉得这么用不当,觉得没有必要令换个名字。文中的内容与那个系统也有很大的区别,时间太长了,很多东西记不清了是一个原因,再者一直觉得那东西问题多多,做了些更改,同时为简单起见,去掉了很多的细节内容。准确地说... 阅读全文
posted @ 2009-02-17 10:19 Dufe王彬 阅读(1426) 评论(1) 推荐(0) 编辑
架构设计分类
摘要:SNDA-RPC 协议规范 proposal 草案 Riceball LEE 2008-07-24 08:15 阅读:420 评论:1 ”面向接口编程“的一点应用 王孟军! 2008-07-13 02:00 阅读:2145 评论:28 “面向接口编程”的一些想法 王孟军! 2008-07-09 10:51 阅读:1968 评论:37 一个自己写的组件--异常报告(3... 阅读全文
posted @ 2008-08-04 13:55 Dufe王彬 阅读(400) 评论(0) 推荐(0) 编辑