java
文章平均质量分 77
ESOO
君子不器
展开
-
RPC框架几行代码就够了
原文博主就是阿里dubbo的作者,这里引用下大神的教学代码,给小白科普下最简单rpc如何实现:核心实现: /* * Copyright 2011 Alibaba.com All right reserved. This software is the * confidential and proprietary information of Alibaba....转载 2019-03-04 14:54:43 · 448 阅读 · 0 评论 -
Java集群优化——dubbo+zookeeper构建高可用分布式集群
互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,Dubbo是一个分布式服务框架,在这种情况下诞生的。现在核心业务抽取出来,作为独立的服务,使前端应用能更快速和稳定的响应。第一:介绍Dubbo背景 大规模服务化之前,应用可能只是通过RMI或Hessian等原创 2015-08-14 21:28:35 · 45245 阅读 · 7 评论 -
Java灵活文档导出-Freemarker
项目中总是需要生成各种报表和文档,而word文档是我们经常使用的格式,用freemarkerm模板生成是一个比较便捷的方式,现总结一下关键步骤,供大家参考一、模板的制作先用Word做一个模板,如下图:(注意,上面是有表格的,我设置了边框不可见)然后另存为XML文件,之后用工具打开这个xml文件,有人用firstobject XML Editor感觉还不如notepa原创 2015-08-15 09:18:51 · 1686 阅读 · 9 评论 -
java集群优化——初探多线程
要想使用多线程,咱们就有必要先了解下多线程,在不久以前,我写过相关的文章,在这简单回顾下,一个程序加上数据,就构成了一个进程,就好比快递公司是个进程,快递公司的方法就是送快递,快递员好比线程,他们都是送快递,只是负责区域不同,那么最简单的多线程是怎么实现的呢? 简单说实现多线程有很多种方法,而java这里主要有两种,一种是继续Thread类,另外一种是实现Runable接口,我们今原创 2015-06-30 01:09:05 · 2688 阅读 · 6 评论 -
java集群优化——ORM框架查询优化原理
众所周知,当下的流行的企业级架构中,ORM一直是最基础的部分,在架构设计的底层,对逻辑层提供面向对象的操作支持,而事实总是和我们预想的有所偏差,ORM在提供了较好的操作体验时,也流失了一部分原生SQL的灵活性与高效性,当然,这个问题不影响我们使用ORM框架,但是却阻碍了我们网站流量的提升,尤其是在企业级的多关系复杂查询方面,性能瓶颈是不得不提的部分!原创 2015-07-27 17:32:23 · 1811 阅读 · 5 评论 -
java集群优化——多线程下的单例模式
在最初学习设计模式时,我为绝佳的设计思想激动不已,在以后的工程中,多次融合设计模式,而在当下的设计中,我们已经觉察出了当初设计模式的高瞻远瞩,但是也有一些不足,需要我们去改进,有人说过,世界上没有绝对的事,当然,再简单的事情,环境变了,也会发生变化,今天和大家一起分享在多线程下单例模式的优化。 细节的优化,就像雕琢一件艺术品,我们接触的高人越多,这样的思想就越浓厚,所以,我们常常判断一个人事怎么的品格与素质,通过他接触的人,朋友就可以推测出来,而计算机内,也是如此,我们接触的优秀框架多了,自原创 2015-07-28 17:13:23 · 4535 阅读 · 9 评论 -
Hadoop解析--MapReduce
MapReduce中,所有的计算,都是在本地完成,及时有计算需要外来数据,也是集合好后完成,这样保证了我们最高效的带宽利用,使我们对数据的处理能力随着集群数目的增大而线性增大。原创 2015-07-27 21:40:17 · 1586 阅读 · 10 评论 -
java架构解密——实时动态aop
在上篇博客中个,咱们一起组建了一个容器,里面封装了业务,这样,咱们就将业务和服务的组装放到了客户端,而客户端就相当于咱们的开发中使用到的配置文件,大家发现问题了吗?就是我不能动态改动了?业务容器在代理完成后,重新添加一个容器,这时候,是不被允许的,那这个容器就是个编译时起作用的容器,他就丧失了很多的灵活性! 那怎么办呢?实际就是调换一下调用顺序就好,大家看看结果:1,类图对比原创 2015-06-30 00:44:43 · 1980 阅读 · 7 评论 -
java架构解密——双容器优化aop
上篇博客中,提出,优化是个无止境的过程,的确,随着需求的变化,软硬件基础的升级,我们越来越不考虑代码的容量,而是考虑代码的质量,但是随着研究的深入,到了某个阶段,我们也要考虑代码的容量问题原创 2015-06-29 14:06:09 · 2033 阅读 · 6 评论 -
java架构解密——用接口改造AOP
优化是个无止境的工作,在AOP的路上,我们走得很远,但是还有很多的工作,我们没有做,比如,将aop的业务部分封装成容器,将aop的服务部分改造成面向接口的,这样就不受具体的形式上的限制了!这样AOP的优化,就又前进了一步,也是符合咱们的面向接口编程的思想,下面就和我一起研究下如何将接口的思想融入到aop的实现中。原创 2015-06-20 00:05:14 · 2873 阅读 · 7 评论 -
java架构解密——深入再造AOP
随着AOP研究的深入,我们发现,核心概念变得极其重要,这些概念就是一幅图,指引我们在优化之路上越走越远!原创 2015-05-31 15:08:03 · 1879 阅读 · 10 评论 -
java架构解密——AOP之动态代理实现
深入spring aop 的核心,看看这个神秘的东西是怎么样的一幅面孔,看他是如何由简入难,化难为简!原创 2015-05-31 13:34:40 · 2176 阅读 · 15 评论 -
java架构解密——Spring框架的AOP:参数操作
在最近的研究中,发现aspectj 的拦截非常实用,也封装了N多方法方便我们调用,正好我们在对工作流的业务进行封装,发现虽然有些需求没有实现但是和我们的封装已经可以在很高的层面上吻合,给大家分享原创 2015-04-18 13:49:38 · 4412 阅读 · 25 评论 -
java工程积累——saas之multi-tenancy解析
最近做的项目涉及到比较深入的一部分,就是定义客户关系,在我们的商讨中,我们决定,采用服务商的模式,就是我们是基础服务商,由客户组合服务,向客户提供基于云端的服务支持!原创 2015-03-30 21:59:27 · 5153 阅读 · 22 评论 -
Java集群优化——必须了解的内存溢出与内存泄露
我们操作某些变量,ide环境给我们提供了非常好的便利性,jvm为我们封装了优秀的自动垃圾回收机制,但是,我们还是那句话,人是不可靠的,这句话使我们反复认识自己,同样,内存的问题,我们也要深入研究,因为这是大型软件优化不可避免的地方!原创 2015-08-14 20:25:04 · 3908 阅读 · 7 评论 -
Java IO:了解I/O模型
初听IO,我也是一头雾水,难道除了写入,读出,还有其他的吗?的确在IO的世界中,只有写入读出,但是业务不同,选择的框架不同,IO也会表现不一,而在互联网编程中,IO编程,越来越成为瓶颈,这次,咱们一起来学习下,当下流线个IO概念,下面从同步和异步的概念 说起,然后是阻塞和非阻塞的区别及阻塞IO和非阻塞IO的区别,然后介绍同步IO和异步IO的区别,接下来介绍了5种IO模型,最后介绍了两种和高性能IO原创 2015-08-14 19:47:05 · 2156 阅读 · 5 评论 -
java集群优化——Nginx+tomcat集群配置-理论篇
我们了解一个道理,就是数据的增长是我们必然面对的问题,因为在技术日益变化的当下,我们收集数据的方式和存储及处理技术不断升级,迫使我们面对这一问题,并且,在数据挖掘日益火热的今天,我们也要对这样的问题加以重视,改变在所难免! 我们曾经想过,在极致优化的情况下,一台普通服务器,是可以挖掘出无穷的潜力的,我的们的确曾做到这一点,用一台2万元的设备,承载了同时1万余人的并发,但是随着技术的衍生,我们需要更灵活地处理应用,我们需要更及时的响应速度,我们需要实时地对数据进行分析和处理!这时,我们必然接触一个词汇原创 2015-08-03 09:00:49 · 5254 阅读 · 9 评论 -
图解 偏向锁,轻量锁,重量锁
说明:卡通画像来自网络,如有侵权,联系博主删除原创 2019-02-28 18:10:04 · 2015 阅读 · 0 评论 -
java PDF转jpg
最近需要用到pdf转图片,发现不是需要花钱就是有水印限制,不是很好,自己做了个小程序,满足大家的需求:maven:<dependencies> <dependency> <groupId>org.apache.pdfbox</groupId> <artifactId>...原创 2019-02-28 10:47:45 · 3424 阅读 · 1 评论 -
synchronized 实现原理
synchronized可以保证变量的原子性,可见性和顺序性,所以可以保证方法或者代码块在运行时只有一个方法可以进入临界区获取资源,同时还可以保证内存变量的内存可见性。并且synchronized是一个可重入锁synchronized实现原理:(1)字节码层面synchronized是基于进入和退出管程(Monitor)对象实现(monitorenter和monitorexit), moni...转载 2019-02-15 17:11:20 · 966 阅读 · 0 评论 -
elastic-job2 项目接入(spring,maven)
最近系统在使用esjob进行定时任务管理,现将接入过程分享给大家:引入依赖<dependency> <groupId>com.dangdang</groupId> <artifactId>elastic-job-lite-core</artifactId> <version>2.1.2<...原创 2018-06-21 10:04:53 · 7382 阅读 · 0 评论 -
Android开发学习(1)基本概念
移动设备的火爆,不用过多笔墨,我们已经处于移动办公的时代,未来pc生存的空间,可能越来越小,对于移动应用开发的学习,显得越来越迫在眉睫,凭借着这几年的积累,经验,预计应该容易理解和入门些。入门一个语言,时刻不忘恩师的教诲,任何事情,在做之前,要想到,这不是一个孤立的事件,必然和自身以前的事件有千丝万缕的联系,有了这些联系,我们在接受一个所谓意义上“新事件”的时候,先要“同化”,找到相同点,然后在实行原创 2017-08-01 11:30:47 · 1451 阅读 · 1 评论 -
flume高并发优化——(15)中间件版本升级
在系统平稳运行一年的基础上,为提供更好的服务,现针对java,kafka,flume,zk,统一进行版本升级,请各位小伙伴跟着走起来,不要掉队啊! 名称 老版本号 新版本号 jdk 1.7.0_25 1.8.0 kafka 2.10-0.8.0.1 2.10-0.10.2.1 flume 1.6.0 1.7.0 zookeeper 3.4.6原创 2017-07-21 16:10:53 · 3481 阅读 · 2 评论 -
使用ZKManager维护zookeeper数据
在项目上经常使用zookeeper作为注册端与管理端,而我们需要一款软件帮助我们维护zookeeper上的数据,在使用flume配置端zk化,之后,这种需求日益强烈,为此,我从网上找到一款不错的开源软件,推荐给大家 这是源码地址:http://code.taobao.org/p/zkweb/wiki/index/ 这是我修复部分bug版地址:http://pan.bai原创 2016-06-22 18:02:54 · 8853 阅读 · 3 评论 -
Linux 安装与使用H2数据库
很多人在windows平台上使用过H2数据库,但是安装到linux,还不知道怎么做,现在,跟着我一起在linux安装:1,下载jar包 下载h2-1.3.176.jar 这个包(部分服务版本不一致,请自行更换版本)2,启动服务 复制到linux服务器 /opt/h2/bin/ 下 在目录下启动 3,使用web工具原创 2016-06-22 17:35:34 · 13208 阅读 · 2 评论 -
flume高并发优化——(7)RandomAccessFile升级多文件source
本篇文章旨在解决tail文件io断裂问题,我们使用linux原生的tail ,启动多个线程,做到对多个文件的数据收集,但是,随着业务日志增多,日志以日期分割,是个常用的做法,但是这样,就使得我们的flume插件在日期交换的凌晨,出现io断裂,造成不能继续收集数据原创 2016-05-11 11:54:02 · 5474 阅读 · 2 评论 -
提升用户体验之A/B测试(3)——sixpack-js客户端
在上篇博客中,我们介绍了sixpack的安装,在安装好后,我们再接再厉,试试一个官网提供的小例子,结合例子,大家再体会下第一篇博客中介绍的A/B测试流程:原创 2016-03-02 13:24:16 · 1649 阅读 · 1 评论 -
项目修炼之路(3)3百亿交易额的处理
如何让百亿交易,数百个产品的交易,普通pc机上,20分钟内完成,在这里,我们一起探讨原创 2016-01-29 18:06:16 · 1752 阅读 · 4 评论 -
大数据下的日志--ElasticSearch部分(二)--结合Java基本操作
ElasticSearch(名称太长,后面简称ES)作为一个搜索引擎,目前可谓是如日中天,几乎和solr齐驾并驱。关于他能做什么,跟云计算有什么关系,在此不再描述。但是ES的官方文档,特别是关于java的客户端文档,真是少的可怜,甚至连个完整的增删改的示例都没有。在此,我就献丑了。在开始讲解之前,还是先做个铺垫,为了能够有一个可以索引的模型,我们自定义了一个模型,暂时起个名称叫LogModel原创 2015-10-05 19:30:18 · 25922 阅读 · 7 评论 -
java集群优化——Nginx+tomcat集群配置-实践篇
一个好的工具,不仅仅是实现了好的功能,还有更重要的一点就是,一定要有更简单的业务逻辑,这样用户在使用这款工具的时候才能顺利过渡,而Nginx这款软件,对于广大开发者恰恰符合这两个要求,不用心,用户就会体会到,用心了,就是让用户体会不到,离不开!这不就是互联网产品的思维吗?原创 2015-08-06 20:43:02 · 4694 阅读 · 8 评论 -
java架构解密——Spring框架的ioc自我实现
在java的开发中,经常使用的框架当属SSH,而在这张框架中,我们首先接触到的就是神奇的Spring,虽然有N多前辈说Spring就是N多公共代码的集合,是帮助我们实现了,我们很久之前就想实现或者已经实现的好的点子的集合,但是作为一名合格工程师,怎么能不懂spring的底层实现呢!在今天咱们就一起探索Spring是怎么完成IOC工作的,也自己做一个简单Spring框架!1,Spring中Bea原创 2015-03-01 14:10:04 · 3225 阅读 · 20 评论 -
java架构解密——Spring框架的AOP
在计算机诞生之初,就是为了替人做一些重复性的简单的工作,随着计算机技术的深入,我们的这个初衷,一直没有变过,计算机最大的优点就是重复,作为程序设计者,在所有员工的工作中,我们是否都应该考虑,这个工作是必须的吗?这个工作是纯洁的copy吗?这个工作可以交给计算机来做吗?这个工作是不是一个人做了,大家都可以使用呢?这些工作,不仅仅需要设计师脑海中的经验,还有对于业务的抽象能力以及整体架构的把控力!原创 2015-03-19 16:31:12 · 2739 阅读 · 18 评论 -
JAVA必备——EJB,通向大型软件的路!
从接触java开始,就对java的标准,神交已久,今天先给大家简单介绍下,什么事ejb,然后咱们一起完成一个小例子,完成对ejb的熟悉过程,在这其间一起体会ejb带给我们的编码变化!原创 2014-06-19 16:13:49 · 1589 阅读 · 22 评论 -
JAVA必备——EJB,通向大型软件的路!
从接触java开始,就对java的标准,神交已久,今天先给大家简单介绍下,什么事ejb,然后咱们一起完成一个小例子,完成对ejb的熟悉过程,在这其间一起体会ejb带给我们的编码变化!原创 2014-06-19 21:22:47 · 325 阅读 · 0 评论 -
java必备——经典的Hibernate
在编程开发中,我们有很多框架,他们有些很方便,也很实用,今天我们一起来认识一个java经典的框架Hibernate,Hibernate英文名称为“冬眠”原创 2014-06-06 14:04:36 · 1959 阅读 · 27 评论 -
JAVA必备——13个核心规范
你听过这句话吗?“一流企业做标准、二流企业做品牌、三流企业做产品!”我时我就在想,做标准的企业就是一流的?卖产品就是三流公司?而坐产品或者加工的公司,即使说销售量很大也挣不了太多的钱,为什么呢?原创 2014-06-13 21:46:26 · 5813 阅读 · 32 评论 -
软件设计师之路总结~引——时间的温度
成功不在于你有多复杂,而是在于你有多简单!原创 2014-05-29 22:28:49 · 2561 阅读 · 52 评论 -
java必备——进程?线程?
编程中一些晦涩难懂的概念,我们的生活中也许早就已经实践着,且比比皆是,几百万年的进化,使我们的生活中存在着极大的智慧,学习中,生活就是我们最好的老师,我们要懂得利用这个巨大的资源!原创 2014-03-26 14:27:31 · 2372 阅读 · 40 评论 -
java必备——通过异常处理看面向对象
在看java视频的时候,看到异常处理的时候,我认识到自己编程上的一个缺憾,就是以前的错误处理他范范,我们应该针对不同的错误,做不同的处理,我拿出自己c#和vb的代码,看了看错误处理代码,发现,他们的格式很相似,想到面向对象和面向过程的对比,我想,咱们也许可以在这里,再挖掘一把! 在编写VB的时候,我作为一个小白,基本没有用过错误处理,心中的他是个很高大上的技术,而随着学习了c#,java原创 2014-04-03 16:06:00 · 2354 阅读 · 26 评论 -
java必备——网络编程初解
没有接触java之前,在我自己的印象中,网络编程,就是写一些网页,编写点后台程序,发布上线,就完成了他的工作,简单,有效,在这几天的java学习中,我了解了网络编程不仅仅是我接触的这一点,我们做的工作,只是其中的一部分!我们先看看百度百科的定义: 网络编程从大的方面说就是对信息的发送到接收,中间传输为物理线路的作用,编程人员可以不用考虑…… 网络编程最主原创 2014-03-27 17:01:22 · 2594 阅读 · 42 评论