教程说明 C++高性能网络服务保姆级教程 首发地址 day02 真正的高并发还得看IO多路复用 本节目的 使用epoll实现一个高并发的服务器 从单进程讲起 上节从一个基础的socket服务说起我们实现了一个基本的socket服务器,并留了个思考题 先启动server,然后启动一个client,不输入数据,这个时候在另外一个终端上再启动一个client,并在第二个client终端中输入数据,会发生什么呢? 实际操作后,我们会发现,在第二个client输入后,服务端并没有响应,直到第一个clien…
完全来自:http://www.cnblogs.com/alex3714/articles/5876749.html 同步IO和异步IO,阻塞IO和非阻塞IO分别是什么,到底有什么区别?不同的人在不同的上下文下给出的答案是不同的.所以先限定一下本文的上下文. 本文讨论的背景是Linux环境下的network IO. 一 概念说明 在进行解释之前,首先要说明几个概念:- 用户空间和内核空间- 进程切换- 进程的阻塞- 文件描述符- 缓存 I/O 用户空间与内核空间 现在操作系统都是采用虚拟存储器,…
从今天开始我们来聊聊Netty的那些事儿,我们都知道Netty是一个高性能异步事件驱动的网络框架. 它的设计异常优雅简洁,扩展性高,稳定性强.拥有非常详细完整的用户文档. 同时内置了很多非常有用的模块基本上做到了开箱即用,用户只需要编写短短几行代码,就可以快速构建出一个具有高吞吐,低延时,更少的资源消耗,高性能(非必要的内存拷贝最小化)等特征的高并发网络应用程序. 本文我们来探讨下支持Netty具有高吞吐,低延时特征的基石----netty的网络IO模型. 由Netty的网络IO模型开始,我们来…
一.nginx 高并发原理 简单介绍:nginx 采用的是多进程(单线程) + io多路复用(epoll)模型 实现高并发 二.nginx 多进程 启动nginx 解析初始化配置文件后会 创建(fork)一个master进程 之后 这个进程会退出 master 进程会 变为孤儿进程 由init进程托管.(可以通过python 或php 启动后创建子进程,然后杀死父进程得见子进程会由init进程托管) 如下图可以看到nginx master 进程由init(ppid 为1 )进程管理. maste…
无论是巨头,还是独角兽,甚至是小而美的某些企业,在发生高管离职.裁员等情况时,总会引起业界的广泛关注.究其原因,就在于高管离职.裁员等往往意味着企业内部发生了动荡,甚至还会直接反映出所在行业的发展趋势.以高管离职为例,很多巨头或独角兽企业的衰落都是从高管离职.频繁换帅等开始的. 而就在近段时间,全球知名笔记应用Evernote也发生了大批顶尖高管离职的事情.一时之间,对Evernote的各种猜测甚嚣尘上.与此同时,笔记应用的未来前景也受到了质疑.或许,处于漩涡中的笔记应用是时候重新审视自身了.…
​ 在之前的操作中,我们已经实现了mysql机器的高可用,可以动态切换master,那么如果mycat崩溃了呢?我们应该如何处理呢?所以此时就需要搭建mycat的高可用集群了. ​ 在mycat的权威指南中,介绍了多种高可用的方案,在这里我们讲解一种使用最多的方案,使用HAProxy+Keepalived配合使用来实现myact的高可用. ​ HAproxy实现了mycat多借点的集群高可用和负载均衡,而HAProxy自身的高可用则可以通过Keepalived来实现. ​ 好了,如果这个图大家看…
高可用HA(High Availability)是分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计减少系统不能提供服务的时间. 假设系统一直能够提供服务,我们说系统的可用性是100%.如果系统每运行100个时间单位,会有1个时间单位无法提供服务,我们说系统的可用性是99%.很多公司的高可用目标是4个9,也就是99.99%,这就意味着,系统的年停机时间为8.76个小时. 那么如何保证系统的高可用呢 首先,在整个架构的每个节点中,不允许存在单点问题,因为单点一定是高可用最大的风险点,我们…
关于top命令 经常问load average 参考:load average 定义(网易面试) jvm dump的使用 参考:Jvm dump jstack jmap jstat 介绍与使用(内存与线程) 以及使用jstack定位问题 查看端口:如何在Windows,Linux下查看JAVA端口占用情况(阿里) 问题现象: 1,top命令查询服务器负载达到2.0-5之间,tomcat的cpu使用率达到104% load average: linux系统中的Load对当前CPU工作量的度量.简单…
jmeter中也可以监控服务器的CPU和内存使用情况,但是需要安装一些插件还需要在被监测服务器上开启服务. 安装性能监控插件(jmeter-plugins)后报如下错误,是由于jmeter版本过高jmeter3.1可以成功 如果你使用插件Extra1.4和Standard1.4  那么会遇到高版本method兼容问题,比如版本大于3.1就会在jmeter.log抛出异常,甚至直接jmeterGUI界面启动卡死现象: java.lang.NoSuchMethodError: org.apache.…
一.编码问题 utf-8编码中,一个中文占3个字节,一个英文占1个字节:gbk编码中,一个中文占2个字节,一个英文占1个字节. Java是双字节编码,为utf-16be编码,是说一个字符(无论中文还是英文,都占用2个字节).因此如果这么问:Java字符串中一个字符可以放一个中文吗?是可以的! 如果一直某个字节序列的编码方式,当我们想将它还原成字符串时,应明确指定其编码格式,否则会出现乱码. 文本文件就是字节序列,可以是任意编码的字节序列.如果在中文机器上,直接创建文本文件,该文本文件只认识ANS…