幫助中心 | 我的帳號 | 關於我們

Java高併發核心編程(卷3加強版億級用戶Web應用架構與實戰)

  • 作者:尼恩//德魯//李鵬舉//尤里烏斯|責編:趙軍
  • 出版社:清華大學
  • ISBN:9787302621416
  • 出版日期:2022/11/01
  • 裝幀:平裝
  • 頁數:440
人民幣:RMB 118 元      售價:
放入購物車
加入收藏夾

內容大鋼
    本書從動態代理模式、Reactor模式、三大限流策略等知識入手,深入淺出地剖析Spring Cloud+Nginx系統架構的核心原理以及Web高併發開發技術。全書從基礎設計模式和基礎原理出發,理論與實戰相結合,系統、詳盡地介紹Spring Cloud+Nginx高併發核心編程。
    本書共10章。前6章剖析Feign高併發RPC的底層原理,解析Hystrix高性能配置的核心選項,闡述Hystrix滑動窗口的核心原理;后4章介紹Nginx的核心原理及其配置,並結合秒殺場景實現Spring Cloud秒殺、Spring Cloud+Nginx Lua秒殺,為廣大Java開發者提供一個全面學習高併發開發的實戰案例。這些知識會為廣大Java工程師解決後台開發中遇到的高併發、高性能問題打下堅實的技術基礎。

作者介紹
尼恩//德魯//李鵬舉//尤里烏斯|責編:趙軍

目錄
第1章  億級用戶Web應用的架構與實操
  1.1  高併發基本原理
    1.1.1  響應時間
    1.1.2  吞吐量
    1.1.3  錯誤率
  1.2  提升系統的併發能力
    1.2.1  縱向擴展
    1.2.2  橫向擴展
    1.2.3  高併發架構中的分層策略
  1.3  接入層橫向擴展高併發架構
    1.3.1  硬負載均衡
    1.3.2  軟負載均衡
    1.3.3  LVS和Nginx的配合使用
    1.3.4  DNS負載均衡
  1.4  動靜分離與接入層的緩存架構
    1.4.1  接入層網關緩存
    1.4.2  CDN加速
    1.4.3  接入層的緩存架構的原則
  1.5  服務層的橫向擴展高併發架構
    1.5.1  微服務網關的高併發橫向擴展
    1.5.2  微服務Provider高併發橫向擴展
    1.5.3  微服務Provider的自動伸縮
  1.6  緩存層的高併發架構
    1.6.1  旁路緩存模式
    1.6.2  讀/寫穿透模式
    1.6.3  非同步回寫模式
    1.6.4  三大緩存使用模式的比較
    1.6.5  旁路緩存模式如何保證雙寫的數據一致性
    1.6.6  本地緩存架構
    1.6.7  多級、細粒度緩存架構
  1.7  數據層的橫向擴展高併發架構
    1.7.1  資料庫伺服器的能力參考數據
    1.7.2  結構化數據的高併發架構方案:分庫分表
    1.7.3  結構化分庫分表:水平拆分與垂直拆分
    1.7.4  億級庫表規模架構設計
    1.7.5  百億級庫表架構設計
    1.7.6  百億級數據的異構查詢
    1.7.7  ES+HBase組合方案的數據查詢過程
  1.8  億級用戶量場景下的流量預估
    1.8.1  請求處理模型
    1.8.2  舊系統的流量架構
    1.8.3  新系統的流量架構
    1.8.4  二八定律
    1.8.5  通過二八定律進行流量預估
  1.9  高併發架構
    1.9.1  同步架構
    1.9.2  非同步架構
  1.10  高可用架構
    1.10.1  什麼是高可用
    1.10.2  高可用的度量

    1.10.3  高併發架構中的分層策略
    1.10.4  分層規避單點瓶頸+自動故障轉移
    1.10.5  其他的高可用策略
  1.11  高性能架構
第2章  Spring Cloud+Nginx高併發核心編程的學習準備
  2.1  Spring Cloud+Nginx架構的主要組件
  2.2  Spring Cloud+Nginx核心知識的廣泛欠缺
  2.3  Spring Cloud和Spring Boot的版本選擇
  2.4  Spring Cloud微服務開發所涉及的中間件
  2.5  Spring Cloud微服務開發和自驗證環境
    2.5.1  開發和自驗證環境的系統選項和環境變數配置
    2.5.2  使用Fiddler工具抓包和查看報文
  2.6  crazy-Spring Cloud微服務開髮腳手架
  2.7  以秒殺作為Spring Cloud+Nginx的實戰案例
第3章  Spring Cloud入門實戰
  3.1  Eureka服務註冊與發現
    3.1.1  什麼是服務註冊與發現
    3.1.2  Eureka Server註冊中心
    3.1.3  微服務提供者Provider的創建和配置
    3.1.4  微服務提供者的續約(心跳)
    3.1.5  微服務提供者的健康狀態
    3.1.6  Eureka自我保護模式與失效Provider的快速剔除
  3.2  Config配置中心
    3.2.1  config-server服務端組件
    3.2.2  config-client客戶端組件
  3.3  微服務的RPC遠程調用
    3.3.1  RESTfull風格簡介
    3.3.2  RestTemplate遠程調用
    3.3.3  Feign遠程調用
  3.4  Feign+Ribbon實現客戶端負載均衡
    3.4.1  Spring Cloud Ribbon基礎
    3.4.2  Spring Cloud Ribbon的負載均衡策略
    3.4.3  Spring Cloud Ribbon的常用配置
  3.5  Feign+Hystrix實現RPC調用保護
    3.5.1  Spring Cloud Hystrix失敗回退
    3.5.2  分散式系統面臨的雪崩難題
    3.5.3  Spring Cloud Hystrix熔斷器
第4章  Spring Cloud RPC遠程調用核心原理
  4.1  代理模式與RPC客戶端實現類
    4.1.1  客戶端RPC遠程調用實現類的職責
    4.1.2  簡單的RPC客戶端實現類
    4.1.3  從基礎原理講起:代理模式與RPC客戶端實現類
    4.1.4  使用動態代理模式實現RPC客戶端類
    4.1.5  JDK動態代理機制的原理
  4.2  模擬的Feign RPC動態代理實現
    4.2.1  模擬Feign的MethodHandler方法處理器
    4.2.2  模擬Feign的InvokeHandler調用處理器
    4.2.3  模擬Feign動態代理RPC的執行流程
    4.2.4  模擬動態代理RPC遠程調用的測試
    4.2.5  Feign彈性RPC客戶端實現類

  4.3  Feign彈性RPC客戶端的重要組件
    4.3.1  演示用例說明
    4.3.2  Feign的動態代理RPC客戶端實例
    4.3.3  Feign的調用處理器InvocationHandler
    4.3.4  Feign的方法處理器MethodHandler
    4.3.5  Feign的客戶端組件
  4.4  Feign的RPC動態代理實例的創建流程
    4.4.1  Feign的整體運作流程
    4.4.2  RPC動態代理容器實例的FactoryBean工廠類
    4.4.3  Feign.Builder建造者容器實例
    4.4.4  默認的RPC動態代理實例創建流程
    4.4.5  Contract遠程調用協議規則類
  4.5  Feigh遠程調用的執行流程
    4.5.1  與FeignInvocationHandler相關的遠程調用執行流程
    4.5.2  與HystrixInvocationHandler相關的遠程調用執行流程
    4.5.3  Feign遠程調用的完整流程及其特性
  4.6  HystrixFeign動態代理實例的創建流程
    4.6.1  HystrixFeign.Builder建造者容器實例
    4.6.2  配置HystrixFeign.Builder建造者容器實例
  4.7  feign.Client客戶端容器實例
    4.7.1  裝配LoadBalancerFeignClient負載均衡容器實例
    4.7.2  包裝ApacheHttpClient實例的負載均衡客戶端裝配
    4.7.3  包裝OkHttpClient實例的負載均衡客戶端實例
    4.7.4  包裝Client.Default實例的負載均衡客戶端實例
第5章  RxJava響應式編程框架
  5.1  從基礎原理講起:觀察者模式
    5.1.1  觀察者模式的基礎原理
    5.1.2  觀察者模式的經典實現
    5.1.3  Rxjava中的觀察者模式
    5.1.4  RxJava的不完整回調
    5.1.5  RxJava函數式編程
    5.1.6  RxJava的Operators操作符
  5.2  創建型操作符
    5.2.1  just操作符
    5.2.2  from操作符
    5.2.3  range操作符
    5.2.4  interval操作符
    5.2.5  defer延遲創建操作符
  5.3  過濾型操作符
    5.3.1  filter操作符
    5.3.2  distinct操作符
  5.4  轉換型操作符
    5.4.1  map操作符
    5.4.2  flatMap操作符
    5.4.3  scan操作符
  5.5  聚合操作符
    5.5.1  count操作符
    5.5.2  reduce操作符
  5.6  其他操作符
    5.6.1  take操作符

    5.6.2  window操作符
  5.7  RxJava的Scheduler調度器
  5.8  背壓
    5.8.1  什麼是背壓問題
    5.8.2  背壓問題的幾種應對模式
第6章  Hystrix RPC保護的原理
  6.1  RPC保護的目標
  6.2  HystrixCommand簡介
    6.2.1  HystrixCommand的使用
    6.2.2  HystrixCommand的配置內容和方式
  6.3  HystrixCommand命令執行的方法
    6.3.1  execute()方法
    6.3.2  queue()方法
    6.3.3  observe()方法
    6.3.4  toObservable()方法
    6.3.5  HystrixCommand的執行方法之間的關係
  6.4  RPC保護之艙壁模式
    6.4.1  什麼是艙壁模式
    6.4.2  Hystrix線程池隔離
    6.4.3  Hystrix線程池隔離配置
    6.4.4  Hystrix信號量隔離
  6.5  RPC保護之熔斷器模式
    6.5.1  熔斷器狀態變化的演示實例
    6.5.2  熔斷器和滑動窗口的配置屬性
    6.5.3  Hystrix命令的執行流程
  6.6  RPC監控之滑動窗口實現原理
    6.6.1  Hystrix健康統計滑動窗口模擬實現
    6.6.2  Hystrix滑動窗口核心實現原理
第7章  微服務網關與用戶身份識別
  7.1  Zuul的基礎使用
  7.2  創建Zuul網關服務
    7.2.1  Zuul路由規則配置
    7.2.2  過濾敏感請求頭部
    7.2.3  路徑前綴的處理
  7.3  Zuul過濾器
    7.3.1  Zuul網關的過濾器類型
    7.3.2  實戰:用戶的黑名單過濾
  7.4  Spring Security原理和實戰
    7.4.1  Spring Security核心組件
    7.4.2  Spring Security的請求認證處理流程
    7.4.3  基於數據源的認證流程
  7.5  JWT+Spring Security進行網關安全認證
    7.5.1  JWT安全令牌規範詳解
    7.5.2  JWT+Spring Security認證處理流程
    7.5.3  Zuul網關與UAA微服務的配合
    7.5.4  使用Zuul過濾器添加代理請求的用戶標識
  7.6  微服務提供者之間的會話共享關係
    7.6.1  分散式會話的起源和實現方案
    7.6.2  Spring Session的核心組件和存儲細節
    7.6.3  Spring Session的使用和定製

    7.6.4  通過用戶身份標識查找session id
    7.6.5  查找或創建分散式會話
    7.6.6  載入高速訪問數據到分散式會話
第8章  Nginx/OpenResty詳解
  8.1  Nginx簡介
    8.1.1  正向代理與反向代理
    8.1.2  Nginx的啟動與停止
    8.1.3  Nginx的啟動命令和參數詳解
    8.1.4  Linux下Openresty的啟動、停止腳本
    8.1.5  Windows下Openresty的啟動、停止腳本
  8.2  Nginx的核心原理
    8.2.1  Reactor反應器模型
    8.2.2  Nginx的兩類進程
    8.2.3  Nginx的模塊化設計
    8.2.4  Nginx配置文件上下文結構
    8.2.5  Nginx的請求處理流程
    8.2.6  HTTP請求處理的11個階段
  8.3  Nginx的基礎配置
    8.3.1  events事件驅動配置
    8.3.2  虛擬主機配置
    8.3.3  錯誤頁面配置
    8.3.4  長連接相關配置
    8.3.5  訪問日誌配置
    8.3.6  Nginx核心模塊內置變數
  8.4  location路由規則配置詳解
    8.4.1  location語法詳解
    8.4.2  常用的location路由配置
  8.5  Nginx的rewrite模塊指令
    8.5.1  set指令
    8.5.2  rewrite指令
    8.5.3  if條件指令
    8.5.4  add_header指令
    8.5.5  指令的執行順序
  8.6  反向代理與負載均衡配置
    8.6.1  演示環境說明
    8.6.2  proxy_pass反向代理指令
    8.6.3  proxy_set_header指令
    8.6.4  upstream上游伺服器組
    8.6.5  upstream的上游伺服器配置
    8.6.6  upstream的負載分配方式
第9章  Nginx Lua編程
  9.1  Nginx Lua編程主要的應用場景
  9.2  Nginx Lua編程簡介
    9.2.1  ngx_lua簡介
    9.2.2  Nginx Lua項目的創建
    9.2.3  Lua項目的工程結構
    9.2.4  Lua項目的啟動
  9.3  Lua開發基礎
    9.3.1  Lua模塊的定義和使用
    9.3.2  Lua模塊的使用

    9.3.3  Lua的數據類型
    9.3.4  Lua的字元串
    9.3.5  Lua中的數組容器
    9.3.6  Lua的控制結構
    9.3.7  Lua的函數定義
    9.3.8  Lua的面向對象編程
  9.4  Nginx Lua編程基礎
    9.4.1  Nginx Lua的執行原理
    9.4.2  Nginx Lua的配置指令
    9.4.3  Nginx Lua的常用配置指令
    9.4.4  Nginx Lua的內置常量和變數
  9.5  Nginx Lua編程實例
    9.5.1  Lua腳本獲取URL中的參數
    9.5.2  Nginx Lua的內置方法
    9.5.3  通過ngx.header設置HTTP響應頭
    9.5.4  Lua訪問Nginx變數
    9.5.5  Lua訪問請求上下文變數
  9.6  重定向與內部子請求
    9.6.1  Nginx Lua內部重定向
    9.6.2  Nginx Lua外部重定向
    9.6.3  ngx.location.capture子請求
    9.6.4  ngx.location.capture_multi併發子請求
  9.7  Nginx Lua操作Redis
    9.7.1  Redis的CRUD基本操作
    9.7.2  實戰:封裝一個操作Redis的基礎類
    9.7.3  在Lua中使用Redis連接池
  9.8  Nginx Lua編程實戰案例
    9.8.1  Nginx+Redis進行分散式訪問統計
    9.8.2  Nginx+Redis+Java容器實現高併發訪問
    9.8.3  Nginx+Redis實現黑名單攔截
    9.8.4  使用Nginx Lua共享內存
第10章  限流原理與實戰
  10.1  使用Redis實現簡單限流策略
    10.1.1  3種限流策略:計數器、漏桶、令牌桶
    10.1.2  計數器限流原理和Java參考實現
    10.1.3  漏桶演算法限流原理和Java參考實現
    10.1.4  令牌桶限流原理和Java參考實現
  10.2  分散式計數器限流
    10.2.1  Nginx Lua分散式計數器限流
    10.2.2  Redis Lua分散式計數器限流
  10.3  Nginx漏桶限流詳解
  10.4  實戰:分散式令牌桶限流
    10.4.1  分散式令牌桶限流Lua腳本
    10.4.2  Java分散式令牌桶限流
    10.4.3  Java分散式令牌桶限流的自驗證
第11章  Spring Cloud Nginx秒殺實戰
  11.1  秒殺業務特定和技術難點
    11.1.1  秒殺系統的業務功能
    11.1.2  秒殺系統面臨的技術難題
  11.2  秒殺系統的系統架構

    11.2.1  秒殺的分層架構
    11.2.2  秒殺的限流架構
    11.2.3  秒殺的分散式鎖架構
    11.2.4  秒殺的削峰架構
  11.3  秒殺業務的參考實現
    11.3.1  秒殺的功能模塊和介面設計
    11.3.2  數據表和PO實體類設計
    11.3.3  使用分散式ID生成器
    11.3.4  秒殺的controller層設計
    11.3.5  service層邏輯:獲取秒殺令牌
    11.3.6  service層邏輯:執行秒殺下單
    11.3.7  秒殺的Lua腳本設計
    11.3.8  BusinessException業務異常定義
  11.4  Zuul內部網關實現秒殺限流
  11.5  Nginx高性能秒殺和限流
    11.5.1  Lua腳本:獲取秒殺令牌
    11.5.2  Lua腳本:執行令牌桶限流

  • 商品搜索:
  • | 高級搜索
首頁新手上路客服中心關於我們聯絡我們Top↑
Copyrightc 1999~2008 美商天龍國際圖書股份有限公司 臺灣分公司. All rights reserved.
營業地址:臺北市中正區重慶南路一段103號1F 105號1F-2F
讀者服務部電話:02-2381-2033 02-2381-1863 時間:週一-週五 10:00-17:00
 服務信箱:bookuu@69book.com 客戶、意見信箱:cs@69book.com
ICP證:浙B2-20060032