真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網站制作重慶分公司

java分庫分表代碼實現(xiàn) 分庫分表語句

分庫的數(shù)據用java怎么并行查詢

如果使用java多線程查詢,必須使用CyclicBarrier,等待所有結果都查詢完成合并結果集,或者使用dblink,然后HINT方式使用并行Parallell,利用數(shù)據的并行技術進行查詢

十年的郁南網站建設經驗,針對設計、前端、開發(fā)、售后、文案、推廣等六對一服務,響應快,48小時及時工作處理。網絡營銷推廣的優(yōu)勢是能夠根據用戶設備顯示端的尺寸不同,自動調整郁南建站的顯示方式,使網站能夠適用不同顯示終端,在瀏覽器中調整網站的寬度,無論在任何一種瀏覽器上瀏覽網站,都能展現(xiàn)優(yōu)雅布局與設計,從而大程度地提升瀏覽體驗。成都創(chuàng)新互聯(lián)公司從事“郁南網站設計”,“郁南網站推廣”以來,每個客戶項目都認真落實執(zhí)行。

數(shù)據庫分庫分表(二)Twitter-Snowflake(64位分布式ID算法)分析與JAVA實現(xiàn)

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%。

一個JAVA單體項目中的數(shù)據庫有必要分庫分表嗎?

分庫分表要看數(shù)據量有多大

一般一個表數(shù)據超過幾個G就應該進行分表操作,非常大的話可以進行分庫操作

java分表分庫,水平分表200張,應該怎么寫比較好?

水平分表的話,200張,你應該按照實際需求去做,因為200畢竟不是一個小數(shù)目,首先舉個例子,就像電話號碼,130開頭的一張表,131開頭的一張表,但是你這個具體就不知道了,還有就是例如按照單數(shù)雙數(shù)分也可,然后最好是按照主鍵列去分表會比較合乎規(guī)范。

求java學習路線圖?

/*回答內容很長,能看完的少走一個月彎路,絕不抖機靈*/

提前預警:本文適合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事務模式應用方式

哪項服務實現(xiàn)了mysql分庫分表及讀寫分離的業(yè)務功能

MyCat。MyCat是服務端的代理,使用MyCat實現(xiàn)了,整個分庫分表和讀寫分離過程對,Java程序來說是完全透明的。MySQL是一個關系型數(shù)據庫管理系統(tǒng),由瑞典MySQL AB公司開發(fā),屬于Oracle旗下產品。


當前標題:java分庫分表代碼實現(xiàn) 分庫分表語句
路徑分享:http://weahome.cn/article/doooded.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部