learn.lianglianglee.com/专栏/SpringCloud微服务实战(完)/index.html
2022-08-14 03:40:33 +08:00

194 lines
12 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>SpringCloud微服务实战</h1>
<ul>
<li><a href = '\专栏\SpringCloud微服务实战\00 开篇导读.md.html'>00 开篇导读</a></li>
<li><a href = '\专栏\SpringCloud微服务实战\01 以真实“商场停车”业务切入——需求分析.md.html'>01 以真实“商场停车”业务切入——需求分析</a></li>
<li><a href = '\专栏\SpringCloud微服务实战\02 具象业务需求再抽象分解——系统设计.md.html'>02 具象业务需求再抽象分解——系统设计</a></li>
<li><a href = '\专栏\SpringCloud微服务实战\03 第一个 Spring Boot 子服务——会员服务.md.html'>03 第一个 Spring Boot 子服务——会员服务</a></li>
<li><a href = '\专栏\SpringCloud微服务实战\04 如何维护接口文档供外部调用——在线接口文档管理.md.html'>04 如何维护接口文档供外部调用——在线接口文档管理</a></li>
<li><a href = '\专栏\SpringCloud微服务实战\05 认识 Spring Cloud 与 Spring Cloud Alibaba 项目.md.html'>05 认识 Spring Cloud 与 Spring Cloud Alibaba 项目</a></li>
<li><a href = '\专栏\SpringCloud微服务实战\06 服务多不易管理如何破——服务注册与发现.md.html'>06 服务多不易管理如何破——服务注册与发现</a></li>
<li><a href = '\专栏\SpringCloud微服务实战\07 如何调用本业务模块外的服务——服务调用.md.html'>07 如何调用本业务模块外的服务——服务调用</a></li>
<li><a href = '\专栏\SpringCloud微服务实战\08 服务响应慢或服务不可用怎么办——快速失败与服务降级.md.html'>08 服务响应慢或服务不可用怎么办——快速失败与服务降级</a></li>
<li><a href = '\专栏\SpringCloud微服务实战\09 热更新一样更新服务的参数配置——分布式配置中心.md.html'>09 热更新一样更新服务的参数配置——分布式配置中心</a></li>
<li><a href = '\专栏\SpringCloud微服务实战\10 如何高效读取计费规则等热数据——分布式缓存.md.html'>10 如何高效读取计费规则等热数据——分布式缓存</a></li>
<li><a href = '\专栏\SpringCloud微服务实战\11 多实例下的定时任务如何避免重复执行——分布式定时任务.md.html'>11 多实例下的定时任务如何避免重复执行——分布式定时任务</a></li>
<li><a href = '\专栏\SpringCloud微服务实战\12 同一套服务如何应对不同终端的需求——服务适配.md.html'>12 同一套服务如何应对不同终端的需求——服务适配</a></li>
<li><a href = '\专栏\SpringCloud微服务实战\13 采用消息驱动方式处理扣费通知——集成消息中间件.md.html'>13 采用消息驱动方式处理扣费通知——集成消息中间件</a></li>
<li><a href = '\专栏\SpringCloud微服务实战\14 Spring Cloud 与 Dubbo 冲突吗——强强联合.md.html'>14 Spring Cloud 与 Dubbo 冲突吗——强强联合</a></li>
<li><a href = '\专栏\SpringCloud微服务实战\15 破解服务中共性问题的繁琐处理方式——接入 API 网关.md.html'>15 破解服务中共性问题的繁琐处理方式——接入 API 网关</a></li>
<li><a href = '\专栏\SpringCloud微服务实战\16 服务压力大系统响应慢如何破——网关流量控制.md.html'>16 服务压力大系统响应慢如何破——网关流量控制</a></li>
<li><a href = '\专栏\SpringCloud微服务实战\17 集成网关后怎么做安全验证——统一鉴权.md.html'>17 集成网关后怎么做安全验证——统一鉴权</a></li>
<li><a href = '\专栏\SpringCloud微服务实战\18 多模块下的接口 API 如何统一管理——聚合 API.md.html'>18 多模块下的接口 API 如何统一管理——聚合 API</a></li>
<li><a href = '\专栏\SpringCloud微服务实战\19 数据分库后如何确保数据完整性——分布式事务.md.html'>19 数据分库后如何确保数据完整性——分布式事务</a></li>
<li><a href = '\专栏\SpringCloud微服务实战\20 优惠券如何避免超兑——引入分布式锁.md.html'>20 优惠券如何避免超兑——引入分布式锁</a></li>
<li><a href = '\专栏\SpringCloud微服务实战\21 如何查看各服务的健康状况——系统应用监控.md.html'>21 如何查看各服务的健康状况——系统应用监控</a></li>
<li><a href = '\专栏\SpringCloud微服务实战\22 如何确定一次完整的请求过程——服务链路跟踪.md.html'>22 如何确定一次完整的请求过程——服务链路跟踪</a></li>
<li><a href = '\专栏\SpringCloud微服务实战\23 结束语.md.html'>23 结束语</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>