自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 REST API

REST APIREST 是浏览器与服务器通信方式的一种设计风格。它的全称是“REpresentational State Transfer”,中文意为”表现层状态转换“。Resource:资源Representation:表现层State:状态Transfer:转换REST 的核心概念互联网上所有可以访问的内容,都是资源。服务器保存资源,客户端请求

2017-02-19 21:15:54 315

转载 react

React 的核心思想View 是 State 的输出。view = f(state)上式中,f表示函数关系。只要 State 发生变化,View 也要随之变化。React 的本质是将图形界面(GUI)函数化。const person = { name: "michel", age: 31}const App = ({ person })

2017-02-19 21:08:33 383

转载 SSL/TLS协议运行机制的概述(转载自阮一峰的网络日志)

互联网的通信安全,建立在SSL/TLS协议之上。本文简要介绍SSL/TLS协议的运行机制。文章的重点是设计思想和运行过程,不涉及具体的实现细节。如果想了解这方面的内容,请参阅RFC文档。一、作用不使用SSL/TLS的HTTP通信,就是不加密的通信。所有信息明文传播,带来了三大风险。(1) 窃听风险(eavesdropping):第三方可以获知通信内容。

2017-02-19 20:45:50 595

转载 HTTPS协议原理透析

1、HTTPS本身并非协议,而是标准的HTTP协议架在SSL/TLS协议之上的一种结构。(一种不太合适的说法可以认为是两种协议的叠加)。HTTP是工作在OSI7层模型的最上层,就是第7层:Application Layer。而SSL/TLS是工作在第4层:Transport Layer。两层之间还是隔了Presentation Layer(6层)和Session Layer(5层)两层的。

2017-02-19 20:42:15 314

原创 HTTP协议与HTTPS协议的区别

HTTPS(Secure Hypertext Transfer Protocol)安全超文本传输协议: 它是一个安全通信通道,它基于HTTP开发,用于在客户计算机和服务器之间交换信息,它使用安全套接字层(SSL)进行信息交换,简单来说它是HTTP的安全版。它是由Netscape开发并内置于其浏览器中,用于对数据进行压缩和解压操作,并返回网络上传送回的结果。HTTPS实际上应用了Netscap

2017-02-19 20:30:41 517

原创 exports和module.exports

导出对象建议用module.exports,导出多个方法和变量建议用exports

2017-02-19 20:21:34 265

原创 epoll

epoll是Linux内核为处理大批量文件描述符而作了改进的epoll,是Linux下多路复用IO接口select/poll的增强版本,它能显著提高程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率。另一点原因就是获取事件的时候,它无须遍历整个被侦听的描述符集,只要遍历那些被内核IO事件异步唤醒而加入Ready队列的描述符集合就行了。epoll除了提供select/poll那种IO事件的水

2015-05-12 18:40:51 283

原创 traceroute

原理 程序利用增加存活时间(TTL)值来实现其功能的。每当数据包经过一个路由器,其存活时间就会减1。当其存活时间是0时,主机便取消数据包,并传送一个ICMP TTL数据包给原数据包的发出者。 程序发出的首3个数据包TTL值是1,之后3个是2,如此类推,它便得到一连串数据包路径。注意IP不保证每个数据包走的路径都一样。定义 详细解释 Internet,即国际互联网,是目前世界上最大的计算机网络

2015-05-10 22:11:06 533

原创 traceroute的一些用法

traceroute 跟踪数据包到达网络主机所经过的路由工具;traceroute 是用来发出数据包的主机到目标主机之间所经过的网关的工具。traceroute 的原理是试图以最小的TTL发出探测包来跟踪数据包到达目标主机所经过的网关,然后监听一个来自网关ICMP的应答。发送数据包的大小默认为 38个字节。traceroute [参数选项] hostname,域名或 IP地址参

2015-05-10 22:03:34 862

原创 traceroute工作原理

traceroute, 也就是 trace route,跟踪路由。这个程序最早是Van Jacobson实现的。源码在网上可以找到,不过我还没有去找。主要的原理是IP路由过程中对数据包TTL(Time to Live,存活时间)的处理。当路由器收到一个IP包时,会修改IP包的TTL(及由此造成的头部检验和checksum变化)。每收到一个包,检查这个 的TTL是否是0或1。如果是,表明这个包还

2015-05-10 21:56:28 816

原创 TCP中的定时器

1.连接建立(connection establishment)”定时器       在发送SYN报文段建立一条新连接时启动。如果在75秒内没有收到响应,连接建立将中止。2.“重传(retransmission)”定时器       在TCP发送某个数据段时设定。如果该定时器超时而对端的确认还未到达,TCP将重传该数据段。重传定时器的值 (即TCP等待对端确认的

2015-05-10 21:46:07 257

原创 TCP的流量控制和拥塞控制

TCP的流量控制1. 利用滑动窗口实现流量控制    如果发送方把数据发送得过快,接收方可能会来不及接收,这就会造成数据的丢失。所谓流量控制就是让发送方的发送速率不要太快,要让接收方来得及接收。    利用滑动窗口机制可以很方便地在TCP连接上实现对发送方的流量控制。    设A向B发送数据。在连接建立时,B告诉了A:“我的接收窗口是 rwnd = 400 ”(这里

2015-05-10 21:43:01 474

原创 __attribute__((weak))

GNU C的一大特色(却不被初学者所知)就是__attribute__机制。__attribute__可以设置函数属性(Function Attribute)、变量属性(Variable Attribute)和类型属性(Type Attribute)。它的书写特征是:__attribute__前后都有两个下划线,并切后面会紧跟一对原括弧,括弧里面是相应的__attribute__参数,语法格式如下

2015-05-06 20:47:11 379

转载 TCP中的TIME_WAIT状态详解

linux和windows下TIME_WAIT过多的解决办法如果使用了nginx代理,那么系统TIME_WAIT的数量会变得比较多,这是由于nginx代理使用了短连接的方式和后端交互的原因,使得nginx和后端的ESTABLISHED变得很少而TIME_WAIT很多。这不但发生在安装nginx的代理服务器上,而且也会使后端的app服务器上有大量的TIME_WAIT。查阅TIME_WAIT资料,

2015-05-06 20:35:10 2728

转载 Trie树详解及其应用

一、知识简介        最近在看字符串算法了,其中字典树、AC自动机和后缀树的应用是最广泛的了,下面将会重点介绍下这几个算法的应用。      字典树(Trie)可以保存一些字符串->值的对应关系。基本上,它跟Java的HashMap功能相同,都是key-value映射,只不过Trie的key只能是字符串。  Trie 的强大之处就在于它的时间复杂度。它的插入和查询时间复杂度都为

2015-05-05 22:05:29 362

转载 C++的多态

C++编程语言是一款应用广泛,支持多种程序设计的计算机编程语言。我们今天就会为大家详细介绍其中C++多态性的一些基本知识,以方便大家在学习过程中对此能够有一个充分的掌握。  多态性可以简单地概括为“一个接口,多种方法”,程序在运行时才决定调用的函数,它是面向对象编程领域的核心概念。多态(polymorphism),字面意思多种形状。  C++多态性是通过虚函数来实现的,虚函数允许子类重新定

2015-05-05 21:52:19 288

转载 9个offer,12家公司,35场面试,从微软到谷歌,应届计算机毕业生的2012求职之路[对书籍加了注释]

引言:同样是求职,和前面一篇blog一样,看出了很大的差距,多花了些时间,把作者列举的书籍通过豆瓣、亚马逊详细查了下,并加了注释。作者的思维逻辑非常清晰、目标很明确、定位很明确、做了大量的准备和努力,值得深入学习!1,简介毕业答辩搞定,总算可以闲一段时间,把这段求职经历写出来,也作为之前三个半月的求职的回顾。首先说说我拿到的offer情况:微软,3面->终面

2015-05-05 21:44:39 2077

转载 腾讯微信技术总监周颢:一亿用户增长背后的架构秘密

小手一抖,好文转走,学习了!微信——腾讯战略级产品,创造移动互联网增速记录,10个月5000万手机用户,433天之内完成用户数从零到一亿的增长过程,千万级用户同时在线,摇一摇每天次数过亿...在技术架构上,微信是如何做到的?日前,在腾讯大讲堂在中山大学校园宣讲活动上,腾讯广研助理总经理、微信技术总监周颢在两小时的演讲中揭开了微信背后的秘密。周颢,2001年毕业于华南理工大学,计算机专业

2015-05-05 21:20:20 504

转载 十道海量数据处理面试题与十个方法大总结

第一部分、十道海量数据处理面试题  1、海量日志数据,提取出某日访问百度次数最多的那个IP。  此题,在我之前的一篇文章算法里头有所提到,当时给出的方案是:IP的数目还是有限的,最多2^32个,所以可以考虑使用hash将IP直接存入内存,然后进行统计。  再详细介绍下此方案:首先是这一天,并且是访问百度的日志中的IP取出来,逐个写入到一个大文件中。注意到IP是32位的,最多

2015-05-05 21:06:25 547

原创 面试中常见的问题

1、请你自我介绍一下你自己,回答提示:一般人回答这个问题过于平常,只说姓名、年龄、爱好、工作经验,这些在简历上都有,其实,企业最希望知道的是求职者能否胜任工作,包括:最强的技能、最深入研究的知识领域、个性中最积极的部分、做过的最成功的事,主要的成就等,这些都可以和学习无关,也可以和学习有关,但要突出积极的个性和做事的能力,说得合情合理企业才会相信。企业很重视一个人的礼貌,求职者要尊重考官,在回

2015-05-03 14:50:46 672

原创 1.connect会阻塞,怎么解决? 2.如果select返回可读,结果只读到0字节,什么情况?

一、connect会阻塞,怎么解决?1.使用定时器;(最常用也最有效的一种方法)2.采用非阻塞模式:设置非阻塞,返回之后用select检测状态。二、如果select返回可读,结果只读到0字节,什么情况?某个套接字集合中没有准备好,可能会select内存用FD_CLR清该位为0.

2015-04-28 22:20:23 3485 1

原创 select/poll/epoll

一、selectselect的本质是采用32个整数的32位,即32*32= 1024来标识,fd值为1-1024。当fd的值超过1024限制时,就必须修改FD_SETSIZE的大小。这个时候就可以标识32*max值范围的fd。对于单进程多线程,每个线程处理多个fd的情况,select是不适合的。原因如下:1.所有的线程均是从1-32*max进行扫描,每个线程处理的均是一段fd值

2015-04-28 22:12:50 389

原创 TCP/UDP与connect系统调用

一、TCP与UDP区别       TCP保证数据正确性,UDP可能丢包;TCP保证数据顺序,UDP不保证。       TCP---传输控制协议,提供的是面向连接、可靠的字节流服务。当客户和服务器彼此交换数据前,必须先在双方之间建立一个TCP连接,之后才能传输数据。TCP提供超时重发,丢弃重复数据,检验数据,流量控制等功能,保证数据能从一端传到另一端。       UDP---用户数

2015-04-28 20:53:27 1002

原创 volatile浅析

volatile的本意是“易变的”。因为访问寄存器要比访问内存单元快的多,所以编译器一般都会作减少存取内存的优化,但有可能会读脏数据。当要求使用volatile声明变量值的时候,系统总是重新从它所在的内存读取数据,即使它前面的指令刚刚从该处读取过数据。   精确地说就是:遇到这个关键字声明的变量,编译器对访问该变量的代码就不再进行优化,从而可以提供对特殊地址的稳定访问;如果不使用volatil

2015-04-28 20:16:00 321

原创 http keepalive原理

1、背景    KeepAlive是就是通常所称的长连接。KeepAlive带来的好处是可以减少tcp连接的开销,这对于短response body的请求效果更加明显。同时,可以为采用HTTP协议的交互式应用提供良好的session支持。2、KeepAlive的原理    在HTTP1.0和HTTP1.1协议中都有对KeepAlive的支持。其中HTTP1.0需要在requ

2015-04-28 20:06:10 2252

原创 mysql性能监控指标及分析

1.系统mysql的进程数ps -ef | grep "mysql" | grep -v "grep" | wc –l2.Slave_runningmysql > show status like 'Slave_running';如果系统有一个从复***务器,这个值指明了从服务器的健康度3.Threads_connectedmysql > show

2015-04-28 19:13:25 468

原创 Memcached与Redis

1. Memcached简介Memcached是以LiveJurnal旗下Danga Interactive公司的Bard Fitzpatric为首开发的高性能分布式内存缓存服务器。其本质上就是一个内存key-value数据库,但是不支持数据的持久化,服务器关闭之后数据全部丢失。Memcached使用C语言开发,在大多数像Linux、BSD和Solaris等POSIX系统上,只要安装了li

2015-04-21 22:00:33 305

原创 TCP的拥塞控制策略

一、TCP基于窗口的拥塞控制策略1.1 加法增加乘法减少(AIMD)窗口算法    TCP是Internet中最流行的端到端传输协议,为主机之间提供可靠按序的传输服务。在现有的TCP/IP协议体系下,TCP拥塞控制机制主要基于加法增加乘法减少(AIMD)算法。在该算法中主要用到三个窗口变量:    (1)拥塞窗口(cwnd):限定源端在拥塞控制中在一定时间内允许传送的最大数据量,是来自

2015-04-21 21:46:17 8902 1

原创 五种I/O模式

五种I/O 模式:【1】 阻塞 I/O           (Linux下的I/O操作默认是阻塞I/O,即open和socket创建的I/O都是阻塞I/O)【2】 非阻塞 I/O       (可以通过fcntl或者open时使用O_NONBLOCK参数,将fd设置为非阻塞的I/O)【3】 I/O 多路复用    (I/O多路复用,通常需要非阻塞I/O配合使用)【4】 信号驱动 I

2015-04-20 22:04:34 667

原创 同步、异步、阻塞、非阻塞

一、发送接收方式:1、异步:报文发送和接收是分开的,相互独立,互不影响的。这种方式又分两种情况:异步双工:接收和发送在同一个程序中,有两个不同的子进程分别负责发送和接送。异步单工:接送和发送使用两个不同的程序来完成。2、同步:报文发送和接收是同步进行,即报文发送后等待接送返回报文。同步方式一般需要考虑超时问题,试想我们发送报文以后也不能无限等待啊,所以我们要设定一个等待时候。超过等待时间发

2015-04-20 21:45:17 660

原创 http和socket之长连接和短连接区别

TCP/IP TCP/IP是个协议组,可分为三个层次:网络层、传输层和应用层。 在网络层有IP协议、ICMP协议、ARP协议、RARP协议和BOOTP协议。 在传输层中有TCP协议与UDP协议。 在应用层有:TCP包括FTP、HTTP、TELNET、SMTP等协议                  UDP包括DNS、TFTP等协议 短连接 连接->传输数据->关闭连接 

2015-04-20 21:36:56 529

原创 TCP长连接与短连接的区别

1. TCP连接当网络通信时采用TCP协议时,在真正的读写操作之前,server与client之间必须建立一个连接,当读写操作完成后,双方不再需要这个连接时它们可以释放这个连接,连接的建立是需要三次握手的,而释放则需要4次握手,所以说每个连接的建立都是需要资源消耗和时间消耗的经典的三次握手示意图:经典的四次握手关闭图:2. TCP短连接我们模

2015-04-20 21:32:31 356

转载 一秒钟法则:来自腾讯无线研发的经验分享

在2014年4月11日的腾讯分享日活动上, 来自腾讯MIG的移动互联网事业群运营总监/T4专家,负责运营QQ手机浏览器、腾讯PC浏览器、腾讯手机安全管家、腾讯电脑管家产品的刘昕介绍了移动无线产品研发中的“一秒钟法则”。本文根据该演讲内容整理形成。 移动互联网的一个很大问题在于无线网络跟以前的有线网络不一样,无论是网络的组织形态、架构、通讯机制,跟有线网络都有很大差异

2015-04-20 21:09:45 409

转载 InnoDB列压缩,提升DB性能

腾讯游戏风雨十年,一直致力于带给玩家最好的快乐体验,为此也取得了巨大的成功。腾讯游戏的后台数据库一直守护着亿万玩家的数据,提供着稳定透明的服务。        腾讯后台数据库大部分使用的是MySQL数据库,现已大部分被替换为互娱DBA团队自己定制的TMySQL。IO问题是传统关系型数据库中最热门话题,互娱DBA团队在业务运营过程中同样遇到类似问题。

2015-04-20 21:04:36 546

转载 NoSQL 在腾讯应用实践

吴悦,http://t.qq.com/iwuyue  腾讯大讲堂特约讲师,腾讯T4技术专家。先后参与腾讯分布式文件系统(TFS),K-V存储,SQL集群,接入网关(TGW)的设计与研发。见证了腾讯Nosql 从07年诞生,08、09批量应用,10年至今应用于腾讯开放平台让更多的第三方开发者使用;关注于构建具有低成本、高性能、高可用,可扩展,易运营特点的互联网海量后台服务。目前任腾讯架构平台部平台开

2015-04-20 20:49:59 725

原创 ehcache memcache redis 三大缓存

最近项目组有用到这三个缓存,去各自的官方看了下,觉得还真的各有千秋!今天特意归纳下各个缓存的优缺点,仅供参考! Ehcache在java项目广泛的使用。它是一个开源的、设计于提高在数据从RDBMS中取出来的高花费、高延迟采取的一种缓存方案。正因为Ehcache具有健壮性(基于java开发)、被认证(具有apache 2.0  license)、充满特色(稍后会详细介绍),所以被用于

2015-04-20 18:43:25 420

原创 C/C++中static,const,inline三种关键字详细总结

一、关于staticstatic 是C++中很常用的修饰符,它被用来控制变量的存储方式和可见性,下面我将从 static 修饰符的产生原因、作用谈起,全面分析static 修饰符的实质。static 的两大作用:一、控制存储方式 static被引入以告知编译器,将变量存储在程序的静态存储区而非栈上空间。引出原因:函数内部定义的变量,在程序执行到它的定义处时,编译

2015-04-16 21:53:40 444

原创 C++中const的实现机制深入分析

问题 C语言以及C++语言中的const究竟表示什么?其具体的实现机制又是如何实现的呢? 本文将对这两个问题进行一些分析,简单解释const的含义以及实现机制。 问题分析 简单的说const在C语言中表示只读的变量,而在C++语言中表示常量。关于const在C与C++语言中的使用以及更多的区别,以后有时间另开一贴说明。那么const究竟是如何实现的呢? 对于声明为const

2015-04-16 21:32:34 342

原创 Linux上的free命令详解

解释一下Linux上free命令的输出。  下面是free的运行结果,一共有4行。为了方便说明,我加上了列号。这样可以把free的输出看成一个二维数组FO(Free Output)。例如:FO[2][1] = 24677460FO[3][2] = 10321516                     1          2          3          4 

2015-04-16 21:05:15 339

原创 关于Linux的缓存内存 Cache Memory详解

PS:为啥我的Linux系统没运行多少程序,显示的可用内存这么少?其实Linux与Windows的内存管理不同,会尽量缓存内存以提高读写性能,通常叫做Cache Memory。有时候你会发现没有什么程序在运行,但是使用top或free命令看到可用内存free项会很少,此时查看系统的 /proc/meminfo 文件,会发现有一项 Cached Memory:输入cat /proc/

2015-04-16 20:50:14 529

空空如也

空空如也

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

TA关注的人

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