一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

JAVA科普:分布式和集群

Linux閱碼場 ? 來源:未知 ? 作者:胡薇 ? 2018-07-01 09:53 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

1. 分布式

小明的公司有3個系統(tǒng): 系統(tǒng)A、系統(tǒng)B和系統(tǒng)C ,這三個系統(tǒng)所做的業(yè)務(wù)不同,被部署在3個獨立的機器上運行, 他們之間互相調(diào)用(當(dāng)然是跨域網(wǎng)絡(luò)的), 通力合作完成公司的業(yè)務(wù)流程。

將不同的業(yè)務(wù)分布在不同的地方, 這就構(gòu)成了一個分布式的系統(tǒng),現(xiàn)在問題來了, 系統(tǒng)A是整個分布式系統(tǒng)的“臉面”, 用戶直接訪問,用戶量訪問大的時候要么是速度巨慢,要么直接掛掉, 怎么辦?

由于系統(tǒng)A只有一份, 所以會引起單點失敗。

2集群(Cluster)

小明的公司不差錢,就多買幾臺機器吧, 小明把系統(tǒng)A一下子部署了好幾份(例如下圖的3個服務(wù)器),每一份都是系統(tǒng)A的一個實例, 對外提供同樣的服務(wù),這樣能睡個安穩(wěn)覺了,不怕其中一個壞掉了,我還有另外2個呢。

這3個服務(wù)器上的系統(tǒng)就組成了一個集群。

可是對用戶來說,一下子出現(xiàn)這么系統(tǒng)A ,每個系統(tǒng)的IP地址都不一樣, 到底訪問哪一個?

如果所有人都訪問服務(wù)器1.1 ,那服務(wù)器1.1 會被累死, 剩下的三個閑死,成了浪費錢的擺設(shè)。

3負載均衡(Load Balancer)

小明要盡可能的讓3個機器上的系統(tǒng)A 工作均衡一些, 比如有3萬個請求,那就讓3個服務(wù)器各處理1萬個(當(dāng)然,這是理想狀況), 這叫負載均衡。

很明顯,這個負載均衡的工作最好獨立出來, 放到獨立的服務(wù)器上 (例如Ngnix):

后來小明發(fā)現(xiàn), 這個負載均衡的服務(wù)器雖然工作內(nèi)容很簡單,就是拿到請求,分發(fā)請求,但是它還是有可能掛掉啊,單點失敗還是會出現(xiàn)。

沒辦法,只好把負載均衡也搞成一個集群, 不過和系統(tǒng)A的集群有兩點不同:

1. 這個新的集群中雖然有兩個機器,但我們可以用某種辦法,讓這個集群對外只提供一個IP地址, 也就是說用戶看到的好像只有一個機器。

2.同一時刻,我們只讓一個負載均衡的機器工作, 另外一個原地待命。 如果工作的那個掛掉了,待命的那個就頂上去。

4彈性

如果這3個系統(tǒng)A的實例還是滿足不了大量的請求,那就再加服務(wù)器!

雙11來了,用戶量是平時的10倍, 小明向領(lǐng)導(dǎo)申請費用又買了幾十臺服務(wù)器,一下子把系統(tǒng)A部署了幾十份。 可是雙11過后, 流量一下子降下來了,那幾十個服務(wù)器用不上了,也變成了擺設(shè)!

被領(lǐng)導(dǎo)批評以后,小明決定嘗試一下云計算, 在云端可以輕松的創(chuàng)建、刪除虛擬的服務(wù)器, 那樣就可以輕松地隨著用戶的請求動態(tài)的增減服務(wù)器了。 雙11來了就創(chuàng)建虛擬服務(wù)器,等到雙11過去了就把不用的關(guān)掉, 省得浪費錢。

于是小明的系統(tǒng)具備了一定的彈性。

5失效轉(zhuǎn)移

上面的系統(tǒng)看起來很美好,但是做了一個不切實際的假設(shè): 所有的服務(wù)都是無狀態(tài)的。 換句話說,假設(shè)用戶的兩次請求直接是沒有關(guān)聯(lián)的。

但是現(xiàn)實是,大部分服務(wù)都是有狀態(tài)的, 例如購物車。

用戶訪問系統(tǒng),在服務(wù)器1.1上創(chuàng)建了一個購物車,并向其中加入了幾個商品, 然后 服務(wù)器1.1 掛掉了, 用戶的后續(xù)訪問就找不到服務(wù)器1.1了,這時候就要做失效轉(zhuǎn)移,讓另外幾個服務(wù)器去接管、去處理用戶的請求。

可是問題來了,在服務(wù)器1.2,1.3上有用戶的購物車嗎? 如果沒有, 用戶就會抱怨,我剛創(chuàng)建的購物車哪里去了?

還有更嚴(yán)重的,假設(shè)用戶是在服務(wù)器1.1上登錄的, 用戶登錄過的信息保存到了該服務(wù)器的session中, 現(xiàn)在這個服務(wù)器掛掉了, 用戶的session自然也不見了,當(dāng)用戶被失效轉(zhuǎn)移到其他服務(wù)器上的時候,其他服務(wù)器發(fā)現(xiàn)用戶沒有登錄, 就把用戶踢到了登錄界面, 讓用戶再次登錄!

狀態(tài), 狀態(tài),狀態(tài)! 用戶的登錄信息,購物車等都是狀態(tài)信息, 處理不好狀態(tài)的問題,集群的威力就大打折扣,無法完成真正的失效轉(zhuǎn)移, 甚至無法使用。

怎么辦?

一種辦法是把狀態(tài)信息在集群的各個服務(wù)器之間復(fù)制,讓集群的各個服務(wù)器達成一致, 誰來干這個事情? 只能是像Websphere, Weblogic這樣的應(yīng)用服務(wù)器了。

還有一種辦法, 就是把狀態(tài)信息集中存儲在一個地方, 讓集群的各個服務(wù)器都能訪問到:

小明聽說Redis 不錯, 那就用Redis來保存吧 !

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • JAVA
    +關(guān)注

    關(guān)注

    20

    文章

    2989

    瀏覽量

    109637
  • 集群
    +關(guān)注

    關(guān)注

    0

    文章

    111

    瀏覽量

    17436
  • 分布式
    +關(guān)注

    關(guān)注

    1

    文章

    997

    瀏覽量

    75400

原文標(biāo)題:小白科普:分布式和集群

文章出處:【微信號:LinuxDev,微信公眾號:Linux閱碼場】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    spark集群使用hanlp進行分布式分詞操作說明

    本篇分享一個使用hanlp分詞的操作小案例,即在spark集群中使用hanlp完成分布式分詞的操作,文章整理自【qq_33872191】的博客,感謝分享!以下為全文: 分兩步:第一步:實現(xiàn)
    發(fā)表于 01-21 10:45

    Java 中利用 redis 實現(xiàn)一個分布式鎖服務(wù)

    Java 中利用 redis 實現(xiàn)一個分布式鎖服務(wù)
    發(fā)表于 07-05 13:14

    如何在集群部署時實現(xiàn)分布式session?

    集群部署時的分布式 session 如何實現(xiàn)?
    發(fā)表于 07-17 06:57

    Hadoop集群分布式的搭建步驟

    Hadoop集群分布式搭建
    發(fā)表于 11-04 09:19

    分布式操作系統(tǒng)的相關(guān)資料分享

    文章目錄分布式操作系統(tǒng)嵌入操作系統(tǒng)集群操作系統(tǒng)集群系統(tǒng)管理分布式操作系統(tǒng)在以往的計算機系統(tǒng)中,其處理和控制功能都高度集中在一臺主機上,所有
    發(fā)表于 12-22 07:23

    Java網(wǎng)絡(luò)編程與分布式計算 pdf

    Java網(wǎng)絡(luò)編程與分布式計算清晰地介紹了聯(lián)網(wǎng)的基本原理,在進行網(wǎng)絡(luò)編程時需要掌握的主要概念,以及在聯(lián)網(wǎng)時可能遇到到的問題和Java的解決方案。同時通過實例來介紹如何運用
    發(fā)表于 09-26 23:13 ?0次下載
    <b class='flag-5'>Java</b>網(wǎng)絡(luò)編程與<b class='flag-5'>分布式</b>計算 pdf

    一種分布式集群系統(tǒng)

    本文研究了廣域網(wǎng)分布式集群的設(shè)計。與LVS 相比,這種集群的結(jié)構(gòu)雖然復(fù)雜,但是能夠克服傳統(tǒng)集群的局限性,提供質(zhì)量好,容量大,性價比高的解決方案。根據(jù)一種稱之為CG 樹
    發(fā)表于 06-25 13:55 ?14次下載

    EAST分布式服務(wù)器集群系統(tǒng)的設(shè)計與實現(xiàn)_楊玉嬌

    EAST分布式服務(wù)器集群系統(tǒng)的設(shè)計與實現(xiàn)_楊玉嬌
    發(fā)表于 03-19 11:26 ?0次下載

    基于Hadoop集群分布式入侵檢測系統(tǒng)的設(shè)計與實現(xiàn)_謝天宇

    基于Hadoop集群分布式入侵檢測系統(tǒng)的設(shè)計與實現(xiàn)_謝天宇
    發(fā)表于 03-18 09:53 ?0次下載

    ZooKeeper分布式橋梁開發(fā)

    從傳統(tǒng)Java Web轉(zhuǎn)入分布式系統(tǒng)應(yīng)用,再到接觸分布式協(xié)調(diào)框架ZooKeeper,通過痛苦的思維邏輯和理念轉(zhuǎn)變,歷經(jīng)一個月時間,小伙伴們終于把ZooKeeper嵌入到了BoCloud博云
    發(fā)表于 10-09 17:46 ?0次下載
    ZooKeeper<b class='flag-5'>分布式</b>橋梁開發(fā)

    集群分布式有什么區(qū)別

    經(jīng)常聽到MySql集群、Redis集群、分布式系統(tǒng)等概念,但是,很少有機會深究,到底什么集群,什么是分布式?在概念上這倆個詞很接近,難道不需
    的頭像 發(fā)表于 05-03 18:24 ?5391次閱讀

    Java:Redis分布式鎖的原理和案例

    要介紹分布式鎖,首先要提到與分布式鎖相對應(yīng)的是線程鎖、進程鎖。
    的頭像 發(fā)表于 07-01 11:49 ?4138次閱讀

    怎么區(qū)分分布式服務(wù)器和集群服務(wù)器?

      如何區(qū)分分布式服務(wù)器和集群服務(wù)器?許多朋友在選擇服務(wù)器時不知道分布式服務(wù)器和集群服務(wù)器的區(qū)別,所以他們不知道如何選擇它們。本文將告訴您分布式
    的頭像 發(fā)表于 11-29 15:20 ?1058次閱讀

    Java手寫分布式鎖的實現(xiàn)

    隨著互聯(lián)網(wǎng)業(yè)務(wù)的發(fā)展,原本單機部署的系統(tǒng)演化成如今的分布式集群系統(tǒng)后,由于分布式系統(tǒng)多線程
    的頭像 發(fā)表于 11-17 15:51 ?962次閱讀
    <b class='flag-5'>Java</b>手寫<b class='flag-5'>分布式</b>鎖的實現(xiàn)

    某證券公司智能云投資交易云集群高性能分布式存儲應(yīng)用

    某證券公司智能云投資交易云集群高性能分布式存儲應(yīng)用
    的頭像 發(fā)表于 09-27 09:57 ?587次閱讀
    某證券公司智能云投資交易云<b class='flag-5'>集群</b>高性能<b class='flag-5'>分布式</b>存儲應(yīng)用