- 博客(230)
- 资源 (13)
- 收藏
- 关注
原创 Linux性能优化----CPU性能
一、CPU性能1.uptime--系统平均负载~$ uptime 16:04:46 up 2:41, 4 users, load average: 0.86, 0.33, 0.12前面三个参数代表:系统当前时间,系统运行时间,系统登录用户;load average后面三个数字分别代表1分钟,5分钟,15分钟平均负载。其中,平均负载表示平均活跃进程数。比如:2核CP...
2019-06-30 21:54:09
722
原创 C++11新特性
1.long long 类型2.列表初始化3.nullptr常量4.constexpr变量5.类型别名声明6.auto类型提示符
2019-06-30 21:50:45
160
原创 libevent安装(Linux)
1.官网:http://libevent.org/ github:https://github.com/libevent/libevent也可直接使用命令下载:wget https://github.com/libevent/libevent/releases/download/release-2.1.10-stable/libevent-2.1.10-stable.tar....
2019-06-25 22:28:18
6409
原创 后端综合问题汇总
一、基础篇1.基础篇(数据结构与算法)(1.1)高效的单向链表逆序输出?(1.2)二叉搜索树(BST),找到树中第 K 小的节点(1.3)求sqrt(2)精确到小数点后10位(不用库函数)https://xw.qq.com/partner/hwbrowser/20190608A07ES9/20190608A07ES900?ADTAG=hwb&pgv_ref=hwb&am...
2019-06-20 17:41:35
1544
原创 WebService生成DLL部署
前言:之前写过一篇详细的Webservice详细的WebService开发(C#)+Java调用-教程但是实验品,那怎么部署到工程上,即怎么隐藏源码,其实生成Dll即可,下面记录一下方法。一.生成DLL1.打开VS命令框,并进入到源码的目录(.cs)2.命令生成dllcsc out/:WebService.dll /t:library WebService.cs...
2019-06-20 10:25:08
3121
原创 DNS负载均衡
1.网址输入域名,回车后,发生了什么?即怎么通过域名是得到网页显示的内容?但是在高并发的情况下,比如淘宝网,怎么能抗住高并发的访问量,可以使用以下命令查看:[C:\~]$ nslookup www.taobao.com非权威应答:服务器: XiaoQiangAddress: 192.168.31.1名称: www.taobao.com.danuoyi.tbca...
2019-06-19 21:03:50
711
原创 TCP中的定时器
1.重传定时器:A给B发送数据,A没有收到B的确认包(ACK),通常使用在弱网环境中(隧道、偏远地区)2.坚持定时器A调用close,发送FIN,而FIN在传输的过程中丢失了,此时,A在等B返回ACK,B在等待A发送数据,双方陷入一个相互等待的状态。3.保活定时器保证tcp连接鲜活(keepalive)setopt可以设置当然keepalive可以通过两种方式:应用...
2019-06-18 22:32:06
173
原创 nginx设计框架
nginx主进程(master进程)作为管理进程,不做I/O处理;主进程会启动相同的子进程(work进程)来处理I/O。每个work进程都监听80端口,互不干扰,从而达到负载均衡。如下图所示:当然,nginx这样设计的好处还有:充分利用多核CPU,每个work进程绑定一个CPU核(CPU的亲缘性) 分工明确,主进程管理多个子进程,子进程负责业务逻辑 一个work进程故障,不会影响...
2019-06-18 21:27:34
261
原创 ZeroMQ为什么高效?
大多数消息队列都遵从AMQP(Advanced Message Queuing Protocol),如:RabbitMQ、ActiveMQ、Kafka等,而ZeroMQ其实是一个网络库,这是其中快的一个原因。除了以上原因还:关闭Nagle算法 关闭网卡中断汇聚,多队列网卡 区别大小消息消息,大消息零拷贝 批量发送和接收消息 线程间不共享数据(socketpair) ...
2019-06-18 20:11:16
1481
原创 IP首部、TCP首部
1.数据的封装过程2.IP首部3. TCP首部URG 紧急指针(urgent pointer) ACK 确认序号有效 PSH 接收方应尽快把这个报文段交给应用层 RST 重建连接 SYN 同步序号,用来发起一个连接 FIN 结束一个连接4.UDP首部...
2019-06-17 23:16:39
1559
原创 Docker
1.安装https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors2.使用3.创建自己的镜像dockerfile
2019-06-16 21:41:21
141
原创 MySQL外网连接不上
1.修改绑定ip地址ubuntu18.04server上的mysql服务已经启动,本地可以连接,但其他机器不能通,telnet也不通:查看发现绑定的ip位127.0.0.1,所以得修改配置文件刚开始在vim /etc/mysql/my.cnf,没有发现bind-address选项,经查找要在下面文件修改(可能版本不同) vim /etc/mysql/mysq...
2019-06-15 00:14:35
3313
原创 C++(Linux)操作MongoDB
一.安装驱动mongocxx drivermongocxx 依赖mongo-c-driver,所以需要先安装mongo-c-driver:https://github.com/mongodb/mongo-c-driver/releases/1.安装mongo-c-driver$ wget https://github.com/mongodb/mongo-c-driver/rele...
2019-06-14 13:32:53
6854
4
原创 MongoDB远程端口不通
vim /etc/mongodb.conffirewall-cmd --zone=public --permanent --add-port=27017/tcpfirewall-cmd --reload重启mongod ./mongod --dbpath=/home/data --bind_ip 0.0.0.0添加用户名、密码:db....
2019-06-13 18:05:24
1446
原创 MySQL集群
1.MySQL为什么需要集群?问题:100W的客户端,每3分钟上传一次订单数据,数据库怎么设计?MySQL和MongoDB插入数据比较:MySQL:600/s事务 MongoDB: 50000条/s 100倍的差别读写分离(解决磁盘I/O):通过binlog,即存放在执行的sql语句,binlog是MySQL做集群的基础 分库分表(解决事务):2.集群搭建(数据库主从...
2019-06-12 22:17:51
263
原创 多线程中的count++问题---互斥、自旋、原子操作
1.互斥mutex:阻止其他线程的进入,其他线程会挂起2.自旋锁:一直等,(while(1))线程不会切换,操作时间比较短,简单的适合自旋锁3.原子操作:三条指令合在一起#include<stdio.h>#include<pthread.h>#include<unistd.h>#define THREAD_NUM 10pthread_mut...
2019-06-11 21:28:59
581
原创 当你写的程序CPU利用率飙升到50%以上怎么办?
首先你的程序里肯定有循环(while或者for循环),比如程序就写一句如下:int main(){ while (1);}在windows上看看:启动前:启动后:再看linux上我们使用(htop命令或者top命令查看cpu的利用率)启动前:启动后:直接飙到100%了修改一下程序:int main(){ whil...
2019-06-05 14:56:44
2542
原创 对话框屏蔽Esc键的方法
默认的,MFC里面当对话框弹出后,按“Esc”键对话框会退出。但有时候想屏蔽这个功能,思路就是屏蔽WM_KEYDOWN消息中的VK_ESCAPE先添加PreTranslateMessage函数,然后再里面添加一下代码段:BOOL CXXXDlg::PreTranslateMessage(MSG* pMsg) { // TODO: Add your specialized code h...
2019-06-04 08:37:08
1631
原创 剑指2题目汇总(三)
39.数组中出现次数超过一半的数字题目:数组中有一个数字出现的次数超过数组长度的一半,找出这个数字思路一:排序数组,位于中位数的就是要找的数字,时间复杂度为O(nlogn)思路二:快排思想,当下标为n/2时则找到该数字,时间复杂度为O(n)思路三:遍历数组,和上次数字相同的加1,不同减1,如果为0,时间复杂度为O(n)// 039_MoreThanHalfNum.cpp : ...
2019-06-03 22:55:39
223
原创 MongoDB
一.存储的场景1.读多写少(如博客)---->HDFS2.读写均衡(如一起写,有道云笔记)------>缓存Redis3.读少写多(如日志)------>mongodbmongodb是分级存储,即越久远的数据会被存在效率低的磁盘。越新的数据读的越快,越旧的数据读取速度越慢。所以mongodb的应用场景是存储一些平常不去读取,但必要的时候要能读到的数据。也就是说具有...
2019-06-03 22:41:26
365
原创 剑指2题目汇总(二)
16.数值的整数次方题目:实现double pow(double n, int e)函数思路一:循环乘,但注意指数小于1的情况(e为0或负数)思路二:// 016_Pow.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。//=============================================================...
2019-06-03 20:29:53
177
原创 剑指2题目汇总(一)
1.赋值运算符重载赋值运算符函数的参数为const引用类型;----->若类型为类,会产生临时对象,调用复制构造函数。 赋值运算符函数的返回值为引用类型;----->若类型为类,则连续赋值语句编译不通过(类型不匹配)、会产生临时对象,调用复制构造函数。 检查赋值的对象是否和this是同一个;-----> 赋值的对象和this不是同以对象,则需要先释放原有对象;-----...
2019-06-03 20:19:36
222
原创 WebRTC
1.官网:https://webrtc.org/2.简介:WebRTC,名称源自网页即时通信(英语:Web Real-Time Communication)的缩写,是一个支持网页浏览器进行实时语音对话或视频对话的API。它于2011年6月1日开源并在Google、Mozilla、Opera支持下被纳入万维网联盟的W3C推荐标准。支持浏览器:3.通话模型P2P 通话的网络模型...
2019-06-01 21:34:51
1644
原创 ASSERT(AfxGetThread() == NULL);
现象:找到源码位置:感觉是线程之类的的东西没有初始化,查了一些资料说缺少_USRDLL宏,问题解决了,但不知道为什么。先参考这个宏是干什么的:_USRDLL _AFXDLL _WINDLL 三种dll编译宏的具体含义接下来发现没有加_USRDLL宏是不会执行CWinApp::InitInstance();这一句。综上:(1)结论就是Windows里的编程需...
2019-05-29 09:20:11
900
原创 zeromq的使用(windows)
注:本文说的是windows平台的使用1.官网下载源码:http://zeromq.org/intro:get-the-software下载stable release is v4.1.62.vs2013进行编译lib库和dll(只编译libzmq工程即可)找到路径:zeromq-4.1.6\builds\msvc\vs2013,用vs2013打开libzmq.sln。...
2019-05-28 17:34:07
3461
原创 fastdfs+nginx集群搭建
一.简介fastdfs1.什么是fastdfsfastdfs是一个轻量级的开源分布式文件系统; fastdfs主要解决了大容量的文件存储和高并发访问的问题,文件存取时实现了负载均衡; fastdfs实现了软件方式的RAID,可以使用廉价的IDE硬盘进行存储支持存储服务器在线扩容支持相同内容的文件只保存一份,节约磁盘空间; fastdfs只能通过Client API访问,不支持POSI...
2019-05-27 23:41:11
22410
1
原创 二分查找
时间复杂度O(logn)二分查找必须先要给序列排序,也就是说要使用二分查找算法,序列必须是有序的。1.普通的二分查找 LeetCode 704. 二分查找class Solution {public: int search(vector<int>& nums, int target) { int l = 0, r = nums.size...
2019-05-26 18:25:55
266
原创 数据结构与算法知识点
一、数据结构数组一种线性表结构,连续的内存空间存储相同数据类型的数据。说到线性表,有必要列出一下:名称 种类 线性表 数组、链表、队列、栈 非线性表 二叉树、堆、图 数组最大的优势是:可以通过下标随机访问,时间复杂度为O(1)(由于线性的,且内存空间连续)。 数组劣势是:删除和插入比较费劲,时间复杂度为O(n)(需要移动删除和插...
2019-05-25 15:32:40
803
原创 单台百万并发
1.设置/etc/security/limits.conf/etc/sysctl.conflinux 修改端口范围echo 1024 65000 > /proc/sys/net/ipv4/ip_local_port_range客户端net.ipv4.tcp_mem = 262144 524288 786432net.ipv4.tcp_wmem = 1024...
2019-05-23 21:37:06
273
原创 线程池
线程池的作用:在并发编程过程中,会使用线程去执行任务,那么一般的做法是:创建一个线程,执行任务,然后销毁。但是在某些应用场景总需要多个线程去执行任务,频繁的创建和销毁线程会增加一些额外的负担。所以可以这样做:创建一大堆的线程,放在这个池子里,他们在程序运行过程中,一般都不销毁。线程池的设计根据应用场景设计: 主要设计三部分内容:1.设计一个队列保存任务;2.任务队列没有...
2019-05-22 22:46:17
133
原创 线程的同步手段
线程诞生是从LinuxThreads--->NTPL为了减少切换的代价,线程共享了进程中的资源,进而由于公用了资源,多个线程使用时就需要有序的进行,保证不乱;这种方式就是线程的同步。同步的手段有一下几种:1.互斥锁如果没有请求到锁,那么就把该线程放入等待队列里,挂起整个线程;如果持有锁的线程执行完且释放锁,则会唤醒等待队列里的某个线程去执行。#include <pth...
2019-05-22 22:39:58
160
原创 线程
进程是管理资源的单位,线程是CPU调度的基本单位。1.定义linux线程创建函数的定义: #include <pthread.h> int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine) (void *), ...
2019-05-22 21:38:37
303
原创 libevent的使用
注:本例是在windows平台上使用1.官网:http://libevent.org/下载:libevent-2.1.8-stable2.使用vs命令工具进行编译:我使用vs2013。进入到libevent-2.1.8-stable目录下执行:nmake /f Makefile.nmake执行完之后,会生成三个lib文件:libevent.lib lib...
2019-05-22 12:26:51
953
原创 使用宏定义max函数
1.#define MAX(x,y) x > y ? x : y2.#define MAX(x, y) (x) > (y) ? (x) : (y)3.#define MAX(x, y) ((x) > (y) ? (x) : (y))前三中逐次解决了展开运算符优先级的问题,但还有中情况:MAX(i++, j),展开后(假设i=3,j=...
2019-05-21 23:28:14
7623
3
原创 常用字符串函数的实现
一、库函数的实现1.strcpy#include<stdio.h>#include<assert.h>//1.strcpy*******char* strcpy(char* dest, const char* source){ assert((dest != NULL) && (source != NULL)); char* res =...
2019-05-20 23:19:31
171
原创 protobuf(C++)的使用(windows)
注:这里说的是C++版本的使用。1.前言官网:https://github.com/protocolbuffers/protobuf/releasesprotobuf托管在github,在windows上使用需要自己编译,编译需要借助cmake。大概流程是:a.下载源码-->b.cmake生成vs工程-->c.vs编译(所需lib文件和protoc.exe)-->...
2019-05-20 17:39:31
11064
4
原创 网络通信基础知识(tcp/ip)
入门书籍:图解服务器端网络架构.pdf一、TCP/IP协议栈中的各层的作用1.物理层:解决的是传输0和1的问题2.链路层:解决的是数据从源地址到目的地址传输的问题,通过MAC地址在自己的局域网内,以及通过L2交换机维护MAC地址和网口的映射表,来确保子网的数据有序的传输。问题:既然局域网是用MAC地址就可以通信,为什么还需要IP地址? 局域网用MAC通讯为什么还要IP? 可...
2019-05-19 17:51:54
1348
原创 Linux I/O复用技术---epoll
1.介绍epoll和之前介绍的select/poll有很大的差异,几乎现在所有的高并发I/O模型都使用epoll(如nginx)。 #include <sys/epoll.h> int epoll_create(int size); int epoll_ctl(int epfd, int op, int fd, struct epoll_event *even...
2019-05-19 00:54:43
144
jstl_standard的jar包
2018-11-09
Go语言安装包(Windows32位解压缩版1.10.3)
2018-08-14
Go语言安装包(Windows32位解压缩版)
2018-05-30
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅