摘要:
package blog4goimport ( "fmt" "os" "sync" "time")const ( // unit of sizes _ = iota // ignore first value by assigning to blank identifier // KB unit of kilobyte KB int64 = 1 0 { // format the ex...
阅读全文
posted @ 2017-08-29 18:05
张伯雨
阅读(310)
推荐(0)
摘要:
package blog4goimport ( "encoding/xml" "errors" "io/ioutil" "os")const ( // TypeTimeBaseRotate is time base logrotate tag TypeTimeBaseRotate = "time" // TypeSizeBaseRotate is size base logrotate tag T...
阅读全文
posted @ 2017-08-29 18:04
张伯雨
阅读(213)
推荐(0)
摘要:
package blog4goimport ( "bufio" "errors" "fmt" "io" "os" "strings" "sync")const ( // EOL end of a line EOL = '\n' // ESCAPE escape character ESCAPE = '\\' // PLACEHOLDER placeholder PLACEHOLDER = '%')...
阅读全文
posted @ 2017-08-29 18:04
张伯雨
阅读(592)
推荐(0)
摘要:
package blog4goimport ( "fmt" "path" "strings")// NewFileWriter initialize a file writer// baseDir must be base directory of log files// rotate determine if it will logrotatefunc NewFileWriter(baseDir...
阅读全文
posted @ 2017-08-29 17:55
张伯雨
阅读(209)
推荐(0)
摘要:
package blog4goimport ( "fmt" "os" "time")// ConsoleWriter is a console loggertype ConsoleWriter struct { blog *BLog // for stderr errblog *BLog redirected bool closed bool colored bool // log hook ho...
阅读全文
posted @ 2017-08-29 17:55
张伯雨
阅读(292)
推荐(0)
摘要:
package blog4goimport ( "fmt" "strings")// LevelType type defined for logging level// just use inttype LevelType intconst ( // level enum 日志枚举 // TRACE trace level TRACE LevelType = iota // DEBUG deb...
阅读全文
posted @ 2017-08-29 17:53
张伯雨
阅读(293)
推荐(0)
摘要:
package blog4go// Hook Interface determine types of functions should be declared and// implemented when user offers user defined function call before every// logging action end.// users may use this h...
阅读全文
posted @ 2017-08-29 17:53
张伯雨
阅读(148)
推荐(0)
摘要:
package blog4goimport ( "bytes" "fmt" "net" "sync")// SocketWriter 是一个socket日志结构体type SocketWriter struct { level LevelType //日志级别 closed bool //链接是否关闭 // log hook hook Hook //回调函数 hookLevel ...
阅读全文
posted @ 2017-08-29 17:48
张伯雨
阅读(329)
推荐(0)
摘要:
package blog4goimport ( "errors" "fmt")var ( // ErrFilePathNotFound 文件路径找不到 ErrFilePathNotFound = errors.New("File Path must be defined") // ErrInvalidLevel 非法日志级别 ErrInvalidLevel = errors.New("Inval...
阅读全文
posted @ 2017-08-29 17:48
张伯雨
阅读(555)
推荐(0)
摘要:
package blog4goimport ( "sync" "time")const ( // PrefixTimeFormat 时间格式前缀 PrefixTimeFormat = "[2006/01/02:15:04:05]" // DateFormat 时间格式 DateFormat = "2006-01-02")// timeFormatCacheType是一个时间格式的缓存type t...
阅读全文
posted @ 2017-08-29 17:46
张伯雨
阅读(235)
推荐(0)
摘要:
package blog4goconst ( // 版本号 VERSION = "0.5.6")
阅读全文
posted @ 2017-08-29 17:33
张伯雨
阅读(259)
推荐(0)
摘要:
1. lua 语言第二版 http://111.178.233.104/file3.data.weipan.cn/1984250/769e08195b208668074b9b49a379abac616fbd83? ip=1499676021,222.88.40.74&ssig=UPfp67l0L5&Expires=1499676621&KID=sae,l30zoo1wmz&fn=Lua%E7...
阅读全文
posted @ 2017-08-29 17:32
张伯雨
阅读(391)
推荐(0)
摘要:
市场需求: xxxx1.场景讲解2.用例讲解3.逻辑模型4.业务模型5.数据流程6.实体模型
阅读全文
posted @ 2017-08-29 17:30
张伯雨
阅读(172)
推荐(0)
摘要:
1.测试需要明确需求设计2.测试需要全程参与详细设计3.测试需要明确里程碑4.测试需要明确业务流程5.测试需要明确核心业务性能指标6.测试需要书写详细测试用例7.测试用例需要详细设计,开发,需求一起评审8.质控, 开发,需求 三角关系9.发布执行点: 质控10.开发保证功能 质控保证质量 需求保证业务
阅读全文
posted @ 2017-08-29 17:24
张伯雨
阅读(93)
推荐(0)
摘要:
前些天,有几个网友找我谈绩效考核的事,都是在绩效上被差评的朋友。在大致了解情况后,我发现他们感到沮丧和郁闷的原因,不全是自己没有做好事情,他们对于自己没有做好公司交给的事,一方面,持一些疑义,因为我很明显地感到他们和公司对一件是否做好的标准定义有误差,另一方面,他们对于自己的工作上的问题也承认。不过,让他们更多感到沮丧的原因则是,公司、经理或HR和他们的谈话,让他们感觉整个人都被完全否定了,甚至有...
阅读全文
posted @ 2017-08-29 17:24
张伯雨
阅读(528)
推荐(0)
摘要:
慢查询日志概念MySQL的慢查询日志是MySQL提供的一种日志记录,它用来记录在MySQL中响应时间超过阀值的语句,具体指运行时间超过long_query_time值的SQL,则会被记录到慢查询日志中。long_query_time的默认值为10,意思是运行10S以上的语句。默认情况下,Mysql数据库并不启动慢查询日志,需要我们手动来设置这个参数,当然,如果不是调优需要的话,一般不建议启动该参数...
阅读全文
posted @ 2017-08-29 17:22
张伯雨
阅读(181)
推荐(0)
摘要:
MySQL大数据量快速插入方法和语句优化是本文我们主要要介绍的内容,接下来我们就来一一介绍,希望能够让您有所收获!INSERT语句的速度插入一个记录需要的时间由下列因素组成,其中的数字表示大约比例:连接:(3)发送查询给服务器:(2)分析查询:(2)插入记录:(1x记录大小)插入索引:(1x索引)关闭:(1)这不考虑打开表的初始开销,每个并发运行的查询打开。表的大小以logN (B树)的速度减慢索...
阅读全文
posted @ 2017-08-29 17:22
张伯雨
阅读(1863)
推荐(0)
摘要:
最近研发的项目对DB依赖比较重,梳理了这段时间使用MySQL遇到的8个比较具有代表性的问题,答案也比较偏自己的开发实践,没有DBA专业和深入,有出入的请使劲拍砖!…MySQL读写性能是多少,有哪些性能相关的配置参数?MySQL负载高时,如何找到是由哪些SQL引起的?如何针对具体的SQL做优化?SQL层面已难以优化,请求量继续增大时的应对策略?MySQL如何做主从数据同步?如何防止DB误操作和做好容...
阅读全文
posted @ 2017-08-29 17:22
张伯雨
阅读(229)
推荐(0)
摘要:
MySQL在线更改schema的工具很多,如Percona的pt-online-schema-change、 Facebook的 OSC 和 LHM 等,但这些都是基于触发器(Trigger)的,今天咱们介绍的 gh-ost 号称是不需要触发器(Triggerless)支持的在线更改表结构的工具。本文先介绍一下当前业界已经存在的这些工具的使用场景和原理,然后再详细介绍 gh-ost 的工作原理和特...
阅读全文
posted @ 2017-08-29 17:21
张伯雨
阅读(1869)
推荐(0)
摘要:
当MySQL单表记录数过大时,增删改查性能都会急剧下降,可以参考以下步骤来优化:单表优化除非单表数据未来会一直不断上涨,否则不要一开始就考虑拆分,拆分会带来逻辑、部署、运维的各种复杂度,一般以整型值为主的表在千万级以下,字符串为主的表在五百万以下是没有太大问题的。而事实上很多时候MySQL单表的性能依然有不少优化空间,甚至能正常支撑千万级以上的数据量:字段尽量使用TINYINT、SMALLINT、...
阅读全文
posted @ 2017-08-29 17:20
张伯雨
阅读(543)
推荐(0)
摘要:
1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:select id from t where num is null可以在num上设置默认值0,确保表中num列没有null值,然后这样查询:select id from t wh...
阅读全文
posted @ 2017-08-29 17:18
张伯雨
阅读(14745)
推荐(2)
摘要:
Binlog Event对于一个 Binlog Event 来说,它分为三个部分,header,post-header 以及 payload。MySQL 的 Binlog Event 有很多版本,我们只关心 v4 版本的,也就是从 MySQL 5.1.x 之后支持的版本,太老的版本应该基本上没什么人用了。Binlog Event 的 header 格式如下:header 的长度固定为 19,eve...
阅读全文
posted @ 2017-08-29 17:16
张伯雨
阅读(233)
推荐(0)
摘要:
基本上每个跟数据库打交道的程序员(当然也可能是你同事)都会碰一个问题,MySQL误操作后如何快速回滚?比如,delete一张表,忘加限制条件,整张表没了。假如这还是线上环境核心业务数据,那这事就闹大了。误操作后,能快速回滚数据是非常重要的。传统解法用全量备份重搭实例,再利用增量binlog备份,恢复到误操作之前的状态。然后跳过误操作的SQL,再继续应用binlog。此法费时费力,不值得再推荐。利用...
阅读全文
posted @ 2017-08-29 17:13
张伯雨
阅读(243)
推荐(0)
摘要:
1.优化查询的查询缓存大部分MySQL服务器都有查询缓存功能。这是提高性能的最有效的方法之一,这是由数据库引擎私下处理的。当同一个查询被多次执行,结果会直接从缓存里提取,这样速度就很快。主要的问题是,这对程序员来说太简单了,不容易看到,我们很多人都容易忽略。我们实际上是可以组织查询缓存执行任务的。?123456// query cache does NOT work$r = mysql_query...
阅读全文
posted @ 2017-08-29 17:08
张伯雨
阅读(844)
推荐(0)
摘要:
查看MYSQL数据库中所有用户mysql> SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;查看数据库中具体某个用户的权限mysql> show grants for 'cactiuser'@'%'; select * from mysql.user where user='c...
阅读全文
posted @ 2017-08-29 17:07
张伯雨
阅读(325)
推荐(0)
摘要:
对于全栈而言,数据库技能不可或缺,关系型数据库或者nosql,内存型数据库或者偏磁盘存储的数据库,对象存储的数据库或者图数据库……林林总总,但是第一必备技能还应该是MySQL。从LAMP的兴起,到Mariadb的出现,甚至PG的到来,熟练的MySQL技能都是大有用武之地的。MySQL数据库技术的方方面面也是很多,这里只涉及必备的性能调优,推崇从下向上的性能调优,主要包括运行环境,配置参数,SQL性...
阅读全文
posted @ 2017-08-29 17:07
张伯雨
阅读(262)
推荐(0)
摘要:
最近研发的项目对DB依赖比较重,梳理了这段时间使用MySQL遇到的8个比较具有代表性的问题,答案也比较偏自己的开发实践,没有DBA专业和深入,有出入的请使劲拍砖!…MySQL读写性能是多少,有哪些性能相关的配置参数?MySQL负载高时,如何找到是由哪些SQL引起的?如何针对具体的SQL做优化?SQL层面已难以优化,请求量继续增大时的应对策略?MySQL如何做主从数据同步?如何防止DB误操作和做好容...
阅读全文
posted @ 2017-08-29 17:07
张伯雨
阅读(231)
推荐(0)
摘要:
一、简单描述表结构,字段类型desc tabl_name;显示表结构,字段类型,主键,是否为空等属性,但不显示外键。二、查询表中列的注释信息select * from information_schema.columnswhere table_schema = 'db' #表所在数据库and table_name = 'tablename' ; #你要查的表三、只查询列名和注释select c...
阅读全文
posted @ 2017-08-29 17:06
张伯雨
阅读(291)
推荐(0)
摘要:
查看所有库的大小mysql> use information_schema;Database changedmysql> select concat(round(sum(DATA_LENGTH/1024/1024),2),'MB') as data from TABLES;+----------+| data |+----------+| 104.21MB |+----------+1 ...
阅读全文
posted @ 2017-08-29 17:05
张伯雨
阅读(342)
推荐(0)
摘要:
摘要: 通过ssh远程连接linux服务器,上传Oracle11g的安装包,在无图形化界面的情况,安装Oracle服务器端。本例中linux服务器系统为CentOS6.5.#环境设置1、检查服务器硬件资源 Linux系统(x86-64)下的硬件要求:物理内存:最少1GB交互空间:物理内存为1GB至2GB之间时,交互空间为物理内存的1.5倍;物理内存为2GB至8GB之间时,交互空间为物理内存的1倍;...
阅读全文
posted @ 2017-08-29 17:04
张伯雨
阅读(18613)
推荐(1)
摘要:
作者:Sam Xiaowww.cnblogs.com/xcj26/p/3305789.html如有好文章投稿,请点击 → 这里了解详情大数据处理是一个头疼的问题,特别当达不到专业DBA的技术水准时,对一些数据库方面的问题感到无奈。所以还是有必要了解一些数据库方面的技巧,当然,每个人都有自己的数据库方面的技巧,只是八仙过海,所用的武功不同而已。我把我最常用的几种方式总结来与大家分享,大家还有更多的数...
阅读全文
posted @ 2017-08-29 16:50
张伯雨
阅读(387)
推荐(0)
摘要:
献给写作者的 Markdown 新手指南 作者 简书 关注2013.04.22 22:02* 字数 1478 阅读 446752评论 502喜欢 3712「简书」作为一款「写作软件」在诞生之初就支持了 Markdown,Markdown 是一种「电子邮件」风格的「标记语言」,我们强烈推荐所有写作者学习和掌握该语言。为什么?可以参考:『为什么作家应该用 Markdown 保存自己的文稿』。『Mar...
阅读全文
posted @ 2017-08-29 16:47
张伯雨
阅读(197)
推荐(0)
摘要:
什么是注解(Annotation): Annotation(注解)就是Java提供了一种元程序中的元素关联任何信息和着任何元数据(metadata)的途径和方法。Annotion(注解)是一个接口,程序可以通过反射来获取指定程序元素的Annotion对象,然后通过Annotion对象来获取注解里面的元数据。 Annotation(注解)是JDK5.0及以后版本引入的。它可以用于创建文档,跟踪代...
阅读全文
posted @ 2017-08-29 16:46
张伯雨
阅读(203)
推荐(0)
摘要:
要深入学习注解,我们就必须能定义自己的注解,并使用注解,在定义自己的注解之前,我们就必须要了解Java为我们提供的元注解和相关定义注解的语法。元注解: 元注解的作用就是负责注解其他注解。Java5.0定义了4个标准的meta-annotation类型,它们被用来提供对其它 annotation类型作说明。Java5.0定义的元注解: 1.@Target, 2.@Retention,...
阅读全文
posted @ 2017-08-29 16:45
张伯雨
阅读(292)
推荐(0)
摘要:
深入理解Java:内省(Introspector)内省(Introspector) 是Java 语言对 JavaBean 类属性、事件的一种缺省处理方法。 JavaBean是一种特殊的类,主要用于传递数据信息,这种类中的方法主要用于访问私有的字段,且方法名符合某种命名规则。如果在两个模块之间传递信息,可以将信息封装进JavaBean中,这种对象称为“值对象”(Value Object),或“VO...
阅读全文
posted @ 2017-08-29 16:44
张伯雨
阅读(265)
推荐(0)
摘要:
深入理解Java:注解(Annotation)--注解处理器如果没有用来读取注解的方法和工作,那么注解也就不会比注释更有用处了。使用注解的过程中,很重要的一部分就是创建于使用注解处理器。Java SE5扩展了反射机制的API,以帮助程序员快速的构造自定义注解处理器。注解处理器类库(java.lang.reflect.AnnotatedElement): Java使用Annotation接口来代表...
阅读全文
posted @ 2017-08-29 16:44
张伯雨
阅读(200)
推荐(0)
摘要:
SimpleDateFormat安全的时间格式化想必大家对SimpleDateFormat并不陌生。SimpleDateFormat 是 Java 中一个非常常用的类,该类用来对日期字符串进行解析和格式化输出,但如果使用不小心会导致非常微妙和难以调试的问题,因为 DateFormat 和 SimpleDateFormat 类不都是线程安全的,在多线程环境下调用 format() 和 parse()...
阅读全文
posted @ 2017-08-29 16:43
张伯雨
阅读(218)
推荐(1)
摘要:
Preconditions优雅的检验参数在日常开发中,我们经常会对方法的输入参数做一些数据格式上的验证,以便保证方法能够按照正常流程执行下去。对于可预知的一些数据上的错误,我们一定要做事前检测和判断,来避免程序流程出错,而不是完全通过错误处理来保证流程正确执行,毕竟错误处理是比较消耗资源的方式。在平常情况下我们对参数的判断都需要自己来逐个写方法判断,代码量不少并且复用性不高,如下所示:import...
阅读全文
posted @ 2017-08-29 16:39
张伯雨
阅读(251)
推荐(0)
摘要:
在我们学习和使用Guava的Optional之前,我们需要来了解一下Java中null。因为,只有我们深入的了解了null的相关知识,我们才能更加深入体会领悟到Guava的Optional设计和使用上的优雅和简单。 null代表不确定的对象: Java中,null是一个关键字,用来标识一个不确定的对象。因此可以将null赋给引用类型变量,但不可以将null赋给基本类型变量。 ...
阅读全文
posted @ 2017-08-29 16:39
张伯雨
阅读(1019)
推荐(0)
摘要:
复写的Object常用方法 在Java中Object类是所有类的父类,其中有几个需要override的方法比如equals,hashCode和toString等方法。每次写这几个方法都要做很多重复性的判断, 很多类库提供了覆写这几个方法的工具类, Guava也提供了类似的方式。下面我们来看看Guava中这几个方法简单使用。 equals方法: equals是一个经常需要覆写的方法, 可以查看O...
阅读全文
posted @ 2017-08-29 16:38
张伯雨
阅读(457)
推荐(0)
摘要:
简化异常处理的Throwables类有时候, 当我们我们捕获异常, 并且像把这个异常传递到下一个try/catch块中。Guava提供了一个异常处理工具类, 可以简单地捕获和重新抛出多个异常。例如:import java.io.IOException; import org.junit.Test; import com.google.common.base.Throwables; public ...
阅读全文
posted @ 2017-08-29 16:35
张伯雨
阅读(647)
推荐(0)
摘要:
Ordering是Guava类库提供的一个犀利强大的比较器工具,Guava的Ordering和JDK Comparator相比功能更强。它非常容易扩展,可以轻松构造复杂的comparator,然后用在容器的比较、排序等操作中。 本质上来说,Ordering 实例无非就是一个特殊的Comparator 实例。Ordering只是需要依赖于一个比较器(例如,Collections.max)的方法,并...
阅读全文
posted @ 2017-08-29 16:35
张伯雨
阅读(207)
推荐(0)
摘要:
Immutable(不可变)集合不可变集合,顾名思义就是说集合是不可被修改的。集合的数据项是在创建的时候提供,并且在整个生命周期中都不可改变。 为什么要用immutable对象?immutable对象有以下的优点: 1.对不可靠的客户代码库来说,它使用安全,可以在未受信任的类库中安全的使用这些对象 2.线程安全的:immutable对象在多线程下安全,没有竞态条件 3.不需要支...
阅读全文
posted @ 2017-08-29 16:34
张伯雨
阅读(1151)
推荐(0)
摘要:
Guava新增集合类型-BimapBiMap提供了一种新的集合类型,它提供了key和value的双向关联的数据结构。 通常情况下,我们在使用Java的Map时,往往是通过key来查找value的,但是如果出现下面一种场景的情况,我们就需要额外编写一些代码了。首先来看下面一种表示标识序号和文件名的map结构。 @Test public void logMapTest(){ ...
阅读全文
posted @ 2017-08-29 16:33
张伯雨
阅读(239)
推荐(0)
摘要:
Guava新增集合类型-Multimap在日常的开发工作中,我们有的时候需要构造像Map>或者Map>这样比较复杂的集合类型的数据结构,以便做相应的业务逻辑处理。例如:import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import org.junit....
阅读全文
posted @ 2017-08-29 16:33
张伯雨
阅读(289)
推荐(0)
摘要:
Guava新增集合类型-Multiset Guava引进了JDK里没有的,但是非常有用的一些新的集合类型。所有这些新集合类型都能和JDK里的集合平滑集成。Guava集合非常精准地实现了JDK定义的接口。Guava中定义的新集合有: Multiset SortedMultiset Multimap ListMultimap SetMultimap BiMap ClassToInstan...
阅读全文
posted @ 2017-08-29 16:33
张伯雨
阅读(230)
推荐(0)
摘要:
当我们需要多个索引的数据结构的时候,通常情况下,我们只能用这种丑陋的Map>来实现。为此Guava提供了一个新的集合类型-Table集合类型,来支持这种数据结构的使用场景。Table支持“row”和“column”,而且提供多种视图。 @Test public void TableTest(){ Table aTable = HashBasedTable.create();...
阅读全文
posted @ 2017-08-29 16:32
张伯雨
阅读(294)
推荐(0)
摘要:
EventBus是Guava的事件处理机制,是设计模式中的观察者模式(生产/消费者编程模型)的优雅实现。对于事件监听和发布订阅模式,EventBus是一个非常优雅和简单解决方案,我们不用创建复杂的类和接口层次结构。 Observer模式是比较常用的设计模式之一,虽然有时候在具体代码里,它不一定叫这个
阅读全文
posted @ 2017-08-29 16:30
张伯雨
阅读(202)
推荐(0)
摘要:
在Guava中新增了一个新的类型Range,从名字就可以了解到,这个是和区间有关的数据结构。从Google官方文档可以得到定义:Range定义了连续跨度的范围边界,这个连续跨度是一个可以比较的类型(Comparable type)。比如1到100之间的整型数据。 在数学里面的范围是有边界和无边界之分的;同样,在Guava中也有这个说法。如果这个范围是有边界的,那么这个范围又可以分为包括开集(不包...
阅读全文
posted @ 2017-08-29 16:29
张伯雨
阅读(544)
推荐(0)
摘要:
缓存,在我们日常开发中是必不可少的一种解决性能问题的方法。简单的说,cache 就是为了提升系统性能而开辟的一块内存空间。 缓存的主要作用是暂时在内存中保存业务系统的数据处理结果,并且等待下次访问使用。在日常开发的很多场合,由于受限于硬盘IO的性能或者我们自身业务系统的数据处理和获取可能非常费时,当我们发现我们的系统这个数据请求量很大的时候,频繁的IO和频繁的逻辑处理会导致硬盘和CPU资源的瓶...
阅读全文
posted @ 2017-08-29 16:28
张伯雨
阅读(664)
推荐(0)
摘要:
作者:July、wuliming、pkuoliver 出处:http://blog.csdn.net/v_JULY_v。 说明:本文分为三部分内容, 第一部分为一道百度面试题Top K算法的详解;第二部分为关于Hash表算法的详细阐述;第三部分为打造一个最快的Hash表算法。------------------------------------ 第一部分:Top K 算法详解问题描述百...
阅读全文
posted @ 2017-08-29 16:26
张伯雨
阅读(388)
推荐(0)
摘要:
作者:July出处:结构之法算法之道blog 前言 一般而言,标题含有“秒杀”,“99%”,“史上最全/最强”等词汇的往往都脱不了哗众取宠之嫌,但进一步来讲,如果读者读罢此文,却无任何收获,那么,我也甘愿背负这样的罪名,:-),同时,此文可以看做是对这篇文章:十道海量数据处理面试题与十个方法大总结的一般抽象性总结。 毕竟受文章和理论之限,本文将摒弃绝大部分的细节,只谈方法/模式论,且注重...
阅读全文
posted @ 2017-08-29 16:26
张伯雨
阅读(247)
推荐(0)
摘要:
我们通常衡量一个Web系统的吞吐率的指标是QPS(Query Per Second,每秒处理请求数),解决每秒数万次的高并发场景,这个指标非常关键。举个例子,我们假设处理一个业务请求平均响应时间为100ms,同时,系统内有20台Apache的Web服务器,配置MaxClients为500个(表示Apache的最大连接数目)。那么,我们的Web系统的理论峰值QPS为(理想化的计算方式):20*50...
阅读全文
posted @ 2017-08-29 16:26
张伯雨
阅读(757)
推荐(0)
摘要:
Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。 其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页伺服器中表现较好。准备nginx:nginx/Windows-1.10.1 http://nginx.org/en/download.htmltomcat:apache-tomcat-6...
阅读全文
posted @ 2017-08-29 16:25
张伯雨
阅读(193)
推荐(0)
摘要:
缓存是实际工作中非常常用的一种提高性能的方法, 我们会在许多场景下来使用缓存。本文通过一个简单的例子进行展开,通过对比我们原来的自定义缓存和 spring 的基于注释的 cache 配置方法,展现了 spring cache 的强大之处,然后介绍了其基本的原理,扩展点和使用场景的限制。通过阅读本文,你应该可以短时间内掌握 spring 带来的强大缓存技术,在很少的配置下即可给既有代码提供缓存能力。...
阅读全文
posted @ 2017-08-29 16:24
张伯雨
阅读(240)
推荐(0)
摘要:
如何清空缓存好,到目前为止,我们的 spring cache 缓存程序已经运行成功了,但是还不完美,因为还缺少一个重要的缓存管理逻辑:清空缓存.当账号数据发生变更,那么必须要清空某个缓存,另外还需要定期的清空所有缓存,以保证缓存数据的可靠性。为了加入清空缓存的逻辑,我们只要对 AccountService2.java 进行修改,从业务逻辑的角度上看,它有两个需要清空缓存的地方当外部调用更新了账号,...
阅读全文
posted @ 2017-08-29 16:24
张伯雨
阅读(218)
推荐(0)
摘要:
基本原理一句话介绍就是Spring AOP的动态代理技术。 如果读者对Spring AOP不熟悉的话,可以去看看官方文档扩展性直到现在,我们已经学会了如何使用开箱即用的 spring cache,这基本能够满足一般应用对缓存的需求。但现实总是很复杂,当你的用户量上去或者性能跟不上,总需要进行扩展,这个时候你或许对其提供的内存缓存不满意了,因为其不支持高可用性,也不具备持久化数据能力,这个时候,你就...
阅读全文
posted @ 2017-08-29 16:24
张伯雨
阅读(382)
推荐(0)
摘要:
TProfiler是一个可以在生产环境长期使用的性能分析工具.它同时支持剖析和采样两种方式,记录方法执行的时间和次数,生成方法热点 对象创建热点 线程状态分析等数据,为查找系统性能瓶颈提供数据支持.TProfiler在JVM启动时把时间采集程序注入到字节码中,整个过程无需修改应用源码.运行时会把数据写到日志文件,一般情况下每小时输出的日志小于50M.业界同类开源产品都不是针对大型Web应用设计的,...
阅读全文
posted @ 2017-08-29 16:23
张伯雨
阅读(393)
推荐(0)
摘要:
前言最近项目中需要将业务对象直接序列化,然后存数据库;考虑到序列化、反序列化的时间以及生产文件的大小觉得Protobuf是一个很好的选择,但是Protobuf有的问题就是需要有一个.proto的描述文件,而且由Protobuf生成的对象用来作为业务对象并不是特别友好,往往业务对象和Protobuf对象存在一个互相转换的过程;考虑到我们仅仅是将业务对象直接序列化到数据库,发现Protobuf在这种情...
阅读全文
posted @ 2017-08-29 16:22
张伯雨
阅读(2339)
推荐(0)
摘要:
在高性能的I/O设计中,有两个比较著名的模式Reactor和Proactor模式,其中Reactor模式用于同步I/O,而Proactor运用于异步I/O操作。<!--more-->同步和异步 同步和异步是针对应用程序和内核的交互而言的,同步指的是用户进程触发IO操作并等待或者轮询的去查看IO操作是
阅读全文
posted @ 2017-08-29 16:05
张伯雨
阅读(447)
推荐(0)
摘要:
高等代数数学分析数值分析数学建模概率论与数理统计抽象代数(北大)几何学(北大)复变函数常微分方程实变函数微分几何拓扑学偏微分方程泛函分析微分流形初等数论应用随机过程有限域组合数学代数数论密码学代数曲线李群<!--more-->应用多元统计分析测度论统计计算应用时间序列分析应用回归分析非参数统计实验设
阅读全文
posted @ 2017-08-29 15:47
张伯雨
阅读(210)
推荐(0)