- 博客(116)
- 资源 (10)
- 问答 (1)
- 收藏
- 关注
原创 NGINX 处理 HTTP 上游响应
接收上游响应头部在创建和上游连接的时候,将对应的 read_event_hander 设置为:ngx_http_upstream_process_headerstatic voidngx_http_upstream_connect(ngx_http_request_t *r, ngx_http_upstream_t *u){ // skip others... u->r...
2019-10-05 13:32:42 1061
转载 netfilter/iptables全攻略
转自:http://www.opsers.org/linux-home/videos/chapter-netfilter-iptables-raiders.html内容简介防火墙的概述iptables简介iptables基础iptables语法iptables实例案例详解防火墙的简介防火墙是指设置在不同网络或网络安全域之间的一系列部件的组合,它能
2016-05-12 00:10:48 852
转载 Python 数据分析包:pandas 基础
pandas 是基于 Numpy 构建的含有更高级数据结构和工具的数据分析包类似于 Numpy 的核心是 ndarray,pandas 也是围绕着 Series 和 DataFrame 两个核心数据结构展开的 。Series 和 DataFrame 分别对应于一维的序列和二维的表结构。pandas 约定俗成的导入方法如下:from pandas import Series,DataFr
2016-05-09 16:46:34 13559
转载 python numpy
安装numpy:# pip install numpy1、Numpy是什么很简单,Numpy是Python的一个科学计算的库,提供了矩阵运算的功能,其一般与Scipy、matplotlib一起使用。其实,list已经提供了类似于矩阵的表示形式,不过numpy为我们提供了更多的函数。如果接触过matlab、scilab,那么numpy很好入手。 在以下的代码示例中,总是先导入
2016-05-07 20:17:16 920
转载 ipyhon 与 ipython notebook
在 IPython 的官网(ipython.org)上,介绍其的第一句话便是:IPython 是一个加强版的交互式 Shell。另外很多介绍 IPython 的文章也常以这句话开头,但这句话实在是等于没说。让 IPython 在各种 shell(IDE) 中脱颖而出,成为科学计算标配的,并不是按 Tab 键代码补完、以 % 开头的魔术命令这些大家都有的东西,而是与 matplotlib 这个数据可
2016-05-07 19:36:04 3315 1
转载 IPsec 技术原理总结
技术点详解---IPSec VPN基本原IPSec VPN是目前VPN技术中点击率非常高的一种技术,同时提供VPN和信息加密两项技术,这一期专栏就来介绍一下IPSec VPN的原理。IPSec VPN应用场景IPSec VPN的应用场景分为3种:1. Site-to-Site(站点到站点或者网关到网关):如弯曲评论的3个机构分布在互联网的3个不同的地方
2015-11-09 12:52:51 12426 1
原创 ubuntu14.04 LTS 配置 DPDK 2.1.0 开发环境
之前关于配置的文章dpdk的版本有些较老了,这里结合新的版本dpdk-2.1.0 记录一下安装过程,这里主要是手动安装。一 我电脑的配置是:1. 系统: ubuntu 14.04 LTS 3.13.11版本内核 x86-64位。2. 网卡: 两个10G的Intel的网卡。(用来做dpdk的收发处理)查看网卡信息:root@xxx:/# lspci | grep 'Ethe
2015-10-27 19:35:28 3929
转载 基于 OpenFlow 实现网络虚拟化
虚拟化技术一直是云计算发展的重要推动因素。作为云计算的基础构架,桌面、存储和服务器的虚拟化都已经发展的如火如荼,而 OpenFlow 和 SDN(Software Defined Network) 的提出,使得同为基础架构的网络交换设备支持网络虚拟化多租户架构,将物理网络和逻辑网络有效分离,满足了云计算的服务特性,同时提升了网络资源的利用率 。-----------------------
2015-08-20 17:17:53 1229
转载 Linux多线程技术总结
前一段时间因为开题的事情一直耽搁了我搞Linux的进度,搞的我之前学的东西都遗忘了,很烦躁的说,现在抽个时间把之前所学的做个小节。文章内容主要总结于《Linux程序设计第3版》。1.Linux进程与线程 Linux进程创建一个新线程时,线程将拥有自己的栈(因为线程有自己的局部变量),但与它的创建者共享全局变量、文件描述符、信号句柄和当前目录状态。Linux通过fork创建子
2015-08-20 11:01:45 1756
转载 Java分布式相关
分布式架构的演进系统架构演化历程-初始阶段架构初始阶段 的小型系统 应用程序、数据库、文件等所有的资源都在一台服务器上通俗称为LAMP特征:应用程序、数据库、文件等所有的资源都在一台服务器上。描述:通常服务器操作系统使用linux,应用程序使用PHP开发,然后部署在Apache上,数据库使用Mysql,汇集各种免费开源软件以及一台廉价服务器就可以开始系统
2015-08-06 19:58:54 1092
转载 MySQL Sharding详解
一 背景我们知道,当数据库中的数据量越来越大时,不论是读还是写,压力都会变得越来越大。采用MySQL Replication多master多slave方案,在上层做负载均衡,虽然能够一定程度上缓解压力。但是当一张表中的数据变得非常庞大时,压力还是 非常大的。试想,如果一张表中的数据量达到了千万甚至上亿级别的时候,不管是建索引,优化缓存等,都会面临巨大的性能压力。二 定义数据
2015-07-30 11:27:47 12390
转载 Ubuntu mongodb 安装 开发测试
UBuntu上安装MongoDB server获取最新版本wget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.0.2.tgz解压缩即可执行tar zxvf mongodb-linux-x86_64-2.0.2.tgzcd /usr/mongodb-linux-x86_64-2.0.2/bin
2015-07-27 16:50:16 940
转载 Go操作mysql Memcache Mongodb
date: 2014-12-12操作mysql操作mongodb操作memcache发现go提供的操作msyql、memcache、mongodb的文档没有lua-ngx的好读,即实例不是很明确,此文列出自己操作时的实例,可让快速入手,但是优化以及错误处理等还有很多工作。操作mysqlgo-sql-driver/mysql Example 上提供了用go操作
2015-07-17 10:35:53 2435
转载 Go Web开发基础
1.Abstract在学习web开发的过程中会遇到很多困难,因此写一篇类似综述类的文章。作为路线图,从web开发要素的index出发,来介绍golang开发的学习流程以及Example代码。在描述中多是使用代码来描述使用方法不会做过多的说明。最后可以方便地copy代码来实现自己的需求。本文适应对象:对web开发有一定经验的人能够灵活使用ajax的人(至少懂得前后分离)golang
2015-07-14 16:28:52 2455
转载 Golang 工程组织
Golang里面工程的组织,需要设置GOPATH 路径,我自的设置方式是:在 ~/.bashrc中添加:vim ~/.bashrc export GOPATH="$HOME/yourpath" 之后source一下这个文件使之生效。下面是转载的内容:-------------------------------------------------------------
2015-07-13 10:51:23 2381
原创 golang语法学习(三) golang的面向对象机制-接口与方法
注:本章的主要内容来自于:http://go-tour-zh.appspot.com/methods/1方法:1. Go 没有类。然而,可以在结构体类型上定义方法。例如:package mainimport ( "fmt" "math")type Vertex struct { X, Y float64}func (v *Ver
2015-07-09 20:37:58 3377
原创 golang语法学习(二):控制语句,函数,以及错误处理。
在语法篇(一)中学习了go中基本的数据类型、变量、常量等组成语言的基本要素,在这一节中将会学习如何将这些元素组织起来,最终写成可以执行的代码。在这一部分包括:go中的流程控制语句;go中函数的用法;go特殊的错误处理方式;Golang中的流程控制语句在具体编程的时候免不了需要使用一些特殊的语句实现某些功能,比如使用循环语句来进行迭代,使用选择语句控制程序的执行方式等。这些语
2015-06-15 22:30:10 2676
原创 golang语法学习(一):变量,常量以及数据类型
学习一门新的语言肯定是要从他的基本语法开始,语法构成了整个程序设计的基础,从语法中我们也可以看到这门语言的一些特性,但是话说回来,语法这东西,不同的语言大同小异,所以这也对语法的记忆造成了一定的难度,其实最好的方法应该是旁边有本书,随时可以拿过来查阅或者纠正。当然golang的语法也是这样,下面的一些是我学习七牛团队许式伟等出的《Go语言编程》: http://baike.baidu.com/li
2015-06-09 12:12:35 6870 1
转载 Dynamic Time Warping 动态时间规整算法
转载自:http://www.tuicool.com/articles/Ibeuu2Dynamic Time Warping(DTW)是一种衡量两个时间序列之间的相似度的方法,主要应用在语音识别领域来识别两段语音是否表示同一个单词。1. DTW方法原理在时间序列中,需要比较相似性的两段时间序列的长度可能并不相等,在语音识别领域表现为不同人的语速不同。而且同一个单词内的不同音
2015-06-01 20:39:32 2647
原创 Starting your first golang program. 编写golang程序的"Hello World!"
下面我们开始Go的"Hello world"的编写,主要参考资料来自:https://golang.org/doc/install主要包括以下几个部分:1. Go在Linux内核操作系统下的编译环境的安装。我这里是Ubuntu 15.04, Linux 3.19.0内核。2. Go程序的编写。3. Go程序简要说明4. Go的编译,链接和运行。下面先看:Go的安
2015-05-24 13:12:05 1643
转载 memcached全面剖析
1. memcached 的介绍memcached是什么?memcached 是以LiveJournal 旗下Danga Interactive 公司的Brad Fitzpatric 为首开发的一款软件。现在已成为 mixi、 hatena、 Facebook、 Vox、LiveJournal等众多服务中 提高Web应用扩展性的重要因素。许多Web应用都将数
2015-05-04 10:25:04 806
转载 CDN技术原理分析
1. 前言 Internet的高速发展,给人们的工作和生活带来了极大的便利,对Internet的服务品质和访问速度要求越来越高,虽然带宽不断增加,用户数量也在不断增加,受Web服务器的负荷和传输距离等因数的影响,响应速度慢还是经常抱怨和困扰。解决方案就是在网络传输上利用缓存技术使得Web服务数据流能就近访问,是优化网络数据传输非常有效的技术,从而获得高速的体验和品质保证。 网络
2015-05-04 09:37:56 1321
原创 从C10K问题来看常见的中小型服务器I/O模型
问题描述:关于C10问题的经典描述可以查看这个网页 http://www.kegel.com/c10k.html具体来说就是服务器如何处理10k个客户端的并发连接,即 concurrent 10,000 connection 。如果在很早以前互联网还不普及的时候,一个服务器很少会同时出现有10k的连接,但是现在互联网高速发展,这种规模的连接可能随处可见,所以如何来解决C10k的问题
2015-05-02 13:23:20 1947 1
原创 Go的语言特性总结
写在前面: 近来关于对Golang的讨论有很多,七牛的几个大牛们也断定Go语言在未来将会快速发展,并且很可能会取代Java成为互联网时代最受欢迎的编程语言。Go语言是google推出的编程语言,在已经成功的给世人创造了改变人们生活的操作系统之后,google似乎感觉有必要再为世人带来一款强大的编程语言,而Go语言依靠自己众多友好的特性也不负众望正在被开发者接触,我有幸在学习高性能并发编程的时候认识
2015-05-01 23:02:46 4361
转载 Golang适合高并发场景的原因分析
典型的两个现实案例:我们先看两个用Go做消息推送的案例实际处理能力。360消息推送的数据:16台机器,标配:24个硬件线程,64GB内存 Linux Kernel 2.6.32 x86_64 单机80万并发连接,load 0.2~0.4,CPU 总使用率 7%~10%,内存占用20GB (res) 目前接入的产品约1280万在线用户 2分钟一次GC,停顿2秒
2015-05-01 16:25:20 4179
原创 关于 许式伟谈Go Erlang并发编程差异
写在开头:这篇文章是ECUG2014年七牛CEO许式伟的演讲稿。这篇文章很详细的分析了Go和 Erlang在实现并发编程的差异,但是有些内容可能因为作者本人个人情感的一些原因有些出入导致了知乎上的一些讨论,http://www.zhihu.com/question/27465406,这种讨论甚至激烈的争辩是无法避免的,因为捍卫者需要站出来维护他们正在使用的兵器。关于这种争辩,在其他编程领域也有
2015-05-01 11:35:22 4095
转载 Linux 进程管理与调度剖析
主要转载于两篇文章:http://www.ibm.com/developerworks/cn/linux/l-linux-process-management/http://www.linuxidc.com/Linux/2014-08/105366p3.htmLinux 的用户空间进程的创建和管理所涉及的原理与 UNIX 有很多共同点,但也有一些特定于 Linux 的独特之处。在本文中,了解
2015-04-30 22:37:44 1098
转载 关于I/O多路复用技术 - Epoll剖析
什么是epollepoll是什么?按照man手册的说法:是为处理大批量句柄而作了改进的poll。当然,这不是2.6内核才有的,它是在2.5.44内核中被引进的(epoll(4) is a new API introduced in Linux kernel 2.5.44),它几乎具备了之前所说的一切优点,被公认为Linux2.6下性能最好的多路I/O就绪通知方法。 ep
2015-04-28 10:34:44 2452 1
转载 C++实现线程池
为什么需要线程池目前的大多数网络服务器,包括Web服务器、Email服务器以及数据库服务器等都具有一个共同点,就是单位时间内必须处理数目巨大的连接请求,但处理时间却相对较短。 传统多线程方案中我们采用的服务器模型则是一旦接受到请求之后,即创建一个新的线程,由该线程执行任务。任务执行完毕后,线程退出,这就是是“即时创建,即 时销毁”的策略。尽管与创建进程相比,创建线程的时间已经大
2015-04-25 11:01:17 6796
转载 类型转换和类型安全(现代 C++)
文档标示符列出了常见类型转换问题,并描述如何在 C++ 代码中避免它们。当您编写C++程序时,务必确保它是类型安全的。 这意味着每个变量、函数参数和函数返回值存储一种可接受的数据类型,涉及不同“有意义”类型的操作数,且不导致数据丢失、不正确的位组合解释或内存损坏。 程序的类型安全的定义是从不显式或隐式的把一种类型转换成另一种类型。 但是,有时需要类型转换,即使是不安全的转换。 例如,在变量
2015-04-25 09:43:42 1986
原创 关于leetcode中游戏相关的几道题。
碰到的第一个题就是九宫格的问题,Valid Sudoku determine if a Sudoku is valid, according to: http://sudoku.com.au/TheRules.aspxThe Sudoku board could be partially filled, where empty cells are fille
2015-04-21 16:22:47 1051
原创 关于leetcode中对数组O(1)空间消耗操作的几道题
其实这几道题在leetcode中都是比较容易的,但是如果刚开始不理解题意的话可能就会进入陷阱。整数数组中的几个操作如下面所示,无非是怎样进行数组元素的的交换。Remove ElementGiven an array and a value, remove all instances of that value in place and return the new length
2015-04-21 09:05:58 1521
原创 关于leetcode中c++ STL 的几道题
1. Valid Parentheses用来判断字符串中的括号是否合法的一道题。注意输入只会有 (, ) , {, }, [, ]这么几种情况。合法的括号是以一定的顺序进行匹配的一些。比如:"()[]', 或者"([])"等,而以"([)]"这种为类型的表示是有错误的。很显然用“stack”来作为数据结构来实现这道题,每一次插入一个元素的时候都进行匹配,如果匹配成功了,那么就将栈顶元素
2015-04-20 10:47:10 2539
原创 关于leetcode中整形溢出的几道题。
题一:String to Integer (atoi) 主要是要注意这里的输入输出的特列:题目的要求是:11. 前面的空格可以忽略;2. 第一个非空格要么是整数,要么是'+','-';如过不是这些就返回0;3. 要考虑整型溢出的情况。大致就是这么三点/*------------------------------------atoi ------------
2015-04-17 09:45:55 1757
原创 C++实现线程安全的单例模式
1. 什么是单例模式?单例模式是设计模式中的一种,是设计模式中最简单,最常用的一种模式,这种模式用来保证某一个类的对象实例在应用中只有一个,或者只被创建一次。在实际的开发中,我们经常会碰到只需要创建一个实例的情况,例如: 配置文件,日志对象,线程池,缓存等。这些实例为了保证一致性,在整个应用中只需要被创建一次,例如,如果日志对象被创建多次,那么很可能日志中的内容就不一致,还有就是有时候占用资源过多的
2015-04-15 15:53:12 3387
原创 Unix网络编程(七)使用select来实现服务器的并发
在上一文中 http://blog.csdn.net/michael_kong_nju/article/details/44887411 我们讨论了I/O复用技术,即如何在一个进程里监测多个I/O, 刚开始接触还有点混论,但是现在想想,其实原理很简单,或者说内核设计者的想法很直接,就是以前我一个进程一次只能处理一个I/O,现在我通过一个fd_set结构体来实现将多个I/O的描述符放在一个类似于数组
2015-04-06 23:24:28 3029 1
原创 Unix网络编程(六)高级I/O技术之复用技术 select
本文将讨论网络编程中的高级I/O复用技术,将从下面几个方面进行展开:a. 什么是复用技术呢?b. 什么情况下需要使用复用技术呢?c. I/O的复用技术的工作原理是什么?d. select, poll and epoll的实现机制,以及他们之间的区别。
2015-04-06 20:44:45 1940
转载 如何优化服务器的性能
一、通常服务器的性能会卡在三个地方:cpu 网络IO 磁盘IO二、在优化性能的时候,首先要判断性能的瓶颈在上述的哪个地方。然后对症下药,按照下面的方法来优化:1、提高CPU性能的方法并发。利用多线程、进程。老的线程库效率太低,需要升级用nptl 。进(线)程数不要大于cpu个数 (请参考:http://www.ibm.com/developerworks/cn/linux/
2015-04-05 00:20:26 1864
深入理解Nginx 第二版
2017-11-07
怎样在窗体中添加类似于股票走势图那样的图形?
2013-07-22
TA创建的收藏夹 TA关注的收藏夹
TA关注的人