自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

大树叶 技术专栏

骨灰攻城狮 架构师

  • 博客(48)
  • 资源 (2)
  • 收藏
  • 关注

转载 LVS:三种负载均衡方式比较(写得不错)

1、什么是LVS?  首先简单介绍一下LVS (LinuxVirtual Server)到底是什么东西,其实它是一种集群(Cluster)技术,采用IP负载均衡技术和基于内容请求分发技术。调度器具有很好的吞吐率,将请求均衡地转移到不同的服务器上执行,且调度器自动屏蔽掉服务器的故障,从而将一组服务器构成一个高性能的、高可用的虚拟服务器。整个服务器集群的结构对客户是透明的,而且无需修改客户

2017-05-31 16:52:20 345

转载 用lua扩展你的Nginx

一. 概述Nginx是一个高性能,支持高并发的,轻量级的web服务器。目前,Apache依然web服务器中的老大,但是在全球前1000大的web服务器中,Nginx的份额为22.4%。Nginx采用模块化的架构,官方版本的Nginx中大部分功能都是通过模块方式提供的,比如Http模块、Mail模块等。通过开发模块扩展Nginx,可以将Nginx打造成一个全能的应用服务器,这样可以将一些功能在前

2017-05-31 16:08:30 709

转载 nginx proxy_cache 配置

众所周知nginx proxy_cache可以对请求的response进行缓存,起到类似CDN的作用,甚至有比CDN提供更多的功能,还可以用来缓存托底数据,当后台tomcat挂掉的时候,nginx直接将缓存中的托底数据返回给用户。直接贴上详细配置upstream tomcat_localhost {//注意此处超时时间不要设置太长server 127.0.0.1:808

2017-05-31 15:52:39 3693

转载 nginx 限制并发连接数 limit_zone one

目录(?)[+]ngx_http_limit_zone_module本模块可以针对条件,进行会话的并发连接数控制。(例如:限制每个IP的并发连接数。)配置示例__http {: limit_zone one $binary_remote_addr 10m;: ...: server {: ...: location /downl

2017-05-31 15:26:35 4021

转载 Nginx X-Forwarded-For 和 $proxy_add_x_forwarded_for 的意思

1、X-Forwarded-For的定义:X-Forwarded-For:简称XFF头,它代表客户端,也就是HTTP的请求端真实的IP,只有在通过了HTTP 代理或者负载均衡服务器时才会添加该项。它不是RFC中定义的标准请求头信息,在squid缓存代理服务器开发文档中可以找到该项的详细介绍。标准格式如下:X-Forwarded-For: client1, proxy1, proxy

2017-05-31 15:22:47 26325

转载 nginx 如何配置来获取用户真实IP

##1.背景知识1.1. 前提知识点:还有nginx中的几个变量:remote_addr代表客户端的IP,但它的值不是由客户端提供的,而是服务端根据客户端的ip指定的,当你的浏览器访问某个网站时,假设中间没有任何代理,那么网站的web服务器(Nginx,Apache等)就会把remote_addr设为你的机器IP,如果你用了某个代理,那么你的浏览器会先访问这

2017-05-31 14:34:46 60497 7

转载 redis 集群常用命令及说明

Redis集群常用命令及说明一、本文目的       介绍集群的基本情况及常用命令    二、集群的特点  3、集群优缺点三、集群客户端命令(redis-cli -c -p port)集群cluster info :打印集群的信息cluster nodes :列出集群当前已知的所有节点( node),以及这些节点的相关

2017-05-29 23:11:04 3211

原创 spring-data-redis 哨兵配置例子

spring-data-redis  哨兵配置例子edis自带的哨兵确实简化了高可用性的配置,使用起来也比较简单。首先是spring-redis-sentinel.xml(文件名可以随意命名)配置文件:<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w

2017-05-29 11:50:35 2995

转载 Redis的快照功能

引言:  Redis是基于内存的数据库,同时也提供了若干持久化的方案,允许用户把内存中的数据,写入本地文件系统,以备下次重启或者当机之后继续使用。本文将描述如何基于Redis来设置这些功能。 快照的设置 a. 设置Redis.conf配置文件   Redis快照写入的频率    save 900 1    save 300 10    sav

2017-05-28 21:30:46 923

转载 Redis的AOF功能

引言:  Redis是基于内存的数据库,同时也提供了若干持久化的方案,允许用户把内存中的数据,写入本地文件系统,以备下次重启或者当机之后继续使用。本文将描述如何基于Redis来设置AOF功能什么是Redis的AOF?AOF是AppendOnly File的缩写,是Redis系统提供了一种记录Redis操作的持久化方案,在AOF生成的文件中,将忠实记录发生在Redis的操

2017-05-28 21:14:23 613

原创 redis 配置文件redis.conf参数说明

# By default Redis does not run as a daemon. Use 'yes' if you need it.# Note that Redis will write a pid file in /var/run/redis.pid when daemonized.#Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程

2017-05-28 21:01:30 762

转载 nginx upstream failover 容错机制

1.   摘要(1)       结论详细描述了nginx记录失效节点的6种状态(time out、connect refuse、500、502、503、504,后四项5XX需要配置proxy_next_upstream中的状态才可以生效)、失效节点的触发条件和节点的恢复条件、所有节点失效后nginx会进行恢复并进行重新监听。(2)       Nginx 负载均衡方式介绍Ngin

2017-05-28 11:34:34 10981

原创 nginx upstream 模式的配置与探讨

nginx upstream 支持如下的5种方式的分配 。1、轮询(默认) 每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。 2、weight 指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。 例如: upstream bakend { server 192.168.0.14 weight=10;

2017-05-28 11:10:17 1747

原创 MySQL 自增ID值 获取的方法

如何获取 MYSQL中某个表的自增ID字段的下一个值 ?方法一: 例如:在zx_ofc.task_order表中task_id是自增字段。它的下一个自增字段可以通过下面的语句获得SELECT `AUTO_INCREMENT` FROM  INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'zx_ofc' AND  TABLE_NAME

2017-05-27 14:47:47 6807

转载 Spring - 几种RPC模型的使用与比较

Spring中,用JMS搞RPC时会用到:org.springframework.jms.remoting.JmsInvokerServiceExporterorg.springframework.jms.remoting.JmsInvokerProxyFactoryBeanspring在实现RPC的几种方式上都提供了风格一致的支持。在这里我打算把几种RPC模型记录下来并作比较

2017-05-26 08:58:45 5132

转载 Redis 设计与实现

http://redisbook.readthedocs.io/en/latest/feature/transaction.htmlRedis 通过 MULTI 、 DISCARD 、 EXEC 和 WATCH 四个命令来实现事务功能, 本章首先讨论使用 MULTI 、 DISCARD 和 EXEC 三个命令实现的一般事务, 然后再来讨论带有 WATCH 的事务的实

2017-05-26 02:40:32 803

转载 Spring mvc Interceptor 解决Session超时配置流程

最近公司内部框架中对Session超时这一功能未实现,由于采用iframe结构,Session超时后,当点击左侧系统菜单时,会在iframe的右侧再次弹出登陆框。该问题是由于没有设置拦截器造成。添加拦截器思路:当Session超时后,用户点击menu时,需要用Interceptor进行前项拦截,并判断此时session中是否还存在用户信息,如果不存在,将其指定登陆主页面。

2017-05-26 01:38:51 1001

原创 网页中怎样禁止通过输入url直接访问

通常的做法是这样的:在登录页(比如说是login.asp)登陆成功后,要把登陆成功的状态赋值给一个Session变量,比如 Session("login")="OK",然后在除登录页之外的其他页面的开头都检测这个Session变量的值,不是登录状态即立刻强制跳转到登录页面,比如:if session("login")这样的话,除登录页之外的其他页面如果想通过地址栏直接输入URL进入都会被强

2017-05-26 01:17:27 9825 2

原创 网页中怎样禁止通过输入url直接访问

我想到的办法大概有两种1、比较低级,容易被破解的。校验HTTP头里的referer值.2、在前一个页面为这个页面生成一个带时效的code,访问这个页面的时候带上这个code,然后校验这个code.这个code可以用 Cookie / Session 之类的。

2017-05-26 00:39:19 4136

原创 电商秒杀系统设计思路和实现方法

1 秒杀业务分析正常电子商务流程(1)查询商品;(2)创建订单;(3)扣减库存;(4)更新订单;(5)付款;(6)卖家发货秒杀业务的特性(1)低廉价格;(2)大幅推广;(3)瞬时售空;(4)一般是定时上架;(5)时间短、瞬时并发量高;2 秒杀技术挑战假设某网站秒杀活动只推出一件商品,预计会吸引1万人参加活动,也就说最大并发请求数是10000,秒杀系统需要面对

2017-05-26 00:06:35 29319 7

原创 秒杀系统是如何设计

参考文档:https://my.oschina.net/xianggao/blog/524943什么是秒杀秒杀场景一般会在电商网站举行一些活动或者节假日在12306网站上抢票时遇到。对于电商网站中一些稀缺或者特价商品,电商网站一般会在约定时间点对其进行限量销售,因为这些商品的特殊性,会吸引大量用户前来抢购,并且会在约定的时间点同时在秒杀页面进行抢购。秒杀系统场景特点

2017-05-26 00:02:23 617

转载 MYSQL索引优化: IN 和 OR 替换为 union all

MySQL会对sql语句做优化, IN 后面的条件不超过一定数量仍然会使用索引。mysql 会根据索引长度和in后面条件数量判断是否使用索引。另外,如果是 IN 后面是子查询,则不会使用索引。一个文章库,里面有两个表:category和article。category里面有10条分类数据。article里面有 20万条。article

2017-05-22 18:07:56 7166

原创 Mysql 索引的理解,总结与优化注意事项

在数据库表中,对字段建立索引可以大大提高查询速度。假如我们创建了一个 mytable表:CREATE TABLE mytable(   ID INT NOT NULL,    username VARCHAR(16) NOT NULL  );我们随机向里面插入了10000条记录,其中有一条:5555, admin。在查找username="admin"的记录 SEL

2017-05-22 16:42:57 803

转载 Mysql 索引类型

出自: http://feiyan.info/16.htmlMysql 索引类型概述与总结关于MySQL索引的好处,如果正确合理设计并且使用索引的MySQL是一辆兰博基尼的话,那么没有设计和使用索引的MySQL就是一个人力三轮车。对于没有索引的表,单表查询可能几十万数据就是瓶颈,而通常大型网站单日就可能会产生几十万甚至几百万的数据,没有索引查询会变的非常缓慢。还是以WordPr

2017-05-22 15:54:08 226

原创 B+树的定义

B+树的定义B+树是应文件系统所需而出的一种B-树的变型树。一棵m阶的B+树和m阶的B-树的差异在于:1.有n棵子树的结点中含有n个关键字,每个关键字不保存数据,只用来索引,所有数据都保存在叶子节点。2.所有的叶子结点中包含了全部关键字的信息,及指向含这些关键字记录的指针,且叶子结点本身依关键字的大小自小而大顺序链接。3.所有的非终端结点可以看成是索引部分,结点

2017-05-22 15:04:56 377

原创 MySQL 临时表与内存表

MySQL的临时表与内存表总结1.临时表:表建在内存里,数据在内存里。2.内存表:表建在磁盘里,数据在内存里 。重启MySQL 数据库后,内存中的数据全部丢失。内存表的功能有部分的限制,有些属性不能像正常表一样使用。创建一个临时表,但是到相应的数据目录下则找不到.frm文件的。其中包括2个重要的参数 [mysqld] # 内存表容量 max_heap_tab

2017-05-19 15:06:59 5256 1

转载 mysql 大数据查询优化

1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:select id from t where num is null可以在num上设置默认值0,确保表中num列没有null值,然后这样查询:select id fr

2017-05-19 10:50:47 812 1

原创 mysql 用不到索引的语句

在mysql中, 以key(a, b, c)为例子:  1. 跳过列,where a = 1 and c = 3,最多用到索引列a;where b = 2 and c = 3,一个也用不到,必须从最左列开始  2. 前面是范围查询,where a = 1 and b > 2 and c = 3,最多用到 a, b两个索引列;  3. 顺序颠倒,where c = 3 and

2017-05-18 17:46:48 1460

原创 mysql 索引 优化 面试

mysql 索引 优化 面试题目:问如何优化下面的Mysql SQL语句?select * from employee where employee.deptName in ( "departA", "departB", "departC") and tbl.locationID = 3 and tbl.level > 5;思路:1:  肯定要建立二级联合索引: index( lo

2017-05-18 17:37:57 4257

转载 mysql 大数据 查询优化原则

今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显。关于数据库的性能,这并不只是DBA才需要担心的事,而这更是我 们程序员需要去关注的事情。当我们去设计数据库表结构,对操作数据库时(尤其是查表时的SQL语句),我们都需要注意数据操作的性能。这里,我们不会讲过 多的SQL语句的优化,而只是针对MySQL这一Web应用最多的数据库。希望下面的这些优化技巧对你有用。  

2017-05-18 16:37:59 3490 1

原创 MYSQL 高效查询的例子

1: 用EXISTS替代IN、用NOT EXISTS替代NOT IN: 在许多基于基础表的查询中,为了满足一个条件,往往需要对另一个表进行联接.在这种情况下, 使用EXISTS(或NOT EXISTS)通常将提高查询的效率. 在子查询中,NOT IN子句将执行一个内部的排序和合并. 无论在哪种情况下,NOT IN都是最低效的 (因为它对子查询中的表执行了一个全表遍历). 为了避免使用NOT I

2017-05-18 16:16:38 3131 1

转载 mysql中or和in的效率问题

mysql中or和in的效率问题 结论:    1)从测试结果看,如果in和or所在列有索引或者主键的话,or和in没啥差别,执行计划和执行时间都几乎一样。二者平手    2) 如果in和or所在列没有索引的话,性能差别就很大了。IN 胜出!    在没有索引的情况下,随着in或者or后面的数据量越多,in的效率不会有太大的下降,但是or会随着记录越多的话性能下

2017-05-18 15:44:32 4437

原创 什么样的sql不走索引

什么样的sql不走索引要尽量避免这些不走索引的sqlSELECT `sname` FROM `stu` WHERE `age`+10=30;-- 不会使用索引,因为所有索引列参与了计算 SELECT `sname` FROM `stu` WHERE LEFT(`date`,4) 1990; -- 不会使用索引,因为使用了函数运算,原理与上面相同 SELECT * FROM `h

2017-05-18 15:40:57 3114

原创 MYSQL索引优化, IN OR 等优化措施

一个文章库,里面有两个表:category和article, category里面有10条分类数据,article里面有 20万条。article里面有一个"article_category"字段是与category里的"category_id"字段相对应的。 article表里面已经把 article_category字义为了索引。数据库大小为1.3G。问题描述:

2017-05-18 14:23:38 5795

转载 MySQL 索引与优化

索引对查询的速度有着至关重要的影响,理解索引也是进行数据库性能调优的起点。考虑如下情况,假设数据库中一个表有10^6条记录,DBMS的页面大小为4K,并存储100条记录。如果没有索引,查询将对整个表进行扫描,最坏的情况下,如果所有数据页都不在内存,需要读取10^4个页面,如果这10^4个页面在磁盘上随机分布,需要进行10^4次I/O,假设磁盘每次I/O时间为10ms(忽略数据传输时间),则总共需要

2017-05-18 13:27:30 1782 2

转载 Spring中的Advisor,Advice,Pointcut

一、Spring中的Advisor,Advice,Point概述1、Advisor:充当Advice和Pointcut的适配器,类似使用Aspect的@Aspect注解的类(前一章节所述)。一般有advice和pointcut属性。祖先接口为org.springframework.aop.Advisor,应用中可直接使用org.springframework.aop.support

2017-05-14 13:48:55 547

原创 jquery 动态生成form提交数据的例子, 及其 form is not connected 错误解决

前端JS页面例子:mp.jsp[javascript] view plain copy print?manipulationHistory.downloadData = function() {      //定义一个form表单      var myform = $("");      myform.attr('met

2017-05-11 16:28:38 2145

原创 批量删除redis 数据库中redis key的方法

批量删除redis 数据库中redis key的方法如下:bin/redis-cli  –h  -p  6379  -n    -a    keys  "mykeys*"  |  xargs bin/redis-cli -n del

2017-05-10 16:16:56 1474

原创 pringMVC 后端代码 如何用 @requestParam() 接收前台传过来的数组

SpringMVC传递一维数组:传递数组类型时,需要在@requestParam()中添加value,否则会出现HTTP Status 400 - Required long[] parameter 'data' is not present错误。    例如: @RequestParam(value = "data[]")long[] data 前端jsp代码:var d

2017-05-09 15:54:07 10179 1

原创 Spring MVC 后台JAVA控制层如何 获取form 提交的参数

在SpringMVC后台控制层获取前台 JSP form 参数的方式主要有两种。一种是request.getParameter("name"),另外一种是用注解@RequestParam直接获取。这就讲后面这种方法。一、基本使用,获取提交的参数@RequestMapping("testRequestParam") public String filesUpload

2017-05-09 15:34:32 5537

程序员代码面试指南2-代码

《程序员代码面试指南第二版2》左程云 配套的所有的算法源代码

2019-07-07

dom4j jar包

dom4j v2.0 jar包。开发XML的必备利器

2016-02-10

空空如也

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

TA关注的人

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