1. 程式人生 > >用java搭建一個分散式伺服器(一)

用java搭建一個分散式伺服器(一)

本專欄主要介紹如何用java實現一個小型分散式(單機多程序模式)伺服器,希望能給剛開始學分散式的朋友一些幫助。講得不對的地方歡迎在評論區指出。
用到的主要技術棧:

netty 網路傳輸框架 
spring-boot
java網路程式設計
Java多執行緒和併發程式設計
RPC(遠端過程呼叫)方法的實現
ProtoBuf 傳輸序列化框架

下面來講給一些這些技術的基礎入門連結,因為這些技術的基礎不是本文的重點

1、Netty 網路傳輸框架

學習連結
Netty下載
想要深入瞭解netty,可到github上面去找一些netty的專案學學做做

我說說示例專案中會用到的netty知識

1、netty的protobuf擴充套件:netty作為底層網路傳輸框架,protobuf作為傳輸協議,二者是合
作的關係,所以必須得相互相容。
2、瞭解一下netty的事件驅動模型,最好去看看目前幾種比較常用的事件驅動模型的處理機制。
3、熟悉用netty開啟傳輸服務的流程和機制。

上面提到的內容在以後的講解中我都會一一說明。

2、spring-boot

同樣,想要深入瞭解spring-boot,可到github上面去找一些netty的專案學學做做

伺服器中會用到spring-boot的知識

1、搭建一個spring-boot的伺服器
2spring-boot如何與mysql進行互動
3
spring-boot自動裝載機制是如何實現的

3、Java網路程式設計、多執行緒和併發程式設計

這些知識屬於java核心技術中的基礎知識。
分散式程式設計核心的問題中也要解決一個多執行緒併發的問題,所以要學會掌握多執行緒程式設計是刻不容緩的。
另外,分散式服務一般不使用Tomcat等服務容器,所以自己接觸網路底層程式設計的機會就變多了,網路程式設計在即將開發的示例分散式伺服器中,主要是用於理解Netty網路互動的實質,有助於使開發人員理解網路傳輸實質。

4、RPC(遠端過程呼叫)

瞭解RPC
目前市面上有很多現成的RPC框架,比如Google的gRpc、HttpClient等。本專欄將以單獨的一篇部落格來講解如何實現多程序之間的遠端過程呼叫。

5、ProtoBuf 傳輸(反)序列化框架

版本3學習資料
官網需要翻牆才能訪問,此處就不貼連結了。