- 博客(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项目案例 刘乃红 网上书店系统
2010-03-05
聊天室源代码(struts2+spring+hibernate)
2010-03-05
TA创建的收藏夹 TA关注的收藏夹
TA关注的人