- 浏览: 278709 次
- 性别:
- 来自: 北京
最新评论
-
107x:
...
python list排序 -
yuzhu223:
...
【Python基础】Python的lambda函数与排序 -
Tonyguxu:
分析查询结果的打分小于11.query=1065800715* ...
lucene打分机制的研究 -
Tonyguxu:
query=139320661963.013709 = (MA ...
lucene打分机制的研究 -
Tonyguxu:
query=10658007150.6772446 = (MA ...
lucene打分机制的研究
文章列表
学习资料:
1.《java web服务开发》
2.《构建高性能web站点》
3.《分布式java应用》
4.《分布式系统概念与设计(第3版)》
tags:
分布式java应用,实现系统间的通信通常有两种方式:
1.基于消息方式
使用java自身包:TCP/IP+BIO、TCP/IP+NIO、UDP/IP+BIO、UDP/IP+NIO
开源框架:Mina
2.基于远程调用方式
java中主要用来实现基于 RMI 和 Webservice 的应用。
开源框架:Spring RMI、CXF等。
1.同步通信模型
请求/响应
2.异步通信模型
面向 ...
为什么多用组合,少用继承?
- 博客分类:
- 【**架构设计/设计模式】
http://zyjwy02.iteye.com/blog/232838
继承
和组合
都是实现类重用
的手段,何时用继承何时用组合?
继承表示“is a”的关系,继承是对已有的类做一番改造,以此获得一个特殊的版本。即将一个较为抽象的类改造成能适用于某些特定需求的类。组合表示“has a”的关系,如果两个类之间有明显的整体/部分的关系,适合用组合,比如People和Arm类。将Arm类作为People类的一个私有属性。
面对扩展问题时,如果选择使用继承,则要考虑除了需要重写关注的方法外,是否还要看看有些方法也被继承下来了,而这些方法如果不重写的话是有害的。如果使用组合则可以 ...
对象序列化
对象序列化的目标是将对象保存到磁盘,或允许在网络中传输对象。
对象序列化机制做了些什么工作呢?将内存中的java对象转换成平台无关的二进制流。然后针对这些二进制流进行操作。
对象序列化(Serialize)指将一个java对象写入IO流中。对象的反序列化(Deserialize)是指从IO流中恢复该对象。
如果需要让某个对象支持序列化机制,则需要让它的类是可以序列化的(Serializable),该类需要实现以下两个接口之一:
1.Serializable
2.Externalizable
举例说哪些对象的类是需要可序列化的 ...
适配器模式
- 博客分类:
- 【**架构设计/设计模式】
概述
形象点讲,美国制造的笔记本电源要在中国的插座上充电,首先电源和插座的形状有差别不能直接插上,其次,电源和插座的电压不同,也不能直接使用。为了使电源能够正常的使用,要么更改电源,要么更改插座 ...
Scalability
- 博客分类:
- 【**架构设计/设计模式】
Scalability
By Julian Browne on April 28, 2008. Filed Under architecture, development
Of all the system qualities debated by architects and developers, scalability is perhaps the one that has the greatest reputation for being mysterious and poorly understood. And if you want to avoid unnecessary ...
任务
Executor框架使用Runnable作为任务的基本抽象。Runnable确实有限的抽象,虽然能够产生一些边界效应,如记录日志文件或者将结果写入一个共享数据结构里,但是不能返回一个值或者抛出检测异常。
很多任务会引起严重的计算延迟——执行DB查询,从网络上获取资源,复杂计算等。对于这些任务,Callable是更佳的抽象。
Runnable和Callable描述的是抽象的计算型任务,这些任务通常是有限的:有一个明确的开始点,而且最终会结束。一个Executor执行的任务的生命周期可有四个阶段:
created --> submitted --& ...
【JMS】JMS介绍
- 博客分类:
- 【**JAVA EE】
JMS :Java Message Services(Java消息服务)
注:接下来关于JMS的学习笔记来自《Java 消息服务(第2版)》及网上资料
一. 消息传送机制基础
二. 示例程序
注:《重构与模式》将构造重构成created method,在线程池的创建中隐约看到些影子,故希望能比较下
获得线程池实例
1.ThreadPoolExecutor构造
提供了四个构造如下:
ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue<Runnable> workQueue)
ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, ...
理论
1. 大学课程
http://www.cogs.susx.ac.uk/courses/dist-sys/node1.html
2. 书籍
《Distributed Systems - Concepts and Design (5th Edition)》
分布式系统 概念与设计(中文第3版)
实践
并发容器与同步容器
并发容器:ConcurrentHashMap、ConcurrentSkipListMap。
同步容器:java.util.Collections中提供如下 “包装方法”。
public static <T> Collection<T> synchronizedCollection(Collection<T> c)
public static <T> List<T> ...
Java的集合框架大致可以分为四个体系
:List/Set/Queue/Map。其中List/Set/Queue来自Collection根接口,Map来自Map根接口。
注意:Iterator迭代Collection集合
,迭代过程中,避免对collection更改,除非通过Iterator删除(remove),否则会抛 ...
【Java】
并发编程
网络编程
【数据库】
ACID
http://nemogu.iteye.com/admin/blogs/1388978
Scalability
http://www.julianbrowne.com/article/viewer/scalability
【分布式】
分布式基本理论
http://www.cogs.susx.ac.uk/courses/dist-sys/node1.html
【数据结构与算法】
【06-10】
1.一个“高速缓存”的演进
====02.09====
*1.复习 分布式计算的演变, ...
Brewer’s CAP Theorem
- 博客分类:
- 【**分布式】
概念
什么领域?解决什么问题or涉及什么问题?
Consistency
一个服务是一致的完整操作或完全不操作(A service that is consistent operates fully or not at all,精确起见列出原文,也有人将其简称为数据一致性,我的理解这条是强调一 ...
概念
Atomicity
Main article: Atomicity (database systems)
Atomicity requires that database modifications must follow an "all or nothing" rule. Each transaction is said to be atomic. If one part of the transaction fails, the entire transaction fails and the database state is left unch ...