1.首先要自己实现一个网络库,或者选择已经开源的网络库。比如:muduo、libevent、boost的asio等。2.实现核心功能:连接管理,消息管理,定时器,事件机制,Lua脚本引擎,程序模块管理。3.实现完2中的功能后就可以用这些搭建分布式的程序了。可以着手实现网关, DB服务器,以及游戏逻辑 ...
分类:
编程语言 时间:
2016-08-23 14:47:25
阅读次数:
158
1. 设计 Muduo网络库实战(二)中的"1. 方案的确定" 2. 实战 采用Muduo网络库进行服务器的搭建工作; 思路: 一旦客户端连接服务器成功,调用OnConnection()函数; 当客户端发送数据给服务器,调用OnMessage()函数,处理数据并利用线程池进行搜索返回结果; 其中服务 ...
分类:
其他好文 时间:
2016-08-19 20:47:35
阅读次数:
154
一 整体架构 整个搜索引擎网站为一个Web应用平台,采用LAMP架构(Linux + Apache + MySQL + PHP); (链接:LAMP架构的搭建) 其中PHP负责网站的前端,后端使用C++编写; 服务器后台包括倒排索引模块和搜索模块; 类似于: 二 开源工具的确定 1. Muduo网络 ...
分类:
其他好文 时间:
2016-08-19 20:37:19
阅读次数:
178
1. 方案的确定 1)基本需求 用户1000+, IO压力不大; 多个客户端打开网站,输入查询字符串strclient,发送给服务器=》服务器接收客户端发过来的数据并处理,将结果返回给客户端; 2)并发网络服务程序设计方案 详见:《Muduo_网络库使用手册》的1.6节-《详解Muduo多线程模型》 ...
分类:
其他好文 时间:
2016-08-01 00:15:45
阅读次数:
1008
1. 参考资料 《Muduo_网络库使用手册》 2. 实战记录 1) muduo依赖项安装 centos安装cmake命令:# yum install cmake centos安装libboost库:推荐使用源码安装,因为命令安装后发现muduo编译出错; (链接:boost命令安装&&源码安装) ...
分类:
其他好文 时间:
2016-07-31 15:51:06
阅读次数:
178
第一步:下载源码和文档 下载muduo项目的源码、《muduo-manual.pdf》文档,以及《Linux多线程服务端编程:使用muduo C++网络库.pdf》,这些是前期准备工作,都能在网上下载。 网站:http://www.chenshuo.com/ 第二步:先看看muduo-manual ...
分类:
其他好文 时间:
2016-07-14 01:31:34
阅读次数:
618
Unix/Linux上的五种IO模型(UNP6.2) IO多路复用一般不能和blocking IO用在一起,因为blocking IO中read() write() accept() connect()都有可能阻塞当前线程,这样线程就没办法处理其他socket上的IO事件了 non-blocking ...
分类:
其他好文 时间:
2016-07-02 17:25:42
阅读次数:
189
单例模式? 只能实现一个实例的类成为单例。 muduo库中单例模式实现 ...
分类:
其他好文 时间:
2016-06-23 22:11:50
阅读次数:
112
这个系列把毕业论文的部分贴了出来,以作保存留念。整个系列分为三大部分,其中第一章到第三章是介绍服务器的系统层设计,设计思路参考了libevent和muduo等开源代码的实现;第四章到第六章是介绍服务器的服务层设计,设计思路参考了自己的Khala实现;第七章介绍了如何利用该服务器框架实现一款类似于QQ ...
分类:
编程语言 时间:
2016-06-15 01:45:18
阅读次数:
428
在剖析完Muduo网络库源码之后,我们试着完成一个高效的数独和八数码问题求解服务器。
先说说为什么要选择这两个问题?数独问题一直是陈硕老师很喜欢的问题,在muduo网络库中多次提到并有示例。八数码问题是我很喜欢的问题,所以在此综合完成求解数独和八数码问题的高效服务端程序。
编写这样一个看似简单的服务程序的技术含量远高于所谓的控件堆砌型开发,虽然有muduo网络库帮助我们处理网络事件,我们只需要...
分类:
其他好文 时间:
2016-05-30 15:10:14
阅读次数:
218