1,Dubbo、MQhtml
1)Dubbo是一個分佈式服務框架,致力於提供高性能和透明化的RPC遠程服務調用方案,以及SOA服務治理方案linux
2)Dubbo採用全Spring配置方式,透明化接入應用,對應用沒有任何API侵入,只需用Spring加載Dubbo的配置便可,Dubbo基於Spring的Schema擴展進行加載。瀏覽器
3)消息隊列(MQ)是一種應用程序對應用程序的通訊方法。應用程序經過寫和檢索出入列隊的針對應用程序的數據(消息)來通訊,而無需專用鏈接來連接它們。消息傳遞指的是程序之間經過在消息中發送數據進行通訊,而不是經過直接調用彼此來通訊,直接調用一般是用於諸如遠程過程調用的技術。排隊指的是應用程序經過隊列來通訊。隊列的使用除去了接收和發送應用程序同時執行的要求。緩存
4)RabbitMQ安全
是使用Erlang編寫的一個開源的消息隊列,自己支持不少的協議:AMQP,XMPP, SMTP, STOMP,也正是如此,使的它變的很是重量級,更適合於企業級的開發。同時實現了一個經紀人(Broker)構架,這意味着消息在發送給客戶端時先在中心隊列排隊。對路由(Routing),負載均衡(Load balance)或者數據持久化都有很好的支持。服務器
2,緩存穿透網絡
緩存穿透是指查詢一個必定不存在的數據,因爲緩存不命中,而且出於容錯考慮, 若是從存儲層查不到數據則不寫入緩存,這將致使這個不存在的數據每次請求都要到存儲層去查詢,失去了緩存的意義。app
三、Wi-Fi、DNS、BGP、ARP、HTTP、HTTPS、Socket、長連接負載均衡
1)Wi-Fi:框架
首先,用戶程序使用WifiManager類來管理Wifi模塊,它可以得到Wifi模塊的狀態,配置和控制Wifi模塊,而全部這些操做都要依賴Wifiservice類來實現。WifiService和WifiMonitor類是Wifi框架的核心
2)DNS :
是域名系統 (Domain Name System) 的縮寫,它是由解析器和域名服務器組成的。域名服務器是指保存有該網絡中全部主機的域名和對應IP地址,並具備將域名轉換爲IP地址功能的服務器
3)BGP:
BGP屬於外部網關路由協議,能夠實現自治系統間無環路的域間路由。BGP是溝通Internet廣域網的主用路由協議,例如不一樣省份、不一樣國家之間的路由大多要依靠BGP協議。BGP可分爲IBGP(Internal BGP)和EBGP(External BGP)。BGP的鄰居關係(或稱通訊對端/對等實體)是經過人工配置實現的,對等實體之間經過TCP(端口179)會話交互數據。BGP路由器會週期地發送19字節的保持存活keep-alive消息來維護鏈接。在路由協議中,只有BGP使用TCP做爲傳輸層協議。
4)ARP:
地址解析協議,即ARP(Address Resolution Protocol),是根據IP地址獲取物理地址的一個TCP/IP協議。
ARP通訊過程解析:
(1).好比在一個局域網上,一臺主機A(192.168.0.12)要訪問機器B(192.168.0.11)。他會發送一份稱做ARP請求的以太網數據幀給以太網上的每一個主機(廣播包)。ARP請求數據幀中包含目的主機的IP地址,意思就是:「若是你是這個IP地址的擁有者,請回答你的硬件地址。」
(2).目的主機收到這份廣播報文後,識別出這是發送端在尋問它的IP地址,因而發送一個ARP應答。這個ARP應答包含IP地址及對應的硬件地址。(非廣播)
(3).收到ARP應答後,系統的ARP緩存便會記錄MAC-IP的對應信息(ARP攻擊點),在CMD裏打arp -a即可查詢如今機器的ARP緩存狀況。如今IP數據報如今就能夠傳送了。
5)http:
http協議是指計算機通訊網絡中兩臺計算機之間進行通訊所必須共同遵照的規定或規則,超文本傳輸協議(HTTP)是一種通訊協議,它容許將超文本標記語言(HTML)文檔從Web服務器傳送到客戶端的瀏覽器。
HTTP協議,即超文本傳輸協議(Hypertext transfer protocol)。是一種詳細規定了瀏覽器和萬維網(WWW = World Wide Web)服務器之間互相通訊的規則,經過因特網傳送萬維網文檔的數據傳送協議。
HTTP協議是用於從WWW服務器傳輸超文本到本地瀏覽器的傳送協議。它可使瀏覽器更加高效,使網絡傳輸減小。它不只保證計算機正確快速地傳輸超文本文檔,還肯定傳輸文檔中的哪一部分,以及哪部份內容首先顯示(如文本先於圖形)等。
HTTP是一個應用層協議,由請求和響應構成,是一個標準的客戶端服務器模型。HTTP是一個無狀態的協議。
6)https:
https就是給http帶了一個安全套,即便別人拿到了信息,也不知道這個裏面裝的啥。客戶端(包括browser、手機app等)和服務器每次發http包的時候,都對這個包加個密,讓第三者看到的只是加密後的亂碼(我只想對你說:你猜你猜你猜猜猜),到對端之後再解密。
7)socket:
socket起源於Unix,而Unix/Linux基本哲學之一就是「一切皆文件」,均可以用「打開open –> 讀寫write/read –> 關閉close」模式來操做。個人理解就是Socket就是該模式的一個實現,socket便是一種特殊的文件,一些socket函數就是對其進行的操做(讀/寫IO、打開、關閉)
8)長連接
client向server發起鏈接,server接受client鏈接,雙方創建鏈接。Client與server完成一次讀寫以後,它們之間的鏈接並不會主動關閉,後續的讀寫操做會繼續使用這個鏈接。
四、軟件開發模型
正如任何事物同樣,軟件也有其孕育、誕生、成長、成熟和衰亡的生存過程,通常稱其爲「軟件生命週期」。軟件生命週期通常分爲6個階段,即制定計劃、需求分析、設計、編碼、測試、運行和維護。軟件開發的各個階段之間的關係不多是順序且線性的,而應該是帶有反饋的迭代過程。在軟件工程中,這個複雜的過程用軟件開發模型來描述和表示。
軟件開發模型是跨越整個軟件生存週期的系統開發、運行和維護所實施的所有工做和任務的結構框架,它給出了軟件開發活動各階段之間的關係。目前,常見的軟件開發模型大體可分爲以下3種類型。
1)以軟件需求徹底肯定爲前提的瀑布模型(Waterfall Model)。
2) 在軟件開發初始階段只能提供基本需求時採用的漸進式開發模型,如螺旋模型(Spiral Model)。
3) 以形式化開發方法爲基礎的變換模型(Transformational Model)。
瀑布模型
瀑布模型即生存週期模型,其核心思想是按工序將問題化簡,將功能的實現與設計分開,便於分工協做,即採用結構化的分析與設計方法將邏輯實現與物理實現分開。瀑布模型將軟件生命週期劃分爲軟件計劃、需求分析和定義、軟件設計、軟件實現、軟件測試、軟件運行和維護這6個階段,規定了它們自上而下、相互銜接的固定次序,如同瀑布流水逐級下落。
螺旋模型
螺旋模型將瀑布和演化模型(Evolution Model)結合起來,它不只體現了兩個模型的優勢,並且還強調了其餘模型均忽略了的風險分析。這種模型的每個週期都包括需求定義、風險分析、工程實現和評審4個階段,由這4個階段進行迭代。軟件開發過程每迭代一次,軟件開發又前進一個層次。
變換模型
變換模型是基於形式化規格說明語言及程序變換的軟件開發模型,它採用形式化的軟件開發方法對形式化的軟件規格說明進行一系列自動或半自動的程序變換,最後映射爲計算機系統可以接受的程序系統
噴泉模型
噴泉模型是一種以用戶需求爲動力,以對象爲驅動的模型,主要用於描述面向對象的軟件開發過程。該模型認爲軟件開發過程自下而上週期的各階段是相互重疊和屢次反覆的,就像水噴上去又能夠落下來,相似一個噴泉。各個開發階段沒有特定的次序要求,而且能夠交互進行,能夠在某個開發階段中隨時補充其餘任何開發階段中的遺漏。
智能模型
智能模型也稱爲「基於知識的軟件開發模型」,它把瀑布模型和專家系統結合在一塊兒,利用專家系統來幫助軟件開發人員的工做。該模型應用基於規則的系統,採用概括和推理機制,使維護在系統規格說明一級進行。這種模型在實施過程當中以軟件工程知識爲基礎的生成規則構成的知識系統與包含應用領域知識規則的專家系統相結合,構成這一應用領域軟件的開發系統。