1<!DOCTYPE html><html lang="zh-CN" data-theme="light"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><title>彩è¹é©¬çå客 - ä¸å¿åå¿ æ¹å¾å§ç»</title><meta name="author" content="彩è¹é©¬"><meta name="copyright" content="彩è¹é©¬"><meta name="format-detection" content="telephone=no"><meta name="theme-color" content="#ffffff"><meta name="description" content="æ»ç»ä¸ªäººå¿å¾ï¼è®°å½ä¸ªäººç¥è¯"> 2<meta property="og:type" content="website"> 3<meta property="og:title" content="彩è¹é©¬çå客"> 4<meta property="og:url" content="https://mx-go.github.io/index.html"> 5<meta property="og:site_name" content="彩è¹é©¬çå客"> 6<meta property="og:description" content="æ»ç»ä¸ªäººå¿å¾ï¼è®°å½ä¸ªäººç¥è¯"> 7<meta property="og:locale" content="zh_CN"> 8<meta property="og:image" content="https://mx-go.github.io/img/avatar.jpg"> 9<meta property="article:author" content="彩è¹é©¬"> 10<meta name="twitter:card" content="summary"> 11<meta name="twitter:image" content="https://mx-go.github.io/img/avatar.jpg"><link rel="shortcut icon" href="/img/favicon.ico"><link rel="canonical" href="https://mx-go.github.io/"><link rel="preconnect" href="//cdn.jsdelivr.net"/><link rel="preconnect" href="//hm.baidu.com"/><link rel="preconnect" href="//busuanzi.ibruce.info"/><link rel="stylesheet" href="/css/index.css"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free/css/all.min.css" media="print" onload="this.media='all'"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/node-snackbar/dist/snackbar.min.css" media="print" onload="this.media='all'"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/instantsearch.min.css" media="print" onload="this.media='all'">
11<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/instantsearch.min.js" defer></script>
11<script>var _hmt = _hmt || []; 12(function() { 13 var hm = document.createElement("script"); 14 hm.src = "https://hm.baidu.com/hm.js?d9a302391e363bd252e65a281d62a3c3"; 15 var s = document.getElementsByTagName("script")[0]; 16 s.parentNode.insertBefore(hm, s); 17})(); 18</script>
18<script>const GLOBAL_CONFIG = { 19 root: '/', 20 algolia: {"appId":"BPJ9SXT7ZR","apiKey":"361b6069a16dee1e14d36408c5b11773","indexName":"blog","hits":{"per_page":10},"languages":{"input_placeholder":"æç´¢æç« ","hits_empty":"æ¾ä¸å°æ¨æ¥è¯¢çå 容ï¼${query}","hits_stats":"æ¾å° ${hits} æ¡ç»æï¼ç¨æ¶ ${time} 毫ç§"}}, 21 localSearch: {"path":"search.xml","languages":{"hits_empty":"æ¾ä¸å°æ¨æ¥è¯¢çå 容ï¼${query}"}}, 22 translate: {"defaultEncoding":2,"translateDelay":0,"msgToTraditionalChinese":"ç¹","msgToSimplifiedChinese":"ç°¡"}, 23 noticeOutdate: {"limitDay":800,"position":"top","messagePrev":"æ¬æäº","messageNext":"天ä¹ååè¡¨ï¼æä¸å 容å¯è½å·²ç»è¿æ¶ã"}, 24 highlight: {"plugin":"highlighjs","highlightCopy":true,"highlightLang":false,"highlightHeightLimit":false}, 25 copy: { 26 success: 'å¤å¶æå', 27 error: 'å¤å¶é误', 28 noSupport: 'æµè§å¨ä¸æ¯æ' 29 }, 30 relativeDate: { 31 homepage: false, 32 post: false 33 }, 34 runtime: '天', 35 date_suffix: { 36 just: 'åå', 37 min: 'åéå', 38 hour: 'å°æ¶å', 39 day: '天å', 40 month: '个æå' 41 }, 42 copyright: {"limitCount":50,"languages":{"author":"ä½è : 彩è¹é©¬","link":"龿¥: ","source":"æ¥æº: 彩è¹é©¬çå客","info":"è使å½ä½è ææãåä¸è½¬è½½è¯·èç³»ä½è è·å¾ææï¼éåä¸è½¬è½½è¯·æ³¨æåºå¤ã"}}, 43 lightbox: 'fancybox', 44 Snackbar: {"chs_to_cht":"ä½ å·²åæ¢ä¸ºç¹ä½","cht_to_chs":"ä½ å·²åæ¢ä¸ºç®ä½","day_to_night":"ä½ å·²åæ¢ä¸ºæ·±è²æ¨¡å¼","night_to_day":"ä½ å·²åæ¢ä¸ºæµ è²æ¨¡å¼","bgLight":"#49b1f5","bgDark":"#121212","position":"bottom-left"}, 45 source: { 46 jQuery: 'https://cdn.jsdelivr.net/npm/jquery@latest/dist/jquery.min.js', 47 justifiedGallery: { 48 js: 'https://cdn.jsdelivr.net/npm/justifiedGallery/dist/js/jquery.justifiedGallery.min.js', 49 css: 'https://cdn.jsdelivr.net/npm/justifiedGallery/dist/css/justifiedGallery.min.css' 50 }, 51 fancybox: { 52 js: 'https://cdn.jsdelivr.net/npm/@fancyapps/fancybox@latest/dist/jquery.fancybox.min.js', 53 css: 'https://cdn.jsdelivr.net/npm/@fancyapps/fancybox@latest/dist/jquery.fancybox.min.css' 54 } 55 }, 56 isPhotoFigcaption: false, 57 islazyload: true, 58 isanchor: true 59}</script>
59<script id="config-diff">var GLOBAL_CONFIG_SITE = { 60 title: '彩è¹é©¬çå客', 61 isPost: false, 62 isHome: true, 63 isHighlightShrink: false, 64 isToc: false, 65 postUpdate: '2026-09-01 23:26:35' 66}</script>
66<noscript><style type="text/css"> 67 #nav { 68 opacity: 1 69 } 70 .justified-gallery img { 71 opacity: 1 72 } 73 74 #recent-posts time, 75 #post-meta time { 76 display: inline !important 77 } 78</style></noscript>
78<script>(win=>{ 79 win.saveToLocal = { 80 set: function setWithExpiry(key, value, ttl) { 81 if (ttl === 0) return 82 const now = new Date() 83 const expiryDay = ttl * 86400000 84 const item = { 85 value: value, 86 expiry: now.getTime() + expiryDay, 87 } 88 localStorage.setItem(key, JSON.stringify(item)) 89 }, 90 91 get: function getWithExpiry(key) { 92 const itemStr = localStorage.getItem(key) 93 94 if (!itemStr) { 95 return undefined 96 } 97 const item = JSON.parse(itemStr) 98 const now = new Date() 99 100 if (now.getTime() > item.expiry) { 101 localStorage.removeItem(key) 102 return undefined 103 } 104 return item.value 105 } 106 } 107 108 win.getScript = url => new Promise((resolve, reject) => { 109 const script = document.createElement('script') 110 script.src = url 111 script.async = true 112 script.onerror = reject 113 script.onload = script.onreadystatechange = function() { 114 const loadState = this.readyState 115 if (loadState && loadState !== 'loaded' && loadState !== 'complete') return 116 script.onload = script.onreadystatechange = null 117 resolve() 118 } 119 document.head.appendChild(script) 120 }) 121 122 win.activateDarkMode = function () { 123 document.documentElement.setAttribute('data-theme', 'dark') 124 if (document.querySelector('meta[name="theme-color"]') !== null) { 125 document.querySelector('meta[name="theme-color"]').setAttribute('content', '#0d0d0d') 126 } 127 } 128 win.activateLightMode = function () { 129 document.documentElement.setAttribute('data-theme', 'light') 130 if (document.querySelector('meta[name="theme-color"]') !== null) { 131 document.querySelector('meta[name="theme-color"]').setAttribute('content', '#ffffff') 132 } 133 } 134 const t = saveToLocal.get('theme') 135 136 const isDarkMode = window.matchMedia('(prefers-color-scheme: dark)').matches 137 const isLightMode = window.matchMedia('(prefers-color-scheme: light)').matches 138 const isNotSpecified = window.matchMedia('(prefers-color-scheme: no-preference)').matches 139 const hasNoSupport = !isDarkMode && !isLightMode && !isNotSpecified 140 141 if (t === undefined) { 142 if (isLightMode) activateLightMode() 143 else if (isDarkMode) activateDarkMode() 144 else if (isNotSpecified || hasNoSupport) { 145 const now = new Date() 146 const hour = now.getHours() 147 const isNight = hour <= 6 || hour >= 18 148 isNight ? activateDarkMode() : activateLightMode() 149 } 150 window.matchMedia('(prefers-color-scheme: dark)').addListener(function (e) { 151 if (saveToLocal.get('theme') === undefined) { 152 e.matches ? activateDarkMode() : activateLightMode() 153 } 154 }) 155 } else if (t === 'light') activateLightMode() 156 else activateDarkMode() 157 158 const asideStatus = saveToLocal.get('aside-status') 159 if (asideStatus !== undefined) { 160 if (asideStatus === 'hide') { 161 document.documentElement.classList.add('hide-aside') 162 } else { 163 document.documentElement.classList.remove('hide-aside') 164 } 165 } 166 })(window)</script>
166<meta name="generator" content="Hexo 5.4.0"></head><body><div id="loading-box"><div class="loading-left-bg"></div><div class="loading-right-bg"></div><div class="spinner-box"><div class="configure-border-1"><div class="configure-core"></div></div><div class="configure-border-2"><div class="configure-core"></div></div><div class="loading-word">å è½½ä¸...</div></div></div><div id="web_bg"></div><div id="sidebar"><div id="menu-mask"></div><div id="sidebar-menus"><div class="author-avatar"><img class="avatar-img" src= "/img/loading.gif" data-lazy-src="/img/avatar.jpg" onerror="onerror=null;src='/img/friend_404.gif'" alt="avatar"/></div><div class="site-data"><div class="data-item is-center"><div class="data-item-link"><a href="/archives/"><div class="headline">æç« </div><div class="length-num">104</div></a></div></div><div class="data-item is-center"><div class="data-item-link"><a href="/tags/"><div class="headline">æ ç¾</div><div class="length-num">22</div></a></div></div><div class="data-item is-center"><div class="data-item-link"><a href="/categories/"><div class="headline">åç±»</div><div class="length-num">17</div></a></div></div></div><hr/><div class="menus_items"><div class="menus_item"><a class="site-page" href="javascript:void(0);"><i class="fa-fw fas fa-book"></i><span> æç« </span><i class="fas fa-chevron-down expand"></i></a><ul class="menus_item_child"><li><a class="site-page child" href="/archives/"><i class="fa-fw fas fa-archive"></i><span> 彿¡£</span></a></li><li><a class="site-page child" href="/categories/"><i class="fa-fw fas fa-folder-open"></i><span> åç±»</span></a></li><li><a class="site-page child" href="/tags/"><i class="fa-fw fas fa-tags"></i><span> æ ç¾</span></a></li></ul></div><div class="menus_item"><a class="site-page" href="javascript:void(0);"><i class="fa-fw fas fa-bars"></i><span> å ¶ä»</span><i class="fas fa-chevron-down expand"></i></a><ul class="menus_item_child"><li><a class="site-page child" href="/%E7%BD%91%E5%9D%80%E6%94%B6%E8%97%8F/"><i class="fa-fw fas fa-sitemap"></i><span> ç½åæ¶è</span></a></li><li><a class="site-page child" target="_blank" rel="noopener" href="https://fontawesome.dashgame.com/"><i class="fa-fw fas fa-flag"></i><span> 徿 鿥</span></a></li></ul></div><div class="menus_item"><a class="site-page" href="/about/"><i class="fa-fw fas fa-user"></i><span> å ³äºæ</span></a></div></div></div></div><div class="page" id="body-wrap"><header class="full_page" id="page-header" style="background-image: url('/img/index_image.jpg')"><nav id="nav"><span id="blog_name"><a id="site-name" href="/">彩è¹é©¬çå客</a></span><div id="menus"><div id="search-button"><a class="site-page social-icon search"><i class="fas fa-search fa-fw"></i><span> æç´¢</span></a></div><div class="menus_items"><div class="menus_item"><a class="site-page" href="javascript:void(0);"><i class="fa-fw fas fa-book"></i><span> æç« </span><i class="fas fa-chevron-down expand"></i></a><ul class="menus_item_child"><li><a class="site-page child" href="/archives/"><i class="fa-fw fas fa-archive"></i><span> 彿¡£</span></a></li><li><a class="site-page child" href="/categories/"><i class="fa-fw fas fa-folder-open"></i><span> åç±»</span></a></li><li><a class="site-page child" href="/tags/"><i class="fa-fw fas fa-tags"></i><span> æ ç¾</span></a></li></ul></div><div class="menus_item"><a class="site-page" href="javascript:void(0);"><i class="fa-fw fas fa-bars"></i><span> å ¶ä»</span><i class="fas fa-chevron-down expand"></i></a><ul class="menus_item_child"><li><a class="site-page child" href="/%E7%BD%91%E5%9D%80%E6%94%B6%E8%97%8F/"><i class="fa-fw fas fa-sitemap"></i><span> ç½åæ¶è</span></a></li><li><a class="site-page child" target="_blank" rel="noopener" href="https://fontawesome.dashgame.com/"><i class="fa-fw fas fa-flag"></i><span> 徿 鿥</span></a></li></ul></div><div class="menus_item"><a class="site-page" href="/about/"><i class="fa-fw fas fa-user"></i><span> å ³äºæ</span></a></div></div><div id="toggle-menu"><a class="site-page"><i class="fas fa-bars fa-fw"></i></a></div></div></nav><div id="site-info"><h1 id="site-title">彩è¹é©¬çå客</h1><div id="site-subtitle"><span id="subtitle"></span></div><div id="site_social_icons"><a class="social-icon" href="https://github.com/mx-go" target="_blank" title="Github"><i class="fab fa-github"></i></a><a class="social-icon" href="mailto:[email protected]" target="_blank" title="Email"><i class="fas fa-envelope"></i></a><a class="social-icon" href="https://www.processon.com/u/5a55be27e4b0a447b99a9b2a/profile" target="_blank" title="ProcessOn"><i class="fas fa-pencil-square"></i></a></div></div><div id="scroll-down"><i class="fas fa-angle-down scroll-down-effects"></i></div></header><main class="layout" id="content-inner"><div class="recent-posts" id="recent-posts"><div class="recent-post-item"><div class="post_cover left_radius"><a href="/%E6%9E%B6%E6%9E%84%E5%9B%BE%E5%88%86%E7%B1%BB/" title="æ¶æå¾åç±»"> <img class="post_bg" src= "/img/loading.gif" data-lazy-src="/../../../../images/2022/7-9/arch_category_cover.png" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="æ¶æå¾åç±»"></a></div><div class="recent-post-info"><a class="article-title" href="/%E6%9E%B6%E6%9E%84%E5%9B%BE%E5%88%86%E7%B1%BB/" title="æ¶æå¾åç±»">æ¶æå¾åç±»</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">å表äº</span><time datetime="2022-08-18T10:19:34.000Z" title="åè¡¨äº 2022-08-18 18:19:34">2022-08-18</time></span><span class="article-meta"><span class="article-meta__separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/%E6%9E%B6%E6%9E%84/">æ¶æ</a></span></div><div class="content">å¼è¨åé¢æç« ä¸ä»ç»äºå¾å¤æ¶æç¸å ³çè®ºï¼æ¥ä¸æ¥è¯´ä¸è¯´ææ ·æè½ç»åºä¸å¹ 好çã好æã好ç¨çæ¶æå¾ãä¿è¯è¯´âä¸å¾èåè¨âï¼ä¸å¼ 好çç»æå¾æ¯ä¸éè¦è¿å¤è§£éçï¼ä»åºè¯¥æ¯èªæè¿°çï¼å¹¶ä¸è¦å ·å¤ä¸è´æ§ãå¥å£®æ§åè¶³å¤çåç¡®æ§ï¼è½å¤å代ç ç¸å¼åºã 167æ¶æå¾åç±» 168 169产å/ä¸å¡æ¶æä½¿ç¨ä¸å¥æ¹æ³è®º/é»è¾å¯¹äº§åï¼é¡¹ç®ï¼ææ¶åå°çä¸å¡è¿è¡è¾¹çååï¼éè¦èèå个模åçåå±åè¾¹çã主è¦å æ¬ä¸å¡è§åãä¸å¡æ¨¡ååæµç¨ä»¥åé®é¢åçå表çã 170模æ¿å¯åèæçProcessOnæä»¶ï¼äº§åèå¾ãäº§åæ¶æå¾ 171 172 173åºç¨æ¶æå¯¹æ´ä¸ªç³»ç»å®ç°çæ»ä½ä¸çæ¶æï¼éè¦æåºç³»ç»ç屿¬¡ãç³»ç»åä¸ªå±æ¬¡çåºç¨æå¡ãç»æå ³ç³»ãä¾èµå ³ç³»ã 174 175ä½ç°äºæ¶ææ¯åå±çï¼ä¸å屿¬¡æä¸åçè§åä¸å ³èã 176类似Javaå¼åéé¢çä¸å±æ¶æï¼æ°æ®è®¿é®å±ãä¸å¡é»è¾å±ãå±ç°å±ãæè 类似é¢å模åä¸çé¢åæå¡å±ãåºç¨å±ãç颿¥å£å±å屿¹æ³ã 177 178模æ¿å¯åèæçProcessOnæä»¶ï¼åºç¨æ¶æå¾ 179 180
181åå¨/æ°æ®æ¶ææ¯ä¸å¥å¯¹å卿°æ®çæ¶æé»è¾ï¼æ ¹æ®å个系ç»åºç¨åºæ¯ãä¸åæ¶é´æ®µçåºç¨åºæ¯ ï¼å¯¹æ°æ®è¿è¡è¯¸å¦æ°æ®å¼æã读åå离ãç¼å使ç¨ãåå¸å¼æ°æ®çç¥çååã 182 183 184ææ¯æ¶æç¦»ç¨åºåæè¿çæ¶æè®¾è®¡ï¼çªåºæ ...</div></div></div><div class="recent-post-item"><div class="post_cover right_radius"><a href="/%E5%A2%9E%E5%BC%BA%E5%BC%8FSnowFlake-%E9%9B%AA%E8%8A%B1%E7%AE%97%E6%B3%95/" title="å¢å¼ºå¼SnowFlake(éªè±ç®æ³)"> <img class="post_bg" src= "/img/loading.gif" data-lazy-src="/../../../../images/2022/7-9/snowflake_0.jpeg" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="å¢å¼ºå¼SnowFlake(éªè±ç®æ³)"></a></div><div class="recent-post-info"><a class="article-title" href="/%E5%A2%9E%E5%BC%BA%E5%BC%8FSnowFlake-%E9%9B%AA%E8%8A%B1%E7%AE%97%E6%B3%95/" title="å¢å¼ºå¼SnowFlake(éªè±ç®æ³)">å¢å¼ºå¼SnowFlake(éªè±ç®æ³)</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">å表äº</span><time datetime="2022-06-02T02:34:16.000Z" title="åè¡¨äº 2022-06-02 10:34:16">2022-06-02</time></span><span class="article-meta"><span class="article-meta__separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/%E8%AE%BE%E8%AE%A1/">设计</a></span></div><div class="content">å¼è¨å¨ä¼å¤åå¸å¼IDä¸ï¼éªè±ç®æ³æ¯æ¯è¾ç®åä¸å¸¸ç¨çç®æ³ï¼åå¸å¼IDä¸è¬å ·æçç¹æ§æï¼ 185 186å¯ä¸æ§ï¼çæçIDå ¨å±å¯ä¸ï¼å¨ç¹å®èå´å å²çªæå°ã 187æåºæ§ï¼çæçIDå ¨å±ææè§åæåºï¼ä¾¿äºæ°æ®åºæå ¥åæåºã 188å¯ç¨æ§ï¼å¯ä¿è¯é«å¹¶åä¸çå¯ç¨æ§ï¼ç¡®ä¿ä»»ä½æ¶åé½è½æ£ç¡®ççæIDã 189èªä¸»æ§ï¼åå¸å¼æ åµä¸ä¸ä¾èµä¸å¿è®¤è¯å³å¯èªè¡çæIDã 190å®å ¨æ§ï¼ä¸æ´é²ç³»ç»åä¸å¡çä¿¡æ¯ï¼å¦ï¼è®¢åæ°ãç¨æ·æ°â¦. 191 192常è§çåå¸å¼IDçææ¹å¼æ¯è¾ 193 194 195æ¯è¾ç¹ 196SnowFlake 197Leaf 198UidGenerator 199Redis 200 201 202 203ä¾èµæ°æ®åº 204å¦ 205æ¯ 206å¯é 207æ¯ 208 209 210æ¯æåå¸å¼ 211æ¯ 212æ¯ 213æ¯ 214æ¯ 215 216 217å¯é¢æµ 218- 219- 220- 221- 222 223 224ä¾èµæ§ 225毫ç§çº§æ¶é´æ³ + æ è¯ ä½ + åºåå· 226æ¶é´æ³ + node + pid + åºåå· 227ç§çº§æ¶é´æ³ + workId + åºå 228Rediså线ç¨èªå¢ 229 230 231ç»´æ¤ä¸ 232å¤ä¸ªåç§ 233æ¯ 234å¦ 235- 236 237 238éªè±ç®æ³SnowFlakeæ¯Twitter弿ºçåå¸å¼IDçæç®æ³ï¼çæçä¸ä¸ª64bitçlongç±»åæ°å¼ï¼ç»æé¨å使ç¨äºæ¶é´æ³ï¼ä¿è¯äºç²ç¥èªå¢ã 239ä¼ç¼ºç¹ä¼ç¹ 240髿§è½é«å¯ç¨ï¼å®å ¨å¨å åä¸çæï¼ä¸ä¾èµæ°æ®åºã 241é«ååï¼æ¯ ...</div></div></div><div class="recent-post-item"><div class="post_cover left_radius"><a href="/%E5%BC%82%E5%9C%B0%E5%A4%9A%E6%B4%BB%E6%9E%B6%E6%9E%84%E8%AE%BE%E8%AE%A1/" title="å¼å°å¤æ´»æ¶æè®¾è®¡"> <img class="post_bg" src= "/img/loading.gif" data-lazy-src="/../../../../images/2022/4-6/7.arch_cover.jpg" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="å¼å°å¤æ´»æ¶æè®¾è®¡"></a></div><div class="recent-post-info"><a class="article-title" href="/%E5%BC%82%E5%9C%B0%E5%A4%9A%E6%B4%BB%E6%9E%B6%E6%9E%84%E8%AE%BE%E8%AE%A1/" title="å¼å°å¤æ´»æ¶æè®¾è®¡">å¼å°å¤æ´»æ¶æè®¾è®¡</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">å表äº</span><time datetime="2022-05-26T08:25:19.000Z" title="åè¡¨äº 2022-05-26 16:25:19">2022-05-26</time></span><span class="article-meta"><span class="article-meta__separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/%E6%9E%B6%E6%9E%84/">æ¶æ</a><i class="fas fa-angle-right"></i><a class="article-meta__categories" href="/categories/%E6%9E%B6%E6%9E%84/%E8%AE%BE%E8%AE%A1/">设计</a></span></div><div class="content">é«å¯ç¨ä¸å¤§æ ¸å¿åçCAP 242åå¸å¼æ°æ®åå¨ç³»ç»ä¸å¯è½åæ¶æ»¡è¶³ä¸è´æ§ãå¯ç¨æ§åååºå®¹å¿æ§ã 243 244 245ä¸è´æ§ Consistency 246å¯ç¨æ§ Availability 247ååºå®¹å¿æ§ Partion Tolerance 248 249BASE 250æ ¸å¿ææ³æ¯å³ä½¿æ æ³åå°å¼ºä¸è´æ§ï¼CAP çä¸è´æ§å°±æ¯å¼ºä¸è´æ§ï¼ï¼ä½åºç¨å¯ä»¥éç¨éåçæ¹å¼è¾¾å°æç»ä¸è´æ§ã 251 252 253åºæ¬å¯ç¨ Basically Available 254è½¯ç¶æ Soft State 255æç»ä¸è´æ§ Eventually Consistency 256 257FLP 258弿¥éä¿¡åºæ¯ä¸ï¼å³ä½¿åªå 许ä¸ä¸ªèç¹å¤±è´¥ï¼ä¹æ²¡æä»»ä½ç¡®å®æ§ç®æ³è½å¤ä¿è¯é失败è¿ç¨è¾¾å°ä¸è´æ§ã 259 260 261Safety 262Fault Tolerance 263Liveness 264 265 266 267FEMAå ·ä½å«ä¹ 268Failureï¼åè®¾ç³»ç»æäºç»ä»¶æè 模ååºç°æ éã 269Modeï¼ æ éåççæ¹å¼ãå¯è½æ§ã 270Effect ï¼æ éçå½±åã 271Analysisï¼åæç³»ç»çå¯è½ååºï¼ä»¥åå¦ä½æ¹è¿ã 272 273è¯ä¼°ç»´åº¦ 274
275大纲 276 277ä¸å¡åç¾å¤æ¶æå¸¸ç¨æ¶æ 278åååä¸å¿ã 279è·¨åç´§é»åä¸å¿ã 280è·¨åè¿ç«¯åä¸å¿ã 281è·¨å½æ°æ®ä¸å¿ã 282 283 284 285å¼å°å¤æ´»æ¶ææ¨¡å¼ä¸å¡å®å¶åæç §ä¸å¡çä¼å çº§è¿ ...</div></div></div><div class="recent-post-item"><div class="post_cover right_radius"><a href="/%E5%BE%AE%E6%9C%8D%E5%8A%A1%E6%9E%B6%E6%9E%84%E8%AE%BE%E8%AE%A1/" title="å¾®æå¡æ¶æè®¾è®¡"> <img class="post_bg" src= "/img/loading.gif" data-lazy-src="/../../../../images/2022/1-3/6.arch_cover.jpg" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="å¾®æå¡æ¶æè®¾è®¡"></a></div><div class="recent-post-info"><a class="article-title" href="/%E5%BE%AE%E6%9C%8D%E5%8A%A1%E6%9E%B6%E6%9E%84%E8%AE%BE%E8%AE%A1/" title="å¾®æå¡æ¶æè®¾è®¡">å¾®æå¡æ¶æè®¾è®¡</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">å表äº</span><time datetime="2022-04-16T06:53:08.000Z" title="åè¡¨äº 2022-04-16 14:53:08">2022-04-16</time></span><span class="article-meta"><span class="article-meta__separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/%E6%9E%B6%E6%9E%84/">æ¶æ</a><i class="fas fa-angle-right"></i><a class="article-meta__categories" href="/categories/%E6%9E%B6%E6%9E%84/%E8%AE%BE%E8%AE%A1/">设计</a></span></div><div class="content">å¾®æå¡æ¶æè¯¦è§£å¾®æå¡VS SOA 286 287 288 289å¾®æå¡æ¶æé·é±ä¸ææå 大é·é±æåé¢ç²åº¦å¤ªç» 290æå¡å ³ç³»å¤æ 291å¢éæçä¸é 292é®é¢å®ä½å°é¾ 293ç³»ç»æ§è½ä¸é 294 295åºç¡è®¾æ½ä¸å®å 296æ æ³å¿«éäº¤ä» 297æå¡ç®¡çæ··ä¹± 298 299åå¤§ææ 300åå¸å¼äºå¡ 301å ¨å±å¹ç 302æ¥å£å ¼å®¹ 303æ¥å£å¾ªç¯è°ç¨ 304 305 306 307å¾®æå¡åºç¡è®¾æ½éå 308æ ¸å¿ä¸ºæå¡è¿è¡å±ï¼æå¡æ³¨åãæå¡åç°ãæå¡è·¯ç± 309 310 311åµå ¥SDKå¼ 312åå代çå¼ 313ç½ç»ä»£çå¼ 314 315 316 317å¾®æå¡æåæå·§æä¸å¡æå 318ä¸å¡è¾¹çåå 319ä¸ä¸ªç«æªæåå 320 321 322ãå®ä¹ã å¹³å3个å¼å人åè´è´£ä¸ä¸ªå¾®æå¡ã 323ãåæã 324 325为ä»ä¹ä¸æ¯1ä¸ªï¼ 326 327å 为没æå¤ä»½ï¼ä¸ä¸ä¸ªäººæç»´æå±éã 328 329 330为ä»ä¹ä¸æ¯2ä¸ªï¼ 331 332å 为å¼å¸¸æ åµä¸å©ä½1个ï¼ååä¼å¾å¤§ï¼ 3332个人è´è´£ç»´æ¤ä¸ä¸ªå¾®æå¡ï¼å¾®æå¡å¤æåº¦åä½ã 334 335 336为ä»ä¹ä¸æ¯4个æè 5ä¸ªï¼ å¦æ4个æ4个以ä¸ï¼æ¯ä¸ªäººä¸ä¸å®è½ææ¡å个æå¡ææç»èã 337 338 339ãæå·§ã 340 341 å¾®æå¡æ°é = æå¡ç«¯å¼åäººæ° /3 ï¼ 3423 = 1 +2ï¼1个æç»éªç(P7/P6+)ï¼2个æ®éç(P5/P6)ï¼ 343å¤äºç»´æ¤æçæå¡ï¼ç»´æ¤äººå为2人ã 344 345 346æè´¨éæå 347ææ§è½æå 348æä¸å¡éè¦ç¨åº¦æå 349æå¯ç¨æ§æå 350æç¨³å®æ§æå 351 ...</div></div></div><div class="recent-post-item"><div class="post_cover left_radius"><a href="/%E9%AB%98%E5%8F%AF%E7%94%A8%E8%AE%A1%E7%AE%97%E6%9E%B6%E6%9E%84/" title="é«å¯ç¨è®¡ç®æ¶æ"> <img class="post_bg" src= "/img/loading.gif" data-lazy-src="/../../../../images/2022/1-3/5.arch_cover.jpg" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="é«å¯ç¨è®¡ç®æ¶æ"></a></div><div class="recent-post-info"><a class="article-title" href="/%E9%AB%98%E5%8F%AF%E7%94%A8%E8%AE%A1%E7%AE%97%E6%9E%B6%E6%9E%84/" title="é«å¯ç¨è®¡ç®æ¶æ">é«å¯ç¨è®¡ç®æ¶æ</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">å表äº</span><time datetime="2022-03-25T05:49:43.000Z" title="åè¡¨äº 2022-03-25 13:49:43">2022-03-25</time></span><span class="article-meta"><span class="article-meta__separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/%E6%9E%B6%E6%9E%84/">æ¶æ</a><i class="fas fa-angle-right"></i><a class="article-meta__categories" href="/categories/%E6%9E%B6%E6%9E%84/%E8%AE%BE%E8%AE%A1/">设计</a></span></div><div class="content">å¤çº§ç¼åæ¶æç¼å设计 352ç¼åå 容 353ç¼åæ¶é´ 354ç¼åç³»ç» 355æ´æ°æºå¶ 356 357å¤çº§ç¼å 358客æ·ç«¯ç¼å 359CDNç¼å 360WEB容å¨ç¼å 361åºç¨ç¼å 362åå¸å¼ç¼å 363 364 365 366åå¸å¼ç¼åæ¶æè®¾è®¡åç±» 367æ°æ®ç¼åï¼å®æ¶æ§è¦æ±é«ï¼è¯»å¤åå° 368ç»æç¼åï¼è®¡ç®é大宿¶æ§è¦æ±ä¸é« 369 370ç¼åé®é¢ 371ç¼åç©¿é 372ç¼åéªå´© 373ç¼åçç¹ 374 375 376 377è´è½½åè¡¡æ¶æ 378 379 380DNS 381F5ï¼100ä¸~1000ä¸ 382LVSï¼10ä¸~100ä¸ 383Nginxï¼5ä¸~10ä¸ 384æå¡è·¯ç±(Gateway)ï¼1000~5000 385 386 387 388è´è½½åè¡¡æå·§éç¨ç®æ³ 389è½®è® 390éæº 391å æè½®è® 392è´è½½æé 393æ§è½ä¼å 394hash 395 396æå¡å¨æ§è½ä¼°ç®æ¥å£æ§è½ 397线ä¸ä¸å¡æå¡å¨æ¥å£å¤çæ¶é´åå¸ä¸º 20~100msï¼ 398å¹³å大约为 50msï¼
399 访é®å卿è å ¶å®ç³»ç»æ¥å£æ¯ä¸»è¦çæ§è½æ¶èç¹ã 400 401æå¡å¨æ§è½çº¿ä¸å个æå¡å¨ï¼32æ ¸ï¼æ§è½å¤§çº¦ä¸º 300~1000 TPS/QPS 402æå¡å¨æ°éæå¡å¨æ°é = (æ» TPS+QPS) / å个æå¡å¨æ§è½ 403 404 405æ¥å£é«å¯ç¨ 406éæµ 407æé 408é级 409çæ 410 411 412 413</div></div></div><div class="recent-post-item"><div class="post_cover right_radius"><a href="/%E6%95%B0%E6%8D%AE%E5%BA%93%E5%AD%98%E5%82%A8%E6%9E%B6%E6%9E%84/" title="æ°æ®åºå卿¶æ"> <img class="post_bg" src= "/img/loading.gif" data-lazy-src="/../../../../images/2022/1-3/4.arch_cover.jpg" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="æ°æ®åºå卿¶æ"></a></div><div class="recent-post-info"><a class="article-title" href="/%E6%95%B0%E6%8D%AE%E5%BA%93%E5%AD%98%E5%82%A8%E6%9E%B6%E6%9E%84/" title="æ°æ®åºå卿¶æ">æ°æ®åºå卿¶æ</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">å表äº</span><time datetime="2022-02-08T08:36:19.000Z" title="åè¡¨äº 2022-02-08 16:36:19">2022-02-08</time></span><span class="article-meta"><span class="article-meta__separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/%E6%9E%B6%E6%9E%84/">æ¶æ</a><i class="fas fa-angle-right"></i><a class="article-meta__categories" href="/categories/%E6%9E%B6%E6%9E%84/%E8%AE%BE%E8%AE%A1/">设计</a></span></div><div class="content">æ°æ®åºè¯»ååç¦»å¤æåº¦å¤å¶å»¶è¿ 414ä¸å¡å级(常ç¨) 415读åç»å® 416äºæ¬¡è¯»å 417 418ä»»å¡åè§£ 419代ç å°è£ 420ä¸é´ä»¶å°è£ 421 422ååºå表åç´æå-æååæºå¤çæ§è½æç §ä¸å¡å°è¡¨è¿è¡åç±»ï¼åå¸å°ä¸åçæ°æ®åºä¸é¢ã 423æ°´å¹³æå-æåé群å¤çæ§è½æè¡ååã 424 425 426å¤å¶æ¶æ 427 428设计å卿¶æ 429 430åçæ¶æä¸ååºæ¶æåçæ¶æéè¿å å æå¡å¨æ¥æååæ§è½åå卿§è½ã 431ååºæ¶æéè¿åä½IDCæ¥é¿å åå¸çº§å«çç¾é¾ï¼å¹¶æä¾å°±è¿è®¿é®ã 432 433 434常è§åå¨ç³»ç»åæåå¨ç³»ç»å¦ä¹ æ¹æ³ 435çè§£ææ¯æ¬è´¨ 436æç¡®é¨ç½²æ¶æ 437ç ç©¶æ°æ®æ¨¡å 438模æä¸å¡åºæ¯ 439 440 441</div></div></div><div class="recent-post-item"><div class="post_cover left_radius"><a href="/%E8%AE%BE%E8%AE%A1%E5%90%88%E7%90%86%E7%9A%84%E6%9E%B6%E6%9E%84/" title="设计åççæ¶æ"> <img class="post_bg" src= "/img/loading.gif" data-lazy-src="/../../../../images/2022/1-3/3.arch_cover.jpg" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="设计åççæ¶æ"></a></div><div class="recent-post-info"><a class="article-title" href="/%E8%AE%BE%E8%AE%A1%E5%90%88%E7%90%86%E7%9A%84%E6%9E%B6%E6%9E%84/" title="设计åççæ¶æ">设计åççæ¶æ</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">å表äº</span><time datetime="2022-01-26T06:18:03.000Z" title="åè¡¨äº 2022-01-26 14:18:03">2022-01-26</time></span><span class="article-meta"><span class="article-meta__separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/%E6%9E%B6%E6%9E%84/">æ¶æ</a><i class="fas fa-angle-right"></i><a class="article-meta__categories" href="/categories/%E6%9E%B6%E6%9E%84/%E8%AE%BE%E8%AE%A1/">设计</a></span></div><div class="content">æ¶æå¸èè´£æ¶æå¸æ¯ä¸å¡ä¸ææ¯ä¹é´çæ¡¥æ¢ã 442 443æ ¸å¿è½å 444夿-ç¡®å®æ§æç»´ 445æè§£-åé æ§æç»´ 446åè-ç³»ç»æ§æç»´ 447 448主è¦èè´£æ¶æè®¾è®¡åæ 449æ¾æ¸ ä¸ç¡®å®æ§ 450è¯å«å¤æéæ± 451ä¸ä¸å¡æ¹äº¤æµ 452ä¸å©çå¹²ç³»äººäº¤æµ 453ä¸å¡æ¶æå¾ 454æ ¸å¿åºæ¯æµç¨ 455 456æ¶æè®¾è®¡ä¸æ 457éæ©ã设计å¤éæ¹æ¡ 458æ¶æå°ç»è®¨è®º 459æ¹æ¡è¯ä¼° 460æ¹æ¡æ±æ¥ 461 462æ¶æè®¾è®¡åæ 463ç»åæ¶æ 464å®åæ¶æ 465åææ¡£ 466æ¶æå®£è®² 467æç»çæ¶æææ¡£ 468 469 470 471æ¶æè®¾è®¡åæ 472 473æ¶æè®¾è®¡ä¸æ 474 475æ¶æè®¾è®¡åææ¶æè®¾è®¡ææ¡£ 476ä¸å¡èæ¯ 477约æ&éå¶ 478æ»ä½æ¶æè®¾è®¡ 479è¯¦ç»æ¶æè®¾è®¡ 480æ¶æè´¨é设计 481æ¶ææ¼è¿è§å 482 483è¯¦ç»æ¶æè®¾è®¡ 484æ¶æè§è 485æ¶æè´¨é 486 487 488</div></div></div><div class="recent-post-item"><div class="post_cover right_radius"><a href="/%E6%9E%B6%E6%9E%84%E8%AE%BE%E8%AE%A1%E5%85%B3%E9%94%AE%E7%82%B9/" title="æ¶æè®¾è®¡å ³é®ç¹"> <img class="post_bg" src= "/img/loading.gif" data-lazy-src="/../../../../images/2022/1-3/2.arch_cover.jpg" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="æ¶æè®¾è®¡å ³é®ç¹"></a></div><div class="recent-post-info"><a class="article-title" href="/%E6%9E%B6%E6%9E%84%E8%AE%BE%E8%AE%A1%E5%85%B3%E9%94%AE%E7%82%B9/" title="æ¶æè®¾è®¡å ³é®ç¹">æ¶æè®¾è®¡å ³é®ç¹</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">å表äº</span><time datetime="2022-01-10T10:08:20.000Z" title="åè¡¨äº 2022-01-10 18:08:20">2022-01-10</time></span><span class="article-meta"><span class="article-meta__separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/%E6%9E%B6%E6%9E%84/">æ¶æ</a><i class="fas fa-angle-right"></i><a class="article-meta__categories" href="/categories/%E6%9E%B6%E6%9E%84/%E8%AE%BE%E8%AE%A1/">设计</a></span></div><div class="content">坿©å±æ¶æè®¾è®¡é¸¡è篮åç¬¬ä¸æ³åæåæ³å 489 490æåé¢ç²åº¦å é¨å¤æåº¦å¯ä»¥ç¨åä¸çå¼åäººæ°æ¥è¡¡éå个æå对象çå¤æåº¦ãä¸ä¸ªç«æªæååã 491å¤é¨å¤æåº¦å¯ä»¥ç¨ä¸å¡æµç¨æ¶å对象æ°éæ¥è¡¡éå¤é¨å¤æåº¦ã 492 493 494髿§è½æ¶æè®¾è®¡é¸¡è篮åç¬¬äºæ³åå å æ³å 495 496 497 498é«å¯ç¨æ¶æè®¾è®¡é¸¡è篮åç¬¬ä¸æ³åå使³å 499 500åç±» 501计ç®é«å¯ç¨ 502 503åå¨é«å¯ç¨ 504 505 506 507 508 509 510æ¶æè´¨é坿µè¯æ§è½¯ä»¶ç³»ç»å¨æµè¯ç¯å¢ä¸è½å¦æ¹ä¾¿çæ¯ææµè¯åç§åºæ¯çè½åã 511å¯ç»´æ¤æ§è½¯ä»¶ç³»ç»æ¯æå®ä½é®é¢ãä¿®å¤é®é¢çè½åã 512å¯è§æµæ§è½¯ä»¶ç³»ç»å¯¹å¤å±ç°å é¨ç¶æçè½å å¯è§æµæ§æ¯å¯æµè¯æ§ãå¯ç»´æ¤æ§çåºç¡ã 513 514</div></div></div><nav id="pagination"><div class="pagination"><span class="page-number current">1</span><a class="page-number" href="/page/2/#content-inner">2</a><span class="space">…</span><a class="page-number" href="/page/13/#content-inner">13</a><a class="extend next" rel="next" href="/page/2/#content-inner"><i class="fas fa-chevron-right fa-fw"></i></a></div></nav></div><div class="aside-content" id="aside-content"><div class="card-widget card-info"><div class="card-info-avatar is-center"><img class="avatar-img" src= "/img/loading.gif" data-lazy-src="/img/avatar.jpg" onerror="this.onerror=null;this.src='/img/friend_404.gif'" alt="avatar"/><div class="author-info__name">彩è¹é©¬</div><div class="author-info__description">æ»ç»ä¸ªäººå¿å¾ï¼è®°å½ä¸ªäººç¥è¯</div></div><div class="card-info-data"><div class="card-info-data-item is-center"><a href="/archives/"><div class="headline">æç« </div><div class="length-num">104</div></a></div><div class="card-info-data-item is-center"><a href="/tags/"><div class="headline">æ ç¾</div><div class="length-num">22</div></a></div><div class="card-info-data-item is-center"><a href="/categories/"><div class="headline">åç±»</div><div class="length-num">17</div></a></div></div><a class="button--animated" id="card-info-btn" target="_blank" rel="noopener" href="https://github.com/mx-go"><i class="fab fa-github"></i><span>å ³æ³¨æ</span></a><div class="card-info-social-icons is-center"><a class="social-icon" href="https://github.com/mx-go" target="_blank" title="Github"><i class="fab fa-github"></i></a><a class="social-icon" href="mailto:[email protected]" target="_blank" title="Email"><i class="fas fa-envelope"></i></a><a class="social-icon" href="https://www.processon.com/u/5a55be27e4b0a447b99a9b2a/profile" target="_blank" title="ProcessOn"><i class="fas fa-pencil-square"></i></a></div></div><div class="card-widget card-announcement"><div class="item-headline"><i class="fas fa-bullhorn card-announcement-animation"></i><span>å ¬å</span></div><div class="announcement_content">ä¸ä¸ªæ¶èåå¿ä¸åäº«ææ¯çå°æ¹ï¼</div></div><div class="sticky_layout"><div class="card-widget card-recent-post"><div class="item-headline"><i class="fas fa-history"></i><span>ææ°æç« </span></div><div class="aside-list"><div class="aside-list-item"><a class="thumbnail" href="/%E6%9E%B6%E6%9E%84%E5%9B%BE%E5%88%86%E7%B1%BB/" title="æ¶æå¾åç±»"><img src= "/img/loading.gif" data-lazy-src="/../../../../images/2022/7-9/arch_category_cover.png" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="æ¶æå¾åç±»"/></a><div class="content"><a class="title" href="/%E6%9E%B6%E6%9E%84%E5%9B%BE%E5%88%86%E7%B1%BB/" title="æ¶æå¾åç±»">æ¶æå¾åç±»</a><time datetime="2022-08-18T10:19:34.000Z" title="åè¡¨äº 2022-08-18 18:19:34">2022-08-18</time></div></div><div class="aside-list-item"><a class="thumbnail" href="/%E5%A2%9E%E5%BC%BA%E5%BC%8FSnowFlake-%E9%9B%AA%E8%8A%B1%E7%AE%97%E6%B3%95/" title="å¢å¼ºå¼SnowFlake(éªè±ç®æ³)"><img src= "/img/loading.gif" data-lazy-src="/../../../../images/2022/7-9/snowflake_0.jpeg" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="å¢å¼ºå¼SnowFlake(éªè±ç®æ³)"/></a><div class="content"><a class="title" href="/%E5%A2%9E%E5%BC%BA%E5%BC%8FSnowFlake-%E9%9B%AA%E8%8A%B1%E7%AE%97%E6%B3%95/" title="å¢å¼ºå¼SnowFlake(éªè±ç®æ³)">å¢å¼ºå¼SnowFlake(éªè±ç®æ³)</a><time datetime="2022-06-02T02:34:16.000Z" title="åè¡¨äº 2022-06-02 10:34:16">2022-06-02</time></div></div><div class="aside-list-item"><a class="thumbnail" href="/%E5%BC%82%E5%9C%B0%E5%A4%9A%E6%B4%BB%E6%9E%B6%E6%9E%84%E8%AE%BE%E8%AE%A1/" title="å¼å°å¤æ´»æ¶æè®¾è®¡"><img src= "/img/loading.gif" data-lazy-src="/../../../../images/2022/4-6/7.arch_cover.jpg" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="å¼å°å¤æ´»æ¶æè®¾è®¡"/></a><div class="content"><a class="title" href="/%E5%BC%82%E5%9C%B0%E5%A4%9A%E6%B4%BB%E6%9E%B6%E6%9E%84%E8%AE%BE%E8%AE%A1/" title="å¼å°å¤æ´»æ¶æè®¾è®¡">å¼å°å¤æ´»æ¶æè®¾è®¡</a><time datetime="2022-05-26T08:25:19.000Z" title="åè¡¨äº 2022-05-26 16:25:19">2022-05-26</time></div></div><div class="aside-list-item"><a class="thumbnail" href="/%E5%BE%AE%E6%9C%8D%E5%8A%A1%E6%9E%B6%E6%9E%84%E8%AE%BE%E8%AE%A1/" title="å¾®æå¡æ¶æè®¾è®¡"><img src= "/img/loading.gif" data-lazy-src="/../../../../images/2022/1-3/6.arch_cover.jpg" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="å¾®æå¡æ¶æè®¾è®¡"/></a><div class="content"><a class="title" href="/%E5%BE%AE%E6%9C%8D%E5%8A%A1%E6%9E%B6%E6%9E%84%E8%AE%BE%E8%AE%A1/" title="å¾®æå¡æ¶æè®¾è®¡">å¾®æå¡æ¶æè®¾è®¡</a><time datetime="2022-04-16T06:53:08.000Z" title="åè¡¨äº 2022-04-16 14:53:08">2022-04-16</time></div></div></div></div><div class="card-widget card-categories"><div class="item-headline"> 515 <i class="fas fa-folder-open"></i>
516 <span>åç±»</span> 517 <a class="card-more-btn" href="/categories/" title="æ¥çæ´å¤"> 518 <i class="fas fa-angle-right"></i></a> 519 </div> 520 <ul class="card-category-list" id="aside-cat-list"> 521 <li class="card-category-list-item parent"><a class="card-category-list-link" href="/categories/Linux/"><span class="card-category-list-name">Linux</span><span class="card-category-list-count">8</span><i class="fas fa-caret-left "></i></a><ul class="card-category-list child"><li class="card-category-list-item "><a class="card-category-list-link" href="/categories/Linux/%E5%9F%BA%E7%A1%80/"><span class="card-category-list-name">åºç¡</span><span class="card-category-list-count">2</span></a></li><li class="card-category-list-item "><a class="card-category-list-link" href="/categories/Linux/%E5%AE%89%E8%A3%85/"><span class="card-category-list-name">å®è£ </span><span class="card-category-list-count">6</span></a></li></ul></li><li class="card-category-list-item "><a class="card-category-list-link" href="/categories/%E4%B8%AD%E9%97%B4%E4%BB%B6/"><span class="card-category-list-name">ä¸é´ä»¶</span><span class="card-category-list-count">4</span></a></li><li class="card-category-list-item "><a class="card-category-list-link" href="/categories/%E5%89%8D%E7%AB%AF/"><span class="card-category-list-name">å端</span><span class="card-category-list-count">4</span></a></li><li class="card-category-list-item "><a class="card-category-list-link" href="/categories/%E5%90%8E%E7%AB%AF/"><span class="card-category-list-name">å端</span><span class="card-category-list-count">32</span></a></li> 522 </ul></div><div class="card-widget card-archives"><div class="item-headline"><i class="fas fa-archive"></i><span>彿¡£</span></div><ul class="card-archive-list"><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2022/"><span class="card-archive-list-date">2022</span><span class="card-archive-list-count">8</span></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2021/"><span class="card-archive-list-date">2021</span><span class="card-archive-list-count">11</span></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2020/"><span class="card-archive-list-date">2020</span><span class="card-archive-list-count">10</span></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2019/"><span class="card-archive-list-date">2019</span><span class="card-archive-list-count">17</span></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2018/"><span class="card-archive-list-date">2018</span><span class="card-archive-list-count">34</span></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2017/"><span class="card-archive-list-date">2017</span><span class="card-archive-list-count">24</span></a></li></ul></div><div class="card-widget card-webinfo"><div class="item-headline"><i class="fas fa-chart-line"></i><span>ç½ç«èµè®¯</span></div><div class="webinfo"><div class="webinfo-item"><div class="item-name">æç« æ°ç® :</div><div class="item-count">104</div></div><div class="webinfo-item"><div class="item-name">å·²è¿è¡æ¶é´ :</div><div class="item-count" id="runtimeshow" data-publishDate="2017-03-06T16:00:00.000Z"></div></div><div class="webinfo-item"><div class="item-name">æ¬ç«æ»åæ° :</div><div class="item-count">181.6k</div></div><div class="webinfo-item"><div class="item-name">æ¬ç«è®¿å®¢æ° :</div><div class="item-count" id="busuanzi_value_site_uv"></div></div><div class="webinfo-item"><div class="item-name">æ¬ç«æ»è®¿é®é :</div><div class="item-count" id="busuanzi_value_site_pv"></div></div><div class="webinfo-item"><div class="item-name">æåæ´æ°æ¶é´ :</div><div class="item-count" id="last-push-date" data-lastPushDate="2026-09-01T15:26:34.782Z"></div></div></div></div></div></div></main><footer id="footer" style="background-image: url('/img/index_image.jpg')"><div id="footer-wrap"><div class="copyright">©2017 - 2026 By 彩è¹é©¬</div><div class="footer_custom_text"><a target="_blank" rel="noopener" href="http://www.beian.gov.cn/portal/registerSystemInfo?spm=a2c4g.11186623.J_9220772140.110.29fc5615Na3Cw2">粤ICPå¤2022148055å·</></div></div></footer></div><div id="rightside"><div id="rightside-config-hide"><button id="translateLink" type="button" title="ç®ç¹è½¬æ¢">ç¹</button><button id="darkmode" type="button" title="æµ è²åæ·±è²æ¨¡å¼è½¬æ¢"><i class="fas fa-adjust"></i></button><button id="hide-aside-btn" type="button" title="åæ ååæ åæ¢"><i class="fas fa-arrows-alt-h"></i></button></div><div id="rightside-config-show"><button id="rightside_config" type="button" title="设置"><i class="fas fa-cog fa-spin"></i></button><button id="go-up" type="button" title="åå°é¡¶é¨"><i class="fas fa-arrow-up"></i></button></div></div><div id="algolia-search"><div class="search-dialog"><div class="search-dialog__title" id="algolia-search-title">Algolia</div><div id="algolia-input-panel"><div id="algolia-search-input"></div></div><hr/><div id="algolia-search-results"><div id="algolia-hits"></div><div id="algolia-pagination"></div><div id="algolia-stats"></div></div><span class="search-close-button"><i class="fas fa-times"></i></span></div><div id="search-mask"></div></div><div>
522<script src="/js/utils.js"></script>
522<script src="/js/main.js"></script>
522<script src="/js/tw_cn.js"></script>
522<script src="https://cdn.jsdelivr.net/npm/instant.page/instantpage.min.js" type="module"></script>
522<script src="https://cdn.jsdelivr.net/npm/vanilla-lazyload/dist/lazyload.iife.min.js"></script>
522<script src="https://cdn.jsdelivr.net/npm/node-snackbar/dist/snackbar.min.js"></script>
522<script>function panguFn () { 523 if (typeof pangu === 'object') pangu.autoSpacingPage() 524 else { 525 getScript('https://cdn.jsdelivr.net/npm/pangu/dist/browser/pangu.min.js') 526 .then(() => { 527 pangu.autoSpacingPage() 528 }) 529 } 530} 531 532function panguInit () { 533 if (true){ 534 GLOBAL_CONFIG_SITE.isPost && panguFn() 535 } else { 536 panguFn() 537 } 538} 539 540document.addEventListener('DOMContentLoaded', panguInit)</script>
540<script src="/js/search/algolia.js"></script>
540<script>var preloader = { 541 endLoading: () => { 542 document.body.style.overflow = 'auto'; 543 document.getElementById('loading-box').classList.add("loaded") 544 }, 545 initLoading: () => { 546 document.body.style.overflow = ''; 547 document.getElementById('loading-box').classList.remove("loaded") 548 549 } 550} 551window.addEventListener('load',preloader.endLoading())</script>
551<div class="js-pjax">
551<script>function subtitleType () { 552 getScript('https://sdk.jinrishici.com/v2/browser/jinrishici.js').then(() => { 553 jinrishici.load(function (result) { 554 if (true) { 555 var sub = "".length == 0 ? new Array() : "".split(',') 556 var content = result.data.content 557 var both = sub.unshift(content) 558 var typed = new Typed('#subtitle', { 559 strings: sub, 560 startDelay: 300, 561 typeSpeed: 150, 562 loop: false, 563 backSpeed: 50, 564 }) 565 } else { 566 document.getElementById('subtitle').innerHTML = result.data.content 567 } 568 }) 569 }) 570} 571 572if (true) { 573 if (typeof Typed === 'function') { 574 subtitleType() 575 } else { 576 getScript('https://cdn.jsdelivr.net/npm/typed.js/lib/typed.min.js').then(subtitleType) 577 } 578} else { 579 subtitleType() 580} 581</script>
581</div>
581<script defer="defer" id="ribbon" src="https://cdn.jsdelivr.net/npm/butterfly-extsrc@1/dist/canvas-ribbon.min.js" size="150" alpha="0.6" zIndex="-1" mobile="false" data-click="false"></script>
581<script src="https://cdn.jsdelivr.net/npm/butterfly-extsrc@1/dist/activate-power-mode.min.js"></script>
581<script>POWERMODE.colorful = true; 582POWERMODE.shake = false; 583POWERMODE.mobile = false; 584document.body.addEventListener('input', POWERMODE); 585</script>
585<script id="click-heart" src="https://cdn.jsdelivr.net/npm/butterfly-extsrc@1/dist/click-heart.min.js" async="async" mobile="false"></script>
585<script async data-pjax src="//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script>
585</div></body></html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.