learn.lianglianglee.com/专栏/ShardingSphere 核心原理精讲-完/index.html
2022-08-14 03:40:33 +08:00

202 lines
15 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<!-- saved from url=(0046)https://kaiiiz.github.io/hexo-theme-book-demo/ -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1.0, user-scalable=no">
<link rel="icon" href="/static/favicon.png">
<title>note-submit</title>
<!-- Spectre.css framework -->
<link rel="stylesheet" href="/static/index.css">
<!-- theme css & js -->
<meta name="generator" content="Hexo 4.2.0">
</head>
<body>
<div class="book-container">
<div class="book-sidebar">
<div class="book-brand">
<a href="/">
<img src="/static/favicon.png">
<span>技术文章摘抄</span>
</a>
</div>
<div class="book-menu uncollapsible">
<ul class="uncollapsible">
<li><a href="/" class="current-tab">首页</a></li>
</ul>
<ul class="uncollapsible">
<li><a href="../">上一级</a></li>
</ul>
<ul class="uncollapsible">
<li>
<a href="/PDF">PDF</a>
</li>
<li>
<a href="/专栏">专栏</a>
</li>
<li>
<a href="/恋爱必修课">恋爱必修课</a>
</li>
<li>
<a href="/文章">文章</a>
</li>
<li>
<a href="/极客时间">极客时间</a>
</li>
</ul>
</div>
</div>
<div class="sidebar-toggle" onclick="sidebar_toggle()" onmouseover="add_inner()" onmouseleave="remove_inner()">
<div class="sidebar-toggle-inner"></div>
</div>
<script>
function add_inner() {
let inner = document.querySelector('.sidebar-toggle-inner')
inner.classList.add('show')
}
function remove_inner() {
let inner = document.querySelector('.sidebar-toggle-inner')
inner.classList.remove('show')
}
function sidebar_toggle() {
let sidebar_toggle = document.querySelector('.sidebar-toggle')
let sidebar = document.querySelector('.book-sidebar')
let content = document.querySelector('.off-canvas-content')
if (sidebar_toggle.classList.contains('extend')) { // show
sidebar_toggle.classList.remove('extend')
sidebar.classList.remove('hide')
content.classList.remove('extend')
} else { // hide
sidebar_toggle.classList.add('extend')
sidebar.classList.add('hide')
content.classList.add('extend')
}
}
function open_sidebar() {
let sidebar = document.querySelector('.book-sidebar')
let overlay = document.querySelector('.off-canvas-overlay')
sidebar.classList.add('show')
overlay.classList.add('show')
}
function hide_canvas() {
let sidebar = document.querySelector('.book-sidebar')
let overlay = document.querySelector('.off-canvas-overlay')
sidebar.classList.remove('show')
overlay.classList.remove('show')
}
</script>
<div class="off-canvas-content">
<div class="columns">
<div class="column col-12 col-lg-12">
<div class="book-navbar">
<!-- For Responsive Layout -->
<header class="navbar">
<section class="navbar-section">
<a onclick="open_sidebar()">
<i class="icon icon-menu"></i>
</a>
</section>
</header>
</div>
<div class="book-content"
style="max-width: 960px; margin: 0 auto; overflow-x: auto; overflow-y: hidden;">
<div class="book-post">
<p id="tip" align="center"></p>
<div><!--add content-->
<h1>ShardingSphere 核心原理精讲-完</h1>
<ul>
<li><a href = '\专栏\ShardingSphere 核心原理精讲-完\00 如何正确学习一款分库分表开源框架?.md.html'>00 如何正确学习一款分库分表开源框架?</a></li>
<li><a href = '\专栏\ShardingSphere 核心原理精讲-完\01 从理论到实践:如何让分库分表真正落地?.md.html'>01 从理论到实践:如何让分库分表真正落地?</a></li>
<li><a href = '\专栏\ShardingSphere 核心原理精讲-完\02 顶级项目ShardingSphere 是一款什么样的 Apache 开源软件?.md.html'>02 顶级项目ShardingSphere 是一款什么样的 Apache 开源软件?</a></li>
<li><a href = '\专栏\ShardingSphere 核心原理精讲-完\03 规范兼容JDBC 规范与 ShardingSphere 是什么关系?.md.html'>03 规范兼容JDBC 规范与 ShardingSphere 是什么关系?</a></li>
<li><a href = '\专栏\ShardingSphere 核心原理精讲-完\04 应用集成:在业务系统中使用 ShardingSphere 的方式有哪些?.md.html'>04 应用集成:在业务系统中使用 ShardingSphere 的方式有哪些?</a></li>
<li><a href = '\专栏\ShardingSphere 核心原理精讲-完\05 配置驱动ShardingSphere 中的配置体系是如何设计的?.md.html'>05 配置驱动ShardingSphere 中的配置体系是如何设计的?</a></li>
<li><a href = '\专栏\ShardingSphere 核心原理精讲-完\09 分布式事务:如何使用强一致性事务与柔性事务?.md.html'>09 分布式事务:如何使用强一致性事务与柔性事务?</a></li>
<li><a href = '\专栏\ShardingSphere 核心原理精讲-完\10 数据脱敏:如何确保敏感数据的安全访问?.md.html'>10 数据脱敏:如何确保敏感数据的安全访问?</a></li>
<li><a href = '\专栏\ShardingSphere 核心原理精讲-完\11 编排治理:如何实现分布式环境下的动态配置管理?.md.html'>11 编排治理:如何实现分布式环境下的动态配置管理?</a></li>
<li><a href = '\专栏\ShardingSphere 核心原理精讲-完\12 从应用到原理:如何高效阅读 ShardingSphere 源码?.md.html'>12 从应用到原理:如何高效阅读 ShardingSphere 源码?</a></li>
<li><a href = '\专栏\ShardingSphere 核心原理精讲-完\13 微内核架构ShardingSphere 如何实现系统的扩展性?.md.html'>13 微内核架构ShardingSphere 如何实现系统的扩展性?</a></li>
<li><a href = '\专栏\ShardingSphere 核心原理精讲-完\14 分布式主键ShardingSphere 中有哪些分布式主键实现方式?.md.html'>14 分布式主键ShardingSphere 中有哪些分布式主键实现方式?</a></li>
<li><a href = '\专栏\ShardingSphere 核心原理精讲-完\15 解析引擎SQL 解析流程应该包括哪些核心阶段?(上).md.html'>15 解析引擎SQL 解析流程应该包括哪些核心阶段?(上)</a></li>
<li><a href = '\专栏\ShardingSphere 核心原理精讲-完\16 解析引擎SQL 解析流程应该包括哪些核心阶段?(下).md.html'>16 解析引擎SQL 解析流程应该包括哪些核心阶段?(下)</a></li>
<li><a href = '\专栏\ShardingSphere 核心原理精讲-完\17 路由引擎:如何理解分片路由核心类 ShardingRouter 的运作机制?.md.html'>17 路由引擎:如何理解分片路由核心类 ShardingRouter 的运作机制?</a></li>
<li><a href = '\专栏\ShardingSphere 核心原理精讲-完\18 路由引擎:如何实现数据访问的分片路由和广播路由?.md.html'>18 路由引擎:如何实现数据访问的分片路由和广播路由?</a></li>
<li><a href = '\专栏\ShardingSphere 核心原理精讲-完\19 路由引擎:如何在路由过程中集成多种路由策略和路由算法?.md.html'>19 路由引擎:如何在路由过程中集成多种路由策略和路由算法?</a></li>
<li><a href = '\专栏\ShardingSphere 核心原理精讲-完\20 改写引擎:如何理解装饰器模式下的 SQL 改写实现机制?.md.html'>20 改写引擎:如何理解装饰器模式下的 SQL 改写实现机制?</a></li>
<li><a href = '\专栏\ShardingSphere 核心原理精讲-完\21 执行引擎:分片环境下 SQL 执行的整体流程应该如何进行抽象?.md.html'>21 执行引擎:分片环境下 SQL 执行的整体流程应该如何进行抽象?</a></li>
<li><a href = '\专栏\ShardingSphere 核心原理精讲-完\22 执行引擎:如何把握 ShardingSphere 中的 Executor 执行模型?(上).md.html'>22 执行引擎:如何把握 ShardingSphere 中的 Executor 执行模型?(上)</a></li>
<li><a href = '\专栏\ShardingSphere 核心原理精讲-完\23 执行引擎:如何把握 ShardingSphere 中的 Executor 执行模型?(下).md.html'>23 执行引擎:如何把握 ShardingSphere 中的 Executor 执行模型?(下)</a></li>
<li><a href = '\专栏\ShardingSphere 核心原理精讲-完\24 归并引擎:如何理解数据归并的类型以及简单归并策略的实现过程?.md.html'>24 归并引擎:如何理解数据归并的类型以及简单归并策略的实现过程?</a></li>
<li><a href = '\专栏\ShardingSphere 核心原理精讲-完\25 归并引擎:如何理解流式归并和内存归并在复杂归并场景下的应用方式?.md.html'>25 归并引擎:如何理解流式归并和内存归并在复杂归并场景下的应用方式?</a></li>
<li><a href = '\专栏\ShardingSphere 核心原理精讲-完\26 读写分离:普通主从架构和分片主从架构分别是如何实现的?.md.html'>26 读写分离:普通主从架构和分片主从架构分别是如何实现的?</a></li>
<li><a href = '\专栏\ShardingSphere 核心原理精讲-完\27 分布式事务:如何理解 ShardingSphere 中对分布式事务的抽象过程?.md.html'>27 分布式事务:如何理解 ShardingSphere 中对分布式事务的抽象过程?</a></li>
<li><a href = '\专栏\ShardingSphere 核心原理精讲-完\28 分布式事务ShardingSphere 中如何集成强一致性事务和柔性事务支持?(上).md.html'>28 分布式事务ShardingSphere 中如何集成强一致性事务和柔性事务支持?(上)</a></li>
<li><a href = '\专栏\ShardingSphere 核心原理精讲-完\29 分布式事务ShardingSphere 中如何集成强一致性事务和柔性事务支持?(下).md.html'>29 分布式事务ShardingSphere 中如何集成强一致性事务和柔性事务支持?(下)</a></li>
<li><a href = '\专栏\ShardingSphere 核心原理精讲-完\30 数据脱敏:如何基于改写引擎实现低侵入性数据脱敏方案?.md.html'>30 数据脱敏:如何基于改写引擎实现低侵入性数据脱敏方案?</a></li>
<li><a href = '\专栏\ShardingSphere 核心原理精讲-完\31 配置中心:如何基于配置中心实现配置信息的动态化管理?.md.html'>31 配置中心:如何基于配置中心实现配置信息的动态化管理?</a></li>
<li><a href = '\专栏\ShardingSphere 核心原理精讲-完\32 注册中心:如何基于注册中心实现数据库访问熔断机制?.md.html'>32 注册中心:如何基于注册中心实现数据库访问熔断机制?</a></li>
<li><a href = '\专栏\ShardingSphere 核心原理精讲-完\33 链路跟踪:如何基于 Hook 机制以及 OpenTracing 协议实现数据访问链路跟踪?.md.html'>33 链路跟踪:如何基于 Hook 机制以及 OpenTracing 协议实现数据访问链路跟踪?</a></li>
<li><a href = '\专栏\ShardingSphere 核心原理精讲-完\35 结语ShardingSphere 总结及展望.md.html'>35 结语ShardingSphere 总结及展望</a></li>
</ul>
</div>
</div>
<div>
</div>
</div>
</div>
</div>
</div>
<a class="off-canvas-overlay" onclick="hide_canvas()"></a>
</div>
<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v652eace1692a40cfa3763df669d7439c1639079717194"
integrity="sha512-Gi7xpJR8tSkrpF7aordPZQlW2DLtzUlZcumS8dMQjwDHEnw9I7ZLyiOj/6tZStRBGtGgN6ceN6cMH8z7etPGlw=="
data-cf-beacon='{"rayId":"70996b2f083d3d60","version":"2021.12.0","r":1,"token":"1f5d475227ce4f0089a7cff1ab17c0f5","si":100}'
crossorigin="anonymous"></script>
</body>
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-NPSEEVD756"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag() {
dataLayer.push(arguments);
}
gtag('js', new Date());
gtag('config', 'G-NPSEEVD756');
var path = window.location.pathname
var cookie = getCookie("lastPath");
console.log(path)
if (path.replace("/", "") === "") {
if (cookie.replace("/", "") !== "") {
console.log(cookie)
document.getElementById("tip").innerHTML = "<a href='" + cookie + "'>跳转到上次进度</a>"
}
} else {
setCookie("lastPath", path)
}
function setCookie(cname, cvalue) {
var d = new Date();
d.setTime(d.getTime() + (180 * 24 * 60 * 60 * 1000));
var expires = "expires=" + d.toGMTString();
document.cookie = cname + "=" + cvalue + "; " + expires + ";path = /";
}
function getCookie(cname) {
var name = cname + "=";
var ca = document.cookie.split(';');
for (var i = 0; i < ca.length; i++) {
var c = ca[i].trim();
if (c.indexOf(name) === 0) return c.substring(name.length, c.length);
}
return "";
}
</script>
</html>