{"id":5656,"date":"2022-01-23T10:37:16","date_gmt":"2022-01-23T02:37:16","guid":{"rendered":"https:\/\/damogame.cn:15443\/wordpress\/?p=5656"},"modified":"2022-01-23T10:37:16","modified_gmt":"2022-01-23T02:37:16","slug":"%e7%b3%bb%e7%bb%9f%e8%ae%be%e8%ae%a1%e5%85%a5%e9%97%a8","status":"publish","type":"post","link":"https:\/\/i007.cc\/wordpress\/archives\/5656","title":{"rendered":"\u7cfb\u7edf\u8bbe\u8ba1\u5165\u95e8"},"content":{"rendered":"<p dir=\"auto\"><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md\">\u539f\u6587\u5730\u5740<\/a><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p dir=\"auto\" align=\"center\"><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/images\/jj3A5N8.png\" target=\"_blank\" rel=\"noopener noreferrer\"><img decoding=\"async\" src=\"https:\/\/github.com\/donnemartin\/system-design-primer\/raw\/master\/images\/jj3A5N8.png\" \/><\/a><\/p>\n<h2 dir=\"auto\"><a id=\"user-content-\u76ee\u7684\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E7%9B%AE%E7%9A%84\" aria-hidden=\"true\"><\/a>\u76ee\u7684<\/h2>\n<blockquote>\n<p dir=\"auto\">\u5b66\u4e60\u5982\u4f55\u8bbe\u8ba1\u5927\u578b\u7cfb\u7edf\u3002<\/p>\n<p dir=\"auto\">\u4e3a\u7cfb\u7edf\u8bbe\u8ba1\u7684\u9762\u8bd5\u505a\u51c6\u5907\u3002<\/p>\n<\/blockquote>\n<h3 dir=\"auto\"><a id=\"user-content-\u5b66\u4e60\u5982\u4f55\u8bbe\u8ba1\u5927\u578b\u7cfb\u7edf\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E5%AD%A6%E4%B9%A0%E5%A6%82%E4%BD%95%E8%AE%BE%E8%AE%A1%E5%A4%A7%E5%9E%8B%E7%B3%BB%E7%BB%9F\" aria-hidden=\"true\"><\/a>\u5b66\u4e60\u5982\u4f55\u8bbe\u8ba1\u5927\u578b\u7cfb\u7edf<\/h3>\n<p dir=\"auto\">\u5b66\u4e60\u5982\u4f55\u8bbe\u8ba1\u53ef\u6269\u5c55\u7684\u7cfb\u7edf\u5c06\u4f1a\u6709\u52a9\u4e8e\u4f60\u6210\u4e3a\u4e00\u4e2a\u66f4\u597d\u7684\u5de5\u7a0b\u5e08\u3002<\/p>\n<p dir=\"auto\">\u7cfb\u7edf\u8bbe\u8ba1\u662f\u4e00\u4e2a\u5f88\u5bbd\u6cdb\u7684\u8bdd\u9898\u3002\u5728\u4e92\u8054\u7f51\u4e0a\uff0c<strong>\u5173\u4e8e\u7cfb\u7edf\u8bbe\u8ba1\u539f\u5219\u7684\u8d44\u6e90\u4e5f\u662f\u591a\u5982\u725b\u6bdb\u3002<\/strong><\/p>\n<p dir=\"auto\">\u8fd9\u4e2a\u4ed3\u5e93\u5c31\u662f\u8fd9\u4e9b\u8d44\u6e90\u7684<strong>\u7ec4\u7ec7\u6536\u96c6<\/strong>\uff0c\u5b83\u53ef\u4ee5\u5e2e\u52a9\u4f60\u5b66\u4e60\u5982\u4f55\u6784\u5efa\u53ef\u6269\u5c55\u7684\u7cfb\u7edf\u3002<\/p>\n<h3 dir=\"auto\"><a id=\"user-content-\u4ece\u5f00\u6e90\u793e\u533a\u5b66\u4e60\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E4%BB%8E%E5%BC%80%E6%BA%90%E7%A4%BE%E5%8C%BA%E5%AD%A6%E4%B9%A0\" aria-hidden=\"true\"><\/a>\u4ece\u5f00\u6e90\u793e\u533a\u5b66\u4e60<\/h3>\n<p dir=\"auto\">\u8fd9\u662f\u4e00\u4e2a\u4e0d\u65ad\u66f4\u65b0\u7684\u5f00\u6e90\u9879\u76ee\u7684\u521d\u671f\u7684\u7248\u672c\u3002<\/p>\n<p dir=\"auto\">\u6b22\u8fce<a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E8%B4%A1%E7%8C%AE\">\u8d21\u732e<\/a>\uff01<\/p>\n<h3 dir=\"auto\"><a id=\"user-content-\u4e3a\u7cfb\u7edf\u8bbe\u8ba1\u7684\u9762\u8bd5\u505a\u51c6\u5907\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E4%B8%BA%E7%B3%BB%E7%BB%9F%E8%AE%BE%E8%AE%A1%E7%9A%84%E9%9D%A2%E8%AF%95%E5%81%9A%E5%87%86%E5%A4%87\" aria-hidden=\"true\"><\/a>\u4e3a\u7cfb\u7edf\u8bbe\u8ba1\u7684\u9762\u8bd5\u505a\u51c6\u5907<\/h3>\n<p dir=\"auto\">\u5728\u5f88\u591a\u79d1\u6280\u516c\u53f8\u4e2d\uff0c\u9664\u4e86\u4ee3\u7801\u9762\u8bd5\uff0c\u7cfb\u7edf\u8bbe\u8ba1\u4e5f\u662f<strong>\u6280\u672f\u9762\u8bd5\u8fc7\u7a0b<\/strong>\u4e2d\u7684\u4e00\u4e2a<strong>\u5fc5\u8981\u73af\u8282<\/strong>\u3002<\/p>\n<p dir=\"auto\"><strong>\u5b9e\u8df5\u5e38\u89c1\u7684\u7cfb\u7edf\u8bbe\u8ba1\u9762\u8bd5\u9898<\/strong>\u5e76\u4e14\u628a\u4f60\u7684\u7b54\u6848\u548c<strong>\u4f8b\u5b50\u7684\u89e3\u7b54<\/strong>\u8fdb\u884c<strong>\u5bf9\u7167<\/strong>\uff1a\u8ba8\u8bba\uff0c\u4ee3\u7801\u548c\u56fe\u8868\u3002<\/p>\n<p dir=\"auto\">\u9762\u8bd5\u51c6\u5907\u7684\u5176\u4ed6\u4e3b\u9898\uff1a<\/p>\n<ul dir=\"auto\">\n<li><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E5%AD%A6%E4%B9%A0%E6%8C%87%E5%BC%95\">\u5b66\u4e60\u6307\u5f15<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E5%A6%82%E4%BD%95%E5%A4%84%E7%90%86%E4%B8%80%E4%B8%AA%E7%B3%BB%E7%BB%9F%E8%AE%BE%E8%AE%A1%E7%9A%84%E9%9D%A2%E8%AF%95%E9%A2%98\">\u5982\u4f55\u5904\u7406\u4e00\u4e2a\u7cfb\u7edf\u8bbe\u8ba1\u7684\u9762\u8bd5\u9898<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E7%B3%BB%E7%BB%9F%E8%AE%BE%E8%AE%A1%E7%9A%84%E9%9D%A2%E8%AF%95%E9%A2%98%E5%92%8C%E8%A7%A3%E7%AD%94\">\u7cfb\u7edf\u8bbe\u8ba1\u7684\u9762\u8bd5\u9898\uff0c<strong>\u542b\u89e3\u7b54<\/strong><\/a><\/li>\n<li><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E9%9D%A2%E5%90%91%E5%AF%B9%E8%B1%A1%E8%AE%BE%E8%AE%A1%E7%9A%84%E9%9D%A2%E8%AF%95%E9%97%AE%E9%A2%98%E5%8F%8A%E8%A7%A3%E7%AD%94\">\u9762\u5411\u5bf9\u8c61\u8bbe\u8ba1\u7684\u9762\u8bd5\u9898\uff0c<strong>\u542b\u89e3\u7b54<\/strong><\/a><\/li>\n<li><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E5%85%B6%E5%AE%83%E7%9A%84%E7%B3%BB%E7%BB%9F%E8%AE%BE%E8%AE%A1%E9%9D%A2%E8%AF%95%E9%A2%98\">\u5176\u5b83\u7684\u7cfb\u7edf\u8bbe\u8ba1\u9762\u8bd5\u9898<\/a><\/li>\n<\/ul>\n<h2 dir=\"auto\"><a id=\"user-content-\u62bd\u8ba4\u5361\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E6%8A%BD%E8%AE%A4%E5%8D%A1\" aria-hidden=\"true\"><\/a>\u62bd\u8ba4\u5361<\/h2>\n<p dir=\"auto\" align=\"center\"><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/images\/zdCAkB3.png\" target=\"_blank\" rel=\"noopener noreferrer\"><img decoding=\"async\" src=\"https:\/\/github.com\/donnemartin\/system-design-primer\/raw\/master\/images\/zdCAkB3.png\" \/><\/a><\/p>\n<p dir=\"auto\">\u8fd9\u91cc\u63d0\u4f9b\u7684<a href=\"https:\/\/apps.ankiweb.net\/\" rel=\"nofollow\">\u62bd\u8ba4\u5361\u5806<\/a>\u4f7f\u7528\u95f4\u9694\u91cd\u590d\u7684\u65b9\u6cd5\uff0c\u5e2e\u52a9\u4f60\u8bb0\u5fc6\u5173\u952e\u7684\u7cfb\u7edf\u8bbe\u8ba1\u6982\u5ff5\u3002<\/p>\n<ul dir=\"auto\">\n<li><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/resources\/flash_cards\/System%20Design.apkg\">\u7cfb\u7edf\u8bbe\u8ba1\u7684\u5361\u5806<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/resources\/flash_cards\/System%20Design%20Exercises.apkg\">\u7cfb\u7edf\u8bbe\u8ba1\u7684\u7ec3\u4e60\u5361\u5806<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/resources\/flash_cards\/OO%20Design.apkg\">\u9762\u5411\u5bf9\u8c61\u8bbe\u8ba1\u7684\u7ec3\u4e60\u5361\u5806<\/a><\/li>\n<\/ul>\n<p dir=\"auto\">\u968f\u65f6\u968f\u5730\u90fd\u53ef\u4f7f\u7528\u3002<\/p>\n<h3 dir=\"auto\"><a id=\"user-content-\u4ee3\u7801\u8d44\u6e90\u4e92\u52a8\u5f0f\u7f16\u7a0b\u6311\u6218\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E4%BB%A3%E7%A0%81%E8%B5%84%E6%BA%90%E4%BA%92%E5%8A%A8%E5%BC%8F%E7%BC%96%E7%A8%8B%E6%8C%91%E6%88%98\" aria-hidden=\"true\"><\/a>\u4ee3\u7801\u8d44\u6e90\uff1a\u4e92\u52a8\u5f0f\u7f16\u7a0b\u6311\u6218<\/h3>\n<p dir=\"auto\">\u4f60\u6b63\u5728\u5bfb\u627e\u8d44\u6e90\u4ee5\u51c6\u5907<a href=\"https:\/\/github.com\/donnemartin\/interactive-coding-challenges\"><strong>\u7f16\u7a0b\u9762\u8bd5<\/strong><\/a>\u5417\uff1f<\/p>\n<p dir=\"auto\" align=\"center\"><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/images\/b4YtAEN.png\" target=\"_blank\" rel=\"noopener noreferrer\"><img decoding=\"async\" src=\"https:\/\/github.com\/donnemartin\/system-design-primer\/raw\/master\/images\/b4YtAEN.png\" \/><\/a><\/p>\n<p dir=\"auto\">\u8bf7\u67e5\u770b\u6211\u4eec\u7684\u59d0\u59b9\u4ed3\u5e93<a href=\"https:\/\/github.com\/donnemartin\/interactive-coding-challenges\"><strong>\u4e92\u52a8\u5f0f\u7f16\u7a0b\u6311\u6218<\/strong><\/a>\uff0c\u5176\u4e2d\u5305\u542b\u4e86\u4e00\u4e2a\u989d\u5916\u7684\u62bd\u8ba4\u5361\u5806\uff1a<\/p>\n<ul dir=\"auto\">\n<li><a href=\"https:\/\/github.com\/donnemartin\/interactive-coding-challenges\/tree\/master\/anki_cards\/Coding.apkg\">\u4ee3\u7801\u5361\u5806<\/a><\/li>\n<\/ul>\n<h2 dir=\"auto\"><a id=\"user-content-\u8d21\u732e\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E8%B4%A1%E7%8C%AE\" aria-hidden=\"true\"><\/a>\u8d21\u732e<\/h2>\n<blockquote>\n<p dir=\"auto\">\u4ece\u793e\u533a\u4e2d\u5b66\u4e60\u3002<\/p>\n<\/blockquote>\n<p dir=\"auto\">\u6b22\u8fce\u63d0\u4ea4 PR \u63d0\u4f9b\u5e2e\u52a9\uff1a<\/p>\n<ul dir=\"auto\">\n<li>\u4fee\u590d\u9519\u8bef<\/li>\n<li>\u5b8c\u5584\u7ae0\u8282<\/li>\n<li>\u6dfb\u52a0\u7ae0\u8282<\/li>\n<li><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/issues\/28\">\u5e2e\u52a9\u7ffb\u8bd1<\/a><\/li>\n<\/ul>\n<p dir=\"auto\">\u4e00\u4e9b\u8fd8\u9700\u8981\u5b8c\u5584\u7684\u5185\u5bb9\u653e\u5728\u4e86<a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E6%AD%A3%E5%9C%A8%E5%AE%8C%E5%96%84%E4%B8%AD\">\u6b63\u5728\u5b8c\u5584\u4e2d<\/a>\u3002<\/p>\n<p dir=\"auto\">\u8bf7\u67e5\u770b<a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/CONTRIBUTING.md\">\u8d21\u732e\u6307\u5357<\/a>\u3002<\/p>\n<h2 dir=\"auto\"><a id=\"user-content-\u7cfb\u7edf\u8bbe\u8ba1\u4e3b\u9898\u7684\u7d22\u5f15\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E7%B3%BB%E7%BB%9F%E8%AE%BE%E8%AE%A1%E4%B8%BB%E9%A2%98%E7%9A%84%E7%B4%A2%E5%BC%95\" aria-hidden=\"true\"><\/a>\u7cfb\u7edf\u8bbe\u8ba1\u4e3b\u9898\u7684\u7d22\u5f15<\/h2>\n<blockquote>\n<p dir=\"auto\">\u5404\u79cd\u7cfb\u7edf\u8bbe\u8ba1\u4e3b\u9898\u7684\u6458\u8981\uff0c\u5305\u62ec\u4f18\u70b9\u548c\u7f3a\u70b9\u3002<strong>\u6bcf\u4e00\u4e2a\u4e3b\u9898\u90fd\u9762\u4e34\u7740\u53d6\u820d\u548c\u6743\u8861<\/strong>\u3002<\/p>\n<p dir=\"auto\">\u6bcf\u4e2a\u7ae0\u8282\u90fd\u5305\u542b\u7740\u66f4\u591a\u7684\u8d44\u6e90\u7684\u94fe\u63a5\u3002<\/p>\n<\/blockquote>\n<p dir=\"auto\" align=\"center\"><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/images\/jrUBAF7.png\" target=\"_blank\" rel=\"noopener noreferrer\"><img decoding=\"async\" src=\"https:\/\/github.com\/donnemartin\/system-design-primer\/raw\/master\/images\/jrUBAF7.png\" \/><\/a><\/p>\n<ul dir=\"auto\">\n<li><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E7%B3%BB%E7%BB%9F%E8%AE%BE%E8%AE%A1%E4%B8%BB%E9%A2%98%E4%BB%8E%E8%BF%99%E9%87%8C%E5%BC%80%E5%A7%8B\">\u7cfb\u7edf\u8bbe\u8ba1\u4e3b\u9898\uff1a\u4ece\u8fd9\u91cc\u5f00\u59cb<\/a>\n<ul dir=\"auto\">\n<li><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E7%AC%AC%E4%B8%80%E6%AD%A5%E5%9B%9E%E9%A1%BE%E5%8F%AF%E6%89%A9%E5%B1%95%E6%80%A7scalability%E7%9A%84%E8%A7%86%E9%A2%91%E8%AE%B2%E5%BA%A7\">\u7b2c\u4e00\u6b65\uff1a\u56de\u987e\u53ef\u6269\u5c55\u6027\u7684\u89c6\u9891\u8bb2\u5ea7<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E7%AC%AC%E4%BA%8C%E6%AD%A5%E5%9B%9E%E9%A1%BE%E5%8F%AF%E6%89%A9%E5%B1%95%E6%80%A7%E6%96%87%E7%AB%A0\">\u7b2c\u4e8c\u6b65\uff1a\u56de\u987e\u53ef\u6269\u5c55\u6027\u7684\u6587\u7ae0<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E6%8E%A5%E4%B8%8B%E6%9D%A5%E7%9A%84%E6%AD%A5%E9%AA%A4\">\u63a5\u4e0b\u6765\u7684\u6b65\u9aa4<\/a><\/li>\n<\/ul>\n<\/li>\n<li><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E6%80%A7%E8%83%BD%E4%B8%8E%E5%8F%AF%E6%89%A9%E5%B1%95%E6%80%A7\">\u6027\u80fd\u4e0e\u62d3\u5c55\u6027<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E5%BB%B6%E8%BF%9F%E4%B8%8E%E5%90%9E%E5%90%90%E9%87%8F\">\u5ef6\u8fdf\u4e0e\u541e\u5410\u91cf<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E5%8F%AF%E7%94%A8%E6%80%A7%E4%B8%8E%E4%B8%80%E8%87%B4%E6%80%A7\">\u53ef\u7528\u6027\u4e0e\u4e00\u81f4\u6027<\/a>\n<ul dir=\"auto\">\n<li><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#cap-%E7%90%86%E8%AE%BA\">CAP \u7406\u8bba<\/a>\n<ul dir=\"auto\">\n<li><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#cp--%E4%B8%80%E8%87%B4%E6%80%A7%E5%92%8C%E5%88%86%E5%8C%BA%E5%AE%B9%E9%94%99%E6%80%A7\">CP &#8211; \u4e00\u81f4\u6027\u548c\u5206\u533a\u5bb9\u9519\u6027<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#ap--%E5%8F%AF%E7%94%A8%E6%80%A7%E4%B8%8E%E5%88%86%E5%8C%BA%E5%AE%B9%E9%94%99%E6%80%A7\">AP &#8211; \u53ef\u7528\u6027\u548c\u5206\u533a\u5bb9\u9519\u6027<\/a><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<li><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E4%B8%80%E8%87%B4%E6%80%A7%E6%A8%A1%E5%BC%8F\">\u4e00\u81f4\u6a21\u5f0f<\/a>\n<ul dir=\"auto\">\n<li><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E5%BC%B1%E4%B8%80%E8%87%B4%E6%80%A7\">\u5f31\u4e00\u81f4\u6027<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E6%9C%80%E7%BB%88%E4%B8%80%E8%87%B4%E6%80%A7\">\u6700\u7ec8\u4e00\u81f4\u6027<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E5%BC%BA%E4%B8%80%E8%87%B4%E6%80%A7\">\u5f3a\u4e00\u81f4\u6027<\/a><\/li>\n<\/ul>\n<\/li>\n<li><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E5%8F%AF%E7%94%A8%E6%80%A7%E6%A8%A1%E5%BC%8F\">\u53ef\u7528\u6a21\u5f0f<\/a>\n<ul dir=\"auto\">\n<li><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E6%95%85%E9%9A%9C%E5%88%87%E6%8D%A2\">\u6545\u969c\u5207\u6362<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E5%A4%8D%E5%88%B6\">\u590d\u5236<\/a><\/li>\n<\/ul>\n<\/li>\n<li><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E5%9F%9F%E5%90%8D%E7%B3%BB%E7%BB%9F\">\u57df\u540d\u7cfb\u7edf<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E5%86%85%E5%AE%B9%E5%88%86%E5%8F%91%E7%BD%91%E7%BB%9Ccdn\">CDN<\/a>\n<ul dir=\"auto\">\n<li><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#cdn-%E6%8E%A8%E9%80%81push\">CDN \u63a8\u9001<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#cdn-%E6%8B%89%E5%8F%96pull\">CDN \u62c9\u53d6<\/a><\/li>\n<\/ul>\n<\/li>\n<li><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E8%B4%9F%E8%BD%BD%E5%9D%87%E8%A1%A1%E5%99%A8\">\u8d1f\u8f7d\u5747\u8861\u5668<\/a>\n<ul dir=\"auto\">\n<li><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E5%B7%A5%E4%BD%9C%E5%88%B0%E5%A4%87%E7%94%A8%E5%88%87%E6%8D%A2active-passive\">\u5de5\u4f5c\u5230\u5907\u7528\u5207\u6362\uff08Active-passive\uff09<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E5%8F%8C%E5%B7%A5%E4%BD%9C%E5%88%87%E6%8D%A2active-active\">\u53cc\u5de5\u4f5c\u5207\u6362\uff08Active-active\uff09<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E5%9B%9B%E5%B1%82%E8%B4%9F%E8%BD%BD%E5%9D%87%E8%A1%A1\">\u56db\u5c42\u8d1f\u8f7d\u5747\u8861<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E4%B8%83%E5%B1%82%E8%B4%9F%E8%BD%BD%E5%9D%87%E8%A1%A1%E5%99%A8\">\u4e03\u5c42\u8d1f\u8f7d\u5747\u8861<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E6%B0%B4%E5%B9%B3%E6%89%A9%E5%B1%95\">\u6c34\u5e73\u6269\u5c55<\/a><\/li>\n<\/ul>\n<\/li>\n<li><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E5%8F%8D%E5%90%91%E4%BB%A3%E7%90%86web-%E6%9C%8D%E5%8A%A1%E5%99%A8\">\u53cd\u5411\u4ee3\u7406\uff08web \u670d\u52a1\u5668\uff09<\/a>\n<ul dir=\"auto\">\n<li><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E8%B4%9F%E8%BD%BD%E5%9D%87%E8%A1%A1%E5%99%A8%E4%B8%8E%E5%8F%8D%E5%90%91%E4%BB%A3%E7%90%86\">\u8d1f\u8f7d\u5747\u8861\u4e0e\u53cd\u5411\u4ee3\u7406<\/a><\/li>\n<\/ul>\n<\/li>\n<li><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E5%BA%94%E7%94%A8%E5%B1%82\">\u5e94\u7528\u5c42<\/a>\n<ul dir=\"auto\">\n<li><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E5%BE%AE%E6%9C%8D%E5%8A%A1\">\u5fae\u670d\u52a1<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E6%9C%8D%E5%8A%A1%E5%8F%91%E7%8E%B0\">\u670d\u52a1\u53d1\u73b0<\/a><\/li>\n<\/ul>\n<\/li>\n<li><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E6%95%B0%E6%8D%AE%E5%BA%93\">\u6570\u636e\u5e93<\/a>\n<ul dir=\"auto\">\n<li><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E5%85%B3%E7%B3%BB%E5%9E%8B%E6%95%B0%E6%8D%AE%E5%BA%93%E7%AE%A1%E7%90%86%E7%B3%BB%E7%BB%9Frdbms\">\u5173\u7cfb\u578b\u6570\u636e\u5e93\u7ba1\u7406\u7cfb\u7edf\uff08RDBMS\uff09<\/a>\n<ul dir=\"auto\">\n<li><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E4%B8%BB%E4%BB%8E%E5%A4%8D%E5%88%B6\">Master-slave \u590d\u5236\u96c6<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E4%B8%BB%E4%B8%BB%E5%A4%8D%E5%88%B6\">Master-master \u590d\u5236\u96c6<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E8%81%94%E5%90%88\">\u8054\u5408<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E5%88%86%E7%89%87\">\u5206\u7247<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E9%9D%9E%E8%A7%84%E8%8C%83%E5%8C%96\">\u975e\u89c4\u8303\u5316<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#sql-%E8%B0%83%E4%BC%98\">SQL \u8c03\u4f18<\/a><\/li>\n<\/ul>\n<\/li>\n<li><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#nosql\">NoSQL<\/a>\n<ul dir=\"auto\">\n<li><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E9%94%AE-%E5%80%BC%E5%AD%98%E5%82%A8\">Key-value \u5b58\u50a8<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E6%96%87%E6%A1%A3%E7%B1%BB%E5%9E%8B%E5%AD%98%E5%82%A8\">\u6587\u6863\u5b58\u50a8<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E5%88%97%E5%9E%8B%E5%AD%98%E5%82%A8\">\u5bbd\u5217\u5b58\u50a8<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E5%9B%BE%E6%95%B0%E6%8D%AE%E5%BA%93\">\u56fe\u6570\u636e\u5e93<\/a><\/li>\n<\/ul>\n<\/li>\n<li><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#sql-%E8%BF%98%E6%98%AF-nosql\">SQL \u8fd8\u662f NoSQL<\/a><\/li>\n<\/ul>\n<\/li>\n<li><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E7%BC%93%E5%AD%98\">\u7f13\u5b58<\/a>\n<ul dir=\"auto\">\n<li><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E5%AE%A2%E6%88%B7%E7%AB%AF%E7%BC%93%E5%AD%98\">\u5ba2\u6237\u7aef\u7f13\u5b58<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#cdn-%E7%BC%93%E5%AD%98\">CDN \u7f13\u5b58<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#web-%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%BC%93%E5%AD%98\">Web \u670d\u52a1\u5668\u7f13\u5b58<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E6%95%B0%E6%8D%AE%E5%BA%93%E7%BC%93%E5%AD%98\">\u6570\u636e\u5e93\u7f13\u5b58<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E5%BA%94%E7%94%A8%E7%BC%93%E5%AD%98\">\u5e94\u7528\u7f13\u5b58<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E6%95%B0%E6%8D%AE%E5%BA%93%E6%9F%A5%E8%AF%A2%E7%BA%A7%E5%88%AB%E7%9A%84%E7%BC%93%E5%AD%98\">\u6570\u636e\u5e93\u67e5\u8be2\u7ea7\u522b\u7684\u7f13\u5b58<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E5%AF%B9%E8%B1%A1%E7%BA%A7%E5%88%AB%E7%9A%84%E7%BC%93%E5%AD%98\">\u5bf9\u8c61\u7ea7\u522b\u7684\u7f13\u5b58<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E4%BD%95%E6%97%B6%E6%9B%B4%E6%96%B0%E7%BC%93%E5%AD%98\">\u4f55\u65f6\u66f4\u65b0\u7f13\u5b58<\/a>\n<ul dir=\"auto\">\n<li><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E7%BC%93%E5%AD%98%E6%A8%A1%E5%BC%8F\">\u7f13\u5b58\u6a21\u5f0f<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E7%9B%B4%E5%86%99%E6%A8%A1%E5%BC%8F\">\u76f4\u5199\u6a21\u5f0f<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E5%9B%9E%E5%86%99%E6%A8%A1%E5%BC%8F\">\u56de\u5199\u6a21\u5f0f<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E5%88%B7%E6%96%B0\">\u5237\u65b0<\/a><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<li><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E5%BC%82%E6%AD%A5\">\u5f02\u6b65<\/a>\n<ul dir=\"auto\">\n<li><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E6%B6%88%E6%81%AF%E9%98%9F%E5%88%97\">\u6d88\u606f\u961f\u5217<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E4%BB%BB%E5%8A%A1%E9%98%9F%E5%88%97\">\u4efb\u52a1\u961f\u5217<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E8%83%8C%E5%8E%8B\">\u80cc\u538b\u673a\u5236<\/a><\/li>\n<\/ul>\n<\/li>\n<li><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E9%80%9A%E8%AE%AF\">\u901a\u8baf<\/a>\n<ul dir=\"auto\">\n<li><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E4%BC%A0%E8%BE%93%E6%8E%A7%E5%88%B6%E5%8D%8F%E8%AE%AEtcp\">\u4f20\u8f93\u63a7\u5236\u534f\u8bae\uff08TCP\uff09<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E7%94%A8%E6%88%B7%E6%95%B0%E6%8D%AE%E6%8A%A5%E5%8D%8F%E8%AE%AEudp\">\u7528\u6237\u6570\u636e\u62a5\u534f\u8bae\uff08UDP\uff09<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E8%BF%9C%E7%A8%8B%E8%BF%87%E7%A8%8B%E8%B0%83%E7%94%A8%E5%8D%8F%E8%AE%AErpc\">\u8fdc\u7a0b\u63a7\u5236\u8c03\u7528\u534f\u8bae\uff08RPC\uff09<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E8%A1%A8%E8%BF%B0%E6%80%A7%E7%8A%B6%E6%80%81%E8%BD%AC%E7%A7%BBrest\">\u8868\u8ff0\u6027\u72b6\u6001\u8f6c\u79fb\uff08REST\uff09<\/a><\/li>\n<\/ul>\n<\/li>\n<li><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E5%AE%89%E5%85%A8\">\u5b89\u5168<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E9%99%84%E5%BD%95\">\u9644\u5f55<\/a>\n<ul dir=\"auto\">\n<li><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#2-%E7%9A%84%E6%AC%A1%E6%96%B9%E8%A1%A8\">2 \u7684\u6b21\u65b9\u8868<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E6%AF%8F%E4%B8%AA%E7%A8%8B%E5%BA%8F%E5%91%98%E9%83%BD%E5%BA%94%E8%AF%A5%E7%9F%A5%E9%81%93%E7%9A%84%E5%BB%B6%E8%BF%9F%E6%95%B0\">\u6bcf\u4e2a\u7a0b\u5e8f\u5458\u90fd\u5e94\u8be5\u77e5\u9053\u7684\u5ef6\u8fdf\u6570<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E5%85%B6%E5%AE%83%E7%9A%84%E7%B3%BB%E7%BB%9F%E8%AE%BE%E8%AE%A1%E9%9D%A2%E8%AF%95%E9%A2%98\">\u5176\u5b83\u7684\u7cfb\u7edf\u8bbe\u8ba1\u9762\u8bd5\u9898<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E7%9C%9F%E5%AE%9E%E6%9E%B6%E6%9E%84\">\u771f\u5b9e\u67b6\u6784<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E5%85%AC%E5%8F%B8%E7%9A%84%E7%B3%BB%E7%BB%9F%E6%9E%B6%E6%9E%84\">\u516c\u53f8\u7684\u7cfb\u7edf\u67b6\u6784<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E5%85%AC%E5%8F%B8%E5%B7%A5%E7%A8%8B%E5%8D%9A%E5%AE%A2\">\u516c\u53f8\u5de5\u7a0b\u535a\u5ba2<\/a><\/li>\n<\/ul>\n<\/li>\n<li><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E6%AD%A3%E5%9C%A8%E5%AE%8C%E5%96%84%E4%B8%AD\">\u6b63\u5728\u5b8c\u5584\u4e2d<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E8%87%B4%E8%B0%A2\">\u81f4\u8c22<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E8%81%94%E7%B3%BB%E6%96%B9%E5%BC%8F\">\u8054\u7cfb\u65b9\u5f0f<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E8%AE%B8%E5%8F%AF\">\u8bb8\u53ef<\/a><\/li>\n<\/ul>\n<h2 dir=\"auto\"><a id=\"user-content-\u5b66\u4e60\u6307\u5f15\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E5%AD%A6%E4%B9%A0%E6%8C%87%E5%BC%95\" aria-hidden=\"true\"><\/a>\u5b66\u4e60\u6307\u5f15<\/h2>\n<blockquote>\n<p dir=\"auto\">\u57fa\u4e8e\u4f60\u9762\u8bd5\u7684\u65f6\u95f4\u7ebf\uff08\u77ed\u3001\u4e2d\u3001\u957f\uff09\u53bb\u590d\u4e60\u90a3\u4e9b\u63a8\u8350\u7684\u4e3b\u9898\u3002<\/p>\n<\/blockquote>\n<p dir=\"auto\"><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/images\/OfVllex.png\" target=\"_blank\" rel=\"noopener noreferrer\"><img decoding=\"async\" src=\"https:\/\/github.com\/donnemartin\/system-design-primer\/raw\/master\/images\/OfVllex.png\" alt=\"Imgur\" \/><\/a><\/p>\n<p dir=\"auto\"><strong>\u95ee\uff1a\u5bf9\u4e8e\u9762\u8bd5\u6765\u8bf4\uff0c\u6211\u9700\u8981\u77e5\u9053\u8fd9\u91cc\u7684\u6240\u6709\u77e5\u8bc6\u70b9\u5417\uff1f<\/strong><\/p>\n<p dir=\"auto\"><strong>\u7b54\uff1a\u4e0d\uff0c\u5982\u679c\u53ea\u662f\u4e3a\u4e86\u51c6\u5907\u9762\u8bd5\u7684\u8bdd\uff0c\u4f60\u5e76\u4e0d\u9700\u8981\u77e5\u9053\u6240\u6709\u7684\u77e5\u8bc6\u70b9\u3002<\/strong><\/p>\n<p dir=\"auto\">\u5728\u4e00\u573a\u9762\u8bd5\u4e2d\u4f60\u4f1a\u88ab\u95ee\u5230\u4ec0\u4e48\u53d6\u51b3\u4e8e\u4e0b\u9762\u8fd9\u4e9b\u56e0\u7d20\uff1a<\/p>\n<ul dir=\"auto\">\n<li>\u4f60\u7684\u7ecf\u9a8c<\/li>\n<li>\u4f60\u7684\u6280\u672f\u80cc\u666f<\/li>\n<li>\u4f60\u9762\u8bd5\u7684\u804c\u4f4d<\/li>\n<li>\u4f60\u9762\u8bd5\u7684\u516c\u53f8<\/li>\n<li>\u8fd0\u6c14<\/li>\n<\/ul>\n<p dir=\"auto\">\u90a3\u4e9b\u6709\u7ecf\u9a8c\u7684\u5019\u9009\u4eba\u901a\u5e38\u4f1a\u88ab\u671f\u671b\u4e86\u89e3\u66f4\u591a\u7684\u7cfb\u7edf\u8bbe\u8ba1\u7684\u77e5\u8bc6\u3002\u67b6\u6784\u5e08\u6216\u8005\u56e2\u961f\u8d1f\u8d23\u4eba\u5219\u4f1a\u88ab\u671f\u671b\u4e86\u89e3\u66f4\u591a\u9664\u4e86\u4e2a\u4eba\u8d21\u732e\u4e4b\u5916\u7684\u77e5\u8bc6\u3002\u9876\u7ea7\u7684\u79d1\u6280\u516c\u53f8\u901a\u5e38\u4e5f\u4f1a\u6709\u4e00\u6b21\u6216\u8005\u66f4\u591a\u7684\u7cfb\u7edf\u8bbe\u8ba1\u9762\u8bd5\u3002<\/p>\n<p dir=\"auto\">\u9762\u8bd5\u4f1a\u5f88\u5bbd\u6cdb\u7684\u5c55\u5f00\u5e76\u5728\u51e0\u4e2a\u9886\u57df\u6df1\u5165\u3002\u8fd9\u4f1a\u5e2e\u52a9\u4f60\u4e86\u89e3\u4e00\u4e9b\u5173\u4e8e\u7cfb\u7edf\u8bbe\u8ba1\u7684\u4e0d\u540c\u7684\u4e3b\u9898\u3002\u57fa\u4e8e\u4f60\u7684\u65f6\u95f4\u7ebf\uff0c\u7ecf\u9a8c\uff0c\u9762\u8bd5\u7684\u804c\u4f4d\u548c\u9762\u8bd5\u7684\u516c\u53f8\u5bf9\u4e0b\u9762\u7684\u6307\u5bfc\u505a\u51fa\u9002\u5f53\u7684\u8c03\u6574\u3002<\/p>\n<ul dir=\"auto\">\n<li><strong>\u77ed\u671f<\/strong>\u00a0&#8211; \u4ee5\u7cfb\u7edf\u8bbe\u8ba1\u4e3b\u9898\u7684<strong>\u5e7f\u5ea6<\/strong>\u4e3a\u76ee\u6807\u3002\u901a\u8fc7\u89e3\u51b3<strong>\u4e00\u4e9b<\/strong>\u9762\u8bd5\u9898\u6765\u7ec3\u4e60\u3002<\/li>\n<li><strong>\u4e2d\u671f<\/strong>\u00a0&#8211; \u4ee5\u7cfb\u7edf\u8bbe\u8ba1\u4e3b\u9898\u7684<strong>\u5e7f\u5ea6<\/strong>\u548c<strong>\u521d\u7ea7\u6df1\u5ea6<\/strong>\u4e3a\u76ee\u6807\u3002\u901a\u8fc7\u89e3\u51b3<strong>\u5f88\u591a<\/strong>\u9762\u8bd5\u9898\u6765\u7ec3\u4e60\u3002<\/li>\n<li><strong>\u957f\u671f<\/strong>\u00a0&#8211; \u4ee5\u7cfb\u7edf\u8bbe\u8ba1\u4e3b\u9898\u7684<strong>\u5e7f\u5ea6<\/strong>\u548c<strong>\u9ad8\u7ea7\u6df1\u5ea6<\/strong>\u4e3a\u76ee\u6807\u3002\u901a\u8fc7\u89e3\u51b3<strong>\u5927\u90e8\u5206<\/strong>\u9762\u8bd5\u9898\u6765\u7ec3\u4e60\u3002<\/li>\n<\/ul>\n<table>\n<thead>\n<tr>\n<th><\/th>\n<th>\u77ed\u671f<\/th>\n<th>\u4e2d\u671f<\/th>\n<th>\u957f\u671f<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>\u9605\u8bfb\u00a0<a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E7%B3%BB%E7%BB%9F%E8%AE%BE%E8%AE%A1%E4%B8%BB%E9%A2%98%E7%9A%84%E7%B4%A2%E5%BC%95\">\u7cfb\u7edf\u8bbe\u8ba1\u4e3b\u9898<\/a>\u00a0\u4ee5\u83b7\u5f97\u4e00\u4e2a\u5173\u4e8e\u7cfb\u7edf\u5982\u4f55\u5de5\u4f5c\u7684\u5bbd\u6cdb\u7684\u8ba4\u8bc6<\/td>\n<td>?<\/td>\n<td>?<\/td>\n<td>?<\/td>\n<\/tr>\n<tr>\n<td>\u9605\u8bfb\u4e00\u4e9b\u4f60\u8981\u9762\u8bd5\u7684<a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E5%85%AC%E5%8F%B8%E5%B7%A5%E7%A8%8B%E5%8D%9A%E5%AE%A2\">\u516c\u53f8\u5de5\u7a0b\u535a\u5ba2<\/a>\u7684\u6587\u7ae0<\/td>\n<td>?<\/td>\n<td>?<\/td>\n<td>?<\/td>\n<\/tr>\n<tr>\n<td>\u9605\u8bfb\u00a0<a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E7%9C%9F%E5%AE%9E%E6%9E%B6%E6%9E%84\">\u771f\u5b9e\u67b6\u6784<\/a><\/td>\n<td>?<\/td>\n<td>?<\/td>\n<td>?<\/td>\n<\/tr>\n<tr>\n<td>\u590d\u4e60\u00a0<a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E5%A6%82%E4%BD%95%E5%A4%84%E7%90%86%E4%B8%80%E4%B8%AA%E7%B3%BB%E7%BB%9F%E8%AE%BE%E8%AE%A1%E9%9D%A2%E8%AF%95%E9%A2%98\">\u5982\u4f55\u5904\u7406\u4e00\u4e2a\u7cfb\u7edf\u8bbe\u8ba1\u9762\u8bd5\u9898<\/a><\/td>\n<td>?<\/td>\n<td>?<\/td>\n<td>?<\/td>\n<\/tr>\n<tr>\n<td>\u5b8c\u6210\u00a0<a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E7%B3%BB%E7%BB%9F%E8%AE%BE%E8%AE%A1%E7%9A%84%E9%9D%A2%E8%AF%95%E9%A2%98%E5%92%8C%E8%A7%A3%E7%AD%94\">\u7cfb\u7edf\u8bbe\u8ba1\u7684\u9762\u8bd5\u9898\u548c\u89e3\u7b54<\/a><\/td>\n<td>\u4e00\u4e9b<\/td>\n<td>\u5f88\u591a<\/td>\n<td>\u5927\u90e8\u5206<\/td>\n<\/tr>\n<tr>\n<td>\u5b8c\u6210\u00a0<a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E9%9D%A2%E5%90%91%E5%AF%B9%E8%B1%A1%E8%AE%BE%E8%AE%A1%E7%9A%84%E9%9D%A2%E8%AF%95%E9%97%AE%E9%A2%98%E5%8F%8A%E8%A7%A3%E7%AD%94\">\u9762\u5411\u5bf9\u8c61\u8bbe\u8ba1\u7684\u9762\u8bd5\u9898\u548c\u89e3\u7b54<\/a><\/td>\n<td>\u4e00\u4e9b<\/td>\n<td>\u5f88\u591a<\/td>\n<td>\u5927\u90e8\u5206<\/td>\n<\/tr>\n<tr>\n<td>\u590d\u4e60\u00a0<a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E5%85%B6%E5%AE%83%E7%9A%84%E7%B3%BB%E7%BB%9F%E8%AE%BE%E8%AE%A1%E9%9D%A2%E8%AF%95%E9%A2%98\">\u5176\u5b83\u7684\u7cfb\u7edf\u8bbe\u8ba1\u9762\u8bd5\u9898<\/a><\/td>\n<td>\u4e00\u4e9b<\/td>\n<td>\u5f88\u591a<\/td>\n<td>\u5927\u90e8\u5206<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2 dir=\"auto\"><a id=\"user-content-\u5982\u4f55\u5904\u7406\u4e00\u4e2a\u7cfb\u7edf\u8bbe\u8ba1\u7684\u9762\u8bd5\u9898\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E5%A6%82%E4%BD%95%E5%A4%84%E7%90%86%E4%B8%80%E4%B8%AA%E7%B3%BB%E7%BB%9F%E8%AE%BE%E8%AE%A1%E7%9A%84%E9%9D%A2%E8%AF%95%E9%A2%98\" aria-hidden=\"true\"><\/a>\u5982\u4f55\u5904\u7406\u4e00\u4e2a\u7cfb\u7edf\u8bbe\u8ba1\u7684\u9762\u8bd5\u9898<\/h2>\n<p dir=\"auto\">\u7cfb\u7edf\u8bbe\u8ba1\u9762\u8bd5\u662f\u4e00\u4e2a<strong>\u5f00\u653e\u5f0f\u7684\u5bf9\u8bdd<\/strong>\u3002\u4ed6\u4eec\u671f\u671b\u4f60\u53bb\u4e3b\u5bfc\u8fd9\u4e2a\u5bf9\u8bdd\u3002<\/p>\n<p dir=\"auto\">\u4f60\u53ef\u4ee5\u4f7f\u7528\u4e0b\u9762\u7684\u6b65\u9aa4\u6765\u6307\u5f15\u8ba8\u8bba\u3002\u4e3a\u4e86\u5de9\u56fa\u8fd9\u4e2a\u8fc7\u7a0b\uff0c\u8bf7\u4f7f\u7528\u4e0b\u9762\u7684\u6b65\u9aa4\u5b8c\u6210<a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E7%B3%BB%E7%BB%9F%E8%AE%BE%E8%AE%A1%E7%9A%84%E9%9D%A2%E8%AF%95%E9%A2%98%E5%92%8C%E8%A7%A3%E7%AD%94\">\u7cfb\u7edf\u8bbe\u8ba1\u7684\u9762\u8bd5\u9898\u548c\u89e3\u7b54<\/a>\u8fd9\u4e2a\u7ae0\u8282\u3002<\/p>\n<h3 dir=\"auto\"><a id=\"user-content-\u7b2c\u4e00\u6b65\u63cf\u8ff0\u4f7f\u7528\u573a\u666f\u7ea6\u675f\u548c\u5047\u8bbe\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E7%AC%AC%E4%B8%80%E6%AD%A5%E6%8F%8F%E8%BF%B0%E4%BD%BF%E7%94%A8%E5%9C%BA%E6%99%AF%E7%BA%A6%E6%9D%9F%E5%92%8C%E5%81%87%E8%AE%BE\" aria-hidden=\"true\"><\/a>\u7b2c\u4e00\u6b65\uff1a\u63cf\u8ff0\u4f7f\u7528\u573a\u666f\uff0c\u7ea6\u675f\u548c\u5047\u8bbe<\/h3>\n<p dir=\"auto\">\u628a\u6240\u6709\u9700\u8981\u7684\u4e1c\u897f\u805a\u96c6\u5728\u4e00\u8d77\uff0c\u5ba1\u89c6\u95ee\u9898\u3002\u4e0d\u505c\u7684\u63d0\u95ee\uff0c\u4ee5\u81f3\u4e8e\u6211\u4eec\u53ef\u4ee5\u660e\u786e\u4f7f\u7528\u573a\u666f\u548c\u7ea6\u675f\u3002\u8ba8\u8bba\u5047\u8bbe\u3002<\/p>\n<ul dir=\"auto\">\n<li>\u8c01\u4f1a\u4f7f\u7528\u5b83\uff1f<\/li>\n<li>\u4ed6\u4eec\u4f1a\u600e\u6837\u4f7f\u7528\u5b83\uff1f<\/li>\n<li>\u6709\u591a\u5c11\u7528\u6237\uff1f<\/li>\n<li>\u7cfb\u7edf\u7684\u4f5c\u7528\u662f\u4ec0\u4e48\uff1f<\/li>\n<li>\u7cfb\u7edf\u7684\u8f93\u5165\u8f93\u51fa\u5206\u522b\u662f\u4ec0\u4e48\uff1f<\/li>\n<li>\u6211\u4eec\u5e0c\u671b\u5904\u7406\u591a\u5c11\u6570\u636e\uff1f<\/li>\n<li>\u6211\u4eec\u5e0c\u671b\u6bcf\u79d2\u949f\u5904\u7406\u591a\u5c11\u8bf7\u6c42\uff1f<\/li>\n<li>\u6211\u4eec\u5e0c\u671b\u7684\u8bfb\u5199\u6bd4\u7387\uff1f<\/li>\n<\/ul>\n<h3 dir=\"auto\"><a id=\"user-content-\u7b2c\u4e8c\u6b65\u521b\u9020\u4e00\u4e2a\u9ad8\u5c42\u7ea7\u7684\u8bbe\u8ba1\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E7%AC%AC%E4%BA%8C%E6%AD%A5%E5%88%9B%E9%80%A0%E4%B8%80%E4%B8%AA%E9%AB%98%E5%B1%82%E7%BA%A7%E7%9A%84%E8%AE%BE%E8%AE%A1\" aria-hidden=\"true\"><\/a>\u7b2c\u4e8c\u6b65\uff1a\u521b\u9020\u4e00\u4e2a\u9ad8\u5c42\u7ea7\u7684\u8bbe\u8ba1<\/h3>\n<p dir=\"auto\">\u4f7f\u7528\u6240\u6709\u91cd\u8981\u7684\u7ec4\u4ef6\u6765\u63cf\u7ed8\u51fa\u4e00\u4e2a\u9ad8\u5c42\u7ea7\u7684\u8bbe\u8ba1\u3002<\/p>\n<ul dir=\"auto\">\n<li>\u753b\u51fa\u4e3b\u8981\u7684\u7ec4\u4ef6\u548c\u8fde\u63a5<\/li>\n<li>\u8bc1\u660e\u4f60\u7684\u60f3\u6cd5<\/li>\n<\/ul>\n<h3 dir=\"auto\"><a id=\"user-content-\u7b2c\u4e09\u6b65\u8bbe\u8ba1\u6838\u5fc3\u7ec4\u4ef6\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E7%AC%AC%E4%B8%89%E6%AD%A5%E8%AE%BE%E8%AE%A1%E6%A0%B8%E5%BF%83%E7%BB%84%E4%BB%B6\" aria-hidden=\"true\"><\/a>\u7b2c\u4e09\u6b65\uff1a\u8bbe\u8ba1\u6838\u5fc3\u7ec4\u4ef6<\/h3>\n<p dir=\"auto\">\u5bf9\u6bcf\u4e00\u4e2a\u6838\u5fc3\u7ec4\u4ef6\u8fdb\u884c\u8be6\u7ec6\u6df1\u5165\u7684\u5206\u6790\u3002\u4e3e\u4f8b\u6765\u8bf4\uff0c\u5982\u679c\u4f60\u88ab\u95ee\u5230<a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/solutions\/system_design\/pastebin\/README.md\">\u8bbe\u8ba1\u4e00\u4e2a url \u7f29\u5199\u670d\u52a1<\/a>\uff0c\u5f00\u59cb\u8ba8\u8bba\uff1a<\/p>\n<ul dir=\"auto\">\n<li>\u751f\u6210\u5e76\u50a8\u5b58\u4e00\u4e2a\u5b8c\u6574 url \u7684 hash\n<ul dir=\"auto\">\n<li><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/solutions\/system_design\/pastebin\/README.md\">MD5<\/a>\u00a0\u548c\u00a0<a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/solutions\/system_design\/pastebin\/README.md\">Base62<\/a><\/li>\n<li>Hash \u78b0\u649e<\/li>\n<li>SQL \u8fd8\u662f NoSQL<\/li>\n<li>\u6570\u636e\u5e93\u6a21\u578b<\/li>\n<\/ul>\n<\/li>\n<li>\u5c06\u4e00\u4e2a hashed url \u7ffb\u8bd1\u6210\u5b8c\u6574\u7684 url\n<ul dir=\"auto\">\n<li>\u6570\u636e\u5e93\u67e5\u627e<\/li>\n<\/ul>\n<\/li>\n<li>API \u548c\u9762\u5411\u5bf9\u8c61\u8bbe\u8ba1<\/li>\n<\/ul>\n<h3 dir=\"auto\"><a id=\"user-content-\u7b2c\u56db\u6b65\u6269\u5c55\u8bbe\u8ba1\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E7%AC%AC%E5%9B%9B%E6%AD%A5%E6%89%A9%E5%B1%95%E8%AE%BE%E8%AE%A1\" aria-hidden=\"true\"><\/a>\u7b2c\u56db\u6b65\uff1a\u6269\u5c55\u8bbe\u8ba1<\/h3>\n<p dir=\"auto\">\u786e\u8ba4\u548c\u5904\u7406\u74f6\u9888\u4ee5\u53ca\u4e00\u4e9b\u9650\u5236\u3002\u4e3e\u4f8b\u6765\u8bf4\u5c31\u662f\u4f60\u9700\u8981\u4e0b\u9762\u7684\u8fd9\u4e9b\u6765\u5b8c\u6210\u6269\u5c55\u6027\u7684\u8bae\u9898\u5417\uff1f<\/p>\n<ul dir=\"auto\">\n<li>\u8d1f\u8f7d\u5747\u8861<\/li>\n<li>\u6c34\u5e73\u6269\u5c55<\/li>\n<li>\u7f13\u5b58<\/li>\n<li>\u6570\u636e\u5e93\u5206\u7247<\/li>\n<\/ul>\n<p dir=\"auto\">\u8bba\u8ff0\u53ef\u80fd\u7684\u89e3\u51b3\u529e\u6cd5\u548c\u4ee3\u4ef7\u3002\u6bcf\u4ef6\u4e8b\u60c5\u9700\u8981\u53d6\u820d\u3002\u53ef\u4ee5\u4f7f\u7528<a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E7%B3%BB%E7%BB%9F%E8%AE%BE%E8%AE%A1%E4%B8%BB%E9%A2%98%E7%9A%84%E7%B4%A2%E5%BC%95\">\u53ef\u6269\u5c55\u7cfb\u7edf\u7684\u8bbe\u8ba1\u539f\u5219<\/a>\u6765\u5904\u7406\u74f6\u9888\u3002<\/p>\n<h3 dir=\"auto\"><a id=\"user-content-\u9884\u4f30\u8ba1\u7b97\u91cf\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E9%A2%84%E4%BC%B0%E8%AE%A1%E7%AE%97%E9%87%8F\" aria-hidden=\"true\"><\/a>\u9884\u4f30\u8ba1\u7b97\u91cf<\/h3>\n<p dir=\"auto\">\u4f60\u6216\u8bb8\u4f1a\u88ab\u8981\u6c42\u901a\u8fc7\u624b\u7b97\u8fdb\u884c\u4e00\u4e9b\u4f30\u7b97\u3002<a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E9%99%84%E5%BD%95\">\u9644\u5f55<\/a>\u6d89\u53ca\u5230\u7684\u662f\u4e0b\u9762\u7684\u8fd9\u4e9b\u8d44\u6e90\uff1a<\/p>\n<ul dir=\"auto\">\n<li><a href=\"http:\/\/highscalability.com\/blog\/2011\/1\/26\/google-pro-tip-use-back-of-the-envelope-calculations-to-choo.html\" rel=\"nofollow\">\u4f7f\u7528\u9884\u4f30\u8ba1\u7b97\u91cf<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#2-%E7%9A%84%E6%AC%A1%E6%96%B9%E8%A1%A8\">2 \u7684\u6b21\u65b9\u8868<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E6%AF%8F%E4%B8%AA%E7%A8%8B%E5%BA%8F%E5%91%98%E9%83%BD%E5%BA%94%E8%AF%A5%E7%9F%A5%E9%81%93%E7%9A%84%E5%BB%B6%E8%BF%9F%E6%95%B0\">\u6bcf\u4e2a\u7a0b\u5e8f\u5458\u90fd\u5e94\u8be5\u77e5\u9053\u7684\u5ef6\u8fdf\u6570<\/a><\/li>\n<\/ul>\n<h3 dir=\"auto\"><a id=\"user-content-\u76f8\u5173\u8d44\u6e90\u548c\u5ef6\u4f38\u9605\u8bfb\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E7%9B%B8%E5%85%B3%E8%B5%84%E6%BA%90%E5%92%8C%E5%BB%B6%E4%BC%B8%E9%98%85%E8%AF%BB\" aria-hidden=\"true\"><\/a>\u76f8\u5173\u8d44\u6e90\u548c\u5ef6\u4f38\u9605\u8bfb<\/h3>\n<p dir=\"auto\">\u67e5\u770b\u4e0b\u9762\u7684\u94fe\u63a5\u4ee5\u83b7\u5f97\u6211\u4eec\u671f\u671b\u7684\u66f4\u597d\u7684\u60f3\u6cd5\uff1a<\/p>\n<ul dir=\"auto\">\n<li><a href=\"https:\/\/www.palantir.com\/2011\/10\/how-to-rock-a-systems-design-interview\/\" rel=\"nofollow\">\u600e\u6837\u901a\u8fc7\u4e00\u4e2a\u7cfb\u7edf\u8bbe\u8ba1\u7684\u9762\u8bd5<\/a><\/li>\n<li><a href=\"http:\/\/www.hiredintech.com\/system-design\" rel=\"nofollow\">\u7cfb\u7edf\u8bbe\u8ba1\u7684\u9762\u8bd5<\/a><\/li>\n<li><a href=\"https:\/\/www.youtube.com\/watch?v=ZgdS0EUmn70\" rel=\"nofollow\">\u7cfb\u7edf\u67b6\u6784\u4e0e\u8bbe\u8ba1\u7684\u9762\u8bd5\u7b80\u4ecb<\/a><\/li>\n<\/ul>\n<h2 dir=\"auto\"><a id=\"user-content-\u7cfb\u7edf\u8bbe\u8ba1\u7684\u9762\u8bd5\u9898\u548c\u89e3\u7b54\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E7%B3%BB%E7%BB%9F%E8%AE%BE%E8%AE%A1%E7%9A%84%E9%9D%A2%E8%AF%95%E9%A2%98%E5%92%8C%E8%A7%A3%E7%AD%94\" aria-hidden=\"true\"><\/a>\u7cfb\u7edf\u8bbe\u8ba1\u7684\u9762\u8bd5\u9898\u548c\u89e3\u7b54<\/h2>\n<blockquote>\n<p dir=\"auto\">\u666e\u901a\u7684\u7cfb\u7edf\u8bbe\u8ba1\u9762\u8bd5\u9898\u548c\u76f8\u5173\u4e8b\u4f8b\u7684\u8bba\u8ff0\uff0c\u4ee3\u7801\u548c\u56fe\u8868\u3002<\/p>\n<\/blockquote>\n<blockquote>\n<p dir=\"auto\">\u4e0e\u5185\u5bb9\u6709\u5173\u7684\u89e3\u7b54\u5728\u00a0<code>solutions\/<\/code>\u00a0\u6587\u4ef6\u5939\u4e2d\u3002<\/p>\n<\/blockquote>\n<table>\n<thead>\n<tr>\n<th>\u95ee\u9898<\/th>\n<th><\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>\u8bbe\u8ba1 Pastebin.com (\u6216\u8005 Bit.ly)<\/td>\n<td><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/solutions\/system_design\/pastebin\/README-zh-Hans.md\">\u89e3\u7b54<\/a><\/td>\n<\/tr>\n<tr>\n<td>\u8bbe\u8ba1 Twitter \u65f6\u95f4\u7ebf\u548c\u641c\u7d22 (\u6216\u8005 Facebook feed \u548c\u641c\u7d22)<\/td>\n<td><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/solutions\/system_design\/twitter\/README.md\">\u89e3\u7b54<\/a><\/td>\n<\/tr>\n<tr>\n<td>\u8bbe\u8ba1\u4e00\u4e2a\u7f51\u9875\u722c\u866b<\/td>\n<td><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/solutions\/system_design\/web_crawler\/README.md\">\u89e3\u7b54<\/a><\/td>\n<\/tr>\n<tr>\n<td>\u8bbe\u8ba1 Mint.com<\/td>\n<td><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/solutions\/system_design\/mint\/README.md\">\u89e3\u7b54<\/a><\/td>\n<\/tr>\n<tr>\n<td>\u4e3a\u4e00\u4e2a\u793e\u4ea4\u7f51\u7edc\u8bbe\u8ba1\u6570\u636e\u7ed3\u6784<\/td>\n<td><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/solutions\/system_design\/social_graph\/README.md\">\u89e3\u7b54<\/a><\/td>\n<\/tr>\n<tr>\n<td>\u4e3a\u641c\u7d22\u5f15\u64ce\u8bbe\u8ba1\u4e00\u4e2a key-value \u50a8\u5b58<\/td>\n<td><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/solutions\/system_design\/query_cache\/README.md\">\u89e3\u7b54<\/a><\/td>\n<\/tr>\n<tr>\n<td>\u901a\u8fc7\u5206\u7c7b\u7279\u6027\u8bbe\u8ba1 Amazon \u7684\u9500\u552e\u6392\u540d<\/td>\n<td><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/solutions\/system_design\/sales_rank\/README.md\">\u89e3\u7b54<\/a><\/td>\n<\/tr>\n<tr>\n<td>\u5728 AWS \u4e0a\u8bbe\u8ba1\u4e00\u4e2a\u767e\u4e07\u7528\u6237\u7ea7\u522b\u7684\u7cfb\u7edf<\/td>\n<td><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/solutions\/system_design\/scaling_aws\/README.md\">\u89e3\u7b54<\/a><\/td>\n<\/tr>\n<tr>\n<td>\u6dfb\u52a0\u4e00\u4e2a\u7cfb\u7edf\u8bbe\u8ba1\u95ee\u9898<\/td>\n<td><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E8%B4%A1%E7%8C%AE\">\u8d21\u732e<\/a><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3 dir=\"auto\"><a id=\"user-content-\u8bbe\u8ba1-pastebincom-\u6216\u8005-bitly\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E8%AE%BE%E8%AE%A1-pastebincom-%E6%88%96%E8%80%85-bitly\" aria-hidden=\"true\"><\/a>\u8bbe\u8ba1 Pastebin.com (\u6216\u8005 Bit.ly)<\/h3>\n<p dir=\"auto\"><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/solutions\/system_design\/pastebin\/README.md\">\u67e5\u770b\u5b9e\u8df5\u4e0e\u89e3\u7b54<\/a><\/p>\n<p dir=\"auto\"><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/images\/4edXG0T.png\" target=\"_blank\" rel=\"noopener noreferrer\"><img decoding=\"async\" src=\"https:\/\/github.com\/donnemartin\/system-design-primer\/raw\/master\/images\/4edXG0T.png\" alt=\"Imgur\" \/><\/a><\/p>\n<h3 dir=\"auto\"><a id=\"user-content-\u8bbe\u8ba1-twitter-\u65f6\u95f4\u7ebf\u548c\u641c\u7d22-\u6216\u8005-facebook-feed-\u548c\u641c\u7d22\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E8%AE%BE%E8%AE%A1-twitter-%E6%97%B6%E9%97%B4%E7%BA%BF%E5%92%8C%E6%90%9C%E7%B4%A2-%E6%88%96%E8%80%85-facebook-feed-%E5%92%8C%E6%90%9C%E7%B4%A2\" aria-hidden=\"true\"><\/a>\u8bbe\u8ba1 Twitter \u65f6\u95f4\u7ebf\u548c\u641c\u7d22 (\u6216\u8005 Facebook feed \u548c\u641c\u7d22)<\/h3>\n<p dir=\"auto\"><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/solutions\/system_design\/twitter\/README.md\">\u67e5\u770b\u5b9e\u8df5\u4e0e\u89e3\u7b54<\/a><\/p>\n<p dir=\"auto\"><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/images\/jrUBAF7.png\" target=\"_blank\" rel=\"noopener noreferrer\"><img decoding=\"async\" src=\"https:\/\/github.com\/donnemartin\/system-design-primer\/raw\/master\/images\/jrUBAF7.png\" alt=\"Imgur\" \/><\/a><\/p>\n<h3 dir=\"auto\"><a id=\"user-content-\u8bbe\u8ba1\u4e00\u4e2a\u7f51\u9875\u722c\u866b\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E8%AE%BE%E8%AE%A1%E4%B8%80%E4%B8%AA%E7%BD%91%E9%A1%B5%E7%88%AC%E8%99%AB\" aria-hidden=\"true\"><\/a>\u8bbe\u8ba1\u4e00\u4e2a\u7f51\u9875\u722c\u866b<\/h3>\n<p dir=\"auto\"><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/solutions\/system_design\/web_crawler\/README.md\">\u67e5\u770b\u5b9e\u8df5\u4e0e\u89e3\u7b54<\/a><\/p>\n<p dir=\"auto\"><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/images\/bWxPtQA.png\" target=\"_blank\" rel=\"noopener noreferrer\"><img decoding=\"async\" src=\"https:\/\/github.com\/donnemartin\/system-design-primer\/raw\/master\/images\/bWxPtQA.png\" alt=\"Imgur\" \/><\/a><\/p>\n<h3 dir=\"auto\"><a id=\"user-content-\u8bbe\u8ba1-mintcom\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E8%AE%BE%E8%AE%A1-mintcom\" aria-hidden=\"true\"><\/a>\u8bbe\u8ba1 Mint.com<\/h3>\n<p dir=\"auto\"><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/solutions\/system_design\/mint\/README.md\">\u67e5\u770b\u5b9e\u8df5\u4e0e\u89e3\u7b54<\/a><\/p>\n<p dir=\"auto\"><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/images\/V5q57vU.png\" target=\"_blank\" rel=\"noopener noreferrer\"><img decoding=\"async\" src=\"https:\/\/github.com\/donnemartin\/system-design-primer\/raw\/master\/images\/V5q57vU.png\" alt=\"Imgur\" \/><\/a><\/p>\n<h3 dir=\"auto\"><a id=\"user-content-\u4e3a\u4e00\u4e2a\u793e\u4ea4\u7f51\u7edc\u8bbe\u8ba1\u6570\u636e\u7ed3\u6784\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E4%B8%BA%E4%B8%80%E4%B8%AA%E7%A4%BE%E4%BA%A4%E7%BD%91%E7%BB%9C%E8%AE%BE%E8%AE%A1%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84\" aria-hidden=\"true\"><\/a>\u4e3a\u4e00\u4e2a\u793e\u4ea4\u7f51\u7edc\u8bbe\u8ba1\u6570\u636e\u7ed3\u6784<\/h3>\n<p dir=\"auto\"><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/solutions\/system_design\/social_graph\/README.md\">\u67e5\u770b\u5b9e\u8df5\u4e0e\u89e3\u7b54<\/a><\/p>\n<p dir=\"auto\"><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/images\/cdCv5g7.png\" target=\"_blank\" rel=\"noopener noreferrer\"><img decoding=\"async\" src=\"https:\/\/github.com\/donnemartin\/system-design-primer\/raw\/master\/images\/cdCv5g7.png\" alt=\"Imgur\" \/><\/a><\/p>\n<h3 dir=\"auto\"><a id=\"user-content-\u4e3a\u641c\u7d22\u5f15\u64ce\u8bbe\u8ba1\u4e00\u4e2a-key-value-\u50a8\u5b58\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E4%B8%BA%E6%90%9C%E7%B4%A2%E5%BC%95%E6%93%8E%E8%AE%BE%E8%AE%A1%E4%B8%80%E4%B8%AA-key-value-%E5%82%A8%E5%AD%98\" aria-hidden=\"true\"><\/a>\u4e3a\u641c\u7d22\u5f15\u64ce\u8bbe\u8ba1\u4e00\u4e2a key-value \u50a8\u5b58<\/h3>\n<p dir=\"auto\"><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/solutions\/system_design\/query_cache\/README.md\">\u67e5\u770b\u5b9e\u8df5\u4e0e\u89e3\u7b54<\/a><\/p>\n<p dir=\"auto\"><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/images\/4j99mhe.png\" target=\"_blank\" rel=\"noopener noreferrer\"><img decoding=\"async\" src=\"https:\/\/github.com\/donnemartin\/system-design-primer\/raw\/master\/images\/4j99mhe.png\" alt=\"Imgur\" \/><\/a><\/p>\n<h3 dir=\"auto\"><a id=\"user-content-\u8bbe\u8ba1\u6309\u7c7b\u522b\u5206\u7c7b\u7684-amazon-\u9500\u552e\u6392\u540d\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E8%AE%BE%E8%AE%A1%E6%8C%89%E7%B1%BB%E5%88%AB%E5%88%86%E7%B1%BB%E7%9A%84-amazon-%E9%94%80%E5%94%AE%E6%8E%92%E5%90%8D\" aria-hidden=\"true\"><\/a>\u8bbe\u8ba1\u6309\u7c7b\u522b\u5206\u7c7b\u7684 Amazon \u9500\u552e\u6392\u540d<\/h3>\n<p dir=\"auto\"><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/solutions\/system_design\/sales_rank\/README.md\">\u67e5\u770b\u5b9e\u8df5\u4e0e\u89e3\u7b54<\/a><\/p>\n<p dir=\"auto\"><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/images\/MzExP06.png\" target=\"_blank\" rel=\"noopener noreferrer\"><img decoding=\"async\" src=\"https:\/\/github.com\/donnemartin\/system-design-primer\/raw\/master\/images\/MzExP06.png\" alt=\"Imgur\" \/><\/a><\/p>\n<h3 dir=\"auto\"><a id=\"user-content-\u5728-aws-\u4e0a\u8bbe\u8ba1\u4e00\u4e2a\u767e\u4e07\u7528\u6237\u7ea7\u522b\u7684\u7cfb\u7edf\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E5%9C%A8-aws-%E4%B8%8A%E8%AE%BE%E8%AE%A1%E4%B8%80%E4%B8%AA%E7%99%BE%E4%B8%87%E7%94%A8%E6%88%B7%E7%BA%A7%E5%88%AB%E7%9A%84%E7%B3%BB%E7%BB%9F\" aria-hidden=\"true\"><\/a>\u5728 AWS \u4e0a\u8bbe\u8ba1\u4e00\u4e2a\u767e\u4e07\u7528\u6237\u7ea7\u522b\u7684\u7cfb\u7edf<\/h3>\n<p dir=\"auto\"><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/solutions\/system_design\/scaling_aws\/README.md\">\u67e5\u770b\u5b9e\u8df5\u4e0e\u89e3\u7b54<\/a><\/p>\n<p dir=\"auto\"><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/images\/jj3A5N8.png\" target=\"_blank\" rel=\"noopener noreferrer\"><img decoding=\"async\" src=\"https:\/\/github.com\/donnemartin\/system-design-primer\/raw\/master\/images\/jj3A5N8.png\" alt=\"Imgur\" \/><\/a><\/p>\n<h2 dir=\"auto\"><a id=\"user-content-\u9762\u5411\u5bf9\u8c61\u8bbe\u8ba1\u7684\u9762\u8bd5\u95ee\u9898\u53ca\u89e3\u7b54\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E9%9D%A2%E5%90%91%E5%AF%B9%E8%B1%A1%E8%AE%BE%E8%AE%A1%E7%9A%84%E9%9D%A2%E8%AF%95%E9%97%AE%E9%A2%98%E5%8F%8A%E8%A7%A3%E7%AD%94\" aria-hidden=\"true\"><\/a>\u9762\u5411\u5bf9\u8c61\u8bbe\u8ba1\u7684\u9762\u8bd5\u95ee\u9898\u53ca\u89e3\u7b54<\/h2>\n<blockquote>\n<p dir=\"auto\">\u5e38\u89c1\u9762\u5411\u5bf9\u8c61\u8bbe\u8ba1\u9762\u8bd5\u95ee\u9898\u53ca\u5b9e\u4f8b\u8ba8\u8bba\uff0c\u4ee3\u7801\u548c\u56fe\u8868\u6f14\u793a\u3002<\/p>\n<p dir=\"auto\">\u4e0e\u5185\u5bb9\u76f8\u5173\u7684\u89e3\u51b3\u65b9\u6848\u5728\u00a0<code>solutions\/<\/code>\u00a0\u6587\u4ef6\u5939\u4e2d\u3002<\/p>\n<\/blockquote>\n<blockquote>\n<p dir=\"auto\"><strong>\u6ce8\uff1a\u6b64\u8282\u8fd8\u5728\u5b8c\u5584\u4e2d<\/strong><\/p>\n<\/blockquote>\n<table>\n<thead>\n<tr>\n<th>\u95ee\u9898<\/th>\n<th><\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>\u8bbe\u8ba1 hash map<\/td>\n<td><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/solutions\/object_oriented_design\/hash_table\/hash_map.ipynb\">\u89e3\u51b3\u65b9\u6848<\/a><\/td>\n<\/tr>\n<tr>\n<td>\u8bbe\u8ba1 LRU \u7f13\u5b58<\/td>\n<td><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/solutions\/object_oriented_design\/lru_cache\/lru_cache.ipynb\">\u89e3\u51b3\u65b9\u6848<\/a><\/td>\n<\/tr>\n<tr>\n<td>\u8bbe\u8ba1\u4e00\u4e2a\u547c\u53eb\u4e2d\u5fc3<\/td>\n<td><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/solutions\/object_oriented_design\/call_center\/call_center.ipynb\">\u89e3\u51b3\u65b9\u6848<\/a><\/td>\n<\/tr>\n<tr>\n<td>\u8bbe\u8ba1\u4e00\u526f\u724c<\/td>\n<td><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/solutions\/object_oriented_design\/deck_of_cards\/deck_of_cards.ipynb\">\u89e3\u51b3\u65b9\u6848<\/a><\/td>\n<\/tr>\n<tr>\n<td>\u8bbe\u8ba1\u4e00\u4e2a\u505c\u8f66\u573a<\/td>\n<td><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/solutions\/object_oriented_design\/parking_lot\/parking_lot.ipynb\">\u89e3\u51b3\u65b9\u6848<\/a><\/td>\n<\/tr>\n<tr>\n<td>\u8bbe\u8ba1\u4e00\u4e2a\u804a\u5929\u670d\u52a1<\/td>\n<td><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/solutions\/object_oriented_design\/online_chat\/online_chat.ipynb\">\u89e3\u51b3\u65b9\u6848<\/a><\/td>\n<\/tr>\n<tr>\n<td>\u8bbe\u8ba1\u4e00\u4e2a\u73af\u5f62\u6570\u7ec4<\/td>\n<td><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E8%B4%A1%E7%8C%AE\">\u5f85\u89e3\u51b3<\/a><\/td>\n<\/tr>\n<tr>\n<td>\u6dfb\u52a0\u4e00\u4e2a\u9762\u5411\u5bf9\u8c61\u8bbe\u8ba1\u95ee\u9898<\/td>\n<td><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E8%B4%A1%E7%8C%AE\">\u5f85\u89e3\u51b3<\/a><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2 dir=\"auto\"><a id=\"user-content-\u7cfb\u7edf\u8bbe\u8ba1\u4e3b\u9898\u4ece\u8fd9\u91cc\u5f00\u59cb\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E7%B3%BB%E7%BB%9F%E8%AE%BE%E8%AE%A1%E4%B8%BB%E9%A2%98%E4%BB%8E%E8%BF%99%E9%87%8C%E5%BC%80%E5%A7%8B\" aria-hidden=\"true\"><\/a>\u7cfb\u7edf\u8bbe\u8ba1\u4e3b\u9898\uff1a\u4ece\u8fd9\u91cc\u5f00\u59cb<\/h2>\n<p dir=\"auto\">\u4e0d\u719f\u6089\u7cfb\u7edf\u8bbe\u8ba1\uff1f<\/p>\n<p dir=\"auto\">\u9996\u5148\uff0c\u4f60\u9700\u8981\u5bf9\u4e00\u822c\u6027\u539f\u5219\u6709\u4e00\u4e2a\u57fa\u672c\u7684\u8ba4\u8bc6\uff0c\u77e5\u9053\u5b83\u4eec\u662f\u4ec0\u4e48\uff0c\u600e\u6837\u4f7f\u7528\u4ee5\u53ca\u5229\u5f0a\u3002<\/p>\n<h3 dir=\"auto\"><a id=\"user-content-\u7b2c\u4e00\u6b65\u56de\u987e\u53ef\u6269\u5c55\u6027scalability\u7684\u89c6\u9891\u8bb2\u5ea7\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E7%AC%AC%E4%B8%80%E6%AD%A5%E5%9B%9E%E9%A1%BE%E5%8F%AF%E6%89%A9%E5%B1%95%E6%80%A7scalability%E7%9A%84%E8%A7%86%E9%A2%91%E8%AE%B2%E5%BA%A7\" aria-hidden=\"true\"><\/a>\u7b2c\u4e00\u6b65\uff1a\u56de\u987e\u53ef\u6269\u5c55\u6027\uff08scalability\uff09\u7684\u89c6\u9891\u8bb2\u5ea7<\/h3>\n<p dir=\"auto\"><a href=\"https:\/\/www.youtube.com\/watch?v=-W9F__D3oY4\" rel=\"nofollow\">\u54c8\u4f5b\u5927\u5b66\u53ef\u6269\u5c55\u6027\u8bb2\u5ea7<\/a><\/p>\n<ul dir=\"auto\">\n<li>\u4e3b\u9898\u6db5\u76d6\n<ul dir=\"auto\">\n<li>\u5782\u76f4\u6269\u5c55\uff08Vertical scaling\uff09<\/li>\n<li>\u6c34\u5e73\u6269\u5c55\uff08Horizontal scaling\uff09<\/li>\n<li>\u7f13\u5b58<\/li>\n<li>\u8d1f\u8f7d\u5747\u8861<\/li>\n<li>\u6570\u636e\u5e93\u590d\u5236<\/li>\n<li>\u6570\u636e\u5e93\u5206\u533a<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h3 dir=\"auto\"><a id=\"user-content-\u7b2c\u4e8c\u6b65\u56de\u987e\u53ef\u6269\u5c55\u6027\u6587\u7ae0\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E7%AC%AC%E4%BA%8C%E6%AD%A5%E5%9B%9E%E9%A1%BE%E5%8F%AF%E6%89%A9%E5%B1%95%E6%80%A7%E6%96%87%E7%AB%A0\" aria-hidden=\"true\"><\/a>\u7b2c\u4e8c\u6b65\uff1a\u56de\u987e\u53ef\u6269\u5c55\u6027\u6587\u7ae0<\/h3>\n<p dir=\"auto\"><a href=\"http:\/\/www.lecloud.net\/tagged\/scalability\/chrono\" rel=\"nofollow\">\u53ef\u6269\u5c55\u6027<\/a><\/p>\n<ul dir=\"auto\">\n<li>\u4e3b\u9898\u6db5\u76d6\uff1a\n<ul dir=\"auto\">\n<li><a href=\"http:\/\/www.lecloud.net\/post\/7295452622\/scalability-for-dummies-part-1-clones\" rel=\"nofollow\">Clones<\/a><\/li>\n<li><a href=\"http:\/\/www.lecloud.net\/post\/7994751381\/scalability-for-dummies-part-2-database\" rel=\"nofollow\">\u6570\u636e\u5e93<\/a><\/li>\n<li><a href=\"http:\/\/www.lecloud.net\/post\/9246290032\/scalability-for-dummies-part-3-cache\" rel=\"nofollow\">\u7f13\u5b58<\/a><\/li>\n<li><a href=\"http:\/\/www.lecloud.net\/post\/9699762917\/scalability-for-dummies-part-4-asynchronism\" rel=\"nofollow\">\u5f02\u6b65<\/a><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h3 dir=\"auto\"><a id=\"user-content-\u63a5\u4e0b\u6765\u7684\u6b65\u9aa4\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E6%8E%A5%E4%B8%8B%E6%9D%A5%E7%9A%84%E6%AD%A5%E9%AA%A4\" aria-hidden=\"true\"><\/a>\u63a5\u4e0b\u6765\u7684\u6b65\u9aa4<\/h3>\n<p dir=\"auto\">\u63a5\u4e0b\u6765\uff0c\u6211\u4eec\u5c06\u770b\u770b\u9ad8\u9636\u7684\u6743\u8861\u548c\u53d6\u820d:<\/p>\n<ul dir=\"auto\">\n<li><strong>\u6027\u80fd<\/strong>\u4e0e<strong>\u53ef\u6269\u5c55\u6027<\/strong><\/li>\n<li><strong>\u5ef6\u8fdf<\/strong>\u4e0e<strong>\u541e\u5410\u91cf<\/strong><\/li>\n<li><strong>\u53ef\u7528\u6027<\/strong>\u4e0e<strong>\u4e00\u81f4\u6027<\/strong><\/li>\n<\/ul>\n<p dir=\"auto\">\u8bb0\u4f4f<strong>\u6bcf\u4e2a\u65b9\u9762\u90fd\u9762\u4e34\u53d6\u820d\u548c\u6743\u8861<\/strong>\u3002<\/p>\n<p dir=\"auto\">\u7136\u540e\uff0c\u6211\u4eec\u5c06\u6df1\u5165\u66f4\u5177\u4f53\u7684\u4e3b\u9898\uff0c\u5982 DNS\u3001CDN \u548c\u8d1f\u8f7d\u5747\u8861\u5668\u3002<\/p>\n<h2 dir=\"auto\"><a id=\"user-content-\u6027\u80fd\u4e0e\u53ef\u6269\u5c55\u6027\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E6%80%A7%E8%83%BD%E4%B8%8E%E5%8F%AF%E6%89%A9%E5%B1%95%E6%80%A7\" aria-hidden=\"true\"><\/a>\u6027\u80fd\u4e0e\u53ef\u6269\u5c55\u6027<\/h2>\n<p dir=\"auto\">\u5982\u679c\u670d\u52a1<strong>\u6027\u80fd<\/strong>\u7684\u589e\u957f\u4e0e\u8d44\u6e90\u7684\u589e\u52a0\u662f\u6210\u6bd4\u4f8b\u7684\uff0c\u670d\u52a1\u5c31\u662f\u53ef\u6269\u5c55\u7684\u3002\u901a\u5e38\uff0c\u63d0\u9ad8\u6027\u80fd\u610f\u5473\u7740\u670d\u52a1\u4e8e\u66f4\u591a\u7684\u5de5\u4f5c\u5355\u5143\uff0c\u53e6\u4e00\u65b9\u9762\uff0c\u5f53\u6570\u636e\u96c6\u589e\u957f\u65f6\uff0c\u540c\u6837\u4e5f\u53ef\u4ee5\u5904\u7406\u66f4\u5927\u7684\u5de5\u4f5c\u5355\u4f4d\u3002<sup><a href=\"http:\/\/www.allthingsdistributed.com\/2006\/03\/a_word_on_scalability.html\" rel=\"nofollow\">1<\/a><\/sup><\/p>\n<p dir=\"auto\">\u53e6\u4e00\u4e2a\u89d2\u5ea6\u6765\u770b\u5f85\u6027\u80fd\u4e0e\u53ef\u6269\u5c55\u6027:<\/p>\n<ul dir=\"auto\">\n<li>\u5982\u679c\u4f60\u7684\u7cfb\u7edf\u6709<strong>\u6027\u80fd<\/strong>\u95ee\u9898\uff0c\u5bf9\u4e8e\u5355\u4e2a\u7528\u6237\u6765\u8bf4\u662f\u7f13\u6162\u7684\u3002<\/li>\n<li>\u5982\u679c\u4f60\u7684\u7cfb\u7edf\u6709<strong>\u53ef\u6269\u5c55\u6027<\/strong>\u95ee\u9898\uff0c\u5355\u4e2a\u7528\u6237\u8f83\u5feb\u4f46\u5728\u9ad8\u8d1f\u8f7d\u4e0b\u4f1a\u53d8\u6162\u3002<\/li>\n<\/ul>\n<h3 dir=\"auto\"><a id=\"user-content-\u6765\u6e90\u53ca\u5ef6\u4f38\u9605\u8bfb\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E6%9D%A5%E6%BA%90%E5%8F%8A%E5%BB%B6%E4%BC%B8%E9%98%85%E8%AF%BB\" aria-hidden=\"true\"><\/a>\u6765\u6e90\u53ca\u5ef6\u4f38\u9605\u8bfb<\/h3>\n<ul dir=\"auto\">\n<li><a href=\"http:\/\/www.allthingsdistributed.com\/2006\/03\/a_word_on_scalability.html\" rel=\"nofollow\">\u7b80\u5355\u8c08\u8c08\u53ef\u6269\u5c55\u6027<\/a><\/li>\n<li><a href=\"http:\/\/www.slideshare.net\/jboner\/scalability-availability-stability-patterns\/\" rel=\"nofollow\">\u53ef\u6269\u5c55\u6027\uff0c\u53ef\u7528\u6027\uff0c\u7a33\u5b9a\u6027\u548c\u6a21\u5f0f<\/a><\/li>\n<\/ul>\n<h2 dir=\"auto\"><a id=\"user-content-\u5ef6\u8fdf\u4e0e\u541e\u5410\u91cf\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E5%BB%B6%E8%BF%9F%E4%B8%8E%E5%90%9E%E5%90%90%E9%87%8F\" aria-hidden=\"true\"><\/a>\u5ef6\u8fdf\u4e0e\u541e\u5410\u91cf<\/h2>\n<p dir=\"auto\"><strong>\u5ef6\u8fdf<\/strong>\u662f\u6267\u884c\u64cd\u4f5c\u6216\u8fd0\u7b97\u7ed3\u679c\u6240\u82b1\u8d39\u7684\u65f6\u95f4\u3002<\/p>\n<p dir=\"auto\"><strong>\u541e\u5410\u91cf<\/strong>\u662f\u5355\u4f4d\u65f6\u95f4\u5185\uff08\u6267\u884c\uff09\u6b64\u7c7b\u64cd\u4f5c\u6216\u8fd0\u7b97\u7684\u6570\u91cf\u3002<\/p>\n<p dir=\"auto\">\u901a\u5e38\uff0c\u4f60\u5e94\u8be5\u4ee5<strong>\u53ef\u63a5\u53d7\u7ea7\u5ef6\u8fdf<\/strong>\u4e0b<strong>\u6700\u5927\u5316\u541e\u5410\u91cf<\/strong>\u4e3a\u76ee\u6807\u3002<\/p>\n<h3 dir=\"auto\"><a id=\"user-content-\u6765\u6e90\u53ca\u5ef6\u4f38\u9605\u8bfb-1\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E6%9D%A5%E6%BA%90%E5%8F%8A%E5%BB%B6%E4%BC%B8%E9%98%85%E8%AF%BB-1\" aria-hidden=\"true\"><\/a>\u6765\u6e90\u53ca\u5ef6\u4f38\u9605\u8bfb<\/h3>\n<ul dir=\"auto\">\n<li><a href=\"https:\/\/community.cadence.com\/cadence_blogs_8\/b\/sd\/archive\/2010\/09\/13\/understanding-latency-vs-throughput\" rel=\"nofollow\">\u7406\u89e3\u5ef6\u8fdf\u4e0e\u541e\u5410\u91cf<\/a><\/li>\n<\/ul>\n<h2 dir=\"auto\"><a id=\"user-content-\u53ef\u7528\u6027\u4e0e\u4e00\u81f4\u6027\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E5%8F%AF%E7%94%A8%E6%80%A7%E4%B8%8E%E4%B8%80%E8%87%B4%E6%80%A7\" aria-hidden=\"true\"><\/a>\u53ef\u7528\u6027\u4e0e\u4e00\u81f4\u6027<\/h2>\n<h3 dir=\"auto\"><a id=\"user-content-cap-\u7406\u8bba\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#cap-%E7%90%86%E8%AE%BA\" aria-hidden=\"true\"><\/a>CAP \u7406\u8bba<\/h3>\n<p dir=\"auto\" align=\"center\"><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/images\/bgLMI2u.png\" target=\"_blank\" rel=\"noopener noreferrer\"><img decoding=\"async\" src=\"https:\/\/github.com\/donnemartin\/system-design-primer\/raw\/master\/images\/bgLMI2u.png\" \/><\/a><br \/>\n<strong><a href=\"http:\/\/robertgreiner.com\/2014\/08\/cap-theorem-revisited\" rel=\"nofollow\">\u6765\u6e90\uff1a\u518d\u770b CAP \u7406\u8bba<\/a><\/strong><\/p>\n<p dir=\"auto\">\u5728\u4e00\u4e2a\u5206\u5e03\u5f0f\u8ba1\u7b97\u7cfb\u7edf\u4e2d\uff0c\u53ea\u80fd\u540c\u65f6\u6ee1\u8db3\u4e0b\u5217\u7684\u4e24\u70b9:<\/p>\n<ul dir=\"auto\">\n<li><strong>\u4e00\u81f4\u6027<\/strong>\u00a0\u2500 \u6bcf\u6b21\u8bbf\u95ee\u90fd\u80fd\u83b7\u5f97\u6700\u65b0\u6570\u636e\u4f46\u53ef\u80fd\u4f1a\u6536\u5230\u9519\u8bef\u54cd\u5e94<\/li>\n<li><strong>\u53ef\u7528\u6027<\/strong>\u00a0\u2500 \u6bcf\u6b21\u8bbf\u95ee\u90fd\u80fd\u6536\u5230\u975e\u9519\u54cd\u5e94\uff0c\u4f46\u4e0d\u4fdd\u8bc1\u83b7\u53d6\u5230\u6700\u65b0\u6570\u636e<\/li>\n<li><strong>\u5206\u533a\u5bb9\u9519\u6027<\/strong>\u00a0\u2500 \u5728\u4efb\u610f\u5206\u533a\u7f51\u7edc\u6545\u969c\u7684\u60c5\u51b5\u4e0b\u7cfb\u7edf\u4ecd\u80fd\u7ee7\u7eed\u8fd0\u884c<\/li>\n<\/ul>\n<p dir=\"auto\"><strong>\u7f51\u7edc\u5e76\u4e0d\u53ef\u9760\uff0c\u6240\u4ee5\u4f60\u5e94\u8981\u652f\u6301\u5206\u533a\u5bb9\u9519\u6027\uff0c\u5e76\u9700\u8981\u5728\u8f6f\u4ef6\u53ef\u7528\u6027\u548c\u4e00\u81f4\u6027\u95f4\u505a\u51fa\u53d6\u820d\u3002<\/strong><\/p>\n<h4 dir=\"auto\"><a id=\"user-content-cp--\u4e00\u81f4\u6027\u548c\u5206\u533a\u5bb9\u9519\u6027\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#cp--%E4%B8%80%E8%87%B4%E6%80%A7%E5%92%8C%E5%88%86%E5%8C%BA%E5%AE%B9%E9%94%99%E6%80%A7\" aria-hidden=\"true\"><\/a>CP \u2500 \u4e00\u81f4\u6027\u548c\u5206\u533a\u5bb9\u9519\u6027<\/h4>\n<p dir=\"auto\">\u7b49\u5f85\u5206\u533a\u8282\u70b9\u7684\u54cd\u5e94\u53ef\u80fd\u4f1a\u5bfc\u81f4\u5ef6\u65f6\u9519\u8bef\u3002\u5982\u679c\u4f60\u7684\u4e1a\u52a1\u9700\u6c42\u9700\u8981\u539f\u5b50\u8bfb\u5199\uff0cCP \u662f\u4e00\u4e2a\u4e0d\u9519\u7684\u9009\u62e9\u3002<\/p>\n<h4 dir=\"auto\"><a id=\"user-content-ap--\u53ef\u7528\u6027\u4e0e\u5206\u533a\u5bb9\u9519\u6027\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#ap--%E5%8F%AF%E7%94%A8%E6%80%A7%E4%B8%8E%E5%88%86%E5%8C%BA%E5%AE%B9%E9%94%99%E6%80%A7\" aria-hidden=\"true\"><\/a>AP \u2500 \u53ef\u7528\u6027\u4e0e\u5206\u533a\u5bb9\u9519\u6027<\/h4>\n<p dir=\"auto\">\u54cd\u5e94\u8282\u70b9\u4e0a\u53ef\u7528\u6570\u636e\u7684\u6700\u8fd1\u7248\u672c\u53ef\u80fd\u5e76\u4e0d\u662f\u6700\u65b0\u7684\u3002\u5f53\u5206\u533a\u89e3\u6790\u5b8c\u540e\uff0c\u5199\u5165\uff08\u64cd\u4f5c\uff09\u53ef\u80fd\u9700\u8981\u4e00\u4e9b\u65f6\u95f4\u6765\u4f20\u64ad\u3002<\/p>\n<p dir=\"auto\">\u5982\u679c\u4e1a\u52a1\u9700\u6c42\u5141\u8bb8<a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E6%9C%80%E7%BB%88%E4%B8%80%E8%87%B4%E6%80%A7\">\u6700\u7ec8\u4e00\u81f4\u6027<\/a>\uff0c\u6216\u5f53\u6709\u5916\u90e8\u6545\u969c\u65f6\u8981\u6c42\u7cfb\u7edf\u7ee7\u7eed\u8fd0\u884c\uff0cAP \u662f\u4e00\u4e2a\u4e0d\u9519\u7684\u9009\u62e9\u3002<\/p>\n<h3 dir=\"auto\"><a id=\"user-content-\u6765\u6e90\u53ca\u5ef6\u4f38\u9605\u8bfb-2\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E6%9D%A5%E6%BA%90%E5%8F%8A%E5%BB%B6%E4%BC%B8%E9%98%85%E8%AF%BB-2\" aria-hidden=\"true\"><\/a>\u6765\u6e90\u53ca\u5ef6\u4f38\u9605\u8bfb<\/h3>\n<ul dir=\"auto\">\n<li><a href=\"http:\/\/robertgreiner.com\/2014\/08\/cap-theorem-revisited\/\" rel=\"nofollow\">\u518d\u770b CAP \u7406\u8bba<\/a><\/li>\n<li><a href=\"http:\/\/ksat.me\/a-plain-english-introduction-to-cap-theorem\/\" rel=\"nofollow\">\u901a\u4fd7\u6613\u61c2\u5730\u4ecb\u7ecd CAP \u7406\u8bba<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/henryr\/cap-faq\">CAP FAQ<\/a><\/li>\n<\/ul>\n<h2 dir=\"auto\"><a id=\"user-content-\u4e00\u81f4\u6027\u6a21\u5f0f\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E4%B8%80%E8%87%B4%E6%80%A7%E6%A8%A1%E5%BC%8F\" aria-hidden=\"true\"><\/a>\u4e00\u81f4\u6027\u6a21\u5f0f<\/h2>\n<p dir=\"auto\">\u6709\u540c\u4e00\u4efd\u6570\u636e\u7684\u591a\u4efd\u526f\u672c\uff0c\u6211\u4eec\u9762\u4e34\u7740\u600e\u6837\u540c\u6b65\u5b83\u4eec\u7684\u9009\u62e9\uff0c\u4ee5\u4fbf\u8ba9\u5ba2\u6237\u7aef\u6709\u4e00\u81f4\u7684\u663e\u793a\u6570\u636e\u3002\u56de\u60f3\u00a0<a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#cap-%E7%90%86%E8%AE%BA\">CAP \u7406\u8bba<\/a>\u4e2d\u7684\u4e00\u81f4\u6027\u5b9a\u4e49 \u2500 \u6bcf\u6b21\u8bbf\u95ee\u90fd\u80fd\u83b7\u5f97\u6700\u65b0\u6570\u636e\u4f46\u53ef\u80fd\u4f1a\u6536\u5230\u9519\u8bef\u54cd\u5e94<\/p>\n<h3 dir=\"auto\"><a id=\"user-content-\u5f31\u4e00\u81f4\u6027\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E5%BC%B1%E4%B8%80%E8%87%B4%E6%80%A7\" aria-hidden=\"true\"><\/a>\u5f31\u4e00\u81f4\u6027<\/h3>\n<p dir=\"auto\">\u5728\u5199\u5165\u4e4b\u540e\uff0c\u8bbf\u95ee\u53ef\u80fd\u770b\u5230\uff0c\u4e5f\u53ef\u80fd\u770b\u4e0d\u5230\uff08\u5199\u5165\u6570\u636e\uff09\u3002\u5c3d\u529b\u4f18\u5316\u4e4b\u8ba9\u5176\u80fd\u8bbf\u95ee\u6700\u65b0\u6570\u636e\u3002<\/p>\n<p dir=\"auto\">\u8fd9\u79cd\u65b9\u5f0f\u53ef\u4ee5 memcached \u7b49\u7cfb\u7edf\u4e2d\u770b\u5230\u3002\u5f31\u4e00\u81f4\u6027\u5728 VoIP\uff0c\u89c6\u9891\u804a\u5929\u548c\u5b9e\u65f6\u591a\u4eba\u6e38\u620f\u7b49\u771f\u5b9e\u7528\u4f8b\u4e2d\u8868\u73b0\u4e0d\u9519\u3002\u6253\u4e2a\u6bd4\u65b9\uff0c\u5982\u679c\u4f60\u5728\u901a\u8bdd\u4e2d\u4e22\u5931\u4fe1\u53f7\u51e0\u79d2\u949f\u65f6\u95f4\uff0c\u5f53\u91cd\u65b0\u8fde\u63a5\u65f6\u4f60\u662f\u542c\u4e0d\u5230\u8fd9\u51e0\u79d2\u949f\u6240\u8bf4\u7684\u8bdd\u7684\u3002<\/p>\n<h3 dir=\"auto\"><a id=\"user-content-\u6700\u7ec8\u4e00\u81f4\u6027\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E6%9C%80%E7%BB%88%E4%B8%80%E8%87%B4%E6%80%A7\" aria-hidden=\"true\"><\/a>\u6700\u7ec8\u4e00\u81f4\u6027<\/h3>\n<p dir=\"auto\">\u5728\u5199\u5165\u540e\uff0c\u8bbf\u95ee\u6700\u7ec8\u80fd\u770b\u5230\u5199\u5165\u6570\u636e\uff08\u901a\u5e38\u5728\u6570\u6beb\u79d2\u5185\uff09\u3002\u6570\u636e\u88ab\u5f02\u6b65\u590d\u5236\u3002<\/p>\n<p dir=\"auto\">DNS \u548c email \u7b49\u7cfb\u7edf\u4f7f\u7528\u7684\u662f\u6b64\u79cd\u65b9\u5f0f\u3002\u6700\u7ec8\u4e00\u81f4\u6027\u5728\u9ad8\u53ef\u7528\u6027\u7cfb\u7edf\u4e2d\u6548\u679c\u4e0d\u9519\u3002<\/p>\n<h3 dir=\"auto\"><a id=\"user-content-\u5f3a\u4e00\u81f4\u6027\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E5%BC%BA%E4%B8%80%E8%87%B4%E6%80%A7\" aria-hidden=\"true\"><\/a>\u5f3a\u4e00\u81f4\u6027<\/h3>\n<p dir=\"auto\">\u5728\u5199\u5165\u540e\uff0c\u8bbf\u95ee\u7acb\u5373\u53ef\u89c1\u3002\u6570\u636e\u88ab\u540c\u6b65\u590d\u5236\u3002<\/p>\n<p dir=\"auto\">\u6587\u4ef6\u7cfb\u7edf\u548c\u5173\u7cfb\u578b\u6570\u636e\u5e93\uff08RDBMS\uff09\u4e2d\u4f7f\u7528\u7684\u662f\u6b64\u79cd\u65b9\u5f0f\u3002\u5f3a\u4e00\u81f4\u6027\u5728\u9700\u8981\u8bb0\u5f55\u7684\u7cfb\u7edf\u4e2d\u8fd0\u4f5c\u826f\u597d\u3002<\/p>\n<h3 dir=\"auto\"><a id=\"user-content-\u6765\u6e90\u53ca\u5ef6\u4f38\u9605\u8bfb-3\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E6%9D%A5%E6%BA%90%E5%8F%8A%E5%BB%B6%E4%BC%B8%E9%98%85%E8%AF%BB-3\" aria-hidden=\"true\"><\/a>\u6765\u6e90\u53ca\u5ef6\u4f38\u9605\u8bfb<\/h3>\n<ul dir=\"auto\">\n<li><a href=\"http:\/\/snarfed.org\/transactions_across_datacenters_io.html\" rel=\"nofollow\">Transactions across data centers<\/a><\/li>\n<\/ul>\n<h2 dir=\"auto\"><a id=\"user-content-\u53ef\u7528\u6027\u6a21\u5f0f\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E5%8F%AF%E7%94%A8%E6%80%A7%E6%A8%A1%E5%BC%8F\" aria-hidden=\"true\"><\/a>\u53ef\u7528\u6027\u6a21\u5f0f<\/h2>\n<p dir=\"auto\">\u6709\u4e24\u79cd\u652f\u6301\u9ad8\u53ef\u7528\u6027\u7684\u6a21\u5f0f:\u00a0<strong>\u6545\u969c\u5207\u6362\uff08fail-over\uff09\u548c\u590d\u5236\uff08replication\uff09<\/strong>\u3002<\/p>\n<h3 dir=\"auto\"><a id=\"user-content-\u6545\u969c\u5207\u6362\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E6%95%85%E9%9A%9C%E5%88%87%E6%8D%A2\" aria-hidden=\"true\"><\/a>\u6545\u969c\u5207\u6362<\/h3>\n<h4 dir=\"auto\"><a id=\"user-content-\u5de5\u4f5c\u5230\u5907\u7528\u5207\u6362active-passive\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E5%B7%A5%E4%BD%9C%E5%88%B0%E5%A4%87%E7%94%A8%E5%88%87%E6%8D%A2active-passive\" aria-hidden=\"true\"><\/a>\u5de5\u4f5c\u5230\u5907\u7528\u5207\u6362\uff08Active-passive\uff09<\/h4>\n<p dir=\"auto\">\u5173\u4e8e\u5de5\u4f5c\u5230\u5907\u7528\u7684\u6545\u969c\u5207\u6362\u6d41\u7a0b\u662f\uff0c\u5de5\u4f5c\u670d\u52a1\u5668\u53d1\u9001\u5468\u671f\u4fe1\u53f7\u7ed9\u5f85\u673a\u4e2d\u7684\u5907\u7528\u670d\u52a1\u5668\u3002\u5982\u679c\u5468\u671f\u4fe1\u53f7\u4e2d\u65ad\uff0c\u5907\u7528\u670d\u52a1\u5668\u5207\u6362\u6210\u5de5\u4f5c\u670d\u52a1\u5668\u7684 IP \u5730\u5740\u5e76\u6062\u590d\u670d\u52a1\u3002<\/p>\n<p dir=\"auto\">\u5b95\u673a\u65f6\u95f4\u53d6\u51b3\u4e8e\u5907\u7528\u670d\u52a1\u5668\u5904\u4e8e\u201c\u70ed\u201d\u5f85\u673a\u72b6\u6001\u8fd8\u662f\u9700\u8981\u4ece\u201c\u51b7\u201d\u5f85\u673a\u72b6\u6001\u8fdb\u884c\u542f\u52a8\u3002\u53ea\u6709\u5de5\u4f5c\u670d\u52a1\u5668\u5904\u7406\u6d41\u91cf\u3002<\/p>\n<p dir=\"auto\">\u5de5\u4f5c\u5230\u5907\u7528\u7684\u6545\u969c\u5207\u6362\u4e5f\u88ab\u79f0\u4e3a\u4e3b\u4ece\u5207\u6362\u3002<\/p>\n<h4 dir=\"auto\"><a id=\"user-content-\u53cc\u5de5\u4f5c\u5207\u6362active-active\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E5%8F%8C%E5%B7%A5%E4%BD%9C%E5%88%87%E6%8D%A2active-active\" aria-hidden=\"true\"><\/a>\u53cc\u5de5\u4f5c\u5207\u6362\uff08Active-active\uff09<\/h4>\n<p dir=\"auto\">\u5728\u53cc\u5de5\u4f5c\u5207\u6362\u4e2d\uff0c\u53cc\u65b9\u90fd\u5728\u7ba1\u63a7\u6d41\u91cf\uff0c\u5728\u5b83\u4eec\u4e4b\u95f4\u5206\u6563\u8d1f\u8f7d\u3002<\/p>\n<p dir=\"auto\">\u5982\u679c\u662f\u5916\u7f51\u670d\u52a1\u5668\uff0cDNS \u5c06\u9700\u8981\u5bf9\u4e24\u65b9\u90fd\u4e86\u89e3\u3002\u5982\u679c\u662f\u5185\u7f51\u670d\u52a1\u5668\uff0c\u5e94\u7528\u7a0b\u5e8f\u903b\u8f91\u5c06\u9700\u8981\u5bf9\u4e24\u65b9\u90fd\u4e86\u89e3\u3002<\/p>\n<p dir=\"auto\">\u53cc\u5de5\u4f5c\u5207\u6362\u4e5f\u53ef\u4ee5\u79f0\u4e3a\u4e3b\u4e3b\u5207\u6362\u3002<\/p>\n<h3 dir=\"auto\"><a id=\"user-content-\u7f3a\u9677\u6545\u969c\u5207\u6362\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E7%BC%BA%E9%99%B7%E6%95%85%E9%9A%9C%E5%88%87%E6%8D%A2\" aria-hidden=\"true\"><\/a>\u7f3a\u9677\uff1a\u6545\u969c\u5207\u6362<\/h3>\n<ul dir=\"auto\">\n<li>\u6545\u969c\u5207\u6362\u9700\u8981\u6dfb\u52a0\u989d\u5916\u786c\u4ef6\u5e76\u589e\u52a0\u590d\u6742\u6027\u3002<\/li>\n<li>\u5982\u679c\u65b0\u5199\u5165\u6570\u636e\u5728\u80fd\u88ab\u590d\u5236\u5230\u5907\u7528\u7cfb\u7edf\u4e4b\u524d\uff0c\u5de5\u4f5c\u7cfb\u7edf\u51fa\u73b0\u4e86\u6545\u969c\uff0c\u5219\u6709\u53ef\u80fd\u4f1a\u4e22\u5931\u6570\u636e\u3002<\/li>\n<\/ul>\n<h3 dir=\"auto\"><a id=\"user-content-\u590d\u5236\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E5%A4%8D%E5%88%B6\" aria-hidden=\"true\"><\/a>\u590d\u5236<\/h3>\n<h4 dir=\"auto\"><a id=\"user-content-\u4e3b\u4ece\u590d\u5236\u548c\u4e3b\u4e3b\u590d\u5236\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E4%B8%BB%E4%BB%8E%E5%A4%8D%E5%88%B6%E5%92%8C%E4%B8%BB%E4%B8%BB%E5%A4%8D%E5%88%B6\" aria-hidden=\"true\"><\/a>\u4e3b\u2500\u4ece\u590d\u5236\u548c\u4e3b\u2500\u4e3b\u590d\u5236<\/h4>\n<p dir=\"auto\">\u8fd9\u4e2a\u4e3b\u9898\u8fdb\u4e00\u6b65\u63a2\u8ba8\u4e86<a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E6%95%B0%E6%8D%AE%E5%BA%93\">\u6570\u636e\u5e93<\/a>\u90e8\u5206:<\/p>\n<ul dir=\"auto\">\n<li><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E4%B8%BB%E4%BB%8E%E5%A4%8D%E5%88%B6\">\u4e3b\u2500\u4ece\u590d\u5236<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E4%B8%BB%E4%B8%BB%E5%A4%8D%E5%88%B6\">\u4e3b\u2500\u4e3b\u590d\u5236<\/a><\/li>\n<\/ul>\n<h2 dir=\"auto\"><a id=\"user-content-\u57df\u540d\u7cfb\u7edf\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E5%9F%9F%E5%90%8D%E7%B3%BB%E7%BB%9F\" aria-hidden=\"true\"><\/a>\u57df\u540d\u7cfb\u7edf<\/h2>\n<p dir=\"auto\" align=\"center\"><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/images\/IOyLj4i.jpg\" target=\"_blank\" rel=\"noopener noreferrer\"><img decoding=\"async\" src=\"https:\/\/github.com\/donnemartin\/system-design-primer\/raw\/master\/images\/IOyLj4i.jpg\" \/><\/a><br \/>\n<strong><a href=\"http:\/\/www.slideshare.net\/srikrupa5\/dns-security-presentation-issa\" rel=\"nofollow\">\u6765\u6e90\uff1aDNS \u5b89\u5168\u4ecb\u7ecd<\/a><\/strong><\/p>\n<p dir=\"auto\">\u57df\u540d\u7cfb\u7edf\u662f\u628a\u00a0<a href=\"http:\/\/www.example.com\/\" rel=\"nofollow\">www.example.com<\/a>\u00a0\u7b49\u57df\u540d\u8f6c\u6362\u6210 IP \u5730\u5740\u3002<\/p>\n<p dir=\"auto\">\u57df\u540d\u7cfb\u7edf\u662f\u5206\u5c42\u6b21\u7684\uff0c\u4e00\u4e9b DNS \u670d\u52a1\u5668\u4f4d\u4e8e\u9876\u5c42\u3002\u5f53\u67e5\u8be2\uff08\u57df\u540d\uff09 IP \u65f6\uff0c\u8def\u7531\u6216 ISP \u63d0\u4f9b\u8fde\u63a5 DNS \u670d\u52a1\u5668\u7684\u4fe1\u606f\u3002\u8f83\u5e95\u5c42\u7684 DNS \u670d\u52a1\u5668\u7f13\u5b58\u6620\u5c04\uff0c\u5b83\u53ef\u80fd\u4f1a\u56e0\u4e3a DNS \u4f20\u64ad\u5ef6\u65f6\u800c\u5931\u6548\u3002DNS \u7ed3\u679c\u53ef\u4ee5\u7f13\u5b58\u5728\u6d4f\u89c8\u5668\u6216\u64cd\u4f5c\u7cfb\u7edf\u4e2d\u4e00\u6bb5\u65f6\u95f4\uff0c\u65f6\u95f4\u957f\u77ed\u53d6\u51b3\u4e8e<a href=\"https:\/\/en.wikipedia.org\/wiki\/Time_to_live\" rel=\"nofollow\">\u5b58\u6d3b\u65f6\u95f4 TTL<\/a>\u3002<\/p>\n<ul dir=\"auto\">\n<li><strong>NS \u8bb0\u5f55\uff08\u57df\u540d\u670d\u52a1\uff09<\/strong>\u00a0\u2500 \u6307\u5b9a\u89e3\u6790\u57df\u540d\u6216\u5b50\u57df\u540d\u7684 DNS \u670d\u52a1\u5668\u3002<\/li>\n<li><strong>MX \u8bb0\u5f55\uff08\u90ae\u4ef6\u4ea4\u6362\uff09<\/strong>\u00a0\u2500 \u6307\u5b9a\u63a5\u6536\u4fe1\u606f\u7684\u90ae\u4ef6\u670d\u52a1\u5668\u3002<\/li>\n<li><strong>A \u8bb0\u5f55\uff08\u5730\u5740\uff09<\/strong>\u00a0\u2500 \u6307\u5b9a\u57df\u540d\u5bf9\u5e94\u7684 IP \u5730\u5740\u8bb0\u5f55\u3002<\/li>\n<li><strong>CNAME\uff08\u89c4\u8303\uff09<\/strong>\u00a0\u2500 \u4e00\u4e2a\u57df\u540d\u6620\u5c04\u5230\u53e6\u4e00\u4e2a\u57df\u540d\u6216\u00a0<code>CNAME<\/code>\u00a0\u8bb0\u5f55\uff08 example.com \u6307\u5411\u00a0<a href=\"http:\/\/www.example.com\/\" rel=\"nofollow\">www.example.com<\/a>\u00a0\uff09\u6216\u6620\u5c04\u5230\u4e00\u4e2a\u00a0<code>A<\/code>\u00a0\u8bb0\u5f55\u3002<\/li>\n<\/ul>\n<p dir=\"auto\"><a href=\"https:\/\/www.cloudflare.com\/dns\/\" rel=\"nofollow\">CloudFlare<\/a>\u00a0\u548c\u00a0<a href=\"https:\/\/aws.amazon.com\/route53\/\" rel=\"nofollow\">Route 53<\/a>\u00a0\u7b49\u5e73\u53f0\u63d0\u4f9b\u7ba1\u7406 DNS \u7684\u529f\u80fd\u3002\u67d0\u4e9b DNS \u670d\u52a1\u901a\u8fc7\u96c6\u4e2d\u65b9\u5f0f\u6765\u8def\u7531\u6d41\u91cf:<\/p>\n<ul dir=\"auto\">\n<li><a href=\"http:\/\/g33kinfo.com\/info\/archives\/2657\" rel=\"nofollow\">\u52a0\u6743\u8f6e\u8be2\u8c03\u5ea6<\/a>\n<ul dir=\"auto\">\n<li>\u9632\u6b62\u6d41\u91cf\u8fdb\u5165\u7ef4\u62a4\u4e2d\u7684\u670d\u52a1\u5668<\/li>\n<li>\u5728\u4e0d\u540c\u5927\u5c0f\u96c6\u7fa4\u95f4\u8d1f\u8f7d\u5747\u8861<\/li>\n<li>A\/B \u6d4b\u8bd5<\/li>\n<\/ul>\n<\/li>\n<li>\u57fa\u4e8e\u5ef6\u8fdf\u8def\u7531<\/li>\n<li>\u57fa\u4e8e\u5730\u7406\u4f4d\u7f6e\u8def\u7531<\/li>\n<\/ul>\n<h3 dir=\"auto\"><a id=\"user-content-\u7f3a\u9677dns\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E7%BC%BA%E9%99%B7dns\" aria-hidden=\"true\"><\/a>\u7f3a\u9677:DNS<\/h3>\n<ul dir=\"auto\">\n<li>\u867d\u8bf4\u7f13\u5b58\u53ef\u4ee5\u51cf\u8f7b DNS \u5ef6\u8fdf\uff0c\u4f46\u8fde\u63a5 DNS \u670d\u52a1\u5668\u8fd8\u662f\u5e26\u6765\u4e86\u8f7b\u5fae\u7684\u5ef6\u8fdf\u3002<\/li>\n<li>\u867d\u7136\u5b83\u4eec\u901a\u5e38\u7531<a href=\"http:\/\/superuser.com\/questions\/472695\/who-controls-the-dns-servers\/472729\" rel=\"nofollow\">\u653f\u5e9c\uff0c\u7f51\u7edc\u670d\u52a1\u63d0\u4f9b\u5546\u548c\u5927\u516c\u53f8<\/a>\u7ba1\u7406\uff0c\u4f46 DNS \u670d\u52a1\u7ba1\u7406\u4ecd\u53ef\u80fd\u662f\u590d\u6742\u7684\u3002<\/li>\n<li>DNS \u670d\u52a1\u6700\u8fd1\u906d\u53d7\u00a0<a href=\"http:\/\/dyn.com\/blog\/dyn-analysis-summary-of-friday-october-21-attack\/\" rel=\"nofollow\">DDoS \u653b\u51fb<\/a>\uff0c\u963b\u6b62\u4e0d\u77e5\u9053 Twitter IP \u5730\u5740\u7684\u7528\u6237\u8bbf\u95ee Twitter\u3002<\/li>\n<\/ul>\n<h3 dir=\"auto\"><a id=\"user-content-\u6765\u6e90\u53ca\u5ef6\u4f38\u9605\u8bfb-4\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E6%9D%A5%E6%BA%90%E5%8F%8A%E5%BB%B6%E4%BC%B8%E9%98%85%E8%AF%BB-4\" aria-hidden=\"true\"><\/a>\u6765\u6e90\u53ca\u5ef6\u4f38\u9605\u8bfb<\/h3>\n<ul dir=\"auto\">\n<li><a href=\"https:\/\/technet.microsoft.com\/en-us\/library\/dd197427(v=ws.10).aspx\" rel=\"nofollow\">DNS \u67b6\u6784<\/a><\/li>\n<li><a href=\"https:\/\/en.wikipedia.org\/wiki\/Domain_Name_System\" rel=\"nofollow\">Wikipedia<\/a><\/li>\n<li><a href=\"https:\/\/support.dnsimple.com\/categories\/dns\/\" rel=\"nofollow\">\u5173\u4e8e DNS \u7684\u6587\u7ae0<\/a><\/li>\n<\/ul>\n<h2 dir=\"auto\"><a id=\"user-content-\u5185\u5bb9\u5206\u53d1\u7f51\u7edccdn\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E5%86%85%E5%AE%B9%E5%88%86%E5%8F%91%E7%BD%91%E7%BB%9Ccdn\" aria-hidden=\"true\"><\/a>\u5185\u5bb9\u5206\u53d1\u7f51\u7edc\uff08CDN\uff09<\/h2>\n<p dir=\"auto\" align=\"center\"><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/images\/h9TAuGI.jpg\" target=\"_blank\" rel=\"noopener noreferrer\"><img decoding=\"async\" src=\"https:\/\/github.com\/donnemartin\/system-design-primer\/raw\/master\/images\/h9TAuGI.jpg\" \/><\/a><br \/>\n<strong><a href=\"https:\/\/www.creative-artworks.eu\/why-use-a-content-delivery-network-cdn\/\" rel=\"nofollow\">\u6765\u6e90\uff1a\u4e3a\u4ec0\u4e48\u4f7f\u7528 CDN<\/a><\/strong><\/p>\n<p dir=\"auto\">\u5185\u5bb9\u5206\u53d1\u7f51\u7edc\uff08CDN\uff09\u662f\u4e00\u4e2a\u5168\u7403\u6027\u7684\u4ee3\u7406\u670d\u52a1\u5668\u5206\u5e03\u5f0f\u7f51\u7edc\uff0c\u5b83\u4ece\u9760\u8fd1\u7528\u6237\u7684\u4f4d\u7f6e\u63d0\u4f9b\u5185\u5bb9\u3002\u901a\u5e38\uff0cHTML\/CSS\/JS\uff0c\u56fe\u7247\u548c\u89c6\u9891\u7b49\u9759\u6001\u5185\u5bb9\u7531 CDN \u63d0\u4f9b\uff0c\u867d\u7136\u4e9a\u9a6c\u900a CloudFront \u7b49\u4e5f\u652f\u6301\u52a8\u6001\u5185\u5bb9\u3002CDN \u7684 DNS \u89e3\u6790\u4f1a\u544a\u77e5\u5ba2\u6237\u7aef\u8fde\u63a5\u54ea\u53f0\u670d\u52a1\u5668\u3002<\/p>\n<p dir=\"auto\">\u5c06\u5185\u5bb9\u5b58\u50a8\u5728 CDN \u4e0a\u53ef\u4ee5\u4ece\u4e24\u4e2a\u65b9\u9762\u6765\u63d0\u4f9b\u6027\u80fd:<\/p>\n<ul dir=\"auto\">\n<li>\u4ece\u9760\u8fd1\u7528\u6237\u7684\u6570\u636e\u4e2d\u5fc3\u63d0\u4f9b\u8d44\u6e90<\/li>\n<li>\u901a\u8fc7 CDN \u4f60\u7684\u670d\u52a1\u5668\u4e0d\u5fc5\u771f\u7684\u5904\u7406\u8bf7\u6c42<\/li>\n<\/ul>\n<h3 dir=\"auto\"><a id=\"user-content-cdn-\u63a8\u9001push\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#cdn-%E6%8E%A8%E9%80%81push\" aria-hidden=\"true\"><\/a>CDN \u63a8\u9001\uff08push\uff09<\/h3>\n<p dir=\"auto\">\u5f53\u4f60\u670d\u52a1\u5668\u4e0a\u5185\u5bb9\u53d1\u751f\u53d8\u52a8\u65f6\uff0c\u63a8\u9001 CDN \u63a5\u53d7\u65b0\u5185\u5bb9\u3002\u76f4\u63a5\u63a8\u9001\u7ed9 CDN \u5e76\u91cd\u5199 URL \u5730\u5740\u4ee5\u6307\u5411\u4f60\u7684\u5185\u5bb9\u7684 CDN \u5730\u5740\u3002\u4f60\u53ef\u4ee5\u914d\u7f6e\u5185\u5bb9\u5230\u671f\u65f6\u95f4\u53ca\u4f55\u65f6\u66f4\u65b0\u3002\u5185\u5bb9\u53ea\u6709\u5728\u66f4\u6539\u6216\u65b0\u589e\u662f\u624d\u63a8\u9001\uff0c\u6d41\u91cf\u6700\u5c0f\u5316\uff0c\u4f46\u50a8\u5b58\u6700\u5927\u5316\u3002<\/p>\n<h3 dir=\"auto\"><a id=\"user-content-cdn-\u62c9\u53d6pull\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#cdn-%E6%8B%89%E5%8F%96pull\" aria-hidden=\"true\"><\/a>CDN \u62c9\u53d6\uff08pull\uff09<\/h3>\n<p dir=\"auto\">CDN \u62c9\u53d6\u662f\u5f53\u7b2c\u4e00\u4e2a\u7528\u6237\u8bf7\u6c42\u8be5\u8d44\u6e90\u65f6\uff0c\u4ece\u670d\u52a1\u5668\u4e0a\u62c9\u53d6\u8d44\u6e90\u3002\u4f60\u5c06\u5185\u5bb9\u7559\u5728\u81ea\u5df1\u7684\u670d\u52a1\u5668\u4e0a\u5e76\u91cd\u5199 URL \u6307\u5411 CDN \u5730\u5740\u3002\u76f4\u5230\u5185\u5bb9\u88ab\u7f13\u5b58\u5728 CDN \u4e0a\u4e3a\u6b62\uff0c\u8fd9\u6837\u8bf7\u6c42\u53ea\u4f1a\u66f4\u6162\uff0c<\/p>\n<p dir=\"auto\"><a href=\"https:\/\/en.wikipedia.org\/wiki\/Time_to_live\" rel=\"nofollow\">\u5b58\u6d3b\u65f6\u95f4\uff08TTL\uff09<\/a>\u51b3\u5b9a\u7f13\u5b58\u591a\u4e45\u65f6\u95f4\u3002CDN \u62c9\u53d6\u65b9\u5f0f\u6700\u5c0f\u5316 CDN \u4e0a\u7684\u50a8\u5b58\u7a7a\u95f4\uff0c\u4f46\u5982\u679c\u8fc7\u671f\u6587\u4ef6\u5e76\u5728\u5b9e\u9645\u66f4\u6539\u4e4b\u524d\u88ab\u62c9\u53d6\uff0c\u5219\u4f1a\u5bfc\u81f4\u5197\u4f59\u7684\u6d41\u91cf\u3002<\/p>\n<p dir=\"auto\">\u9ad8\u6d41\u91cf\u7ad9\u70b9\u4f7f\u7528 CDN \u62c9\u53d6\u6548\u679c\u4e0d\u9519\uff0c\u56e0\u4e3a\u53ea\u6709\u6700\u8fd1\u8bf7\u6c42\u7684\u5185\u5bb9\u4fdd\u5b58\u5728 CDN \u4e2d\uff0c\u6d41\u91cf\u624d\u80fd\u66f4\u5e73\u8861\u5730\u5206\u6563\u3002<\/p>\n<h3 dir=\"auto\"><a id=\"user-content-\u7f3a\u9677cdn\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E7%BC%BA%E9%99%B7cdn\" aria-hidden=\"true\"><\/a>\u7f3a\u9677\uff1aCDN<\/h3>\n<ul dir=\"auto\">\n<li>CDN \u6210\u672c\u53ef\u80fd\u56e0\u6d41\u91cf\u800c\u5f02\uff0c\u53ef\u80fd\u5728\u6743\u8861\u4e4b\u540e\u4f60\u5c06\u4e0d\u4f1a\u4f7f\u7528 CDN\u3002<\/li>\n<li>\u5982\u679c\u5728 TTL \u8fc7\u671f\u4e4b\u524d\u66f4\u65b0\u5185\u5bb9\uff0cCDN \u7f13\u5b58\u5185\u5bb9\u53ef\u80fd\u4f1a\u8fc7\u65f6\u3002<\/li>\n<li>CDN \u9700\u8981\u66f4\u6539\u9759\u6001\u5185\u5bb9\u7684 URL \u5730\u5740\u4ee5\u6307\u5411 CDN\u3002<\/li>\n<\/ul>\n<h3 dir=\"auto\"><a id=\"user-content-\u6765\u6e90\u53ca\u5ef6\u4f38\u9605\u8bfb-5\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E6%9D%A5%E6%BA%90%E5%8F%8A%E5%BB%B6%E4%BC%B8%E9%98%85%E8%AF%BB-5\" aria-hidden=\"true\"><\/a>\u6765\u6e90\u53ca\u5ef6\u4f38\u9605\u8bfb<\/h3>\n<ul dir=\"auto\">\n<li><a href=\"http:\/\/repository.cmu.edu\/cgi\/viewcontent.cgi?article=2112&amp;context=compsci\" rel=\"nofollow\">\u5168\u7403\u6027\u5185\u5bb9\u5206\u53d1\u7f51\u7edc<\/a><\/li>\n<li><a href=\"http:\/\/www.travelblogadvice.com\/technical\/the-differences-between-push-and-pull-cdns\/\" rel=\"nofollow\">CDN \u62c9\u53d6\u548c CDN \u63a8\u9001\u7684\u533a\u522b<\/a><\/li>\n<li><a href=\"https:\/\/en.wikipedia.org\/wiki\/Content_delivery_network\" rel=\"nofollow\">Wikipedia<\/a><\/li>\n<\/ul>\n<h2 dir=\"auto\"><a id=\"user-content-\u8d1f\u8f7d\u5747\u8861\u5668\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E8%B4%9F%E8%BD%BD%E5%9D%87%E8%A1%A1%E5%99%A8\" aria-hidden=\"true\"><\/a>\u8d1f\u8f7d\u5747\u8861\u5668<\/h2>\n<p dir=\"auto\" align=\"center\"><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/images\/h81n9iK.png\" target=\"_blank\" rel=\"noopener noreferrer\"><img decoding=\"async\" src=\"https:\/\/github.com\/donnemartin\/system-design-primer\/raw\/master\/images\/h81n9iK.png\" \/><\/a><br \/>\n<strong><a href=\"http:\/\/horicky.blogspot.com\/2010\/10\/scalable-system-design-patterns.html\" rel=\"nofollow\">\u6765\u6e90\uff1a\u53ef\u6269\u5c55\u7684\u7cfb\u7edf\u8bbe\u8ba1\u6a21\u5f0f<\/a><\/strong><\/p>\n<p dir=\"auto\">\u8d1f\u8f7d\u5747\u8861\u5668\u5c06\u4f20\u5165\u7684\u8bf7\u6c42\u5206\u53d1\u5230\u5e94\u7528\u670d\u52a1\u5668\u548c\u6570\u636e\u5e93\u7b49\u8ba1\u7b97\u8d44\u6e90\u3002\u65e0\u8bba\u54ea\u79cd\u60c5\u51b5\uff0c\u8d1f\u8f7d\u5747\u8861\u5668\u5c06\u4ece\u8ba1\u7b97\u8d44\u6e90\u6765\u7684\u54cd\u5e94\u8fd4\u56de\u7ed9\u6070\u5f53\u7684\u5ba2\u6237\u7aef\u3002\u8d1f\u8f7d\u5747\u8861\u5668\u7684\u6548\u7528\u5728\u4e8e:<\/p>\n<ul dir=\"auto\">\n<li>\u9632\u6b62\u8bf7\u6c42\u8fdb\u5165\u4e0d\u597d\u7684\u670d\u52a1\u5668<\/li>\n<li>\u9632\u6b62\u8d44\u6e90\u8fc7\u8f7d<\/li>\n<li>\u5e2e\u52a9\u6d88\u9664\u5355\u4e00\u7684\u6545\u969c\u70b9<\/li>\n<\/ul>\n<p dir=\"auto\">\u8d1f\u8f7d\u5747\u8861\u5668\u53ef\u4ee5\u901a\u8fc7\u786c\u4ef6\uff08\u6602\u8d35\uff09\u6216 HAProxy \u7b49\u8f6f\u4ef6\u6765\u5b9e\u73b0\u3002 \u589e\u52a0\u7684\u597d\u5904\u5305\u62ec:<\/p>\n<ul dir=\"auto\">\n<li><strong>SSL \u7ec8\u7ed3<\/strong>\u00a0\u2500 \u89e3\u5bc6\u4f20\u5165\u7684\u8bf7\u6c42\u5e76\u52a0\u5bc6\u670d\u52a1\u5668\u54cd\u5e94\uff0c\u8fd9\u6837\u7684\u8bdd\u540e\u7aef\u670d\u52a1\u5668\u5c31\u4e0d\u5fc5\u518d\u6267\u884c\u8fd9\u4e9b\u6f5c\u5728\u9ad8\u6d88\u8017\u8fd0\u7b97\u4e86\u3002\n<ul dir=\"auto\">\n<li>\u4e0d\u9700\u8981\u518d\u6bcf\u53f0\u670d\u52a1\u5668\u4e0a\u5b89\u88c5\u00a0<a href=\"https:\/\/en.wikipedia.org\/wiki\/X.509\" rel=\"nofollow\">X.509 \u8bc1\u4e66<\/a>\u3002<\/li>\n<\/ul>\n<\/li>\n<li><strong>Session \u7559\u5b58<\/strong>\u00a0\u2500 \u5982\u679c Web \u5e94\u7528\u7a0b\u5e8f\u4e0d\u8ffd\u8e2a\u4f1a\u8bdd\uff0c\u53d1\u51fa cookie \u5e76\u5c06\u7279\u5b9a\u5ba2\u6237\u7aef\u7684\u8bf7\u6c42\u8def\u7531\u5230\u540c\u4e00\u5b9e\u4f8b\u3002<\/li>\n<\/ul>\n<p dir=\"auto\">\u901a\u5e38\u4f1a\u8bbe\u7f6e\u91c7\u7528<a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E5%B7%A5%E4%BD%9C%E5%88%B0%E5%A4%87%E7%94%A8%E5%88%87%E6%8D%A2active-passive\">\u5de5\u4f5c\u2500\u5907\u7528<\/a>\u00a0\u6216\u00a0<a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E5%8F%8C%E5%B7%A5%E4%BD%9C%E5%88%87%E6%8D%A2active-active\">\u53cc\u5de5\u4f5c<\/a>\u00a0\u6a21\u5f0f\u7684\u591a\u4e2a\u8d1f\u8f7d\u5747\u8861\u5668\uff0c\u4ee5\u514d\u53d1\u751f\u6545\u969c\u3002<\/p>\n<p dir=\"auto\">\u8d1f\u8f7d\u5747\u8861\u5668\u80fd\u57fa\u4e8e\u591a\u79cd\u65b9\u5f0f\u6765\u8def\u7531\u6d41\u91cf:<\/p>\n<ul dir=\"auto\">\n<li>\u968f\u673a<\/li>\n<li>\u6700\u5c11\u8d1f\u8f7d<\/li>\n<li>Session\/cookie<\/li>\n<li><a href=\"http:\/\/g33kinfo.com\/info\/archives\/2657\" rel=\"nofollow\">\u8f6e\u8be2\u8c03\u5ea6\u6216\u52a0\u6743\u8f6e\u8be2\u8c03\u5ea6\u7b97\u6cd5<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E5%9B%9B%E5%B1%82%E8%B4%9F%E8%BD%BD%E5%9D%87%E8%A1%A1\">\u56db\u5c42\u8d1f\u8f7d\u5747\u8861<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E4%B8%83%E5%B1%82%E8%B4%9F%E8%BD%BD%E5%9D%87%E8%A1%A1\">\u4e03\u5c42\u8d1f\u8f7d\u5747\u8861<\/a><\/li>\n<\/ul>\n<h3 dir=\"auto\"><a id=\"user-content-\u56db\u5c42\u8d1f\u8f7d\u5747\u8861\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E5%9B%9B%E5%B1%82%E8%B4%9F%E8%BD%BD%E5%9D%87%E8%A1%A1\" aria-hidden=\"true\"><\/a>\u56db\u5c42\u8d1f\u8f7d\u5747\u8861<\/h3>\n<p dir=\"auto\">\u56db\u5c42\u8d1f\u8f7d\u5747\u8861\u6839\u636e\u76d1\u770b<a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E9%80%9A%E8%AE%AF\">\u4f20\u8f93\u5c42<\/a>\u7684\u4fe1\u606f\u6765\u51b3\u5b9a\u5982\u4f55\u5206\u53d1\u8bf7\u6c42\u3002\u901a\u5e38\uff0c\u8fd9\u4f1a\u6d89\u53ca\u6765\u6e90\uff0c\u76ee\u6807 IP \u5730\u5740\u548c\u8bf7\u6c42\u5934\u4e2d\u7684\u7aef\u53e3\uff0c\u4f46\u4e0d\u5305\u62ec\u6570\u636e\u5305\uff08\u62a5\u6587\uff09\u5185\u5bb9\u3002\u56db\u5c42\u8d1f\u8f7d\u5747\u8861\u6267\u884c<a href=\"https:\/\/www.nginx.com\/resources\/glossary\/layer-4-load-balancing\/\" rel=\"nofollow\">\u7f51\u7edc\u5730\u5740\u8f6c\u6362\uff08NAT\uff09<\/a>\u6765\u5411\u4e0a\u6e38\u670d\u52a1\u5668\u8f6c\u53d1\u7f51\u7edc\u6570\u636e\u5305\u3002<\/p>\n<h3 dir=\"auto\"><a id=\"user-content-\u4e03\u5c42\u8d1f\u8f7d\u5747\u8861\u5668\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E4%B8%83%E5%B1%82%E8%B4%9F%E8%BD%BD%E5%9D%87%E8%A1%A1%E5%99%A8\" aria-hidden=\"true\"><\/a>\u4e03\u5c42\u8d1f\u8f7d\u5747\u8861\u5668<\/h3>\n<p dir=\"auto\">\u4e03\u5c42\u8d1f\u8f7d\u5747\u8861\u5668\u6839\u636e\u76d1\u63a7<a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E9%80%9A%E8%AE%AF\">\u5e94\u7528\u5c42<\/a>\u6765\u51b3\u5b9a\u600e\u6837\u5206\u53d1\u8bf7\u6c42\u3002\u8fd9\u4f1a\u6d89\u53ca\u8bf7\u6c42\u5934\u7684\u5185\u5bb9\uff0c\u6d88\u606f\u548c cookie\u3002\u4e03\u5c42\u8d1f\u8f7d\u5747\u8861\u5668\u7ec8\u7ed3\u7f51\u7edc\u6d41\u91cf\uff0c\u8bfb\u53d6\u6d88\u606f\uff0c\u505a\u51fa\u8d1f\u8f7d\u5747\u8861\u5224\u5b9a\uff0c\u7136\u540e\u4f20\u9001\u7ed9\u7279\u5b9a\u670d\u52a1\u5668\u3002\u6bd4\u5982\uff0c\u4e00\u4e2a\u4e03\u5c42\u8d1f\u8f7d\u5747\u8861\u5668\u80fd\u76f4\u63a5\u5c06\u89c6\u9891\u6d41\u91cf\u8fde\u63a5\u5230\u6258\u7ba1\u89c6\u9891\u7684\u670d\u52a1\u5668\uff0c\u540c\u65f6\u5c06\u66f4\u654f\u611f\u7684\u7528\u6237\u8d26\u5355\u6d41\u91cf\u5f15\u5bfc\u5230\u5b89\u5168\u6027\u66f4\u5f3a\u7684\u670d\u52a1\u5668\u3002<\/p>\n<p dir=\"auto\">\u4ee5\u635f\u5931\u7075\u6d3b\u6027\u4e3a\u4ee3\u4ef7\uff0c\u56db\u5c42\u8d1f\u8f7d\u5747\u8861\u6bd4\u4e03\u5c42\u8d1f\u8f7d\u5747\u8861\u82b1\u8d39\u66f4\u5c11\u65f6\u95f4\u548c\u8ba1\u7b97\u8d44\u6e90\uff0c\u867d\u7136\u8fd9\u5bf9\u73b0\u4ee3\u5546\u7528\u786c\u4ef6\u7684\u6027\u80fd\u5f71\u54cd\u751a\u5fae\u3002<\/p>\n<h3 dir=\"auto\"><a id=\"user-content-\u6c34\u5e73\u6269\u5c55\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E6%B0%B4%E5%B9%B3%E6%89%A9%E5%B1%95\" aria-hidden=\"true\"><\/a>\u6c34\u5e73\u6269\u5c55<\/h3>\n<p dir=\"auto\">\u8d1f\u8f7d\u5747\u8861\u5668\u8fd8\u80fd\u5e2e\u52a9\u6c34\u5e73\u6269\u5c55\uff0c\u63d0\u9ad8\u6027\u80fd\u548c\u53ef\u7528\u6027\u3002\u4f7f\u7528\u5546\u4e1a\u786c\u4ef6\u7684\u6027\u4ef7\u6bd4\u66f4\u9ad8\uff0c\u5e76\u4e14\u6bd4\u5728\u5355\u53f0\u786c\u4ef6\u4e0a<strong>\u5782\u76f4\u6269\u5c55<\/strong>\u66f4\u8d35\u7684\u786c\u4ef6\u5177\u6709\u66f4\u9ad8\u7684\u53ef\u7528\u6027\u3002\u76f8\u6bd4\u62db\u8058\u7279\u5b9a\u4f01\u4e1a\u7cfb\u7edf\u4eba\u624d\uff0c\u62db\u8058\u5546\u4e1a\u786c\u4ef6\u65b9\u9762\u7684\u4eba\u624d\u66f4\u52a0\u5bb9\u6613\u3002<\/p>\n<h4 dir=\"auto\"><a id=\"user-content-\u7f3a\u9677\u6c34\u5e73\u6269\u5c55\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E7%BC%BA%E9%99%B7%E6%B0%B4%E5%B9%B3%E6%89%A9%E5%B1%95\" aria-hidden=\"true\"><\/a>\u7f3a\u9677\uff1a\u6c34\u5e73\u6269\u5c55<\/h4>\n<ul dir=\"auto\">\n<li>\u6c34\u5e73\u6269\u5c55\u5f15\u5165\u4e86\u590d\u6742\u5ea6\u5e76\u6d89\u53ca\u670d\u52a1\u5668\u590d\u5236\n<ul dir=\"auto\">\n<li>\u670d\u52a1\u5668\u5e94\u8be5\u662f\u65e0\u72b6\u6001\u7684:\u5b83\u4eec\u4e5f\u4e0d\u8be5\u5305\u542b\u50cf session \u6216\u8d44\u6599\u56fe\u7247\u7b49\u4e0e\u7528\u6237\u5173\u8054\u7684\u6570\u636e\u3002<\/li>\n<li>session \u53ef\u4ee5\u96c6\u4e2d\u5b58\u50a8\u5728\u6570\u636e\u5e93\u6216\u6301\u4e45\u5316<a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E7%BC%93%E5%AD%98\">\u7f13\u5b58<\/a>\uff08Redis\u3001Memcached\uff09\u7684\u6570\u636e\u5b58\u50a8\u533a\u4e2d\u3002<\/li>\n<\/ul>\n<\/li>\n<li>\u7f13\u5b58\u548c\u6570\u636e\u5e93\u7b49\u4e0b\u6e38\u670d\u52a1\u5668\u9700\u8981\u968f\u7740\u4e0a\u6e38\u670d\u52a1\u5668\u8fdb\u884c\u6269\u5c55\uff0c\u4ee5\u5904\u7406\u66f4\u591a\u7684\u5e76\u53d1\u8fde\u63a5\u3002<\/li>\n<\/ul>\n<h3 dir=\"auto\"><a id=\"user-content-\u7f3a\u9677\u8d1f\u8f7d\u5747\u8861\u5668\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E7%BC%BA%E9%99%B7%E8%B4%9F%E8%BD%BD%E5%9D%87%E8%A1%A1%E5%99%A8\" aria-hidden=\"true\"><\/a>\u7f3a\u9677\uff1a\u8d1f\u8f7d\u5747\u8861\u5668<\/h3>\n<ul dir=\"auto\">\n<li>\u5982\u679c\u6ca1\u6709\u8db3\u591f\u7684\u8d44\u6e90\u914d\u7f6e\u6216\u914d\u7f6e\u9519\u8bef\uff0c\u8d1f\u8f7d\u5747\u8861\u5668\u4f1a\u53d8\u6210\u4e00\u4e2a\u6027\u80fd\u74f6\u9888\u3002<\/li>\n<li>\u5f15\u5165\u8d1f\u8f7d\u5747\u8861\u5668\u4ee5\u5e2e\u52a9\u6d88\u9664\u5355\u70b9\u6545\u969c\u4f46\u5bfc\u81f4\u4e86\u989d\u5916\u7684\u590d\u6742\u6027\u3002<\/li>\n<li>\u5355\u4e2a\u8d1f\u8f7d\u5747\u8861\u5668\u4f1a\u5bfc\u81f4\u5355\u70b9\u6545\u969c\uff0c\u4f46\u914d\u7f6e\u591a\u4e2a\u8d1f\u8f7d\u5747\u8861\u5668\u4f1a\u8fdb\u4e00\u6b65\u589e\u52a0\u590d\u6742\u6027\u3002<\/li>\n<\/ul>\n<h3 dir=\"auto\"><a id=\"user-content-\u6765\u6e90\u53ca\u5ef6\u4f38\u9605\u8bfb-6\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E6%9D%A5%E6%BA%90%E5%8F%8A%E5%BB%B6%E4%BC%B8%E9%98%85%E8%AF%BB-6\" aria-hidden=\"true\"><\/a>\u6765\u6e90\u53ca\u5ef6\u4f38\u9605\u8bfb<\/h3>\n<ul dir=\"auto\">\n<li><a href=\"https:\/\/www.nginx.com\/blog\/inside-nginx-how-we-designed-for-performance-scale\/\" rel=\"nofollow\">NGINX \u67b6\u6784<\/a><\/li>\n<li><a href=\"http:\/\/www.haproxy.org\/download\/1.2\/doc\/architecture.txt\" rel=\"nofollow\">HAProxy \u67b6\u6784\u6307\u5357<\/a><\/li>\n<li><a href=\"http:\/\/www.lecloud.net\/post\/7295452622\/scalability-for-dummies-part-1-clones\" rel=\"nofollow\">\u53ef\u6269\u5c55\u6027<\/a><\/li>\n<li><a href=\"https:\/\/en.wikipedia.org\/wiki\/Load_balancing_(computing)\" rel=\"nofollow\">Wikipedia<\/a><\/li>\n<li><a href=\"https:\/\/www.nginx.com\/resources\/glossary\/layer-4-load-balancing\/\" rel=\"nofollow\">\u56db\u5c42\u8d1f\u8f7d\u5e73\u8861<\/a><\/li>\n<li><a href=\"https:\/\/www.nginx.com\/resources\/glossary\/layer-7-load-balancing\/\" rel=\"nofollow\">\u4e03\u5c42\u8d1f\u8f7d\u5e73\u8861<\/a><\/li>\n<li><a href=\"http:\/\/docs.aws.amazon.com\/elasticloadbalancing\/latest\/classic\/elb-listener-config.html\" rel=\"nofollow\">ELB \u76d1\u542c\u5668\u914d\u7f6e<\/a><\/li>\n<\/ul>\n<h2 dir=\"auto\"><a id=\"user-content-\u53cd\u5411\u4ee3\u7406web-\u670d\u52a1\u5668\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E5%8F%8D%E5%90%91%E4%BB%A3%E7%90%86web-%E6%9C%8D%E5%8A%A1%E5%99%A8\" aria-hidden=\"true\"><\/a>\u53cd\u5411\u4ee3\u7406\uff08web \u670d\u52a1\u5668\uff09<\/h2>\n<p dir=\"auto\" align=\"center\"><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/images\/n41Azff.png\" target=\"_blank\" rel=\"noopener noreferrer\"><img decoding=\"async\" src=\"https:\/\/github.com\/donnemartin\/system-design-primer\/raw\/master\/images\/n41Azff.png\" \/><\/a><br \/>\n<strong><a href=\"https:\/\/upload.wikimedia.org\/wikipedia\/commons\/6\/67\/Reverse_proxy_h2g2bob.svg\" rel=\"nofollow\">\u8d44\u6599\u6765\u6e90\uff1a\u7ef4\u57fa\u767e\u79d1<\/a><\/strong><\/p>\n<p dir=\"auto\">\u53cd\u5411\u4ee3\u7406\u662f\u4e00\u79cd\u53ef\u4ee5\u96c6\u4e2d\u5730\u8c03\u7528\u5185\u90e8\u670d\u52a1\uff0c\u5e76\u63d0\u4f9b\u7edf\u4e00\u63a5\u53e3\u7ed9\u516c\u5171\u5ba2\u6237\u7684 web \u670d\u52a1\u5668\u3002\u6765\u81ea\u5ba2\u6237\u7aef\u7684\u8bf7\u6c42\u5148\u88ab\u53cd\u5411\u4ee3\u7406\u670d\u52a1\u5668\u8f6c\u53d1\u5230\u53ef\u54cd\u5e94\u8bf7\u6c42\u7684\u670d\u52a1\u5668\uff0c\u7136\u540e\u4ee3\u7406\u518d\u628a\u670d\u52a1\u5668\u7684\u54cd\u5e94\u7ed3\u679c\u8fd4\u56de\u7ed9\u5ba2\u6237\u7aef\u3002<\/p>\n<p dir=\"auto\">\u5e26\u6765\u7684\u597d\u5904\u5305\u62ec\uff1a<\/p>\n<ul dir=\"auto\">\n<li><strong>\u589e\u52a0\u5b89\u5168\u6027<\/strong>\u00a0&#8211; \u9690\u85cf\u540e\u7aef\u670d\u52a1\u5668\u7684\u4fe1\u606f\uff0c\u5c4f\u853d\u9ed1\u540d\u5355\u4e2d\u7684 IP\uff0c\u9650\u5236\u6bcf\u4e2a\u5ba2\u6237\u7aef\u7684\u8fde\u63a5\u6570\u3002<\/li>\n<li><strong>\u63d0\u9ad8\u53ef\u6269\u5c55\u6027\u548c\u7075\u6d3b\u6027<\/strong>\u00a0&#8211; \u5ba2\u6237\u7aef\u53ea\u80fd\u770b\u5230\u53cd\u5411\u4ee3\u7406\u670d\u52a1\u5668\u7684 IP\uff0c\u8fd9\u4f7f\u4f60\u53ef\u4ee5\u589e\u51cf\u670d\u52a1\u5668\u6216\u8005\u4fee\u6539\u5b83\u4eec\u7684\u914d\u7f6e\u3002<\/li>\n<li><strong>\u672c\u5730\u7ec8\u7ed3 SSL \u4f1a\u8bdd<\/strong>\u00a0&#8211; \u89e3\u5bc6\u4f20\u5165\u8bf7\u6c42\uff0c\u52a0\u5bc6\u670d\u52a1\u5668\u54cd\u5e94\uff0c\u8fd9\u6837\u540e\u7aef\u670d\u52a1\u5668\u5c31\u4e0d\u5fc5\u5b8c\u6210\u8fd9\u4e9b\u6f5c\u5728\u7684\u9ad8\u6210\u672c\u7684\u64cd\u4f5c\u3002\n<ul dir=\"auto\">\n<li>\u514d\u9664\u4e86\u5728\u6bcf\u4e2a\u670d\u52a1\u5668\u4e0a\u5b89\u88c5\u00a0<a href=\"https:\/\/en.wikipedia.org\/wiki\/X.509\" rel=\"nofollow\">X.509<\/a>\u00a0\u8bc1\u4e66\u7684\u9700\u8981<\/li>\n<\/ul>\n<\/li>\n<li><strong>\u538b\u7f29<\/strong>\u00a0&#8211; \u538b\u7f29\u670d\u52a1\u5668\u54cd\u5e94<\/li>\n<li><strong>\u7f13\u5b58<\/strong>\u00a0&#8211; \u76f4\u63a5\u8fd4\u56de\u547d\u4e2d\u7684\u7f13\u5b58\u7ed3\u679c<\/li>\n<li><strong>\u9759\u6001\u5185\u5bb9<\/strong>\u00a0&#8211; \u76f4\u63a5\u63d0\u4f9b\u9759\u6001\u5185\u5bb9\n<ul dir=\"auto\">\n<li>HTML\/CSS\/JS<\/li>\n<li>\u56fe\u7247<\/li>\n<li>\u89c6\u9891<\/li>\n<li>\u7b49\u7b49<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h3 dir=\"auto\"><a id=\"user-content-\u8d1f\u8f7d\u5747\u8861\u5668\u4e0e\u53cd\u5411\u4ee3\u7406\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E8%B4%9F%E8%BD%BD%E5%9D%87%E8%A1%A1%E5%99%A8%E4%B8%8E%E5%8F%8D%E5%90%91%E4%BB%A3%E7%90%86\" aria-hidden=\"true\"><\/a>\u8d1f\u8f7d\u5747\u8861\u5668\u4e0e\u53cd\u5411\u4ee3\u7406<\/h3>\n<ul dir=\"auto\">\n<li>\u5f53\u4f60\u6709\u591a\u4e2a\u670d\u52a1\u5668\u65f6\uff0c\u90e8\u7f72\u8d1f\u8f7d\u5747\u8861\u5668\u975e\u5e38\u6709\u7528\u3002\u901a\u5e38\uff0c\u8d1f\u8f7d\u5747\u8861\u5668\u5c06\u6d41\u91cf\u8def\u7531\u7ed9\u4e00\u7ec4\u529f\u80fd\u76f8\u540c\u7684\u670d\u52a1\u5668\u4e0a\u3002<\/li>\n<li>\u5373\u4f7f\u53ea\u6709\u4e00\u53f0 web \u670d\u52a1\u5668\u6216\u8005\u5e94\u7528\u670d\u52a1\u5668\u65f6\uff0c\u53cd\u5411\u4ee3\u7406\u4e5f\u6709\u7528\uff0c\u53ef\u4ee5\u53c2\u8003\u4e0a\u4e00\u8282\u4ecb\u7ecd\u7684\u597d\u5904\u3002<\/li>\n<li>NGINX \u548c HAProxy \u7b49\u89e3\u51b3\u65b9\u6848\u53ef\u4ee5\u540c\u65f6\u652f\u6301\u7b2c\u4e03\u5c42\u53cd\u5411\u4ee3\u7406\u548c\u8d1f\u8f7d\u5747\u8861\u3002<\/li>\n<\/ul>\n<h3 dir=\"auto\"><a id=\"user-content-\u4e0d\u5229\u4e4b\u5904\u53cd\u5411\u4ee3\u7406\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E4%B8%8D%E5%88%A9%E4%B9%8B%E5%A4%84%E5%8F%8D%E5%90%91%E4%BB%A3%E7%90%86\" aria-hidden=\"true\"><\/a>\u4e0d\u5229\u4e4b\u5904\uff1a\u53cd\u5411\u4ee3\u7406<\/h3>\n<ul dir=\"auto\">\n<li>\u5f15\u5165\u53cd\u5411\u4ee3\u7406\u4f1a\u589e\u52a0\u7cfb\u7edf\u7684\u590d\u6742\u5ea6\u3002<\/li>\n<li>\u5355\u72ec\u4e00\u4e2a\u53cd\u5411\u4ee3\u7406\u670d\u52a1\u5668\u4ecd\u53ef\u80fd\u53d1\u751f\u5355\u70b9\u6545\u969c\uff0c\u914d\u7f6e\u591a\u53f0\u53cd\u5411\u4ee3\u7406\u670d\u52a1\u5668\uff08\u5982<a href=\"https:\/\/en.wikipedia.org\/wiki\/Failover\" rel=\"nofollow\">\u6545\u969c\u8f6c\u79fb<\/a>\uff09\u4f1a\u8fdb\u4e00\u6b65\u589e\u52a0\u590d\u6742\u5ea6\u3002<\/li>\n<\/ul>\n<h3 dir=\"auto\"><a id=\"user-content-\u6765\u6e90\u53ca\u5ef6\u4f38\u9605\u8bfb-7\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E6%9D%A5%E6%BA%90%E5%8F%8A%E5%BB%B6%E4%BC%B8%E9%98%85%E8%AF%BB-7\" aria-hidden=\"true\"><\/a>\u6765\u6e90\u53ca\u5ef6\u4f38\u9605\u8bfb<\/h3>\n<ul dir=\"auto\">\n<li><a href=\"https:\/\/www.nginx.com\/resources\/glossary\/reverse-proxy-vs-load-balancer\/\" rel=\"nofollow\">\u53cd\u5411\u4ee3\u7406\u4e0e\u8d1f\u8f7d\u5747\u8861<\/a><\/li>\n<li><a href=\"https:\/\/www.nginx.com\/blog\/inside-nginx-how-we-designed-for-performance-scale\/\" rel=\"nofollow\">NGINX \u67b6\u6784<\/a><\/li>\n<li><a href=\"http:\/\/www.haproxy.org\/download\/1.2\/doc\/architecture.txt\" rel=\"nofollow\">HAProxy \u67b6\u6784\u6307\u5357<\/a><\/li>\n<li><a href=\"https:\/\/en.wikipedia.org\/wiki\/Reverse_proxy\" rel=\"nofollow\">Wikipedia<\/a><\/li>\n<\/ul>\n<h2 dir=\"auto\"><a id=\"user-content-\u5e94\u7528\u5c42\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E5%BA%94%E7%94%A8%E5%B1%82\" aria-hidden=\"true\"><\/a>\u5e94\u7528\u5c42<\/h2>\n<p dir=\"auto\" align=\"center\"><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/images\/yB5SYwm.png\" target=\"_blank\" rel=\"noopener noreferrer\"><img decoding=\"async\" src=\"https:\/\/github.com\/donnemartin\/system-design-primer\/raw\/master\/images\/yB5SYwm.png\" \/><\/a><br \/>\n<strong><a href=\"http:\/\/lethain.com\/introduction-to-architecting-systems-for-scale\/#platform_layer\" rel=\"nofollow\">\u8d44\u6599\u6765\u6e90\uff1a\u53ef\u7f29\u653e\u7cfb\u7edf\u6784\u67b6\u4ecb\u7ecd<\/a><\/strong><\/p>\n<p dir=\"auto\">\u5c06 Web \u670d\u52a1\u5c42\u4e0e\u5e94\u7528\u5c42\uff08\u4e5f\u88ab\u79f0\u4f5c\u5e73\u53f0\u5c42\uff09\u5206\u79bb\uff0c\u53ef\u4ee5\u72ec\u7acb\u7f29\u653e\u548c\u914d\u7f6e\u8fd9\u4e24\u5c42\u3002\u6dfb\u52a0\u65b0\u7684 API \u53ea\u9700\u8981\u6dfb\u52a0\u5e94\u7528\u670d\u52a1\u5668\uff0c\u800c\u4e0d\u5fc5\u6dfb\u52a0\u989d\u5916\u7684 web \u670d\u52a1\u5668\u3002<\/p>\n<p dir=\"auto\"><strong>\u5355\u4e00\u804c\u8d23\u539f\u5219<\/strong>\u63d0\u5021\u5c0f\u578b\u7684\uff0c\u81ea\u6cbb\u7684\u670d\u52a1\u5171\u540c\u5408\u4f5c\u3002\u5c0f\u56e2\u961f\u901a\u8fc7\u63d0\u4f9b\u5c0f\u578b\u7684\u670d\u52a1\uff0c\u53ef\u4ee5\u66f4\u6fc0\u8fdb\u5730\u8ba1\u5212\u589e\u957f\u3002<\/p>\n<p dir=\"auto\">\u5e94\u7528\u5c42\u4e2d\u7684\u5de5\u4f5c\u8fdb\u7a0b\u4e5f\u6709\u53ef\u4ee5\u5b9e\u73b0<a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E5%BC%82%E6%AD%A5\">\u5f02\u6b65\u5316<\/a>\u3002<\/p>\n<h3 dir=\"auto\"><a id=\"user-content-\u5fae\u670d\u52a1\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E5%BE%AE%E6%9C%8D%E5%8A%A1\" aria-hidden=\"true\"><\/a>\u5fae\u670d\u52a1<\/h3>\n<p dir=\"auto\">\u4e0e\u6b64\u8ba8\u8bba\u76f8\u5173\u7684\u8bdd\u9898\u662f\u00a0<a href=\"https:\/\/en.wikipedia.org\/wiki\/Microservices\" rel=\"nofollow\">\u5fae\u670d\u52a1<\/a>\uff0c\u53ef\u4ee5\u88ab\u63cf\u8ff0\u4e3a\u4e00\u7cfb\u5217\u53ef\u4ee5\u72ec\u7acb\u90e8\u7f72\u7684\u5c0f\u578b\u7684\uff0c\u6a21\u5757\u5316\u670d\u52a1\u3002\u6bcf\u4e2a\u670d\u52a1\u8fd0\u884c\u5728\u4e00\u4e2a\u72ec\u7acb\u7684\u7ebf\u7a0b\u4e2d\uff0c\u901a\u8fc7\u660e\u786e\u5b9a\u4e49\u7684\u8f7b\u91cf\u7ea7\u673a\u5236\u901a\u8baf\uff0c\u5171\u540c\u5b9e\u73b0\u4e1a\u52a1\u76ee\u6807\u3002<sup><a href=\"https:\/\/smartbear.com\/learn\/api-design\/what-are-microservices\" rel=\"nofollow\">1<\/a><\/sup><\/p>\n<p dir=\"auto\">\u4f8b\u5982\uff0cPinterest \u53ef\u80fd\u6709\u8fd9\u4e9b\u5fae\u670d\u52a1\uff1a \u7528\u6237\u8d44\u6599\u3001\u5173\u6ce8\u8005\u3001Feed \u6d41\u3001\u641c\u7d22\u3001\u7167\u7247\u4e0a\u4f20\u7b49\u3002<\/p>\n<h3 dir=\"auto\"><a id=\"user-content-\u670d\u52a1\u53d1\u73b0\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E6%9C%8D%E5%8A%A1%E5%8F%91%E7%8E%B0\" aria-hidden=\"true\"><\/a>\u670d\u52a1\u53d1\u73b0<\/h3>\n<p dir=\"auto\">\u50cf\u00a0<a href=\"https:\/\/www.consul.io\/docs\/index.html\" rel=\"nofollow\">Consul<\/a>\uff0c<a href=\"https:\/\/coreos.com\/etcd\/docs\/latest\" rel=\"nofollow\">Etcd<\/a>\u00a0\u548c\u00a0<a href=\"http:\/\/www.slideshare.net\/sauravhaloi\/introduction-to-apache-zookeeper\" rel=\"nofollow\">Zookeeper<\/a>\u00a0\u8fd9\u6837\u7684\u7cfb\u7edf\u53ef\u4ee5\u901a\u8fc7\u8ffd\u8e2a\u6ce8\u518c\u540d\u3001\u5730\u5740\u3001\u7aef\u53e3\u7b49\u4fe1\u606f\u6765\u5e2e\u52a9\u670d\u52a1\u4e92\u76f8\u53d1\u73b0\u5bf9\u65b9\u3002<a href=\"https:\/\/www.consul.io\/intro\/getting-started\/checks.html\" rel=\"nofollow\">Health checks<\/a>\u00a0\u53ef\u4ee5\u5e2e\u52a9\u786e\u8ba4\u670d\u52a1\u7684\u5b8c\u6574\u6027\u548c\u662f\u5426\u7ecf\u5e38\u4f7f\u7528\u4e00\u4e2a\u00a0<a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E8%B6%85%E6%96%87%E6%9C%AC%E4%BC%A0%E8%BE%93%E5%8D%8F%E8%AE%AEhttp\">HTTP<\/a>\u00a0\u8def\u5f84\u3002Consul \u548c Etcd \u90fd\u6709\u4e00\u4e2a\u5185\u5efa\u7684\u00a0<a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E9%94%AE-%E5%80%BC%E5%AD%98%E5%82%A8\">key-value \u5b58\u50a8<\/a>\u00a0\u7528\u6765\u5b58\u50a8\u914d\u7f6e\u4fe1\u606f\u548c\u5176\u4ed6\u7684\u5171\u4eab\u4fe1\u606f\u3002<\/p>\n<h3 dir=\"auto\"><a id=\"user-content-\u4e0d\u5229\u4e4b\u5904\u5e94\u7528\u5c42\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E4%B8%8D%E5%88%A9%E4%B9%8B%E5%A4%84%E5%BA%94%E7%94%A8%E5%B1%82\" aria-hidden=\"true\"><\/a>\u4e0d\u5229\u4e4b\u5904\uff1a\u5e94\u7528\u5c42<\/h3>\n<ul dir=\"auto\">\n<li>\u6dfb\u52a0\u7531\u591a\u4e2a\u677e\u8026\u5408\u670d\u52a1\u7ec4\u6210\u7684\u5e94\u7528\u5c42\uff0c\u4ece\u67b6\u6784\u3001\u8fd0\u8425\u3001\u6d41\u7a0b\u7b49\u5c42\u9762\u6765\u8bb2\u5c06\u975e\u5e38\u4e0d\u540c\uff08\u76f8\u5bf9\u4e8e\u5355\u4f53\u7cfb\u7edf\uff09\u3002<\/li>\n<li>\u5fae\u670d\u52a1\u4f1a\u589e\u52a0\u90e8\u7f72\u548c\u8fd0\u8425\u7684\u590d\u6742\u5ea6\u3002<\/li>\n<\/ul>\n<h3 dir=\"auto\"><a id=\"user-content-\u6765\u6e90\u53ca\u5ef6\u4f38\u9605\u8bfb-8\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E6%9D%A5%E6%BA%90%E5%8F%8A%E5%BB%B6%E4%BC%B8%E9%98%85%E8%AF%BB-8\" aria-hidden=\"true\"><\/a>\u6765\u6e90\u53ca\u5ef6\u4f38\u9605\u8bfb<\/h3>\n<ul dir=\"auto\">\n<li><a href=\"http:\/\/lethain.com\/introduction-to-architecting-systems-for-scale\" rel=\"nofollow\">\u53ef\u7f29\u653e\u7cfb\u7edf\u6784\u67b6\u4ecb\u7ecd<\/a><\/li>\n<li><a href=\"http:\/\/www.puncsky.com\/blog\/2016-02-13-crack-the-system-design-interview\" rel=\"nofollow\">\u7834\u89e3\u7cfb\u7edf\u8bbe\u8ba1\u9762\u8bd5<\/a><\/li>\n<li><a href=\"https:\/\/en.wikipedia.org\/wiki\/Service-oriented_architecture\" rel=\"nofollow\">\u9762\u5411\u670d\u52a1\u67b6\u6784<\/a><\/li>\n<li><a href=\"http:\/\/www.slideshare.net\/sauravhaloi\/introduction-to-apache-zookeeper\" rel=\"nofollow\">Zookeeper \u4ecb\u7ecd<\/a><\/li>\n<li><a href=\"https:\/\/cloudncode.wordpress.com\/2016\/07\/22\/msa-getting-started\/\" rel=\"nofollow\">\u6784\u5efa\u5fae\u670d\u52a1\uff0c\u4f60\u6240\u9700\u8981\u77e5\u9053\u7684\u4e00\u5207<\/a><\/li>\n<\/ul>\n<h2 dir=\"auto\"><a id=\"user-content-\u6570\u636e\u5e93\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E6%95%B0%E6%8D%AE%E5%BA%93\" aria-hidden=\"true\"><\/a>\u6570\u636e\u5e93<\/h2>\n<p dir=\"auto\" align=\"center\"><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/images\/Xkm5CXz.png\" target=\"_blank\" rel=\"noopener noreferrer\"><img decoding=\"async\" src=\"https:\/\/github.com\/donnemartin\/system-design-primer\/raw\/master\/images\/Xkm5CXz.png\" \/><\/a><br \/>\n<strong><a href=\"https:\/\/www.youtube.com\/watch?v=w95murBkYmU\" rel=\"nofollow\">\u8d44\u6599\u6765\u6e90\uff1a\u6269\u5c55\u4f60\u7684\u7528\u6237\u6570\u5230\u7b2c\u4e00\u4e2a\u4e00\u5343\u4e07<\/a><\/strong><\/p>\n<h3 dir=\"auto\"><a id=\"user-content-\u5173\u7cfb\u578b\u6570\u636e\u5e93\u7ba1\u7406\u7cfb\u7edfrdbms\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E5%85%B3%E7%B3%BB%E5%9E%8B%E6%95%B0%E6%8D%AE%E5%BA%93%E7%AE%A1%E7%90%86%E7%B3%BB%E7%BB%9Frdbms\" aria-hidden=\"true\"><\/a>\u5173\u7cfb\u578b\u6570\u636e\u5e93\u7ba1\u7406\u7cfb\u7edf\uff08RDBMS\uff09<\/h3>\n<p dir=\"auto\">\u50cf SQL \u8fd9\u6837\u7684\u5173\u7cfb\u578b\u6570\u636e\u5e93\u662f\u4e00\u7cfb\u5217\u4ee5\u8868\u7684\u5f62\u5f0f\u7ec4\u7ec7\u7684\u6570\u636e\u9879\u96c6\u5408\u3002<\/p>\n<blockquote>\n<p dir=\"auto\">\u6821\u5bf9\u6ce8\uff1a\u8fd9\u91cc\u4f5c\u8005 SQL \u53ef\u80fd\u6307\u7684\u662f MySQL<\/p>\n<\/blockquote>\n<p dir=\"auto\"><strong>ACID<\/strong>\u00a0\u7528\u6765\u63cf\u8ff0\u5173\u7cfb\u578b\u6570\u636e\u5e93<a href=\"https:\/\/en.wikipedia.org\/wiki\/Database_transaction\" rel=\"nofollow\">\u4e8b\u52a1<\/a>\u7684\u7279\u6027\u3002<\/p>\n<ul dir=\"auto\">\n<li><strong>\u539f\u5b50\u6027<\/strong>\u00a0&#8211; \u6bcf\u4e2a\u4e8b\u52a1\u5185\u90e8\u6240\u6709\u64cd\u4f5c\u8981\u4e48\u5168\u90e8\u5b8c\u6210\uff0c\u8981\u4e48\u5168\u90e8\u4e0d\u5b8c\u6210\u3002<\/li>\n<li><strong>\u4e00\u81f4\u6027<\/strong>\u00a0&#8211; \u4efb\u4f55\u4e8b\u52a1\u90fd\u4f7f\u6570\u636e\u5e93\u4ece\u4e00\u4e2a\u6709\u6548\u7684\u72b6\u6001\u8f6c\u6362\u5230\u53e6\u4e00\u4e2a\u6709\u6548\u72b6\u6001\u3002<\/li>\n<li><strong>\u9694\u79bb\u6027<\/strong>\u00a0&#8211; \u5e76\u53d1\u6267\u884c\u4e8b\u52a1\u7684\u7ed3\u679c\u4e0e\u987a\u5e8f\u6267\u884c\u4e8b\u52a1\u7684\u7ed3\u679c\u76f8\u540c\u3002<\/li>\n<li><strong>\u6301\u4e45\u6027<\/strong>\u00a0&#8211; \u4e8b\u52a1\u63d0\u4ea4\u540e\uff0c\u5bf9\u7cfb\u7edf\u7684\u5f71\u54cd\u662f\u6c38\u4e45\u7684\u3002<\/li>\n<\/ul>\n<p dir=\"auto\">\u5173\u7cfb\u578b\u6570\u636e\u5e93\u6269\u5c55\u5305\u62ec\u8bb8\u591a\u6280\u672f\uff1a<strong>\u4e3b\u4ece\u590d\u5236<\/strong>\u3001<strong>\u4e3b\u4e3b\u590d\u5236<\/strong>\u3001<strong>\u8054\u5408<\/strong>\u3001<strong>\u5206\u7247<\/strong>\u3001<strong>\u975e\u89c4\u8303\u5316<\/strong>\u548c\u00a0<strong>SQL\u8c03\u4f18<\/strong>\u3002<\/p>\n<p dir=\"auto\" align=\"center\"><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/images\/C9ioGtn.png\" target=\"_blank\" rel=\"noopener noreferrer\"><img decoding=\"async\" src=\"https:\/\/github.com\/donnemartin\/system-design-primer\/raw\/master\/images\/C9ioGtn.png\" \/><\/a><br \/>\n<strong><a href=\"http:\/\/www.slideshare.net\/jboner\/scalability-availability-stability-patterns\/\" rel=\"nofollow\">\u8d44\u6599\u6765\u6e90\uff1a\u53ef\u6269\u5c55\u6027\u3001\u53ef\u7528\u6027\u3001\u7a33\u5b9a\u6027\u3001\u6a21\u5f0f<\/a><\/strong><\/p>\n<h4 dir=\"auto\"><a id=\"user-content-\u4e3b\u4ece\u590d\u5236\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E4%B8%BB%E4%BB%8E%E5%A4%8D%E5%88%B6\" aria-hidden=\"true\"><\/a>\u4e3b\u4ece\u590d\u5236<\/h4>\n<p dir=\"auto\">\u4e3b\u5e93\u540c\u65f6\u8d1f\u8d23\u8bfb\u53d6\u548c\u5199\u5165\u64cd\u4f5c\uff0c\u5e76\u590d\u5236\u5199\u5165\u5230\u4e00\u4e2a\u6216\u591a\u4e2a\u4ece\u5e93\u4e2d\uff0c\u4ece\u5e93\u53ea\u8d1f\u8d23\u8bfb\u64cd\u4f5c\u3002\u6811\u72b6\u5f62\u5f0f\u7684\u4ece\u5e93\u518d\u5c06\u5199\u5165\u590d\u5236\u5230\u66f4\u591a\u7684\u4ece\u5e93\u4e2d\u53bb\u3002\u5982\u679c\u4e3b\u5e93\u79bb\u7ebf\uff0c\u7cfb\u7edf\u53ef\u4ee5\u4ee5\u53ea\u8bfb\u6a21\u5f0f\u8fd0\u884c\uff0c\u76f4\u5230\u67d0\u4e2a\u4ece\u5e93\u88ab\u63d0\u5347\u4e3a\u4e3b\u5e93\u6216\u6709\u65b0\u7684\u4e3b\u5e93\u51fa\u73b0\u3002<\/p>\n<h5 dir=\"auto\"><a id=\"user-content-\u4e0d\u5229\u4e4b\u5904\u4e3b\u4ece\u590d\u5236\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E4%B8%8D%E5%88%A9%E4%B9%8B%E5%A4%84%E4%B8%BB%E4%BB%8E%E5%A4%8D%E5%88%B6\" aria-hidden=\"true\"><\/a>\u4e0d\u5229\u4e4b\u5904\uff1a\u4e3b\u4ece\u590d\u5236<\/h5>\n<ul dir=\"auto\">\n<li>\u5c06\u4ece\u5e93\u63d0\u5347\u4e3a\u4e3b\u5e93\u9700\u8981\u989d\u5916\u7684\u903b\u8f91\u3002<\/li>\n<li>\u53c2\u8003<a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E4%B8%8D%E5%88%A9%E4%B9%8B%E5%A4%84%E5%A4%8D%E5%88%B6\">\u4e0d\u5229\u4e4b\u5904\uff1a\u590d\u5236<\/a>\u4e2d\uff0c\u4e3b\u4ece\u590d\u5236\u548c\u4e3b\u4e3b\u590d\u5236<strong>\u5171\u540c<\/strong>\u7684\u95ee\u9898\u3002<\/li>\n<\/ul>\n<p dir=\"auto\" align=\"center\"><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/images\/krAHLGg.png\" target=\"_blank\" rel=\"noopener noreferrer\"><img decoding=\"async\" src=\"https:\/\/github.com\/donnemartin\/system-design-primer\/raw\/master\/images\/krAHLGg.png\" \/><\/a><br \/>\n<strong><a href=\"http:\/\/www.slideshare.net\/jboner\/scalability-availability-stability-patterns\/\" rel=\"nofollow\">\u8d44\u6599\u6765\u6e90\uff1a\u53ef\u6269\u5c55\u6027\u3001\u53ef\u7528\u6027\u3001\u7a33\u5b9a\u6027\u3001\u6a21\u5f0f<\/a><\/strong><\/p>\n<h4 dir=\"auto\"><a id=\"user-content-\u4e3b\u4e3b\u590d\u5236\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E4%B8%BB%E4%B8%BB%E5%A4%8D%E5%88%B6\" aria-hidden=\"true\"><\/a>\u4e3b\u4e3b\u590d\u5236<\/h4>\n<p dir=\"auto\">\u4e24\u4e2a\u4e3b\u5e93\u90fd\u8d1f\u8d23\u8bfb\u64cd\u4f5c\u548c\u5199\u64cd\u4f5c\uff0c\u5199\u5165\u64cd\u4f5c\u65f6\u4e92\u76f8\u534f\u8c03\u3002\u5982\u679c\u5176\u4e2d\u4e00\u4e2a\u4e3b\u5e93\u6302\u673a\uff0c\u7cfb\u7edf\u53ef\u4ee5\u7ee7\u7eed\u8bfb\u53d6\u548c\u5199\u5165\u3002<\/p>\n<h5 dir=\"auto\"><a id=\"user-content-\u4e0d\u5229\u4e4b\u5904-\u4e3b\u4e3b\u590d\u5236\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E4%B8%8D%E5%88%A9%E4%B9%8B%E5%A4%84-%E4%B8%BB%E4%B8%BB%E5%A4%8D%E5%88%B6\" aria-hidden=\"true\"><\/a>\u4e0d\u5229\u4e4b\u5904\uff1a \u4e3b\u4e3b\u590d\u5236<\/h5>\n<ul dir=\"auto\">\n<li>\u4f60\u9700\u8981\u6dfb\u52a0\u8d1f\u8f7d\u5747\u8861\u5668\u6216\u8005\u5728\u5e94\u7528\u903b\u8f91\u4e2d\u505a\u6539\u52a8\uff0c\u6765\u786e\u5b9a\u5199\u5165\u54ea\u4e00\u4e2a\u6570\u636e\u5e93\u3002<\/li>\n<li>\u591a\u6570\u4e3b-\u4e3b\u7cfb\u7edf\u8981\u4e48\u4e0d\u80fd\u4fdd\u8bc1\u4e00\u81f4\u6027\uff08\u8fdd\u53cd ACID\uff09\uff0c\u8981\u4e48\u56e0\u4e3a\u540c\u6b65\u4ea7\u751f\u4e86\u5199\u5165\u5ef6\u8fdf\u3002<\/li>\n<li>\u968f\u7740\u66f4\u591a\u5199\u5165\u8282\u70b9\u7684\u52a0\u5165\u548c\u5ef6\u8fdf\u7684\u63d0\u9ad8\uff0c\u5982\u4f55\u89e3\u51b3\u51b2\u7a81\u663e\u5f97\u8d8a\u53d1\u91cd\u8981\u3002<\/li>\n<li>\u53c2\u8003<a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E4%B8%8D%E5%88%A9%E4%B9%8B%E5%A4%84%E5%A4%8D%E5%88%B6\">\u4e0d\u5229\u4e4b\u5904\uff1a\u590d\u5236<\/a>\u4e2d\uff0c\u4e3b\u4ece\u590d\u5236\u548c\u4e3b\u4e3b\u590d\u5236<strong>\u5171\u540c<\/strong>\u7684\u95ee\u9898\u3002<\/li>\n<\/ul>\n<h5 dir=\"auto\"><a id=\"user-content-\u4e0d\u5229\u4e4b\u5904\u590d\u5236\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E4%B8%8D%E5%88%A9%E4%B9%8B%E5%A4%84%E5%A4%8D%E5%88%B6\" aria-hidden=\"true\"><\/a>\u4e0d\u5229\u4e4b\u5904\uff1a\u590d\u5236<\/h5>\n<ul dir=\"auto\">\n<li>\u5982\u679c\u4e3b\u5e93\u5728\u5c06\u65b0\u5199\u5165\u7684\u6570\u636e\u590d\u5236\u5230\u5176\u4ed6\u8282\u70b9\u524d\u6302\u6389\uff0c\u5219\u6709\u6570\u636e\u4e22\u5931\u7684\u53ef\u80fd\u3002<\/li>\n<li>\u5199\u5165\u4f1a\u88ab\u91cd\u653e\u5230\u8d1f\u8d23\u8bfb\u53d6\u64cd\u4f5c\u7684\u526f\u672c\u3002\u526f\u672c\u53ef\u80fd\u56e0\u4e3a\u8fc7\u591a\u5199\u64cd\u4f5c\u963b\u585e\u4f4f\uff0c\u5bfc\u81f4\u8bfb\u53d6\u529f\u80fd\u5f02\u5e38\u3002<\/li>\n<li>\u8bfb\u53d6\u4ece\u5e93\u8d8a\u591a\uff0c\u9700\u8981\u590d\u5236\u7684\u5199\u5165\u6570\u636e\u5c31\u8d8a\u591a\uff0c\u5bfc\u81f4\u66f4\u4e25\u91cd\u7684\u590d\u5236\u5ef6\u8fdf\u3002<\/li>\n<li>\u5728\u67d0\u4e9b\u6570\u636e\u5e93\u7cfb\u7edf\u4e2d\uff0c\u5199\u5165\u4e3b\u5e93\u7684\u64cd\u4f5c\u53ef\u4ee5\u7528\u591a\u4e2a\u7ebf\u7a0b\u5e76\u884c\u5199\u5165\uff0c\u4f46\u8bfb\u53d6\u526f\u672c\u53ea\u652f\u6301\u5355\u7ebf\u7a0b\u987a\u5e8f\u5730\u5199\u5165\u3002<\/li>\n<li>\u590d\u5236\u610f\u5473\u7740\u66f4\u591a\u7684\u786c\u4ef6\u548c\u989d\u5916\u7684\u590d\u6742\u5ea6\u3002<\/li>\n<\/ul>\n<h5 dir=\"auto\"><a id=\"user-content-\u6765\u6e90\u53ca\u5ef6\u4f38\u9605\u8bfb-9\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E6%9D%A5%E6%BA%90%E5%8F%8A%E5%BB%B6%E4%BC%B8%E9%98%85%E8%AF%BB-9\" aria-hidden=\"true\"><\/a>\u6765\u6e90\u53ca\u5ef6\u4f38\u9605\u8bfb<\/h5>\n<ul dir=\"auto\">\n<li><a href=\"http:\/\/www.slideshare.net\/jboner\/scalability-availability-stability-patterns\/\" rel=\"nofollow\">\u6269\u5c55\u6027\uff0c\u53ef\u7528\u6027\uff0c\u7a33\u5b9a\u6027\u6a21\u5f0f<\/a><\/li>\n<li><a href=\"https:\/\/en.wikipedia.org\/wiki\/Multi-master_replication\" rel=\"nofollow\">\u591a\u4e3b\u590d\u5236<\/a><\/li>\n<\/ul>\n<h4 dir=\"auto\"><a id=\"user-content-\u8054\u5408\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E8%81%94%E5%90%88\" aria-hidden=\"true\"><\/a>\u8054\u5408<\/h4>\n<p dir=\"auto\" align=\"center\"><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/images\/U3qV33e.png\" target=\"_blank\" rel=\"noopener noreferrer\"><img decoding=\"async\" src=\"https:\/\/github.com\/donnemartin\/system-design-primer\/raw\/master\/images\/U3qV33e.png\" \/><\/a><br \/>\n<strong><a href=\"https:\/\/www.youtube.com\/watch?v=w95murBkYmU\" rel=\"nofollow\">\u8d44\u6599\u6765\u6e90\uff1a\u6269\u5c55\u4f60\u7684\u7528\u6237\u6570\u5230\u7b2c\u4e00\u4e2a\u4e00\u5343\u4e07<\/a><\/strong><\/p>\n<p dir=\"auto\">\u8054\u5408\uff08\u6216\u6309\u529f\u80fd\u5212\u5206\uff09\u5c06\u6570\u636e\u5e93\u6309\u5bf9\u5e94\u529f\u80fd\u5206\u5272\u3002\u4f8b\u5982\uff0c\u4f60\u53ef\u4ee5\u6709\u4e09\u4e2a\u6570\u636e\u5e93\uff1a<strong>\u8bba\u575b<\/strong>\u3001<strong>\u7528\u6237<\/strong>\u548c<strong>\u4ea7\u54c1<\/strong>\uff0c\u800c\u4e0d\u4ec5\u662f\u4e00\u4e2a\u5355\u4f53\u6570\u636e\u5e93\uff0c\u4ece\u800c\u51cf\u5c11\u6bcf\u4e2a\u6570\u636e\u5e93\u7684\u8bfb\u53d6\u548c\u5199\u5165\u6d41\u91cf\uff0c\u51cf\u5c11\u590d\u5236\u5ef6\u8fdf\u3002\u8f83\u5c0f\u7684\u6570\u636e\u5e93\u610f\u5473\u7740\u66f4\u591a\u9002\u5408\u653e\u5165\u5185\u5b58\u7684\u6570\u636e\uff0c\u8fdb\u800c\u610f\u5473\u7740\u66f4\u9ad8\u7684\u7f13\u5b58\u547d\u4e2d\u51e0\u7387\u3002\u6ca1\u6709\u53ea\u80fd\u4e32\u884c\u5199\u5165\u7684\u4e2d\u5fc3\u5316\u4e3b\u5e93\uff0c\u4f60\u53ef\u4ee5\u5e76\u884c\u5199\u5165\uff0c\u63d0\u9ad8\u8d1f\u8f7d\u80fd\u529b\u3002<\/p>\n<h5 dir=\"auto\"><a id=\"user-content-\u4e0d\u5229\u4e4b\u5904\u8054\u5408\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E4%B8%8D%E5%88%A9%E4%B9%8B%E5%A4%84%E8%81%94%E5%90%88\" aria-hidden=\"true\"><\/a>\u4e0d\u5229\u4e4b\u5904\uff1a\u8054\u5408<\/h5>\n<ul dir=\"auto\">\n<li>\u5982\u679c\u4f60\u7684\u6570\u636e\u5e93\u6a21\u5f0f\u9700\u8981\u5927\u91cf\u7684\u529f\u80fd\u548c\u6570\u636e\u8868\uff0c\u8054\u5408\u7684\u6548\u7387\u5e76\u4e0d\u597d\u3002<\/li>\n<li>\u4f60\u9700\u8981\u66f4\u65b0\u5e94\u7528\u7a0b\u5e8f\u7684\u903b\u8f91\u6765\u786e\u5b9a\u8981\u8bfb\u53d6\u548c\u5199\u5165\u54ea\u4e2a\u6570\u636e\u5e93\u3002<\/li>\n<li>\u7528\u00a0<a href=\"http:\/\/stackoverflow.com\/questions\/5145637\/querying-data-by-joining-two-tables-in-two-database-on-different-servers\" rel=\"nofollow\">server link<\/a>\u00a0\u4ece\u4e24\u4e2a\u5e93\u8054\u7ed3\u6570\u636e\u66f4\u590d\u6742\u3002<\/li>\n<li>\u8054\u5408\u9700\u8981\u66f4\u591a\u7684\u786c\u4ef6\u548c\u989d\u5916\u7684\u590d\u6742\u5ea6\u3002<\/li>\n<\/ul>\n<h5 dir=\"auto\"><a id=\"user-content-\u6765\u6e90\u53ca\u5ef6\u4f38\u9605\u8bfb\u8054\u5408\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E6%9D%A5%E6%BA%90%E5%8F%8A%E5%BB%B6%E4%BC%B8%E9%98%85%E8%AF%BB%E8%81%94%E5%90%88\" aria-hidden=\"true\"><\/a>\u6765\u6e90\u53ca\u5ef6\u4f38\u9605\u8bfb\uff1a\u8054\u5408<\/h5>\n<ul dir=\"auto\">\n<li><a href=\"https:\/\/www.youtube.com\/watch?v=w95murBkYmU\" rel=\"nofollow\">\u6269\u5c55\u4f60\u7684\u7528\u6237\u6570\u5230\u7b2c\u4e00\u4e2a\u4e00\u5343\u4e07<\/a><\/li>\n<\/ul>\n<h4 dir=\"auto\"><a id=\"user-content-\u5206\u7247\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E5%88%86%E7%89%87\" aria-hidden=\"true\"><\/a>\u5206\u7247<\/h4>\n<p dir=\"auto\" align=\"center\"><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/images\/wU8x5Id.png\" target=\"_blank\" rel=\"noopener noreferrer\"><img decoding=\"async\" src=\"https:\/\/github.com\/donnemartin\/system-design-primer\/raw\/master\/images\/wU8x5Id.png\" \/><\/a><br \/>\n<strong><a href=\"http:\/\/www.slideshare.net\/jboner\/scalability-availability-stability-patterns\/\" rel=\"nofollow\">\u8d44\u6599\u6765\u6e90\uff1a\u53ef\u6269\u5c55\u6027\u3001\u53ef\u7528\u6027\u3001\u7a33\u5b9a\u6027\u3001\u6a21\u5f0f<\/a><\/strong><\/p>\n<p dir=\"auto\">\u5206\u7247\u5c06\u6570\u636e\u5206\u914d\u5728\u4e0d\u540c\u7684\u6570\u636e\u5e93\u4e0a\uff0c\u4f7f\u5f97\u6bcf\u4e2a\u6570\u636e\u5e93\u4ec5\u7ba1\u7406\u6574\u4e2a\u6570\u636e\u96c6\u7684\u4e00\u4e2a\u5b50\u96c6\u3002\u4ee5\u7528\u6237\u6570\u636e\u5e93\u4e3a\u4f8b\uff0c\u968f\u7740\u7528\u6237\u6570\u91cf\u7684\u589e\u52a0\uff0c\u8d8a\u6765\u8d8a\u591a\u7684\u5206\u7247\u4f1a\u88ab\u6dfb\u52a0\u5230\u96c6\u7fa4\u4e2d\u3002<\/p>\n<p dir=\"auto\">\u7c7b\u4f3c<a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E8%81%94%E5%90%88\">\u8054\u5408<\/a>\u7684\u4f18\u70b9\uff0c\u5206\u7247\u53ef\u4ee5\u51cf\u5c11\u8bfb\u53d6\u548c\u5199\u5165\u6d41\u91cf\uff0c\u51cf\u5c11\u590d\u5236\u5e76\u63d0\u9ad8\u7f13\u5b58\u547d\u4e2d\u7387\u3002\u4e5f\u51cf\u5c11\u4e86\u7d22\u5f15\uff0c\u901a\u5e38\u610f\u5473\u7740\u67e5\u8be2\u66f4\u5feb\uff0c\u6027\u80fd\u66f4\u597d\u3002\u5982\u679c\u4e00\u4e2a\u5206\u7247\u51fa\u95ee\u9898\uff0c\u5176\u4ed6\u7684\u4ecd\u80fd\u8fd0\u884c\uff0c\u4f60\u53ef\u4ee5\u4f7f\u7528\u67d0\u79cd\u5f62\u5f0f\u7684\u5197\u4f59\u6765\u9632\u6b62\u6570\u636e\u4e22\u5931\u3002\u7c7b\u4f3c\u8054\u5408\uff0c\u6ca1\u6709\u53ea\u80fd\u4e32\u884c\u5199\u5165\u7684\u4e2d\u5fc3\u5316\u4e3b\u5e93\uff0c\u4f60\u53ef\u4ee5\u5e76\u884c\u5199\u5165\uff0c\u63d0\u9ad8\u8d1f\u8f7d\u80fd\u529b\u3002<\/p>\n<p dir=\"auto\">\u5e38\u89c1\u7684\u505a\u6cd5\u662f\u7528\u6237\u59d3\u6c0f\u7684\u9996\u5b57\u6bcd\u6216\u8005\u7528\u6237\u7684\u5730\u7406\u4f4d\u7f6e\u6765\u5206\u9694\u7528\u6237\u8868\u3002<\/p>\n<h5 dir=\"auto\"><a id=\"user-content-\u4e0d\u5229\u4e4b\u5904\u5206\u7247\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E4%B8%8D%E5%88%A9%E4%B9%8B%E5%A4%84%E5%88%86%E7%89%87\" aria-hidden=\"true\"><\/a>\u4e0d\u5229\u4e4b\u5904\uff1a\u5206\u7247<\/h5>\n<ul dir=\"auto\">\n<li>\u4f60\u9700\u8981\u4fee\u6539\u5e94\u7528\u7a0b\u5e8f\u7684\u903b\u8f91\u6765\u5b9e\u73b0\u5206\u7247\uff0c\u8fd9\u4f1a\u5e26\u6765\u590d\u6742\u7684 SQL \u67e5\u8be2\u3002<\/li>\n<li>\u5206\u7247\u4e0d\u5408\u7406\u53ef\u80fd\u5bfc\u81f4\u6570\u636e\u8d1f\u8f7d\u4e0d\u5747\u8861\u3002\u4f8b\u5982\uff0c\u88ab\u9891\u7e41\u8bbf\u95ee\u7684\u7528\u6237\u6570\u636e\u4f1a\u5bfc\u81f4\u5176\u6240\u5728\u5206\u7247\u7684\u8d1f\u8f7d\u76f8\u5bf9\u5176\u4ed6\u5206\u7247\u9ad8\u3002\n<ul dir=\"auto\">\n<li>\u518d\u5e73\u8861\u4f1a\u5f15\u5165\u989d\u5916\u7684\u590d\u6742\u5ea6\u3002\u57fa\u4e8e<a href=\"http:\/\/www.paperplanes.de\/2011\/12\/9\/the-magic-of-consistent-hashing.html\" rel=\"nofollow\">\u4e00\u81f4\u6027\u54c8\u5e0c<\/a>\u7684\u5206\u7247\u7b97\u6cd5\u53ef\u4ee5\u51cf\u5c11\u8fd9\u79cd\u60c5\u51b5\u3002<\/li>\n<\/ul>\n<\/li>\n<li>\u8054\u7ed3\u591a\u4e2a\u5206\u7247\u7684\u6570\u636e\u64cd\u4f5c\u66f4\u590d\u6742\u3002<\/li>\n<li>\u5206\u7247\u9700\u8981\u66f4\u591a\u7684\u786c\u4ef6\u548c\u989d\u5916\u7684\u590d\u6742\u5ea6\u3002<\/li>\n<\/ul>\n<h4 dir=\"auto\"><a id=\"user-content-\u6765\u6e90\u53ca\u5ef6\u4f38\u9605\u8bfb\u5206\u7247\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E6%9D%A5%E6%BA%90%E5%8F%8A%E5%BB%B6%E4%BC%B8%E9%98%85%E8%AF%BB%E5%88%86%E7%89%87\" aria-hidden=\"true\"><\/a>\u6765\u6e90\u53ca\u5ef6\u4f38\u9605\u8bfb\uff1a\u5206\u7247<\/h4>\n<ul dir=\"auto\">\n<li><a href=\"http:\/\/highscalability.com\/blog\/2009\/8\/6\/an-unorthodox-approach-to-database-design-the-coming-of-the.html\" rel=\"nofollow\">\u5206\u7247\u65f6\u4ee3\u6765\u4e34<\/a><\/li>\n<li><a href=\"https:\/\/en.wikipedia.org\/wiki\/Shard_(database_architecture)\" rel=\"nofollow\">\u6570\u636e\u5e93\u5206\u7247\u67b6\u6784<\/a><\/li>\n<li><a href=\"http:\/\/www.paperplanes.de\/2011\/12\/9\/the-magic-of-consistent-hashing.html\" rel=\"nofollow\">\u4e00\u81f4\u6027\u54c8\u5e0c<\/a><\/li>\n<\/ul>\n<h4 dir=\"auto\"><a id=\"user-content-\u975e\u89c4\u8303\u5316\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E9%9D%9E%E8%A7%84%E8%8C%83%E5%8C%96\" aria-hidden=\"true\"><\/a>\u975e\u89c4\u8303\u5316<\/h4>\n<p dir=\"auto\">\u975e\u89c4\u8303\u5316\u8bd5\u56fe\u4ee5\u5199\u5165\u6027\u80fd\u4e3a\u4ee3\u4ef7\u6765\u6362\u53d6\u8bfb\u53d6\u6027\u80fd\u3002\u5728\u591a\u4e2a\u8868\u4e2d\u5197\u4f59\u6570\u636e\u526f\u672c\uff0c\u4ee5\u907f\u514d\u9ad8\u6210\u672c\u7684\u8054\u7ed3\u64cd\u4f5c\u3002\u4e00\u4e9b\u5173\u7cfb\u578b\u6570\u636e\u5e93\uff0c\u6bd4\u5982\u00a0<a href=\"https:\/\/en.wikipedia.org\/wiki\/PostgreSQL\" rel=\"nofollow\">PostgreSQL<\/a>\u00a0\u548c Oracle \u652f\u6301<a href=\"https:\/\/en.wikipedia.org\/wiki\/Materialized_view\" rel=\"nofollow\">\u7269\u5316\u89c6\u56fe<\/a>\uff0c\u53ef\u4ee5\u5904\u7406\u5197\u4f59\u4fe1\u606f\u5b58\u50a8\u548c\u4fdd\u8bc1\u5197\u4f59\u526f\u672c\u4e00\u81f4\u3002<\/p>\n<p dir=\"auto\">\u5f53\u6570\u636e\u4f7f\u7528\u8bf8\u5982<a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E8%81%94%E5%90%88\">\u8054\u5408<\/a>\u548c<a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E5%88%86%E7%89%87\">\u5206\u7247<\/a>\u7b49\u6280\u672f\u88ab\u5206\u5272\uff0c\u8fdb\u4e00\u6b65\u63d0\u9ad8\u4e86\u5904\u7406\u8de8\u6570\u636e\u4e2d\u5fc3\u7684\u8054\u7ed3\u64cd\u4f5c\u590d\u6742\u5ea6\u3002\u975e\u89c4\u8303\u5316\u53ef\u4ee5\u89c4\u907f\u8fd9\u79cd\u590d\u6742\u7684\u8054\u7ed3\u64cd\u4f5c\u3002<\/p>\n<p dir=\"auto\">\u5728\u591a\u6570\u7cfb\u7edf\u4e2d\uff0c\u8bfb\u53d6\u64cd\u4f5c\u7684\u9891\u7387\u8fdc\u9ad8\u4e8e\u5199\u5165\u64cd\u4f5c\uff0c\u6bd4\u4f8b\u53ef\u8fbe\u5230 100:1\uff0c\u751a\u81f3 1000:1\u3002\u9700\u8981\u590d\u6742\u7684\u6570\u636e\u5e93\u8054\u7ed3\u7684\u8bfb\u53d6\u64cd\u4f5c\u6210\u672c\u975e\u5e38\u9ad8\uff0c\u5728\u78c1\u76d8\u64cd\u4f5c\u4e0a\u6d88\u8017\u4e86\u5927\u91cf\u65f6\u95f4\u3002<\/p>\n<h5 dir=\"auto\"><a id=\"user-content-\u4e0d\u5229\u4e4b\u5904\u975e\u89c4\u8303\u5316\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E4%B8%8D%E5%88%A9%E4%B9%8B%E5%A4%84%E9%9D%9E%E8%A7%84%E8%8C%83%E5%8C%96\" aria-hidden=\"true\"><\/a>\u4e0d\u5229\u4e4b\u5904\uff1a\u975e\u89c4\u8303\u5316<\/h5>\n<ul dir=\"auto\">\n<li>\u6570\u636e\u4f1a\u5197\u4f59\u3002<\/li>\n<li>\u7ea6\u675f\u53ef\u4ee5\u5e2e\u52a9\u5197\u4f59\u7684\u4fe1\u606f\u526f\u672c\u4fdd\u6301\u540c\u6b65\uff0c\u4f46\u8fd9\u6837\u4f1a\u589e\u52a0\u6570\u636e\u5e93\u8bbe\u8ba1\u7684\u590d\u6742\u5ea6\u3002<\/li>\n<li>\u975e\u89c4\u8303\u5316\u7684\u6570\u636e\u5e93\u5728\u9ad8\u5199\u5165\u8d1f\u8f7d\u4e0b\u6027\u80fd\u53ef\u80fd\u6bd4\u89c4\u8303\u5316\u7684\u6570\u636e\u5e93\u5dee\u3002<\/li>\n<\/ul>\n<h5 dir=\"auto\"><a id=\"user-content-\u6765\u6e90\u53ca\u5ef6\u4f38\u9605\u8bfb\u975e\u89c4\u8303\u5316\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E6%9D%A5%E6%BA%90%E5%8F%8A%E5%BB%B6%E4%BC%B8%E9%98%85%E8%AF%BB%E9%9D%9E%E8%A7%84%E8%8C%83%E5%8C%96\" aria-hidden=\"true\"><\/a>\u6765\u6e90\u53ca\u5ef6\u4f38\u9605\u8bfb\uff1a\u975e\u89c4\u8303\u5316<\/h5>\n<ul dir=\"auto\">\n<li><a href=\"https:\/\/en.wikipedia.org\/wiki\/Denormalization\" rel=\"nofollow\">\u975e\u89c4\u8303\u5316<\/a><\/li>\n<\/ul>\n<h4 dir=\"auto\"><a id=\"user-content-sql-\u8c03\u4f18\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#sql-%E8%B0%83%E4%BC%98\" aria-hidden=\"true\"><\/a>SQL \u8c03\u4f18<\/h4>\n<p dir=\"auto\">SQL \u8c03\u4f18\u662f\u4e00\u4e2a\u8303\u56f4\u5f88\u5e7f\u7684\u8bdd\u9898\uff0c\u6709\u5f88\u591a\u76f8\u5173\u7684<a href=\"https:\/\/www.amazon.com\/s\/ref=nb_sb_noss_2?url=search-alias%3Daps&amp;field-keywords=sql+tuning\" rel=\"nofollow\">\u4e66<\/a>\u53ef\u4ee5\u4f5c\u4e3a\u53c2\u8003\u3002<\/p>\n<p dir=\"auto\">\u5229\u7528<strong>\u57fa\u51c6\u6d4b\u8bd5<\/strong>\u548c<strong>\u6027\u80fd\u5206\u6790<\/strong>\u6765\u6a21\u62df\u548c\u53d1\u73b0\u7cfb\u7edf\u74f6\u9888\u5f88\u91cd\u8981\u3002<\/p>\n<ul dir=\"auto\">\n<li><strong>\u57fa\u51c6\u6d4b\u8bd5<\/strong>\u00a0&#8211; \u7528\u00a0<a href=\"http:\/\/httpd.apache.org\/docs\/2.2\/programs\/ab.html\" rel=\"nofollow\">ab<\/a>\u00a0\u7b49\u5de5\u5177\u6a21\u62df\u9ad8\u8d1f\u8f7d\u60c5\u51b5\u3002<\/li>\n<li><strong>\u6027\u80fd\u5206\u6790<\/strong>\u00a0&#8211; \u901a\u8fc7\u542f\u7528\u5982<a href=\"http:\/\/dev.mysql.com\/doc\/refman\/5.7\/en\/slow-query-log.html\" rel=\"nofollow\">\u6162\u67e5\u8be2\u65e5\u5fd7<\/a>\u7b49\u5de5\u5177\u6765\u8f85\u52a9\u8ffd\u8e2a\u6027\u80fd\u95ee\u9898\u3002<\/li>\n<\/ul>\n<p dir=\"auto\">\u57fa\u51c6\u6d4b\u8bd5\u548c\u6027\u80fd\u5206\u6790\u53ef\u80fd\u4f1a\u6307\u5f15\u4f60\u5230\u4ee5\u4e0b\u4f18\u5316\u65b9\u6848\u3002<\/p>\n<h5 dir=\"auto\"><a id=\"user-content-\u6539\u8fdb\u6a21\u5f0f\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E6%94%B9%E8%BF%9B%E6%A8%A1%E5%BC%8F\" aria-hidden=\"true\"><\/a>\u6539\u8fdb\u6a21\u5f0f<\/h5>\n<ul dir=\"auto\">\n<li>\u4e3a\u4e86\u5b9e\u73b0\u5feb\u901f\u8bbf\u95ee\uff0cMySQL \u5728\u78c1\u76d8\u4e0a\u7528\u8fde\u7eed\u7684\u5757\u5b58\u50a8\u6570\u636e\u3002<\/li>\n<li>\u4f7f\u7528\u00a0<code>CHAR<\/code>\u00a0\u7c7b\u578b\u5b58\u50a8\u56fa\u5b9a\u957f\u5ea6\u7684\u5b57\u6bb5\uff0c\u4e0d\u8981\u7528\u00a0<code>VARCHAR<\/code>\u3002\n<ul dir=\"auto\">\n<li><code>CHAR<\/code>\u00a0\u5728\u5feb\u901f\u3001\u968f\u673a\u8bbf\u95ee\u65f6\u6548\u7387\u5f88\u9ad8\u3002\u5982\u679c\u4f7f\u7528\u00a0<code>VARCHAR<\/code>\uff0c\u5982\u679c\u4f60\u60f3\u8bfb\u53d6\u4e0b\u4e00\u4e2a\u5b57\u7b26\u4e32\uff0c\u4e0d\u5f97\u4e0d\u5148\u8bfb\u53d6\u5230\u5f53\u524d\u5b57\u7b26\u4e32\u7684\u672b\u5c3e\u3002<\/li>\n<\/ul>\n<\/li>\n<li>\u4f7f\u7528\u00a0<code>TEXT<\/code>\u00a0\u7c7b\u578b\u5b58\u50a8\u5927\u5757\u7684\u6587\u672c\uff0c\u4f8b\u5982\u535a\u5ba2\u6b63\u6587\u3002<code>TEXT<\/code>\u00a0\u8fd8\u5141\u8bb8\u5e03\u5c14\u641c\u7d22\u3002\u4f7f\u7528\u00a0<code>TEXT<\/code>\u00a0\u5b57\u6bb5\u9700\u8981\u5728\u78c1\u76d8\u4e0a\u5b58\u50a8\u4e00\u4e2a\u7528\u4e8e\u5b9a\u4f4d\u6587\u672c\u5757\u7684\u6307\u9488\u3002<\/li>\n<li>\u4f7f\u7528\u00a0<code>INT<\/code>\u00a0\u7c7b\u578b\u5b58\u50a8\u9ad8\u8fbe 2^32 \u6216 40 \u4ebf\u7684\u8f83\u5927\u6570\u5b57\u3002<\/li>\n<li>\u4f7f\u7528\u00a0<code>DECIMAL<\/code>\u00a0\u7c7b\u578b\u5b58\u50a8\u8d27\u5e01\u53ef\u4ee5\u907f\u514d\u6d6e\u70b9\u6570\u8868\u793a\u9519\u8bef\u3002<\/li>\n<li>\u907f\u514d\u4f7f\u7528\u00a0<code>BLOBS<\/code>\u00a0\u5b58\u50a8\u5b9e\u9645\u5bf9\u8c61\uff0c\u800c\u662f\u7528\u6765\u5b58\u50a8\u5b58\u653e\u5bf9\u8c61\u7684\u4f4d\u7f6e\u3002<\/li>\n<li><code>VARCHAR(255)<\/code>\u00a0\u662f\u4ee5 8 \u4f4d\u6570\u5b57\u5b58\u50a8\u7684\u6700\u5927\u5b57\u7b26\u6570\uff0c\u5728\u67d0\u4e9b\u5173\u7cfb\u578b\u6570\u636e\u5e93\u4e2d\uff0c\u6700\u5927\u9650\u5ea6\u5730\u5229\u7528\u5b57\u8282\u3002<\/li>\n<li>\u5728\u9002\u7528\u573a\u666f\u4e2d\u8bbe\u7f6e\u00a0<code>NOT NULL<\/code>\u00a0\u7ea6\u675f\u6765<a href=\"http:\/\/stackoverflow.com\/questions\/1017239\/how-do-null-values-affect-performance-in-a-database-search\" rel=\"nofollow\">\u63d0\u9ad8\u641c\u7d22\u6027\u80fd<\/a>\u3002<\/li>\n<\/ul>\n<h5 dir=\"auto\"><a id=\"user-content-\u4f7f\u7528\u6b63\u786e\u7684\u7d22\u5f15\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E4%BD%BF%E7%94%A8%E6%AD%A3%E7%A1%AE%E7%9A%84%E7%B4%A2%E5%BC%95\" aria-hidden=\"true\"><\/a>\u4f7f\u7528\u6b63\u786e\u7684\u7d22\u5f15<\/h5>\n<ul dir=\"auto\">\n<li>\u4f60\u6b63\u67e5\u8be2\uff08<code>SELECT<\/code>\u3001<code>GROUP BY<\/code>\u3001<code>ORDER BY<\/code>\u3001<code>JOIN<\/code>\uff09\u7684\u5217\u5982\u679c\u7528\u4e86\u7d22\u5f15\u4f1a\u66f4\u5feb\u3002<\/li>\n<li>\u7d22\u5f15\u901a\u5e38\u8868\u793a\u4e3a\u81ea\u5e73\u8861\u7684\u00a0<a href=\"https:\/\/en.wikipedia.org\/wiki\/B-tree\" rel=\"nofollow\">B \u6811<\/a>\uff0c\u53ef\u4ee5\u4fdd\u6301\u6570\u636e\u6709\u5e8f\uff0c\u5e76\u5141\u8bb8\u5728\u5bf9\u6570\u65f6\u95f4\u5185\u8fdb\u884c\u641c\u7d22\uff0c\u987a\u5e8f\u8bbf\u95ee\uff0c\u63d2\u5165\uff0c\u5220\u9664\u64cd\u4f5c\u3002<\/li>\n<li>\u8bbe\u7f6e\u7d22\u5f15\uff0c\u4f1a\u5c06\u6570\u636e\u5b58\u5728\u5185\u5b58\u4e2d\uff0c\u5360\u7528\u4e86\u66f4\u591a\u5185\u5b58\u7a7a\u95f4\u3002<\/li>\n<li>\u5199\u5165\u64cd\u4f5c\u4f1a\u53d8\u6162\uff0c\u56e0\u4e3a\u7d22\u5f15\u9700\u8981\u88ab\u66f4\u65b0\u3002<\/li>\n<li>\u52a0\u8f7d\u5927\u91cf\u6570\u636e\u65f6\uff0c\u7981\u7528\u7d22\u5f15\u518d\u52a0\u8f7d\u6570\u636e\uff0c\u7136\u540e\u91cd\u5efa\u7d22\u5f15\uff0c\u8fd9\u6837\u4e5f\u8bb8\u4f1a\u66f4\u5feb\u3002<\/li>\n<\/ul>\n<h5 dir=\"auto\"><a id=\"user-content-\u907f\u514d\u9ad8\u6210\u672c\u7684\u8054\u7ed3\u64cd\u4f5c\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E9%81%BF%E5%85%8D%E9%AB%98%E6%88%90%E6%9C%AC%E7%9A%84%E8%81%94%E7%BB%93%E6%93%8D%E4%BD%9C\" aria-hidden=\"true\"><\/a>\u907f\u514d\u9ad8\u6210\u672c\u7684\u8054\u7ed3\u64cd\u4f5c<\/h5>\n<ul dir=\"auto\">\n<li>\u6709\u6027\u80fd\u9700\u8981\uff0c\u53ef\u4ee5\u8fdb\u884c\u975e\u89c4\u8303\u5316\u3002<\/li>\n<\/ul>\n<h5 dir=\"auto\"><a id=\"user-content-\u5206\u5272\u6570\u636e\u8868\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E5%88%86%E5%89%B2%E6%95%B0%E6%8D%AE%E8%A1%A8\" aria-hidden=\"true\"><\/a>\u5206\u5272\u6570\u636e\u8868<\/h5>\n<ul dir=\"auto\">\n<li>\u5c06\u70ed\u70b9\u6570\u636e\u62c6\u5206\u5230\u5355\u72ec\u7684\u6570\u636e\u8868\u4e2d\uff0c\u53ef\u4ee5\u6709\u52a9\u4e8e\u7f13\u5b58\u3002<\/li>\n<\/ul>\n<h5 dir=\"auto\"><a id=\"user-content-\u8c03\u4f18\u67e5\u8be2\u7f13\u5b58\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E8%B0%83%E4%BC%98%E6%9F%A5%E8%AF%A2%E7%BC%93%E5%AD%98\" aria-hidden=\"true\"><\/a>\u8c03\u4f18\u67e5\u8be2\u7f13\u5b58<\/h5>\n<ul dir=\"auto\">\n<li>\u5728\u67d0\u4e9b\u60c5\u51b5\u4e0b\uff0c<a href=\"http:\/\/dev.mysql.com\/doc\/refman\/5.7\/en\/query-cache\" rel=\"nofollow\">\u67e5\u8be2\u7f13\u5b58<\/a>\u53ef\u80fd\u4f1a\u5bfc\u81f4<a href=\"https:\/\/www.percona.com\/blog\/2014\/01\/28\/10-mysql-performance-tuning-settings-after-installation\/\" rel=\"nofollow\">\u6027\u80fd\u95ee\u9898<\/a>\u3002<\/li>\n<\/ul>\n<h5 dir=\"auto\"><a id=\"user-content-\u6765\u6e90\u53ca\u5ef6\u4f38\u9605\u8bfb-10\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E6%9D%A5%E6%BA%90%E5%8F%8A%E5%BB%B6%E4%BC%B8%E9%98%85%E8%AF%BB-10\" aria-hidden=\"true\"><\/a>\u6765\u6e90\u53ca\u5ef6\u4f38\u9605\u8bfb<\/h5>\n<ul dir=\"auto\">\n<li><a href=\"http:\/\/20bits.com\/article\/10-tips-for-optimizing-mysql-queries-that-dont-suck\" rel=\"nofollow\">MySQL \u67e5\u8be2\u4f18\u5316\u5c0f\u8d34\u58eb<\/a><\/li>\n<li><a href=\"http:\/\/stackoverflow.com\/questions\/1217466\/is-there-a-good-reason-i-see-varchar255-used-so-often-as-opposed-to-another-l\" rel=\"nofollow\">\u4e3a\u4ec0\u4e48 VARCHAR(255) \u5f88\u5e38\u89c1\uff1f<\/a><\/li>\n<li><a href=\"http:\/\/stackoverflow.com\/questions\/1017239\/how-do-null-values-affect-performance-in-a-database-search\" rel=\"nofollow\">Null \u503c\u662f\u5982\u4f55\u5f71\u54cd\u6570\u636e\u5e93\u6027\u80fd\u7684\uff1f<\/a><\/li>\n<li><a href=\"http:\/\/dev.mysql.com\/doc\/refman\/5.7\/en\/slow-query-log.html\" rel=\"nofollow\">\u6162\u67e5\u8be2\u65e5\u5fd7<\/a><\/li>\n<\/ul>\n<h3 dir=\"auto\"><a id=\"user-content-nosql\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#nosql\" aria-hidden=\"true\"><\/a>NoSQL<\/h3>\n<p dir=\"auto\">NoSQL \u662f<strong>\u952e-\u503c\u6570\u636e\u5e93<\/strong>\u3001<strong>\u6587\u6863\u578b\u6570\u636e\u5e93<\/strong>\u3001<strong>\u5217\u578b\u6570\u636e\u5e93<\/strong>\u6216<strong>\u56fe\u6570\u636e\u5e93<\/strong>\u7684\u7edf\u79f0\u3002\u6570\u636e\u5e93\u662f\u975e\u89c4\u8303\u5316\u7684\uff0c\u8868\u8054\u7ed3\u5927\u591a\u5728\u5e94\u7528\u7a0b\u5e8f\u4ee3\u7801\u4e2d\u5b8c\u6210\u3002\u5927\u591a\u6570 NoSQL \u65e0\u6cd5\u5b9e\u73b0\u771f\u6b63\u7b26\u5408 ACID \u7684\u4e8b\u52a1\uff0c\u652f\u6301<a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E6%9C%80%E7%BB%88%E4%B8%80%E8%87%B4%E6%80%A7\">\u6700\u7ec8\u4e00\u81f4<\/a>\u3002<\/p>\n<p dir=\"auto\"><strong>BASE<\/strong>\u00a0\u901a\u5e38\u88ab\u7528\u4e8e\u63cf\u8ff0 NoSQL \u6570\u636e\u5e93\u7684\u7279\u6027\u3002\u76f8\u6bd4\u00a0<a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#cap-%E7%90%86%E8%AE%BA\">CAP \u7406\u8bba<\/a>\uff0cBASE \u5f3a\u8c03\u53ef\u7528\u6027\u8d85\u8fc7\u4e00\u81f4\u6027\u3002<\/p>\n<ul dir=\"auto\">\n<li><strong>\u57fa\u672c\u53ef\u7528<\/strong>\u00a0&#8211; \u7cfb\u7edf\u4fdd\u8bc1\u53ef\u7528\u6027\u3002<\/li>\n<li><strong>\u8f6f\u72b6\u6001<\/strong>\u00a0&#8211; \u5373\u4f7f\u6ca1\u6709\u8f93\u5165\uff0c\u7cfb\u7edf\u72b6\u6001\u4e5f\u53ef\u80fd\u968f\u7740\u65f6\u95f4\u53d8\u5316\u3002<\/li>\n<li><strong>\u6700\u7ec8\u4e00\u81f4\u6027<\/strong>\u00a0&#8211; \u7ecf\u8fc7\u4e00\u6bb5\u65f6\u95f4\u4e4b\u540e\uff0c\u7cfb\u7edf\u6700\u7ec8\u4f1a\u53d8\u4e00\u81f4\uff0c\u56e0\u4e3a\u7cfb\u7edf\u5728\u6b64\u671f\u95f4\u6ca1\u6709\u6536\u5230\u4efb\u4f55\u8f93\u5165\u3002<\/li>\n<\/ul>\n<p dir=\"auto\">\u9664\u4e86\u5728\u00a0<a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#sql-%E8%BF%98%E6%98%AF-nosql\">SQL \u8fd8\u662f NoSQL<\/a>\u00a0\u4e4b\u95f4\u505a\u9009\u62e9\uff0c\u4e86\u89e3\u54ea\u79cd\u7c7b\u578b\u7684 NoSQL \u6570\u636e\u5e93\u6700\u9002\u5408\u4f60\u7684\u7528\u4f8b\u4e5f\u662f\u975e\u5e38\u6709\u5e2e\u52a9\u7684\u3002\u6211\u4eec\u5c06\u5728\u4e0b\u4e00\u8282\u4e2d\u5feb\u901f\u4e86\u89e3\u4e0b\u00a0<strong>\u952e-\u503c\u5b58\u50a8<\/strong>\u3001<strong>\u6587\u6863\u578b\u5b58\u50a8<\/strong>\u3001<strong>\u5217\u578b\u5b58\u50a8<\/strong>\u548c<strong>\u56fe\u5b58\u50a8<\/strong>\u6570\u636e\u5e93\u3002<\/p>\n<h4 dir=\"auto\"><a id=\"user-content-\u952e-\u503c\u5b58\u50a8\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E9%94%AE-%E5%80%BC%E5%AD%98%E5%82%A8\" aria-hidden=\"true\"><\/a>\u952e-\u503c\u5b58\u50a8<\/h4>\n<blockquote>\n<p dir=\"auto\">\u62bd\u8c61\u6a21\u578b\uff1a\u54c8\u5e0c\u8868<\/p>\n<\/blockquote>\n<p dir=\"auto\">\u952e-\u503c\u5b58\u50a8\u901a\u5e38\u53ef\u4ee5\u5b9e\u73b0 O(1) \u65f6\u95f4\u8bfb\u5199\uff0c\u7528\u5185\u5b58\u6216 SSD \u5b58\u50a8\u6570\u636e\u3002\u6570\u636e\u5b58\u50a8\u53ef\u4ee5\u6309<a href=\"https:\/\/en.wikipedia.org\/wiki\/Lexicographical_order\" rel=\"nofollow\">\u5b57\u5178\u987a\u5e8f<\/a>\u7ef4\u62a4\u952e\uff0c\u4ece\u800c\u5b9e\u73b0\u952e\u7684\u9ad8\u6548\u68c0\u7d22\u3002\u952e-\u503c\u5b58\u50a8\u53ef\u4ee5\u7528\u4e8e\u5b58\u50a8\u5143\u6570\u636e\u3002<\/p>\n<p dir=\"auto\">\u952e-\u503c\u5b58\u50a8\u6027\u80fd\u5f88\u9ad8\uff0c\u901a\u5e38\u7528\u4e8e\u5b58\u50a8\u7b80\u5355\u6570\u636e\u6a21\u578b\u6216\u9891\u7e41\u4fee\u6539\u7684\u6570\u636e\uff0c\u5982\u5b58\u653e\u5728\u5185\u5b58\u4e2d\u7684\u7f13\u5b58\u3002\u952e-\u503c\u5b58\u50a8\u63d0\u4f9b\u7684\u64cd\u4f5c\u6709\u9650\uff0c\u5982\u679c\u9700\u8981\u66f4\u591a\u64cd\u4f5c\uff0c\u590d\u6742\u5ea6\u5c06\u8f6c\u5ac1\u5230\u5e94\u7528\u7a0b\u5e8f\u5c42\u9762\u3002<\/p>\n<p dir=\"auto\">\u952e-\u503c\u5b58\u50a8\u662f\u5982\u6587\u6863\u5b58\u50a8\uff0c\u5728\u67d0\u4e9b\u60c5\u51b5\u4e0b\uff0c\u751a\u81f3\u662f\u56fe\u5b58\u50a8\u7b49\u66f4\u590d\u6742\u7684\u5b58\u50a8\u7cfb\u7edf\u7684\u57fa\u7840\u3002<\/p>\n<h4 dir=\"auto\"><a id=\"user-content-\u6765\u6e90\u53ca\u5ef6\u4f38\u9605\u8bfb-11\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E6%9D%A5%E6%BA%90%E5%8F%8A%E5%BB%B6%E4%BC%B8%E9%98%85%E8%AF%BB-11\" aria-hidden=\"true\"><\/a>\u6765\u6e90\u53ca\u5ef6\u4f38\u9605\u8bfb<\/h4>\n<ul dir=\"auto\">\n<li><a href=\"https:\/\/en.wikipedia.org\/wiki\/Key-value_database\" rel=\"nofollow\">\u952e-\u503c\u6570\u636e\u5e93<\/a><\/li>\n<li><a href=\"http:\/\/stackoverflow.com\/questions\/4056093\/what-are-the-disadvantages-of-using-a-key-value-table-over-nullable-columns-or\" rel=\"nofollow\">\u952e-\u503c\u5b58\u50a8\u7684\u52a3\u52bf<\/a><\/li>\n<li><a href=\"http:\/\/qnimate.com\/overview-of-redis-architecture\/\" rel=\"nofollow\">Redis \u67b6\u6784<\/a><\/li>\n<li><a href=\"https:\/\/www.adayinthelifeof.nl\/2011\/02\/06\/memcache-internals\/\" rel=\"nofollow\">Memcached \u67b6\u6784<\/a><\/li>\n<\/ul>\n<h4 dir=\"auto\"><a id=\"user-content-\u6587\u6863\u7c7b\u578b\u5b58\u50a8\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E6%96%87%E6%A1%A3%E7%B1%BB%E5%9E%8B%E5%AD%98%E5%82%A8\" aria-hidden=\"true\"><\/a>\u6587\u6863\u7c7b\u578b\u5b58\u50a8<\/h4>\n<blockquote>\n<p dir=\"auto\">\u62bd\u8c61\u6a21\u578b\uff1a\u5c06\u6587\u6863\u4f5c\u4e3a\u503c\u7684\u952e-\u503c\u5b58\u50a8<\/p>\n<\/blockquote>\n<p dir=\"auto\">\u6587\u6863\u7c7b\u578b\u5b58\u50a8\u4ee5\u6587\u6863\uff08XML\u3001JSON\u3001\u4e8c\u8fdb\u5236\u6587\u4ef6\u7b49\uff09\u4e3a\u4e2d\u5fc3\uff0c\u6587\u6863\u5b58\u50a8\u4e86\u6307\u5b9a\u5bf9\u8c61\u7684\u5168\u90e8\u4fe1\u606f\u3002\u6587\u6863\u5b58\u50a8\u6839\u636e\u6587\u6863\u81ea\u8eab\u7684\u5185\u90e8\u7ed3\u6784\u63d0\u4f9b API \u6216\u67e5\u8be2\u8bed\u53e5\u6765\u5b9e\u73b0\u67e5\u8be2\u3002\u8bf7\u6ce8\u610f\uff0c\u8bb8\u591a\u952e-\u503c\u5b58\u50a8\u6570\u636e\u5e93\u6709\u7528\u503c\u5b58\u50a8\u5143\u6570\u636e\u7684\u7279\u6027\uff0c\u8fd9\u4e5f\u6a21\u7cca\u4e86\u8fd9\u4e24\u79cd\u5b58\u50a8\u7c7b\u578b\u7684\u754c\u9650\u3002<\/p>\n<p dir=\"auto\">\u57fa\u4e8e\u5e95\u5c42\u5b9e\u73b0\uff0c\u6587\u6863\u53ef\u4ee5\u6839\u636e\u96c6\u5408\u3001\u6807\u7b7e\u3001\u5143\u6570\u636e\u6216\u8005\u6587\u4ef6\u5939\u7ec4\u7ec7\u3002\u5c3d\u7ba1\u4e0d\u540c\u6587\u6863\u53ef\u4ee5\u88ab\u7ec4\u7ec7\u5728\u4e00\u8d77\u6216\u8005\u5206\u6210\u4e00\u7ec4\uff0c\u4f46\u76f8\u4e92\u4e4b\u95f4\u53ef\u80fd\u5177\u6709\u5b8c\u5168\u4e0d\u540c\u7684\u5b57\u6bb5\u3002<\/p>\n<p dir=\"auto\">MongoDB \u548c CouchDB \u7b49\u4e00\u4e9b\u6587\u6863\u7c7b\u578b\u5b58\u50a8\u8fd8\u63d0\u4f9b\u4e86\u7c7b\u4f3c SQL \u8bed\u8a00\u7684\u67e5\u8be2\u8bed\u53e5\u6765\u5b9e\u73b0\u590d\u6742\u67e5\u8be2\u3002DynamoDB \u540c\u65f6\u652f\u6301\u952e-\u503c\u5b58\u50a8\u548c\u6587\u6863\u7c7b\u578b\u5b58\u50a8\u3002<\/p>\n<p dir=\"auto\">\u6587\u6863\u7c7b\u578b\u5b58\u50a8\u5177\u5907\u9ad8\u5ea6\u7684\u7075\u6d3b\u6027\uff0c\u5e38\u7528\u4e8e\u5904\u7406\u5076\u5c14\u53d8\u5316\u7684\u6570\u636e\u3002<\/p>\n<h4 dir=\"auto\"><a id=\"user-content-\u6765\u6e90\u53ca\u5ef6\u4f38\u9605\u8bfb\u6587\u6863\u7c7b\u578b\u5b58\u50a8\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E6%9D%A5%E6%BA%90%E5%8F%8A%E5%BB%B6%E4%BC%B8%E9%98%85%E8%AF%BB%E6%96%87%E6%A1%A3%E7%B1%BB%E5%9E%8B%E5%AD%98%E5%82%A8\" aria-hidden=\"true\"><\/a>\u6765\u6e90\u53ca\u5ef6\u4f38\u9605\u8bfb\uff1a\u6587\u6863\u7c7b\u578b\u5b58\u50a8<\/h4>\n<ul dir=\"auto\">\n<li><a href=\"https:\/\/en.wikipedia.org\/wiki\/Document-oriented_database\" rel=\"nofollow\">\u9762\u5411\u6587\u6863\u7684\u6570\u636e\u5e93<\/a><\/li>\n<li><a href=\"https:\/\/www.mongodb.com\/mongodb-architecture\" rel=\"nofollow\">MongoDB \u67b6\u6784<\/a><\/li>\n<li><a href=\"https:\/\/blog.couchdb.org\/2016\/08\/01\/couchdb-2-0-architecture\/\" rel=\"nofollow\">CouchDB \u67b6\u6784<\/a><\/li>\n<li><a href=\"https:\/\/www.elastic.co\/blog\/found-elasticsearch-from-the-bottom-up\" rel=\"nofollow\">Elasticsearch \u67b6\u6784<\/a><\/li>\n<\/ul>\n<h4 dir=\"auto\"><a id=\"user-content-\u5217\u578b\u5b58\u50a8\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E5%88%97%E5%9E%8B%E5%AD%98%E5%82%A8\" aria-hidden=\"true\"><\/a>\u5217\u578b\u5b58\u50a8<\/h4>\n<p dir=\"auto\" align=\"center\"><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/images\/n16iOGk.png\" target=\"_blank\" rel=\"noopener noreferrer\"><img decoding=\"async\" src=\"https:\/\/github.com\/donnemartin\/system-design-primer\/raw\/master\/images\/n16iOGk.png\" \/><\/a><br \/>\n<strong><a href=\"http:\/\/blog.grio.com\/2015\/11\/sql-nosql-a-brief-history.html\" rel=\"nofollow\">\u8d44\u6599\u6765\u6e90: SQL \u548c NoSQL\uff0c\u4e00\u4e2a\u7b80\u77ed\u7684\u5386\u53f2<\/a><\/strong><\/p>\n<blockquote>\n<p dir=\"auto\">\u62bd\u8c61\u6a21\u578b\uff1a\u5d4c\u5957\u7684\u00a0<code>ColumnFamily&lt;RowKey, Columns&lt;ColKey, Value, Timestamp&gt;&gt;<\/code>\u00a0\u6620\u5c04<\/p>\n<\/blockquote>\n<p dir=\"auto\">\u7c7b\u578b\u5b58\u50a8\u7684\u57fa\u672c\u6570\u636e\u5355\u5143\u662f\u5217\uff08\u540d\uff0f\u503c\u5bf9\uff09\u3002\u5217\u53ef\u4ee5\u5728\u5217\u65cf\uff08\u7c7b\u4f3c\u4e8e SQL \u7684\u6570\u636e\u8868\uff09\u4e2d\u88ab\u5206\u7ec4\u3002\u8d85\u7ea7\u5217\u65cf\u518d\u5206\u7ec4\u666e\u901a\u5217\u65cf\u3002\u4f60\u53ef\u4ee5\u4f7f\u7528\u884c\u952e\u72ec\u7acb\u8bbf\u95ee\u6bcf\u4e00\u5217\uff0c\u5177\u6709\u76f8\u540c\u884c\u952e\u503c\u7684\u5217\u7ec4\u6210\u4e00\u884c\u3002\u6bcf\u4e2a\u503c\u90fd\u5305\u542b\u7248\u672c\u7684\u65f6\u95f4\u6233\u7528\u4e8e\u89e3\u51b3\u7248\u672c\u51b2\u7a81\u3002<\/p>\n<p dir=\"auto\">Google \u53d1\u5e03\u4e86\u7b2c\u4e00\u4e2a\u5217\u578b\u5b58\u50a8\u6570\u636e\u5e93\u00a0<a href=\"http:\/\/www.read.seas.harvard.edu\/~kohler\/class\/cs239-w08\/chang06bigtable.pdf\" rel=\"nofollow\">Bigtable<\/a>\uff0c\u5b83\u5f71\u54cd\u4e86 Hadoop \u751f\u6001\u7cfb\u7edf\u4e2d\u6d3b\u8dc3\u7684\u5f00\u6e90\u6570\u636e\u5e93\u00a0<a href=\"https:\/\/www.mapr.com\/blog\/in-depth-look-hbase-architecture\" rel=\"nofollow\">HBase<\/a>\u00a0\u548c Facebook \u7684\u00a0<a href=\"http:\/\/docs.datastax.com\/en\/archived\/cassandra\/2.0\/cassandra\/architecture\/architectureIntro_c.html\" rel=\"nofollow\">Cassandra<\/a>\u3002\u50cf BigTable\uff0cHBase \u548c Cassandra \u8fd9\u6837\u7684\u5b58\u50a8\u7cfb\u7edf\u5c06\u952e\u4ee5\u5b57\u6bcd\u987a\u5e8f\u5b58\u50a8\uff0c\u53ef\u4ee5\u9ad8\u6548\u5730\u8bfb\u53d6\u952e\u5217\u3002<\/p>\n<p dir=\"auto\">\u5217\u578b\u5b58\u50a8\u5177\u5907\u9ad8\u53ef\u7528\u6027\u548c\u9ad8\u53ef\u6269\u5c55\u6027\u3002\u901a\u5e38\u88ab\u7528\u4e8e\u5927\u6570\u636e\u76f8\u5173\u5b58\u50a8\u3002<\/p>\n<h5 dir=\"auto\"><a id=\"user-content-\u6765\u6e90\u53ca\u5ef6\u4f38\u9605\u8bfb\u5217\u578b\u5b58\u50a8\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E6%9D%A5%E6%BA%90%E5%8F%8A%E5%BB%B6%E4%BC%B8%E9%98%85%E8%AF%BB%E5%88%97%E5%9E%8B%E5%AD%98%E5%82%A8\" aria-hidden=\"true\"><\/a>\u6765\u6e90\u53ca\u5ef6\u4f38\u9605\u8bfb\uff1a\u5217\u578b\u5b58\u50a8<\/h5>\n<ul dir=\"auto\">\n<li><a href=\"http:\/\/blog.grio.com\/2015\/11\/sql-nosql-a-brief-history.html\" rel=\"nofollow\">SQL \u4e0e NoSQL \u7b80\u53f2<\/a><\/li>\n<li><a href=\"http:\/\/www.read.seas.harvard.edu\/~kohler\/class\/cs239-w08\/chang06bigtable.pdf\" rel=\"nofollow\">BigTable \u67b6\u6784<\/a><\/li>\n<li><a href=\"https:\/\/www.mapr.com\/blog\/in-depth-look-hbase-architecture\" rel=\"nofollow\">Hbase \u67b6\u6784<\/a><\/li>\n<li><a href=\"http:\/\/docs.datastax.com\/en\/archived\/cassandra\/2.0\/cassandra\/architecture\/architectureIntro_c.html\" rel=\"nofollow\">Cassandra \u67b6\u6784<\/a><\/li>\n<\/ul>\n<h4 dir=\"auto\"><a id=\"user-content-\u56fe\u6570\u636e\u5e93\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E5%9B%BE%E6%95%B0%E6%8D%AE%E5%BA%93\" aria-hidden=\"true\"><\/a>\u56fe\u6570\u636e\u5e93<\/h4>\n<p dir=\"auto\" align=\"center\"><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/images\/fNcl65g.png\" target=\"_blank\" rel=\"noopener noreferrer\"><img decoding=\"async\" src=\"https:\/\/github.com\/donnemartin\/system-design-primer\/raw\/master\/images\/fNcl65g.png\" \/><\/a><br \/>\n<strong><a href=\"https:\/\/en.wikipedia.org\/wiki\/File:GraphDatabase_PropertyGraph.png\" rel=\"nofollow\">\u8d44\u6599\u6765\u6e90\uff1a\u56fe\u6570\u636e\u5e93<\/a><\/strong><\/p>\n<blockquote>\n<p dir=\"auto\">\u62bd\u8c61\u6a21\u578b\uff1a \u56fe<\/p>\n<\/blockquote>\n<p dir=\"auto\">\u5728\u56fe\u6570\u636e\u5e93\u4e2d\uff0c\u4e00\u4e2a\u8282\u70b9\u5bf9\u5e94\u4e00\u6761\u8bb0\u5f55\uff0c\u4e00\u4e2a\u5f27\u5bf9\u5e94\u4e24\u4e2a\u8282\u70b9\u4e4b\u95f4\u7684\u5173\u7cfb\u3002\u56fe\u6570\u636e\u5e93\u88ab\u4f18\u5316\u7528\u4e8e\u8868\u793a\u5916\u952e\u7e41\u591a\u7684\u590d\u6742\u5173\u7cfb\u6216\u591a\u5bf9\u591a\u5173\u7cfb\u3002<\/p>\n<p dir=\"auto\">\u56fe\u6570\u636e\u5e93\u4e3a\u5b58\u50a8\u590d\u6742\u5173\u7cfb\u7684\u6570\u636e\u6a21\u578b\uff0c\u5982\u793e\u4ea4\u7f51\u7edc\uff0c\u63d0\u4f9b\u4e86\u5f88\u9ad8\u7684\u6027\u80fd\u3002\u5b83\u4eec\u76f8\u5bf9\u8f83\u65b0\uff0c\u5c1a\u672a\u5e7f\u6cdb\u5e94\u7528\uff0c\u67e5\u627e\u5f00\u53d1\u5de5\u5177\u6216\u8005\u8d44\u6e90\u76f8\u5bf9\u8f83\u96be\u3002\u8bb8\u591a\u56fe\u53ea\u80fd\u901a\u8fc7\u00a0<a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E8%A1%A8%E8%BF%B0%E6%80%A7%E7%8A%B6%E6%80%81%E8%BD%AC%E7%A7%BBrest\">REST API<\/a>\u00a0\u8bbf\u95ee\u3002<\/p>\n<h5 dir=\"auto\"><a id=\"user-content-\u76f8\u5173\u8d44\u6e90\u548c\u5ef6\u4f38\u9605\u8bfb\u56fe\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E7%9B%B8%E5%85%B3%E8%B5%84%E6%BA%90%E5%92%8C%E5%BB%B6%E4%BC%B8%E9%98%85%E8%AF%BB%E5%9B%BE\" aria-hidden=\"true\"><\/a>\u76f8\u5173\u8d44\u6e90\u548c\u5ef6\u4f38\u9605\u8bfb\uff1a\u56fe<\/h5>\n<ul dir=\"auto\">\n<li><a href=\"https:\/\/en.wikipedia.org\/wiki\/Graph_database\" rel=\"nofollow\">\u56fe\u6570\u636e\u5e93<\/a><\/li>\n<li><a href=\"https:\/\/neo4j.com\/\" rel=\"nofollow\">Neo4j<\/a><\/li>\n<li><a href=\"https:\/\/blog.twitter.com\/2010\/introducing-flockdb\" rel=\"nofollow\">FlockDB<\/a><\/li>\n<\/ul>\n<h4 dir=\"auto\"><a id=\"user-content-\u6765\u6e90\u53ca\u5ef6\u4f38\u9605\u8bfbnosql\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E6%9D%A5%E6%BA%90%E5%8F%8A%E5%BB%B6%E4%BC%B8%E9%98%85%E8%AF%BBnosql\" aria-hidden=\"true\"><\/a>\u6765\u6e90\u53ca\u5ef6\u4f38\u9605\u8bfb\uff1aNoSQL<\/h4>\n<ul dir=\"auto\">\n<li><a href=\"http:\/\/stackoverflow.com\/questions\/3342497\/explanation-of-base-terminology\" rel=\"nofollow\">\u6570\u636e\u5e93\u672f\u8bed\u89e3\u91ca<\/a><\/li>\n<li><a href=\"https:\/\/medium.com\/baqend-blog\/nosql-databases-a-survey-and-decision-guidance-ea7823a822d#.wskogqenq\" rel=\"nofollow\">NoSQL \u6570\u636e\u5e93 &#8211; \u8c03\u67e5\u53ca\u51b3\u7b56\u6307\u5357<\/a><\/li>\n<li><a href=\"http:\/\/www.lecloud.net\/post\/7994751381\/scalability-for-dummies-part-2-database\" rel=\"nofollow\">\u53ef\u6269\u5c55\u6027<\/a><\/li>\n<li><a href=\"https:\/\/www.youtube.com\/watch?v=qI_g07C_Q5I\" rel=\"nofollow\">NoSQL \u4ecb\u7ecd<\/a><\/li>\n<li><a href=\"http:\/\/horicky.blogspot.com\/2009\/11\/nosql-patterns.html\" rel=\"nofollow\">NoSQL \u6a21\u5f0f<\/a><\/li>\n<\/ul>\n<h3 dir=\"auto\"><a id=\"user-content-sql-\u8fd8\u662f-nosql\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#sql-%E8%BF%98%E6%98%AF-nosql\" aria-hidden=\"true\"><\/a>SQL \u8fd8\u662f NoSQL<\/h3>\n<p dir=\"auto\" align=\"center\"><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/images\/wXGqG5f.png\" target=\"_blank\" rel=\"noopener noreferrer\"><img decoding=\"async\" src=\"https:\/\/github.com\/donnemartin\/system-design-primer\/raw\/master\/images\/wXGqG5f.png\" \/><\/a><br \/>\n<strong><a href=\"https:\/\/www.infoq.com\/articles\/Transition-RDBMS-NoSQL\/\" rel=\"nofollow\">\u8d44\u6599\u6765\u6e90\uff1a\u4ece RDBMS \u8f6c\u6362\u5230 NoSQL<\/a><\/strong><\/p>\n<p dir=\"auto\">\u9009\u53d6\u00a0<strong>SQL<\/strong>\u00a0\u7684\u539f\u56e0:<\/p>\n<ul dir=\"auto\">\n<li>\u7ed3\u6784\u5316\u6570\u636e<\/li>\n<li>\u4e25\u683c\u7684\u6a21\u5f0f<\/li>\n<li>\u5173\u7cfb\u578b\u6570\u636e<\/li>\n<li>\u9700\u8981\u590d\u6742\u7684\u8054\u7ed3\u64cd\u4f5c<\/li>\n<li>\u4e8b\u52a1<\/li>\n<li>\u6e05\u6670\u7684\u6269\u5c55\u6a21\u5f0f<\/li>\n<li>\u65e2\u6709\u8d44\u6e90\u66f4\u4e30\u5bcc\uff1a\u5f00\u53d1\u8005\u3001\u793e\u533a\u3001\u4ee3\u7801\u5e93\u3001\u5de5\u5177\u7b49<\/li>\n<li>\u901a\u8fc7\u7d22\u5f15\u8fdb\u884c\u67e5\u8be2\u975e\u5e38\u5feb<\/li>\n<\/ul>\n<p dir=\"auto\">\u9009\u53d6\u00a0<strong>NoSQL<\/strong>\u00a0\u7684\u539f\u56e0\uff1a<\/p>\n<ul dir=\"auto\">\n<li>\u534a\u7ed3\u6784\u5316\u6570\u636e<\/li>\n<li>\u52a8\u6001\u6216\u7075\u6d3b\u7684\u6a21\u5f0f<\/li>\n<li>\u975e\u5173\u7cfb\u578b\u6570\u636e<\/li>\n<li>\u4e0d\u9700\u8981\u590d\u6742\u7684\u8054\u7ed3\u64cd\u4f5c<\/li>\n<li>\u5b58\u50a8 TB \uff08\u751a\u81f3 PB\uff09\u7ea7\u522b\u7684\u6570\u636e<\/li>\n<li>\u9ad8\u6570\u636e\u5bc6\u96c6\u7684\u5de5\u4f5c\u8d1f\u8f7d<\/li>\n<li>IOPS \u9ad8\u541e\u5410\u91cf<\/li>\n<\/ul>\n<p dir=\"auto\">\u9002\u5408 NoSQL \u7684\u793a\u4f8b\u6570\u636e\uff1a<\/p>\n<ul dir=\"auto\">\n<li>\u57cb\u70b9\u6570\u636e\u548c\u65e5\u5fd7\u6570\u636e<\/li>\n<li>\u6392\u884c\u699c\u6216\u8005\u5f97\u5206\u6570\u636e<\/li>\n<li>\u4e34\u65f6\u6570\u636e\uff0c\u5982\u8d2d\u7269\u8f66<\/li>\n<li>\u9891\u7e41\u8bbf\u95ee\u7684\uff08\u201c\u70ed\u201d\uff09\u8868<\/li>\n<li>\u5143\u6570\u636e\uff0f\u67e5\u627e\u8868<\/li>\n<\/ul>\n<h5 dir=\"auto\"><a id=\"user-content-\u6765\u6e90\u53ca\u5ef6\u4f38\u9605\u8bfbsql-\u6216-nosql\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E6%9D%A5%E6%BA%90%E5%8F%8A%E5%BB%B6%E4%BC%B8%E9%98%85%E8%AF%BBsql-%E6%88%96-nosql\" aria-hidden=\"true\"><\/a>\u6765\u6e90\u53ca\u5ef6\u4f38\u9605\u8bfb\uff1aSQL \u6216 NoSQL<\/h5>\n<ul dir=\"auto\">\n<li><a href=\"https:\/\/www.youtube.com\/watch?v=w95murBkYmU\" rel=\"nofollow\">\u6269\u5c55\u4f60\u7684\u7528\u6237\u6570\u5230\u7b2c\u4e00\u4e2a\u5343\u4e07<\/a><\/li>\n<li><a href=\"https:\/\/www.sitepoint.com\/sql-vs-nosql-differences\/\" rel=\"nofollow\">SQL \u548c NoSQL \u7684\u4e0d\u540c<\/a><\/li>\n<\/ul>\n<h2 dir=\"auto\"><a id=\"user-content-\u7f13\u5b58\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E7%BC%93%E5%AD%98\" aria-hidden=\"true\"><\/a>\u7f13\u5b58<\/h2>\n<p dir=\"auto\" align=\"center\"><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/images\/Q6z24La.png\" target=\"_blank\" rel=\"noopener noreferrer\"><img decoding=\"async\" src=\"https:\/\/github.com\/donnemartin\/system-design-primer\/raw\/master\/images\/Q6z24La.png\" \/><\/a><br \/>\n<strong><a href=\"http:\/\/horicky.blogspot.com\/2010\/10\/scalable-system-design-patterns.html\" rel=\"nofollow\">\u8d44\u6599\u6765\u6e90\uff1a\u53ef\u6269\u5c55\u7684\u7cfb\u7edf\u8bbe\u8ba1\u6a21\u5f0f<\/a><\/strong><\/p>\n<p dir=\"auto\">\u7f13\u5b58\u53ef\u4ee5\u63d0\u9ad8\u9875\u9762\u52a0\u8f7d\u901f\u5ea6\uff0c\u5e76\u53ef\u4ee5\u51cf\u5c11\u670d\u52a1\u5668\u548c\u6570\u636e\u5e93\u7684\u8d1f\u8f7d\u3002\u5728\u8fd9\u4e2a\u6a21\u578b\u4e2d\uff0c\u5206\u53d1\u5668\u5148\u67e5\u770b\u8bf7\u6c42\u4e4b\u524d\u662f\u5426\u88ab\u54cd\u5e94\u8fc7\uff0c\u5982\u679c\u6709\u5219\u5c06\u4e4b\u524d\u7684\u7ed3\u679c\u76f4\u63a5\u8fd4\u56de\uff0c\u6765\u7701\u6389\u771f\u6b63\u7684\u5904\u7406\u3002<\/p>\n<p dir=\"auto\">\u6570\u636e\u5e93\u5206\u7247\u5747\u5300\u5206\u5e03\u7684\u8bfb\u53d6\u662f\u6700\u597d\u7684\u3002\u4f46\u662f\u70ed\u95e8\u6570\u636e\u4f1a\u8ba9\u8bfb\u53d6\u5206\u5e03\u4e0d\u5747\u5300\uff0c\u8fd9\u6837\u5c31\u4f1a\u9020\u6210\u74f6\u9888\uff0c\u5982\u679c\u5728\u6570\u636e\u5e93\u524d\u52a0\u4e2a\u7f13\u5b58\uff0c\u5c31\u4f1a\u62b9\u5e73\u4e0d\u5747\u5300\u7684\u8d1f\u8f7d\u548c\u7a81\u53d1\u6d41\u91cf\u5bf9\u6570\u636e\u5e93\u7684\u5f71\u54cd\u3002<\/p>\n<h3 dir=\"auto\"><a id=\"user-content-\u5ba2\u6237\u7aef\u7f13\u5b58\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E5%AE%A2%E6%88%B7%E7%AB%AF%E7%BC%93%E5%AD%98\" aria-hidden=\"true\"><\/a>\u5ba2\u6237\u7aef\u7f13\u5b58<\/h3>\n<p dir=\"auto\">\u7f13\u5b58\u53ef\u4ee5\u4f4d\u4e8e\u5ba2\u6237\u7aef\uff08\u64cd\u4f5c\u7cfb\u7edf\u6216\u8005\u6d4f\u89c8\u5668\uff09\uff0c<a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E5%8F%8D%E5%90%91%E4%BB%A3%E7%90%86web-%E6%9C%8D%E5%8A%A1%E5%99%A8\">\u670d\u52a1\u7aef<\/a>\u6216\u8005\u4e0d\u540c\u7684\u7f13\u5b58\u5c42\u3002<\/p>\n<h3 dir=\"auto\"><a id=\"user-content-cdn-\u7f13\u5b58\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#cdn-%E7%BC%93%E5%AD%98\" aria-hidden=\"true\"><\/a>CDN \u7f13\u5b58<\/h3>\n<p dir=\"auto\"><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E5%86%85%E5%AE%B9%E5%88%86%E5%8F%91%E7%BD%91%E7%BB%9Ccdn\">CDN<\/a>\u00a0\u4e5f\u88ab\u89c6\u4e3a\u4e00\u79cd\u7f13\u5b58\u3002<\/p>\n<h3 dir=\"auto\"><a id=\"user-content-web-\u670d\u52a1\u5668\u7f13\u5b58\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#web-%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%BC%93%E5%AD%98\" aria-hidden=\"true\"><\/a>Web \u670d\u52a1\u5668\u7f13\u5b58<\/h3>\n<p dir=\"auto\"><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E5%8F%8D%E5%90%91%E4%BB%A3%E7%90%86web-%E6%9C%8D%E5%8A%A1%E5%99%A8\">\u53cd\u5411\u4ee3\u7406<\/a>\u548c\u7f13\u5b58\uff08\u6bd4\u5982\u00a0<a href=\"https:\/\/www.varnish-cache.org\/\" rel=\"nofollow\">Varnish<\/a>\uff09\u53ef\u4ee5\u76f4\u63a5\u63d0\u4f9b\u9759\u6001\u548c\u52a8\u6001\u5185\u5bb9\u3002Web \u670d\u52a1\u5668\u540c\u6837\u4e5f\u53ef\u4ee5\u7f13\u5b58\u8bf7\u6c42\uff0c\u8fd4\u56de\u76f8\u5e94\u7ed3\u679c\u800c\u4e0d\u5fc5\u8fde\u63a5\u5e94\u7528\u670d\u52a1\u5668\u3002<\/p>\n<h3 dir=\"auto\"><a id=\"user-content-\u6570\u636e\u5e93\u7f13\u5b58\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E6%95%B0%E6%8D%AE%E5%BA%93%E7%BC%93%E5%AD%98\" aria-hidden=\"true\"><\/a>\u6570\u636e\u5e93\u7f13\u5b58<\/h3>\n<p dir=\"auto\">\u6570\u636e\u5e93\u7684\u9ed8\u8ba4\u914d\u7f6e\u4e2d\u901a\u5e38\u5305\u542b\u7f13\u5b58\u7ea7\u522b\uff0c\u9488\u5bf9\u4e00\u822c\u7528\u4f8b\u8fdb\u884c\u4e86\u4f18\u5316\u3002\u8c03\u6574\u914d\u7f6e\uff0c\u5728\u4e0d\u540c\u60c5\u51b5\u4e0b\u4f7f\u7528\u4e0d\u540c\u7684\u6a21\u5f0f\u53ef\u4ee5\u8fdb\u4e00\u6b65\u63d0\u9ad8\u6027\u80fd\u3002<\/p>\n<h3 dir=\"auto\"><a id=\"user-content-\u5e94\u7528\u7f13\u5b58\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E5%BA%94%E7%94%A8%E7%BC%93%E5%AD%98\" aria-hidden=\"true\"><\/a>\u5e94\u7528\u7f13\u5b58<\/h3>\n<p dir=\"auto\">\u57fa\u4e8e\u5185\u5b58\u7684\u7f13\u5b58\u6bd4\u5982 Memcached \u548c Redis \u662f\u5e94\u7528\u7a0b\u5e8f\u548c\u6570\u636e\u5b58\u50a8\u4e4b\u95f4\u7684\u4e00\u79cd\u952e\u503c\u5b58\u50a8\u3002\u7531\u4e8e\u6570\u636e\u4fdd\u5b58\u5728 RAM \u4e2d\uff0c\u5b83\u6bd4\u5b58\u50a8\u5728\u78c1\u76d8\u4e0a\u7684\u5178\u578b\u6570\u636e\u5e93\u8981\u5feb\u591a\u4e86\u3002RAM \u6bd4\u78c1\u76d8\u9650\u5236\u66f4\u591a\uff0c\u6240\u4ee5\u4f8b\u5982\u00a0<a href=\"https:\/\/en.wikipedia.org\/wiki\/Cache_algorithms#Least_Recently_Used\" rel=\"nofollow\">least recently used (LRU)<\/a>\u00a0\u7684<a href=\"https:\/\/en.wikipedia.org\/wiki\/Cache_algorithms\" rel=\"nofollow\">\u7f13\u5b58\u65e0\u6548\u7b97\u6cd5<\/a>\u53ef\u4ee5\u5c06\u300c\u70ed\u95e8\u6570\u636e\u300d\u653e\u5728 RAM \u4e2d\uff0c\u800c\u5bf9\u4e00\u4e9b\u6bd4\u8f83\u300c\u51b7\u95e8\u300d\u7684\u6570\u636e\u4e0d\u505a\u5904\u7406\u3002<\/p>\n<p dir=\"auto\">Redis \u6709\u4e0b\u5217\u9644\u52a0\u529f\u80fd\uff1a<\/p>\n<ul dir=\"auto\">\n<li>\u6301\u4e45\u6027\u9009\u9879<\/li>\n<li>\u5185\u7f6e\u6570\u636e\u7ed3\u6784\u6bd4\u5982\u6709\u5e8f\u96c6\u5408\u548c\u5217\u8868<\/li>\n<\/ul>\n<p dir=\"auto\">\u6709\u591a\u4e2a\u7f13\u5b58\u7ea7\u522b\uff0c\u5206\u4e3a\u4e24\u5927\u7c7b\uff1a<strong>\u6570\u636e\u5e93\u67e5\u8be2<\/strong>\u548c<strong>\u5bf9\u8c61<\/strong>\uff1a<\/p>\n<ul dir=\"auto\">\n<li>\u884c\u7ea7\u522b<\/li>\n<li>\u67e5\u8be2\u7ea7\u522b<\/li>\n<li>\u5b8c\u6574\u7684\u53ef\u5e8f\u5217\u5316\u5bf9\u8c61<\/li>\n<li>\u5b8c\u5168\u6e32\u67d3\u7684 HTML<\/li>\n<\/ul>\n<p dir=\"auto\">\u4e00\u822c\u6765\u8bf4\uff0c\u4f60\u5e94\u8be5\u5c3d\u91cf\u907f\u514d\u57fa\u4e8e\u6587\u4ef6\u7684\u7f13\u5b58\uff0c\u56e0\u4e3a\u8fd9\u4f7f\u5f97\u590d\u5236\u548c\u81ea\u52a8\u7f29\u653e\u5f88\u56f0\u96be\u3002<\/p>\n<h3 dir=\"auto\"><a id=\"user-content-\u6570\u636e\u5e93\u67e5\u8be2\u7ea7\u522b\u7684\u7f13\u5b58\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E6%95%B0%E6%8D%AE%E5%BA%93%E6%9F%A5%E8%AF%A2%E7%BA%A7%E5%88%AB%E7%9A%84%E7%BC%93%E5%AD%98\" aria-hidden=\"true\"><\/a>\u6570\u636e\u5e93\u67e5\u8be2\u7ea7\u522b\u7684\u7f13\u5b58<\/h3>\n<p dir=\"auto\">\u5f53\u4f60\u67e5\u8be2\u6570\u636e\u5e93\u7684\u65f6\u5019\uff0c\u5c06\u67e5\u8be2\u8bed\u53e5\u7684\u54c8\u5e0c\u503c\u4e0e\u67e5\u8be2\u7ed3\u679c\u5b58\u50a8\u5230\u7f13\u5b58\u4e2d\u3002\u8fd9\u79cd\u65b9\u6cd5\u4f1a\u9047\u5230\u4ee5\u4e0b\u95ee\u9898\uff1a<\/p>\n<ul dir=\"auto\">\n<li>\u5f88\u96be\u7528\u590d\u6742\u7684\u67e5\u8be2\u5220\u9664\u5df2\u7f13\u5b58\u7ed3\u679c\u3002<\/li>\n<li>\u5982\u679c\u4e00\u6761\u6570\u636e\u6bd4\u5982\u8868\u4e2d\u67d0\u6761\u6570\u636e\u7684\u4e00\u9879\u88ab\u6539\u53d8\uff0c\u5219\u9700\u8981\u5220\u9664\u6240\u6709\u53ef\u80fd\u5305\u542b\u5df2\u66f4\u6539\u9879\u7684\u7f13\u5b58\u7ed3\u679c\u3002<\/li>\n<\/ul>\n<h3 dir=\"auto\"><a id=\"user-content-\u5bf9\u8c61\u7ea7\u522b\u7684\u7f13\u5b58\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E5%AF%B9%E8%B1%A1%E7%BA%A7%E5%88%AB%E7%9A%84%E7%BC%93%E5%AD%98\" aria-hidden=\"true\"><\/a>\u5bf9\u8c61\u7ea7\u522b\u7684\u7f13\u5b58<\/h3>\n<p dir=\"auto\">\u5c06\u60a8\u7684\u6570\u636e\u89c6\u4e3a\u5bf9\u8c61\uff0c\u5c31\u50cf\u5bf9\u5f85\u4f60\u7684\u5e94\u7528\u4ee3\u7801\u4e00\u6837\u3002\u8ba9\u5e94\u7528\u7a0b\u5e8f\u5c06\u6570\u636e\u4ece\u6570\u636e\u5e93\u4e2d\u7ec4\u5408\u5230\u7c7b\u5b9e\u4f8b\u6216\u6570\u636e\u7ed3\u6784\u4e2d\uff1a<\/p>\n<ul dir=\"auto\">\n<li>\u5982\u679c\u5bf9\u8c61\u7684\u57fa\u7840\u6570\u636e\u5df2\u7ecf\u66f4\u6539\u4e86\uff0c\u90a3\u4e48\u4ece\u7f13\u5b58\u4e2d\u5220\u6389\u8fd9\u4e2a\u5bf9\u8c61\u3002<\/li>\n<li>\u5141\u8bb8\u5f02\u6b65\u5904\u7406\uff1aworkers \u901a\u8fc7\u4f7f\u7528\u6700\u65b0\u7684\u7f13\u5b58\u5bf9\u8c61\u6765\u7ec4\u88c5\u5bf9\u8c61\u3002<\/li>\n<\/ul>\n<p dir=\"auto\">\u5efa\u8bae\u7f13\u5b58\u7684\u5185\u5bb9\uff1a<\/p>\n<ul dir=\"auto\">\n<li>\u7528\u6237\u4f1a\u8bdd<\/li>\n<li>\u5b8c\u5168\u6e32\u67d3\u7684 Web \u9875\u9762<\/li>\n<li>\u6d3b\u52a8\u6d41<\/li>\n<li>\u7528\u6237\u56fe\u6570\u636e<\/li>\n<\/ul>\n<h3 dir=\"auto\"><a id=\"user-content-\u4f55\u65f6\u66f4\u65b0\u7f13\u5b58\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E4%BD%95%E6%97%B6%E6%9B%B4%E6%96%B0%E7%BC%93%E5%AD%98\" aria-hidden=\"true\"><\/a>\u4f55\u65f6\u66f4\u65b0\u7f13\u5b58<\/h3>\n<p dir=\"auto\">\u7531\u4e8e\u4f60\u53ea\u80fd\u5728\u7f13\u5b58\u4e2d\u5b58\u50a8\u6709\u9650\u7684\u6570\u636e\uff0c\u6240\u4ee5\u4f60\u9700\u8981\u9009\u62e9\u4e00\u4e2a\u9002\u7528\u4e8e\u4f60\u7528\u4f8b\u7684\u7f13\u5b58\u66f4\u65b0\u7b56\u7565\u3002<\/p>\n<h4 dir=\"auto\"><a id=\"user-content-\u7f13\u5b58\u6a21\u5f0f\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E7%BC%93%E5%AD%98%E6%A8%A1%E5%BC%8F\" aria-hidden=\"true\"><\/a>\u7f13\u5b58\u6a21\u5f0f<\/h4>\n<p dir=\"auto\" align=\"center\"><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/images\/ONjORqk.png\" target=\"_blank\" rel=\"noopener noreferrer\"><img decoding=\"async\" src=\"https:\/\/github.com\/donnemartin\/system-design-primer\/raw\/master\/images\/ONjORqk.png\" \/><\/a><br \/>\n<strong><a href=\"http:\/\/www.slideshare.net\/tmatyashovsky\/from-cache-to-in-memory-data-grid-introduction-to-hazelcast\" rel=\"nofollow\">\u8d44\u6599\u6765\u6e90\uff1a\u4ece\u7f13\u5b58\u5230\u5185\u5b58\u6570\u636e\u7f51\u683c<\/a><\/strong><\/p>\n<p dir=\"auto\">\u5e94\u7528\u4ece\u5b58\u50a8\u5668\u8bfb\u5199\u3002\u7f13\u5b58\u4e0d\u548c\u5b58\u50a8\u5668\u76f4\u63a5\u4ea4\u4e92\uff0c\u5e94\u7528\u6267\u884c\u4ee5\u4e0b\u64cd\u4f5c\uff1a<\/p>\n<ul dir=\"auto\">\n<li>\u5728\u7f13\u5b58\u4e2d\u67e5\u627e\u8bb0\u5f55\uff0c\u5982\u679c\u6240\u9700\u6570\u636e\u4e0d\u5728\u7f13\u5b58\u4e2d<\/li>\n<li>\u4ece\u6570\u636e\u5e93\u4e2d\u52a0\u8f7d\u6240\u9700\u5185\u5bb9<\/li>\n<li>\u5c06\u67e5\u627e\u5230\u7684\u7ed3\u679c\u5b58\u50a8\u5230\u7f13\u5b58\u4e2d<\/li>\n<li>\u8fd4\u56de\u6240\u9700\u5185\u5bb9<\/li>\n<\/ul>\n<div class=\"highlight highlight-source-python position-relative overflow-auto\">\n<pre><span class=\"pl-k\">def<\/span> <span class=\"pl-en\">get_user<\/span>(<span class=\"pl-s1\">self<\/span>, <span class=\"pl-s1\">user_id<\/span>):\r\n    <span class=\"pl-s1\">user<\/span> <span class=\"pl-c1\">=<\/span> <span class=\"pl-s1\">cache<\/span>.<span class=\"pl-en\">get<\/span>(<span class=\"pl-s\">\"user.{0}\"<\/span>, <span class=\"pl-s1\">user_id<\/span>)\r\n    <span class=\"pl-k\">if<\/span> <span class=\"pl-s1\">user<\/span> <span class=\"pl-c1\">is<\/span> <span class=\"pl-c1\">None<\/span>:\r\n        <span class=\"pl-s1\">user<\/span> <span class=\"pl-c1\">=<\/span> <span class=\"pl-s1\">db<\/span>.<span class=\"pl-en\">query<\/span>(<span class=\"pl-s\">\"SELECT * FROM users WHERE user_id = {0}\"<\/span>, <span class=\"pl-s1\">user_id<\/span>)\r\n        <span class=\"pl-k\">if<\/span> <span class=\"pl-s1\">user<\/span> <span class=\"pl-c1\">is<\/span> <span class=\"pl-c1\">not<\/span> <span class=\"pl-c1\">None<\/span>:\r\n            <span class=\"pl-s1\">key<\/span> <span class=\"pl-c1\">=<\/span> <span class=\"pl-s\">\"user.{0}\"<\/span>.<span class=\"pl-en\">format<\/span>(<span class=\"pl-s1\">user_id<\/span>)\r\n            <span class=\"pl-s1\">cache<\/span>.<span class=\"pl-en\">set<\/span>(<span class=\"pl-s1\">key<\/span>, <span class=\"pl-s1\">json<\/span>.<span class=\"pl-en\">dumps<\/span>(<span class=\"pl-s1\">user<\/span>))\r\n    <span class=\"pl-k\">return<\/span> <span class=\"pl-s1\">user<\/span><\/pre>\n<\/div>\n<p dir=\"auto\"><a href=\"https:\/\/memcached.org\/\" rel=\"nofollow\">Memcached<\/a>\u00a0\u901a\u5e38\u7528\u8fd9\u79cd\u65b9\u5f0f\u4f7f\u7528\u3002<\/p>\n<p dir=\"auto\">\u6dfb\u52a0\u5230\u7f13\u5b58\u4e2d\u7684\u6570\u636e\u8bfb\u53d6\u901f\u5ea6\u5f88\u5feb\u3002\u7f13\u5b58\u6a21\u5f0f\u4e5f\u79f0\u4e3a\u5ef6\u8fdf\u52a0\u8f7d\u3002\u53ea\u7f13\u5b58\u6240\u8bf7\u6c42\u7684\u6570\u636e\uff0c\u8fd9\u907f\u514d\u4e86\u6ca1\u6709\u88ab\u8bf7\u6c42\u7684\u6570\u636e\u5360\u6ee1\u4e86\u7f13\u5b58\u7a7a\u95f4\u3002<\/p>\n<h5 dir=\"auto\"><a id=\"user-content-\u7f13\u5b58\u7684\u7f3a\u70b9\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E7%BC%93%E5%AD%98%E7%9A%84%E7%BC%BA%E7%82%B9\" aria-hidden=\"true\"><\/a>\u7f13\u5b58\u7684\u7f3a\u70b9\uff1a<\/h5>\n<ul dir=\"auto\">\n<li>\u8bf7\u6c42\u7684\u6570\u636e\u5982\u679c\u4e0d\u5728\u7f13\u5b58\u4e2d\u5c31\u9700\u8981\u7ecf\u8fc7\u4e09\u4e2a\u6b65\u9aa4\u6765\u83b7\u53d6\u6570\u636e\uff0c\u8fd9\u4f1a\u5bfc\u81f4\u660e\u663e\u7684\u5ef6\u8fdf\u3002<\/li>\n<li>\u5982\u679c\u6570\u636e\u5e93\u4e2d\u7684\u6570\u636e\u66f4\u65b0\u4e86\u4f1a\u5bfc\u81f4\u7f13\u5b58\u4e2d\u7684\u6570\u636e\u8fc7\u65f6\u3002\u8fd9\u4e2a\u95ee\u9898\u9700\u8981\u901a\u8fc7\u8bbe\u7f6e\ufffd TTL \u5f3a\u5236\u66f4\u65b0\u7f13\u5b58\u6216\u8005\u76f4\u5199\u6a21\u5f0f\u6765\u7f13\u89e3\u8fd9\u79cd\u60c5\u51b5\u3002<\/li>\n<li>\u5f53\u4e00\u4e2a\u8282\u70b9\u51fa\u73b0\u6545\u969c\u7684\u65f6\u5019\uff0c\u5b83\u5c06\u4f1a\u88ab\u4e00\u4e2a\u65b0\u7684\u8282\u70b9\u66ff\u4ee3\uff0c\u8fd9\u589e\u52a0\u4e86\u5ef6\u8fdf\u7684\u65f6\u95f4\u3002<\/li>\n<\/ul>\n<h4 dir=\"auto\"><a id=\"user-content-\u76f4\u5199\u6a21\u5f0f\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E7%9B%B4%E5%86%99%E6%A8%A1%E5%BC%8F\" aria-hidden=\"true\"><\/a>\u76f4\u5199\u6a21\u5f0f<\/h4>\n<p dir=\"auto\" align=\"center\"><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/images\/0vBc0hN.png\" target=\"_blank\" rel=\"noopener noreferrer\"><img decoding=\"async\" src=\"https:\/\/github.com\/donnemartin\/system-design-primer\/raw\/master\/images\/0vBc0hN.png\" \/><\/a><br \/>\n<strong><a href=\"http:\/\/www.slideshare.net\/jboner\/scalability-availability-stability-patterns\/\" rel=\"nofollow\">\u8d44\u6599\u6765\u6e90\uff1a\u53ef\u6269\u5c55\u6027\u3001\u53ef\u7528\u6027\u3001\u7a33\u5b9a\u6027\u3001\u6a21\u5f0f<\/a><\/strong><\/p>\n<p dir=\"auto\">\u5e94\u7528\u4f7f\u7528\u7f13\u5b58\u4f5c\u4e3a\u4e3b\u8981\u7684\u6570\u636e\u5b58\u50a8\uff0c\u5c06\u6570\u636e\u8bfb\u5199\u5230\u7f13\u5b58\u4e2d\uff0c\u800c\u7f13\u5b58\u8d1f\u8d23\u4ece\u6570\u636e\u5e93\u4e2d\u8bfb\u5199\u6570\u636e\u3002<\/p>\n<ul dir=\"auto\">\n<li>\u5e94\u7528\u5411\u7f13\u5b58\u4e2d\u6dfb\u52a0\/\u66f4\u65b0\u6570\u636e<\/li>\n<li>\u7f13\u5b58\u540c\u6b65\u5730\u5199\u5165\u6570\u636e\u5b58\u50a8<\/li>\n<li>\u8fd4\u56de\u6240\u9700\u5185\u5bb9<\/li>\n<\/ul>\n<p dir=\"auto\">\u5e94\u7528\u4ee3\u7801\uff1a<\/p>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\">\n<pre><code>set_user(12345, {\"foo\":\"bar\"})\r\n<\/code><\/pre>\n<\/div>\n<p dir=\"auto\">\u7f13\u5b58\u4ee3\u7801\uff1a<\/p>\n<div class=\"highlight highlight-source-python position-relative overflow-auto\">\n<pre><span class=\"pl-k\">def<\/span> <span class=\"pl-en\">set_user<\/span>(<span class=\"pl-s1\">user_id<\/span>, <span class=\"pl-s1\">values<\/span>):\r\n    <span class=\"pl-s1\">user<\/span> <span class=\"pl-c1\">=<\/span> <span class=\"pl-s1\">db<\/span>.<span class=\"pl-en\">query<\/span>(<span class=\"pl-s\">\"UPDATE Users WHERE id = {0}\"<\/span>, <span class=\"pl-s1\">user_id<\/span>, <span class=\"pl-s1\">values<\/span>)\r\n    <span class=\"pl-s1\">cache<\/span>.<span class=\"pl-en\">set<\/span>(<span class=\"pl-s1\">user_id<\/span>, <span class=\"pl-s1\">user<\/span>)<\/pre>\n<\/div>\n<p dir=\"auto\">\u7531\u4e8e\u5b58\u5199\u64cd\u4f5c\u6240\u4ee5\u76f4\u5199\u6a21\u5f0f\u6574\u4f53\u662f\u4e00\u79cd\u5f88\u6162\u7684\u64cd\u4f5c\uff0c\u4f46\u662f\u8bfb\u53d6\u521a\u5199\u5165\u7684\u6570\u636e\u5f88\u5feb\u3002\u76f8\u6bd4\u8bfb\u53d6\u6570\u636e\uff0c\u7528\u6237\u901a\u5e38\u6bd4\u8f83\u80fd\u63a5\u53d7\u66f4\u65b0\u6570\u636e\u65f6\u901f\u5ea6\u8f83\u6162\u3002\u7f13\u5b58\u4e2d\u7684\u6570\u636e\u4e0d\u4f1a\u8fc7\u65f6\u3002<\/p>\n<h5 dir=\"auto\"><a id=\"user-content-\u76f4\u5199\u6a21\u5f0f\u7684\u7f3a\u70b9\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E7%9B%B4%E5%86%99%E6%A8%A1%E5%BC%8F%E7%9A%84%E7%BC%BA%E7%82%B9\" aria-hidden=\"true\"><\/a>\u76f4\u5199\u6a21\u5f0f\u7684\u7f3a\u70b9\uff1a<\/h5>\n<ul dir=\"auto\">\n<li>\u7531\u4e8e\u6545\u969c\u6216\u8005\u7f29\u653e\u800c\u521b\u5efa\u7684\u65b0\u7684\u8282\u70b9\uff0c\u65b0\u7684\u8282\u70b9\u4e0d\u4f1a\u7f13\u5b58\uff0c\u76f4\u5230\u6570\u636e\u5e93\u66f4\u65b0\u4e3a\u6b62\u3002\u7f13\u5b58\u5e94\u7528\u76f4\u5199\u6a21\u5f0f\u53ef\u4ee5\u7f13\u89e3\u8fd9\u4e2a\u95ee\u9898\u3002<\/li>\n<li>\u5199\u5165\u7684\u5927\u591a\u6570\u6570\u636e\u53ef\u80fd\u6c38\u8fdc\u90fd\u4e0d\u4f1a\u88ab\u8bfb\u53d6\uff0c\u7528 TTL \u53ef\u4ee5\u6700\u5c0f\u5316\u8fd9\u79cd\u60c5\u51b5\u7684\u51fa\u73b0\u3002<\/li>\n<\/ul>\n<h4 dir=\"auto\"><a id=\"user-content-\u56de\u5199\u6a21\u5f0f\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E5%9B%9E%E5%86%99%E6%A8%A1%E5%BC%8F\" aria-hidden=\"true\"><\/a>\u56de\u5199\u6a21\u5f0f<\/h4>\n<p dir=\"auto\" align=\"center\"><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/images\/rgSrvjG.png\" target=\"_blank\" rel=\"noopener noreferrer\"><img decoding=\"async\" src=\"https:\/\/github.com\/donnemartin\/system-design-primer\/raw\/master\/images\/rgSrvjG.png\" \/><\/a><br \/>\n<strong><a href=\"http:\/\/www.slideshare.net\/jboner\/scalability-availability-stability-patterns\/\" rel=\"nofollow\">\u8d44\u6599\u6765\u6e90\uff1a\u53ef\u6269\u5c55\u6027\u3001\u53ef\u7528\u6027\u3001\u7a33\u5b9a\u6027\u3001\u6a21\u5f0f<\/a><\/strong><\/p>\n<p dir=\"auto\">\u5728\u56de\u5199\u6a21\u5f0f\u4e2d\uff0c\u5e94\u7528\u6267\u884c\u4ee5\u4e0b\u64cd\u4f5c\uff1a<\/p>\n<ul dir=\"auto\">\n<li>\u5728\u7f13\u5b58\u4e2d\u589e\u52a0\u6216\u8005\u66f4\u65b0\u6761\u76ee<\/li>\n<li>\u5f02\u6b65\u5199\u5165\u6570\u636e\uff0c\u63d0\u9ad8\u5199\u5165\u6027\u80fd\u3002<\/li>\n<\/ul>\n<h5 dir=\"auto\"><a id=\"user-content-\u56de\u5199\u6a21\u5f0f\u7684\u7f3a\u70b9\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E5%9B%9E%E5%86%99%E6%A8%A1%E5%BC%8F%E7%9A%84%E7%BC%BA%E7%82%B9\" aria-hidden=\"true\"><\/a>\u56de\u5199\u6a21\u5f0f\u7684\u7f3a\u70b9\uff1a<\/h5>\n<ul dir=\"auto\">\n<li>\u7f13\u5b58\u53ef\u80fd\u5728\u5176\u5185\u5bb9\u6210\u529f\u5b58\u50a8\u4e4b\u524d\u4e22\u5931\u6570\u636e\u3002<\/li>\n<li>\u6267\u884c\u76f4\u5199\u6a21\u5f0f\u6bd4\u7f13\u5b58\u6216\u8005\u56de\u5199\u6a21\u5f0f\u66f4\u590d\u6742\u3002<\/li>\n<\/ul>\n<h4 dir=\"auto\"><a id=\"user-content-\u5237\u65b0\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E5%88%B7%E6%96%B0\" aria-hidden=\"true\"><\/a>\u5237\u65b0<\/h4>\n<p dir=\"auto\" align=\"center\"><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/images\/kxtjqgE.png\" target=\"_blank\" rel=\"noopener noreferrer\"><img decoding=\"async\" src=\"https:\/\/github.com\/donnemartin\/system-design-primer\/raw\/master\/images\/kxtjqgE.png\" \/><\/a><br \/>\n<strong><a href=\"http:\/\/www.slideshare.net\/tmatyashovsky\/from-cache-to-in-memory-data-grid-introduction-to-hazelcast\" rel=\"nofollow\">\u8d44\u6599\u6765\u6e90\uff1a\u4ece\u7f13\u5b58\u5230\u5185\u5b58\u6570\u636e\u7f51\u683c<\/a><\/strong><\/p>\n<p dir=\"auto\">\u4f60\u53ef\u4ee5\u5c06\u7f13\u5b58\u914d\u7f6e\u6210\u5728\u5230\u671f\u4e4b\u524d\u81ea\u52a8\u5237\u65b0\u6700\u8fd1\u8bbf\u95ee\u8fc7\u7684\u5185\u5bb9\u3002<\/p>\n<p dir=\"auto\">\u5982\u679c\u7f13\u5b58\u53ef\u4ee5\u51c6\u786e\u9884\u6d4b\u5c06\u6765\u53ef\u80fd\u8bf7\u6c42\u54ea\u4e9b\u6570\u636e\uff0c\u90a3\u4e48\u5237\u65b0\u53ef\u80fd\u4f1a\u5bfc\u81f4\u5ef6\u8fdf\u4e0e\u8bfb\u53d6\u65f6\u95f4\u7684\u964d\u4f4e\u3002<\/p>\n<h5 dir=\"auto\"><a id=\"user-content-\u5237\u65b0\u7684\u7f3a\u70b9\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E5%88%B7%E6%96%B0%E7%9A%84%E7%BC%BA%E7%82%B9\" aria-hidden=\"true\"><\/a>\u5237\u65b0\u7684\u7f3a\u70b9\uff1a<\/h5>\n<ul dir=\"auto\">\n<li>\u4e0d\u80fd\u51c6\u786e\u9884\u6d4b\u5230\u672a\u6765\u9700\u8981\u7528\u5230\u7684\u6570\u636e\u53ef\u80fd\u4f1a\u5bfc\u81f4\u6027\u80fd\u4e0d\u5982\u4e0d\u4f7f\u7528\u5237\u65b0\u3002<\/li>\n<\/ul>\n<h3 dir=\"auto\"><a id=\"user-content-\u7f13\u5b58\u7684\u7f3a\u70b9-1\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E7%BC%93%E5%AD%98%E7%9A%84%E7%BC%BA%E7%82%B9-1\" aria-hidden=\"true\"><\/a>\u7f13\u5b58\u7684\u7f3a\u70b9\uff1a<\/h3>\n<ul dir=\"auto\">\n<li>\u9700\u8981\u4fdd\u6301\u7f13\u5b58\u548c\u771f\u5b9e\u6570\u636e\u6e90\u4e4b\u95f4\u7684\u4e00\u81f4\u6027\uff0c\u6bd4\u5982\u6570\u636e\u5e93\u6839\u636e<a href=\"https:\/\/en.wikipedia.org\/wiki\/Cache_algorithms\" rel=\"nofollow\">\u7f13\u5b58\u65e0\u6548<\/a>\u3002<\/li>\n<li>\u9700\u8981\u6539\u53d8\u5e94\u7528\u7a0b\u5e8f\u6bd4\u5982\u589e\u52a0 Redis \u6216\u8005 memcached\u3002<\/li>\n<li>\u65e0\u6548\u7f13\u5b58\u662f\u4e2a\u96be\u9898\uff0c\u4ec0\u4e48\u65f6\u5019\u66f4\u65b0\u7f13\u5b58\u662f\u4e0e\u4e4b\u76f8\u5173\u7684\u590d\u6742\u95ee\u9898\u3002<\/li>\n<\/ul>\n<h3 dir=\"auto\"><a id=\"user-content-\u76f8\u5173\u8d44\u6e90\u548c\u5ef6\u4f38\u9605\u8bfb-1\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E7%9B%B8%E5%85%B3%E8%B5%84%E6%BA%90%E5%92%8C%E5%BB%B6%E4%BC%B8%E9%98%85%E8%AF%BB-1\" aria-hidden=\"true\"><\/a>\u76f8\u5173\u8d44\u6e90\u548c\u5ef6\u4f38\u9605\u8bfb<\/h3>\n<ul dir=\"auto\">\n<li><a href=\"http:\/\/www.slideshare.net\/tmatyashovsky\/from-cache-to-in-memory-data-grid-introduction-to-hazelcast\" rel=\"nofollow\">\u4ece\u7f13\u5b58\u5230\u5185\u5b58\u6570\u636e<\/a><\/li>\n<li><a href=\"http:\/\/horicky.blogspot.com\/2010\/10\/scalable-system-design-patterns.html\" rel=\"nofollow\">\u53ef\u6269\u5c55\u7cfb\u7edf\u8bbe\u8ba1\u6a21\u5f0f<\/a><\/li>\n<li><a href=\"http:\/\/lethain.com\/introduction-to-architecting-systems-for-scale\/\" rel=\"nofollow\">\u53ef\u7f29\u653e\u7cfb\u7edf\u6784\u67b6\u4ecb\u7ecd<\/a><\/li>\n<li><a href=\"http:\/\/www.slideshare.net\/jboner\/scalability-availability-stability-patterns\/\" rel=\"nofollow\">\u53ef\u6269\u5c55\u6027\uff0c\u53ef\u7528\u6027\uff0c\u7a33\u5b9a\u6027\u548c\u6a21\u5f0f<\/a><\/li>\n<li><a href=\"http:\/\/www.lecloud.net\/post\/9246290032\/scalability-for-dummies-part-3-cache\" rel=\"nofollow\">\u53ef\u6269\u5c55\u6027<\/a><\/li>\n<li><a href=\"http:\/\/docs.aws.amazon.com\/AmazonElastiCache\/latest\/UserGuide\/Strategies.html\" rel=\"nofollow\">AWS ElastiCache \u7b56\u7565<\/a><\/li>\n<li><a href=\"https:\/\/en.wikipedia.org\/wiki\/Cache_(computing)\" rel=\"nofollow\">\u7ef4\u57fa\u767e\u79d1<\/a><\/li>\n<\/ul>\n<h2 dir=\"auto\"><a id=\"user-content-\u5f02\u6b65\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E5%BC%82%E6%AD%A5\" aria-hidden=\"true\"><\/a>\u5f02\u6b65<\/h2>\n<p dir=\"auto\" align=\"center\"><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/images\/54GYsSx.png\" target=\"_blank\" rel=\"noopener noreferrer\"><img decoding=\"async\" src=\"https:\/\/github.com\/donnemartin\/system-design-primer\/raw\/master\/images\/54GYsSx.png\" \/><\/a><br \/>\n<strong><a href=\"http:\/\/lethain.com\/introduction-to-architecting-systems-for-scale\/#platform_layer\" rel=\"nofollow\">\u8d44\u6599\u6765\u6e90\uff1a\u53ef\u7f29\u653e\u7cfb\u7edf\u6784\u67b6\u4ecb\u7ecd<\/a><\/strong><\/p>\n<p dir=\"auto\">\u5f02\u6b65\u5de5\u4f5c\u6d41\u6709\u52a9\u4e8e\u51cf\u5c11\u90a3\u4e9b\u539f\u672c\u987a\u5e8f\u6267\u884c\u7684\u8bf7\u6c42\u65f6\u95f4\u3002\u5b83\u4eec\u53ef\u4ee5\u901a\u8fc7\u63d0\u524d\u8fdb\u884c\u4e00\u4e9b\u8017\u65f6\u7684\u5de5\u4f5c\u6765\u5e2e\u52a9\u51cf\u5c11\u8bf7\u6c42\u65f6\u95f4\uff0c\u6bd4\u5982\u5b9a\u671f\u6c47\u603b\u6570\u636e\u3002<\/p>\n<h3 dir=\"auto\"><a id=\"user-content-\u6d88\u606f\u961f\u5217\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E6%B6%88%E6%81%AF%E9%98%9F%E5%88%97\" aria-hidden=\"true\"><\/a>\u6d88\u606f\u961f\u5217<\/h3>\n<p dir=\"auto\">\u6d88\u606f\u961f\u5217\u63a5\u6536\uff0c\u4fdd\u7559\u548c\u4f20\u9012\u6d88\u606f\u3002\u5982\u679c\u6309\u987a\u5e8f\u6267\u884c\u64cd\u4f5c\u592a\u6162\u7684\u8bdd\uff0c\u4f60\u53ef\u4ee5\u4f7f\u7528\u6709\u4ee5\u4e0b\u5de5\u4f5c\u6d41\u7684\u6d88\u606f\u961f\u5217\uff1a<\/p>\n<ul dir=\"auto\">\n<li>\u5e94\u7528\u7a0b\u5e8f\u5c06\u4f5c\u4e1a\u53d1\u5e03\u5230\u961f\u5217\uff0c\u7136\u540e\u901a\u77e5\u7528\u6237\u4f5c\u4e1a\u72b6\u6001<\/li>\n<li>\u4e00\u4e2a worker \u4ece\u961f\u5217\u4e2d\u53d6\u51fa\u8be5\u4f5c\u4e1a\uff0c\u5bf9\u5176\u8fdb\u884c\u5904\u7406\uff0c\u7136\u540e\u663e\u793a\u8be5\u4f5c\u4e1a\u5b8c\u6210<\/li>\n<\/ul>\n<p dir=\"auto\">\u4e0d\u53bb\u963b\u585e\u7528\u6237\u64cd\u4f5c\uff0c\u4f5c\u4e1a\u5728\u540e\u53f0\u5904\u7406\u3002\u5728\u6b64\u671f\u95f4\uff0c\u5ba2\u6237\u7aef\u53ef\u80fd\u4f1a\u8fdb\u884c\u4e00\u4e9b\u5904\u7406\u4f7f\u5f97\u770b\u4e0a\u53bb\u50cf\u662f\u4efb\u52a1\u5df2\u7ecf\u5b8c\u6210\u4e86\u3002\u4f8b\u5982\uff0c\u5982\u679c\u8981\u53d1\u9001\u4e00\u6761\u63a8\u6587\uff0c\u63a8\u6587\u53ef\u80fd\u4f1a\u9a6c\u4e0a\u51fa\u73b0\u5728\u4f60\u7684\u65f6\u95f4\u7ebf\u4e0a\uff0c\u4f46\u662f\u53ef\u80fd\u9700\u8981\u4e00\u4e9b\u65f6\u95f4\u624d\u80fd\u5c06\u4f60\u7684\u63a8\u6587\u63a8\u9001\u5230\u4f60\u7684\u6240\u6709\u5173\u6ce8\u8005\u90a3\u91cc\u53bb\u3002<\/p>\n<p dir=\"auto\"><strong>Redis<\/strong>\u00a0\u662f\u4e00\u4e2a\u4ee4\u4eba\u6ee1\u610f\u7684\u7b80\u5355\u7684\u6d88\u606f\u4ee3\u7406\uff0c\u4f46\u662f\u6d88\u606f\u6709\u53ef\u80fd\u4f1a\u4e22\u5931\u3002<\/p>\n<p dir=\"auto\"><strong>RabbitMQ<\/strong>\u00a0\u5f88\u53d7\u6b22\u8fce\u4f46\u662f\u8981\u6c42\u4f60\u9002\u5e94\u300cAMQP\u300d\u534f\u8bae\u5e76\u4e14\u7ba1\u7406\u4f60\u81ea\u5df1\u7684\u8282\u70b9\u3002<\/p>\n<p dir=\"auto\"><strong>Amazon SQS<\/strong>\u00a0\u662f\u88ab\u6258\u7ba1\u7684\uff0c\u4f46\u53ef\u80fd\u5177\u6709\u9ad8\u5ef6\u8fdf\uff0c\u5e76\u4e14\u6d88\u606f\u53ef\u80fd\u4f1a\u88ab\u4f20\u9001\u4e24\u6b21\u3002<\/p>\n<h3 dir=\"auto\"><a id=\"user-content-\u4efb\u52a1\u961f\u5217\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E4%BB%BB%E5%8A%A1%E9%98%9F%E5%88%97\" aria-hidden=\"true\"><\/a>\u4efb\u52a1\u961f\u5217<\/h3>\n<p dir=\"auto\">\u4efb\u52a1\u961f\u5217\u63a5\u6536\u4efb\u52a1\u53ca\u5176\u76f8\u5173\u6570\u636e\uff0c\u8fd0\u884c\u5b83\u4eec\uff0c\u7136\u540e\u4f20\u9012\u5176\u7ed3\u679c\u3002 \u5b83\u4eec\u53ef\u4ee5\u652f\u6301\u8c03\u5ea6\uff0c\u5e76\u53ef\u7528\u4e8e\u5728\u540e\u53f0\u8fd0\u884c\u8ba1\u7b97\u5bc6\u96c6\u578b\u4f5c\u4e1a\u3002<\/p>\n<p dir=\"auto\"><strong>Celery<\/strong>\u00a0\u652f\u6301\u8c03\u5ea6\uff0c\u4e3b\u8981\u662f\u7528 Python \u5f00\u53d1\u7684\u3002<\/p>\n<h3 dir=\"auto\"><a id=\"user-content-\u80cc\u538b\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E8%83%8C%E5%8E%8B\" aria-hidden=\"true\"><\/a>\u80cc\u538b<\/h3>\n<p dir=\"auto\">\u5982\u679c\u961f\u5217\u5f00\u59cb\u660e\u663e\u589e\u957f\uff0c\u90a3\u4e48\u961f\u5217\u5927\u5c0f\u53ef\u80fd\u4f1a\u8d85\u8fc7\u5185\u5b58\u5927\u5c0f\uff0c\u5bfc\u81f4\u9ad8\u901f\u7f13\u5b58\u672a\u547d\u4e2d\uff0c\u78c1\u76d8\u8bfb\u53d6\uff0c\u751a\u81f3\u6027\u80fd\u66f4\u6162\u3002<a href=\"http:\/\/mechanical-sympathy.blogspot.com\/2012\/05\/apply-back-pressure-when-overloaded.html\" rel=\"nofollow\">\u80cc\u538b<\/a>\u53ef\u4ee5\u901a\u8fc7\u9650\u5236\u961f\u5217\u5927\u5c0f\u6765\u5e2e\u52a9\u6211\u4eec\uff0c\u4ece\u800c\u4e3a\u961f\u5217\u4e2d\u7684\u4f5c\u4e1a\u4fdd\u6301\u9ad8\u541e\u5410\u7387\u548c\u826f\u597d\u7684\u54cd\u5e94\u65f6\u95f4\u3002\u4e00\u65e6\u961f\u5217\u586b\u6ee1\uff0c\u5ba2\u6237\u7aef\u5c06\u5f97\u5230\u670d\u52a1\u5668\u5fd9\u6216\u8005 HTTP 503 \u72b6\u6001\u7801\uff0c\u4ee5\u4fbf\u7a0d\u540e\u91cd\u8bd5\u3002\u5ba2\u6237\u7aef\u53ef\u4ee5\u5728\u7a0d\u540e\u65f6\u95f4\u91cd\u8bd5\u8be5\u8bf7\u6c42\uff0c\u4e5f\u8bb8\u662f<a href=\"https:\/\/en.wikipedia.org\/wiki\/Exponential_backoff\" rel=\"nofollow\">\u6307\u6570\u9000\u907f<\/a>\u3002<\/p>\n<h3 dir=\"auto\"><a id=\"user-content-\u5f02\u6b65\u7684\u7f3a\u70b9\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E5%BC%82%E6%AD%A5%E7%9A%84%E7%BC%BA%E7%82%B9\" aria-hidden=\"true\"><\/a>\u5f02\u6b65\u7684\u7f3a\u70b9\uff1a<\/h3>\n<ul dir=\"auto\">\n<li>\u7b80\u5355\u7684\u8ba1\u7b97\u548c\u5b9e\u65f6\u5de5\u4f5c\u6d41\u7b49\u7528\u4f8b\u53ef\u80fd\u66f4\u9002\u7528\u4e8e\u540c\u6b65\u64cd\u4f5c\uff0c\u56e0\u4e3a\u5f15\u5165\u961f\u5217\u53ef\u80fd\u4f1a\u589e\u52a0\u5ef6\u8fdf\u548c\u590d\u6742\u6027\u3002<\/li>\n<\/ul>\n<h3 dir=\"auto\"><a id=\"user-content-\u76f8\u5173\u8d44\u6e90\u548c\u5ef6\u4f38\u9605\u8bfb-2\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E7%9B%B8%E5%85%B3%E8%B5%84%E6%BA%90%E5%92%8C%E5%BB%B6%E4%BC%B8%E9%98%85%E8%AF%BB-2\" aria-hidden=\"true\"><\/a>\u76f8\u5173\u8d44\u6e90\u548c\u5ef6\u4f38\u9605\u8bfb<\/h3>\n<ul dir=\"auto\">\n<li><a href=\"https:\/\/www.youtube.com\/watch?v=1KRYH75wgy4\" rel=\"nofollow\">\u8fd9\u662f\u4e00\u4e2a\u6570\u5b57\u6e38\u620f<\/a><\/li>\n<li><a href=\"http:\/\/mechanical-sympathy.blogspot.com\/2012\/05\/apply-back-pressure-when-overloaded.html\" rel=\"nofollow\">\u8d85\u8f7d\u65f6\u5e94\u7528\u80cc\u538b<\/a><\/li>\n<li><a href=\"https:\/\/en.wikipedia.org\/wiki\/Little%27s_law\" rel=\"nofollow\">\u5229\u7279\u5c14\u6cd5\u5219<\/a><\/li>\n<li><a href=\"https:\/\/www.quora.com\/What-is-the-difference-between-a-message-queue-and-a-task-queue-Why-would-a-task-queue-require-a-message-broker-like-RabbitMQ-Redis-Celery-or-IronMQ-to-function\" rel=\"nofollow\">\u6d88\u606f\u961f\u5217\u4e0e\u4efb\u52a1\u961f\u5217\u6709\u4ec0\u4e48\u533a\u522b\uff1f<\/a><\/li>\n<\/ul>\n<h2 dir=\"auto\"><a id=\"user-content-\u901a\u8baf\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E9%80%9A%E8%AE%AF\" aria-hidden=\"true\"><\/a>\u901a\u8baf<\/h2>\n<p dir=\"auto\" align=\"center\"><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/images\/5KeocQs.jpg\" target=\"_blank\" rel=\"noopener noreferrer\"><img decoding=\"async\" src=\"https:\/\/github.com\/donnemartin\/system-design-primer\/raw\/master\/images\/5KeocQs.jpg\" \/><\/a><br \/>\n<strong><a href=\"http:\/\/www.escotal.com\/osilayer.html\" rel=\"nofollow\">\u8d44\u6599\u6765\u6e90\uff1aOSI 7\u5c42\u6a21\u578b<\/a><\/strong><\/p>\n<h3 dir=\"auto\"><a id=\"user-content-\u8d85\u6587\u672c\u4f20\u8f93\u534f\u8baehttp\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E8%B6%85%E6%96%87%E6%9C%AC%E4%BC%A0%E8%BE%93%E5%8D%8F%E8%AE%AEhttp\" aria-hidden=\"true\"><\/a>\u8d85\u6587\u672c\u4f20\u8f93\u534f\u8bae\uff08HTTP\uff09<\/h3>\n<p dir=\"auto\">HTTP \u662f\u4e00\u79cd\u5728\u5ba2\u6237\u7aef\u548c\u670d\u52a1\u5668\u4e4b\u95f4\u7f16\u7801\u548c\u4f20\u8f93\u6570\u636e\u7684\u65b9\u6cd5\u3002\u5b83\u662f\u4e00\u4e2a\u8bf7\u6c42\/\u54cd\u5e94\u534f\u8bae\uff1a\u5ba2\u6237\u7aef\u548c\u670d\u52a1\u7aef\u9488\u5bf9\u76f8\u5173\u5185\u5bb9\u548c\u5b8c\u6210\u72b6\u6001\u4fe1\u606f\u7684\u8bf7\u6c42\u548c\u54cd\u5e94\u3002HTTP \u662f\u72ec\u7acb\u7684\uff0c\u5141\u8bb8\u8bf7\u6c42\u548c\u54cd\u5e94\u6d41\u7ecf\u8bb8\u591a\u6267\u884c\u8d1f\u8f7d\u5747\u8861\uff0c\u7f13\u5b58\uff0c\u52a0\u5bc6\u548c\u538b\u7f29\u7684\u4e2d\u95f4\u8def\u7531\u5668\u548c\u670d\u52a1\u5668\u3002<\/p>\n<p dir=\"auto\">\u4e00\u4e2a\u57fa\u672c\u7684 HTTP \u8bf7\u6c42\u7531\u4e00\u4e2a\u52a8\u8bcd\uff08\u65b9\u6cd5\uff09\u548c\u4e00\u4e2a\u8d44\u6e90\uff08\u7aef\u70b9\uff09\u7ec4\u6210\u3002 \u4ee5\u4e0b\u662f\u5e38\u89c1\u7684 HTTP \u52a8\u8bcd\uff1a<\/p>\n<table>\n<thead>\n<tr>\n<th>\u52a8\u8bcd<\/th>\n<th>\u63cf\u8ff0<\/th>\n<th>*\u5e42\u7b49<\/th>\n<th>\u5b89\u5168\u6027<\/th>\n<th>\u53ef\u7f13\u5b58<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>GET<\/td>\n<td>\u8bfb\u53d6\u8d44\u6e90<\/td>\n<td>Yes<\/td>\n<td>Yes<\/td>\n<td>Yes<\/td>\n<\/tr>\n<tr>\n<td>POST<\/td>\n<td>\u521b\u5efa\u8d44\u6e90\u6216\u89e6\u53d1\u5904\u7406\u6570\u636e\u7684\u8fdb\u7a0b<\/td>\n<td>No<\/td>\n<td>No<\/td>\n<td>Yes\uff0c\u5982\u679c\u56de\u5e94\u5305\u542b\u5237\u65b0\u4fe1\u606f<\/td>\n<\/tr>\n<tr>\n<td>PUT<\/td>\n<td>\u521b\u5efa\u6216\u66ff\u6362\u8d44\u6e90<\/td>\n<td>Yes<\/td>\n<td>No<\/td>\n<td>No<\/td>\n<\/tr>\n<tr>\n<td>PATCH<\/td>\n<td>\u90e8\u5206\u66f4\u65b0\u8d44\u6e90<\/td>\n<td>No<\/td>\n<td>No<\/td>\n<td>Yes\uff0c\u5982\u679c\u56de\u5e94\u5305\u542b\u5237\u65b0\u4fe1\u606f<\/td>\n<\/tr>\n<tr>\n<td>DELETE<\/td>\n<td>\u5220\u9664\u8d44\u6e90<\/td>\n<td>Yes<\/td>\n<td>No<\/td>\n<td>No<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p dir=\"auto\"><strong>\u591a\u6b21\u6267\u884c\u4e0d\u4f1a\u4ea7\u751f\u4e0d\u540c\u7684\u7ed3\u679c<\/strong>\u3002<\/p>\n<p dir=\"auto\">HTTP \u662f\u4f9d\u8d56\u4e8e\u8f83\u4f4e\u7ea7\u534f\u8bae\uff08\u5982\u00a0<strong>TCP<\/strong>\u00a0\u548c\u00a0<strong>UDP<\/strong>\uff09\u7684\u5e94\u7528\u5c42\u534f\u8bae\u3002<\/p>\n<h4 dir=\"auto\"><a id=\"user-content-\u6765\u6e90\u53ca\u5ef6\u4f38\u9605\u8bfbhttp\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E6%9D%A5%E6%BA%90%E5%8F%8A%E5%BB%B6%E4%BC%B8%E9%98%85%E8%AF%BBhttp\" aria-hidden=\"true\"><\/a>\u6765\u6e90\u53ca\u5ef6\u4f38\u9605\u8bfb\uff1aHTTP<\/h4>\n<ul dir=\"auto\">\n<li><a href=\"https:\/\/www.quora.com\/What-is-the-difference-between-HTTP-protocol-and-TCP-protocol\" rel=\"nofollow\">README<\/a>\u00a0+<\/li>\n<li><a href=\"https:\/\/www.nginx.com\/resources\/glossary\/http\/\" rel=\"nofollow\">HTTP \u662f\u4ec0\u4e48\uff1f<\/a><\/li>\n<li><a href=\"https:\/\/www.quora.com\/What-is-the-difference-between-HTTP-protocol-and-TCP-protocol\" rel=\"nofollow\">HTTP \u548c TCP \u7684\u533a\u522b<\/a><\/li>\n<li><a href=\"https:\/\/laracasts.com\/discuss\/channels\/general-discussion\/whats-the-differences-between-put-and-patch?page=1\" rel=\"nofollow\">PUT \u548c PATCH\u7684\u533a\u522b<\/a><\/li>\n<\/ul>\n<h3 dir=\"auto\"><a id=\"user-content-\u4f20\u8f93\u63a7\u5236\u534f\u8baetcp\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E4%BC%A0%E8%BE%93%E6%8E%A7%E5%88%B6%E5%8D%8F%E8%AE%AEtcp\" aria-hidden=\"true\"><\/a>\u4f20\u8f93\u63a7\u5236\u534f\u8bae\uff08TCP\uff09<\/h3>\n<p dir=\"auto\" align=\"center\"><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/images\/JdAsdvG.jpg\" target=\"_blank\" rel=\"noopener noreferrer\"><img decoding=\"async\" src=\"https:\/\/github.com\/donnemartin\/system-design-primer\/raw\/master\/images\/JdAsdvG.jpg\" \/><\/a><br \/>\n<strong><a href=\"http:\/\/www.wildbunny.co.uk\/blog\/2012\/10\/09\/how-to-make-a-multi-player-game-part-1\/\" rel=\"nofollow\">\u8d44\u6599\u6765\u6e90\uff1a\u5982\u4f55\u5236\u4f5c\u591a\u4eba\u6e38\u620f<\/a><\/strong><\/p>\n<p dir=\"auto\">TCP \u662f\u901a\u8fc7\u00a0<a href=\"https:\/\/en.wikipedia.org\/wiki\/Internet_Protocol\" rel=\"nofollow\">IP \u7f51\u7edc<\/a>\u7684\u9762\u5411\u8fde\u63a5\u7684\u534f\u8bae\u3002 \u4f7f\u7528<a href=\"https:\/\/en.wikipedia.org\/wiki\/Handshaking\" rel=\"nofollow\">\u63e1\u624b<\/a>\u5efa\u7acb\u548c\u65ad\u5f00\u8fde\u63a5\u3002 \u53d1\u9001\u7684\u6240\u6709\u6570\u636e\u5305\u4fdd\u8bc1\u4ee5\u539f\u59cb\u987a\u5e8f\u5230\u8fbe\u76ee\u7684\u5730\uff0c\u7528\u4ee5\u4e0b\u63aa\u65bd\u4fdd\u8bc1\u6570\u636e\u5305\u4e0d\u88ab\u635f\u574f\uff1a<\/p>\n<ul dir=\"auto\">\n<li>\u6bcf\u4e2a\u6570\u636e\u5305\u7684\u5e8f\u5217\u53f7\u548c<a href=\"https:\/\/en.wikipedia.org\/wiki\/Transmission_Control_Protocol#Checksum_computation\" rel=\"nofollow\">\u6821\u9a8c\u7801<\/a>\u3002<\/li>\n<li><a href=\"https:\/\/en.wikipedia.org\/wiki\/Acknowledgement_(data_networks)\" rel=\"nofollow\">\u786e\u8ba4\u5305<\/a>\u548c\u81ea\u52a8\u91cd\u4f20<\/li>\n<\/ul>\n<p dir=\"auto\">\u5982\u679c\u53d1\u9001\u8005\u6ca1\u6709\u6536\u5230\u6b63\u786e\u7684\u54cd\u5e94\uff0c\u5b83\u5c06\u91cd\u65b0\u53d1\u9001\u6570\u636e\u5305\u3002\u5982\u679c\u591a\u6b21\u8d85\u65f6\uff0c\u8fde\u63a5\u5c31\u4f1a\u65ad\u5f00\u3002TCP \u5b9e\u884c<a href=\"https:\/\/en.wikipedia.org\/wiki\/Flow_control_(data)\" rel=\"nofollow\">\u6d41\u91cf\u63a7\u5236<\/a>\u548c<a href=\"https:\/\/en.wikipedia.org\/wiki\/Network_congestion#Congestion_control\" rel=\"nofollow\">\u62e5\u585e\u63a7\u5236<\/a>\u3002\u8fd9\u4e9b\u786e\u4fdd\u63aa\u65bd\u4f1a\u5bfc\u81f4\u5ef6\u8fdf\uff0c\u800c\u4e14\u901a\u5e38\u5bfc\u81f4\u4f20\u8f93\u6548\u7387\u6bd4 UDP \u4f4e\u3002<\/p>\n<p dir=\"auto\">\u4e3a\u4e86\u786e\u4fdd\u9ad8\u541e\u5410\u91cf\uff0cWeb \u670d\u52a1\u5668\u53ef\u4ee5\u4fdd\u6301\u5927\u91cf\u7684 TCP \u8fde\u63a5\uff0c\u4ece\u800c\u5bfc\u81f4\u9ad8\u5185\u5b58\u4f7f\u7528\u3002\u5728 Web \u670d\u52a1\u5668\u7ebf\u7a0b\u95f4\u62e5\u6709\u5927\u91cf\u5f00\u653e\u8fde\u63a5\u53ef\u80fd\u5f00\u9500\u5de8\u5927\uff0c\u6d88\u8017\u8d44\u6e90\u8fc7\u591a\uff0c\u4e5f\u5c31\u662f\u8bf4\uff0c\u4e00\u4e2a\u00a0<a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#memcached\">memcached<\/a>\u00a0\u670d\u52a1\u5668\u3002<a href=\"https:\/\/en.wikipedia.org\/wiki\/Connection_pool\" rel=\"nofollow\">\u8fde\u63a5\u6c60<\/a>\u00a0\u53ef\u4ee5\u5e2e\u52a9\u9664\u4e86\u5728\u9002\u7528\u7684\u60c5\u51b5\u4e0b\u5207\u6362\u5230 UDP\u3002<\/p>\n<p dir=\"auto\">TCP \u5bf9\u4e8e\u9700\u8981\u9ad8\u53ef\u9760\u6027\u4f46\u65f6\u95f4\u7d27\u8feb\u7684\u5e94\u7528\u7a0b\u5e8f\u5f88\u6709\u7528\u3002\u6bd4\u5982\u5305\u62ec Web \u670d\u52a1\u5668\uff0c\u6570\u636e\u5e93\u4fe1\u606f\uff0cSMTP\uff0cFTP \u548c SSH\u3002<\/p>\n<p dir=\"auto\">\u4ee5\u4e0b\u60c5\u51b5\u4f7f\u7528 TCP \u4ee3\u66ff UDP\uff1a<\/p>\n<ul dir=\"auto\">\n<li>\u4f60\u9700\u8981\u6570\u636e\u5b8c\u597d\u65e0\u635f\u3002<\/li>\n<li>\u4f60\u60f3\u5bf9\u7f51\u7edc\u541e\u5410\u91cf\u81ea\u52a8\u8fdb\u884c\u6700\u4f73\u8bc4\u4f30\u3002<\/li>\n<\/ul>\n<h3 dir=\"auto\"><a id=\"user-content-\u7528\u6237\u6570\u636e\u62a5\u534f\u8baeudp\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E7%94%A8%E6%88%B7%E6%95%B0%E6%8D%AE%E6%8A%A5%E5%8D%8F%E8%AE%AEudp\" aria-hidden=\"true\"><\/a>\u7528\u6237\u6570\u636e\u62a5\u534f\u8bae\uff08UDP\uff09<\/h3>\n<p dir=\"auto\" align=\"center\"><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/images\/yzDrJtA.jpg\" target=\"_blank\" rel=\"noopener noreferrer\"><img decoding=\"async\" src=\"https:\/\/github.com\/donnemartin\/system-design-primer\/raw\/master\/images\/yzDrJtA.jpg\" \/><\/a><br \/>\n<strong><a href=\"http:\/\/www.wildbunny.co.uk\/blog\/2012\/10\/09\/how-to-make-a-multi-player-game-part-1\" rel=\"nofollow\">\u8d44\u6599\u6765\u6e90\uff1a\u5982\u4f55\u5236\u4f5c\u591a\u4eba\u6e38\u620f<\/a><\/strong><\/p>\n<p dir=\"auto\">UDP \u662f\u65e0\u8fde\u63a5\u7684\u3002\u6570\u636e\u62a5\uff08\u7c7b\u4f3c\u4e8e\u6570\u636e\u5305\uff09\u53ea\u5728\u6570\u636e\u62a5\u7ea7\u522b\u6709\u4fdd\u8bc1\u3002\u6570\u636e\u62a5\u53ef\u80fd\u4f1a\u65e0\u5e8f\u7684\u5230\u8fbe\u76ee\u7684\u5730\uff0c\u4e5f\u6709\u53ef\u80fd\u4f1a\u9057\u5931\u3002UDP \u4e0d\u652f\u6301\u62e5\u585e\u63a7\u5236\u3002\u867d\u7136\u4e0d\u5982 TCP \u90a3\u6837\u6709\u4fdd\u8bc1\uff0c\u4f46 UDP \u901a\u5e38\u6548\u7387\u66f4\u9ad8\u3002<\/p>\n<p dir=\"auto\">UDP \u53ef\u4ee5\u901a\u8fc7\u5e7f\u64ad\u5c06\u6570\u636e\u62a5\u53d1\u9001\u81f3\u5b50\u7f51\u5185\u7684\u6240\u6709\u8bbe\u5907\u3002\u8fd9\u5bf9\u00a0<a href=\"https:\/\/en.wikipedia.org\/wiki\/Dynamic_Host_Configuration_Protocol\" rel=\"nofollow\">DHCP<\/a>\u00a0\u5f88\u6709\u7528\uff0c\u56e0\u4e3a\u5b50\u7f51\u5185\u7684\u8bbe\u5907\u8fd8\u6ca1\u6709\u5206\u914d IP \u5730\u5740\uff0c\u800c IP \u5bf9\u4e8e TCP \u662f\u5fc5\u987b\u7684\u3002<\/p>\n<p dir=\"auto\">UDP \u53ef\u9760\u6027\u66f4\u4f4e\u4f46\u9002\u5408\u7528\u5728\u7f51\u7edc\u7535\u8bdd\u3001\u89c6\u9891\u804a\u5929\uff0c\u6d41\u5a92\u4f53\u548c\u5b9e\u65f6\u591a\u4eba\u6e38\u620f\u4e0a\u3002<\/p>\n<p dir=\"auto\">\u4ee5\u4e0b\u60c5\u51b5\u4f7f\u7528 UDP \u4ee3\u66ff TCP\uff1a<\/p>\n<ul dir=\"auto\">\n<li>\u4f60\u9700\u8981\u4f4e\u5ef6\u8fdf<\/li>\n<li>\u76f8\u5bf9\u4e8e\u6570\u636e\u4e22\u5931\u66f4\u7cdf\u7684\u662f\u6570\u636e\u5ef6\u8fdf<\/li>\n<li>\u4f60\u60f3\u5b9e\u73b0\u81ea\u5df1\u7684\u9519\u8bef\u6821\u6b63\u65b9\u6cd5<\/li>\n<\/ul>\n<h4 dir=\"auto\"><a id=\"user-content-\u6765\u6e90\u53ca\u5ef6\u4f38\u9605\u8bfbtcp-\u4e0e-udp\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E6%9D%A5%E6%BA%90%E5%8F%8A%E5%BB%B6%E4%BC%B8%E9%98%85%E8%AF%BBtcp-%E4%B8%8E-udp\" aria-hidden=\"true\"><\/a>\u6765\u6e90\u53ca\u5ef6\u4f38\u9605\u8bfb\uff1aTCP \u4e0e UDP<\/h4>\n<ul dir=\"auto\">\n<li><a href=\"http:\/\/gafferongames.com\/networking-for-game-programmers\/udp-vs-tcp\/\" rel=\"nofollow\">\u6e38\u620f\u7f16\u7a0b\u7684\u7f51\u7edc<\/a><\/li>\n<li><a href=\"http:\/\/www.cyberciti.biz\/faq\/key-differences-between-tcp-and-udp-protocols\/\" rel=\"nofollow\">TCP \u4e0e UDP \u7684\u5173\u952e\u533a\u522b<\/a><\/li>\n<li><a href=\"http:\/\/stackoverflow.com\/questions\/5970383\/difference-between-tcp-and-udp\" rel=\"nofollow\">TCP \u4e0e UDP \u7684\u4e0d\u540c<\/a><\/li>\n<li><a href=\"https:\/\/en.wikipedia.org\/wiki\/Transmission_Control_Protocol\" rel=\"nofollow\">\u4f20\u8f93\u63a7\u5236\u534f\u8bae<\/a><\/li>\n<li><a href=\"https:\/\/en.wikipedia.org\/wiki\/User_Datagram_Protocol\" rel=\"nofollow\">\u7528\u6237\u6570\u636e\u62a5\u534f\u8bae<\/a><\/li>\n<li><a href=\"http:\/\/www.cs.bu.edu\/~jappavoo\/jappavoo.github.com\/451\/papers\/memcache-fb.pdf\" rel=\"nofollow\">Memcache \u5728 Facebook \u7684\u6269\u5c55<\/a><\/li>\n<\/ul>\n<h3 dir=\"auto\"><a id=\"user-content-\u8fdc\u7a0b\u8fc7\u7a0b\u8c03\u7528\u534f\u8baerpc\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E8%BF%9C%E7%A8%8B%E8%BF%87%E7%A8%8B%E8%B0%83%E7%94%A8%E5%8D%8F%E8%AE%AErpc\" aria-hidden=\"true\"><\/a>\u8fdc\u7a0b\u8fc7\u7a0b\u8c03\u7528\u534f\u8bae\uff08RPC\uff09<\/h3>\n<p dir=\"auto\" align=\"center\"><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/images\/iF4Mkb5.png\" target=\"_blank\" rel=\"noopener noreferrer\"><img decoding=\"async\" src=\"https:\/\/github.com\/donnemartin\/system-design-primer\/raw\/master\/images\/iF4Mkb5.png\" \/><\/a><br \/>\n<strong><a href=\"http:\/\/www.puncsky.com\/blog\/2016\/02\/14\/crack-the-system-design-interview\" rel=\"nofollow\">Source: Crack the system design interview<\/a><\/strong><\/p>\n<p dir=\"auto\">\u5728 RPC \u4e2d\uff0c\u5ba2\u6237\u7aef\u4f1a\u53bb\u8c03\u7528\u53e6\u4e00\u4e2a\u5730\u5740\u7a7a\u95f4\uff08\u901a\u5e38\u662f\u4e00\u4e2a\u8fdc\u7a0b\u670d\u52a1\u5668\uff09\u91cc\u7684\u65b9\u6cd5\u3002\u8c03\u7528\u4ee3\u7801\u770b\u8d77\u6765\u5c31\u50cf\u662f\u8c03\u7528\u7684\u662f\u4e00\u4e2a\u672c\u5730\u65b9\u6cd5\uff0c\u5ba2\u6237\u7aef\u548c\u670d\u52a1\u5668\u4ea4\u4e92\u7684\u5177\u4f53\u8fc7\u7a0b\u88ab\u62bd\u8c61\u3002\u8fdc\u7a0b\u8c03\u7528\u76f8\u5bf9\u4e8e\u672c\u5730\u8c03\u7528\u4e00\u822c\u8f83\u6162\u800c\u4e14\u53ef\u9760\u6027\u66f4\u5dee\uff0c\u56e0\u6b64\u533a\u5206\u4e24\u8005\u662f\u6709\u5e2e\u52a9\u7684\u3002\u70ed\u95e8\u7684 RPC \u6846\u67b6\u5305\u62ec\u00a0<a href=\"https:\/\/developers.google.com\/protocol-buffers\/\" rel=\"nofollow\">Protobuf<\/a>\u3001<a href=\"https:\/\/thrift.apache.org\/\" rel=\"nofollow\">Thrift<\/a>\u00a0\u548c\u00a0<a href=\"https:\/\/avro.apache.org\/docs\/current\/\" rel=\"nofollow\">Avro<\/a>\u3002<\/p>\n<p dir=\"auto\">RPC \u662f\u4e00\u4e2a\u201c\u8bf7\u6c42-\u54cd\u5e94\u201d\u534f\u8bae\uff1a<\/p>\n<ul dir=\"auto\">\n<li><strong>\u5ba2\u6237\u7aef\u7a0b\u5e8f<\/strong>\u00a0\u2500\u2500 \u8c03\u7528\u5ba2\u6237\u7aef\u5b58\u6839\u7a0b\u5e8f\u3002\u5c31\u50cf\u8c03\u7528\u672c\u5730\u65b9\u6cd5\u4e00\u6837\uff0c\u53c2\u6570\u4f1a\u88ab\u538b\u5165\u6808\u4e2d\u3002<\/li>\n<li><strong>\u5ba2\u6237\u7aef stub \u7a0b\u5e8f<\/strong>\u00a0\u2500\u2500 \u5c06\u8bf7\u6c42\u8fc7\u7a0b\u7684 id \u548c\u53c2\u6570\u6253\u5305\u8fdb\u8bf7\u6c42\u4fe1\u606f\u4e2d\u3002<\/li>\n<li><strong>\u5ba2\u6237\u7aef\u901a\u4fe1\u6a21\u5757<\/strong>\u00a0\u2500\u2500 \u5c06\u4fe1\u606f\u4ece\u5ba2\u6237\u7aef\u53d1\u9001\u81f3\u670d\u52a1\u7aef\u3002<\/li>\n<li><strong>\u670d\u52a1\u7aef\u901a\u4fe1\u6a21\u5757<\/strong>\u00a0\u2500\u2500 \u5c06\u63a5\u53d7\u7684\u5305\u4f20\u7ed9\u670d\u52a1\u7aef\u5b58\u6839\u7a0b\u5e8f\u3002<\/li>\n<li><strong>\u670d\u52a1\u7aef stub \u7a0b\u5e8f<\/strong>\u00a0\u2500\u2500 \u5c06\u7ed3\u679c\u89e3\u5305\uff0c\u4f9d\u636e\u8fc7\u7a0b id \u8c03\u7528\u670d\u52a1\u7aef\u65b9\u6cd5\u5e76\u5c06\u53c2\u6570\u4f20\u9012\u8fc7\u53bb\u3002<\/li>\n<\/ul>\n<p dir=\"auto\">RPC \u8c03\u7528\u793a\u4f8b\uff1a<\/p>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\">\n<pre><code>GET \/someoperation?data=anId\r\n\r\nPOST \/anotheroperation\r\n{\r\n  \"data\":\"anId\";\r\n  \"anotherdata\": \"another value\"\r\n}\r\n<\/code><\/pre>\n<\/div>\n<p dir=\"auto\">RPC \u4e13\u6ce8\u4e8e\u66b4\u9732\u65b9\u6cd5\u3002RPC \u901a\u5e38\u7528\u4e8e\u5904\u7406\u5185\u90e8\u901a\u8baf\u7684\u6027\u80fd\u95ee\u9898\uff0c\u8fd9\u6837\u4f60\u53ef\u4ee5\u624b\u52a8\u5904\u7406\u672c\u5730\u8c03\u7528\u4ee5\u66f4\u597d\u7684\u9002\u5e94\u4f60\u7684\u60c5\u51b5\u3002<\/p>\n<p dir=\"auto\">\u5f53\u4ee5\u4e0b\u60c5\u51b5\u65f6\u9009\u62e9\u672c\u5730\u5e93\uff08\u4e5f\u5c31\u662f SDK\uff09\uff1a<\/p>\n<ul dir=\"auto\">\n<li>\u4f60\u77e5\u9053\u4f60\u7684\u76ee\u6807\u5e73\u53f0\u3002<\/li>\n<li>\u4f60\u60f3\u63a7\u5236\u5982\u4f55\u8bbf\u95ee\u4f60\u7684\u201c\u903b\u8f91\u201d\u3002<\/li>\n<li>\u4f60\u60f3\u5bf9\u53d1\u751f\u5728\u4f60\u7684\u5e93\u4e2d\u7684\u9519\u8bef\u8fdb\u884c\u63a7\u5236\u3002<\/li>\n<li>\u6027\u80fd\u548c\u7ec8\u7aef\u7528\u6237\u4f53\u9a8c\u662f\u4f60\u6700\u5173\u5fc3\u7684\u4e8b\u3002<\/li>\n<\/ul>\n<p dir=\"auto\">\u9075\u5faa\u00a0<strong>REST<\/strong>\u00a0\u7684 HTTP API \u5f80\u5f80\u66f4\u9002\u7528\u4e8e\u516c\u5171 API\u3002<\/p>\n<h4 dir=\"auto\"><a id=\"user-content-\u7f3a\u70b9rpc\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E7%BC%BA%E7%82%B9rpc\" aria-hidden=\"true\"><\/a>\u7f3a\u70b9\uff1aRPC<\/h4>\n<ul dir=\"auto\">\n<li>RPC \u5ba2\u6237\u7aef\u4e0e\u670d\u52a1\u5b9e\u73b0\u6346\u7ed1\u5730\u5f88\u7d27\u5bc6\u3002<\/li>\n<li>\u4e00\u4e2a\u65b0\u7684 API \u5fc5\u987b\u5728\u6bcf\u4e00\u4e2a\u64cd\u4f5c\u6216\u8005\u7528\u4f8b\u4e2d\u5b9a\u4e49\u3002<\/li>\n<li>RPC \u5f88\u96be\u8c03\u8bd5\u3002<\/li>\n<li>\u4f60\u53ef\u80fd\u6ca1\u529e\u6cd5\u5f88\u65b9\u4fbf\u7684\u53bb\u4fee\u6539\u73b0\u6709\u7684\u6280\u672f\u3002\u4e3e\u4e2a\u4f8b\u5b50\uff0c\u5982\u679c\u4f60\u5e0c\u671b\u5728\u00a0<a href=\"http:\/\/www.squid-cache.org\/\" rel=\"nofollow\">Squid<\/a>\u00a0\u8fd9\u6837\u7684\u7f13\u5b58\u670d\u52a1\u5668\u4e0a\u786e\u4fdd\u00a0<a href=\"http:\/\/etherealbits.com\/2012\/12\/debunking-the-myths-of-rpc-rest\/\" rel=\"nofollow\">RPC \u88ab\u6b63\u786e\u7f13\u5b58<\/a>\u7684\u8bdd\u53ef\u80fd\u9700\u8981\u4e00\u4e9b\u989d\u5916\u7684\u52aa\u529b\u4e86\u3002<\/li>\n<\/ul>\n<h3 dir=\"auto\"><a id=\"user-content-\u8868\u8ff0\u6027\u72b6\u6001\u8f6c\u79fbrest\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E8%A1%A8%E8%BF%B0%E6%80%A7%E7%8A%B6%E6%80%81%E8%BD%AC%E7%A7%BBrest\" aria-hidden=\"true\"><\/a>\u8868\u8ff0\u6027\u72b6\u6001\u8f6c\u79fb\uff08REST\uff09<\/h3>\n<p dir=\"auto\">REST \u662f\u4e00\u79cd\u5f3a\u5236\u7684\u5ba2\u6237\u7aef\/\u670d\u52a1\u7aef\u67b6\u6784\u8bbe\u8ba1\u6a21\u578b\uff0c\u5ba2\u6237\u7aef\u57fa\u4e8e\u670d\u52a1\u7aef\u7ba1\u7406\u7684\u4e00\u7cfb\u5217\u8d44\u6e90\u64cd\u4f5c\u3002\u670d\u52a1\u7aef\u63d0\u4f9b\u4fee\u6539\u6216\u83b7\u53d6\u8d44\u6e90\u7684\u63a5\u53e3\u3002\u6240\u6709\u7684\u901a\u4fe1\u5fc5\u987b\u662f\u65e0\u72b6\u6001\u548c\u53ef\u7f13\u5b58\u7684\u3002<\/p>\n<p dir=\"auto\">RESTful \u63a5\u53e3\u6709\u56db\u6761\u89c4\u5219\uff1a<\/p>\n<ul dir=\"auto\">\n<li><strong>\u6807\u5fd7\u8d44\u6e90\uff08HTTP \u91cc\u7684 URI\uff09<\/strong>\u00a0\u2500\u2500 \u65e0\u8bba\u4ec0\u4e48\u64cd\u4f5c\u90fd\u4f7f\u7528\u540c\u4e00\u4e2a URI\u3002<\/li>\n<li><strong>\u8868\u793a\u7684\u6539\u53d8\uff08HTTP \u7684\u52a8\u4f5c\uff09<\/strong>\u00a0\u2500\u2500 \u4f7f\u7528\u52a8\u4f5c, headers \u548c body\u3002<\/li>\n<li><strong>\u53ef\u81ea\u6211\u63cf\u8ff0\u7684\u9519\u8bef\u4fe1\u606f\uff08HTTP \u4e2d\u7684 status code\uff09<\/strong>\u00a0\u2500\u2500 \u4f7f\u7528\u72b6\u6001\u7801\uff0c\u4e0d\u8981\u91cd\u65b0\u9020\u8f6e\u5b50\u3002<\/li>\n<li><strong><a href=\"http:\/\/restcookbook.com\/Basics\/hateoas\/\" rel=\"nofollow\">HATEOAS<\/a>\uff08HTTP \u4e2d\u7684HTML \u63a5\u53e3\uff09<\/strong>\u00a0\u2500\u2500 \u4f60\u7684 web \u670d\u52a1\u5668\u5e94\u8be5\u80fd\u591f\u901a\u8fc7\u6d4f\u89c8\u5668\u8bbf\u95ee\u3002<\/li>\n<\/ul>\n<p dir=\"auto\">REST \u8bf7\u6c42\u7684\u4f8b\u5b50\uff1a<\/p>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\">\n<pre><code>GET \/someresources\/anId\r\n\r\nPUT \/someresources\/anId\r\n{\"anotherdata\": \"another value\"}\r\n<\/code><\/pre>\n<\/div>\n<p dir=\"auto\">REST \u5173\u6ce8\u4e8e\u66b4\u9732\u6570\u636e\u3002\u5b83\u51cf\u5c11\u4e86\u5ba2\u6237\u7aef\uff0f\u670d\u52a1\u7aef\u7684\u8026\u5408\u7a0b\u5ea6\uff0c\u7ecf\u5e38\u7528\u4e8e\u516c\u5171 HTTP API \u63a5\u53e3\u8bbe\u8ba1\u3002REST \u4f7f\u7528\u66f4\u901a\u5e38\u4e0e\u89c4\u8303\u5316\u7684\u65b9\u6cd5\u6765\u901a\u8fc7 URI \u66b4\u9732\u8d44\u6e90\uff0c<a href=\"https:\/\/github.com\/for-GET\/know-your-http-well\/blob\/master\/headers.md\">\u901a\u8fc7 header \u6765\u8868\u8ff0<\/a>\u5e76\u901a\u8fc7 GET\u3001POST\u3001PUT\u3001DELETE \u548c PATCH \u8fd9\u4e9b\u52a8\u4f5c\u6765\u8fdb\u884c\u64cd\u4f5c\u3002\u56e0\u4e3a\u65e0\u72b6\u6001\u7684\u7279\u6027\uff0cREST \u6613\u4e8e\u6a2a\u5411\u6269\u5c55\u548c\u9694\u79bb\u3002<\/p>\n<h4 dir=\"auto\"><a id=\"user-content-\u7f3a\u70b9rest\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E7%BC%BA%E7%82%B9rest\" aria-hidden=\"true\"><\/a>\u7f3a\u70b9\uff1aREST<\/h4>\n<ul dir=\"auto\">\n<li>\u7531\u4e8e REST \u5c06\u91cd\u70b9\u653e\u5728\u66b4\u9732\u6570\u636e\uff0c\u6240\u4ee5\u5f53\u8d44\u6e90\u4e0d\u662f\u81ea\u7136\u7ec4\u7ec7\u7684\u6216\u8005\u7ed3\u6784\u590d\u6742\u7684\u65f6\u5019\u5b83\u53ef\u80fd\u65e0\u6cd5\u5f88\u597d\u7684\u9002\u5e94\u3002\u4e3e\u4e2a\u4f8b\u5b50\uff0c\u8fd4\u56de\u8fc7\u53bb\u4e00\u5c0f\u65f6\u4e2d\u4e0e\u7279\u5b9a\u4e8b\u4ef6\u96c6\u5339\u914d\u7684\u66f4\u65b0\u8bb0\u5f55\u8fd9\u79cd\u64cd\u4f5c\u5c31\u5f88\u96be\u8868\u793a\u4e3a\u8def\u5f84\u3002\u4f7f\u7528 REST\uff0c\u53ef\u80fd\u4f1a\u4f7f\u7528 URI \u8def\u5f84\uff0c\u67e5\u8be2\u53c2\u6570\u548c\u53ef\u80fd\u7684\u8bf7\u6c42\u4f53\u6765\u5b9e\u73b0\u3002<\/li>\n<li>REST \u4e00\u822c\u4f9d\u8d56\u51e0\u4e2a\u52a8\u4f5c\uff08GET\u3001POST\u3001PUT\u3001DELETE \u548c PATCH\uff09\uff0c\u4f46\u6709\u65f6\u5019\u4ec5\u4ec5\u8fd9\u4e9b\u6ca1\u6cd5\u6ee1\u8db3\u4f60\u7684\u9700\u8981\u3002\u4e3e\u4e2a\u4f8b\u5b50\uff0c\u5c06\u8fc7\u671f\u7684\u6587\u6863\u79fb\u52a8\u5230\u5f52\u6863\u6587\u4ef6\u5939\u91cc\u53bb\uff0c\u8fd9\u6837\u7684\u64cd\u4f5c\u53ef\u80fd\u6ca1\u6cd5\u7b80\u5355\u7684\u7528\u4e0a\u9762\u8fd9\u51e0\u4e2a verbs \u8868\u8fbe\u3002<\/li>\n<li>\u4e3a\u4e86\u6e32\u67d3\u5355\u4e2a\u9875\u9762\uff0c\u83b7\u53d6\u88ab\u5d4c\u5957\u5728\u5c42\u7ea7\u7ed3\u6784\u4e2d\u7684\u590d\u6742\u8d44\u6e90\u9700\u8981\u5ba2\u6237\u7aef\uff0c\u670d\u52a1\u5668\u4e4b\u95f4\u591a\u6b21\u5f80\u8fd4\u901a\u4fe1\u3002\u4f8b\u5982\uff0c\u83b7\u53d6\u535a\u5ba2\u5185\u5bb9\u53ca\u5176\u5173\u8054\u8bc4\u8bba\u3002\u5bf9\u4e8e\u4f7f\u7528\u4e0d\u786e\u5b9a\u7f51\u7edc\u73af\u5883\u7684\u79fb\u52a8\u5e94\u7528\u6765\u8bf4\uff0c\u8fd9\u4e9b\u591a\u6b21\u5f80\u8fd4\u901a\u4fe1\u662f\u975e\u5e38\u9ebb\u70e6\u7684\u3002<\/li>\n<li>\u968f\u7740\u65f6\u95f4\u7684\u63a8\u79fb\uff0c\u66f4\u591a\u7684\u5b57\u6bb5\u53ef\u80fd\u4f1a\u88ab\u6dfb\u52a0\u5230 API \u54cd\u5e94\u4e2d\uff0c\u8f83\u65e7\u7684\u5ba2\u6237\u7aef\u5c06\u4f1a\u63a5\u6536\u5230\u6240\u6709\u65b0\u7684\u6570\u636e\u5b57\u6bb5\uff0c\u5373\u4f7f\u662f\u90a3\u4e9b\u5b83\u4eec\u4e0d\u9700\u8981\u7684\u5b57\u6bb5\uff0c\u7ed3\u679c\u5b83\u4f1a\u589e\u52a0\u8d1f\u8f7d\u5927\u5c0f\u5e76\u5f15\u8d77\u66f4\u5927\u7684\u5ef6\u8fdf\u3002<\/li>\n<\/ul>\n<h3 dir=\"auto\"><a id=\"user-content-rpc-\u4e0e-rest-\u6bd4\u8f83\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#rpc-%E4%B8%8E-rest-%E6%AF%94%E8%BE%83\" aria-hidden=\"true\"><\/a>RPC \u4e0e REST \u6bd4\u8f83<\/h3>\n<table>\n<thead>\n<tr>\n<th>\u64cd\u4f5c<\/th>\n<th>RPC<\/th>\n<th>REST<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>\u6ce8\u518c<\/td>\n<td><strong>POST<\/strong>\u00a0\/signup<\/td>\n<td><strong>POST<\/strong>\u00a0\/persons<\/td>\n<\/tr>\n<tr>\n<td>\u6ce8\u9500<\/td>\n<td><strong>POST<\/strong>\u00a0\/resign<br \/>\n{<br \/>\n&#8220;personid&#8221;: &#8220;1234&#8221;<br \/>\n}<\/td>\n<td><strong>DELETE<\/strong>\u00a0\/persons\/1234<\/td>\n<\/tr>\n<tr>\n<td>\u8bfb\u53d6\u7528\u6237\u4fe1\u606f<\/td>\n<td><strong>GET<\/strong>\u00a0\/readPerson?personid=1234<\/td>\n<td><strong>GET<\/strong>\u00a0\/persons\/1234<\/td>\n<\/tr>\n<tr>\n<td>\u8bfb\u53d6\u7528\u6237\u7269\u54c1\u5217\u8868<\/td>\n<td><strong>GET<\/strong>\u00a0\/readUsersItemsList?personid=1234<\/td>\n<td><strong>GET<\/strong>\u00a0\/persons\/1234\/items<\/td>\n<\/tr>\n<tr>\n<td>\u5411\u7528\u6237\u7269\u54c1\u5217\u8868\u6dfb\u52a0\u4e00\u9879<\/td>\n<td><strong>POST<\/strong>\u00a0\/addItemToUsersItemsList<br \/>\n{<br \/>\n&#8220;personid&#8221;: &#8220;1234&#8221;;<br \/>\n&#8220;itemid&#8221;: &#8220;456&#8221;<br \/>\n}<\/td>\n<td><strong>POST<\/strong>\u00a0\/persons\/1234\/items<br \/>\n{<br \/>\n&#8220;itemid&#8221;: &#8220;456&#8221;<br \/>\n}<\/td>\n<\/tr>\n<tr>\n<td>\u66f4\u65b0\u4e00\u4e2a\u7269\u54c1<\/td>\n<td><strong>POST<\/strong>\u00a0\/modifyItem<br \/>\n{<br \/>\n&#8220;itemid&#8221;: &#8220;456&#8221;;<br \/>\n&#8220;key&#8221;: &#8220;value&#8221;<br \/>\n}<\/td>\n<td><strong>PUT<\/strong>\u00a0\/items\/456<br \/>\n{<br \/>\n&#8220;key&#8221;: &#8220;value&#8221;<br \/>\n}<\/td>\n<\/tr>\n<tr>\n<td>\u5220\u9664\u4e00\u4e2a\u7269\u54c1<\/td>\n<td><strong>POST<\/strong>\u00a0\/removeItem<br \/>\n{<br \/>\n&#8220;itemid&#8221;: &#8220;456&#8221;<br \/>\n}<\/td>\n<td><strong>DELETE<\/strong>\u00a0\/items\/456<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p dir=\"auto\" align=\"center\"><strong><a href=\"https:\/\/apihandyman.io\/do-you-really-know-why-you-prefer-rest-over-rpc\" rel=\"nofollow\">\u8d44\u6599\u6765\u6e90\uff1a\u4f60\u771f\u7684\u77e5\u9053\u4f60\u4e3a\u4ec0\u4e48\u66f4\u559c\u6b22 REST \u800c\u4e0d\u662f RPC \u5417<\/a><\/strong><\/p>\n<h4 dir=\"auto\"><a id=\"user-content-\u6765\u6e90\u53ca\u5ef6\u4f38\u9605\u8bfbrest-\u4e0e-rpc\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E6%9D%A5%E6%BA%90%E5%8F%8A%E5%BB%B6%E4%BC%B8%E9%98%85%E8%AF%BBrest-%E4%B8%8E-rpc\" aria-hidden=\"true\"><\/a>\u6765\u6e90\u53ca\u5ef6\u4f38\u9605\u8bfb\uff1aREST \u4e0e RPC<\/h4>\n<ul dir=\"auto\">\n<li><a href=\"https:\/\/apihandyman.io\/do-you-really-know-why-you-prefer-rest-over-rpc\/\" rel=\"nofollow\">\u4f60\u771f\u7684\u77e5\u9053\u4f60\u4e3a\u4ec0\u4e48\u66f4\u559c\u6b22 REST \u800c\u4e0d\u662f RPC \u5417<\/a><\/li>\n<li><a href=\"http:\/\/programmers.stackexchange.com\/a\/181186\" rel=\"nofollow\">\u4ec0\u4e48\u65f6\u5019 RPC \u6bd4 REST \u66f4\u5408\u9002\uff1f<\/a><\/li>\n<li><a href=\"http:\/\/stackoverflow.com\/questions\/15056878\/rest-vs-json-rpc\" rel=\"nofollow\">REST vs JSON-RPC<\/a><\/li>\n<li><a href=\"http:\/\/etherealbits.com\/2012\/12\/debunking-the-myths-of-rpc-rest\/\" rel=\"nofollow\">\u63ed\u5f00 RPC \u548c REST \u7684\u795e\u79d8\u9762\u7eb1<\/a><\/li>\n<li><a href=\"https:\/\/www.quora.com\/What-are-the-drawbacks-of-using-RESTful-APIs\" rel=\"nofollow\">\u4f7f\u7528 REST \u7684\u7f3a\u70b9\u662f\u4ec0\u4e48<\/a><\/li>\n<li><a href=\"http:\/\/www.puncsky.com\/blog\/2016-02-13-crack-the-system-design-interview\" rel=\"nofollow\">\u7834\u89e3\u7cfb\u7edf\u8bbe\u8ba1\u9762\u8bd5<\/a><\/li>\n<li><a href=\"https:\/\/code.facebook.com\/posts\/1468950976659943\/\" rel=\"nofollow\">Thrift<\/a><\/li>\n<li><a href=\"http:\/\/arstechnica.com\/civis\/viewtopic.php?t=1190508\" rel=\"nofollow\">\u4e3a\u4ec0\u4e48\u5728\u5185\u90e8\u4f7f\u7528 REST \u800c\u4e0d\u662f RPC<\/a><\/li>\n<\/ul>\n<h2 dir=\"auto\"><a id=\"user-content-\u5b89\u5168\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E5%AE%89%E5%85%A8\" aria-hidden=\"true\"><\/a>\u5b89\u5168<\/h2>\n<p dir=\"auto\">\u8fd9\u4e00\u90e8\u5206\u9700\u8981\u66f4\u591a\u5185\u5bb9\u3002<a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E8%B4%A1%E7%8C%AE\">\u4e00\u8d77\u6765\u5427<\/a>\uff01<\/p>\n<p dir=\"auto\">\u5b89\u5168\u662f\u4e00\u4e2a\u5bbd\u6cdb\u7684\u8bdd\u9898\u3002\u9664\u975e\u4f60\u6709\u76f8\u5f53\u7684\u7ecf\u9a8c\u3001\u5b89\u5168\u65b9\u9762\u80cc\u666f\u6216\u8005\u6b63\u5728\u7533\u8bf7\u7684\u804c\u4f4d\u8981\u6c42\u5b89\u5168\u77e5\u8bc6\uff0c\u4f60\u4e0d\u9700\u8981\u4e86\u89e3\u5b89\u5168\u57fa\u7840\u77e5\u8bc6\u4ee5\u5916\u7684\u5185\u5bb9\uff1a<\/p>\n<ul dir=\"auto\">\n<li>\u5728\u8fd0\u8f93\u548c\u7b49\u5f85\u8fc7\u7a0b\u4e2d\u52a0\u5bc6<\/li>\n<li>\u5bf9\u6240\u6709\u7684\u7528\u6237\u8f93\u5165\u548c\u4ece\u7528\u6237\u90a3\u91cc\u53d1\u6765\u7684\u53c2\u6570\u8fdb\u884c\u5904\u7406\u4ee5\u9632\u6b62\u00a0<a href=\"https:\/\/en.wikipedia.org\/wiki\/Cross-site_scripting\" rel=\"nofollow\">XSS<\/a>\u00a0\u548c\u00a0<a href=\"https:\/\/en.wikipedia.org\/wiki\/SQL_injection\" rel=\"nofollow\">SQL \u6ce8\u5165<\/a>\u3002<\/li>\n<li>\u4f7f\u7528\u53c2\u6570\u5316\u7684\u67e5\u8be2\u6765\u9632\u6b62 SQL \u6ce8\u5165\u3002<\/li>\n<li>\u4f7f\u7528<a href=\"https:\/\/en.wikipedia.org\/wiki\/Principle_of_least_privilege\" rel=\"nofollow\">\u6700\u5c0f\u6743\u9650\u539f\u5219<\/a>\u3002<\/li>\n<\/ul>\n<h3 dir=\"auto\"><a id=\"user-content-\u6765\u6e90\u53ca\u5ef6\u4f38\u9605\u8bfb-12\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E6%9D%A5%E6%BA%90%E5%8F%8A%E5%BB%B6%E4%BC%B8%E9%98%85%E8%AF%BB-12\" aria-hidden=\"true\"><\/a>\u6765\u6e90\u53ca\u5ef6\u4f38\u9605\u8bfb<\/h3>\n<ul dir=\"auto\">\n<li><a href=\"https:\/\/github.com\/FallibleInc\/security-guide-for-developers\">\u4e3a\u5f00\u53d1\u8005\u51c6\u5907\u7684\u5b89\u5168\u5f15\u5bfc<\/a><\/li>\n<li><a href=\"https:\/\/www.owasp.org\/index.php\/OWASP_Top_Ten_Cheat_Sheet\" rel=\"nofollow\">OWASP top ten<\/a><\/li>\n<\/ul>\n<h2 dir=\"auto\"><a id=\"user-content-\u9644\u5f55\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E9%99%84%E5%BD%95\" aria-hidden=\"true\"><\/a>\u9644\u5f55<\/h2>\n<p dir=\"auto\">\u4e00\u4e9b\u65f6\u5019\u4f60\u4f1a\u88ab\u8981\u6c42\u505a\u51fa\u4fdd\u5b88\u4f30\u8ba1\u3002\u6bd4\u5982\uff0c\u4f60\u53ef\u80fd\u9700\u8981\u4f30\u8ba1\u4ece\u78c1\u76d8\u4e2d\u751f\u6210 100 \u5f20\u56fe\u7247\u7684\u7f29\u7565\u56fe\u9700\u8981\u7684\u65f6\u95f4\u6216\u8005\u4e00\u4e2a\u6570\u636e\u7ed3\u6784\u9700\u8981\u591a\u5c11\u7684\u5185\u5b58\u3002<strong>2 \u7684\u6b21\u65b9\u8868<\/strong>\u548c<strong>\u6bcf\u4e2a\u5f00\u53d1\u8005\u90fd\u9700\u8981\u77e5\u9053\u7684\u4e00\u4e9b\u65f6\u95f4\u6570\u636e<\/strong>\uff08\u8bd1\u6ce8\uff1aOSChina \u4e0a\u6709\u8fd9\u7bc7\u6587\u7ae0\u7684<a href=\"https:\/\/www.oschina.net\/news\/30009\/every-programmer-should-know\" rel=\"nofollow\">\u8bd1\u6587<\/a>\uff09\u90fd\u662f\u4e00\u4e9b\u5f88\u65b9\u4fbf\u7684\u53c2\u8003\u8d44\u6599\u3002<\/p>\n<h3 dir=\"auto\"><a id=\"user-content-2-\u7684\u6b21\u65b9\u8868\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#2-%E7%9A%84%E6%AC%A1%E6%96%B9%E8%A1%A8\" aria-hidden=\"true\"><\/a>2 \u7684\u6b21\u65b9\u8868<\/h3>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\">\n<pre><code>Power           Exact Value         Approx Value        Bytes\r\n---------------------------------------------------------------\r\n7                             128\r\n8                             256\r\n10                           1024   1 thousand           1 KB\r\n16                         65,536                       64 KB\r\n20                      1,048,576   1 million            1 MB\r\n30                  1,073,741,824   1 billion            1 GB\r\n32                  4,294,967,296                        4 GB\r\n40              1,099,511,627,776   1 trillion           1 TB\r\n<\/code><\/pre>\n<\/div>\n<h4 dir=\"auto\"><a id=\"user-content-\u6765\u6e90\u53ca\u5ef6\u4f38\u9605\u8bfb-13\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E6%9D%A5%E6%BA%90%E5%8F%8A%E5%BB%B6%E4%BC%B8%E9%98%85%E8%AF%BB-13\" aria-hidden=\"true\"><\/a>\u6765\u6e90\u53ca\u5ef6\u4f38\u9605\u8bfb<\/h4>\n<ul dir=\"auto\">\n<li><a href=\"https:\/\/en.wikipedia.org\/wiki\/Power_of_two\" rel=\"nofollow\">2 \u7684\u6b21\u65b9<\/a><\/li>\n<\/ul>\n<h3 dir=\"auto\"><a id=\"user-content-\u6bcf\u4e2a\u7a0b\u5e8f\u5458\u90fd\u5e94\u8be5\u77e5\u9053\u7684\u5ef6\u8fdf\u6570\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E6%AF%8F%E4%B8%AA%E7%A8%8B%E5%BA%8F%E5%91%98%E9%83%BD%E5%BA%94%E8%AF%A5%E7%9F%A5%E9%81%93%E7%9A%84%E5%BB%B6%E8%BF%9F%E6%95%B0\" aria-hidden=\"true\"><\/a>\u6bcf\u4e2a\u7a0b\u5e8f\u5458\u90fd\u5e94\u8be5\u77e5\u9053\u7684\u5ef6\u8fdf\u6570<\/h3>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\">\n<pre><code>Latency Comparison Numbers\r\n--------------------------\r\nL1 cache reference                           0.5 ns\r\nBranch mispredict                            5   ns\r\nL2 cache reference                           7   ns                      14x L1 cache\r\nMutex lock\/unlock                           25   ns\r\nMain memory reference                      100   ns                      20x L2 cache, 200x L1 cache\r\nCompress 1K bytes with Zippy            10,000   ns       10 us\r\nSend 1 KB bytes over 1 Gbps network     10,000   ns       10 us\r\nRead 4 KB randomly from SSD*           150,000   ns      150 us          ~1GB\/sec SSD\r\nRead 1 MB sequentially from memory     250,000   ns      250 us\r\nRound trip within same datacenter      500,000   ns      500 us\r\nRead 1 MB sequentially from SSD*     1,000,000   ns    1,000 us    1 ms  ~1GB\/sec SSD, 4X memory\r\nDisk seek                           10,000,000   ns   10,000 us   10 ms  20x datacenter roundtrip\r\nRead 1 MB sequentially from 1 Gbps  10,000,000   ns   10,000 us   10 ms  40x memory, 10X SSD\r\nRead 1 MB sequentially from disk    30,000,000   ns   30,000 us   30 ms 120x memory, 30X SSD\r\nSend packet CA-&gt;Netherlands-&gt;CA    150,000,000   ns  150,000 us  150 ms\r\n\r\nNotes\r\n-----\r\n1 ns = 10^-9 seconds\r\n1 us = 10^-6 seconds = 1,000 ns\r\n1 ms = 10^-3 seconds = 1,000 us = 1,000,000 ns\r\n<\/code><\/pre>\n<\/div>\n<p dir=\"auto\">\u57fa\u4e8e\u4e0a\u8ff0\u6570\u5b57\u7684\u6307\u6807\uff1a<\/p>\n<ul dir=\"auto\">\n<li>\u4ece\u78c1\u76d8\u4ee5 30 MB\/s \u7684\u901f\u5ea6\u987a\u5e8f\u8bfb\u53d6<\/li>\n<li>\u4ee5 100 MB\/s \u4ece 1 Gbps \u7684\u4ee5\u592a\u7f51\u987a\u5e8f\u8bfb\u53d6<\/li>\n<li>\u4ece SSD \u4ee5 1 GB\/s \u7684\u901f\u5ea6\u8bfb\u53d6<\/li>\n<li>\u4ee5 4 GB\/s \u7684\u901f\u5ea6\u4ece\u4e3b\u5b58\u8bfb\u53d6<\/li>\n<li>\u6bcf\u79d2\u80fd\u7ed5\u5730\u7403 6-7 \u5708<\/li>\n<li>\u6570\u636e\u4e2d\u5fc3\u5185\u6bcf\u79d2\u6709 2,000 \u6b21\u5f80\u8fd4<\/li>\n<\/ul>\n<h4 dir=\"auto\"><a id=\"user-content-\u5ef6\u8fdf\u6570\u53ef\u89c6\u5316\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E5%BB%B6%E8%BF%9F%E6%95%B0%E5%8F%AF%E8%A7%86%E5%8C%96\" aria-hidden=\"true\"><\/a>\u5ef6\u8fdf\u6570\u53ef\u89c6\u5316<\/h4>\n<p dir=\"auto\"><a href=\"https:\/\/camo.githubusercontent.com\/77f72259e1eb58596b564d1ad823af1853bc60a3\/687474703a2f2f692e696d6775722e636f6d2f6b307431652e706e67\" target=\"_blank\" rel=\"noopener noreferrer\"><img decoding=\"async\" src=\"https:\/\/camo.githubusercontent.com\/77f72259e1eb58596b564d1ad823af1853bc60a3\/687474703a2f2f692e696d6775722e636f6d2f6b307431652e706e67\" alt=\"\" \/><\/a><\/p>\n<h4 dir=\"auto\"><a id=\"user-content-\u6765\u6e90\u53ca\u5ef6\u4f38\u9605\u8bfb-14\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E6%9D%A5%E6%BA%90%E5%8F%8A%E5%BB%B6%E4%BC%B8%E9%98%85%E8%AF%BB-14\" aria-hidden=\"true\"><\/a>\u6765\u6e90\u53ca\u5ef6\u4f38\u9605\u8bfb<\/h4>\n<ul dir=\"auto\">\n<li><a href=\"https:\/\/gist.github.com\/jboner\/2841832\">\u6bcf\u4e2a\u7a0b\u5e8f\u5458\u90fd\u5e94\u8be5\u77e5\u9053\u7684\u5ef6\u8fdf\u6570 \u2014 1<\/a><\/li>\n<li><a href=\"https:\/\/gist.github.com\/hellerbarde\/2843375\">\u6bcf\u4e2a\u7a0b\u5e8f\u5458\u90fd\u5e94\u8be5\u77e5\u9053\u7684\u5ef6\u8fdf\u6570 \u2014 2<\/a><\/li>\n<li><a href=\"http:\/\/www.cs.cornell.edu\/projects\/ladis2009\/talks\/dean-keynote-ladis2009.pdf\" rel=\"nofollow\">\u5173\u4e8e\u5efa\u8bbe\u5927\u578b\u5206\u5e03\u5f0f\u7cfb\u7edf\u7684\u7684\u8bbe\u8ba1\u65b9\u6848\u3001\u8bfe\u7a0b\u548c\u5efa\u8bae<\/a><\/li>\n<li><a href=\"https:\/\/static.googleusercontent.com\/media\/research.google.com\/en\/\/people\/jeff\/stanford-295-talk.pdf\" rel=\"nofollow\">\u5173\u4e8e\u5efa\u8bbe\u5927\u578b\u53ef\u62d3\u5c55\u5206\u5e03\u5f0f\u7cfb\u7edf\u7684\u8f6f\u4ef6\u5de5\u7a0b\u54a8\u8be2<\/a><\/li>\n<\/ul>\n<h3 dir=\"auto\"><a id=\"user-content-\u5176\u5b83\u7684\u7cfb\u7edf\u8bbe\u8ba1\u9762\u8bd5\u9898\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E5%85%B6%E5%AE%83%E7%9A%84%E7%B3%BB%E7%BB%9F%E8%AE%BE%E8%AE%A1%E9%9D%A2%E8%AF%95%E9%A2%98\" aria-hidden=\"true\"><\/a>\u5176\u5b83\u7684\u7cfb\u7edf\u8bbe\u8ba1\u9762\u8bd5\u9898<\/h3>\n<blockquote>\n<p dir=\"auto\">\u5e38\u89c1\u7684\u7cfb\u7edf\u8bbe\u8ba1\u9762\u8bd5\u95ee\u9898\uff0c\u7ed9\u51fa\u4e86\u5982\u4f55\u89e3\u51b3\u7684\u65b9\u6848\u94fe\u63a5<\/p>\n<\/blockquote>\n<table>\n<thead>\n<tr>\n<th>\u95ee\u9898<\/th>\n<th>\u5f15\u7528<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>\u8bbe\u8ba1\u7c7b\u4f3c\u4e8e Dropbox \u7684\u6587\u4ef6\u540c\u6b65\u670d\u52a1<\/td>\n<td><a href=\"https:\/\/www.youtube.com\/watch?v=PE4gwstWhmc\" rel=\"nofollow\">youtube.com<\/a><\/td>\n<\/tr>\n<tr>\n<td>\u8bbe\u8ba1\u7c7b\u4f3c\u4e8e Google \u7684\u641c\u7d22\u5f15\u64ce<\/td>\n<td><a href=\"http:\/\/queue.acm.org\/detail.cfm?id=988407\" rel=\"nofollow\">queue.acm.org<\/a><br \/>\n<a href=\"http:\/\/programmers.stackexchange.com\/questions\/38324\/interview-question-how-would-you-implement-google-search\" rel=\"nofollow\">stackexchange.com<\/a><br \/>\n<a href=\"http:\/\/www.ardendertat.com\/2012\/01\/11\/implementing-search-engines\/\" rel=\"nofollow\">ardendertat.com<\/a><br \/>\n<a href=\"http:\/\/infolab.stanford.edu\/~backrub\/google.html\" rel=\"nofollow\">stanford.edu<\/a><\/td>\n<\/tr>\n<tr>\n<td>\u8bbe\u8ba1\u7c7b\u4f3c\u4e8e Google \u7684\u53ef\u6269\u5c55\u7f51\u7edc\u722c\u866b<\/td>\n<td><a href=\"https:\/\/www.quora.com\/How-can-I-build-a-web-crawler-from-scratch\" rel=\"nofollow\">quora.com<\/a><\/td>\n<\/tr>\n<tr>\n<td>\u8bbe\u8ba1 Google \u6587\u6863<\/td>\n<td><a href=\"https:\/\/code.google.com\/p\/google-mobwrite\/\" rel=\"nofollow\">code.google.com<\/a><br \/>\n<a href=\"https:\/\/neil.fraser.name\/writing\/sync\/\" rel=\"nofollow\">neil.fraser.name<\/a><\/td>\n<\/tr>\n<tr>\n<td>\u8bbe\u8ba1\u7c7b\u4f3c Redis \u7684\u952e\u503c\u5b58\u50a8<\/td>\n<td><a href=\"http:\/\/www.slideshare.net\/dvirsky\/introduction-to-redis\" rel=\"nofollow\">slideshare.net<\/a><\/td>\n<\/tr>\n<tr>\n<td>\u8bbe\u8ba1\u7c7b\u4f3c Memcached \u7684\u7f13\u5b58\u7cfb\u7edf<\/td>\n<td><a href=\"http:\/\/www.slideshare.net\/oemebamo\/introduction-to-memcached\" rel=\"nofollow\">slideshare.net<\/a><\/td>\n<\/tr>\n<tr>\n<td>\u8bbe\u8ba1\u7c7b\u4f3c\u4e9a\u9a6c\u900a\u7684\u63a8\u8350\u7cfb\u7edf<\/td>\n<td><a href=\"http:\/\/tech.hulu.com\/blog\/2011\/09\/19\/recommendation-system.html\" rel=\"nofollow\">hulu.com<\/a><br \/>\n<a href=\"http:\/\/ijcai13.org\/files\/tutorial_slides\/td3.pdf\" rel=\"nofollow\">ijcai13.org<\/a><\/td>\n<\/tr>\n<tr>\n<td>\u8bbe\u8ba1\u7c7b\u4f3c Bitly \u7684\u77ed\u94fe\u63a5\u7cfb\u7edf<\/td>\n<td><a href=\"http:\/\/n00tc0d3r.blogspot.com\/\" rel=\"nofollow\">n00tc0d3r.blogspot.com<\/a><\/td>\n<\/tr>\n<tr>\n<td>\u8bbe\u8ba1\u7c7b\u4f3c WhatsApp \u7684\u804a\u5929\u5e94\u7528<\/td>\n<td><a href=\"http:\/\/highscalability.com\/blog\/2014\/2\/26\/the-whatsapp-architecture-facebook-bought-for-19-billion.html\" rel=\"nofollow\">highscalability.com<\/a><\/td>\n<\/tr>\n<tr>\n<td>\u8bbe\u8ba1\u7c7b\u4f3c Instagram \u7684\u56fe\u7247\u5206\u4eab\u7cfb\u7edf<\/td>\n<td><a href=\"http:\/\/highscalability.com\/flickr-architecture\" rel=\"nofollow\">highscalability.com<\/a><br \/>\n<a href=\"http:\/\/highscalability.com\/blog\/2011\/12\/6\/instagram-architecture-14-million-users-terabytes-of-photos.html\" rel=\"nofollow\">highscalability.com<\/a><\/td>\n<\/tr>\n<tr>\n<td>\u8bbe\u8ba1 Facebook \u7684\u65b0\u95fb\u63a8\u8350\u65b9\u6cd5<\/td>\n<td><a href=\"http:\/\/www.quora.com\/What-are-best-practices-for-building-something-like-a-News-Feed\" rel=\"nofollow\">quora.com<\/a><br \/>\n<a href=\"http:\/\/www.quora.com\/Activity-Streams\/What-are-the-scaling-issues-to-keep-in-mind-while-developing-a-social-network-feed\" rel=\"nofollow\">quora.com<\/a><br \/>\n<a href=\"http:\/\/www.slideshare.net\/danmckinley\/etsy-activity-feeds-architecture\" rel=\"nofollow\">slideshare.net<\/a><\/td>\n<\/tr>\n<tr>\n<td>\u8bbe\u8ba1 Facebook \u7684\u65f6\u95f4\u7ebf\u7cfb\u7edf<\/td>\n<td><a href=\"https:\/\/www.facebook.com\/note.php?note_id=10150468255628920\" rel=\"nofollow\">facebook.com<\/a><br \/>\n<a href=\"http:\/\/highscalability.com\/blog\/2012\/1\/23\/facebook-timeline-brought-to-you-by-the-power-of-denormaliza.html\" rel=\"nofollow\">highscalability.com<\/a><\/td>\n<\/tr>\n<tr>\n<td>\u8bbe\u8ba1 Facebook \u7684\u804a\u5929\u7cfb\u7edf<\/td>\n<td><a href=\"http:\/\/www.erlang-factory.com\/upload\/presentations\/31\/EugeneLetuchy-ErlangatFacebook.pdf\" rel=\"nofollow\">erlang-factory.com<\/a><br \/>\n<a href=\"https:\/\/www.facebook.com\/note.php?note_id=14218138919&amp;id=9445547199&amp;index=0\" rel=\"nofollow\">facebook.com<\/a><\/td>\n<\/tr>\n<tr>\n<td>\u8bbe\u8ba1\u7c7b\u4f3c Facebook \u7684\u56fe\u8868\u641c\u7d22\u7cfb\u7edf<\/td>\n<td><a href=\"https:\/\/www.facebook.com\/notes\/facebook-engineering\/under-the-hood-building-out-the-infrastructure-for-graph-search\/10151347573598920\" rel=\"nofollow\">facebook.com<\/a><br \/>\n<a href=\"https:\/\/www.facebook.com\/notes\/facebook-engineering\/under-the-hood-indexing-and-ranking-in-graph-search\/10151361720763920\" rel=\"nofollow\">facebook.com<\/a><br \/>\n<a href=\"https:\/\/www.facebook.com\/notes\/facebook-engineering\/under-the-hood-the-natural-language-interface-of-graph-search\/10151432733048920\" rel=\"nofollow\">facebook.com<\/a><\/td>\n<\/tr>\n<tr>\n<td>\u8bbe\u8ba1\u7c7b\u4f3c CloudFlare \u7684\u5185\u5bb9\u4f20\u9012\u7f51\u7edc<\/td>\n<td><a href=\"http:\/\/repository.cmu.edu\/cgi\/viewcontent.cgi?article=2112&amp;context=compsci\" rel=\"nofollow\">cmu.edu<\/a><\/td>\n<\/tr>\n<tr>\n<td>\u8bbe\u8ba1\u7c7b\u4f3c Twitter \u7684\u70ed\u95e8\u8bdd\u9898\u7cfb\u7edf<\/td>\n<td><a href=\"http:\/\/www.michael-noll.com\/blog\/2013\/01\/18\/implementing-real-time-trending-topics-in-storm\/\" rel=\"nofollow\">michael-noll.com<\/a><br \/>\n<a href=\"http:\/\/snikolov.wordpress.com\/2012\/11\/14\/early-detection-of-twitter-trends\/\" rel=\"nofollow\">snikolov .wordpress.com<\/a><\/td>\n<\/tr>\n<tr>\n<td>\u8bbe\u8ba1\u4e00\u4e2a\u968f\u673a ID \u751f\u6210\u7cfb\u7edf<\/td>\n<td><a href=\"https:\/\/blog.twitter.com\/2010\/announcing-snowflake\" rel=\"nofollow\">blog.twitter.com<\/a><br \/>\n<a href=\"https:\/\/github.com\/twitter\/snowflake\/\">github.com<\/a><\/td>\n<\/tr>\n<tr>\n<td>\u8fd4\u56de\u4e00\u5b9a\u65f6\u95f4\u6bb5\u5185\u6b21\u6570\u524d k \u9ad8\u7684\u8bf7\u6c42<\/td>\n<td><a href=\"https:\/\/icmi.cs.ucsb.edu\/research\/tech_reports\/reports\/2005-23.pdf\" rel=\"nofollow\">ucsb.edu<\/a><br \/>\n<a href=\"http:\/\/davis.wpi.edu\/xmdv\/docs\/EDBT11-diyang.pdf\" rel=\"nofollow\">wpi.edu<\/a><\/td>\n<\/tr>\n<tr>\n<td>\u8bbe\u8ba1\u4e00\u4e2a\u6570\u636e\u6e90\u4e8e\u591a\u4e2a\u6570\u636e\u4e2d\u5fc3\u7684\u670d\u52a1\u7cfb\u7edf<\/td>\n<td><a href=\"http:\/\/highscalability.com\/blog\/2009\/8\/24\/how-google-serves-data-from-multiple-datacenters.html\" rel=\"nofollow\">highscalability.com<\/a><\/td>\n<\/tr>\n<tr>\n<td>\u8bbe\u8ba1\u4e00\u4e2a\u591a\u4eba\u7f51\u7edc\u5361\u724c\u6e38\u620f<\/td>\n<td><a href=\"https:\/\/web.archive.org\/web\/20180929181117\/http:\/\/www.indieflashblog.com\/how-to-create-an-asynchronous-multiplayer-game.html\" rel=\"nofollow\">indieflashblog.com<\/a><br \/>\n<a href=\"http:\/\/buildnewgames.com\/real-time-multiplayer\/\" rel=\"nofollow\">buildnewgames.com<\/a><\/td>\n<\/tr>\n<tr>\n<td>\u8bbe\u8ba1\u4e00\u4e2a\u5783\u573e\u56de\u6536\u7cfb\u7edf<\/td>\n<td><a href=\"http:\/\/journal.stuffwithstuff.com\/2013\/12\/08\/babys-first-garbage-collector\/\" rel=\"nofollow\">stuffwithstuff.com<\/a><br \/>\n<a href=\"http:\/\/courses.cs.washington.edu\/courses\/csep521\/07wi\/prj\/rick.pdf\" rel=\"nofollow\">washington.edu<\/a><\/td>\n<\/tr>\n<tr>\n<td>\u6dfb\u52a0\u66f4\u591a\u7684\u7cfb\u7edf\u8bbe\u8ba1\u95ee\u9898<\/td>\n<td><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E8%B4%A1%E7%8C%AE\">\u8d21\u732e<\/a><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3 dir=\"auto\"><a id=\"user-content-\u771f\u5b9e\u67b6\u6784\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E7%9C%9F%E5%AE%9E%E6%9E%B6%E6%9E%84\" aria-hidden=\"true\"><\/a>\u771f\u5b9e\u67b6\u6784<\/h3>\n<blockquote>\n<p dir=\"auto\">\u5173\u4e8e\u73b0\u5b9e\u4e2d\u771f\u5b9e\u7684\u7cfb\u7edf\u662f\u600e\u4e48\u8bbe\u8ba1\u7684\u6587\u7ae0\u3002<\/p>\n<\/blockquote>\n<p dir=\"auto\" align=\"center\"><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/images\/TcUo2fw.png\" target=\"_blank\" rel=\"noopener noreferrer\"><img decoding=\"async\" src=\"https:\/\/github.com\/donnemartin\/system-design-primer\/raw\/master\/images\/TcUo2fw.png\" \/><\/a><br \/>\n<strong><a href=\"https:\/\/www.infoq.com\/presentations\/Twitter-Timeline-Scalability\" rel=\"nofollow\">Source: Twitter timelines at scale<\/a><\/strong><\/p>\n<p dir=\"auto\"><strong>\u4e0d\u8981\u4e13\u6ce8\u4e8e\u4ee5\u4e0b\u6587\u7ae0\u7684\u7ec6\u8282\uff0c\u4e13\u6ce8\u4e8e\u4ee5\u4e0b\u65b9\u9762\uff1a<\/strong><\/p>\n<ul dir=\"auto\">\n<li>\u53d1\u73b0\u8fd9\u4e9b\u6587\u7ae0\u4e2d\u7684\u5171\u540c\u7684\u539f\u5219\u3001\u6280\u672f\u548c\u6a21\u5f0f\u3002<\/li>\n<li>\u5b66\u4e60\u6bcf\u4e2a\u7ec4\u4ef6\u89e3\u51b3\u54ea\u4e9b\u95ee\u9898\uff0c\u4ec0\u4e48\u60c5\u51b5\u4e0b\u4f7f\u7528\uff0c\u4ec0\u4e48\u60c5\u51b5\u4e0b\u4e0d\u9002\u7528<\/li>\n<li>\u590d\u4e60\u5b66\u8fc7\u7684\u6587\u7ae0<\/li>\n<\/ul>\n<table>\n<thead>\n<tr>\n<th>\u7c7b\u578b<\/th>\n<th>\u7cfb\u7edf<\/th>\n<th>\u5f15\u7528<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Data processing<\/td>\n<td><strong>MapReduce<\/strong>\u00a0&#8211; Google\u7684\u5206\u5e03\u5f0f\u6570\u636e\u5904\u7406<\/td>\n<td><a href=\"http:\/\/static.googleusercontent.com\/media\/research.google.com\/zh-CN\/us\/archive\/mapreduce-osdi04.pdf\" rel=\"nofollow\">research.google.com<\/a><\/td>\n<\/tr>\n<tr>\n<td>Data processing<\/td>\n<td><strong>Spark<\/strong>\u00a0&#8211; Databricks \u7684\u5206\u5e03\u5f0f\u6570\u636e\u5904\u7406<\/td>\n<td><a href=\"http:\/\/www.slideshare.net\/AGrishchenko\/apache-spark-architecture\" rel=\"nofollow\">slideshare.net<\/a><\/td>\n<\/tr>\n<tr>\n<td>Data processing<\/td>\n<td><strong>Storm<\/strong>\u00a0&#8211; Twitter \u7684\u5206\u5e03\u5f0f\u6570\u636e\u5904\u7406<\/td>\n<td><a href=\"http:\/\/www.slideshare.net\/previa\/storm-16094009\" rel=\"nofollow\">slideshare.net<\/a><\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>Data store<\/td>\n<td><strong>Bigtable<\/strong>\u00a0&#8211; Google \u7684\u5217\u5f0f\u6570\u636e\u5e93<\/td>\n<td><a href=\"http:\/\/www.read.seas.harvard.edu\/~kohler\/class\/cs239-w08\/chang06bigtable.pdf\" rel=\"nofollow\">harvard.edu<\/a><\/td>\n<\/tr>\n<tr>\n<td>Data store<\/td>\n<td><strong>HBase<\/strong>\u00a0&#8211; Bigtable \u7684\u5f00\u6e90\u5b9e\u73b0<\/td>\n<td><a href=\"http:\/\/www.slideshare.net\/alexbaranau\/intro-to-hbase\" rel=\"nofollow\">slideshare.net<\/a><\/td>\n<\/tr>\n<tr>\n<td>Data store<\/td>\n<td><strong>Cassandra<\/strong>\u00a0&#8211; Facebook \u7684\u5217\u5f0f\u6570\u636e\u5e93<\/td>\n<td><a href=\"http:\/\/www.slideshare.net\/planetcassandra\/cassandra-introduction-features-30103666\" rel=\"nofollow\">slideshare.net<\/a><\/td>\n<\/tr>\n<tr>\n<td>Data store<\/td>\n<td><strong>DynamoDB<\/strong>\u00a0&#8211; Amazon \u7684\u6587\u6863\u6570\u636e\u5e93<\/td>\n<td><a href=\"http:\/\/www.read.seas.harvard.edu\/~kohler\/class\/cs239-w08\/decandia07dynamo.pdf\" rel=\"nofollow\">harvard.edu<\/a><\/td>\n<\/tr>\n<tr>\n<td>Data store<\/td>\n<td><strong>MongoDB<\/strong>\u00a0&#8211; \u6587\u6863\u6570\u636e\u5e93<\/td>\n<td><a href=\"http:\/\/www.slideshare.net\/mdirolf\/introduction-to-mongodb\" rel=\"nofollow\">slideshare.net<\/a><\/td>\n<\/tr>\n<tr>\n<td>Data store<\/td>\n<td><strong>Spanner<\/strong>\u00a0&#8211; Google \u7684\u5168\u7403\u5206\u5e03\u6570\u636e\u5e93<\/td>\n<td><a href=\"http:\/\/research.google.com\/archive\/spanner-osdi2012.pdf\" rel=\"nofollow\">research.google.com<\/a><\/td>\n<\/tr>\n<tr>\n<td>Data store<\/td>\n<td><strong>Memcached<\/strong>\u00a0&#8211; \u5206\u5e03\u5f0f\u5185\u5b58\u7f13\u5b58\u7cfb\u7edf<\/td>\n<td><a href=\"http:\/\/www.slideshare.net\/oemebamo\/introduction-to-memcached\" rel=\"nofollow\">slideshare.net<\/a><\/td>\n<\/tr>\n<tr>\n<td>Data store<\/td>\n<td><strong>Redis<\/strong>\u00a0&#8211; \u80fd\u591f\u6301\u4e45\u5316\u53ca\u5177\u6709\u503c\u7c7b\u578b\u7684\u5206\u5e03\u5f0f\u5185\u5b58\u7f13\u5b58\u7cfb\u7edf<\/td>\n<td><a href=\"http:\/\/www.slideshare.net\/dvirsky\/introduction-to-redis\" rel=\"nofollow\">slideshare.net<\/a><\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>File system<\/td>\n<td><strong>Google File System (GFS)<\/strong>\u00a0&#8211; \u5206\u5e03\u5f0f\u6587\u4ef6\u7cfb\u7edf<\/td>\n<td><a href=\"http:\/\/static.googleusercontent.com\/media\/research.google.com\/zh-CN\/us\/archive\/gfs-sosp2003.pdf\" rel=\"nofollow\">research.google.com<\/a><\/td>\n<\/tr>\n<tr>\n<td>File system<\/td>\n<td><strong>Hadoop File System (HDFS)<\/strong>\u00a0&#8211; GFS \u7684\u5f00\u6e90\u5b9e\u73b0<\/td>\n<td><a href=\"https:\/\/hadoop.apache.org\/docs\/r1.2.1\/hdfs_design.html\" rel=\"nofollow\">apache.org<\/a><\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>Misc<\/td>\n<td><strong>Chubby<\/strong>\u00a0&#8211; Google \u7684\u5206\u5e03\u5f0f\u7cfb\u7edf\u7684\u4f4e\u8026\u5408\u9501\u670d\u52a1<\/td>\n<td><a href=\"http:\/\/static.googleusercontent.com\/external_content\/untrusted_dlcp\/research.google.com\/en\/us\/archive\/chubby-osdi06.pdf\" rel=\"nofollow\">research.google.com<\/a><\/td>\n<\/tr>\n<tr>\n<td>Misc<\/td>\n<td><strong>Dapper<\/strong>\u00a0&#8211; \u5206\u5e03\u5f0f\u7cfb\u7edf\u8ddf\u8e2a\u57fa\u7840\u8bbe\u65bd<\/td>\n<td><a href=\"http:\/\/static.googleusercontent.com\/media\/research.google.com\/en\/\/pubs\/archive\/36356.pdf\" rel=\"nofollow\">research.google.com<\/a><\/td>\n<\/tr>\n<tr>\n<td>Misc<\/td>\n<td><strong>Kafka<\/strong>\u00a0&#8211; LinkedIn \u7684\u53d1\u5e03\u8ba2\u9605\u6d88\u606f\u7cfb\u7edf<\/td>\n<td><a href=\"http:\/\/www.slideshare.net\/mumrah\/kafka-talk-tri-hug\" rel=\"nofollow\">slideshare.net<\/a><\/td>\n<\/tr>\n<tr>\n<td>Misc<\/td>\n<td><strong>Zookeeper<\/strong>\u00a0&#8211; \u96c6\u4e2d\u7684\u57fa\u7840\u67b6\u6784\u548c\u534f\u8c03\u670d\u52a1<\/td>\n<td><a href=\"http:\/\/www.slideshare.net\/sauravhaloi\/introduction-to-apache-zookeeper\" rel=\"nofollow\">slideshare.net<\/a><\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>\u6dfb\u52a0\u66f4\u591a<\/td>\n<td><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E8%B4%A1%E7%8C%AE\">\u8d21\u732e<\/a><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3 dir=\"auto\"><a id=\"user-content-\u516c\u53f8\u7684\u7cfb\u7edf\u67b6\u6784\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E5%85%AC%E5%8F%B8%E7%9A%84%E7%B3%BB%E7%BB%9F%E6%9E%B6%E6%9E%84\" aria-hidden=\"true\"><\/a>\u516c\u53f8\u7684\u7cfb\u7edf\u67b6\u6784<\/h3>\n<table>\n<thead>\n<tr>\n<th>Company<\/th>\n<th>Reference(s)<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Amazon<\/td>\n<td><a href=\"http:\/\/highscalability.com\/amazon-architecture\" rel=\"nofollow\">Amazon \u7684\u67b6\u6784<\/a><\/td>\n<\/tr>\n<tr>\n<td>Cinchcast<\/td>\n<td><a href=\"http:\/\/highscalability.com\/blog\/2012\/7\/16\/cinchcast-architecture-producing-1500-hours-of-audio-every-d.html\" rel=\"nofollow\">\u6bcf\u5929\u4ea7\u751f 1500 \u5c0f\u65f6\u7684\u97f3\u9891<\/a><\/td>\n<\/tr>\n<tr>\n<td>DataSift<\/td>\n<td><a href=\"http:\/\/highscalability.com\/blog\/2011\/11\/29\/datasift-architecture-realtime-datamining-at-120000-tweets-p.html\" rel=\"nofollow\">\u6bcf\u79d2\u5b9e\u65f6\u6316\u6398 120000 \u6761 tweet<\/a><\/td>\n<\/tr>\n<tr>\n<td>DropBox<\/td>\n<td><a href=\"https:\/\/www.youtube.com\/watch?v=PE4gwstWhmc\" rel=\"nofollow\">\u6211\u4eec\u5982\u4f55\u7f29\u653e Dropbox<\/a><\/td>\n<\/tr>\n<tr>\n<td>ESPN<\/td>\n<td><a href=\"http:\/\/highscalability.com\/blog\/2013\/11\/4\/espns-architecture-at-scale-operating-at-100000-duh-nuh-nuhs.html\" rel=\"nofollow\">\u6bcf\u79d2\u64cd\u4f5c 100000 \u6b21<\/a><\/td>\n<\/tr>\n<tr>\n<td>Google<\/td>\n<td><a href=\"http:\/\/highscalability.com\/google-architecture\" rel=\"nofollow\">Google \u7684\u67b6\u6784<\/a><\/td>\n<\/tr>\n<tr>\n<td>Instagram<\/td>\n<td><a href=\"http:\/\/highscalability.com\/blog\/2011\/12\/6\/instagram-architecture-14-million-users-terabytes-of-photos.html\" rel=\"nofollow\">1400 \u4e07\u7528\u6237\uff0c\u8fbe\u5230\u5146\u7ea7\u522b\u7684\u7167\u7247\u5b58\u50a8<\/a><br \/>\n<a href=\"http:\/\/instagram-engineering.tumblr.com\/post\/13649370142\/what-powers-instagram-hundreds-of-instances\" rel=\"nofollow\">\u662f\u4ec0\u4e48\u5728\u9a71\u52a8 Instagram<\/a><\/td>\n<\/tr>\n<tr>\n<td>Justin.tv<\/td>\n<td><a href=\"http:\/\/highscalability.com\/blog\/2010\/3\/16\/justintvs-live-video-broadcasting-architecture.html\" rel=\"nofollow\">Justin.Tv \u7684\u76f4\u64ad\u5e7f\u64ad\u67b6\u6784<\/a><\/td>\n<\/tr>\n<tr>\n<td>Facebook<\/td>\n<td><a href=\"https:\/\/cs.uwaterloo.ca\/~brecht\/courses\/854-Emerging-2014\/readings\/key-value\/fb-memcached-nsdi-2013.pdf\" rel=\"nofollow\">Facebook \u7684\u53ef\u6269\u5c55 memcached<\/a><br \/>\n<a href=\"https:\/\/cs.uwaterloo.ca\/~brecht\/courses\/854-Emerging-2014\/readings\/data-store\/tao-facebook-distributed-datastore-atc-2013.pdf\" rel=\"nofollow\">TAO: Facebook \u793e\u4ea4\u56fe\u7684\u5206\u5e03\u5f0f\u6570\u636e\u5b58\u50a8<\/a><br \/>\n<a href=\"https:\/\/www.usenix.org\/legacy\/event\/osdi10\/tech\/full_papers\/Beaver.pdf\" rel=\"nofollow\">Facebook \u7684\u56fe\u7247\u5b58\u50a8<\/a><\/td>\n<\/tr>\n<tr>\n<td>Flickr<\/td>\n<td><a href=\"http:\/\/highscalability.com\/flickr-architecture\" rel=\"nofollow\">Flickr \u7684\u67b6\u6784<\/a><\/td>\n<\/tr>\n<tr>\n<td>Mailbox<\/td>\n<td><a href=\"http:\/\/highscalability.com\/blog\/2013\/6\/18\/scaling-mailbox-from-0-to-one-million-users-in-6-weeks-and-1.html\" rel=\"nofollow\">\u5728 6 \u5468\u5185\u4ece 0 \u5230 100 \u4e07\u7528\u6237<\/a><\/td>\n<\/tr>\n<tr>\n<td>Pinterest<\/td>\n<td><a href=\"http:\/\/highscalability.com\/blog\/2013\/4\/15\/scaling-pinterest-from-0-to-10s-of-billions-of-page-views-a.html\" rel=\"nofollow\">\u4ece\u96f6\u5230\u6bcf\u6708\u6570\u5341\u4ebf\u7684\u6d4f\u89c8\u91cf<\/a><br \/>\n<a href=\"http:\/\/highscalability.com\/blog\/2012\/5\/21\/pinterest-architecture-update-18-million-visitors-10x-growth.html\" rel=\"nofollow\">1800 \u4e07\u8bbf\u95ee\u7528\u6237\uff0c10 \u500d\u589e\u957f\uff0c12 \u540d\u5458\u5de5<\/a><\/td>\n<\/tr>\n<tr>\n<td>Playfish<\/td>\n<td><a href=\"http:\/\/highscalability.com\/blog\/2010\/9\/21\/playfishs-social-gaming-architecture-50-million-monthly-user.html\" rel=\"nofollow\">\u6708\u7528\u6237\u91cf 5000 \u4e07\u5e76\u5728\u4e0d\u65ad\u589e\u957f<\/a><\/td>\n<\/tr>\n<tr>\n<td>PlentyOfFish<\/td>\n<td><a href=\"http:\/\/highscalability.com\/plentyoffish-architecture\" rel=\"nofollow\">PlentyOfFish \u7684\u67b6\u6784<\/a><\/td>\n<\/tr>\n<tr>\n<td>Salesforce<\/td>\n<td><a href=\"http:\/\/highscalability.com\/blog\/2013\/9\/23\/salesforce-architecture-how-they-handle-13-billion-transacti.html\" rel=\"nofollow\">\u4ed6\u4eec\u6bcf\u5929\u5982\u4f55\u5904\u7406 13 \u4ebf\u7b14\u4ea4\u6613<\/a><\/td>\n<\/tr>\n<tr>\n<td>Stack Overflow<\/td>\n<td><a href=\"http:\/\/highscalability.com\/blog\/2009\/8\/5\/stack-overflow-architecture.html\" rel=\"nofollow\">Stack Overflow \u7684\u67b6\u6784<\/a><\/td>\n<\/tr>\n<tr>\n<td>TripAdvisor<\/td>\n<td><a href=\"http:\/\/highscalability.com\/blog\/2011\/6\/27\/tripadvisor-architecture-40m-visitors-200m-dynamic-page-view.html\" rel=\"nofollow\">40M \u8bbf\u95ee\u8005\uff0c200M \u9875\u9762\u6d4f\u89c8\u91cf\uff0c30TB \u6570\u636e<\/a><\/td>\n<\/tr>\n<tr>\n<td>Tumblr<\/td>\n<td><a href=\"http:\/\/highscalability.com\/blog\/2012\/2\/13\/tumblr-architecture-15-billion-page-views-a-month-and-harder.html\" rel=\"nofollow\">\u6bcf\u6708 150 \u4ebf\u7684\u6d4f\u89c8\u91cf<\/a><\/td>\n<\/tr>\n<tr>\n<td>Twitter<\/td>\n<td><a href=\"http:\/\/highscalability.com\/scaling-twitter-making-twitter-10000-percent-faster\" rel=\"nofollow\">Making Twitter 10000 percent faster<\/a><br \/>\n<a href=\"http:\/\/highscalability.com\/blog\/2011\/12\/19\/how-twitter-stores-250-million-tweets-a-day-using-mysql.html\" rel=\"nofollow\">\u6bcf\u5929\u4f7f\u7528 MySQL \u5b58\u50a82.5\u4ebf\u6761 tweet<\/a><br \/>\n<a href=\"http:\/\/highscalability.com\/blog\/2013\/7\/8\/the-architecture-twitter-uses-to-deal-with-150m-active-users.html\" rel=\"nofollow\">150M \u6d3b\u8dc3\u7528\u6237\uff0c300K QPS\uff0c22 MB\/S \u7684\u9632\u706b\u5899<\/a><br \/>\n<a href=\"https:\/\/www.infoq.com\/presentations\/Twitter-Timeline-Scalability\" rel=\"nofollow\">\u53ef\u6269\u5c55\u65f6\u95f4\u8868<\/a><br \/>\n<a href=\"https:\/\/www.youtube.com\/watch?v=5cKTP36HVgI\" rel=\"nofollow\">Twitter \u7684\u5927\u5c0f\u6570\u636e<\/a><br \/>\n<a href=\"https:\/\/www.youtube.com\/watch?v=z8LU0Cj6BOU\" rel=\"nofollow\">Twitter \u7684\u884c\u4e3a\uff1a\u89c4\u6a21\u8d85\u8fc7 1 \u4ebf\u7528\u6237<\/a><\/td>\n<\/tr>\n<tr>\n<td>Uber<\/td>\n<td><a href=\"http:\/\/highscalability.com\/blog\/2015\/9\/14\/how-uber-scales-their-real-time-market-platform.html\" rel=\"nofollow\">Uber \u5982\u4f55\u6269\u5c55\u81ea\u5df1\u7684\u5b9e\u65f6\u5316\u5e02\u573a<\/a><\/td>\n<\/tr>\n<tr>\n<td>WhatsApp<\/td>\n<td><a href=\"http:\/\/highscalability.com\/blog\/2014\/2\/26\/the-whatsapp-architecture-facebook-bought-for-19-billion.html\" rel=\"nofollow\">Facebook \u7528 190 \u4ebf\u7f8e\u5143\u8d2d\u4e70 WhatsApp \u7684\u67b6\u6784<\/a><\/td>\n<\/tr>\n<tr>\n<td>YouTube<\/td>\n<td><a href=\"https:\/\/www.youtube.com\/watch?v=w5WVu624fY8\" rel=\"nofollow\">YouTube \u7684\u53ef\u6269\u5c55\u6027<\/a><br \/>\n<a href=\"http:\/\/highscalability.com\/youtube-architecture\" rel=\"nofollow\">YouTube \u7684\u67b6\u6784<\/a><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3 dir=\"auto\"><a id=\"user-content-\u516c\u53f8\u5de5\u7a0b\u535a\u5ba2\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E5%85%AC%E5%8F%B8%E5%B7%A5%E7%A8%8B%E5%8D%9A%E5%AE%A2\" aria-hidden=\"true\"><\/a>\u516c\u53f8\u5de5\u7a0b\u535a\u5ba2<\/h3>\n<blockquote>\n<p dir=\"auto\">\u4f60\u5373\u5c06\u9762\u8bd5\u7684\u516c\u53f8\u7684\u67b6\u6784<\/p>\n<p dir=\"auto\">\u4f60\u9762\u5bf9\u7684\u95ee\u9898\u53ef\u80fd\u5c31\u6765\u81ea\u4e8e\u540c\u6837\u9886\u57df<\/p>\n<\/blockquote>\n<ul dir=\"auto\">\n<li><a href=\"http:\/\/nerds.airbnb.com\/\" rel=\"nofollow\">Airbnb Engineering<\/a><\/li>\n<li><a href=\"https:\/\/developer.atlassian.com\/blog\/\" rel=\"nofollow\">Atlassian Developers<\/a><\/li>\n<li><a href=\"http:\/\/cloudengineering.autodesk.com\/blog\/\" rel=\"nofollow\">Autodesk Engineering<\/a><\/li>\n<li><a href=\"https:\/\/aws.amazon.com\/blogs\/aws\/\" rel=\"nofollow\">AWS Blog<\/a><\/li>\n<li><a href=\"http:\/\/word.bitly.com\/\" rel=\"nofollow\">Bitly Engineering Blog<\/a><\/li>\n<li><a href=\"https:\/\/www.box.com\/blog\/engineering\/\" rel=\"nofollow\">Box Blogs<\/a><\/li>\n<li><a href=\"http:\/\/blog.cloudera.com\/blog\/\" rel=\"nofollow\">Cloudera Developer Blog<\/a><\/li>\n<li><a href=\"https:\/\/tech.dropbox.com\/\" rel=\"nofollow\">Dropbox Tech Blog<\/a><\/li>\n<li><a href=\"http:\/\/engineering.quora.com\/\" rel=\"nofollow\">Engineering at Quora<\/a><\/li>\n<li><a href=\"http:\/\/www.ebaytechblog.com\/\" rel=\"nofollow\">Ebay Tech Blog<\/a><\/li>\n<li><a href=\"https:\/\/blog.evernote.com\/tech\/\" rel=\"nofollow\">Evernote Tech Blog<\/a><\/li>\n<li><a href=\"http:\/\/codeascraft.com\/\" rel=\"nofollow\">Etsy Code as Craft<\/a><\/li>\n<li><a href=\"https:\/\/www.facebook.com\/Engineering\" rel=\"nofollow\">Facebook Engineering<\/a><\/li>\n<li><a href=\"http:\/\/code.flickr.net\/\" rel=\"nofollow\">Flickr Code<\/a><\/li>\n<li><a href=\"http:\/\/engineering.foursquare.com\/\" rel=\"nofollow\">Foursquare Engineering Blog<\/a><\/li>\n<li><a href=\"https:\/\/github.blog\/category\/engineering\" rel=\"nofollow\">GitHub Engineering Blog<\/a><\/li>\n<li><a href=\"http:\/\/googleresearch.blogspot.com\/\" rel=\"nofollow\">Google Research Blog<\/a><\/li>\n<li><a href=\"https:\/\/engineering.groupon.com\/\" rel=\"nofollow\">Groupon Engineering Blog<\/a><\/li>\n<li><a href=\"https:\/\/engineering.heroku.com\/\" rel=\"nofollow\">Heroku Engineering Blog<\/a><\/li>\n<li><a href=\"http:\/\/product.hubspot.com\/blog\/topic\/engineering\" rel=\"nofollow\">Hubspot Engineering Blog<\/a><\/li>\n<li><a href=\"http:\/\/highscalability.com\/\" rel=\"nofollow\">High Scalability<\/a><\/li>\n<li><a href=\"http:\/\/instagram-engineering.tumblr.com\/\" rel=\"nofollow\">Instagram Engineering<\/a><\/li>\n<li><a href=\"https:\/\/software.intel.com\/en-us\/blogs\/\" rel=\"nofollow\">Intel Software Blog<\/a><\/li>\n<li><a href=\"https:\/\/blogs.janestreet.com\/category\/ocaml\/\" rel=\"nofollow\">Jane Street Tech Blog<\/a><\/li>\n<li><a href=\"http:\/\/engineering.linkedin.com\/blog\" rel=\"nofollow\">LinkedIn Engineering<\/a><\/li>\n<li><a href=\"https:\/\/engineering.microsoft.com\/\" rel=\"nofollow\">Microsoft Engineering<\/a><\/li>\n<li><a href=\"https:\/\/blogs.msdn.microsoft.com\/pythonengineering\/\" rel=\"nofollow\">Microsoft Python Engineering<\/a><\/li>\n<li><a href=\"http:\/\/techblog.netflix.com\/\" rel=\"nofollow\">Netflix Tech Blog<\/a><\/li>\n<li><a href=\"https:\/\/devblog.paypal.com\/category\/engineering\/\" rel=\"nofollow\">Paypal Developer Blog<\/a><\/li>\n<li><a href=\"http:\/\/engineering.pinterest.com\/\" rel=\"nofollow\">Pinterest Engineering Blog<\/a><\/li>\n<li><a href=\"https:\/\/engineering.quora.com\/\" rel=\"nofollow\">Quora Engineering<\/a><\/li>\n<li><a href=\"http:\/\/www.redditblog.com\/\" rel=\"nofollow\">Reddit Blog<\/a><\/li>\n<li><a href=\"https:\/\/developer.salesforce.com\/blogs\/engineering\/\" rel=\"nofollow\">Salesforce Engineering Blog<\/a><\/li>\n<li><a href=\"https:\/\/slack.engineering\/\" rel=\"nofollow\">Slack Engineering Blog<\/a><\/li>\n<li><a href=\"https:\/\/labs.spotify.com\/\" rel=\"nofollow\">Spotify Labs<\/a><\/li>\n<li><a href=\"http:\/\/www.twilio.com\/engineering\" rel=\"nofollow\">Twilio Engineering Blog<\/a><\/li>\n<li><a href=\"https:\/\/engineering.twitter.com\/\" rel=\"nofollow\">Twitter Engineering<\/a><\/li>\n<li><a href=\"http:\/\/eng.uber.com\/\" rel=\"nofollow\">Uber Engineering Blog<\/a><\/li>\n<li><a href=\"http:\/\/yahooeng.tumblr.com\/\" rel=\"nofollow\">Yahoo Engineering Blog<\/a><\/li>\n<li><a href=\"http:\/\/engineeringblog.yelp.com\/\" rel=\"nofollow\">Yelp Engineering Blog<\/a><\/li>\n<li><a href=\"https:\/\/www.zynga.com\/blogs\/engineering\" rel=\"nofollow\">Zynga Engineering Blog<\/a><\/li>\n<\/ul>\n<h4 dir=\"auto\"><a id=\"user-content-\u6765\u6e90\u53ca\u5ef6\u4f38\u9605\u8bfb-15\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E6%9D%A5%E6%BA%90%E5%8F%8A%E5%BB%B6%E4%BC%B8%E9%98%85%E8%AF%BB-15\" aria-hidden=\"true\"><\/a>\u6765\u6e90\u53ca\u5ef6\u4f38\u9605\u8bfb<\/h4>\n<ul dir=\"auto\">\n<li><a href=\"https:\/\/github.com\/kilimchoi\/engineering-blogs\">kilimchoi\/engineering-blogs<\/a><\/li>\n<\/ul>\n<h2 dir=\"auto\"><a id=\"user-content-\u6b63\u5728\u5b8c\u5584\u4e2d\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E6%AD%A3%E5%9C%A8%E5%AE%8C%E5%96%84%E4%B8%AD\" aria-hidden=\"true\"><\/a>\u6b63\u5728\u5b8c\u5584\u4e2d<\/h2>\n<p dir=\"auto\">\u6709\u5174\u8da3\u52a0\u5165\u6dfb\u52a0\u4e00\u4e9b\u90e8\u5206\u6216\u8005\u5e2e\u52a9\u5b8c\u5584\u67d0\u4e9b\u90e8\u5206\u5417\uff1f<a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E8%B4%A1%E7%8C%AE\">\u52a0\u5165\u8fdb\u6765\u5427<\/a>\uff01<\/p>\n<ul dir=\"auto\">\n<li>\u4f7f\u7528 MapReduce \u8fdb\u884c\u5206\u5e03\u5f0f\u8ba1\u7b97<\/li>\n<li>\u4e00\u81f4\u6027\u54c8\u5e0c<\/li>\n<li>\u76f4\u63a5\u5b58\u50a8\u5668\u8bbf\u95ee\uff08DMA\uff09\u63a7\u5236\u5668<\/li>\n<li><a href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E8%B4%A1%E7%8C%AE\">\u8d21\u732e<\/a><\/li>\n<\/ul>\n<h2 dir=\"auto\"><a id=\"user-content-\u81f4\u8c22\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E8%87%B4%E8%B0%A2\" aria-hidden=\"true\"><\/a>\u81f4\u8c22<\/h2>\n<p dir=\"auto\">\u6574\u4e2a\u4ed3\u5e93\u90fd\u63d0\u4f9b\u4e86\u8bc1\u4e66\u548c\u6e90<\/p>\n<p dir=\"auto\">\u7279\u522b\u9e23\u8c22\uff1a<\/p>\n<ul dir=\"auto\">\n<li><a href=\"http:\/\/www.hiredintech.com\/system-design\/the-system-design-process\/\" rel=\"nofollow\">Hired in tech<\/a><\/li>\n<li><a href=\"https:\/\/www.amazon.com\/dp\/0984782850\/\" rel=\"nofollow\">Cracking the coding interview<\/a><\/li>\n<li><a href=\"http:\/\/highscalability.com\/\" rel=\"nofollow\">High scalability<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/checkcheckzz\/system-design-interview\">checkcheckzz\/system-design-interview<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/shashank88\/system_design\">shashank88\/system_design<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/mmcgrana\/services-engineering\">mmcgrana\/services-engineering<\/a><\/li>\n<li><a href=\"https:\/\/gist.github.com\/vasanthk\/485d1c25737e8e72759f\">System design cheat sheet<\/a><\/li>\n<li><a href=\"http:\/\/dancres.github.io\/Pages\/\" rel=\"nofollow\">A distributed systems reading list<\/a><\/li>\n<li><a href=\"http:\/\/www.puncsky.com\/blog\/2016-02-13-crack-the-system-design-interview\" rel=\"nofollow\">Cracking the system design interview<\/a><\/li>\n<\/ul>\n<h2 dir=\"auto\"><a id=\"user-content-\u8054\u7cfb\u65b9\u5f0f\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E8%81%94%E7%B3%BB%E6%96%B9%E5%BC%8F\" aria-hidden=\"true\"><\/a>\u8054\u7cfb\u65b9\u5f0f<\/h2>\n<p dir=\"auto\">\u6b22\u8fce\u8054\u7cfb\u6211\u8ba8\u8bba\u672c\u6587\u7684\u4e0d\u8db3\u3001\u95ee\u9898\u6216\u8005\u610f\u89c1\u3002<\/p>\n<p dir=\"auto\">\u53ef\u4ee5\u5728\u6211\u7684\u00a0<a href=\"https:\/\/github.com\/donnemartin\">GitHub \u4e3b\u9875<\/a>\u4e0a\u627e\u5230\u6211\u7684\u8054\u7cfb\u65b9\u5f0f<\/p>\n<h2 dir=\"auto\"><a id=\"user-content-\u8bb8\u53ef\" class=\"anchor\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/blob\/master\/README-zh-Hans.md#%E8%AE%B8%E5%8F%AF\" aria-hidden=\"true\"><\/a>\u8bb8\u53ef<\/h2>\n<div class=\"snippet-clipboard-content position-relative overflow-auto\">\n<pre><code>Creative Commons Attribution 4.0 International License (CC BY 4.0)\r\n\r\nhttp:\/\/creativecommons.org\/licenses\/by\/4.0\/<\/code><\/pre>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u539f\u6587\u5730\u5740 &nbsp; &nbsp; \u76ee<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"colormag_page_container_layout":"default_layout","colormag_page_sidebar_layout":"default_layout","footnotes":""},"categories":[],"tags":[118],"class_list":["post-5656","post","type-post","status-publish","format-standard","hentry","tag-02-"],"_links":{"self":[{"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/posts\/5656","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/comments?post=5656"}],"version-history":[{"count":0,"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/posts\/5656\/revisions"}],"wp:attachment":[{"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/media?parent=5656"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/categories?post=5656"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/tags?post=5656"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}