
opensource
文章平均质量分 80
cywhoyi
这个作者很懒,什么都没留下…
展开
-
数据处理基于DataMicroservices实现
背景:谈到微服务化,肯定会想到容器,谈到java的微服务化,势必也想到spring cloud,但是谈到数据微服务化,可能或多或少大家不太理解。Data Microservices被提出来,是要解决现在数据时代下,需要解决如下几个痛点问题,不分先后次序:数据来源错综复杂,mq、rest、jdbc、log等数据的信息结构复杂多样化数据量很大,想象下爬虫、电商平台、新零售等容器...2017-12-29 13:45:48 · 307 阅读 · 0 评论 -
Java 8: From PermGen to Metaspace
As you may be aware, the JDK 8 Early Access is now available for download. This allows Java developers to experiment with some of the new language and runtime features of Java 8. One of these feature...原创 2013-10-13 11:19:09 · 181 阅读 · 0 评论 -
轻量级的对象池
Pool在N多环境下碰到,比如连接池、线程池、缓存池...当某一对象从池中取得,那只有等待被用完放回去以后,其它的线程才能再次从池中获取。对象在池中是具有自己生命周期:创建、验证、使用、销毁等等。Pool的方式也许是最好的方式用来管理同一的资源。 运用的场景:高频率的运用同一的资源对象大且很消耗内存(DB连接)需要长时间的初始化IO消耗大对象非线程安全 A...2013-10-10 16:32:57 · 119 阅读 · 0 评论 -
介绍些不主流的Collection的工具
Common DefinitionsFirst, let’s start with some definitions. In common usage of the word, a queue is FIFO (first-in-first-out). Just like the first person in line at the post office gets served firs...原创 2013-10-10 10:48:27 · 95 阅读 · 0 评论 -
Spring Cacheable
缓存已经在我们的系统中成为性能提升最重要的方式,页面级缓存、系统级缓存、数据缓存、数据库内置缓存等等一些列缓存操作,今天要告诉大家spring其实也提供缓存,当然它只支持单点缓存,所以被忽略,局限性比较大,其实N多种框架都是带有缓存。不过最近JavaOne最近一次的大会上,提到如何办到单机下性能最优化,其实包括国内点评网在内的以java为核心技术的互联网公司为了省成本,其实也在最大限度发挥单机的...2013-10-01 21:43:30 · 239 阅读 · 0 评论 -
String JVM memory internals
有时候也会面试别人,也会被别人面试,问题基本上都会牵扯到String案例,例子都会牵扯到hashcode、equal这些,但是回答的时候基本上是照本宣科的方式应付,今天给大家普及下一些基础String JVM memory internals,以便于大家能够在基础方面有点不一样回答,给面试官留下深刻印象。因为在类的编译中会使用到javap -c -verbose,最好大家能够预先普及下知识...2013-09-27 11:24:31 · 120 阅读 · 0 评论 -
Batching Opertaion
我们常常说Batching(批量增加、批量操作...),那么Batching会增加延迟性,特别针对于本身延迟比较low的系统。但是从我跟人角度来说,如果Batching的算法如果做得好,不仅会带来吞吐量的增加,而且也降低整个系统的延迟性。在我们的网络传输时候,经常采用把messages/even捆绑在一起形成数据包,然后提高网络传输的吞吐量,同样我们也会类似的方式在系统中IOPS来帮助...2013-09-27 10:06:46 · 140 阅读 · 0 评论 -
通过IO和NIO对于文件的copy
ExecutorService是非常好用的并发工具,在并行的环境下我们经常通过ExecutorService去回调执行任务。ExecutorService的任务机制 我现在有一本鸟哥私房菜的Linux书籍大约80M,我想通过3种方式(IO、NIO、NIO buffer),期待是在80ms内完成。Solution 1: Stream Copy public static v...2013-09-26 14:38:11 · 120 阅读 · 0 评论 -
Core Java Interview Questions Answers in Finance domain Read more: http://javar
1. What is immutable object? Can you write immutable object?Immutable classes are Java classes whose objects can not be modified once created. Any modification in Immutable object result in new o...原创 2013-09-25 14:05:47 · 177 阅读 · 0 评论 -
File Serialization的加速度
File读写是我们经常对于File处理经常需要动作,接下来我会用4中方式进行操作,具体在项目中采用哪一种方式,由自己进行判断。最近在Thomas Nagel《What Does It All Mean》,摘录开头一段话:要评估每一种主张,每一条论证和每一套理论,并且尝试着判断它们是否可以被接受,这最终都依赖于每一个人的独立思考,而非听命于权威2B青年方式: private s...2013-10-17 17:10:27 · 115 阅读 · 0 评论 -
TOMCAT的Session管理
session的管理器的大概设计思路 那么接下来看下tomcat如何实现session的发送到集群上其他点,有两种方式一种是NIO,一种普通socekt2014-04-01 16:20:06 · 94 阅读 · 0 评论 -
扩展下Object Pool的设计
首先需要了解些java并发教程,其实java也是可以通过native的本地方法去操作底层api的,比如大家所知道Aomic、CAS等概念性的操作。下面一篇文章是来源于优快云的觉得挺好的讲关于unsafe的[url=http://blog.youkuaiyun.com/aesop_wubo/article/details/7537278]http://blog.youkuaiyun.com/aesop_w...原创 2013-10-30 10:00:42 · 116 阅读 · 0 评论 -
Vertx与Spring配合完成DML操作
前言vertx相较于Tomcat不同之处引用oschina上关于vertx的文章,感觉他说得非常明白,不在这里过多讨论,这里我简单说明下如何在vertx和spring配合完成基础任务。 服务启动: public static void main( String[] args ) { ApplicationContext context = new Ann...2015-10-29 14:26:58 · 702 阅读 · 0 评论 -
异常处理
首先提倡下Hibernate的验证器,功能强大且使用方面,Hibernate Validator提供包括国际化,传统的字符空,非法的输入等,而且给了很友善的message信息。public class BeanValidators { /** * 调用JSR303的validate方法, 验证失败时抛出ConstraintViolationException, 而不是返回con...2015-10-08 16:12:54 · 188 阅读 · 0 评论 -
Spring自定义拦截器配置
前言:公司生产环境频频被报性能瓶颈问题,为了找出问题的所在,现有的很多种方式能够解决,但是为了能够观测到具体的方法,我们想通过拦截那种耗时的方法,然后插入数据库,后台支撑系统能够实时的观察... 为了上述描述的结果,我们采用spring拦截器的方式,通过stopwatch的观察者模式,通过方法进入和方法退出来计算方法调用整个耗时情况 package spring.lifecy...2015-09-27 10:02:49 · 213 阅读 · 0 评论 -
DDD分布式架构设计的BASE一致性
问题背景: 在DDD的架构设计中最难以解决的就是一致性问题,所以我采纳是BASE的最终一致性的方式,至于最终一致性的概念,不在本博客中阐述,设计理念,不外乎就是弥补的方式。 可用性,无论是传统架构还是CQRS架构,都可以做到高可用,只要我们做到让我们的系统中每个节点都无单点即可。但是,相比之下,我觉得CQRS架构在可用性方面,我们可以有更多的回避余地和选择空间...2016-08-09 16:32:27 · 536 阅读 · 0 评论 -
支持分布式的callback
项目背景: 之前在某次培训的分享中,谈到rxjava、vertx等开源框架,也了解到callback概念,在分享的中某位童鞋谈到分布式下callback如何处理,说实话在当时的环境能够通过几句话描述callback都比较困难,更何况描述分布式下的callback,所以本文我想通过基于jgroup的方式,更好阐述我的理解如何处理分布式下的callback。 ...原创 2016-08-03 13:10:08 · 261 阅读 · 0 评论 -
基于DDD的微服务架构设计
DDD领域驱动设计(DDD:Domain-Driven Design)架构背景: 现有的架构设计实在受不了,业务的反反复复地变化,导致代码圈复杂度之深让人恐惧。之前的微服务架构经验让我更加彻底点,采用DDD领域驱动设计进行整个改变。 随着经过几个月的努力,确实慢慢地体会到ddd的架构设计的优势,聚合根设计能够协助我们整个服务改造,开发起来越来越迅速。 CQRS访...2016-07-20 17:19:43 · 4694 阅读 · 0 评论 -
BoneCP+extjs4开源Infographics
使用boneCP已有一段时间,在我还未到现在公司之前,公司采用的是ProxoolDataSource,在使用ProxoolDataSource过程中,碰到的问题异常之多,我开始怀疑这款开源软件质量本身问题,有一个非常显著的问题就是它的主干代码和文档是2007年之后就未动过,后来慢慢看了主流的DS,包括ProxoolDataSource、BoneCP、Druid(阿里温少开源,最崇拜的人)、C3...2013-11-04 16:39:47 · 174 阅读 · 0 评论 -
因为爱,所以eclipse
看着原来越来越多的人抛弃eclipse,去拥抱Intellij IDEA,我挺希望大家能够再坚持使用eclipse,就如同希望java一样,我们可以选择JVM衍生出来其它语种groovy、python、jRuby等,别抛弃他。今天介绍几个eclipse的几个好玩的功能,可能平常大家在学习工作中不经常使用... 第一大块是eclipse带有refactor,也就是代码重构,可以通过e...2013-11-01 12:18:38 · 118 阅读 · 0 评论 -
理解ThreadLocal的涵义
自从碰到N多个性能问题后,看是注意使用ThreadLocal的使用,本章只是体现如何使用ThreadLocal,ThreadLocal在性能方面的提高以及在内存分配方面的优势不再讨论范围内。ThreadLocal的扼要一个线程有它独立的流程的stack,在web的应用容器中都有Thread Pool,因为线程的创建都是重量级的消耗。weblogic、glassfish、jboss都是...2013-09-25 12:57:16 · 101 阅读 · 0 评论 -
Spring Expression Language
接着http://ray-yui.iteye.com/blog/1944582的火热,兄弟也来一把,关于Spring Expression Language 主要是告诉大家如何通过annotion以及XML的方式进行EL表达方式的解析,同样也会告诉大家如何通过ExpressionParser 接口类实现对于EL表达式的解析。工程采用标准的MAVEN,在附件中有提供代码接下来的...2013-09-23 10:17:47 · 111 阅读 · 0 评论 -
Using FindBugs to produce substantially less buggy code
Some time ago a user of Java-monitor, the forum of our JCG partner, Kees Jan, spotted that his system was forcing a large number of full Garbage Collections despite the fact that the overall memory u...原创 2013-08-25 20:09:33 · 220 阅读 · 0 评论 -
Vector or ArrayList
Sometimes Vector is better; sometimes ArrayList is better; sometimes you don't want to use either. I hope you weren't looking for an easy answer because the answer depends upon what you are doing. Th...原创 2013-08-25 14:34:11 · 85 阅读 · 0 评论 -
Stack and Heap in Java
Here we are going to discuss the concepts of Heap and Stack in Java.First and foremost thing to remember about the stack and heap is that they are generic terms for ways in which memory is allocated....原创 2013-08-22 13:50:32 · 204 阅读 · 0 评论 -
Reflection API
If you have ever asked yourself questions like these:– “How do I invoke a method, having only it’s name in a String?”- “How do I list all the attributes in a class dynamically?”- “How do I write a me...原创 2013-08-21 16:15:42 · 212 阅读 · 0 评论 -
From PermGen to Metaspace
As you may be aware, the JDK 8 Early Access is now available for download. This allows Java developers to experiment with some of the new language and runtime features of Java 8. One of these feature...原创 2013-08-20 10:25:29 · 232 阅读 · 0 评论 -
Tomcat Valve使用
上一篇关于Listener理解成监听信息,那么Valve就是用来过滤信息用的,而最简单以及朴实无华的Valve非org.apache.catalina.valves.AccessLogValve莫属。AccessLogValve的类图设计 自定义的Valve首先查看下实现ValveBase接口的Valve 设计一个固定的ip和地址才能进来valve,如果按照传统方式有一...2014-06-06 18:04:43 · 1573 阅读 · 0 评论 -
JVM的集群下的共享
Terrocotta - 基于JVM的Java应用集群解决方案前言越来越多的企业关键应用都必须采用集群技术,实现负载均衡(Load Balancing)、容错(Fault Tolerance)和灾难恢复(Failover)。以达到系统可用性(High Availability)和可伸缩性(Scalability)的要求。关于J2EE集群技术的基本原理和常用实现方式,TheServerSide....原创 2013-08-15 11:20:38 · 491 阅读 · 0 评论 -
Google GSON
n Java world, JSON is becoming de facto standard for data exchange format over XML because of its ease of use and efficiency in terms of transferring it.If you don’t know about JSON, it is Javasc...原创 2013-08-14 17:05:26 · 157 阅读 · 0 评论 -
Servlet 3.0 Async Processing for Tenfold Increase in Server Throughput
Servlets are the main component for handling server side logic in Java and the new3.0 specification introduces some very interesting features with asynchronous processsing being one of the most impor...原创 2013-08-27 09:40:13 · 262 阅读 · 0 评论 -
Hibernate PluginInterceptor
因公司的有些项目采用hibernate的ORM框架,并且遗留下来的数据越来越多,势必需要备份或者分表,hibernate本身不支持对于分库分表的共享操作,google公司开源一个共享组件,地址:https://github.com/hibernate/hibernate-shards现有公司的方式,采用同库水平分表的方式,那采用的分表条件是时间+其它条件,主要按时间维度进行分表,那么同样...2013-08-27 15:04:28 · 83 阅读 · 0 评论 -
Springinsight Web Application Profiling
TC SERVER是一个spring组织改装过的tomcat,提供的开发版里面支持程序的性能分析,最直接的一个功能是能以图形的方式显示出一个请求里面每个 方法及SQL所耗费的时间,这对调优程序有较大的帮助,各位可以在本机进行程序调试时使用。vFabric tc Server 是构建和运行 Java Spring 应用程序的最佳平台,为企业用户提供所需的轻量级服务器,满足其操作管理、...2013-09-01 16:18:29 · 133 阅读 · 0 评论 -
Spring Bean Lifecycle Control
本文目的是通过示例告诉大家sprng bean生命周期的控制。主要通过两个接口InitializingBean、DisposableBea,验证bean在容器中初始化以及销毁时候的触发事件。当然也可以通过配置xml的文件,init-method、destroy-method等同于上述两个接口1.InitializingBean and DisposableBean interface...2013-09-22 17:09:28 · 115 阅读 · 0 评论 -
Spring Social之twitter、weibo
Spring Social 500pxSpring Social BitBucketSpring Social DiggSpring Social DropboxSpring Social FlattrSpring Social FlickrSpring Social FoursquareSpring Social GoogleSpring Social Ins...原创 2013-09-22 14:18:06 · 300 阅读 · 0 评论 -
GC基本调优工具介绍
上次提到了spring insight http://cywhoyi.iteye.com/blog/1934992这次需要使用到以下工具 Eclipse Indigo Release Memory Analyzer via IBM Support Assistant 4.1 (HotSpot Heap Dump analysis) Java VM: Windows H...2013-09-16 17:43:05 · 139 阅读 · 0 评论 -
GlassFish和AT7比较
server:thinkpadi410ios:ubantu12webapp:jersey+spring+ibatisdatabase:mysql5.5test tool:jmeter\apache benchmark50并发rest请求CAT:BIO glassfish: 200个并发请求CAT BIO: CAT NIO: Glassfish: 5...2013-09-13 13:18:22 · 114 阅读 · 0 评论 -
Using slf4j with logback
slf4j是一款非常不错的关于log的开源框架,logback是依托于log4j的api,但是它提供了更多的属性,不管是在性能、内存损耗上,都有显著提高,并且它能够提供自动加载、过滤以及其它的属性特征。第一步,建立pom.xml<properties> <slf4j.version>1.6.4</slf4j.version> <logba...2013-09-12 10:11:03 · 99 阅读 · 0 评论 -
翻译一篇关于ConcurrentHashMap的扼要
线程安全问题在我们应用中无处不在。线程非安全的HashMap的put()、get()操作会触发引起死循环的问题。有三种不同的同步map操作1.HashTable2.Collection.synchronizedMap(Map)3.ConcurrentHashMapConcurrentHashMap实在JDK1.5以后引入,它是最为线程同步Map中优先级被推荐高于HashTable...2013-09-10 10:13:06 · 281 阅读 · 0 评论 -
spirng的ThreadPoolExecutor
模仿一般数据库连接池的配置,看了BoneCP的源代码实现,里面关于BoneCPConfig类的实现,采用了ThreadPoolExecutor的实现方式,然后就想到采用spring的注入方式,ThreadPoolExecutor在异步处理方面做得相当好。那么接下来看下实现方式!stpe1: spirng.xml<beans xmlns="http://www.springfr...2013-09-09 11:34:15 · 106 阅读 · 0 评论