自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Tzecto

你要悄悄打工,然后惊艳所有人

  • 博客(665)
  • 收藏
  • 关注

原创 muduo

文章目录channelPollerEPollPollerEventLoop(channel 和 epoll之间的桥梁)channel理解为通道,对文件描述符管理的一个类,封装了sockfd和其感兴趣的event 如EOLLIN、EPOLLOUT事件 还绑定了poller返回的具体事件class EpollPoller : public Pollerchannel update => eventLoop update_channel => Poller => epollPoller

2022-05-26 18:47:53 503

原创 海量数据处理

vvv

2022-08-23 14:32:31 372 1

原创 c++右值引用

c++ 右值引用

2022-07-25 15:55:47 269

原创 对象使用过程中背后调用了哪些方法

c++

2022-07-22 14:50:30 158

原创 从编译器角度理解c++代码的编译和链接原理

编译原理

2022-07-17 19:00:21 279

原创 nginx

nginx

2022-06-30 15:37:44 512

原创 从指令交读掌握函数调用堆栈详细过程

啊啊

2022-06-24 21:20:07 120

原创 HTTP篇

网络

2022-06-23 22:53:28 115

原创 键入网址到网页显示,期间发生了什么?

网络

2022-06-23 16:18:57 333

原创 Redis集群

redis集群

2022-06-22 20:04:31 187

原创 Redis持久化

Redis持久化

2022-06-22 14:17:53 280

原创 zookeeper

zookeeper

2022-06-21 19:54:15 190

原创 贪心算法总结

贪心

2022-06-18 11:05:41 191

原创 数据库优化

mysql优化

2022-06-14 10:29:22 75

原创 数据库日志

数据库日志

2022-06-13 15:10:31 274

原创 qt中文乱码

qt乱码

2022-06-07 22:40:40 160 1

原创 redis数据结构

redis

2022-06-06 23:20:56 99

原创 回溯相关问题

回溯

2022-06-06 13:43:54 74

原创 数据库锁问题

mysql事务

2022-06-01 20:00:15 372

原创 数据库事务

数据库事务

2022-05-31 23:39:05 81

原创 二叉树相关问题2

文章目录105. 从前序与中序遍历序列构造二叉树106. 从中序与后序遍历序列构造二叉树105. 从前序与中序遍历序列构造二叉树给定两个整数数组 preorder 和 inorder ,其中 preorder 是二叉树的先序遍历, inorder 是同一棵树的中序遍历,请构造二叉树并返回其根节点。示例 1:输入: preorder = [3,9,20,15,7], inorder = [9,3,15,20,7]输出: [3,9,20,null,null,15,7]/** * Definitio

2022-05-30 10:08:26 178

原创 数据库索引

文章目录MySQL索引索引分类索引的创建和删除MySQL索引只要是关系型数据库,索引都是其查询最核心的关键当表中的数据量到达几十万甚至上百万的时候,SQL查询所花费的时间会很长,导致业务超时出错,此时就需要用索引来加速SQL查询。由于索引也是需要存储成索引文件的,因此对索引的使用也会涉及磁盘I/O操作。如果索引创建过多,使用不当,会造成SQL查询时,进行大量无用的磁盘I/O操作,降低了SQL的查询效率,适得其反,因此掌握良好的索引创建原则非常重要!索引也是数据结构,要对索引列,存储引擎会对这列的值

2022-05-26 23:43:03 219

原创 数据库引擎

文章目录MyISAM和InnoDBmyisaminnodbmyisam和innodb的区别各存储引擎的区别MyISAM和InnoDB数据存储的方式不一样,一张表要存储表结构,表数据,表索引。myisammyisam一张表有proxies_priv.frm .myd .myi,他的数据和索引是单独存放的,innodb除了存储表结构,它的数据和索引是存在一个文件当中的(server_cost.ibd).frm。这也是innodb存储引擎情况下,你就算没给它加主键,它也会自动给你生成一个主键。而my

2022-05-26 22:57:00 65

原创 c++海量数据和topk

文章目录查重问题位图法哈希表示例1有内存限制解决方法一:分治法解决方法一:哈希表解决方法二:位图法找所有重复的数字,或者是找第k个重复的数字,都是在上面的代码中做相应的修改就可以了。示例2 多个文件解决1topk问题小根堆和大根堆快排分割函数面腾讯的时候的问题当时被刷了,现在回来想想c++如何处理海量数据查重就是在一组海量数据中,查找重复的数据,这类问题大家第一反应就是使用哈希表,没有错,很多情况下人家考察的也就是对于哈希表的理解和应用,哈希表肯定是要熟练掌握的,还有位图法也是查重常用到的方法。当然在对

2022-05-26 13:51:44 347

原创 nginx配置tcp负载均衡

nginx下载在服务器快速集群环境搭建中,都迫切需要一个能拿来即用的负载均衡器,nginx在1.9版本之前,只支持http协议web服务器的负载均衡,从1.9版本开始以后,nginx开始支持tcp的长连接负载均衡,但是nginx默认并没有编译tcp负载均衡模块,编写它时,需要加入**–with-stream**参数来激活这个模块。nginx编译加入--with-stream参数激活tcp负载均衡模块nginx编译安装需要先安装pcre、openssl、zlib等库,也可以直接编译执行下面的confi

2022-05-22 14:28:36 357

原创 分布式集群chat

文章目录代理节点ProxyServiceproxyServerproxyService业务节点userServiceGroupServiceFriendServiceOfflineService日志LogServer代理节点ProxyServiceProxyService 作为整个服务单元的入口,整个服务单元对外暴露的也是它的 Host 信息,对于客户端的请求信息,它会首先去判断这个信息是哪个业务,如果是以下业务节点,它就会去Zookeeper注册中心,找到提供这个服务的服务节点,并把这个请求信息分

2022-05-21 21:52:11 317

原创 二叉树相关问题

文章目录144. 二叉树的前序遍历94. 二叉树的中序遍历144. 二叉树的前序遍历给你二叉树的根节点 root ,返回它节点值的 前序 遍历。示例 1:输入:root = [1,null,2,3]输出:[1,2,3]示例 2:输入:root = []输出:[]示例 3:输入:root = [1]输出:[1]/** * Definition for a binary tree node. * struct TreeNode { * int val; * Tre

2022-05-20 23:24:41 70

原创 myRpc

文章目录集群和分布式集群单机服务器切换到集群服务器所有服务器共同构成一个聊天系统集群和分布式分布式问题RPC通信原理protobuf的使用从业务出发谈怎么使用一个框架定义protobuf,然后生成相关代码本地服务怎么发布成RPC服务框架使用MprpcApplicationRpcProvider这里使用ServiceInitprovider+channelRpcProvider的网络服务在rpc上面发布服务-map表接受一个rpc调用请求的时候,它怎么知道要调用应用程序的哪个服务对象的哪个rpc方法呢?请求的

2022-05-20 20:31:32 263

原创 RpcChannel

文章目录Rpc调用方(caller)callMethodRpcControlRpc调用方(caller)stub.Login() 或者其他方法,实际上都调用的是RpcChannel::callMethod方法 集中做rpc方法调用的参数序列化和网络发送int main(int argc, char **argv){ // 整个程序启动以后,想使用mprpc框架来享受rpc服务调用,一定需要先调用框架的初始化函数(只初始化一次) MprpcApplication::Init(argc,

2022-05-20 18:06:04 222

原创 zookeeper分布式协调服务

文章目录为啥要zookeeperZookeeper提供了什么zookeeper客户端常用命令分布式系统的问题客户端和服务端提供者的紧耦合解决心跳机制(session会话)永久性节点临时性节点(我们所需要的)watcher机制(观察者模式)原生ZkClient API存在的问题为啥要zookeeperZookeeper是在分布式环境中应用非常广泛,它的优秀功能很多,比如分布式环境中全局命名服务,服务注册中心,全局分布式锁等等。之前我们发布一个rpc请求的时候,rpcChannel是直接知道rpc请求在那

2022-05-20 16:58:59 484

原创 RpcProvider-RpcChannel

文章目录RpcProvider的网络服务在rpc上面发布服务RpcProvider的网络服务启动rpc服务节点,开始提供rpc远程网络服务调用// 读取配置文件rpcserver的信息std::string ip = MprpcApplication::GetInstance().GetConfig().Load("rpcserverip");uint16_t port = atoi(MprpcApplication::GetInstance().GetConfig().Load("rpcserv

2022-05-19 19:41:56 279

原创 muduo-tcpConnection

tcpConnectiontcpserver 通过accepter,有一个新用户连接,accep拿到connfdtcpconnection设置channel相应回调,poller调用回调class TcpConnection : NonCopyable, public enable_shared_from_this<TcpConnection>{private: enum StateE { k_disconnected, k_conn

2022-05-19 15:29:30 90

原创 从业务出发谈怎么使用一个框架

文章目录定义protobuf,然后生成相关代码本地服务怎么发布成RPC服务框架使用MprpcApplicationRpcProvider这里使用ServiceInit定义protobuf,然后生成相关代码syntax = "proto3";package fixbug;option cc_generic_services = true;message ResultCode{ int32 errcode = 1; bytes errmsg = 2;}message L

2022-05-18 22:37:20 104

原创 c++函数对象

文章目录函数对象使用函数对象有什么好处解决1-函数指针解决2-函数对象函数对象堆使用函数对象set使用函数对象把有operator()小括号运算符重载函数的对象,称作为函数对象或者仿函数使用函数对象有什么好处template<typename T>bool compare(T a, T b){ return a > b;}int main(){ cout << compare(10, 20) << endl; cout << c

2022-05-17 23:04:15 153

原创 muduo库的使用

文章目录网络服务器编程常用模型Reactor模型muduo库的使用流程网络服务器编程常用模型accept + read/write 不是并发服务器accept + fork - process-pre-connection 适合并发连接数不大,计算任务工作量大于fork的开销accept + thread thread-pre-connection 比方案2的开销小了一点,但是并发造成线程堆积过多muduo的网络设计:reactors in threads - one loop per t

2022-05-17 15:32:39 521

原创 设计模式-观察者模式

文章目录行为型模式行为型模式行为型模式:主要关注的是对象之间的通信观察者模式Observer Pattern(发布-订阅模式)设计模式:主要关注的是对象的一对多的关系,也就是多个对象都依赖一个对象,当该对象的状态发生改变时,其它对象都能够接收到相应的通知。一组数据(数据对象) => 通过这一组数据 =》 曲线图(对象1)/柱状图(对象2)/圆饼图(对象3)当数据对象改变时,对象1、对象2、对象3应该及时的收到相应的通知!Observer1 Observer2 Observer

2022-05-17 15:32:15 408

原创 栈与队列相关问题

用栈实现队列请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(push、pop、peek、empty):实现 MyQueue 类:void push(int x) 将元素 x 推到队列的末尾int pop() 从队列的开头移除并返回元素int peek() 返回队列开头的元素boolean empty() 如果队列为空,返回 true ;否则,返回 false说明:你 只能 使用标准的栈操作 —— 也就是只有 push to top, peek/pop from to.

2022-05-17 12:10:16 264

原创 设计模式-适配器模式

适配器模式的作用让不兼容的接口可以在一起工作,比如上课老师拿笔记本电脑投影到投影上,通过一个接口VGA HDMI TYPECVGA接口的电脑,投影仪也是VGA接口(TV)为啥要有适配器VGA接口的电脑, (TV)投影仪也是VGA接口*/class VGA // VGA接口类{public: virtual void play() = 0;};// TV01表示支持VGA接口的投影仪class TV01 : public VGA{public: void play() {

2022-05-16 21:19:23 76

原创 设计模式-装饰器模式

文章目录装饰器模式为什么又装饰器模式?装饰器模式装饰器模式给类增加功能,他与代理模式的设计结构非常相似为什么又装饰器模式?装饰器模式class Car // 抽象基类{public: virtual void show() = 0;};//三个实体的汽车类class Bmw : public Car{public: void show() { cout << "这是一辆宝马汽车,配置有:基类配置"; }};class Audi : public C

2022-05-16 20:32:40 135

原创 设计模式-代理模式

文章目录代理Proxy模式为什么要有代理模式?代理模式代理Proxy模式代理Proxy模式 : 通过代理类,来控制实际对象的访问权限客户 助理Proxy 老板 委托类找某个公司的老板的时候,都是前台或者助理先看你的身份够不够,代理就是看权限控制。为什么要有代理模式?class VideoSite // #1 抽象类{public: virtual void freeMovie() = 0; // 免费电影 virtual void vipMovie() = 0; // v

2022-05-16 20:10:06 67

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除