自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(176)
  • 资源 (3)
  • 收藏
  • 关注

原创 所谓的技术

此篇日志持续更新,纯粹用来记录一些感想2016-5-29 周日刚看到一篇博客,(http://blog.csdn.net/chenyujing1234/article/details/7752464)觉得整理的知识点好细啊,无意中看到竟然对于多态又细分了:”强制多态、重载多态、类型参数多态、包含多态“我真的有被惊到了,我竟然不知道什么意思,后来再找找资料,才知道这都是我已知的东西...

2016-05-29 19:53:22 643 2

原创 kvm snapshot 迁移

【代码】kvm snapshot 迁移。

2023-02-10 12:22:52 229

原创 追雨的际遇

追雨无阻

2022-06-30 22:06:38 187

原创 一些诗集-自创+整理

常学问传统文化常学问,研究中易琢磨神,时时出来抬头看,兼容并包实践真。

2022-03-20 09:33:12 172

原创 md语法保留

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar

2022-03-20 09:31:23 229

原创 systemd-nspawn 运行最轻量的容器

# systemd-nspawn 运行最轻量的容器## 安装- systemd-container包含所有用于启动和管理容器和虚拟机的工具;- 而debootstrap则是debian/ubuntu下用于构建一套基本的根文件系统的工具。 ``` sudo apt install debootstrap sudo apt install systemd-container ```## 创建基本的文件系统 debootstrap生成的根文件系统符合Linux...

2021-12-30 17:20:41 1257

原创 mariadb 发现的一些错误总结

#1 Cannot assign requested address并发量大的时候,端口没有重用,被占满了,解决办法,两步:一:临时生效1)sysctl -w net.ipv4.tcp_tw_reuse=1sysctl -w net.ipv4.tcp_tw_recycle=12)ulimit -n 65535二:永久生效1)vi /etc/sysctl.conf 添加如下两行net.ipv4.tcp_tw_reuse = 1net.ipv4.tcp_tw_recycle = 1立即生

2021-12-27 21:04:35 879

原创 C语言写个计算器

整体思路:1. 格式化:(1)在符号前加0 (2)去掉空格2. 检查 (1)检测左右括号的两边是否合法3. 解析 (1)将输入的字符串分解到结构体数组中4. 计算 遍历结构体数组,数字入数字栈,符号入符号栈,按照优先级表进行运算。stack.h#ifndef STACK_H#define STACK_Htypedef float eletype;typedef struct{ eletype *buf; int top; ...

2021-12-19 19:10:38 604

原创 db 测试记录

mysql 固态硬盘:(虚拟机) 单机写入性能 3000/s 如果使用 批量插入, 1w一批,可以达到 10w/s 批量比单个 提升30倍以上 使用一个大事务,大概 3500/s,比单个插入,稍好一点。 -------------------------------------------------- 机械硬盘,(虚拟机) mysql 批量 5w/s tidb单机 15873/s mysql > tidb 3...

2021-11-08 20:05:57 787

原创 数据库批量执行实践(go语言)

数据库的高效执行(查询、写入),除了,设置索引、数据库配置调优、表结构在业务上设置合理、分库分表?、读写分离等等之外,要想改善数据的写入速度,一大杀气是批量插入,此批量并不是大事务,而是利用数据库的特性,insert xxx values (?,?,?),(?,?,?) 的特性,实测效率比单个单个的插入 快10倍以上。那么批量执行,效率如此之高,能够写出一个自动的批量执行的控件就显得尤为必要1:能够到一定数据,开始批量插入2:没到一定的数目,但是时间点到了,也要批量插入。满足这两个条件,同时

2021-10-13 14:38:48 1612

原创 端口转发

linux 端口转发的方式很多种,除了防火墙(模拟路由器的功能),其他都是软件方式,在处理长连接时有问题(比如server挂了,代理还存在,就会出现连接成功,接收数据时失败。),下面详细说说防火墙的方式:其他方式参考:https://www.linuxprobe.com/linux-port-transition.htmlhttps://www.cnblogs.com/wspblog/p/4297160.html代理部署步骤:使用CentOS7.0以上的机器,用防火墙做转发,(0..

2021-02-18 21:43:29 1162

原创 go flag参数解析

package mainimport ( "flag" "fmt" "strings")/*func main() { //./testmicro -surname='zhang' -personalName='san' -id=22 //参数依次是命令行参数的名称,默认值,提示 surname := flag.String("surname", "王", "您的姓") //除了返回结果,还可以直接传入变量地址获取参数值 var personalName string fla.

2021-01-21 14:28:52 382

转载 boost::asio——Timer定时器

转载自:https://blog.csdn.net/yockie/article/details/40386145先跟着boost文档中asio章节的指南中的几个例子学习一下使用:1.Timer.1 - 使用同步定时器先完整介绍一下,后面的例子该省略的就省略了。所有的Asio类只要简单的包含"asio.hpp"头文件便可使用:#include <boost/asio.hpp>因为本程序中使用了定时器,我们需要包含相应的的Boost.Date_Time...

2020-12-23 12:03:15 3069 4

原创 GO 单例

testonce.gopackage mainimport ( "fmt" "sync" "sync/atomic")type singleton struct { name string}var ( instance *singleton initialized uint32 mu sync.Mutex)func Instance() *singleton { if atomic.LoadUint32(&initialized)

2020-11-21 16:23:07 116

原创 Go gRPC 发布订阅

pubsub/pubsub.proto// protoc --go_out=plugins=grpc:. pubsub.protosyntax = "proto3";package proto;message String { string value = 1;}service PubsubService { rpc Publish (String) returns (String); rpc SubscribeTopic (String) returns (

2020-11-18 16:46:19 732

原创 GO gRPC

proto/hello.proto// protoc --go_out=plugins=grpc:. hello.protosyntax = "proto3";package proto;message String { string value = 1;}service HelloService { rpc Hello (String) returns (String); rpc Channel (stream String) returns (stream

2020-11-18 14:16:21 117

原创 GO RPC 远程过程调用

/rpcintf/intf.gopackage rpcintfimport "net/rpc"// 代码可以自动生成,通过protoc,插件可以自己写// Server// ServerNameconst HelloServiceName = "path/to/pkg.HelloService"// Function listtype HelloServiceInterface = interface { Hello(request string, reply *string)

2020-11-18 14:11:47 159

原创 Go 发布订阅

发布订阅,是一对多的关系:pubsub/pubsub.gopackage pubsubimport ( "sync" "time")type ( subscriber chan interface{} topicFunc func(v interface{}) bool // 主题为一个过滤器)// 发布者对象type Publisher struct { subscribers map[subscriber]topicFunc m sync.R

2020-11-18 13:57:21 321

原创 Markdown笔记

GFM GitHub Flavored Markdown# 一级标题## 二级标题**你** 加粗*我* 倾斜- 无序列表1. 有序列表列表项有换行,建议给无序列表使用3个空格,有序列表使用2个空格。列表项没有换行,只有一行,建议列表项之间不要有空行。列表项有换行,建议在列表间空一行。整体列表前后都空一行。句号后加空格。分割线*** 或 --- 或 ___ (中间可以有空格)图片:![图片替代文字](图片地址./a.png或网络图片地址)文字连接:[链接文字].

2020-11-14 16:18:27 249

原创 docker 笔记

1:安装dockercurl -sSL https://get.daocloud.io/docker | sh2:启动dockersudo systemctl start docker3:启动容器docker run -it ubuntu /bin/shdocker attach /run,对于exit 和 ctrl+D 会关掉容器,docker exec 只是会从容器中出来,不会关掉容器如果不知道是attach/exec进去的?所以退出最好只用ctrl+p,ctrl+q4:导出.

2020-08-31 20:25:41 225

转载 TCP协议端口状态说明:CLOSE-WAIT、TIME-WAIT 、LISTENING、SYN_SENT、ESTABLISHED、LAST-ACK ...

了解TCP协议端口的连接状态,对排除和定位网络或系统故障会有很大帮助,因此了解一下是有必要的:一、LISTENING  提供某种服务,侦听远方TCP端口的连接请求,当提供的服务没有被连接时,处于LISTENING状态,端口是开放的,等待被连接。二、SYN_SENT (客户端状态)  客户端调用connect,发送一个SYN请求建立一个连接,在发送连接请求后等待匹配的连接请求,此时状态为SYN_SENT.三、SYN_RECEIVED (服务端状态)  在收到和发送一个连接请求后,等待.

2020-07-13 20:49:30 1290

原创 Go学习笔记

Go没有分号1:类型后置。(方便阅读)2:大写字母开头,标识,是导出的3:返回值可以命名, 没有参数的 return 语句返回已命名的返回值,4:var 声明变量列表,有初始值时,可以省略类型,会自动判断类型5:在函数中!,简洁赋值语句 := 可在类型明确的地方代替 var 声明。6:没有明确初始值的变量声明会被赋予它们的 零值。0,false,""7: fmt.Printf ...

2020-03-21 10:58:33 208 1

原创 linux dll 调用

// r.c#include <stdio.h>// gcc -shared r.c -o r.so -m32char* a(double d) { printf("r.c: %f\n", d * d); return "hello";}// runso.c#include <stdio.h>#include <dlfcn.h...

2020-01-03 19:59:12 2653

转载 打印符号表

#include <stdio.h>#include <stdlib.h>#include <string.h>#include <link.h>#include <sys/mman.h>#include <sys/stat.h>#include <fcntl.h>#include...

2019-11-12 15:47:35 554

原创 读取ELF文件

/* elfparse.c - gcc elfparse.c -o elfparse */#include <stdio.h>#include <string.h>#include <errno.h>#include <elf.h>#include <unistd.h>#include <stdlib.h>#...

2019-11-12 15:42:55 697

转载 Linux x86 64位内存管理

地址映射64位地址采用4层地址映射,如下图:pgd、pud、pmd、pte各占了9位,加上12位的页内index,共用了48位。即可管理的地址空间为2^48=256T。而在32位地址模式时,该值仅为2^32=4G。另外64位地址时支持的物理内存最大为64T,见e820.c中MAX_ARCH_PFN的定义:# define MAX_ARCH_PFN MAXMEM>>PA...

2019-11-04 16:43:32 1944

转载 linux子进程知道父进程退出的解决方案

在实际开发中难免会处理进程间的关系,最常见的是父子进程的相互监督。父进程等待子进程,或者自进程知道父进程运行是否结束,以方便释放资源。一、关于进程进程是操作系统进行资源分配和调度的基本单位。linux系统使用fork创建进程,进程pid 0是swapper进程,进程pid 1是init进程,init进程是所有普通用户进程的父进程。fork在 <unistd.h>文件中定义...

2019-10-15 13:44:51 961

转载 wcout 中文输出问题

转载自:https://www.xuebuyuan.com/1730068.html【不设置全局本地化环境时】  在VS2005下用C/C++写程序,如果程序没有调用setlocale函数设置本地化环境,则cout,printf都能正常的输出中文。然而,所有涉及宽字节串和多字节串的中文相互转换的功能都将以失败告终,比如:调用wcstombs函数或mbstowcs,或者使用了间接...

2019-09-17 12:04:33 1593

转载 Kafka、RabbitMQ、RocketMQ消息中间件的对比

转载自:https://www.cnblogs.com/felixzh/p/6198070.html引言分布式系统中,我们广泛运用消息中间件进行系统间的数据交换,便于异步解耦。现在开源的消息中间件有很多,前段时间我们自家的产品 RocketMQ (MetaQ的内核) 也顺利开源,得到大家的关注。那么,消息中间件性能究竟哪家强?带着这个疑问,我们中间件测试组对常见的三类消息产品...

2019-05-08 10:21:56 120 1

转载 Proactor前摄器模式和Reactor反应器模式

Proactor和Reactor都是并发编程中的设计模式。他们都是用于派发/分离IO操作事件的。所谓的IO事件也就是诸如read/write的IO操作。"派发/分离"就是将单独的IO事件通知到上层模块。两个模式不同的地方在于,Proactor用于异步IO,而Reactor用于同步IO。一般地,I/O多路复用机制都依赖于一个事件多路分离器(Event Demultiplexer)。分离器对...

2019-05-03 11:27:42 545

原创 Nginx_开发一个简单的HTTP过滤模块

原创:https://blog.csdn.net/ndzjx/article/details/89503058过滤模块仅处理服务器发往客户端的HTTP响应。config文件:ngx_addon_name=ngx_http_myfilter_moduleHTTP_FILTER_MODULES="$HTTP_FILTER_MODULES ngx_http_myfilter_mod...

2019-04-24 21:25:35 200

原创 Nginx配置,error日志,请求上下文

原创:https://blog.csdn.net/ndzjx/article/details/89502852配置:处理HTTP配置项分为4个步骤:1)创建数据结构用于存储配置项对应的参数。2)设定配置项在nginx.conf中出现时的限制条件与回调方法。3)实现第2步中的回调方法,或者使用Nginx框架预设的14个回调方法。4)合并不同级别的配置块中出现的同名...

2019-04-24 21:10:05 435

原创 Nginx_开发一个简单的HTTP模块

原创:https://blog.csdn.net/ndzjx/article/details/89420927ngx_list_t:存储数组的链表。操作函数:ngx_list_create/ngx_list_init/ngx_list_pushngx_table_elt_t:键值对ngx_buf_t:处理大数据的关键数据结构将自己的HTTP模块编译进Ng...

2019-04-20 18:03:17 287 1

原创 Nginx的配置(记录)

原创:https://blog.csdn.net/ndzjx/article/details/89420873在Apache上每一个进程在一个时刻只处理一个请求。而Nginx则不然,一个worker进程可以同时处理的请求数只受限于内存大小。如果确认不会出现阻塞式调用,有多少CPU内核就应该配置多少个进程;如果有可能出现阻塞式调用,那么需要配置稍多一些workder进程。...

2019-04-20 17:44:01 95

原创 Nginx-HTTP框架的执行流程

原创:https://blog.csdn.net/ndzjx/article/details/89323732HTTP框架存在的主要目的有两个:1:针对基于TCP的事件框架解决好HTTP的网络传输、解析、组装等问题。2:为HTTP模块屏蔽事件驱动架构,使得HTTP模块不需要关心网络事件的处理。TCP网络事件,可粗略的分为:可读事件:收到SYN包带来的新连接事件,收到...

2019-04-15 23:54:50 270

原创 Nginx-HTTP框架的初始化

原创:https://blog.csdn.net/ndzjx/article/details/89222809HTTP框架大致由1个核心模块(ngx_http_module)、两个HTTP模块(ngx_http_core_module、ngx_http_upstream_module)组成,它将负责调度其他HTTP模块来一起处理用户请求。首要任务是通过ngx_http_module_t接...

2019-04-11 23:49:54 324

原创 TCP协议

原创:https://blog.csdn.net/ndzjx/article/details/89191533TCP协议:三次握手:内核在我们调用listen方法时,就已经为这个监听端口建立了SYN队列和ACCEPT队列。TCP的可靠连接: 1:send可以发送任意大的数据,但数据链路层不会允许报文太大,既然切分报文不可避免,那就只能发生在TCP内部,最有效率。...

2019-04-10 19:10:45 116

原创 Nginx的事件模块

原创:https://blog.csdn.net/ndzjx/article/details/89191193Nginx是一个事件驱动架构的Web服务器。事件处理框架所要解决的问题是如何收集、管理、分发事件。(主要是网络事件、定时器事件)由于网络事件与网卡中断处理程序、内核提供的系统调用密切相关,所以网络事件的驱动既取决于不同的操作系统平台,同一操作系统中也受制于不同内核版本。基...

2019-04-10 19:03:46 774

原创 Nginx基础架构知识

原创:https://blog.csdn.net/ndzjx/article/details/89090981高度模块化的设计是Nginx的架构基础。高度抽象的模块接口:ngx_module_t,足够简单,只涉及模块的初始化、退出以及对配置项的处理。 1)7个回调方法:init_master/init_module/init_process/int_thread/exit_...

2019-04-08 15:29:11 312

原创 Nginx进程间通信(记录)

原创:https://blog.csdn.net/ndzjx/article/details/89060030共享内存Nginx频道信号原子操作自旋锁信号量文件锁互斥锁共享内存:ngx_shm_t结构体,描述一块共享内存。函数:ngx_shm_alloc/ngx_shm_free,可以查看对应函数的调用情况,目前就一个两个例子。这两...

2019-04-06 20:50:28 417

软件架构师知识点3

架构师考试知识点总结,xmind,下载后可以继续在后面添加

2017-11-13

软件架构师知识点2

架构师考试知识点总结,xmind,下载后可以继续在后面添加

2017-11-13

软件架构师知识点1

软件架构师资源xmind,使用的人可以基于这些继续添加内容

2017-11-13

空空如也

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

TA关注的人

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