artificerpi

了解Java分布式系统

Java分布式

设计分布式系统的本质就是 “如何合理将一个系统拆分成多个子系统部署到不同机器上”。

分布式系统的设计应考虑以下几个问题:

  • 系统如何拆分为子系统?
  • 如何规划子系统间的通信?
  • 如何让子系统可以扩展?
  • 通信过程中的安全如何考虑?
  • 子系统的可靠性如何保证?
  • 数据的一致性是如何实现的?

 

通信

  •   基于消息方式实现系统间的通信
  •   基于远程调用实现系统间的通信

 这两种实现方式的具体代码方式可以分为基于Java自身技术实现和基于开源框架实现。

 

例子Hadoop

 

 

CAP 理论

分布式管理数据的三个重要属性:

Consistency (C): the data will be consistent throught the distributed system.

Availability (A): the data will be highly available.

Partitioning (P): the system will tolerate network partitioning.

该理论进一步指出,没有系统能同时具备这三个属性。

但是也有人认为,可以先实现其中的两个,另一个最终逐步实现就好。 比如hadoop的数据一致性是达到最终的一致而不是同步的。

 待更新...

 

参考:

https://waylau.gitbooks.io/distributed-java/content/docs/basic.html

http://static.googleusercontent.com/media/research.google.com/zh-CN//archive/gfs-sosp2003.pdf

http://docs.oracle.com/javaee/6/tutorial/doc/bnaay.html

posted @ 2016-10-06 18:09  artificerpi  阅读(1426)  评论(0)    收藏  举报

Copyright ©2017 artificerpi