如果使用java多線程查詢,必須使用CyclicBarrier,等待所有結果都查詢完成合并結果集,或者使用dblink,然后HINT方式使用并行Parallell,利用數(shù)據的并行技術進行查詢
十年的郁南網站建設經驗,針對設計、前端、開發(fā)、售后、文案、推廣等六對一服務,響應快,48小時及時工作處理。網絡營銷推廣的優(yōu)勢是能夠根據用戶設備顯示端的尺寸不同,自動調整郁南建站的顯示方式,使網站能夠適用不同顯示終端,在瀏覽器中調整網站的寬度,無論在任何一種瀏覽器上瀏覽網站,都能展現(xiàn)優(yōu)雅布局與設計,從而大程度地提升瀏覽體驗。成都創(chuàng)新互聯(lián)公司從事“郁南網站設計”,“郁南網站推廣”以來,每個客戶項目都認真落實執(zhí)行。
Twitter-Snowflake算法產生的背景相當簡單,為了滿足Twitter每秒上萬條消息的請求,每條消息都必須分配一條唯一的id,這些id還需要一些大致的順序(方便客戶端排序),并且在分布式系統(tǒng)中不同機器產生的id必須不同。各種主鍵ID生成策略對比,見 常見分布式主鍵ID生成策略
把 41位的時間前綴 , 10位的節(jié)點標識 , 12位的sequence 組合在一起。
除了最高位bit標記為不可用以外,其余三組bit占位均可浮動,看具體的業(yè)務需求而定。 默認情況下41bit的時間戳,1970年算起可以支持該算法使用到2038年,10bit的工作機器id可以支持1024臺機器,序列號支持1毫秒產生4096個自增序列id 。
Snowflake是Twitter在2010年用Scala語言寫的一套主鍵生成策略,用Thrift對外發(fā)布主鍵生成服務,其中依賴了Twitter內部的Infrastructure,后來Twitter用 Twitter-server 代替了Snowflake,自2012年起就未更新。見 Twitter-Snowflake項目地址(Tags:snowflake-2010)
之前寫了一個Java的實現(xiàn),改自網上一個版本: Twitter的分布式自增ID算法Snowflake實現(xiàn)分析及其Java、Php和Python版 。后來看到當當網的 Sharding-JDBC 分庫分表中間件已實現(xiàn)了此算法。就直接在其中添加了一些新特性,已merge。( 具體實現(xiàn) , 說明文檔 )
添加3種IdGenerator實現(xiàn)。
用筆記本(i7-3632QM 2.2GHz 四核八線程)測試了下,每秒生成409萬(理論上的峰值),CPU占用率18.5%。
分庫分表要看數(shù)據量有多大
一般一個表數(shù)據超過幾個G就應該進行分表操作,非常大的話可以進行分庫操作
水平分表的話,200張,你應該按照實際需求去做,因為200畢竟不是一個小數(shù)目,首先舉個例子,就像電話號碼,130開頭的一張表,131開頭的一張表,但是你這個具體就不知道了,還有就是例如按照單數(shù)雙數(shù)分也可,然后最好是按照主鍵列去分表會比較合乎規(guī)范。
/*回答內容很長,能看完的少走一個月彎路,絕不抖機靈*/
提前預警:本文適合Java新手閱讀(老手可在評論區(qū)給下建議),希望大家看完能有所收獲。
廢話不多少了,先了解一下Java零基礎入門學習路線:
第一階段:JavaSE階段
變量、數(shù)據類型、運算符
二進制和十進制的轉化
注釋、單行注釋、多行注釋、文本注釋、注釋內容和字節(jié)碼的關系
標識符、關鍵字、駝峰原則
變量的本質、內存畫圖、變量聲明和初始化
變量的分類和作用域(局部變量、成員變量、靜態(tài)變量)
常量和Final
基本數(shù)據類型介紹
整型變量和整型常量
浮點類型、float、double
char字符型、轉義字符
boolean布爾型、if語句使用要點、布爾類型占用空間問題
運算符介紹
算數(shù)運算符(二元、自增、自減)
賦值和賦值運算符
關系運算符詳解
邏輯運算符、短路運算符詳解
位運算符詳解
字符串連接符
條件運算符(三元運算符)
運算符優(yōu)先級問題
自動類型轉換詳解
強制類型裝換詳解
基本數(shù)據類型裝換常見錯誤、溢出、L問題
使用Scanner獲取鍵盤輸入
控制語句
控制語句和實現(xiàn)邏輯對應
if單選結構
if_elseif_else多選結構
switch語句_IDEA更換主題
循環(huán)_while
循環(huán)_for循環(huán)_dowhile
嵌套循環(huán)
break和continue語句_標簽_控制語句底層原理
寫一個年薪計算機_百度查問題的秘訣(重要)
個人所得稅計算器軟件
方法核心詳解_天才思維模型教你高手學習思維模式
方法的重載
遞歸結構講解_遞歸頭_遞歸體
面向對象編程-基礎
面向過程和面向對象的區(qū)別
類和對象的概述
類的屬性和方法
創(chuàng)建對象內存分析
構造方法(Construtor)及重載
對象類型的參數(shù)傳遞
this關鍵字
static關鍵字詳解
局部代碼塊、構造代碼塊和靜態(tài)代碼塊
package和import詳解
JavaDoc生成API文檔
面向對象編程-進階
面向對象的三大特性
面向對象之【封裝(Encapsulation)】
訪問權限修飾符
面向對象之【繼承(Inheritance)】
Object類
方法重寫Override
super關鍵字詳解
重寫equals()和toString()
繼承中對象創(chuàng)建的內存分析
面向對象之【多態(tài)(Polymorphism)】
向上轉型
向下轉型
instanceof運算符
編譯時和運行時詳解
final修飾符
抽象類和抽象方法(abstrct)
接口的定義和實現(xiàn)
JDK8的接口新特性
接口應用:內部類比較器Comparable
內部類詳解
Java的內存管理與垃圾回收
異常機制
異常的概述
異常的執(zhí)行過程與分析
try-catch-finally捕捉異常
throw拋出異常
throws聲明異常
異常繼承體系
運行時異常和編譯異常
自定義異常
Java常用類
Wrapper包裝類
自動裝箱和自動拆箱
包裝類的源碼分析
String類的使用與內存原理
String類的源碼分析
StringBuffer
StringBuilder
字符串處理類性能分析
Date類
System類
DateFormat類
Calendat類
Math類
BigInteger類和BigDecimal類
Random類
枚舉類
File類
常見的面試題講述與分析
數(shù)據結構算法
數(shù)據結構的概述
線性表
順序表
鏈表
棧和隊列
樹
二叉樹
二叉查找樹
二叉平衡樹
黑紅樹
圖
冒泡排序
選擇排序
遞歸
折半查找
集合(容器)
集合和數(shù)組的聯(lián)系和區(qū)別
集合框架體系
ArrayList的使用和源碼分析
集合中使用泛型
LinkedList的使用和源碼分析
HashSet的使用和源碼分析
哈希表及原理
TreeSet的使用和源碼分析
比較器Comparable和Comparator
HashMap的使用和源碼分析
TreeMap的使用和源碼分析
Iterator于ListIterator
Collections工具類
舊集合類Vector、Hashtable
集合總結和選擇依據
泛型接口
泛型類
泛型方法
IO流
IO流的概念
IO流的分類及其原理分析
文件流FlieInputStream、FileOutputStream
緩沖流BufferedInputStream、BufferedOutputStream
數(shù)據流ObjectInputStream、ObjectOutputStream
序列化和反序列化
轉換流InputStreamReader、OutputStreamWriter
打印流PrintWrite和PrintStream
數(shù)組流ByteArrayOutputStream、ByteArrayInputStream
使用IO復制文件夾
多線程
進程和線程
線程的創(chuàng)建與啟動
創(chuàng)建線程的三種方式對比
線程的生命周期
線程控制
多線程的安全問題與解決辦法
線程的同步:同步代碼塊
線程的同步:同步方法
線程的同步:Lock鎖
線程的死鎖問題
線程通信
Condition
線程的完整生命周期
線程池ThreadPoolExecutor
ForkJoin框架
ThreadLocal類
網絡編程
計算機網絡基礎知識
網絡通信協(xié)議
OSI參考模型
TCP/IP參考模型
數(shù)據的封裝與拆封原理解析
TCP協(xié)議
UDP協(xié)議
IP地址和端口號
URL和Socket
使用TCP編程實現(xiàn)登錄功能
使用UDP編程實現(xiàn)客服系統(tǒng)
使用TCP編程實現(xiàn)文件上傳
集合提升尋訓練
手寫ArrayList
手寫單鏈表
手寫Linkedlist
手寫HashMap
手寫HashSet
最新并發(fā)集合類
多線程提升訓練
生產者消費者模式擴展
Lock鎖和Condition
ReadWriteLock
BlockingQueue
volatile關鍵字
多線程題目練習
JDK新特征
面試題詳解
設計模式
設計模式入門
面向對象設計七大原則
簡單工廠模式
工廠方法模式
單例模式
原型模式
裝飾模式
適配器模式
外觀模式
第二階段:數(shù)據庫
MySQL基礎
數(shù)據庫基礎知識
MySQL基礎知識
MySQL8新特征
安裝和卸載MySQL8
使用navicat訪問數(shù)據庫
SQL語言入門
創(chuàng)建數(shù)據庫表
DML
修改刪除數(shù)據庫表
表的完整性約束
表的外鍵約束
DML擴展
MySQL 查詢語句
基本select查詢
where子句
函數(shù)
group by
having
SQL99-內連接查詢
SQL99-外連接查詢
SQL99-自連接查詢
SQL92-連接查詢
不相關子查詢
相關子查詢
分頁查詢
數(shù)據庫對象
索引
事務及其特征
事務的并發(fā)問題
事務的隔離級別
存儲過程
導入導出數(shù)據
JDBC
JDBC概述
使用JDBC完成添加/更新/刪除操作
使用JDBC完成查詢操作
JDBC常用接口
使用PreparedStatement
使用事務完成銀行轉賬
提取DBUtil工具類
使用Properties讀寫屬性文件
日志框架log4j
開發(fā)員工管理系統(tǒng)
第三階段:JavaEE階段
Servlet
web開發(fā)概述
B/S和C/S架構簡介
HTTP協(xié)議
HTTP請求頭和響應頭
Tomcat安裝使用
Tomcat目錄結構
Servlet概述
Servlet快速入門
Servlet生命周期
讀取配置文件信息
HttpServletRequest
HttpServletResponse
GET和POST區(qū)別
解決中文亂碼
請求轉發(fā)與重定向
絕對路徑和相對路徑
Cookie
Session
ServletContext
ServletConfig
JSP
JSP技術介紹
JSP的執(zhí)行過程
scriptlet
表達式
聲明
JSP指令元素
JSP動作元素
JSP隱式對象
JSP底層原理
九大內置對象
四個作用域
Servlet和JSP的關系和區(qū)別
MVC模式
合并Servlet
JavaScript
JavaScript概述與特點
JS基礎語法
函數(shù)
數(shù)組
Math對象
String對象
Date對象
事件event
瀏覽器開發(fā)者工具
console
DOM和BOM
window
location
navigator
history
認識DOM
DOM獲取元素
jQuery
jQuery簡介及快速入門
jQuery入口函數(shù)
jQuery對象與DOM對象互相轉換
基本選擇器
屬性選擇器
位置選擇器
表單選擇器
內容選擇器
jQuery事件
jQuery動畫效果
DOM操作-操作文本
DOM操作-操作屬性
DOM操作-操作元素
直接操作CSS樣式
操作CSS類樣式
購物車案例
表單驗證
正則表達式
EL+JSTL+過濾器+監(jiān)聽器
EL介紹及使用
EL取值原理
EL隱含對象
EL邏輯運算
JSTL介紹-核心標簽庫
JSTL核心標簽庫
JSTL-格式標簽庫
Filter原理
Filter生命周期
Filter鏈
Filter登錄驗證
Filter權限控制
Listener概述及分類
Listener監(jiān)聽在線用戶
Ajax和JSON
Ajax異步請求和局部刷新的原理
使用原生Ajax驗證用戶唯一性
jQuery Ajax
JSON的格式和使用
主要JSON解析器
Jackson的使用
Jackson的實現(xiàn)原理
使用jQuery Ajax實現(xiàn)三級聯(lián)動
使用jQuery Ajax實現(xiàn)自動補全
分頁和文件上傳/下載
分頁的意義
理解分頁工具類
實現(xiàn)基本分頁
實現(xiàn)帶查詢的分頁
文件上傳原理
文件上傳API
實現(xiàn)文件上傳
文件下載原理
文件下載響應頭
實現(xiàn)文件下載
第四階段:框架階段
MyBatis
MyBatis概述
MyBatis入門配置
基本的CRUD操作
核心配置文件詳解
Mapper.xml基礎詳解
模糊查詢
分頁的實現(xiàn)及插件PageHelper的使用
動態(tài)sql+sql片段的使用
一對多、多對一的關系處理
注解的使用
一級緩存和二級緩存說明及使用
generator逆向工程使用
Spring
Spring框架簡介
Spring官方壓縮包目錄介紹
Spring環(huán)境搭建
IoC/DI容器詳解
Spring創(chuàng)建Bean的三種方式
scope屬性講解
Spring中幾種注入方式
靜態(tài)代理設計模式
動態(tài)代理設計模式
AOP詳解
AOP中幾種通知類型
AOP兩種實現(xiàn)方式
自動注入
聲明式事務
事務傳播行為
事務隔離級別
只讀事務
事務回滾
基于注解式配置
常用注解
Spring 整合MyBatis
i18n
Spring整合Junit
SpringMVC
MVC架構模式
手寫MVC框架
SpringMVC簡介
SpringMVC運行原理
基于配置文件方式搭建環(huán)境
基于注解方式搭建環(huán)境
SpringMVC的跳轉及視圖解析器的配置
SpringMVC和Ajax的交互
Spring 參數(shù)注入
SpringMVC作用域傳值
視圖解析器
文件下載
文件上傳
Spring攔截器/攔截器棧
登錄狀態(tài)驗證
SpringMVC容器和Spring容器介紹
異常處理4種方式
SpringMVC5其他常用注解
Maven
Maven簡介
Maven原理
Linux安裝及注意事項
Maven項目結構
POM模型
Maven 中項目類型
創(chuàng)建WAR類型的Maven項目
scope屬性可取值
SSM項目拆分演示
Maven的常見插件講解
熱部署
BootStrap
BootStrap概述
BootStrap柵格系統(tǒng)
BootStrap常用全局CSS樣式
常用組件
常用JavaScript插件
RBAC
RBAC概述
RBAC發(fā)展歷史
基于RBAC的數(shù)據庫表設計
URL攔截實現(xiàn)
動態(tài)菜單實現(xiàn)
密碼學
第五階段:前后端分離階段
Spring Boot
Spring Boot簡介
Spring Boot實現(xiàn)Spring MVC
配置文件順序及類型講解
Spring Boot項目結構
Spring Boot 整合MyBatis
Spring Boot 整合Druid
Spring Boot 整合PageHelper
Spring Boot 整合logback
Spring Boot 整合JSP
Spring Boot 整合Thymeleaf
Spring Boot 開發(fā)者工具
Spring Boot 異常顯示頁面
Spring Boot 整合Junit4
Spring Boot 項目打包部署
Spring Boot 整合Quartz
Spring Boot 中Interceptor使用
Spring Boot Actuator
HikariCP
Logback
Logback簡介
Logback依賴說明
Logback 配置文件講解
Logback 控制臺輸出
Logback 文件輸出
Logback 數(shù)據庫輸出
Spring Security
Spring Security簡介
Spring Security架構原理
什么是認證和授權
基礎環(huán)境搭建
自定義認證流程
UserDetailsService和UserDetails
PasswordEncoder
自定義認證結果
授權-訪問路徑匹配方式
授權-權限管理
基于注解實現(xiàn)權限管理
Thymeleaf整合Security權限管理
Rememberme 實現(xiàn)
退出實現(xiàn)
CSRF
Linux - CentOS 8
Linux簡介
VMWare安裝及使用
Linux安裝及注意事項
Linux目錄結構及路徑
Linux常用命令
VMWare常用配置
XShell安裝及使用
Xftp安裝及使用
JDK解壓版配置步驟
Tomcat配置步驟
安裝MySQL
WAR包部署
Docker
Docker簡介
Docker與VM對比
Docker特點
Docker架構
Docker安裝與啟動
鏡像加速器配置
Docker鏡像操作常用命令
Docker容器操作常用命令
DockerFile
搭建本地鏡像倉庫
推送鏡像到阿里云及本地倉庫
Docker容器生命周期
Docker數(shù)據管理
Redis
Redis簡介
Redis 單機版安裝
Redis 數(shù)據類型介紹
Redis 常用命令
Redis 持久化方案
Redis 的主從搭建
Redis的哨兵搭建
Redis 的集群搭建
Spring Boot整合Spring Data Redis
Redis的緩存穿透
Redis的緩存雪崩
Redis的緩存擊穿
Vue
vsCode和插件安裝
webpack介紹
Vue項目創(chuàng)建
Vue模板語法
Vue條件渲染
Vue列表渲染
Vue事件處理
Vue計算屬性
Vue Class與Style
Vue表單處理
Vue組件
Vue組件生命周期
Vue 路由配置
Vue Axios網絡請求
Vue跨域處理
Vue Element
Mock.js
Swagger
Swagger2簡介
Springfox
Swagger2基本用法
Swagger-UI用法
Swagger2配置
Swagger2常用配置
Git/GitEE
Git的下載和安裝
Git和SVN對比
Git創(chuàng)建版本庫
Git版本控制
Git遠程倉庫
Git分支管理
Git標簽管理
GitEE建庫
GitEE 連接及使用
GitEE 組員及管理員配置
第六階段:微服務架構
FastDFS
分布式文件系統(tǒng)概述
FastDFS簡介
FastDFS架構
Tracker Server
Storage Server
FastDFS安裝
安裝帶有FastDFS模塊的Nginx
Fastdfs-java-client的使用
創(chuàng)建Fastdfs-java-client工具類
實現(xiàn)文件上傳與下載
KindEditor介紹
通過KindEditor實現(xiàn)文件上傳并回顯
RabbitMQ
AMQP簡介
RabbitMQ簡介
安裝Erlang
安裝RabbitMQ
RabbitMQ原理
Spring Boot 集成RabbitMQ
RabbitMQ的交換器
Spring AMQP的使用
Spring Cloud Netflix Eureka
Eureka簡介
Eureka和Zookeeper 對比
搭建Eureka注冊中心
Eureka 服務管理平臺介紹
搭建高可用集群
集群原理
Eureka優(yōu)雅停服
Spring Cloud Netflix Ribbon
Ribbon簡介
集中式與進程內負載均衡區(qū)別
Ribbon常見的負載均衡策略
Ribbon的點對點直連
Spring Cloud OpenFeign
Feign簡介
Feign的請求參數(shù)處理
Feign的性能優(yōu)化
配置Feign負載均衡請求超時時間
Spring Cloud Netflix Hystrix
Hystrix簡介
服務降級
服務熔斷
請求緩存
Feign的雪崩處理
可視化的數(shù)據監(jiān)控Hystrix-dashboard
Spring Cloud Gateway
Spring Cloud Gateway簡介
Gateway基于配置文件實現(xiàn)路由功能
Gateway基于配置類實現(xiàn)路由功能
Gateway中內置過濾器的使用
Gateway中自定義GatewayFilter過濾器的使用
Gateway中自定義GlobalFilter過濾器的使用
Gateway中使用過濾器實現(xiàn)鑒權
Gateway結合Hystrix實現(xiàn)熔斷功能
Spring Cloud Config
什么是分布式配置中心
創(chuàng)建配置中心服務端
創(chuàng)建配置中心客戶端
基于Gitee存儲配置文件
基于分布式配置中心實現(xiàn)熱刷新
Spring Cloud Bus
什么是消息總線
基于消息總線實現(xiàn)全局熱刷新
ELK
ElasticSearch介紹
ElasticSearch單機版安裝
ElasticSearch集群版安裝
ElasticSearch索引管理
ElasticSearch文檔管理
ElasticSearch文檔搜索
SpringDataElasticSearch訪問ElasticSearch
LogStash介紹
基于LogStash收集系統(tǒng)日志
TX-LCN
分布式事務簡介
分布式事務兩大理論依據
分布式事務常見解決方案
LCN簡介
TX-LCN的3種模式
LCN原理
LCN環(huán)境搭建及Demo演示
Nginx
Nginx的簡介
什么是正向代理、反向代理
Nginx的安裝
Nginx配置虛擬主機
Nginx配置服務的反向代理
Nginx的負載均衡配置
Spring Session
Spring Session介紹
通過Spring Session共享session中的數(shù)據
通過Spring Session同步自定義對象
Spring Session的Redis存儲結構
設置Session失效時間
Spring Session序列化器
MyBatis Plus
MyBatis Plus簡介
Spring整合MyBatis Plus
MyBatis Plus的全局策略配置
MyBatis 的主鍵生成策略
MyBatis Plus的CRUD操作
條件構造器EntityWrapper講解
MyBatis Plus的分頁插件配置
MyBatis Plus的分頁查詢
MyBatis Plus的其他插件講解
MyBatis Plus的代碼生成器講解
MyBatis Plus的公共字段自動填充
ShardingSphere
簡介
數(shù)據庫切分方式
基本概念
MySQL主從配置
切片規(guī)則
讀寫分離
實現(xiàn)分庫分表
第七階段:云服務階段
Kafka
Kafka簡介
Kafka架構
分區(qū)和日志
Kafka單機安裝
Kafka集群配置
自定義分區(qū)
自動控制
Spring for Apache Kafka
Zookeeper
Zookeeper簡介和安裝
Zookeeper 數(shù)據模型
Zookeeper 單機版安裝
Zookeeper常見命令
ZClient操作Zookeeper
Zookeeper 集群版安裝
Zookeeper 客戶端常用命令
Zookeeper分布式鎖
RPC
什么是分布式架構
什么是RFC、RPC
HttpClient實現(xiàn)RPC
RestTemplate
RMI實現(xiàn)RPC
基于Zookeeper實現(xiàn)RPC 遠程過程調用
Dubbo
SOA架構介紹
Dubbo簡介
Dubbo結構圖
Dubbo注冊中心
Dubbo 支持的協(xié)議
Dubbo 注冊中心搭建
Spring Boot 整合 Dubbo
Admin管理界面
Dubbo 搭建高可用集群
Dubbo 負載均衡
Spring Cloud Alibaba Dubbo
Spring Cloud Alibaba Dubbo簡介
基于Zookeeper發(fā)布服務
基于Zookeeper訂閱服務
實現(xiàn)遠程服務調用處理
Spring Cloud Alibaba Nacos
Spring Cloud Alibaba Nacos簡介
搭建Nacos服務器
基于Nacos發(fā)布|訂閱服務
實現(xiàn)遠程服務調用處理
Nacos Config配置中心
Spring Cloud Alibaba Sentinel
Spring Cloud Alibaba Sentinel簡介
搭建Sentinel服務器
Sentinel-實時監(jiān)控
Sentinel-簇點鏈路
Sentinel-授權規(guī)則
Sentinel-系統(tǒng)規(guī)則
@SentinelResource注解
持久化規(guī)則
Spring Cloud Alibaba Seata
Spring Cloud Alibaba Seata簡介
搭建Seata服務器
Seata支持的事務模式-AT模式
Seata支持的事務模式-TCC模式
Seata支持的事務模式-Saga模式
Seata支持的事務模式-XA模式
SeataAT事務模式應用方式
SeataTCC事務模式應用方式
MyCat。MyCat是服務端的代理,使用MyCat實現(xiàn)了,整個分庫分表和讀寫分離過程對,Java程序來說是完全透明的。MySQL是一個關系型數(shù)據庫管理系統(tǒng),由瑞典MySQL AB公司開發(fā),屬于Oracle旗下產品。