当前位置 > 主页 > 万和大讲堂 >


南京Java培训分享【干货】想学Java分布式?必看!

2016-12-07 14:24

  分布式——一个高大上的名词,是计算机软件设计中人民群众喜闻乐见的“逼格满满”、“不明觉厉”的几个名词之一。所以也是提升逼格的关键要素,但是,逼格高,不一定难度就大。今天南京万和Java培训和大家一起看一下关于分布式的相关问题以及推荐书单!


  分布式计算就是通过计算机网络将计算工作分布到多台主机上,多个主机一起协同完成工作。


  1.三步变成“分布式”


  1、将你的整个软件视为一个系统(不管它有多复杂)


  2、将整个系统分割为一系列的 Process(进程), 每个 Process 完成一定的功能


  3、将这些 Process 分散到不同的机器上。分散后,选择若干种(没错一种可能不够)通信协议把他们连接起来


  2.端正认识:分布式不等于并行计算


  分布式系统和并行计算一定可以并行吗?实际上并不一定,这是很多人在认识上的误区。举个简单的例子:


  某软件,功能如下:


  1、提示用户输入两个数 A 和 B


  2、在内部,对 A 和 B 执行某数学运算,获得 C


  3、输出 C


  这个三个步骤是无法并行的,需要依次执行。


  3.认识本质:拆分+链接是分布式系统的本质


  所谓分布式,无非就是”将一个系统拆分成多个子系统并散布到不同设备“的过程而已。


  本质上而言,实现一个分布式系统,最核心的部分无非有两点:


  如何拆分——可以有很多方式,核心依据一是业务需求,二是成本限制。这是实践中构建分布式系统时最主要的设计依据。


  如何连接——光把系统拆开成 Process 还不够,关键是拆开后的 Process 之间还要能通信,因此涉及通信协议设计的问题,需要考虑的因素很多,好消息是这部分其实成熟方案很多。


  4.分布式的作用


  1、扩展性能。系统负载高,单台机器无法承载,希望通过多台机器来提高系统地负载能力,这个时候分布式就可以发挥作用了。


  2、增强可靠性。软件,网络,机器随时都可能会出错,为了避免故障,需要将业务分散开。增强可靠性。


  5.实现分布不难,难的在于如何选择正确分布方案


  通常会有很多种分布方案摆在你面前,为了正确解决问题,你需要对每一种方案进行了解,评估,从而选择最大程度符合需求的方案。比如你对数据的一致性要求很高,就不得不容忍一些其他缺陷,如规模伸缩困难等,如果你放弃数据高一致性,就可以避免其他缺陷,而承担数据不一致带来的风险。选择不同的方案,有时对整个系统影响不大,有时会影响系统其他部分的工作方式甚至用户界面中用户操作的流程。更多内容,请咨询南京万和Java培训


  6.分布式入门学习要点


  分布式入门学习主要包括以下知识点:


  1、Process(进程)。进程是分布式系统中的基本单元。


  2、通信协议。进程间需要配合来完成工作,所以通信协议就成为了最基本要解决的问题。这部分涉及面很广,但是核心就有两点:一是存在哪些需求;二是各协议如何满足这些需求;


  3、协作。为什么要通信?因为要协作,协作最基本的问题是同步问题,而聊同步问题就会聊到“锁”,这里又包括了锁的实现,加锁,解锁等问题,这里就不一一展开了;


  4、命名法。通信当然需要有名字称呼,就像人和人之间的交流一样,所以进程需要有名字,可以是数字,也可以是结构化的符串;


  以上几点是最基础的知识,了解了这些就算入门了,如果要进阶,就需要接着了解下面的知识点:


  1、一致性。数据存储时最基本的问题。


  2、容错。冗余是容错的基础,但并不是全部,分布式本身为实现容错提供了一些便利,这也是设计系统时常常需要考虑的问题。


  7.分布式学习书单


  1、《大型分布式网站架构设计与实践》


  2、《大型网站技术架构:核心原理与案例分析》


  3、《大型网站系统与Java中间件实践》


  4、《分布式Java应用:基础与实践》


  5、《分布式Java应用:基础与实践》


  8.几个Java分布式缓存框架


  1、Ehcache – Java分布式缓存框架


  Ehcache是一个Java实现的开源分布式缓存框架,EhCache 可以有效地减轻数据库的负载,可以让数据保存在不同服务器的内存中,在需要数据的时候可以快速存取。


  2、Cacheonix – 高性能Java分布式缓存系统


  Cacheonix同样也是一个基于Java的分布式集群缓存系统,它同样可以帮助你实现分布式缓存的部署。


  3、ASimpleCache – 轻量级Android缓存框架


  ASimpleCache是一款基于Android的轻量级缓存框架,它只有一个Java文件,ASimpleCache基本可以缓存常用的Android对象,包括普通字符串、JSON对象、经过序列化的Java对象、字节数组等。


  4、JBoss Cache – 基于事物的Java缓存框架


  JBoss Cache是一款基于Java的事务处理缓存系统,它的目标是构建一个以Java框架为基础的集群解决方案,可以是服务器应用,也可以是Java SE应用。


  5、Voldemort – 基于键-值(key-value)的缓存框架


  Voldemort是一款基于Java开发的分布式键-值缓存系统,像JBossCache一样,Voldemort同样支持多台服务器之间的缓存同步,以增强系统的可靠性和读取性能。


  说了这么多,希望小伙伴们有收获,今天的干货知识就说到这里,想学习更多干货,欢迎来南京万和Java培训免费试听。


最近开班 more>
  • 全栈开发
  • 前端基础班
  • 软件测试
  • Java大数据开发工程师
  • 云原生精英班
  • 开发课程基础班第四期
  • 开发课程基础班第三期
  • 开发课程基础班第二期
  • 开发课程基础班第一期
  • Java Web UI Python
  • CISP
  • HCIE-Datacom(HCIA,HCIP基础)
  • HCIP-Datacom(HCIA基础)
  • HCIA-Datacom(0基础)
  • HCIE-Datacom(HCIA,HCIP基础)
  • HCIP-Datacom(HCIA基础)
  • HCIA-Datacom(0基础)
  • OCM 12C
  • OCP 19C
  • RHCE 9.0
  • 脱产班
  • 脱产班
  • 脱产班
  • 脱产班
  • 脱产班
  • 脱产班
  • 脱产班
  • 脱产班
  • 脱产班
  • vip班
  • 考试计划
  • 脱产班
  • 脱产班
  • 脱产班
  • 双休班
  • 双休班
  • 双休班
  • 双休班
  • 业余班
  • 业余班
  • 10月16日
  • 9月23日
  • 9月2日
  • 9月30日
  • 8月26日
  • 10月8日
  • 9月23日
  • 9月16日
  • 9月9日
  • 随时开课
  • 9月21日
  • 10月17日
  • 9月18日
  • 9月2日
  • 11月2日
  • 10月26日
  • 9月7日
  • ——
  • 随时开课
  • 9月26日
    • 姓 名 :
    • 电 话 :
    • 课 程 :

技术交流群

  • Java大数据交流群560819979加入
  • Python技术交流群595083299加入
  • Oracle技术交流群595119011加入
  • Web前端技术交流群604697610加入
  • Huawei技术交流群482919361加入
  • Redhat技术交流群587875348加入
  • UI设计技术交流群511649801加入
  • Cisco技术交流群596886705加入
  • IT运维技术交流群605888381加入