- 博客(122)
- 资源 (2)
- 收藏
- 关注
原创 基于Redis实现---分布式锁与实现
概述目前几乎很多大型网站及应用都是分布式部署的,分布式场景中的数据一致性问题一直是一个比较重要的话题。分布式的CAP理论告诉我们“任何一个分布式系统都无法同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance),最多只能同时满足两项。”所以,很多系统在设计之初就要对这三者做出取舍。在互联网领域的绝大多数的场景中,都需
2017-08-31 22:52:28 559 5
原创 多线程----Future
Guava为Java并行编程Future提供了很多有用扩展,其主要接口为ListenableFuture,并借助于Futures静态扩展。继承至Future的ListenableFuture,允许我们添加回调函数在线程运算完成时返回值或者方法执行完成立即返回。对ListenableFuture添加回调函数:Futures.addCallback(ListenableFuture
2017-08-31 22:35:26 3291 2
原创 redis---skiplist
有序表的搜索有序表: 从该有序表中搜索元素 ,需要比较的次数分别为 ,总共比较的次数为 2 + 4 + 6 = 12 次。有没有优化的算法吗? 链表是有序的,但不能使用二分查找。类似二叉搜索树,我们把一些节点提取出来,作为索引。得到如下结构: 这里我们把 提取出来作为一级索引,这样搜索的时候就可以减少比较次数了。 我们还可以再从一级索引提取一些
2017-07-31 22:45:02 614 2
原创 liunx 优化及性能调优
cpu 性能瓶颈 计算机中,cpu是最重要的一个子系统,负责所有计算任务;基于摩尔定律的发展,cpu是发展最快的一个硬件,所以瓶颈很少出现在cpu上;我们线上环境的cpu都是多核的,并且基于SMP(symmetric multiprocessing)结构的。通过观察线上机器cpu使用率会发现,使用率很低很低,不到5%; 说明我们的资源浪费情况多么严重啊;(但
2017-07-30 21:59:31 453 3
原创 linux--常用网络命令
hostnamehostname 没有选项,显示主机名字hostname –d 显示机器所属域名hostname –f 显示完整的主机名和域名hostname –i 显示当前机器的ip地址pingping 将数据包发向用户指定地址。当包被接收,目标机器发送返回数据包。ping 主要有两个作用:用来确认网络连接是畅通的。用来查看连接的速度信息。
2017-06-28 21:25:30 577 2
原创 jvm原理
1. 什么是JVM?JVM是Java VirtualMachine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收堆和一个存储方法域。JVM屏蔽了与具体操作系统平台相关的信息,使Java程序只需生成在Java虚拟机上运行的目标代码
2017-06-28 21:18:09 538 3
原创 Hive本地模式安装
Apache Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的SQL查询功能,可以将SQL语句转换为MapReduce任务进行运行。 其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。Hive有三种运行模式: 1.内嵌模式:将元数据保存在
2015-08-31 21:58:59 786 5
原创 多线程同步、锁、通信
一、线程同步 当多个线程访问同一个数据时,非常容易出现线程安全问题。这时候就需要用线程同步 Case:银行取钱问题,有以下步骤: A、用户输入账户、密码,系统判断是否登录成功 B、用户输入取款金额 C、系统判断取款金额是否大于现有金额 D、如果金额大于取款金额,就成功,否则提示小于余额 现在模拟2个人同时对一个账户取款
2015-08-31 21:48:53 792 6
原创 ehcache memcache redis
Ehcache在java项目广泛的使用。它是一个开源的、设计于提高在数据从RDBMS中取出来的高花费、高延迟采取的一种缓存方案。正因为Ehcache具有健壮性(基于java开发)、被认证(具有apache 2.0 license)、充满特色(稍后会详细介绍),所以被用于大型复杂分布式web application的各个节点中。什么特色?1. 够快Ehcache的发行有一
2015-07-31 21:51:01 676 4
原创 liunx vim操作
vi/vim 基本使用方法 vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器,这里只是简单地介绍一下它的用法和一小部分指令。由于对Unix及Linux系统的任何版本,vi编辑器是完全相同的,因此您可以在其他任何介绍vi的地方进一步了解它。Vi也是Linux中最基本的文本编辑器,学会它后,您将在Linux的世界里畅行无阻。1、vi的基本概念
2015-07-31 21:46:28 671 4
原创 eclipse hadoop远程调试
一、插件安装我用的hadoop-2.6.0,插件下载地址下载后扔到eclipse/dropins目录下即可,当然eclipse/plugins也是可以的,前者更为轻便,推荐;重启Eclipse,即可在透视图(Perspective)中看到Map/Reduce二、配置点击蓝色的小象图标,新建一个Hadoop连接:注意,一定要填写正确,修改了某些端口,以及默认运行的
2015-07-31 21:39:47 947 3
原创 httpd+wildfly jboss集群搭建
一、准备工具 jboss wildfly8.2 下载地址:http://wildfly.org/downloads/ apache http server2.2 下载地址:http://httpd.apache.org/download.cgi 自备两台pc机 二、jboss安装与配置 解压wildfly8
2015-07-31 21:02:52 2622 5
原创 jboss配置使用JMS消息队列
在JBoss服务器上创建消息队列我们可以使用如下4种方式创建消息队列:Management ConsoleManagement CLI部署*-jms.xml 文件到 deployments目录编辑JBoss配置文件使用Management Console创建消息队列1. 启动具有消息功能的JBoss,即启动JBoss时使用-c 或 --server-config= 指向
2015-06-30 22:18:04 5576 5
原创 jbpm6 开发环境搭建
一、软件下载 1. eclipse 下载地址:http://www.eclipse.org/downloads/ 2.jbpm6.2 Installer 下载地址: http://www.jbpm.org/download/download.html二、插件工具安装 1. eclipse安装
2015-06-28 19:38:13 5772 2
原创 hibernate envers
在项目中尝试使用Envers对实体加入版本控制,以达到对实体更动进行监控的目的。 Hibernate Envers版本:envers-1.2.2.ga-hibernate-3.3 Envers部分功能: 支持JPA规范中定义的所有映射关系支持Hibernate中扩展自JPA规范的映射关系,如自定义类型,"简单类型(String, Integer等)"的集合
2015-04-30 23:57:39 3538 21
原创 J2EE----JMS
1、JMS是一个由AS提供的Message服务。它能接受消息产生者(Message Provider)所发出的消息,并把消息转发给消息消费者(Message Consumer)。2、JMS提供2种类型的消息服务:(1)Queue,即点对点,每个消息只转发给一个消息消费者使用。(2)Topic,即发布和订阅,每个消息可以转发给所有的订阅者(消费者)。3、jboss下的JMS配置: (
2015-03-31 14:53:38 1537 29
翻译 Java EE CDI bean生命周期介绍
这篇博客主要介绍CDI提供的不同bean的生命周期及在项目中如何使用它们。介绍当一个bean被CDI初始化时,这个bean通常会有自己的作用域。而赋予它的作用域通常就会决定了这个bean的整个生命周期。CDI提供的bean的生命周期:作用域描述ApplicationScoped当我们使用一个作用域被定义为应用程序范围内的bean时那就意味着整个bea
2015-03-31 11:27:24 3513 16
翻译 J2EE CDI beans部署在独立的jar包中
本篇博客主要介绍,CDI开发中,将所有的CDI Bean打包到一个jar包中,如何解决org.jboss.weld.exceptions.DeploymentException: WELD-001408 Unsatisfied dependencies for type [...] with qualifiers [@...] at injection point ... 异常。介绍
2015-03-30 16:11:31 3441 10
翻译 Tomcat-----CDI编程实例
这篇教程主要介绍如何在Tomcat中configure Contexts and Depedency Injection.介绍 由于Tomcat并不是一个JavaEE服务器,所以为了使Tomcat获得对CDI的支持必须手动添加一些依赖类库。接下来主要是CDI开发的一些配置和一个简单的CDI实例。开发环境1.Ubuntu 12.042 JDK 1.7.0.093.
2015-03-28 16:11:12 2442 8
原创 Context Depedency Injection(一)
一、概述 CDI是JavaEE6中对java 依赖注入控制反转以及面向切面编程提出的新的标准和规范。CDI受流行的依赖注入(DI)和面向切面编程的影响,各种实现没有统一的规范,需要有这么一套标准或者规范去约束java在DI和AOP方面的编程,目的是将来可以在这基础上继续定制统一的规范和标准。DI和Aop作为许多java 框架的基础,CDI的出现会使得他们成为更高一级技术标准和规
2015-02-28 16:03:47 1609 9
原创 JBPM6——Hello World
一、下载从http://sourceforge.net/projects/jbpm/files/jBPM%206/jbpm-6.1.0.Final/选择下载jbpm-6.1.0.Final-installer-full.zip,解压,解压完成org.drools.updatesite-6.1.0.Final.zip位于jbpm-installer/lib目录下。解压jbpm-insta
2015-02-27 20:19:39 5765 7
转载 CDI基本概念
概述如果说EJB,JPA是之前JEE(JEE5及JEE5之前)中里程碑式的规范,那么在JEE6,JEE7中CDI可以与之媲美,CDI(Contexts and Dependency Injection),即上下文依赖注入,它是众多JEE规范中的一个,从JEE6开始CDI正式成为JEE规范,但CDI相关的概念不是新的,依赖注入的概念已经存在了许多年,相关的流行框架包括Spring,Googl
2015-02-27 16:08:56 5049 6
原创 JNDI
一、JNDI概述 JNDI,Java Naming Directory Interface,J2EE的标准之一,所有的J2EE容器都必须提供一个JNDI的服务。它是SUN公司提供的一种标准的Java命名系统接口,JNDI提供统一的客户端API,通过不同的访问提供者接口JNDI服务供应接口(SPI)的实现,由管理者将JNDI API映射为特定的命名服务和目录系统,使得Java
2015-02-26 20:18:08 3021 9
原创 jsp自定义标签
开发和使用JSP自定义标签过程:一、开发标签实现类. HelloTag_Interface.java文件内容:import javax.servlet.jsp.tagext.Tag;import javax.servlet.jsp.PageContext;import javax.servlet.jsp.JspException;import java.io.*
2014-12-31 20:09:09 1233 13
原创 maven 项目pom配置
一、什么是pom? pom作为项目对象模型。通过xml表示maven项目,使用pom.xml来实现。主要描述了项目:包括配置文件;开发者需要遵循的规则,缺陷管理系统,组织和licenses,项目的url,项目的依赖性,以及其他所有的项目相关因素。 二、基本内容:POM包括了所有的项目信息。maven 相关:pom定义了最小的maven2元素,允许groupId,a
2014-12-31 19:55:03 1960 15
原创 svn branch 创建分支
一.意义 创建分支的意义,比如我们在一个基础平台上进行开发,每个技术小组负责一个子项目,而基础平台也是有可能会继续更改的,这个时候,如果不创建分支,子项目之间会相互影响,影响最大的就是后期的测试和版本发布,子项目A已经结束,但测试却受到正在进行的子项目B的影响,测试通不过,就别说版本发布了。所以,我们需要从目前的项目(主干trunk)中创建分支(branch),隔离子项目间的相互影
2014-12-31 17:41:19 16152 27
原创 jboss7 ClassNotFoundException
一、jboss老版本部署项目 1.将数据源需要的jar包放到jbosshome\server\default\lib下,copy数据源配置文件到部署目录jbosshome\server\default\deploy. 2.将需要的第三方jar包放到jbosshome\server\default\lib下. 3.将项目产生的jar包或war包部署到jbossho
2014-11-30 15:49:25 5601 15
原创 springmvc与ejb整合
一、企业开发模式 目前javaEE应用的开发方式大致可以分为两种:一种以Spring、Hibernate等开源框架为基础即所谓的轻量级JavaEE应用;另一种则以EJB3+JPA为基础配合一些前端框架如JSF、struts2、SpringMvc等等的经典JavaEE开发模式。由于EJB2.0使用相对比较复杂,目前使用的情况来说很多企业基本上使用的是ssh架构,EJB3.0做了改善之后开
2014-11-30 14:16:51 6269 17
原创 jboss7 配置Oracle数据源
一、jboss7 目录结构 在 JBoss 7 中,文件系统分为两部分:1. 独立服务器2. 域服务器 (这是 JBoss 7 首次引入的) — 用于统一的管理多个实例BIN: 包含启动的脚本,用来启动独立服务器(如果使用独立实例的话)或者域(使用域服务器) DOCS: 包含服务器文档,有两个子目录,分别是 Licenses (licenses.x
2014-11-30 13:27:06 4277 14
原创 JBPM与ssh整合
要想整合ssh与jbpm,首先需要对jbpm有个整体的了解和认识。研究过JBPM的人都知道,JBPM在操作流程时,一切都是基于ProcessEngine对象,所以整合的思路很简单,第一步只要我们能让Spring创建出ProcessEngine,通过spring容器管理ProccessEngine对象。第二步JBPM在管理流程时,是需要数据库表的支持的,整合jbpm与ssh的第二步就是将jbpm的数
2014-10-31 20:14:41 3056 15
原创 JBPM——MyEclipse开发环境搭建
刚开始接触JBPM不知道怎么在项目中应用,查了一些资料,大致对JBPM的开发有了一些了解。首先JBPM是JBoss企业中间件平台的一个组成部分,是一个灵活的,易扩展的工作流管理系统,只不过这个系统不像其他web系统那样需要我们部署到服务器上,如果我们要使用JBPM我们还需要JBPM的环境生成一些必要的文件,然后调用接口和方法才能使用。一、工作流接口 JBPM工作流管理系
2014-10-27 11:48:20 4063 30
原创 JBPM——工作流概念
一、概念 工作流(Workflow),就是“业务过程的部分或整体在计算机应用环境下的自动化”,它主要解决的是“使在多个参与者之间按照某种预定义的规则自动进行传递文档、信息或任务的过程,从而实现某个预期的业务目标,或者促使此目标的实现”。具体的说工作流表达了一个抽象的流程定义,之所以说是抽象,因为它没有表示确切的执行者,比如某借款人被具体化为张三,部门主管成为张三的部门经理李四,
2014-10-21 08:23:09 2242 18
原创 回顾 2013-2014
软考 回头翻过一篇篇博客,2013.9-2013.11系统复习准备软考,说长不长说短不短的两个月学的东西很多。与其说是学习不如说是一个大总结,软考中的内容涉及到了几乎所有学过的知识,不管是专业课学过的还是提高班学的,统统出现在了软考大纲中,这就不得不把这些内容复习、总结一下。第二遍学习总结跟第一次就是不一样。 还记得当初专业课上的java、数据结构、算法、编
2014-09-15 09:31:03 1010 25
原创 Hibernate 延迟加载
一、延迟加载定义 延迟加载,也叫懒加载,它是Hibernate为提高程序执行效率而提供的一种机制,即当只有真正使用该对象的数据时才会创建。说白了,所谓的延迟加载不是在load的时候去数据库加载数据,而是当我在应用程序中真正使用该数据时Hibernate才去查询、加载相应的数据。二、延迟加载实现原理 Hibernate中主要是通过代
2014-08-31 20:39:52 2017 30
原创 EA+svn实现UML的版本控制
一.安装软件 1.VisualSvn Server svn服务器 2.Tortoise Svn svn客户端 3.Slik-Subversion-1.7.8-x64版本控制插件 4.Enterprise Architect二.设置EA版本控制 1. 建一个文件夹作为EA的工作空间 2. 使用SVN检出已有的ea项目到新建的EA
2014-08-28 16:44:57 5400 30
原创 面向切面编程——Aop
一、概念 AOP(Aspect-Oriented Programming,面向切面的编程),它是可以通过预编译方式和运行期动态代理实现在不修改源代码的情况下给程序动态统一添加功能的一种技术。它是一种新的方法论,它是对传统OOP编程的一种补充。二、Aop原理 1.面向对象编程模型 OOP(面向对象编程)
2014-08-16 20:36:03 2175 28
原创 Spring——IoC原理
一、概念 IoC是Inversion of Control的缩写,有的翻译成“控制反转”,还有翻译为“控制反向”或者“控制倒置”。二、什么是IoC IoC就是IoC,不是什么技术,与GoF一样,是一种设计模式。在Spring中控制反转是Spring框架的核心,其原理是基于OO设计原则的:Don't call us,we'll call you(
2014-07-29 21:52:38 1725 25
原创 struts2中Action访问servlet的两种方式
一、IoC方式 在struts2框架中,可以通过IoC方式将servlet对象注入到Action中,通常需要Action实现以下接口: a. ServletRequestAware: 实现该接口的Action可以直接访问Request对象,该接口中提供void setServletRequest(HttpServletR
2014-07-26 21:11:37 11096 19
原创 整合struts2+spring+hibernate
一、准备struts2+spring+hibernate所需要的jar包: 新建web项目并将jar包引入到工程项目中。二、搭建struts2环境 a.在web项目的web.xml中加入struts2的过滤器,以过滤用户的所有请求,该过滤器将请求交给对应的Action处理 。 Struts2
2014-07-23 20:50:31 1862 21
原创 透过项目谈需求分析
背景 参与人事档案管理系统将近一年了,这一年中通过这个项目发现了许多问题,不管是在软件设计方面还是在团队合作方面以及在与用户交流获取需求的过程中暴露出了许多问题,也学到了许多东西,今天主要总结一下在需求分析上的问题与收获。供需交流困难 在软件生存周期中,其它四个阶段都是面向软件技术问题,只有需求分析阶段是面向用户的。需求分析是对用户的业务活动进行分析,明确在
2014-06-25 22:12:04 1582 29
数据结构-——矩阵转置
2012-07-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人