自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

one-programmer

天行健,君子以自强不息.

  • 博客(130)
  • 收藏
  • 关注

原创 elasticsearch客户端java包选型

问题ES的java客户端有多个 实际开发时不知道怎么选型 网上搜索了下 找到了一个不错的建议 quora问题 https://www.quora.com/What-is-the-best-client-library-for-elasticsearch 1. Jest - REST based client library - Jest 2. spring data library - sp

2016-02-24 19:26:55 3395

转载 java并发--队列同步器原理一

独占式同步状态获取与释放原理在同步队列中独占式获取锁的代码 public final void acquire(int arg) { if (!tryAcquire(arg) && //独占 acquireQueued(addWaiter(Node.EXCLUSIVE), arg)) selfInterrupt();

2015-12-10 23:20:13 1807

转载 java并发编程--同步队列器初探

先从代码说起 , 一个独占锁的实例:/** * 独占锁 *///Doug lea 的注释/*<p>Here is a non-reentrant mutual exclusion lock class that uses* the value zero to represent the unlocked state, and one to * represent the

2015-12-10 22:16:06 603

转载 nginx--rewrite指令使用

nginx rewrite 指令nginx通过ngx_http_rewrite_module模块支持url重写、支持if条件判断,但不支持else。该模块需要PCRE支持,应在编译nginx时指定PCRE源码目录nginx rewrite指令执行顺序:1.执行server块的rewrite指令(这里的块指的是server关键字后{}包围的区域,其它xx块类似) 2.执行location匹配 3.

2015-12-10 21:58:33 462

转载 JSoup使用(一)

转载 http://my.oschina.net/flashsword/blog/156798 FYI概述Jsoup的代码相当简洁,Jsoup总共53个类,且没有任何第三方包的依赖,对比最终发行包9.8M的SAXON,实在算得上是短小精悍了。jsoup├── examples #样例,包括一个将html转为纯文本和一个抽取所有链接地址的例子。 ├── helper #一些工具类,包括读取

2015-12-10 18:21:16 534

原创 java并发--线程应用

简单的数据库连接池场景:调用一个方法时如果该方法能够在给定的时间段内得到结果 那么将结果立刻返回 反之 超时返回默认值

2015-12-03 19:45:39 455

原创 ping

PING

2015-12-03 00:13:25 484

原创 java并发基础--等待通知模式

线程间通信public class SynchronizedTest { public static void main(String[] args) { synchronized (SynchronizedTest.class){ } m(); } public synchronized static void m(){ }}

2015-12-02 20:46:51 1316

原创 java并发基础--线程

线程信息查看public class ThreadInfoTest {public static void main(String[] args) {//获取java线程管理mxbeanThreadMXBean threadMXBean = ManagementFactory.getThreadMXBean();//不需要获取同步的monitor和synchronizer信息 仅获取线程和线程堆栈T

2015-12-02 00:14:16 443

原创 位运算(一)

简介程序中的所有数在计算机内存中都是以二进制的形式储存的。位运算说穿了,就是直接对整数在内存中的二进制位进行操作。比如,and运算本来是一个逻辑运算符,但整数与整数之间也可以进行and运算。举个例子,6的二进制是110,11的二进制是1011,那么6 and 11的结果就是2,它是二进制对应位进行逻辑运算的结果(0表示False,1表示True,空位都当0处理)。运算符号下面的a和b都是整数类型,则

2015-11-27 21:45:10 373

原创 mysql时间类型timestamp知识点

mysql日期时间类型 日期类型 字节 最小值 最大值 DATE 4 1000-01-01 9999-12-31 DATETIME 8 1000-01-01 00:00:00 TimeStamp 4 197001010800001 2038年 Time 3 -838:59:59 838:59:59 year 1

2015-11-26 19:14:14 3342 1

原创 eclipse和Mingw开发环境搭建

eclipse MinGw开发环境搭建MinGW绿色版下载 http://pan.baidu.com/s/1uET5c 提取码:tcr6 环境变量PATH 添加 D:\work\MinGW\bin cmd验证输入gcc命令下载CDT使用Eclipse创建C++工程打开Eclipse,选择菜单File->New->ProjectFile,选择C++ Project,点击Next。可以选择“Hel

2015-11-26 13:55:17 504

原创 随想随记

备忘:病症: 在工作和学习中, 最忌讳的是同样的错误多次出现, 好多东西都想学习,学一点这个学一点那个没有目的性,有时候明明好多事要去干但有不知道如何下手.时间都耗费在犹豫和徘徊之中.总结: 根据惨痛的经历,总结出一套自己的规范, 学习和工作的规范1 凡事要有目的性, 一开始就要设立明确的目标,即使开始来不及也要尽快设立并记录下来目标是什么. 2 在整理资料学习和解决问题的过程中.要把学到的东

2015-11-25 19:56:46 384

原创 servlet中Response输出源码解析

在Servlet编程中 经常会写 response.setContentType("text/html"); PrintWriter out = response.getWriter();获取字符输出流 这里 response对象是org.apache.catalina.connector.ResponseFacade out是org.apache.catalina.connector.Coyo

2015-11-25 15:35:02 3173

转载 lua--协程

前言协同程序与线程差不多,也就是一条执行序列,拥有自己独立的栈、局部变量和指令指针,同时又与其它协同程序共享全局变量和其它大部分东西。从概念上讲,线程与协同程序的主要区别在于,一个具有多个线程的程序可以同时运行几个线程,而协同程序却需要彼此协作的运行。就是说,一个具有多个协同程序的程序在任意时刻只能运行一个协同程序,并且正在运行的协同程序只会在其显式地要求挂起时,它的执行才会暂停。协同程序基础Lua

2015-11-25 10:08:52 356

转载 lua--lua中的迭代器

前言迭代器就是一种可以遍历一种集合中所有元素的机制,在Lua中,通常将迭代器表示为函数。每调用一次函数,就返回集合中的“下一个”元素。每个迭代器都需要在每次成功调用之后保存一些状态,这样才能知道它所在的位置及如何走到下一个位置,通过之前博文的总结,闭包对于这样的任务提供了极佳的支持。现在我们就用代码来实现一个简单的迭代器。function values(tb) local i = 0

2015-11-24 22:36:18 2081

转载 lua入门--闭包

在很多语言中都有闭包的概念,而在这里,我将主要对Lua语言的闭包概念进行分析与总结。希望对大家学习Lua有帮助。什么是闭包?闭包在Lua中是一个非常重要的概念,闭包是由函数和与其相关的引用环境组合而成的实体。我们再来看一段代码:function newCounter() local i = 0 return function () -- 匿名函数 i = i

2015-11-23 23:00:23 523

转载 lua入门--函数

Lua中的函数和C++中的函数的含义是一致的,Lua中的函数格式如下:function MyFunc(param) -- Do somethingend在调用函数时,也需要将对应的参数放在一对圆括号中,即使调用函数时没有参数,也必须写出一对空括号。对于这个规则只有一种特殊的例外情况:一个函数若只有一个参数,并且此参数是一个字符串或table构造式,那么圆括号便可以省略掉。看以下代码:、p

2015-11-23 22:49:51 377

转载 lua入门系列--lua中的语句

赋值赋值的基本含义是修改一个变量或一个table中字段的值,这个和其它语言没有多少区别,但是对于Lua,有一个特性,它允许“多重赋值”,也就是一下子将多个值赋予多个变量,例如以下代码:local x1, x2 = 2, 4print(x1) -->2print(x2) -->4在多重赋值中,Lua先对等号右边的所有元素求值,然后才执行赋值,例如以下用法,可以非常简便的交换两个元素

2015-11-23 10:11:41 393

转载 lua--lua中的表达式

算术操作符Lua支持常规的算术操作符有:”+”(加法),”-”(减法),”*”(乘法),”/”(除法),”^”(指数),”%”(取模),一元的”-”(负号)。所有的这些操作符都用于实数。例如:x^0.5将计算x的平方根,x^3将计算x的3次方。关系操作符Lua提供的关系操作符有:”<”,”>”,”<=”,”>=”,”==”,”~=”;所有这些操作符的运算结果都是true或false。操作符==用于相

2015-11-21 15:38:13 530

转载 tomcat源代码系列--请求处理过程

前面已经分析完了Tomcat的启动和关闭过程,本篇就来接着分析一下Tomcat中请求的处理过程。在开始本文之前,咋们首先来看看一个Http请求处理的过程,一般情况下是 浏览器发送http请求->建立Socket连接->通过Socket读取数据->根据http协议解析数据->调用后台服务完成响应 ,详细的流程图如上图所示,等读者读完本篇,应该就清楚了上图所表达的意思。Tomcat既是一个HttpSer

2015-11-19 21:31:07 480

转载 tomcat源码系列(四)--关闭过程

Tomcat启动以后,会启动6条线程,他们分别如下: Tomcat threads"ajp-bio-8009-AsyncTimeout" daemon prio=5 tid=7f8738afe000 nid=0x115ad6000 waiting on condition [115ad5000]"ajp-bio-8009-Acceptor-0" daemon prio=5 tid=7f8738b05

2015-11-19 12:59:34 639

转载 tomcat源代码系列(三)--启动过程

本篇我们来一起分析一下Tomcat的启动过程,启动过程涉及到了Tomcat组件的生命周期管理,本文将从 Tomcat组件生命周期管理 , Tomcat启动的总过程 , Tomcat启动过程关键步骤分析 三个方面来进行描述。Tomcat组件生命周期管理在 Tomcat总体结构 (Tomcat源代码阅读系列之二) 中,我们列出了Tomcat中Server,Service,Connector,Engine

2015-11-18 18:38:31 718

转载 tomcat源码系列(二)--tomcat总体结构

Tomcat的总体结构Tomcat即是一个Http服务器也是一个Servlet容器,它的总体结构我们可以用下图来描述:通过上图我们可以看出Tomcat中主要涉及Server,Service,Engine,Connector,Host,Context组件,之前用过Tomcat的童鞋是不是觉得这些组件的名称有点似曾相识的赶脚,没赶脚?!您再想想。好吧,不用你想了,我来告诉你吧。其实在Tomcat二进制分

2015-11-18 17:48:33 623

转载 tomcat源码系列(一)--组合项目导入ide

写的不错的一个系列 转之本文是Tomcat源代码阅读系列的第一篇文章,在阅读Tomcat源代码之前,我们首先需要将Tomcat的源代码在IDE里面运行起来,这样方便我们阅读的过程中调试。本文总结一下在IDEA 或者 Eclipse中运行Tomcat源代码环境的搭建过程,同时我们通过Maven来负责项目的构建。在进行搭建之前,我们首先来说一下总体的思路。我们知道Tomcat运行的时候,一部分是源代码

2015-11-18 15:54:48 1707

转载 lua--lua中的类型和值

Lua中的类型与值Lua是一种动态类型的语言。在语言中没有类型定义的语法,每个值都带有其自身的类型信息。在Lua中有8中基本类型,分别是:nil(空)类型boolean(布尔)类型number(数字)类型string(字符串)类型userdata(自定义类型)function(函数)类型thread(线程)类型table(表)类型以上是Lua中的8中基本类型,我们可以使用type函数

2015-11-17 23:12:13 405

转载 java设计模式--装饰器模式

转载 http://sishuok.com/forum/blogPost/list/5766.html22.1 场景问题22.1.1 复杂的奖金计算 考虑这样一个实际应用:就是如何实现灵活的奖金计算。奖金计算是相对复杂的功能,尤其是对于业务部门的奖金计算方式,是非常复杂的,除了业务功能复杂外,另外一个麻烦之处是计算方式还经常需要变动,因为业务部门经常通过调整奖金的计算方式来激励士气。

2015-11-16 22:13:56 2369

转载 java设计模式--模板模式

16.1 场景问题16.1.1 登录控制 几乎所有的应用系统,都需要系统登录控制的功能,有些系统甚至有多个登录控制的功能,比如:普通用户可以登录前台,进行相应的业务操作;而工作人员可以登录后台,进行相应的系统管理或业务处理。现在有这么一个基于Web的企业级应用系统,需要实现这两种登录控制,直接使用不同的登录页面来区分它们,把基本的功能需求分别描述如下:先看看普通用户登录前台的登录控制的功能

2015-11-15 18:50:01 937

原创 lua资源

manual.luaer.cn lua在线手册book.luaer.cn lua在线lua学习教程lua参考手册Lua参考手册的中文翻译(云风翻译版本)关于Lua的标库,你可以看看官方文档:string, table, math, io, os。

2015-11-13 17:41:12 679

转载 lua--简明教程

概述Lua脚本是一个很轻量级的脚本,也是号称性能最高的脚本,用在很多需要性能的地方,比如:游戏脚本,nginx,wireshark的脚本,当你把他的源码下下来编译后,你会发现解释器居然不到200k,这是多么地变态啊(/bin/sh都要1M,MacOS平台),而且能和C语言非常好的互动。我很好奇得浏览了一下Lua解释器的源码,这可能是我看过最干净的C的源码了。运行首先,我们需要知道,Lua是类C的,所

2015-11-13 17:40:04 1613

转载 lua开发--web页面服务

技术选型MQ可以使用如Apache ActiveMQ;Worker/动态服务可以通过如Java技术实现;RPC可以选择如alibaba Dubbo;KV持久化存储可以选择SSDB(如果使用SSD盘则可以选择SSDB+RocksDB引擎)或者ARDB(LMDB引擎版);缓存使用Redis;SSDB/Redis分片使用如Twemproxy,这样不管使用Java还是Nginx+Lua,它们都不关心分片逻辑

2015-11-12 21:24:07 8378

原创 运维mysql

查看mysql是否启动 /etc/rc.d/init.d/mysqld status使用yum来安装mysql linux下使用yum安装mysql,以及启动、登录和远程访问。1、安装查看有没有安装过: yum list installed mysql* rpm -qa | grep mysql*查看有没有安装包: yum list mysql*安装mysql客

2015-11-12 03:07:59 467

转载 rpm

rpm -i 它做了什么一说到rpm,人们第一时间想到的就是rpm能用来安装软件。正如我们前面提及到的,安装软件时一个复杂的,经常出错的事情,但在rpm眼中,安装软件只不过是一个命令的事。rpm -i (等同于rpm –install)命令能够安装已经被打包成rpm格式的软件,它主要做以下几件事:依赖检查.检测冲突做一些正式安装前必须做的准备工作根据配置文件确定如何安装软件解压包并把它们放在一个合适

2015-11-12 02:24:17 396

转载 lua开发--web实战

此处我说的HTTP服务主要指如访问京东网站时我们看到的热门搜索、用户登录、实时价格、实时库存、服务支持、广告语等这种非Web页面,而是在Web页面中异步加载的相关数据。这些服务有个特点即访问量巨大、逻辑比较单一;但是如实时库存逻辑其实是非常复杂的。在京东这些服务每天有几亿十几亿的访问量,比如实时库存服务曾经在没有任何IP限流、DDos防御的情况被刷到600多万/分钟的访问量,而且能轻松应对。支撑如此

2015-11-12 01:57:36 6015

转载 lua开发--模板渲染

动态web网页开发是Web开发中一个常见的场景,比如像京东商品详情页,其页面逻辑是非常复杂的,需要使用模板技术来实现。而Lua中也有许多模板引擎,如目前我在使用的lua-resty-template,可以渲染很复杂的页面,借助LuaJIT其性能也是可以接受的。如果学习过JavaEE中的servlet和JSP的话,应该知道JSP模板最终会被翻译成Servlet来执行;而lua-resty-templa

2015-11-11 23:05:18 1676

原创 运维记录

linux 运维空间查看IP ifconfig eth0 →查看IP 不过输出的信息多一些 ifconfig|grep ‘Bcast’ → 这个输出的信息要清晰多了

2015-11-11 19:56:21 381

转载 lua开发--字符串,json,编码转换

JSON库在进行数据传输时JSON格式目前应用广泛,因此从Lua对象与JSON字符串之间相互转换是一个非常常见的功能;目前Lua也有几个JSON库,本人用过cjson、dkjson。其中cjson的语法严格(比如unicode \u0020\u7eaf),要求符合规范否则会解析失败(如\u002),而dkjson相对宽松,当然也可以通过修改cjson的源码来完成一些特殊要求。而在使用dkjson时也

2015-11-10 17:10:10 15605

转载 lua开发之--mysql和http模块

Mysql客户端lua-resty-mysql是为基于cosocket API的ngx_lua提供的Lua Mysql客户端,通过它可以完成Mysql的操作。默认安装OpenResty时已经自带了该模块,使用文档可参考https://github.com/openresty/lua-resty-mysql。编辑test_mysql.lualocal function close_db(db)

2015-11-09 23:36:33 6711

转载 lua开发--lua模块和redis

lua模块开发在实际开发中,不可能把所有代码写到一个大而全的lua文件中,需要进行分模块开发;而且模块化是高性能Lua应用的关键。使用require第一次导入模块后,所有Nginx 进程全局共享模块的数据和代码,每个Worker进程需要时会得到此模块的一个副本(Copy-On-Write),即模块可以认为是每Worker进程共享而不是每Nginx Server共享;另外注意之前我们使用init_by

2015-11-09 21:55:23 10683

转载 Redis安装与使用

Redis安装与使用1、下载redis并安装 cd /usr/servers/ wget https://github.com/antirez/redis/archive/2.8.19.tar.gz tar -xvf 2.8.19.tar.gz cd redis-2.8.19/ make 2、后台启动Redis服务器 nohup /usr/s

2015-11-09 19:44:16 416

空空如也

空空如也

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

TA关注的人

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