架構探險:從零開始寫分佈式服務框架 架构探险:从零开始写分布式服务框架

李業兵

  • 出版商: 電子工業
  • 出版日期: 2017-07-01
  • 定價: $474
  • 售價: 8.5$403
  • 語言: 簡體中文
  • 頁數: 400
  • 裝訂: 平裝
  • ISBN: 7121319594
  • ISBN-13: 9787121319594
  • 相關分類: SOA程式語言
  • 立即出貨 (庫存=1)

買這商品的人也買了...

商品描述

分佈式服務框架目前已經是因特網公司實現SOA服務化架構的必備基礎設施,對於一般的開發而言,自己要獨立實現一個分佈式服務框架,還是有相當的難度的。本書圍繞如何從零開始實現一個可用的分佈式服務框架,介紹了實現分佈式服務框架所需技術的方方面面。對於從事開發行業的程序員有很大的現實價值。能夠從中學習到很多的實用技術,瞭解並掌握實現分佈式服務框架所需的思想以及技術。

海報:

作者簡介

李業兵

先後在支付寶運營支撐事業部、去哪兒網酒店事業部任職高級開發工程師。於2015年加入貓眼電影(原美團網旗下電影事業部),負責交易業務線架構與開發工作。
擅長電商交易領域系統設計與架構,在電商交易領域系統架構設計方面積累了較為豐富的實踐經驗。
對高並發系統設計、服務化架構、互聯網中間件開發保持著濃厚的興趣。

目錄大綱

第1章常用的RPC框架1 
1.1 RPC框架原理1 
1.2 RMI介紹2 
1.2.1原生RMI代碼示例3 
1.2.2 RMI穿透防火牆5 
1.3 CXF/Axis2介紹7 
1.3.1 CXF介紹7 
1.3.2 Axis2介紹14 
1.4 Thrift介紹21 
1.4.1 Thrift工作原理介紹23 
1.4.2 Thrift IDL語法說明26 
1.4.3基於Apache Thrift的Java版完整案例28 
1.4.4基於Java註解的簡化實現36 
1.5 gRPC介紹42 
1.5.1 protobuf3語法介紹43 
1.5.2 gRPC使用示例45 
1.6 HTTP Client介紹53 
1.6.1構建HttpClient對象54 
1.6.2構建URI對象55 
1.6.3構建請求對象(HttpGet、HttpPost) 56 
1.6.4 HttpClient發起調用及獲取調用返回結果56 
1.7實現自己的RPC框架61 
1.8 RPC框架與分佈式服務框架的區別68 
1.9本章小結68 

第2章分佈式服務框架總體架構與功能69 
2.1面向服務的體系架構(SOA) 69 
2.1. 1面向服務架構範式69 
2.1.2服務拆分原則71 
2.2分佈式服務框架現實需求72 
2.3分佈式服務框架總體架構及所需的技術概述72 
2.4本章小結74 

第3章分佈 服務框架序列化與反序列化實現75 
3.1序列化原理及常用的序列化介紹75 
3.2 Java默認的序列化77 
3.3 XML序列化框架介紹80 
3.4 JSON序列化框架介紹82 
3.5 Hessian序列化框架介紹87 
3.6 protobuf序列化框架介紹88 
3.7 protostuff序列化框架介紹93 
3.8 Thrift序列化框架介紹98 
3.9 Avro序列化框架介紹100 
3.9.1 Avro介紹100 
3.9.2 Avro IDL語言介紹101 
3.9.3 Schema定義介紹103 
3.9. 4 Maven配置及使用IDL與Schema自動生成代碼103 
3.9.5 Avro序列化/反序列化實現105 
3.10 JBoss Marshalling序列化框架介紹110 
3.11序列化框架的選型112 
3.12實現自己的序列化工具引擎113 
3.13本章小結118 

第4章實現分佈式服務框架服務的發布與引入119 
4.1 Spring Framework框架概述119 
4.1.1 Spring Framework介紹119 
4.1.2 Spring Framework周邊生態項目介紹121 
4.2 FactoryBean的秘密122 
4.2.1 FactoryBean的作用及使用場景123 
4.2.2 FactoryBean實現原理及示例說明124 
4.3 Spring 框架對於已有RPC框架集成的支持127 
4.3.1 Spring支持集成RPC框架介紹127 
4.3.2基於RmiProxyFactoryBean實現RMI與Spring的集成128 
4.3.3基於HttpInvokerProxyFactoryBean實現HTTP Invoker與Spring的集成131 
4.3.4基於HessianProxyFactoryBean實現Hessian與Spring的集成133 
4.4實現自定義服務框架與Spring的集成136 
4.4.1實現遠程服務的發布136 
4.4.2實現遠程服務的引入144 
4.5在Spring中定制自己的XML標籤150 
4.6本章小結158 

第5章分佈式服務框架註冊中心159 
5.1服務註冊中心介紹159 
5.2 ZooKeeper實現服務的註冊中心原理161 
5.2.1 ZooKeeper介紹161 
5.2.2部署ZooKeeper 161 
5.2.3 ZkClient使用介紹164 
5.2.4 ZooKeeper實現服務註冊中心173 
5.3集成ZooKeeper實現自己的服務註冊與發現175 
5.3.1服務註冊中心服務提供方175 
5.3.2服務註冊中心服務消費方176 
5.3.3服務註冊中心實現178 
5.4本章小結189 

第6章分佈式服務框架底層通信實現190 
6.1 Java I/ O模型及I/O類庫的進化190 
6.1.1 Linux下實現的I/O模型190 
6.1.2 Java語言實現的I/O模型194 
6.1.3 Java Classic I/O(Blocking I/O)介紹194 
6.1.4 Java Non-blocking I/O(NIO)介紹211 
6.1.5 NIO2及Asynchronous I/O介紹233 
6.2 Netty使用介紹255 
6.2.1 Netty開發入門256 
6.2.2 Netty粘包/半包問題解決265 
6.3使用Netty構建服務框架底層通信320 
6.3.1構建分佈式服務框架Netty服務端320 
6.3.2構建分佈式服務框架服務調用端Netty客戶端330 
6.4本章小結347 

第7章分佈式服務框架軟負載實現348 
7.1軟負載的實現原理348 
7.2負載均衡常用算法349 
7.2.1軟負載隨機算法實現349 
7.2.2軟負載加權隨機算法實現350 
7.2.3軟負載輪詢算法實現351 
7.2.4軟負載加權輪詢算法實現352 
7.2.5軟負載源地址hash算法實現354 
7.3實現自己的軟負載機制355 
7.4軟負載在分佈式服務框架中的應用357 
7.5本章小結361 

第8章分佈式服務框架服務治理362 
8.1服務治 理介紹362 
8.2服務治理的簡單實現364 
8.2.1服務分組路由實現364 
8.2.2簡單服務依賴關係分析實現374 
8.2.3服務調用鏈路跟踪實現原理380 
8.3本章小結380 
附錄A如何配置運行本書完成的分佈式服務框架381