特點:高併發、大流量、高可用、海量數據…
問題:性能、可用性、伸縮性、擴展性、安全性
措施:
- LB、nginx、多線程並行、MQ …
- 流控
- DB-sharding、讀寫分離、通用緩存ehcache、分佈式緩存Memcached、熱點緩存redis
- 冗餘備份,容災
- 分層-橫向切分、分割-縱向切分(業務)、分佈式、集羣、緩存、異步、自動化、冗餘、安全
RPC
核心
序列化:hession、java…
傳輸協議:http,tcp,MQ
統一服務管理中心 基於zookeeper
提供方、消費方
dubbo
JMS
Spring JMS + ActiveMQ
Websphere MQ
作業調度
Spring ThreadPoolTaskExecutor
Quartz框架
redis
使用jedis實現redis基本操作
緩存
分片-主備
分佈式鎖
數據庫分庫分表
集羣,緩解單點壓力
分庫:提高數據庫總連接數,提高併發量
計算某一條記錄的分庫數取模,分表數計算Hash
分表:緩解單表數據量較大帶來的檢索問題,一表500W數據
分區:PARTITION,數據存儲文件拆分,利於歸檔
MySQL
一主兩從,通過binlog實現主從複製
單元測試
Mock、PowerMock
TestNG
Maven
部署、打包
數據遷移
大數據平臺
抽數
Hive分佈式數據庫
全量、增量遷移(程序-todo-job)