muduo库整体架构简析】的更多相关文章

muduo是一个高质量的Reactor网络库,采用one loop per thread + thread loop架构实现,代码简洁,逻辑清晰,是学习网络编程的很好的典范. muduo的代码分为两部分,base和net,base部分实现一些基础功能,例如log, thread, threadpool, mutex, queue 等,这些基础模块在后面网络库中很多地方都可以复用, base库的类相互之间耦合性较低,源码阅读起来并不困难,此处不做过多探究. net部分使用base中的工具类实现更高…
在本系列的第一篇中,简述了SequoiaDB的安装,以及一个(伪)集群的部署 第二篇和第三篇对SequoiaDB的集群,做了简单地操作. 在本篇中,将对SequoiaDB的架构进行简单的分析. 因为自身能力有限,对于架构这么高大上的主题,不敢轻言.因此本文会摘抄SequoiaDB官方的描述,加上自己的理解,达到共同学习的目的. 在解析之前,先简单叙述一下分布式系统的CAP理论: C:代表一致性,即在某时刻,分布式系统中节点数据应该是相同的: A:代表可用性,即有求必应,在分布式系统中某节点后,统…
0 引言        目前,互联网在社会中扮演的角色越来越重要.通过互联网为广大群众提供服务,也是互联网成功的关键.互联网服务架构目前大多数都是基于REST架构来完成的.REST从它诞生至今,可以说为互联网的繁荣做出了不可磨灭的贡献.REST架构到底是一种什么样的架构,而它为何有这种魔力,这里我们就来刨根问底,挖掘它的内在以及潜在意义. 1 绪论 1.1 软件架构        软件架构是一种软件运行时的抽象.软件运行的健壮性.扩展性.效率,软件使用的简洁性通常用来评判一种软件好坏的标志,也是…
一.Nginx的模块化 模块化结构的思想是一个很久的概念,但也正是成熟的思想造就了Nginx的巨大优越性. 我们知道Nginx从总体上来讲是有许多个模块构成的.习惯将Nginx分为5大模块分别为:核心模块,标准HTTP模块,可选HTTP模块,邮件服务模块和第三方模块. 这5个模块由上到下重要性一次递减. (1)核心模块: 核心模块是Nginx服务器正常运行必不可少的模块,如同操作系统的内核.它提供了Nginx最基本的核心服务.像进程管理.权限控制.错误日志记录等: (2)标准HTTP模块: 标准…
使用jsp.php.asp或者后来的struts等等的朋友,不一定知道什么是模版,但一定很清楚这样的开发方式: <div class="m-carousel"> <div class="m-carousel-wrap" id="bannerContainer"> </div> </div> <ul class="catelist onepx" onepxset="…
本文转自EasyDarwin开源团队成员John的博客:http://blog.csdn.net/jyt0551/article/details/73310641 EasyPlayer 是一款小而美的RTSP安卓播放器.具有起搏快.延迟底.兼容性好的特点,而且支持抓拍.录像等实用功能. 好了,我就在此简单介绍一下播放器的代码结构吧! 播放 简单来说,EasyPlayer就是一个典型的生产者.消费者模式案例,如下图所示: 首先,创建音视频消费者线程.线程刚开始,会等待音视频数据帧,根据音视频相关信…
构建 CDN 分发网络架构 CDN的基本目的:1.通过本地缓存实现网站的访问速度的提升 CDN的关键点:CNAME在域名解析:split智能分发,引流到最近缓存节点…
PDF 版: Java Annotation.pdf, PPT 版:Java Annotation.pptx, Keynote 版:Java Annotation.key 一.Annotation 示例 Override Annotation   Java   1 2 3 @Override public void onCreate(Bundle savedInstanceState);   Retrofit Annotation   Java   1 2 3 @GET("/users/{use…
这是摘抄<共享库PATH与ld.so.conf简析>1. 往/lib和/usr/lib里面加东西,是不用修改/etc/ld.so.conf的,但是完了之后要调一下ldconfig,不然这个library会找不到 2. 想往上面两个目录以外加东西的时候,一定要修改/etc/ld.so.conf,然后再调用ldconfig,不然也会找不到 比如安装了一个到/usr/local/mysql,mysql有一大堆library在/usr/local/mysql/lib下面,这时就需要在/etc/ld.s…
3D文件压缩库——Draco简析 今年1月份时,google发布了名为“Draco”的3D图形开源压缩库,下载了其代码来看了下,感觉虽然暂时用不到,但还是有前途的,故简单做下分析. 注:Draco 代码地址: https://github.com/google/draco 基本使用 编译 cmake . + make 编译源码,生成 draco_encoder 和 draco_decoder 两个可执行文件 编码/压缩 使用 draco_encoder 压缩 obj 或 ply 的文件: ./d…