自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

艺俊的博客

一只爱音乐的码农

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

原创 持续集成工具集之六 参考

Jenkins入门系列jenkins 构建触发器 区别使用jekins自动构建部署java maven项目(jdk1.7+tomcat7.0+jenkins2.19.3)自动化发布项目之jenkins + git + maven 自动化部署一个web项目

2017-04-20 16:52:12 300

原创 持续集成工具集之五 使用Email Extension Plugin插件

简述Jenkins默认提供了一个邮件通知,能在构建失败、构建不稳定等状态后发送邮件。但是它本身有很多局限性,比如它的邮件通知无法提供详细的邮件内容、无法定义发送邮件的格式、无法定义灵活的邮件接收配置等等。在这样的情况下,我们找到了Jenkins Email Extension Plugin。该插件能允许你自定义邮件通知的方方面面,比如在发送邮件时你可以自定义发送给谁,发送具体什么内容等等。配置它主要

2017-04-20 16:48:51 2545

原创 持续集成工具集之四 Jenkins+Maven+Git+Tomcat 项目构建和自动部署

上面安装和配置好Jenkins之后,就可以开始配置构建项目了新建因为需要构建的项目是maven项目,所以这里填好项目的名称之后选择“构建一个maven项目”,然后点左下的ok如果这里没有这个构建maven项目的选项的话,安装一个Maven Integration plugin的插件即可然后就会转到构建项目的配置页面需要配置的地方:源码管理因为我们的项目是由git来管理的,所以源码管理这里选择gir,

2017-04-20 16:47:25 805

原创 持续集成工具集之三 Jenkins配置

Jenkins安装完之后,需要做一些配置点击 系统管理–>Global Tool Configuration这篇文档主要测试实现Jenkins+Maven+Git+Tomcat实现自动部署,所以这里需要做一些配置,告诉Jenkins Maven这些工具是在哪个目录下好被调用Maven ConfigurationJDKMaven这里我就只做了上面的这些配置,其他的基本保持默认然后还需要设置下 系统管理

2017-04-20 16:45:41 423

原创 持续集成工具集之二 Jenkins安装

注:本文档是在windows下安装和配置先在Jenkins官网上下载一个Jenkis的windows installer下载解压后是一个msi文件,然后双击执行,按照提示安装好后,会在安装指定的地方生成一个Jenkins目录同时在这个目录下面我们可以看到有一个jenkins.war的文件这个文件就是安装jenkins的关键并且会在服务里面多出一个Jenkins的服务下面就是真正安装Jenkins了安

2017-04-20 16:44:46 553

原创 持续集成工具集之一 Jenkins简介

Jenkins 是一个可扩展的持续集成引擎。主要用于:持续、自动地构建/测试软件项目。监控一些定时执行的任务。Jenkins拥有的特性包括:易于安装-只要把jenkins.war部署到servlet容器,不需要数据库支持。易于配置-所有配置都是通过其提供的web界面实现。集成RSS/E-mail通过RSS发布构建结果或当构建完成时通过e-mail通知。生成JUnit/TestNG测试报

2017-04-20 16:43:25 4687

原创 WEB消息提醒实现之二 实现方式-websocket实现方式

websocket实现方式原理websocket的原理主要是,利用websocket提供的api,客户端只需要向服务器发起一次连接即可,然后服务器就可以主动地源源不断地向客户端发送数据,只要客户端不关闭浏览器,那么这个连接就会一直保持,从而达到真正意义上的长连接和服务器推。优点:只需要建立一次连接,服务器就可以源源不断地推送数据,资源消耗少,持久连接 缺点:需要浏览器支持websocket技术we

2017-04-20 16:37:24 20915 4

原创 WEB消息提醒实现之二 实现方式-基于Iframe的流方式

基于Iframe的流方式原理基于Iframe的流方式的原理主要是,在页面隐藏一个iframe,前台设定定时器修改iframe的src属性设为对一个长连接的请求,服务器返回对页面函数的调用,函数的参数为服务器处理的数据。Iframe的流方式的过程如下图:上节提到的 AJAX 方案是在 JavaScript 里处理 XMLHttpRequest 从服务器取回的数据,然后 Javascript 可以很方便

2017-04-20 15:17:56 3210

原创 WEB消息提醒实现之二 实现方式-Jquery Ajax长轮询

Jquery Ajax长轮询原理Jquery Ajax长轮询的原理主要是,前台客户端发送ajax请求到服务器,服务器接收到请求之后会保持住连接,直到有新消息才返回响应信息并关闭连接,客户端处理完响应信息后再向服务器发送新的请求。 优点:在无消息的情况下不会频繁的请求,耗费资源小。 缺点:服务器保持住连接会消耗资源。jquery ajax长轮询的过程如下图:可以看到,长轮询的关闭连接有两种情况:

2017-04-20 15:17:14 14141 8

原创 WEB消息提醒实现之二 实现方式-Jquery Ajax轮询

Jquery Ajax轮询原理普通的jquery ajax轮询的原理主要是,客户端通过定时器定时发送ajax请求到服务器,服务器获取数据后马上响应并关闭连接。普通的jquuery ajax轮询过程如下图:可以看到,每次请求都会到服务器中获取数据回来(不管数据有没有变化),然后关闭连接,再进行下一次的请求,如此反复。优点:后端程序编写比较容易。 缺点:请求中有大半是无用,浪费带宽和服务器资源。 实例要

2017-04-20 15:16:27 16485 2

原创 WEB消息提醒实现之一 背景

背景管理员发送消息给工作人员。消息推送给多个图书馆多套系统目标用户。所以需要实现实时的消息推送和消息提醒。分析实现实现该功能,需要在数据库中增加一张message表用来存放管理员发送给工作人员的消息。工作人员客户端需要实时到后台服务器获取最新的消息并返回前台进行提示。实现方式本文档主要研究总结以下几种方式来实现消息提醒:普通的jquery ajax轮询(polling)基于jquery a

2017-04-20 15:14:24 3286

原创 Tomcat配置Https

前言本文档主要是总结通过配置tomcat后,实现由原来的http访问改为https的访问方式本文档使用到的环境jdk1.7.0tomcat7.0.64开始着手配置先通过jdk自带的keytool工具生成证书先win+R打开cmd窗口,然后执行命令keytool -genkey -alias tomcat -keyalg RSA -keystore E:\sslkey\tomcat.keysto

2017-04-20 15:12:15 425

原创 Oracle全文索引之六 附:CONTAINS函数

oracle 中对于 CONTAINS 函数的用法出处:http://blog.csdn.net/youjunbin_2006/archive/2008/11/18/3330065.aspx查询住址在北京的学生SELECT student_id,student_nameFROM studentsWHERE CONTAINS( address, 'beijing' )remark: beijin

2017-04-20 15:08:34 4085

原创 Oracle全文索引之五 测试

测试在前面的基础上,myoracle用户下执行检索:select * from yu_test where contains(name,'重庆')>0结果:ID NAME 1 重庆市沙坪坝区 4 重庆市两江新区使用chinese_vgram_lexer分析器和chinese_lexer分析器比较执行如下sql查看不同分析器的分词情况:SELECT token_text, to

2017-04-20 15:08:09 380

原创 Oracle全文索引之四 维护

索引的维护对于CTXSYS.CONTEXT索引,当应用程序对基表进行DML操作后,对基表的索引维护是必须的。索引维护包括索引同步和索引优化。在索引建好后,我们可以在该用户下查到Oracle自动产生了以下几个表:(假设索引名为myindex): DRmyindexmyindexI、DRmyindexmyindexK、DRmyindexmyindexR、DRmyindexmyindexN其中以I表最重

2017-04-20 15:07:42 2945

原创 Oracle全文索引之三 检索

检索可以用contains来使用oracle的全文检索:select * from YU_TEST where contains(name,'重庆')>0; 这样查出来的数据是没有经过排序的,有时候我们的需求是按照关键字的匹配程度排序,使用下面的语句:select score(1),y.* from YU_TEST y where contains(name,'重庆',1)>0 order by

2017-04-20 14:28:04 391

原创 Oracle全文索引之二 创建

创建创建索引的准备工作测试环境在测试用户myoralce用户下执行:create table YU_TEST(       id number,        name varchar2(50)   );插入测试数据:insert into YU_TEST values(1,'重庆市沙坪坝区');  insert into YU_TEST values

2017-04-20 14:27:34 824

转载 使用Spring JDBC时遇到的Software caused connection abort: recv failed问题

在使用Spring jdbc连接数据库时遇到一个头疼的问题:程序启动以后,如果长时间不访问调用,当再次调用时会报错: 引用org.springframework.dao.DataAccessResourceFailureException: ConnectionCallback; SQL []; IO 错误: Software caused connection abort:

2017-04-20 12:23:16 4418

原创 Oracle全文索引之一 原理

原理Oracle实现全文检索,其机制其实很简单。即通过Oracle专利的词法分析器(lexer),将文章中所有的表意单元(Oracle 称为 term)找出来,记录在一组 以dr$开头的表中,同时记下该term出现的位置、次数、hash 值等信息。检索时,Oracle 从这组表中查找相应的term,并计算其出现频率,根据某个算法来计算每个文档的得分(score),即所谓的‘匹配率’。而lexer则是

2017-04-19 14:39:03 593

原创 ORACLE 11G DATA GUARD配置之配置过程

服务器环境virtualbox搭建的两台虚拟机,操作系统为Windows Server 2008 R2数据库为Oracle 11g配置前准备主库ip为192.168.0.17备库ip为192.168.0.47在安装oracle时,主库安装数据库,备库只安装软件(网上大多数都是这样说的,而我当时两台机器貌似已经都装上了oracle数据库,不过也没关系,只是后面配置路径的地方需要按照实际的安装之后的路径

2017-04-19 14:36:39 7403 1

原创 ORACLE 11G DATA GUARD配置之Dataguard基本原理

1、DATAGUARD原理 DATAGUARD是通过建立一个PRIMARY和STANDBY组来确立其参照关系。STANDBY一旦创建,DATAGUARD就会通过将主数据库(PRIMARY)的REDO传递给STANDBY数据库,然后在STANDBY中应用REDO实现数据库的同步。有两种类型的STANDBY:物理STANDBY和逻辑STANDBY 物理STANDBY提供与主数据库完全一样的拷贝(块到

2017-04-19 14:35:56 18918

原创 ORACLE 11G DATA GUARD配置之Dataguard简介

Oracle DataGuard是Oracle自带的数据同步功能,基本原理是将日志文件从原数据库传输到目标数据库,然后在目标数据库上应用这些日志文件,从而使目标数据库与源数据库保持同步,是一种数据库级别的高可用性方案。 DataGuard可以提供Oracle数据库的冗灾、数据保护、故障恢复等,实现数据库快速切换与灾难性恢复。在生产数据库的保证”事务一致性”时,使用生产库的物理全备份创建备库,备库会通

2017-04-19 14:34:58 3073

原创 nginx学习文档之三 参考

nginx 负载均衡时,一台tomcat宕机时的问题 自动切换

2017-04-19 14:32:50 371

原创 nginx学习文档之三 nginx常用命令

Nginx相关指令及配置nginx日常维护常用命令

2017-04-19 14:32:16 645

原创 nginx学习文档之二 配置负载均衡-负载均衡发现的问题

负载均衡发现的问题用了nginx负载均衡后,在两台tomcat正常运行的情况下,访问http://localhost 速度非常迅速,通过测试程序也可以看出是得到的负载均衡的效果,但是我们试验性的把其中一台tomcat(server localhost:8080)关闭后,再查看http://localhost,发现反应呈现了一半反映时间快,一半反映时间非常非常慢的情况,但是最后都能得到正确结果.解决办

2017-04-19 14:31:15 254

原创 nginx学习文档之二 配置负载均衡-linux配置负载均衡

linux配置负载均衡linux下配置tomcat负载均衡和windows下是一样的安装完nginx后直接修改conf下的nginx.conf文件即可配置文件如下:#user nobody;worker_processes 1;#error_log logs/error.log;#error_log logs/error.log notice;#error_log logs/err

2017-04-19 14:30:34 315

原创 nginx学习文档之二 配置负载均衡-windows配置负载均衡

windows配置负载均衡nginx+tomcat负载均衡的意思大概如下图:所有请求先经过nginx服务器,然后由nginx服务器进行转发,将请求根据配置需要分发给指定的tomcat服务器部署两个tomcat 8088和8084windows下部署两个tomcat的过程参考一台机器上安装两个tomcat然后分别给两个tomcat部署一个小应用,只是一个简单的页面index.jsp,表示区分是哪个to

2017-04-19 14:29:54 1333

原创 nginx学习文档之一 安装nginx-Linux下安装nginx

Linux下安装nginx下载nginx和相关组件先到nginx官网下载linux系统的nginx还需要下载nginx相关组件pcre:http://120.52.73.43/jaist.dl.sourceforge.net/project/pcre/pcre/8.38/pcre-8.38.tar.gzopenssl:https://www.openssl.org/source/openssl-1.

2017-04-19 14:28:49 339

原创 nginx学习文档之一 安装nginx-Windos下安装nginx

Windos下安装nginx下载nginx首先到nginx官网下载windows的稳定版本的nginx然后直接解压启动nginx在nginx的安装目录下直接双击nginx.exe或者在cmd下使用命令 start nginx然后我们就可以在浏览器里输入 localhost 验证nginx是否已经启动看到上面的欢迎页面就证明nginx已经启动了

2017-04-19 14:27:43 856

原创 Log4j配置学习文档之三 参考

log4j配置详解(非常详细)切分 Tomcat 的 catalina.out 文件,解决日志文件过大的问题tomcat下catalina.out日志文件分割Log4j的扩展-支持设置最大日志数量的DailyRollingFileAppender

2017-04-19 13:57:20 363

原创 Log4j配置学习文档之二 处理日滚文件-模拟实现

模拟实现定义监听器,监听器启动的时候初始化定时器监听器package com.tcsoft.license.util;import java.util.Calendar;import java.util.Date;import java.util.Timer;import java.util.TimerTask;import javax.servlet.ServletContextEvent;

2017-04-19 13:56:47 525

原创 Log4j配置学习文档之二 处理日滚文件-实现原理

实现原理处理系统自己log4j定义的日滚日志文件在系统中使用log4j中的RollingFileAppender和DailyRollingFileAppender可以实现日志文件的滚动,这里主要针对DailyRollingFileAppender产生的日滚文件做处理,因为DailyRollingFileAppender是每天都会滚动产生一个日志文件的(默认每天产生,DatePattern为’.’yy

2017-04-19 13:55:58 1133

原创 Log4j配置学习文档之一 log4j配置

Log4j配置Log4J的配置文件(Configuration File)就是用来设置记录器的级别、存放器和布局的,它可接key=value格式的设置或xml格式的设置信息。通过配置,可以创建出Log4J的运行环境。配置文件Log4J配置文件的基本格式如下:#配置根Loggerlog4j.rootLogger = [ level ] , appenderName1 , appende

2017-04-19 13:53:23 212

原创 Git学习文档之二 应用总结-参考

参考Pro Gitsvn 迁移到git下全过程

2017-04-19 13:50:56 161

原创 Git学习文档之二 应用总结-svn迁移到git

svn迁移到git在 Subversion,每个提交者在都在主机上有一个用户名,记录在提交信息中。如果想让这条信息更好的映射到 Git 作者数据里,则需要 从 Subversion 用户名到 Git 作者的一个映射关系。建立一个叫做 user.txt 的文件,用如下格式表示映射关系:schacon = Scott Chacon <schacon@geemail.com>selse = Someo

2017-04-19 13:50:07 297

原创 Git学习文档之一 学习文档-并行开发

并行开发集成管理员工作流由于 Git 允许使用多个远程仓库,开发者便可以建立自己的公共仓库,往里面写数据并共享给他人,而同时又可以从别人的仓库中提取他们的更新过来。这种情形通常都会有个代表着官方发布的项目仓库(blessed repository),开发者们由此仓库克隆出一个自己的公共仓库(developer public),然后将自己的提交推送上去,请求官方仓库的维护者拉取更新合并到主项目。维护者

2017-04-11 18:20:34 1733

原创 Git学习文档之一 学习文档-合并分支

合并分支新建分支执行下面命令新建并切换到分支:$ git checkout -b dev该命令相当于执行了下面的两条命令:$ git branch dev$ git checkout dev合并分支一般先切换回master分支再进行合并:$ git chekout master$ git merge dev删除分支dev分支开发完毕之后就可以删除掉了,执行下面的命令删除分支:$ git b

2017-04-11 18:18:34 186

原创 Git学习文档之一 学习文档-发布

发布如何发布发布实际上就是给commit打标签,人们在发布某个软件版本(比如 v1.0 等等)的时候,经常这么做列出现有标签运行下面命令显示现有的标签:$ git tag新建标签Git 使用的标签有两种类型:轻量级的(lightweight)和含附注的(annotated)。轻量级标签就像是个不会变化的分支,实际上它就是个指向特定提交对象的引用。而含附注标签,实际上是存储在仓库中的一个独立对象,它

2017-04-11 18:17:26 227

原创 Git学习文档之一 学习文档-上传下载

上传下载如何上传(推送数据到远程仓库)项目进行到一个阶段,要同别人分享目前的成果,可以将本地仓库中的数据推送到远程仓库。实现这个任务的命令很简单: git push [remote-name] [branch-name]。如果要把本地的 master 分支推送到 origin 服务器上(再次说明下,克隆操作会自动使用默认的 master 和 origin 名字),可以运行下面的命令:$ git pu

2017-04-11 18:16:14 322

原创 Git学习文档之一 学习文档-原理

原理文件的三种状态对于任何一个文件,在 Git 内都只有三种状态:已提交(committed),已修改(modified)和已暂存(staged)。已提交表示该文件已经被安全地保存在本地数据库中了;已修改表示修改了某个文件,但还没有提交保存;已暂存表示把已修改的文件放在下次提交时要保存的清单中。由此我们看到 Git 管理项目时,文件流转的三个工作区域:Git 的工作目录,暂存区域,以及本地仓库。每个

2017-04-11 18:13:36 309

空空如也

空空如也

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

TA关注的人

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