自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(48)
  • 资源 (5)
  • 问答 (3)
  • 收藏
  • 关注

原创 外部HTTP服务访问慢的Case

原文发布在:www.yangguo.info问题现象最近由于业务需求,重写了一套访问中航信IBE+的代理层。由于机票业务分为国内和国际两部分,这两部分都需要访问IBE+,之前是各自为战,各自都有一套访问逻辑。这样做的后果就是在流控(IBE+对QPS有一定的限制)和接口管理方面得不到很好的控制,因此才写了这样的一个代理层。这样的设计其实没有任何问题,在微服务和SOA大行其道的今天这都是主流...

2015-07-22 21:59:41 299

原创 关于JavaAgent的一点思路

原文我发布在:www.yangguo.info最近对Java的Profiling和Debugging非常感兴趣,特别是对线上问题的定位方案进行了较深的调研和分析。因为在SOA架构体系中线上问题经常在测试环境不能复现,所以问题的定位具有非常大的挑战。我将业界定位问题的工具和方案都大概的研究了一遍,不论是JProfiler、YourKit、BTrace,还是更底层的Serviceabili...

2015-07-22 21:48:05 345

WebSocket负载均衡方案

 原文地址:http://www.yangguo.info/2014/6/25/10.html 目标根据指定的key对websocket连接进行负载均衡,达到一致性哈希的效果。调度模式Haproxy,负载均衡调度模式有如下几种:roundrobin,表示简单的轮询,这个不多说,这个是负载均衡基本都具备的;static-rr,表示根据权重;least...

2014-06-19 21:16:27 1731

原创 GC开销的降低--netty4在Twitter的使用

netty的founderTrustin Lee发布在Twitter上的一篇博客,非常好,直接转。 The following text from Twitter    At Twitter, Netty (@netty_project) is used in core places requiring networking functionality.For ex...

2013-12-04 22:27:21 158

Linux服务器kernel tcp调优

原文地址:http://www.yangguo.info/2013/10/30/10.html[color=red]转载请注明出处![/color]最近一直在进行手机推送服务器的研发,代码采用Java实现。netty作为一个优秀基于NIO的客户、服务器端编程框架,当然是必选的。server的研发必然是充满血与泪的,除了要熟悉Java的NIO,还得对tcp的封包、拆包,协议的设计、对象的序列...

2013-10-30 22:59:51 182

Java happen before(JSR133)

相信对Java并发编程有所了解的人一定知道JMM,Java内存模型主要就是用来控制线程之间通信的,JMM决定了一个线程对共享变量的修改何时对别的线程可见。JMM定义了线程和主内存之间的抽象关系:线程之间的共享变量存储在主内存(main memory)中,每个线程都有一个私有的本地内存(local memory),本地内存中存储了该线程以读/写共享变量的副本。本地内存是JMM的一个抽象概念,并不真实...

2013-09-22 22:44:03 229

原创 Rebar:Erlang构建工具

这篇文章转载至量子恒道官方博客,链接如下:http://blog.linezing.com/2011/04/rebar%EF%BC%9Aerlang%E6%9E%84%E5%BB%BA%E5%B7%A5%E5%85%B7Rebar是一款Erlang的构建工具,使用它可以方便的编译、测试erlang程序、内联驱动和打包Erlang发行版本。Rebar是一个独立的erlang脚本,所以使用Re...

2013-08-24 20:09:09 174

原创 JVM最大Thread数量

原文地址:http://www.yangguo.info/2013/6/17/22.html最近研发推送方案,需要大量线程来模拟手机客户端。在模拟手机客户端的时候,单个JVM线程数量始终卡在一万多一点,然后就报如下的错误:”java.lang.OutOfMemoryError: unable to create new native thread“。我在网上找了很多资料,都是分析32位的,...

2013-06-17 16:39:20 367

原创 rabbitmq使用经验

消息队列在互联网公司肯定是必不可少的基础服务之一,最近我对各种消息队列进行了一番调研。我首先选择了在业界非常有名的rabbitmq进行尝试,rabbitmq的介绍我就不用再在此处费笔墨了。选择它主要是看重它出众的出队入队性能和稳定性,当然消息队列的高可用和消息的安全rabbitmq也做的相当好。下面就是我在尝试配置集群环境时的一些步骤和想法:1.安装erlang,很简单[code="s...

2013-01-08 00:22:09 154

原创 hadoop动态添加datanode和tasktracker

hadoop在线运行已经很长一段时间了,下面就是我在上下线datanode和tasktracker步骤。因为datanode节点不一定是tasktracker,即使datanode和tasktracker在同一节点,你也可能只上下线其中一个,所以我在配置dfs和mr的include和exclude的时候,分开配置。[size=x-large]namenode中hdfs-site.xml配置...

2012-11-30 14:27:52 188

原创 使用 screen 管理你的远程会话

你是不是经常需要 SSH 或者 telent 远程登录到 Linux 服务器?你是不是经常为一些长时间运行的任务而头疼,比如系统备份、ftp 传输等等。通常情况下我们都是为每一个这样的任务开一个远程终端窗口,因为他们执行的时间太长了。必须等待它执行完毕,在此期间可不能关掉窗口或者断开连接,否则这个任务就会被杀掉,一切半途而废了。元凶:SIGHUP 信号让我们来看看为什么关掉窗口/断开连接会...

2012-11-25 17:28:44 103

原创 JVM GC-----1

java经过这么多年的发展,已经成为相当成熟的技术,特别是在内存的动态分配与内存回收技术已经相当成熟,一切看起来都是如此的美妙和谐。那我们为什么还要了解GC和内存分配呢?这个我想不用多说大家都应该明白,正是java的这种自动化,这个对大多数程序员的黑盒,导致排查各种内存溢出和内存泄露问题,甚至成为系统达到高并发的瓶颈。当我们的程序在运行的过程中,程序计数器、虚拟机栈、本地方法栈都随线程而生...

2012-08-26 21:10:54 97

原创 nosql数据库(MongoDB)并发控制

MongoDB在我们的生产环境中已经大规模的使用,它的性能与稳定已经得到的充分的验证,稳定在线的时间已经有一年多了。在这个过程中的确给我们带来了很多性能上的优势,虽然它不像关系型数据那样有方便的join查询,但就目前我们的应用场景这些缺点(暂且把它当做缺点吧)都是可以接受的。最近在思考了下nosql数据库并发控制方面的问题,在此记录一下。   数据库的并发控制机制不外乎就两种情况:...

2012-05-19 23:03:42 553

How to build jzmq in Mac OS X Lion

作为一名在mac os平台上搞开发的java程序员来说,环境的配置有时候真的让人头大,虽然mac os平台跟linux有相似之处,但是毕竟不是linux。下面我主要是记录我在配置storm时遇见的一些问题,如果你在玩storm或者使用zeromq并且需要在mac os上安装jzmq的本地库,我想这篇文章对你是有一定用处的。 关于jzmq的安装网上文章很多了,我先不管别人是碰见神马问题,反正...

2012-04-27 00:16:44 223

原创 job jars fail on OS X due to case-insensitive name conflict on 'license'

本文解决的问题首先适用于如下人群:在mac上开发hadoop程序,并且适用maven来管理项目的广大程序猿们,如果你问题不适合该环境,可以绕道而行,当然如果你有兴趣阅读本文,欢迎。我想在mac上玩hadoop或者研究开发hadoop的果粉来说,碰见这个问题,一定让你很头大。用maven打的可执行jar包,在linux上运行的好好的,但是在mac上就是不行,并且报的错误如下:Exceptio...

2012-03-23 00:20:20 118

原创 远程调试

 作为一名苦逼的程序员,肯定遇见过程序在本地跑的非常好,但是一放到远程的服务器上就各种问题的情况,这个时候只有远程调试。远程调试就是通过远程服务器上的socket端口告诉本地的程序源码,执行了什么操作,然后对应的在本地显示出运行的信息。那么既然通过socket,那肯定需要socket连接,所以现在服务器启动应用服务器的端口监听,下面以tomcat为例。本文介绍两种防范,当然个人推荐第二种,...

2012-03-20 17:21:00 240

对map,hasttable的value进行排序

大家可能经常会遇到需要对map,hashtalbe进行排序的需求,并且会为此头疼。不多说,直接上代码: package com.ddmap.hadoop.db.util;import java.util.*;/** * Created by IntelliJ IDEA. * User: 杨果 * Date: 12-1-9 * Time: 上午10:50 ...

2012-01-09 11:16:22 111

原创 hadoop自定义InputFormat

本文转自:http://www.randyho.com/?p=41 接触hadoop一年多了,但是自己一直没有用hadoop写过什么程序。最近,由于项目需要,将一些文件转换成hadoop的MapFile。网上的例子基本是直接处理文本输入,自定义输入格式的见到两个,但是都是用的旧的API,用新API写的还没有,可能高手不屑于写这些。但是处理自定义输入是每个用hadoop的人都要学会才行的,因...

2011-11-03 23:15:12 126

原创 负载均衡

本文属于转载(http://weijie.blog.51cto.com/340746/74936),感谢作者的辛勤付出!   在单一的服务器上执行WEB应用程序有一些重大的问题,当网站成功建成并开始接受大量请求时,单一服务器终究无法满足需要处理的负荷量,所以就有点显得有点力不从心了。另外一个常见的问题是会产生单点故障,如果该服务器坏掉,那么网站就立刻无法运作了。不论是因为要有较佳的...

2011-09-29 15:49:52 115

原创 maven使用assembly打独立可执行jar包启动时报错(关于spring错误的解决方法)

错误如下:Configuration problem: Unable to locate Spring NamespaceHandler for XML schema namespace原因:assembly的一个bug.参见:http://jira.codehaus.org/browse/MASSEMBLY-360 原因是spring的多个jar包中都含有spring.handlers和sp...

2011-09-28 15:51:38 172

原创 在jar包中获得配置文件

在开发过程中,我们经常会遇到读取配置文件的情况,对于配置文件的读取,根据环境等情况又各有不同,一般情况下,如果从非jar包中使用相对/路径,比较简单,就不在累述了,而在很多情况下,我们需要把我们的class打包成jar文件,进行使用,这时就会发现,我们先前如果没有考虑到这些,可能就行不通了,那么,该如何解决呢?方法如下:有如下路径 :Web-info--|-->classes--->c...

2011-09-15 16:15:00 156

原创 告别获取不安全的相对路径-取当前类的Classpath(转)

特此申明:本文属于转载,感谢原作者的辛勤付出!(作者博客:http://blog.csdn.net/sunyujia)   1.new File(./xx.txt);或者是new File(xx.txt);这种方法实际上是和window操作系统有关系的,对批处理和Win32编程有研究的朋友知道,运行一个程序要让操作系统知道两点,1是文件存放的所在位置,2是文件的起始位置,这个起...

2011-09-15 13:47:55 139

原创 maven+jetty+eclipse实现调试

 这篇文章转自:http://www.blogjava.net/alwayscy/archive/2007/05/19/118584.html感谢原文作者的贡献。  Maven2代比1代改进很多,其中主要强调的是--它不仅仅是个依赖包管理器!开始先要推荐一个专讲Maven2的电子书给大家,对MAVEN学习相当有助益:Better Builds with Ma...

2011-07-16 00:07:16 86

原创 maven常用命令

初学maven即感受到其强大的便捷性,大体记录下maven的基础知识以备不时之需。常用命令为 :    mvn archetype:create :创建 Maven 项目    mvn compile :编译源代码    mvn test-compile :编译测试代码    mvn test : 运行应用程序中的单元测试    mvn site : 生成项目相关信...

2011-06-19 01:17:11 86

原创 window下Slik SVN的安装配置

 我相信各位都应该对SVN不会陌生吧,我相信绝大多数人都使用过,但是并不是人人都自己配置过SVN服务器。下面就是我配置SVN服务器的步骤,以及在配置过程中碰见的一些问题,在此记录,希望对你有所帮助。安装双击运行“配套安装程序”目录中Slik-Subversion-1.6.12-win32.msi,安装目录可自定义. 默认安装的目录: C:\Program Files\SlikSvn;...

2011-06-19 00:43:49 203

原创 Jackson 框架,轻易转换JSON

本文转载于:http://www.cnblogs.com/hoojo/archive/2011/04/22/2024628.html Jackson可以轻松的将Java对象转换成json对象和xml文档,同样也可以将json、xml转换成Java对象。前面有介绍过json-lib这个框架,在线博文:http://www.cnblogs.com/hoojo/archive/2011/...

2011-06-17 13:42:04 90

迷人的hessian

Hessian是一个由Caucho Technology开发的轻量级二进制RPC协议。和其他Web服务的实现框架不同的是,Hessian是一个使用二进制Web服务协议的框架,它的好处在于免除了一大堆附加的API包,例如XML的处理之类的jar包,这也就是为什么说它是一个轻量级的Web服务实现框架的原因,这个原因还在于手机上的应用程序可以通过Hessian提供的API很方便的访问Hessian的We...

2011-04-01 11:08:18 89

原创 Java远程通讯技术

本文属于转载,像原文作者表示敬意 在分布式服务框架中,一个最基础的问题就是远程服务是怎么通讯的,在Java领域中有很多可实现远程通讯的技术,例如:RMI、MINA、ESB、 Burlap、Hessian、SOAP、EJB和JMS等,这些名词之间到底是些什么关系呢,它们背后到底是基于什么原理实现的呢,了解这些是实现分布式服务框架的基础知识,而如果在性能上有高的要求的话,那深入了解这些技术背后的机制就...

2011-03-30 17:09:18 90

基于java bean的观察者模式(基于bean的事件)

观察者模式大家应该都很熟悉了,但是基于java bean的观察者模式不知道大家熟悉不!这个是我在看C3P0数据库连接池源码的时候发现的,现在就简要的记录一下,防止自己遗忘,同时给在看这篇文章的你一些帮助。这篇文章中涉及的接口和类是java.beans包下面PropertyChangeListener,PropertyChangeSupport,PropertyChangeEvent。这几个...

2011-03-24 13:51:55 429

webservice开发的一些心得体会

网络中关于webservice的帖子不及其数,憋人在这里只是记下一些自己开发的心得体会,如果在无意之中能够给你一些帮助,那将是我的荣幸。 本文主要讲AXIS2的开发。开发的步骤如下:1.书写业务逻辑;2.书写service.xml,描述公开的服务;3.发布。关于发布这里讲到两种发布的方式,一种是打成aar包扔到axis2的安装目录中发布,第二种是使用java本身的endpoint.pu...

2011-02-22 08:44:17 254

原创 Java注解

注解(Annotation) 为我们在代码中天界信息提供了一种形式化的方法,是我们可以在稍后某个时刻方便地使用这些数据(通过 解析注解 来使用这些数据)。 注解的语法比较简单,除了@符号的使用以外,它基本上与java的固有语法一致,java内置了三种注解,定义在java.lang包中。 @Override 表示当前方法是覆盖父类的方法。 @D...

2010-10-20 14:30:28 76

原创 org.hibernate.hql.ast.QuerySyntaxException is not mapped

我用Hibernate实现一个教师的登陆过程,当我在JSP的登陆页面输入姓名和密码,点登陆后,显示登陆失败页,在服务器里显示如下的错误信息org.hibernate.hql.ast.QuerySyntaxException: teachers is not mapped. [from teachers tea where tea.name=:teaName and tea.passwo...

2010-09-30 00:25:42 89

原创 java编程规则

包含了大量有用的建议,帮助大家进行低级程序设计,并提供了代码编写的一般性指导: (1) 类名首字母应该大写。字段、方法以及对象(句柄)的首字母应小写。对于所有标识符,其中包含的所有单词都应紧靠在一起,而且大写中间单词的首字母。例如: ThisIsAClassName thisIsMethodOrFieldName 若在定义中出现了常数初始化字符,则大写static fina...

2010-09-30 00:23:42 94

原创 使用JDBC连接SQL SERVER 2008的方法

使用JDBC连接SQL SERVER 2008,很多人都在问,我自己也测试几次,发现按照以前的方法连接会出现一点小问题。原因在于,SQL SERVER 2008采用了动态端口的机制,按照以前的方法连接会报告连接不了,其实端口写对了完全没有问题。连接方法如下:1,微软目前没有发布针对SQL Server 2008专用的JDBC驱动程序,使用SQL Server 2005 的就可以了,但是,需...

2010-09-30 00:22:29 106

原创 去除 struts2 标签中的自动生成的布局样式

struts2中包含了一些默认的模版文件($ {struts-core-2.06.jar}/template),其中有ajax/simple/xhtml等.查看struts.properties或$ {struts-core-2.06.jar}/org/apache/struts2/default.properties文件,其中有如下配置:struts.ui.theme=xhtml...

2010-09-30 00:21:30 80

原创 MySQL中文乱码问题

MySql5中文乱码的解决方法在使用MYSQL时,插入中文字符,经常会出现乱码,中文全被用?代替。出现这种情况的原因,多是字符集不匹配造成的。在MYSQL中,如果使用缺省的字符集,在建库、建表时,默认使用的是latin1字符集,为ISO 8859-1西欧字符集。插入中文字符时,与之不匹配,就会出现乱码。要解决此问题,就必须手动将数据库Server和Client的字符编码改为gb2312...

2010-09-30 00:20:40 81

原创 Oracle命名方法配置

命名方法配置目标:描述主机命名与本地服务名称解析之间的区别使用 Oracle Net Configuration Assistant 配置: 主机命名方法 本地命名方法 网络服务名排除简单连接出现的故障要点:1.命名方法概览客户机应用程序在试图连接数据库服务时,需要借助命名方法将连接标识符解析为连接描述符。Oracle Net 提供了五种命名方法:...

2010-09-30 00:19:55 669

原创 ORCL监听程序当前无法识别连接描述符中请求的服务

ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务解决方法:检查listener.ora文件 (oracle\product\10.2.0\db_1\NETWORK\ADMIN\listener.ora)SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = PLSExtProc)...

2010-09-30 00:19:10 105

原创 Oracle监听器配置

ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务解决方法:检查listener.ora文件 (oracle\product\10.2.0\db_1\NETWORK\ADMIN\listener.ora)SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = PLSExtProc)...

2010-09-30 00:18:14 182

原创 spring事务管理的五种配置

根据代理机制的不同,总结了五种Spring事务的配置方式,配置文件如下: 第一种方式:每个Bean都有一个代理 ...

2010-09-30 00:17:28 83

精通javaee项目案例 刘乃红 网上书店系统

此乃 《精通JavaEE 项目案例》 一书 的 代码 和 数据库, 希望能对大家学习有所帮助,那本书 我买了,正在学习中.......

2010-03-05

聊天室源代码(struts2+spring+hibernate)

16.3 系统功能预览 16.3.1 选择聊天室网上临时聊天功能 16.3.2 注册成永久用户功能 16.3.3 以永久用户登陆选择聊天室聊天功能 16.3.3 创建临时聊天室进行聊天功能 16.3.4 管理员修改公开聊天室功能 16.3.5 管理员删除公开聊天室功能 16.3.5 管理员管理黑名单-限制IP地址登陆功能 16.3.6 管理员管理永久用户功能 16.4 系统分析 16.4.1 系统功能模块划分 16.4.2 系统流程分析 16.5 系统设计 16.5.1 数据库逻辑结构设计 16.5.2 创建数据库 16.5.3 创建表的脚本文件 16.5.4 目录和包结构 16.5.5 定义HibernateUtil 16.5.6 定义Spring配置 16.5.7 DAO数据层设计 16.6 界面设计及实现 16.6.1 选择聊天室首页界面 16.6.2 用户聊天界面 16.6.3 永久用户注册界面 16.6.4 永久用户登陆界面 16.6.5 永久用户创建临时聊天室界面 16.6.6 管理员管理黑名单界面 16.6.7 管理员管理聊天室界面 16.6.8 管理员管理永久用户界面 16.7 数据层代码实现 16.7.1 创建对象/关系映射文件 16.7.2 创建持久化类 16.7.3 创建实现DAO模式的公用部分 16.8 功能代码实现概述 16.9 选择聊天室网上临时聊天功能 16.9.1 聊天功能的逻辑设计 16.9.2 配置Struts 16.9.3 创建模型ChatInfo 16.9.4 聊天功能 16.10 注册成永久用户功能 16.10.1 注册功能的逻辑设计 16.10.2 配置Struts 16.10.3 创建模型UserInfo 16.10.4 聊天功能 16.11 以永久用户登陆选择聊天室聊天功能 16.11.1 登陆功能的逻辑设计 16.11.2 配置Struts 16.11.3 创建模型LoginInfo 16.11.4 登陆功能 16.12 创建临时聊天室进行聊天功能 16.12.1 添加临时聊天室功能的逻辑设计 16.12.2 配置Struts 16.12.3 创建模型LoginInfo 16.12.4 添加临时聊天室功能 16.13 管理员管理公开聊天室功能 16.13.1 管理员管理公开聊天室功能的逻辑设计 16.13.2 配置Struts 16.13.3 创建模型ChatRoomInfo 16.13.4 创建公开聊天室的数据访问对象ChatRoomDAOImp 16.13.5 查看公开聊天室列表功能 16.13.6 添加公开聊天室功能 16.13.7 删除公开聊天室功能 16.13.8 编辑公开聊天室信息功能 16.14. 管理员管理黑名单-限制IP地址登陆功能 16.14.1 登陆功能的逻辑设计 16.14.2 配置Struts 16.14.3 创建模型ChatRoomInfo 16.14.4 限制IP地址功能 16.15 管理员管理永久用户功能 16.15.1 登陆功能的逻辑设计 16.15.2 配置Struts 16.15.3 创建模型UserInfo 16.13.5 查看永久用户列表功能 16.15.4 限制ID登陆功能 16.15.4 限制IP地址发言功能 16.16 运行工程 16.16.1 开发平台 16.16.2 创建工程 16.16.3 运行工程 16.17 本章小结

2010-03-05

ssh2整合 学籍管理

自己整合的ssh2,希望对大家有所帮助。

2009-10-18

Servlet与JSP核心编程

读者是对JAVA有了基本的了解,蛋对服务器端的应用了解甚少,甚至是完全不懂的的人,都可以看懂。

2008-09-29

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

TA关注的人

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