{"id":703,"date":"2018-03-21T15:00:41","date_gmt":"2018-03-21T07:00:41","guid":{"rendered":"https:\/\/blog.jsjs.org\/?p=703"},"modified":"2018-03-21T15:00:41","modified_gmt":"2018-03-21T07:00:41","slug":"mysql-fabric%e5%ae%9e%e7%8e%b0%e5%ad%a6%e4%b9%a0%e7%ac%94%e8%ae%b0","status":"publish","type":"post","link":"https:\/\/blog.jsjs.org\/?p=703","title":{"rendered":"Mysql Fabric\u5b9e\u73b0\u5b66\u4e60\u7b14\u8bb0"},"content":{"rendered":"<p>\u8f6c\u81ea\uff1a\u00a0http:\/\/my.oschina.net\/anthonyyau\/blog\/307165<\/p>\n<div>\n<div>Mysql Fabric\u7528\u6765\u7ba1\u7406mysql\u670d\u52a1\uff0c\u63d0\u4f9b\u6269\u5c55\u6027\u548c\u5bb9\u6613\u4f7f\u7528\u7684\u7cfb\u7edf\uff0c\u7ba1\u7406mysql\u5206\u7247\u548c\u9ad8\u53ef\u7528\u90e8\u7f72(\u5f53\u524d\u5b9e\u73b0\u4e86\u4e24\u4e2a\u7279\u6027\uff1a\u9ad8\u53ef\u7528\u548c\u4f7f\u7528\u6570\u636e\u5206\u7247\u7684\u6a2a\u5411\u6269\u5c55\uff0c\u80fd\u5355\u72ec\u4f7f\u7528\u6216\u7ed3\u5408\u4f7f\u7528\u8fd9\u4e24\u4e2a\u7279\u6027\u3002)\u3002<\/div>\n<div><\/div>\n<div>\u67b6\u6784\u56fe\uff1a<\/div>\n<div><a href=\"http:\/\/static.oschina.net\/uploads\/img\/201408\/28090958_N0bs.jpg\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/static.oschina.net\/uploads\/img\/201408\/28090958_N0bs.jpg\" alt=\"\" width=\"500\" height=\"265\" \/><\/a><\/div>\n<div><\/div>\n<div>\u5e94\u7528\u8bf7\u6c42\u4e00\u4e2a\u6269\u5c55\u7684mysql\u8fde\u63a5\u5668\u7248\u672c\uff0c\u4f7f\u7528XML-RPC\u534f\u8bae\u8bbf\u95eeFabric\uff0c\u5f53\u524d\u53ef\u4ee5\u4f7f\u7528python\u548cJ\u8fde\u63a5\u5668\u3002Fabric\u7ba1\u7406\u542f\u52a8GTIDs(\u5168\u5c40\u4e8b\u52a1\u6807\u8bc6)\u7684mysql\u96c6\u5408\uff0c\u68c0\u67e5\u548c\u7ef4\u62a4\u670d\u52a1\u5668\u4e4b\u95f4\u7684\u4e00\u81f4\u6027\u3002\u96c6\u5408\u4e2d\u7684\u670d\u52a1\u5668\u53eb\u9ad8\u53ef\u7528\u7ec4\u3002\u4e0d\u5c5e\u4e8eFabric\u9ad8\u53ef\u7528\u7ec4\u7684\u6210\u5458\u5b9e\u4f8b\uff0c\u53eb\u5907\u7528\u5b58\u50a8(backing store)\u3002<\/div>\n<div><\/div>\n<div>Fabric\u7ec4\u7ec7\u670d\u52a1\u5668\u5728\u4e00\u4e2a\u7ec4(\u53eb\u9ad8\u53ef\u7528\u7ec4)\uff0c\u7ba1\u7406\u4e0d\u540c\u5206\u7247\u6216\u7b80\u5355\u63d0\u4f9b\u9ad8\u53ef\u7528\u3002\u4f8b\u5982\u5982\u679c\u4f7f\u7528\u6807\u51c6\u5f02\u6b65\u590d\u5236\uff0cFabric\u53ef\u4ee5\u914d\u7f6e\u81ea\u52a8\u76d1\u63a7mysql\u670d\u52a1\u72b6\u6001\u3002\u5982\u679c\u7ec4\u4e2d\u5f53\u524dmaster\u9519\u8bef\uff0c\u7ec4\u4e2d\u6709\u4e00\u4e2a\u670d\u52a1\u5668\u80fd\u53d8\u6210master\uff0c\u5b83\u9009\u62e9\u4e00\u4e2a\u65b0\u7684\u670d\u52a1\u5668\u505a\u4e3amaster\u3002<\/div>\n<div><\/div>\n<div>\u9664\u4e86\u9ad8\u53ef\u7528\u64cd\u4f5c\u5982\u6545\u969c\u8f6c\u79fb\u548c\u5207\u6362\uff0cFabric\u4e5f\u5141\u8bb8\u5206\u7247\u64cd\u4f5c\uff0c\u5982\u5206\u7247\u521b\u5efa\u548c\u79fb\u9664\u3002<\/div>\n<div><\/div>\n<div>\u9ad8\u53ef\u7528\u548c\u6570\u636e\u5206\u7247\u5728\u4e24\u4e2a\u5c42\u5b9e\u73b0\uff1a<\/div>\n<div>1\u3001mysqlfabric\u8fdb\u7a0b\u5904\u7406\u4efb\u4f55\u7ba1\u7406\u8bf7\u6c42\uff0c\u63a5\u6536\u901a\u8fc7mysqlfabric\u547d\u4ee4\u884c\u63a5\u53e3\u6216\u5176\u4ed6\u652f\u6301XML\/RPC\u63a5\u53e3\u7684\u8fdb\u7a0b\u7684\u7ba1\u7406\u4efb\u52a1\u3002\u5f53\u4f7f\u7528HA\u7279\u6027\uff0c\u8be5\u8fdb\u7a0b\u80fd\u76d1\u63a7master\u670d\u52a1\u5668\uff0c\u5f53master\u6545\u969c\u65f6\u80fd\u8fdb\u884c\u6545\u969c\u6062\u590d\uff0c\u63d0\u5347\u4e00\u4e2aslave\u4e3a\u65b0\u7684master\u3002mysql\u670d\u52a1\u5668\u7684\u72b6\u6001\u5b58\u50a8\u5728state store(\u4e00\u4e2amysql\u6570\u636e\u5e93\u5b9e\u4f8b)\uff0cmysqlfabric\u8fdb\u7a0b\u4e5f\u590d\u5236\u7ed9\u8fde\u63a5\u5668\u63d0\u4f9b\u5b58\u50a8\u8def\u7531\u4fe1\u606f\uff1b<\/div>\n<div><\/div>\n<div>2\u3001\u5e94\u7528\u4ee3\u7801\u4f7f\u7528mysql\u8fde\u63a5\u5668\u8bbf\u95ee\u6570\u636e\u5e93\uff0c\u4ece\u7279\u5b9a\u7a0b\u5e8f\u8bed\u8a00\u8f6c\u6362\u6307\u4ee4\u5230Mysql wire protocol\uff0c\u4e0emysql\u670d\u52a1\u5668\u8fdb\u7a0b\u8fdb\u884c\u901a\u4fe1\u3002Fabric-aware\u8fde\u63a5\u5668\u5b58\u50a8\u4ecemysql fabric\u53d6\u6765\u7684\u8def\u7531\u4fe1\u606f\u7f13\u5b58\uff0c\u4f7f\u7528\u8fd9\u4e9b\u4fe1\u606f\u53d1\u9001\u4e8b\u52a1\u6216\u67e5\u8be2\u5230\u6b63\u786e\u7684mysql\u670d\u52a1\u5668\u3002\u5f53\u524d\u652f\u6301Fabric-aware mysql\u8fde\u63a5\u5668\u7684\u6709PHP\u3001python\u548cJava\u3002\u8be5\u65b9\u6cd5\u907f\u514d\u4e86\u53d1\u9001\u6240\u6709\u67e5\u8be2\u5230proxy\u5f15\u8d77\u7684\u74f6\u9888\u3002<\/div>\n<div><\/div>\n<div>\u9ad8\u53ef\u7528\uff1a<\/div>\n<div>Mysql Fabric\u4f7f\u7528HA group\u7ba1\u7406\u4e24\u4e2a\u6216\u66f4\u591aMysql\u670d\u52a1\u5668\uff0c\u5728\u4efb\u4f55\u65f6\u5019\uff0c\u4ec5\u4ec5\u4e00\u4e2a\u670d\u52a1\u5668\u4e3aPrimary(mysql master)\uff0c\u5176\u4ed6\u670d\u52a1\u5668\u4e3aSecondaries(mysql slave)\u3002\u4f7f\u7528Mysql\u590d\u5236(\u5f02\u6b65\u6216\u534a\u540c\u6b65)\u5141\u8bb8\u6570\u636e\u5b89\u5168\u7684\u590d\u5236\u3002<\/div>\n<div><a href=\"http:\/\/static.oschina.net\/uploads\/img\/201408\/28090958_IQTY.jpg\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/static.oschina.net\/uploads\/img\/201408\/28090958_IQTY.jpg\" alt=\"\" width=\"500\" height=\"263\" \/><\/a><\/div>\n<div><\/div>\n<div>mysql fabric\u63d0\u4f9b\u4e24\u4e2aHA\u53ef\u7528\u6027\u529f\u80fd\uff1a<\/div>\n<div>1\u3001\u6545\u969c\u68c0\u6d4b\u548c\u63d0\u5347<\/div>\n<div>fabric\u8fdb\u7a0b\u76d1\u63a7HA group\u4e2d\u7684mysql master\uff0c\u5982\u679c\u670d\u52a1\u5668\u9519\u8bef\uff0c\u5c06\u9009\u62e9\u4e00\u4e2aslave\u5e76\u63d0\u5347\u5230master(HA group\u4e2d\u6240\u6709\u5176\u4ed6slave\u5c06\u4ece\u65b0master\u63a5\u6536\u66f4\u65b0)\uff1b<\/div>\n<div><\/div>\n<div>2\u3001\u8def\u7531\u6570\u636e\u5e93\u8bf7\u6c42<\/div>\n<div>\u5f53fabric\u63d0\u5347\u4e00\u4e2a\u65b0\u7684master\uff0c\u66f4\u65b0state store\uff0c\u65b0\u7684\u8def\u7531\u4fe1\u606f\u5c06\u6536\u5f55\u5230\u8fde\u63a5\u5668\uff0c\u5e76\u5b58\u50a8\u5230\u7f13\u5b58\u4e2d\u3002\u901a\u8fc7\u8fd9\u79cd\u65b9\u5f0f\uff0c\u5e94\u7528\u4e0d\u9700\u8981\u77e5\u9053\u62d3\u6251\u6539\u53d8\u548c\u5199\u8bf7\u6c42\u9700\u8981\u53d1\u9001\u5230\u4e0d\u540c\u7684\u76ee\u6807\u3002<\/div>\n<div><\/div>\n<div><a href=\"http:\/\/static.oschina.net\/uploads\/img\/201408\/28090958_TXud.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/static.oschina.net\/uploads\/img\/201408\/28090958_TXud.png\" alt=\"\" width=\"500\" height=\"272\" \/><\/a><\/div>\n<div><\/div>\n<div>\u6a2a\u5411\u6269\u5c55-\u5206\u7247\uff1a<\/div>\n<div>\u5f53\u56e0\u5355\u4e2aMysql\u670d\u52a1\u5668(\u6216HA group)\u56e0\u5b58\u50a8\u5bb9\u91cf\u6216\u5199\u6027\u80fd\u9650\u5236\uff0cmysql fabric\u80fd\u4f7f\u7528\u6a2a\u5411\u6269\u5c55\u6570\u636e\u5e93\u670d\u52a1\uff0c\u5206\u5272\u6570\u636e\u5230\u591a\u4e2amysql\u670d\u52a1\u5668\u7ec4\u3002\u6bcf\u4e2a\u7ec4\u53ef\u4ee5\u662f\u5355\u4e2aMysql\u5b9e\u4f8b\u6216HA group\u3002<\/div>\n<div><a href=\"http:\/\/static.oschina.net\/uploads\/img\/201408\/28090959_lkZ0.jpg\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/static.oschina.net\/uploads\/img\/201408\/28090959_lkZ0.jpg\" alt=\"\" width=\"500\" height=\"267\" \/><\/a><\/div>\n<div><\/div>\n<div>\u7531\u7ba1\u7406\u5458\u51b3\u5b9a\u6570\u636e\u5728\u670d\u52a1\u5668\u4e4b\u95f4\u600e\u6837\u8fdb\u884c\u5206\u7247\uff0c\u521b\u5efa\u5206\u7247\u6620\u5c04\u3002<\/div>\n<div><\/div>\n<div>fabric\u652f\u6301\u4e24\u79cdshard key\u65b9\u6cd5\uff1a<\/div>\n<div>1\u3001HASH<\/div>\n<div>2\u3001RANGE<\/div>\n<div><\/div>\n<div>\n<div>\u5f53\u5e94\u7528\u9700\u8981\u8bbf\u95ee\u5206\u7247\u6570\u636e\u5e93\uff0c\u9700\u8981\u6307\u5b9asharding key\uff0cFabric-aware\u8fde\u63a5\u5668\u5c06\u5e94\u7528\u6b63\u786e\u7684range\u6216hash\u6620\u5c04\u548c\u8def\u7531\u4e8b\u52a1\u5230\u6b63\u786e\u5206\u7247\uff1b<\/div>\n<div><\/div>\n<div>mysql fabric\u80fd\u5206\u79bb\u4e00\u4e2a\u5b58\u5728\u7684\u5206\u7247\u5230\u4e24\u4e2a\u65b0\u7684\u5206\u7247\u548c\u66f4\u65b0state store\uff0c\u540c\u65f6\u7f13\u5b58\u8def\u7531\u6570\u636e\u5230\u8fde\u63a5\u5668\u3002\u540c\u65f6\u4e5f\u652f\u6301\u4ece\u4e00\u4e2aHA group\u79fb\u52a8\u5206\u7247\u5230\u53e6\u5916\u4e00\u4e2amysql\u670d\u52a1\u7ec4\u3002<\/div>\n<\/div>\n<div><\/div>\n<div><a href=\"http:\/\/static.oschina.net\/uploads\/img\/201408\/28090959_KjZI.jpg\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/static.oschina.net\/uploads\/img\/201408\/28090959_KjZI.jpg\" alt=\"\" width=\"500\" height=\"265\" \/><\/a><\/div>\n<div><\/div>\n<div>\u4e00\u4e2a\u5355\u4e8b\u52a1\u6216\u67e5\u8be2\u4ec5\u4ec5\u8bbf\u95ee\u5230\u5355\u4e2ashard\uff0c\u91cd\u8981\u7684\u9009\u62e9shard keys\u57fa\u4e8e\u7406\u89e3\u6570\u636e\u548c\u5e94\u7528\u8bbf\u95ee\u6a21\u5f0f\u3002<\/div>\n<div><\/div>\n<div>global tables\u5199\u5230&#8217;global group&#8217;\uff0c\u4efb\u4f55\u9644\u52a0\u6216\u6539\u53d8\u5230\u8fd9\u4e9b\u8868\u7684\u6570\u636e\u5c06\u81ea\u52a8\u590d\u5236\u5230\u6240\u6709\u5176\u4ed6\u7ec4\u3002\u6a21\u5f0f\u6539\u53d8\u4e5f\u5c5e\u4e8eglobal group\uff0c\u590d\u5236\u5230\u6240\u6709\u5176\u4ed6\u670d\u52a1\u5668\uff0c\u786e\u4fdd\u4e00\u81f4\u6027\u3002<\/div>\n<div><a href=\"http:\/\/static.oschina.net\/uploads\/img\/201408\/28090959_iUYE.jpg\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/static.oschina.net\/uploads\/img\/201408\/28090959_iUYE.jpg\" alt=\"\" width=\"500\" height=\"268\" \/><\/a><\/div>\n<div><\/div>\n<div>\u5206\u7247\u67b6\u6784\u56fe\uff1a<\/div>\n<div><a href=\"http:\/\/static.oschina.net\/uploads\/img\/201408\/28090959_ALPa.jpg\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/static.oschina.net\/uploads\/img\/201408\/28090959_ALPa.jpg\" alt=\"\" width=\"500\" height=\"266\" \/><\/a><\/div>\n<div><\/div>\n<div>Fabric\u4f7f\u7528python\u8bed\u8a00\u7f16\u5199\uff0c\u5305\u62ec\u4e00\u4e2a\u7279\u6b8a\u7684\u5e93\u5b9e\u73b0\u6240\u6709\u529f\u80fd\u3002\u4e0eFabric\u4ea4\u4e92\uff0c\u4e00\u4e2a\u7279\u6b8a\u7684\u5de5\u5177mysqlfabric\u63d0\u4f9b\u4e00\u5957\u547d\u4ee4\uff0c\u4f7f\u7528\u5b83\u521b\u5efa\u548c\u7ba1\u7406\u7ec4\uff0c\u5b9a\u4e49\u548c\u7ef4\u62a4\u5206\u7247\u7b49\u3002<\/div>\n<div><\/div>\n<div>Fabric\u524d\u63d0\u9700\u6c42\uff1a<\/div>\n<div>1\u3001Mysql server\u7248\u672c&gt;= 5.6.10\uff0c\u9700\u8981\u652f\u6301GTID\uff1b<\/div>\n<div>2\u3001Python\u7248\u672c\u00a0&gt;=\u00a0 \u00a02.6\uff1b<\/div>\n<div>3\u3001python\u8fde\u63a5\u5668\u00a0&gt;=\u00a0 \u00a01.2.1\uff0cJ\u8fde\u63a5\u5668\u00a0&gt;=\u00a0 \u00a05.1.27\uff1b<\/div>\n<div>4\u3001\u4e00\u4e2amysql\u5b9e\u4f8b(mysql\u7248\u672c\u5fc5\u987b\u4e3a5.6\u6216\u4ee5\u4e0a\u7248\u672c)\u7528\u4e8e\u5b89\u88c5backing store\uff0c\u8be5\u670d\u52a1\u4e0d\u662fFabric HA\u7ec4\u7684\u6210\u5458\uff1b<\/div>\n<div>5\u3001\u5e94\u7528\u5229\u7528Fabric\uff0c\u5fc5\u987b\u6709\u4e00\u4e2aFabric-aware\u8fde\u63a5\u5668\u5b89\u88c5\u5728\u8fd0\u884c\u5e94\u7528\u7684\u7cfb\u7edf\u4e0a\uff1b<\/div>\n<div><\/div>\n<div>\u5b89\u88c5Mysql Fabric\uff1a<\/div>\n<div>\u73af\u5883\uff1a<\/div>\n<div><a href=\"http:\/\/static.oschina.net\/uploads\/img\/201408\/28090959_JFP9.png\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" src=\"http:\/\/static.oschina.net\/uploads\/img\/201408\/28090959_JFP9.png\" alt=\"\" \/><\/a><\/div>\n<div><\/div>\n<div>\u4e0b\u8f7dFabric\u94fe\u63a5\uff1a<\/div>\n<div><a href=\"http:\/\/cdn.mysql.com\/Downloads\/MySQLGUITools\/mysql-utilities-1.4.4.tgz\" target=\"_blank\" rel=\"noopener\">http:\/\/dev.mysql.com\/get\/Downloads\/MySQLGUITools\/mysql-utilities-1.4.4.tgz<\/a><\/div>\n<div><\/div>\n<div>\u4e0b\u8f7d\u9875\u9762\uff1a<\/div>\n<div><a href=\"http:\/\/dev.mysql.com\/downloads\/tools\/utilities\" target=\"_blank\" rel=\"noopener\">http:\/\/dev.mysql.com\/downloads\/tools\/utilities<\/a><\/div>\n<div><\/div>\n<div>\u5b89\u88c5\uff1a<\/div>\n<div>\n<div>\n<pre class=\"prettyprint linenums prettyprinted\"><\/pre>\n<ol class=\"linenums\">\n<li class=\"L0\"><code class=\"language-sh\"><span class=\"pln\">tar xvf mysql<\/span><span class=\"pun\">-<\/span><span class=\"pln\">utilities<\/span><span class=\"pun\">-<\/span><span class=\"lit\">1.4<\/span><span class=\"pun\">.<\/span><span class=\"lit\">4.tgz<\/span><\/code><\/li>\n<li class=\"L1\"><code class=\"language-sh\"><span class=\"pln\">cd mysql<\/span><span class=\"pun\">-<\/span><span class=\"pln\">utilities<\/span><span class=\"pun\">-<\/span><span class=\"lit\">1.4<\/span><span class=\"pun\">.<\/span><span class=\"lit\">4<\/span><\/code><\/li>\n<li class=\"L2\"><code class=\"language-sh\"><span class=\"pln\">python setup<\/span><span class=\"pun\">.<\/span><span class=\"pln\">py install<\/span><\/code><\/li>\n<\/ol>\n<\/div>\n<\/div>\n<div><\/div>\n<div>\u914d\u7f6eMysql Fabric\uff1a<\/div>\n<div>1\u3001\u9700\u8981\u521b\u5efa\u4e00\u4e2a\u8d26\u53f7\u8bbf\u95eebacking store\uff0c\u7528\u6237\u8d26\u53f7\u5bf9\u6570\u636e\u5e93fabric\u5fc5\u987b\u6709\u5b8c\u5168\u6743\u9650\uff1a<\/div>\n<div>\n<div>\n<pre class=\"prettyprint linenums prettyprinted\"><\/pre>\n<ol class=\"linenums\">\n<li class=\"L0\"><code class=\"language-sql\"><span class=\"com\"># mysql -uroot -h172.17.0.49 -p<\/span><\/code><\/li>\n<li class=\"L1\"><code class=\"language-sql\"><span class=\"typ\">MySQL<\/span><span class=\"pln\">\u00a0<\/span><span class=\"pun\">[(<\/span><span class=\"pln\">none<\/span><span class=\"pun\">)]&gt;<\/span><span class=\"pln\">\u00a0grant all on fabric<\/span><span class=\"pun\">.*<\/span><span class=\"pln\">\u00a0to fabric@<\/span><span class=\"str\">'172.17.42.1'<\/span><span class=\"pln\">\u00a0identified\u00a0<\/span><span class=\"kwd\">by<\/span><span class=\"pln\">\u00a0<\/span><span class=\"str\">'fabric@123'<\/span><span class=\"pun\">;<\/span><\/code><\/li>\n<\/ol>\n<\/div>\n<\/div>\n<div><\/div>\n<div>\u8981\u4fdd\u8bc1\u7528\u6237root@&#8217;%&#8217;\u6709with grant option\u6388\u6743\uff0c\u4e0d\u7136\u4e0d\u80fd\u518d\u7ed9\u5176\u4ed6\u7528\u6237\u8fdb\u884c\u6388\u6743\u3002<\/div>\n<div>172.17.42.1\u4e3a\u8fd0\u884cFabric Node\u7684\u670d\u52a1\u5668IP\u5730\u5740\uff0c\u6839\u636e\u5b9e\u9645\u60c5\u51b5\u8fdb\u884c\u66ff\u6362\uff0c\u8d26\u53f7\u548c\u5bc6\u7801\u4e5f\u6839\u636e\u5b9e\u9645\u60c5\u51b5\u8fdb\u884c\u66ff\u6362\u3002<\/div>\n<div><\/div>\n<div>2\u3001\u5bf9fabric\u8fdb\u884c\u7ba1\u7406\u7684\u6240\u6709mysql\u670d\u52a1\u5668\uff0c\u9700\u8981\u5bf9\u6240\u6709\u6570\u636e\u5e93\u521b\u5efa\u62e5\u6709\u5b8c\u5168\u6743\u9650\u7684\u7528\u6237\uff0cMysql Fabric\u4f7f\u7528\u540c\u6837\u7684\u7528\u6237\u5e10\u6237\u8bbf\u95ee\u5230\u6240\u6709Mysql\u670d\u52a1\u5668\u8fdb\u884c\u7ba1\u7406\uff1a<\/div>\n<div>\n<div>\n<pre class=\"prettyprint linenums prettyprinted\"><\/pre>\n<ol class=\"linenums\">\n<li class=\"L0\"><code class=\"language-c\"><span class=\"com\"># mysql -uroot -h172.17.0.50 -padmin@123<\/span><\/code><\/li>\n<li class=\"L1\"><code class=\"language-c\"><span class=\"typ\">MySQL<\/span><span class=\"pln\">\u00a0<\/span><span class=\"pun\">[(<\/span><span class=\"pln\">none<\/span><span class=\"pun\">)]&gt;<\/span><span class=\"pln\">\u00a0grant all on\u00a0<\/span><span class=\"pun\">*.*<\/span><span class=\"pln\">\u00a0to fabric@<\/span><span class=\"str\">'172.17.42.1'<\/span><span class=\"pln\">\u00a0identified by\u00a0<\/span><span class=\"str\">'fabric@456'<\/span><span class=\"pun\">;<\/span><\/code><\/li>\n<li class=\"L2\"><code class=\"language-c\"><\/code><\/li>\n<li class=\"L3\"><code class=\"language-c\"><span class=\"com\"># mysql -uroot -h172.17.0.47 -padmin@123<\/span><\/code><\/li>\n<li class=\"L4\"><code class=\"language-c\"><span class=\"typ\">MySQL<\/span><span class=\"pln\">\u00a0<\/span><span class=\"pun\">[(<\/span><span class=\"pln\">none<\/span><span class=\"pun\">)]&gt;<\/span><span class=\"pln\">\u00a0grant all on\u00a0<\/span><span class=\"pun\">*.*<\/span><span class=\"pln\">\u00a0to fabric@<\/span><span class=\"str\">'172.17.42.1'<\/span><span class=\"pln\">\u00a0identified by\u00a0<\/span><span class=\"str\">'fabric@456'<\/span><span class=\"pun\">;<\/span><\/code><\/li>\n<li class=\"L5\"><code class=\"language-c\"><span class=\"typ\">Query<\/span><span class=\"pln\">\u00a0OK<\/span><span class=\"pun\">,<\/span><span class=\"pln\">\u00a0<\/span><span class=\"lit\">0<\/span><span class=\"pln\">\u00a0rows affected\u00a0<\/span><span class=\"pun\">(<\/span><span class=\"lit\">0.00<\/span><span class=\"pln\">\u00a0sec<\/span><span class=\"pun\">)<\/span><\/code><\/li>\n<li class=\"L6\"><code class=\"language-c\"><\/code><\/li>\n<li class=\"L7\"><code class=\"language-c\"><span class=\"com\"># mysql -uroot -h172.17.0.48 -padmin@123<\/span><\/code><\/li>\n<li class=\"L8\"><code class=\"language-c\"><span class=\"typ\">MySQL<\/span><span class=\"pln\">\u00a0<\/span><span class=\"pun\">[(<\/span><span class=\"pln\">none<\/span><span class=\"pun\">)]&gt;<\/span><span class=\"pln\">\u00a0grant all on\u00a0<\/span><span class=\"pun\">*.*<\/span><span class=\"pln\">\u00a0to fabric@<\/span><span class=\"str\">'172.17.42.1'<\/span><span class=\"pln\">\u00a0identified by\u00a0<\/span><span class=\"str\">'fabric@456'<\/span><span class=\"pun\">;<\/span><\/code><\/li>\n<li class=\"L9\"><code class=\"language-c\"><span class=\"typ\">Query<\/span><span class=\"pln\">\u00a0OK<\/span><span class=\"pun\">,<\/span><span class=\"pln\">\u00a0<\/span><span class=\"lit\">0<\/span><span class=\"pln\">\u00a0rows affected\u00a0<\/span><span class=\"pun\">(<\/span><span class=\"lit\">0.00<\/span><span class=\"pln\">\u00a0sec<\/span><span class=\"pun\">)<\/span><\/code><\/li>\n<\/ol>\n<\/div>\n<\/div>\n<div><\/div>\n<div>\u5efa\u8bae\u4e0d\u8981\u4f7f\u7528root\uff0c\u4e3afabric\u521b\u5efa\u5355\u72ec\u7684\u8d26\u53f7\u3002<\/div>\n<div><\/div>\n<div>3\u3001\u4fee\u6539fabric\u914d\u7f6e\u6587\u4ef6\uff1a<\/div>\n<div>\u9ed8\u8ba4\u914d\u7f6e\u6587\u4ef6\uff1a\/usr\/local\/etc\/mysql\/fabric.cfg<\/div>\n<div>\u5728[storage]\u6bb5\u8bbe\u7f6ebacking store\u7684\u7528\u6237\u8d26\u53f7\u548c\u5bc6\u7801\uff1b<\/div>\n<div>\u8be6\u7ec6\u914d\u7f6e\u6587\u4ef6\u5982\u4e0b\uff1a<\/div>\n<div>\n<div>\n<pre class=\"prettyprint linenums prettyprinted\"><\/pre>\n<ol class=\"linenums\">\n<li class=\"L0\"><code class=\"language-sh\"><span class=\"com\"># cat \/etc\/mysql\/fabric.cfg \u00a0 \u00a0<\/span><\/code><\/li>\n<li class=\"L1\"><code class=\"language-sh\"><span class=\"pun\">[<\/span><span class=\"pln\">DEFAULT<\/span><span class=\"pun\">] #\u5982\u679c\u8bf7\u6c42\u7684\u9009\u9879\u6ca1\u6709\u5728\u547d\u4ee4\u884c\u6307\u5b9a\uff0c\u6216\u6ca1\u6709\u5728\u914d\u7f6e\u6587\u4ef6\u627e\u5230\uff0cFabric\u5c06\u67e5\u770b\u8be5\u6bb5\u7684\u4fe1\u606f<\/span><\/code><\/li>\n<li class=\"L2\"><code class=\"language-sh\"><span class=\"pln\">prefix\u00a0<\/span><span class=\"pun\">=<\/span><span class=\"pln\">\u00a0<\/span><\/code><\/li>\n<li class=\"L3\"><code class=\"language-sh\"><span class=\"pln\">sysconfdir\u00a0<\/span><span class=\"pun\">=<\/span><span class=\"pln\">\u00a0<\/span><span class=\"pun\">\/<\/span><span class=\"pln\">etc #\u914d\u7f6e\u6587\u4ef6\u5b58\u653e\u76ee\u5f55<\/span><\/code><\/li>\n<li class=\"L4\"><code class=\"language-sh\"><span class=\"pln\">logdir\u00a0<\/span><span class=\"pun\">=<\/span><span class=\"pln\">\u00a0<\/span><span class=\"pun\">\/<\/span><span class=\"pln\">var<\/span><span class=\"pun\">\/<\/span><span class=\"pln\">log #\u65e5\u5fd7\u6587\u4ef6\u5b58\u50a8\u4f4d\u7f6e\uff0c\u7edd\u5bf9\u8def\u5f84\uff0c\u7531\u5b88\u62a4\u8fdb\u7a0b\u521b\u5efa<\/span><\/code><\/li>\n<li class=\"L5\"><code class=\"language-sh\"><\/code><\/li>\n<li class=\"L6\"><code class=\"language-sh\"><span class=\"pun\">[<\/span><span class=\"pln\">storage<\/span><span class=\"pun\">] #\u914d\u7f6ebacking store\u76f8\u5173\u7684\u9009\u9879<\/span><\/code><\/li>\n<li class=\"L7\"><code class=\"language-sh\"><span class=\"pln\">address\u00a0<\/span><span class=\"pun\">=<\/span><span class=\"pln\">\u00a0<\/span><span class=\"lit\">172.17<\/span><span class=\"pun\">.<\/span><span class=\"lit\">0.49<\/span><span class=\"pun\">:<\/span><span class=\"lit\">3306 #\u6307\u5b9astate store\u7684mysql\u5b9e\u4f8b\u5730\u5740\u548c\u7aef\u53e3<\/span><\/code><\/li>\n<li class=\"L8\"><code class=\"language-sh\"><span class=\"pln\">user\u00a0<\/span><span class=\"pun\">=<\/span><span class=\"pln\">\u00a0fabric #\u8fde\u63a5\u5230mysql\u5b9e\u4f8b\u7684\u7528\u6237\u540d<\/span><\/code><\/li>\n<li class=\"L9\"><code class=\"language-sh\"><span class=\"pln\">password\u00a0<\/span><span class=\"pun\">=<\/span><span class=\"pln\">\u00a0fabric@123 #\u8ba4\u8bc1\u5bc6\u7801\uff0c\u4e5f\u80fd\u8bbe\u7f6e\u7a7a\u5bc6\u7801<\/span><\/code><\/li>\n<li class=\"L0\"><code class=\"language-sh\"><span class=\"pln\">database\u00a0<\/span><span class=\"pun\">=<\/span><span class=\"pln\">\u00a0fabric #\u5b58\u50a8Fabric\u8868\u7684\u6570\u636e\u5e93<\/span><\/code><\/li>\n<li class=\"L1\"><code class=\"language-sh\"><span class=\"pln\">auth_plugin\u00a0<\/span><span class=\"pun\">=<\/span><span class=\"pln\">\u00a0mysql_native_password #\u8bbe\u7f6e\u4f7f\u7528\u7684\u8ba4\u8bc1\u63d2\u4ef6<\/span><\/code><\/li>\n<li class=\"L2\"><code class=\"language-sh\"><span class=\"pln\">connection_timeout\u00a0<\/span><span class=\"pun\">=<\/span><span class=\"pln\">\u00a0<\/span><span class=\"lit\">6 #\u4e2d\u65ad\u8bf7\u6c42\u4e4b\u524d\u7b49\u5f85\u7684\u6700\u5927\u65f6\u95f4\uff0c\u5355\u4f4d\u79d2<\/span><\/code><\/li>\n<li class=\"L3\"><code class=\"language-sh\"><span class=\"pln\">connection_attempts\u00a0<\/span><span class=\"pun\">=<\/span><span class=\"pln\">\u00a0<\/span><span class=\"lit\">6 #\u521b\u5efa\u8fde\u63a5\u7684\u6700\u5927\u5c1d\u8bd5\u6b21\u6570<\/span><\/code><\/li>\n<li class=\"L4\"><code class=\"language-sh\"><span class=\"pln\">connection_delay\u00a0<\/span><span class=\"pun\">=<\/span><span class=\"pln\">\u00a0<\/span><span class=\"lit\">1 #\u8fde\u7eed\u5c1d\u8bd5\u521b\u5efa\u8fde\u63a5\u4e4b\u95f4\u7684\u5ef6\u65f6\u65f6\u95f4\uff0c\u9ed8\u8ba41s<\/span><\/code><\/li>\n<li class=\"L5\"><code class=\"language-sh\"><\/code><\/li>\n<li class=\"L6\"><code class=\"language-sh\"><span class=\"pun\">[<\/span><span class=\"pln\">servers<\/span><span class=\"pun\">]<\/span><\/code><\/li>\n<li class=\"L7\"><code class=\"language-sh\"><span class=\"pln\">user\u00a0<\/span><span class=\"pun\">=<\/span><span class=\"pln\">\u00a0fabric<\/span><\/code><\/li>\n<li class=\"L8\"><code class=\"language-sh\"><span class=\"pln\">password\u00a0<\/span><span class=\"pun\">=<\/span><span class=\"pln\">\u00a0<\/span><\/code><\/li>\n<li class=\"L9\"><code class=\"language-sh\"><\/code><\/li>\n<li class=\"L0\"><code class=\"language-sh\"><span class=\"pun\">[<\/span><span class=\"pln\">protocol<\/span><span class=\"pun\">.<\/span><span class=\"pln\">xmlrpc<\/span><span class=\"pun\">] #\u8be5\u6bb5\u5b9a\u4e49Fabric\u63a5\u6536\u901a\u8fc7XML-RPC\u534f\u8bae\u7684\u8bf7\u6c42<\/span><\/code><\/li>\n<li class=\"L1\"><code class=\"language-sh\"><span class=\"pln\">address\u00a0<\/span><span class=\"pun\">=<\/span><span class=\"pln\">\u00a0<\/span><span class=\"lit\">0.0<\/span><span class=\"pun\">.<\/span><span class=\"lit\">0.0<\/span><span class=\"pun\">:<\/span><span class=\"lit\">32274 #\u6807\u8bc6Fabric\u4f7f\u7528\u7684\u4e3b\u673a\u548c\u7aef\u53e3\uff0c\u63a5\u6536XML-RPC\u8bf7\u6c42<\/span><\/code><\/li>\n<li class=\"L2\"><code class=\"language-sh\"><span class=\"pln\">threads\u00a0<\/span><span class=\"pun\">=<\/span><span class=\"pln\">\u00a0<\/span><span class=\"lit\">5 #XML-RPC\u4f1a\u8bdd\u7ebf\u7a0b\u7684\u5e76\u53d1\u521b\u5efa\u6570\uff0c\u51b3\u5b9a\u591a\u5c11\u5e76\u53d1\u8bf7\u6c42Fabric\u80fd\u63a5\u53d7<\/span><\/code><\/li>\n<li class=\"L3\"><code class=\"language-sh\"><span class=\"pln\">user\u00a0<\/span><span class=\"pun\">=<\/span><span class=\"pln\">\u00a0admin #\u7528\u6237\u540d\uff0c\u8ba4\u8bc1\u547d\u4ee4\u884c\u8bf7\u6c42<\/span><\/code><\/li>\n<li class=\"L4\"><code class=\"language-sh\"><span class=\"pln\">password\u00a0<\/span><span class=\"pun\">= #\u7528\u6237\u5bc6\u7801\uff0c\u8ba4\u8bc1\u547d\u4ee4\u884c\u8bf7\u6c42<\/span><\/code><\/li>\n<li class=\"L5\"><code class=\"language-sh\"><span class=\"pln\">disable_authentication\u00a0<\/span><span class=\"pun\">=<\/span><span class=\"pln\">\u00a0no #\u662f\u5426\u542f\u7528\u547d\u4ee4\u884c\u8bf7\u6c42\u9700\u8981\u8ba4\u8bc1\uff0c\u9ed8\u8ba4\u8981\u8ba4\u8bc1<\/span><\/code><\/li>\n<li class=\"L6\"><code class=\"language-sh\"><span class=\"pln\">realm\u00a0<\/span><span class=\"pun\">=<\/span><span class=\"pln\">\u00a0<\/span><span class=\"typ\">MySQL<\/span><span class=\"pln\">\u00a0<\/span><span class=\"typ\">Fabric<\/span><\/code><\/li>\n<li class=\"L7\"><code class=\"language-sh\"><span class=\"pln\">ssl_ca\u00a0<\/span><span class=\"pun\">=<\/span><span class=\"pln\">\u00a0 #\u4f7f\u7528ssl\u8ba4\u8bc1\u65b9\u5f0f\uff0c\u6307\u5b9aPEM\u683c\u5f0f\u6587\u4ef6\uff0c\u5305\u542b\u4fe1\u4efbSSL\u8bc1\u4e66\u7684\u5217\u8868<\/span><\/code><\/li>\n<li class=\"L8\"><code class=\"language-sh\"><span class=\"pln\">ssl_cert\u00a0<\/span><span class=\"pun\">=<\/span><span class=\"pln\">\u00a0 #SSL\u8ba4\u8bc1\u6587\u4ef6\uff0c\u7528\u4e8e\u521b\u5efa\u5b89\u5168\u7684\u8fde\u63a5<\/span><\/code><\/li>\n<li class=\"L9\"><code class=\"language-sh\"><span class=\"pln\">ssl_key\u00a0<\/span><span class=\"pun\">=<\/span><span class=\"pln\">\u00a0 #SSL key\u6587\u4ef6<\/span><\/code><\/li>\n<li class=\"L0\"><code class=\"language-sh\"><\/code><\/li>\n<li class=\"L1\"><code class=\"language-sh\"><span class=\"pun\">[<\/span><span class=\"pln\">executor<\/span><span class=\"pun\">] #\u901a\u8fc7XML-RPC\u63a5\u6536\u5230\u7684\u8bf7\u6c42\uff0c\u6620\u5c04\u5230\u7a0b\u5e8f\u80fd\u7acb\u5373\u6267\u884c\u6216\u901a\u8fc7\u961f\u5217\u6267\u884c\u8005,\u4fdd\u8bc1\u51b2\u7a81\u7684\u8bf7\u6c42\u5904\u7406\u6309\u5e8f\u6267\u884c\u3002\u901a\u5e38\u8bfb\u64cd\u4f5c\u7acb\u5373\u6267\u884c\u901a\u8fc7XML-RPC\u4f1a\u8bdd\u7ebf\u7a0b\uff0c\u5199\u64cd\u4f5c\u901a\u8fc7\u6267\u884c\u8005<\/span><\/code><\/li>\n<li class=\"L2\"><code class=\"language-sh\"><span class=\"pln\">executors\u00a0<\/span><span class=\"pun\">=<\/span><span class=\"pln\">\u00a0<\/span><span class=\"lit\">5 #\u591a\u5c11\u7ebf\u7a0b\u7528\u4e8e\u6267\u884c\u8005<\/span><\/code><\/li>\n<li class=\"L3\"><code class=\"language-sh\"><\/code><\/li>\n<li class=\"L4\"><code class=\"language-sh\"><span class=\"pun\">[<\/span><span class=\"pln\">logging<\/span><span class=\"pun\">] #\u8bbe\u7f6eFabric\u65e5\u5fd7\u4fe1\u606f\u8bb0\u5f55\u5230\u54ea\u91cc\uff0c\u5982\u679c\u4e0d\u662f\u5f00\u542f\u4e3a\u540e\u53f0\u8fdb\u7a0b\uff0c\u5c06\u6253\u5370\u65e5\u5fd7\u5230\u6807\u51c6\u8f93\u51fa<\/span><\/code><\/li>\n<li class=\"L5\"><code class=\"language-sh\"><span class=\"pln\">level\u00a0<\/span><span class=\"pun\">=<\/span><span class=\"pln\">\u00a0INFO #\u65e5\u5fd7\u7ea7\u522b\uff0c\u652f\u6301DEBUG\uff0cINFO\uff0cWARNING\uff0cERROR\uff0cCRITICAL<\/span><\/code><\/li>\n<li class=\"L6\"><code class=\"language-sh\"><span class=\"pln\">url\u00a0<\/span><span class=\"pun\">=<\/span><span class=\"pln\">\u00a0file<\/span><span class=\"pun\">:\/\/\/<\/span><span class=\"pln\">var<\/span><span class=\"pun\">\/<\/span><span class=\"pln\">log<\/span><span class=\"pun\">\/<\/span><span class=\"pln\">fabric<\/span><span class=\"pun\">.<\/span><span class=\"pln\">log #\u5b58\u50a8\u65e5\u5fd7\u7684\u6587\u4ef6\uff0c\u80fd\u4e3a\u7edd\u5bf9\u6216\u76f8\u5bf9\u8def\u5f84(\u5982\u662f\u76f8\u5bf9\u8def\u5f84\uff0c\u5c06\u53c2\u7167default\u6bb5logdir\u53c2\u6570\u6307\u5b9a\u7684\u65e5\u5fd7\u76ee\u5f55)<\/span><\/code><\/li>\n<li class=\"L7\"><code class=\"language-sh\"><\/code><\/li>\n<li class=\"L8\"><code class=\"language-sh\"><span class=\"pun\">[<\/span><span class=\"pln\">sharding<\/span><span class=\"pun\">] #Fabric\u4f7f\u7528mysqldump\u548cmysql\u5ba2\u6237\u7aef\u7a0b\u5e8f\uff0c<\/span><\/code>\u6267\u884c\u79fb\u52a8\u548c\u5206\u79bbshards\uff0c\u6307\u5b9a\u7a0b\u5e8f\u7684\u8def\u5f84<\/li>\n<li class=\"L9\"><code class=\"language-sh\"><span class=\"pln\">mysqldump_program\u00a0<\/span><span class=\"pun\">=<\/span><span class=\"pln\">\u00a0<\/span><span class=\"pun\">\/<\/span><span class=\"pln\">usr<\/span><span class=\"pun\">\/<\/span><span class=\"pln\">bin<\/span><span class=\"pun\">\/<\/span><span class=\"pln\">mysqldump<\/span><\/code><\/li>\n<li class=\"L0\"><code class=\"language-sh\"><span class=\"pln\">mysqlclient_program\u00a0<\/span><span class=\"pun\">=<\/span><span class=\"pln\">\u00a0<\/span><span class=\"pun\">\/<\/span><span class=\"pln\">usr<\/span><span class=\"pun\">\/<\/span><span class=\"pln\">bin<\/span><span class=\"pun\">\/<\/span><span class=\"pln\">mysql<\/span><\/code><\/li>\n<li class=\"L1\"><code class=\"language-sh\"><\/code><\/li>\n<li class=\"L2\"><code class=\"language-sh\"><span class=\"pun\">[<\/span><span class=\"pln\">statistics<\/span><span class=\"pun\">]<\/span><\/code><\/li>\n<li class=\"L3\"><code class=\"language-sh\"><span class=\"pln\">prune_time\u00a0<\/span><span class=\"pun\">=<\/span><span class=\"pln\">\u00a0<\/span><span class=\"lit\">3600 #\u5220\u9664\u5927\u4e8e1h\u7684<\/span><\/code>\u6761\u76ee<\/li>\n<li class=\"L3\"><code class=\"language-sh\"><span class=\"lit\">\u00a0<\/span><\/code><\/li>\n<li class=\"L4\"><code class=\"language-sh\"><\/code><\/li>\n<li class=\"L5\"><code class=\"language-sh\"><span class=\"pun\">[<\/span><span class=\"pln\">failure_tracking<\/span><span class=\"pun\">] #\u8fde\u63a5\u5668\u548c\u5176\u4ed6\u5916\u90e8\u5b9e\u4f53\u80fd\u62a5\u544a\u9519\u8bef\uff0cfabric\u4fdd\u6301\u8ddf\u8e2a\u670d\u52a1\u5668\u5065\u5eb7\u72b6\u6001\u548c\u91c7\u53d6\u76f8\u5e94\u7684\u884c\u4e3a\uff0c\u5982\u63d0\u5347\u4e00\u4e2a\u65b0\u7684master\uff0c\u5982\u679c\u4e00\u4e2a\u670d\u52a1\u5668\u65f6\u4e0d\u7a33\u5b9a\u7684\uff0c\u4f46\u4e0d\u662fmaster\uff0c\u5c06\u7b80\u5355\u7684\u6807\u8bb0\u4e3a\u9519\u8bef\u3002<\/span><\/code><\/li>\n<li class=\"L6\"><code class=\"language-sh\"><span class=\"pln\">notifications\u00a0<\/span><span class=\"pun\">=<\/span><span class=\"pln\">\u00a0<\/span><span class=\"lit\">300 #\u591a\u5c11\u6b21\u62a5\u544a\u9519\u8bef\u540e\uff0c\u5c06\u6807\u5fd7\u670d\u52a1\u5668\u4e0d\u53ef\u7528<\/span><\/code><\/li>\n<li class=\"L7\"><code class=\"language-sh\"><span class=\"pln\">notification_clients\u00a0<\/span><span class=\"pun\">=<\/span><span class=\"pln\">\u00a0<\/span><span class=\"lit\">50 #\u591a\u5c11\u4e0d\u540c\u6e90\u62a5\u544a\u9519\u8bef<\/span><\/code><\/li>\n<li class=\"L8\"><code class=\"language-sh\"><span class=\"pln\">notification_interval\u00a0<\/span><span class=\"pun\">=<\/span><span class=\"pln\">\u00a0<\/span><span class=\"lit\">60 #\u8bc4\u4f30\u9519\u8bef\u6570\u7684\u7edf\u8ba1\u65f6\u95f4<\/span><\/code><\/li>\n<li class=\"L9\"><code class=\"language-sh\"><span class=\"pln\">failover_interval\u00a0<\/span><span class=\"pun\">=<\/span><span class=\"pln\">\u00a0<\/span><span class=\"lit\">0 #\u4e3a\u4e86\u907f\u514d\u6574\u4e2a\u7cfb\u7edf\u4e0d\u53ef\u7528\uff0c\u81ea\u4e0a\u6b21\u63d0\u5347\u95f4\u9694\u591a\u5c11\u79d2\u540e\uff0c\u65b0master\u624d\u80fd\u9009\u53d6<\/span><\/code><\/li>\n<li class=\"L0\"><code class=\"language-sh\"><span class=\"pln\">detections\u00a0<\/span><span class=\"pun\">=<\/span><span class=\"pln\">\u00a0<\/span><span class=\"lit\">3 #\u4e3a\u4e86\u7f13\u89e3fabric\uff0c\u63d0\u4f9b\u5185\u5efa\u7684\u9519\u8bef\u68c0\u67e5\uff0c\u5982\u679c\u9519\u8bef\u68c0\u67e5\u542f\u52a8\u76d1\u63a7\u4e00\u4e2a\u7ec4\uff0c\u9700\u8981\u8fde\u7eed\u5c1d\u8bd53(\u9ed8\u8ba4)\u6b21\u8bbf\u95ee\u5f53\u524dmaster\u90fd\u9519\u8bef\u540e\uff0c\u624d\u80fd<\/span><\/code>\u63d0\u5347\u65b0master\uff0c<\/li>\n<li class=\"L1\"><code class=\"language-sh\"><span class=\"pln\">detection_interval\u00a0<\/span><span class=\"pun\">=<\/span><span class=\"pln\">\u00a0<\/span><span class=\"lit\">6 #\u8fde\u7eed\u68c0\u67e5\u4e4b\u95f4\u7684\u95f4\u9694\u65f6\u95f4<\/span><\/code><\/li>\n<li class=\"L2\"><code class=\"language-sh\"><span class=\"pln\">detection_timeout\u00a0<\/span><span class=\"pun\">=<\/span><span class=\"pln\">\u00a0<\/span><span class=\"lit\">1 #\u9519\u8bef\u68c0\u67e5\u7a0b\u5e8f\u5c1d\u8bd5\u8fde\u63a5\u5230\u4e00\u4e2a\u7ec4\u4e2d\u670d\u52a1\u5668\u7684\u8d85\u65f6\u65f6\u95f4<\/span><\/code><\/li>\n<li class=\"L3\"><code class=\"language-sh\"><span class=\"pln\">prune_time\u00a0<\/span><span class=\"pun\">=<\/span><span class=\"pln\">\u00a0<\/span><span class=\"lit\">3600 #\u5728\u9519\u8bef\u65e5\u5fd7\u4e2d\u4fdd\u7559\u591a\u4e45\u7684\u9519\u8bef\u4fe1\u606f<\/span><\/code><\/li>\n<li class=\"L3\"><code class=\"language-sh\"><span class=\"lit\">\u00a0<\/span><\/code><\/li>\n<li class=\"L4\"><code class=\"language-sh\"><\/code><\/li>\n<li class=\"L5\"><code class=\"language-sh\"><span class=\"pun\">[<\/span><span class=\"pln\">connector<\/span><span class=\"pun\">] #Fabric-aware\u8fde\u63a5\u5668\u8fde\u63a5\u5230Fabric\uff0c\u83b7\u53d6\u7ec4\u3001shards\u3001\u670d\u52a1\u5668\u7684\u4fe1\u606f\uff0c\u7f13\u5b58\u7ed3\u679c\u5230\u672c\u5730\u7684\u65f6\u957f\uff0c\u4ee5\u63d0\u9ad8\u6027\u80fd\u3002<\/span><\/code><\/li>\n<li class=\"L6\"><code class=\"language-sh\"><span class=\"pln\">ttl\u00a0<\/span><span class=\"pun\">=<\/span><span class=\"pln\">\u00a0<\/span><span class=\"lit\">1 #\u7f13\u5b58\u751f\u5b58\u65f6\u95f4\uff0c\u5355\u4f4ds\uff0c\u51b3\u5b9a\u591a\u957f\u65f6\u95f4\uff0c\u8fde\u63a5\u5668\u8003\u8651\u4e00\u4e2a\u4fe1\u606f\u4eceFabric\u83b7\u53d6\u662f\u6709\u6548\u7684<\/span><\/code><\/li>\n<li class=\"L7\"><code class=\"language-sh\"><\/code><\/li>\n<li class=\"L8\"><code class=\"language-sh\"><span class=\"pun\">[<\/span><span class=\"pln\">client<\/span><span class=\"pun\">]<\/span><\/code><\/li>\n<li class=\"L9\"><code class=\"language-sh\"><span class=\"pln\">password\u00a0<\/span><span class=\"pun\">=<\/span><span class=\"pln\">\u00a0<\/span><\/code><\/li>\n<\/ol>\n<\/div>\n<div><\/div>\n<\/div>\n<div>4\u3001State store\u521b\u5efafabric\u6570\u636e\u5e93\u548c\u76f8\u5173\u8868\uff1a\u4f7f\u7528\u4ee5\u4e0a\u6388\u6743\u7528\u6237<\/div>\n<div>\n<div>\n<pre class=\"prettyprint linenums prettyprinted\"><\/pre>\n<ol class=\"linenums\">\n<li class=\"L0\"><code class=\"language-c\"><span class=\"com\"># mysqlfabric manage setup --param=storage.user=fabric --param=storage.password=fabric@123<\/span><\/code><\/li>\n<li class=\"L1\"><code class=\"language-c\"><span class=\"pun\">[<\/span><span class=\"pln\">INFO<\/span><span class=\"pun\">]<\/span><span class=\"pln\">\u00a0<\/span><span class=\"lit\">1409095183.577010<\/span><span class=\"pln\">\u00a0<\/span><span class=\"pun\">-<\/span><span class=\"pln\">\u00a0<\/span><span class=\"typ\">MainThread<\/span><span class=\"pln\">\u00a0<\/span><span class=\"pun\">-<\/span><span class=\"pln\">\u00a0<\/span><span class=\"typ\">Initializing<\/span><span class=\"pln\">\u00a0persister<\/span><span class=\"pun\">:<\/span><span class=\"pln\">\u00a0user\u00a0<\/span><span class=\"pun\">(<\/span><span class=\"pln\">fabric<\/span><span class=\"pun\">),<\/span><span class=\"pln\">\u00a0server\u00a0<\/span><span class=\"pun\">(<\/span><span class=\"lit\">172.17<\/span><span class=\"pun\">.<\/span><span class=\"lit\">0.49<\/span><span class=\"pun\">:<\/span><span class=\"lit\">3306<\/span><span class=\"pun\">),<\/span><span class=\"pln\">\u00a0database\u00a0<\/span><span class=\"pun\">(<\/span><span class=\"pln\">fabric<\/span><span class=\"pun\">).<\/span><\/code><\/li>\n<li class=\"L2\"><code class=\"language-c\"><span class=\"typ\">Finishing<\/span><span class=\"pln\">\u00a0initial setup<\/span><\/code><\/li>\n<li class=\"L3\"><code class=\"language-c\"><span class=\"pun\">=======================<\/span><\/code><\/li>\n<li class=\"L4\"><code class=\"language-c\"><span class=\"typ\">Password<\/span><span class=\"pln\">\u00a0<\/span><span class=\"kwd\">for<\/span><span class=\"pln\">\u00a0admin user is not yet\u00a0<\/span><span class=\"typ\">set<\/span><span class=\"pun\">.<\/span><\/code><\/li>\n<li class=\"L5\"><code class=\"language-c\"><span class=\"typ\">Password<\/span><span class=\"pln\">\u00a0<\/span><span class=\"kwd\">for<\/span><span class=\"pln\">\u00a0admin<\/span><span class=\"pun\">\/<\/span><span class=\"pln\">xmlrpc<\/span><span class=\"pun\">:<\/span><span class=\"pln\">\u00a0<\/span><\/code><\/li>\n<li class=\"L6\"><code class=\"language-c\"><span class=\"typ\">Repeat<\/span><span class=\"pln\">\u00a0<\/span><span class=\"typ\">Password<\/span><span class=\"pun\">:<\/span><span class=\"pln\">\u00a0<\/span><\/code><\/li>\n<li class=\"L7\"><code class=\"language-c\"><span class=\"typ\">Password<\/span><span class=\"pln\">\u00a0<\/span><span class=\"typ\">set<\/span><span class=\"pun\">.<\/span><\/code><\/li>\n<\/ol>\n<\/div>\n<\/div>\n<div><\/div>\n<div>\u5982\u679cxmlrpc\u5bc6\u7801\u6ca1\u6709\u8bbe\u7f6e\uff0c\u5c06\u63d0\u793a\u8fdb\u884c\u8bbe\u7f6e\u3002<\/div>\n<div><\/div>\n<div>\u5982\u679c\u6570\u636e\u5e93\u5df2\u7ecf\u5b58\u5728\uff0c\u5c06\u62a5\u4ee5\u4e0b\u9519\uff1a<\/div>\n<div>[INFO] 1409095063.460048 &#8211; MainThread &#8211; Initializing persister: user (fabric), server (172.17.0.49:3306), database (fabric).<\/div>\n<div>Error: (&#8220;Command (CREATE DATABASE fabric, ()) failed: 1007 (HY000): Can&#8217;t create database &#8216;fabric&#8217;; database exists&#8221;, 1007)<\/div>\n<div><\/div>\n<div>5\u3001\u67e5\u770b\u521b\u5efa\u7684\u8868\uff1a<\/div>\n<div>\n<div>\n<pre class=\"prettyprint linenums prettyprinted\"><\/pre>\n<ol class=\"linenums\">\n<li class=\"L0\"><code class=\"language-sql\"><span class=\"com\"># mysql -ufabric -h172.17.0.49 -pfabric@123 -e \"show tables from fabric\";<\/span><\/code><\/li>\n<li class=\"L1\"><code class=\"language-sql\"><span class=\"pun\">+-------------------+<\/span><\/code><\/li>\n<li class=\"L2\"><code class=\"language-sql\"><span class=\"pun\">|<\/span><span class=\"pln\">\u00a0<\/span><span class=\"typ\">Tables_in_fabric<\/span><span class=\"pln\">\u00a0\u00a0<\/span><span class=\"pun\">|<\/span><\/code><\/li>\n<li class=\"L3\"><code class=\"language-sql\"><span class=\"pun\">+-------------------+<\/span><\/code><\/li>\n<li class=\"L4\"><code class=\"language-sql\"><span class=\"pun\">|<\/span><span class=\"pln\">\u00a0checkpoints \u00a0 \u00a0 \u00a0\u00a0<\/span><span class=\"pun\">| #\u5b58\u50a8\u7a0b\u5e8f\u6267\u884c\u4fe1\u606f\uff0c\u5728crash\u540e\uff0c\u80fd\u5b89\u5168\u7684\u6062\u590d\u6267\u884c\u7a0b\u5e8f<\/span><\/code><\/li>\n<li class=\"L5\"><code class=\"language-sql\"><span class=\"pun\">|<\/span><span class=\"pln\">\u00a0error_log \u00a0 \u00a0 \u00a0 \u00a0\u00a0<\/span><span class=\"pun\">| #\u670d\u52a1\u5668\u9519\u8bef\u62a5\u544a\u4fe1\u606f<\/span><\/code><\/li>\n<li class=\"L6\"><code class=\"language-sql\"><span class=\"pun\">|<\/span><span class=\"pln\">\u00a0group_replication\u00a0<\/span><span class=\"pun\">| #\u5b9a\u4e49\u590d\u5236\uff0cglobal groups\u548c\u5206\u7247\u7ec4\uff0c\u4e3b\u8981\u7528\u4e8eshard splitting,moving\u548cglobal updates\u200b<\/span><\/code><\/li>\n<li class=\"L7\"><code class=\"language-sql\"><span class=\"pun\">|<\/span><span class=\"pln\">\u00a0group_view \u00a0 \u00a0 \u00a0 \u00a0<\/span><span class=\"pun\">|<\/span><\/code><\/li>\n<li class=\"L8\"><code class=\"language-sql\"><span class=\"pun\">|<\/span><span class=\"pln\">\u00a0groups \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0<\/span><span class=\"pun\">| #\u5305\u542b\u7ba1\u7406\u7ec4\u4fe1\u606f<\/span><\/code><\/li>\n<li class=\"L9\"><code class=\"language-sql\"><span class=\"pun\">|<\/span><span class=\"pln\">\u00a0log \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0\u00a0<\/span><span class=\"pun\">|<\/span><\/code><\/li>\n<li class=\"L0\"><code class=\"language-sql\"><span class=\"pun\">|<\/span><span class=\"pln\">\u00a0permissions \u00a0 \u00a0 \u00a0\u00a0<\/span><span class=\"pun\">| #\u5305\u542b\u6743\u9650\u4fe1\u606f\uff0c\u8bbf\u95ee\u5230\u4e0d\u540cfabric\u5b50\u7cfb\u7edf\uff0c\u5f53\u524d\u4ec5\u4ec5\u5b9a\u4e49\u4e86core\u5b50\u7cfb\u7edf<\/span><\/code><\/li>\n<li class=\"L1\"><code class=\"language-sql\"><span class=\"pun\">|<\/span><span class=\"pln\">\u00a0proc_view \u00a0 \u00a0 \u00a0 \u00a0\u00a0<\/span><span class=\"pun\">|<\/span><\/code><\/li>\n<li class=\"L2\"><code class=\"language-sql\"><span class=\"pun\">|<\/span><span class=\"pln\">\u00a0role_permissions \u00a0<\/span><span class=\"pun\">| #\u8868\u5173\u8054\u7684\u89d2\u8272\u548c\u6743\u9650<\/span><\/code><\/li>\n<li class=\"L3\"><code class=\"language-sql\"><span class=\"pun\">|<\/span><span class=\"pln\">\u00a0roles \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0\u00a0<\/span><span class=\"pun\">| #\u5305\u542b\u7528\u6237\u89d2\u8272\u7684\u4fe1\u606f<\/span><\/code><\/li>\n<li class=\"L4\"><code class=\"language-sql\"><span class=\"pun\">|<\/span><span class=\"pln\">\u00a0servers \u00a0 \u00a0 \u00a0 \u00a0 \u00a0\u00a0<\/span><span class=\"pun\">| #\u5305\u542bfabric\u7ba1\u7406\u7684\u6240\u6709\u670d\u52a1\u5668\u4fe1\u606f<\/span><\/code><\/li>\n<li class=\"L5\"><code class=\"language-sql\"><span class=\"pun\">|<\/span><span class=\"pln\">\u00a0shard_maps \u00a0 \u00a0 \u00a0 \u00a0<\/span><span class=\"pun\">| #\u200b\u5305\u542b\u540d\u5b57\u548c\u5206\u7247\u5c5e\u6027\u7684\u6620\u5c04<\/span><\/code><\/li>\n<li class=\"L6\"><code class=\"language-sql\"><span class=\"pun\">|<\/span><span class=\"pln\">\u00a0shard_ranges \u00a0 \u00a0 \u00a0<\/span><span class=\"pun\">| #\u5206\u7247\u7d22\u5f15\u548c\u4f7f\u7528\u6620\u5c04\u5206\u7247key\u5230\u5206\u7247<\/span><\/code><\/li>\n<li class=\"L7\"><code class=\"language-sql\"><span class=\"pun\">|<\/span><span class=\"pln\">\u00a0shard_tables \u00a0 \u00a0 \u00a0<\/span><span class=\"pun\">| #\u6240\u6709\u5206\u7247\u7684\u8868<\/span><\/code><\/li>\n<li class=\"L8\"><code class=\"language-sql\"><span class=\"pun\">|<\/span><span class=\"pln\">\u00a0shards \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0<\/span><span class=\"pun\">| #\u5b58\u50a8\u6bcf\u4e2a\u5206\u7247\u6807\u8bc6<\/span><\/code><\/li>\n<li class=\"L9\"><code class=\"language-sql\"><span class=\"pun\">|<\/span><span class=\"pln\">\u00a0user_roles \u00a0 \u00a0 \u00a0 \u00a0<\/span><span class=\"pun\">|<\/span><\/code><\/li>\n<li class=\"L0\"><code class=\"language-sql\"><span class=\"pun\">|<\/span><span class=\"pln\">\u00a0users \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0\u00a0<\/span><span class=\"pun\">| #\u6807\u8bc6\u7528\u6237\u6709\u4ec0\u4e48\u6743\u9650\u8bbf\u95ee\u5230\u4e0d\u540c\u5b50\u7cfb\u7edf\u7684\u529f\u80fd<\/span><\/code><\/li>\n<li class=\"L1\"><code class=\"language-sql\"><span class=\"pun\">+-------------------+<\/span><\/code><\/li>\n<\/ol>\n<\/div>\n<\/div>\n<div><\/div>\n<div>6\u3001\u5f00\u542f\u548c\u505c\u6b62mysql fabric Nodes\uff1a<\/div>\n<div>\u4f7f\u7528mysqlfabric\u547d\u4ee4\u5f00\u542f\u548c\u505c\u6b62mysql fabric\u8282\u70b9\u3002<\/div>\n<div>\n<div>\n<pre class=\"prettyprint linenums prettyprinted\"><\/pre>\n<ol class=\"linenums\">\n<li class=\"L0\"><code class=\"language-sh\"><span class=\"com\"># mysqlfabric manage start<\/span><\/code><\/li>\n<li class=\"L1\"><code class=\"language-sh\"><span class=\"pun\">[<\/span><span class=\"pln\">INFO<\/span><span class=\"pun\">]<\/span><span class=\"pln\">\u00a0<\/span><span class=\"lit\">1409095475.657850<\/span><span class=\"pln\">\u00a0<\/span><span class=\"pun\">-<\/span><span class=\"pln\">\u00a0<\/span><span class=\"typ\">MainThread<\/span><span class=\"pln\">\u00a0<\/span><span class=\"pun\">-<\/span><span class=\"pln\">\u00a0<\/span><span class=\"typ\">Initializing<\/span><span class=\"pln\">\u00a0persister<\/span><span class=\"pun\">:<\/span><span class=\"pln\">\u00a0user\u00a0<\/span><span class=\"pun\">(<\/span><span class=\"pln\">fabric<\/span><span class=\"pun\">),<\/span><span class=\"pln\">\u00a0server\u00a0<\/span><span class=\"pun\">(<\/span><span class=\"lit\">172.17<\/span><span class=\"pun\">.<\/span><span class=\"lit\">0.49<\/span><span class=\"pun\">:<\/span><span class=\"lit\">3306<\/span><span class=\"pun\">),<\/span><span class=\"pln\">\u00a0database\u00a0<\/span><span class=\"pun\">(<\/span><span class=\"pln\">fabric<\/span><span class=\"pun\">).<\/span><\/code><\/li>\n<li class=\"L2\"><code class=\"language-sh\"><span class=\"pun\">[<\/span><span class=\"pln\">INFO<\/span><span class=\"pun\">]<\/span><span class=\"pln\">\u00a0<\/span><span class=\"lit\">1409095475.661201<\/span><span class=\"pln\">\u00a0<\/span><span class=\"pun\">-<\/span><span class=\"pln\">\u00a0<\/span><span class=\"typ\">MainThread<\/span><span class=\"pln\">\u00a0<\/span><span class=\"pun\">-<\/span><span class=\"pln\">\u00a0<\/span><span class=\"typ\">Loading<\/span><span class=\"pln\">\u00a0<\/span><span class=\"typ\">Services<\/span><span class=\"pun\">.<\/span><\/code><\/li>\n<li class=\"L3\"><code class=\"language-sh\"><span class=\"pun\">[<\/span><span class=\"pln\">INFO<\/span><span class=\"pun\">]<\/span><span class=\"pln\">\u00a0<\/span><span class=\"lit\">1409095475.672051<\/span><span class=\"pln\">\u00a0<\/span><span class=\"pun\">-<\/span><span class=\"pln\">\u00a0<\/span><span class=\"typ\">MainThread<\/span><span class=\"pln\">\u00a0<\/span><span class=\"pun\">-<\/span><span class=\"pln\">\u00a0<\/span><span class=\"typ\">Fabric<\/span><span class=\"pln\">\u00a0node starting<\/span><span class=\"pun\">.<\/span><\/code><\/li>\n<li class=\"L4\"><code class=\"language-sh\"><span class=\"pun\">[<\/span><span class=\"pln\">INFO<\/span><span class=\"pun\">]<\/span><span class=\"pln\">\u00a0<\/span><span class=\"lit\">1409095475.731098<\/span><span class=\"pln\">\u00a0<\/span><span class=\"pun\">-<\/span><span class=\"pln\">\u00a0<\/span><span class=\"typ\">MainThread<\/span><span class=\"pln\">\u00a0<\/span><span class=\"pun\">-<\/span><span class=\"pln\">\u00a0<\/span><span class=\"typ\">Starting<\/span><span class=\"pln\">\u00a0<\/span><span class=\"typ\">Executor<\/span><span class=\"pun\">.<\/span><\/code><\/li>\n<li class=\"L5\"><code class=\"language-sh\"><span class=\"pun\">[<\/span><span class=\"pln\">INFO<\/span><span class=\"pun\">]<\/span><span class=\"pln\">\u00a0<\/span><span class=\"lit\">1409095475.731155<\/span><span class=\"pln\">\u00a0<\/span><span class=\"pun\">-<\/span><span class=\"pln\">\u00a0<\/span><span class=\"typ\">MainThread<\/span><span class=\"pln\">\u00a0<\/span><span class=\"pun\">-<\/span><span class=\"pln\">\u00a0<\/span><span class=\"typ\">Setting<\/span><span class=\"pln\">\u00a0<\/span><span class=\"lit\">5<\/span><span class=\"pln\">\u00a0executor<\/span><span class=\"pun\">(<\/span><span class=\"pln\">s<\/span><span class=\"pun\">).<\/span><\/code><\/li>\n<li class=\"L6\"><code class=\"language-sh\"><span class=\"pun\">[<\/span><span class=\"pln\">INFO<\/span><span class=\"pun\">]<\/span><span class=\"pln\">\u00a0<\/span><span class=\"lit\">1409095475.731395<\/span><span class=\"pln\">\u00a0<\/span><span class=\"pun\">-<\/span><span class=\"pln\">\u00a0<\/span><span class=\"typ\">Executor<\/span><span class=\"pun\">-<\/span><span class=\"lit\">0<\/span><span class=\"pln\">\u00a0<\/span><span class=\"pun\">-<\/span><span class=\"pln\">\u00a0<\/span><span class=\"typ\">Started<\/span><span class=\"pun\">.<\/span><\/code><\/li>\n<li class=\"L7\"><code class=\"language-sh\"><span class=\"pun\">[<\/span><span class=\"pln\">INFO<\/span><span class=\"pun\">]<\/span><span class=\"pln\">\u00a0<\/span><span class=\"lit\">1409095475.731866<\/span><span class=\"pln\">\u00a0<\/span><span class=\"pun\">-<\/span><span class=\"pln\">\u00a0<\/span><span class=\"typ\">Executor<\/span><span class=\"pun\">-<\/span><span class=\"lit\">1<\/span><span class=\"pln\">\u00a0<\/span><span class=\"pun\">-<\/span><span class=\"pln\">\u00a0<\/span><span class=\"typ\">Started<\/span><span class=\"pun\">.<\/span><\/code><\/li>\n<li class=\"L8\"><code class=\"language-sh\"><span class=\"pun\">[<\/span><span class=\"pln\">INFO<\/span><span class=\"pun\">]<\/span><span class=\"pln\">\u00a0<\/span><span class=\"lit\">1409095475.732208<\/span><span class=\"pln\">\u00a0<\/span><span class=\"pun\">-<\/span><span class=\"pln\">\u00a0<\/span><span class=\"typ\">Executor<\/span><span class=\"pun\">-<\/span><span class=\"lit\">2<\/span><span class=\"pln\">\u00a0<\/span><span class=\"pun\">-<\/span><span class=\"pln\">\u00a0<\/span><span class=\"typ\">Started<\/span><span class=\"pun\">.<\/span><\/code><\/li>\n<li class=\"L9\"><code class=\"language-sh\"><span class=\"pun\">[<\/span><span class=\"pln\">INFO<\/span><span class=\"pun\">]<\/span><span class=\"pln\">\u00a0<\/span><span class=\"lit\">1409095475.732892<\/span><span class=\"pln\">\u00a0<\/span><span class=\"pun\">-<\/span><span class=\"pln\">\u00a0<\/span><span class=\"typ\">Executor<\/span><span class=\"pun\">-<\/span><span class=\"lit\">3<\/span><span class=\"pln\">\u00a0<\/span><span class=\"pun\">-<\/span><span class=\"pln\">\u00a0<\/span><span class=\"typ\">Started<\/span><span class=\"pun\">.<\/span><\/code><\/li>\n<li class=\"L0\"><code class=\"language-sh\"><span class=\"pun\">[<\/span><span class=\"pln\">INFO<\/span><span class=\"pun\">]<\/span><span class=\"pln\">\u00a0<\/span><span class=\"lit\">1409095475.733379<\/span><span class=\"pln\">\u00a0<\/span><span class=\"pun\">-<\/span><span class=\"pln\">\u00a0<\/span><span class=\"typ\">Executor<\/span><span class=\"pun\">-<\/span><span class=\"lit\">4<\/span><span class=\"pln\">\u00a0<\/span><span class=\"pun\">-<\/span><span class=\"pln\">\u00a0<\/span><span class=\"typ\">Started<\/span><span class=\"pun\">.<\/span><\/code><\/li>\n<li class=\"L1\"><code class=\"language-sh\"><span class=\"pun\">[<\/span><span class=\"pln\">INFO<\/span><span class=\"pun\">]<\/span><span class=\"pln\">\u00a0<\/span><span class=\"lit\">1409095475.733472<\/span><span class=\"pln\">\u00a0<\/span><span class=\"pun\">-<\/span><span class=\"pln\">\u00a0<\/span><span class=\"typ\">MainThread<\/span><span class=\"pln\">\u00a0<\/span><span class=\"pun\">-<\/span><span class=\"pln\">\u00a0<\/span><span class=\"typ\">Executor<\/span><span class=\"pln\">\u00a0started<\/span><span class=\"pun\">.<\/span><\/code><\/li>\n<li class=\"L2\"><code class=\"language-sh\"><span class=\"pun\">[<\/span><span class=\"pln\">INFO<\/span><span class=\"pun\">]<\/span><span class=\"pln\">\u00a0<\/span><span class=\"lit\">1409095475.738050<\/span><span class=\"pln\">\u00a0<\/span><span class=\"pun\">-<\/span><span class=\"pln\">\u00a0<\/span><span class=\"typ\">MainThread<\/span><span class=\"pln\">\u00a0<\/span><span class=\"pun\">-<\/span><span class=\"pln\">\u00a0<\/span><span class=\"typ\">Starting<\/span><span class=\"pln\">\u00a0failure detector<\/span><span class=\"pun\">.<\/span><\/code><\/li>\n<li class=\"L3\"><code class=\"language-sh\"><span class=\"pun\">[<\/span><span class=\"pln\">INFO<\/span><span class=\"pun\">]<\/span><span class=\"pln\">\u00a0<\/span><span class=\"lit\">1409095475.738533<\/span><span class=\"pln\">\u00a0<\/span><span class=\"pun\">-<\/span><span class=\"pln\">\u00a0XML<\/span><span class=\"pun\">-<\/span><span class=\"pln\">RPC<\/span><span class=\"pun\">-<\/span><span class=\"typ\">Server<\/span><span class=\"pln\">\u00a0<\/span><span class=\"pun\">-<\/span><span class=\"pln\">\u00a0XML<\/span><span class=\"pun\">-<\/span><span class=\"pln\">RPC protocol server\u00a0<\/span><span class=\"pun\">(<\/span><span class=\"str\">'0.0.0.0'<\/span><span class=\"pun\">,<\/span><span class=\"pln\">\u00a0<\/span><span class=\"lit\">32274<\/span><span class=\"pun\">)<\/span><span class=\"pln\">started<\/span><span class=\"pun\">.<\/span><\/code><\/li>\n<li class=\"L4\"><code class=\"language-sh\"><span class=\"pun\">[<\/span><span class=\"pln\">INFO<\/span><span class=\"pun\">]<\/span><span class=\"pln\">\u00a0<\/span><span class=\"lit\">1409095475.738774<\/span><span class=\"pln\">\u00a0<\/span><span class=\"pun\">-<\/span><span class=\"pln\">\u00a0XML<\/span><span class=\"pun\">-<\/span><span class=\"pln\">RPC<\/span><span class=\"pun\">-<\/span><span class=\"typ\">Server<\/span><span class=\"pln\">\u00a0<\/span><span class=\"pun\">-<\/span><span class=\"pln\">\u00a0<\/span><span class=\"typ\">Setting<\/span><span class=\"pln\">\u00a0<\/span><span class=\"lit\">5<\/span><span class=\"pln\">\u00a0XML<\/span><span class=\"pun\">-<\/span><span class=\"pln\">RPC session<\/span><span class=\"pun\">(<\/span><span class=\"pln\">s<\/span><span class=\"pun\">).<\/span><\/code><\/li>\n<li class=\"L5\"><code class=\"language-sh\"><span class=\"pun\">[<\/span><span class=\"pln\">INFO<\/span><span class=\"pun\">]<\/span><span class=\"pln\">\u00a0<\/span><span class=\"lit\">1409095475.739004<\/span><span class=\"pln\">\u00a0<\/span><span class=\"pun\">-<\/span><span class=\"pln\">\u00a0XML<\/span><span class=\"pun\">-<\/span><span class=\"pln\">RPC<\/span><span class=\"pun\">-<\/span><span class=\"typ\">Session<\/span><span class=\"pun\">-<\/span><span class=\"lit\">0<\/span><span class=\"pln\">\u00a0<\/span><span class=\"pun\">-<\/span><span class=\"pln\">\u00a0<\/span><span class=\"typ\">Started<\/span><span class=\"pln\">\u00a0XML<\/span><span class=\"pun\">-<\/span><span class=\"pln\">RPC<\/span><span class=\"pun\">-<\/span><span class=\"typ\">Session<\/span><span class=\"pun\">.<\/span><\/code><\/li>\n<li class=\"L6\"><code class=\"language-sh\"><span class=\"pun\">[<\/span><span class=\"pln\">INFO<\/span><span class=\"pun\">]<\/span><span class=\"pln\">\u00a0<\/span><span class=\"lit\">1409095475.739263<\/span><span class=\"pln\">\u00a0<\/span><span class=\"pun\">-<\/span><span class=\"pln\">\u00a0XML<\/span><span class=\"pun\">-<\/span><span class=\"pln\">RPC<\/span><span class=\"pun\">-<\/span><span class=\"typ\">Session<\/span><span class=\"pun\">-<\/span><span class=\"lit\">1<\/span><span class=\"pln\">\u00a0<\/span><span class=\"pun\">-<\/span><span class=\"pln\">\u00a0<\/span><span class=\"typ\">Started<\/span><span class=\"pln\">\u00a0XML<\/span><span class=\"pun\">-<\/span><span class=\"pln\">RPC<\/span><span class=\"pun\">-<\/span><span class=\"typ\">Session<\/span><span class=\"pun\">.<\/span><\/code><\/li>\n<li class=\"L7\"><code class=\"language-sh\"><span class=\"pun\">[<\/span><span class=\"pln\">INFO<\/span><span class=\"pun\">]<\/span><span class=\"pln\">\u00a0<\/span><span class=\"lit\">1409095475.739442<\/span><span class=\"pln\">\u00a0<\/span><span class=\"pun\">-<\/span><span class=\"pln\">\u00a0XML<\/span><span class=\"pun\">-<\/span><span class=\"pln\">RPC<\/span><span class=\"pun\">-<\/span><span class=\"typ\">Session<\/span><span class=\"pun\">-<\/span><span class=\"lit\">2<\/span><span class=\"pln\">\u00a0<\/span><span class=\"pun\">-<\/span><span class=\"pln\">\u00a0<\/span><span class=\"typ\">Started<\/span><span class=\"pln\">\u00a0XML<\/span><span class=\"pun\">-<\/span><span class=\"pln\">RPC<\/span><span class=\"pun\">-<\/span><span class=\"typ\">Session<\/span><span class=\"pun\">.<\/span><\/code><\/li>\n<li class=\"L8\"><code class=\"language-sh\"><span class=\"pun\">[<\/span><span class=\"pln\">INFO<\/span><span class=\"pun\">]<\/span><span class=\"pln\">\u00a0<\/span><span class=\"lit\">1409095475.739922<\/span><span class=\"pln\">\u00a0<\/span><span class=\"pun\">-<\/span><span class=\"pln\">\u00a0XML<\/span><span class=\"pun\">-<\/span><span class=\"pln\">RPC<\/span><span class=\"pun\">-<\/span><span class=\"typ\">Session<\/span><span class=\"pun\">-<\/span><span class=\"lit\">3<\/span><span class=\"pln\">\u00a0<\/span><span class=\"pun\">-<\/span><span class=\"pln\">\u00a0<\/span><span class=\"typ\">Started<\/span><span class=\"pln\">\u00a0XML<\/span><span class=\"pun\">-<\/span><span class=\"pln\">RPC<\/span><span class=\"pun\">-<\/span><span class=\"typ\">Session<\/span><span class=\"pun\">.<\/span><\/code><\/li>\n<li class=\"L9\"><code class=\"language-sh\"><span class=\"pun\">[<\/span><span class=\"pln\">INFO<\/span><span class=\"pun\">]<\/span><span class=\"pln\">\u00a0<\/span><span class=\"lit\">1409095475.740434<\/span><span class=\"pln\">\u00a0<\/span><span class=\"pun\">-<\/span><span class=\"pln\">\u00a0XML<\/span><span class=\"pun\">-<\/span><span class=\"pln\">RPC<\/span><span class=\"pun\">-<\/span><span class=\"typ\">Session<\/span><span class=\"pun\">-<\/span><span class=\"lit\">4<\/span><span class=\"pln\">\u00a0<\/span><span class=\"pun\">-<\/span><span class=\"pln\">\u00a0<\/span><span class=\"typ\">Started<\/span><span class=\"pln\">\u00a0XML<\/span><span class=\"pun\">-<\/span><span class=\"pln\">RPC<\/span><span class=\"pun\">-<\/span><span class=\"typ\">Session<\/span><span class=\"pun\">.<\/span><\/code><\/li>\n<\/ol>\n<\/div>\n<div><\/div>\n<\/div>\n<div>\u6253\u5370\u65e5\u5fd7\u5230\u6807\u51c6\u8f93\u51fa\uff0c\u76d1\u542c\u5728[protocol.xmlrpm]\u6bb5\u5b9a\u4e49\u7684\u7aef\u53e3\u3002\u653e\u7f6efabric\u5230\u540e\u53f0\uff0c\u4f7f\u7528&#8211;daemonize\u9009\u9879(mysqlfabric manage start &#8211;daemonize)\uff0c\u5c06\u6253\u5370\u65e5\u5fd7\u5230syslog(\u914d\u7f6e\u6587\u4ef6\u9ed8\u8ba4\u5b9a\u4e49\u5728\/var\/log\/fabric.log ).<\/div>\n<div><\/div>\n<div>\u67e5\u770b\u542f\u52a8\u7684xmlrpm\u76d1\u542c\u7aef\u53e3\uff1a<\/div>\n<div>\n<div>\n<pre class=\"prettyprint linenums prettyprinted\"><\/pre>\n<ol class=\"linenums\">\n<li class=\"L0\"><code class=\"language-c\"><span class=\"com\"># netstat -ntlp|grep python<\/span><\/code><\/li>\n<li class=\"L1\"><code class=\"language-c\"><span class=\"pln\">tcp \u00a0 \u00a0 \u00a0 \u00a0<\/span><span class=\"lit\">0<\/span><span class=\"pln\">\u00a0\u00a0 \u00a0 \u00a0<\/span><span class=\"lit\">0<\/span><span class=\"pln\">\u00a0<\/span><span class=\"lit\">0.0<\/span><span class=\"pun\">.<\/span><span class=\"lit\">0.0<\/span><span class=\"pun\">:<\/span><span class=\"lit\">32274<\/span><span class=\"pln\">\u00a0\u00a0 \u00a0 \u00a0 \u00a0 \u00a0\u00a0<\/span><span class=\"lit\">0.0<\/span><span class=\"pun\">.<\/span><span class=\"lit\">0.0<\/span><span class=\"pun\">:*<\/span><span class=\"pln\">\u00a0\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 LISTEN \u00a0 \u00a0 \u00a0<\/span><span class=\"lit\">15713<\/span><span class=\"pun\">\/<\/span><span class=\"pln\">python \u00a0\u00a0<\/span><\/code><\/li>\n<\/ol>\n<\/div>\n<\/div>\n<div><\/div>\n<div>\u505c\u6b62fabric\uff1a<\/div>\n<div>\n<div>\n<pre class=\"prettyprint linenums prettyprinted\"><\/pre>\n<ol class=\"linenums\">\n<li class=\"L0\"><code class=\"language-c\"><span class=\"com\"># mysqlfabric manage stop<\/span><\/code><\/li>\n<li class=\"L1\"><code class=\"language-c\"><span class=\"typ\">Password<\/span><span class=\"pln\">\u00a0<\/span><span class=\"kwd\">for<\/span><span class=\"pln\">\u00a0admin<\/span><span class=\"pun\">:<\/span><span class=\"pln\">\u00a0<\/span><span class=\"com\">#\u8f93\u5165xmlrpc\u7684\u5bc6\u7801<\/span><\/code><\/li>\n<li class=\"L2\"><code class=\"language-c\"><span class=\"typ\">Command<\/span><span class=\"pln\">\u00a0<\/span><span class=\"pun\">:<\/span><\/code><\/li>\n<li class=\"L3\"><code class=\"language-c\"><span class=\"pun\">{<\/span><span class=\"pln\">\u00a0success \u00a0 \u00a0\u00a0<\/span><span class=\"pun\">=<\/span><span class=\"pln\">\u00a0<\/span><span class=\"typ\">True<\/span><\/code><\/li>\n<li class=\"L4\"><code class=\"language-c\"><span class=\"pln\">\u00a0\u00a0<\/span><span class=\"kwd\">return<\/span><span class=\"pln\">\u00a0\u00a0 \u00a0 \u00a0<\/span><span class=\"pun\">=<\/span><span class=\"pln\">\u00a0<\/span><span class=\"typ\">True<\/span><\/code><\/li>\n<li class=\"L5\"><code class=\"language-c\"><span class=\"pln\">\u00a0 activities \u00a0<\/span><span class=\"pun\">=<\/span><span class=\"pln\">\u00a0<\/span><\/code><\/li>\n<li class=\"L6\"><code class=\"language-c\"><span class=\"pun\">}<\/span><\/code><\/li>\n<\/ol>\n<\/div>\n<\/div>\n<div><\/div>\n<div>\u65e5\u5fd7\uff1a<\/div>\n<div>[INFO] 1409095626.823267 &#8211; XML-RPC-Session-1 &#8211; Executor has stopped.<\/div>\n<div>[INFO] 1409095626.823651 &#8211; XML-RPC-Session-1 &#8211; Fabric node stopped.<\/div>\n<\/div>\n<div><\/div>\n<div>\u53c2\u8003\uff1a<\/div>\n<div>1\u3001&lt;&lt;MySQL Fabric\u00a0A Guide to Managing MySQL High\u00a0Availability and Scaling Out&gt;&gt;\u3001&lt;&lt;MySQL Fabric\u00a0&gt;&gt;<\/div>\n<div>2\u3001\u5b98\u65b9\u624b\u518c\uff1a<a href=\"http:\/\/dev.mysql.com\/doc\/mysql-utilities\/1.5\/en\/fabric.html\" target=\"_blank\" rel=\"noopener\">http:\/\/dev.mysql.com\/doc\/mysql-utilities\/1.5\/en\/fabric.html<\/a><\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u8f6c\u81ea\uff1a\u00a0http:\/\/my.oschina.net\/anthonyyau\/blog\/307165 Mysql Fabric\u7528\u6765\u7ba1\u7406mysql\u670d\u52a1\uff0c\u63d0\u4f9b\u6269\u5c55\u6027\u548c\u5bb9\u6613\u4f7f\u7528\u7684\u7cfb\u7edf\uff0c\u7ba1\u7406mysql\u5206\u7247\u548c\u9ad8\u53ef\u7528\u90e8\u7f72(\u5f53\u524d\u5b9e\u73b0\u4e86\u4e24\u4e2a\u7279\u6027\uff1a\u9ad8\u53ef\u7528\u548c\u4f7f\u7528\u6570\u636e\u5206\u7247\u7684\u6a2a\u5411\u6269\u5c55\uff0c\u80fd\u5355\u72ec\u4f7f\u7528\u6216\u7ed3\u5408\u4f7f\u7528\u8fd9\u4e24\u4e2a\u7279\u6027\u3002)\u3002 \u67b6\u6784\u56fe\uff1a \u5e94\u7528\u8bf7\u6c42\u4e00\u4e2a\u6269\u5c55\u7684mysql\u8fde\u63a5\u5668\u7248\u672c\uff0c\u4f7f\u7528XML-RPC\u534f\u8bae\u8bbf\u95eeFabric\uff0c\u5f53\u524d\u53ef\u4ee5\u4f7f\u7528python\u548cJ\u8fde\u63a5\u5668\u3002Fabric\u7ba1\u7406\u542f\u52a8GTIDs(\u5168\u5c40\u4e8b\u52a1\u6807\u8bc6)\u7684mysql\u96c6\u5408\uff0c\u68c0\u67e5\u548c\u7ef4\u62a4\u670d\u52a1\u5668\u4e4b\u95f4\u7684\u4e00\u81f4\u6027\u3002\u96c6\u5408\u4e2d\u7684\u670d\u52a1\u5668\u53eb\u9ad8\u53ef\u7528\u7ec4\u3002\u4e0d\u5c5e\u4e8eFabric\u9ad8\u53ef\u7528\u7ec4\u7684\u6210\u5458\u5b9e\u4f8b\uff0c\u53eb\u5907\u7528\u5b58\u50a8(backing store)\u3002 Fabric\u7ec4\u7ec7\u670d\u52a1\u5668\u5728\u4e00\u4e2a\u7ec4(\u53eb\u9ad8\u53ef\u7528\u7ec4)\uff0c\u7ba1\u7406\u4e0d\u540c\u5206\u7247\u6216\u7b80\u5355\u63d0\u4f9b\u9ad8\u53ef\u7528\u3002\u4f8b\u5982\u5982\u679c\u4f7f\u7528\u6807\u51c6\u5f02\u6b65\u590d\u5236\uff0cFabric\u53ef\u4ee5\u914d\u7f6e\u81ea\u52a8\u76d1\u63a7mysql\u670d\u52a1\u72b6\u6001\u3002\u5982\u679c\u7ec4\u4e2d\u5f53\u524dmaster\u9519\u8bef\uff0c\u7ec4\u4e2d\u6709\u4e00\u4e2a\u670d\u52a1\u5668\u80fd\u53d8\u6210master\uff0c\u5b83\u9009\u62e9\u4e00\u4e2a\u65b0\u7684\u670d\u52a1\u5668\u505a\u4e3amaster\u3002 \u9664\u4e86\u9ad8\u53ef\u7528\u64cd\u4f5c\u5982\u6545\u969c\u8f6c\u79fb\u548c\u5207\u6362\uff0cFabric\u4e5f\u5141\u8bb8\u5206\u7247\u64cd\u4f5c\uff0c\u5982\u5206\u7247\u521b\u5efa\u548c\u79fb\u9664\u3002 \u9ad8\u53ef\u7528\u548c\u6570\u636e\u5206\u7247\u5728\u4e24\u4e2a\u5c42\u5b9e\u73b0\uff1a 1\u3001mysqlfabric\u8fdb\u7a0b\u5904\u7406\u4efb\u4f55\u7ba1\u7406\u8bf7\u6c42\uff0c\u63a5\u6536\u901a\u8fc7mysqlfabric\u547d\u4ee4\u884c\u63a5\u53e3\u6216\u5176\u4ed6\u652f\u6301XML\/RPC\u63a5\u53e3\u7684\u8fdb\u7a0b\u7684\u7ba1\u7406\u4efb\u52a1\u3002\u5f53\u4f7f\u7528HA\u7279\u6027\uff0c\u8be5\u8fdb\u7a0b\u80fd\u76d1\u63a7master\u670d\u52a1\u5668\uff0c\u5f53master\u6545\u969c\u65f6\u80fd\u8fdb\u884c\u6545\u969c\u6062\u590d\uff0c\u63d0\u5347\u4e00\u4e2aslave\u4e3a\u65b0\u7684master\u3002mysql\u670d\u52a1\u5668\u7684\u72b6\u6001\u5b58\u50a8\u5728state store(\u4e00\u4e2amysql\u6570\u636e\u5e93\u5b9e\u4f8b)\uff0cmysqlfabric\u8fdb\u7a0b\u4e5f\u590d\u5236\u7ed9\u8fde\u63a5\u5668\u63d0\u4f9b\u5b58\u50a8\u8def\u7531\u4fe1\u606f\uff1b 2\u3001\u5e94\u7528\u4ee3\u7801\u4f7f\u7528mysql\u8fde\u63a5\u5668\u8bbf\u95ee\u6570\u636e\u5e93\uff0c\u4ece\u7279\u5b9a\u7a0b\u5e8f\u8bed\u8a00\u8f6c\u6362\u6307\u4ee4\u5230Mysql wire protocol\uff0c\u4e0emysql\u670d\u52a1\u5668\u8fdb\u7a0b\u8fdb\u884c\u901a\u4fe1\u3002Fabric-aware\u8fde\u63a5\u5668\u5b58\u50a8\u4ecemysql fabric\u53d6\u6765\u7684\u8def\u7531\u4fe1\u606f\u7f13\u5b58\uff0c\u4f7f\u7528\u8fd9\u4e9b\u4fe1\u606f\u53d1\u9001\u4e8b\u52a1\u6216\u67e5\u8be2\u5230\u6b63\u786e\u7684mysql\u670d\u52a1\u5668\u3002\u5f53\u524d\u652f\u6301Fabric-aware mysql\u8fde\u63a5\u5668\u7684\u6709PHP\u3001python\u548cJava\u3002\u8be5\u65b9\u6cd5\u907f\u514d\u4e86\u53d1\u9001\u6240\u6709\u67e5\u8be2\u5230proxy\u5f15\u8d77\u7684\u74f6\u9888\u3002 \u9ad8\u53ef\u7528\uff1a Mysql Fabric\u4f7f\u7528HA group\u7ba1\u7406\u4e24\u4e2a\u6216\u66f4\u591aMysql\u670d\u52a1\u5668\uff0c\u5728\u4efb\u4f55\u65f6\u5019\uff0c\u4ec5\u4ec5\u4e00\u4e2a\u670d\u52a1\u5668\u4e3aPrimary(mysql [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[1],"tags":[],"class_list":["post-703","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/blog.jsjs.org\/index.php?rest_route=\/wp\/v2\/posts\/703","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.jsjs.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.jsjs.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.jsjs.org\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.jsjs.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=703"}],"version-history":[{"count":0,"href":"https:\/\/blog.jsjs.org\/index.php?rest_route=\/wp\/v2\/posts\/703\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.jsjs.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=703"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.jsjs.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=703"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.jsjs.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=703"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}