自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 实时互动业务

实时互动业务对于传统的页面,点播业务,到近两年来兴起的直播,都是依赖于 CDN 网络的单向数据传播业务。随着业务场景需求,实时互动正在扮演着越来越重要的场景。我们已经看到很多直播中都加入了实时互动的元素:直播中最早的互动方式,直播间里观众通过消息,弹幕等方式刷屏和主播进行互动直播连麦,两个或多个主播进行实时互动,然后把互动内容通过 CDN 进行直播抓娃娃机,通过安装在抓娃娃机的摄...

2018-03-07 21:28:08 1311

原创 直播 CDN 分发网络(网络架构)

直播 CDN 分发网络(网络架构)网络拓扑和传统页面,点播业务的 CDN 只有下行分发不同。对于一些秀场,游戏类的直播场景中主播一般是分散在全国各地的,所以直播架构中是分为上行汇聚和下行分发两套网络。而对一些现场活动,赛事制作方的直播,更多的是业务方提供一个源站,由 CDN 去拉取后进行分发。主播推流模式主播推流到上行边缘节点上行边缘节点将流推到汇聚核心。在有些环境中,...

2018-03-07 13:46:17 10534 1

原创 直播 CDN 分发网络(基本业务)

直播 CDN 分发网络(基本业务)传统直播一般是基于 CDN 网络进行分发,可支持大规模并发(并发数取决于 CDN 网络容量)。与传统 CDN 的大文件,小文件分发不同,由于主播分布区域分散,一般除了提供播放端的下行分发网络外,还提供上行主播推流汇聚网络。只有一些直播内容资源集中的业务方,会要求直播 CDN 直接回自己的源站,如电视台。上行汇聚目前传统直播 CDN 上行一般使用...

2018-03-07 13:39:56 3168

原创 AVC(H.264) FLV 打包

AVC(H.264) FLV 打包

2017-06-18 09:51:03 1889

原创 音视频基础

音视频基础概念小结

2017-06-18 09:44:15 657

原创 GO struct 小结

GO struct 小结

2017-06-18 09:40:14 1096

原创 go get golang.org/x 包失败解决方法

go get golang.org/x 包失败解决方法

2017-06-18 09:33:33 34398

原创 ipython 集成 SPARK

使用 ipython 集成 spark

2016-08-14 14:05:42 805

原创 perf+flamegraph 分析 nginx-rtmp 性能

perf+flamegraph 分析 nginx-rtmp 性能问题

2016-07-16 10:27:21 1662

原创 Python 模块动态加载技术

使用 exec 实现 Python 模块动态加载该技术可以使用 python 语法的配置文件,并在系统运行过程中实现配置文件的更新该技术也可以将 python 脚本作为业务逻辑动态加载到运行的系统中,实现业务逻辑在线更新

2016-04-02 23:54:43 7000 2

原创 CDN 技术研究——Cache集群通信

CDN Cache 集群通信:ICP,HTCP,Cache Digest,Cache Pre-filling,CARP,一致性 Hash

2016-03-26 14:54:25 1208

原创 CDN 技术研究——总概篇

什么是 CDN。CDN 的功能视图,部署视图和业务视图简述

2016-03-26 13:20:17 1485

原创 Lua C API 研究 —— 基础篇

对 Lua C API 进行基础的介绍总结了 C 调用 Lua 函数的栈操作过程总结了 Lua 调用 C 函数的栈操作过程总结了 Lua 加载 C 链接库的过程

2016-03-17 18:32:05 3871 3

原创 python 数据分析环境安装

安装主要包含以下内容ipython(4.0+) + notebooknumpypandasmatplotlibscipy以及 notebook 的配置

2016-03-16 02:28:53 1377

原创 luajit ffi 小结

Luajit ffi 接口使用小结:1. 使用 Luajit ffi 加载 C 链接库2. 使用 Luajit ffi 调用 C 函数3. 使用 Luajit ffi 处理基本类型对象,结构体对象,字符串对象 cdata4. cdata 赋值及修改本文仅限于使用 C 链接库,后面文章将介绍使用 Luajit ffi 加载 C++ 链接库

2016-02-05 00:05:41 10470

原创 lua 和 luajit 性能对比测试

测试对比 Luajit 和原生 Lua 的性能

2016-02-01 13:01:48 11625

原创 使用普通账户安装 Redis 服务

前面提到过黑客利用 Redis 漏洞实现无密码 root 登录。而 Redis 自身提供的安装方式和 Redis 服务必须使用 root 进行安装和启动,为这个漏洞提供了大大的便利。这里我整理了一个使用普通账户安装 Redis 并将其配置成服务,能够使用普通账户启动 Redis 服务的方法(支持 systemd 和 sysvinit 两种服务管理),并提供了一个安装脚本。

2016-01-06 21:04:24 7323

原创 使用 __new__ 实现 Python 的单例模式

使用 __new__ 实现 Python 的单例模式

2016-01-02 14:44:30 1295

原创 curl HTTP 测试常用参数总结

curl HTTP 测试常用参数总结

2015-12-29 14:02:34 8250

原创 keepalived 负载均衡安装配置

对 keepalived 基本原理,安装方法,配置方法,配置关键参数进行详细说明。配置部分为一个 HTTP 负载均衡配置的例子,keepalived 使用虚拟 IP+主备的方式进行配置,同时使用了 LVS 的 DR 模式和 rr 策略进行 HTTP 请求的负载均衡

2015-12-18 15:18:12 4828

原创 Nginx-openresty+mysql+redis使用篇(一)

本文为 Nginx-openresty + mysql + redis 使用篇(一),介绍了 openresty 常用的配置,常量,变量和日志的使用。后续会继续添加使用 openresty 访问 mysql,redis,使用 Json,发送 HTTP 请求等

2015-11-26 16:30:44 5019

原创 Redis 安全漏洞检测攻击机防御

对近期报告的 Redis 安全漏洞的检测攻击和防御方法进行探讨

2015-11-26 13:54:11 2415

原创 iptables 常用功能总结

iptables 常用功能总结iptables 是一个用于 IP 访问控制的工具,可以通过 iptables 实现一些防火墙和 NAT 的功能,以下是对 iptables 常用功能的总结包含 iptables 基本概念,常用配置和一些常用的配置

2015-11-21 23:06:24 3636

原创 Openresty + MySQL + Redis 安装篇

本篇介绍 Openresty + MySQL + Redis 环境的安装包含:MySQL 5.7 安装Redis 2.8 安装Openresty 安装HTTP iptables 配置HTTPS 服务配置后续文章会介绍使用 Openresty 访问 MySQL,Redis,处理 JSON 数据,发送 HTTP 请求等

2015-11-14 04:02:02 2136

原创 Python 类小结

对 Python 类的编写,类属性,类方法,实例属性,实例方法的调用进行了总结对 Python 类的单一继承和多重继承进行了总结本文不涉及类中的魔术方法,关于魔术方法可参考:http://blog.csdn.net/alexwoo0501/article/details/46945455

2015-10-31 14:01:42 681

原创 理解红黑树的节点插入和删除

红黑树是计算机常用数据结构,在 Linux 内核进程调度,Nginx 定时器管理中均有使用红黑树的查找时间为O(lgn),与Hash相比,其优势在于:节约存储空间,其数据具有连续性,可以查找一个范围的数据红黑树的难点在于插入和删除,在很多算法书中,对其颜色调整讲得比较粗略,不易于理解,本文主要是按照作者的理解,对其插入和删除过程进行推导,演变方式与算法书中可能会有些差异,欢迎大家进行讨论

2015-10-25 21:53:07 1236

原创 从 pstack 实现来看 /proc 目录

pstack 实现分析/proc 目录下一些文件和目录的作用

2015-10-11 23:43:11 652

原创 python 网络编程(二):IO 多路复用

主要介绍 python 网络编程中的 IO 复用中的 select 和 epoll

2015-10-11 13:36:11 1660

原创 python 网络编程(一):socket 模块

本文介绍了 socket 包中的一些重要 API,并使用这些 API 编写了简单的 UDP 客户端,UDP 服务端,TCP 客户端和 TCP 服务端的实例

2015-10-06 16:35:08 1368

原创 Nginx Event模块

对 Nginx 事件处理,定时器处理流程进行详述描述了 Nginx 如何解决 epoll accept 惊群问题参考 Nginx 版本 1.8.0

2015-10-02 16:13:19 695

原创 Linux下VIM C/C++ IDE配置

Linux下VIM C/C++ IDE配置vim IDE环境安装在用户目录下建立

2015-10-02 00:42:43 4242

原创 Lua语言初识

近期项目需要,研究openresty,开始学习Lua,对Lua常用的语法进行一个简单总结数据类型空类型nil所有未赋值的变量都为nil布尔类型true/falsenil和false均为false,其它值为true。这点与C/C++不同,C/C++中的0也是false数值类型所有的整数和浮点数都为数值类型字符串(string)

2015-09-01 22:57:16 895

原创 Nginx配置及配置加载

通过源码,介绍Nginx配置的结构以及配置的加载过程

2015-08-26 19:26:17 2682

原创 Python类的一些有趣的函数

我们在使用Python时,常会用到一些方法,如print,len,对象比较等,举一个例子:>>> l = range(10)>>> print l[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]>>> l[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]>>> len(l)10>>> l1 = range(1)>>> l > l1True>>>

2015-07-18 20:54:15 640

原创 Python赋值--序列解包

Python有一种一次给多个变量赋值的方法,称为序列解包其形式如下:>>> x, y, z = 1, 2, 3>>> print x, y, z1 2 3>>> 使用这种方式赋值,相对于一些高级语言如C++,Java等,可以让一些操作很简单:1. 两个变量交换>>> x, y = 1, 2>>> print x, y1 2>>> x, y = y, x>>> p

2015-07-18 20:50:37 7570 1

空空如也

空空如也

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

TA关注的人

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