自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

转载 http协议

http协议HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。HTTP协议工作于客户端-服务端架构为上。浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请...

2018-05-29 15:16:35 170

原创 关于线程大小和协程消耗资源

关于线程大小和协程消耗资源为了实现并行,就必须开启多个相对独立的空间。独立空间最大可以通过开启不同的进程来实现,隔离度最大,但是相对的消耗资源最多。而线程在共享某些进程的资源,并且堆栈也相对小很多。golang中的协程占用的资源更加紧凑(那么不会轻易堆栈溢出吗)?关于消耗堆栈资源线程线程是固定的,通过 ulimit -s 命令查看。进程进程的栈大小是在进程执行的时刻才能指定的,即不是在编译的时候决...

2018-05-28 17:53:29 2524

原创 Linux 下ulimit命令

ulimitulimit 用于限制 shell 启动进程所占用的资源,支持以下各种类型的限制:所创建的内核文件的大小、进程数据块的大小、Shell 进程创建文件的大小、内存锁住的大小、常驻内存集的大小、打开文件描述符的数量、分配堆栈的最大大小、CPU 时间、单个用户的最大线程数、Shell 进程所能使用的最大虚拟内存。同时,它支持硬资源和软资源的限制.使用 ulimitulimit 通过一些参数选...

2018-05-28 17:33:56 746

原创 mysql 锁

mysql 锁锁,学过计算机系统的人都了解。锁是访问公有资源的一种排他方式,防止多个进程同时修改全局资源。通能够保证在多核多线程环境中,在某一个时间点上,只能有一个线程进入临界区代码,从而保证临界区中操作数据的一致性。mysql的锁是mysql用于保证同一资源的一致性的东西。悲观锁使用mysql自带的锁功能又称为悲观锁。不同的存储引擎有提供了不同的锁机制。可以用两个维度来划分。 以下只讨论 Inn...

2018-05-24 17:57:56 222

原创 Mysql InnoDB隔离级别

Mysql InnoDB隔离级别隔离级别是针对事务的。也就是事务之间能够相互影响的程度。主要是为了预防在并发的时候发现的问题。问题:更新丢失问题一致性读问题脏读 可能读取到其他会话中未提交事务修改的数据 不可重复读 能够读取到别的事务更新后的数据幻读 第一个事务对一个表中的数据进行了修改,这种修改涉及到表中的全部数据行。同时,第二个事务也修改这个表中的数据...

2018-05-24 17:32:57 322

原创 Mysql优化

Mysql优化通过上一篇文章介绍内容,得知了如何查找到需要优化的sql。show statusshow processlist查看慢查询日志索引数据库的索引就像是目录一样,方便我们更加快的定位到所需要的数据,而不是从第一页看到最后一页。mysql中,索引还分了多种。普通索引普通索引(由关键字KEY或INDEX定义的索引)的唯一任务是加快对数据的访问速度。在where column中加索引。应该选择...

2018-05-23 17:40:04 152

原创 mysql状态查询

mysql状态查询Mysql 可以通过指令去了解数据库的情况。记一下常用的查看状态的指令。mysql状态 通过 SHOW STATUS 可以提供服务器状态信息,也可以使用 mysqladmin extende d-status 命令获得。 SHOW STATUS 可以根据需要显示 session 级别的统计结果和 global级别的统计结果。show status;Aborted_client...

2018-05-22 18:20:14 5293

原创 MAC 下ifconfig看IP

MAC 下ifconfig看IPifconfig在linux下经常是用来查看对应的端口的IP是多少。但是..MAC下会显示特别多的硬件设备让人搞不清楚到底IP是哪里来的。可以说是一脸懵逼。。查了一下可以通过这个命令去看硬件和其对应的缩写。networksetup -listallhardwareports这里就能够了解到了, 我们走wifi出去,所以简写是en0。对应en0的IP是192.168....

2018-05-22 16:57:23 35048 2

转载 用tcpdump抓包

用tcpdump抓包简介网络数据包截获分析工具。支持针对网络层、协议、主机、网络或端口的过滤。并提供and、or、not等逻辑语句帮助去除无用的信息。tcpdump - dump traffic on a network例子不指定任何参数监听第一块网卡上经过的数据包。主机上可能有不止一块网卡,所以经常需要指定网卡。tcpdump监听特定网卡tcpdump -i en0监听特定主机例子:监听本机跟...

2018-05-22 16:33:18 308

转载 TCP问题定位

TCP连接状态查询我们通过了解TCP各个状态,可以排除和定位网络或系统故障时大有帮助。(总结网络上的内容)Linux 查看tcp的状态命令:netstat -nat  查看TCP各个状态的数量lsof  -i:port 可以检测到打开套接字的状况sar -n SOCK 查看tcp创建的连接数 (未使用过)tcpdump -iany tcp port 9000 对tcp端口为9000的进行抓包 (待...

2018-05-22 16:12:33 979

原创 流量控制和拥塞控制

流量控制和拥塞控制流量控制和拥塞控制是有区别的。流量控制:控制双方的传送速率在双方可以接受的范围内。拥塞控制:描述的是整个网络的状态,通过是否重传以及传输速率的大小去感知网络的拥塞情况,进而进行调整,达到恢复网络的目的。(感知整体网络,通过控制每一个个体去fix网络状况)。流量控制流量控制是通过滑动窗口来实现的。滑动窗口协议是传输层进行流控的一种措施,接收方通过通告发送方自己的窗口大小,从而控制发...

2018-05-21 18:40:55 7924

原创 ARP协议

ARP协议ARP(Address Resolution Protocol,地址解析协议)是将IP地址解析为以太网MAC地址(物理地址)的协议。在局域网中,当主机或其他网络设备有数据要发送给另一个主机或设备时,它必须知道对方的网络层地址(即IP地址)。但是仅仅有IP地址是不够的,因为IP数据报文必须封装成帧才能通过物理网络发送。因此发送方还需要有接收方的物理地址。字段解释:以太网的目的地址和源地址:...

2018-05-21 15:37:22 1989

原创 TCP状态转转移

TCP状态转移3次握手 4次挥手这是典型的TCP流程,3次握手机建立连接,4次挥手断开连接。在这中间就是相应的数据传输。为什么3次握手?假设如果是2次握手,则会出现这种情形。当一个客户端发送的请求在网络中延误,而此时客户端已经超时。当服务器收到了无效请求,任然去发送ack给客户端,并且由于没有第3次握手就会认为已经建立链接。这中情况会耗费服务端资源。为什么4次挥手?因为TCP是全双工。客户端向服务...

2018-05-21 14:35:30 1118

原创 Redis 分布式锁

Redis 分布式锁分布式锁:现在的架构在都是多主机集群,也即是分布式。多个进程分布在多个不同物理主机上。为它们加锁操作,这就是所谓的分布式锁。场景:对于高并发场景,我们往往需要引入分布式缓存,来加快整个系统的响应速度。但是缓存是有失效机制的,如果某一时刻缓存失效,而此时有大量的请求过来(慢查询),那么所有的请求会瞬间直接打到DB上,那么这么大的并发量,DB可能是扛不住的。那么这里需要引入一个保护...

2018-05-18 15:23:40 876

原创 redis初步

RedisRedis 是键值对数据库。相对了关系型数据库而言,非关系型数据库更加贴近实际的代码实现。而关系型数据库一般还是用mysql,毕竟有开源,性能不错。相关内容在另外的系列中介绍。Redis一般是用在做缓存这一块。目前见到的项目实践中就是把相应的数据放在redis,在查mysql之前先查看redis,有则直接返回,也有更加细致的用redis实现的分布式锁来限制查找mysql的问题,防止缓存失...

2018-05-18 11:58:43 139

原创 golang chan原理

golang chan原理channel 是实现go语言所谓CSP理念的重点。在进程中通信有多重方式。共享内存,消息队列,socket等方式。而channel是在同一个进程内不同协程之间的通信方式。CSP:CSP模型是上个世纪七十年代提出的,用于描述两个独立的并发实体通过共享的通讯 channel(管道)进行通信的并发模型。channel结构体Channel 实际上是个环形...

2018-05-11 13:20:15 6292 2

转载 golang 函数值传递(slice)

转载 https://juejin.im/entry/5a1e4bcd6fb9a045090942d8 点击打开链接对于了解一门语言来说,会关心我们在函数调用的时候,参数到底是传的值,还是引用?其实对于传值和传引用,是一个比较古老的话题,做研发的都有这个概念,但是可能不是非常清楚。对于我们做Go语言开发的来说,也想知道到底是什么传递。那么我们先来看看什么是值传递,什么是引用传递。什么是传值(值传递...

2018-05-10 17:50:30 7346 1

翻译 GO new和make

new和make new和make都是golang用来申请空间的内建函数。new实际上用的并不是很多。make 在slice,map都应用较多。new The new build-in function allocates memory(仅仅分配空间). The first argument is a type, not a value, and the value returned is

2018-05-10 15:12:49 166

原创 Linux 文件系统

曾经在工作中遇到文件无法创建的问题。报错是inode节点耗尽。仔细查看是由于产生的文件太小。 inode也会消耗硬盘空间,所以硬盘格式化的时候,操作系统自动将硬盘分成两个区域。一个是数据区,存放文件数据;另一个是inode区(inode table),存放inode所包含的信息。每个inode节点的大小,一般是128字节或256字节。inode节点的总数,在格式化时就给定,一般是每1KB或每2

2018-05-02 12:03:05 164

空空如也

空空如也

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

TA关注的人

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