代老师的博客 https://github.com/daichangya

归档

2019 年 04 月

近段时间以来,通过接触有关海量数据处理和搜索引擎的诸多技术,常常见识到不少精妙绝伦的架构图。除了每每感叹于每幅图表面上的绘制的精细之外,更为架构图背后所隐藏的设计思想所叹服。个人这两天一直在搜集各大型网站的架构设计图,一为了一饱眼福,领略各类大型网站架构设计的精彩之外,二来也可供闲时反复琢磨体会,何乐而不为呢?特此,总结整理了诸如国外wikipedia,Facebook,Yahoo!,
这几天一直在关注和学习一些大型网站的架构,希望有一天自己也能设计一个高并发、高容错的系统并能应用在实践上。今天在网上找架构相关的资料时,看到一个被和谐的视频网站YouTube的架构分析,看了以后觉得自己又向架构走近了一步,于是赶快拿出来与大家一起分享。 YouTube发展迅速,每天超过1亿的视频点击量,但只有很少人在维护站点和确保伸缩性。这点和PlentyOfFish类似,少数人维护庞大系统
今天我们来谈谈一个网站一般是如何一步步来构建起系统架构的,虽然我们希望网站一开始就能有一个很好的架构,但马克思告诉我们事物是在发展中不断前进的,网站架构也是随着业务的扩大、用户的需求不断完善的,下面是一个网站架构逐步发展的基本过程,读完后,请思考,你现在在哪个阶段。
substring(int beginIndex, int endIndex)在JDK6与JDK7中的实现方式不一样,理解他们的差异有助于更好的使用它们。为了简单起见,下面所说的substring()指的就是substring(int beginIndex, int end
  “我会更加努力地工作” —— 一匹名叫Boxer的马(出自乔治·奥威尔的《动物农庄》)   彼得·圣吉在其著作《第五项修炼》中提到的系统思维定律同样适用于软件开发。
在阎宏博士的《JAVA与模式》一书中开头是这样描述解释器(Interpreter)模式的:   解释器模式是类的行为模式。给定一个语言之后,解释器模式可以定义出其文法的一种表示,并同时提供一个解释器。客户端可以使用这个解释器来解释这个语言中的句子。 解释器模式的结构   下面就以一个示意性的系统为例,讨论解释器模式的结构。系统的结构图如下所示:
1) 本文列出的名单是根据我自己的调查,并结合个人的经验。有可能是它们不恰恰是最流行的,但至少众所周知的。 2) 我会不断更新这个列表,使之更加完整和准确。感谢您的意见。
摘要:我(软件工程师berlin)于2007年来到北京,在北京工作这些年,先后在NEC、风行、百度几家公司担任软件工程师的职务。NEC是一家具有百年历史的传统日企,在知春路的分公司叫日电电子,我们部门主要从事机顶盒、数字电视上嵌入式软件的研发。
iBATIS 通过 SQL Map 将 Java 对象映射成 SQL 语句和将结果集再转化成 Java 对象,与其他 ORM 框架相比,既解决了 Java 对象与输入参数和结果集的映射,又能够让用户方便的手写使用 SQL 语句。本文主要介绍了 iBATIS 框架的体系结构和运行流程,以及 iBATIS 如何完成 SQL 语句的解析与 Java 对象与数据字段映射关系的建立,最后用一个实例说明了 i
原文中还没有100个。作者希望大家一起来推荐高质量的Java开发博客,然后不段补充到这个列表。欢迎你也参与推荐优质的Java开发博客。(声明一下:我们的数学不是体育老师教的!:) ) 本文的主要目的是收集全球范围内100个高质量Java开发者博客
GC知识要点回顾 问题1:为什么要调试GC参数? 在32核处理器的系统上,10%的GC时间导致75%的吞吐量损失。所以在大型系统上,调试GC是以小博大的不错选择。'small improvements in reducing such a bottleneck can produce large gains in perform
Web 发展的速度让许多人叹为观止,层出不穷的组件、技术,只需要合理的组合、恰当的设置,就可以让 Web 程序性能不断飞跃。Web 的思想是通用的,它们也可以运用到 Java Web。这一系列的文章,将从各个角度,包括前端高性能、反向代理、数据库高性能、负载均衡等等,以 Java Web 为背景进行讲述,同时用实际的工具、实际的数据来对比被优化前后的 Java Web 程序。第一部分已经讲解了部分
在上一篇文章中,我介绍了新的Servlet 3,这是Spring MVC 3.2的新特性——异步支持——的运行环境。第二种使用异步处理的非常主要的原因是使浏览器接受信息的实时更新。例如网页聊天室、股票报价、状态更新、体育赛事直播等。虽然这些应用对于信息延迟的敏感度不同,但是它们的功能需求是类似的。
在历史上,Java试图提供过抢占式限制中断,但问题多多,例如前文介绍的已被废弃的Thread.stop、Thread.suspend和 Thread.resume等。另一方面,出于Java应用代码的健壮性的考虑,降低了编程门槛,减少不清楚底层机制的程序员无意破坏系统的概率。     如今,Java的线程调度不提供抢占式中断,而采用协作式的中断。其实,协作式的中断,原理很简单,就是轮询某个表示
通常,使用的加密算法 比较简便高效,密钥简短,加解密速度快,破译极其困难。本文介绍了 MD5/SHA1,DSA,DESede/DES,Diffie-Hellman的使用。第1章基础知识 1.1. 单钥密码体制单钥密码体制是一种传统的加密算法,是指信息的发送方和接收方共同使用同一把密钥进行加解密。通常,使用的加密算法比较简便高效,密钥简短,加解密速度快,破译极其困难。但是加密
简单工厂模式是类的创建模式,又叫静态工厂方法(static factory method),负责将大量有共同接口的类实例化,可以动态的决定将哪个类实例化,不必事先知道要实例化哪个类。 顾名思义,就像是工厂的功能,客户需要什么样的产品,工厂就能生产。但是产品之间应该有某种关联性,即有共同的接口,不能让一个工厂去生产火腿肠。工厂模式中创建是不同类的对象。 工厂的老板可以根据客户不同的需要进
public class Evaluate { public static void main(String[] args) { Stack ops = new Stack(); Stack vals = new Stack(); String[] strs = "( 1 + ( ( 2 + 3 ) * ( 4 * 5 ) ) )".sp
学习可以比作打仗,为了达到更好的学习效果,必须有自己的战略和战术,应用篇就是从战略角度来指导大家如何更有效地学习,一共八计。 首先,明确目标、制订计划、合理安排时间可以给自己建立好空间和时间的二维框架,一切尽在其中,一切尽在掌握之中,按照这三计的要求去做,就可以把自己有限的时间用在实现学习目标的每一步骤上,不会浪费一分一秒。其次,预习、抓住课堂、科学记笔记、有效复习这四个方法是学习的一个完整系统过程,缺一不可。如果自己成绩不理想,是不是其中的某个环节做得不好。最后,注重归纳总结,这是应用篇中最重要的一个战略指导思想,它贯穿于学习的四个环节当中,也是后面战术方法的核心,是学习的灵魂,同学们在学习的过程中要时刻提醒自己思考、归纳和总结。
我们设计并实现了Google GFS文件系统,一个面向大规模数据密集型应用的、可伸缩的分布式文件系统。GFS虽然运行在廉价的普遍硬件设备上,但是它依然了提供灾难冗余的能力,为大量客户机提供了高性能的服务。

2019-04-17

本文收集了一些用于提升JDBC性能的方法。Java应用或者JavaEE Web应用的性能是很重要的,尤其是数据库后端对应用的性能影响。不知你是否经历过Java、JavaEE web应用非常慢的案例没有(处理一个简单的请求都要花上好几秒的时间用于数据库访问,分页、排序等)。