写在前面 所有代码加起来两千行,里面用到了语言、数据结构、计网、操作系统、数据库、redis等知识,可谓是麻雀虽小五脏俱全。 1、项目需求 客户端新用户注册 客户端用户登录 添加好友和添加群组 好友聊天 群组聊天 离线消息 nginx配置tcp负载均衡 集群聊天系统支持客户端跨服务器通信 2、Json Json是一种轻量级的数据交换格式。独立于编程…
一、关键技术点 使用C++语言级别的开发。 MySQL数据库编程、线程安全的懒汉单例模式、queue、C++11多线程编程、线程互斥、线程同步通信、生产者-消费者模型、基于CAS的原子整形、智能指针shared_ptr、lambda表达式等。 二、项目背景 为了提高MySQL数据库(基于C/S设计)的访问瓶颈,除了在服务端添加缓存服务器缓存常见的数…
前言 C++聊天服务器项目加上数据库连接池时出了bug。可我不会在Linux环境下调试,浪费了很多时间。虽然最后将这个bug解决了,但是这给了我一个警钟:必须要会GDB的简单使用 我将复现bug,使用GDB一步步地将bug揪出来。 其实这个bug,我事后回想了下,并不离谱,稍微推理下就应该知道大概在哪里出了岔子。 1、bug 复现 mysql Co…