- 博客(73)
- 资源 (26)
- 收藏
- 关注
转载 Sentinel-Redis高可用方案(一):主从复制
引言大概是因为Redis是个人开发的产品,所以Redis的高可用方案是被分成了几块来实现:主从复制、主从切换以及虚拟IP或客户端方案。从Redis 2.8开始加入对Sentinel机制从而实现了服务器端的主从切换,但目前尚未发现实现虚拟IP或客户端切换方案。主从复制研究wget http://download.redis.io/releases/redis-2.8.
2017-02-28 15:23:43 375
转载 mysql集群之MYSQL CLUSTER
1. 参考文档http://xuwensong.elastos.org/2014/01/13/ubuntu-%E4%B8%8Bmysql-cluster%E5%AE%89%E8%A3%85%E5%92%8C%E9%85%8D%E7%BD%AE/2. 简介MySQL-Cluster是一种技术,该技术允许在无共享的系统中部署“内存中”数据库的簇。通过无共享体系结构,系统能够使用
2017-02-28 14:44:23 771
转载 mysql高可用之LVS + KEEPALIVE + MYSQL
1.架构图 注意(一) Mysql需要把bind-address的配置去掉,否则无法实现虚拟ip访问(二) 关闭所有linux防火墙:/sbin/iptables –F(可能没用)(三) 重启networking:sudo /etc/init.d/networking restart(可能没用) 2. 架构
2017-02-28 14:37:50 839
转载 lvs(+keepalived)、haproxy(+heartbeat)、nginx 负载均衡的比较分析
目前使用比较多的就是标题中提到的这两者,其实lvs和haproxy都是实现的负载均衡的作用,keepalived和heartbeat都是提高高可用性的,避免单点故障。那么他们为什么这么搭配,而又有什么区别呢?经过一番google,大体明白了两者的区别:lvs的是通过vrrp协议进行数据包转发的,提供的是4层的负载均衡。特点是效率高,只要你机器网卡抗的住就不是问题。haproxy
2017-02-28 14:11:05 707
转载 19个心得 明明白白说Linux下的负载均衡
一、目前网站架构一般分成负载均衡层、web层和数据库层,我其实一般还会多加一层,即文件服务器层,因为现在随着网站的PV越来越多,文件服务器的压力也越来越大;不过随着moosefs、DRDB+Heartbeat的日趋成熟,这问题也不大了.网站最前端的负载均衡层称之为Director,它起的是分摊请求的作用,最常见的就是轮询。 二、F5是通过硬件的方式来实现负载均衡,它较多应用于CDN系统,
2017-02-28 14:03:10 327
转载 Centos LVS DR模式详细搭建过程
目录前言... 11 , LVS 环境组网... 22 , ipvsadm 安装前准备... 23 , httpd 与 ipvsadm 下载... 34 , LVS 负载均衡配置... 45 ,真实 WEB 服务器配置及 arp 抑制... 56 , LVS 负载均衡测试... 67 ,附: arp 抑制参数... 7
2017-02-28 13:52:07 717
转载 Redis 该选择哪种持久化配置
这个标题或许会让你想起《黑客帝国》里经典的台词,你要选择蓝色药丸,还是红色药丸?Redis 是我们重度使用的一个开源软件,对它的持久化配置做一番相对深入的总结,是值得的。目前它有两种主流的持久化存储方式 SnapShot 以及 AOF 。什么是 Snapshot什么是 AOF 选择哪种药丸什么是 SnapshotSnapshot 将内存中数据以结
2017-02-28 02:37:35 961
转载 Spring面试,IoC和AOP的理解
spring 的优点?1.降低了组件之间的耦合性 ,实现了软件各层之间的解耦 2.可以使用容易提供的众多服务,如事务管理,消息服务等 3.容器提供单例模式支持 4.容器提供了AOP技术,利用它很容易实现如权限拦截,运行期监控等功能 5.容器提供了众多的辅助类,能加快应用的开发 6.spring对于主流的应用框架提供了集成支持,如hibernate,JPA,Struts等
2017-02-27 15:31:40 738
转载 Nginx 负载均衡模块 ngx_http_upstream_module 详述
译序:截至发稿时止,官方最新 ngx_http_upstream_module 指令详述。官方随时在更新,请及时关注官网最新公布。以下是官方原文。ngx_http_upstream_module 模块用于定义可以被 proxy_pass、fastcgi_pass 以及memcached_pass 等指令引用的服务器群。配置示例upstream backend { server
2017-02-27 13:09:42 1061 1
转载 Nginx upstream原理分析【1】给后端FastCGI发送数据
ngx_http_upstream_send_request调用输出的过滤器,发送数据到后端,前面已经介绍过,ngx_http_proxy_create_request函数会将客户端发送过来的HEADER,以及body部分的数据组成一块块的FCGI协议的buffer,放到u->request_bufs成员上面,因此在发送数据的时候,就需要吧这块数据发送给后端的PHP或者其他模块。send_requ
2017-02-27 13:06:15 1304
转载 Nginx upstream原理分析【1】upstream和FastCGI前篇
在前一篇文章“Nginx upstream原理分析【1】新连接的处理过程”中我们介绍了一个连接从accept到ngx_http_core_run_phases过程处理所发生的事情,后面剩下的就是FCGI的相关处理了,留在这里进行介绍。0、写在前面的话ngx_http_core_run_phases函数会不断调用cmcf->phase_engine.handlers上面的checker,从而调
2017-02-27 11:32:28 1859
转载 HAProxy 研究笔记 -- TCP 连接处理流程
本文基于 HAProxy 1.5-dev7 版本。目录1. 关键数据结构 session2. 相关初始化2.1. 初始化处理 TCP 连接的方法2.2. 初始化 listener2.3. 绑定所有已注册协议上的 listeners2.4. 启用所有已注册协议上的 listeners3. TCP 连接的处理流程3.1. 接受新建连接3.2. TCP 连接上的接收事件3.3. T
2017-02-27 11:14:05 1364
转载 Nginx的优化
nginx指令中的优化(配置文件) worker_processes 8; nginx进程数,建议按照cpu数目来指定,一般为它的倍数。 worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000; 为每个进nginx指令中的优化(配置文件)worker_
2017-02-27 11:12:12 269
转载 haproxy代理流程的数据进行抓包分析
haproxy代理流程的数据进行抓包分析 各模块名称以及作用 haproxy.cfg文件配置如下 global maxconn 20480 log 127.0.0.1 local3 chroot /var/haproxy uid 99 gid 99 daemon nbproc 1 pidfile /var/run/haproxy.pid ulimit-n 65535haproxy代理流程的
2017-02-27 11:07:40 1316
转载 keepalived + haproxy 实现web 双主模型的高可用负载均衡--转
1、本文的架构图:阐述各服务器用途: 1、haproxy在本构架中实现的是:负载均衡 2、keepalived实现对haproxy的高可用 3、apache static 实现静态页面的访问 4、aoache dynamic实现动态页面的访问,图中有两个是实现负载均衡的
2017-02-27 02:01:54 607
转载 Mysql的Haproxy反向代理和负载均衡
HaProxy提供高可用性、负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费、快速并且可靠的一种解决方案。应用到Haproxy主要是因为他免费,并且基于TCP和HTTP的应用代理。 先介绍一下Haproxy的应用场景,一个是TCP代理,这边也是我项目中应用的,另一个是HTTP代理,我就简单介绍一下。基于Tcp协议的Haproxy代理应用场景:在VPC网络环境下,虚机A的
2017-02-27 01:55:08 631
转载 Spring事务管理(详解+实例)
写这篇博客之前我首先读了《Spring in action》,之后在网上看了一些关于Spring事务管理的文章,感觉都没有讲全,这里就将书上的和网上关于事务的知识总结一下,参考的文章如下:Spring事务机制详解Spring事务配置的五种方式Spring中的事务管理实例详解1 初步理解理解事务之前,先讲一个你日常生活中最常干的事:取钱。 比如你去ATM机取1000块钱,大体有两个步
2017-02-27 01:38:17 454
转载 MINA、Netty、Twisted一起学(十):线程模型
要想开发一个高性能的TCP服务器,熟悉所使用框架的线程模型非常重要。MINA、Netty、Twisted本身都是高性能的网络框架,如果再搭配上高效率的代码,才能实现一个高大上的服务器。但是如果不了解它们的线程模型,就很难写出高性能的代码。框架本身效率再高,程序写的太差,那么服务器整体的性能也不会太高。就像一个电脑,CPU再好,内存小硬盘慢散热差,整体的性能也不会太高。玩过Android开发的同学
2017-02-26 01:19:18 370
转载 MINA、Netty、Twisted一起学(九):异步IO和回调函数
用过JavaScript或者jQuery的同学都知道,JavaScript特别是jQuery中存在大量的回调函数,例如Ajax、jQuery的动画等。$.get(url, function() { doSomething1(); // (3)}); // (1)doSomething2(); // (2)上面的代码是jQuery的Ajax,由于Ajax是异步的,所以在请求URL的过程
2017-02-26 01:17:24 285
转载 MINA、Netty、Twisted一起学(八):HTTP服务器
HTTP协议应该是目前使用最多的应用层协议了,用浏览器打开一个网站就是使用HTTP协议进行数据传输。HTTP协议也是基于TCP协议,所以也有服务器和客户端。HTTP客户端一般是浏览器,当然还有可能是其他东西。HTTP服务器,也就是Web服务器,目前已经有很多成熟的产品,例如Apache HTTP Server、Tomcat、Nginx、IIS等。本文的内容不是讲解如何使用以上的HTTP服务器,
2017-02-26 01:15:48 414
转载 MINA、Netty、Twisted一起学(七):发布/订阅(Publish/Subscribe)
消息传递有很多种方式,请求/响应(Request/Reply)是最常用的。在前面的博文的例子中,很多都是采用请求/响应的方式,当服务器接收到消息后,会立即write回写一条消息到客户端。HTTP协议也是基于请求/响应的方式。但是请求/响应并不能满足所有的消息传递的需求,有些需求可能需要服务端主动推送消息到客户端,而不是被动的等待请求后再给出响应。发布/订阅(Publish/Subscribe)
2017-02-26 01:13:27 417
转载 MINA、Netty、Twisted一起学(六):session
开发过Web应用的同学应该都会使用session。由于HTTP协议本身是无状态的,所以一个客户端多次访问这个web应用的多个页面,服务器无法判断多次访问的客户端是否是同一个客户端。有了session就可以设置一些和客户端相关的属性,用于保持这种连接状态。例如用户登录系统后,设置session标记这个客户端已登录,那么访问别的页面时就不用再次登录了。不过本文的内容不是Web应用的session,而
2017-02-26 01:10:34 381
转载 MINA、Netty、Twisted一起学(五):整合protobuf
protobuf是谷歌的Protocol Buffers的简称,用于结构化数据和字节码之间互相转换(序列化、反序列化),一般应用于网络传输,可支持多种编程语言。protobuf如何使用这里不再介绍,本文主要介绍在MINA、Netty、Twisted中如何使用protobuf,不了解protobuf的同学可以去参考我的另一篇博文。在前一篇博文中,有介绍到一种用一个固定为4字节的前缀Header来
2017-02-26 01:08:08 507
转载 MINA、Netty、Twisted一起学(四):定制自己的协议
在前面的博文中,介绍一些消息分割的方案,以及MINA、Netty、Twisted针对这些方案提供的相关API。例如MINA的TextLineCodecFactory、PrefixedStringCodecFactory,Netty的LineBasedFrameDecoder、LengthFieldBasedFrameDecoder,Twisted的LineOnlyReceiver、Int32Str
2017-02-26 01:05:03 417
转载 MINA、Netty、Twisted一起学(三):TCP消息固定大小的前缀(Header)
在上一篇博文中,有介绍到用换行符分割消息的方法。但是这种方法有个小问题,如果消息中本身就包含换行符,那将会将这条消息分割成两条,结果就不对了。本文介绍另外一种消息分割方式,即上一篇博文中讲的第2条:use a fixed length header that indicates the length of the body,用一个固定字节数的Header前缀来指定Body的字节数,以此来分割消
2017-02-26 00:57:47 559
转载 MINA、Netty、Twisted一起学(二):TCP消息边界问题及按行分割消息
在TCP连接开始到结束连接,之间可能会多次传输数据,也就是服务器和客户端之间可能会在连接过程中互相传输多条消息。理想状况是一方每发送一条消息,另一方就立即接收到一条,也就是一次write对应一次read。但是,现实不总是按照剧本来走。MINA官方文档节选:TCP guarantess delivery of all packets in the correct order. But there
2017-02-26 00:55:26 586
转载 MINA、Netty、Twisted一起学(一):实现简单的TCP服务器
MINA、Netty、Twisted为什么放在一起学习?首先,不妨先分别看一下它们官方网站对其的介绍:MINA:Apache MINA is a network application framework which helps users develop high performance and high scalability network applications easily. It
2017-02-26 00:53:02 616
转载 使用HAProxy、PHP、Redis和MySQL支撑10亿请求每周架构细节
着眼创业公司,应用程序架构主要考虑因素不只是技术,成本效益同样必不可少。因此,对于优秀的架构师,基于遗留系统、已有开发团队,以最小成本构造出可持续应用才是王道。【编者按】在公司的发展中,保证服务器的可扩展性对于扩大企业的市场需要具有重要作用,因此,这对架构师提出了一定的要求。Octivi联合创始人兼软件架构师Antoni Orfin将向你介绍一个非常简单的架构,使用HAProxy、PH
2017-02-25 14:12:20 557
转载 Spring 3整合Quartz 2实现定时任务二:动态添加任务
前面,我们已经对spring 3和Quartz 2用配置文件的方式进行了整合,如果需求比较简单的话应该已经可以满足了。但是很多时候,我们常常会遇到需要动态的添加或修改任务,而spring中所提供的定时任务组件却只能够通过修改xml中trigger的配置才能控制定时任务的时间以及任务的启用或停止,这在带给我们方便的同时也失去了动态配置任务的灵活性。我搜索了一些网上的解决方法,都没有很好的解决这个问题
2017-02-25 11:22:06 390
转载 Spring 4整合Quartz 2实现定时任务一:常规整合
最近工作中需要用到定时任务的功能,虽然Spring3也自带了一个轻量级的定时任务实现,但感觉不够灵活,功能也不够强大。在考虑之后,决定整合更为专业的Quartz来实现定时任务功能。首先,当然是添加依赖的jar文件,我的项目是maven管理的,以下的我项目的依赖:[html] view plain copy 在CODE上查看代码片派生到我的代码片 org.sp
2017-02-25 11:18:00 681
转载 Quartz的任务的临时启动和暂停和恢复
在项目中需要手动启停某些服务,那么需要有一个控制这些任务的类。由于任务是有Quartz控制的,我们只需要通过Quartz的相关的API实现相关的功能即可。 Java代码 收藏代码package com.easyway.app.quartz.mgr; import java.util.Date; import java.util.List; import java
2017-02-25 11:13:59 1283
转载 Quartz使用示例总结
任务调度在目前的Java应用程序中运用的十分普遍,故掌握QUARTZ是必备的技能闲话少说,上官网:http://www.quartz-scheduler.org/ 下载最新1.80资源包commons-logging log4j sff4j 等jar包要添加进去,quartz的jar包则肯定必须 首先写一个类实现Job接口Java代码 pu
2017-02-25 11:08:45 414
转载 Quartz中时间表达式的设置-----corn表达式
Quartz中时间表达式的设置-----corn表达式(注:这是让我看比较明白的一个博文,但是抱歉,没有找到原作者,如有侵犯,请告知) 时间格式: , 分别对应: 秒>分>小时>日>月>周>年, 举例:1.每天什么时候执行: 0 59 23 * * ?: 如下为每天23:59:00开始执行 0 1,2,3 11,12
2017-02-25 11:03:28 413
转载 Quartz深入浅出(一)
什么是QuartzQuartz是一个开源的作业调度框架,由java编写,在.NET平台为Quartz.Net,通过Quart可以快速完成任务调度的工作.Quartz能干什么/应用场景如网页游戏中挂机自动修炼如8个小时,人物相关数值进行成长,当使用某道具后,时间减少到4个小时,人物对应获得成长值.这其中就涉及到了Scheduler的操作,定时对人物进行更新属性操作,更改定时任务执
2017-02-25 11:01:39 304
转载 magent + memcached 集群测试
1、编译安装libevent:wget http://monkey.org/~provos/libevent-1.4.9-stable.tar.gztar zxvf libevent-1.4.9-stable.tar.gzcd libevent-1.4.9-stable/./configure --prefix=/usrmake && make installcd ..
2017-02-24 15:50:27 397
转载 redis cluster管理工具redis-trib.rb详解
redis-trib.rb是redis的官方推出的管理redis集群的工具,集成在redis的源码src目录下,是基于redis提供的集群命令封装成简单,便捷,实用的操作工具.redis-trib.rb是redis作者用ruby完成的。为了看懂redis-trib.rb,我特意花了一个星期学习了ruby,也被ruby的简洁,明了所吸引.ruby是门非常灵活的语言,redis-trib.rb只用本文
2017-02-24 15:10:27 4572 1
转载 Linux查看CPU和内存使用情况
在系统维护的过程中,随时可能有需要查看 CPU 使用率,并根据相应信息分析系统状况的需要。在 CentOS 中,可以通过 top 命令来查看 CPU 使用状况。运行 top 命令后,CPU 使用状态会以全屏的方式显示,并且会处在对话的模式 -- 用基于 top 的命令,可以控制显示方式等等。退出 top 的命令为 q (在 top 运行中敲 q 键一次)。top命令是Linux下常用的性能
2017-02-24 11:19:48 222
转载 SpringMVC的几种返回方式(get请求)
package com.boventech.learning.controller; import java.util.HashMap; import java.util.Map; import org.springframework.stereotype.Controller; import org.springframework.ui.Model;
2017-02-14 22:27:12 4045
转载 SpringMVC对日期类型的转换
在做web开发的时候,页面传入的都是String类型,SpringMVC可以对一些基本的类型进行转换,但是对于日期类的转换可能就需要我们配置。 1、如果查询类使我们自己写,那么在属性前面加上@DateTimeFormat(pattern = "yyyy-MM-dd") ,即可将String转换为Date类型,如下@DateTimeFormat(pattern = "yyyy-M
2017-02-14 22:08:23 436
转载 springMVC注解@initbinder日期类型的属性自动转换
在实际操作中经常会碰到表单中的日期 字符串和Javabean中的日期类型的属性自动转换, 而springMVC默认不支持这个格式的转换,所以必须要手动配置, 自定义数据类型的绑定才能实现这个功能。一、控制器中代码比较简单的可以直接应用springMVC的注解@initbinder和spring自带的WebDataBinder类和操作,controller中配置了initBinder
2017-02-14 21:57:57 2935
深入理解Java虚拟机:JVM高级特性与最佳实践].周志明.高清扫描版.pdf
2017-01-09
高性能的socket通讯服务器(完成端口模型--IOCP)
2014-06-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人