自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Jack Zhou的专栏

一切都将灰飞烟灭,我们要做的就是尽情燃烧!

原创 Java常用开源库梳理(4)

Apache Flink库 1. StreamExecutionEnvironment, ExecutionConfig LocalStreamEnvironment, RemoteStreamEnvironment DataStream, DataStreamSource, DataS...

2019-07-09 10:37:35 223 0

原创 Java常用开源库梳理(3)

Netty库 1. ServerBootstrap, Bootstrap (1)ServerBootstrap:服务端启动器。 group():指定mainReactor线程池和subReactor线程池,前者是acceptor线程池用于接受客户端连接,后者是worker线...

2019-07-09 10:37:08 231 0

原创 Linux系统管理实践(11):网络诊断的基本技巧

1、网络慢的原因:网络问题经常以两种形式出现。第一种是来自远程服务器的慢速响应,第二种是完全失去连接。网络慢的根源主要有网卡的双工和速度的不兼容、网络拥塞、不良的路由、线缆问题、电阻或电波干扰、远端服务器负载过重、DNS配置不当。连接丢失的根源主要有电源问题、远端的服务器或程序被关掉。 2、进行...

2019-07-06 10:45:27 4345 0

原创 Java常用开源库梳理(2)

SLF4j和Logback库 1. LoggerFactory, Logger (1)Slf4j:各种日志框架(如java logging, logback, log4j)一个抽象层,是一个简单的外观模块封装(为一组接口提供一个一致的界面,从而使得复杂的子系统与用户端分离解耦)。它允许你...

2019-07-06 10:45:09 157 0

原创 Java常用开源库梳理(1)

Java集合数据结构 1. List: 线程不安全:ArrayList, LinkedList, BitSet 线程安全:Vector, CopyOnWriteArrayList (1)ArrayList:使用数组实现的List,相当于动态数组,读取速度快,插入与删除速度慢(因...

2019-07-06 10:44:52 264 0

原创 机器学习资源和路线图

机器学习资料: 1. 台湾大学林轩田老师的”机器学习基石” http://www.bilibili.com/video/av1624332/?from=search&seid=5267157557318528006 只看完一部分,不错,推荐。 2. 进阶课程:台湾大学林轩田老师的”...

2017-05-09 11:59:44 5214 0

翻译 Apache Mesos:数据中心就是计算机

数据中心就是计算机。云计算资源管理的方式正在改变。传统的数据中心在云和虚拟化层面的资源管理在当今企业日益增长的计算服务需要下,已经难以保持高效率。为了应对这个挑战,数据中心需要更高效率地提供更强的计算和存储服务。 Mesos和 YARN就是这样的解决方案。这些涌现的集群管理平台是下一代细粒度集群管...

2015-11-04 11:19:41 2330 2

转载 第6部分:AOP

6.1 AOP基础

2015-06-14 22:22:45 2461 0

转载 第5部分:表达式语言SpEL

5.1  概述 5.1.1  概述        Spring表达式语言全称为“Spring Expression Language”,缩写为“SpEL”,类似于Struts2x中使用的OGNL表达式语言,能在运行时构建复杂表达式、存取对象图属性、对象方法调用等等,并且能与Spring功能完美整合...

2015-04-17 16:33:20 16456 0

转载 第4部分:资源

4.1.1  概述   在日常程序开发中,处理外部资源是很繁琐的事情,我们可能需要处理URL资源、File资源资源、ClassPath相关资源、服务器相关资源(JBoss AS 5.x上的VFS资源)等等很多资源。因此处理这些资源需要使用不同的接口,这就增加了我们系统的复杂性;而且处理这些资...

2015-04-17 14:49:18 2254 0

转载 第3部分:更多DI的知识

3.3.1  延迟初始化Bean   延迟初始化也叫做惰性初始化,指不提前初始化Bean,而是只有在真正使用时才创建及初始化Bean。   配置方式很简单只需在标签上指定 “lazy-init” 属性值为“true”即可延迟初始化Bean。   Spring容器会在创建容器时提前初始化“si...

2015-04-17 12:56:09 1985 0

转载 第3部分:依赖注入DI

3.1.1 依赖和依赖注入 传统应用程序设计中所说的依赖一般指“类之间的关系”,那先让我们复习一下类之间的关系: 泛化:表示类与类之间的继承关系、接口与接口之间的继承关系; 实现:表示类对接口的实现; 依赖:当类与类之间有使用关系时就属于依赖关系,不同于关联关系,依赖不具有“拥有关系”,而是一种“...

2015-04-13 21:02:12 2415 0

转载 第2部分:IoC容器

2.2.1  IoC容器的概念 IoC容器就是具有依赖注入功能的容器,IoC容器负责实例化、定位、配置应用程序中的对象及建立这些对象间的依赖。应用程序无需直接在代码中new相关的对象,应用程序由IoC容器进行组装。在Spring中BeanFactory是IoC容器的实际代表者。 Spring Io...

2015-04-13 20:57:02 2430 0

翻译 第1部分:Spring框架概述

Spring框架是一个轻量级的解决方案和一个潜在的一站式构建企业级应用程序. 然而, Spring 是模块化的,它允许你只使用你需要的哪些模块, 无需引入不必要的。你可以使用IoC容器,在其上使用Struts.但是你也可以只使用Hibernate整合代码或者JDBC抽象层。Spring框架支持声明...

2015-04-13 20:52:46 5956 0

转载 如何解决秒杀的性能问题和超卖的讨论

最近业务试水电商,接了一个秒杀的活。之前经常看到淘宝的同行们讨论秒杀,讨论电商,这次终于轮到我们自己理论结合实际一次了。   ps:进入正文前先说一点个人感受,之前看淘宝的ppt感觉都懂了,等到自己出解决方案的时候发现还是有很多想不到的地方其实都没懂,再次验证了“细节是魔鬼”的理论。并且一个人的...

2014-09-22 23:38:27 45925 9

翻译 Nginx:配置指南(2)

基于名字的虚拟主机 Nginx首先选定由哪一个虚拟主机来处理请求。让我们从一个简单的配置(其中全部3个虚拟主机都在端口*:80上监听)开始: server { listen 80; server_name example.org www.example.o...

2014-07-23 17:22:09 6829 0

翻译 Nginx:配置指南(1)

This guide gives a basic introduction to nginx and describes somesimple tasks that can be done with it.It is supposed that nginx is already installed...

2014-07-20 22:29:46 4646 0

翻译 开源软件架构:Nginx

nginx(发音"engine x")是俄罗斯软件工程师Igor Sysoev开发的免费开源web服务器软件。nginx于2004年发布,聚焦于高性能,高并发和低内存消耗问题。并且具有多种web服务器功能特性:负载均衡,缓存,访问控制,带宽控制,以及高效整合各种应用的能力,这些...

2014-07-20 22:14:01 10704 2

翻译 Martin Fowler的《持续集成》

持续集成是一种软件开发实践,在实践中项目成员频繁地进行集成,通常每个成员每天都会做集成工作,如此,每天整个项目将会有多次集成。每次集成后都会通过自动化构建(包括测试)来尽快发现其中的错误。许多团队都发现这种方法大大地减少了集成问题并且能够快速地开发出高内聚性的软件。本文简要地总结了持续集成技术及其...

2014-07-14 15:15:10 3626 0

转载 数据库集群技术漫谈

简介 当今世界是一个信息化的世界,我们的生活中无论是生活、工作、学习都离不开信息系统的支撑。而信息系统的背后用于保存和处理最终结果的地方就是数据库。因此数据库系统就变得尤为重要,这意味着如果数据库如果面临问题,则意味着整个应用系统也会面临挑战,从而带来严重的损失和后果。     如今“大数据”...

2014-07-12 16:08:10 4954 0

翻译 Mockito:一个强大的用于Java开发的模拟测试框架

介绍   本文将介绍模拟测试框架Mockito的一些基础概念, 介绍该框架的优点,讲解应用Mockito的Java示例。 模拟(Mock)的概念    在软件开发的世界之外 "mock"一词是指模仿或者效仿. 因此可以将“mock”理解为一个替...

2014-07-12 16:05:40 24628 1

转载 NoSQL数据库面面观

Alexey Vasiliev是一位知名的Web开发者与Linux系统管理员,曾参与开发过多个项目,如falcon、mongodb_logger、sht_rails及piro等项目。近日,Vasiliev就当前各种NoSQL数据库的优势与劣势撰文进行了详尽的分析。这些分析与比较将会对广大开发者项目...

2014-07-12 16:04:53 2381 0

翻译 微软经典面试100题系列(部分)

本文整理自:http://blog.csdn.net/v_july_v/article/details/6543438     1. 把二元查找树转变成排序的双向链表     题目: 输入一棵二元查找树,将该转换成个排 序的双向链表。 要求不能创建任何新的结点,只调整指针向。   10 /   ...

2014-07-10 14:29:04 25407 1

转载 海量数据处理面试题整理

本文整理自July的博客:http://blog.csdn.net/v_JULY_v   1、海量日志数据,提取出某日访问百度次数最多的那个IP。   首先是这一天,并且是访问百度的日志中的IP取出来,逐个写入到一个大文件中。注意到IP是32位的,最多有个2^32个IP。同样可以采用映射的方法...

2014-07-10 14:19:27 3435 0

转载 深入理解Java国际化

假设我们正在开发一个支持多国语言的Web应用程序,要求系统能够根据客户端的系统的语言类型返回对应的界面:英文的操作系统返回英文界面,而中文的操作系统则返回中文界面——这便是典型的i18n国际化问题。对于有国际化要求的应用系统,我们不能简单地采用硬编码的方式编写用户界面信息、报错信息等内容,而必须为...

2014-07-09 23:26:25 51989 8

转载 深入理解线程局部变量:ThreadLocal

一、ThreadLocal概述   学习JDK中的类,首先看下JDK API对此类的描述,描述如下:   该类提供了线程局部 (thread-local) 变量。这些变量不同于它们的普通对应物,因为访问某个变量(通过其 get 或 set 方法)的每个线程都有自己的局部变量,它独立于变...

2014-07-09 23:05:33 8705 1

转载 深入理解Java类加载器(2):线程上下文类加载器

线程上下文类加载器 线程上下文类加载器(context class loader)是从 JDK 1.2 开始引入的。类 java.lang.Thread中的方法 getContextClassLoader()和 setContextClassLoader(ClassLoader cl)用来获...

2014-07-06 19:11:16 36529 10

转载 深入理解Java类加载器(1):Java类加载原理解析

1       基本信息 每个java开发人员对java.lang.ClassNotFoundExcetpion这个异常肯定都不陌生,这背后就涉及到了java技术体系中的类加载。Java的类加载机制是java技术体系中比较核心的部分,虽然和大部分开发人员直接打交道不多,但是对其背后的机理有一...

2014-07-06 19:08:50 56530 10

转载 深入理解JavaBean(2):属性编辑器PropertyEditor

在Spring配置文件里,我们往往通过字面值为Bean各种类型的属性提供设置值:不管是double类型还是int类型,在配置文件中都对应字符串类型的字面值。BeanWrapper填充Bean属性时如何将这个字面值转换为对应的double或int等内部类型呢?我们可以隐约地感觉到一定有一个转换器在其...

2014-07-05 14:50:48 12395 0

转载 深入理解JavaBean(1):JavaBean的内省与BeanUtils库

内省(Introspector) 是Java 语言对 JavaBean 类属性、事件的一种缺省处理方法。   JavaBean是一种特殊的类,主要用于传递数据信息,这种类中的方法主要用于访问私有的字段,且方法名符合某种命名规则。如果在两个模块之间传递信息,可以将信息封装进JavaBean中,这种...

2014-07-05 14:50:46 9447 1

转载 MySQL在大型网站的应用架构演变

写在最前: 本文主要描述在网站的不同的并发访问量级下,Mysql架构的演变 可扩展性 架构的可扩展性往往和并发是息息相关,没有并发的增长,也就没有必要做高可扩展性的架构,这里对可扩展性进行简单介绍一下,常用的扩展手段有以下两种 Scale-up :  纵向扩展,通过替换为更好的机器和资源来...

2014-07-03 20:16:14 1104 0

转载 架构腐化之谜

前言 新技术层出不穷。过去十年时间里,我们经历了许多激动人心的新技术,包括那些新的框架、语言、平台、编程模型等等。这些新技术极大地改善了开发人员的工作环境,缩短了产品和项目的面世时间。然而作为在软件行业第一线工作多年的从业者,我们却不得不面对一个现实,那就是当初采用新技术的乐趣随着项目周...

2014-07-03 20:15:28 1584 0

翻译 可伸缩性最佳实践:来自eBay的经验

在eBay,可伸缩性是我们每天奋力抵抗的一大架构压力。我们所做的每一项架构及设计决策,身前身后都能看到它的踪影。当我们面对的是全世界数以亿计的用户,每天的页面浏览量超过10亿,系统中的数据量要用皮字节(1015或250)来计算——可伸缩性是生死交关的问题。 在一个可伸缩的架构中,资源的消耗应该随...

2014-07-03 20:10:56 1045 0

转载 案例分析:基于消息的分布式架构

美国计算机科学家,LaTex的作者Leslie Lamport说:“分布式系统就是这样一个系统,系统中一个你甚至都不知道的计算机出了故障,却可能导致你自己的计算机不可用。”一语道破了开发分布式系统的玄机,那就是它的复杂与不可控。所以Martin Fowler强调:分布式调用的第一原则就是不要分布式...

2014-07-02 00:07:37 2813 0

翻译 可伸缩系统的架构经验

最近,阅读了Will Larson的文章Introduction to Architecting System for Scale,感觉很有价值。作者分享了他在Yahoo!与Digg收获的设计可伸缩系统的架构经验。在我过往的架构经验中,由于主要参与开发企业软件系统,这种面向企业内部的软件系统通常不...

2014-07-01 23:41:50 1229 0

转载 深入理解Java反射:候捷谈Java反射机制

摘要   Reflection 是Java被视为动态(或准动态)语言的一个关键性质。这个机制允许程序在运行时透过Reflection APIs取得任何一个已知名称的class的内部信息,包括其modifiers(诸如public, static 等等)、superclass(例如Objec...

2014-06-29 17:58:01 5415 1

转载 深入理解Java注解(2):高级应用

下面进一步深入分析Java注解的机制。 一、为什么使用Annotation:   在JAVA应用中,我们常遇到一些需要使用模版代码。例如,为了编写一个JAX-RPC web service,我们必须提供一对接口和实现作为模版代码。如果使用annotation对远程访问的方法代码进行...

2014-06-29 17:40:34 8919 0

转载 深入理解Java注解(1):基础详解

什么是注解(Annotation):   Annotation(注解)就是Java提供了一种与程序元素关联任何信息和着任何元数据(metadata)的途径和方法。Annotion(注解)是一个接口,程序可以通过反射来获取指定程序元素的Annotion对象,然后通过Annotion对象来获取注解里...

2014-06-29 17:38:37 6581 0

翻译 控制反转与依赖注入模式

Java 社群近来掀起了一阵轻量级容器的热潮,这些容器能够帮助开发者将来自不同项目的组件 组装成为一个内聚的应用程序。在它们的背后有着同一个模式,这个模式决定了这些容器进行组 件装配的方式。人们用一个大而化之的名字来称呼这个模式:“控制反转”( Inversion of Control,Io...

2014-06-27 22:54:39 9851 1

转载 面向切面编程(3):AOP实现机制

1 AOP各种的实现 AOP就是面向切面编程,我们可以从几个层面来实现AOP。

2014-06-23 22:28:08 5460 0

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