学习2021
形形色色的人
这个作者很懒,什么都没留下…
展开
-
IM TeamTalk流程分析
登陆流程:1.用户名密码校验30分钟内密码错误次数,hash_map<string, list<uint32_t> > g_hmLimits;用list保存每次错误的时间,每次触发登陆的时候将超过30分钟的给剔除。 判断30分钟内密码错误次数是否大于10,返回。抽象接口class CLoginStrategy{public: virtual bool doLogin(const std::string& strName, const std::st...原创 2022-05-31 17:56:30 · 300 阅读 · 0 评论 -
非抢占式优先级调度算法
Priority schedulingis a type of scheduling algorithm used by the operating system to schedule the processes for execution. Thepriority schedulinghas both the preemptive mode of scheduling and the non-preemptive mode of scheduling. Here,we will discuss ...转载 2022-01-12 09:51:13 · 13195 阅读 · 2 评论 -
MySQL练习Monthly
use mysql;drop table if EXISTS Student;create table Student(Sid varchar(10),Sname nvarchar(10),Sage datetime,Ssex nvarchar(10));insert into Student values('01' , '赵雷' , '1990-01-01' , '男');insert into Student values('02' , '钱电' , '1990-12-21' , '男');.原创 2021-08-22 11:07:19 · 137 阅读 · 0 评论 -
zookeeper kafka
zookeeper环境搭建https://www.cnblogs.com/ysocean/p/9860529.html转载 2021-08-09 15:44:11 · 133 阅读 · 0 评论 -
网站技术实践
https://www.cnblogs.com/edisonchou/p/4281978.html转载 2021-08-06 11:31:48 · 95 阅读 · 0 评论 -
优先级反转问题及解决方法
(1)什么是优先级反转简单从字面上来说,就是低优先级的任务先于高优先级的任务执行了,优先级搞反了。那在什么情况下会生这种情况呢?假设三个任务准备执行,A,B,C,优先级依次是A>B>C;首先:C处于运行状态,获得CPU正在执行,同时占有了某种资源;其次:A进入就绪状态,因为优先级比C高,所以获得CPU,A转为运行状态;C进入就绪状态;第三:执行过程中需要使用资源,而这个资源又被等待中的C占有的,于是A进入阻塞状态,C回到运行状态;第四:此时B进入就绪状态,因为优先级比C高,转载 2021-07-20 21:45:35 · 2392 阅读 · 1 评论 -
线程的查看以及利用gdb调试多线程
https://blog.csdn.net/zhangye3017/article/details/80382496转载 2021-07-07 16:01:47 · 169 阅读 · 0 评论 -
LVS+KeepAlived+Nginx高可用实现方案
https://lupengfei.blog.csdn.net/article/details/86514445?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-2.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogComme转载 2021-07-06 15:47:56 · 113 阅读 · 0 评论 -
haproxy+keepalived高可用负载均衡构建。
haproxy是一个开源的,高性能的,负载均衡软件,借助haproxy可以快速,可靠的构建一个负载均衡群集。优点如下:可靠性和稳定性非常好,可以和硬件级的负载均衡设备F5相媲美。最高可同时维护40000-50000个并发连接,单位时间内处理的最大请求数为20000个。支持8种负载均衡算法,支持回话保持。支持虚拟主机功能。支持连接拒绝,全透明代理并且有一个功能强大的服务器状态监控界面。拥有功能强大的ACL支持。haproxy真的很强大。这里不对他的功能一样一样展示,读者可自行去转载 2021-07-06 11:05:52 · 178 阅读 · 0 评论 -
缓存穿透、缓存击穿、缓存雪崩区别和解决方案
一、缓存处理流程 前台请求,后台先从缓存中取数据,取到直接返回结果,取不到时从数据库中取,数据库取到更新缓存,并返回结果,数据库也没取到,那直接返回空结果。 二、缓存穿透 描述: 缓存穿透是指缓存和数据库中都没有的数据,而用户不断发起请求,如发起为id为“-1”的数据或id为特别大不存在的数据。这时的用户很可能是攻击者,攻击会导致数据库压力过大。 解决方案1 :接口层增加校验,如用户鉴权校验,id做基础校验,id<=...转载 2021-07-01 10:45:46 · 136 阅读 · 0 评论 -
c++ 异步消息队列
#include <stdio.h>#include <pthread.h>struct msg { int data; struct msg* next_msg;};struct msg * workq;pthread_mutex_t qlock = PTHREAD_MUTEX_INITIALIZER;pthread_cond_t qready = PTHREAD_COND_INITIALIZER;void init_queue(void){ pt.原创 2021-06-30 10:29:54 · 959 阅读 · 0 评论 -
容易忘记的快捷操作
1.Vim 打开文件同时定位到某一行vi +44 conf/nginx.conf原创 2021-06-25 23:31:06 · 91 阅读 · 0 评论 -
nginx如何解决惊群效应
https://www.jianshu.com/p/21c3e5b99f4ahttps://github.com/eesly/thundering_herd_problem/blob/master/server_epoll_thp.cpphttps://github.com/eesly/thundering_herd_problem/blob/master/server_epoll_thp.cpp原创 2021-06-25 11:29:33 · 131 阅读 · 0 评论 -
linux 自旋锁 vs 互斥锁
自旋锁占用的资源比较少,互斥锁占用的资源比较多如果阻塞的时间较短,则使用自旋锁比较好,否则,使用互斥锁,线程想要加锁的锁被占用,自旋锁则不停地等待询问锁是否被释放,互斥锁则加入等待队列,等待锁被释放。#include <stdio.h>#include <stdlib.h>#include <string.h>#include <pthread.h>#include <unistd.h>#include <tim...原创 2021-06-25 11:16:19 · 332 阅读 · 0 评论 -
nginx 基础结构
1.sudovi /etc/default/grub找到GRUB_CMDLINE_LINUX=""改为GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0"然后sudo grub-mkconfig -o /boot/grub/grub.cfg重启后,网卡名称果然变成了eth0和wlan0作者:流沙链接:https://www.zhihu.com/question/45796677/answer/116994126...原创 2021-06-20 22:39:50 · 106 阅读 · 0 评论 -
nginx 网络连接
#0 ngx_event_accept (ev=0xe49230) at src/event/ngx_event_accept.c:62#1 0x0000000000425b4e in ngx_epoll_process_events (cycle=0xe2a4e0, timer=<optimized out>, flags=<optimized out>) at src/event/modules/ngx_epoll_module.c:827#2 0x0000000...原创 2021-06-17 17:57:04 · 444 阅读 · 0 评论 -
nginx 配置文件常见问题汇总
问题1;原创 2021-06-15 23:07:11 · 155 阅读 · 0 评论 -
MySQL 聚集索引 辅助索引 覆盖索引
create table test_order( id int auto_increment primary key, user_id int, order_id int, order_status tinyint, create_date datetime);drop index idx_userid_order_id_createdate on test_order ;create index idx_userid_order_id_createdate.原创 2021-06-14 22:12:00 · 169 阅读 · 0 评论 -
redis 网络连接
1原创 2021-06-09 10:25:10 · 128 阅读 · 0 评论 -
MYSQL 触发器
触发器(trigger)是MySQL提供给程序员和数据分析员来保证数据完整性的一种方法,它是与表 事件相关的特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发,比 如当对一个表进行DML操作( insert , delete , update )时就会激活它执行。...原创 2021-06-06 20:21:05 · 107 阅读 · 0 评论 -
X86-64寄存器和栈帧
概要说到x86-64,总不免要说说AMD的牛逼,x86-64是x86系列中集大成者,继承了向后兼容的优良传统,最早由AMD公司提出,代号AMD64;正是由于能向后兼容,AMD公司打了一场漂亮翻身战。导致Intel不得不转而生产兼容AMD64的CPU。这是IT行业以弱胜强的经典战役。不过,大家为了名称延续性,更习惯称这种系统结构为x86-64X86-64在向后兼容的同时,更主要的是注入了全新的特性,特别的:x86-64有两种工作模式,32位OS既可以跑在传统模式中,把CPU当成i386来用;又可...转载 2021-05-07 15:22:48 · 1199 阅读 · 0 评论 -
分布式锁知识点整理
缓存数据库(相对于mysql),数据结构数据库,kv数据库(hash实现),热点数据(经常要访问的数据),如果都放在mysql中,会给mysql数据库带来很大的压力。no-sql就是为了提高查询速度。按照请求命令来执行命令为了防止分布式系统中的多个进程之间相互干扰,我们需要一种分布式协调技术来对这些进程进行调度。而这个分布式协调技术的核心就是来实现这个分布式锁。分布式锁的特点:高可用的获取锁和释放锁高性能的获取锁和释放锁具备可重入特性(可理解为重新进...原创 2021-02-21 23:26:17 · 150 阅读 · 0 评论 -
ext2文件系统,未完待续
ext2_inode结构的定义如下:/* * Structure of an inode on the disk */struct ext2_inode { __le16 i_mode; /* File mode */ __le16 i_uid; /* Low 16 bits of Owner Uid */ __le32 i_size; /* Size in bytes */ __le32 i_atime; /* Access time */ __le32 i_ctime; /.原创 2021-02-17 22:33:30 · 142 阅读 · 0 评论 -
网络基础知识
wireshark过滤MAC地址/物理地址eth.addr== 80:f6:2e:ce:3f:00 //过滤目标或源地址是80:f6:2e:ce:3f:00的数据包eth.src== 80:f6:2e:ce:3f:00 //过滤源地址是80:f6:2e:ce:3f:00的数据包eth.dst== 80:f6:2e:ce:3f:00 //过滤目标地址是80:f6:2e:ce:3f:00的数据包ARP协议:ARP Request到达本网段中的所有设备上,因为目的为FF:FF:..原创 2021-01-28 20:58:46 · 182 阅读 · 0 评论 -
nginx handler模块
1.location一致2.ngx_module_tmodule名字要一致config文件:ngx_addon_name=nginx_test_mp_moduleHTTP_MODULES="$HTTP_MODULES nginx_test_mp_module"NGX_ADDON_SRCS="$NGX_ADDON_SRCS $ngx_addon_dir/nginx_test_memory_module.c"sourcecode:#include <ngx_http..原创 2021-01-28 14:31:17 · 258 阅读 · 0 评论 -
C++ Singleton单例模式
Version6:#include <iostream>using namespace std;template<class T>class Singleton{private:public: static T& GetInstance() { static T instance; return instance; }protected: Singleton(){ cout << "Singeton" << end原创 2021-01-25 11:15:14 · 212 阅读 · 1 评论 -
备份知识点
C++11 thread 向线程传递参数需要注意的是,默认的会将传递的参数以拷贝的方式复制到线程空间,即使参数的类型是引用。void func1(_tagNode &node){ printf("%p\n", &node); node.a = 10; node.b = 20;}void f(){ _tagNode node; node.a = 100; node.b = 200; printf("%p\n", &node); thread t(f原创 2021-01-24 23:35:52 · 124 阅读 · 1 评论