摘要:
一、Netty粘包和拆包解決方案 Netty提供了多個解碼器,可以進行分包的操作,分別是: * LineBasedFrameDecoder (換行) LineBasedFrameDecoder是回車換行解碼器,如果用戶發(fā)送的消息以回車換行符作為消息結束的標識,則可以直接使用Netty的LineBas
閱讀全文
posted @ 2019-05-22 14:05
友帥老師
閱讀(1010)
推薦(0)
摘要:
一、粘包/拆包概念 TCP是一個“流”協(xié)議,所謂流,就是沒有界限的一長串二進制數(shù)據(jù)。TCP作為傳輸層協(xié)議并不不了解上層業(yè)務數(shù)據(jù)的具體含義,它會根據(jù)TCP緩沖區(qū)的實際情況進行數(shù)據(jù)包的劃分,所以在業(yè)務上認為是一個完整的包,可能會被TCP拆分成多個包進行發(fā)送,也有可能把多個小的包封裝成一個大的數(shù)據(jù)包發(fā)送,
閱讀全文
posted @ 2019-05-22 11:36
友帥老師
閱讀(476)
推薦(0)
摘要:
一、SocketChannelJava NIO中的SocketChannel是一個連接到TCP網(wǎng)絡套接字的通道。可以通過以下2種方式創(chuàng)建SocketChannel: 打開一個SocketChannel并連接到互聯(lián)網(wǎng)上的某臺服務器。一個新連接到達ServerSocketChannel時,會創(chuàng)建一個So
閱讀全文
posted @ 2019-05-21 17:10
友帥老師
閱讀(465)
推薦(0)
摘要:
一、分散/聚集 Scatter/Gather scatter/gather指的在多個緩沖區(qū)上實現(xiàn)一個簡單的I/O操作,比如從通道中讀取數(shù)據(jù)到多個緩沖區(qū),或從多個緩沖區(qū)中寫入數(shù)據(jù)到通道;scatter(分散):指的是從通道中讀取數(shù)據(jù)分散到多個緩沖區(qū)Buffer的過程,該過程會將每個緩存區(qū)填滿,直至通道
閱讀全文
posted @ 2019-05-21 17:00
友帥老師
閱讀(335)
推薦(0)
摘要:
一、Java NIO 概述 Java NIO 由以下幾個核心部分組成:ChannelsBuffersSelectors雖然Java NIO 中除此之外還有很多類和組件,但在我看來,Channel,Buffer 和 Selector 構成了核心的API。其它組件,如Pipe和FileLock,只不過是
閱讀全文
posted @ 2019-05-21 16:40
友帥老師
閱讀(510)
推薦(0)
摘要:
Java中流的概念 java程序通過流來完成輸入/輸出。流是生產(chǎn)或消費信息的抽象。流通過java的輸入/輸出與物理設備鏈接。盡管與它們鏈接的物理設備不盡相同,所有流的行為具有同樣的方式。這樣,相同的輸入/輸出類和方法適用于所有類型的外部設備。這意味著一個輸入流能夠抽象多種不同類型的輸入:從磁盤文件,
閱讀全文
posted @ 2019-05-21 16:01
友帥老師
閱讀(384)
推薦(0)
摘要:
本節(jié)通過案例介紹springboot與netty的集成 第一步:新建Spring Initializr 項目 我這里選擇Gradle項目,也可選擇Maven項目 (注意:最好選擇自己下載gradle,如下圖) 然后修改build.gradle文件,加入依賴(需要安裝Lombok插件) 接下來編寫服務
閱讀全文
posted @ 2019-05-21 11:13
友帥老師
閱讀(2050)
推薦(0)
摘要:
上節(jié)我們介紹了基于Thrift實現(xiàn)java與java的RPC調(diào)用,本節(jié)我們基于Thrift實現(xiàn)Java與Python的RPC調(diào)用 首先,修改data.thirft文件,將命名空間由java改為py 然后打開終端,輸入命令 thrift --gen py src/thrift/data.thrift
閱讀全文
posted @ 2019-05-20 16:28
友帥老師
閱讀(940)
推薦(0)
摘要:
一、概述 Apache Thrift 是 Facebook 實現(xiàn)的一種高效的、支持多種編程語言的遠程服務調(diào)用的框架。Thrift是由Facebook開發(fā)的,并在2008年捐給了Apache基金會,成為了一個孵化器項目。 Thrift 主要用于各個服務之間的RPC通信,支持跨語言,常用的語言比如C++
閱讀全文
posted @ 2019-05-20 09:20
友帥老師
閱讀(797)
推薦(1)
摘要:
protobuf是由Google開發(fā)的一套對數(shù)據(jù)結構進行序列化的方法,可用做通信協(xié)議,數(shù)據(jù)存儲格式,等等。其特點是不限語言、不限平臺、擴展性強 Netty也提供了對Protobuf的天然支持,我們今天就寫一個簡單的示例,簡單地了解一下Netty對Google的protoBuf的支持 場景設置: 我們
閱讀全文
posted @ 2019-05-18 16:24
友帥老師
閱讀(415)
推薦(0)