- 博客(141)
- 资源 (18)
- 收藏
- 关注
转载 QConf 架构和实现原理
本期聊一聊咱们360基础架构的另一款工具 "QConf",最近刚在 "中华架构师大会" 上分享过,本文会对QConf的架构和实现原理进一步具体介绍。-------------------------------QConf一个集中式的配置管理系统,它可以取代传统的配置文件,实现可视化与自动化的配置管理,并实时更新到所有的客户端机器。QConf的整个系统由若干个角色组成,这些角
2015-09-13 11:11:13
1717
转载 微服务实战(一):微服务架构的优势与不足
【编者的话】本文来自Nginx官方博客,是微服务系列文章的第一篇,主要探讨了传统的单体式应用的不足,以及微服务架构的优势与挑战。正如作者所说,微服务架构更适合用于构建复杂的应用,尽管它也有自己的不足。 这篇文章作者是Chris Richardson,他是早期基于Java的Amazonite EC2 PaaS平台CloudFoundry.com的创始人。现在他为企业提供如何开发和部署应用的咨
2015-06-14 20:04:14
835
原创 HG常用命令和场景(三)--版本差别查看
相比对git的版本差别查看,hg的思路和命令也都接近,都是通过,log和diff命令,只是略有不同:在hg中,使用hg log,默认会打印所有的版本,一长串,倒序排列,意义不大,所以,通常使用hg log|more,这样只查看最近的几个版本,如果需要更前面的版本,则继续“下拉”即可:[root@bogon project]$ hg log|morechangeset: 419:d5f
2013-09-30 09:43:25
3367
原创 linux--crontab
linux下最便捷的任务工具,当属crontab,简单实用:基础命令:1. 列出当前任务 crontab -l:2. 修改,添加任务 crontab -e,然后实用vi编辑器,修改即可3. 删除任务,既可以在contab -e中通过删除单行来实现,也可以执行crontab -r,直接移除所有的contab 任务4. 备份任务,本质上,crontab 没有
2013-09-30 09:28:32
907
原创 Git常用命令和场景(二)--版本回退
1. 首先使用hg log|more 查看要回退到的版本:[lixinglei@bogon project]$ hg log|morechangeset: 1167:dc735d4b2c72tag: tipuser: lixldate: Tue Sep 17 20:04:16 2013 +0800summary: 需求10
2013-09-27 22:29:29
1805
原创 linux用户管理命令
0. 进入root用户下1. 用useradd命令创建用户创建用户:useradd [所要创建的用户名] ,回车2. 用passwd命令为该用户创建密码:passwd [用户名] ,回车3. 删除用户 userdel [-r] [要删除的用户的名称]过段时间就会忘记,这里备个份
2013-09-27 22:08:06
704
原创 Hg常用命令和场景(一)--线上代码更新 和 项目代码提交
1. 获取一份代码,用于测试环境和线上环境(相较于git,更多用的是clone):hg clone http://lixl:lixl123@192.168.XXX.XXX/hg/xxx2. 项目开发,用于开发环境:(在 1 的基础上进行开发之后)查看当前更改内容,通常在要在commit之前用于确认:hg status比hg status更进一步,查
2013-08-31 22:47:32
7181
原创 pyhton——驼峰和下划线命名格式互转
写Java的时候,大多数都是用的驼峰格式XxxXxxXxx,转python之后,在python内部,更多的用的是下划线小写的格式xxx_xxx_xxx;然后跟外部系统交互的时候,通常又都用的是驼峰格式,因此总有地方要对驼峰和下划线的命名格式进行转换,于是,就有了下面的几行代码: def camel_to_underline(self, camel_format): '''
2013-08-30 20:07:16
6560
1
原创 python——urllib模块
1. 简述这里说的urllib模块,是urllib*模块,包括了urllib、urllib2和urllib3等几个。urllib和urllib2都是属于python的基础库,类似于java中官方jdk提供的库,在http://docs.python.org/2/library/internet.html可以看到相关介绍,他们都属于Internet协议和相关支撑的模块部分;除了这两个,其实还有第
2013-08-28 22:05:36
21526
原创 Git常用命令和场景(五)--客户端配置
说到客户端配置,其实在 Git常用命令和场景(一)--线上代码更新 和 项目代码提交 中已经有过一个配置,是用户级的配置:Git提供了三级配置,来使用不同的场景:1. 系统级 git config --system 这个个人使用场景不是很多,都是使用的默认配置,工作中没有用到,配置存放位置是: /etc/gitconfig,可以使用git config --system来修
2013-08-09 13:43:56
938
原创 python——多线程thread
python通过thread模块支持多线程,语法也很简洁,现在通过一个实例来看一下python中的多线程:import threadimport timeisRunning=Falsetimer_hour=23timer_min=44def another_thread(): print '[another_thread] is start...' global
2013-07-31 23:50:32
952
原创 Git常用命令和场景(四)--设置忽略提交的文件类型
git提交可以设置忽略提交的文件和文件类型,通常用于将一些不需要提交的,如编译后的文件*.pyc,项目相关的文件等设置进去,或者一些临时文件等,具体如下:[lixinglei@bogon my]$ vim .git.git/ .gitignore [lixinglei@bogon my]$ vim .gitignore 1 syntax: glob 2
2013-07-19 21:14:48
2975
原创 Git常用命令和场景(三)--版本差别查看
代码更新上线前,需要进行代码评审和走查,对于git,主要是查看现行版本和线上版本代码的差别,即使用git diff。首先,还是查看程序版本,git log[lixinglei@bogon my]$ git logcommit d87f3ea30f8e1a31ef26523c43d17237e4b7285cMerge: bf468f2 2e47641Author: lixinglei
2013-07-17 15:38:53
12666
原创 Git常用命令和场景(二)--线上版本回退
代码上线后,会遇到有问题的,有bug的,通常,最直接的就是回退到前面的某个版本:1. 首先使用git log查看要回退到的版本[lixinglei@bogon my]$ git logcommit ff3f2238f33256c9d3436e235c1c34d3b8147fe8Merge: 248cba8 944274fAuthor: lixinglei Date: T
2013-07-05 16:18:37
3959
原创 Git常用命令和场景(一)--线上代码更新 和 项目代码提交
最近的工作中使用到了git,简单做个记录:1. 项目查看或执行,用于测试环境和线上环境:git初始化:git initgit拉取代码:git pull git@127.0.0.1:project.git 2. 项目开发,用于开发环境:(在 1 的基础上进行开发之后)查看当前更改内容,通常在要在commit之前用于确认:git status
2013-06-30 10:17:19
21170
原创 python——if
python中的if很灵活,他可以判断所有的数据类型,根据数据类型的不同,来判定if的结果,通常可以理解为:数据类型的默认初始值都是False的!见如下测试结果,首先是数据类型列举:>>> type(0L)>>> type(0.0)>>> type(0)>>> type('')>>> type("")>>> type([])>>> type({})>>> type(
2013-06-19 18:54:49
2242
原创 Git报错insufficient permission for adding an object to repository database .git/objects
Git在pull时报错,发生情况如下:[lixinglei@bogon my]$ ll -a|grep .gitdrwxrwxr-x. 8 lixinglei lixinglei 4096 6月 6 19:58 .git-rw-rw-r--. 1 lixinglei lixinglei 109 4月 23 14:02 .gitignore[lixinglei@bogon
2013-06-06 20:15:11
28166
原创 python——命令行参数
python调用时,可以直接在命令行中加入调用参数,通过sys模块的argv来进行解析,如下:[lixinglei@bogon someother]$ python param.py port=8080 username=lixinglei[{'port': '8080'}, {'username': 'lixinglei'}][lixinglei@bogon someother]$
2013-06-03 14:15:41
1065
原创 python——定时任务task
pyhton的定时任务写法:#!/usr/bin/env python#-- encoding:utf-8 --import timedef task(): print "task ..."def timer(n): while True: print time.strftime('%Y-%m-%d %X',time.localtime
2013-05-17 15:38:20
14901
原创 python——常见读写文件操作
1. write:file_path="/home/lixinglei/test.txt"file_content="Test file write!"output = open(file_path, "w")output.write(file_content)output.close()2. read:file_path = "/home/lixinglei/
2013-05-17 15:36:49
970
原创 python——解析Http编码
python总是那么简洁,解析Http编码:import HTMLParserh = HTMLParser.HTMLParser()s = h.unescape("无")print s
2013-05-13 20:33:11
2017
原创 python——http请求
python发送HTTP请求,很简洁:1. getimport urlliburl="http://www.zhangyue.com"sock= urllib.urlopen(url)html = sock.read()sock.close()2. post(和get的区别在于是否传参数)import urlliburl = "http://
2013-05-13 20:29:29
3131
转载 IO - 同步,异步,阻塞,非阻塞
当你发现自己最受欢迎的一篇blog其实大错特错时,这绝对不是一件让人愉悦的事。《 IO - 同步,异步,阻塞,非阻塞 》是我在开始学习epoll和libevent的时候写的,主要的思路来自于文中的那篇link。写完之后发现很多人都很喜欢,我还是非常开心的,也说明这个问题确实困扰了很多人。随着学习的深入,渐渐的感觉原来的理解有些偏差,但是还是没引起自己的重视,觉着都是一些小错误,无伤大雅。直到有
2013-03-22 00:04:25
1145
转载 tomcat启动时出现异常Exception loading sessions from persistent storage
Exception loading sessions from persistent storage java.io.EOFException at java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2228) at java.io.ObjectInputStream$BlockData
2013-03-18 09:10:13
14928
原创 Java的NIO实例——基于NIO的文件复制
JDK1.4中引入的NIO库,和传统IO最大的区别是:传统IO是基于Byte(字节)和Stream(流)的,而NIO是基于Buffer(缓冲)、Channel(通道)和Selector(选择器)的。下面就看下使用IO,BufferedIO和NIO分别实现的文件复制(本来想测试一下分别的性能,但是结果不是很稳定,希望有这方面数据的同学分享下):import java.io.BufferedI
2013-03-14 23:42:35
1141
转载 servlet/filter/listener/interceptor区别与联系
由于最近两个月工作比较清闲,个人也比较“上进”,利用工作空余时间,也继续学习了一下,某天突然想起struts2和struts1的区别的时候,发现为什么struts1要用servlet,而struts2要用filter呢?一时又发现,servlet和filter有什么区别呢?于是看了看web.xml,一时又发现,咦,servlet、filter、listener?还有个interceptor?对于这
2013-03-14 16:20:39
996
转载 Java多线程编程详解
线程的同步 由于同一进程的多个线程共享同一片存储空间,在带来方便的同时,也带来了访问冲突这个严重的问题。Java语言提供了专门机制以解决这种冲突,有效避免了同一个数据对象被多个线程同时访问。 由于我们可以通过 private 关键字来保证数据对象只能被方法访问,所以我们只需针对方法提出一套机制,这套机制就是 synchronized 关键字,它包括两种用法:synchronized 方
2013-03-11 22:47:56
897
转载 Java 理论与实践: 正确使用 Volatile 变量
对于volatile很好的讲解,不多说,来看吧:Java 语言中的 volatile 变量可以被看作是一种 “程度较轻的 synchronized”;与 synchronized 块相比,volatile 变量所需的编码较少,并且运行时开销也较少,但是它所能实现的功能也仅是 synchronized的一部分。本文介绍了几种有效使用 volatile 变量的模式,并强调了几种
2013-03-11 21:17:51
763
转载 Java进阶-Java中的类装载器和命名空间
类装载器的功能及分类顾名思义,类装载器是用来把类(class)装载进JVM的。JVM规范定义了两种类型的类装载器:启动类装载器(bootstrap)和用户自定义装载器(user-defined class loader)。bootstrap是JVM自带的类装载器,用来装载核心类库,如java.lang.*等。如java.lang.Object是由bootstrap装载的。Java提供了
2013-03-06 23:33:25
1505
原创 Java常用工具类——字段验证工具ValidatorUtil
对字段进行判断的工具,每个项目必备吧,简单总结了一下,有优化的,或者更多的请提出,可以不断完善。import java.util.regex.Matcher;import java.util.regex.Pattern;/** * 字段验证工具 * @author lixinglei * */public class ValidatorUtil { /** * 判断是
2013-03-01 13:21:37
9629
转载 Java周边——应该被记住的 8 位 Java 人物
本文列举了8个Java人物,他们创建了对Java社区贡献很大的框架、产品、工具和图书,也因此改变了Java的编码方法。一起来认识下吧。8.Tomcat和Ant创办人James Duncan Davidson,1997年到2001年在Sun公司工作,他创建了Tomcat应用服务器,这是使用最为广泛的Java Web服务器,同时还创建了Ant构建工具,Ant使用XML来描述项目
2013-02-27 17:47:59
1007
转载 Java常用工具——几款性能分析工具的对比
在给客户进行应用程序维护的过程中,我注意到一些关于高负载条件下的性能问题。理论上,增加对应用程序的负载会使性能有所下降,但是我认为性能下降的比率远远高于负载的增加,同时我也发现,性能可以通过改变应用程序的逻辑来提升。为了更详细地了解这一点,我们需要做一些性能分析,这时,我们自然就要用到一些性能分析工具。Java有许多的性能分析工具,可以帮助我们弄清楚这个问题,但是我们应该使用哪一款工具呢?
2013-02-26 22:43:46
1085
原创 Java常用工具类——获取本机正在使用的网卡的MAC地址
Java的原生代码,通过java.net.NetworkInterface获取本机正在使用的网卡中的第一个,各平台通用,winows和SUSE Linux下测试正常(如果想获取所有的网卡MAC——通过isUp()方法来区分是否正在运作,或想获取所有正在使用的网卡的MAC,稍作改动即可)的MAC地址:import java.net.NetworkInterface;import java.
2013-02-18 11:43:56
8414
1
翻译 MINA2.0用户手册中文版--第六章 MINA中的传输 第二节 基于串行传输
在MINA2.0中,你可以使用串行传输进行连接,就像使用TCP通信那样。获取MINA 2.0可以下载最新版本的的MINA版本。如果想获取其他版本的MINA,如果有什么疑问,可以查看开发者手册。必要前提提示信息:如果想要通过Java程序访问串行端口,需要一个本地库(.DLL 或者 .so 取决于你的操作系统). MINA使用的是RXTX.org这个 : f
2013-01-01 22:08:13
2657
翻译 MINA2.0用户手册中文版--第六章 MINA中的传输 第一节 基于APR的传输
简介APR(Apache Protable Runtime Library,Apache可移植运行库)是可以提供很好的可拓展性、性能以及对底层操作系统一致性操作的技术。MINA中提供了APR的通信支持。在这部分,将通过使用一个时间服务器的例子,接触下如何基于APR通信使用MINA。必要前提APR通信依赖下面的组件:APR库 - 下载和安装相应平台的库http
2012-12-30 19:22:15
2996
翻译 MINA2.0用户手册中文版--第七章 MINA中的处理程序Handler
处理程序Handler负责处理MINA触发的所有I/O事件,在事件穿越过滤器链之后,IoHandler接口将会接手所有的事件。它提供如下方法:sessionCreatedsessionOpenedsessionClosedsessionIdleexceptionCaughtmessageReceivedmessageSentsessionCreated方法方法sessionCr
2012-12-28 16:49:07
5267
翻译 MINA2.0用户手册中文版--第五章 MINA中的过滤器
过滤器IoFilter是MINA核心结构之一,它扮演着一个很重要的角色。它可以过滤所有在MINA服务和对应处理程序之间的I/O事件和请求。如果你有编写Java网络应用程序的经验,你可以放心的把他当做Servlet过滤器的一个远亲。MINA提供了很多现成的过滤器,它们通过简化典型的横切关注点,来加快网络应用程序的开发步伐,例如:日志过滤器LoggingFilter记录所有事件和请求协
2012-12-23 21:39:55
7989
翻译 MINA2.0用户手册中文版--第四章 MINA中的Session
在MINA中,session处于核心地位:每当一个客户端连接到服务器上时,一个新的session就会被创建,它会被保存到内存中,直到客户端断开连接。Session被用来保存持久的连接信息,还会附加一些服务器在处理请求时可能需要的任何其他种类的信息,这些信息在session的整个生命周期中都是生效的。Session状态Session的状态会随着时间演变:已连接:ses
2012-12-22 01:15:09
7550
翻译 MINA2.0用户手册中文版--第三章 MINA的IO服务接口IoService
在MINA的应用架构一章中,我们曾提到过服务接口IoService,它是MINA中包含客户端和服务端的所有服务接口(补:各种Acceptor和Connector)的最顶层父接口。 它用来处理所有与远端对等的程序端的交互(补:如果作为服务端,则指的是与需要连接的服务端的交互;如果作为服务端,则指跟远端对等的客户端交互):发送和接收消息,管理session和连接等。 它
2012-12-19 17:09:15
2669
翻译 MINA2.0用户手册中文版--第三章 第四节 客户端接口IoConnector
要构建一个客户端,你必须选择一个IoConnector接口的实现类。IoConnector就像我们需要在服务器端实现IoAcceptor一样,我们需要在客户端中实现IoConnector。同样,我们提供了很多实现类:NioSocketConnector:非阻塞的基于TCP协议的IoConnector实现NioDatagramConector:非阻塞基于UDP协议的IoConne
2012-12-17 00:59:59
2707
pl/sql快捷插件
2009-11-12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人