自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(350)
  • 资源 (2)
  • 收藏
  • 关注

转载 直播服务器简单实现 http_flv和hls 内网直播桌面

直播都不陌生了,如今主流的协议分析的对比图,个人见解。协议httpflvrtmphlsdash传输层http流tcp流httphttp视频格式flvflv tagTs文件Mp4 3gp webm

2017-01-12 10:09:05 13657 3

转载 Codis集群的搭建与使用

一、简介  Codis是一个分布式的Redis解决方案,对于上层的应用来说,连接Codis Proxy和连接原生的Redis Server没有明显的区别(不支持的命令列表),上层应用可以像使用单机的Redis一样使用,Codis底层会处理请求的转发,不停机的数据迁移等工作,所有后边的一切事情,对于前面客户端来说是透明的,可以简单的认为后边连接是一个内存无限大的Redis服务。Cod

2016-10-14 13:02:41 988

转载 用shell脚本监控进程是否存在 不存在则启动的实例

用shell脚本监控进程是否存在 不存在则启动的实例,先上代码干货:#!/bin/shps -fe|grep processString |grep -v grepif [ $? -ne 0 ]thenecho "start process....."elseecho "runing....."fi#####processString 表示进程特征字符串

2016-09-01 19:44:45 713

转载 MySQL性能优化总结

一、MySQL的主要适用场景1、Web网站系统2、日志记录系统3、数据仓库系统4、嵌入式系统二、MySQL架构图: 三、MySQL存储引擎概述1)MyISAM存储引擎MyISAM存储引擎的表在数据库中,每一个表都被存放为三个以表名命名的物理文件。首先肯定会有任何存储引擎都不可缺少的存放表结构定义信息的.frm文件,另外

2016-08-30 15:21:31 404

转载 Nginx负载均衡配置实例详解

负载均衡是我们大流量网站要做的一个东西,下面我来给大家介绍在NGINX服务器上进行负载均衡配置方法,希望对有需要的同学有所帮助哦。负载均衡先来简单了解一下什么是负载均衡,单从字面上的意思来理解就可以解释N台服务器平均分担负载,不会因为某台服务器负载高宕机而某台服务器闲置的情况。那么负载均衡的前提就是要有多台服务器才能实现,也就是两台以上即可。直接上成功的参数,实现了本机均衡并本机的NGIN

2016-08-26 23:41:18 2974

转载 微服务实战(六):选择微服务部署策略

【编者的话】这篇博客是用微服务建应用的第六篇,第一篇介绍了微服务架构模板,并且讨论了使用微服务的优缺点。随后的文章讨论了微服务不同方面:使用API网关,进程间通讯,服务发现和事件驱动数据管理。这篇文章,我们将讨论部署微服务的策略。本系列文章:微服务实战(一):微服务架构的优势与不足微服务实战(二):使用API Gateway微服务实战(三):深入微服务架构的进程间通信微服务实战(四

2016-07-15 00:10:01 498

转载 微服务实践(五):微服务的事件驱动数据管理

【编者的话】本文是使用微服务创建应用系列的第五篇文章。第一篇文章介绍了微服务架构模式,并且讨论了使用微服务的优缺点;第二和第三篇描述了微服务架构模块间通讯的不同方面;第四篇研究了服务发现中的问题。本篇中,我们从另外一个角度研究一下微服务架构带来的分布式数据管理问题。1.1 微服务和分布式数据管理问题单体式应用一般都会有一个关系型数据库,由此带来的好处是应用可以使用 ACID transac

2016-07-14 23:52:50 426

转载 微服务实战(四):服务发现的可行方案以及实践案例

这是关于使用微服务架构创建应用系列的第四篇文章。第一篇介绍了微服务架构的模式,讨论了使用微服务架构的优缺点。第二和第三篇描述了微服务架构内部的通讯机制。这篇文章中,我们将会探讨服务发现相关问题。为什么要使用服务发现?设想一下,我们正在写代码使用了提供REST API或者Thrift API的服务,为了完成一次服务请求,代码需要知道服务实例的网络位置(IP地址和端口)。传统应用都运行在物理硬

2016-07-14 23:51:39 617

转载 微服务实战(三):深入微服务架构的进程间通信

【编者的话】这是采用微服务架构创建自己应用系列第三篇文章。第一篇介绍了微服务架构模式,和单体式模式进行了比较,并且讨论了使用微服务架构的优缺点。第二篇描述了采用微服务架构应用客户端之间如何采用API Gateway方式进行通信。在这篇文章中,我们将讨论系统服务之间如何通信。简介在单体式应用中,各个模块之间的调用是通过编程语言级别的方法或者函数来实现的。但是一个基于微服务的分布式应用是运行在

2016-07-14 23:50:26 479

转载 微服务实战(二):使用API Gateway

【编者的话】本系列的第一篇介绍了微服务架构模式。它讨论了采用微服务的优点和缺点,除了一些复杂的微服务,这种模式还是复杂应用的理想选择。当你决定将应用作为一组微服务时,需要决定应用客户端如何与微服务交互。在单体式程序中,通常只有一组冗余的或者负载均衡的服务提供点。在微服务架构中,每一个微服务暴露一组细粒度的服务提供点。在本篇文章中,我们来看它如何影响客户端到服务端通信,同时提出一种API G

2016-07-14 23:49:03 876

转载 微服务实战(一):微服务架构的优势与不足

【编者的话】本文来自Nginx官方博客,是微服务系列文章的第一篇,主要探讨了传统的单体式应用的不足,以及微服务架构的优势与挑战。正如作者所说,微服务架构更适合用于构建复杂的应用,尽管它也有自己的不足。这篇文章作者是Chris Richardson,他是早期基于Java的Amazonite EC2 PaaS平台CloudFoundry.com的创始人。现在他为企业提供如何开发和部署应用的咨询

2016-07-14 23:47:52 645

转载 LVS 工作模式以及工作原理

LVS 简介         LVS 是 Linux  Virtual Server ,Linux 虚拟服务器;是一个虚拟的服务器集群【多台机器 LB IP】。LVS 集群分为三层结构:负载调度器(load balancer):它是整个LVS 集群对外的前端机器,负责将client请求发送到一组服务器[多台LB IP]上执行,而client端认为是返回来一个同一个IP【通常把这个IP

2016-04-02 10:59:36 414

转载 LB 负载均衡的层次结构

作为后端应用的开发者,我们经常开发、调试、测试完我们的应用并发布到生产环境,用户就可以直接访问到我们的应用了。但对于互联网应用,在你的应用和用户之间还隔着一层低调的或厚或薄的负载均衡层软件,它们不显山不露水默默的发挥着重要的作用,以至于我们经常忽略了它们的存在。因为负载均衡层通常不在一般开发人员的问题域内,而且它们一般都是现成且成熟的解决方案,以至于我们习惯性的忽略和认为乏善可陈。其实不然,本文就

2016-04-02 09:45:29 591

转载 WebSocket 实战

WebSocket 前世今生众所周知,Web 应用的交互过程通常是客户端通过浏览器发出一个请求,服务器端接收请求后进行处理并返回结果给客户端,客户端浏览器将信息呈现,这种机制对于信息变化不是特别频繁的应用尚可,但对于实时要求高、海量并发的应用来说显得捉襟见肘,尤其在当前业界移动互联网蓬勃发展的趋势下,高并发与用户实时响应是 Web 应用经常面临的问题,比如金融证券的实时信息,Web 导航应用中

2016-02-21 22:19:29 692

转载 几种经典的网络服务器架构模型的分析与比较

前言事件驱动为广大的程序员所熟悉,其最为人津津乐道的是在图形化界面编程中的应用;事实上,在网络编程中事件驱动也被广泛使用,并大规模部署在高连接数高吞吐量的服务器程序中,如 http 服务器程序、ftp 服务器程序等。相比于传统的网络编程方式,事件驱动能够极大的降低资源占用,增大服务接待能力,并提高网络传输效率。关于本文提及的服务器模型,搜索网络可以查阅到很多的实现代码,所以

2015-12-19 21:42:26 411

转载 thrift之TTransport层的堵塞的套接字I/O传输类TSocket

本节将介绍第一个实现具体传输功能的类TSocket,这个类是基于TCP socket实现TTransport的接口。下面具体介绍这个类的相关函数功能实现。  1.构造函数  分析一个类的功能首先看它的定义和构造函数实现,先看看它的定义:[cpp] view plaincopyprint?class TSocket : public TVirtualTranspo

2015-11-03 23:31:21 681

转载 Facebook之Thrift简介

以下内容是从网上各处简单整理而来,因为前段时间自己一直在研究Thrift,把研究的一点资料分享给需要的同行中人!第一节 RPC技术及实现简介首先思考一下分布式系统中的 RPC (Remote Procedure Call) 问题,一个完整的 RPC 模块需要可以分为三个层次· 服务层(service):RPC 接口定义与实现· 协议层(protocol):RPC 报文格式和数据编码

2015-11-03 23:22:26 1014

转载 nginx平台初探(五)

其他模块 (40%)Nginx的模块种类挺多的,除了HTTP模块,还有一些核心模块和mail系列模块。核心模块主要是做一些基础功能,比如Nginx的启动初始化,event处理机制,错误日志的初始化,ssl的初始化,正则处理初始化。mail模块可以对imap,pop3,smtp等协议进行反向代理,这些模块本身不对邮件内容进行处理。core模块 (40%)Nginx的启动模块

2015-11-01 11:26:12 564

转载 nginx平台初探(四)

upstream模块upstream模块 (100%)nginx模块一般被分成三大类:handler、filter和upstream。前面的章节中,读者已经了解了handler、filter。利用这两类模块,可以使nginx轻松完成任何单机工作。而本章介绍的upstream模块,将使nginx跨越单机的限制,完成网络数据的接收、处理和转发。数据转发功能,为nginx提供了跨越单机的

2015-11-01 11:19:17 1574

转载 nginx平台初探(三)

过滤模块 (90%)过滤模块简介 (90%)执行时间和内容 (90%)过滤(filter)模块是过滤响应头和内容的模块,可以对回复的头和内容进行处理。它的处理时间在获取回复内容之后,向用户发送响应之前。它的处理过程分为两个阶段,过滤HTTP回复的头部和主体,在这两个阶段可以分别对头部和主体进行修改。在代码中有类似的函数:ngx_http_top_header_fil

2015-11-01 11:17:26 473

转载 nginx平台初探(二)

handler模块(100%)handler模块简介相信大家在看了前一章的模块概述以后,都对nginx的模块有了一个基本的认识。基本上作为第三方开发者最可能开发的就是三种类型的模块,即handler,filter和load-balancer。Handler模块就是接受来自客户端的请求并产生输出的模块。有些地方说upstream模块实际上也是一种handler模块,只不过它产生的内容来自

2015-11-01 11:16:21 702

转载 nginx平台初探(一)

众所周知,nginx性能高,而nginx的高性能与其架构是分不开的。那么nginx究竟是怎么样的呢?这一节我们先来初识一下nginx框架吧。nginx在启动后,在unix系统中会以daemon的方式在后台运行,后台进程包含一个master进程和多个worker进程。我们也可以手动地关掉后台模式,让nginx在前台运行,并且通过配置让nginx取消master进程,从而可以使nginx以单进程方

2015-11-01 10:39:39 588

转载 每个程序员都应该了解的 CPU 高速缓存(一)

现在的CPU比25年前要精密得多了。在那个年代,CPU的频率与内存总线的频率基本在同一层面上。内存的访问速度仅比寄存器慢那么一点点。但是,这一局面在上世纪90年代被打破了。CPU的频率大大提升,但内存总线的频率与内存芯片的性能却没有得到成比例的提升。并不是因为造不出更快的内存,只是因为太贵了。内存如果要达到目前CPU那样的速度,那么它的造价恐怕要贵上好几个数量级。如果有两个选项让你选择,一个是

2015-10-05 01:25:28 2402

转载 理解memcached的内存存储

Slab Allocation机制:整理内存以便重复使用最近的memcached默认情况下采用了名为Slab Allocator的机制分配、管理内存。 在该机制出现以前,内存的分配是通过对所有记录简单地进行malloc和free来进行的。 但是,这种方式会导致内存碎片,加重操作系统内存管理器的负担,最坏的情况下, 会导致操作系统比memcached进程本身还慢。Slab Allocator就是

2015-10-05 01:17:19 281

转载 原子操作 vs 非原子操作

在网上已经有很多有关介绍原子操作的内容,通常都是注重于原子读-修改-写(RMW)操作。然而,这些并不是原子操作的全部,还有同样重要的原子加载和原子存储。在这篇文章中,我将要在处理器级别和C/C++语言级别两个方面来对比原子加载和原子存储与它们相应的非原子部分。沿着这条路,我们将弄清楚C++11中“数据竞争”这个概念。共享内存中的原子操作是指它是否完成了一个线程相关的单步操作。当一个原子存储

2015-10-05 01:09:00 1077

转载 Nginx 引入线程池

介绍众所周知,NGINX 采用异步、事件驱动的方式处理连接。意味着无需对每个请求创建专门的进程或线程,它用一个工作进程(worker process)处理多个连接和请求。为了达到这个目的,NGINX采用非阻塞模式的 socket,并利用诸如 epoll 和 kqueue 的高效方法。全量进程(full-weight process)数很少(通常是一个 CPU 核只有一个)而

2015-10-05 00:59:40 470

转载 MySQL 调优/优化的 100 个建议

MySQL是一个强大的开源数据库。随着MySQL上的应用越来越多,MySQL逐渐遇到了瓶颈。这里提供 101 条优化 MySQL 的建议。有些技巧适合特定的安装环境,但是思路是相通的。我已经将它们分成了几类以帮助你理解。MySQL监控MySQL服务器硬件和OS(操作系统)调优:1、有足够的物理内存,能将整个InnoDB文件加载到内存里 —— 如果访问的文件在内存

2015-10-05 00:51:56 251

转载 Memcached简介

在Web服务开发中,服务端缓存是服务实现中所常常采用的一种提高服务性能的方法。其通过记录某部分计算结果来尝试避免再次执行得到该结果所需要的复杂计算,从而提高了服务的运行效率。  除了能够提高服务的运行效率之外,服务端缓存还常常用来提高服务的扩展性。因此一些大规模的Web应用,如Facebook,常常构建一个庞大的服务端缓存。而它们所最常使用的就是Memcached。  在本文中,我们就将对

2015-10-05 00:48:54 295

转载 无锁数据结构(基础篇):原子核、原子性、基本类型

无锁数据结构基于两方面——原子性操作以及内存访问控制方法。本文中我话题主要涉及原子性和原子性基本类型。在开始之前,我对大家表示感谢,谢谢你们对初识无锁数据结构的热爱。看到大家对无锁话题很感兴趣,我感到很开心。我计划依据学术概念将此做成一个系列,从基础到算法,同时以 text 的形式展示 libcds 中的代码实现。但有些读者希望避开漫谈,尽快展示这些代码,以及如何利用这些库。我同意其中的一些观

2015-10-05 00:45:55 1565

转载 高并发 Web 服务的演变:节约系统内存和 CPU

一、越来越多的并发连接数现在的Web系统面对的并发连接数在近几年呈现指数增长,高并发成为了一种常态,给Web系统带来不小的挑战。以最简单粗暴的方式解决,就是增加Web系统的机器和升级硬件配置。虽然现在的硬件越来越便宜,但是一味地通过增加机器来解决并发量的增长,成本是非常高昂的。结合技术优化方案,才是更有效的解决方法。并发连接数为什么呈指数增长?实际上,从这几年的用户基数上看,这个数

2015-10-05 00:16:54 378

转载 懒 Redis 是更好的 Redis

大家都知道 Redis 是单线程的。对 Redis内行 的人会告诉你,Redis 其实也不完全是单线程的,因为还有一些线程在处理特定的慢的磁盘操作。到目前为止,这些线程里的操作都集中在 I/O 上,以至于这些线程用到的库被称为 bio.c,也就是后台 I/O(Background I/O)。不过之前我提交了一个 issue,承诺给 Redis 新增一个很多人(包括我自己)都想要的特性,

2015-10-05 00:11:05 377

转载 HTTPS和SSL/TLS协议

要说清楚 HTTPS 协议的实现原理,至少需要如下几个背景知识。1. 大致了解几个基本术语(HTTPS、SSL、TLS)的含义2. 大致了解 HTTP 和 TCP 的关系(尤其是“短连接”VS“长连接”)3. 大致了解加密算法的概念(尤其是“对称加密与非对称加密”的区别)4. 大致了解 CA 证书的用途考虑到很多技术菜鸟可能不了解上述背景,俺先用最简短的文字描述一下。如果你自认

2015-10-04 23:49:00 447

转载 CDN对流媒体和应用分发的支持及优化 | 高可用CDN架构详解

此文是根据马涛在【QCon高可用架构群】中的分享内容整理而成,转发请注明出处。马涛,前迅雷网络CDN系统研发工程师,也曾任EMC/Pivotal大数据处理系统Hawq研发工程师。从事CDN之前主要做数据库内核,平时关注大数据处理、并行系统容错和优化、后台服务性能优化。1.CDN系统工作原理1.1 DNS解析方式客户网站使用CDN加速应用或其他下载类资源:

2015-10-04 23:31:37 1275

转载 TCP/IP 协议栈及 OSI 参考模型详解

OSI参考模型OSI RM:开放系统互连参考模型(open systeminterconnection reference model)OSI参考模型具有以下优点:简化了相关的网络操作;提供设备间的兼容性和标准接口;促进标准化工作;结构上可以分隔;易于实现和维护。 20世纪60年代以来,计算机网

2015-10-04 23:28:25 770

转载 Web基础架构:负载均衡和LVS

在大规模互联网应用中,负载均衡设备是必不可少的一个节点,源于互联网应用的高并发和大流量的冲击压力,我们通常会在服务端部署多个无状态的应用服务器和若干有状态的存储服务器(数据库、缓存等等)。一、负载均衡的作用负载均衡设备的任务就是作为应用服务器流量的入口,首先挑选最合适的一台服务器,然后将客户端的请求转发给这台服务器处理,实现客户端到真实服务端的透明转发。最近几年很火的「云计算」以及分布式架

2015-10-04 23:14:18 300

转载 HTTPS是如何保证连接安全

“HTTPS协议的工作原理是什么?”这是我在数天前工作项目中需要解决的问题。作为一名Web开发者,我当然知道 HTTPS 协议是保障用户敏感数据的好办法,但并不知道这种协议的内在工作机制。它怎么保护数据?有人监听线路的情况下,服务器与客户端之间如何建立安全的连接?安全证书又是什么,为什么还要花钱买呢? 一系列通道在深入讲解原理细节之前,让我们首先简单了解下HTTPS所防范的的问

2015-10-04 23:10:20 302

转载 Nginx 的 TCP 负载均衡介绍

Nginx Plus的商业授权版开始具有TCP负载均衡的功能。从Nginx 1.7.7版本开始加入的,现在变成了一个商业收费版本,想要试用,需要在官网申请。也就是说,Nginx除了以前常用的HTTP负载均衡外,Nginx增加基于TCP协议实现的负载均衡方法。HTTP负载均衡,也就是我们通常所有“七层负载均衡”,工作在第七层“应用层”。而TCP负载均衡,就是我们通常所说的“四层负载均衡”,工作在

2015-10-04 23:02:35 372

转载 Web系统大规模并发

一、大规模并发带来的挑战 在过去的工作中,我曾经面对过5w每秒的高并发秒杀功能,在这个过程中,整个Web系统遇到了很多的问题和挑战。如果Web系统不做针对性的优化,会轻而易举地陷入到异常状态。我们现在一起来讨论下,优化的思路和方法哈。1. 请求接口的合理设计一个秒杀或者抢购页面,通常分为2个部分,一个是静态的HTML等内容,另一个就是参与秒杀的Web后台请求接口

2015-10-04 22:57:34 383

转载 内存数据库中的索引技术

引言传统的数据库管理系统把所有数据都放在磁盘上进行管理,所以称作磁盘数据库(DRDB: Disk-Resident Database)。磁盘数据库需要频繁地访问磁盘来进行数据的操作,磁盘的读写速度远远小于CPU处理数据的速度,所以磁盘数据库的瓶颈出现在磁盘读写上。基于此,内存数据库的概念被提出来了。内存数据库(MMDB:Main Memory Database,也叫主存数据库)[1],就是

2015-09-20 11:04:45 466

转载 MySQL之终端:管理数据库的基本操作

MySQL有很多的可视化管理工具,比如“mysql-workbench”和“sequel-pro-”。 现在我写MySQL的终端命令操作的文章,是想强化一下自己对于MySQL的理解,总会比使用图形化的理解透彻,因为我本来就比较喜欢写代码。同时写出来这些文章,是想要给大家当个参考,希望也能对大家有所帮助,有所提升,这就是我为什么要写终端操作MySQL的文章了。注意:MySQL数据库命令不区分大小

2015-09-20 10:58:17 534

XPath分析工具

用于验证编写的Xpath路径是否正确,只能安装在Windows7下面.

2011-12-04

matlab与c++混合编程

该压缩文件主要是描述怎样写MATLAB与c++混合编程,c++程序怎样调用MATLAB函数,以及工程的配置.

2009-11-01

空空如也

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

TA关注的人

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