diff --git a/404.html b/404.html index 1ddd024c6..f7c77950f 100644 --- a/404.html +++ b/404.html @@ -10,14 +10,14 @@ - - + +
跳到主要内容

找不到页面

我们找不到您要找的页面。

请联系原始链接来源网站的所有者,并告知他们链接已损坏。

- + \ No newline at end of file diff --git a/about/index.html b/about/index.html index 6786017bf..b141407c0 100644 --- a/about/index.html +++ b/about/index.html @@ -10,14 +10,14 @@ - - + +
跳到主要内容

关于

您好,我是一名专注于云平台开发的工程师。我拥有多年的云平台开发经验,熟练掌握云平台相关技术和业务。

在我的职业生涯中,我曾参与过多个云平台的开发项目,包括公有云、私有部署、定制项目等。我擅长使用 Vue、Java 来构建可靠、高效的云平台解决方案。

此外,我还具备良好的团队协作和沟通能力,能够与其他团队成员配合完成复杂的项目开发任务。同时,我也善于学习和钻研新技术,不断提升自己的技能和水平。

总之,我是一名充满热情和创造力的云平台开发者,致力于为客户提供高质量、高效的解决方案。

YiRanCN,这是我的 GitHub 主页,欢迎大家 follow 和 star。

微信号:jiot_cloud 邮箱:jiotcloud@163.com

img

采用最主流、最前沿的的编程语言和技术框架:

  • JDK17/Spring6/SpringBoot3
  • hivemq/mqtt
  • Netty4
  • ts/Vue3/arco.design
  • flutter/dart
  • 其他
- + \ No newline at end of file diff --git a/assets/css/styles.e222c59a.css b/assets/css/styles.d3853285.css similarity index 99% rename from assets/css/styles.e222c59a.css rename to assets/css/styles.d3853285.css index c49defa96..ba4cc74fb 100644 --- a/assets/css/styles.e222c59a.css +++ b/assets/css/styles.d3853285.css @@ -1 +1 @@ -.col,.container{padding:0 var(--ifm-spacing-horizontal);width:100%}.markdown>h2,.markdown>h3,.markdown>h4,.markdown>h5,.markdown>h6{margin-bottom:calc(var(--ifm-heading-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown li,body{word-wrap:break-word}body,ol ol,ol ul,ul ol,ul ul{margin:0}pre,table{overflow:auto}blockquote,pre{margin:0 0 var(--ifm-spacing-vertical)}.breadcrumbs__link,.button{transition-timing-function:var(--ifm-transition-timing-default)}.button,code{vertical-align:middle}.button--outline.button--active,.button--outline:active,.button--outline:hover,:root{--ifm-button-color:var(--ifm-font-color-base-inverse)}.menu__link:hover,a{transition:color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.navbar--dark,:root{--ifm-navbar-link-hover-color:var(--ifm-color-primary)}.menu,.navbar-sidebar{overflow-x:hidden}:root,html[data-theme=dark]{--ifm-color-emphasis-500:var(--ifm-color-gray-500)}.toggleButton_gllP,html{-webkit-tap-highlight-color:transparent}.clean-list,.containsTaskList_mC6p,.details_lb9f>summary,.dropdown__menu,.menu__list{list-style:none}:root{--ifm-color-scheme:light;--ifm-dark-value:10%;--ifm-darker-value:15%;--ifm-darkest-value:30%;--ifm-light-value:15%;--ifm-lighter-value:30%;--ifm-lightest-value:50%;--ifm-contrast-background-value:90%;--ifm-contrast-foreground-value:70%;--ifm-contrast-background-dark-value:70%;--ifm-contrast-foreground-dark-value:90%;--ifm-color-primary:#3578e5;--ifm-color-secondary:#ebedf0;--ifm-color-success:#00a400;--ifm-color-info:#54c7ec;--ifm-color-warning:#ffba00;--ifm-color-danger:#fa383e;--ifm-color-primary-dark:#306cce;--ifm-color-primary-darker:#2d66c3;--ifm-color-primary-darkest:#2554a0;--ifm-color-primary-light:#538ce9;--ifm-color-primary-lighter:#72a1ed;--ifm-color-primary-lightest:#9abcf2;--ifm-color-primary-contrast-background:#ebf2fc;--ifm-color-primary-contrast-foreground:#102445;--ifm-color-secondary-dark:#d4d5d8;--ifm-color-secondary-darker:#c8c9cc;--ifm-color-secondary-darkest:#a4a6a8;--ifm-color-secondary-light:#eef0f2;--ifm-color-secondary-lighter:#f1f2f5;--ifm-color-secondary-lightest:#f5f6f8;--ifm-color-secondary-contrast-background:#fdfdfe;--ifm-color-secondary-contrast-foreground:#474748;--ifm-color-success-dark:#009400;--ifm-color-success-darker:#008b00;--ifm-color-success-darkest:#007300;--ifm-color-success-light:#26b226;--ifm-color-success-lighter:#4dbf4d;--ifm-color-success-lightest:#80d280;--ifm-color-success-contrast-background:#e6f6e6;--ifm-color-success-contrast-foreground:#003100;--ifm-color-info-dark:#4cb3d4;--ifm-color-info-darker:#47a9c9;--ifm-color-info-darkest:#3b8ba5;--ifm-color-info-light:#6ecfef;--ifm-color-info-lighter:#87d8f2;--ifm-color-info-lightest:#aae3f6;--ifm-color-info-contrast-background:#eef9fd;--ifm-color-info-contrast-foreground:#193c47;--ifm-color-warning-dark:#e6a700;--ifm-color-warning-darker:#d99e00;--ifm-color-warning-darkest:#b38200;--ifm-color-warning-light:#ffc426;--ifm-color-warning-lighter:#ffcf4d;--ifm-color-warning-lightest:#ffdd80;--ifm-color-warning-contrast-background:#fff8e6;--ifm-color-warning-contrast-foreground:#4d3800;--ifm-color-danger-dark:#e13238;--ifm-color-danger-darker:#d53035;--ifm-color-danger-darkest:#af272b;--ifm-color-danger-light:#fb565b;--ifm-color-danger-lighter:#fb7478;--ifm-color-danger-lightest:#fd9c9f;--ifm-color-danger-contrast-background:#ffebec;--ifm-color-danger-contrast-foreground:#4b1113;--ifm-color-white:#fff;--ifm-color-black:#000;--ifm-color-gray-0:var(--ifm-color-white);--ifm-color-gray-100:#f5f6f7;--ifm-color-gray-200:#ebedf0;--ifm-color-gray-300:#dadde1;--ifm-color-gray-400:#ccd0d5;--ifm-color-gray-500:#bec3c9;--ifm-color-gray-600:#8d949e;--ifm-color-gray-700:#606770;--ifm-color-gray-800:#444950;--ifm-color-gray-900:#1c1e21;--ifm-color-gray-1000:var(--ifm-color-black);--ifm-color-emphasis-0:var(--ifm-color-gray-0);--ifm-color-emphasis-100:var(--ifm-color-gray-100);--ifm-color-emphasis-200:var(--ifm-color-gray-200);--ifm-color-emphasis-300:var(--ifm-color-gray-300);--ifm-color-emphasis-400:var(--ifm-color-gray-400);--ifm-color-emphasis-600:var(--ifm-color-gray-600);--ifm-color-emphasis-700:var(--ifm-color-gray-700);--ifm-color-emphasis-800:var(--ifm-color-gray-800);--ifm-color-emphasis-900:var(--ifm-color-gray-900);--ifm-color-emphasis-1000:var(--ifm-color-gray-1000);--ifm-color-content:var(--ifm-color-emphasis-900);--ifm-color-content-inverse:var(--ifm-color-emphasis-0);--ifm-color-content-secondary:#525860;--ifm-background-color:#0000;--ifm-background-surface-color:var(--ifm-color-content-inverse);--ifm-global-border-width:1px;--ifm-global-radius:0.4rem;--ifm-hover-overlay:#0000000d;--ifm-font-color-base:var(--ifm-color-content);--ifm-font-color-base-inverse:var(--ifm-color-content-inverse);--ifm-font-color-secondary:var(--ifm-color-content-secondary);--ifm-font-family-base:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--ifm-font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--ifm-font-size-base:100%;--ifm-font-weight-light:300;--ifm-font-weight-normal:400;--ifm-font-weight-semibold:500;--ifm-font-weight-bold:700;--ifm-font-weight-base:var(--ifm-font-weight-normal);--ifm-line-height-base:1.65;--ifm-global-spacing:1rem;--ifm-spacing-vertical:var(--ifm-global-spacing);--ifm-spacing-horizontal:var(--ifm-global-spacing);--ifm-transition-fast:200ms;--ifm-transition-slow:400ms;--ifm-transition-timing-default:cubic-bezier(0.08,0.52,0.52,1);--ifm-global-shadow-lw:0 1px 2px 0 #0000001a;--ifm-global-shadow-md:0 5px 40px #0003;--ifm-global-shadow-tl:0 12px 28px 0 #0003,0 2px 4px 0 #0000001a;--ifm-z-index-dropdown:100;--ifm-z-index-fixed:200;--ifm-z-index-overlay:400;--ifm-container-width:1140px;--ifm-container-width-xl:1320px;--ifm-code-background:#f6f7f8;--ifm-code-border-radius:var(--ifm-global-radius);--ifm-code-font-size:90%;--ifm-code-padding-horizontal:0.1rem;--ifm-code-padding-vertical:0.1rem;--ifm-pre-background:var(--ifm-code-background);--ifm-pre-border-radius:var(--ifm-code-border-radius);--ifm-pre-color:inherit;--ifm-pre-line-height:1.45;--ifm-pre-padding:1rem;--ifm-heading-color:inherit;--ifm-heading-margin-top:0;--ifm-heading-margin-bottom:var(--ifm-spacing-vertical);--ifm-heading-font-family:var(--ifm-font-family-base);--ifm-heading-font-weight:var(--ifm-font-weight-bold);--ifm-heading-line-height:1.25;--ifm-h2-font-size:1.5rem;--ifm-h3-font-size:1.25rem;--ifm-h4-font-size:1rem;--ifm-h5-font-size:0.875rem;--ifm-h6-font-size:0.85rem;--ifm-image-alignment-padding:1.25rem;--ifm-leading-desktop:1.25;--ifm-leading:calc(var(--ifm-leading-desktop)*1rem);--ifm-list-left-padding:2rem;--ifm-list-margin:1rem;--ifm-list-item-margin:0.25rem;--ifm-list-paragraph-margin:1rem;--ifm-table-cell-padding:0.75rem;--ifm-table-background:#0000;--ifm-table-stripe-background:#00000008;--ifm-table-border-width:1px;--ifm-table-border-color:var(--ifm-color-emphasis-300);--ifm-table-head-background:inherit;--ifm-table-head-color:inherit;--ifm-table-head-font-weight:var(--ifm-font-weight-bold);--ifm-table-cell-color:inherit;--ifm-link-color:var(--ifm-color-primary);--ifm-link-decoration:none;--ifm-link-hover-color:var(--ifm-link-color);--ifm-link-hover-decoration:underline;--ifm-paragraph-margin-bottom:var(--ifm-leading);--ifm-blockquote-font-size:var(--ifm-font-size-base);--ifm-blockquote-border-left-width:2px;--ifm-blockquote-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-blockquote-padding-vertical:0;--ifm-blockquote-shadow:none;--ifm-blockquote-color:var(--ifm-color-emphasis-800);--ifm-blockquote-border-color:var(--ifm-color-emphasis-300);--ifm-hr-background-color:var(--ifm-color-emphasis-500);--ifm-hr-height:1px;--ifm-hr-margin-vertical:1.5rem;--ifm-scrollbar-size:7px;--ifm-scrollbar-track-background-color:#f1f1f1;--ifm-scrollbar-thumb-background-color:silver;--ifm-scrollbar-thumb-hover-background-color:#a7a7a7;--ifm-alert-background-color:inherit;--ifm-alert-border-color:inherit;--ifm-alert-border-radius:var(--ifm-global-radius);--ifm-alert-border-width:0px;--ifm-alert-border-left-width:5px;--ifm-alert-color:var(--ifm-font-color-base);--ifm-alert-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-alert-padding-vertical:var(--ifm-spacing-vertical);--ifm-alert-shadow:var(--ifm-global-shadow-lw);--ifm-avatar-intro-margin:1rem;--ifm-avatar-intro-alignment:inherit;--ifm-avatar-photo-size:3rem;--ifm-badge-background-color:inherit;--ifm-badge-border-color:inherit;--ifm-badge-border-radius:var(--ifm-global-radius);--ifm-badge-border-width:var(--ifm-global-border-width);--ifm-badge-color:var(--ifm-color-white);--ifm-badge-padding-horizontal:calc(var(--ifm-spacing-horizontal)*0.5);--ifm-badge-padding-vertical:calc(var(--ifm-spacing-vertical)*0.25);--ifm-breadcrumb-border-radius:1.5rem;--ifm-breadcrumb-spacing:0.5rem;--ifm-breadcrumb-color-active:var(--ifm-color-primary);--ifm-breadcrumb-item-background-active:var(--ifm-hover-overlay);--ifm-breadcrumb-padding-horizontal:0.8rem;--ifm-breadcrumb-padding-vertical:0.4rem;--ifm-breadcrumb-size-multiplier:1;--ifm-breadcrumb-separator:url('data:image/svg+xml;utf8,');--ifm-breadcrumb-separator-filter:none;--ifm-breadcrumb-separator-size:0.5rem;--ifm-breadcrumb-separator-size-multiplier:1.25;--ifm-button-background-color:inherit;--ifm-button-border-color:var(--ifm-button-background-color);--ifm-button-border-width:var(--ifm-global-border-width);--ifm-button-font-weight:var(--ifm-font-weight-bold);--ifm-button-padding-horizontal:1.5rem;--ifm-button-padding-vertical:0.375rem;--ifm-button-size-multiplier:1;--ifm-button-transition-duration:var(--ifm-transition-fast);--ifm-button-border-radius:calc(var(--ifm-global-radius)*var(--ifm-button-size-multiplier));--ifm-button-group-spacing:2px;--ifm-card-background-color:var(--ifm-background-surface-color);--ifm-card-border-radius:calc(var(--ifm-global-radius)*2);--ifm-card-horizontal-spacing:var(--ifm-global-spacing);--ifm-card-vertical-spacing:var(--ifm-global-spacing);--ifm-toc-border-color:var(--ifm-color-emphasis-300);--ifm-toc-link-color:var(--ifm-color-content-secondary);--ifm-toc-padding-vertical:0.5rem;--ifm-toc-padding-horizontal:0.5rem;--ifm-dropdown-background-color:var(--ifm-background-surface-color);--ifm-dropdown-font-weight:var(--ifm-font-weight-semibold);--ifm-dropdown-link-color:var(--ifm-font-color-base);--ifm-dropdown-hover-background-color:var(--ifm-hover-overlay);--ifm-footer-background-color:var(--ifm-color-emphasis-100);--ifm-footer-color:inherit;--ifm-footer-link-color:var(--ifm-color-emphasis-700);--ifm-footer-link-hover-color:var(--ifm-color-primary);--ifm-footer-link-horizontal-spacing:0.5rem;--ifm-footer-padding-horizontal:calc(var(--ifm-spacing-horizontal)*2);--ifm-footer-padding-vertical:calc(var(--ifm-spacing-vertical)*2);--ifm-footer-title-color:inherit;--ifm-footer-logo-max-width:min(30rem,90vw);--ifm-hero-background-color:var(--ifm-background-surface-color);--ifm-hero-text-color:var(--ifm-color-emphasis-800);--ifm-menu-color:var(--ifm-color-emphasis-700);--ifm-menu-color-active:var(--ifm-color-primary);--ifm-menu-color-background-active:var(--ifm-hover-overlay);--ifm-menu-color-background-hover:var(--ifm-hover-overlay);--ifm-menu-link-padding-horizontal:0.75rem;--ifm-menu-link-padding-vertical:0.375rem;--ifm-menu-link-sublist-icon:url('data:image/svg+xml;utf8,');--ifm-menu-link-sublist-icon-filter:none;--ifm-navbar-background-color:var(--ifm-background-surface-color);--ifm-navbar-height:3.75rem;--ifm-navbar-item-padding-horizontal:0.75rem;--ifm-navbar-item-padding-vertical:0.25rem;--ifm-navbar-link-color:var(--ifm-font-color-base);--ifm-navbar-link-active-color:var(--ifm-link-color);--ifm-navbar-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-navbar-padding-vertical:calc(var(--ifm-spacing-vertical)*0.5);--ifm-navbar-shadow:var(--ifm-global-shadow-lw);--ifm-navbar-search-input-background-color:var(--ifm-color-emphasis-200);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-800);--ifm-navbar-search-input-placeholder-color:var(--ifm-color-emphasis-500);--ifm-navbar-search-input-icon:url('data:image/svg+xml;utf8,');--ifm-navbar-sidebar-width:83vw;--ifm-pagination-border-radius:var(--ifm-global-radius);--ifm-pagination-color-active:var(--ifm-color-primary);--ifm-pagination-font-size:1rem;--ifm-pagination-item-active-background:var(--ifm-hover-overlay);--ifm-pagination-page-spacing:0.2em;--ifm-pagination-padding-horizontal:calc(var(--ifm-spacing-horizontal)*1);--ifm-pagination-padding-vertical:calc(var(--ifm-spacing-vertical)*0.25);--ifm-pagination-nav-border-radius:var(--ifm-global-radius);--ifm-pagination-nav-color-hover:var(--ifm-color-primary);--ifm-pills-color-active:var(--ifm-color-primary);--ifm-pills-color-background-active:var(--ifm-hover-overlay);--ifm-pills-spacing:0.125rem;--ifm-tabs-color:var(--ifm-font-color-secondary);--ifm-tabs-color-active:var(--ifm-color-primary);--ifm-tabs-color-active-border:var(--ifm-tabs-color-active);--ifm-tabs-padding-horizontal:1rem;--ifm-tabs-padding-vertical:1rem;--docusaurus-progress-bar-color:var(--ifm-color-primary);--ifm-color-primary:#2e8555;--ifm-color-primary-dark:#29784c;--ifm-color-primary-darker:#277148;--ifm-color-primary-darkest:#205d3b;--ifm-color-primary-light:#33925d;--ifm-color-primary-lighter:#359962;--ifm-color-primary-lightest:#3cad6e;--ifm-code-font-size:95%;--docusaurus-highlighted-code-line-bg:#0000001a;--ifm-h1-font-size:2rem;--docusaurus-announcement-bar-height:auto;--docusaurus-collapse-button-bg:#0000;--docusaurus-collapse-button-bg-hover:#0000001a;--doc-sidebar-width:300px;--doc-sidebar-hidden-width:30px;--docusaurus-tag-list-border:var(--ifm-color-emphasis-300)}.badge--danger,.badge--info,.badge--primary,.badge--secondary,.badge--success,.badge--warning{--ifm-badge-border-color:var(--ifm-badge-background-color)}.button--link,.button--outline{--ifm-button-background-color:#0000}*{box-sizing:border-box}html{-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;text-size-adjust:100%;background-color:var(--ifm-background-color);color:var(--ifm-font-color-base);color-scheme:var(--ifm-color-scheme);font:var(--ifm-font-size-base)/var(--ifm-line-height-base) var(--ifm-font-family-base);text-rendering:optimizelegibility}iframe{border:0;color-scheme:auto}.container{margin:0 auto;max-width:var(--ifm-container-width)}.container--fluid{max-width:inherit}.row{display:flex;flex-wrap:wrap;margin:0 calc(var(--ifm-spacing-horizontal)*-1)}.margin-bottom--none,.margin-vert--none,.markdown>:last-child{margin-bottom:0!important}.margin-top--none,.margin-vert--none{margin-top:0!important}.row--no-gutters{margin-left:0;margin-right:0}.margin-horiz--none,.margin-right--none{margin-right:0!important}.row--no-gutters>.col{padding-left:0;padding-right:0}.row--align-top{align-items:flex-start}.row--align-bottom{align-items:flex-end}.menuExternalLink_NmtK,.row--align-center{align-items:center}.row--align-stretch{align-items:stretch}.row--align-baseline{align-items:baseline}.col{--ifm-col-width:100%;flex:1 0;margin-left:0;max-width:var(--ifm-col-width)}.padding-bottom--none,.padding-vert--none{padding-bottom:0!important}.padding-top--none,.padding-vert--none{padding-top:0!important}.padding-horiz--none,.padding-left--none{padding-left:0!important}.padding-horiz--none,.padding-right--none{padding-right:0!important}.col[class*=col--]{flex:0 0 var(--ifm-col-width)}.col--1{--ifm-col-width:8.33333%}.col--offset-1{margin-left:8.33333%}.col--2{--ifm-col-width:16.66667%}.col--offset-2{margin-left:16.66667%}.col--3{--ifm-col-width:25%}.col--offset-3{margin-left:25%}.col--4{--ifm-col-width:33.33333%}.col--offset-4{margin-left:33.33333%}.col--5{--ifm-col-width:41.66667%}.col--offset-5{margin-left:41.66667%}.col--6{--ifm-col-width:50%}.col--offset-6{margin-left:50%}.col--7{--ifm-col-width:58.33333%}.col--offset-7{margin-left:58.33333%}.col--8{--ifm-col-width:66.66667%}.col--offset-8{margin-left:66.66667%}.col--9{--ifm-col-width:75%}.col--offset-9{margin-left:75%}.col--10{--ifm-col-width:83.33333%}.col--offset-10{margin-left:83.33333%}.col--11{--ifm-col-width:91.66667%}.col--offset-11{margin-left:91.66667%}.col--12{--ifm-col-width:100%}.col--offset-12{margin-left:100%}.margin-horiz--none,.margin-left--none{margin-left:0!important}.margin--none{margin:0!important}.margin-bottom--xs,.margin-vert--xs{margin-bottom:.25rem!important}.margin-top--xs,.margin-vert--xs{margin-top:.25rem!important}.margin-horiz--xs,.margin-left--xs{margin-left:.25rem!important}.margin-horiz--xs,.margin-right--xs{margin-right:.25rem!important}.margin--xs{margin:.25rem!important}.margin-bottom--sm,.margin-vert--sm{margin-bottom:.5rem!important}.margin-top--sm,.margin-vert--sm{margin-top:.5rem!important}.margin-horiz--sm,.margin-left--sm{margin-left:.5rem!important}.margin-horiz--sm,.margin-right--sm{margin-right:.5rem!important}.margin--sm{margin:.5rem!important}.margin-bottom--md,.margin-vert--md{margin-bottom:1rem!important}.margin-top--md,.margin-vert--md{margin-top:1rem!important}.margin-horiz--md,.margin-left--md{margin-left:1rem!important}.margin-horiz--md,.margin-right--md{margin-right:1rem!important}.margin--md{margin:1rem!important}.margin-bottom--lg,.margin-vert--lg{margin-bottom:2rem!important}.margin-top--lg,.margin-vert--lg{margin-top:2rem!important}.margin-horiz--lg,.margin-left--lg{margin-left:2rem!important}.margin-horiz--lg,.margin-right--lg{margin-right:2rem!important}.margin--lg{margin:2rem!important}.margin-bottom--xl,.margin-vert--xl{margin-bottom:5rem!important}.margin-top--xl,.margin-vert--xl{margin-top:5rem!important}.margin-horiz--xl,.margin-left--xl{margin-left:5rem!important}.margin-horiz--xl,.margin-right--xl{margin-right:5rem!important}.margin--xl{margin:5rem!important}.padding--none{padding:0!important}.padding-bottom--xs,.padding-vert--xs{padding-bottom:.25rem!important}.padding-top--xs,.padding-vert--xs{padding-top:.25rem!important}.padding-horiz--xs,.padding-left--xs{padding-left:.25rem!important}.padding-horiz--xs,.padding-right--xs{padding-right:.25rem!important}.padding--xs{padding:.25rem!important}.padding-bottom--sm,.padding-vert--sm{padding-bottom:.5rem!important}.padding-top--sm,.padding-vert--sm{padding-top:.5rem!important}.padding-horiz--sm,.padding-left--sm{padding-left:.5rem!important}.padding-horiz--sm,.padding-right--sm{padding-right:.5rem!important}.padding--sm{padding:.5rem!important}.padding-bottom--md,.padding-vert--md{padding-bottom:1rem!important}.padding-top--md,.padding-vert--md{padding-top:1rem!important}.padding-horiz--md,.padding-left--md{padding-left:1rem!important}.padding-horiz--md,.padding-right--md{padding-right:1rem!important}.padding--md{padding:1rem!important}.padding-bottom--lg,.padding-vert--lg{padding-bottom:2rem!important}.padding-top--lg,.padding-vert--lg{padding-top:2rem!important}.padding-horiz--lg,.padding-left--lg{padding-left:2rem!important}.padding-horiz--lg,.padding-right--lg{padding-right:2rem!important}.padding--lg{padding:2rem!important}.padding-bottom--xl,.padding-vert--xl{padding-bottom:5rem!important}.padding-top--xl,.padding-vert--xl{padding-top:5rem!important}.padding-horiz--xl,.padding-left--xl{padding-left:5rem!important}.padding-horiz--xl,.padding-right--xl{padding-right:5rem!important}.padding--xl{padding:5rem!important}code{background-color:var(--ifm-code-background);border:.1rem solid #0000001a;border-radius:var(--ifm-code-border-radius);font-family:var(--ifm-font-family-monospace);font-size:var(--ifm-code-font-size);padding:var(--ifm-code-padding-vertical) var(--ifm-code-padding-horizontal)}a code{color:inherit}pre{background-color:var(--ifm-pre-background);border-radius:var(--ifm-pre-border-radius);color:var(--ifm-pre-color);font:var(--ifm-code-font-size)/var(--ifm-pre-line-height) var(--ifm-font-family-monospace);padding:var(--ifm-pre-padding)}pre code{background-color:initial;border:none;font-size:100%;line-height:inherit;padding:0}kbd{background-color:var(--ifm-color-emphasis-0);border:1px solid var(--ifm-color-emphasis-400);border-radius:.2rem;box-shadow:inset 0 -1px 0 var(--ifm-color-emphasis-400);color:var(--ifm-color-emphasis-800);font:80% var(--ifm-font-family-monospace);padding:.15rem .3rem}h1,h2,h3,h4,h5,h6{color:var(--ifm-heading-color);font-family:var(--ifm-heading-font-family);font-weight:var(--ifm-heading-font-weight);line-height:var(--ifm-heading-line-height);margin:var(--ifm-heading-margin-top) 0 var(--ifm-heading-margin-bottom) 0}h1{font-size:var(--ifm-h1-font-size)}h2{font-size:var(--ifm-h2-font-size)}h3{font-size:var(--ifm-h3-font-size)}h4{font-size:var(--ifm-h4-font-size)}h5{font-size:var(--ifm-h5-font-size)}h6{font-size:var(--ifm-h6-font-size)}img{max-width:100%}img[align=right]{padding-left:var(--image-alignment-padding)}img[align=left]{padding-right:var(--image-alignment-padding)}.markdown{--ifm-h1-vertical-rhythm-top:3;--ifm-h2-vertical-rhythm-top:2;--ifm-h3-vertical-rhythm-top:1.5;--ifm-heading-vertical-rhythm-top:1.25;--ifm-h1-vertical-rhythm-bottom:1.25;--ifm-heading-vertical-rhythm-bottom:1}.markdown:after,.markdown:before{content:"";display:table}.markdown:after{clear:both}.markdown h1:first-child{--ifm-h1-font-size:3rem;margin-bottom:calc(var(--ifm-h1-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown>h2{--ifm-h2-font-size:2rem;margin-top:calc(var(--ifm-h2-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h3{--ifm-h3-font-size:1.5rem;margin-top:calc(var(--ifm-h3-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h4,.markdown>h5,.markdown>h6{margin-top:calc(var(--ifm-heading-vertical-rhythm-top)*var(--ifm-leading))}.markdown>p,.markdown>pre,.markdown>ul{margin-bottom:var(--ifm-leading)}.markdown li>p{margin-top:var(--ifm-list-paragraph-margin)}.markdown li+li{margin-top:var(--ifm-list-item-margin)}ol,ul{margin:0 0 var(--ifm-list-margin);padding-left:var(--ifm-list-left-padding)}ol ol,ul ol{list-style-type:lower-roman}ol ol ol,ol ul ol,ul ol ol,ul ul ol{list-style-type:lower-alpha}table{border-collapse:collapse;display:block;margin-bottom:var(--ifm-spacing-vertical)}table thead tr{border-bottom:2px solid var(--ifm-table-border-color)}table thead,table tr:nth-child(2n){background-color:var(--ifm-table-stripe-background)}table tr{background-color:var(--ifm-table-background);border-top:var(--ifm-table-border-width) solid var(--ifm-table-border-color)}table td,table th{border:var(--ifm-table-border-width) solid var(--ifm-table-border-color);padding:var(--ifm-table-cell-padding)}table th{background-color:var(--ifm-table-head-background);color:var(--ifm-table-head-color);font-weight:var(--ifm-table-head-font-weight)}table td{color:var(--ifm-table-cell-color)}strong{font-weight:var(--ifm-font-weight-bold)}a{color:var(--ifm-link-color);text-decoration:var(--ifm-link-decoration)}a:hover{color:var(--ifm-link-hover-color);text-decoration:var(--ifm-link-hover-decoration)}.button:hover,.text--no-decoration,.text--no-decoration:hover,a:not([href]){text-decoration:none}p{margin:0 0 var(--ifm-paragraph-margin-bottom)}blockquote{border-left:var(--ifm-blockquote-border-left-width) solid var(--ifm-blockquote-border-color);box-shadow:var(--ifm-blockquote-shadow);color:var(--ifm-blockquote-color);font-size:var(--ifm-blockquote-font-size);padding:var(--ifm-blockquote-padding-vertical) var(--ifm-blockquote-padding-horizontal)}blockquote>:first-child{margin-top:0}blockquote>:last-child{margin-bottom:0}hr{background-color:var(--ifm-hr-background-color);border:0;height:var(--ifm-hr-height);margin:var(--ifm-hr-margin-vertical) 0}.shadow--lw{box-shadow:var(--ifm-global-shadow-lw)!important}.shadow--md{box-shadow:var(--ifm-global-shadow-md)!important}.shadow--tl{box-shadow:var(--ifm-global-shadow-tl)!important}.text--primary,.wordWrapButtonEnabled_EoeP .wordWrapButtonIcon_Bwma{color:var(--ifm-color-primary)}.text--secondary{color:var(--ifm-color-secondary)}.text--success{color:var(--ifm-color-success)}.text--info{color:var(--ifm-color-info)}.text--warning{color:var(--ifm-color-warning)}.text--danger{color:var(--ifm-color-danger)}.text--center{text-align:center}.text--left{text-align:left}.text--justify{text-align:justify}.text--right{text-align:right}.text--capitalize{text-transform:capitalize}.text--lowercase{text-transform:lowercase}.admonitionHeading_tbUL,.alert__heading,.text--uppercase{text-transform:uppercase}.text--light{font-weight:var(--ifm-font-weight-light)}.text--normal{font-weight:var(--ifm-font-weight-normal)}.text--semibold{font-weight:var(--ifm-font-weight-semibold)}.text--bold{font-weight:var(--ifm-font-weight-bold)}.text--italic{font-style:italic}.text--truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text--break{word-wrap:break-word!important;word-break:break-word!important}.clean-btn{background:none;border:none;color:inherit;cursor:pointer;font-family:inherit;padding:0}.alert,.alert .close{color:var(--ifm-alert-foreground-color)}.clean-list{padding-left:0}.alert--primary{--ifm-alert-background-color:var(--ifm-color-primary-contrast-background);--ifm-alert-background-color-highlight:#3578e526;--ifm-alert-foreground-color:var(--ifm-color-primary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-primary-dark)}.alert--secondary{--ifm-alert-background-color:var(--ifm-color-secondary-contrast-background);--ifm-alert-background-color-highlight:#ebedf026;--ifm-alert-foreground-color:var(--ifm-color-secondary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-secondary-dark)}.alert--success{--ifm-alert-background-color:var(--ifm-color-success-contrast-background);--ifm-alert-background-color-highlight:#00a40026;--ifm-alert-foreground-color:var(--ifm-color-success-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-success-dark)}.alert--info{--ifm-alert-background-color:var(--ifm-color-info-contrast-background);--ifm-alert-background-color-highlight:#54c7ec26;--ifm-alert-foreground-color:var(--ifm-color-info-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-info-dark)}.alert--warning{--ifm-alert-background-color:var(--ifm-color-warning-contrast-background);--ifm-alert-background-color-highlight:#ffba0026;--ifm-alert-foreground-color:var(--ifm-color-warning-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-warning-dark)}.alert--danger{--ifm-alert-background-color:var(--ifm-color-danger-contrast-background);--ifm-alert-background-color-highlight:#fa383e26;--ifm-alert-foreground-color:var(--ifm-color-danger-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-danger-dark)}.alert{--ifm-code-background:var(--ifm-alert-background-color-highlight);--ifm-link-color:var(--ifm-alert-foreground-color);--ifm-link-hover-color:var(--ifm-alert-foreground-color);--ifm-link-decoration:underline;--ifm-tabs-color:var(--ifm-alert-foreground-color);--ifm-tabs-color-active:var(--ifm-alert-foreground-color);--ifm-tabs-color-active-border:var(--ifm-alert-border-color);background-color:var(--ifm-alert-background-color);border:var(--ifm-alert-border-width) solid var(--ifm-alert-border-color);border-left-width:var(--ifm-alert-border-left-width);border-radius:var(--ifm-alert-border-radius);box-shadow:var(--ifm-alert-shadow);padding:var(--ifm-alert-padding-vertical) var(--ifm-alert-padding-horizontal)}.alert__heading{align-items:center;display:flex;font:700 var(--ifm-h5-font-size)/var(--ifm-heading-line-height) var(--ifm-heading-font-family);margin-bottom:.5rem}.alert__icon{display:inline-flex;margin-right:.4em}.alert__icon svg{fill:var(--ifm-alert-foreground-color);stroke:var(--ifm-alert-foreground-color);stroke-width:0}.alert .close{margin:calc(var(--ifm-alert-padding-vertical)*-1) calc(var(--ifm-alert-padding-horizontal)*-1) 0 0;opacity:.75}.alert .close:focus,.alert .close:hover{opacity:1}.alert a{text-decoration-color:var(--ifm-alert-border-color)}.alert a:hover{text-decoration-thickness:2px}.avatar{column-gap:var(--ifm-avatar-intro-margin);display:flex}.avatar__photo{border-radius:50%;display:block;height:var(--ifm-avatar-photo-size);overflow:hidden;width:var(--ifm-avatar-photo-size)}.card--full-height,.navbar__logo img,body,html{height:100%}.avatar__photo--sm{--ifm-avatar-photo-size:2rem}.avatar__photo--lg{--ifm-avatar-photo-size:4rem}.avatar__photo--xl{--ifm-avatar-photo-size:6rem}.avatar__intro{display:flex;flex:1 1;flex-direction:column;justify-content:center;text-align:var(--ifm-avatar-intro-alignment)}.badge,.breadcrumbs__item,.breadcrumbs__link,.button,.dropdown>.navbar__link:after{display:inline-block}.avatar__name{font:700 var(--ifm-h4-font-size)/var(--ifm-heading-line-height) var(--ifm-font-family-base)}.avatar__subtitle{margin-top:.25rem}.avatar--vertical{--ifm-avatar-intro-alignment:center;--ifm-avatar-intro-margin:0.5rem;align-items:center;flex-direction:column}.badge{background-color:var(--ifm-badge-background-color);border:var(--ifm-badge-border-width) solid var(--ifm-badge-border-color);border-radius:var(--ifm-badge-border-radius);color:var(--ifm-badge-color);font-size:75%;font-weight:var(--ifm-font-weight-bold);line-height:1;padding:var(--ifm-badge-padding-vertical) var(--ifm-badge-padding-horizontal)}.badge--primary{--ifm-badge-background-color:var(--ifm-color-primary)}.badge--secondary{--ifm-badge-background-color:var(--ifm-color-secondary);color:var(--ifm-color-black)}.breadcrumbs__link,.button.button--secondary.button--outline:not(.button--active):not(:hover){color:var(--ifm-font-color-base)}.badge--success{--ifm-badge-background-color:var(--ifm-color-success)}.badge--info{--ifm-badge-background-color:var(--ifm-color-info)}.badge--warning{--ifm-badge-background-color:var(--ifm-color-warning)}.badge--danger{--ifm-badge-background-color:var(--ifm-color-danger)}.breadcrumbs{margin-bottom:0;padding-left:0}.breadcrumbs__item:not(:last-child):after{background:var(--ifm-breadcrumb-separator) center;content:" ";display:inline-block;filter:var(--ifm-breadcrumb-separator-filter);height:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier));margin:0 var(--ifm-breadcrumb-spacing);opacity:.5;width:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier))}.breadcrumbs__item--active .breadcrumbs__link{background:var(--ifm-breadcrumb-item-background-active);color:var(--ifm-breadcrumb-color-active)}.breadcrumbs__link{border-radius:var(--ifm-breadcrumb-border-radius);font-size:calc(1rem*var(--ifm-breadcrumb-size-multiplier));padding:calc(var(--ifm-breadcrumb-padding-vertical)*var(--ifm-breadcrumb-size-multiplier)) calc(var(--ifm-breadcrumb-padding-horizontal)*var(--ifm-breadcrumb-size-multiplier));transition-duration:var(--ifm-transition-fast);transition-property:background,color}.breadcrumbs__link:any-link:hover,.breadcrumbs__link:link:hover,.breadcrumbs__link:visited:hover,area[href].breadcrumbs__link:hover{background:var(--ifm-breadcrumb-item-background-active);text-decoration:none}.breadcrumbs--sm{--ifm-breadcrumb-size-multiplier:0.8}.breadcrumbs--lg{--ifm-breadcrumb-size-multiplier:1.2}.button{background-color:var(--ifm-button-background-color);border:var(--ifm-button-border-width) solid var(--ifm-button-border-color);border-radius:var(--ifm-button-border-radius);cursor:pointer;font-size:calc(.875rem*var(--ifm-button-size-multiplier));font-weight:var(--ifm-button-font-weight);line-height:1.5;padding:calc(var(--ifm-button-padding-vertical)*var(--ifm-button-size-multiplier)) calc(var(--ifm-button-padding-horizontal)*var(--ifm-button-size-multiplier));text-align:center;transition-duration:var(--ifm-button-transition-duration);transition-property:color,background,border-color;-webkit-user-select:none;user-select:none;white-space:nowrap}.button,.button:hover{color:var(--ifm-button-color)}.button--outline{--ifm-button-color:var(--ifm-button-border-color)}.button--outline:hover{--ifm-button-background-color:var(--ifm-button-border-color)}.button--link{--ifm-button-border-color:#0000;color:var(--ifm-link-color);text-decoration:var(--ifm-link-decoration)}.button--link.button--active,.button--link:active,.button--link:hover{color:var(--ifm-link-hover-color);text-decoration:var(--ifm-link-hover-decoration)}.button.disabled,.button:disabled,.button[disabled]{opacity:.65;pointer-events:none}.button--sm{--ifm-button-size-multiplier:0.8}.button--lg{--ifm-button-size-multiplier:1.35}.button--block{display:block;width:100%}.button.button--secondary{color:var(--ifm-color-gray-900)}:where(.button--primary){--ifm-button-background-color:var(--ifm-color-primary);--ifm-button-border-color:var(--ifm-color-primary)}:where(.button--primary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-primary-dark);--ifm-button-border-color:var(--ifm-color-primary-dark)}.button--primary.button--active,.button--primary:active{--ifm-button-background-color:var(--ifm-color-primary-darker);--ifm-button-border-color:var(--ifm-color-primary-darker)}:where(.button--secondary){--ifm-button-background-color:var(--ifm-color-secondary);--ifm-button-border-color:var(--ifm-color-secondary)}:where(.button--secondary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-secondary-dark);--ifm-button-border-color:var(--ifm-color-secondary-dark)}.button--secondary.button--active,.button--secondary:active{--ifm-button-background-color:var(--ifm-color-secondary-darker);--ifm-button-border-color:var(--ifm-color-secondary-darker)}:where(.button--success){--ifm-button-background-color:var(--ifm-color-success);--ifm-button-border-color:var(--ifm-color-success)}:where(.button--success):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-success-dark);--ifm-button-border-color:var(--ifm-color-success-dark)}.button--success.button--active,.button--success:active{--ifm-button-background-color:var(--ifm-color-success-darker);--ifm-button-border-color:var(--ifm-color-success-darker)}:where(.button--info){--ifm-button-background-color:var(--ifm-color-info);--ifm-button-border-color:var(--ifm-color-info)}:where(.button--info):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-info-dark);--ifm-button-border-color:var(--ifm-color-info-dark)}.button--info.button--active,.button--info:active{--ifm-button-background-color:var(--ifm-color-info-darker);--ifm-button-border-color:var(--ifm-color-info-darker)}:where(.button--warning){--ifm-button-background-color:var(--ifm-color-warning);--ifm-button-border-color:var(--ifm-color-warning)}:where(.button--warning):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-warning-dark);--ifm-button-border-color:var(--ifm-color-warning-dark)}.button--warning.button--active,.button--warning:active{--ifm-button-background-color:var(--ifm-color-warning-darker);--ifm-button-border-color:var(--ifm-color-warning-darker)}:where(.button--danger){--ifm-button-background-color:var(--ifm-color-danger);--ifm-button-border-color:var(--ifm-color-danger)}:where(.button--danger):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-danger-dark);--ifm-button-border-color:var(--ifm-color-danger-dark)}.button--danger.button--active,.button--danger:active{--ifm-button-background-color:var(--ifm-color-danger-darker);--ifm-button-border-color:var(--ifm-color-danger-darker)}.button-group{display:inline-flex;gap:var(--ifm-button-group-spacing)}.button-group>.button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.button-group>.button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.button-group--block{display:flex;justify-content:stretch}.button-group--block>.button{flex-grow:1}.card{background-color:var(--ifm-card-background-color);border-radius:var(--ifm-card-border-radius);box-shadow:var(--ifm-global-shadow-lw);display:flex;flex-direction:column;overflow:hidden}.card__image{padding-top:var(--ifm-card-vertical-spacing)}.card__image:first-child{padding-top:0}.card__body,.card__footer,.card__header{padding:var(--ifm-card-vertical-spacing) var(--ifm-card-horizontal-spacing)}.card__body:not(:last-child),.card__footer:not(:last-child),.card__header:not(:last-child){padding-bottom:0}.card__body>:last-child,.card__footer>:last-child,.card__header>:last-child{margin-bottom:0}.card__footer{margin-top:auto}.table-of-contents{font-size:.8rem;margin-bottom:0;padding:var(--ifm-toc-padding-vertical) 0}.table-of-contents,.table-of-contents ul{list-style:none;padding-left:var(--ifm-toc-padding-horizontal)}.table-of-contents li{margin:var(--ifm-toc-padding-vertical) var(--ifm-toc-padding-horizontal)}.table-of-contents__left-border{border-left:1px solid var(--ifm-toc-border-color)}.table-of-contents__link{color:var(--ifm-toc-link-color);display:block}.table-of-contents__link--active,.table-of-contents__link--active code,.table-of-contents__link:hover,.table-of-contents__link:hover code{color:var(--ifm-color-primary);text-decoration:none}.close{color:var(--ifm-color-black);float:right;font-size:1.5rem;font-weight:var(--ifm-font-weight-bold);line-height:1;opacity:.5;padding:1rem;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.close:hover{opacity:.7}.close:focus,.theme-code-block-highlighted-line .codeLineNumber_Tfdd:before{opacity:.8}.dropdown{display:inline-flex;font-weight:var(--ifm-dropdown-font-weight);position:relative;vertical-align:top}.dropdown--hoverable:hover .dropdown__menu,.dropdown--show .dropdown__menu{opacity:1;pointer-events:all;transform:translateY(-1px);visibility:visible}#nprogress,.dropdown__menu,.navbar__item.dropdown .navbar__link:not([href]){pointer-events:none}.dropdown--right .dropdown__menu{left:inherit;right:0}.dropdown--nocaret .navbar__link:after{content:none!important}.dropdown__menu{background-color:var(--ifm-dropdown-background-color);border-radius:var(--ifm-global-radius);box-shadow:var(--ifm-global-shadow-md);left:0;max-height:80vh;min-width:10rem;opacity:0;overflow-y:auto;padding:.5rem;position:absolute;top:calc(100% - var(--ifm-navbar-item-padding-vertical) + .3rem);transform:translateY(-.625rem);transition-duration:var(--ifm-transition-fast);transition-property:opacity,transform,visibility;transition-timing-function:var(--ifm-transition-timing-default);visibility:hidden;z-index:var(--ifm-z-index-dropdown)}.menu__caret,.menu__link,.menu__list-item-collapsible{border-radius:.25rem;transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.dropdown__link{border-radius:.25rem;color:var(--ifm-dropdown-link-color);display:block;font-size:.875rem;margin-top:.2rem;padding:.25rem .5rem;white-space:nowrap}.dropdown__link--active,.dropdown__link:hover{background-color:var(--ifm-dropdown-hover-background-color);color:var(--ifm-dropdown-link-color);text-decoration:none}.dropdown__link--active,.dropdown__link--active:hover{--ifm-dropdown-link-color:var(--ifm-link-color)}.dropdown>.navbar__link:after{border-color:currentcolor #0000;border-style:solid;border-width:.4em .4em 0;content:"";margin-left:.3em;position:relative;top:2px;transform:translateY(-50%)}.footer{background-color:var(--ifm-footer-background-color);color:var(--ifm-footer-color);padding:var(--ifm-footer-padding-vertical) var(--ifm-footer-padding-horizontal)}.footer--dark{--ifm-footer-background-color:#303846;--ifm-footer-color:var(--ifm-footer-link-color);--ifm-footer-link-color:var(--ifm-color-secondary);--ifm-footer-title-color:var(--ifm-color-white)}.footer__links{margin-bottom:1rem}.footer__link-item{color:var(--ifm-footer-link-color);line-height:2}.footer__link-item:hover{color:var(--ifm-footer-link-hover-color)}.footer__link-separator{margin:0 var(--ifm-footer-link-horizontal-spacing)}.footer__logo{margin-top:1rem;max-width:var(--ifm-footer-logo-max-width)}.footer__title{color:var(--ifm-footer-title-color);font:700 var(--ifm-h4-font-size)/var(--ifm-heading-line-height) var(--ifm-font-family-base);margin-bottom:var(--ifm-heading-margin-bottom)}.menu,.navbar__link{font-weight:var(--ifm-font-weight-semibold)}.docItemContainer_Djhp article>:first-child,.docItemContainer_Djhp header+*,.footer__item{margin-top:0}.admonitionContent_S0QG>:last-child,.collapsibleContent_i85q>:last-child,.footer__items{margin-bottom:0}.codeBlockStandalone_MEMb,[type=checkbox]{padding:0}.hero{align-items:center;background-color:var(--ifm-hero-background-color);color:var(--ifm-hero-text-color);display:flex;padding:4rem 2rem}.hero--primary{--ifm-hero-background-color:var(--ifm-color-primary);--ifm-hero-text-color:var(--ifm-font-color-base-inverse)}.hero--dark{--ifm-hero-background-color:#303846;--ifm-hero-text-color:var(--ifm-color-white)}.hero__title,.title_f1Hy{font-size:3rem}.hero__subtitle{font-size:1.5rem}.menu__list{margin:0;padding-left:0}.menu__caret,.menu__link{padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal)}.menu__list .menu__list{flex:0 0 100%;margin-top:.25rem;padding-left:var(--ifm-menu-link-padding-horizontal)}.menu__list-item:not(:first-child){margin-top:.25rem}.menu__list-item--collapsed .menu__list{height:0;overflow:hidden}.details_lb9f[data-collapsed=false].isBrowser_bmU9>summary:before,.details_lb9f[open]:not(.isBrowser_bmU9)>summary:before,.menu__list-item--collapsed .menu__caret:before,.menu__list-item--collapsed .menu__link--sublist:after{transform:rotate(90deg)}.menu__list-item-collapsible{display:flex;flex-wrap:wrap;position:relative}.menu__caret:hover,.menu__link:hover,.menu__list-item-collapsible--active,.menu__list-item-collapsible:hover{background:var(--ifm-menu-color-background-hover)}.menu__list-item-collapsible .menu__link--active,.menu__list-item-collapsible .menu__link:hover{background:none!important}.menu__caret,.menu__link{align-items:center;display:flex}.menu__link{color:var(--ifm-menu-color);flex:1;line-height:1.25}.menu__link:hover{color:var(--ifm-menu-color);text-decoration:none}.menu__caret:before,.menu__link--sublist-caret:after{content:"";height:1.25rem;transform:rotate(180deg);transition:transform var(--ifm-transition-fast) linear;width:1.25rem;filter:var(--ifm-menu-link-sublist-icon-filter)}.menu__link--sublist-caret:after{background:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem;margin-left:auto;min-width:1.25rem}.menu__link--active,.menu__link--active:hover{color:var(--ifm-menu-color-active)}.navbar__brand,.navbar__link{color:var(--ifm-navbar-link-color)}.menu__link--active:not(.menu__link--sublist){background-color:var(--ifm-menu-color-background-active)}.menu__caret:before{background:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem}.navbar--dark,html[data-theme=dark]{--ifm-menu-link-sublist-icon-filter:invert(100%) sepia(94%) saturate(17%) hue-rotate(223deg) brightness(104%) contrast(98%)}.navbar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-navbar-shadow);height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal)}.navbar,.navbar>.container,.navbar>.container-fluid{display:flex}.navbar--fixed-top{position:sticky;top:0;z-index:var(--ifm-z-index-fixed)}.navbar-sidebar,.navbar-sidebar__backdrop{bottom:0;opacity:0;position:fixed;transition-duration:var(--ifm-transition-fast);transition-timing-function:ease-in-out;left:0;top:0;visibility:hidden}.navbar__inner{display:flex;flex-wrap:wrap;justify-content:space-between;width:100%}.navbar__brand{align-items:center;display:flex;margin-right:1rem;min-width:0}.navbar__brand:hover{color:var(--ifm-navbar-link-hover-color);text-decoration:none}.announcementBarContent_xLdY,.navbar__title{flex:1 1 auto}.navbar__toggle{display:none;margin-right:.5rem}.navbar__logo{flex:0 0 auto;height:2rem;margin-right:.5rem}.navbar__items{align-items:center;display:flex;flex:1;min-width:0}.navbar__items--center{flex:0 0 auto}.navbar__items--center .navbar__brand{margin:0}.navbar__items--center+.navbar__items--right{flex:1}.navbar__items--right{flex:0 0 auto;justify-content:flex-end}.navbar__items--right>:last-child{padding-right:0}.navbar__item{display:inline-block;padding:var(--ifm-navbar-item-padding-vertical) var(--ifm-navbar-item-padding-horizontal)}.navbar__link--active,.navbar__link:hover{color:var(--ifm-navbar-link-hover-color);text-decoration:none}.navbar--dark,.navbar--primary{--ifm-menu-color:var(--ifm-color-gray-300);--ifm-navbar-link-color:var(--ifm-color-gray-100);--ifm-navbar-search-input-background-color:#ffffff1a;--ifm-navbar-search-input-placeholder-color:#ffffff80;color:var(--ifm-color-white)}.navbar--dark{--ifm-navbar-background-color:#242526;--ifm-menu-color-background-active:#ffffff0d;--ifm-navbar-search-input-color:var(--ifm-color-white)}.navbar--primary{--ifm-navbar-background-color:var(--ifm-color-primary);--ifm-navbar-link-hover-color:var(--ifm-color-white);--ifm-menu-color-active:var(--ifm-color-white);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-500)}.navbar__search-input{-webkit-appearance:none;appearance:none;background:var(--ifm-navbar-search-input-background-color) var(--ifm-navbar-search-input-icon) no-repeat .75rem center/1rem 1rem;border:none;border-radius:2rem;color:var(--ifm-navbar-search-input-color);cursor:text;display:inline-block;font-size:.9rem;height:2rem;padding:0 .5rem 0 2.25rem;width:12.5rem}.navbar__search-input::placeholder{color:var(--ifm-navbar-search-input-placeholder-color)}.navbar-sidebar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-global-shadow-md);transform:translate3d(-100%,0,0);transition-property:opacity,visibility,transform;width:var(--ifm-navbar-sidebar-width)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar__items{transform:translateZ(0)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar--show .navbar-sidebar__backdrop{opacity:1;visibility:visible}.navbar-sidebar__backdrop{background-color:#0009;right:0;transition-property:opacity,visibility}.navbar-sidebar__brand{align-items:center;box-shadow:var(--ifm-navbar-shadow);display:flex;flex:1;height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal)}.navbar-sidebar__items{display:flex;height:calc(100% - var(--ifm-navbar-height));transition:transform var(--ifm-transition-fast) ease-in-out}.navbar-sidebar__items--show-secondary{transform:translate3d(calc((var(--ifm-navbar-sidebar-width))*-1),0,0)}.navbar-sidebar__item{flex-shrink:0;padding:.5rem;width:calc(var(--ifm-navbar-sidebar-width))}.navbar-sidebar__back{background:var(--ifm-menu-color-background-active);font-size:15px;font-weight:var(--ifm-button-font-weight);margin:0 0 .2rem -.5rem;padding:.6rem 1.5rem;position:relative;text-align:left;top:-.5rem;width:calc(100% + 1rem)}.navbar-sidebar__close{display:flex;margin-left:auto}.pagination{column-gap:var(--ifm-pagination-page-spacing);display:flex;font-size:var(--ifm-pagination-font-size);padding-left:0}.pagination--sm{--ifm-pagination-font-size:0.8rem;--ifm-pagination-padding-horizontal:0.8rem;--ifm-pagination-padding-vertical:0.2rem}.pagination--lg{--ifm-pagination-font-size:1.2rem;--ifm-pagination-padding-horizontal:1.2rem;--ifm-pagination-padding-vertical:0.3rem}.pagination__item{display:inline-flex}.pagination__item>span{padding:var(--ifm-pagination-padding-vertical)}.pagination__item--active .pagination__link{color:var(--ifm-pagination-color-active)}.pagination__item--active .pagination__link,.pagination__item:not(.pagination__item--active):hover .pagination__link{background:var(--ifm-pagination-item-active-background)}.pagination__item--disabled,.pagination__item[disabled]{opacity:.25;pointer-events:none}.pagination__link{border-radius:var(--ifm-pagination-border-radius);color:var(--ifm-font-color-base);display:inline-block;padding:var(--ifm-pagination-padding-vertical) var(--ifm-pagination-padding-horizontal);transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pagination__link:hover,.sidebarItemLink_mo7H:hover{text-decoration:none}.pagination-nav{grid-gap:var(--ifm-spacing-horizontal);display:grid;gap:var(--ifm-spacing-horizontal);grid-template-columns:repeat(2,1fr)}.pagination-nav__link{border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-pagination-nav-border-radius);display:block;height:100%;line-height:var(--ifm-heading-line-height);padding:var(--ifm-global-spacing);transition:border-color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pagination-nav__link:hover{border-color:var(--ifm-pagination-nav-color-hover);text-decoration:none}.pagination-nav__link--next{grid-column:2/3;text-align:right}.pagination-nav__label{font-size:var(--ifm-h4-font-size);font-weight:var(--ifm-heading-font-weight);word-break:break-word}.pagination-nav__link--prev .pagination-nav__label:before{content:"« "}.pagination-nav__link--next .pagination-nav__label:after{content:" »"}.pagination-nav__sublabel{color:var(--ifm-color-content-secondary);font-size:var(--ifm-h5-font-size);font-weight:var(--ifm-font-weight-semibold);margin-bottom:.25rem}.pills__item,.sidebarItemTitle_pO2u,.tabs{font-weight:var(--ifm-font-weight-bold)}.pills{display:flex;gap:var(--ifm-pills-spacing);padding-left:0}.pills__item{border-radius:.5rem;cursor:pointer;display:inline-block;padding:.25rem 1rem;transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.tabs,:not(.containsTaskList_mC6p>li)>.containsTaskList_mC6p{padding-left:0}.pills__item--active{color:var(--ifm-pills-color-active)}.pills__item--active,.pills__item:not(.pills__item--active):hover{background:var(--ifm-pills-color-background-active)}.pills--block{justify-content:stretch}.pills--block .pills__item{flex-grow:1;text-align:center}.tabs{color:var(--ifm-tabs-color);display:flex;margin-bottom:0;overflow-x:auto}.tabs__item{border-bottom:3px solid #0000;border-radius:var(--ifm-global-radius);cursor:pointer;display:inline-flex;padding:var(--ifm-tabs-padding-vertical) var(--ifm-tabs-padding-horizontal);transition:background-color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.tabs__item--active{border-bottom-color:var(--ifm-tabs-color-active-border);border-bottom-left-radius:0;border-bottom-right-radius:0;color:var(--ifm-tabs-color-active)}.tabs__item:hover{background-color:var(--ifm-hover-overlay)}.tabs--block{justify-content:stretch}.tabs--block .tabs__item{flex-grow:1;justify-content:center}html[data-theme=dark]{--ifm-color-scheme:dark;--ifm-color-emphasis-0:var(--ifm-color-gray-1000);--ifm-color-emphasis-100:var(--ifm-color-gray-900);--ifm-color-emphasis-200:var(--ifm-color-gray-800);--ifm-color-emphasis-300:var(--ifm-color-gray-700);--ifm-color-emphasis-400:var(--ifm-color-gray-600);--ifm-color-emphasis-600:var(--ifm-color-gray-400);--ifm-color-emphasis-700:var(--ifm-color-gray-300);--ifm-color-emphasis-800:var(--ifm-color-gray-200);--ifm-color-emphasis-900:var(--ifm-color-gray-100);--ifm-color-emphasis-1000:var(--ifm-color-gray-0);--ifm-background-color:#1b1b1d;--ifm-background-surface-color:#242526;--ifm-hover-overlay:#ffffff0d;--ifm-color-content:#e3e3e3;--ifm-color-content-secondary:#fff;--ifm-breadcrumb-separator-filter:invert(64%) sepia(11%) saturate(0%) hue-rotate(149deg) brightness(99%) contrast(95%);--ifm-code-background:#ffffff1a;--ifm-scrollbar-track-background-color:#444;--ifm-scrollbar-thumb-background-color:#686868;--ifm-scrollbar-thumb-hover-background-color:#7a7a7a;--ifm-table-stripe-background:#ffffff12;--ifm-toc-border-color:var(--ifm-color-emphasis-200);--ifm-color-primary-contrast-background:#102445;--ifm-color-primary-contrast-foreground:#ebf2fc;--ifm-color-secondary-contrast-background:#474748;--ifm-color-secondary-contrast-foreground:#fdfdfe;--ifm-color-success-contrast-background:#003100;--ifm-color-success-contrast-foreground:#e6f6e6;--ifm-color-info-contrast-background:#193c47;--ifm-color-info-contrast-foreground:#eef9fd;--ifm-color-warning-contrast-background:#4d3800;--ifm-color-warning-contrast-foreground:#fff8e6;--ifm-color-danger-contrast-background:#4b1113;--ifm-color-danger-contrast-foreground:#ffebec}#nprogress .bar{background:var(--docusaurus-progress-bar-color);height:2px;left:0;position:fixed;top:0;width:100%;z-index:1031}#nprogress .peg{box-shadow:0 0 10px var(--docusaurus-progress-bar-color),0 0 5px var(--docusaurus-progress-bar-color);height:100%;opacity:1;position:absolute;right:0;transform:rotate(3deg) translateY(-4px);width:100px}[data-theme=dark]{--ifm-color-primary:#25c2a0;--ifm-color-primary-dark:#21af90;--ifm-color-primary-darker:#1fa588;--ifm-color-primary-darkest:#1a8870;--ifm-color-primary-light:#29d5b0;--ifm-color-primary-lighter:#32d8b4;--ifm-color-primary-lightest:#4fddbf;--docusaurus-highlighted-code-line-bg:#0000004d}.skipToContent_fXgn{background-color:var(--ifm-background-surface-color);color:var(--ifm-color-emphasis-900);left:100%;padding:calc(var(--ifm-global-spacing)/2) var(--ifm-global-spacing);position:fixed;top:1rem;z-index:calc(var(--ifm-z-index-fixed) + 1)}.skipToContent_fXgn:focus{box-shadow:var(--ifm-global-shadow-md);left:1rem}.closeButton_CVFx{line-height:0;padding:0}.content_knG7{font-size:85%;padding:5px 0;text-align:center}.content_knG7 a{color:inherit;text-decoration:underline}.announcementBar_mb4j{align-items:center;background-color:var(--ifm-color-white);border-bottom:1px solid var(--ifm-color-emphasis-100);color:var(--ifm-color-black);display:flex;height:var(--docusaurus-announcement-bar-height)}#docusaurus-base-url-issue-banner-container,.docSidebarContainer_b6E3,.sidebarLogo_isFc,.themedImage_ToTc,[data-theme=dark] .lightToggleIcon_pyhR,[data-theme=light] .darkToggleIcon_wfgR,html[data-announcement-bar-initially-dismissed=true] .announcementBar_mb4j{display:none}.announcementBarPlaceholder_vyr4{flex:0 0 10px}.announcementBarClose_gvF7{align-self:stretch;flex:0 0 30px}.toggle_vylO{height:2rem;width:2rem}.toggleButton_gllP{align-items:center;border-radius:50%;display:flex;height:100%;justify-content:center;transition:background var(--ifm-transition-fast);width:100%}.toggleButton_gllP:hover{background:var(--ifm-color-emphasis-200)}.toggleButtonDisabled_aARS{cursor:not-allowed}.darkNavbarColorModeToggle_X3D1:hover{background:var(--ifm-color-gray-800)}[data-theme=dark] .themedImage--dark_i4oU,[data-theme=light] .themedImage--light_HNdA{display:initial}.iconExternalLink_nPIU{margin-left:.3rem}.iconLanguage_nlXk{margin-right:5px;vertical-align:text-bottom}.navbarHideable_m1mJ{transition:transform var(--ifm-transition-fast) ease}.navbarHidden_jGov{transform:translate3d(0,calc(-100% - 2px),0)}.errorBoundaryError_a6uf{color:red;white-space:pre-wrap}body:not(.navigation-with-keyboard) :not(input):focus{outline:0}.footerLogoLink_BH7S{opacity:.5;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.footerLogoLink_BH7S:hover,.hash-link:focus,:hover>.hash-link{opacity:1}.mainWrapper_z2l0{display:flex;flex:1 0 auto;flex-direction:column}.docusaurus-mt-lg{margin-top:3rem}#__docusaurus{display:flex;flex-direction:column;min-height:100%}.sidebar_re4s{max-height:calc(100vh - var(--ifm-navbar-height) - 2rem);overflow-y:auto;position:sticky;top:calc(var(--ifm-navbar-height) + 2rem)}.sidebarItemTitle_pO2u{font-size:var(--ifm-h3-font-size)}.text1_bUvo,.text2_Pbus{font-weight:700;line-height:64px}.container_mt6G,.sidebarItemList_Yudw{font-size:.9rem}.sidebarItem__DBe{margin-top:.7rem}.sidebarItemLink_mo7H{color:var(--ifm-font-color-base);display:block}.sidebarItemLinkActive_I1ZP{color:var(--ifm-color-primary)!important}.backToTopButton_sjWU{background-color:var(--ifm-color-emphasis-200);border-radius:50%;bottom:1.3rem;box-shadow:var(--ifm-global-shadow-lw);height:3rem;opacity:0;position:fixed;right:1.3rem;transform:scale(0);transition:all var(--ifm-transition-fast) var(--ifm-transition-timing-default);visibility:hidden;width:3rem;z-index:calc(var(--ifm-z-index-fixed) - 1)}.backToTopButton_sjWU:after{background-color:var(--ifm-color-emphasis-1000);content:" ";display:inline-block;height:100%;-webkit-mask:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem no-repeat;mask:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem no-repeat;width:100%}.backToTopButtonShow_xfvO{opacity:1;transform:scale(1);visibility:visible}[data-theme=dark]:root{--docusaurus-collapse-button-bg:#ffffff0d;--docusaurus-collapse-button-bg-hover:#ffffff1a}.collapseSidebarButton_PEFL{display:none;margin:0}.docMainContainer_gTbr,.docPage__5DB{display:flex;width:100%}.docPage__5DB{flex:1 0}.docsWrapper_BCFX{display:flex;flex:1 0 auto}.authorCol_Hf19{flex-grow:1!important;max-width:inherit!important}.imageOnlyAuthorRow_pa_O{display:flex;flex-flow:row wrap}.features_t9lD,.right_OHMl{align-items:center;display:flex}.imageOnlyAuthorCol_G86a{margin-left:.3rem;margin-right:.3rem}.features_t9lD{padding:2rem 0;width:100%}.featureSvg_GfXr{height:200px;width:200px}.featureImg_d9Ri{max-height:200px}.left_g_Qb{justify-self:center;min-height:300px}.text1_bUvo{color:#0000;font-size:56px;letter-spacing:-.4px;margin:0;white-space:pre-wrap}.text1_bUvo .clip_YUr1{-webkit-text-fill-color:#0000;background:-webkit-linear-gradient(120deg,#bd34fe 30%,#41d1ff);-webkit-background-clip:text;background-clip:text}.text2_Pbus{color:#3c3c43;font-size:50px;margin-top:20px}.text3_MeLg{color:#3c3c43c7;font-size:24px;font-weight:500;line-height:36px;padding-top:12px}.right_OHMl{flex:1;height:100%;justify-content:center;transform:translate(-32px,-32px);width:100%}.imageBg_GaoG{background-image:-webkit-linear-gradient(120deg,#bd34fe 30%,#41d1ff);border-radius:50%;filter:blur(72px);height:320px;width:320px}.buttonGroup__atx button,.codeBlockContainer_Ckt0{background:var(--prism-background-color);color:var(--prism-color)}.imageBg_GaoG,.imageSrc_qFu7{left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}.imageSrc_qFu7{max-height:320px;max-width:320px}.codeBlockContainer_Ckt0{border-radius:var(--ifm-code-border-radius);box-shadow:var(--ifm-global-shadow-lw);margin-bottom:var(--ifm-leading)}.codeBlockContent_biex{border-radius:inherit;direction:ltr;position:relative}.codeBlockTitle_Ktv7{border-bottom:1px solid var(--ifm-color-emphasis-300);border-top-left-radius:inherit;border-top-right-radius:inherit;font-size:var(--ifm-code-font-size);font-weight:500;padding:.75rem var(--ifm-pre-padding)}.codeBlock_bY9V{--ifm-pre-background:var(--prism-background-color);margin:0;padding:0}.codeBlockTitle_Ktv7+.codeBlockContent_biex .codeBlock_bY9V{border-top-left-radius:0;border-top-right-radius:0}.codeBlockLines_e6Vv{float:left;font:inherit;min-width:100%;padding:var(--ifm-pre-padding)}.codeBlockLinesWithNumbering_o6Pm{display:table;padding:var(--ifm-pre-padding) 0}.buttonGroup__atx{column-gap:.2rem;display:flex;position:absolute;right:calc(var(--ifm-pre-padding)/2);top:calc(var(--ifm-pre-padding)/2)}.buttonGroup__atx button{align-items:center;border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-global-radius);display:flex;line-height:0;opacity:0;padding:.4rem;transition:opacity var(--ifm-transition-fast) ease-in-out}.buttonGroup__atx button:focus-visible,.buttonGroup__atx button:hover{opacity:1!important}.theme-code-block:hover .buttonGroup__atx button{opacity:.4}.iconEdit_Z9Sw{margin-right:.3em;vertical-align:sub}:where(:root){--docusaurus-highlighted-code-line-bg:#484d5b}:where([data-theme=dark]){--docusaurus-highlighted-code-line-bg:#646464}.theme-code-block-highlighted-line{background-color:var(--docusaurus-highlighted-code-line-bg);display:block;margin:0 calc(var(--ifm-pre-padding)*-1);padding:0 var(--ifm-pre-padding)}.codeLine_lJS_{counter-increment:a;display:table-row}.codeLineNumber_Tfdd{background:var(--ifm-pre-background);display:table-cell;left:0;overflow-wrap:normal;padding:0 var(--ifm-pre-padding);position:sticky;text-align:right;width:1%}.codeLineNumber_Tfdd:before{content:counter(a);opacity:.4}.codeLineContent_feaV{padding-right:var(--ifm-pre-padding)}.tag_zVej{border:1px solid var(--docusaurus-tag-list-border);transition:border var(--ifm-transition-fast)}.tag_zVej:hover{--docusaurus-tag-list-border:var(--ifm-link-color);text-decoration:none}.tagRegular_sFm0{border-radius:var(--ifm-global-radius);font-size:90%;padding:.2rem .5rem .3rem}.tagWithCount_h2kH{align-items:center;border-left:0;display:flex;padding:0 .5rem 0 1rem;position:relative}.tagWithCount_h2kH:after,.tagWithCount_h2kH:before{border:1px solid var(--docusaurus-tag-list-border);content:"";position:absolute;top:50%;transition:inherit}.tagWithCount_h2kH:before{border-bottom:0;border-right:0;height:1.18rem;right:100%;transform:translate(50%,-50%) rotate(-45deg);width:1.18rem}.tagWithCount_h2kH:after{border-radius:50%;height:.5rem;left:0;transform:translateY(-50%);width:.5rem}.tagWithCount_h2kH span{background:var(--ifm-color-secondary);border-radius:var(--ifm-global-radius);color:var(--ifm-color-black);font-size:.7rem;line-height:1.2;margin-left:.3rem;padding:.1rem .4rem}.tag_Nnez{display:inline-block;margin:.5rem .5rem 0 1rem}.theme-code-block:hover .copyButtonCopied_obH4{opacity:1!important}.copyButtonIcons_eSgA{height:1.125rem;position:relative;width:1.125rem}.copyButtonIcon_y97N,.copyButtonSuccessIcon_LjdS{fill:currentColor;height:inherit;left:0;opacity:inherit;position:absolute;top:0;transition:all var(--ifm-transition-fast) ease;width:inherit}.copyButtonSuccessIcon_LjdS{color:#00d600;left:50%;opacity:0;top:50%;transform:translate(-50%,-50%) scale(.33)}.copyButtonCopied_obH4 .copyButtonIcon_y97N{opacity:0;transform:scale(.33)}.copyButtonCopied_obH4 .copyButtonSuccessIcon_LjdS{opacity:1;transform:translate(-50%,-50%) scale(1);transition-delay:75ms}.tags_jXut{display:inline}.tag_QGVx{display:inline-block;margin:0 .4rem .5rem 0}.lastUpdated_vwxv{font-size:smaller;font-style:italic;margin-top:.2rem}.tocCollapsibleButton_TO0P{align-items:center;display:flex;font-size:inherit;justify-content:space-between;padding:.4rem .8rem;width:100%}.tocCollapsibleButton_TO0P:after{background:var(--ifm-menu-link-sublist-icon) 50% 50%/2rem 2rem no-repeat;content:"";filter:var(--ifm-menu-link-sublist-icon-filter);height:1.25rem;transform:rotate(180deg);transition:transform var(--ifm-transition-fast);width:1.25rem}.tocCollapsibleButtonExpanded_MG3E:after,.tocCollapsibleExpanded_sAul{transform:none}.tocCollapsible_ETCw{background-color:var(--ifm-menu-color-background-active);border-radius:var(--ifm-global-radius);margin:1rem 0}.tocCollapsibleContent_vkbj>ul{border-left:none;border-top:1px solid var(--ifm-color-emphasis-300);font-size:15px;padding:.2rem 0}.tocCollapsibleContent_vkbj ul li{margin:.4rem .8rem}.tocCollapsibleContent_vkbj a{display:block}.wordWrapButtonIcon_Bwma{height:1.2rem;width:1.2rem}.details_lb9f{--docusaurus-details-summary-arrow-size:0.38rem;--docusaurus-details-transition:transform 200ms ease;--docusaurus-details-decoration-color:grey}.details_lb9f>summary{cursor:pointer;padding-left:1rem;position:relative}.details_lb9f>summary::-webkit-details-marker{display:none}.details_lb9f>summary:before{border-color:#0000 #0000 #0000 var(--docusaurus-details-decoration-color);border-style:solid;border-width:var(--docusaurus-details-summary-arrow-size);content:"";left:0;position:absolute;top:.45rem;transform:rotate(0);transform-origin:calc(var(--docusaurus-details-summary-arrow-size)/2) 50%;transition:var(--docusaurus-details-transition)}.collapsibleContent_i85q{border-top:1px solid var(--docusaurus-details-decoration-color);margin-top:1rem;padding-top:1rem}.details_b_Ee{--docusaurus-details-decoration-color:var(--ifm-alert-border-color);--docusaurus-details-transition:transform var(--ifm-transition-fast) ease;border:1px solid var(--ifm-alert-border-color);margin:0 0 var(--ifm-spacing-vertical)}.anchorWithStickyNavbar_LWe7{scroll-margin-top:calc(var(--ifm-navbar-height) + .5rem)}.anchorWithHideOnScrollNavbar_WYt5{scroll-margin-top:.5rem}.hash-link{opacity:0;padding-left:.5rem;transition:opacity var(--ifm-transition-fast);-webkit-user-select:none;user-select:none}.hash-link:before{content:"#"}.img_ev3q{height:auto}.admonition_LlT9{margin-bottom:1em}.admonitionHeading_tbUL{font:var(--ifm-heading-font-weight) var(--ifm-h5-font-size)/var(--ifm-heading-line-height) var(--ifm-heading-font-family);margin-bottom:.3rem}.admonitionHeading_tbUL code{text-transform:none}.admonitionIcon_kALy{display:inline-block;margin-right:.4em;vertical-align:middle}.admonitionIcon_kALy svg{fill:var(--ifm-alert-foreground-color);display:inline-block;height:1.6em;width:1.6em}.blogPostFooterDetailsFull_mRVl{flex-direction:column}.tableOfContents_bqdL{max-height:calc(100vh - var(--ifm-navbar-height) - 2rem);overflow-y:auto;position:sticky;top:calc(var(--ifm-navbar-height) + 1rem)}.breadcrumbHomeIcon_YNFT{height:1.1rem;position:relative;top:1px;vertical-align:top;width:1.1rem}.breadcrumbsContainer_Z_bl{--ifm-breadcrumb-size-multiplier:0.8;margin-bottom:.8rem}.mdxPageWrapper_j9I6{justify-content:center}@media (min-width:997px){.collapseSidebarButton_PEFL,.expandButton_m80_{background-color:var(--docusaurus-collapse-button-bg)}:root{--docusaurus-announcement-bar-height:30px}.announcementBarClose_gvF7,.announcementBarPlaceholder_vyr4{flex-basis:50px}.searchBox_ZlJk{padding:var(--ifm-navbar-item-padding-vertical) var(--ifm-navbar-item-padding-horizontal)}.collapseSidebarButton_PEFL{border:1px solid var(--ifm-toc-border-color);border-radius:0;bottom:0;display:block!important;height:40px;position:sticky}.collapseSidebarButtonIcon_kv0_{margin-top:4px;transform:rotate(180deg)}.expandButtonIcon_BlDH,[dir=rtl] .collapseSidebarButtonIcon_kv0_{transform:rotate(0)}.collapseSidebarButton_PEFL:focus,.collapseSidebarButton_PEFL:hover,.expandButton_m80_:focus,.expandButton_m80_:hover{background-color:var(--docusaurus-collapse-button-bg-hover)}.menuHtmlItem_M9Kj{padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal)}.menu_SIkG{flex-grow:1;padding:.5rem}@supports (scrollbar-gutter:stable){.menu_SIkG{padding:.5rem 0 .5rem .5rem;scrollbar-gutter:stable}}.menuWithAnnouncementBar_GW3s{margin-bottom:var(--docusaurus-announcement-bar-height)}.sidebar_njMd{display:flex;flex-direction:column;height:100%;padding-top:var(--ifm-navbar-height);width:var(--doc-sidebar-width)}.sidebarWithHideableNavbar_wUlq{padding-top:0}.sidebarHidden_VK0M{opacity:0;visibility:hidden}.sidebarLogo_isFc{align-items:center;color:inherit!important;display:flex!important;margin:0 var(--ifm-navbar-padding-horizontal);max-height:var(--ifm-navbar-height);min-height:var(--ifm-navbar-height);text-decoration:none!important}.sidebarLogo_isFc img{height:2rem;margin-right:.5rem}.expandButton_m80_{align-items:center;display:flex;height:100%;justify-content:center;position:absolute;right:0;top:0;transition:background-color var(--ifm-transition-fast) ease;width:100%}[dir=rtl] .expandButtonIcon_BlDH{transform:rotate(180deg)}.docSidebarContainer_b6E3{border-right:1px solid var(--ifm-toc-border-color);-webkit-clip-path:inset(0);clip-path:inset(0);display:block;margin-top:calc(var(--ifm-navbar-height)*-1);transition:width var(--ifm-transition-fast) ease;width:var(--doc-sidebar-width);will-change:width}.docSidebarContainerHidden_b3ry{cursor:pointer;width:var(--doc-sidebar-hidden-width)}.sidebarViewport_Xe31{height:100%;max-height:100vh;position:sticky;top:0}.docMainContainer_gTbr{flex-grow:1;max-width:calc(100% - var(--doc-sidebar-width))}.docMainContainerEnhanced_Uz_u{max-width:calc(100% - var(--doc-sidebar-hidden-width))}.docItemWrapperEnhanced_czyv{max-width:calc(var(--ifm-container-width) + var(--doc-sidebar-width))!important}.lastUpdated_vwxv{text-align:right}.tocMobile_ITEo{display:none}.docItemCol_VOVn{max-width:75%!important}}@media (min-width:1440px){.container{max-width:var(--ifm-container-width-xl)}}@media screen and (max-width:1023px){.right_OHMl{display:none}.text2_Pbus{font-size:30px}}@media (max-width:996px){.col{--ifm-col-width:100%;flex-basis:var(--ifm-col-width);margin-left:0}.footer{--ifm-footer-padding-horizontal:0}.colorModeToggle_DEke,.footer__link-separator,.navbar__item,.sidebar_re4s,.tableOfContents_bqdL{display:none}.footer__col{margin-bottom:calc(var(--ifm-spacing-vertical)*3)}.footer__link-item{display:block}.hero{padding-left:0;padding-right:0}.navbar>.container,.navbar>.container-fluid{padding:0}.navbar__toggle{display:inherit}.navbar__search-input{width:9rem}.pills--block,.tabs--block{flex-direction:column}.searchBox_ZlJk{position:absolute;right:var(--ifm-navbar-padding-horizontal)}.docItemContainer_F8PC{padding:0 .3rem}}@media (max-width:576px){.markdown h1:first-child{--ifm-h1-font-size:2rem}.markdown>h2{--ifm-h2-font-size:1.5rem}.markdown>h3{--ifm-h3-font-size:1.25rem}.title_f1Hy{font-size:2rem}}@media (hover:hover){.backToTopButton_sjWU:hover{background-color:var(--ifm-color-emphasis-300)}}@media (pointer:fine){.thin-scrollbar{scrollbar-width:thin}.thin-scrollbar::-webkit-scrollbar{height:var(--ifm-scrollbar-size);width:var(--ifm-scrollbar-size)}.thin-scrollbar::-webkit-scrollbar-track{background:var(--ifm-scrollbar-track-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb{background:var(--ifm-scrollbar-thumb-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb:hover{background:var(--ifm-scrollbar-thumb-hover-background-color)}}@media (prefers-reduced-motion:reduce){:root{--ifm-transition-fast:0ms;--ifm-transition-slow:0ms}}@media print{.announcementBar_mb4j,.footer,.menu,.navbar,.pagination-nav,.table-of-contents,.tocMobile_ITEo{display:none}.tabs{page-break-inside:avoid}.codeBlockLines_e6Vv{white-space:pre-wrap}} \ No newline at end of file +.col,.container{padding:0 var(--ifm-spacing-horizontal);width:100%}.markdown>h2,.markdown>h3,.markdown>h4,.markdown>h5,.markdown>h6{margin-bottom:calc(var(--ifm-heading-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown li,body{word-wrap:break-word}body,ol ol,ol ul,ul ol,ul ul{margin:0}pre,table{overflow:auto}blockquote,pre{margin:0 0 var(--ifm-spacing-vertical)}.breadcrumbs__link,.button{transition-timing-function:var(--ifm-transition-timing-default)}.button,code{vertical-align:middle}.button--outline.button--active,.button--outline:active,.button--outline:hover,:root{--ifm-button-color:var(--ifm-font-color-base-inverse)}.menu__link:hover,a{transition:color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.navbar--dark,:root{--ifm-navbar-link-hover-color:var(--ifm-color-primary)}.menu,.navbar-sidebar{overflow-x:hidden}:root,html[data-theme=dark]{--ifm-color-emphasis-500:var(--ifm-color-gray-500)}.toggleButton_gllP,html{-webkit-tap-highlight-color:transparent}.clean-list,.containsTaskList_mC6p,.details_lb9f>summary,.dropdown__menu,.menu__list{list-style:none}:root{--ifm-color-scheme:light;--ifm-dark-value:10%;--ifm-darker-value:15%;--ifm-darkest-value:30%;--ifm-light-value:15%;--ifm-lighter-value:30%;--ifm-lightest-value:50%;--ifm-contrast-background-value:90%;--ifm-contrast-foreground-value:70%;--ifm-contrast-background-dark-value:70%;--ifm-contrast-foreground-dark-value:90%;--ifm-color-primary:#3578e5;--ifm-color-secondary:#ebedf0;--ifm-color-success:#00a400;--ifm-color-info:#54c7ec;--ifm-color-warning:#ffba00;--ifm-color-danger:#fa383e;--ifm-color-primary-dark:#306cce;--ifm-color-primary-darker:#2d66c3;--ifm-color-primary-darkest:#2554a0;--ifm-color-primary-light:#538ce9;--ifm-color-primary-lighter:#72a1ed;--ifm-color-primary-lightest:#9abcf2;--ifm-color-primary-contrast-background:#ebf2fc;--ifm-color-primary-contrast-foreground:#102445;--ifm-color-secondary-dark:#d4d5d8;--ifm-color-secondary-darker:#c8c9cc;--ifm-color-secondary-darkest:#a4a6a8;--ifm-color-secondary-light:#eef0f2;--ifm-color-secondary-lighter:#f1f2f5;--ifm-color-secondary-lightest:#f5f6f8;--ifm-color-secondary-contrast-background:#fdfdfe;--ifm-color-secondary-contrast-foreground:#474748;--ifm-color-success-dark:#009400;--ifm-color-success-darker:#008b00;--ifm-color-success-darkest:#007300;--ifm-color-success-light:#26b226;--ifm-color-success-lighter:#4dbf4d;--ifm-color-success-lightest:#80d280;--ifm-color-success-contrast-background:#e6f6e6;--ifm-color-success-contrast-foreground:#003100;--ifm-color-info-dark:#4cb3d4;--ifm-color-info-darker:#47a9c9;--ifm-color-info-darkest:#3b8ba5;--ifm-color-info-light:#6ecfef;--ifm-color-info-lighter:#87d8f2;--ifm-color-info-lightest:#aae3f6;--ifm-color-info-contrast-background:#eef9fd;--ifm-color-info-contrast-foreground:#193c47;--ifm-color-warning-dark:#e6a700;--ifm-color-warning-darker:#d99e00;--ifm-color-warning-darkest:#b38200;--ifm-color-warning-light:#ffc426;--ifm-color-warning-lighter:#ffcf4d;--ifm-color-warning-lightest:#ffdd80;--ifm-color-warning-contrast-background:#fff8e6;--ifm-color-warning-contrast-foreground:#4d3800;--ifm-color-danger-dark:#e13238;--ifm-color-danger-darker:#d53035;--ifm-color-danger-darkest:#af272b;--ifm-color-danger-light:#fb565b;--ifm-color-danger-lighter:#fb7478;--ifm-color-danger-lightest:#fd9c9f;--ifm-color-danger-contrast-background:#ffebec;--ifm-color-danger-contrast-foreground:#4b1113;--ifm-color-white:#fff;--ifm-color-black:#000;--ifm-color-gray-0:var(--ifm-color-white);--ifm-color-gray-100:#f5f6f7;--ifm-color-gray-200:#ebedf0;--ifm-color-gray-300:#dadde1;--ifm-color-gray-400:#ccd0d5;--ifm-color-gray-500:#bec3c9;--ifm-color-gray-600:#8d949e;--ifm-color-gray-700:#606770;--ifm-color-gray-800:#444950;--ifm-color-gray-900:#1c1e21;--ifm-color-gray-1000:var(--ifm-color-black);--ifm-color-emphasis-0:var(--ifm-color-gray-0);--ifm-color-emphasis-100:var(--ifm-color-gray-100);--ifm-color-emphasis-200:var(--ifm-color-gray-200);--ifm-color-emphasis-300:var(--ifm-color-gray-300);--ifm-color-emphasis-400:var(--ifm-color-gray-400);--ifm-color-emphasis-600:var(--ifm-color-gray-600);--ifm-color-emphasis-700:var(--ifm-color-gray-700);--ifm-color-emphasis-800:var(--ifm-color-gray-800);--ifm-color-emphasis-900:var(--ifm-color-gray-900);--ifm-color-emphasis-1000:var(--ifm-color-gray-1000);--ifm-color-content:var(--ifm-color-emphasis-900);--ifm-color-content-inverse:var(--ifm-color-emphasis-0);--ifm-color-content-secondary:#525860;--ifm-background-color:#0000;--ifm-background-surface-color:var(--ifm-color-content-inverse);--ifm-global-border-width:1px;--ifm-global-radius:0.4rem;--ifm-hover-overlay:#0000000d;--ifm-font-color-base:var(--ifm-color-content);--ifm-font-color-base-inverse:var(--ifm-color-content-inverse);--ifm-font-color-secondary:var(--ifm-color-content-secondary);--ifm-font-family-base:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--ifm-font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--ifm-font-size-base:100%;--ifm-font-weight-light:300;--ifm-font-weight-normal:400;--ifm-font-weight-semibold:500;--ifm-font-weight-bold:700;--ifm-font-weight-base:var(--ifm-font-weight-normal);--ifm-line-height-base:1.65;--ifm-global-spacing:1rem;--ifm-spacing-vertical:var(--ifm-global-spacing);--ifm-spacing-horizontal:var(--ifm-global-spacing);--ifm-transition-fast:200ms;--ifm-transition-slow:400ms;--ifm-transition-timing-default:cubic-bezier(0.08,0.52,0.52,1);--ifm-global-shadow-lw:0 1px 2px 0 #0000001a;--ifm-global-shadow-md:0 5px 40px #0003;--ifm-global-shadow-tl:0 12px 28px 0 #0003,0 2px 4px 0 #0000001a;--ifm-z-index-dropdown:100;--ifm-z-index-fixed:200;--ifm-z-index-overlay:400;--ifm-container-width:1140px;--ifm-container-width-xl:1320px;--ifm-code-background:#f6f7f8;--ifm-code-border-radius:var(--ifm-global-radius);--ifm-code-font-size:90%;--ifm-code-padding-horizontal:0.1rem;--ifm-code-padding-vertical:0.1rem;--ifm-pre-background:var(--ifm-code-background);--ifm-pre-border-radius:var(--ifm-code-border-radius);--ifm-pre-color:inherit;--ifm-pre-line-height:1.45;--ifm-pre-padding:1rem;--ifm-heading-color:inherit;--ifm-heading-margin-top:0;--ifm-heading-margin-bottom:var(--ifm-spacing-vertical);--ifm-heading-font-family:var(--ifm-font-family-base);--ifm-heading-font-weight:var(--ifm-font-weight-bold);--ifm-heading-line-height:1.25;--ifm-h2-font-size:1.5rem;--ifm-h3-font-size:1.25rem;--ifm-h4-font-size:1rem;--ifm-h5-font-size:0.875rem;--ifm-h6-font-size:0.85rem;--ifm-image-alignment-padding:1.25rem;--ifm-leading-desktop:1.25;--ifm-leading:calc(var(--ifm-leading-desktop)*1rem);--ifm-list-left-padding:2rem;--ifm-list-margin:1rem;--ifm-list-item-margin:0.25rem;--ifm-list-paragraph-margin:1rem;--ifm-table-cell-padding:0.75rem;--ifm-table-background:#0000;--ifm-table-stripe-background:#00000008;--ifm-table-border-width:1px;--ifm-table-border-color:var(--ifm-color-emphasis-300);--ifm-table-head-background:inherit;--ifm-table-head-color:inherit;--ifm-table-head-font-weight:var(--ifm-font-weight-bold);--ifm-table-cell-color:inherit;--ifm-link-color:var(--ifm-color-primary);--ifm-link-decoration:none;--ifm-link-hover-color:var(--ifm-link-color);--ifm-link-hover-decoration:underline;--ifm-paragraph-margin-bottom:var(--ifm-leading);--ifm-blockquote-font-size:var(--ifm-font-size-base);--ifm-blockquote-border-left-width:2px;--ifm-blockquote-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-blockquote-padding-vertical:0;--ifm-blockquote-shadow:none;--ifm-blockquote-color:var(--ifm-color-emphasis-800);--ifm-blockquote-border-color:var(--ifm-color-emphasis-300);--ifm-hr-background-color:var(--ifm-color-emphasis-500);--ifm-hr-height:1px;--ifm-hr-margin-vertical:1.5rem;--ifm-scrollbar-size:7px;--ifm-scrollbar-track-background-color:#f1f1f1;--ifm-scrollbar-thumb-background-color:silver;--ifm-scrollbar-thumb-hover-background-color:#a7a7a7;--ifm-alert-background-color:inherit;--ifm-alert-border-color:inherit;--ifm-alert-border-radius:var(--ifm-global-radius);--ifm-alert-border-width:0px;--ifm-alert-border-left-width:5px;--ifm-alert-color:var(--ifm-font-color-base);--ifm-alert-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-alert-padding-vertical:var(--ifm-spacing-vertical);--ifm-alert-shadow:var(--ifm-global-shadow-lw);--ifm-avatar-intro-margin:1rem;--ifm-avatar-intro-alignment:inherit;--ifm-avatar-photo-size:3rem;--ifm-badge-background-color:inherit;--ifm-badge-border-color:inherit;--ifm-badge-border-radius:var(--ifm-global-radius);--ifm-badge-border-width:var(--ifm-global-border-width);--ifm-badge-color:var(--ifm-color-white);--ifm-badge-padding-horizontal:calc(var(--ifm-spacing-horizontal)*0.5);--ifm-badge-padding-vertical:calc(var(--ifm-spacing-vertical)*0.25);--ifm-breadcrumb-border-radius:1.5rem;--ifm-breadcrumb-spacing:0.5rem;--ifm-breadcrumb-color-active:var(--ifm-color-primary);--ifm-breadcrumb-item-background-active:var(--ifm-hover-overlay);--ifm-breadcrumb-padding-horizontal:0.8rem;--ifm-breadcrumb-padding-vertical:0.4rem;--ifm-breadcrumb-size-multiplier:1;--ifm-breadcrumb-separator:url('data:image/svg+xml;utf8,');--ifm-breadcrumb-separator-filter:none;--ifm-breadcrumb-separator-size:0.5rem;--ifm-breadcrumb-separator-size-multiplier:1.25;--ifm-button-background-color:inherit;--ifm-button-border-color:var(--ifm-button-background-color);--ifm-button-border-width:var(--ifm-global-border-width);--ifm-button-font-weight:var(--ifm-font-weight-bold);--ifm-button-padding-horizontal:1.5rem;--ifm-button-padding-vertical:0.375rem;--ifm-button-size-multiplier:1;--ifm-button-transition-duration:var(--ifm-transition-fast);--ifm-button-border-radius:calc(var(--ifm-global-radius)*var(--ifm-button-size-multiplier));--ifm-button-group-spacing:2px;--ifm-card-background-color:var(--ifm-background-surface-color);--ifm-card-border-radius:calc(var(--ifm-global-radius)*2);--ifm-card-horizontal-spacing:var(--ifm-global-spacing);--ifm-card-vertical-spacing:var(--ifm-global-spacing);--ifm-toc-border-color:var(--ifm-color-emphasis-300);--ifm-toc-link-color:var(--ifm-color-content-secondary);--ifm-toc-padding-vertical:0.5rem;--ifm-toc-padding-horizontal:0.5rem;--ifm-dropdown-background-color:var(--ifm-background-surface-color);--ifm-dropdown-font-weight:var(--ifm-font-weight-semibold);--ifm-dropdown-link-color:var(--ifm-font-color-base);--ifm-dropdown-hover-background-color:var(--ifm-hover-overlay);--ifm-footer-background-color:var(--ifm-color-emphasis-100);--ifm-footer-color:inherit;--ifm-footer-link-color:var(--ifm-color-emphasis-700);--ifm-footer-link-hover-color:var(--ifm-color-primary);--ifm-footer-link-horizontal-spacing:0.5rem;--ifm-footer-padding-horizontal:calc(var(--ifm-spacing-horizontal)*2);--ifm-footer-padding-vertical:calc(var(--ifm-spacing-vertical)*2);--ifm-footer-title-color:inherit;--ifm-footer-logo-max-width:min(30rem,90vw);--ifm-hero-background-color:var(--ifm-background-surface-color);--ifm-hero-text-color:var(--ifm-color-emphasis-800);--ifm-menu-color:var(--ifm-color-emphasis-700);--ifm-menu-color-active:var(--ifm-color-primary);--ifm-menu-color-background-active:var(--ifm-hover-overlay);--ifm-menu-color-background-hover:var(--ifm-hover-overlay);--ifm-menu-link-padding-horizontal:0.75rem;--ifm-menu-link-padding-vertical:0.375rem;--ifm-menu-link-sublist-icon:url('data:image/svg+xml;utf8,');--ifm-menu-link-sublist-icon-filter:none;--ifm-navbar-background-color:var(--ifm-background-surface-color);--ifm-navbar-height:3.75rem;--ifm-navbar-item-padding-horizontal:0.75rem;--ifm-navbar-item-padding-vertical:0.25rem;--ifm-navbar-link-color:var(--ifm-font-color-base);--ifm-navbar-link-active-color:var(--ifm-link-color);--ifm-navbar-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-navbar-padding-vertical:calc(var(--ifm-spacing-vertical)*0.5);--ifm-navbar-shadow:var(--ifm-global-shadow-lw);--ifm-navbar-search-input-background-color:var(--ifm-color-emphasis-200);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-800);--ifm-navbar-search-input-placeholder-color:var(--ifm-color-emphasis-500);--ifm-navbar-search-input-icon:url('data:image/svg+xml;utf8,');--ifm-navbar-sidebar-width:83vw;--ifm-pagination-border-radius:var(--ifm-global-radius);--ifm-pagination-color-active:var(--ifm-color-primary);--ifm-pagination-font-size:1rem;--ifm-pagination-item-active-background:var(--ifm-hover-overlay);--ifm-pagination-page-spacing:0.2em;--ifm-pagination-padding-horizontal:calc(var(--ifm-spacing-horizontal)*1);--ifm-pagination-padding-vertical:calc(var(--ifm-spacing-vertical)*0.25);--ifm-pagination-nav-border-radius:var(--ifm-global-radius);--ifm-pagination-nav-color-hover:var(--ifm-color-primary);--ifm-pills-color-active:var(--ifm-color-primary);--ifm-pills-color-background-active:var(--ifm-hover-overlay);--ifm-pills-spacing:0.125rem;--ifm-tabs-color:var(--ifm-font-color-secondary);--ifm-tabs-color-active:var(--ifm-color-primary);--ifm-tabs-color-active-border:var(--ifm-tabs-color-active);--ifm-tabs-padding-horizontal:1rem;--ifm-tabs-padding-vertical:1rem;--docusaurus-progress-bar-color:var(--ifm-color-primary);--ifm-color-primary:#2e8555;--ifm-color-primary-dark:#29784c;--ifm-color-primary-darker:#277148;--ifm-color-primary-darkest:#205d3b;--ifm-color-primary-light:#33925d;--ifm-color-primary-lighter:#359962;--ifm-color-primary-lightest:#3cad6e;--ifm-code-font-size:95%;--docusaurus-highlighted-code-line-bg:#0000001a;--ifm-h1-font-size:2rem;--docusaurus-announcement-bar-height:auto;--docusaurus-collapse-button-bg:#0000;--docusaurus-collapse-button-bg-hover:#0000001a;--doc-sidebar-width:300px;--doc-sidebar-hidden-width:30px;--docusaurus-tag-list-border:var(--ifm-color-emphasis-300)}.badge--danger,.badge--info,.badge--primary,.badge--secondary,.badge--success,.badge--warning{--ifm-badge-border-color:var(--ifm-badge-background-color)}.button--link,.button--outline{--ifm-button-background-color:#0000}*{box-sizing:border-box}html{-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;text-size-adjust:100%;background-color:var(--ifm-background-color);color:var(--ifm-font-color-base);color-scheme:var(--ifm-color-scheme);font:var(--ifm-font-size-base)/var(--ifm-line-height-base) var(--ifm-font-family-base);text-rendering:optimizelegibility}iframe{border:0;color-scheme:auto}.container{margin:0 auto;max-width:var(--ifm-container-width)}.container--fluid{max-width:inherit}.row{display:flex;flex-wrap:wrap;margin:0 calc(var(--ifm-spacing-horizontal)*-1)}.margin-bottom--none,.margin-vert--none,.markdown>:last-child{margin-bottom:0!important}.margin-top--none,.margin-vert--none{margin-top:0!important}.row--no-gutters{margin-left:0;margin-right:0}.margin-horiz--none,.margin-right--none{margin-right:0!important}.row--no-gutters>.col{padding-left:0;padding-right:0}.row--align-top{align-items:flex-start}.row--align-bottom{align-items:flex-end}.menuExternalLink_NmtK,.row--align-center{align-items:center}.row--align-stretch{align-items:stretch}.row--align-baseline{align-items:baseline}.col{--ifm-col-width:100%;flex:1 0;margin-left:0;max-width:var(--ifm-col-width)}.padding-bottom--none,.padding-vert--none{padding-bottom:0!important}.padding-top--none,.padding-vert--none{padding-top:0!important}.padding-horiz--none,.padding-left--none{padding-left:0!important}.padding-horiz--none,.padding-right--none{padding-right:0!important}.col[class*=col--]{flex:0 0 var(--ifm-col-width)}.col--1{--ifm-col-width:8.33333%}.col--offset-1{margin-left:8.33333%}.col--2{--ifm-col-width:16.66667%}.col--offset-2{margin-left:16.66667%}.col--3{--ifm-col-width:25%}.col--offset-3{margin-left:25%}.col--4{--ifm-col-width:33.33333%}.col--offset-4{margin-left:33.33333%}.col--5{--ifm-col-width:41.66667%}.col--offset-5{margin-left:41.66667%}.col--6{--ifm-col-width:50%}.col--offset-6{margin-left:50%}.col--7{--ifm-col-width:58.33333%}.col--offset-7{margin-left:58.33333%}.col--8{--ifm-col-width:66.66667%}.col--offset-8{margin-left:66.66667%}.col--9{--ifm-col-width:75%}.col--offset-9{margin-left:75%}.col--10{--ifm-col-width:83.33333%}.col--offset-10{margin-left:83.33333%}.col--11{--ifm-col-width:91.66667%}.col--offset-11{margin-left:91.66667%}.col--12{--ifm-col-width:100%}.col--offset-12{margin-left:100%}.margin-horiz--none,.margin-left--none{margin-left:0!important}.margin--none{margin:0!important}.margin-bottom--xs,.margin-vert--xs{margin-bottom:.25rem!important}.margin-top--xs,.margin-vert--xs{margin-top:.25rem!important}.margin-horiz--xs,.margin-left--xs{margin-left:.25rem!important}.margin-horiz--xs,.margin-right--xs{margin-right:.25rem!important}.margin--xs{margin:.25rem!important}.margin-bottom--sm,.margin-vert--sm{margin-bottom:.5rem!important}.margin-top--sm,.margin-vert--sm{margin-top:.5rem!important}.margin-horiz--sm,.margin-left--sm{margin-left:.5rem!important}.margin-horiz--sm,.margin-right--sm{margin-right:.5rem!important}.margin--sm{margin:.5rem!important}.margin-bottom--md,.margin-vert--md{margin-bottom:1rem!important}.margin-top--md,.margin-vert--md{margin-top:1rem!important}.margin-horiz--md,.margin-left--md{margin-left:1rem!important}.margin-horiz--md,.margin-right--md{margin-right:1rem!important}.margin--md{margin:1rem!important}.margin-bottom--lg,.margin-vert--lg{margin-bottom:2rem!important}.margin-top--lg,.margin-vert--lg{margin-top:2rem!important}.margin-horiz--lg,.margin-left--lg{margin-left:2rem!important}.margin-horiz--lg,.margin-right--lg{margin-right:2rem!important}.margin--lg{margin:2rem!important}.margin-bottom--xl,.margin-vert--xl{margin-bottom:5rem!important}.margin-top--xl,.margin-vert--xl{margin-top:5rem!important}.margin-horiz--xl,.margin-left--xl{margin-left:5rem!important}.margin-horiz--xl,.margin-right--xl{margin-right:5rem!important}.margin--xl{margin:5rem!important}.padding--none{padding:0!important}.padding-bottom--xs,.padding-vert--xs{padding-bottom:.25rem!important}.padding-top--xs,.padding-vert--xs{padding-top:.25rem!important}.padding-horiz--xs,.padding-left--xs{padding-left:.25rem!important}.padding-horiz--xs,.padding-right--xs{padding-right:.25rem!important}.padding--xs{padding:.25rem!important}.padding-bottom--sm,.padding-vert--sm{padding-bottom:.5rem!important}.padding-top--sm,.padding-vert--sm{padding-top:.5rem!important}.padding-horiz--sm,.padding-left--sm{padding-left:.5rem!important}.padding-horiz--sm,.padding-right--sm{padding-right:.5rem!important}.padding--sm{padding:.5rem!important}.padding-bottom--md,.padding-vert--md{padding-bottom:1rem!important}.padding-top--md,.padding-vert--md{padding-top:1rem!important}.padding-horiz--md,.padding-left--md{padding-left:1rem!important}.padding-horiz--md,.padding-right--md{padding-right:1rem!important}.padding--md{padding:1rem!important}.padding-bottom--lg,.padding-vert--lg{padding-bottom:2rem!important}.padding-top--lg,.padding-vert--lg{padding-top:2rem!important}.padding-horiz--lg,.padding-left--lg{padding-left:2rem!important}.padding-horiz--lg,.padding-right--lg{padding-right:2rem!important}.padding--lg{padding:2rem!important}.padding-bottom--xl,.padding-vert--xl{padding-bottom:5rem!important}.padding-top--xl,.padding-vert--xl{padding-top:5rem!important}.padding-horiz--xl,.padding-left--xl{padding-left:5rem!important}.padding-horiz--xl,.padding-right--xl{padding-right:5rem!important}.padding--xl{padding:5rem!important}code{background-color:var(--ifm-code-background);border:.1rem solid #0000001a;border-radius:var(--ifm-code-border-radius);font-family:var(--ifm-font-family-monospace);font-size:var(--ifm-code-font-size);padding:var(--ifm-code-padding-vertical) var(--ifm-code-padding-horizontal)}a code{color:inherit}pre{background-color:var(--ifm-pre-background);border-radius:var(--ifm-pre-border-radius);color:var(--ifm-pre-color);font:var(--ifm-code-font-size)/var(--ifm-pre-line-height) var(--ifm-font-family-monospace);padding:var(--ifm-pre-padding)}pre code{background-color:initial;border:none;font-size:100%;line-height:inherit;padding:0}kbd{background-color:var(--ifm-color-emphasis-0);border:1px solid var(--ifm-color-emphasis-400);border-radius:.2rem;box-shadow:inset 0 -1px 0 var(--ifm-color-emphasis-400);color:var(--ifm-color-emphasis-800);font:80% var(--ifm-font-family-monospace);padding:.15rem .3rem}h1,h2,h3,h4,h5,h6{color:var(--ifm-heading-color);font-family:var(--ifm-heading-font-family);font-weight:var(--ifm-heading-font-weight);line-height:var(--ifm-heading-line-height);margin:var(--ifm-heading-margin-top) 0 var(--ifm-heading-margin-bottom) 0}h1{font-size:var(--ifm-h1-font-size)}h2{font-size:var(--ifm-h2-font-size)}h3{font-size:var(--ifm-h3-font-size)}h4{font-size:var(--ifm-h4-font-size)}h5{font-size:var(--ifm-h5-font-size)}h6{font-size:var(--ifm-h6-font-size)}img{max-width:100%}img[align=right]{padding-left:var(--image-alignment-padding)}img[align=left]{padding-right:var(--image-alignment-padding)}.markdown{--ifm-h1-vertical-rhythm-top:3;--ifm-h2-vertical-rhythm-top:2;--ifm-h3-vertical-rhythm-top:1.5;--ifm-heading-vertical-rhythm-top:1.25;--ifm-h1-vertical-rhythm-bottom:1.25;--ifm-heading-vertical-rhythm-bottom:1}.markdown:after,.markdown:before{content:"";display:table}.markdown:after{clear:both}.markdown h1:first-child{--ifm-h1-font-size:3rem;margin-bottom:calc(var(--ifm-h1-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown>h2{--ifm-h2-font-size:2rem;margin-top:calc(var(--ifm-h2-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h3{--ifm-h3-font-size:1.5rem;margin-top:calc(var(--ifm-h3-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h4,.markdown>h5,.markdown>h6{margin-top:calc(var(--ifm-heading-vertical-rhythm-top)*var(--ifm-leading))}.markdown>p,.markdown>pre,.markdown>ul{margin-bottom:var(--ifm-leading)}.markdown li>p{margin-top:var(--ifm-list-paragraph-margin)}.markdown li+li{margin-top:var(--ifm-list-item-margin)}ol,ul{margin:0 0 var(--ifm-list-margin);padding-left:var(--ifm-list-left-padding)}ol ol,ul ol{list-style-type:lower-roman}ol ol ol,ol ul ol,ul ol ol,ul ul ol{list-style-type:lower-alpha}table{border-collapse:collapse;display:block;margin-bottom:var(--ifm-spacing-vertical)}table thead tr{border-bottom:2px solid var(--ifm-table-border-color)}table thead,table tr:nth-child(2n){background-color:var(--ifm-table-stripe-background)}table tr{background-color:var(--ifm-table-background);border-top:var(--ifm-table-border-width) solid var(--ifm-table-border-color)}table td,table th{border:var(--ifm-table-border-width) solid var(--ifm-table-border-color);padding:var(--ifm-table-cell-padding)}table th{background-color:var(--ifm-table-head-background);color:var(--ifm-table-head-color);font-weight:var(--ifm-table-head-font-weight)}table td{color:var(--ifm-table-cell-color)}strong{font-weight:var(--ifm-font-weight-bold)}a{color:var(--ifm-link-color);text-decoration:var(--ifm-link-decoration)}a:hover{color:var(--ifm-link-hover-color);text-decoration:var(--ifm-link-hover-decoration)}.button:hover,.text--no-decoration,.text--no-decoration:hover,a:not([href]){text-decoration:none}p{margin:0 0 var(--ifm-paragraph-margin-bottom)}blockquote{border-left:var(--ifm-blockquote-border-left-width) solid var(--ifm-blockquote-border-color);box-shadow:var(--ifm-blockquote-shadow);color:var(--ifm-blockquote-color);font-size:var(--ifm-blockquote-font-size);padding:var(--ifm-blockquote-padding-vertical) var(--ifm-blockquote-padding-horizontal)}blockquote>:first-child{margin-top:0}blockquote>:last-child{margin-bottom:0}hr{background-color:var(--ifm-hr-background-color);border:0;height:var(--ifm-hr-height);margin:var(--ifm-hr-margin-vertical) 0}.shadow--lw{box-shadow:var(--ifm-global-shadow-lw)!important}.shadow--md{box-shadow:var(--ifm-global-shadow-md)!important}.shadow--tl{box-shadow:var(--ifm-global-shadow-tl)!important}.text--primary,.wordWrapButtonEnabled_EoeP .wordWrapButtonIcon_Bwma{color:var(--ifm-color-primary)}.text--secondary{color:var(--ifm-color-secondary)}.text--success{color:var(--ifm-color-success)}.text--info{color:var(--ifm-color-info)}.text--warning{color:var(--ifm-color-warning)}.text--danger{color:var(--ifm-color-danger)}.text--center{text-align:center}.text--left{text-align:left}.text--justify{text-align:justify}.text--right{text-align:right}.text--capitalize{text-transform:capitalize}.text--lowercase{text-transform:lowercase}.admonitionHeading_tbUL,.alert__heading,.text--uppercase{text-transform:uppercase}.text--light{font-weight:var(--ifm-font-weight-light)}.text--normal{font-weight:var(--ifm-font-weight-normal)}.text--semibold{font-weight:var(--ifm-font-weight-semibold)}.text--bold{font-weight:var(--ifm-font-weight-bold)}.text--italic{font-style:italic}.text--truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text--break{word-wrap:break-word!important;word-break:break-word!important}.clean-btn{background:none;border:none;color:inherit;cursor:pointer;font-family:inherit;padding:0}.alert,.alert .close{color:var(--ifm-alert-foreground-color)}.clean-list{padding-left:0}.alert--primary{--ifm-alert-background-color:var(--ifm-color-primary-contrast-background);--ifm-alert-background-color-highlight:#3578e526;--ifm-alert-foreground-color:var(--ifm-color-primary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-primary-dark)}.alert--secondary{--ifm-alert-background-color:var(--ifm-color-secondary-contrast-background);--ifm-alert-background-color-highlight:#ebedf026;--ifm-alert-foreground-color:var(--ifm-color-secondary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-secondary-dark)}.alert--success{--ifm-alert-background-color:var(--ifm-color-success-contrast-background);--ifm-alert-background-color-highlight:#00a40026;--ifm-alert-foreground-color:var(--ifm-color-success-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-success-dark)}.alert--info{--ifm-alert-background-color:var(--ifm-color-info-contrast-background);--ifm-alert-background-color-highlight:#54c7ec26;--ifm-alert-foreground-color:var(--ifm-color-info-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-info-dark)}.alert--warning{--ifm-alert-background-color:var(--ifm-color-warning-contrast-background);--ifm-alert-background-color-highlight:#ffba0026;--ifm-alert-foreground-color:var(--ifm-color-warning-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-warning-dark)}.alert--danger{--ifm-alert-background-color:var(--ifm-color-danger-contrast-background);--ifm-alert-background-color-highlight:#fa383e26;--ifm-alert-foreground-color:var(--ifm-color-danger-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-danger-dark)}.alert{--ifm-code-background:var(--ifm-alert-background-color-highlight);--ifm-link-color:var(--ifm-alert-foreground-color);--ifm-link-hover-color:var(--ifm-alert-foreground-color);--ifm-link-decoration:underline;--ifm-tabs-color:var(--ifm-alert-foreground-color);--ifm-tabs-color-active:var(--ifm-alert-foreground-color);--ifm-tabs-color-active-border:var(--ifm-alert-border-color);background-color:var(--ifm-alert-background-color);border:var(--ifm-alert-border-width) solid var(--ifm-alert-border-color);border-left-width:var(--ifm-alert-border-left-width);border-radius:var(--ifm-alert-border-radius);box-shadow:var(--ifm-alert-shadow);padding:var(--ifm-alert-padding-vertical) var(--ifm-alert-padding-horizontal)}.alert__heading{align-items:center;display:flex;font:700 var(--ifm-h5-font-size)/var(--ifm-heading-line-height) var(--ifm-heading-font-family);margin-bottom:.5rem}.alert__icon{display:inline-flex;margin-right:.4em}.alert__icon svg{fill:var(--ifm-alert-foreground-color);stroke:var(--ifm-alert-foreground-color);stroke-width:0}.alert .close{margin:calc(var(--ifm-alert-padding-vertical)*-1) calc(var(--ifm-alert-padding-horizontal)*-1) 0 0;opacity:.75}.alert .close:focus,.alert .close:hover{opacity:1}.alert a{text-decoration-color:var(--ifm-alert-border-color)}.alert a:hover{text-decoration-thickness:2px}.avatar{column-gap:var(--ifm-avatar-intro-margin);display:flex}.avatar__photo{border-radius:50%;display:block;height:var(--ifm-avatar-photo-size);overflow:hidden;width:var(--ifm-avatar-photo-size)}.card--full-height,.navbar__logo img,body,html{height:100%}.avatar__photo--sm{--ifm-avatar-photo-size:2rem}.avatar__photo--lg{--ifm-avatar-photo-size:4rem}.avatar__photo--xl{--ifm-avatar-photo-size:6rem}.avatar__intro{display:flex;flex:1 1;flex-direction:column;justify-content:center;text-align:var(--ifm-avatar-intro-alignment)}.badge,.breadcrumbs__item,.breadcrumbs__link,.button,.dropdown>.navbar__link:after{display:inline-block}.avatar__name{font:700 var(--ifm-h4-font-size)/var(--ifm-heading-line-height) var(--ifm-font-family-base)}.avatar__subtitle{margin-top:.25rem}.avatar--vertical{--ifm-avatar-intro-alignment:center;--ifm-avatar-intro-margin:0.5rem;align-items:center;flex-direction:column}.badge{background-color:var(--ifm-badge-background-color);border:var(--ifm-badge-border-width) solid var(--ifm-badge-border-color);border-radius:var(--ifm-badge-border-radius);color:var(--ifm-badge-color);font-size:75%;font-weight:var(--ifm-font-weight-bold);line-height:1;padding:var(--ifm-badge-padding-vertical) var(--ifm-badge-padding-horizontal)}.badge--primary{--ifm-badge-background-color:var(--ifm-color-primary)}.badge--secondary{--ifm-badge-background-color:var(--ifm-color-secondary);color:var(--ifm-color-black)}.breadcrumbs__link,.button.button--secondary.button--outline:not(.button--active):not(:hover){color:var(--ifm-font-color-base)}.badge--success{--ifm-badge-background-color:var(--ifm-color-success)}.badge--info{--ifm-badge-background-color:var(--ifm-color-info)}.badge--warning{--ifm-badge-background-color:var(--ifm-color-warning)}.badge--danger{--ifm-badge-background-color:var(--ifm-color-danger)}.breadcrumbs{margin-bottom:0;padding-left:0}.breadcrumbs__item:not(:last-child):after{background:var(--ifm-breadcrumb-separator) center;content:" ";display:inline-block;filter:var(--ifm-breadcrumb-separator-filter);height:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier));margin:0 var(--ifm-breadcrumb-spacing);opacity:.5;width:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier))}.breadcrumbs__item--active .breadcrumbs__link{background:var(--ifm-breadcrumb-item-background-active);color:var(--ifm-breadcrumb-color-active)}.breadcrumbs__link{border-radius:var(--ifm-breadcrumb-border-radius);font-size:calc(1rem*var(--ifm-breadcrumb-size-multiplier));padding:calc(var(--ifm-breadcrumb-padding-vertical)*var(--ifm-breadcrumb-size-multiplier)) calc(var(--ifm-breadcrumb-padding-horizontal)*var(--ifm-breadcrumb-size-multiplier));transition-duration:var(--ifm-transition-fast);transition-property:background,color}.breadcrumbs__link:any-link:hover,.breadcrumbs__link:link:hover,.breadcrumbs__link:visited:hover,area[href].breadcrumbs__link:hover{background:var(--ifm-breadcrumb-item-background-active);text-decoration:none}.breadcrumbs--sm{--ifm-breadcrumb-size-multiplier:0.8}.breadcrumbs--lg{--ifm-breadcrumb-size-multiplier:1.2}.button{background-color:var(--ifm-button-background-color);border:var(--ifm-button-border-width) solid var(--ifm-button-border-color);border-radius:var(--ifm-button-border-radius);cursor:pointer;font-size:calc(.875rem*var(--ifm-button-size-multiplier));font-weight:var(--ifm-button-font-weight);line-height:1.5;padding:calc(var(--ifm-button-padding-vertical)*var(--ifm-button-size-multiplier)) calc(var(--ifm-button-padding-horizontal)*var(--ifm-button-size-multiplier));text-align:center;transition-duration:var(--ifm-button-transition-duration);transition-property:color,background,border-color;-webkit-user-select:none;user-select:none;white-space:nowrap}.button,.button:hover{color:var(--ifm-button-color)}.button--outline{--ifm-button-color:var(--ifm-button-border-color)}.button--outline:hover{--ifm-button-background-color:var(--ifm-button-border-color)}.button--link{--ifm-button-border-color:#0000;color:var(--ifm-link-color);text-decoration:var(--ifm-link-decoration)}.button--link.button--active,.button--link:active,.button--link:hover{color:var(--ifm-link-hover-color);text-decoration:var(--ifm-link-hover-decoration)}.button.disabled,.button:disabled,.button[disabled]{opacity:.65;pointer-events:none}.button--sm{--ifm-button-size-multiplier:0.8}.button--lg{--ifm-button-size-multiplier:1.35}.button--block{display:block;width:100%}.button.button--secondary{color:var(--ifm-color-gray-900)}:where(.button--primary){--ifm-button-background-color:var(--ifm-color-primary);--ifm-button-border-color:var(--ifm-color-primary)}:where(.button--primary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-primary-dark);--ifm-button-border-color:var(--ifm-color-primary-dark)}.button--primary.button--active,.button--primary:active{--ifm-button-background-color:var(--ifm-color-primary-darker);--ifm-button-border-color:var(--ifm-color-primary-darker)}:where(.button--secondary){--ifm-button-background-color:var(--ifm-color-secondary);--ifm-button-border-color:var(--ifm-color-secondary)}:where(.button--secondary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-secondary-dark);--ifm-button-border-color:var(--ifm-color-secondary-dark)}.button--secondary.button--active,.button--secondary:active{--ifm-button-background-color:var(--ifm-color-secondary-darker);--ifm-button-border-color:var(--ifm-color-secondary-darker)}:where(.button--success){--ifm-button-background-color:var(--ifm-color-success);--ifm-button-border-color:var(--ifm-color-success)}:where(.button--success):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-success-dark);--ifm-button-border-color:var(--ifm-color-success-dark)}.button--success.button--active,.button--success:active{--ifm-button-background-color:var(--ifm-color-success-darker);--ifm-button-border-color:var(--ifm-color-success-darker)}:where(.button--info){--ifm-button-background-color:var(--ifm-color-info);--ifm-button-border-color:var(--ifm-color-info)}:where(.button--info):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-info-dark);--ifm-button-border-color:var(--ifm-color-info-dark)}.button--info.button--active,.button--info:active{--ifm-button-background-color:var(--ifm-color-info-darker);--ifm-button-border-color:var(--ifm-color-info-darker)}:where(.button--warning){--ifm-button-background-color:var(--ifm-color-warning);--ifm-button-border-color:var(--ifm-color-warning)}:where(.button--warning):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-warning-dark);--ifm-button-border-color:var(--ifm-color-warning-dark)}.button--warning.button--active,.button--warning:active{--ifm-button-background-color:var(--ifm-color-warning-darker);--ifm-button-border-color:var(--ifm-color-warning-darker)}:where(.button--danger){--ifm-button-background-color:var(--ifm-color-danger);--ifm-button-border-color:var(--ifm-color-danger)}:where(.button--danger):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-danger-dark);--ifm-button-border-color:var(--ifm-color-danger-dark)}.button--danger.button--active,.button--danger:active{--ifm-button-background-color:var(--ifm-color-danger-darker);--ifm-button-border-color:var(--ifm-color-danger-darker)}.button-group{display:inline-flex;gap:var(--ifm-button-group-spacing)}.button-group>.button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.button-group>.button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.button-group--block{display:flex;justify-content:stretch}.button-group--block>.button{flex-grow:1}.card{background-color:var(--ifm-card-background-color);border-radius:var(--ifm-card-border-radius);box-shadow:var(--ifm-global-shadow-lw);display:flex;flex-direction:column;overflow:hidden}.card__image{padding-top:var(--ifm-card-vertical-spacing)}.card__image:first-child{padding-top:0}.card__body,.card__footer,.card__header{padding:var(--ifm-card-vertical-spacing) var(--ifm-card-horizontal-spacing)}.card__body:not(:last-child),.card__footer:not(:last-child),.card__header:not(:last-child){padding-bottom:0}.card__body>:last-child,.card__footer>:last-child,.card__header>:last-child{margin-bottom:0}.card__footer{margin-top:auto}.table-of-contents{font-size:.8rem;margin-bottom:0;padding:var(--ifm-toc-padding-vertical) 0}.table-of-contents,.table-of-contents ul{list-style:none;padding-left:var(--ifm-toc-padding-horizontal)}.table-of-contents li{margin:var(--ifm-toc-padding-vertical) var(--ifm-toc-padding-horizontal)}.table-of-contents__left-border{border-left:1px solid var(--ifm-toc-border-color)}.table-of-contents__link{color:var(--ifm-toc-link-color);display:block}.table-of-contents__link--active,.table-of-contents__link--active code,.table-of-contents__link:hover,.table-of-contents__link:hover code{color:var(--ifm-color-primary);text-decoration:none}.close{color:var(--ifm-color-black);float:right;font-size:1.5rem;font-weight:var(--ifm-font-weight-bold);line-height:1;opacity:.5;padding:1rem;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.close:hover{opacity:.7}.close:focus,.theme-code-block-highlighted-line .codeLineNumber_Tfdd:before{opacity:.8}.dropdown{display:inline-flex;font-weight:var(--ifm-dropdown-font-weight);position:relative;vertical-align:top}.dropdown--hoverable:hover .dropdown__menu,.dropdown--show .dropdown__menu{opacity:1;pointer-events:all;transform:translateY(-1px);visibility:visible}#nprogress,.dropdown__menu,.navbar__item.dropdown .navbar__link:not([href]){pointer-events:none}.dropdown--right .dropdown__menu{left:inherit;right:0}.dropdown--nocaret .navbar__link:after{content:none!important}.dropdown__menu{background-color:var(--ifm-dropdown-background-color);border-radius:var(--ifm-global-radius);box-shadow:var(--ifm-global-shadow-md);left:0;max-height:80vh;min-width:10rem;opacity:0;overflow-y:auto;padding:.5rem;position:absolute;top:calc(100% - var(--ifm-navbar-item-padding-vertical) + .3rem);transform:translateY(-.625rem);transition-duration:var(--ifm-transition-fast);transition-property:opacity,transform,visibility;transition-timing-function:var(--ifm-transition-timing-default);visibility:hidden;z-index:var(--ifm-z-index-dropdown)}.menu__caret,.menu__link,.menu__list-item-collapsible{border-radius:.25rem;transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.dropdown__link{border-radius:.25rem;color:var(--ifm-dropdown-link-color);display:block;font-size:.875rem;margin-top:.2rem;padding:.25rem .5rem;white-space:nowrap}.dropdown__link--active,.dropdown__link:hover{background-color:var(--ifm-dropdown-hover-background-color);color:var(--ifm-dropdown-link-color);text-decoration:none}.dropdown__link--active,.dropdown__link--active:hover{--ifm-dropdown-link-color:var(--ifm-link-color)}.dropdown>.navbar__link:after{border-color:currentcolor #0000;border-style:solid;border-width:.4em .4em 0;content:"";margin-left:.3em;position:relative;top:2px;transform:translateY(-50%)}.footer{background-color:var(--ifm-footer-background-color);color:var(--ifm-footer-color);padding:var(--ifm-footer-padding-vertical) var(--ifm-footer-padding-horizontal)}.footer--dark{--ifm-footer-background-color:#303846;--ifm-footer-color:var(--ifm-footer-link-color);--ifm-footer-link-color:var(--ifm-color-secondary);--ifm-footer-title-color:var(--ifm-color-white)}.footer__links{margin-bottom:1rem}.footer__link-item{color:var(--ifm-footer-link-color);line-height:2}.footer__link-item:hover{color:var(--ifm-footer-link-hover-color)}.footer__link-separator{margin:0 var(--ifm-footer-link-horizontal-spacing)}.footer__logo{margin-top:1rem;max-width:var(--ifm-footer-logo-max-width)}.footer__title{color:var(--ifm-footer-title-color);font:700 var(--ifm-h4-font-size)/var(--ifm-heading-line-height) var(--ifm-font-family-base);margin-bottom:var(--ifm-heading-margin-bottom)}.menu,.navbar__link{font-weight:var(--ifm-font-weight-semibold)}.docItemContainer_Djhp article>:first-child,.docItemContainer_Djhp header+*,.footer__item{margin-top:0}.admonitionContent_S0QG>:last-child,.collapsibleContent_i85q>:last-child,.footer__items{margin-bottom:0}.codeBlockStandalone_MEMb,[type=checkbox]{padding:0}.hero{align-items:center;background-color:var(--ifm-hero-background-color);color:var(--ifm-hero-text-color);display:flex;padding:4rem 2rem}.hero--primary{--ifm-hero-background-color:var(--ifm-color-primary);--ifm-hero-text-color:var(--ifm-font-color-base-inverse)}.hero--dark{--ifm-hero-background-color:#303846;--ifm-hero-text-color:var(--ifm-color-white)}.hero__title,.title_f1Hy{font-size:3rem}.hero__subtitle{font-size:1.5rem}.menu__list{margin:0;padding-left:0}.menu__caret,.menu__link{padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal)}.menu__list .menu__list{flex:0 0 100%;margin-top:.25rem;padding-left:var(--ifm-menu-link-padding-horizontal)}.menu__list-item:not(:first-child){margin-top:.25rem}.menu__list-item--collapsed .menu__list{height:0;overflow:hidden}.details_lb9f[data-collapsed=false].isBrowser_bmU9>summary:before,.details_lb9f[open]:not(.isBrowser_bmU9)>summary:before,.menu__list-item--collapsed .menu__caret:before,.menu__list-item--collapsed .menu__link--sublist:after{transform:rotate(90deg)}.menu__list-item-collapsible{display:flex;flex-wrap:wrap;position:relative}.menu__caret:hover,.menu__link:hover,.menu__list-item-collapsible--active,.menu__list-item-collapsible:hover{background:var(--ifm-menu-color-background-hover)}.menu__list-item-collapsible .menu__link--active,.menu__list-item-collapsible .menu__link:hover{background:none!important}.menu__caret,.menu__link{align-items:center;display:flex}.menu__link{color:var(--ifm-menu-color);flex:1;line-height:1.25}.menu__link:hover{color:var(--ifm-menu-color);text-decoration:none}.menu__caret:before,.menu__link--sublist-caret:after{content:"";height:1.25rem;transform:rotate(180deg);transition:transform var(--ifm-transition-fast) linear;width:1.25rem;filter:var(--ifm-menu-link-sublist-icon-filter)}.menu__link--sublist-caret:after{background:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem;margin-left:auto;min-width:1.25rem}.menu__link--active,.menu__link--active:hover{color:var(--ifm-menu-color-active)}.navbar__brand,.navbar__link{color:var(--ifm-navbar-link-color)}.menu__link--active:not(.menu__link--sublist){background-color:var(--ifm-menu-color-background-active)}.menu__caret:before{background:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem}.navbar--dark,html[data-theme=dark]{--ifm-menu-link-sublist-icon-filter:invert(100%) sepia(94%) saturate(17%) hue-rotate(223deg) brightness(104%) contrast(98%)}.navbar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-navbar-shadow);height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal)}.navbar,.navbar>.container,.navbar>.container-fluid{display:flex}.navbar--fixed-top{position:sticky;top:0;z-index:var(--ifm-z-index-fixed)}.navbar-sidebar,.navbar-sidebar__backdrop{bottom:0;opacity:0;position:fixed;transition-duration:var(--ifm-transition-fast);transition-timing-function:ease-in-out;left:0;top:0;visibility:hidden}.navbar__inner{display:flex;flex-wrap:wrap;justify-content:space-between;width:100%}.navbar__brand{align-items:center;display:flex;margin-right:1rem;min-width:0}.navbar__brand:hover{color:var(--ifm-navbar-link-hover-color);text-decoration:none}.announcementBarContent_xLdY,.navbar__title{flex:1 1 auto}.navbar__toggle{display:none;margin-right:.5rem}.navbar__logo{flex:0 0 auto;height:2rem;margin-right:.5rem}.navbar__items{align-items:center;display:flex;flex:1;min-width:0}.navbar__items--center{flex:0 0 auto}.navbar__items--center .navbar__brand{margin:0}.navbar__items--center+.navbar__items--right{flex:1}.navbar__items--right{flex:0 0 auto;justify-content:flex-end}.navbar__items--right>:last-child{padding-right:0}.navbar__item{display:inline-block;padding:var(--ifm-navbar-item-padding-vertical) var(--ifm-navbar-item-padding-horizontal)}.navbar__link--active,.navbar__link:hover{color:var(--ifm-navbar-link-hover-color);text-decoration:none}.navbar--dark,.navbar--primary{--ifm-menu-color:var(--ifm-color-gray-300);--ifm-navbar-link-color:var(--ifm-color-gray-100);--ifm-navbar-search-input-background-color:#ffffff1a;--ifm-navbar-search-input-placeholder-color:#ffffff80;color:var(--ifm-color-white)}.navbar--dark{--ifm-navbar-background-color:#242526;--ifm-menu-color-background-active:#ffffff0d;--ifm-navbar-search-input-color:var(--ifm-color-white)}.navbar--primary{--ifm-navbar-background-color:var(--ifm-color-primary);--ifm-navbar-link-hover-color:var(--ifm-color-white);--ifm-menu-color-active:var(--ifm-color-white);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-500)}.navbar__search-input{-webkit-appearance:none;appearance:none;background:var(--ifm-navbar-search-input-background-color) var(--ifm-navbar-search-input-icon) no-repeat .75rem center/1rem 1rem;border:none;border-radius:2rem;color:var(--ifm-navbar-search-input-color);cursor:text;display:inline-block;font-size:.9rem;height:2rem;padding:0 .5rem 0 2.25rem;width:12.5rem}.navbar__search-input::placeholder{color:var(--ifm-navbar-search-input-placeholder-color)}.navbar-sidebar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-global-shadow-md);transform:translate3d(-100%,0,0);transition-property:opacity,visibility,transform;width:var(--ifm-navbar-sidebar-width)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar__items{transform:translateZ(0)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar--show .navbar-sidebar__backdrop{opacity:1;visibility:visible}.navbar-sidebar__backdrop{background-color:#0009;right:0;transition-property:opacity,visibility}.navbar-sidebar__brand{align-items:center;box-shadow:var(--ifm-navbar-shadow);display:flex;flex:1;height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal)}.navbar-sidebar__items{display:flex;height:calc(100% - var(--ifm-navbar-height));transition:transform var(--ifm-transition-fast) ease-in-out}.navbar-sidebar__items--show-secondary{transform:translate3d(calc((var(--ifm-navbar-sidebar-width))*-1),0,0)}.navbar-sidebar__item{flex-shrink:0;padding:.5rem;width:calc(var(--ifm-navbar-sidebar-width))}.navbar-sidebar__back{background:var(--ifm-menu-color-background-active);font-size:15px;font-weight:var(--ifm-button-font-weight);margin:0 0 .2rem -.5rem;padding:.6rem 1.5rem;position:relative;text-align:left;top:-.5rem;width:calc(100% + 1rem)}.navbar-sidebar__close{display:flex;margin-left:auto}.pagination{column-gap:var(--ifm-pagination-page-spacing);display:flex;font-size:var(--ifm-pagination-font-size);padding-left:0}.pagination--sm{--ifm-pagination-font-size:0.8rem;--ifm-pagination-padding-horizontal:0.8rem;--ifm-pagination-padding-vertical:0.2rem}.pagination--lg{--ifm-pagination-font-size:1.2rem;--ifm-pagination-padding-horizontal:1.2rem;--ifm-pagination-padding-vertical:0.3rem}.pagination__item{display:inline-flex}.pagination__item>span{padding:var(--ifm-pagination-padding-vertical)}.pagination__item--active .pagination__link{color:var(--ifm-pagination-color-active)}.pagination__item--active .pagination__link,.pagination__item:not(.pagination__item--active):hover .pagination__link{background:var(--ifm-pagination-item-active-background)}.pagination__item--disabled,.pagination__item[disabled]{opacity:.25;pointer-events:none}.pagination__link{border-radius:var(--ifm-pagination-border-radius);color:var(--ifm-font-color-base);display:inline-block;padding:var(--ifm-pagination-padding-vertical) var(--ifm-pagination-padding-horizontal);transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pagination__link:hover,.sidebarItemLink_mo7H:hover{text-decoration:none}.pagination-nav{grid-gap:var(--ifm-spacing-horizontal);display:grid;gap:var(--ifm-spacing-horizontal);grid-template-columns:repeat(2,1fr)}.pagination-nav__link{border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-pagination-nav-border-radius);display:block;height:100%;line-height:var(--ifm-heading-line-height);padding:var(--ifm-global-spacing);transition:border-color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pagination-nav__link:hover{border-color:var(--ifm-pagination-nav-color-hover);text-decoration:none}.pagination-nav__link--next{grid-column:2/3;text-align:right}.pagination-nav__label{font-size:var(--ifm-h4-font-size);font-weight:var(--ifm-heading-font-weight);word-break:break-word}.pagination-nav__link--prev .pagination-nav__label:before{content:"« "}.pagination-nav__link--next .pagination-nav__label:after{content:" »"}.pagination-nav__sublabel{color:var(--ifm-color-content-secondary);font-size:var(--ifm-h5-font-size);font-weight:var(--ifm-font-weight-semibold);margin-bottom:.25rem}.pills__item,.sidebarItemTitle_pO2u,.tabs{font-weight:var(--ifm-font-weight-bold)}.pills{display:flex;gap:var(--ifm-pills-spacing);padding-left:0}.pills__item{border-radius:.5rem;cursor:pointer;display:inline-block;padding:.25rem 1rem;transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.tabs,:not(.containsTaskList_mC6p>li)>.containsTaskList_mC6p{padding-left:0}.pills__item--active{color:var(--ifm-pills-color-active)}.pills__item--active,.pills__item:not(.pills__item--active):hover{background:var(--ifm-pills-color-background-active)}.pills--block{justify-content:stretch}.pills--block .pills__item{flex-grow:1;text-align:center}.tabs{color:var(--ifm-tabs-color);display:flex;margin-bottom:0;overflow-x:auto}.tabs__item{border-bottom:3px solid #0000;border-radius:var(--ifm-global-radius);cursor:pointer;display:inline-flex;padding:var(--ifm-tabs-padding-vertical) var(--ifm-tabs-padding-horizontal);transition:background-color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.tabs__item--active{border-bottom-color:var(--ifm-tabs-color-active-border);border-bottom-left-radius:0;border-bottom-right-radius:0;color:var(--ifm-tabs-color-active)}.tabs__item:hover{background-color:var(--ifm-hover-overlay)}.tabs--block{justify-content:stretch}.tabs--block .tabs__item{flex-grow:1;justify-content:center}html[data-theme=dark]{--ifm-color-scheme:dark;--ifm-color-emphasis-0:var(--ifm-color-gray-1000);--ifm-color-emphasis-100:var(--ifm-color-gray-900);--ifm-color-emphasis-200:var(--ifm-color-gray-800);--ifm-color-emphasis-300:var(--ifm-color-gray-700);--ifm-color-emphasis-400:var(--ifm-color-gray-600);--ifm-color-emphasis-600:var(--ifm-color-gray-400);--ifm-color-emphasis-700:var(--ifm-color-gray-300);--ifm-color-emphasis-800:var(--ifm-color-gray-200);--ifm-color-emphasis-900:var(--ifm-color-gray-100);--ifm-color-emphasis-1000:var(--ifm-color-gray-0);--ifm-background-color:#1b1b1d;--ifm-background-surface-color:#242526;--ifm-hover-overlay:#ffffff0d;--ifm-color-content:#e3e3e3;--ifm-color-content-secondary:#fff;--ifm-breadcrumb-separator-filter:invert(64%) sepia(11%) saturate(0%) hue-rotate(149deg) brightness(99%) contrast(95%);--ifm-code-background:#ffffff1a;--ifm-scrollbar-track-background-color:#444;--ifm-scrollbar-thumb-background-color:#686868;--ifm-scrollbar-thumb-hover-background-color:#7a7a7a;--ifm-table-stripe-background:#ffffff12;--ifm-toc-border-color:var(--ifm-color-emphasis-200);--ifm-color-primary-contrast-background:#102445;--ifm-color-primary-contrast-foreground:#ebf2fc;--ifm-color-secondary-contrast-background:#474748;--ifm-color-secondary-contrast-foreground:#fdfdfe;--ifm-color-success-contrast-background:#003100;--ifm-color-success-contrast-foreground:#e6f6e6;--ifm-color-info-contrast-background:#193c47;--ifm-color-info-contrast-foreground:#eef9fd;--ifm-color-warning-contrast-background:#4d3800;--ifm-color-warning-contrast-foreground:#fff8e6;--ifm-color-danger-contrast-background:#4b1113;--ifm-color-danger-contrast-foreground:#ffebec}#nprogress .bar{background:var(--docusaurus-progress-bar-color);height:2px;left:0;position:fixed;top:0;width:100%;z-index:1031}#nprogress .peg{box-shadow:0 0 10px var(--docusaurus-progress-bar-color),0 0 5px var(--docusaurus-progress-bar-color);height:100%;opacity:1;position:absolute;right:0;transform:rotate(3deg) translateY(-4px);width:100px}[data-theme=dark]{--ifm-color-primary:#25c2a0;--ifm-color-primary-dark:#21af90;--ifm-color-primary-darker:#1fa588;--ifm-color-primary-darkest:#1a8870;--ifm-color-primary-light:#29d5b0;--ifm-color-primary-lighter:#32d8b4;--ifm-color-primary-lightest:#4fddbf;--docusaurus-highlighted-code-line-bg:#0000004d}.skipToContent_fXgn{background-color:var(--ifm-background-surface-color);color:var(--ifm-color-emphasis-900);left:100%;padding:calc(var(--ifm-global-spacing)/2) var(--ifm-global-spacing);position:fixed;top:1rem;z-index:calc(var(--ifm-z-index-fixed) + 1)}.skipToContent_fXgn:focus{box-shadow:var(--ifm-global-shadow-md);left:1rem}.closeButton_CVFx{line-height:0;padding:0}.content_knG7{font-size:85%;padding:5px 0;text-align:center}.content_knG7 a{color:inherit;text-decoration:underline}.announcementBar_mb4j{align-items:center;background-color:var(--ifm-color-white);border-bottom:1px solid var(--ifm-color-emphasis-100);color:var(--ifm-color-black);display:flex;height:var(--docusaurus-announcement-bar-height)}#docusaurus-base-url-issue-banner-container,.docSidebarContainer_b6E3,.sidebarLogo_isFc,.themedImage_ToTc,[data-theme=dark] .lightToggleIcon_pyhR,[data-theme=light] .darkToggleIcon_wfgR,html[data-announcement-bar-initially-dismissed=true] .announcementBar_mb4j{display:none}.announcementBarPlaceholder_vyr4{flex:0 0 10px}.announcementBarClose_gvF7{align-self:stretch;flex:0 0 30px}.toggle_vylO{height:2rem;width:2rem}.toggleButton_gllP{align-items:center;border-radius:50%;display:flex;height:100%;justify-content:center;transition:background var(--ifm-transition-fast);width:100%}.toggleButton_gllP:hover{background:var(--ifm-color-emphasis-200)}.toggleButtonDisabled_aARS{cursor:not-allowed}.darkNavbarColorModeToggle_X3D1:hover{background:var(--ifm-color-gray-800)}[data-theme=dark] .themedImage--dark_i4oU,[data-theme=light] .themedImage--light_HNdA{display:initial}.iconExternalLink_nPIU{margin-left:.3rem}.iconLanguage_nlXk{margin-right:5px;vertical-align:text-bottom}.navbarHideable_m1mJ{transition:transform var(--ifm-transition-fast) ease}.navbarHidden_jGov{transform:translate3d(0,calc(-100% - 2px),0)}.errorBoundaryError_a6uf{color:red;white-space:pre-wrap}body:not(.navigation-with-keyboard) :not(input):focus{outline:0}.footerLogoLink_BH7S{opacity:.5;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.footerLogoLink_BH7S:hover,.hash-link:focus,:hover>.hash-link{opacity:1}.mainWrapper_z2l0{display:flex;flex:1 0 auto;flex-direction:column}.docusaurus-mt-lg{margin-top:3rem}#__docusaurus{display:flex;flex-direction:column;min-height:100%}.sidebar_re4s{max-height:calc(100vh - var(--ifm-navbar-height) - 2rem);overflow-y:auto;position:sticky;top:calc(var(--ifm-navbar-height) + 2rem)}.sidebarItemTitle_pO2u{font-size:var(--ifm-h3-font-size)}.text1_bUvo,.text2_Pbus{font-weight:700;line-height:64px}.container_mt6G,.sidebarItemList_Yudw{font-size:.9rem}.sidebarItem__DBe{margin-top:.7rem}.sidebarItemLink_mo7H{color:var(--ifm-font-color-base);display:block}.sidebarItemLinkActive_I1ZP{color:var(--ifm-color-primary)!important}.backToTopButton_sjWU{background-color:var(--ifm-color-emphasis-200);border-radius:50%;bottom:1.3rem;box-shadow:var(--ifm-global-shadow-lw);height:3rem;opacity:0;position:fixed;right:1.3rem;transform:scale(0);transition:all var(--ifm-transition-fast) var(--ifm-transition-timing-default);visibility:hidden;width:3rem;z-index:calc(var(--ifm-z-index-fixed) - 1)}.backToTopButton_sjWU:after{background-color:var(--ifm-color-emphasis-1000);content:" ";display:inline-block;height:100%;-webkit-mask:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem no-repeat;mask:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem no-repeat;width:100%}.backToTopButtonShow_xfvO{opacity:1;transform:scale(1);visibility:visible}[data-theme=dark]:root{--docusaurus-collapse-button-bg:#ffffff0d;--docusaurus-collapse-button-bg-hover:#ffffff1a}.collapseSidebarButton_PEFL{display:none;margin:0}.docMainContainer_gTbr,.docPage__5DB{display:flex;width:100%}.docPage__5DB{flex:1 0}.docsWrapper_BCFX{display:flex;flex:1 0 auto}.authorCol_Hf19{flex-grow:1!important;max-width:inherit!important}.imageOnlyAuthorRow_pa_O{display:flex;flex-flow:row wrap}.features_t9lD,.right_OHMl{align-items:center;display:flex}.imageOnlyAuthorCol_G86a{margin-left:.3rem;margin-right:.3rem}.features_t9lD{padding:2rem 0;width:100%}.featureSvg_GfXr{height:200px;width:200px}.featureImg_d9Ri{max-height:200px}.left_g_Qb{justify-self:center;min-height:300px}.text1_bUvo{color:#0000;font-size:56px;letter-spacing:-.4px;margin:0;white-space:pre-wrap}.text1_bUvo .clip_YUr1{-webkit-text-fill-color:#0000;background:-webkit-linear-gradient(120deg,#bd34fe 30%,#41d1ff);-webkit-background-clip:text;background-clip:text}.text2_Pbus{color:#3c3c43;font-size:50px;margin-top:20px}.text3_MeLg{color:#3c3c43c7;font-size:24px;font-weight:500;line-height:36px;padding-top:12px}.right_OHMl{flex:1;height:100%;justify-content:center;transform:translate(-32px,-32px);width:100%}.imageBg_GaoG{background-image:-webkit-linear-gradient(120deg,#bd34fe 30%,#41d1ff);filter:blur(72px);height:320px;width:320px}.buttonGroup__atx button,.codeBlockContainer_Ckt0{background:var(--prism-background-color);color:var(--prism-color)}.imageBg_GaoG,.imageSrc_qFu7{border-radius:50%;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}.imageSrc_qFu7{max-height:320px;max-width:320px}.codeBlockContainer_Ckt0{border-radius:var(--ifm-code-border-radius);box-shadow:var(--ifm-global-shadow-lw);margin-bottom:var(--ifm-leading)}.codeBlockContent_biex{border-radius:inherit;direction:ltr;position:relative}.codeBlockTitle_Ktv7{border-bottom:1px solid var(--ifm-color-emphasis-300);border-top-left-radius:inherit;border-top-right-radius:inherit;font-size:var(--ifm-code-font-size);font-weight:500;padding:.75rem var(--ifm-pre-padding)}.codeBlock_bY9V{--ifm-pre-background:var(--prism-background-color);margin:0;padding:0}.codeBlockTitle_Ktv7+.codeBlockContent_biex .codeBlock_bY9V{border-top-left-radius:0;border-top-right-radius:0}.codeBlockLines_e6Vv{float:left;font:inherit;min-width:100%;padding:var(--ifm-pre-padding)}.codeBlockLinesWithNumbering_o6Pm{display:table;padding:var(--ifm-pre-padding) 0}.buttonGroup__atx{column-gap:.2rem;display:flex;position:absolute;right:calc(var(--ifm-pre-padding)/2);top:calc(var(--ifm-pre-padding)/2)}.buttonGroup__atx button{align-items:center;border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-global-radius);display:flex;line-height:0;opacity:0;padding:.4rem;transition:opacity var(--ifm-transition-fast) ease-in-out}.buttonGroup__atx button:focus-visible,.buttonGroup__atx button:hover{opacity:1!important}.theme-code-block:hover .buttonGroup__atx button{opacity:.4}.iconEdit_Z9Sw{margin-right:.3em;vertical-align:sub}:where(:root){--docusaurus-highlighted-code-line-bg:#484d5b}:where([data-theme=dark]){--docusaurus-highlighted-code-line-bg:#646464}.theme-code-block-highlighted-line{background-color:var(--docusaurus-highlighted-code-line-bg);display:block;margin:0 calc(var(--ifm-pre-padding)*-1);padding:0 var(--ifm-pre-padding)}.codeLine_lJS_{counter-increment:a;display:table-row}.codeLineNumber_Tfdd{background:var(--ifm-pre-background);display:table-cell;left:0;overflow-wrap:normal;padding:0 var(--ifm-pre-padding);position:sticky;text-align:right;width:1%}.codeLineNumber_Tfdd:before{content:counter(a);opacity:.4}.codeLineContent_feaV{padding-right:var(--ifm-pre-padding)}.tag_zVej{border:1px solid var(--docusaurus-tag-list-border);transition:border var(--ifm-transition-fast)}.tag_zVej:hover{--docusaurus-tag-list-border:var(--ifm-link-color);text-decoration:none}.tagRegular_sFm0{border-radius:var(--ifm-global-radius);font-size:90%;padding:.2rem .5rem .3rem}.tagWithCount_h2kH{align-items:center;border-left:0;display:flex;padding:0 .5rem 0 1rem;position:relative}.tagWithCount_h2kH:after,.tagWithCount_h2kH:before{border:1px solid var(--docusaurus-tag-list-border);content:"";position:absolute;top:50%;transition:inherit}.tagWithCount_h2kH:before{border-bottom:0;border-right:0;height:1.18rem;right:100%;transform:translate(50%,-50%) rotate(-45deg);width:1.18rem}.tagWithCount_h2kH:after{border-radius:50%;height:.5rem;left:0;transform:translateY(-50%);width:.5rem}.tagWithCount_h2kH span{background:var(--ifm-color-secondary);border-radius:var(--ifm-global-radius);color:var(--ifm-color-black);font-size:.7rem;line-height:1.2;margin-left:.3rem;padding:.1rem .4rem}.tag_Nnez{display:inline-block;margin:.5rem .5rem 0 1rem}.theme-code-block:hover .copyButtonCopied_obH4{opacity:1!important}.copyButtonIcons_eSgA{height:1.125rem;position:relative;width:1.125rem}.copyButtonIcon_y97N,.copyButtonSuccessIcon_LjdS{fill:currentColor;height:inherit;left:0;opacity:inherit;position:absolute;top:0;transition:all var(--ifm-transition-fast) ease;width:inherit}.copyButtonSuccessIcon_LjdS{color:#00d600;left:50%;opacity:0;top:50%;transform:translate(-50%,-50%) scale(.33)}.copyButtonCopied_obH4 .copyButtonIcon_y97N{opacity:0;transform:scale(.33)}.copyButtonCopied_obH4 .copyButtonSuccessIcon_LjdS{opacity:1;transform:translate(-50%,-50%) scale(1);transition-delay:75ms}.tags_jXut{display:inline}.tag_QGVx{display:inline-block;margin:0 .4rem .5rem 0}.lastUpdated_vwxv{font-size:smaller;font-style:italic;margin-top:.2rem}.tocCollapsibleButton_TO0P{align-items:center;display:flex;font-size:inherit;justify-content:space-between;padding:.4rem .8rem;width:100%}.tocCollapsibleButton_TO0P:after{background:var(--ifm-menu-link-sublist-icon) 50% 50%/2rem 2rem no-repeat;content:"";filter:var(--ifm-menu-link-sublist-icon-filter);height:1.25rem;transform:rotate(180deg);transition:transform var(--ifm-transition-fast);width:1.25rem}.tocCollapsibleButtonExpanded_MG3E:after,.tocCollapsibleExpanded_sAul{transform:none}.tocCollapsible_ETCw{background-color:var(--ifm-menu-color-background-active);border-radius:var(--ifm-global-radius);margin:1rem 0}.tocCollapsibleContent_vkbj>ul{border-left:none;border-top:1px solid var(--ifm-color-emphasis-300);font-size:15px;padding:.2rem 0}.tocCollapsibleContent_vkbj ul li{margin:.4rem .8rem}.tocCollapsibleContent_vkbj a{display:block}.wordWrapButtonIcon_Bwma{height:1.2rem;width:1.2rem}.details_lb9f{--docusaurus-details-summary-arrow-size:0.38rem;--docusaurus-details-transition:transform 200ms ease;--docusaurus-details-decoration-color:grey}.details_lb9f>summary{cursor:pointer;padding-left:1rem;position:relative}.details_lb9f>summary::-webkit-details-marker{display:none}.details_lb9f>summary:before{border-color:#0000 #0000 #0000 var(--docusaurus-details-decoration-color);border-style:solid;border-width:var(--docusaurus-details-summary-arrow-size);content:"";left:0;position:absolute;top:.45rem;transform:rotate(0);transform-origin:calc(var(--docusaurus-details-summary-arrow-size)/2) 50%;transition:var(--docusaurus-details-transition)}.collapsibleContent_i85q{border-top:1px solid var(--docusaurus-details-decoration-color);margin-top:1rem;padding-top:1rem}.details_b_Ee{--docusaurus-details-decoration-color:var(--ifm-alert-border-color);--docusaurus-details-transition:transform var(--ifm-transition-fast) ease;border:1px solid var(--ifm-alert-border-color);margin:0 0 var(--ifm-spacing-vertical)}.anchorWithStickyNavbar_LWe7{scroll-margin-top:calc(var(--ifm-navbar-height) + .5rem)}.anchorWithHideOnScrollNavbar_WYt5{scroll-margin-top:.5rem}.hash-link{opacity:0;padding-left:.5rem;transition:opacity var(--ifm-transition-fast);-webkit-user-select:none;user-select:none}.hash-link:before{content:"#"}.img_ev3q{height:auto}.admonition_LlT9{margin-bottom:1em}.admonitionHeading_tbUL{font:var(--ifm-heading-font-weight) var(--ifm-h5-font-size)/var(--ifm-heading-line-height) var(--ifm-heading-font-family);margin-bottom:.3rem}.admonitionHeading_tbUL code{text-transform:none}.admonitionIcon_kALy{display:inline-block;margin-right:.4em;vertical-align:middle}.admonitionIcon_kALy svg{fill:var(--ifm-alert-foreground-color);display:inline-block;height:1.6em;width:1.6em}.blogPostFooterDetailsFull_mRVl{flex-direction:column}.tableOfContents_bqdL{max-height:calc(100vh - var(--ifm-navbar-height) - 2rem);overflow-y:auto;position:sticky;top:calc(var(--ifm-navbar-height) + 1rem)}.breadcrumbHomeIcon_YNFT{height:1.1rem;position:relative;top:1px;vertical-align:top;width:1.1rem}.breadcrumbsContainer_Z_bl{--ifm-breadcrumb-size-multiplier:0.8;margin-bottom:.8rem}.mdxPageWrapper_j9I6{justify-content:center}@media (min-width:997px){.collapseSidebarButton_PEFL,.expandButton_m80_{background-color:var(--docusaurus-collapse-button-bg)}:root{--docusaurus-announcement-bar-height:30px}.announcementBarClose_gvF7,.announcementBarPlaceholder_vyr4{flex-basis:50px}.searchBox_ZlJk{padding:var(--ifm-navbar-item-padding-vertical) var(--ifm-navbar-item-padding-horizontal)}.collapseSidebarButton_PEFL{border:1px solid var(--ifm-toc-border-color);border-radius:0;bottom:0;display:block!important;height:40px;position:sticky}.collapseSidebarButtonIcon_kv0_{margin-top:4px;transform:rotate(180deg)}.expandButtonIcon_BlDH,[dir=rtl] .collapseSidebarButtonIcon_kv0_{transform:rotate(0)}.collapseSidebarButton_PEFL:focus,.collapseSidebarButton_PEFL:hover,.expandButton_m80_:focus,.expandButton_m80_:hover{background-color:var(--docusaurus-collapse-button-bg-hover)}.menuHtmlItem_M9Kj{padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal)}.menu_SIkG{flex-grow:1;padding:.5rem}@supports (scrollbar-gutter:stable){.menu_SIkG{padding:.5rem 0 .5rem .5rem;scrollbar-gutter:stable}}.menuWithAnnouncementBar_GW3s{margin-bottom:var(--docusaurus-announcement-bar-height)}.sidebar_njMd{display:flex;flex-direction:column;height:100%;padding-top:var(--ifm-navbar-height);width:var(--doc-sidebar-width)}.sidebarWithHideableNavbar_wUlq{padding-top:0}.sidebarHidden_VK0M{opacity:0;visibility:hidden}.sidebarLogo_isFc{align-items:center;color:inherit!important;display:flex!important;margin:0 var(--ifm-navbar-padding-horizontal);max-height:var(--ifm-navbar-height);min-height:var(--ifm-navbar-height);text-decoration:none!important}.sidebarLogo_isFc img{height:2rem;margin-right:.5rem}.expandButton_m80_{align-items:center;display:flex;height:100%;justify-content:center;position:absolute;right:0;top:0;transition:background-color var(--ifm-transition-fast) ease;width:100%}[dir=rtl] .expandButtonIcon_BlDH{transform:rotate(180deg)}.docSidebarContainer_b6E3{border-right:1px solid var(--ifm-toc-border-color);-webkit-clip-path:inset(0);clip-path:inset(0);display:block;margin-top:calc(var(--ifm-navbar-height)*-1);transition:width var(--ifm-transition-fast) ease;width:var(--doc-sidebar-width);will-change:width}.docSidebarContainerHidden_b3ry{cursor:pointer;width:var(--doc-sidebar-hidden-width)}.sidebarViewport_Xe31{height:100%;max-height:100vh;position:sticky;top:0}.docMainContainer_gTbr{flex-grow:1;max-width:calc(100% - var(--doc-sidebar-width))}.docMainContainerEnhanced_Uz_u{max-width:calc(100% - var(--doc-sidebar-hidden-width))}.docItemWrapperEnhanced_czyv{max-width:calc(var(--ifm-container-width) + var(--doc-sidebar-width))!important}.lastUpdated_vwxv{text-align:right}.tocMobile_ITEo{display:none}.docItemCol_VOVn{max-width:75%!important}}@media (min-width:1440px){.container{max-width:var(--ifm-container-width-xl)}}@media screen and (max-width:1023px){.right_OHMl{display:none}.text2_Pbus{font-size:30px}}@media (max-width:996px){.col{--ifm-col-width:100%;flex-basis:var(--ifm-col-width);margin-left:0}.footer{--ifm-footer-padding-horizontal:0}.colorModeToggle_DEke,.footer__link-separator,.navbar__item,.sidebar_re4s,.tableOfContents_bqdL{display:none}.footer__col{margin-bottom:calc(var(--ifm-spacing-vertical)*3)}.footer__link-item{display:block}.hero{padding-left:0;padding-right:0}.navbar>.container,.navbar>.container-fluid{padding:0}.navbar__toggle{display:inherit}.navbar__search-input{width:9rem}.pills--block,.tabs--block{flex-direction:column}.searchBox_ZlJk{position:absolute;right:var(--ifm-navbar-padding-horizontal)}.docItemContainer_F8PC{padding:0 .3rem}}@media (max-width:576px){.markdown h1:first-child{--ifm-h1-font-size:2rem}.markdown>h2{--ifm-h2-font-size:1.5rem}.markdown>h3{--ifm-h3-font-size:1.25rem}.title_f1Hy{font-size:2rem}}@media (hover:hover){.backToTopButton_sjWU:hover{background-color:var(--ifm-color-emphasis-300)}}@media (pointer:fine){.thin-scrollbar{scrollbar-width:thin}.thin-scrollbar::-webkit-scrollbar{height:var(--ifm-scrollbar-size);width:var(--ifm-scrollbar-size)}.thin-scrollbar::-webkit-scrollbar-track{background:var(--ifm-scrollbar-track-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb{background:var(--ifm-scrollbar-thumb-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb:hover{background:var(--ifm-scrollbar-thumb-hover-background-color)}}@media (prefers-reduced-motion:reduce){:root{--ifm-transition-fast:0ms;--ifm-transition-slow:0ms}}@media print{.announcementBar_mb4j,.footer,.menu,.navbar,.pagination-nav,.table-of-contents,.tocMobile_ITEo{display:none}.tabs{page-break-inside:avoid}.codeBlockLines_e6Vv{white-space:pre-wrap}} \ No newline at end of file diff --git a/assets/js/009da349.564f24bf.js b/assets/js/009da349.e344532f.js similarity index 97% rename from assets/js/009da349.564f24bf.js rename to assets/js/009da349.e344532f.js index 3c0850a41..2e36ca685 100644 --- a/assets/js/009da349.564f24bf.js +++ b/assets/js/009da349.e344532f.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5093],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>f});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var c=n.createContext({}),u=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=u(e.components);return n.createElement(c.Provider,{value:t},e.children)},s="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),s=u(r),d=a,f=s["".concat(c,".").concat(d)]||s[d]||y[d]||o;return r?n.createElement(f,i(i({ref:t},p),{},{components:r})):n.createElement(f,i({ref:t},p))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=d;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[s]="string"==typeof e?e:a,i[1]=l;for(var u=2;u{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>y,frontMatter:()=>o,metadata:()=>l,toc:()=>u});var n=r(8168),a=(r(6540),r(5680));const o={sidebar_position:1},i="\u6982\u8ff0",l={unversionedId:"study/back/index",id:"study/back/index",title:"\u6982\u8ff0",description:"\u540e\u7aef\u662f\u76f8\u5f53\u4e8e\u524d\u7aef\u6765\u8bf4\u7684\uff0c\u7528\u6237\u770b\u4e0d\u5230\u7684\u5185\u5bb9\u7edf\u4e00\u6210\u4e3a\u540e\u7aef\uff0c\u540e\u7aef\u5305\u62ec\u4f46\u4e0d\u9650\u4e8e\uff1a",source:"@site/docs/study/back/index.md",sourceDirName:"study/back",slug:"/study/back/",permalink:"/docs/study/back/",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"studySidebar",previous:{title:"\u4f4e\u4ee3\u7801\u53ef\u89c6\u5316\u5e73\u53f0",permalink:"/docs/study/fe/\u4f4e\u4ee3\u7801\u53ef\u89c6\u5316\u5e73\u53f0"},next:{title:"Zookeeper",permalink:"/docs/study/back/Zookeeper"}},c={},u=[{value:"\u53c2\u8003\u8d44\u6599",id:"\u53c2\u8003\u8d44\u6599",level:3}],p={toc:u},s="wrapper";function y(e){let{components:t,...r}=e;return(0,a.yg)(s,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"\u6982\u8ff0"},"\u6982\u8ff0"),(0,a.yg)("p",null,"\u540e\u7aef\u662f\u76f8\u5f53\u4e8e\u524d\u7aef\u6765\u8bf4\u7684\uff0c\u7528\u6237\u770b\u4e0d\u5230\u7684\u5185\u5bb9\u7edf\u4e00\u6210\u4e3a\u540e\u7aef\uff0c\u540e\u7aef\u5305\u62ec\u4f46\u4e0d\u9650\u4e8e\uff1a"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"API \u63a5\u53e3"),(0,a.yg)("li",{parentName:"ul"},"\u6570\u636e\u5e93"),(0,a.yg)("li",{parentName:"ul"},"\u534f\u8bae\u4ea4\u4e92\u670d\u52a1\u7aef"),(0,a.yg)("li",{parentName:"ul"},"websocket \u670d\u52a1\u7aef"),(0,a.yg)("li",{parentName:"ul"},"\u77ed\u4fe1\u3001\u90ae\u4ef6\u670d\u52a1"),(0,a.yg)("li",{parentName:"ul"},"\u96c6\u7fa4\u670d\u52a1\u3001\u5206\u5e03\u5f0f\u670d\u52a1")),(0,a.yg)("h3",{id:"\u53c2\u8003\u8d44\u6599"},"\u53c2\u8003\u8d44\u6599"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://zhuanlan.zhihu.com/p/535122950"},"\u5f20\u5f66\u98de-\u4e0a\u624b\u62a5\u544a\uff5c\u4eca\u5929\u804a\u804a\u817e\u8baf\u76ee\u524d\u5728\u7528\u7684\u5fae\u670d\u52a1\u67b6\u6784\uff01"))))}y.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5093],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>f});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var c=n.createContext({}),u=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=u(e.components);return n.createElement(c.Provider,{value:t},e.children)},s="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),s=u(r),d=a,f=s["".concat(c,".").concat(d)]||s[d]||y[d]||o;return r?n.createElement(f,i(i({ref:t},p),{},{components:r})):n.createElement(f,i({ref:t},p))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=d;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[s]="string"==typeof e?e:a,i[1]=l;for(var u=2;u{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>y,frontMatter:()=>o,metadata:()=>l,toc:()=>u});var n=r(8168),a=(r(6540),r(5680));const o={sidebar_position:1},i="\u6982\u8ff0",l={unversionedId:"study/back/index",id:"study/back/index",title:"\u6982\u8ff0",description:"\u540e\u7aef\u662f\u76f8\u5f53\u4e8e\u524d\u7aef\u6765\u8bf4\u7684\uff0c\u7528\u6237\u770b\u4e0d\u5230\u7684\u5185\u5bb9\u7edf\u4e00\u6210\u4e3a\u540e\u7aef\uff0c\u540e\u7aef\u5305\u62ec\u4f46\u4e0d\u9650\u4e8e\uff1a",source:"@site/docs/study/back/index.md",sourceDirName:"study/back",slug:"/study/back/",permalink:"/docs/study/back/",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"studySidebar",previous:{title:"\u4f4e\u4ee3\u7801\u53ef\u89c6\u5316\u5e73\u53f0",permalink:"/docs/study/fe/\u4f4e\u4ee3\u7801\u53ef\u89c6\u5316\u5e73\u53f0"},next:{title:"Zookeeper",permalink:"/docs/study/back/Zookeeper"}},c={},u=[{value:"\u53c2\u8003\u8d44\u6599",id:"\u53c2\u8003\u8d44\u6599",level:3}],p={toc:u},s="wrapper";function y(e){let{components:t,...r}=e;return(0,a.yg)(s,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"\u6982\u8ff0"},"\u6982\u8ff0"),(0,a.yg)("p",null,"\u540e\u7aef\u662f\u76f8\u5f53\u4e8e\u524d\u7aef\u6765\u8bf4\u7684\uff0c\u7528\u6237\u770b\u4e0d\u5230\u7684\u5185\u5bb9\u7edf\u4e00\u6210\u4e3a\u540e\u7aef\uff0c\u540e\u7aef\u5305\u62ec\u4f46\u4e0d\u9650\u4e8e\uff1a"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"API \u63a5\u53e3"),(0,a.yg)("li",{parentName:"ul"},"\u6570\u636e\u5e93"),(0,a.yg)("li",{parentName:"ul"},"\u534f\u8bae\u4ea4\u4e92\u670d\u52a1\u7aef"),(0,a.yg)("li",{parentName:"ul"},"websocket \u670d\u52a1\u7aef"),(0,a.yg)("li",{parentName:"ul"},"\u77ed\u4fe1\u3001\u90ae\u4ef6\u670d\u52a1"),(0,a.yg)("li",{parentName:"ul"},"\u96c6\u7fa4\u670d\u52a1\u3001\u5206\u5e03\u5f0f\u670d\u52a1")),(0,a.yg)("h3",{id:"\u53c2\u8003\u8d44\u6599"},"\u53c2\u8003\u8d44\u6599"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://zhuanlan.zhihu.com/p/535122950"},"\u5f20\u5f66\u98de-\u4e0a\u624b\u62a5\u544a\uff5c\u4eca\u5929\u804a\u804a\u817e\u8baf\u76ee\u524d\u5728\u7528\u7684\u5fae\u670d\u52a1\u67b6\u6784\uff01"))))}y.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/013f59b8.b5360e9d.js b/assets/js/013f59b8.38c4de4e.js similarity index 99% rename from assets/js/013f59b8.b5360e9d.js rename to assets/js/013f59b8.38c4de4e.js index 3985ed08d..fc43777bc 100644 --- a/assets/js/013f59b8.b5360e9d.js +++ b/assets/js/013f59b8.38c4de4e.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3325],{5680:(e,t,n)=>{n.d(t,{xA:()=>p,yg:()=>f});var r=n(6540);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function c(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var i=r.createContext({}),u=function(e){var t=r.useContext(i),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},p=function(e){var t=u(e.components);return r.createElement(i.Provider,{value:t},e.children)},d="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},y=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,c=e.originalType,i=e.parentName,p=a(e,["components","mdxType","originalType","parentName"]),d=u(n),y=o,f=d["".concat(i,".").concat(y)]||d[y]||s[y]||c;return n?r.createElement(f,l(l({ref:t},p),{},{components:n})):r.createElement(f,l({ref:t},p))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var c=n.length,l=new Array(c);l[0]=y;var a={};for(var i in t)hasOwnProperty.call(t,i)&&(a[i]=t[i]);a.originalType=e,a[d]="string"==typeof e?e:o,l[1]=a;for(var u=2;u{n.r(t),n.d(t,{assets:()=>i,contentTitle:()=>l,default:()=>s,frontMatter:()=>c,metadata:()=>a,toc:()=>u});var r=n(8168),o=(n(6540),n(5680));const c={sidebar_position:3},l="TCP \u8bbe\u5907\u63a5\u5165",a={unversionedId:"iotcloud/connect/tcp",id:"iotcloud/connect/tcp",title:"TCP \u8bbe\u5907\u63a5\u5165",description:"TCP \u63a5\u5165\u5e94\u8be5\u5c5e\u4e8e\u6700\u4e3a\u4f20\u7edf\u7684\u63a5\u5165\u65b9\u5f0f\uff0c\u534f\u8bae\u53ef\u4ee5\u91c7\u7528\u79c1\u6709\u534f\u8bae\u6216\u901a\u7528\u7684 Modbus \u7b49\u3002",source:"@site/docs/iotcloud/connect/tcp.md",sourceDirName:"iotcloud/connect",slug:"/iotcloud/connect/tcp",permalink:"/docs/iotcloud/connect/tcp",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",sidebarPosition:3,frontMatter:{sidebar_position:3},sidebar:"iotCloudSidebar",previous:{title:"MQTT \u8bbe\u5907\u63a5\u5165",permalink:"/docs/iotcloud/connect/mqtt"},next:{title:"HTTP \u8bbe\u5907\u63a5\u5165",permalink:"/docs/iotcloud/connect/http"}},i={},u=[{value:"TCP \u6ce8\u518c\u5305",id:"tcp-\u6ce8\u518c\u5305",level:4},{value:"ModbusRTU \u4e91\u7aef\u8f6e\u8be2\u6a21\u5f0f",id:"modbusrtu-\u4e91\u7aef\u8f6e\u8be2\u6a21\u5f0f",level:4},{value:"\u4e8c\u7ea7\u5236\u79c1\u6709\u534f\u8bae \u4e91\u7aef\u8f6e\u8be2\u6a21\u5f0f",id:"\u4e8c\u7ea7\u5236\u79c1\u6709\u534f\u8bae-\u4e91\u7aef\u8f6e\u8be2\u6a21\u5f0f",level:4},{value:"\u6587\u672c\u79c1\u6709\u534f\u8bae \u4e91\u7aef\u8f6e\u8be2\u6a21\u5f0f",id:"\u6587\u672c\u79c1\u6709\u534f\u8bae-\u4e91\u7aef\u8f6e\u8be2\u6a21\u5f0f",level:4}],p={toc:u},d="wrapper";function s(e){let{components:t,...n}=e;return(0,o.yg)(d,(0,r.A)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"tcp-\u8bbe\u5907\u63a5\u5165"},"TCP \u8bbe\u5907\u63a5\u5165"),(0,o.yg)("p",null,"TCP \u63a5\u5165\u5e94\u8be5\u5c5e\u4e8e\u6700\u4e3a\u4f20\u7edf\u7684\u63a5\u5165\u65b9\u5f0f\uff0c\u534f\u8bae\u53ef\u4ee5\u91c7\u7528\u79c1\u6709\u534f\u8bae\u6216\u901a\u7528\u7684 Modbus \u7b49\u3002"),(0,o.yg)("p",null,"\u672c\u5e73\u53f0\u5b9e\u73b0\u4e86 ModbusRTU \u534f\u8bae\uff0c\u4ee5\u53ca\u652f\u6301\u79c1\u6709\u534f\u8bae\u7684 TCP \u4e8c\u8fdb\u5236\u3001TCP \u6587\u672c\u534f\u8bae\u3002"),(0,o.yg)("p",null,(0,o.yg)("strong",{parentName:"p"},"\u7279\u522b\u8bf4\u660e"),"\uff0cTCP \u8bbe\u5907\u63a5\u5165\uff0c\u4e91\u7aef\u4f5c\u4e3a TCP \u7684\u670d\u52a1\u7aef\uff0c\u66b4\u6f0f\u7684 15000 \u7aef\u53e3\u53f7\uff0c\u8bbe\u5907\u7aef\u4f5c\u4e3a TCP \u7684\u5ba2\u6237\u7aef\u3002"),(0,o.yg)("p",null,"\u76ee\u524d\uff0c\u8be5\u5e73\u53f0\u5b9e\u73b0\u4ee5\u4e0b\u4e09\u79cd\u6a21\u5f0f\uff1a"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"ModbusRTU \u4e91\u7aef\u8f6e\u8be2\u6a21\u5f0f"),(0,o.yg)("li",{parentName:"ul"},"\u4e8c\u7ea7\u5236\u79c1\u6709\u534f\u8bae \u4e91\u7aef\u8f6e\u8be2\u6a21\u5f0f"),(0,o.yg)("li",{parentName:"ul"},"\u6587\u672c\u79c1\u6709\u534f\u8bae \u4e91\u7aef\u8f6e\u8be2\u6a21\u5f0f")),(0,o.yg)("h4",{id:"tcp-\u6ce8\u518c\u5305"},"TCP \u6ce8\u518c\u5305"),(0,o.yg)("p",null,"\u4e09\u79cd\u6a21\u5f0f\u7684\u8bbe\u5907\u7aef\u6ce8\u518c\u5230\u4e91\u7aef\u7684\u65b9\u5f0f\u662f\u4e00\u6837\u7684\u3002"),(0,o.yg)("p",null,"\u8bbe\u5907\u7aef\u53d1\u8d77\u5230\u4e91\u7aef\u7684 TCP \u7684\u8fde\u63a5\u6210\u529f\u540e\uff0c\u5e94\u8be5\u7acb\u5373\u53d1\u9001\u6ce8\u518c\u5305\uff0c\u6ce8\u518c\u5305\u7684\u683c\u5f0f\u4e3a ",(0,o.yg)("strong",{parentName:"p"},"${device.code}&${device.pwd}"),"\u3002"),(0,o.yg)("p",null,"\u4e91\u7aef\u9a8c\u8bc1\u6210\u529f\u540e\uff0c\u540e\u7eed\u8bbe\u5907\u7aef\u53d1\u9001\u7684\u6d88\u606f\u624d\u4f1a\u88ab\u6b63\u5e38\u7684\u89e3\u6790\uff0c\u5426\u5219\u4e91\u7aef\u4f1a\u79bb\u5f00\u65ad\u6389 TCP \u8fde\u63a5\u3002"),(0,o.yg)("h4",{id:"modbusrtu-\u4e91\u7aef\u8f6e\u8be2\u6a21\u5f0f"},"ModbusRTU \u4e91\u7aef\u8f6e\u8be2\u6a21\u5f0f"),(0,o.yg)("p",null,"\u9009\u62e9\u4e86\u6b64\u79cd\u534f\u8bae\u683c\u5f0f\u7684\u8bbe\u5907\uff0c\u5e94\u8be5\u914d\u7f6e ",(0,o.yg)("strong",{parentName:"p"},"Modbus \u914d\u7f6e")," \uff0c\u8ba9\u5c5e\u6027\u548c\u5bc4\u5b58\u5668\u5efa\u7acb\u5173\u7cfb\uff0c\u4ee5\u4fdd\u8bc1\u4e91\u7aef\u53ef\u4ee5\u6839\u636e\u5173\u7cfb\u53bb\u8f6e\u8be2\u8bbe\u5907\u7684\u6570\u636e\u3002"),(0,o.yg)("h4",{id:"\u4e8c\u7ea7\u5236\u79c1\u6709\u534f\u8bae-\u4e91\u7aef\u8f6e\u8be2\u6a21\u5f0f"},"\u4e8c\u7ea7\u5236\u79c1\u6709\u534f\u8bae \u4e91\u7aef\u8f6e\u8be2\u6a21\u5f0f"),(0,o.yg)("h4",{id:"\u6587\u672c\u79c1\u6709\u534f\u8bae-\u4e91\u7aef\u8f6e\u8be2\u6a21\u5f0f"},"\u6587\u672c\u79c1\u6709\u534f\u8bae \u4e91\u7aef\u8f6e\u8be2\u6a21\u5f0f"))}s.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3325],{5680:(e,t,n)=>{n.d(t,{xA:()=>p,yg:()=>f});var r=n(6540);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function c(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var i=r.createContext({}),u=function(e){var t=r.useContext(i),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},p=function(e){var t=u(e.components);return r.createElement(i.Provider,{value:t},e.children)},d="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},y=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,c=e.originalType,i=e.parentName,p=a(e,["components","mdxType","originalType","parentName"]),d=u(n),y=o,f=d["".concat(i,".").concat(y)]||d[y]||s[y]||c;return n?r.createElement(f,l(l({ref:t},p),{},{components:n})):r.createElement(f,l({ref:t},p))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var c=n.length,l=new Array(c);l[0]=y;var a={};for(var i in t)hasOwnProperty.call(t,i)&&(a[i]=t[i]);a.originalType=e,a[d]="string"==typeof e?e:o,l[1]=a;for(var u=2;u{n.r(t),n.d(t,{assets:()=>i,contentTitle:()=>l,default:()=>s,frontMatter:()=>c,metadata:()=>a,toc:()=>u});var r=n(8168),o=(n(6540),n(5680));const c={sidebar_position:3},l="TCP \u8bbe\u5907\u63a5\u5165",a={unversionedId:"iotcloud/connect/tcp",id:"iotcloud/connect/tcp",title:"TCP \u8bbe\u5907\u63a5\u5165",description:"TCP \u63a5\u5165\u5e94\u8be5\u5c5e\u4e8e\u6700\u4e3a\u4f20\u7edf\u7684\u63a5\u5165\u65b9\u5f0f\uff0c\u534f\u8bae\u53ef\u4ee5\u91c7\u7528\u79c1\u6709\u534f\u8bae\u6216\u901a\u7528\u7684 Modbus \u7b49\u3002",source:"@site/docs/iotcloud/connect/tcp.md",sourceDirName:"iotcloud/connect",slug:"/iotcloud/connect/tcp",permalink:"/docs/iotcloud/connect/tcp",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",sidebarPosition:3,frontMatter:{sidebar_position:3},sidebar:"iotCloudSidebar",previous:{title:"MQTT \u8bbe\u5907\u63a5\u5165",permalink:"/docs/iotcloud/connect/mqtt"},next:{title:"HTTP \u8bbe\u5907\u63a5\u5165",permalink:"/docs/iotcloud/connect/http"}},i={},u=[{value:"TCP \u6ce8\u518c\u5305",id:"tcp-\u6ce8\u518c\u5305",level:4},{value:"ModbusRTU \u4e91\u7aef\u8f6e\u8be2\u6a21\u5f0f",id:"modbusrtu-\u4e91\u7aef\u8f6e\u8be2\u6a21\u5f0f",level:4},{value:"\u4e8c\u7ea7\u5236\u79c1\u6709\u534f\u8bae \u4e91\u7aef\u8f6e\u8be2\u6a21\u5f0f",id:"\u4e8c\u7ea7\u5236\u79c1\u6709\u534f\u8bae-\u4e91\u7aef\u8f6e\u8be2\u6a21\u5f0f",level:4},{value:"\u6587\u672c\u79c1\u6709\u534f\u8bae \u4e91\u7aef\u8f6e\u8be2\u6a21\u5f0f",id:"\u6587\u672c\u79c1\u6709\u534f\u8bae-\u4e91\u7aef\u8f6e\u8be2\u6a21\u5f0f",level:4}],p={toc:u},d="wrapper";function s(e){let{components:t,...n}=e;return(0,o.yg)(d,(0,r.A)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"tcp-\u8bbe\u5907\u63a5\u5165"},"TCP \u8bbe\u5907\u63a5\u5165"),(0,o.yg)("p",null,"TCP \u63a5\u5165\u5e94\u8be5\u5c5e\u4e8e\u6700\u4e3a\u4f20\u7edf\u7684\u63a5\u5165\u65b9\u5f0f\uff0c\u534f\u8bae\u53ef\u4ee5\u91c7\u7528\u79c1\u6709\u534f\u8bae\u6216\u901a\u7528\u7684 Modbus \u7b49\u3002"),(0,o.yg)("p",null,"\u672c\u5e73\u53f0\u5b9e\u73b0\u4e86 ModbusRTU \u534f\u8bae\uff0c\u4ee5\u53ca\u652f\u6301\u79c1\u6709\u534f\u8bae\u7684 TCP \u4e8c\u8fdb\u5236\u3001TCP \u6587\u672c\u534f\u8bae\u3002"),(0,o.yg)("p",null,(0,o.yg)("strong",{parentName:"p"},"\u7279\u522b\u8bf4\u660e"),"\uff0cTCP \u8bbe\u5907\u63a5\u5165\uff0c\u4e91\u7aef\u4f5c\u4e3a TCP \u7684\u670d\u52a1\u7aef\uff0c\u66b4\u6f0f\u7684 15000 \u7aef\u53e3\u53f7\uff0c\u8bbe\u5907\u7aef\u4f5c\u4e3a TCP \u7684\u5ba2\u6237\u7aef\u3002"),(0,o.yg)("p",null,"\u76ee\u524d\uff0c\u8be5\u5e73\u53f0\u5b9e\u73b0\u4ee5\u4e0b\u4e09\u79cd\u6a21\u5f0f\uff1a"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"ModbusRTU \u4e91\u7aef\u8f6e\u8be2\u6a21\u5f0f"),(0,o.yg)("li",{parentName:"ul"},"\u4e8c\u7ea7\u5236\u79c1\u6709\u534f\u8bae \u4e91\u7aef\u8f6e\u8be2\u6a21\u5f0f"),(0,o.yg)("li",{parentName:"ul"},"\u6587\u672c\u79c1\u6709\u534f\u8bae \u4e91\u7aef\u8f6e\u8be2\u6a21\u5f0f")),(0,o.yg)("h4",{id:"tcp-\u6ce8\u518c\u5305"},"TCP \u6ce8\u518c\u5305"),(0,o.yg)("p",null,"\u4e09\u79cd\u6a21\u5f0f\u7684\u8bbe\u5907\u7aef\u6ce8\u518c\u5230\u4e91\u7aef\u7684\u65b9\u5f0f\u662f\u4e00\u6837\u7684\u3002"),(0,o.yg)("p",null,"\u8bbe\u5907\u7aef\u53d1\u8d77\u5230\u4e91\u7aef\u7684 TCP \u7684\u8fde\u63a5\u6210\u529f\u540e\uff0c\u5e94\u8be5\u7acb\u5373\u53d1\u9001\u6ce8\u518c\u5305\uff0c\u6ce8\u518c\u5305\u7684\u683c\u5f0f\u4e3a ",(0,o.yg)("strong",{parentName:"p"},"${device.code}&${device.pwd}"),"\u3002"),(0,o.yg)("p",null,"\u4e91\u7aef\u9a8c\u8bc1\u6210\u529f\u540e\uff0c\u540e\u7eed\u8bbe\u5907\u7aef\u53d1\u9001\u7684\u6d88\u606f\u624d\u4f1a\u88ab\u6b63\u5e38\u7684\u89e3\u6790\uff0c\u5426\u5219\u4e91\u7aef\u4f1a\u79bb\u5f00\u65ad\u6389 TCP \u8fde\u63a5\u3002"),(0,o.yg)("h4",{id:"modbusrtu-\u4e91\u7aef\u8f6e\u8be2\u6a21\u5f0f"},"ModbusRTU \u4e91\u7aef\u8f6e\u8be2\u6a21\u5f0f"),(0,o.yg)("p",null,"\u9009\u62e9\u4e86\u6b64\u79cd\u534f\u8bae\u683c\u5f0f\u7684\u8bbe\u5907\uff0c\u5e94\u8be5\u914d\u7f6e ",(0,o.yg)("strong",{parentName:"p"},"Modbus \u914d\u7f6e")," \uff0c\u8ba9\u5c5e\u6027\u548c\u5bc4\u5b58\u5668\u5efa\u7acb\u5173\u7cfb\uff0c\u4ee5\u4fdd\u8bc1\u4e91\u7aef\u53ef\u4ee5\u6839\u636e\u5173\u7cfb\u53bb\u8f6e\u8be2\u8bbe\u5907\u7684\u6570\u636e\u3002"),(0,o.yg)("h4",{id:"\u4e8c\u7ea7\u5236\u79c1\u6709\u534f\u8bae-\u4e91\u7aef\u8f6e\u8be2\u6a21\u5f0f"},"\u4e8c\u7ea7\u5236\u79c1\u6709\u534f\u8bae \u4e91\u7aef\u8f6e\u8be2\u6a21\u5f0f"),(0,o.yg)("h4",{id:"\u6587\u672c\u79c1\u6709\u534f\u8bae-\u4e91\u7aef\u8f6e\u8be2\u6a21\u5f0f"},"\u6587\u672c\u79c1\u6709\u534f\u8bae \u4e91\u7aef\u8f6e\u8be2\u6a21\u5f0f"))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/01c8f07b.5e522c62.js b/assets/js/01c8f07b.0fbdc828.js similarity index 98% rename from assets/js/01c8f07b.5e522c62.js rename to assets/js/01c8f07b.0fbdc828.js index 342e92b08..9471cc7a4 100644 --- a/assets/js/01c8f07b.5e522c62.js +++ b/assets/js/01c8f07b.0fbdc828.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1570],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>y});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function c(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),p=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(l.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,c=e.originalType,l=e.parentName,u=a(e,["components","mdxType","originalType","parentName"]),s=p(r),f=o,y=s["".concat(l,".").concat(f)]||s[f]||d[f]||c;return r?n.createElement(y,i(i({ref:t},u),{},{components:r})):n.createElement(y,i({ref:t},u))}));function y(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var c=r.length,i=new Array(c);i[0]=f;var a={};for(var l in t)hasOwnProperty.call(t,l)&&(a[l]=t[l]);a.originalType=e,a[s]="string"==typeof e?e:o,i[1]=a;for(var p=2;p{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>d,frontMatter:()=>c,metadata:()=>a,toc:()=>p});var n=r(8168),o=(r(6540),r(5680));const c={sidebar_position:1},i="\u6982\u8ff0",a={unversionedId:"iotcloud/connect/index",id:"iotcloud/connect/index",title:"\u6982\u8ff0",description:"\u8bbe\u5907\u63a5\u5165\u4e91\u5e73\u53f0\uff0c\u6700\u6838\u5fc3\u7684\u70b9\u662f\u63a5\u5165\u534f\u8bae\uff0c\u672c\u5e73\u53f0\u76ee\u524d\u652f\u6301\u6700\u6d41\u884c\u7684 MQTT\uff0c\u4f20\u7edf\u7684 TCP\uff0c\u4ee5\u53ca\u5904\u7406\u5f02\u6784\u7cfb\u7edf\u6216\u7b80\u5355\u4f7f\u7528\u7684 HTTP \u534f\u8bae\u3002",source:"@site/docs/iotcloud/connect/index.md",sourceDirName:"iotcloud/connect",slug:"/iotcloud/connect/",permalink:"/docs/iotcloud/connect/",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"iotCloudSidebar",previous:{title:"\u6982\u8ff0",permalink:"/docs/iotcloud/"},next:{title:"MQTT \u8bbe\u5907\u63a5\u5165",permalink:"/docs/iotcloud/connect/mqtt"}},l={},p=[],u={toc:p},s="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"\u6982\u8ff0"},"\u6982\u8ff0"),(0,o.yg)("p",null,"\u8bbe\u5907\u63a5\u5165\u4e91\u5e73\u53f0\uff0c\u6700\u6838\u5fc3\u7684\u70b9\u662f\u63a5\u5165\u534f\u8bae\uff0c\u672c\u5e73\u53f0\u76ee\u524d\u652f\u6301\u6700\u6d41\u884c\u7684 MQTT\uff0c\u4f20\u7edf\u7684 TCP\uff0c\u4ee5\u53ca\u5904\u7406\u5f02\u6784\u7cfb\u7edf\u6216\u7b80\u5355\u4f7f\u7528\u7684 HTTP \u534f\u8bae\u3002"))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1570],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>y});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function c(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),p=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(l.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,c=e.originalType,l=e.parentName,u=a(e,["components","mdxType","originalType","parentName"]),s=p(r),f=o,y=s["".concat(l,".").concat(f)]||s[f]||d[f]||c;return r?n.createElement(y,i(i({ref:t},u),{},{components:r})):n.createElement(y,i({ref:t},u))}));function y(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var c=r.length,i=new Array(c);i[0]=f;var a={};for(var l in t)hasOwnProperty.call(t,l)&&(a[l]=t[l]);a.originalType=e,a[s]="string"==typeof e?e:o,i[1]=a;for(var p=2;p{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>d,frontMatter:()=>c,metadata:()=>a,toc:()=>p});var n=r(8168),o=(r(6540),r(5680));const c={sidebar_position:1},i="\u6982\u8ff0",a={unversionedId:"iotcloud/connect/index",id:"iotcloud/connect/index",title:"\u6982\u8ff0",description:"\u8bbe\u5907\u63a5\u5165\u4e91\u5e73\u53f0\uff0c\u6700\u6838\u5fc3\u7684\u70b9\u662f\u63a5\u5165\u534f\u8bae\uff0c\u672c\u5e73\u53f0\u76ee\u524d\u652f\u6301\u6700\u6d41\u884c\u7684 MQTT\uff0c\u4f20\u7edf\u7684 TCP\uff0c\u4ee5\u53ca\u5904\u7406\u5f02\u6784\u7cfb\u7edf\u6216\u7b80\u5355\u4f7f\u7528\u7684 HTTP \u534f\u8bae\u3002",source:"@site/docs/iotcloud/connect/index.md",sourceDirName:"iotcloud/connect",slug:"/iotcloud/connect/",permalink:"/docs/iotcloud/connect/",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"iotCloudSidebar",previous:{title:"\u6982\u8ff0",permalink:"/docs/iotcloud/"},next:{title:"MQTT \u8bbe\u5907\u63a5\u5165",permalink:"/docs/iotcloud/connect/mqtt"}},l={},p=[],u={toc:p},s="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"\u6982\u8ff0"},"\u6982\u8ff0"),(0,o.yg)("p",null,"\u8bbe\u5907\u63a5\u5165\u4e91\u5e73\u53f0\uff0c\u6700\u6838\u5fc3\u7684\u70b9\u662f\u63a5\u5165\u534f\u8bae\uff0c\u672c\u5e73\u53f0\u76ee\u524d\u652f\u6301\u6700\u6d41\u884c\u7684 MQTT\uff0c\u4f20\u7edf\u7684 TCP\uff0c\u4ee5\u53ca\u5904\u7406\u5f02\u6784\u7cfb\u7edf\u6216\u7b80\u5355\u4f7f\u7528\u7684 HTTP \u534f\u8bae\u3002"))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/03101150.2394f2a1.js b/assets/js/03101150.22526e99.js similarity index 99% rename from assets/js/03101150.2394f2a1.js rename to assets/js/03101150.22526e99.js index 2cc596a88..a9d8b4fbc 100644 --- a/assets/js/03101150.2394f2a1.js +++ b/assets/js/03101150.22526e99.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3310],{5680:(e,t,r)=>{r.d(t,{xA:()=>s,yg:()=>m});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var p=n.createContext({}),i=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},s=function(e){var t=i(e.components);return n.createElement(p.Provider,{value:t},e.children)},u="mdxType",f={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,p=e.parentName,s=c(e,["components","mdxType","originalType","parentName"]),u=i(r),d=o,m=u["".concat(p,".").concat(d)]||u[d]||f[d]||a;return r?n.createElement(m,l(l({ref:t},s),{},{components:r})):n.createElement(m,l({ref:t},s))}));function m(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,l=new Array(a);l[0]=d;var c={};for(var p in t)hasOwnProperty.call(t,p)&&(c[p]=t[p]);c.originalType=e,c[u]="string"==typeof e?e:o,l[1]=c;for(var i=2;i{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>f,frontMatter:()=>a,metadata:()=>c,toc:()=>i});var n=r(8168),o=(r(6540),r(5680));const a={},l=void 0,c={unversionedId:"study/program/ETL/kettle",id:"study/program/ETL/kettle",title:"kettle",description:"ETL\uff08Extract-Transform-Load\u7684\u7f29\u5199\uff0c\u5373\u6570\u636e\u62bd\u53d6\u3001\u8f6c\u6362\u3001\u88c5\u8f7d\u7684\u8fc7\u7a0b\uff09\uff0c\u5bf9\u4e8e\u4f01\u4e1a\u6216\u884c\u4e1a\u5e94\u7528\u6765\u8bf4\uff0c\u6211\u4eec\u7ecf\u5e38\u4f1a\u9047\u5230\u5404\u79cd\u6570\u636e\u7684\u5904\u7406\uff0c\u8f6c\u6362\uff0c\u8fc1\u79fb\uff0c\u6240\u4ee5\u4e86\u89e3\u5e76\u638c\u63e1\u4e00\u79cdetl\u5de5\u5177\u7684\u4f7f\u7528\uff0c\u5fc5\u4e0d\u53ef\u5c11\u3002kettle\u662f\u7eafjava\u7f16\u5199\uff0c\u652f\u6301\u56fe\u5f62\u5316\u7684GUI\u8bbe\u8ba1\u754c\u9762\uff0c\u7136\u540e\u53ef\u4ee5\u4ee5\u5de5\u4f5c\u6d41\u7684\u5f62\u5f0f\u6d41\u8f6c\uff0c\u5728\u505a\u4e00\u4e9b\u7b80\u5355\u6216\u590d\u6742\u7684\u6570\u636e\u62bd\u53d6\u3001\u8d28\u91cf\u68c0\u6d4b\u3001\u6570\u636e\u6e05\u6d17\u3001\u6570\u636e\u8f6c\u6362\u3001\u6570\u636e\u8fc7\u6ee4\u7b49\u65b9\u9762\u6709\u7740\u6bd4\u8f83\u7a33\u5b9a\u7684\u8868\u73b0\uff0c\u5176\u4e2d\u6700\u4e3b\u8981\u7684\u6211\u4eec\u901a\u8fc7\u719f\u7ec3\u7684\u5e94\u7528\u5b83\uff0c\u51cf\u5c11\u4e86\u975e\u5e38\u591a\u7684\u7814\u53d1\u5de5\u4f5c\u91cf\uff0c\u63d0\u9ad8\u4e86\u6211\u4eec\u7684\u5de5\u4f5c\u6548\u7387\u3002",source:"@site/docs/study/program/ETL/kettle.md",sourceDirName:"study/program/ETL",slug:"/study/program/ETL/kettle",permalink:"/docs/study/program/ETL/kettle",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"flume",permalink:"/docs/study/program/ETL/flume"},next:{title:"sqoop",permalink:"/docs/study/program/ETL/sqoop"}},p={},i=[],s={toc:i},u="wrapper";function f(e){let{components:t,...r}=e;return(0,o.yg)(u,(0,n.A)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("p",null,"ETL\uff08Extract-Transform-Load\u7684\u7f29\u5199\uff0c\u5373\u6570\u636e\u62bd\u53d6\u3001\u8f6c\u6362\u3001\u88c5\u8f7d\u7684\u8fc7\u7a0b\uff09\uff0c\u5bf9\u4e8e\u4f01\u4e1a\u6216\u884c\u4e1a\u5e94\u7528\u6765\u8bf4\uff0c\u6211\u4eec\u7ecf\u5e38\u4f1a\u9047\u5230\u5404\u79cd\u6570\u636e\u7684\u5904\u7406\uff0c\u8f6c\u6362\uff0c\u8fc1\u79fb\uff0c\u6240\u4ee5\u4e86\u89e3\u5e76\u638c\u63e1\u4e00\u79cdetl\u5de5\u5177\u7684\u4f7f\u7528\uff0c\u5fc5\u4e0d\u53ef\u5c11\u3002kettle\u662f\u7eafjava\u7f16\u5199\uff0c\u652f\u6301\u56fe\u5f62\u5316\u7684GUI\u8bbe\u8ba1\u754c\u9762\uff0c\u7136\u540e\u53ef\u4ee5\u4ee5\u5de5\u4f5c\u6d41\u7684\u5f62\u5f0f\u6d41\u8f6c\uff0c\u5728\u505a\u4e00\u4e9b\u7b80\u5355\u6216\u590d\u6742\u7684\u6570\u636e\u62bd\u53d6\u3001\u8d28\u91cf\u68c0\u6d4b\u3001\u6570\u636e\u6e05\u6d17\u3001\u6570\u636e\u8f6c\u6362\u3001\u6570\u636e\u8fc7\u6ee4\u7b49\u65b9\u9762\u6709\u7740\u6bd4\u8f83\u7a33\u5b9a\u7684\u8868\u73b0\uff0c\u5176\u4e2d\u6700\u4e3b\u8981\u7684\u6211\u4eec\u901a\u8fc7\u719f\u7ec3\u7684\u5e94\u7528\u5b83\uff0c\u51cf\u5c11\u4e86\u975e\u5e38\u591a\u7684\u7814\u53d1\u5de5\u4f5c\u91cf\uff0c\u63d0\u9ad8\u4e86\u6211\u4eec\u7684\u5de5\u4f5c\u6548\u7387\u3002"),(0,o.yg)("p",null,(0,o.yg)("strong",{parentName:"p"},"Kettle\u6982\u5ff5")),(0,o.yg)("p",null,"Kettle\u662f\u4e00\u6b3e\u56fd\u5916\u5f00\u6e90\u7684ETL\u5de5\u5177\uff0c\u7eafjava\u7f16\u5199\uff0c\u53ef\u4ee5\u5728Window\u3001Linux\u3001Unix\u4e0a\u8fd0\u884c\uff0c\u7eff\u8272\u65e0\u9700\u5b89\u88c5\uff0c\u6570\u636e\u62bd\u53d6\u9ad8\u6548\u7a33\u5b9a\u3002\nKettle \u4e2d\u6587\u540d\u79f0\u53eb\u6c34\u58f6\uff0c\u8be5\u9879\u76ee\u7684\u4e3b\u7a0b\u5e8f\u5458MATT \u5e0c\u671b\u628a\u5404\u79cd\u6570\u636e\u653e\u5230\u4e00\u4e2a\u58f6\u91cc\uff0c\u7136\u540e\u4ee5\u4e00\u79cd\u6307\u5b9a\u7684\u683c\u5f0f\u6d41\u51fa\u3002\nKettle\u8fd9\u4e2aETL\u5de5\u5177\u96c6\uff0c\u5b83\u5141\u8bb8\u4f60\u7ba1\u7406\u6765\u81ea\u4e0d\u540c\u6570\u636e\u5e93\u7684\u6570\u636e\uff0c\u901a\u8fc7\u63d0\u4f9b\u4e00\u4e2a\u56fe\u5f62\u5316\u7684\u7528\u6237\u73af\u5883\u6765\u63cf\u8ff0\u4f60\u60f3\u505a\u4ec0\u4e48\uff0c\u800c\u4e0d\u662f\u4f60\u60f3\u600e\u4e48\u505a\u3002\nKettle\u4e2d\u6709\u4e24\u79cd\u811a\u672c\u6587\u4ef6\uff0ctransformation\u548cjob\uff0ctransformation\u5b8c\u6210\u9488\u5bf9\u6570\u636e\u7684\u57fa\u7840\u8f6c\u6362\uff0cjob\u5219\u5b8c\u6210\u6574\u4e2a\u5de5\u4f5c\u6d41\u7684\u63a7\u5236\u3002"))}f.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3310],{5680:(e,t,r)=>{r.d(t,{xA:()=>s,yg:()=>m});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var p=n.createContext({}),i=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},s=function(e){var t=i(e.components);return n.createElement(p.Provider,{value:t},e.children)},u="mdxType",f={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,p=e.parentName,s=c(e,["components","mdxType","originalType","parentName"]),u=i(r),d=o,m=u["".concat(p,".").concat(d)]||u[d]||f[d]||a;return r?n.createElement(m,l(l({ref:t},s),{},{components:r})):n.createElement(m,l({ref:t},s))}));function m(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,l=new Array(a);l[0]=d;var c={};for(var p in t)hasOwnProperty.call(t,p)&&(c[p]=t[p]);c.originalType=e,c[u]="string"==typeof e?e:o,l[1]=c;for(var i=2;i{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>f,frontMatter:()=>a,metadata:()=>c,toc:()=>i});var n=r(8168),o=(r(6540),r(5680));const a={},l=void 0,c={unversionedId:"study/program/ETL/kettle",id:"study/program/ETL/kettle",title:"kettle",description:"ETL\uff08Extract-Transform-Load\u7684\u7f29\u5199\uff0c\u5373\u6570\u636e\u62bd\u53d6\u3001\u8f6c\u6362\u3001\u88c5\u8f7d\u7684\u8fc7\u7a0b\uff09\uff0c\u5bf9\u4e8e\u4f01\u4e1a\u6216\u884c\u4e1a\u5e94\u7528\u6765\u8bf4\uff0c\u6211\u4eec\u7ecf\u5e38\u4f1a\u9047\u5230\u5404\u79cd\u6570\u636e\u7684\u5904\u7406\uff0c\u8f6c\u6362\uff0c\u8fc1\u79fb\uff0c\u6240\u4ee5\u4e86\u89e3\u5e76\u638c\u63e1\u4e00\u79cdetl\u5de5\u5177\u7684\u4f7f\u7528\uff0c\u5fc5\u4e0d\u53ef\u5c11\u3002kettle\u662f\u7eafjava\u7f16\u5199\uff0c\u652f\u6301\u56fe\u5f62\u5316\u7684GUI\u8bbe\u8ba1\u754c\u9762\uff0c\u7136\u540e\u53ef\u4ee5\u4ee5\u5de5\u4f5c\u6d41\u7684\u5f62\u5f0f\u6d41\u8f6c\uff0c\u5728\u505a\u4e00\u4e9b\u7b80\u5355\u6216\u590d\u6742\u7684\u6570\u636e\u62bd\u53d6\u3001\u8d28\u91cf\u68c0\u6d4b\u3001\u6570\u636e\u6e05\u6d17\u3001\u6570\u636e\u8f6c\u6362\u3001\u6570\u636e\u8fc7\u6ee4\u7b49\u65b9\u9762\u6709\u7740\u6bd4\u8f83\u7a33\u5b9a\u7684\u8868\u73b0\uff0c\u5176\u4e2d\u6700\u4e3b\u8981\u7684\u6211\u4eec\u901a\u8fc7\u719f\u7ec3\u7684\u5e94\u7528\u5b83\uff0c\u51cf\u5c11\u4e86\u975e\u5e38\u591a\u7684\u7814\u53d1\u5de5\u4f5c\u91cf\uff0c\u63d0\u9ad8\u4e86\u6211\u4eec\u7684\u5de5\u4f5c\u6548\u7387\u3002",source:"@site/docs/study/program/ETL/kettle.md",sourceDirName:"study/program/ETL",slug:"/study/program/ETL/kettle",permalink:"/docs/study/program/ETL/kettle",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"flume",permalink:"/docs/study/program/ETL/flume"},next:{title:"sqoop",permalink:"/docs/study/program/ETL/sqoop"}},p={},i=[],s={toc:i},u="wrapper";function f(e){let{components:t,...r}=e;return(0,o.yg)(u,(0,n.A)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("p",null,"ETL\uff08Extract-Transform-Load\u7684\u7f29\u5199\uff0c\u5373\u6570\u636e\u62bd\u53d6\u3001\u8f6c\u6362\u3001\u88c5\u8f7d\u7684\u8fc7\u7a0b\uff09\uff0c\u5bf9\u4e8e\u4f01\u4e1a\u6216\u884c\u4e1a\u5e94\u7528\u6765\u8bf4\uff0c\u6211\u4eec\u7ecf\u5e38\u4f1a\u9047\u5230\u5404\u79cd\u6570\u636e\u7684\u5904\u7406\uff0c\u8f6c\u6362\uff0c\u8fc1\u79fb\uff0c\u6240\u4ee5\u4e86\u89e3\u5e76\u638c\u63e1\u4e00\u79cdetl\u5de5\u5177\u7684\u4f7f\u7528\uff0c\u5fc5\u4e0d\u53ef\u5c11\u3002kettle\u662f\u7eafjava\u7f16\u5199\uff0c\u652f\u6301\u56fe\u5f62\u5316\u7684GUI\u8bbe\u8ba1\u754c\u9762\uff0c\u7136\u540e\u53ef\u4ee5\u4ee5\u5de5\u4f5c\u6d41\u7684\u5f62\u5f0f\u6d41\u8f6c\uff0c\u5728\u505a\u4e00\u4e9b\u7b80\u5355\u6216\u590d\u6742\u7684\u6570\u636e\u62bd\u53d6\u3001\u8d28\u91cf\u68c0\u6d4b\u3001\u6570\u636e\u6e05\u6d17\u3001\u6570\u636e\u8f6c\u6362\u3001\u6570\u636e\u8fc7\u6ee4\u7b49\u65b9\u9762\u6709\u7740\u6bd4\u8f83\u7a33\u5b9a\u7684\u8868\u73b0\uff0c\u5176\u4e2d\u6700\u4e3b\u8981\u7684\u6211\u4eec\u901a\u8fc7\u719f\u7ec3\u7684\u5e94\u7528\u5b83\uff0c\u51cf\u5c11\u4e86\u975e\u5e38\u591a\u7684\u7814\u53d1\u5de5\u4f5c\u91cf\uff0c\u63d0\u9ad8\u4e86\u6211\u4eec\u7684\u5de5\u4f5c\u6548\u7387\u3002"),(0,o.yg)("p",null,(0,o.yg)("strong",{parentName:"p"},"Kettle\u6982\u5ff5")),(0,o.yg)("p",null,"Kettle\u662f\u4e00\u6b3e\u56fd\u5916\u5f00\u6e90\u7684ETL\u5de5\u5177\uff0c\u7eafjava\u7f16\u5199\uff0c\u53ef\u4ee5\u5728Window\u3001Linux\u3001Unix\u4e0a\u8fd0\u884c\uff0c\u7eff\u8272\u65e0\u9700\u5b89\u88c5\uff0c\u6570\u636e\u62bd\u53d6\u9ad8\u6548\u7a33\u5b9a\u3002\nKettle \u4e2d\u6587\u540d\u79f0\u53eb\u6c34\u58f6\uff0c\u8be5\u9879\u76ee\u7684\u4e3b\u7a0b\u5e8f\u5458MATT \u5e0c\u671b\u628a\u5404\u79cd\u6570\u636e\u653e\u5230\u4e00\u4e2a\u58f6\u91cc\uff0c\u7136\u540e\u4ee5\u4e00\u79cd\u6307\u5b9a\u7684\u683c\u5f0f\u6d41\u51fa\u3002\nKettle\u8fd9\u4e2aETL\u5de5\u5177\u96c6\uff0c\u5b83\u5141\u8bb8\u4f60\u7ba1\u7406\u6765\u81ea\u4e0d\u540c\u6570\u636e\u5e93\u7684\u6570\u636e\uff0c\u901a\u8fc7\u63d0\u4f9b\u4e00\u4e2a\u56fe\u5f62\u5316\u7684\u7528\u6237\u73af\u5883\u6765\u63cf\u8ff0\u4f60\u60f3\u505a\u4ec0\u4e48\uff0c\u800c\u4e0d\u662f\u4f60\u60f3\u600e\u4e48\u505a\u3002\nKettle\u4e2d\u6709\u4e24\u79cd\u811a\u672c\u6587\u4ef6\uff0ctransformation\u548cjob\uff0ctransformation\u5b8c\u6210\u9488\u5bf9\u6570\u636e\u7684\u57fa\u7840\u8f6c\u6362\uff0cjob\u5219\u5b8c\u6210\u6574\u4e2a\u5de5\u4f5c\u6d41\u7684\u63a7\u5236\u3002"))}f.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/037fbca4.7eb42b39.js b/assets/js/037fbca4.ed8c965d.js similarity index 98% rename from assets/js/037fbca4.7eb42b39.js rename to assets/js/037fbca4.ed8c965d.js index 5bb6e8eae..ec9141afe 100644 --- a/assets/js/037fbca4.7eb42b39.js +++ b/assets/js/037fbca4.ed8c965d.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9229],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>d});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var c=n.createContext({}),i=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},p=function(e){var t=i(e.components);return n.createElement(c.Provider,{value:t},e.children)},s="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,c=e.parentName,p=u(e,["components","mdxType","originalType","parentName"]),s=i(r),f=o,d=s["".concat(c,".").concat(f)]||s[f]||m[f]||a;return r?n.createElement(d,l(l({ref:t},p),{},{components:r})):n.createElement(d,l({ref:t},p))}));function d(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,l=new Array(a);l[0]=f;var u={};for(var c in t)hasOwnProperty.call(t,c)&&(u[c]=t[c]);u.originalType=e,u[s]="string"==typeof e?e:o,l[1]=u;for(var i=2;i{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>m,frontMatter:()=>a,metadata:()=>u,toc:()=>i});var n=r(8168),o=(r(6540),r(5680));const a={},l=void 0,u={unversionedId:"study/program/ETL/flume",id:"study/program/ETL/flume",title:"flume",description:"Flume\u7684\u5b9a\u4e49",source:"@site/docs/study/program/ETL/flume.md",sourceDirName:"study/program/ETL",slug:"/study/program/ETL/flume",permalink:"/docs/study/program/ETL/flume",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"dataX",permalink:"/docs/study/program/ETL/dataX"},next:{title:"kettle",permalink:"/docs/study/program/ETL/kettle"}},c={},i=[{value:"Flume\u7684\u5b9a\u4e49",id:"flume\u7684\u5b9a\u4e49",level:3}],p={toc:i},s="wrapper";function m(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"flume\u7684\u5b9a\u4e49"},"Flume\u7684\u5b9a\u4e49"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"Flume\u662f\u4e00\u4e2a\u5206\u5e03\u5f0f\u7684\u3001\u9ad8\u53ef\u9760\u7684\u3001\u9ad8\u53ef\u7528\u7684\u5c06\u5927\u6279\u91cf\u7684\u4e0d\u540c\u6570\u636e\u6e90\u7684\u65e5\u5fd7\u6570\u636e\u6536\u96c6\u3001\u805a\u5408\u3001\u79fb\u52a8\u5230\u6570\u636e\u4e2d\u5fc3\uff08HDFS\uff09\u8fdb\u884c\u5b58\u50a8\u7684\u7cfb\u7edf\u3002\u5373\u662f\u65e5\u5fd7\u91c7\u96c6\u548c\u6c47\u603b\u7684\u5de5\u5177"),(0,o.yg)("li",{parentName:"ul"},"Logstash\u3001FileBeat\u662fES\u6808\u7684\u65e5\u5fd7\u6570\u636e\u62bd\u53d6\u5de5\u5177\uff0c\u4ed6\u4eec\u548cFlume\u5f88\u7c7b\u4f3c\uff0c\u524d\u8005\u662f\u8f7b\u91cf\u7ea7\u3001\u540e\u8005\u662f\u91cd\u91cf\u7ea7\uff0c\u82e5\u9879\u76ee\u7ec4\u4f7f\u7528\u7684\u662fES\u6808\u6280\u672f\uff0c\u90a3\u5b8c\u5168\u53ef\u4ee5\u4f7f\u7528Logstash\u53d6\u4ee3Flume\u3002")))}m.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9229],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>d});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var c=n.createContext({}),i=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},p=function(e){var t=i(e.components);return n.createElement(c.Provider,{value:t},e.children)},s="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,c=e.parentName,p=u(e,["components","mdxType","originalType","parentName"]),s=i(r),f=o,d=s["".concat(c,".").concat(f)]||s[f]||m[f]||a;return r?n.createElement(d,l(l({ref:t},p),{},{components:r})):n.createElement(d,l({ref:t},p))}));function d(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,l=new Array(a);l[0]=f;var u={};for(var c in t)hasOwnProperty.call(t,c)&&(u[c]=t[c]);u.originalType=e,u[s]="string"==typeof e?e:o,l[1]=u;for(var i=2;i{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>m,frontMatter:()=>a,metadata:()=>u,toc:()=>i});var n=r(8168),o=(r(6540),r(5680));const a={},l=void 0,u={unversionedId:"study/program/ETL/flume",id:"study/program/ETL/flume",title:"flume",description:"Flume\u7684\u5b9a\u4e49",source:"@site/docs/study/program/ETL/flume.md",sourceDirName:"study/program/ETL",slug:"/study/program/ETL/flume",permalink:"/docs/study/program/ETL/flume",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"dataX",permalink:"/docs/study/program/ETL/dataX"},next:{title:"kettle",permalink:"/docs/study/program/ETL/kettle"}},c={},i=[{value:"Flume\u7684\u5b9a\u4e49",id:"flume\u7684\u5b9a\u4e49",level:3}],p={toc:i},s="wrapper";function m(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"flume\u7684\u5b9a\u4e49"},"Flume\u7684\u5b9a\u4e49"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"Flume\u662f\u4e00\u4e2a\u5206\u5e03\u5f0f\u7684\u3001\u9ad8\u53ef\u9760\u7684\u3001\u9ad8\u53ef\u7528\u7684\u5c06\u5927\u6279\u91cf\u7684\u4e0d\u540c\u6570\u636e\u6e90\u7684\u65e5\u5fd7\u6570\u636e\u6536\u96c6\u3001\u805a\u5408\u3001\u79fb\u52a8\u5230\u6570\u636e\u4e2d\u5fc3\uff08HDFS\uff09\u8fdb\u884c\u5b58\u50a8\u7684\u7cfb\u7edf\u3002\u5373\u662f\u65e5\u5fd7\u91c7\u96c6\u548c\u6c47\u603b\u7684\u5de5\u5177"),(0,o.yg)("li",{parentName:"ul"},"Logstash\u3001FileBeat\u662fES\u6808\u7684\u65e5\u5fd7\u6570\u636e\u62bd\u53d6\u5de5\u5177\uff0c\u4ed6\u4eec\u548cFlume\u5f88\u7c7b\u4f3c\uff0c\u524d\u8005\u662f\u8f7b\u91cf\u7ea7\u3001\u540e\u8005\u662f\u91cd\u91cf\u7ea7\uff0c\u82e5\u9879\u76ee\u7ec4\u4f7f\u7528\u7684\u662fES\u6808\u6280\u672f\uff0c\u90a3\u5b8c\u5168\u53ef\u4ee5\u4f7f\u7528Logstash\u53d6\u4ee3Flume\u3002")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/03cd0d32.cb02a844.js b/assets/js/03cd0d32.e6369b1c.js similarity index 97% rename from assets/js/03cd0d32.cb02a844.js rename to assets/js/03cd0d32.e6369b1c.js index b23ae085c..cd2d06970 100644 --- a/assets/js/03cd0d32.cb02a844.js +++ b/assets/js/03cd0d32.e6369b1c.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7486],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>f});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var c=n.createContext({}),p=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(c.Provider,{value:t},e.children)},d="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),d=p(r),y=a,f=d["".concat(c,".").concat(y)]||d[y]||s[y]||o;return r?n.createElement(f,l(l({ref:t},u),{},{components:r})):n.createElement(f,l({ref:t},u))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,l=new Array(o);l[0]=y;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[d]="string"==typeof e?e:a,l[1]=i;for(var p=2;p{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>s,frontMatter:()=>o,metadata:()=>i,toc:()=>p});var n=r(8168),a=(r(6540),r(5680));const o={},l=void 0,i={unversionedId:"study/db/\u65f6\u5e8f\u6570\u636e\u5e93/Apache IoTDB",id:"study/db/\u65f6\u5e8f\u6570\u636e\u5e93/Apache IoTDB",title:"Apache IoTDB",description:"\u5b98\u65b9\u6587\u6863",source:"@site/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/Apache IoTDB.md",sourceDirName:"study/db/\u65f6\u5e8f\u6570\u636e\u5e93",slug:"/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/Apache IoTDB",permalink:"/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/Apache IoTDB",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"TDengine",permalink:"/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/TDengine"},next:{title:"Druid",permalink:"/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/Druid"}},c={},p=[{value:"\u5b98\u65b9\u6587\u6863",id:"\u5b98\u65b9\u6587\u6863",level:3},{value:"\u57fa\u672c\u4fe1\u606f",id:"\u57fa\u672c\u4fe1\u606f",level:3},{value:"\u5b9e\u9645\u4f7f\u7528",id:"\u5b9e\u9645\u4f7f\u7528",level:3},{value:"\u6e90\u7801\u7f16\u8bd1",id:"\u6e90\u7801\u7f16\u8bd1",level:3}],u={toc:p},d="wrapper";function s(e){let{components:t,...r}=e;return(0,a.yg)(d,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"\u5b98\u65b9\u6587\u6863"},"\u5b98\u65b9\u6587\u6863"),(0,a.yg)("p",null,(0,a.yg)("a",{parentName:"p",href:"https://iotdb.apache.org/zh/"},"\u5b98\u7f51")),(0,a.yg)("h3",{id:"\u57fa\u672c\u4fe1\u606f"},"\u57fa\u672c\u4fe1\u606f"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},"\u7f16\u7a0b\u8bed\u8a00\uff1aJava"),(0,a.yg)("li",{parentName:"ol"},"\u5f00\u6e90\u5730\u5740\uff1a",(0,a.yg)("a",{parentName:"li",href:"https://github.com/apache/iotdb"},"https://github.com/apache/iotdb")),(0,a.yg)("li",{parentName:"ol"},"\u96c6\u7fa4\u6a21\u5f0f\uff1a\u652f\u6301"),(0,a.yg)("li",{parentName:"ol"},"\u5f00\u53d1\u4eba\u5458\uff1a\u6700\u65e9\u59cb\u4e8e\u6e05\u534e\u5927\u5b66\u8f6f\u4ef6\u5b66\u9662\uff0c\u540e\u8d21\u732e\u7ed9\u4e86apache"),(0,a.yg)("li",{parentName:"ol"},"\u5b9a\u4f4d\uff1aIoTDB \u662f\u9488\u5bf9\u65f6\u95f4\u5e8f\u5217\u6570\u636e\u6536\u96c6\u3001\u5b58\u50a8\u4e0e\u5206\u6790\u4e00\u4f53\u5316\u7684\u6570\u636e\u7ba1\u7406\u5f15\u64ce\u3002"),(0,a.yg)("li",{parentName:"ol"},"\u76ee\u6807\u9700\u6c42\uff1a\u9ad8\u901f\u5199\u5165\u3001\u590d\u6742\u5206\u6790\u67e5\u8be2")),(0,a.yg)("h3",{id:"\u5b9e\u9645\u4f7f\u7528"},"\u5b9e\u9645\u4f7f\u7528"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},"\u636e\u5b98\u7f51\u8bf4\u660e\uff0cIoTDB\u662f\u4e13\u95e8\u4e3a\u201c\u7269\u8054\u7f51\uff08IoT\uff09\u6216\u8005\u5de5\u4e1a\u7269\u8054\u7f51\uff08Industrial IoT\uff0c\u7f29\u5199 IIoT\uff09\u573a\u666f\u5f00\u53d1\u201d")),(0,a.yg)("h3",{id:"\u6e90\u7801\u7f16\u8bd1"},"\u6e90\u7801\u7f16\u8bd1"))}s.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7486],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>f});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var c=n.createContext({}),p=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(c.Provider,{value:t},e.children)},d="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),d=p(r),y=a,f=d["".concat(c,".").concat(y)]||d[y]||s[y]||o;return r?n.createElement(f,l(l({ref:t},u),{},{components:r})):n.createElement(f,l({ref:t},u))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,l=new Array(o);l[0]=y;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[d]="string"==typeof e?e:a,l[1]=i;for(var p=2;p{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>s,frontMatter:()=>o,metadata:()=>i,toc:()=>p});var n=r(8168),a=(r(6540),r(5680));const o={},l=void 0,i={unversionedId:"study/db/\u65f6\u5e8f\u6570\u636e\u5e93/Apache IoTDB",id:"study/db/\u65f6\u5e8f\u6570\u636e\u5e93/Apache IoTDB",title:"Apache IoTDB",description:"\u5b98\u65b9\u6587\u6863",source:"@site/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/Apache IoTDB.md",sourceDirName:"study/db/\u65f6\u5e8f\u6570\u636e\u5e93",slug:"/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/Apache IoTDB",permalink:"/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/Apache IoTDB",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"TDengine",permalink:"/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/TDengine"},next:{title:"Druid",permalink:"/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/Druid"}},c={},p=[{value:"\u5b98\u65b9\u6587\u6863",id:"\u5b98\u65b9\u6587\u6863",level:3},{value:"\u57fa\u672c\u4fe1\u606f",id:"\u57fa\u672c\u4fe1\u606f",level:3},{value:"\u5b9e\u9645\u4f7f\u7528",id:"\u5b9e\u9645\u4f7f\u7528",level:3},{value:"\u6e90\u7801\u7f16\u8bd1",id:"\u6e90\u7801\u7f16\u8bd1",level:3}],u={toc:p},d="wrapper";function s(e){let{components:t,...r}=e;return(0,a.yg)(d,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"\u5b98\u65b9\u6587\u6863"},"\u5b98\u65b9\u6587\u6863"),(0,a.yg)("p",null,(0,a.yg)("a",{parentName:"p",href:"https://iotdb.apache.org/zh/"},"\u5b98\u7f51")),(0,a.yg)("h3",{id:"\u57fa\u672c\u4fe1\u606f"},"\u57fa\u672c\u4fe1\u606f"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},"\u7f16\u7a0b\u8bed\u8a00\uff1aJava"),(0,a.yg)("li",{parentName:"ol"},"\u5f00\u6e90\u5730\u5740\uff1a",(0,a.yg)("a",{parentName:"li",href:"https://github.com/apache/iotdb"},"https://github.com/apache/iotdb")),(0,a.yg)("li",{parentName:"ol"},"\u96c6\u7fa4\u6a21\u5f0f\uff1a\u652f\u6301"),(0,a.yg)("li",{parentName:"ol"},"\u5f00\u53d1\u4eba\u5458\uff1a\u6700\u65e9\u59cb\u4e8e\u6e05\u534e\u5927\u5b66\u8f6f\u4ef6\u5b66\u9662\uff0c\u540e\u8d21\u732e\u7ed9\u4e86apache"),(0,a.yg)("li",{parentName:"ol"},"\u5b9a\u4f4d\uff1aIoTDB \u662f\u9488\u5bf9\u65f6\u95f4\u5e8f\u5217\u6570\u636e\u6536\u96c6\u3001\u5b58\u50a8\u4e0e\u5206\u6790\u4e00\u4f53\u5316\u7684\u6570\u636e\u7ba1\u7406\u5f15\u64ce\u3002"),(0,a.yg)("li",{parentName:"ol"},"\u76ee\u6807\u9700\u6c42\uff1a\u9ad8\u901f\u5199\u5165\u3001\u590d\u6742\u5206\u6790\u67e5\u8be2")),(0,a.yg)("h3",{id:"\u5b9e\u9645\u4f7f\u7528"},"\u5b9e\u9645\u4f7f\u7528"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},"\u636e\u5b98\u7f51\u8bf4\u660e\uff0cIoTDB\u662f\u4e13\u95e8\u4e3a\u201c\u7269\u8054\u7f51\uff08IoT\uff09\u6216\u8005\u5de5\u4e1a\u7269\u8054\u7f51\uff08Industrial IoT\uff0c\u7f29\u5199 IIoT\uff09\u573a\u666f\u5f00\u53d1\u201d")),(0,a.yg)("h3",{id:"\u6e90\u7801\u7f16\u8bd1"},"\u6e90\u7801\u7f16\u8bd1"))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/04cddcee.1c21e147.js b/assets/js/04cddcee.afb9cd8b.js similarity index 99% rename from assets/js/04cddcee.1c21e147.js rename to assets/js/04cddcee.afb9cd8b.js index ba036a8fa..c07d9ab4f 100644 --- a/assets/js/04cddcee.1c21e147.js +++ b/assets/js/04cddcee.afb9cd8b.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4003],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>d});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var p=n.createContext({}),c=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},u=function(e){var t=c(e.components);return n.createElement(p.Provider,{value:t},e.children)},s="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,l=e.originalType,p=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),s=c(r),m=a,d=s["".concat(p,".").concat(m)]||s[m]||y[m]||l;return r?n.createElement(d,o(o({ref:t},u),{},{components:r})):n.createElement(d,o({ref:t},u))}));function d(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=r.length,o=new Array(l);o[0]=m;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[s]="string"==typeof e?e:a,o[1]=i;for(var c=2;c{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>y,frontMatter:()=>l,metadata:()=>i,toc:()=>c});var n=r(8168),a=(r(6540),r(5680));const l={},o=void 0,i={unversionedId:"study/program/C/C\u8bed\u8a00\u6807\u51c6\u5e93",id:"study/program/C/C\u8bed\u8a00\u6807\u51c6\u5e93",title:"C\u8bed\u8a00\u6807\u51c6\u5e93",description:"C \u8bed\u8a00\u6807\u51c6\u5e93",source:"@site/docs/study/program/C/C\u8bed\u8a00\u6807\u51c6\u5e93.md",sourceDirName:"study/program/C",slug:"/study/program/C/C\u8bed\u8a00\u6807\u51c6\u5e93",permalink:"/docs/study/program/C/C\u8bed\u8a00\u6807\u51c6\u5e93",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"C C++ \u7f16\u7a0b\u8bed\u8a00",permalink:"/docs/study/program/C/"},next:{title:"MFC-WinForm-WPF-DotNet\u7b49",permalink:"/docs/study/program/C/MFC-WinForm-WPF-DotNet\u7b49"}},p={},c=[{value:"C \u8bed\u8a00\u6807\u51c6\u5e93",id:"c-\u8bed\u8a00\u6807\u51c6\u5e93",level:3},{value:"C \u8bed\u8a00\u6709\u591a\u5c11\u4e2a\u6807\u51c6\u5934\u6587\u4ef6\u5462\u5462\uff1f",id:"c-\u8bed\u8a00\u6709\u591a\u5c11\u4e2a\u6807\u51c6\u5934\u6587\u4ef6\u5462\u5462",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],u={toc:c},s="wrapper";function y(e){let{components:t,...r}=e;return(0,a.yg)(s,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"c-\u8bed\u8a00\u6807\u51c6\u5e93"},"C \u8bed\u8a00\u6807\u51c6\u5e93"),(0,a.yg)("p",null,"C \u8bed\u8a00\u6807\u51c6\u5e93\u662f\u4e00\u7ec4\u9884\u5b9a\u4e49\u51fd\u6570\u3001\u5b8f\u548c\u6587\u4ef6\u7684\u96c6\u5408\uff0c\u8fd9\u4e9b\u51fd\u6570\u548c\u6587\u4ef6\u63d0\u4f9b\u4e86\u4e00\u4e9b\u57fa\u672c\u7684\u529f\u80fd\u548c\u64cd\u4f5c\uff0c\u53ef\u4f9b C \u8bed\u8a00\u7a0b\u5e8f\u4f7f\u7528\u3002C \u8bed\u8a00\u6807\u51c6\u5e93\u7531 C \u8bed\u8a00\u7684\u5236\u5b9a\u8005\u5b9a\u4e49\uff0c\u5e76\u5305\u542b\u5728 C \u8bed\u8a00\u7684\u7f16\u8bd1\u5668\u4e2d\u3002"),(0,a.yg)("p",null,"C \u8bed\u8a00\u6ca1\u6709\u5b98\u65b9\u7f51\u7ad9\uff0cISO \u7684\u5b98\u65b9\u7f51\u7ad9\u548c ANSI \u7684\u7f51\u7ad9\uff0c\u63d0\u4f9b\u4e86 C \u8bed\u8a00\u6807\u51c6\u7684\u76f8\u5173\u4fe1\u606f\u3002"),(0,a.yg)("p",null,"\u4e0d\u540c\u7f16\u8bd1\u5668\u5bf9 C \u8bed\u8a00\u6807\u51c6\u7684\u652f\u6301\u7a0b\u5ea6\u662f\u4e0d\u540c\uff0c\u5728\u8fdb\u884c\u5f00\u53d1\u7684\u65f6\u5019\uff0c\u4e0d\u4ec5\u8981\u9009\u62e9\u9002\u5f53\u7684\u7f16\u8bd1\u5668\uff0c\u53ef\u80fd\u8fd8\u9700\u8981\u624b\u52a8\u6307\u5b9a C \u8bed\u8a00\u6807\u51c6\u3002"),(0,a.yg)("h3",{id:"c-\u8bed\u8a00\u6709\u591a\u5c11\u4e2a\u6807\u51c6\u5934\u6587\u4ef6\u5462\u5462"},"C \u8bed\u8a00\u6709\u591a\u5c11\u4e2a\u6807\u51c6\u5934\u6587\u4ef6\u5462\u5462\uff1f"),(0,a.yg)("p",null,"\u4e0d\u786e\u5b9a\uff1a\u8fd9\u548c\u7f16\u8bd1\u5668\u3001\u7f16\u8bd1\u5668\u7684\u7248\u672c\u548c\u914d\u7f6e\u6709\u5173\u3002"),(0,a.yg)("p",null,"\u5e38\u7528\u7684 C \u8bed\u8a00\u6807\u51c6\u5e93\u6709\uff1a"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"stdio.h\uff1a\u63d0\u4f9b\u8f93\u5165\u8f93\u51fa\u51fd\u6570\uff0c\u5982 printf()\u548c scanf()\u7b49\u3002"),(0,a.yg)("li",{parentName:"ul"},"stdlib.h\uff1a\u63d0\u4f9b\u901a\u7528\u5de5\u5177\u51fd\u6570\uff0c\u5982 malloc()\u548c free()\u7b49\u3002"),(0,a.yg)("li",{parentName:"ul"},"string.h\uff1a\u63d0\u4f9b\u5b57\u7b26\u4e32\u5904\u7406\u51fd\u6570\uff0c\u5982 strcpy()\u548c strcat()\u7b49\u3002"),(0,a.yg)("li",{parentName:"ul"},"math.h\uff1a\u63d0\u4f9b\u6570\u5b66\u51fd\u6570\uff0c\u5982 sin()\u548c cos()\u7b49\u3002"),(0,a.yg)("li",{parentName:"ul"},"time.h\uff1a\u63d0\u4f9b\u65f6\u95f4\u5904\u7406\u51fd\u6570\uff0c\u5982 time()\u548c clock()\u7b49\u3002"),(0,a.yg)("li",{parentName:"ul"},"ctype.h\uff1a\u63d0\u4f9b\u5b57\u7b26\u5904\u7406\u51fd\u6570\uff0c\u5982 isalpha()\u548c isdigit()\u7b49\u3002"),(0,a.yg)("li",{parentName:"ul"},"assert.h\uff1a\u63d0\u4f9b\u65ad\u8a00\u5b8f\uff0c\u7528\u4e8e\u8c03\u8bd5\u7a0b\u5e8f\u3002"),(0,a.yg)("li",{parentName:"ul"},"stdarg.h\uff1a\u63d0\u4f9b\u53ef\u53d8\u53c2\u6570\u5217\u8868\u7684\u51fd\u6570\uff0c\u5982 printf()\u548c scanf()\u7b49\u3002"),(0,a.yg)("li",{parentName:"ul"},"errno.h\uff1a\u63d0\u4f9b\u9519\u8bef\u7801\u5b8f\uff0c\u7528\u4e8e\u6807\u8bc6\u9519\u8bef\u7c7b\u578b\u3002"),(0,a.yg)("li",{parentName:"ul"},"setjmp.h\uff1a\u63d0\u4f9b\u975e\u5c40\u90e8\u8df3\u8f6c\u51fd\u6570\uff0c\u5982 setjmp()\u548c longjmp()\u7b49\u3002"),(0,a.yg)("li",{parentName:"ul"},"signal.h\uff1a\u63d0\u4f9b\u4fe1\u53f7\u5904\u7406\u51fd\u6570\uff0c\u5982 signal()\u548c raise()\u7b49\u3002"),(0,a.yg)("li",{parentName:"ul"},"locale.h\uff1a\u63d0\u4f9b\u672c\u5730\u5316\u5904\u7406\u51fd\u6570\uff0c\u5982 setlocale()\u548c localeconv()\u7b49\u3002"),(0,a.yg)("li",{parentName:"ul"},"float.h\uff1a\u63d0\u4f9b\u6d6e\u70b9\u6570\u5904\u7406\u5b8f\uff0c\u5982 FLT_DIG \u548c DBL_MAX \u7b49\u3002"),(0,a.yg)("li",{parentName:"ul"},"limits.h\uff1a\u63d0\u4f9b\u6574\u6570\u5904\u7406\u5b8f\uff0c\u5982 INT_MAX \u548c LONG_MAX \u7b49\u3002"),(0,a.yg)("li",{parentName:"ul"},"stddef.h\uff1a\u63d0\u4f9b\u57fa\u672c\u7c7b\u578b\u5b9a\u4e49\uff0c\u5982 size_t \u548c ptrdiff_t \u7b49\u3002")),(0,a.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://blog.csdn.net/weixin_43764974/article/details/130892554"},"CSDN-C \u8bed\u8a00\u6807\u51c6\u5e93\u3001Windows \u4e0e Linux \u5e73\u53f0\u4e0b\u5e38\u7528\u7684 C \u8bed\u8a00\u6807\u51c6\u5e93"))))}y.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4003],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>d});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var p=n.createContext({}),c=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},u=function(e){var t=c(e.components);return n.createElement(p.Provider,{value:t},e.children)},s="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,l=e.originalType,p=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),s=c(r),m=a,d=s["".concat(p,".").concat(m)]||s[m]||y[m]||l;return r?n.createElement(d,o(o({ref:t},u),{},{components:r})):n.createElement(d,o({ref:t},u))}));function d(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=r.length,o=new Array(l);o[0]=m;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[s]="string"==typeof e?e:a,o[1]=i;for(var c=2;c{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>y,frontMatter:()=>l,metadata:()=>i,toc:()=>c});var n=r(8168),a=(r(6540),r(5680));const l={},o=void 0,i={unversionedId:"study/program/C/C\u8bed\u8a00\u6807\u51c6\u5e93",id:"study/program/C/C\u8bed\u8a00\u6807\u51c6\u5e93",title:"C\u8bed\u8a00\u6807\u51c6\u5e93",description:"C \u8bed\u8a00\u6807\u51c6\u5e93",source:"@site/docs/study/program/C/C\u8bed\u8a00\u6807\u51c6\u5e93.md",sourceDirName:"study/program/C",slug:"/study/program/C/C\u8bed\u8a00\u6807\u51c6\u5e93",permalink:"/docs/study/program/C/C\u8bed\u8a00\u6807\u51c6\u5e93",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"C C++ \u7f16\u7a0b\u8bed\u8a00",permalink:"/docs/study/program/C/"},next:{title:"MFC-WinForm-WPF-DotNet\u7b49",permalink:"/docs/study/program/C/MFC-WinForm-WPF-DotNet\u7b49"}},p={},c=[{value:"C \u8bed\u8a00\u6807\u51c6\u5e93",id:"c-\u8bed\u8a00\u6807\u51c6\u5e93",level:3},{value:"C \u8bed\u8a00\u6709\u591a\u5c11\u4e2a\u6807\u51c6\u5934\u6587\u4ef6\u5462\u5462\uff1f",id:"c-\u8bed\u8a00\u6709\u591a\u5c11\u4e2a\u6807\u51c6\u5934\u6587\u4ef6\u5462\u5462",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],u={toc:c},s="wrapper";function y(e){let{components:t,...r}=e;return(0,a.yg)(s,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"c-\u8bed\u8a00\u6807\u51c6\u5e93"},"C \u8bed\u8a00\u6807\u51c6\u5e93"),(0,a.yg)("p",null,"C \u8bed\u8a00\u6807\u51c6\u5e93\u662f\u4e00\u7ec4\u9884\u5b9a\u4e49\u51fd\u6570\u3001\u5b8f\u548c\u6587\u4ef6\u7684\u96c6\u5408\uff0c\u8fd9\u4e9b\u51fd\u6570\u548c\u6587\u4ef6\u63d0\u4f9b\u4e86\u4e00\u4e9b\u57fa\u672c\u7684\u529f\u80fd\u548c\u64cd\u4f5c\uff0c\u53ef\u4f9b C \u8bed\u8a00\u7a0b\u5e8f\u4f7f\u7528\u3002C \u8bed\u8a00\u6807\u51c6\u5e93\u7531 C \u8bed\u8a00\u7684\u5236\u5b9a\u8005\u5b9a\u4e49\uff0c\u5e76\u5305\u542b\u5728 C \u8bed\u8a00\u7684\u7f16\u8bd1\u5668\u4e2d\u3002"),(0,a.yg)("p",null,"C \u8bed\u8a00\u6ca1\u6709\u5b98\u65b9\u7f51\u7ad9\uff0cISO \u7684\u5b98\u65b9\u7f51\u7ad9\u548c ANSI \u7684\u7f51\u7ad9\uff0c\u63d0\u4f9b\u4e86 C \u8bed\u8a00\u6807\u51c6\u7684\u76f8\u5173\u4fe1\u606f\u3002"),(0,a.yg)("p",null,"\u4e0d\u540c\u7f16\u8bd1\u5668\u5bf9 C \u8bed\u8a00\u6807\u51c6\u7684\u652f\u6301\u7a0b\u5ea6\u662f\u4e0d\u540c\uff0c\u5728\u8fdb\u884c\u5f00\u53d1\u7684\u65f6\u5019\uff0c\u4e0d\u4ec5\u8981\u9009\u62e9\u9002\u5f53\u7684\u7f16\u8bd1\u5668\uff0c\u53ef\u80fd\u8fd8\u9700\u8981\u624b\u52a8\u6307\u5b9a C \u8bed\u8a00\u6807\u51c6\u3002"),(0,a.yg)("h3",{id:"c-\u8bed\u8a00\u6709\u591a\u5c11\u4e2a\u6807\u51c6\u5934\u6587\u4ef6\u5462\u5462"},"C \u8bed\u8a00\u6709\u591a\u5c11\u4e2a\u6807\u51c6\u5934\u6587\u4ef6\u5462\u5462\uff1f"),(0,a.yg)("p",null,"\u4e0d\u786e\u5b9a\uff1a\u8fd9\u548c\u7f16\u8bd1\u5668\u3001\u7f16\u8bd1\u5668\u7684\u7248\u672c\u548c\u914d\u7f6e\u6709\u5173\u3002"),(0,a.yg)("p",null,"\u5e38\u7528\u7684 C \u8bed\u8a00\u6807\u51c6\u5e93\u6709\uff1a"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"stdio.h\uff1a\u63d0\u4f9b\u8f93\u5165\u8f93\u51fa\u51fd\u6570\uff0c\u5982 printf()\u548c scanf()\u7b49\u3002"),(0,a.yg)("li",{parentName:"ul"},"stdlib.h\uff1a\u63d0\u4f9b\u901a\u7528\u5de5\u5177\u51fd\u6570\uff0c\u5982 malloc()\u548c free()\u7b49\u3002"),(0,a.yg)("li",{parentName:"ul"},"string.h\uff1a\u63d0\u4f9b\u5b57\u7b26\u4e32\u5904\u7406\u51fd\u6570\uff0c\u5982 strcpy()\u548c strcat()\u7b49\u3002"),(0,a.yg)("li",{parentName:"ul"},"math.h\uff1a\u63d0\u4f9b\u6570\u5b66\u51fd\u6570\uff0c\u5982 sin()\u548c cos()\u7b49\u3002"),(0,a.yg)("li",{parentName:"ul"},"time.h\uff1a\u63d0\u4f9b\u65f6\u95f4\u5904\u7406\u51fd\u6570\uff0c\u5982 time()\u548c clock()\u7b49\u3002"),(0,a.yg)("li",{parentName:"ul"},"ctype.h\uff1a\u63d0\u4f9b\u5b57\u7b26\u5904\u7406\u51fd\u6570\uff0c\u5982 isalpha()\u548c isdigit()\u7b49\u3002"),(0,a.yg)("li",{parentName:"ul"},"assert.h\uff1a\u63d0\u4f9b\u65ad\u8a00\u5b8f\uff0c\u7528\u4e8e\u8c03\u8bd5\u7a0b\u5e8f\u3002"),(0,a.yg)("li",{parentName:"ul"},"stdarg.h\uff1a\u63d0\u4f9b\u53ef\u53d8\u53c2\u6570\u5217\u8868\u7684\u51fd\u6570\uff0c\u5982 printf()\u548c scanf()\u7b49\u3002"),(0,a.yg)("li",{parentName:"ul"},"errno.h\uff1a\u63d0\u4f9b\u9519\u8bef\u7801\u5b8f\uff0c\u7528\u4e8e\u6807\u8bc6\u9519\u8bef\u7c7b\u578b\u3002"),(0,a.yg)("li",{parentName:"ul"},"setjmp.h\uff1a\u63d0\u4f9b\u975e\u5c40\u90e8\u8df3\u8f6c\u51fd\u6570\uff0c\u5982 setjmp()\u548c longjmp()\u7b49\u3002"),(0,a.yg)("li",{parentName:"ul"},"signal.h\uff1a\u63d0\u4f9b\u4fe1\u53f7\u5904\u7406\u51fd\u6570\uff0c\u5982 signal()\u548c raise()\u7b49\u3002"),(0,a.yg)("li",{parentName:"ul"},"locale.h\uff1a\u63d0\u4f9b\u672c\u5730\u5316\u5904\u7406\u51fd\u6570\uff0c\u5982 setlocale()\u548c localeconv()\u7b49\u3002"),(0,a.yg)("li",{parentName:"ul"},"float.h\uff1a\u63d0\u4f9b\u6d6e\u70b9\u6570\u5904\u7406\u5b8f\uff0c\u5982 FLT_DIG \u548c DBL_MAX \u7b49\u3002"),(0,a.yg)("li",{parentName:"ul"},"limits.h\uff1a\u63d0\u4f9b\u6574\u6570\u5904\u7406\u5b8f\uff0c\u5982 INT_MAX \u548c LONG_MAX \u7b49\u3002"),(0,a.yg)("li",{parentName:"ul"},"stddef.h\uff1a\u63d0\u4f9b\u57fa\u672c\u7c7b\u578b\u5b9a\u4e49\uff0c\u5982 size_t \u548c ptrdiff_t \u7b49\u3002")),(0,a.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://blog.csdn.net/weixin_43764974/article/details/130892554"},"CSDN-C \u8bed\u8a00\u6807\u51c6\u5e93\u3001Windows \u4e0e Linux \u5e73\u53f0\u4e0b\u5e38\u7528\u7684 C \u8bed\u8a00\u6807\u51c6\u5e93"))))}y.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/04e22f3f.15fd3d22.js b/assets/js/04e22f3f.e0987c40.js similarity index 98% rename from assets/js/04e22f3f.15fd3d22.js rename to assets/js/04e22f3f.e0987c40.js index a1fd1be76..ca662490e 100644 --- a/assets/js/04e22f3f.15fd3d22.js +++ b/assets/js/04e22f3f.e0987c40.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2677],{5680:(e,t,r)=>{r.d(t,{xA:()=>s,yg:()=>m});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var p=n.createContext({}),c=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},s=function(e){var t=c(e.components);return n.createElement(p.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,p=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),d=c(r),y=a,m=d["".concat(p,".").concat(y)]||d[y]||u[y]||o;return r?n.createElement(m,i(i({ref:t},s),{},{components:r})):n.createElement(m,i({ref:t},s))}));function m(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=y;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[d]="string"==typeof e?e:a,i[1]=l;for(var c=2;c{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>u,frontMatter:()=>o,metadata:()=>l,toc:()=>c});var n=r(8168),a=(r(6540),r(5680));const o={sidebar_position:1},i="\u6982\u8ff0",l={unversionedId:"study/program/index",id:"study/program/index",title:"\u6982\u8ff0",description:"\u5199\u4ee3\u7801\u7528\u5230\u7684\u4e00\u5957\u89c4\u8303\u53ca\u5176\u5ef6\u4f38\u5de5\u5177\u3002",source:"@site/docs/study/program/index.md",sourceDirName:"study/program",slug:"/study/program/",permalink:"/docs/study/program/",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"studySidebar",previous:{title:"TimescaleDB",permalink:"/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/TimescaleDB"},next:{title:"ABIAPI",permalink:"/docs/study/program/ABIAPI"}},p={},c=[{value:"\u76f8\u5173\u6982\u5ff5",id:"\u76f8\u5173\u6982\u5ff5",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],s={toc:c},d="wrapper";function u(e){let{components:t,...o}=e;return(0,a.yg)(d,(0,n.A)({},s,o,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"\u6982\u8ff0"},"\u6982\u8ff0"),(0,a.yg)("p",null,"\u5199\u4ee3\u7801\u7528\u5230\u7684\u4e00\u5957\u89c4\u8303\u53ca\u5176\u5ef6\u4f38\u5de5\u5177\u3002"),(0,a.yg)("h3",{id:"\u76f8\u5173\u6982\u5ff5"},"\u76f8\u5173\u6982\u5ff5"),(0,a.yg)("p",null,(0,a.yg)("img",{alt:"\u6307\u4ee4-\u64cd\u4f5c\u7cfb\u7edf-\u5e94\u7528",src:r(714).A,width:"720",height:"289"})),(0,a.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://windliang.wang/2019/11/06/%E5%88%B0%E5%BA%95%E5%AD%A6%E5%93%AA%E4%B8%80%E9%97%A8%E7%BC%96%E7%A8%8B%E8%AF%AD%E8%A8%80/"},"\u5230\u5e95\u5b66\u54ea\u4e00\u95e8\u7f16\u7a0b\u8bed\u8a00")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://windliang.wang/2020/03/11/x86-x64-x86-64-amd64-arm%E6%8C%87%E4%BB%A4%E9%9B%86%E6%9E%B6%E6%9E%84%E4%B9%8B%E9%97%B4%E7%9A%84%E5%85%B3%E7%B3%BB/"},"x86-x64-x86-64-amd64-arm \u6307\u4ee4\u96c6\u67b6\u6784\u4e4b\u95f4\u7684\u5173\u7cfb")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://windliang.wang/2019/05/21/linux%E5%92%8CAndroid%E7%9A%84%E5%85%B3%E7%B3%BB/"},"linux \u548c Android \u7684\u5173\u7cfb"))))}u.isMDXComponent=!0},714:(e,t,r)=>{r.d(t,{A:()=>n});const n=r.p+"assets/images/zhiling-system-app-ad4d378124ac18c2ca5244edb7de32b2.webp"}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2677],{5680:(e,t,r)=>{r.d(t,{xA:()=>s,yg:()=>m});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var p=n.createContext({}),c=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},s=function(e){var t=c(e.components);return n.createElement(p.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,p=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),d=c(r),y=a,m=d["".concat(p,".").concat(y)]||d[y]||u[y]||o;return r?n.createElement(m,i(i({ref:t},s),{},{components:r})):n.createElement(m,i({ref:t},s))}));function m(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=y;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[d]="string"==typeof e?e:a,i[1]=l;for(var c=2;c{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>u,frontMatter:()=>o,metadata:()=>l,toc:()=>c});var n=r(8168),a=(r(6540),r(5680));const o={sidebar_position:1},i="\u6982\u8ff0",l={unversionedId:"study/program/index",id:"study/program/index",title:"\u6982\u8ff0",description:"\u5199\u4ee3\u7801\u7528\u5230\u7684\u4e00\u5957\u89c4\u8303\u53ca\u5176\u5ef6\u4f38\u5de5\u5177\u3002",source:"@site/docs/study/program/index.md",sourceDirName:"study/program",slug:"/study/program/",permalink:"/docs/study/program/",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"studySidebar",previous:{title:"TimescaleDB",permalink:"/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/TimescaleDB"},next:{title:"ABIAPI",permalink:"/docs/study/program/ABIAPI"}},p={},c=[{value:"\u76f8\u5173\u6982\u5ff5",id:"\u76f8\u5173\u6982\u5ff5",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],s={toc:c},d="wrapper";function u(e){let{components:t,...o}=e;return(0,a.yg)(d,(0,n.A)({},s,o,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"\u6982\u8ff0"},"\u6982\u8ff0"),(0,a.yg)("p",null,"\u5199\u4ee3\u7801\u7528\u5230\u7684\u4e00\u5957\u89c4\u8303\u53ca\u5176\u5ef6\u4f38\u5de5\u5177\u3002"),(0,a.yg)("h3",{id:"\u76f8\u5173\u6982\u5ff5"},"\u76f8\u5173\u6982\u5ff5"),(0,a.yg)("p",null,(0,a.yg)("img",{alt:"\u6307\u4ee4-\u64cd\u4f5c\u7cfb\u7edf-\u5e94\u7528",src:r(714).A,width:"720",height:"289"})),(0,a.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://windliang.wang/2019/11/06/%E5%88%B0%E5%BA%95%E5%AD%A6%E5%93%AA%E4%B8%80%E9%97%A8%E7%BC%96%E7%A8%8B%E8%AF%AD%E8%A8%80/"},"\u5230\u5e95\u5b66\u54ea\u4e00\u95e8\u7f16\u7a0b\u8bed\u8a00")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://windliang.wang/2020/03/11/x86-x64-x86-64-amd64-arm%E6%8C%87%E4%BB%A4%E9%9B%86%E6%9E%B6%E6%9E%84%E4%B9%8B%E9%97%B4%E7%9A%84%E5%85%B3%E7%B3%BB/"},"x86-x64-x86-64-amd64-arm \u6307\u4ee4\u96c6\u67b6\u6784\u4e4b\u95f4\u7684\u5173\u7cfb")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://windliang.wang/2019/05/21/linux%E5%92%8CAndroid%E7%9A%84%E5%85%B3%E7%B3%BB/"},"linux \u548c Android \u7684\u5173\u7cfb"))))}u.isMDXComponent=!0},714:(e,t,r)=>{r.d(t,{A:()=>n});const n=r.p+"assets/images/zhiling-system-app-ad4d378124ac18c2ca5244edb7de32b2.webp"}}]); \ No newline at end of file diff --git a/assets/js/06a5f76a.fa33da07.js b/assets/js/06a5f76a.e6203b76.js similarity index 98% rename from assets/js/06a5f76a.fa33da07.js rename to assets/js/06a5f76a.e6203b76.js index a8971dcd4..6a1b05465 100644 --- a/assets/js/06a5f76a.fa33da07.js +++ b/assets/js/06a5f76a.e6203b76.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8985],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>m});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),p=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(l.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),s=p(r),f=o,m=s["".concat(l,".").concat(f)]||s[f]||d[f]||a;return r?n.createElement(m,i(i({ref:t},u),{},{components:r})):n.createElement(m,i({ref:t},u))}));function m(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=f;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[s]="string"==typeof e?e:o,i[1]=c;for(var p=2;p{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>p});var n=r(8168),o=(r(6540),r(5680));const a={sidebar_position:1},i="\u6982\u8ff0",c={unversionedId:"iotcloud/alarmlinkage/index",id:"iotcloud/alarmlinkage/index",title:"\u6982\u8ff0",description:"\u62a5\u8b66\u8054\u52a8\u4e3b\u8981\u662f\u7ba1\u7406\u62a5\u8b66\u63a8\u9001\u548c\u62a5\u8b66\u8054\u7cfb\u4eba\u3002",source:"@site/docs/iotcloud/alarmlinkage/index.md",sourceDirName:"iotcloud/alarmlinkage",slug:"/iotcloud/alarmlinkage/",permalink:"/docs/iotcloud/alarmlinkage/",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",sidebarPosition:1,frontMatter:{sidebar_position:1}},l={},p=[],u={toc:p},s="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"\u6982\u8ff0"},"\u6982\u8ff0"),(0,o.yg)("p",null,"\u62a5\u8b66\u8054\u52a8\u4e3b\u8981\u662f\u7ba1\u7406\u62a5\u8b66\u63a8\u9001\u548c\u62a5\u8b66\u8054\u7cfb\u4eba\u3002"))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8985],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>m});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),p=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(l.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),s=p(r),f=o,m=s["".concat(l,".").concat(f)]||s[f]||d[f]||a;return r?n.createElement(m,i(i({ref:t},u),{},{components:r})):n.createElement(m,i({ref:t},u))}));function m(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=f;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[s]="string"==typeof e?e:o,i[1]=c;for(var p=2;p{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>p});var n=r(8168),o=(r(6540),r(5680));const a={sidebar_position:1},i="\u6982\u8ff0",c={unversionedId:"iotcloud/alarmlinkage/index",id:"iotcloud/alarmlinkage/index",title:"\u6982\u8ff0",description:"\u62a5\u8b66\u8054\u52a8\u4e3b\u8981\u662f\u7ba1\u7406\u62a5\u8b66\u63a8\u9001\u548c\u62a5\u8b66\u8054\u7cfb\u4eba\u3002",source:"@site/docs/iotcloud/alarmlinkage/index.md",sourceDirName:"iotcloud/alarmlinkage",slug:"/iotcloud/alarmlinkage/",permalink:"/docs/iotcloud/alarmlinkage/",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",sidebarPosition:1,frontMatter:{sidebar_position:1}},l={},p=[],u={toc:p},s="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"\u6982\u8ff0"},"\u6982\u8ff0"),(0,o.yg)("p",null,"\u62a5\u8b66\u8054\u52a8\u4e3b\u8981\u662f\u7ba1\u7406\u62a5\u8b66\u63a8\u9001\u548c\u62a5\u8b66\u8054\u7cfb\u4eba\u3002"))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/086f0ef7.665a26de.js b/assets/js/086f0ef7.d0ab0f2c.js similarity index 98% rename from assets/js/086f0ef7.665a26de.js rename to assets/js/086f0ef7.d0ab0f2c.js index c777d89e2..8ac46f1c0 100644 --- a/assets/js/086f0ef7.665a26de.js +++ b/assets/js/086f0ef7.d0ab0f2c.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1999],{5680:(e,t,r)=>{r.d(t,{xA:()=>i,yg:()=>y});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function s(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function a(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var p=n.createContext({}),c=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},i=function(e){var t=c(e.components);return n.createElement(p.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},g=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,s=e.originalType,p=e.parentName,i=l(e,["components","mdxType","originalType","parentName"]),u=c(r),g=o,y=u["".concat(p,".").concat(g)]||u[g]||d[g]||s;return r?n.createElement(y,a(a({ref:t},i),{},{components:r})):n.createElement(y,a({ref:t},i))}));function y(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var s=r.length,a=new Array(s);a[0]=g;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[u]="string"==typeof e?e:o,a[1]=l;for(var c=2;c{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>a,default:()=>d,frontMatter:()=>s,metadata:()=>l,toc:()=>c});var n=r(8168),o=(r(6540),r(5680));const s={},a=void 0,l={unversionedId:"study/db/SQL/PostgreSQL",id:"study/db/SQL/PostgreSQL",title:"PostgreSQL",description:"\u7b80\u4ecb",source:"@site/docs/study/db/SQL/PostgreSQL.md",sourceDirName:"study/db/SQL",slug:"/study/db/SQL/PostgreSQL",permalink:"/docs/study/db/SQL/PostgreSQL",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"MySQL",permalink:"/docs/study/db/SQL/MySQL"},next:{title:"\u7efc\u5408\u6982\u8ff0",permalink:"/docs/study/db/\u5168\u6587\u641c\u7d22\u5f15\u64ce/\u7efc\u5408\u6982\u8ff0"}},p={},c=[{value:"\u7b80\u4ecb",id:"\u7b80\u4ecb",level:3},{value:"PostGIS",id:"postgis",level:3},{value:"\u5b89\u88c5postgres",id:"\u5b89\u88c5postgres",level:3}],i={toc:c},u="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(u,(0,n.A)({},i,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"\u7b80\u4ecb"},"\u7b80\u4ecb"),(0,o.yg)("p",null,(0,o.yg)("strong",{parentName:"p"},"PostgreSQL"),"\xa0(\u4e5f\u53eb Postgres)\u662f\u4e00\u4e2a\u81ea\u7531\u7684",(0,o.yg)("strong",{parentName:"p"},"\u5bf9\u8c61-\u5173\u7cfb\u6570\u636e\u5e93"),"\u670d\u52a1\u5668(\u6570\u636e\u5e93\u7ba1\u7406\u7cfb\u7edf)\uff0c\u5b83\u5728\u7075\u6d3b\u7684 BSD-\u98ce\u683c\u8bb8\u53ef\u8bc1\u4e0b\u53d1\u884c\u3002\u5b83\u63d0\u4f9b\u4e86\u76f8\u5bf9\u5176\u4ed6\u5f00\u653e\u6e90\u4ee3\u7801\u6570\u636e\u5e93\u7cfb\u7edf(\u6bd4\u5982 MySQL \u548c Firebird)\uff0c\u548c\u5bf9\u4e13\u6709\u7cfb\u7edf\u6bd4\u5982 Oracle\u3001Sybase\u3001IBM \u7684 DB2 \u548c Microsoft SQL Server\u7684\u4e00\u79cd\u9009\u62e9\u3002"),(0,o.yg)("p",null,'PostgreSQL \u7684 Slogan(\u53e3\u53f7) \u662f "\u4e16\u754c\u4e0a\u6700\u5148\u8fdb\u7684\u5f00\u6e90\u5173\u7cfb\u578b\u6570\u636e\u5e93"\u3002'),(0,o.yg)("h3",{id:"postgis"},"PostGIS"),(0,o.yg)("p",null,"PostGIS\u5728\u5bf9\u8c61\u5173\u7cfb\u578b\u6570\u636e\u5e93PostgreSQL\u4e0a\u589e\u52a0\u4e86\u5b58\u50a8\u7ba1\u7406\u7a7a\u95f4\u6570\u636e\u7684\u80fd\u529b\uff0c\u76f8\u5f53\u4e8eOracle\u7684spatial\u90e8\u5206\u3002PostGIS\u6700\u5927\u7684\u7279\u70b9\u662f\u7b26\u5408\u5e76\u4e14\u5b9e\u73b0\u4e86OpenGIS\u7684\u4e00\u4e9b\u89c4\u8303\uff0c\u662f\u6700\u8457\u540d\u7684\u5f00\u6e90GIS\u6570\u636e\u5e93\u3002"),(0,o.yg)("p",null,"PostGIS\u901a\u8fc7\u5411PostgreSQL\u6dfb\u52a0\u5bf9\u7a7a\u95f4\u6570\u636e\u7c7b\u578b\u3001\u7a7a\u95f4\u7d22\u5f15\u548c\u7a7a\u95f4\u51fd\u6570\u7684\u652f\u6301\uff0c\u5c06PostgreSQL\u6570\u636e\u5e93\u7ba1\u7406\u7cfb\u7edf\u8f6c\u6362\u4e3a\u7a7a\u95f4\u6570\u636e\u5e93\u3002"),(0,o.yg)("p",null,'\u56e0\u4e3aPostGIS\u662f\u5efa\u7acb\u5728PostgreSQL\u4e4b\u4e0a\u7684\uff0c\u6240\u4ee5PostGIS\u81ea\u52a8\u7ee7\u627f\u4e86\u91cd\u8981\u7684"\u4f01\u4e1a\u7ea7"\u7279\u6027\u4ee5\u53ca\u5f00\u653e\u6e90\u4ee3\u7801\u7684\u6807\u51c6\u3002'),(0,o.yg)("p",null,"\u53ef\u4ee5\u8bf4PostGIS\u4ec5\u4ec5\u53ea\u662fPostgreSQL\u7684\u4e00\u4e2a\u63d2\u4ef6\uff0c\u4f46\u662f\u5b83\u5c06PostgreSQL\u53d8\u6210\u4e86\u4e00\u4e2a\u5f3a\u5927\u7684\u7a7a\u95f4\u6570\u636e\u5e93\uff01"),(0,o.yg)("p",null,"\u95ee\u9898\u63cf\u8ff0\uff1a"),(0,o.yg)("p",null,"\u5bf9\u8f66\u8f86\u7684\u4f4d\u7f6e\u4fe1\u606f\u8fdb\u884c\u5b58\u50a8\uff0c\u67e5\u8be2\u8f66\u8f86\u7684\u884c\u9a76\u8f68\u8ff9\u548c\u91cc\u7a0b\u3002"),(0,o.yg)("h3",{id:"\u5b89\u88c5postgres"},"\u5b89\u88c5postgres"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-shell"},"#\ndocker pull postgres:11.19-bullseye\n#\ndocker run \\\n--privileged=true \\\n--restart=always \\\n--name postgres \\\n-e POSTGRES_PASSWORD=Aa0123 \\\n-p 5432:5432 \\\n-v /mnt/docker/postgresql/data:/var/lib/postgresql/data \\\n-d postgres:11.19-bullseye\n# \u53d1\u73b0\u4f7f\u7528DBeaver\u8fde\u63a5\u4e0d\u4e0a\uff0c\u9700\u8981\u4fee\u6539/mnt/docker/postgresql/data/pg_hba.conf \n# \u589e\u52a0\u4e00\u884chost all all 192.168.41.69/32 trust\n# 192.168.41.69\u662f\u6211\u81ea\u5df1\u7684ip\n\n")))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1999],{5680:(e,t,r)=>{r.d(t,{xA:()=>i,yg:()=>y});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function s(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function a(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var p=n.createContext({}),c=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},i=function(e){var t=c(e.components);return n.createElement(p.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},g=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,s=e.originalType,p=e.parentName,i=l(e,["components","mdxType","originalType","parentName"]),u=c(r),g=o,y=u["".concat(p,".").concat(g)]||u[g]||d[g]||s;return r?n.createElement(y,a(a({ref:t},i),{},{components:r})):n.createElement(y,a({ref:t},i))}));function y(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var s=r.length,a=new Array(s);a[0]=g;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[u]="string"==typeof e?e:o,a[1]=l;for(var c=2;c{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>a,default:()=>d,frontMatter:()=>s,metadata:()=>l,toc:()=>c});var n=r(8168),o=(r(6540),r(5680));const s={},a=void 0,l={unversionedId:"study/db/SQL/PostgreSQL",id:"study/db/SQL/PostgreSQL",title:"PostgreSQL",description:"\u7b80\u4ecb",source:"@site/docs/study/db/SQL/PostgreSQL.md",sourceDirName:"study/db/SQL",slug:"/study/db/SQL/PostgreSQL",permalink:"/docs/study/db/SQL/PostgreSQL",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"MySQL",permalink:"/docs/study/db/SQL/MySQL"},next:{title:"\u7efc\u5408\u6982\u8ff0",permalink:"/docs/study/db/\u5168\u6587\u641c\u7d22\u5f15\u64ce/\u7efc\u5408\u6982\u8ff0"}},p={},c=[{value:"\u7b80\u4ecb",id:"\u7b80\u4ecb",level:3},{value:"PostGIS",id:"postgis",level:3},{value:"\u5b89\u88c5postgres",id:"\u5b89\u88c5postgres",level:3}],i={toc:c},u="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(u,(0,n.A)({},i,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"\u7b80\u4ecb"},"\u7b80\u4ecb"),(0,o.yg)("p",null,(0,o.yg)("strong",{parentName:"p"},"PostgreSQL"),"\xa0(\u4e5f\u53eb Postgres)\u662f\u4e00\u4e2a\u81ea\u7531\u7684",(0,o.yg)("strong",{parentName:"p"},"\u5bf9\u8c61-\u5173\u7cfb\u6570\u636e\u5e93"),"\u670d\u52a1\u5668(\u6570\u636e\u5e93\u7ba1\u7406\u7cfb\u7edf)\uff0c\u5b83\u5728\u7075\u6d3b\u7684 BSD-\u98ce\u683c\u8bb8\u53ef\u8bc1\u4e0b\u53d1\u884c\u3002\u5b83\u63d0\u4f9b\u4e86\u76f8\u5bf9\u5176\u4ed6\u5f00\u653e\u6e90\u4ee3\u7801\u6570\u636e\u5e93\u7cfb\u7edf(\u6bd4\u5982 MySQL \u548c Firebird)\uff0c\u548c\u5bf9\u4e13\u6709\u7cfb\u7edf\u6bd4\u5982 Oracle\u3001Sybase\u3001IBM \u7684 DB2 \u548c Microsoft SQL Server\u7684\u4e00\u79cd\u9009\u62e9\u3002"),(0,o.yg)("p",null,'PostgreSQL \u7684 Slogan(\u53e3\u53f7) \u662f "\u4e16\u754c\u4e0a\u6700\u5148\u8fdb\u7684\u5f00\u6e90\u5173\u7cfb\u578b\u6570\u636e\u5e93"\u3002'),(0,o.yg)("h3",{id:"postgis"},"PostGIS"),(0,o.yg)("p",null,"PostGIS\u5728\u5bf9\u8c61\u5173\u7cfb\u578b\u6570\u636e\u5e93PostgreSQL\u4e0a\u589e\u52a0\u4e86\u5b58\u50a8\u7ba1\u7406\u7a7a\u95f4\u6570\u636e\u7684\u80fd\u529b\uff0c\u76f8\u5f53\u4e8eOracle\u7684spatial\u90e8\u5206\u3002PostGIS\u6700\u5927\u7684\u7279\u70b9\u662f\u7b26\u5408\u5e76\u4e14\u5b9e\u73b0\u4e86OpenGIS\u7684\u4e00\u4e9b\u89c4\u8303\uff0c\u662f\u6700\u8457\u540d\u7684\u5f00\u6e90GIS\u6570\u636e\u5e93\u3002"),(0,o.yg)("p",null,"PostGIS\u901a\u8fc7\u5411PostgreSQL\u6dfb\u52a0\u5bf9\u7a7a\u95f4\u6570\u636e\u7c7b\u578b\u3001\u7a7a\u95f4\u7d22\u5f15\u548c\u7a7a\u95f4\u51fd\u6570\u7684\u652f\u6301\uff0c\u5c06PostgreSQL\u6570\u636e\u5e93\u7ba1\u7406\u7cfb\u7edf\u8f6c\u6362\u4e3a\u7a7a\u95f4\u6570\u636e\u5e93\u3002"),(0,o.yg)("p",null,'\u56e0\u4e3aPostGIS\u662f\u5efa\u7acb\u5728PostgreSQL\u4e4b\u4e0a\u7684\uff0c\u6240\u4ee5PostGIS\u81ea\u52a8\u7ee7\u627f\u4e86\u91cd\u8981\u7684"\u4f01\u4e1a\u7ea7"\u7279\u6027\u4ee5\u53ca\u5f00\u653e\u6e90\u4ee3\u7801\u7684\u6807\u51c6\u3002'),(0,o.yg)("p",null,"\u53ef\u4ee5\u8bf4PostGIS\u4ec5\u4ec5\u53ea\u662fPostgreSQL\u7684\u4e00\u4e2a\u63d2\u4ef6\uff0c\u4f46\u662f\u5b83\u5c06PostgreSQL\u53d8\u6210\u4e86\u4e00\u4e2a\u5f3a\u5927\u7684\u7a7a\u95f4\u6570\u636e\u5e93\uff01"),(0,o.yg)("p",null,"\u95ee\u9898\u63cf\u8ff0\uff1a"),(0,o.yg)("p",null,"\u5bf9\u8f66\u8f86\u7684\u4f4d\u7f6e\u4fe1\u606f\u8fdb\u884c\u5b58\u50a8\uff0c\u67e5\u8be2\u8f66\u8f86\u7684\u884c\u9a76\u8f68\u8ff9\u548c\u91cc\u7a0b\u3002"),(0,o.yg)("h3",{id:"\u5b89\u88c5postgres"},"\u5b89\u88c5postgres"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-shell"},"#\ndocker pull postgres:11.19-bullseye\n#\ndocker run \\\n--privileged=true \\\n--restart=always \\\n--name postgres \\\n-e POSTGRES_PASSWORD=Aa0123 \\\n-p 5432:5432 \\\n-v /mnt/docker/postgresql/data:/var/lib/postgresql/data \\\n-d postgres:11.19-bullseye\n# \u53d1\u73b0\u4f7f\u7528DBeaver\u8fde\u63a5\u4e0d\u4e0a\uff0c\u9700\u8981\u4fee\u6539/mnt/docker/postgresql/data/pg_hba.conf \n# \u589e\u52a0\u4e00\u884chost all all 192.168.41.69/32 trust\n# 192.168.41.69\u662f\u6211\u81ea\u5df1\u7684ip\n\n")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/0a1f7513.8420172a.js b/assets/js/0a1f7513.46384cb4.js similarity index 99% rename from assets/js/0a1f7513.8420172a.js rename to assets/js/0a1f7513.46384cb4.js index 01825ef70..3d43aa5bf 100644 --- a/assets/js/0a1f7513.8420172a.js +++ b/assets/js/0a1f7513.46384cb4.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4963],{5680:(e,n,t)=>{t.d(n,{xA:()=>c,yg:()=>h});var a=t(6540);function r(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function l(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function s(e){for(var n=1;n=0||(r[t]=e[t]);return r}(e,n);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}var o=a.createContext({}),i=function(e){var n=a.useContext(o),t=n;return e&&(t="function"==typeof e?e(n):s(s({},n),e)),t},c=function(e){var n=i(e.components);return a.createElement(o.Provider,{value:n},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},y=a.forwardRef((function(e,n){var t=e.components,r=e.mdxType,l=e.originalType,o=e.parentName,c=p(e,["components","mdxType","originalType","parentName"]),d=i(t),y=r,h=d["".concat(o,".").concat(y)]||d[y]||u[y]||l;return t?a.createElement(h,s(s({ref:n},c),{},{components:t})):a.createElement(h,s({ref:n},c))}));function h(e,n){var t=arguments,r=n&&n.mdxType;if("string"==typeof e||r){var l=t.length,s=new Array(l);s[0]=y;var p={};for(var o in n)hasOwnProperty.call(n,o)&&(p[o]=n[o]);p.originalType=e,p[d]="string"==typeof e?e:r,s[1]=p;for(var i=2;i{t.r(n),t.d(n,{assets:()=>o,contentTitle:()=>s,default:()=>u,frontMatter:()=>l,metadata:()=>p,toc:()=>i});var a=t(8168),r=(t(6540),t(5680));const l={},s=void 0,p={unversionedId:"study/db/\u5168\u6587\u641c\u7d22\u5f15\u64ce/Elasticsearch",id:"study/db/\u5168\u6587\u641c\u7d22\u5f15\u64ce/Elasticsearch",title:"Elasticsearch",description:"ES\u7248\u672c",source:"@site/docs/study/db/\u5168\u6587\u641c\u7d22\u5f15\u64ce/Elasticsearch.md",sourceDirName:"study/db/\u5168\u6587\u641c\u7d22\u5f15\u64ce",slug:"/study/db/\u5168\u6587\u641c\u7d22\u5f15\u64ce/Elasticsearch",permalink:"/docs/study/db/\u5168\u6587\u641c\u7d22\u5f15\u64ce/Elasticsearch",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u7efc\u5408\u6982\u8ff0",permalink:"/docs/study/db/\u5168\u6587\u641c\u7d22\u5f15\u64ce/\u7efc\u5408\u6982\u8ff0"},next:{title:"InfluxDB",permalink:"/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/InfluxDB"}},o={},i=[{value:"ES\u7248\u672c",id:"es\u7248\u672c",level:2},{value:"ES\u57fa\u7840\u6982\u5ff5",id:"es\u57fa\u7840\u6982\u5ff5",level:2},{value:"\u5206\u9875",id:"\u5206\u9875",level:2},{value:"\u5206\u7247\u548c\u526f\u672c",id:"\u5206\u7247\u548c\u526f\u672c",level:2},{value:"\u5e38\u7528\u67e5\u8be2(curl)",id:"\u5e38\u7528\u67e5\u8be2curl",level:2},{value:"\u57fa\u7840\u6982\u5ff5",id:"\u57fa\u7840\u6982\u5ff5",level:3},{value:"\u67e5\u770b\u6240\u6709\u7d22\u5f15\u5e93",id:"\u67e5\u770b\u6240\u6709\u7d22\u5f15\u5e93",level:3},{value:"\u67e5\u770b\u67d0\u4e2a\u7d22\u5f15\u5e93\u4fe1\u606f",id:"\u67e5\u770b\u67d0\u4e2a\u7d22\u5f15\u5e93\u4fe1\u606f",level:3},{value:"\u8bbe\u7f6e\u67d0\u4e2a\u7d22\u5f15\u5e93\u4fe1\u606f",id:"\u8bbe\u7f6e\u67d0\u4e2a\u7d22\u5f15\u5e93\u4fe1\u606f",level:3},{value:"\u5206\u6790",id:"\u5206\u6790",level:3},{value:"\u5220\u9664\u6307\u5b9a\u7d22\u5f15\u5e93",id:"\u5220\u9664\u6307\u5b9a\u7d22\u5f15\u5e93",level:3},{value:"\u6df1\u5165\u641c\u7d22",id:"\u6df1\u5165\u641c\u7d22",level:3},{value:"\u65b0\u589e\u6570\u636e",id:"\u65b0\u589e\u6570\u636e",level:3},{value:"\u62f7\u8d1d\u7d22\u5f15\u5e93",id:"\u62f7\u8d1d\u7d22\u5f15\u5e93",level:3},{value:"\u540c\u4e00\u4e2a\u96c6\u7fa4\u62f7\u8d1d",id:"\u540c\u4e00\u4e2a\u96c6\u7fa4\u62f7\u8d1d",level:4},{value:"\u4e0d\u540c\u7684\u96c6\u7fa4\u62f7\u8d1d",id:"\u4e0d\u540c\u7684\u96c6\u7fa4\u62f7\u8d1d",level:4},{value:"\u62a5\u9519\u5904\u7406",id:"\u62a5\u9519\u5904\u7406",level:3},{value:"\u67e5\u8be2\u5206\u7247\u4fe1\u606f/\u6587\u6863\u603b\u6570/\u4e3b\u8282\u70b9",id:"\u67e5\u8be2\u5206\u7247\u4fe1\u606f\u6587\u6863\u603b\u6570\u4e3b\u8282\u70b9",level:3},{value:"\u9700\u8981\u5bc6\u7801\u65f6(nginx)",id:"\u9700\u8981\u5bc6\u7801\u65f6nginx",level:3},{value:"\u6a21\u677f",id:"\u6a21\u677f",level:3},{value:"\u521b\u5efa\u7d22\u5f15\u5e93",id:"\u521b\u5efa\u7d22\u5f15\u5e93",level:3},{value:"\u96c6\u7fa4\u72b6\u6001\u67e5\u770b",id:"\u96c6\u7fa4\u72b6\u6001\u67e5\u770b",level:3},{value:"\u5feb\u7167",id:"\u5feb\u7167",level:3},{value:"\u5220\u9664\u6570\u636e",id:"\u5220\u9664\u6570\u636e",level:3},{value:"es\u8bbf\u95ee\u6743\u9650",id:"es\u8bbf\u95ee\u6743\u9650",level:2},{value:"GEOIP",id:"geoip",level:2},{value:"\u76f8\u5173\u8d44\u6599",id:"\u76f8\u5173\u8d44\u6599",level:2}],c={toc:i},d="wrapper";function u(e){let{components:n,...t}=e;return(0,r.yg)(d,(0,a.A)({},c,t,{components:n,mdxType:"MDXLayout"}),(0,r.yg)("h2",{id:"es\u7248\u672c"},"ES\u7248\u672c"),(0,r.yg)("ol",null,(0,r.yg)("li",{parentName:"ol"},"\u76ee\u524d\u4f7f\u7528\u7684\u7248\u672c\u662f6.3.2\uff0c\u76f8\u5bf9\u5e94\u7684logstash/kibana/filebeat\u4e5f\u4f7f\u7528\u7684\u662f6.3.2\uff0cjava\u5bf9\u5e94\u7684jar\u5305client\u4e5f\u662f\u7528\u76846.3.2\uff1b")),(0,r.yg)("h2",{id:"es\u57fa\u7840\u6982\u5ff5"},"ES\u57fa\u7840\u6982\u5ff5"),(0,r.yg)("ol",null,(0,r.yg)("li",{parentName:"ol"},"Index\uff08\u7d22\u5f15-\u6570\u636e\u5e93\uff09\uff0c\u7d22\u5f15\u5305\u542b\u4e00\u5806\u6709\u76f8\u4f3c\u7ed3\u6784\u7684\u6587\u6863\u6570\u636e\uff0c\uff0c\u6bd4\u5982\u53ef\u4ee5\u6709\u4e00\u4e2a\u5ba2\u6237\u7d22\u5f15\uff0c\u5546\u54c1\u5206\u7c7b\u7d22\u5f15\uff0c\u8ba2\u5355\u7d22\u5f15\uff0c\u7d22\u5f15\u6709\u4e00\u4e2a\u540d\u79f0\u3002\u4e00\u4e2aindex\u5305\u542b\u5f88\u591adocument\uff0c\u4e00\u4e2aindex\u5c31\u4ee3\u8868\u4e86\u4e00\u7c7b\u7c7b\u4f3c\u7684\u6216\u8005\u76f8\u540c\u7684document\u3002\u6bd4\u5982\u8bf4\u5efa\u7acb\u4e00\u4e2aproduct index\uff0c\u5546\u54c1\u7d22\u5f15\uff0c\u91cc\u9762\u53ef\u80fd\u5c31\u5b58\u653e\u4e86\u6240\u6709\u7684\u5546\u54c1\u6570\u636e\uff0c\u6240\u6709\u7684\u5546\u54c1document\u3002\u5fc5\u987b\u662f\u82f1\u6587\u5c0f\u5199\u547d\u540d\u3002"),(0,r.yg)("li",{parentName:"ol"},(0,r.yg)("del",{parentName:"li"},"Type\uff08\u7c7b\u578b-\u8868\uff09\uff0c\u6bcf\u4e2a\u7d22\u5f15\u91cc\u90fd\u53ef\u4ee5\u6709\u4e00\u4e2a\u6216\u591a\u4e2atype\uff0ctype\u662findex\u4e2d\u7684\u4e00\u4e2a\u903b\u8f91\u6570\u636e\u5206\u7c7b\uff0c\u4e00\u4e2atype\u4e0b\u7684document\uff0c\u90fd\u6709\u76f8\u540c\u7684field\u3002")),(0,r.yg)("li",{parentName:"ol"},"Document\uff08\u6587\u6863-\u884c\uff09\uff0c\u6587\u6863\u662fes\u4e2d\u7684\u6700\u5c0f\u6570\u636e\u5355\u5143\uff0c\u4e00\u4e2adocument\u53ef\u4ee5\u662f\u4e00\u6761\u5ba2\u6237\u6570\u636e\uff0c\u4e00\u6761\u5546\u54c1\u5206\u7c7b\u6570\u636e\uff0c\u4e00\u6761\u8ba2\u5355\u6570\u636e\uff0c\u901a\u5e38\u7528JSON\u6570\u636e\u7ed3\u6784\u8868\u793a\uff0c\u6bcf\u4e2aindex\u4e0b\u7684type\u4e2d\uff0c\u90fd\u53ef\u4ee5\u53bb\u5b58\u50a8\u591a\u4e2adocument\u3002"),(0,r.yg)("li",{parentName:"ol"},"Field\uff08\u5b57\u6bb5-\u5217\uff09\uff0cField\u662fElasticsearch\u7684\u6700\u5c0f\u5355\u4f4d\u3002\u4e00\u4e2adocument\u91cc\u9762\u6709\u591a\u4e2afield\uff0c\u6bcf\u4e2afield\u5c31\u662f\u4e00\u4e2a\u6570\u636e\u5b57\u6bb5\u3002"),(0,r.yg)("li",{parentName:"ol"},"mapping\uff08\u6620\u5c04-\u7ea6\u675f\uff09\uff0c\u6570\u636e\u5982\u4f55\u5b58\u653e\u5230\u7d22\u5f15\u5bf9\u8c61\u4e0a\uff0c\u9700\u8981\u6709\u4e00\u4e2a\u6620\u5c04\u914d\u7f6e\uff0c\u5305\u62ec\uff1a\u6570\u636e\u7c7b\u578b\u3001\u662f\u5426\u5b58\u50a8\u3001\u662f\u5426\u5206\u8bcd\u7b49\u3002\u8fd9\u6837\u5c31\u521b\u5efa\u4e86\u4e00\u4e2a\u540d\u4e3ablog\u7684Index\u3002Type\u4e0d\u7528\u5355\u72ec\u521b\u5efa\uff0c\u5728\u521b\u5efaMapping \u65f6\u6307\u5b9a\u5c31\u53ef\u4ee5\u3002Mapping\u7528\u6765\u5b9a\u4e49Document\u4e2d\u6bcf\u4e2a\u5b57\u6bb5\u7684\u7c7b\u578b\uff0c\u5373\u6240\u4f7f\u7528\u7684 analyzer\u3001\u662f\u5426\u7d22\u5f15\u7b49\u5c5e\u6027\uff0c\u975e\u5e38\u5173\u952e\u7b49\u3002")),(0,r.yg)("p",null,(0,r.yg)("strong",{parentName:"p"},"\u6ce8\u610f\u4e8b\u9879\uff1a")),(0,r.yg)("p",null,"\u4eceES6.0\u5f00\u59cb\uff0c\u5b98\u65b9\u4fbf\u4e0d\u5efa\u8bae\u4e00\u4e2a\u7d22\u5f15\u4e2d\u521b\u5efa\u591a\u4e2a\u7c7b\u578b\uff1b\u5728ES7.0\u4e2d\uff0c\u66f4\u662f\u79fb\u9664\u4e86\u7c7b\u578b(Type)\u8fd9\u4e2a\u6982\u5ff5\u3002\u4e3a\u4ec0\u4e48\u5462\uff1f\n\u5728Elasticsearch\u7d22\u5f15\u4e2d\uff0c\u4e0d\u540c\u7c7b\u578b(Type)\u4e2d\u5177\u6709\u76f8\u540c\u540d\u79f0\u7684\u5b57\u6bb5\u5728\u5185\u90e8\u7531\u76f8\u540c\u7684Lucene\u5b57\u6bb5\u652f\u6301\u3002\u4e00\u4e2aindex\u4e2d\u591a\u4e2aType\u5728Lucene\u4e2d\u4f1a\u6709\u8bb8\u591a\u95ee\u9898\u3002\u5177\u4f53\u7684\u53ef\u4ee5\u53c2\u8003\u5b98\u65b9\u8bf4\u660e\u3002"),(0,r.yg)("h2",{id:"\u5206\u9875"},"\u5206\u9875"),(0,r.yg)("ol",null,(0,r.yg)("li",{parentName:"ol"},"\u6df1\u5ea6\u5206\u9875\uff0c\u7406\u89e3\u5728\u5206\u5e03\u5f0f\u7cfb\u7edf\u4e2d\u6df1\u5ea6\u5206\u9875\u662f\u6709\u95ee\u9898\u7684\uff0c\u6240\u4ee5\u4f7f\u7528\u6b64\u5206\u9875\u5728\u5bf9\u9700\u8981\u9650\u5236\u5206\u9875\u6570\u91cf\uff1b"),(0,r.yg)("li",{parentName:"ol"},"\u5feb\u7167\u5206\u9875(scroll)"),(0,r.yg)("li",{parentName:"ol"},"search_after\u5206\u9875")),(0,r.yg)("h2",{id:"\u5206\u7247\u548c\u526f\u672c"},"\u5206\u7247\u548c\u526f\u672c"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'//\u65b0\u589e\u7d22\u5f15\u7684\u540c\u65f6\u6dfb\u52a0\u5206\u7247\uff0c\u4e0d\u4f7f\u7528\u9ed8\u8ba4\u5206\u7247\uff0c\u5206\u7247\u7684\u6570\u91cf\n//\u4e00\u822c\u4ee5\uff08\u8282\u70b9\u6570*1.5\u62163\u500d\uff09\u6765\u8ba1\u7b97\uff0c\u6bd4\u5982\u67094\u4e2a\u8282\u70b9\uff0c\u5206\u7247\u6570\u91cf\u4e00\u822c\u662f6\u4e2a\u523012\u4e2a\uff0c\u6bcf\u4e2a\u5206\u7247\u4e00\u822c\u5206\u914d\u4e00\u4e2a\u526f\u672c\nPUT /testindex\n{\n "settings" : {\n "number_of_shards" : 5,\n "number_of_replicas" : 1\n }\n}\n')),(0,r.yg)("ol",null,(0,r.yg)("li",{parentName:"ol"},"\u4e00\u4e2a \u5206\u7247 \u662f\u4e00\u4e2a\u5e95\u5c42\u7684 \u5de5\u4f5c\u5355\u5143 \uff0c\u5b83\u4ec5\u4fdd\u5b58\u4e86\u5168\u90e8\u6570\u636e\u4e2d\u7684\u4e00\u90e8\u5206\u3002"),(0,r.yg)("li",{parentName:"ol"},"\u4e00\u4e2a\u5206\u7247\u662f\u4e00\u4e2a Lucene \u7684\u5b9e\u4f8b\uff0c\u4ee5\u53ca\u5b83\u672c\u8eab\u5c31\u662f\u4e00\u4e2a\u5b8c\u6574\u7684\u641c\u7d22\u5f15\u64ce\u3002"),(0,r.yg)("li",{parentName:"ol"},"\u4e00\u4e2a\u5206\u7247\u53ef\u4ee5\u662f \u4e3b \u5206\u7247\u6216\u8005 \u526f\u672c \u5206\u7247\u3002 \u7d22\u5f15\u5185\u4efb\u610f\u4e00\u4e2a\u6587\u6863\u90fd\u5f52\u5c5e\u4e8e\u4e00\u4e2a\u4e3b\u5206\u7247\uff0c\u6240\u4ee5\u4e3b\u5206\u7247\u7684\u6570\u76ee\u51b3\u5b9a\u7740\u7d22\u5f15\u80fd\u591f\u4fdd\u5b58\u7684\u6700\u5927\u6570\u636e\u91cf\u3002"),(0,r.yg)("li",{parentName:"ol"},"\u6280\u672f\u4e0a\u6765\u8bf4\uff0c\u4e00\u4e2a\u4e3b\u5206\u7247\u6700\u5927\u80fd\u591f\u5b58\u50a8 Integer.MAX_VALUE - 128 \u4e2a\u6587\u6863 ~= 21\u4ebf\u6761"),(0,r.yg)("li",{parentName:"ol"},"\u4e00\u4e2a\u526f\u672c\u5206\u7247\u53ea\u662f\u4e00\u4e2a\u4e3b\u5206\u7247\u7684\u62f7\u8d1d\u3002\u526f\u672c\u5206\u7247\u4f5c\u4e3a\u786c\u4ef6\u6545\u969c\u65f6\u4fdd\u62a4\u6570\u636e\u4e0d\u4e22\u5931\u7684\u5197\u4f59\u5907\u4efd\uff0c\u5e76\u4e3a\u641c\u7d22\u548c\u8fd4\u56de\u6587\u6863\u7b49\u8bfb\u64cd\u4f5c\u63d0\u4f9b\u670d\u52a1\u3002"),(0,r.yg)("li",{parentName:"ol"},"\u5728\u7d22\u5f15\u5efa\u7acb\u7684\u65f6\u5019\u5c31\u5df2\u7ecf\u786e\u5b9a\u4e86\u4e3b\u5206\u7247\u6570\uff0c\u4f46\u662f\u526f\u672c\u5206\u7247\u6570\u53ef\u4ee5\u968f\u65f6\u4fee\u6539\u3002\u8bfb\u64cd\u4f5c\u2014\u2014\u641c\u7d22\u548c\u8fd4\u56de\u6570\u636e\u2014\u2014\u53ef\u4ee5\u540c\u65f6\u88ab\u4e3b\u5206\u7247\xa0",(0,r.yg)("em",{parentName:"li"},"\u6216"),"\xa0\u526f\u672c\u5206\u7247\u6240\u5904\u7406\uff0c\u6240\u4ee5\u5f53\u4f60\u62e5\u6709\u8d8a\u591a\u7684\u526f\u672c\u5206\u7247\u65f6\uff0c\u4e5f\u5c06\u62e5\u6709\u8d8a\u9ad8\u7684\u541e\u5410\u91cf\u3002")),(0,r.yg)("h2",{id:"\u5e38\u7528\u67e5\u8be2curl"},"\u5e38\u7528\u67e5\u8be2(curl)"),(0,r.yg)("h3",{id:"\u57fa\u7840\u6982\u5ff5"},"\u57fa\u7840\u6982\u5ff5"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"#\nurl\u4e2d\u643a\u5e26?v\u8868\u793a\u5c55\u793a\u8868\u5934\nurl\u4e2d\u643a\u5e26?pretty\u8868\u793a\u5c55\u793a\u683c\u5f0f\u5316\nurl\u4e2d\u5e26\u7740?help\u67e5\u770b\u5217\u7684\u5b9a\u4e49\nurl\u4e2d\u5e26\u7740?h=a,b\u6307\u5b9a\u67e5\u770b\u67d0\u4e9b\u5217\n\n#\u6d4f\u89c8es\u670d\u52a1\u4fe1\u606f\ncurl -XGET http://127.0.0.1:9200\n")),(0,r.yg)("h3",{id:"\u67e5\u770b\u6240\u6709\u7d22\u5f15\u5e93"},"\u67e5\u770b\u6240\u6709\u7d22\u5f15\u5e93"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"#\u6839\u636e\u7d22\u5f15\u5e93\u540d\u79f0\u6392\u5e8f\ncurl -XGET 'http://127.0.0.1:9200/_cat/indices?v&s=index'\n#\u6839\u636e\u6587\u6863\u6570\u91cf\u6392\u5e8f\ncurl -XGET 'http://127.0.0.1:9200/_cat/indices?v&s=docs.count'\n#\u6839\u636e\u6587\u6863\u78c1\u76d8\u5b58\u50a8\u5927\u5c0f\u6392\u5e8f\ncurl -XGET 'http://127.0.0.1:9200/_cat/indices?v&s=store.size'\n#\u67e5\u770b\u6240\u6709\u7d22\u5f15\u5e93\u7684\u8bbe\u7f6e\u4fe1\u606f\ncurl -XGET 'http://127.0.0.1:9200/_all/_settings?pretty'\n#\u67d0\u4e2a\u7d22\u5f15\ncurl -XGET 'http://127.0.0.1:9200/_cat/indices/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}?v'\n")),(0,r.yg)("h3",{id:"\u67e5\u770b\u67d0\u4e2a\u7d22\u5f15\u5e93\u4fe1\u606f"},"\u67e5\u770b\u67d0\u4e2a\u7d22\u5f15\u5e93\u4fe1\u606f"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"#\u67e5\u770b\u67d0\u4e2a\u7d22\u5f15\u5e93\u7684aliases/mappings/settings\ncurl -XGET 'http://127.0.0.1:9200/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}?pretty'\n#\u67e5\u770b\u67d0\u4e2a\u7d22\u5f15\u5e93\u7684settings\ncurl -XGET 'http://127.0.0.1:9200/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}/_settings?pretty'\n#\u67e5\u770b\u67d0\u4e2a\u7d22\u5f15\u5e93\u7684mappings\ncurl -XGET 'http://127.0.0.1:9200/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}/_mappings?pretty'\n")),(0,r.yg)("h3",{id:"\u8bbe\u7f6e\u67d0\u4e2a\u7d22\u5f15\u5e93\u4fe1\u606f"},"\u8bbe\u7f6e\u67d0\u4e2a\u7d22\u5f15\u5e93\u4fe1\u606f"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'#\u8bbe\u7f6e\u67d0\u4e2a\u7d22\u5f15\u5e93\u7684settings \u526f\u672c\u6570\u91cf\uff0c\u526f\u672c\u6570\u91cf\u8d8a\u5408\u7406\u7684\u8d8a\u591a\uff0c\u4f1a\u63d0\u9ad8\u67e5\u8be2\u901f\u5ea6\ncurl -XPUT \'http://127.0.0.1:9200/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}/_settings\' \\\n-H "Content-Type: application/json" \\\n-d \'{"index":{"number_of_replicas":"1"}}\'\n#\u8bbe\u7f6e\u67d0\u4e2a\u7d22\u5f15\u5e93\u7684\u67d0\u4e2a\u5b57\u6bb5\u652f\u6301aggs\u5206\u6790 \u5982\u679c\u67d0\u4e2a\u5b57\u6bb5\u7684\u7c7b\u578b\u662f\u5bf9\u8c61\uff0c\u652f\u6301\u7528.\u8fd0\u7b97\u7b26\ncurl -XPUT \'http://127.0.0.1:9200/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}/_mappings/doc?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \'{"properties" : {"url" : {"type" : "text", "fielddata" : true }}}\'\n')),(0,r.yg)("h3",{id:"\u5206\u6790"},"\u5206\u6790"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'#\u6839\u636e\u67d0\u4e2a\u5b57\u6bb5\u5206\u6790\u6587\u6863\u6570\u91cf \u5982\u679c\u67d0\u4e2a\u5b57\u6bb5\u7684\u7c7b\u578b\u662f\u5bf9\u8c61\uff0c\u652f\u6301\u7528.\u8fd0\u7b97\u7b26 \n#\u8fd9\u4e2a\u5b57\u6bb5\u9700\u8981\u652f\u6301fielddata=true\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \'{"size" : 0 ,"aggs": {"all_interests": {"terms": { "field": "url" }}}}\'\n#\u6839\u636e\u67d0\u4e2a\u5b57\u6bb5\u5148\u67e5\u8be2\u518d\u5206\u6790\u6587\u6863\u6570\u91cf\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \'{\n"query":{"match":{"method":"POST"}},\n"size" : 0 ,"aggs": {"all_interests": {"terms": { "field": "uaj.name" }}}}\'\n')),(0,r.yg)("h3",{id:"\u5220\u9664\u6307\u5b9a\u7d22\u5f15\u5e93"},"\u5220\u9664\u6307\u5b9a\u7d22\u5f15\u5e93"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"#\ncurl -XDELETE 'http://127.0.0.1:9200/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}?pretty'\n")),(0,r.yg)("h3",{id:"\u6df1\u5165\u641c\u7d22"},"\u6df1\u5165\u641c\u7d22"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'##############################################\u7ed3\u6784\u5316\u641c\u7d22\n# \u7ed3\u6784\u5316\u641c\u7d22-\u7cbe\u786e\u503c\u67e5\u627e\ncurl -XPOST \\\nhttp://127.0.0.1:9200/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}/_search?pretty \\\n-H "Content-Type: application/json" \\\n-d \'{ "sort": [{"@timestamp": {"order": "asc"}}], \n"from":0,"size": 10,"query":{"term":{"code":"200"}}}\'\n\ncurl -XPOST \\\nhttp://127.0.0.1:9400/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}/_search?pretty \\\n-H "Content-Type: application/json" \\\n-d \'{ \n"from":0,"size": 10,"query":{"term":{"_id":"uNp30XIB0LLx2kagtfJo"}}}\'\n# \u7ed3\u6784\u5316\u641c\u7d22-\u7cbe\u786e\u503c\u67e5\u627e\n# \u901a\u5e38\u5f53\u67e5\u627e\u4e00\u4e2a\u7cbe\u786e\u503c\u7684\u65f6\u5019\uff0c\u6211\u4eec\u4e0d\u5e0c\u671b\u5bf9\u67e5\u8be2\u8fdb\u884c\u8bc4\u5206\u8ba1\u7b97\u3002\u53ea\u5e0c\u671b\u5bf9\u6587\u6863\u8fdb\u884c\u5305\u62ec\u6216\u6392\u9664\u7684\u8ba1\u7b97\uff0c\n# \u6240\u4ee5\u6211\u4eec\u4f1a\u4f7f\u7528 constant_score \u67e5\u8be2\u4ee5\u975e\u8bc4\u5206\u6a21\u5f0f\u6765\u6267\u884c term \u67e5\u8be2\u5e76\u4ee5\u4e00\u4f5c\u4e3a\u7edf\u4e00\u8bc4\u5206\u3002\ncurl -XPOST \\\nhttp://127.0.0.1:9200/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}/_search?pretty \\\n-H "Content-Type: application/json" \\\n-d \'{ "sort": [{"@timestamp": {"order": "desc"}}], \n"from":0,"size": 10,"query":{\n"constant_score":{\n "filter":{\n "term":{"code":"200"}\n }\n}\n}}\'\n#\ncurl -XPOST \\\nhttp://127.0.0.1:9200/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}/_search?pretty \\\n-H "Content-Type: application/json" \\\n-d \'{ "sort": [{"@timestamp": {"order": "desc"}}], \n"from":0,"size": 10,"query":{\n"constant_score":{\n "filter":{\n "range":{"code":{\n "lte": "now"\n }}\n }\n}\n}}\'\n\n\n\n##############################################\u5168\u6587\u641c\u7d22\n# \u5168\u6587\u641c\u7d22-\u67e5\u8be2\u6240\u6709-\u6392\u5e8f\ncurl -XPOST \\\nhttp://127.0.0.1:9200/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}/_search?pretty \\\n-H "Content-Type: application/json" \\\n-d \'{ "sort": [{"@timestamp": {"order": "desc"}}], \n"from":0,"size": 10,"query":{"match_all":{}}}\'\n# \u5168\u6587\u641c\u7d22-\u67d0\u4e2a\u5b57\u6bb5\u67e5\u8be2\ncurl -XPOST \\\nhttp://127.0.0.1:9200/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}.20.6.11/_search?pretty \\\n-H "Content-Type: application/json" \\\n-d \'{ "from":0,"size": 10,"query":{"match":{"site":"m"}}}\'\n# \u6a21\u7cca\u67e5\u8be2\ncurl -XPOST \\\nhttp://127.0.0.1:9200/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}/_search?pretty \\\n-H "Content-Type: application/json" \\\n-d \'{ "from":0,"size": 10,"query": {\n"wildcard": {\n "site": "*show.html*"\n}\n}}\'\ncurl -XPOST \\\nhttp://127.0.0.1:9200/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}/_search?pretty \\\n-H "Content-Type: application/json" \\\n-d \'{ "from":0,"size": 10,"query": {\n"bool":{\n "must_not":[\n {"term":{"market.keyword":"\u79d1\u521b\u677f"}}\n ,{"wildcard": {"name": "*ST*"}}\n ]\n}\n}}\'\n\n\n')),(0,r.yg)("h3",{id:"\u65b0\u589e\u6570\u636e"},"\u65b0\u589e\u6570\u636e"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'#POST\u63d0\u4ea4 \u81ea\u52a8\u751f\u6210_id\ncurl -XPOST \\\nhttp://127.0.0.1:9200/stock/test \\\n-H "Content-Type: application/json" \\\n-d \'{"author" : "Doug Cutting"}\' \n#PUT\u63d0\u4ea4 \u6307\u5b9a_id\ncurl -XPOST \\\nhttp://127.0.0.1:9200/stock/test/1 \\\n-H "Content-Type: application/json" \\\n-d \'{"author" : "Doug Cutting"}\' \n')),(0,r.yg)("h3",{id:"\u62f7\u8d1d\u7d22\u5f15\u5e93"},"\u62f7\u8d1d\u7d22\u5f15\u5e93"),(0,r.yg)("h4",{id:"\u540c\u4e00\u4e2a\u96c6\u7fa4\u62f7\u8d1d"},"\u540c\u4e00\u4e2a\u96c6\u7fa4\u62f7\u8d1d"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'# x > .temp\n....\n#reindex one > bak\ncurl -XPOST \'http://127.0.0.1:9200/_reindex\' \\\n-H "Content-Type: application/json" \\\n-d \'{\n "source": {"index": "{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}.temp"},\n "dest": {"index": "{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}"}}\'\n#\n#curl -XDELETE \'http://127.0.0.1:9200/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}?pretty\'\n#reindex bak > one\ncurl -XPOST \'http://127.0.0.1:9200/_reindex\' \\\n-H "Content-Type: application/json" \\\n-d \'{\n "source": {"index": "{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}"},\n "dest": {"index": "{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}"}}\'\n# restart logstash-xxx\n...\n#reindex temp > one\ncurl -XPOST \'http://127.0.0.1:9200/_reindex\' \\\n-H "Content-Type: application/json" \\\n-d \'{\n "source": {"index": "{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}.temp"},\n "dest": {"index": "{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}"}}\'\n#\n#curl -XDELETE \'http://127.0.0.1:9200/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}.bak?pretty\'\n#curl -XDELETE \'http://127.0.0.1:9200/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}.temp?pretty\'\n')),(0,r.yg)("h4",{id:"\u4e0d\u540c\u7684\u96c6\u7fa4\u62f7\u8d1d"},"\u4e0d\u540c\u7684\u96c6\u7fa4\u62f7\u8d1d"),(0,r.yg)("p",null,"\u6ce8\u610f\uff1a\n\u5fc5\u987b\u914d\u7f6ereindex.remote.whitelist=172.19.184.169:9200"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'#reindex one > bak --{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}\ncurl -XPOST \'http://127.0.0.1:9200/_reindex\' \\\n-H "Content-Type: application/json" \\\n-d \'{\n "source": {"index": "prod_device_active","remote":{"host":"http://172.19.184.169:9200"}},\n "dest": {"index": "prod_device_active"}}\'\n#reindex one > bak --prod_device_address_statistics\ncurl -XPOST \'http://127.0.0.1:9200/_reindex\' \\\n-H "Content-Type: application/json" \\\n-d \'{\n "source": {"index": "prod_device_address_statistics","remote":{"host":"http://172.19.184.169:9200"}},\n "dest": {"index": "prod_device_address_statistics"}}\'\n#reindex one > bak --prod_device_product_model_statistics\ncurl -XPOST \'http://127.0.0.1:9200/_reindex\' \\\n-H "Content-Type: application/json" \\\n-d \'{\n "source": {"index": "prod_device_product_model_statistics","remote":{"host":"http://172.19.184.169:9200"}},\n "dest": {"index": "prod_device_product_model_statistics"}}\'\n#reindex one > bak --prod_ranking\ncurl -XPOST \'http://127.0.0.1:9200/_reindex\' \\\n-H "Content-Type: application/json" \\\n-d \'{\n "source": {"index": "prod_ranking","remote":{"host":"http://172.19.184.169:9200"}},\n "dest": {"index": "prod_ranking.bak"}}\'\n#reindex one > bak --prod_user_func_flow_for_user_op_for_res\ncurl -XPOST \'http://127.0.0.1:9200/_reindex\' \\\n-H "Content-Type: application/json" \\\n-d \'{\n "source": {"index": "prod_user_func_flow_for_user_op_for_res","remote":{"host":"http://192.168.0.33:9200"}},\n "dest": {"index": "prod_user_func_flow_for_user_op_for_res"}}\'\n')),(0,r.yg)("h3",{id:"\u62a5\u9519\u5904\u7406"},"\u62a5\u9519\u5904\u7406"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'#\u5982\u679c\u62a5\u9519\u5982\u4e0b \u9700\u8981\u6267\u884c\n#Fielddata is disabled on text fields by default. Set fielddata=true on [ipo_date] in order to load fielddata in memory by uninverting the inverted index. Note that this can however use significant memory. Alternatively use a keyword field instead.\ncurl -i -H "Content-Type:application/json" \\\n-XPUT http://127.0.0.1:9200/daily/_mapping/doc/?pretty \\\n-d \'{"doc":{"properties":{"trade_date":{"type":"text","fielddata":true}}}}\'\n\n#\u89e3\u51b3\u9519\u8bef retrying failed action with response code: 403 ({"type"=>"cluster_block_exception", "reason"=>"block\ncurl -XPUT -H \'Content-Type: application/json\' \\\nhttp://127.0.0.1:9200/_all/_settings \\\n-d \'{"index.blocks.read_only_allow_delete": null}\'\n')),(0,r.yg)("h3",{id:"\u67e5\u8be2\u5206\u7247\u4fe1\u606f\u6587\u6863\u603b\u6570\u4e3b\u8282\u70b9"},"\u67e5\u8be2\u5206\u7247\u4fe1\u606f/\u6587\u6863\u603b\u6570/\u4e3b\u8282\u70b9"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"#\u67e5\u8be2\u67d0\u4e2a\u7d22\u5f15\u5e93\u7684\u5206\u7247\u4fe1\u606f\ncurl -XGET 'http://127.0.0.1:9200/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}/_search_shards?pretty'\n#\u67e5\u8be2\u67d0\u4e2a\u7d22\u5f15\u5e93\u7684\u6587\u6863\u603b\u6570\u91cf\ncurl -XGET 'http://127.0.0.1:9200/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}/doc/_count?pretty'\n#\u67e5\u8be2\u4e3b\u8282\u70b9\ncurl -XGET 'http://127.0.0.1:9200/_cat/master?v'\n")),(0,r.yg)("h3",{id:"\u9700\u8981\u5bc6\u7801\u65f6nginx"},"\u9700\u8981\u5bc6\u7801\u65f6(nginx)"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'#\u9700\u8981\u5bc6\u7801\u65f6 \u4e3e\u4f8b\ncurl -XGET \\\n--user admin:Aa0123 \\\n#\u67e5\u770b\u67d0\u4e2a\u7d22\u5f15\u5e93\u4e0b\u7684\u524d1000\u6761\u6570\u636e\ncurl -XGET --user admin:Aa0123 \\\n\'http://47.103.38.240:8443/rc_ranking/_search\' \\\n-H "Content-Type: application/json" \\\n-d \'{ "sort": [{"@timestamp": {"order": "desc"}}],\\\n"from":0,"size": 1000,"query":{"match_all":{}}}\'\n')),(0,r.yg)("h3",{id:"\u6a21\u677f"},"\u6a21\u677f"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"#\u67e5\u8be2\u6240\u6709\u6a21\u677f\ncurl -XGET 'http://127.0.0.1:9200/_template?pretty'\ncurl -XGET 'http://127.0.0.1:9200/_template?pretty' > t.json\n#\u65b0\u589e\u67d0\u4e2a\u6a21\u677f--logstash-index-template-nginx-api\ncurl -XPUT http://127.0.0.1:9200/_template/logstash-index-template-nginx-api?pretty \\\n-H \"Content-Type: application/json\" \\\n-d @logstash-index-template-nginx-api.json\n\n#\u65b0\u589e\u67d0\u4e2a\u6a21\u677f--logstash-index-template-userop\ncurl -XPUT http://127.0.0.1:9200/_template/logstash-index-template-userop?pretty \\\n-H \"Content-Type: application/json\" \\\n-d @logstash-index-template-userop.json\n\n#\u65b0\u589e\u67d0\u4e2a\u6a21\u677f--logstash-index-template-alarm-data-history.json\ncurl -XPUT http://127.0.0.1:9200/_template/logstash-index-template-alarm-data-history?pretty \\\n-H \"Content-Type: application/json\" \\\n-d @logstash-index-template-alarm-data-history.json\n\n\n#\u5220\u9664\u67d0\u4e2a\u6a21\u677f\ncurl -XDELETE 'http://127.0.0.1:9200/_template/logstash-index-template-nginx-api?pretty'\n")),(0,r.yg)("h3",{id:"\u521b\u5efa\u7d22\u5f15\u5e93"},"\u521b\u5efa\u7d22\u5f15\u5e93"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"# \u521b\u5efa\u7d22\u5f15\u5e93\ncurl -XPUT 'http://127.0.0.1:9200/stock?pretty' \\\n-H 'Content-Type: application/json' \\\n-d '{\n \"settings\" : {\n \"number_of_shards\" : 5,\n \"number_of_replicas\" : 1\n }\n}'\n")),(0,r.yg)("h3",{id:"\u96c6\u7fa4\u72b6\u6001\u67e5\u770b"},"\u96c6\u7fa4\u72b6\u6001\u67e5\u770b"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"# \u670d\u52a1\u68c0\u6d4b\ncurl -XGET 'http://127.0.0.1:9200/_cat/health?v'\n# \u67e5\u770b\u6240\u6709\u96c6\u7fa4\u8282\u70b9\ncurl -XGET 'http://127.0.0.1:9200/_cat/allocation?v'\n# \u67e5\u770b\u96c6\u7fa4\u6240\u6709\u5206\u7247\u5206\u5e03\u60c5\u51b5\ncurl -XGET 'http://127.0.0.1:9200/_cat/shards?v'\n# \u67e5\u770b\u96c6\u7fa4\u67d0\u4e2a\u7d22\u5f15\u7684\u5206\u7247\u5206\u5e03\u60c5\u51b5\ncurl -XGET 'http://127.0.0.1:9200/_cat/shards/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}?v'\n# \u67e5\u770b\u96c6\u7fa4\u7684\u4e3b\u8282\u70b9\ncurl -XGET 'http://127.0.0.1:9200/_cat/master?v'\n# \u67e5\u770b\u96c6\u7fa4\u7684\u6240\u6709\u6570\u636e\u8282\u70b9\ncurl -XGET 'http://127.0.0.1:9200/_cat/nodes?v'\n# \u67e5\u770b\u96c6\u7fa4\u7684\u6240\u6709\u6bb5(\u6570\u636e\u96c6)\ncurl -XGET 'http://127.0.0.1:9200/_cat/segments?v'\n# \u67e5\u770b\u96c6\u7fa4\u67d0\u4e2a\u7d22\u5f15\u7684\u6bb5\u5206\u5e03\u60c5\u51b5\ncurl -XGET 'http://127.0.0.1:9200/_cat/segments/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}?v'\n# \u67e5\u770b\u96c6\u7fa4\u7684\u6240\u6709\u6587\u6863\u6570\u91cf\ncurl -XGET 'http://127.0.0.1:9200/_cat/count?v'\n# \u67e5\u770b\u96c6\u7fa4\u67d0\u4e2a\u7d22\u5f15\u7684\u6587\u6863\u6570\u91cf\ncurl -XGET 'http://127.0.0.1:9200/_cat/count/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}?v'\n# \u67e5\u770b\u96c6\u7fa4\u7684\u6240\u6709\u53d1\u73b0\u673a\u5236\ncurl -XGET 'http://127.0.0.1:9200/_cat/recovery?v'\n# \u67e5\u770b\u96c6\u7fa4\u67d0\u4e2a\u7d22\u5f15\u7684\u53d1\u73b0\u673a\u5236\ncurl -XGET 'http://127.0.0.1:9200/_cat/recovery/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}?v'\n# \u67e5\u770b\u96c6\u7fa4\u7684\u6240\u6709\u963b\u585e\u4efb\u52a1\uff1f\ncurl -XGET 'http://127.0.0.1:9200/_cat/pending_tasks?v'\n# \u67e5\u770b\u96c6\u7fa4\u7684\u6240\u6709\u522b\u540d\ncurl -XGET 'http://127.0.0.1:9200/_cat/aliases?v'\n# \u67e5\u770b\u96c6\u7fa4\u67d0\u4e2a\u7d22\u5f15\u7684\u522b\u540d\ncurl -XGET 'http://127.0.0.1:9200/_cat/aliases/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}?v'\n# \u67e5\u770b\u96c6\u7fa4\u7684\u6240\u6709\u7ebf\u7a0b\u6c60\ncurl -XGET 'http://127.0.0.1:9200/_cat/thread_pool?v'\n# \u67e5\u770b\u96c6\u7fa4\u7684\u6240\u6709\u63d2\u4ef6\u5217\u8868\ncurl -XGET 'http://127.0.0.1:9200/_cat/plugins?v'\n# \u67e5\u770b\u96c6\u7fa4\u7684\u6240\u6709fielddata\ncurl -XGET 'http://127.0.0.1:9200/_cat/fielddata?v'\ncurl -XGET 'http://127.0.0.1:9200/_cat/fielddata/{fields}?v'\n# \u67e5\u770b\u96c6\u7fa4\u7684\u6240\u6709\u8282\u70b9\u7684\u8282\u70b9\u5c5e\u6027\ncurl -XGET 'http://127.0.0.1:9200/_cat/nodeattrs?v'\n")),(0,r.yg)("h3",{id:"\u5feb\u7167"},"\u5feb\u7167"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'#\u67e5\u770b\u5feb\u7167\u5b58\u50a8\u4ed3\u5e93\u5217\u8868\ncurl -X ET "127.0.0.1:9200/_cat/repositories?v"\n#\u67e5\u770b\u67d0\u4e2a\u5feb\u7167\u5b58\u50a8\u4ed3\u5e93\u7684\u5feb\u7167\u5217\u8868\ncurl -XGET "127.0.0.1:9200/_snapshot/snapshots/_all?pretty"\n#\u6ce8\u518c\u5feb\u7167\u5b58\u50a8\u5e93\ncurl -XPUT \\\nhttp://127.0.0.1:9200/_snapshot/snapshots?pretty \\\n-H "Content-Type: application/json" \\\n-d \'{ "type":"fs","settings":{"location":"/usr/share/elasticsearch/snapshots"}}\'\n#\u67e5\u770b\u5feb\u7167\u5b58\u50a8\u5e93\ncurl -XGET \\\nhttp://127.0.0.1:9200/_snapshot?pretty\n#\u6267\u884c\u5feb\u7167\u5b58\u50a8\u5e93\ncurl -XPUT \\\n\'http://127.0.0.1:9200/_snapshot/snapshots/snapshot_02?wait_for_completion=true\'\n#\u67e5\u770b\u6267\u884c\u5feb\u7167\u5b58\u50a8\u5e93\u7684\u7ed3\u679c\ncurl -XGET \\\nhttp://127.0.0.1:9200/_snapshot/snapshots/snapshot_02?pretty\n#\u5220\u9664\u5feb\u7167\u5b58\u50a8\u5e93\ncurl -XDELETE "127.0.0.1:9200/_snapshot/snapshots?pretty"\n#\u5220\u9664\u5feb\u7167\ncurl -XDELETE "127.0.0.1:9200/_snapshot/snapshots/snapshot_02?pretty"\n#\u6253\u5305\ncd /mnt/docker/es.1\ntar czvf snapshots.tar.gz ./snapshots/*\n#############\u76ee\u7684\u5730\ncd /mnt/docker/es.1\n#upload an tar\ntar xzvf snapshots.tar.gz \n#\u6ce8\u518c\u5feb\u7167\u5b58\u50a8\u5e93\ncurl -XPUT \\\nhttp://127.0.0.1:9200/_snapshot/snapshots?pretty \\\n-H "Content-Type: application/json" \\\n-d \'{ "type":"fs","settings":{"location":"/usr/share/elasticsearch/snapshots"}}\'\n#\u8fd8\u539f\u5feb\u7167\u5b58\u50a8\u5e93\ncurl -XPOST \\\n\'http://127.0.0.1:9200/_snapshot/snapshots/snapshot_02/_restore?wait_for_completion=true\'\n')),(0,r.yg)("h3",{id:"\u5220\u9664\u6570\u636e"},"\u5220\u9664\u6570\u636e"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'#\u6839\u636e\u65f6\u95f4\u5220\u9664\u90e8\u5206\u6570\u636e\ncurl -XPOST \\\nhttp://127.0.0.1:9200/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}/_delete_by_query?pretty \\\n-H "Content-Type: application/json" \\\n-d \'{ "query": {\n "range": {\n "@timestamp": {\n "lt": "2022-10-01T00:00:00Z"\n }\n }\n } }\'\n#\u5237\u65b0\u7d22\u5f15 \u5220\u9664 Elasticsearch \u7d22\u5f15\u4e2d\u7684\u90e8\u5206\u6570\u636e\u540e\uff0c\u78c1\u76d8\u4e0a\u53ef\u80fd\u4f1a\u51fa\u73b0\u4e0d\u5fc5\u8981\u7684\u788e\u7247\u3002\u4e3a\u4e86\u56de\u6536\u8fd9\u4e9b\u78c1\u76d8\u7a7a\u95f4\uff0c\u60a8\u53ef\u4ee5\u8fd0\u884c\u4e00\u6b21\u7d22\u5f15\u5237\u65b0\u64cd\u4f5c\uff0c\u8fd9\u5c06\u5220\u9664\u5df2\u6807\u8bb0\u4e3a\u5220\u9664\u4f46\u672a\u5b9e\u9645\u5220\u9664\u7684\u6587\u6863\uff0c\u5e76\u91cd\u65b0\u7ec4\u7ec7\u5269\u4f59\u6587\u6863\u4ee5\u51cf\u5c11\u788e\u7247\u3002\ncurl -XPOST \\\nhttp://127.0.0.1:9200/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}/_refresh?pretty \\\n-H "Content-Type: application/json" \\\n-d \'{}\'\n')),(0,r.yg)("p",null,"#\u5f3a\u5236\u5408\u5e76\ncurl -XPOST \\\n",(0,r.yg)("a",{parentName:"p",href:"http://127.0.0.1:9200/%7B%E5%85%B7%E4%BD%93%E7%9A%84%E7%B4%A2%E5%BC%95%E5%BA%93%7D/_forcemerge?only_expunge_deletes=true"},"http://127.0.0.1:9200/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}/_forcemerge?only_expunge_deletes=true")," \\\n-H \"Content-Type: application/json\" \\\n-d '{}'"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre"},"\n## \u8fd1\u5b9e\u65f6\u641c\u7d22/refresh\n\n\u5728 Elasticsearch \u4e2d\uff0c\u5199\u5165\u548c\u6253\u5f00\u4e00\u4e2a\u65b0\u6bb5\u7684\u8f7b\u91cf\u7684\u8fc7\u7a0b\u53eb\u505a refresh \u3002 \u9ed8\u8ba4\u60c5\u51b5\u4e0b\u6bcf\u4e2a\u5206\u7247\u4f1a\u6bcf\u79d2\u81ea\u52a8\u5237\u65b0\u4e00\u6b21\u3002\u8fd9\u5c31\u662f\u4e3a\u4ec0\u4e48\u6211\u4eec\u8bf4 Elasticsearch \u662f \u8fd1 \u5b9e\u65f6\u641c\u7d22: \u6587\u6863\u7684\u53d8\u5316\u5e76\u4e0d\u662f\u7acb\u5373\u5bf9\u641c\u7d22\u53ef\u89c1\uff0c\u4f46\u4f1a\u5728\u4e00\u79d2\u4e4b\u5185\u53d8\u4e3a\u53ef\u89c1\u3002\n\n\u8fd9\u4e9b\u884c\u4e3a\u53ef\u80fd\u4f1a\u5bf9\u65b0\u7528\u6237\u9020\u6210\u56f0\u60d1: \u4ed6\u4eec\u7d22\u5f15\u4e86\u4e00\u4e2a\u6587\u6863\u7136\u540e\u5c1d\u8bd5\u641c\u7d22\u5b83\uff0c\u4f46\u5374\u6ca1\u6709\u641c\u5230\u3002\u8fd9\u4e2a\u95ee\u9898\u7684\u89e3\u51b3\u529e\u6cd5\u662f\u7528 refresh API \u6267\u884c\u4e00\u6b21\u624b\u52a8\u5237\u65b0:\n```shell\nPOST /_refresh \nPOST /blogs/_refresh \n")),(0,r.yg)("h2",{id:"es\u8bbf\u95ee\u6743\u9650"},"es\u8bbf\u95ee\u6743\u9650"),(0,r.yg)("p",null,"\u56e0\u4e3a\u5f00\u6e90\u7684es\u662f\u4e0d\u5e26\u8bbf\u95ee\u6743\u9650\u63a7\u5236\u7684\uff0c\u5e76\u4e0d\u80fd\u7528\u4e8e\u751f\u4ea7\u73af\u5883\uff1b\u5546\u4e1a\u7248\u63d2\u4ef6x-pack\u662f\u652f\u6301\u7528\u6237\u6743\u9650\u7684\uff0c\u4f46\u662f\u6536\u8d39\u3002\n\u53ef\u4ee5\u4f7f\u7528nginx\u589e\u52a0\u8bbf\u95ee\u6743\u9650\u6765\u65b9\u5411\u4ee3\u7406es\uff0c\u4f46\u662fes\u76849200/9300\u7aef\u53e3\u4e0d\u80fd\u5916\u7f51\u5f00\u653e\uff1b"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'#\u5b89\u88c5httpd-tools\nyum install httpd-tools\nmkdir /usr/local/nginx/conf/passwd\nhtpasswd -c /usr/local/nginx/conf/passwd/es admin\n#nginx\u914d\u7f6e\u53cd\u5411\u4ee3\u7406\u589e\u52a0\nserver\n{\n listen 8443;\n location / {\n proxy_set_header Host $host;\n proxy_set_header X-Forwarded-For $remote_addr;\n proxy_pass http://172.17.0.1:9200;\n proxy_connect_timeout 18000;\n proxy_send_timeout 18000;\n proxy_read_timeout 18000;\n #\n auth_basic "Please input password";\n auth_basic_user_file /usr/local/nginx/conf/passwd/es;\n } \n}\n')),(0,r.yg)("h2",{id:"geoip"},"GEOIP"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"#\nyum install GeoIP-data -y\n")),(0,r.yg)("h2",{id:"\u76f8\u5173\u8d44\u6599"},"\u76f8\u5173\u8d44\u6599"),(0,r.yg)("ol",null,(0,r.yg)("li",{parentName:"ol"},(0,r.yg)("a",{parentName:"li",href:"https://blog.csdn.net/qq_31871785/article/details/86138291"},"\u4ece\u96f6\u5b66Elasticsearch\u7cfb\u5217\u2014\u2014JAVA API\u64cd\u4f5c")),(0,r.yg)("li",{parentName:"ol"},(0,r.yg)("a",{parentName:"li",href:"https://yqh.aliyun.com/detail/9912"},"\u5982\u4f55\u628aElasticsearch\u53d1\u6325\u5230\u6781\u81f4\uff1f")),(0,r.yg)("li",{parentName:"ol"},(0,r.yg)("a",{parentName:"li",href:"https://gitee.com/ymm-tech/ebatis"},"ebatis\u3010ebatis \u662f\u4e00\u4e2a\u7b80\u5355\u65b9\u4fbf\u4e0a\u624b\u7684 Elasticsearch ORM \u6846\u67b6\u3011"))))}u.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4963],{5680:(e,n,t)=>{t.d(n,{xA:()=>c,yg:()=>h});var a=t(6540);function r(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function l(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function s(e){for(var n=1;n=0||(r[t]=e[t]);return r}(e,n);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}var o=a.createContext({}),i=function(e){var n=a.useContext(o),t=n;return e&&(t="function"==typeof e?e(n):s(s({},n),e)),t},c=function(e){var n=i(e.components);return a.createElement(o.Provider,{value:n},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},y=a.forwardRef((function(e,n){var t=e.components,r=e.mdxType,l=e.originalType,o=e.parentName,c=p(e,["components","mdxType","originalType","parentName"]),d=i(t),y=r,h=d["".concat(o,".").concat(y)]||d[y]||u[y]||l;return t?a.createElement(h,s(s({ref:n},c),{},{components:t})):a.createElement(h,s({ref:n},c))}));function h(e,n){var t=arguments,r=n&&n.mdxType;if("string"==typeof e||r){var l=t.length,s=new Array(l);s[0]=y;var p={};for(var o in n)hasOwnProperty.call(n,o)&&(p[o]=n[o]);p.originalType=e,p[d]="string"==typeof e?e:r,s[1]=p;for(var i=2;i{t.r(n),t.d(n,{assets:()=>o,contentTitle:()=>s,default:()=>u,frontMatter:()=>l,metadata:()=>p,toc:()=>i});var a=t(8168),r=(t(6540),t(5680));const l={},s=void 0,p={unversionedId:"study/db/\u5168\u6587\u641c\u7d22\u5f15\u64ce/Elasticsearch",id:"study/db/\u5168\u6587\u641c\u7d22\u5f15\u64ce/Elasticsearch",title:"Elasticsearch",description:"ES\u7248\u672c",source:"@site/docs/study/db/\u5168\u6587\u641c\u7d22\u5f15\u64ce/Elasticsearch.md",sourceDirName:"study/db/\u5168\u6587\u641c\u7d22\u5f15\u64ce",slug:"/study/db/\u5168\u6587\u641c\u7d22\u5f15\u64ce/Elasticsearch",permalink:"/docs/study/db/\u5168\u6587\u641c\u7d22\u5f15\u64ce/Elasticsearch",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u7efc\u5408\u6982\u8ff0",permalink:"/docs/study/db/\u5168\u6587\u641c\u7d22\u5f15\u64ce/\u7efc\u5408\u6982\u8ff0"},next:{title:"InfluxDB",permalink:"/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/InfluxDB"}},o={},i=[{value:"ES\u7248\u672c",id:"es\u7248\u672c",level:2},{value:"ES\u57fa\u7840\u6982\u5ff5",id:"es\u57fa\u7840\u6982\u5ff5",level:2},{value:"\u5206\u9875",id:"\u5206\u9875",level:2},{value:"\u5206\u7247\u548c\u526f\u672c",id:"\u5206\u7247\u548c\u526f\u672c",level:2},{value:"\u5e38\u7528\u67e5\u8be2(curl)",id:"\u5e38\u7528\u67e5\u8be2curl",level:2},{value:"\u57fa\u7840\u6982\u5ff5",id:"\u57fa\u7840\u6982\u5ff5",level:3},{value:"\u67e5\u770b\u6240\u6709\u7d22\u5f15\u5e93",id:"\u67e5\u770b\u6240\u6709\u7d22\u5f15\u5e93",level:3},{value:"\u67e5\u770b\u67d0\u4e2a\u7d22\u5f15\u5e93\u4fe1\u606f",id:"\u67e5\u770b\u67d0\u4e2a\u7d22\u5f15\u5e93\u4fe1\u606f",level:3},{value:"\u8bbe\u7f6e\u67d0\u4e2a\u7d22\u5f15\u5e93\u4fe1\u606f",id:"\u8bbe\u7f6e\u67d0\u4e2a\u7d22\u5f15\u5e93\u4fe1\u606f",level:3},{value:"\u5206\u6790",id:"\u5206\u6790",level:3},{value:"\u5220\u9664\u6307\u5b9a\u7d22\u5f15\u5e93",id:"\u5220\u9664\u6307\u5b9a\u7d22\u5f15\u5e93",level:3},{value:"\u6df1\u5165\u641c\u7d22",id:"\u6df1\u5165\u641c\u7d22",level:3},{value:"\u65b0\u589e\u6570\u636e",id:"\u65b0\u589e\u6570\u636e",level:3},{value:"\u62f7\u8d1d\u7d22\u5f15\u5e93",id:"\u62f7\u8d1d\u7d22\u5f15\u5e93",level:3},{value:"\u540c\u4e00\u4e2a\u96c6\u7fa4\u62f7\u8d1d",id:"\u540c\u4e00\u4e2a\u96c6\u7fa4\u62f7\u8d1d",level:4},{value:"\u4e0d\u540c\u7684\u96c6\u7fa4\u62f7\u8d1d",id:"\u4e0d\u540c\u7684\u96c6\u7fa4\u62f7\u8d1d",level:4},{value:"\u62a5\u9519\u5904\u7406",id:"\u62a5\u9519\u5904\u7406",level:3},{value:"\u67e5\u8be2\u5206\u7247\u4fe1\u606f/\u6587\u6863\u603b\u6570/\u4e3b\u8282\u70b9",id:"\u67e5\u8be2\u5206\u7247\u4fe1\u606f\u6587\u6863\u603b\u6570\u4e3b\u8282\u70b9",level:3},{value:"\u9700\u8981\u5bc6\u7801\u65f6(nginx)",id:"\u9700\u8981\u5bc6\u7801\u65f6nginx",level:3},{value:"\u6a21\u677f",id:"\u6a21\u677f",level:3},{value:"\u521b\u5efa\u7d22\u5f15\u5e93",id:"\u521b\u5efa\u7d22\u5f15\u5e93",level:3},{value:"\u96c6\u7fa4\u72b6\u6001\u67e5\u770b",id:"\u96c6\u7fa4\u72b6\u6001\u67e5\u770b",level:3},{value:"\u5feb\u7167",id:"\u5feb\u7167",level:3},{value:"\u5220\u9664\u6570\u636e",id:"\u5220\u9664\u6570\u636e",level:3},{value:"es\u8bbf\u95ee\u6743\u9650",id:"es\u8bbf\u95ee\u6743\u9650",level:2},{value:"GEOIP",id:"geoip",level:2},{value:"\u76f8\u5173\u8d44\u6599",id:"\u76f8\u5173\u8d44\u6599",level:2}],c={toc:i},d="wrapper";function u(e){let{components:n,...t}=e;return(0,r.yg)(d,(0,a.A)({},c,t,{components:n,mdxType:"MDXLayout"}),(0,r.yg)("h2",{id:"es\u7248\u672c"},"ES\u7248\u672c"),(0,r.yg)("ol",null,(0,r.yg)("li",{parentName:"ol"},"\u76ee\u524d\u4f7f\u7528\u7684\u7248\u672c\u662f6.3.2\uff0c\u76f8\u5bf9\u5e94\u7684logstash/kibana/filebeat\u4e5f\u4f7f\u7528\u7684\u662f6.3.2\uff0cjava\u5bf9\u5e94\u7684jar\u5305client\u4e5f\u662f\u7528\u76846.3.2\uff1b")),(0,r.yg)("h2",{id:"es\u57fa\u7840\u6982\u5ff5"},"ES\u57fa\u7840\u6982\u5ff5"),(0,r.yg)("ol",null,(0,r.yg)("li",{parentName:"ol"},"Index\uff08\u7d22\u5f15-\u6570\u636e\u5e93\uff09\uff0c\u7d22\u5f15\u5305\u542b\u4e00\u5806\u6709\u76f8\u4f3c\u7ed3\u6784\u7684\u6587\u6863\u6570\u636e\uff0c\uff0c\u6bd4\u5982\u53ef\u4ee5\u6709\u4e00\u4e2a\u5ba2\u6237\u7d22\u5f15\uff0c\u5546\u54c1\u5206\u7c7b\u7d22\u5f15\uff0c\u8ba2\u5355\u7d22\u5f15\uff0c\u7d22\u5f15\u6709\u4e00\u4e2a\u540d\u79f0\u3002\u4e00\u4e2aindex\u5305\u542b\u5f88\u591adocument\uff0c\u4e00\u4e2aindex\u5c31\u4ee3\u8868\u4e86\u4e00\u7c7b\u7c7b\u4f3c\u7684\u6216\u8005\u76f8\u540c\u7684document\u3002\u6bd4\u5982\u8bf4\u5efa\u7acb\u4e00\u4e2aproduct index\uff0c\u5546\u54c1\u7d22\u5f15\uff0c\u91cc\u9762\u53ef\u80fd\u5c31\u5b58\u653e\u4e86\u6240\u6709\u7684\u5546\u54c1\u6570\u636e\uff0c\u6240\u6709\u7684\u5546\u54c1document\u3002\u5fc5\u987b\u662f\u82f1\u6587\u5c0f\u5199\u547d\u540d\u3002"),(0,r.yg)("li",{parentName:"ol"},(0,r.yg)("del",{parentName:"li"},"Type\uff08\u7c7b\u578b-\u8868\uff09\uff0c\u6bcf\u4e2a\u7d22\u5f15\u91cc\u90fd\u53ef\u4ee5\u6709\u4e00\u4e2a\u6216\u591a\u4e2atype\uff0ctype\u662findex\u4e2d\u7684\u4e00\u4e2a\u903b\u8f91\u6570\u636e\u5206\u7c7b\uff0c\u4e00\u4e2atype\u4e0b\u7684document\uff0c\u90fd\u6709\u76f8\u540c\u7684field\u3002")),(0,r.yg)("li",{parentName:"ol"},"Document\uff08\u6587\u6863-\u884c\uff09\uff0c\u6587\u6863\u662fes\u4e2d\u7684\u6700\u5c0f\u6570\u636e\u5355\u5143\uff0c\u4e00\u4e2adocument\u53ef\u4ee5\u662f\u4e00\u6761\u5ba2\u6237\u6570\u636e\uff0c\u4e00\u6761\u5546\u54c1\u5206\u7c7b\u6570\u636e\uff0c\u4e00\u6761\u8ba2\u5355\u6570\u636e\uff0c\u901a\u5e38\u7528JSON\u6570\u636e\u7ed3\u6784\u8868\u793a\uff0c\u6bcf\u4e2aindex\u4e0b\u7684type\u4e2d\uff0c\u90fd\u53ef\u4ee5\u53bb\u5b58\u50a8\u591a\u4e2adocument\u3002"),(0,r.yg)("li",{parentName:"ol"},"Field\uff08\u5b57\u6bb5-\u5217\uff09\uff0cField\u662fElasticsearch\u7684\u6700\u5c0f\u5355\u4f4d\u3002\u4e00\u4e2adocument\u91cc\u9762\u6709\u591a\u4e2afield\uff0c\u6bcf\u4e2afield\u5c31\u662f\u4e00\u4e2a\u6570\u636e\u5b57\u6bb5\u3002"),(0,r.yg)("li",{parentName:"ol"},"mapping\uff08\u6620\u5c04-\u7ea6\u675f\uff09\uff0c\u6570\u636e\u5982\u4f55\u5b58\u653e\u5230\u7d22\u5f15\u5bf9\u8c61\u4e0a\uff0c\u9700\u8981\u6709\u4e00\u4e2a\u6620\u5c04\u914d\u7f6e\uff0c\u5305\u62ec\uff1a\u6570\u636e\u7c7b\u578b\u3001\u662f\u5426\u5b58\u50a8\u3001\u662f\u5426\u5206\u8bcd\u7b49\u3002\u8fd9\u6837\u5c31\u521b\u5efa\u4e86\u4e00\u4e2a\u540d\u4e3ablog\u7684Index\u3002Type\u4e0d\u7528\u5355\u72ec\u521b\u5efa\uff0c\u5728\u521b\u5efaMapping \u65f6\u6307\u5b9a\u5c31\u53ef\u4ee5\u3002Mapping\u7528\u6765\u5b9a\u4e49Document\u4e2d\u6bcf\u4e2a\u5b57\u6bb5\u7684\u7c7b\u578b\uff0c\u5373\u6240\u4f7f\u7528\u7684 analyzer\u3001\u662f\u5426\u7d22\u5f15\u7b49\u5c5e\u6027\uff0c\u975e\u5e38\u5173\u952e\u7b49\u3002")),(0,r.yg)("p",null,(0,r.yg)("strong",{parentName:"p"},"\u6ce8\u610f\u4e8b\u9879\uff1a")),(0,r.yg)("p",null,"\u4eceES6.0\u5f00\u59cb\uff0c\u5b98\u65b9\u4fbf\u4e0d\u5efa\u8bae\u4e00\u4e2a\u7d22\u5f15\u4e2d\u521b\u5efa\u591a\u4e2a\u7c7b\u578b\uff1b\u5728ES7.0\u4e2d\uff0c\u66f4\u662f\u79fb\u9664\u4e86\u7c7b\u578b(Type)\u8fd9\u4e2a\u6982\u5ff5\u3002\u4e3a\u4ec0\u4e48\u5462\uff1f\n\u5728Elasticsearch\u7d22\u5f15\u4e2d\uff0c\u4e0d\u540c\u7c7b\u578b(Type)\u4e2d\u5177\u6709\u76f8\u540c\u540d\u79f0\u7684\u5b57\u6bb5\u5728\u5185\u90e8\u7531\u76f8\u540c\u7684Lucene\u5b57\u6bb5\u652f\u6301\u3002\u4e00\u4e2aindex\u4e2d\u591a\u4e2aType\u5728Lucene\u4e2d\u4f1a\u6709\u8bb8\u591a\u95ee\u9898\u3002\u5177\u4f53\u7684\u53ef\u4ee5\u53c2\u8003\u5b98\u65b9\u8bf4\u660e\u3002"),(0,r.yg)("h2",{id:"\u5206\u9875"},"\u5206\u9875"),(0,r.yg)("ol",null,(0,r.yg)("li",{parentName:"ol"},"\u6df1\u5ea6\u5206\u9875\uff0c\u7406\u89e3\u5728\u5206\u5e03\u5f0f\u7cfb\u7edf\u4e2d\u6df1\u5ea6\u5206\u9875\u662f\u6709\u95ee\u9898\u7684\uff0c\u6240\u4ee5\u4f7f\u7528\u6b64\u5206\u9875\u5728\u5bf9\u9700\u8981\u9650\u5236\u5206\u9875\u6570\u91cf\uff1b"),(0,r.yg)("li",{parentName:"ol"},"\u5feb\u7167\u5206\u9875(scroll)"),(0,r.yg)("li",{parentName:"ol"},"search_after\u5206\u9875")),(0,r.yg)("h2",{id:"\u5206\u7247\u548c\u526f\u672c"},"\u5206\u7247\u548c\u526f\u672c"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'//\u65b0\u589e\u7d22\u5f15\u7684\u540c\u65f6\u6dfb\u52a0\u5206\u7247\uff0c\u4e0d\u4f7f\u7528\u9ed8\u8ba4\u5206\u7247\uff0c\u5206\u7247\u7684\u6570\u91cf\n//\u4e00\u822c\u4ee5\uff08\u8282\u70b9\u6570*1.5\u62163\u500d\uff09\u6765\u8ba1\u7b97\uff0c\u6bd4\u5982\u67094\u4e2a\u8282\u70b9\uff0c\u5206\u7247\u6570\u91cf\u4e00\u822c\u662f6\u4e2a\u523012\u4e2a\uff0c\u6bcf\u4e2a\u5206\u7247\u4e00\u822c\u5206\u914d\u4e00\u4e2a\u526f\u672c\nPUT /testindex\n{\n "settings" : {\n "number_of_shards" : 5,\n "number_of_replicas" : 1\n }\n}\n')),(0,r.yg)("ol",null,(0,r.yg)("li",{parentName:"ol"},"\u4e00\u4e2a \u5206\u7247 \u662f\u4e00\u4e2a\u5e95\u5c42\u7684 \u5de5\u4f5c\u5355\u5143 \uff0c\u5b83\u4ec5\u4fdd\u5b58\u4e86\u5168\u90e8\u6570\u636e\u4e2d\u7684\u4e00\u90e8\u5206\u3002"),(0,r.yg)("li",{parentName:"ol"},"\u4e00\u4e2a\u5206\u7247\u662f\u4e00\u4e2a Lucene \u7684\u5b9e\u4f8b\uff0c\u4ee5\u53ca\u5b83\u672c\u8eab\u5c31\u662f\u4e00\u4e2a\u5b8c\u6574\u7684\u641c\u7d22\u5f15\u64ce\u3002"),(0,r.yg)("li",{parentName:"ol"},"\u4e00\u4e2a\u5206\u7247\u53ef\u4ee5\u662f \u4e3b \u5206\u7247\u6216\u8005 \u526f\u672c \u5206\u7247\u3002 \u7d22\u5f15\u5185\u4efb\u610f\u4e00\u4e2a\u6587\u6863\u90fd\u5f52\u5c5e\u4e8e\u4e00\u4e2a\u4e3b\u5206\u7247\uff0c\u6240\u4ee5\u4e3b\u5206\u7247\u7684\u6570\u76ee\u51b3\u5b9a\u7740\u7d22\u5f15\u80fd\u591f\u4fdd\u5b58\u7684\u6700\u5927\u6570\u636e\u91cf\u3002"),(0,r.yg)("li",{parentName:"ol"},"\u6280\u672f\u4e0a\u6765\u8bf4\uff0c\u4e00\u4e2a\u4e3b\u5206\u7247\u6700\u5927\u80fd\u591f\u5b58\u50a8 Integer.MAX_VALUE - 128 \u4e2a\u6587\u6863 ~= 21\u4ebf\u6761"),(0,r.yg)("li",{parentName:"ol"},"\u4e00\u4e2a\u526f\u672c\u5206\u7247\u53ea\u662f\u4e00\u4e2a\u4e3b\u5206\u7247\u7684\u62f7\u8d1d\u3002\u526f\u672c\u5206\u7247\u4f5c\u4e3a\u786c\u4ef6\u6545\u969c\u65f6\u4fdd\u62a4\u6570\u636e\u4e0d\u4e22\u5931\u7684\u5197\u4f59\u5907\u4efd\uff0c\u5e76\u4e3a\u641c\u7d22\u548c\u8fd4\u56de\u6587\u6863\u7b49\u8bfb\u64cd\u4f5c\u63d0\u4f9b\u670d\u52a1\u3002"),(0,r.yg)("li",{parentName:"ol"},"\u5728\u7d22\u5f15\u5efa\u7acb\u7684\u65f6\u5019\u5c31\u5df2\u7ecf\u786e\u5b9a\u4e86\u4e3b\u5206\u7247\u6570\uff0c\u4f46\u662f\u526f\u672c\u5206\u7247\u6570\u53ef\u4ee5\u968f\u65f6\u4fee\u6539\u3002\u8bfb\u64cd\u4f5c\u2014\u2014\u641c\u7d22\u548c\u8fd4\u56de\u6570\u636e\u2014\u2014\u53ef\u4ee5\u540c\u65f6\u88ab\u4e3b\u5206\u7247\xa0",(0,r.yg)("em",{parentName:"li"},"\u6216"),"\xa0\u526f\u672c\u5206\u7247\u6240\u5904\u7406\uff0c\u6240\u4ee5\u5f53\u4f60\u62e5\u6709\u8d8a\u591a\u7684\u526f\u672c\u5206\u7247\u65f6\uff0c\u4e5f\u5c06\u62e5\u6709\u8d8a\u9ad8\u7684\u541e\u5410\u91cf\u3002")),(0,r.yg)("h2",{id:"\u5e38\u7528\u67e5\u8be2curl"},"\u5e38\u7528\u67e5\u8be2(curl)"),(0,r.yg)("h3",{id:"\u57fa\u7840\u6982\u5ff5"},"\u57fa\u7840\u6982\u5ff5"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"#\nurl\u4e2d\u643a\u5e26?v\u8868\u793a\u5c55\u793a\u8868\u5934\nurl\u4e2d\u643a\u5e26?pretty\u8868\u793a\u5c55\u793a\u683c\u5f0f\u5316\nurl\u4e2d\u5e26\u7740?help\u67e5\u770b\u5217\u7684\u5b9a\u4e49\nurl\u4e2d\u5e26\u7740?h=a,b\u6307\u5b9a\u67e5\u770b\u67d0\u4e9b\u5217\n\n#\u6d4f\u89c8es\u670d\u52a1\u4fe1\u606f\ncurl -XGET http://127.0.0.1:9200\n")),(0,r.yg)("h3",{id:"\u67e5\u770b\u6240\u6709\u7d22\u5f15\u5e93"},"\u67e5\u770b\u6240\u6709\u7d22\u5f15\u5e93"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"#\u6839\u636e\u7d22\u5f15\u5e93\u540d\u79f0\u6392\u5e8f\ncurl -XGET 'http://127.0.0.1:9200/_cat/indices?v&s=index'\n#\u6839\u636e\u6587\u6863\u6570\u91cf\u6392\u5e8f\ncurl -XGET 'http://127.0.0.1:9200/_cat/indices?v&s=docs.count'\n#\u6839\u636e\u6587\u6863\u78c1\u76d8\u5b58\u50a8\u5927\u5c0f\u6392\u5e8f\ncurl -XGET 'http://127.0.0.1:9200/_cat/indices?v&s=store.size'\n#\u67e5\u770b\u6240\u6709\u7d22\u5f15\u5e93\u7684\u8bbe\u7f6e\u4fe1\u606f\ncurl -XGET 'http://127.0.0.1:9200/_all/_settings?pretty'\n#\u67d0\u4e2a\u7d22\u5f15\ncurl -XGET 'http://127.0.0.1:9200/_cat/indices/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}?v'\n")),(0,r.yg)("h3",{id:"\u67e5\u770b\u67d0\u4e2a\u7d22\u5f15\u5e93\u4fe1\u606f"},"\u67e5\u770b\u67d0\u4e2a\u7d22\u5f15\u5e93\u4fe1\u606f"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"#\u67e5\u770b\u67d0\u4e2a\u7d22\u5f15\u5e93\u7684aliases/mappings/settings\ncurl -XGET 'http://127.0.0.1:9200/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}?pretty'\n#\u67e5\u770b\u67d0\u4e2a\u7d22\u5f15\u5e93\u7684settings\ncurl -XGET 'http://127.0.0.1:9200/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}/_settings?pretty'\n#\u67e5\u770b\u67d0\u4e2a\u7d22\u5f15\u5e93\u7684mappings\ncurl -XGET 'http://127.0.0.1:9200/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}/_mappings?pretty'\n")),(0,r.yg)("h3",{id:"\u8bbe\u7f6e\u67d0\u4e2a\u7d22\u5f15\u5e93\u4fe1\u606f"},"\u8bbe\u7f6e\u67d0\u4e2a\u7d22\u5f15\u5e93\u4fe1\u606f"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'#\u8bbe\u7f6e\u67d0\u4e2a\u7d22\u5f15\u5e93\u7684settings \u526f\u672c\u6570\u91cf\uff0c\u526f\u672c\u6570\u91cf\u8d8a\u5408\u7406\u7684\u8d8a\u591a\uff0c\u4f1a\u63d0\u9ad8\u67e5\u8be2\u901f\u5ea6\ncurl -XPUT \'http://127.0.0.1:9200/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}/_settings\' \\\n-H "Content-Type: application/json" \\\n-d \'{"index":{"number_of_replicas":"1"}}\'\n#\u8bbe\u7f6e\u67d0\u4e2a\u7d22\u5f15\u5e93\u7684\u67d0\u4e2a\u5b57\u6bb5\u652f\u6301aggs\u5206\u6790 \u5982\u679c\u67d0\u4e2a\u5b57\u6bb5\u7684\u7c7b\u578b\u662f\u5bf9\u8c61\uff0c\u652f\u6301\u7528.\u8fd0\u7b97\u7b26\ncurl -XPUT \'http://127.0.0.1:9200/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}/_mappings/doc?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \'{"properties" : {"url" : {"type" : "text", "fielddata" : true }}}\'\n')),(0,r.yg)("h3",{id:"\u5206\u6790"},"\u5206\u6790"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'#\u6839\u636e\u67d0\u4e2a\u5b57\u6bb5\u5206\u6790\u6587\u6863\u6570\u91cf \u5982\u679c\u67d0\u4e2a\u5b57\u6bb5\u7684\u7c7b\u578b\u662f\u5bf9\u8c61\uff0c\u652f\u6301\u7528.\u8fd0\u7b97\u7b26 \n#\u8fd9\u4e2a\u5b57\u6bb5\u9700\u8981\u652f\u6301fielddata=true\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \'{"size" : 0 ,"aggs": {"all_interests": {"terms": { "field": "url" }}}}\'\n#\u6839\u636e\u67d0\u4e2a\u5b57\u6bb5\u5148\u67e5\u8be2\u518d\u5206\u6790\u6587\u6863\u6570\u91cf\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \'{\n"query":{"match":{"method":"POST"}},\n"size" : 0 ,"aggs": {"all_interests": {"terms": { "field": "uaj.name" }}}}\'\n')),(0,r.yg)("h3",{id:"\u5220\u9664\u6307\u5b9a\u7d22\u5f15\u5e93"},"\u5220\u9664\u6307\u5b9a\u7d22\u5f15\u5e93"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"#\ncurl -XDELETE 'http://127.0.0.1:9200/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}?pretty'\n")),(0,r.yg)("h3",{id:"\u6df1\u5165\u641c\u7d22"},"\u6df1\u5165\u641c\u7d22"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'##############################################\u7ed3\u6784\u5316\u641c\u7d22\n# \u7ed3\u6784\u5316\u641c\u7d22-\u7cbe\u786e\u503c\u67e5\u627e\ncurl -XPOST \\\nhttp://127.0.0.1:9200/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}/_search?pretty \\\n-H "Content-Type: application/json" \\\n-d \'{ "sort": [{"@timestamp": {"order": "asc"}}], \n"from":0,"size": 10,"query":{"term":{"code":"200"}}}\'\n\ncurl -XPOST \\\nhttp://127.0.0.1:9400/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}/_search?pretty \\\n-H "Content-Type: application/json" \\\n-d \'{ \n"from":0,"size": 10,"query":{"term":{"_id":"uNp30XIB0LLx2kagtfJo"}}}\'\n# \u7ed3\u6784\u5316\u641c\u7d22-\u7cbe\u786e\u503c\u67e5\u627e\n# \u901a\u5e38\u5f53\u67e5\u627e\u4e00\u4e2a\u7cbe\u786e\u503c\u7684\u65f6\u5019\uff0c\u6211\u4eec\u4e0d\u5e0c\u671b\u5bf9\u67e5\u8be2\u8fdb\u884c\u8bc4\u5206\u8ba1\u7b97\u3002\u53ea\u5e0c\u671b\u5bf9\u6587\u6863\u8fdb\u884c\u5305\u62ec\u6216\u6392\u9664\u7684\u8ba1\u7b97\uff0c\n# \u6240\u4ee5\u6211\u4eec\u4f1a\u4f7f\u7528 constant_score \u67e5\u8be2\u4ee5\u975e\u8bc4\u5206\u6a21\u5f0f\u6765\u6267\u884c term \u67e5\u8be2\u5e76\u4ee5\u4e00\u4f5c\u4e3a\u7edf\u4e00\u8bc4\u5206\u3002\ncurl -XPOST \\\nhttp://127.0.0.1:9200/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}/_search?pretty \\\n-H "Content-Type: application/json" \\\n-d \'{ "sort": [{"@timestamp": {"order": "desc"}}], \n"from":0,"size": 10,"query":{\n"constant_score":{\n "filter":{\n "term":{"code":"200"}\n }\n}\n}}\'\n#\ncurl -XPOST \\\nhttp://127.0.0.1:9200/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}/_search?pretty \\\n-H "Content-Type: application/json" \\\n-d \'{ "sort": [{"@timestamp": {"order": "desc"}}], \n"from":0,"size": 10,"query":{\n"constant_score":{\n "filter":{\n "range":{"code":{\n "lte": "now"\n }}\n }\n}\n}}\'\n\n\n\n##############################################\u5168\u6587\u641c\u7d22\n# \u5168\u6587\u641c\u7d22-\u67e5\u8be2\u6240\u6709-\u6392\u5e8f\ncurl -XPOST \\\nhttp://127.0.0.1:9200/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}/_search?pretty \\\n-H "Content-Type: application/json" \\\n-d \'{ "sort": [{"@timestamp": {"order": "desc"}}], \n"from":0,"size": 10,"query":{"match_all":{}}}\'\n# \u5168\u6587\u641c\u7d22-\u67d0\u4e2a\u5b57\u6bb5\u67e5\u8be2\ncurl -XPOST \\\nhttp://127.0.0.1:9200/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}.20.6.11/_search?pretty \\\n-H "Content-Type: application/json" \\\n-d \'{ "from":0,"size": 10,"query":{"match":{"site":"m"}}}\'\n# \u6a21\u7cca\u67e5\u8be2\ncurl -XPOST \\\nhttp://127.0.0.1:9200/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}/_search?pretty \\\n-H "Content-Type: application/json" \\\n-d \'{ "from":0,"size": 10,"query": {\n"wildcard": {\n "site": "*show.html*"\n}\n}}\'\ncurl -XPOST \\\nhttp://127.0.0.1:9200/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}/_search?pretty \\\n-H "Content-Type: application/json" \\\n-d \'{ "from":0,"size": 10,"query": {\n"bool":{\n "must_not":[\n {"term":{"market.keyword":"\u79d1\u521b\u677f"}}\n ,{"wildcard": {"name": "*ST*"}}\n ]\n}\n}}\'\n\n\n')),(0,r.yg)("h3",{id:"\u65b0\u589e\u6570\u636e"},"\u65b0\u589e\u6570\u636e"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'#POST\u63d0\u4ea4 \u81ea\u52a8\u751f\u6210_id\ncurl -XPOST \\\nhttp://127.0.0.1:9200/stock/test \\\n-H "Content-Type: application/json" \\\n-d \'{"author" : "Doug Cutting"}\' \n#PUT\u63d0\u4ea4 \u6307\u5b9a_id\ncurl -XPOST \\\nhttp://127.0.0.1:9200/stock/test/1 \\\n-H "Content-Type: application/json" \\\n-d \'{"author" : "Doug Cutting"}\' \n')),(0,r.yg)("h3",{id:"\u62f7\u8d1d\u7d22\u5f15\u5e93"},"\u62f7\u8d1d\u7d22\u5f15\u5e93"),(0,r.yg)("h4",{id:"\u540c\u4e00\u4e2a\u96c6\u7fa4\u62f7\u8d1d"},"\u540c\u4e00\u4e2a\u96c6\u7fa4\u62f7\u8d1d"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'# x > .temp\n....\n#reindex one > bak\ncurl -XPOST \'http://127.0.0.1:9200/_reindex\' \\\n-H "Content-Type: application/json" \\\n-d \'{\n "source": {"index": "{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}.temp"},\n "dest": {"index": "{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}"}}\'\n#\n#curl -XDELETE \'http://127.0.0.1:9200/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}?pretty\'\n#reindex bak > one\ncurl -XPOST \'http://127.0.0.1:9200/_reindex\' \\\n-H "Content-Type: application/json" \\\n-d \'{\n "source": {"index": "{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}"},\n "dest": {"index": "{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}"}}\'\n# restart logstash-xxx\n...\n#reindex temp > one\ncurl -XPOST \'http://127.0.0.1:9200/_reindex\' \\\n-H "Content-Type: application/json" \\\n-d \'{\n "source": {"index": "{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}.temp"},\n "dest": {"index": "{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}"}}\'\n#\n#curl -XDELETE \'http://127.0.0.1:9200/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}.bak?pretty\'\n#curl -XDELETE \'http://127.0.0.1:9200/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}.temp?pretty\'\n')),(0,r.yg)("h4",{id:"\u4e0d\u540c\u7684\u96c6\u7fa4\u62f7\u8d1d"},"\u4e0d\u540c\u7684\u96c6\u7fa4\u62f7\u8d1d"),(0,r.yg)("p",null,"\u6ce8\u610f\uff1a\n\u5fc5\u987b\u914d\u7f6ereindex.remote.whitelist=172.19.184.169:9200"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'#reindex one > bak --{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}\ncurl -XPOST \'http://127.0.0.1:9200/_reindex\' \\\n-H "Content-Type: application/json" \\\n-d \'{\n "source": {"index": "prod_device_active","remote":{"host":"http://172.19.184.169:9200"}},\n "dest": {"index": "prod_device_active"}}\'\n#reindex one > bak --prod_device_address_statistics\ncurl -XPOST \'http://127.0.0.1:9200/_reindex\' \\\n-H "Content-Type: application/json" \\\n-d \'{\n "source": {"index": "prod_device_address_statistics","remote":{"host":"http://172.19.184.169:9200"}},\n "dest": {"index": "prod_device_address_statistics"}}\'\n#reindex one > bak --prod_device_product_model_statistics\ncurl -XPOST \'http://127.0.0.1:9200/_reindex\' \\\n-H "Content-Type: application/json" \\\n-d \'{\n "source": {"index": "prod_device_product_model_statistics","remote":{"host":"http://172.19.184.169:9200"}},\n "dest": {"index": "prod_device_product_model_statistics"}}\'\n#reindex one > bak --prod_ranking\ncurl -XPOST \'http://127.0.0.1:9200/_reindex\' \\\n-H "Content-Type: application/json" \\\n-d \'{\n "source": {"index": "prod_ranking","remote":{"host":"http://172.19.184.169:9200"}},\n "dest": {"index": "prod_ranking.bak"}}\'\n#reindex one > bak --prod_user_func_flow_for_user_op_for_res\ncurl -XPOST \'http://127.0.0.1:9200/_reindex\' \\\n-H "Content-Type: application/json" \\\n-d \'{\n "source": {"index": "prod_user_func_flow_for_user_op_for_res","remote":{"host":"http://192.168.0.33:9200"}},\n "dest": {"index": "prod_user_func_flow_for_user_op_for_res"}}\'\n')),(0,r.yg)("h3",{id:"\u62a5\u9519\u5904\u7406"},"\u62a5\u9519\u5904\u7406"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'#\u5982\u679c\u62a5\u9519\u5982\u4e0b \u9700\u8981\u6267\u884c\n#Fielddata is disabled on text fields by default. Set fielddata=true on [ipo_date] in order to load fielddata in memory by uninverting the inverted index. Note that this can however use significant memory. Alternatively use a keyword field instead.\ncurl -i -H "Content-Type:application/json" \\\n-XPUT http://127.0.0.1:9200/daily/_mapping/doc/?pretty \\\n-d \'{"doc":{"properties":{"trade_date":{"type":"text","fielddata":true}}}}\'\n\n#\u89e3\u51b3\u9519\u8bef retrying failed action with response code: 403 ({"type"=>"cluster_block_exception", "reason"=>"block\ncurl -XPUT -H \'Content-Type: application/json\' \\\nhttp://127.0.0.1:9200/_all/_settings \\\n-d \'{"index.blocks.read_only_allow_delete": null}\'\n')),(0,r.yg)("h3",{id:"\u67e5\u8be2\u5206\u7247\u4fe1\u606f\u6587\u6863\u603b\u6570\u4e3b\u8282\u70b9"},"\u67e5\u8be2\u5206\u7247\u4fe1\u606f/\u6587\u6863\u603b\u6570/\u4e3b\u8282\u70b9"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"#\u67e5\u8be2\u67d0\u4e2a\u7d22\u5f15\u5e93\u7684\u5206\u7247\u4fe1\u606f\ncurl -XGET 'http://127.0.0.1:9200/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}/_search_shards?pretty'\n#\u67e5\u8be2\u67d0\u4e2a\u7d22\u5f15\u5e93\u7684\u6587\u6863\u603b\u6570\u91cf\ncurl -XGET 'http://127.0.0.1:9200/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}/doc/_count?pretty'\n#\u67e5\u8be2\u4e3b\u8282\u70b9\ncurl -XGET 'http://127.0.0.1:9200/_cat/master?v'\n")),(0,r.yg)("h3",{id:"\u9700\u8981\u5bc6\u7801\u65f6nginx"},"\u9700\u8981\u5bc6\u7801\u65f6(nginx)"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'#\u9700\u8981\u5bc6\u7801\u65f6 \u4e3e\u4f8b\ncurl -XGET \\\n--user admin:Aa0123 \\\n#\u67e5\u770b\u67d0\u4e2a\u7d22\u5f15\u5e93\u4e0b\u7684\u524d1000\u6761\u6570\u636e\ncurl -XGET --user admin:Aa0123 \\\n\'http://47.103.38.240:8443/rc_ranking/_search\' \\\n-H "Content-Type: application/json" \\\n-d \'{ "sort": [{"@timestamp": {"order": "desc"}}],\\\n"from":0,"size": 1000,"query":{"match_all":{}}}\'\n')),(0,r.yg)("h3",{id:"\u6a21\u677f"},"\u6a21\u677f"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"#\u67e5\u8be2\u6240\u6709\u6a21\u677f\ncurl -XGET 'http://127.0.0.1:9200/_template?pretty'\ncurl -XGET 'http://127.0.0.1:9200/_template?pretty' > t.json\n#\u65b0\u589e\u67d0\u4e2a\u6a21\u677f--logstash-index-template-nginx-api\ncurl -XPUT http://127.0.0.1:9200/_template/logstash-index-template-nginx-api?pretty \\\n-H \"Content-Type: application/json\" \\\n-d @logstash-index-template-nginx-api.json\n\n#\u65b0\u589e\u67d0\u4e2a\u6a21\u677f--logstash-index-template-userop\ncurl -XPUT http://127.0.0.1:9200/_template/logstash-index-template-userop?pretty \\\n-H \"Content-Type: application/json\" \\\n-d @logstash-index-template-userop.json\n\n#\u65b0\u589e\u67d0\u4e2a\u6a21\u677f--logstash-index-template-alarm-data-history.json\ncurl -XPUT http://127.0.0.1:9200/_template/logstash-index-template-alarm-data-history?pretty \\\n-H \"Content-Type: application/json\" \\\n-d @logstash-index-template-alarm-data-history.json\n\n\n#\u5220\u9664\u67d0\u4e2a\u6a21\u677f\ncurl -XDELETE 'http://127.0.0.1:9200/_template/logstash-index-template-nginx-api?pretty'\n")),(0,r.yg)("h3",{id:"\u521b\u5efa\u7d22\u5f15\u5e93"},"\u521b\u5efa\u7d22\u5f15\u5e93"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"# \u521b\u5efa\u7d22\u5f15\u5e93\ncurl -XPUT 'http://127.0.0.1:9200/stock?pretty' \\\n-H 'Content-Type: application/json' \\\n-d '{\n \"settings\" : {\n \"number_of_shards\" : 5,\n \"number_of_replicas\" : 1\n }\n}'\n")),(0,r.yg)("h3",{id:"\u96c6\u7fa4\u72b6\u6001\u67e5\u770b"},"\u96c6\u7fa4\u72b6\u6001\u67e5\u770b"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"# \u670d\u52a1\u68c0\u6d4b\ncurl -XGET 'http://127.0.0.1:9200/_cat/health?v'\n# \u67e5\u770b\u6240\u6709\u96c6\u7fa4\u8282\u70b9\ncurl -XGET 'http://127.0.0.1:9200/_cat/allocation?v'\n# \u67e5\u770b\u96c6\u7fa4\u6240\u6709\u5206\u7247\u5206\u5e03\u60c5\u51b5\ncurl -XGET 'http://127.0.0.1:9200/_cat/shards?v'\n# \u67e5\u770b\u96c6\u7fa4\u67d0\u4e2a\u7d22\u5f15\u7684\u5206\u7247\u5206\u5e03\u60c5\u51b5\ncurl -XGET 'http://127.0.0.1:9200/_cat/shards/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}?v'\n# \u67e5\u770b\u96c6\u7fa4\u7684\u4e3b\u8282\u70b9\ncurl -XGET 'http://127.0.0.1:9200/_cat/master?v'\n# \u67e5\u770b\u96c6\u7fa4\u7684\u6240\u6709\u6570\u636e\u8282\u70b9\ncurl -XGET 'http://127.0.0.1:9200/_cat/nodes?v'\n# \u67e5\u770b\u96c6\u7fa4\u7684\u6240\u6709\u6bb5(\u6570\u636e\u96c6)\ncurl -XGET 'http://127.0.0.1:9200/_cat/segments?v'\n# \u67e5\u770b\u96c6\u7fa4\u67d0\u4e2a\u7d22\u5f15\u7684\u6bb5\u5206\u5e03\u60c5\u51b5\ncurl -XGET 'http://127.0.0.1:9200/_cat/segments/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}?v'\n# \u67e5\u770b\u96c6\u7fa4\u7684\u6240\u6709\u6587\u6863\u6570\u91cf\ncurl -XGET 'http://127.0.0.1:9200/_cat/count?v'\n# \u67e5\u770b\u96c6\u7fa4\u67d0\u4e2a\u7d22\u5f15\u7684\u6587\u6863\u6570\u91cf\ncurl -XGET 'http://127.0.0.1:9200/_cat/count/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}?v'\n# \u67e5\u770b\u96c6\u7fa4\u7684\u6240\u6709\u53d1\u73b0\u673a\u5236\ncurl -XGET 'http://127.0.0.1:9200/_cat/recovery?v'\n# \u67e5\u770b\u96c6\u7fa4\u67d0\u4e2a\u7d22\u5f15\u7684\u53d1\u73b0\u673a\u5236\ncurl -XGET 'http://127.0.0.1:9200/_cat/recovery/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}?v'\n# \u67e5\u770b\u96c6\u7fa4\u7684\u6240\u6709\u963b\u585e\u4efb\u52a1\uff1f\ncurl -XGET 'http://127.0.0.1:9200/_cat/pending_tasks?v'\n# \u67e5\u770b\u96c6\u7fa4\u7684\u6240\u6709\u522b\u540d\ncurl -XGET 'http://127.0.0.1:9200/_cat/aliases?v'\n# \u67e5\u770b\u96c6\u7fa4\u67d0\u4e2a\u7d22\u5f15\u7684\u522b\u540d\ncurl -XGET 'http://127.0.0.1:9200/_cat/aliases/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}?v'\n# \u67e5\u770b\u96c6\u7fa4\u7684\u6240\u6709\u7ebf\u7a0b\u6c60\ncurl -XGET 'http://127.0.0.1:9200/_cat/thread_pool?v'\n# \u67e5\u770b\u96c6\u7fa4\u7684\u6240\u6709\u63d2\u4ef6\u5217\u8868\ncurl -XGET 'http://127.0.0.1:9200/_cat/plugins?v'\n# \u67e5\u770b\u96c6\u7fa4\u7684\u6240\u6709fielddata\ncurl -XGET 'http://127.0.0.1:9200/_cat/fielddata?v'\ncurl -XGET 'http://127.0.0.1:9200/_cat/fielddata/{fields}?v'\n# \u67e5\u770b\u96c6\u7fa4\u7684\u6240\u6709\u8282\u70b9\u7684\u8282\u70b9\u5c5e\u6027\ncurl -XGET 'http://127.0.0.1:9200/_cat/nodeattrs?v'\n")),(0,r.yg)("h3",{id:"\u5feb\u7167"},"\u5feb\u7167"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'#\u67e5\u770b\u5feb\u7167\u5b58\u50a8\u4ed3\u5e93\u5217\u8868\ncurl -X ET "127.0.0.1:9200/_cat/repositories?v"\n#\u67e5\u770b\u67d0\u4e2a\u5feb\u7167\u5b58\u50a8\u4ed3\u5e93\u7684\u5feb\u7167\u5217\u8868\ncurl -XGET "127.0.0.1:9200/_snapshot/snapshots/_all?pretty"\n#\u6ce8\u518c\u5feb\u7167\u5b58\u50a8\u5e93\ncurl -XPUT \\\nhttp://127.0.0.1:9200/_snapshot/snapshots?pretty \\\n-H "Content-Type: application/json" \\\n-d \'{ "type":"fs","settings":{"location":"/usr/share/elasticsearch/snapshots"}}\'\n#\u67e5\u770b\u5feb\u7167\u5b58\u50a8\u5e93\ncurl -XGET \\\nhttp://127.0.0.1:9200/_snapshot?pretty\n#\u6267\u884c\u5feb\u7167\u5b58\u50a8\u5e93\ncurl -XPUT \\\n\'http://127.0.0.1:9200/_snapshot/snapshots/snapshot_02?wait_for_completion=true\'\n#\u67e5\u770b\u6267\u884c\u5feb\u7167\u5b58\u50a8\u5e93\u7684\u7ed3\u679c\ncurl -XGET \\\nhttp://127.0.0.1:9200/_snapshot/snapshots/snapshot_02?pretty\n#\u5220\u9664\u5feb\u7167\u5b58\u50a8\u5e93\ncurl -XDELETE "127.0.0.1:9200/_snapshot/snapshots?pretty"\n#\u5220\u9664\u5feb\u7167\ncurl -XDELETE "127.0.0.1:9200/_snapshot/snapshots/snapshot_02?pretty"\n#\u6253\u5305\ncd /mnt/docker/es.1\ntar czvf snapshots.tar.gz ./snapshots/*\n#############\u76ee\u7684\u5730\ncd /mnt/docker/es.1\n#upload an tar\ntar xzvf snapshots.tar.gz \n#\u6ce8\u518c\u5feb\u7167\u5b58\u50a8\u5e93\ncurl -XPUT \\\nhttp://127.0.0.1:9200/_snapshot/snapshots?pretty \\\n-H "Content-Type: application/json" \\\n-d \'{ "type":"fs","settings":{"location":"/usr/share/elasticsearch/snapshots"}}\'\n#\u8fd8\u539f\u5feb\u7167\u5b58\u50a8\u5e93\ncurl -XPOST \\\n\'http://127.0.0.1:9200/_snapshot/snapshots/snapshot_02/_restore?wait_for_completion=true\'\n')),(0,r.yg)("h3",{id:"\u5220\u9664\u6570\u636e"},"\u5220\u9664\u6570\u636e"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'#\u6839\u636e\u65f6\u95f4\u5220\u9664\u90e8\u5206\u6570\u636e\ncurl -XPOST \\\nhttp://127.0.0.1:9200/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}/_delete_by_query?pretty \\\n-H "Content-Type: application/json" \\\n-d \'{ "query": {\n "range": {\n "@timestamp": {\n "lt": "2022-10-01T00:00:00Z"\n }\n }\n } }\'\n#\u5237\u65b0\u7d22\u5f15 \u5220\u9664 Elasticsearch \u7d22\u5f15\u4e2d\u7684\u90e8\u5206\u6570\u636e\u540e\uff0c\u78c1\u76d8\u4e0a\u53ef\u80fd\u4f1a\u51fa\u73b0\u4e0d\u5fc5\u8981\u7684\u788e\u7247\u3002\u4e3a\u4e86\u56de\u6536\u8fd9\u4e9b\u78c1\u76d8\u7a7a\u95f4\uff0c\u60a8\u53ef\u4ee5\u8fd0\u884c\u4e00\u6b21\u7d22\u5f15\u5237\u65b0\u64cd\u4f5c\uff0c\u8fd9\u5c06\u5220\u9664\u5df2\u6807\u8bb0\u4e3a\u5220\u9664\u4f46\u672a\u5b9e\u9645\u5220\u9664\u7684\u6587\u6863\uff0c\u5e76\u91cd\u65b0\u7ec4\u7ec7\u5269\u4f59\u6587\u6863\u4ee5\u51cf\u5c11\u788e\u7247\u3002\ncurl -XPOST \\\nhttp://127.0.0.1:9200/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}/_refresh?pretty \\\n-H "Content-Type: application/json" \\\n-d \'{}\'\n')),(0,r.yg)("p",null,"#\u5f3a\u5236\u5408\u5e76\ncurl -XPOST \\\n",(0,r.yg)("a",{parentName:"p",href:"http://127.0.0.1:9200/%7B%E5%85%B7%E4%BD%93%E7%9A%84%E7%B4%A2%E5%BC%95%E5%BA%93%7D/_forcemerge?only_expunge_deletes=true"},"http://127.0.0.1:9200/{\u5177\u4f53\u7684\u7d22\u5f15\u5e93}/_forcemerge?only_expunge_deletes=true")," \\\n-H \"Content-Type: application/json\" \\\n-d '{}'"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre"},"\n## \u8fd1\u5b9e\u65f6\u641c\u7d22/refresh\n\n\u5728 Elasticsearch \u4e2d\uff0c\u5199\u5165\u548c\u6253\u5f00\u4e00\u4e2a\u65b0\u6bb5\u7684\u8f7b\u91cf\u7684\u8fc7\u7a0b\u53eb\u505a refresh \u3002 \u9ed8\u8ba4\u60c5\u51b5\u4e0b\u6bcf\u4e2a\u5206\u7247\u4f1a\u6bcf\u79d2\u81ea\u52a8\u5237\u65b0\u4e00\u6b21\u3002\u8fd9\u5c31\u662f\u4e3a\u4ec0\u4e48\u6211\u4eec\u8bf4 Elasticsearch \u662f \u8fd1 \u5b9e\u65f6\u641c\u7d22: \u6587\u6863\u7684\u53d8\u5316\u5e76\u4e0d\u662f\u7acb\u5373\u5bf9\u641c\u7d22\u53ef\u89c1\uff0c\u4f46\u4f1a\u5728\u4e00\u79d2\u4e4b\u5185\u53d8\u4e3a\u53ef\u89c1\u3002\n\n\u8fd9\u4e9b\u884c\u4e3a\u53ef\u80fd\u4f1a\u5bf9\u65b0\u7528\u6237\u9020\u6210\u56f0\u60d1: \u4ed6\u4eec\u7d22\u5f15\u4e86\u4e00\u4e2a\u6587\u6863\u7136\u540e\u5c1d\u8bd5\u641c\u7d22\u5b83\uff0c\u4f46\u5374\u6ca1\u6709\u641c\u5230\u3002\u8fd9\u4e2a\u95ee\u9898\u7684\u89e3\u51b3\u529e\u6cd5\u662f\u7528 refresh API \u6267\u884c\u4e00\u6b21\u624b\u52a8\u5237\u65b0:\n```shell\nPOST /_refresh \nPOST /blogs/_refresh \n")),(0,r.yg)("h2",{id:"es\u8bbf\u95ee\u6743\u9650"},"es\u8bbf\u95ee\u6743\u9650"),(0,r.yg)("p",null,"\u56e0\u4e3a\u5f00\u6e90\u7684es\u662f\u4e0d\u5e26\u8bbf\u95ee\u6743\u9650\u63a7\u5236\u7684\uff0c\u5e76\u4e0d\u80fd\u7528\u4e8e\u751f\u4ea7\u73af\u5883\uff1b\u5546\u4e1a\u7248\u63d2\u4ef6x-pack\u662f\u652f\u6301\u7528\u6237\u6743\u9650\u7684\uff0c\u4f46\u662f\u6536\u8d39\u3002\n\u53ef\u4ee5\u4f7f\u7528nginx\u589e\u52a0\u8bbf\u95ee\u6743\u9650\u6765\u65b9\u5411\u4ee3\u7406es\uff0c\u4f46\u662fes\u76849200/9300\u7aef\u53e3\u4e0d\u80fd\u5916\u7f51\u5f00\u653e\uff1b"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'#\u5b89\u88c5httpd-tools\nyum install httpd-tools\nmkdir /usr/local/nginx/conf/passwd\nhtpasswd -c /usr/local/nginx/conf/passwd/es admin\n#nginx\u914d\u7f6e\u53cd\u5411\u4ee3\u7406\u589e\u52a0\nserver\n{\n listen 8443;\n location / {\n proxy_set_header Host $host;\n proxy_set_header X-Forwarded-For $remote_addr;\n proxy_pass http://172.17.0.1:9200;\n proxy_connect_timeout 18000;\n proxy_send_timeout 18000;\n proxy_read_timeout 18000;\n #\n auth_basic "Please input password";\n auth_basic_user_file /usr/local/nginx/conf/passwd/es;\n } \n}\n')),(0,r.yg)("h2",{id:"geoip"},"GEOIP"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"#\nyum install GeoIP-data -y\n")),(0,r.yg)("h2",{id:"\u76f8\u5173\u8d44\u6599"},"\u76f8\u5173\u8d44\u6599"),(0,r.yg)("ol",null,(0,r.yg)("li",{parentName:"ol"},(0,r.yg)("a",{parentName:"li",href:"https://blog.csdn.net/qq_31871785/article/details/86138291"},"\u4ece\u96f6\u5b66Elasticsearch\u7cfb\u5217\u2014\u2014JAVA API\u64cd\u4f5c")),(0,r.yg)("li",{parentName:"ol"},(0,r.yg)("a",{parentName:"li",href:"https://yqh.aliyun.com/detail/9912"},"\u5982\u4f55\u628aElasticsearch\u53d1\u6325\u5230\u6781\u81f4\uff1f")),(0,r.yg)("li",{parentName:"ol"},(0,r.yg)("a",{parentName:"li",href:"https://gitee.com/ymm-tech/ebatis"},"ebatis\u3010ebatis \u662f\u4e00\u4e2a\u7b80\u5355\u65b9\u4fbf\u4e0a\u624b\u7684 Elasticsearch ORM \u6846\u67b6\u3011"))))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/0ad179ee.90a61ceb.js b/assets/js/0ad179ee.47840986.js similarity index 98% rename from assets/js/0ad179ee.90a61ceb.js rename to assets/js/0ad179ee.47840986.js index 02025fb65..a3433792d 100644 --- a/assets/js/0ad179ee.90a61ceb.js +++ b/assets/js/0ad179ee.47840986.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9121],{5680:(e,t,r)=>{r.d(t,{xA:()=>s,yg:()=>m});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var p=n.createContext({}),l=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},s=function(e){var t=l(e.components);return n.createElement(p.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,i=e.originalType,p=e.parentName,s=a(e,["components","mdxType","originalType","parentName"]),u=l(r),y=o,m=u["".concat(p,".").concat(y)]||u[y]||d[y]||i;return r?n.createElement(m,c(c({ref:t},s),{},{components:r})):n.createElement(m,c({ref:t},s))}));function m(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=r.length,c=new Array(i);c[0]=y;var a={};for(var p in t)hasOwnProperty.call(t,p)&&(a[p]=t[p]);a.originalType=e,a[u]="string"==typeof e?e:o,c[1]=a;for(var l=2;l{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>c,default:()=>d,frontMatter:()=>i,metadata:()=>a,toc:()=>l});var n=r(8168),o=(r(6540),r(5680));const i={},c=void 0,a={unversionedId:"study/competitive/TP-LINK",id:"study/competitive/TP-LINK",title:"TP-LINK",description:"SD-VPN",source:"@site/docs/study/competitive/TP-LINK.md",sourceDirName:"study/competitive",slug:"/study/competitive/TP-LINK",permalink:"/docs/study/competitive/TP-LINK",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"CMP-DMP-AEP-BAP",permalink:"/docs/study/competitive/CMP-DMP-AEP-BAP"},next:{title:"ThingsCloud",permalink:"/docs/study/competitive/ThingsCloud"}},p={},l=[{value:"SD-VPN",id:"sd-vpn",level:3}],s={toc:l},u="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(u,(0,n.A)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"sd-vpn"},"SD-VPN"),(0,o.yg)("p",null,(0,o.yg)("a",{parentName:"p",href:"https://www.tp-link.com.cn/"},"\u5b98\u7f51")),(0,o.yg)("p",null,(0,o.yg)("a",{parentName:"p",href:"https://smb.tp-link.com.cn/service/detail_article_4777.html"},"SDN-VPN \u4f7f\u7528\u8bf4\u660e\u4ecb\u7ecd")))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9121],{5680:(e,t,r)=>{r.d(t,{xA:()=>s,yg:()=>m});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var p=n.createContext({}),l=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},s=function(e){var t=l(e.components);return n.createElement(p.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,i=e.originalType,p=e.parentName,s=a(e,["components","mdxType","originalType","parentName"]),u=l(r),y=o,m=u["".concat(p,".").concat(y)]||u[y]||d[y]||i;return r?n.createElement(m,c(c({ref:t},s),{},{components:r})):n.createElement(m,c({ref:t},s))}));function m(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=r.length,c=new Array(i);c[0]=y;var a={};for(var p in t)hasOwnProperty.call(t,p)&&(a[p]=t[p]);a.originalType=e,a[u]="string"==typeof e?e:o,c[1]=a;for(var l=2;l{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>c,default:()=>d,frontMatter:()=>i,metadata:()=>a,toc:()=>l});var n=r(8168),o=(r(6540),r(5680));const i={},c=void 0,a={unversionedId:"study/competitive/TP-LINK",id:"study/competitive/TP-LINK",title:"TP-LINK",description:"SD-VPN",source:"@site/docs/study/competitive/TP-LINK.md",sourceDirName:"study/competitive",slug:"/study/competitive/TP-LINK",permalink:"/docs/study/competitive/TP-LINK",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"CMP-DMP-AEP-BAP",permalink:"/docs/study/competitive/CMP-DMP-AEP-BAP"},next:{title:"ThingsCloud",permalink:"/docs/study/competitive/ThingsCloud"}},p={},l=[{value:"SD-VPN",id:"sd-vpn",level:3}],s={toc:l},u="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(u,(0,n.A)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"sd-vpn"},"SD-VPN"),(0,o.yg)("p",null,(0,o.yg)("a",{parentName:"p",href:"https://www.tp-link.com.cn/"},"\u5b98\u7f51")),(0,o.yg)("p",null,(0,o.yg)("a",{parentName:"p",href:"https://smb.tp-link.com.cn/service/detail_article_4777.html"},"SDN-VPN \u4f7f\u7528\u8bf4\u660e\u4ecb\u7ecd")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/0b7620c8.cfaa8feb.js b/assets/js/0b7620c8.9f6e551c.js similarity index 98% rename from assets/js/0b7620c8.cfaa8feb.js rename to assets/js/0b7620c8.9f6e551c.js index b4237f9d6..abad98be0 100644 --- a/assets/js/0b7620c8.cfaa8feb.js +++ b/assets/js/0b7620c8.9f6e551c.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7817],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>f});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var s=n.createContext({}),l=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},p=function(e){var t=l(e.components);return n.createElement(s.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),u=l(r),y=a,f=u["".concat(s,".").concat(y)]||u[y]||d[y]||o;return r?n.createElement(f,c(c({ref:t},p),{},{components:r})):n.createElement(f,c({ref:t},p))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,c=new Array(o);c[0]=y;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[u]="string"==typeof e?e:a,c[1]=i;for(var l=2;l{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>c,default:()=>d,frontMatter:()=>o,metadata:()=>i,toc:()=>l});var n=r(8168),a=(r(6540),r(5680));const o={},c="\u901a\u4fe1\u6a21\u7ec4",i={unversionedId:"study/hard/\u901a\u4fe1\u6a21\u7ec4",id:"study/hard/\u901a\u4fe1\u6a21\u7ec4",title:"\u901a\u4fe1\u6a21\u7ec4",description:"images",source:"@site/docs/study/hard/\u901a\u4fe1\u6a21\u7ec4.md",sourceDirName:"study/hard",slug:"/study/hard/\u901a\u4fe1\u6a21\u7ec4",permalink:"/docs/study/hard/\u901a\u4fe1\u6a21\u7ec4",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u8def\u7531\u5668\u548c\u4ea4\u6362\u673a\u7684\u533a\u522b",permalink:"/docs/study/hard/\u8def\u7531\u5668\u548c\u4ea4\u6362\u673a\u7684\u533a\u522b"},next:{title:"\u6982\u8ff0",permalink:"/docs/study/think/"}},s={},l=[],p={toc:l},u="wrapper";function d(e){let{components:t,...o}=e;return(0,a.yg)(u,(0,n.A)({},p,o,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"\u901a\u4fe1\u6a21\u7ec4"},"\u901a\u4fe1\u6a21\u7ec4"),(0,a.yg)("p",null,(0,a.yg)("img",{alt:"images",src:r(3647).A,width:"600",height:"175"}),"\n",(0,a.yg)("img",{alt:"images",src:r(8216).A,width:"600",height:"145"})),(0,a.yg)("p",null,"\u53c2\u8003"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},"\u6f2b\u8c08\u901a\u4fe1\u6a21\u7ec4\u5382\u5546\u53d1\u5c55\u5386\u53f2"),(0,a.yg)("li",{parentName:"ol"},"\u65e0\u7ebf\u901a\u4fe1\u6a21\u7ec4\u4ea7\u4e1a\u94fe\u53ca\u7ade\u4e89\u683c\u5c40\u5206\u6790"),(0,a.yg)("li",{parentName:"ol"},"OEM")))}d.isMDXComponent=!0},8216:(e,t,r)=>{r.d(t,{A:()=>n});const n=r.p+"assets/images/txmz-6a248bb0330e89e38a5d694003270979.jpeg"},3647:(e,t,r)=>{r.d(t,{A:()=>n});const n=r.p+"assets/images/txmz1-eb0fc062c9be4c1942f3093d983679a4.jpeg"}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7817],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>f});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var s=n.createContext({}),l=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},p=function(e){var t=l(e.components);return n.createElement(s.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),u=l(r),y=a,f=u["".concat(s,".").concat(y)]||u[y]||d[y]||o;return r?n.createElement(f,c(c({ref:t},p),{},{components:r})):n.createElement(f,c({ref:t},p))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,c=new Array(o);c[0]=y;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[u]="string"==typeof e?e:a,c[1]=i;for(var l=2;l{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>c,default:()=>d,frontMatter:()=>o,metadata:()=>i,toc:()=>l});var n=r(8168),a=(r(6540),r(5680));const o={},c="\u901a\u4fe1\u6a21\u7ec4",i={unversionedId:"study/hard/\u901a\u4fe1\u6a21\u7ec4",id:"study/hard/\u901a\u4fe1\u6a21\u7ec4",title:"\u901a\u4fe1\u6a21\u7ec4",description:"images",source:"@site/docs/study/hard/\u901a\u4fe1\u6a21\u7ec4.md",sourceDirName:"study/hard",slug:"/study/hard/\u901a\u4fe1\u6a21\u7ec4",permalink:"/docs/study/hard/\u901a\u4fe1\u6a21\u7ec4",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u8def\u7531\u5668\u548c\u4ea4\u6362\u673a\u7684\u533a\u522b",permalink:"/docs/study/hard/\u8def\u7531\u5668\u548c\u4ea4\u6362\u673a\u7684\u533a\u522b"},next:{title:"\u6982\u8ff0",permalink:"/docs/study/think/"}},s={},l=[],p={toc:l},u="wrapper";function d(e){let{components:t,...o}=e;return(0,a.yg)(u,(0,n.A)({},p,o,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"\u901a\u4fe1\u6a21\u7ec4"},"\u901a\u4fe1\u6a21\u7ec4"),(0,a.yg)("p",null,(0,a.yg)("img",{alt:"images",src:r(3647).A,width:"600",height:"175"}),"\n",(0,a.yg)("img",{alt:"images",src:r(8216).A,width:"600",height:"145"})),(0,a.yg)("p",null,"\u53c2\u8003"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},"\u6f2b\u8c08\u901a\u4fe1\u6a21\u7ec4\u5382\u5546\u53d1\u5c55\u5386\u53f2"),(0,a.yg)("li",{parentName:"ol"},"\u65e0\u7ebf\u901a\u4fe1\u6a21\u7ec4\u4ea7\u4e1a\u94fe\u53ca\u7ade\u4e89\u683c\u5c40\u5206\u6790"),(0,a.yg)("li",{parentName:"ol"},"OEM")))}d.isMDXComponent=!0},8216:(e,t,r)=>{r.d(t,{A:()=>n});const n=r.p+"assets/images/txmz-6a248bb0330e89e38a5d694003270979.jpeg"},3647:(e,t,r)=>{r.d(t,{A:()=>n});const n=r.p+"assets/images/txmz1-eb0fc062c9be4c1942f3093d983679a4.jpeg"}}]); \ No newline at end of file diff --git a/assets/js/0dc7fd42.afd717f2.js b/assets/js/0dc7fd42.70d82475.js similarity index 98% rename from assets/js/0dc7fd42.afd717f2.js rename to assets/js/0dc7fd42.70d82475.js index e86fec8e6..2d7b3f482 100644 --- a/assets/js/0dc7fd42.afd717f2.js +++ b/assets/js/0dc7fd42.70d82475.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8901],{5680:(e,t,r)=>{r.d(t,{xA:()=>c,yg:()=>m});var o=r(6540);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function p(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var i=o.createContext({}),s=function(e){var t=o.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):p(p({},t),e)),r},c=function(e){var t=s(e.components);return o.createElement(i.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},y=o.forwardRef((function(e,t){var r=e.components,n=e.mdxType,a=e.originalType,i=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),u=s(r),y=n,m=u["".concat(i,".").concat(y)]||u[y]||d[y]||a;return r?o.createElement(m,p(p({ref:t},c),{},{components:r})):o.createElement(m,p({ref:t},c))}));function m(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=r.length,p=new Array(a);p[0]=y;var l={};for(var i in t)hasOwnProperty.call(t,i)&&(l[i]=t[i]);l.originalType=e,l[u]="string"==typeof e?e:n,p[1]=l;for(var s=2;s{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>p,default:()=>d,frontMatter:()=>a,metadata:()=>l,toc:()=>s});var o=r(8168),n=(r(6540),r(5680));const a={},p=void 0,l={unversionedId:"study/program/ETL/sqoop",id:"study/program/ETL/sqoop",title:"sqoop",description:"\u6982\u8ff0",source:"@site/docs/study/program/ETL/sqoop.md",sourceDirName:"study/program/ETL",slug:"/study/program/ETL/sqoop",permalink:"/docs/study/program/ETL/sqoop",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"kettle",permalink:"/docs/study/program/ETL/kettle"},next:{title:"Erlang",permalink:"/docs/study/program/Erlang/"}},i={},s=[{value:"\u6982\u8ff0",id:"\u6982\u8ff0",level:3},{value:"sqoop\u4ea7\u751f\u7684\u539f\u56e0\uff1a",id:"sqoop\u4ea7\u751f\u7684\u539f\u56e0",level:4},{value:"sqoop\u7684\u4ecb\u7ecd",id:"sqoop\u7684\u4ecb\u7ecd",level:4}],c={toc:s},u="wrapper";function d(e){let{components:t,...r}=e;return(0,n.yg)(u,(0,o.A)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,n.yg)("h3",{id:"\u6982\u8ff0"},"\u6982\u8ff0"),(0,n.yg)("h4",{id:"sqoop\u4ea7\u751f\u7684\u539f\u56e0"},"sqoop\u4ea7\u751f\u7684\u539f\u56e0\uff1a"),(0,n.yg)("ol",null,(0,n.yg)("li",{parentName:"ol"},"\u591a\u6570\u4f7f\u7528hadoop\u6280\u672f\u7684\u5904\u7406\u5927\u6570\u636e\u4e1a\u52a1\u7684\u4f01\u4e1a\uff0c\u6709\u5927\u91cf\u7684\u6570\u636e\u5b58\u50a8\u5728\u5173\u7cfb\u578b\u6570\u636e\u4e2d\u3002"),(0,n.yg)("li",{parentName:"ol"},"\u7531\u4e8e\u6ca1\u6709\u5de5\u5177\u652f\u6301\uff0c\u5bf9hadoop\u548c\u5173\u7cfb\u578b\u6570\u636e\u5e93\u4e4b\u95f4\u6570\u636e\u4f20\u8f93\u662f\u4e00\u4e2a\u5f88\u56f0\u96be\u7684\u4e8b\u3002"),(0,n.yg)("li",{parentName:"ol"},"\u4f9d\u636e\u4ee5\u4e0a\u7684\u539f\u56e0sqoop\u4ea7\u751f\u7684\u3002")),(0,n.yg)("h4",{id:"sqoop\u7684\u4ecb\u7ecd"},"sqoop\u7684\u4ecb\u7ecd"),(0,n.yg)("p",null,"sqoop\u662f\u8fde\u63a5\u5173\u7cfb\u578b\u6570\u636e\u5e93\u548chadoop\u7684\u6865\u6881\uff0c\u4e3b\u8981\u6709\u4e24\u4e2a\u65b9\u9762(\u5bfc\u5165\u548c\u5bfc\u51fa)\uff1a"),(0,n.yg)("ol",null,(0,n.yg)("li",{parentName:"ol"},"\u5c06\u5173\u7cfb\u578b\u6570\u636e\u5e93\u7684\u6570\u636e\u5bfc\u5165\u5230Hadoop \u53ca\u5176\u76f8\u5173\u7684\u7cfb\u7edf\u4e2d\uff0c\u5982 Hive\u548cHBase"),(0,n.yg)("li",{parentName:"ol"},"\u5c06\u6570\u636e\u4eceHadoop \u7cfb\u7edf\u91cc\u62bd\u53d6\u5e76\u5bfc\u51fa\u5230\u5173\u7cfb\u578b\u6570\u636e\u5e93")))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8901],{5680:(e,t,r)=>{r.d(t,{xA:()=>c,yg:()=>m});var o=r(6540);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function p(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var i=o.createContext({}),s=function(e){var t=o.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):p(p({},t),e)),r},c=function(e){var t=s(e.components);return o.createElement(i.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},y=o.forwardRef((function(e,t){var r=e.components,n=e.mdxType,a=e.originalType,i=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),u=s(r),y=n,m=u["".concat(i,".").concat(y)]||u[y]||d[y]||a;return r?o.createElement(m,p(p({ref:t},c),{},{components:r})):o.createElement(m,p({ref:t},c))}));function m(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=r.length,p=new Array(a);p[0]=y;var l={};for(var i in t)hasOwnProperty.call(t,i)&&(l[i]=t[i]);l.originalType=e,l[u]="string"==typeof e?e:n,p[1]=l;for(var s=2;s{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>p,default:()=>d,frontMatter:()=>a,metadata:()=>l,toc:()=>s});var o=r(8168),n=(r(6540),r(5680));const a={},p=void 0,l={unversionedId:"study/program/ETL/sqoop",id:"study/program/ETL/sqoop",title:"sqoop",description:"\u6982\u8ff0",source:"@site/docs/study/program/ETL/sqoop.md",sourceDirName:"study/program/ETL",slug:"/study/program/ETL/sqoop",permalink:"/docs/study/program/ETL/sqoop",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"kettle",permalink:"/docs/study/program/ETL/kettle"},next:{title:"Erlang",permalink:"/docs/study/program/Erlang/"}},i={},s=[{value:"\u6982\u8ff0",id:"\u6982\u8ff0",level:3},{value:"sqoop\u4ea7\u751f\u7684\u539f\u56e0\uff1a",id:"sqoop\u4ea7\u751f\u7684\u539f\u56e0",level:4},{value:"sqoop\u7684\u4ecb\u7ecd",id:"sqoop\u7684\u4ecb\u7ecd",level:4}],c={toc:s},u="wrapper";function d(e){let{components:t,...r}=e;return(0,n.yg)(u,(0,o.A)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,n.yg)("h3",{id:"\u6982\u8ff0"},"\u6982\u8ff0"),(0,n.yg)("h4",{id:"sqoop\u4ea7\u751f\u7684\u539f\u56e0"},"sqoop\u4ea7\u751f\u7684\u539f\u56e0\uff1a"),(0,n.yg)("ol",null,(0,n.yg)("li",{parentName:"ol"},"\u591a\u6570\u4f7f\u7528hadoop\u6280\u672f\u7684\u5904\u7406\u5927\u6570\u636e\u4e1a\u52a1\u7684\u4f01\u4e1a\uff0c\u6709\u5927\u91cf\u7684\u6570\u636e\u5b58\u50a8\u5728\u5173\u7cfb\u578b\u6570\u636e\u4e2d\u3002"),(0,n.yg)("li",{parentName:"ol"},"\u7531\u4e8e\u6ca1\u6709\u5de5\u5177\u652f\u6301\uff0c\u5bf9hadoop\u548c\u5173\u7cfb\u578b\u6570\u636e\u5e93\u4e4b\u95f4\u6570\u636e\u4f20\u8f93\u662f\u4e00\u4e2a\u5f88\u56f0\u96be\u7684\u4e8b\u3002"),(0,n.yg)("li",{parentName:"ol"},"\u4f9d\u636e\u4ee5\u4e0a\u7684\u539f\u56e0sqoop\u4ea7\u751f\u7684\u3002")),(0,n.yg)("h4",{id:"sqoop\u7684\u4ecb\u7ecd"},"sqoop\u7684\u4ecb\u7ecd"),(0,n.yg)("p",null,"sqoop\u662f\u8fde\u63a5\u5173\u7cfb\u578b\u6570\u636e\u5e93\u548chadoop\u7684\u6865\u6881\uff0c\u4e3b\u8981\u6709\u4e24\u4e2a\u65b9\u9762(\u5bfc\u5165\u548c\u5bfc\u51fa)\uff1a"),(0,n.yg)("ol",null,(0,n.yg)("li",{parentName:"ol"},"\u5c06\u5173\u7cfb\u578b\u6570\u636e\u5e93\u7684\u6570\u636e\u5bfc\u5165\u5230Hadoop \u53ca\u5176\u76f8\u5173\u7684\u7cfb\u7edf\u4e2d\uff0c\u5982 Hive\u548cHBase"),(0,n.yg)("li",{parentName:"ol"},"\u5c06\u6570\u636e\u4eceHadoop \u7cfb\u7edf\u91cc\u62bd\u53d6\u5e76\u5bfc\u51fa\u5230\u5173\u7cfb\u578b\u6570\u636e\u5e93")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/0dfb2733.5421ba98.js b/assets/js/0dfb2733.bbed6c20.js similarity index 98% rename from assets/js/0dfb2733.5421ba98.js rename to assets/js/0dfb2733.bbed6c20.js index debe9f64d..1a74c8c4f 100644 --- a/assets/js/0dfb2733.5421ba98.js +++ b/assets/js/0dfb2733.bbed6c20.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4908],{5680:(e,r,t)=>{t.d(r,{xA:()=>u,yg:()=>f});var n=t(6540);function a(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function o(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function i(e){for(var r=1;r=0||(a[t]=e[t]);return a}(e,r);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var l=n.createContext({}),p=function(e){var r=n.useContext(l),t=r;return e&&(t="function"==typeof e?e(r):i(i({},r),e)),t},u=function(e){var r=p(e.components);return n.createElement(l.Provider,{value:r},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},y=n.forwardRef((function(e,r){var t=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),s=p(t),y=a,f=s["".concat(l,".").concat(y)]||s[y]||d[y]||o;return t?n.createElement(f,i(i({ref:r},u),{},{components:t})):n.createElement(f,i({ref:r},u))}));function f(e,r){var t=arguments,a=r&&r.mdxType;if("string"==typeof e||a){var o=t.length,i=new Array(o);i[0]=y;var c={};for(var l in r)hasOwnProperty.call(r,l)&&(c[l]=r[l]);c.originalType=e,c[s]="string"==typeof e?e:a,i[1]=c;for(var p=2;p{t.r(r),t.d(r,{assets:()=>l,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>c,toc:()=>p});var n=t(8168),a=(t(6540),t(5680));const o={},i=void 0,c={unversionedId:"study/program/ABIAPI",id:"study/program/ABIAPI",title:"ABIAPI",description:"ABI",source:"@site/docs/study/program/ABIAPI.md",sourceDirName:"study/program",slug:"/study/program/ABIAPI",permalink:"/docs/study/program/ABIAPI",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u6982\u8ff0",permalink:"/docs/study/program/"},next:{title:"C C++ \u7f16\u7a0b\u8bed\u8a00",permalink:"/docs/study/program/C/"}},l={},p=[{value:"ABI",id:"abi",level:3},{value:"API",id:"api",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],u={toc:p},s="wrapper";function d(e){let{components:r,...t}=e;return(0,a.yg)(s,(0,n.A)({},u,t,{components:r,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"abi"},"ABI"),(0,a.yg)("p",null,"ABI\uff08Application Binary Interface\uff09\uff1a\u5e94\u7528\u7a0b\u5e8f\u4e8c\u8fdb\u5236\u63a5\u53e3\uff0c\u63cf\u8ff0\u4e86\u5e94\u7528\u7a0b\u5e8f\u548c\u64cd\u4f5c\u7cfb\u7edf\u4e4b\u95f4\uff0c\u4e00\u4e2a\u5e94\u7528\u548c\u5b83\u7684\u5e93\u4e4b\u95f4\uff0c\u6216\u8005\u5e94\u7528\u7684\u7ec4\u6210\u90e8\u5206\u4e4b\u95f4\u7684\u4f4e\u63a5\u53e3\u3002"),(0,a.yg)("h3",{id:"api"},"API"),(0,a.yg)("p",null,"\u5e94\u7528\u7a0b\u5e8f\u63a5\u53e3\uff08Application Programming Interface\uff0cAPI\uff09\uff0c\u53c8\u79f0\u4e3a\u5e94\u7528\u7f16\u7a0b\u63a5\u53e3\uff0c\u5c31\u662f\u8f6f\u4ef6\u7cfb\u7edf\u4e0d\u540c\u7ec4\u6210\u90e8\u5206\u8854\u63a5\u7684\u7ea6\u5b9a\u3002"),(0,a.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://baike.baidu.com/item/ABI/10912305"},"\u767e\u5ea6\u767e\u79d1-ABI"))))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4908],{5680:(e,r,t)=>{t.d(r,{xA:()=>u,yg:()=>f});var n=t(6540);function a(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function o(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function i(e){for(var r=1;r=0||(a[t]=e[t]);return a}(e,r);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var l=n.createContext({}),p=function(e){var r=n.useContext(l),t=r;return e&&(t="function"==typeof e?e(r):i(i({},r),e)),t},u=function(e){var r=p(e.components);return n.createElement(l.Provider,{value:r},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},y=n.forwardRef((function(e,r){var t=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),s=p(t),y=a,f=s["".concat(l,".").concat(y)]||s[y]||d[y]||o;return t?n.createElement(f,i(i({ref:r},u),{},{components:t})):n.createElement(f,i({ref:r},u))}));function f(e,r){var t=arguments,a=r&&r.mdxType;if("string"==typeof e||a){var o=t.length,i=new Array(o);i[0]=y;var c={};for(var l in r)hasOwnProperty.call(r,l)&&(c[l]=r[l]);c.originalType=e,c[s]="string"==typeof e?e:a,i[1]=c;for(var p=2;p{t.r(r),t.d(r,{assets:()=>l,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>c,toc:()=>p});var n=t(8168),a=(t(6540),t(5680));const o={},i=void 0,c={unversionedId:"study/program/ABIAPI",id:"study/program/ABIAPI",title:"ABIAPI",description:"ABI",source:"@site/docs/study/program/ABIAPI.md",sourceDirName:"study/program",slug:"/study/program/ABIAPI",permalink:"/docs/study/program/ABIAPI",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u6982\u8ff0",permalink:"/docs/study/program/"},next:{title:"C C++ \u7f16\u7a0b\u8bed\u8a00",permalink:"/docs/study/program/C/"}},l={},p=[{value:"ABI",id:"abi",level:3},{value:"API",id:"api",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],u={toc:p},s="wrapper";function d(e){let{components:r,...t}=e;return(0,a.yg)(s,(0,n.A)({},u,t,{components:r,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"abi"},"ABI"),(0,a.yg)("p",null,"ABI\uff08Application Binary Interface\uff09\uff1a\u5e94\u7528\u7a0b\u5e8f\u4e8c\u8fdb\u5236\u63a5\u53e3\uff0c\u63cf\u8ff0\u4e86\u5e94\u7528\u7a0b\u5e8f\u548c\u64cd\u4f5c\u7cfb\u7edf\u4e4b\u95f4\uff0c\u4e00\u4e2a\u5e94\u7528\u548c\u5b83\u7684\u5e93\u4e4b\u95f4\uff0c\u6216\u8005\u5e94\u7528\u7684\u7ec4\u6210\u90e8\u5206\u4e4b\u95f4\u7684\u4f4e\u63a5\u53e3\u3002"),(0,a.yg)("h3",{id:"api"},"API"),(0,a.yg)("p",null,"\u5e94\u7528\u7a0b\u5e8f\u63a5\u53e3\uff08Application Programming Interface\uff0cAPI\uff09\uff0c\u53c8\u79f0\u4e3a\u5e94\u7528\u7f16\u7a0b\u63a5\u53e3\uff0c\u5c31\u662f\u8f6f\u4ef6\u7cfb\u7edf\u4e0d\u540c\u7ec4\u6210\u90e8\u5206\u8854\u63a5\u7684\u7ea6\u5b9a\u3002"),(0,a.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://baike.baidu.com/item/ABI/10912305"},"\u767e\u5ea6\u767e\u79d1-ABI"))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/0e133684.730829e4.js b/assets/js/0e133684.91d74156.js similarity index 98% rename from assets/js/0e133684.730829e4.js rename to assets/js/0e133684.91d74156.js index 13d496a4d..f0065e3ce 100644 --- a/assets/js/0e133684.730829e4.js +++ b/assets/js/0e133684.91d74156.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8529],{5680:(e,t,r)=>{r.d(t,{xA:()=>l,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function s(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var i=n.createContext({}),p=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):s(s({},t),e)),r},l=function(e){var t=p(e.components);return n.createElement(i.Provider,{value:t},e.children)},u="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,i=e.parentName,l=c(e,["components","mdxType","originalType","parentName"]),u=p(r),d=o,f=u["".concat(i,".").concat(d)]||u[d]||y[d]||a;return r?n.createElement(f,s(s({ref:t},l),{},{components:r})):n.createElement(f,s({ref:t},l))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,s=new Array(a);s[0]=d;var c={};for(var i in t)hasOwnProperty.call(t,i)&&(c[i]=t[i]);c.originalType=e,c[u]="string"==typeof e?e:o,s[1]=c;for(var p=2;p{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>s,default:()=>y,frontMatter:()=>a,metadata:()=>c,toc:()=>p});var n=r(8168),o=(r(6540),r(5680));const a={},s=void 0,c={unversionedId:"study/system/openWRT",id:"study/system/openWRT",title:"openWRT",description:"\u53c2\u8003",source:"@site/docs/study/system/openWRT.md",sourceDirName:"study/system",slug:"/study/system/openWRT",permalink:"/docs/study/system/openWRT",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"IO\u5835\u8def\u590d\u7528\u884c\u6570Linux",permalink:"/docs/study/system/IO\u5835\u8def\u590d\u7528\u884c\u6570Linux"},next:{title:"shell\u7f16\u7a0b\u667aexpect",permalink:"/docs/study/system/shell\u7f16\u7a0b\u667aexpect"}},i={},p=[{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],l={toc:p},u="wrapper";function y(e){let{components:t,...r}=e;return(0,o.yg)(u,(0,n.A)({},l,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://baike.baidu.com/item/openWRT/3528947"},"\u767e\u5ea6\u767e\u79d1-openWRT"))))}y.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8529],{5680:(e,t,r)=>{r.d(t,{xA:()=>l,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function s(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var i=n.createContext({}),p=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):s(s({},t),e)),r},l=function(e){var t=p(e.components);return n.createElement(i.Provider,{value:t},e.children)},u="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,i=e.parentName,l=c(e,["components","mdxType","originalType","parentName"]),u=p(r),d=o,f=u["".concat(i,".").concat(d)]||u[d]||y[d]||a;return r?n.createElement(f,s(s({ref:t},l),{},{components:r})):n.createElement(f,s({ref:t},l))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,s=new Array(a);s[0]=d;var c={};for(var i in t)hasOwnProperty.call(t,i)&&(c[i]=t[i]);c.originalType=e,c[u]="string"==typeof e?e:o,s[1]=c;for(var p=2;p{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>s,default:()=>y,frontMatter:()=>a,metadata:()=>c,toc:()=>p});var n=r(8168),o=(r(6540),r(5680));const a={},s=void 0,c={unversionedId:"study/system/openWRT",id:"study/system/openWRT",title:"openWRT",description:"\u53c2\u8003",source:"@site/docs/study/system/openWRT.md",sourceDirName:"study/system",slug:"/study/system/openWRT",permalink:"/docs/study/system/openWRT",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"IO\u5835\u8def\u590d\u7528\u884c\u6570Linux",permalink:"/docs/study/system/IO\u5835\u8def\u590d\u7528\u884c\u6570Linux"},next:{title:"shell\u7f16\u7a0b\u667aexpect",permalink:"/docs/study/system/shell\u7f16\u7a0b\u667aexpect"}},i={},p=[{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],l={toc:p},u="wrapper";function y(e){let{components:t,...r}=e;return(0,o.yg)(u,(0,n.A)({},l,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://baike.baidu.com/item/openWRT/3528947"},"\u767e\u5ea6\u767e\u79d1-openWRT"))))}y.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/0eefe494.42c7720e.js b/assets/js/0eefe494.56f57e38.js similarity index 98% rename from assets/js/0eefe494.42c7720e.js rename to assets/js/0eefe494.56f57e38.js index 5e89ba167..afddda893 100644 --- a/assets/js/0eefe494.42c7720e.js +++ b/assets/js/0eefe494.56f57e38.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4243],{5680:(e,t,r)=>{r.d(t,{xA:()=>s,yg:()=>f});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var c=n.createContext({}),p=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},s=function(e){var t=p(e.components);return n.createElement(c.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,s=i(e,["components","mdxType","originalType","parentName"]),u=p(r),y=a,f=u["".concat(c,".").concat(y)]||u[y]||d[y]||o;return r?n.createElement(f,l(l({ref:t},s),{},{components:r})):n.createElement(f,l({ref:t},s))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,l=new Array(o);l[0]=y;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[u]="string"==typeof e?e:a,l[1]=i;for(var p=2;p{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>d,frontMatter:()=>o,metadata:()=>i,toc:()=>p});var n=r(8168),a=(r(6540),r(5680));const o={},l=void 0,i={unversionedId:"study/db/\u65f6\u5e8f\u6570\u636e\u5e93/OpenTSDB",id:"study/db/\u65f6\u5e8f\u6570\u636e\u5e93/OpenTSDB",title:"OpenTSDB",description:"\u57fa\u672c\u4fe1\u606f",source:"@site/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/OpenTSDB.md",sourceDirName:"study/db/\u65f6\u5e8f\u6570\u636e\u5e93",slug:"/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/OpenTSDB",permalink:"/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/OpenTSDB",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"KairosDB",permalink:"/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/KairosDB"},next:{title:"TimescaleDB",permalink:"/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/TimescaleDB"}},c={},p=[{value:"\u57fa\u672c\u4fe1\u606f",id:"\u57fa\u672c\u4fe1\u606f",level:3},{value:"\u8bc4\u4ef7",id:"\u8bc4\u4ef7",level:3}],s={toc:p},u="wrapper";function d(e){let{components:t,...r}=e;return(0,a.yg)(u,(0,n.A)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"\u57fa\u672c\u4fe1\u606f"},"\u57fa\u672c\u4fe1\u606f"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},"\u7f16\u7a0b\u8bed\u8a00\uff1aJava"),(0,a.yg)("li",{parentName:"ol"},"\u96c6\u7fa4\u6a21\u5f0f\uff1a\u652f\u6301\u96c6\u7fa4\uff0c\u5f00\u6e90"),(0,a.yg)("li",{parentName:"ol"},"\u5b58\u50a8\u7cfb\u7edf\uff1aHBase"),(0,a.yg)("li",{parentName:"ol"},"\u8fd0\u7ef4\u96be\u5ea6\uff1a\u590d\u6742"),(0,a.yg)("li",{parentName:"ol"},"\u63a5\u53e3\uff1aRestful API")),(0,a.yg)("h3",{id:"\u8bc4\u4ef7"},"\u8bc4\u4ef7"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},"\u56e0\u5b58\u50a8\u7cfb\u7edf\u4f7f\u7528\u7684hbase\uff0chbase\u5b58\u5728\u6027\u80fd\u548c\u538b\u7f29\u7387\u7684\u95ee\u9898\uff0c\u5e76\u6ca1\u6709\u88ab\u89e3\u51b3\uff1b"),(0,a.yg)("li",{parentName:"ol"},"hbase\u672c\u8eab\u5bf9\u975e\u7ed3\u6784\u5316\u7684\u6570\u636e\u652f\u6301\u5f88\u597d\uff0c\u5982\u679c\u5b58\u7684\u662f\u7ed3\u6784\u5316\u6570\u636e\uff0c\u6709\u4e9b\u4e0d\u5408\u9002\uff1b")))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4243],{5680:(e,t,r)=>{r.d(t,{xA:()=>s,yg:()=>f});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var c=n.createContext({}),p=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},s=function(e){var t=p(e.components);return n.createElement(c.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,s=i(e,["components","mdxType","originalType","parentName"]),u=p(r),y=a,f=u["".concat(c,".").concat(y)]||u[y]||d[y]||o;return r?n.createElement(f,l(l({ref:t},s),{},{components:r})):n.createElement(f,l({ref:t},s))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,l=new Array(o);l[0]=y;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[u]="string"==typeof e?e:a,l[1]=i;for(var p=2;p{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>d,frontMatter:()=>o,metadata:()=>i,toc:()=>p});var n=r(8168),a=(r(6540),r(5680));const o={},l=void 0,i={unversionedId:"study/db/\u65f6\u5e8f\u6570\u636e\u5e93/OpenTSDB",id:"study/db/\u65f6\u5e8f\u6570\u636e\u5e93/OpenTSDB",title:"OpenTSDB",description:"\u57fa\u672c\u4fe1\u606f",source:"@site/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/OpenTSDB.md",sourceDirName:"study/db/\u65f6\u5e8f\u6570\u636e\u5e93",slug:"/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/OpenTSDB",permalink:"/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/OpenTSDB",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"KairosDB",permalink:"/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/KairosDB"},next:{title:"TimescaleDB",permalink:"/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/TimescaleDB"}},c={},p=[{value:"\u57fa\u672c\u4fe1\u606f",id:"\u57fa\u672c\u4fe1\u606f",level:3},{value:"\u8bc4\u4ef7",id:"\u8bc4\u4ef7",level:3}],s={toc:p},u="wrapper";function d(e){let{components:t,...r}=e;return(0,a.yg)(u,(0,n.A)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"\u57fa\u672c\u4fe1\u606f"},"\u57fa\u672c\u4fe1\u606f"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},"\u7f16\u7a0b\u8bed\u8a00\uff1aJava"),(0,a.yg)("li",{parentName:"ol"},"\u96c6\u7fa4\u6a21\u5f0f\uff1a\u652f\u6301\u96c6\u7fa4\uff0c\u5f00\u6e90"),(0,a.yg)("li",{parentName:"ol"},"\u5b58\u50a8\u7cfb\u7edf\uff1aHBase"),(0,a.yg)("li",{parentName:"ol"},"\u8fd0\u7ef4\u96be\u5ea6\uff1a\u590d\u6742"),(0,a.yg)("li",{parentName:"ol"},"\u63a5\u53e3\uff1aRestful API")),(0,a.yg)("h3",{id:"\u8bc4\u4ef7"},"\u8bc4\u4ef7"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},"\u56e0\u5b58\u50a8\u7cfb\u7edf\u4f7f\u7528\u7684hbase\uff0chbase\u5b58\u5728\u6027\u80fd\u548c\u538b\u7f29\u7387\u7684\u95ee\u9898\uff0c\u5e76\u6ca1\u6709\u88ab\u89e3\u51b3\uff1b"),(0,a.yg)("li",{parentName:"ol"},"hbase\u672c\u8eab\u5bf9\u975e\u7ed3\u6784\u5316\u7684\u6570\u636e\u652f\u6301\u5f88\u597d\uff0c\u5982\u679c\u5b58\u7684\u662f\u7ed3\u6784\u5316\u6570\u636e\uff0c\u6709\u4e9b\u4e0d\u5408\u9002\uff1b")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/0f04c4bf.af2c0298.js b/assets/js/0f04c4bf.5710a47b.js similarity index 98% rename from assets/js/0f04c4bf.af2c0298.js rename to assets/js/0f04c4bf.5710a47b.js index 1ae6da3ad..eba813005 100644 --- a/assets/js/0f04c4bf.af2c0298.js +++ b/assets/js/0f04c4bf.5710a47b.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6784],{5680:(e,t,n)=>{n.d(t,{xA:()=>d,yg:()=>m});var r=n(6540);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var c=r.createContext({}),l=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},d=function(e){var t=l(e.components);return r.createElement(c.Provider,{value:t},e.children)},s="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},y=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,c=e.parentName,d=p(e,["components","mdxType","originalType","parentName"]),s=l(n),y=o,m=s["".concat(c,".").concat(y)]||s[y]||u[y]||a;return n?r.createElement(m,i(i({ref:t},d),{},{components:n})):r.createElement(m,i({ref:t},d))}));function m(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=y;var p={};for(var c in t)hasOwnProperty.call(t,c)&&(p[c]=t[c]);p.originalType=e,p[s]="string"==typeof e?e:o,i[1]=p;for(var l=2;l{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>u,frontMatter:()=>a,metadata:()=>p,toc:()=>l});var r=n(8168),o=(n(6540),n(5680));const a={sidebar_position:1},i=void 0,p={unversionedId:"study/back/maven/pom\u6587\u4ef6\u4e2d\u7684scope\u6807\u7b7e",id:"study/back/maven/pom\u6587\u4ef6\u4e2d\u7684scope\u6807\u7b7e",title:"pom\u6587\u4ef6\u4e2d\u7684scope\u6807\u7b7e",description:"\u5206\u7c7b",source:"@site/docs/study/back/maven/pom\u6587\u4ef6\u4e2d\u7684scope\u6807\u7b7e.md",sourceDirName:"study/back/maven",slug:"/study/back/maven/pom\u6587\u4ef6\u4e2d\u7684scope\u6807\u7b7e",permalink:"/docs/study/back/maven/pom\u6587\u4ef6\u4e2d\u7684scope\u6807\u7b7e",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"studySidebar",previous:{title:"MyBatis",permalink:"/docs/study/back/MyBatis"},next:{title:"Kafka",permalink:"/docs/study/back/mq/Kafka"}},c={},l=[{value:"\u5206\u7c7b",id:"\u5206\u7c7b",level:3},{value:"compile",id:"compile",level:4},{value:"provided",id:"provided",level:4},{value:"runtime",id:"runtime",level:4},{value:"test",id:"test",level:4},{value:"system",id:"system",level:4},{value:"import",id:"import",level:4},{value:"\u6ce8\u610f\uff1a",id:"\u6ce8\u610f",level:3}],d={toc:l},s="wrapper";function u(e){let{components:t,...n}=e;return(0,o.yg)(s,(0,r.A)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"\u5206\u7c7b"},"\u5206\u7c7b"),(0,o.yg)("h4",{id:"compile"},"compile"),(0,o.yg)("p",null,"\u9ed8\u8ba4\u7684scope\uff0c\u8868\u793a dependency \u90fd\u53ef\u4ee5\u5728\u751f\u547d\u5468\u671f\u4e2d\u4f7f\u7528\u3002\u800c\u4e14\uff0c\u8fd9\u4e9bdependencies \u4f1a\u4f20\u9012\u5230\u4f9d\u8d56\u7684\u9879\u76ee\u4e2d\u3002\u9002\u7528\u4e8e\u6240\u6709\u9636\u6bb5\uff0c\u4f1a\u968f\u7740\u9879\u76ee\u4e00\u8d77\u53d1\u5e03\u3002"),(0,o.yg)("h4",{id:"provided"},"provided"),(0,o.yg)("p",null,"\u8ddfcompile\u76f8\u4f3c\uff0c\u4f46\u662f\u8868\u660e\u4e86dependency \u7531JDK\u6216\u8005\u5bb9\u5668\u63d0\u4f9b\uff0c\u4f8b\u5982Servlet AP\u548c\u4e00\u4e9bJava EE APIs\u3002\u8fd9\u4e2ascope \u53ea\u80fd\u4f5c\u7528\u5728\u7f16\u8bd1\u548c\u6d4b\u8bd5\u65f6\uff0c\u540c\u65f6\u6ca1\u6709\u4f20\u9012\u6027\u3002"),(0,o.yg)("h4",{id:"runtime"},"runtime"),(0,o.yg)("p",null,"\u8868\u793adependency\u4e0d\u4f5c\u7528\u5728\u7f16\u8bd1\u65f6\uff0c\u4f46\u4f1a\u4f5c\u7528\u5728\u8fd0\u884c\u548c\u6d4b\u8bd5\u65f6\uff0c\u5982JDBC\u9a71\u52a8\uff0c\u9002\u7528\u8fd0\u884c\u548c\u6d4b\u8bd5\u9636\u6bb5\u3002"),(0,o.yg)("h4",{id:"test"},"test"),(0,o.yg)("p",null,"\u8868\u793adependency\u4f5c\u7528\u5728\u6d4b\u8bd5\u65f6\uff0c\u4e0d\u4f5c\u7528\u5728\u8fd0\u884c\u65f6\u3002 \u53ea\u5728\u6d4b\u8bd5\u65f6\u4f7f\u7528\uff0c\u7528\u4e8e\u7f16\u8bd1\u548c\u8fd0\u884c\u6d4b\u8bd5\u4ee3\u7801\u3002\u4e0d\u4f1a\u968f\u9879\u76ee\u53d1\u5e03\u3002"),(0,o.yg)("h4",{id:"system"},"system"),(0,o.yg)("p",null,"\u8ddfprovided \u76f8\u4f3c\uff0c\u4f46\u662f\u5728\u7cfb\u7edf\u4e2d\u8981\u4ee5\u5916\u90e8JAR\u5305\u7684\u5f62\u5f0f\u63d0\u4f9b\uff0cmaven\u4e0d\u4f1a\u5728repository\u67e5\u627e\u5b83\u3002"),(0,o.yg)("h4",{id:"import"},"import"),(0,o.yg)("p",null,"\u8fd9\u4e2a\u6807\u7b7e\u5c31\u662f \u5f15\u5165\u8be5dependency\u7684pom\u4e2d\u5b9a\u4e49\u7684\u6240\u6709dependency\u5b9a\u4e49"),(0,o.yg)("h3",{id:"\u6ce8\u610f"},"\u6ce8\u610f\uff1a"),(0,o.yg)("p",null,'import\u6807\u7b7e\u503c\u53ea\u80fd\u5728dependencyManagement\u6807\u7b7e\u4e0b\u4f7f\u7528\uff01\n\u5e76\u4e14\u4ec5\u7528\u4e8etype\u4e3a"pom"\u7684dependency\uff0c\u5176\u610f\u4e49\u4e3a\u5f15\u5165\u8be5dependency\u7684pom\u4e2d\u5b9a\u4e49\u7684\u6240\u6709dependency\u5b9a\u4e49'))}u.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6784],{5680:(e,t,n)=>{n.d(t,{xA:()=>d,yg:()=>m});var r=n(6540);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var c=r.createContext({}),l=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},d=function(e){var t=l(e.components);return r.createElement(c.Provider,{value:t},e.children)},s="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},y=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,c=e.parentName,d=p(e,["components","mdxType","originalType","parentName"]),s=l(n),y=o,m=s["".concat(c,".").concat(y)]||s[y]||u[y]||a;return n?r.createElement(m,i(i({ref:t},d),{},{components:n})):r.createElement(m,i({ref:t},d))}));function m(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=y;var p={};for(var c in t)hasOwnProperty.call(t,c)&&(p[c]=t[c]);p.originalType=e,p[s]="string"==typeof e?e:o,i[1]=p;for(var l=2;l{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>u,frontMatter:()=>a,metadata:()=>p,toc:()=>l});var r=n(8168),o=(n(6540),n(5680));const a={sidebar_position:1},i=void 0,p={unversionedId:"study/back/maven/pom\u6587\u4ef6\u4e2d\u7684scope\u6807\u7b7e",id:"study/back/maven/pom\u6587\u4ef6\u4e2d\u7684scope\u6807\u7b7e",title:"pom\u6587\u4ef6\u4e2d\u7684scope\u6807\u7b7e",description:"\u5206\u7c7b",source:"@site/docs/study/back/maven/pom\u6587\u4ef6\u4e2d\u7684scope\u6807\u7b7e.md",sourceDirName:"study/back/maven",slug:"/study/back/maven/pom\u6587\u4ef6\u4e2d\u7684scope\u6807\u7b7e",permalink:"/docs/study/back/maven/pom\u6587\u4ef6\u4e2d\u7684scope\u6807\u7b7e",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"studySidebar",previous:{title:"MyBatis",permalink:"/docs/study/back/MyBatis"},next:{title:"Kafka",permalink:"/docs/study/back/mq/Kafka"}},c={},l=[{value:"\u5206\u7c7b",id:"\u5206\u7c7b",level:3},{value:"compile",id:"compile",level:4},{value:"provided",id:"provided",level:4},{value:"runtime",id:"runtime",level:4},{value:"test",id:"test",level:4},{value:"system",id:"system",level:4},{value:"import",id:"import",level:4},{value:"\u6ce8\u610f\uff1a",id:"\u6ce8\u610f",level:3}],d={toc:l},s="wrapper";function u(e){let{components:t,...n}=e;return(0,o.yg)(s,(0,r.A)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"\u5206\u7c7b"},"\u5206\u7c7b"),(0,o.yg)("h4",{id:"compile"},"compile"),(0,o.yg)("p",null,"\u9ed8\u8ba4\u7684scope\uff0c\u8868\u793a dependency \u90fd\u53ef\u4ee5\u5728\u751f\u547d\u5468\u671f\u4e2d\u4f7f\u7528\u3002\u800c\u4e14\uff0c\u8fd9\u4e9bdependencies \u4f1a\u4f20\u9012\u5230\u4f9d\u8d56\u7684\u9879\u76ee\u4e2d\u3002\u9002\u7528\u4e8e\u6240\u6709\u9636\u6bb5\uff0c\u4f1a\u968f\u7740\u9879\u76ee\u4e00\u8d77\u53d1\u5e03\u3002"),(0,o.yg)("h4",{id:"provided"},"provided"),(0,o.yg)("p",null,"\u8ddfcompile\u76f8\u4f3c\uff0c\u4f46\u662f\u8868\u660e\u4e86dependency \u7531JDK\u6216\u8005\u5bb9\u5668\u63d0\u4f9b\uff0c\u4f8b\u5982Servlet AP\u548c\u4e00\u4e9bJava EE APIs\u3002\u8fd9\u4e2ascope \u53ea\u80fd\u4f5c\u7528\u5728\u7f16\u8bd1\u548c\u6d4b\u8bd5\u65f6\uff0c\u540c\u65f6\u6ca1\u6709\u4f20\u9012\u6027\u3002"),(0,o.yg)("h4",{id:"runtime"},"runtime"),(0,o.yg)("p",null,"\u8868\u793adependency\u4e0d\u4f5c\u7528\u5728\u7f16\u8bd1\u65f6\uff0c\u4f46\u4f1a\u4f5c\u7528\u5728\u8fd0\u884c\u548c\u6d4b\u8bd5\u65f6\uff0c\u5982JDBC\u9a71\u52a8\uff0c\u9002\u7528\u8fd0\u884c\u548c\u6d4b\u8bd5\u9636\u6bb5\u3002"),(0,o.yg)("h4",{id:"test"},"test"),(0,o.yg)("p",null,"\u8868\u793adependency\u4f5c\u7528\u5728\u6d4b\u8bd5\u65f6\uff0c\u4e0d\u4f5c\u7528\u5728\u8fd0\u884c\u65f6\u3002 \u53ea\u5728\u6d4b\u8bd5\u65f6\u4f7f\u7528\uff0c\u7528\u4e8e\u7f16\u8bd1\u548c\u8fd0\u884c\u6d4b\u8bd5\u4ee3\u7801\u3002\u4e0d\u4f1a\u968f\u9879\u76ee\u53d1\u5e03\u3002"),(0,o.yg)("h4",{id:"system"},"system"),(0,o.yg)("p",null,"\u8ddfprovided \u76f8\u4f3c\uff0c\u4f46\u662f\u5728\u7cfb\u7edf\u4e2d\u8981\u4ee5\u5916\u90e8JAR\u5305\u7684\u5f62\u5f0f\u63d0\u4f9b\uff0cmaven\u4e0d\u4f1a\u5728repository\u67e5\u627e\u5b83\u3002"),(0,o.yg)("h4",{id:"import"},"import"),(0,o.yg)("p",null,"\u8fd9\u4e2a\u6807\u7b7e\u5c31\u662f \u5f15\u5165\u8be5dependency\u7684pom\u4e2d\u5b9a\u4e49\u7684\u6240\u6709dependency\u5b9a\u4e49"),(0,o.yg)("h3",{id:"\u6ce8\u610f"},"\u6ce8\u610f\uff1a"),(0,o.yg)("p",null,'import\u6807\u7b7e\u503c\u53ea\u80fd\u5728dependencyManagement\u6807\u7b7e\u4e0b\u4f7f\u7528\uff01\n\u5e76\u4e14\u4ec5\u7528\u4e8etype\u4e3a"pom"\u7684dependency\uff0c\u5176\u610f\u4e49\u4e3a\u5f15\u5165\u8be5dependency\u7684pom\u4e2d\u5b9a\u4e49\u7684\u6240\u6709dependency\u5b9a\u4e49'))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/12d1694e.d88fd38e.js b/assets/js/12d1694e.4e08a3bb.js similarity index 99% rename from assets/js/12d1694e.d88fd38e.js rename to assets/js/12d1694e.4e08a3bb.js index 3ce092ba9..d963ef817 100644 --- a/assets/js/12d1694e.d88fd38e.js +++ b/assets/js/12d1694e.4e08a3bb.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1293],{5680:(e,n,l)=>{l.d(n,{xA:()=>c,yg:()=>m});var t=l(6540);function a(e,n,l){return n in e?Object.defineProperty(e,n,{value:l,enumerable:!0,configurable:!0,writable:!0}):e[n]=l,e}function r(e,n){var l=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);n&&(t=t.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),l.push.apply(l,t)}return l}function p(e){for(var n=1;n=0||(a[l]=e[l]);return a}(e,n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(e,l)&&(a[l]=e[l])}return a}var s=t.createContext({}),i=function(e){var n=t.useContext(s),l=n;return e&&(l="function"==typeof e?e(n):p(p({},n),e)),l},c=function(e){var n=i(e.components);return t.createElement(s.Provider,{value:n},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var n=e.children;return t.createElement(t.Fragment,{},n)}},g=t.forwardRef((function(e,n){var l=e.components,a=e.mdxType,r=e.originalType,s=e.parentName,c=o(e,["components","mdxType","originalType","parentName"]),d=i(l),g=a,m=d["".concat(s,".").concat(g)]||d[g]||u[g]||r;return l?t.createElement(m,p(p({ref:n},c),{},{components:l})):t.createElement(m,p({ref:n},c))}));function m(e,n){var l=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var r=l.length,p=new Array(r);p[0]=g;var o={};for(var s in n)hasOwnProperty.call(n,s)&&(o[s]=n[s]);o.originalType=e,o[d]="string"==typeof e?e:a,p[1]=o;for(var i=2;i{l.r(n),l.d(n,{assets:()=>s,contentTitle:()=>p,default:()=>u,frontMatter:()=>r,metadata:()=>o,toc:()=>i});var t=l(8168),a=(l(6540),l(5680));const r={},p=void 0,o={unversionedId:"study/devops/Linux\u8fd0\u7ef4-\u5e38\u7528",id:"study/devops/Linux\u8fd0\u7ef4-\u5e38\u7528",title:"Linux\u8fd0\u7ef4-\u5e38\u7528",description:"\u5185\u6838/\u53d1\u884c\u7248",source:"@site/docs/study/devops/Linux\u8fd0\u7ef4-\u5e38\u7528.md",sourceDirName:"study/devops",slug:"/study/devops/Linux\u8fd0\u7ef4-\u5e38\u7528",permalink:"/docs/study/devops/Linux\u8fd0\u7ef4-\u5e38\u7528",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"API\u7684\u8bf7\u6c42\u91cf\u5206\u6790",permalink:"/docs/study/devops/API\u7684\u8bf7\u6c42\u91cf\u5206\u6790"},next:{title:"Linux\u8fd0\u7ef4-\u76d1\u63a7\u6570\u636e",permalink:"/docs/study/devops/Linux\u8fd0\u7ef4-\u76d1\u63a7\u6570\u636e"}},s={},i=[{value:"\u5185\u6838/\u53d1\u884c\u7248",id:"\u5185\u6838\u53d1\u884c\u7248",level:3},{value:"\u5220\u9664\u591a\u4f59\u7684\u5907\u4efd",id:"\u5220\u9664\u591a\u4f59\u7684\u5907\u4efd",level:3},{value:"\u6587\u4ef6/\u76ee\u5f55\u5927\u5c0f\u67e5\u770b",id:"\u6587\u4ef6\u76ee\u5f55\u5927\u5c0f\u67e5\u770b",level:3},{value:"\u7f51\u7edc\u5e26\u5bbd\u95ee\u9898",id:"\u7f51\u7edc\u5e26\u5bbd\u95ee\u9898",level:3},{value:"\u5b9a\u65f6\u4efb\u52a1",id:"\u5b9a\u65f6\u4efb\u52a1",level:3},{value:"\u9632\u706b\u5899",id:"\u9632\u706b\u5899",level:3},{value:"\u540e\u53f0\u8fd0\u884c",id:"\u540e\u53f0\u8fd0\u884c",level:3},{value:"zip \u6587\u4ef6",id:"zip-\u6587\u4ef6",level:3},{value:"centos \u5b57\u7b26\u96c6\u95ee\u9898",id:"centos-\u5b57\u7b26\u96c6\u95ee\u9898",level:3},{value:"\u5b9d\u5854\u76f8\u5173",id:"\u5b9d\u5854\u76f8\u5173",level:3},{value:"\u767b\u5f55\u7528\u6237",id:"\u767b\u5f55\u7528\u6237",level:3},{value:"\u5e38\u7528\u7684 ls \u547d\u4ee4",id:"\u5e38\u7528\u7684-ls-\u547d\u4ee4",level:3},{value:"CPU",id:"cpu",level:3},{value:"apt-get",id:"apt-get",level:3},{value:"\u7cfb\u7edf\u76d8\u7b26",id:"\u7cfb\u7edf\u76d8\u7b26",level:3},{value:"\u5185\u5b58",id:"\u5185\u5b58",level:3},{value:"\u64cd\u4f5c\u7cfb\u7edf\u7248\u672c",id:"\u64cd\u4f5c\u7cfb\u7edf\u7248\u672c",level:3},{value:"\u7aef\u53e3/\u8fde\u63a5",id:"\u7aef\u53e3\u8fde\u63a5",level:3},{value:"vi/vim \u4e2d\u6587\u4e71\u7801",id:"vivim-\u4e2d\u6587\u4e71\u7801",level:3},{value:"htop/top",id:"htoptop",level:3},{value:"grep",id:"grep",level:3},{value:"pstree",id:"pstree",level:3}],c={toc:i},d="wrapper";function u(e){let{components:n,...l}=e;return(0,a.yg)(d,(0,t.A)({},c,l,{components:n,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"\u5185\u6838\u53d1\u884c\u7248"},"\u5185\u6838/\u53d1\u884c\u7248"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},"# \u5185\u6838 CPU\u67b6\u6784\nuname -a\n# \u53d1\u884c\u7248\nlsb_release -a\n")),(0,a.yg)("h3",{id:"\u5220\u9664\u591a\u4f59\u7684\u5907\u4efd"},"\u5220\u9664\u591a\u4f59\u7684\u5907\u4efd"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},"# \u5220\u966490\u4e4b\u524d\u7684\u5907\u4efd\u6587\u4ef6\nfind /root/sh/bak/*.gz -mtime +90 -type f -exec rm -f {} \\;\n# \u5220\u966460\u4e4b\u524d\u7684\u5907\u4efd\u6587\u4ef6\nfind /root/sh/bak/*.gz -mtime +60 -type f -exec rm -f {} \\;\n# \u5220\u966410\u4e4b\u524d\u7684\u5907\u4efd\u6587\u4ef6\nfind /mnt/docker/tomcat/logs/*.log -mtime +10 -type f -exec rm -f {} \\;\n")),(0,a.yg)("h3",{id:"\u6587\u4ef6\u76ee\u5f55\u5927\u5c0f\u67e5\u770b"},"\u6587\u4ef6/\u76ee\u5f55\u5927\u5c0f\u67e5\u770b"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},"#\u67e5\u770b\u5f53\u524d\u76ee\u5f55\u603b\u5171\u5360\u7684\u5bb9\u91cf\u3002\u800c\u4e0d\u5355\u72ec\u5217\u51fa\u5404\u5b50\u9879\u5360\u7528\u7684\u5bb9\u91cf\ndu -sh\n#\u67e5\u770b\u5f53\u524d\u76ee\u5f55\u4e0b\u4e00\u7ea7\u5b50\u6587\u4ef6\u548c\u5b50\u76ee\u5f55\u5360\u7528\u7684\u78c1\u76d8\u5bb9\u91cf\u3002\ndu -lh --max-depth=1\n#\u6309\u7167\u6587\u4ef6\u5927\u5c0f \u4ece\u5c0f\u5230\u5927\u6392\u5e8f\nls -hSlr\n#\u6309\u7167\u4fee\u6539\u65f6\u95f4 \u4ece\u5c0f\u5230\u5927\u6392\u5e8f\nls -hlt\n")),(0,a.yg)("h3",{id:"\u7f51\u7edc\u5e26\u5bbd\u95ee\u9898"},"\u7f51\u7edc\u5e26\u5bbd\u95ee\u9898"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},"yum install libpcap nethogs\nnethogs -a\nlsof -i:\u88ab\u5360\u7528\u7684\u7aef\u53e3\u53f7\n")),(0,a.yg)("h3",{id:"\u5b9a\u65f6\u4efb\u52a1"},"\u5b9a\u65f6\u4efb\u52a1"),(0,a.yg)("h3",{id:"\u9632\u706b\u5899"},"\u9632\u706b\u5899"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},"#\u68c0\u67e5\u9632\u706b\u5899 \u5982\u679c\u9632\u706b\u5f3a\u4fee\u6539\u4e86 \u8bb0\u5f97\u91cd\u542fdocker\nsystemctl status firewalld\n#\nfirewall-cmd --list-ports\n\n#\u5f00\u542f\u9632\u706b\u5899\u7aef\u53e3\n#\nfirewall-cmd --permanent --add-port=9100/tcp && \\\nfirewall-cmd --permanent --add-port=9200/tcp && \\\nfirewall-cmd --permanent --add-port=9300/tcp && \\\nfirewall-cmd --reload\n#\nfirewall-cmd --permanent --add-port=5044-5054/tcp && \\\nfirewall-cmd --reload\n#\nfirewall-cmd --permanent --add-port=8090-8099/tcp && \\\nfirewall-cmd --reload\n\n#\u5173\u95ed\u9632\u706b\u5899\u7aef\u53e3\nfirewall-cmd --permanent --remove-port=9100/tcp && \\\nfirewall-cmd --permanent --remove-port=9200/tcp && \\\nfirewall-cmd --permanent --remove-port=9300/tcp && \\\nfirewall-cmd --reload\n")),(0,a.yg)("h3",{id:"\u540e\u53f0\u8fd0\u884c"},"\u540e\u53f0\u8fd0\u884c"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},"nohup python ./analyse_init_stocks.py > /dev/null 2>&1 &\n")),(0,a.yg)("h3",{id:"zip-\u6587\u4ef6"},"zip \u6587\u4ef6"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},"yum install -y unzip zip\n")),(0,a.yg)("h3",{id:"centos-\u5b57\u7b26\u96c6\u95ee\u9898"},"centos \u5b57\u7b26\u96c6\u95ee\u9898"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("a",{parentName:"li",href:"https://www.cnblogs.com/kcxg/p/11451120.html"},"CentOS7 \u53ca Docker \u914d\u7f6e\u4e2d\u6587\u5b57\u7b26\u96c6\u95ee\u9898"))),(0,a.yg)("h3",{id:"\u5b9d\u5854\u76f8\u5173"},"\u5b9d\u5854\u76f8\u5173"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},"\u5982\u679c\u4e0d\u77e5\u9053\u5b9d\u5854\u7684\u7ba1\u7406\u5458\u7684\u7528\u6237\u540d\u548c\u5bc6\u7801\uff0c\u4f46\u662f\u53ef\u4ee5\u767b\u5f55\u670d\u52a1\u5668\uff0c\u4f7f\u7528\u811a\u672c bt default \u6765\u83b7\u53d6\u7ba1\u7406\u5458\u7684\u7528\u6237\u540d\u548c\u5bc6\u7801\u3002")),(0,a.yg)("h3",{id:"\u767b\u5f55\u7528\u6237"},"\u767b\u5f55\u7528\u6237"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},"#\nw\n#\nwho\n")),(0,a.yg)("h3",{id:"\u5e38\u7528\u7684-ls-\u547d\u4ee4"},"\u5e38\u7528\u7684 ls \u547d\u4ee4"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},'#\u5ffd\u7565\u67d0\u4e9b\u6587\u4ef6\u540d\u5c55\u793a\nll -h --ignore="*bak*"\n')),(0,a.yg)("h3",{id:"cpu"},"CPU"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},'#\u8be5\u670d\u52a1\u5668\u4e00\u5171\u6709\u51e0\u4e2a\u7269\u7406CPU\ngrep "physical id" /proc/cpuinfo | uniq | wc -l\n#\u8be5\u670d\u52a1\u5668\u4e00\u5171\u6709\u51e0\u4e2a\u903b\u8f91CPU\ngrep "processor" /proc/cpuinfo | wc -l\n#\u67e5\u770bcpu\u6838\u5fc3\u6570\ncat /proc/cpuinfo| grep "cpu cores"| uniq\n#\u67e5\u770bcpu\u8be6\u7ec6\u4fe1\u606f\nlscpu\n#\u67e5\u770bCPU\u4f4d\u6570\ngetconf LONG_BIT\n# \u5217\u51faCPU\u5360\u7528\u6700\u591a\u76845\u4e2a\u8fdb\u7a0b\nps -aux | sort -k3nr | head -5\n# P\u6309\u7167\u5185\u5b58\u5927\u5c0f\u6392\u5e8f c\u663e\u793a\u8fdb\u7a0b\u5168\u79f0\ntop\n')),(0,a.yg)("h3",{id:"apt-get"},"apt-get"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sql"},"#\napt-get update\n#\napt-get install vim\n")),(0,a.yg)("h3",{id:"\u7cfb\u7edf\u76d8\u7b26"},"\u7cfb\u7edf\u76d8\u7b26"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},"#\u67e5\u770b\u7cfb\u7edf\u652f\u6301\u7684\u76d8\u7b26\uff0c\u67e5\u770b\u5206\u533a\u548c\u78c1\u76d8\nlsblk\n#\u67e5\u770b\u7a7a\u95f4\u4f7f\u7528\u60c5\u51b5\ndf -h\n#\u67e5\u770b\u786c\u76d8label\uff08\u522b\u540d\uff09\u78c1\u76d8\u6587\u4ef6\u7c7b\u578b\nblkid\n")),(0,a.yg)("h3",{id:"\u5185\u5b58"},"\u5185\u5b58"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},"# \u67e5\u770b\u5185\u5b58\u5927\u5c0f\nfree -h \u3000\n# \u5185\u5b58\u5360\u7528\u6700\u591a\u76845\u4e2a\u8fdb\u7a0b\nps -aux | sort -k4nr | head -5\n# >\u6216M\u6309\u7167\u5185\u5b58\u5927\u5c0f\u6392\u5e8f c\u663e\u793a\u8fdb\u7a0b\u5168\u79f0\ntop\n")),(0,a.yg)("h3",{id:"\u64cd\u4f5c\u7cfb\u7edf\u7248\u672c"},"\u64cd\u4f5c\u7cfb\u7edf\u7248\u672c"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},"#\u7ea2\u5e3d\u7cfb\u5217 centos\ncat /etc/redhat-release\n#\u67e5\u770b\u5185\u6838/\u64cd\u4f5c\u7cfb\u7edf/CPU\u4fe1\u606f\uff1a\nuname -a\n")),(0,a.yg)("h3",{id:"\u7aef\u53e3\u8fde\u63a5"},"\u7aef\u53e3/\u8fde\u63a5"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},"#\u67e5\u770b\u6240\u6709\u76d1\u542c\u7684\u7aef\u53e3\nnetstat -lntp\n#\u67e5\u770b\u5df2\u7ecf\u5efa\u7acb\u7684\u94fe\u63a5\nnetstat -antp\n#\nyum list |grep telnet\nyum -y install telnet.x86_64\ntelnet 172.19.74.146 9200\n")),(0,a.yg)("h3",{id:"vivim-\u4e2d\u6587\u4e71\u7801"},"vi/vim \u4e2d\u6587\u4e71\u7801"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},"#\nvi /etc/vimrc\n#\u5728\u6587\u4ef6\u5934\u589e\u52a0\u5982\u4e0b\u5185\u5bb9\nset fileencodings=utf-8,gb2312,gbk,gb18030\nset termencoding=utf-8\nset fileformats=unix\nset encoding=prc\n")),(0,a.yg)("h3",{id:"htoptop"},"htop/top"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},"#\u652f\u6301\u9f20\u6807 \u652f\u6301\u5de6\u53f3\u65b9\u5411\u952e\nhtop\n#\nH \u53ea\u5c55\u793a\u8fdb\u7a0b/\u663e\u793a\u7ebf\u7a0b\nh, ? F1\u67e5\u770bhtop\u4f7f\u7528\u8bf4\u660e\nS F2 htop \u8bbe\u5b9a\n/ F3 \u641c\u7d22\u8fdb\u7a0b\n\\ F4 \u589e\u91cf\u8fdb\u7a0b\u8fc7\u6ee4\u5668\nt F5 \u663e\u793a\u6811\u5f62\u7ed3\u6784\n<, > F6 \u9009\u62e9\u6392\u5e8f\u65b9\u5f0f\n[ F7 \u53ef\u51cf\u5c11nice\u503c\u53ef\u4ee5\u63d0\u9ad8\u5bf9\u5e94\u8fdb\u7a0b\u7684\u4f18\u5148\u7ea7\n] F8 \u53ef\u589e\u52a0nice\u503c\uff0c\u964d\u4f4e\u5bf9\u5e94\u8fdb\u7a0b\u7684\u4f18\u5148\u7ea7\nk F9 \u53ef\u5bf9\u8fdb\u7a0b\u4f20\u9012\u4fe1\u53f7\nq F10 \u7ed3\u675fhtop\nu \u53ea\u663e\u793a\u4e00\u4e2a\u7ed9\u5b9a\u7684\u7528\u6237\u7684\u8fc7\u7a0b\nU \u53d6\u6d88\u6807\u8bb0\u6240\u6709\u7684\u8fdb\u7a0b\nH \u663e\u793a\u6216\u9690\u85cf\u7528\u6237\u7ebf\u7a0b\nK \u663e\u793a\u6216\u9690\u85cf\u5185\u6838\u7ebf\u7a0b\nF \u8ddf\u8e2a\u8fdb\u7a0b\nP \u6309CPU \u4f7f\u7528\u6392\u5e8f\nM \u6309\u5185\u5b58\u4f7f\u7528\u6392\u5e8f\nT \u6309Time+ \u4f7f\u7528\u6392\u5e8f\nl \u663e\u793a\u8fdb\u7a0b\u6253\u5f00\u7684\u6587\u4ef6\nI \u5012\u8f6c\u6392\u5e8f\u987a\u5e8f\ns \u9009\u62e9\u67d0\u8fdb\u7a0b\uff0c\u6309s:\u7528strace\u8ffd\u8e2a\u8fdb\u7a0b\u7684\u7cfb\u7edf\u8c03\u7528\n")),(0,a.yg)("h3",{id:"grep"},"grep"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},"#\nless user-func-flow-for-res.2022-03-11.log | grep -E '61.166.240.34' |grep get | more\n\n\n")),(0,a.yg)("h3",{id:"pstree"},"pstree"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},"#pstree \u547d\u4ee4\u662f\u4ee5\u6811\u5f62\u7ed3\u6784\u663e\u793a\u7a0b\u5e8f\u548c\u8fdb\u7a0b\u4e4b\u95f4\u7684\u5173\u7cfb\nman pstree\n#\u5c55\u793a\u8fdb\u7a0b\u547d\u4ee4\u884c\npstree -a\n")))}u.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1293],{5680:(e,n,l)=>{l.d(n,{xA:()=>c,yg:()=>m});var t=l(6540);function a(e,n,l){return n in e?Object.defineProperty(e,n,{value:l,enumerable:!0,configurable:!0,writable:!0}):e[n]=l,e}function r(e,n){var l=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);n&&(t=t.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),l.push.apply(l,t)}return l}function p(e){for(var n=1;n=0||(a[l]=e[l]);return a}(e,n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(e,l)&&(a[l]=e[l])}return a}var s=t.createContext({}),i=function(e){var n=t.useContext(s),l=n;return e&&(l="function"==typeof e?e(n):p(p({},n),e)),l},c=function(e){var n=i(e.components);return t.createElement(s.Provider,{value:n},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var n=e.children;return t.createElement(t.Fragment,{},n)}},g=t.forwardRef((function(e,n){var l=e.components,a=e.mdxType,r=e.originalType,s=e.parentName,c=o(e,["components","mdxType","originalType","parentName"]),d=i(l),g=a,m=d["".concat(s,".").concat(g)]||d[g]||u[g]||r;return l?t.createElement(m,p(p({ref:n},c),{},{components:l})):t.createElement(m,p({ref:n},c))}));function m(e,n){var l=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var r=l.length,p=new Array(r);p[0]=g;var o={};for(var s in n)hasOwnProperty.call(n,s)&&(o[s]=n[s]);o.originalType=e,o[d]="string"==typeof e?e:a,p[1]=o;for(var i=2;i{l.r(n),l.d(n,{assets:()=>s,contentTitle:()=>p,default:()=>u,frontMatter:()=>r,metadata:()=>o,toc:()=>i});var t=l(8168),a=(l(6540),l(5680));const r={},p=void 0,o={unversionedId:"study/devops/Linux\u8fd0\u7ef4-\u5e38\u7528",id:"study/devops/Linux\u8fd0\u7ef4-\u5e38\u7528",title:"Linux\u8fd0\u7ef4-\u5e38\u7528",description:"\u5185\u6838/\u53d1\u884c\u7248",source:"@site/docs/study/devops/Linux\u8fd0\u7ef4-\u5e38\u7528.md",sourceDirName:"study/devops",slug:"/study/devops/Linux\u8fd0\u7ef4-\u5e38\u7528",permalink:"/docs/study/devops/Linux\u8fd0\u7ef4-\u5e38\u7528",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"API\u7684\u8bf7\u6c42\u91cf\u5206\u6790",permalink:"/docs/study/devops/API\u7684\u8bf7\u6c42\u91cf\u5206\u6790"},next:{title:"Linux\u8fd0\u7ef4-\u76d1\u63a7\u6570\u636e",permalink:"/docs/study/devops/Linux\u8fd0\u7ef4-\u76d1\u63a7\u6570\u636e"}},s={},i=[{value:"\u5185\u6838/\u53d1\u884c\u7248",id:"\u5185\u6838\u53d1\u884c\u7248",level:3},{value:"\u5220\u9664\u591a\u4f59\u7684\u5907\u4efd",id:"\u5220\u9664\u591a\u4f59\u7684\u5907\u4efd",level:3},{value:"\u6587\u4ef6/\u76ee\u5f55\u5927\u5c0f\u67e5\u770b",id:"\u6587\u4ef6\u76ee\u5f55\u5927\u5c0f\u67e5\u770b",level:3},{value:"\u7f51\u7edc\u5e26\u5bbd\u95ee\u9898",id:"\u7f51\u7edc\u5e26\u5bbd\u95ee\u9898",level:3},{value:"\u5b9a\u65f6\u4efb\u52a1",id:"\u5b9a\u65f6\u4efb\u52a1",level:3},{value:"\u9632\u706b\u5899",id:"\u9632\u706b\u5899",level:3},{value:"\u540e\u53f0\u8fd0\u884c",id:"\u540e\u53f0\u8fd0\u884c",level:3},{value:"zip \u6587\u4ef6",id:"zip-\u6587\u4ef6",level:3},{value:"centos \u5b57\u7b26\u96c6\u95ee\u9898",id:"centos-\u5b57\u7b26\u96c6\u95ee\u9898",level:3},{value:"\u5b9d\u5854\u76f8\u5173",id:"\u5b9d\u5854\u76f8\u5173",level:3},{value:"\u767b\u5f55\u7528\u6237",id:"\u767b\u5f55\u7528\u6237",level:3},{value:"\u5e38\u7528\u7684 ls \u547d\u4ee4",id:"\u5e38\u7528\u7684-ls-\u547d\u4ee4",level:3},{value:"CPU",id:"cpu",level:3},{value:"apt-get",id:"apt-get",level:3},{value:"\u7cfb\u7edf\u76d8\u7b26",id:"\u7cfb\u7edf\u76d8\u7b26",level:3},{value:"\u5185\u5b58",id:"\u5185\u5b58",level:3},{value:"\u64cd\u4f5c\u7cfb\u7edf\u7248\u672c",id:"\u64cd\u4f5c\u7cfb\u7edf\u7248\u672c",level:3},{value:"\u7aef\u53e3/\u8fde\u63a5",id:"\u7aef\u53e3\u8fde\u63a5",level:3},{value:"vi/vim \u4e2d\u6587\u4e71\u7801",id:"vivim-\u4e2d\u6587\u4e71\u7801",level:3},{value:"htop/top",id:"htoptop",level:3},{value:"grep",id:"grep",level:3},{value:"pstree",id:"pstree",level:3}],c={toc:i},d="wrapper";function u(e){let{components:n,...l}=e;return(0,a.yg)(d,(0,t.A)({},c,l,{components:n,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"\u5185\u6838\u53d1\u884c\u7248"},"\u5185\u6838/\u53d1\u884c\u7248"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},"# \u5185\u6838 CPU\u67b6\u6784\nuname -a\n# \u53d1\u884c\u7248\nlsb_release -a\n")),(0,a.yg)("h3",{id:"\u5220\u9664\u591a\u4f59\u7684\u5907\u4efd"},"\u5220\u9664\u591a\u4f59\u7684\u5907\u4efd"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},"# \u5220\u966490\u4e4b\u524d\u7684\u5907\u4efd\u6587\u4ef6\nfind /root/sh/bak/*.gz -mtime +90 -type f -exec rm -f {} \\;\n# \u5220\u966460\u4e4b\u524d\u7684\u5907\u4efd\u6587\u4ef6\nfind /root/sh/bak/*.gz -mtime +60 -type f -exec rm -f {} \\;\n# \u5220\u966410\u4e4b\u524d\u7684\u5907\u4efd\u6587\u4ef6\nfind /mnt/docker/tomcat/logs/*.log -mtime +10 -type f -exec rm -f {} \\;\n")),(0,a.yg)("h3",{id:"\u6587\u4ef6\u76ee\u5f55\u5927\u5c0f\u67e5\u770b"},"\u6587\u4ef6/\u76ee\u5f55\u5927\u5c0f\u67e5\u770b"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},"#\u67e5\u770b\u5f53\u524d\u76ee\u5f55\u603b\u5171\u5360\u7684\u5bb9\u91cf\u3002\u800c\u4e0d\u5355\u72ec\u5217\u51fa\u5404\u5b50\u9879\u5360\u7528\u7684\u5bb9\u91cf\ndu -sh\n#\u67e5\u770b\u5f53\u524d\u76ee\u5f55\u4e0b\u4e00\u7ea7\u5b50\u6587\u4ef6\u548c\u5b50\u76ee\u5f55\u5360\u7528\u7684\u78c1\u76d8\u5bb9\u91cf\u3002\ndu -lh --max-depth=1\n#\u6309\u7167\u6587\u4ef6\u5927\u5c0f \u4ece\u5c0f\u5230\u5927\u6392\u5e8f\nls -hSlr\n#\u6309\u7167\u4fee\u6539\u65f6\u95f4 \u4ece\u5c0f\u5230\u5927\u6392\u5e8f\nls -hlt\n")),(0,a.yg)("h3",{id:"\u7f51\u7edc\u5e26\u5bbd\u95ee\u9898"},"\u7f51\u7edc\u5e26\u5bbd\u95ee\u9898"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},"yum install libpcap nethogs\nnethogs -a\nlsof -i:\u88ab\u5360\u7528\u7684\u7aef\u53e3\u53f7\n")),(0,a.yg)("h3",{id:"\u5b9a\u65f6\u4efb\u52a1"},"\u5b9a\u65f6\u4efb\u52a1"),(0,a.yg)("h3",{id:"\u9632\u706b\u5899"},"\u9632\u706b\u5899"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},"#\u68c0\u67e5\u9632\u706b\u5899 \u5982\u679c\u9632\u706b\u5f3a\u4fee\u6539\u4e86 \u8bb0\u5f97\u91cd\u542fdocker\nsystemctl status firewalld\n#\nfirewall-cmd --list-ports\n\n#\u5f00\u542f\u9632\u706b\u5899\u7aef\u53e3\n#\nfirewall-cmd --permanent --add-port=9100/tcp && \\\nfirewall-cmd --permanent --add-port=9200/tcp && \\\nfirewall-cmd --permanent --add-port=9300/tcp && \\\nfirewall-cmd --reload\n#\nfirewall-cmd --permanent --add-port=5044-5054/tcp && \\\nfirewall-cmd --reload\n#\nfirewall-cmd --permanent --add-port=8090-8099/tcp && \\\nfirewall-cmd --reload\n\n#\u5173\u95ed\u9632\u706b\u5899\u7aef\u53e3\nfirewall-cmd --permanent --remove-port=9100/tcp && \\\nfirewall-cmd --permanent --remove-port=9200/tcp && \\\nfirewall-cmd --permanent --remove-port=9300/tcp && \\\nfirewall-cmd --reload\n")),(0,a.yg)("h3",{id:"\u540e\u53f0\u8fd0\u884c"},"\u540e\u53f0\u8fd0\u884c"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},"nohup python ./analyse_init_stocks.py > /dev/null 2>&1 &\n")),(0,a.yg)("h3",{id:"zip-\u6587\u4ef6"},"zip \u6587\u4ef6"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},"yum install -y unzip zip\n")),(0,a.yg)("h3",{id:"centos-\u5b57\u7b26\u96c6\u95ee\u9898"},"centos \u5b57\u7b26\u96c6\u95ee\u9898"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("a",{parentName:"li",href:"https://www.cnblogs.com/kcxg/p/11451120.html"},"CentOS7 \u53ca Docker \u914d\u7f6e\u4e2d\u6587\u5b57\u7b26\u96c6\u95ee\u9898"))),(0,a.yg)("h3",{id:"\u5b9d\u5854\u76f8\u5173"},"\u5b9d\u5854\u76f8\u5173"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},"\u5982\u679c\u4e0d\u77e5\u9053\u5b9d\u5854\u7684\u7ba1\u7406\u5458\u7684\u7528\u6237\u540d\u548c\u5bc6\u7801\uff0c\u4f46\u662f\u53ef\u4ee5\u767b\u5f55\u670d\u52a1\u5668\uff0c\u4f7f\u7528\u811a\u672c bt default \u6765\u83b7\u53d6\u7ba1\u7406\u5458\u7684\u7528\u6237\u540d\u548c\u5bc6\u7801\u3002")),(0,a.yg)("h3",{id:"\u767b\u5f55\u7528\u6237"},"\u767b\u5f55\u7528\u6237"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},"#\nw\n#\nwho\n")),(0,a.yg)("h3",{id:"\u5e38\u7528\u7684-ls-\u547d\u4ee4"},"\u5e38\u7528\u7684 ls \u547d\u4ee4"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},'#\u5ffd\u7565\u67d0\u4e9b\u6587\u4ef6\u540d\u5c55\u793a\nll -h --ignore="*bak*"\n')),(0,a.yg)("h3",{id:"cpu"},"CPU"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},'#\u8be5\u670d\u52a1\u5668\u4e00\u5171\u6709\u51e0\u4e2a\u7269\u7406CPU\ngrep "physical id" /proc/cpuinfo | uniq | wc -l\n#\u8be5\u670d\u52a1\u5668\u4e00\u5171\u6709\u51e0\u4e2a\u903b\u8f91CPU\ngrep "processor" /proc/cpuinfo | wc -l\n#\u67e5\u770bcpu\u6838\u5fc3\u6570\ncat /proc/cpuinfo| grep "cpu cores"| uniq\n#\u67e5\u770bcpu\u8be6\u7ec6\u4fe1\u606f\nlscpu\n#\u67e5\u770bCPU\u4f4d\u6570\ngetconf LONG_BIT\n# \u5217\u51faCPU\u5360\u7528\u6700\u591a\u76845\u4e2a\u8fdb\u7a0b\nps -aux | sort -k3nr | head -5\n# P\u6309\u7167\u5185\u5b58\u5927\u5c0f\u6392\u5e8f c\u663e\u793a\u8fdb\u7a0b\u5168\u79f0\ntop\n')),(0,a.yg)("h3",{id:"apt-get"},"apt-get"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sql"},"#\napt-get update\n#\napt-get install vim\n")),(0,a.yg)("h3",{id:"\u7cfb\u7edf\u76d8\u7b26"},"\u7cfb\u7edf\u76d8\u7b26"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},"#\u67e5\u770b\u7cfb\u7edf\u652f\u6301\u7684\u76d8\u7b26\uff0c\u67e5\u770b\u5206\u533a\u548c\u78c1\u76d8\nlsblk\n#\u67e5\u770b\u7a7a\u95f4\u4f7f\u7528\u60c5\u51b5\ndf -h\n#\u67e5\u770b\u786c\u76d8label\uff08\u522b\u540d\uff09\u78c1\u76d8\u6587\u4ef6\u7c7b\u578b\nblkid\n")),(0,a.yg)("h3",{id:"\u5185\u5b58"},"\u5185\u5b58"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},"# \u67e5\u770b\u5185\u5b58\u5927\u5c0f\nfree -h \u3000\n# \u5185\u5b58\u5360\u7528\u6700\u591a\u76845\u4e2a\u8fdb\u7a0b\nps -aux | sort -k4nr | head -5\n# >\u6216M\u6309\u7167\u5185\u5b58\u5927\u5c0f\u6392\u5e8f c\u663e\u793a\u8fdb\u7a0b\u5168\u79f0\ntop\n")),(0,a.yg)("h3",{id:"\u64cd\u4f5c\u7cfb\u7edf\u7248\u672c"},"\u64cd\u4f5c\u7cfb\u7edf\u7248\u672c"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},"#\u7ea2\u5e3d\u7cfb\u5217 centos\ncat /etc/redhat-release\n#\u67e5\u770b\u5185\u6838/\u64cd\u4f5c\u7cfb\u7edf/CPU\u4fe1\u606f\uff1a\nuname -a\n")),(0,a.yg)("h3",{id:"\u7aef\u53e3\u8fde\u63a5"},"\u7aef\u53e3/\u8fde\u63a5"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},"#\u67e5\u770b\u6240\u6709\u76d1\u542c\u7684\u7aef\u53e3\nnetstat -lntp\n#\u67e5\u770b\u5df2\u7ecf\u5efa\u7acb\u7684\u94fe\u63a5\nnetstat -antp\n#\nyum list |grep telnet\nyum -y install telnet.x86_64\ntelnet 172.19.74.146 9200\n")),(0,a.yg)("h3",{id:"vivim-\u4e2d\u6587\u4e71\u7801"},"vi/vim \u4e2d\u6587\u4e71\u7801"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},"#\nvi /etc/vimrc\n#\u5728\u6587\u4ef6\u5934\u589e\u52a0\u5982\u4e0b\u5185\u5bb9\nset fileencodings=utf-8,gb2312,gbk,gb18030\nset termencoding=utf-8\nset fileformats=unix\nset encoding=prc\n")),(0,a.yg)("h3",{id:"htoptop"},"htop/top"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},"#\u652f\u6301\u9f20\u6807 \u652f\u6301\u5de6\u53f3\u65b9\u5411\u952e\nhtop\n#\nH \u53ea\u5c55\u793a\u8fdb\u7a0b/\u663e\u793a\u7ebf\u7a0b\nh, ? F1\u67e5\u770bhtop\u4f7f\u7528\u8bf4\u660e\nS F2 htop \u8bbe\u5b9a\n/ F3 \u641c\u7d22\u8fdb\u7a0b\n\\ F4 \u589e\u91cf\u8fdb\u7a0b\u8fc7\u6ee4\u5668\nt F5 \u663e\u793a\u6811\u5f62\u7ed3\u6784\n<, > F6 \u9009\u62e9\u6392\u5e8f\u65b9\u5f0f\n[ F7 \u53ef\u51cf\u5c11nice\u503c\u53ef\u4ee5\u63d0\u9ad8\u5bf9\u5e94\u8fdb\u7a0b\u7684\u4f18\u5148\u7ea7\n] F8 \u53ef\u589e\u52a0nice\u503c\uff0c\u964d\u4f4e\u5bf9\u5e94\u8fdb\u7a0b\u7684\u4f18\u5148\u7ea7\nk F9 \u53ef\u5bf9\u8fdb\u7a0b\u4f20\u9012\u4fe1\u53f7\nq F10 \u7ed3\u675fhtop\nu \u53ea\u663e\u793a\u4e00\u4e2a\u7ed9\u5b9a\u7684\u7528\u6237\u7684\u8fc7\u7a0b\nU \u53d6\u6d88\u6807\u8bb0\u6240\u6709\u7684\u8fdb\u7a0b\nH \u663e\u793a\u6216\u9690\u85cf\u7528\u6237\u7ebf\u7a0b\nK \u663e\u793a\u6216\u9690\u85cf\u5185\u6838\u7ebf\u7a0b\nF \u8ddf\u8e2a\u8fdb\u7a0b\nP \u6309CPU \u4f7f\u7528\u6392\u5e8f\nM \u6309\u5185\u5b58\u4f7f\u7528\u6392\u5e8f\nT \u6309Time+ \u4f7f\u7528\u6392\u5e8f\nl \u663e\u793a\u8fdb\u7a0b\u6253\u5f00\u7684\u6587\u4ef6\nI \u5012\u8f6c\u6392\u5e8f\u987a\u5e8f\ns \u9009\u62e9\u67d0\u8fdb\u7a0b\uff0c\u6309s:\u7528strace\u8ffd\u8e2a\u8fdb\u7a0b\u7684\u7cfb\u7edf\u8c03\u7528\n")),(0,a.yg)("h3",{id:"grep"},"grep"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},"#\nless user-func-flow-for-res.2022-03-11.log | grep -E '61.166.240.34' |grep get | more\n\n\n")),(0,a.yg)("h3",{id:"pstree"},"pstree"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},"#pstree \u547d\u4ee4\u662f\u4ee5\u6811\u5f62\u7ed3\u6784\u663e\u793a\u7a0b\u5e8f\u548c\u8fdb\u7a0b\u4e4b\u95f4\u7684\u5173\u7cfb\nman pstree\n#\u5c55\u793a\u8fdb\u7a0b\u547d\u4ee4\u884c\npstree -a\n")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1387c807.cd0074a2.js b/assets/js/1387c807.288ad048.js similarity index 99% rename from assets/js/1387c807.cd0074a2.js rename to assets/js/1387c807.288ad048.js index 6ac746ab0..c6e275764 100644 --- a/assets/js/1387c807.cd0074a2.js +++ b/assets/js/1387c807.288ad048.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6598],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var i=n.createContext({}),u=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},p=function(e){var t=u(e.components);return n.createElement(i.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,i=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),s=u(r),y=o,f=s["".concat(i,".").concat(y)]||s[y]||d[y]||a;return r?n.createElement(f,l(l({ref:t},p),{},{components:r})):n.createElement(f,l({ref:t},p))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,l=new Array(a);l[0]=y;var c={};for(var i in t)hasOwnProperty.call(t,i)&&(c[i]=t[i]);c.originalType=e,c[s]="string"==typeof e?e:o,l[1]=c;for(var u=2;u{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>l,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>u});var n=r(8168),o=(r(6540),r(5680));const a={},l=void 0,c={unversionedId:"study/hard/\u5d4c\u5165\u5f0f_\u5355\u7247\u673a",id:"study/hard/\u5d4c\u5165\u5f0f_\u5355\u7247\u673a",title:"\u5d4c\u5165\u5f0f_\u5355\u7247\u673a",description:"\u5d4c\u5165\u5f0f\u548c\u5355\u7247\u673a\u7684\u533a\u522b\u5230\u5e95\u662f\u4ec0\u4e48\u3002",source:"@site/docs/study/hard/\u5d4c\u5165\u5f0f_\u5355\u7247\u673a.md",sourceDirName:"study/hard",slug:"/study/hard/\u5d4c\u5165\u5f0f_\u5355\u7247\u673a",permalink:"/docs/study/hard/\u5d4c\u5165\u5f0f_\u5355\u7247\u673a",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u6982\u8ff0",permalink:"/docs/study/hard/"},next:{title:"\u786c\u4ef6\u5f00\u53d1\u548c\u5d4c\u5165\u5f0f\u5f00\u53d1",permalink:"/docs/study/hard/\u786c\u4ef6\u5f00\u53d1\u548c\u5d4c\u5165\u5f0f\u5f00\u53d1"}},i={},u=[{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],p={toc:u},s="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("p",null,(0,o.yg)("strong",{parentName:"p"},"\u5d4c\u5165\u5f0f\u548c\u5355\u7247\u673a\u7684\u533a\u522b\u5230\u5e95\u662f\u4ec0\u4e48\u3002")),(0,o.yg)("p",null,"\u4ece\u524d\u6587\u7684\u4ecb\u7ecd\u6765\u770b\uff0c\u5d4c\u5165\u5f0f\u7cfb\u7edf\u662f\u4e00\u4e2a\u5927\u7c7b\uff0c\u5355\u7247\u673a\u662f\u5176\u4e2d\u4e00\u4e2a\u91cd\u8981\u7684\u5b50\u7c7b\u3002\u5d4c\u5165\u5f0f\u7cfb\u7edf\u50cf\u662f\u4e00\u4e2a\u5b8c\u6574\u7684\u8ba1\u7b97\u673a\uff0c\u800c\u5355\u7247\u673a\u66f4\u50cf\u662f\u4e00\u4e2a\u6ca1\u6709\u5916\u8bbe\u7684\u8ba1\u7b97\u673a\u3002"),(0,o.yg)("p",null,"\u4ee5\u524d\u5355\u7247\u673a\u5305\u62ec\u7684\u4e1c\u897f\u5e76\u4e0d\u7b97\u591a\uff0c\u4e24\u8005\u7684\u786c\u4ef6\u533a\u522b\u8f83\u4e3a\u660e\u663e\u3002\u4f46\u662f\uff0c\u968f\u7740\u534a\u5bfc\u4f53\u6280\u672f\u7684\u7a81\u98de\u731b\u8fdb\uff0c\u73b0\u5728\u5404\u79cd\u786c\u4ef6\u529f\u80fd\u90fd\u80fd\u88ab\u505a\u8fdb\u5355\u7247\u673a\u4e4b\u4e2d\u3002\u6240\u4ee5\uff0c\u5d4c\u5165\u5f0f\u7cfb\u7edf\u548c\u5355\u7247\u673a\u4e4b\u95f4\u7684\u786c\u4ef6\u533a\u522b\u8d8a\u6765\u8d8a\u5c0f\uff0c\u5206\u754c\u7ebf\u4e5f\u8d8a\u6765\u8d8a\u6a21\u7cca\u3002"),(0,o.yg)("p",null,"\u4e8e\u662f\uff0c\u4eba\u4eec\u503e\u5411\u4e8e\u5728\u8f6f\u4ef6\u4e0a\u8fdb\u884c\u533a\u5206\u3002"),(0,o.yg)("p",null,"\u4ece\u8f6f\u4ef6\u4e0a\uff0c\u884c\u4e1a\u91cc\u7ecf\u5e38\u628a\u82af\u7247\u4e2d\u4e0d\u5e26MMU\uff08memory management unit\uff0c\u5185\u5b58\u7ba1\u7406\u5355\u5143\uff09\u4ece\u800c\u4e0d\u652f\u6301\u865a\u62df\u5730\u5740\uff0c\u53ea\u80fd\u88f8\u5954\u6216\u8fd0\u884cRTOS\uff08\u5b9e\u65f6\u64cd\u4f5c\u7cfb\u7edf\uff0c\u4f8b\u5982ucos\u3001\u534e\u4e3aLiteOS\u3001RT-Thread\u3001freertos\u7b49\uff09\u7684system\uff0c\u53eb\u505a\u5355\u7247\u673a\uff08\u5982STM32\u3001NXP LPC\u7cfb\u5217\u3001NXP imxRT1052\u7cfb\u5217\u7b49\uff09\u3002\u800c\u628a\u82af\u7247\u81ea\u5e26MMU\u53ef\u4ee5\u652f\u6301\u865a\u62df\u5730\u5740\uff0c\u80fd\u591f\u8dd1Linux\u3001Vxworks\u3001WinCE\u3001Android\u8fd9\u6837\u7684\u201c\u9ad8\u7ea7\u201d\u64cd\u4f5c\u7cfb\u7edf\u7684system\uff0c\u53eb\u505a\u5d4c\u5165\u5f0f\u3002"),(0,o.yg)("p",null,"\u5728\u67d0\u4e9b\u65f6\u5019\uff0c\u5355\u7247\u673a\u672c\u8eab\u5df2\u7ecf\u8db3\u591f\u5f3a\u5927\uff0c\u53ef\u4ee5\u4f5c\u4e3a\u5d4c\u5165\u5f0f\u7cfb\u7edf\u4f7f\u7528\u3002\u5b83\u7684\u6210\u672c\u66f4\u4f4e\uff0c\u5f00\u53d1\u548c\u7ef4\u62a4\u7684\u96be\u5ea6\u76f8\u5bf9\u8f83\u5c0f\uff0c\u5c24\u5176\u662f\u9488\u5bf9\u4e00\u4e9b\u9488\u5bf9\u6027\u66f4\u5f3a\u7684\u5e94\u7528\u3002\u800c\u5d4c\u5165\u5f0f\u7cfb\u7edf\u7406\u8bba\u4e0a\u6027\u80fd\u66f4\u5f3a\uff0c\u5e94\u7528\u66f4\u5e7f\u6cdb\uff0c\u4f46\u590d\u6742\u5ea6\u9ad8\uff0c\u5f00\u53d1\u96be\u5ea6\u5927\u3002"),(0,o.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,o.yg)("ol",null,(0,o.yg)("li",{parentName:"ol"},(0,o.yg)("a",{parentName:"li",href:"https://cloud.tencent.com/developer/article/1505486"},"\u5230\u5e95\u4ec0\u4e48\u662f\u5d4c\u5165\u5f0f\uff1f\u4ec0\u4e48\u662f\u5355\u7247\u673a\uff1f"))))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6598],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var i=n.createContext({}),u=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},p=function(e){var t=u(e.components);return n.createElement(i.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,i=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),s=u(r),y=o,f=s["".concat(i,".").concat(y)]||s[y]||d[y]||a;return r?n.createElement(f,l(l({ref:t},p),{},{components:r})):n.createElement(f,l({ref:t},p))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,l=new Array(a);l[0]=y;var c={};for(var i in t)hasOwnProperty.call(t,i)&&(c[i]=t[i]);c.originalType=e,c[s]="string"==typeof e?e:o,l[1]=c;for(var u=2;u{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>l,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>u});var n=r(8168),o=(r(6540),r(5680));const a={},l=void 0,c={unversionedId:"study/hard/\u5d4c\u5165\u5f0f_\u5355\u7247\u673a",id:"study/hard/\u5d4c\u5165\u5f0f_\u5355\u7247\u673a",title:"\u5d4c\u5165\u5f0f_\u5355\u7247\u673a",description:"\u5d4c\u5165\u5f0f\u548c\u5355\u7247\u673a\u7684\u533a\u522b\u5230\u5e95\u662f\u4ec0\u4e48\u3002",source:"@site/docs/study/hard/\u5d4c\u5165\u5f0f_\u5355\u7247\u673a.md",sourceDirName:"study/hard",slug:"/study/hard/\u5d4c\u5165\u5f0f_\u5355\u7247\u673a",permalink:"/docs/study/hard/\u5d4c\u5165\u5f0f_\u5355\u7247\u673a",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u6982\u8ff0",permalink:"/docs/study/hard/"},next:{title:"\u786c\u4ef6\u5f00\u53d1\u548c\u5d4c\u5165\u5f0f\u5f00\u53d1",permalink:"/docs/study/hard/\u786c\u4ef6\u5f00\u53d1\u548c\u5d4c\u5165\u5f0f\u5f00\u53d1"}},i={},u=[{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],p={toc:u},s="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("p",null,(0,o.yg)("strong",{parentName:"p"},"\u5d4c\u5165\u5f0f\u548c\u5355\u7247\u673a\u7684\u533a\u522b\u5230\u5e95\u662f\u4ec0\u4e48\u3002")),(0,o.yg)("p",null,"\u4ece\u524d\u6587\u7684\u4ecb\u7ecd\u6765\u770b\uff0c\u5d4c\u5165\u5f0f\u7cfb\u7edf\u662f\u4e00\u4e2a\u5927\u7c7b\uff0c\u5355\u7247\u673a\u662f\u5176\u4e2d\u4e00\u4e2a\u91cd\u8981\u7684\u5b50\u7c7b\u3002\u5d4c\u5165\u5f0f\u7cfb\u7edf\u50cf\u662f\u4e00\u4e2a\u5b8c\u6574\u7684\u8ba1\u7b97\u673a\uff0c\u800c\u5355\u7247\u673a\u66f4\u50cf\u662f\u4e00\u4e2a\u6ca1\u6709\u5916\u8bbe\u7684\u8ba1\u7b97\u673a\u3002"),(0,o.yg)("p",null,"\u4ee5\u524d\u5355\u7247\u673a\u5305\u62ec\u7684\u4e1c\u897f\u5e76\u4e0d\u7b97\u591a\uff0c\u4e24\u8005\u7684\u786c\u4ef6\u533a\u522b\u8f83\u4e3a\u660e\u663e\u3002\u4f46\u662f\uff0c\u968f\u7740\u534a\u5bfc\u4f53\u6280\u672f\u7684\u7a81\u98de\u731b\u8fdb\uff0c\u73b0\u5728\u5404\u79cd\u786c\u4ef6\u529f\u80fd\u90fd\u80fd\u88ab\u505a\u8fdb\u5355\u7247\u673a\u4e4b\u4e2d\u3002\u6240\u4ee5\uff0c\u5d4c\u5165\u5f0f\u7cfb\u7edf\u548c\u5355\u7247\u673a\u4e4b\u95f4\u7684\u786c\u4ef6\u533a\u522b\u8d8a\u6765\u8d8a\u5c0f\uff0c\u5206\u754c\u7ebf\u4e5f\u8d8a\u6765\u8d8a\u6a21\u7cca\u3002"),(0,o.yg)("p",null,"\u4e8e\u662f\uff0c\u4eba\u4eec\u503e\u5411\u4e8e\u5728\u8f6f\u4ef6\u4e0a\u8fdb\u884c\u533a\u5206\u3002"),(0,o.yg)("p",null,"\u4ece\u8f6f\u4ef6\u4e0a\uff0c\u884c\u4e1a\u91cc\u7ecf\u5e38\u628a\u82af\u7247\u4e2d\u4e0d\u5e26MMU\uff08memory management unit\uff0c\u5185\u5b58\u7ba1\u7406\u5355\u5143\uff09\u4ece\u800c\u4e0d\u652f\u6301\u865a\u62df\u5730\u5740\uff0c\u53ea\u80fd\u88f8\u5954\u6216\u8fd0\u884cRTOS\uff08\u5b9e\u65f6\u64cd\u4f5c\u7cfb\u7edf\uff0c\u4f8b\u5982ucos\u3001\u534e\u4e3aLiteOS\u3001RT-Thread\u3001freertos\u7b49\uff09\u7684system\uff0c\u53eb\u505a\u5355\u7247\u673a\uff08\u5982STM32\u3001NXP LPC\u7cfb\u5217\u3001NXP imxRT1052\u7cfb\u5217\u7b49\uff09\u3002\u800c\u628a\u82af\u7247\u81ea\u5e26MMU\u53ef\u4ee5\u652f\u6301\u865a\u62df\u5730\u5740\uff0c\u80fd\u591f\u8dd1Linux\u3001Vxworks\u3001WinCE\u3001Android\u8fd9\u6837\u7684\u201c\u9ad8\u7ea7\u201d\u64cd\u4f5c\u7cfb\u7edf\u7684system\uff0c\u53eb\u505a\u5d4c\u5165\u5f0f\u3002"),(0,o.yg)("p",null,"\u5728\u67d0\u4e9b\u65f6\u5019\uff0c\u5355\u7247\u673a\u672c\u8eab\u5df2\u7ecf\u8db3\u591f\u5f3a\u5927\uff0c\u53ef\u4ee5\u4f5c\u4e3a\u5d4c\u5165\u5f0f\u7cfb\u7edf\u4f7f\u7528\u3002\u5b83\u7684\u6210\u672c\u66f4\u4f4e\uff0c\u5f00\u53d1\u548c\u7ef4\u62a4\u7684\u96be\u5ea6\u76f8\u5bf9\u8f83\u5c0f\uff0c\u5c24\u5176\u662f\u9488\u5bf9\u4e00\u4e9b\u9488\u5bf9\u6027\u66f4\u5f3a\u7684\u5e94\u7528\u3002\u800c\u5d4c\u5165\u5f0f\u7cfb\u7edf\u7406\u8bba\u4e0a\u6027\u80fd\u66f4\u5f3a\uff0c\u5e94\u7528\u66f4\u5e7f\u6cdb\uff0c\u4f46\u590d\u6742\u5ea6\u9ad8\uff0c\u5f00\u53d1\u96be\u5ea6\u5927\u3002"),(0,o.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,o.yg)("ol",null,(0,o.yg)("li",{parentName:"ol"},(0,o.yg)("a",{parentName:"li",href:"https://cloud.tencent.com/developer/article/1505486"},"\u5230\u5e95\u4ec0\u4e48\u662f\u5d4c\u5165\u5f0f\uff1f\u4ec0\u4e48\u662f\u5355\u7247\u673a\uff1f"))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/15ae2b3f.5a6350ee.js b/assets/js/15ae2b3f.e777aaf5.js similarity index 99% rename from assets/js/15ae2b3f.5a6350ee.js rename to assets/js/15ae2b3f.e777aaf5.js index a7b8f84fe..663cc1ed9 100644 --- a/assets/js/15ae2b3f.5a6350ee.js +++ b/assets/js/15ae2b3f.e777aaf5.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[256],{5680:(e,t,r)=>{r.d(t,{xA:()=>s,yg:()=>d});var l=r(6540);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);t&&(l=l.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,l)}return r}function i(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(l=0;l=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var u=l.createContext({}),p=function(e){var t=l.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},s=function(e){var t=p(e.components);return l.createElement(u.Provider,{value:t},e.children)},c="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return l.createElement(l.Fragment,{},t)}},g=l.forwardRef((function(e,t){var r=e.components,n=e.mdxType,a=e.originalType,u=e.parentName,s=o(e,["components","mdxType","originalType","parentName"]),c=p(r),g=n,d=c["".concat(u,".").concat(g)]||c[g]||y[g]||a;return r?l.createElement(d,i(i({ref:t},s),{},{components:r})):l.createElement(d,i({ref:t},s))}));function d(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=r.length,i=new Array(a);i[0]=g;var o={};for(var u in t)hasOwnProperty.call(t,u)&&(o[u]=t[u]);o.originalType=e,o[c]="string"==typeof e?e:n,i[1]=o;for(var p=2;p{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>i,default:()=>y,frontMatter:()=>a,metadata:()=>o,toc:()=>p});var l=r(8168),n=(r(6540),r(5680));const a={},i=void 0,o={unversionedId:"study/program/\u8de8\u5e73\u53f0\u5e94\u7528\u7a0b\u5e8f\u5f00\u53d1\u6846\u67b6",id:"study/program/\u8de8\u5e73\u53f0\u5e94\u7528\u7a0b\u5e8f\u5f00\u53d1\u6846\u67b6",title:"\u8de8\u5e73\u53f0\u5e94\u7528\u7a0b\u5e8f\u5f00\u53d1\u6846\u67b6",description:"Electron",source:"@site/docs/study/program/\u8de8\u5e73\u53f0\u5e94\u7528\u7a0b\u5e8f\u5f00\u53d1\u6846\u67b6.md",sourceDirName:"study/program",slug:"/study/program/\u8de8\u5e73\u53f0\u5e94\u7528\u7a0b\u5e8f\u5f00\u53d1\u6846\u67b6",permalink:"/docs/study/program/\u8de8\u5e73\u53f0\u5e94\u7528\u7a0b\u5e8f\u5f00\u53d1\u6846\u67b6",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u7f16\u8bd1\u5668",permalink:"/docs/study/program/\u7f16\u8bd1\u5668"},next:{title:"\u6982\u8ff0",permalink:"/docs/study/devops/"}},u={},p=[{value:"Electron",id:"electron",level:3},{value:"TAURI",id:"tauri",level:3},{value:"Flutter",id:"flutter",level:3},{value:"NW.js",id:"nwjs",level:3},{value:"Neutralinojs",id:"neutralinojs",level:3},{value:"WAILS",id:"wails",level:3},{value:".NET MAUI",id:"net-maui",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],s={toc:p},c="wrapper";function y(e){let{components:t,...r}=e;return(0,n.yg)(c,(0,l.A)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,n.yg)("h3",{id:"electron"},"Electron"),(0,n.yg)("p",null,"Build cross-platform desktop apps with JavaScript, HTML, and CSS"),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},(0,n.yg)("a",{parentName:"li",href:"https://www.electronjs.org/zh/"},"\u5b98\u65b9\u7f51\u7ad9-Electron"))),(0,n.yg)("h3",{id:"tauri"},"TAURI"),(0,n.yg)("p",null,"\u6784\u5efa\u8de8\u5e73\u53f0\u7684\u5feb\u901f\u3001\u5b89\u5168\u3001\u524d\u7aef\u9694\u79bb\u5e94\u7528"),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},(0,n.yg)("a",{parentName:"li",href:"https://tauri.app/zh-cn/"},"\u5b98\u65b9\u7f51\u7ad9-TAURI")),(0,n.yg)("li",{parentName:"ul"},"\u6253\u5305\u5927\u5c0f:\u4f7f\u7528\u7cfb\u7edf\u81ea\u5e26\u7684\u7f51\u9875\u6e32\u67d3\u5668\uff0cTauri \u5e94\u7528\u7684\u5927\u5c0f\u53ef\u6253\u5305\u5230 600 KB \u4ee5\u4e0b\uff01"),(0,n.yg)("li",{parentName:"ul"},"\u8de8\u5e73\u53f0:\u6784\u5efa\u652f\u6301\u6240\u6709\u4e3b\u6d41\u684c\u9762\u5e73\u53f0\uff08\u79fb\u52a8\u7aef\u5373\u5c06\u63a8\u51fa\uff09\u7684\u4e8c\u8fdb\u5236\u6253\u5305\u6587\u4ef6\u3002"),(0,n.yg)("li",{parentName:"ul"},"\u57fa\u4e8e Rust \u5f00\u53d1:\u6027\u80fd\u53ca\u5b89\u5168\u81f3\u4e0a\u7684 Rust \u662f\u6b21\u65f6\u4ee3\u5e94\u7528\u5f00\u53d1\u9996\u9009\u3002"),(0,n.yg)("li",{parentName:"ul"},"\u76ee\u524d\u8fd8\u5728\u5feb\u901f\u53d1\u5c55\u4e2d-\uff082023 \u5e74\uff09")),(0,n.yg)("h3",{id:"flutter"},"Flutter"),(0,n.yg)("p",null,"\u4e3a\u6240\u6709\u5c4f\u5e55\u521b\u9020\u7cbe\u5f69"),(0,n.yg)("p",null,"Flutter \u4e3a\u8f6f\u4ef6\u5f00\u53d1\u884c\u4e1a\u5e26\u6765\u4e86\u9769\u65b0\uff1a\u53ea\u8981\u4e00\u5957\u4ee3\u7801\u5e93\uff0c\u5373\u53ef\u6784\u5efa\u3001\u6d4b\u8bd5\u548c\u53d1\u5e03\u9002\u7528\u4e8e\u79fb\u52a8\u3001Web\u3001\u684c\u9762\u548c\u5d4c\u5165\u5f0f\u5e73\u53f0\u7684\u7cbe\u7f8e\u5e94\u7528\u3002"),(0,n.yg)("p",null,"Flutter \u662f Google \u5f00\u6e90\u7684\u5e94\u7528\u5f00\u53d1\u6846\u67b6\uff0c\u4ec5\u901a\u8fc7\u4e00\u5957\u4ee3\u7801\u5e93\uff0c\u5c31\u80fd\u6784\u5efa\u7cbe\u7f8e\u7684\u3001\u539f\u751f\u5e73\u53f0\u7f16\u8bd1\u7684\u591a\u5e73\u53f0\u5e94\u7528\u3002"),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},(0,n.yg)("a",{parentName:"li",href:"https://flutter.cn/index"},"\u5b98\u65b9\u7f51\u7ad9-Flutter"))),(0,n.yg)("h3",{id:"nwjs"},"NW.js"),(0,n.yg)("p",null,"NW.js (previously known as node-webkit) lets you call all Node.js modules directly from DOM and enables a new way of writing applications with all Web technologies."),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},(0,n.yg)("a",{parentName:"li",href:"https://nwjs.io/"},"\u5b98\u65b9\u7f51\u7ad9"))),(0,n.yg)("h3",{id:"neutralinojs"},"Neutralinojs"),(0,n.yg)("p",null,"Build lightweight cross-platform desktop apps with JavaScript, HTML, and CSS"),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},(0,n.yg)("a",{parentName:"li",href:"https://neutralino.js.org/"},"\u5b98\u65b9\u7f51\u7ad9-Neutralinojs"))),(0,n.yg)("h3",{id:"wails"},"WAILS"),(0,n.yg)("p",null,"\u4f7f\u7528 Go \u6784\u5efa\u6f02\u4eae\u7684\u8de8\u5e73\u53f0\u5e94\u7528\u7a0b\u5e8f"),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},(0,n.yg)("a",{parentName:"li",href:"https://wails.io/zh-Hans/"},"\u5b98\u65b9\u7f51\u7ad9-WAILS"))),(0,n.yg)("p",null,"\u5728\u4e00\u4e2a\u6846\u67b6\u4e2d\u751f\u6210\u672c\u673a\u3001\u8de8\u5e73\u53f0\u684c\u9762\u548c\u79fb\u52a8\u5e94\u7528\u3002"),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},(0,n.yg)("a",{parentName:"li",href:"https://dotnet.microsoft.com/zh-cn/apps/maui"},"\u5b98\u65b9\u7f51\u7ad9-.NET MAUI"))),(0,n.yg)("h3",{id:"net-maui"},".NET MAUI"),(0,n.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},(0,n.yg)("a",{parentName:"li",href:"https://zhuanlan.zhihu.com/p/596782927"},"2023 \u5e74\u6700\u5168\u76d8\u70b9 | 16 \u6b3e\u8de8\u5e73\u53f0\u5e94\u7528\u7a0b\u5e8f\u5f00\u53d1\u6846\u67b6")),(0,n.yg)("li",{parentName:"ul"},(0,n.yg)("a",{parentName:"li",href:"https://github.com/Elanis/web-to-desktop-framework-comparison"},"Neutralinojs vs. Electron, NW.JS, Tauri, NodeGui, Flutter, .Net MAUI, Wails"),(0,n.yg)("ul",{parentName:"li"},(0,n.yg)("li",{parentName:"ul"},"\u770b Github Stars \u5c31\u77e5\u9053\u6d41\u7a0b\u7a0b\u5ea6\u4e86")))))}y.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[256],{5680:(e,t,r)=>{r.d(t,{xA:()=>s,yg:()=>d});var l=r(6540);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);t&&(l=l.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,l)}return r}function i(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(l=0;l=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var u=l.createContext({}),p=function(e){var t=l.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},s=function(e){var t=p(e.components);return l.createElement(u.Provider,{value:t},e.children)},c="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return l.createElement(l.Fragment,{},t)}},g=l.forwardRef((function(e,t){var r=e.components,n=e.mdxType,a=e.originalType,u=e.parentName,s=o(e,["components","mdxType","originalType","parentName"]),c=p(r),g=n,d=c["".concat(u,".").concat(g)]||c[g]||y[g]||a;return r?l.createElement(d,i(i({ref:t},s),{},{components:r})):l.createElement(d,i({ref:t},s))}));function d(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=r.length,i=new Array(a);i[0]=g;var o={};for(var u in t)hasOwnProperty.call(t,u)&&(o[u]=t[u]);o.originalType=e,o[c]="string"==typeof e?e:n,i[1]=o;for(var p=2;p{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>i,default:()=>y,frontMatter:()=>a,metadata:()=>o,toc:()=>p});var l=r(8168),n=(r(6540),r(5680));const a={},i=void 0,o={unversionedId:"study/program/\u8de8\u5e73\u53f0\u5e94\u7528\u7a0b\u5e8f\u5f00\u53d1\u6846\u67b6",id:"study/program/\u8de8\u5e73\u53f0\u5e94\u7528\u7a0b\u5e8f\u5f00\u53d1\u6846\u67b6",title:"\u8de8\u5e73\u53f0\u5e94\u7528\u7a0b\u5e8f\u5f00\u53d1\u6846\u67b6",description:"Electron",source:"@site/docs/study/program/\u8de8\u5e73\u53f0\u5e94\u7528\u7a0b\u5e8f\u5f00\u53d1\u6846\u67b6.md",sourceDirName:"study/program",slug:"/study/program/\u8de8\u5e73\u53f0\u5e94\u7528\u7a0b\u5e8f\u5f00\u53d1\u6846\u67b6",permalink:"/docs/study/program/\u8de8\u5e73\u53f0\u5e94\u7528\u7a0b\u5e8f\u5f00\u53d1\u6846\u67b6",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u7f16\u8bd1\u5668",permalink:"/docs/study/program/\u7f16\u8bd1\u5668"},next:{title:"\u6982\u8ff0",permalink:"/docs/study/devops/"}},u={},p=[{value:"Electron",id:"electron",level:3},{value:"TAURI",id:"tauri",level:3},{value:"Flutter",id:"flutter",level:3},{value:"NW.js",id:"nwjs",level:3},{value:"Neutralinojs",id:"neutralinojs",level:3},{value:"WAILS",id:"wails",level:3},{value:".NET MAUI",id:"net-maui",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],s={toc:p},c="wrapper";function y(e){let{components:t,...r}=e;return(0,n.yg)(c,(0,l.A)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,n.yg)("h3",{id:"electron"},"Electron"),(0,n.yg)("p",null,"Build cross-platform desktop apps with JavaScript, HTML, and CSS"),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},(0,n.yg)("a",{parentName:"li",href:"https://www.electronjs.org/zh/"},"\u5b98\u65b9\u7f51\u7ad9-Electron"))),(0,n.yg)("h3",{id:"tauri"},"TAURI"),(0,n.yg)("p",null,"\u6784\u5efa\u8de8\u5e73\u53f0\u7684\u5feb\u901f\u3001\u5b89\u5168\u3001\u524d\u7aef\u9694\u79bb\u5e94\u7528"),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},(0,n.yg)("a",{parentName:"li",href:"https://tauri.app/zh-cn/"},"\u5b98\u65b9\u7f51\u7ad9-TAURI")),(0,n.yg)("li",{parentName:"ul"},"\u6253\u5305\u5927\u5c0f:\u4f7f\u7528\u7cfb\u7edf\u81ea\u5e26\u7684\u7f51\u9875\u6e32\u67d3\u5668\uff0cTauri \u5e94\u7528\u7684\u5927\u5c0f\u53ef\u6253\u5305\u5230 600 KB \u4ee5\u4e0b\uff01"),(0,n.yg)("li",{parentName:"ul"},"\u8de8\u5e73\u53f0:\u6784\u5efa\u652f\u6301\u6240\u6709\u4e3b\u6d41\u684c\u9762\u5e73\u53f0\uff08\u79fb\u52a8\u7aef\u5373\u5c06\u63a8\u51fa\uff09\u7684\u4e8c\u8fdb\u5236\u6253\u5305\u6587\u4ef6\u3002"),(0,n.yg)("li",{parentName:"ul"},"\u57fa\u4e8e Rust \u5f00\u53d1:\u6027\u80fd\u53ca\u5b89\u5168\u81f3\u4e0a\u7684 Rust \u662f\u6b21\u65f6\u4ee3\u5e94\u7528\u5f00\u53d1\u9996\u9009\u3002"),(0,n.yg)("li",{parentName:"ul"},"\u76ee\u524d\u8fd8\u5728\u5feb\u901f\u53d1\u5c55\u4e2d-\uff082023 \u5e74\uff09")),(0,n.yg)("h3",{id:"flutter"},"Flutter"),(0,n.yg)("p",null,"\u4e3a\u6240\u6709\u5c4f\u5e55\u521b\u9020\u7cbe\u5f69"),(0,n.yg)("p",null,"Flutter \u4e3a\u8f6f\u4ef6\u5f00\u53d1\u884c\u4e1a\u5e26\u6765\u4e86\u9769\u65b0\uff1a\u53ea\u8981\u4e00\u5957\u4ee3\u7801\u5e93\uff0c\u5373\u53ef\u6784\u5efa\u3001\u6d4b\u8bd5\u548c\u53d1\u5e03\u9002\u7528\u4e8e\u79fb\u52a8\u3001Web\u3001\u684c\u9762\u548c\u5d4c\u5165\u5f0f\u5e73\u53f0\u7684\u7cbe\u7f8e\u5e94\u7528\u3002"),(0,n.yg)("p",null,"Flutter \u662f Google \u5f00\u6e90\u7684\u5e94\u7528\u5f00\u53d1\u6846\u67b6\uff0c\u4ec5\u901a\u8fc7\u4e00\u5957\u4ee3\u7801\u5e93\uff0c\u5c31\u80fd\u6784\u5efa\u7cbe\u7f8e\u7684\u3001\u539f\u751f\u5e73\u53f0\u7f16\u8bd1\u7684\u591a\u5e73\u53f0\u5e94\u7528\u3002"),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},(0,n.yg)("a",{parentName:"li",href:"https://flutter.cn/index"},"\u5b98\u65b9\u7f51\u7ad9-Flutter"))),(0,n.yg)("h3",{id:"nwjs"},"NW.js"),(0,n.yg)("p",null,"NW.js (previously known as node-webkit) lets you call all Node.js modules directly from DOM and enables a new way of writing applications with all Web technologies."),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},(0,n.yg)("a",{parentName:"li",href:"https://nwjs.io/"},"\u5b98\u65b9\u7f51\u7ad9"))),(0,n.yg)("h3",{id:"neutralinojs"},"Neutralinojs"),(0,n.yg)("p",null,"Build lightweight cross-platform desktop apps with JavaScript, HTML, and CSS"),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},(0,n.yg)("a",{parentName:"li",href:"https://neutralino.js.org/"},"\u5b98\u65b9\u7f51\u7ad9-Neutralinojs"))),(0,n.yg)("h3",{id:"wails"},"WAILS"),(0,n.yg)("p",null,"\u4f7f\u7528 Go \u6784\u5efa\u6f02\u4eae\u7684\u8de8\u5e73\u53f0\u5e94\u7528\u7a0b\u5e8f"),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},(0,n.yg)("a",{parentName:"li",href:"https://wails.io/zh-Hans/"},"\u5b98\u65b9\u7f51\u7ad9-WAILS"))),(0,n.yg)("p",null,"\u5728\u4e00\u4e2a\u6846\u67b6\u4e2d\u751f\u6210\u672c\u673a\u3001\u8de8\u5e73\u53f0\u684c\u9762\u548c\u79fb\u52a8\u5e94\u7528\u3002"),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},(0,n.yg)("a",{parentName:"li",href:"https://dotnet.microsoft.com/zh-cn/apps/maui"},"\u5b98\u65b9\u7f51\u7ad9-.NET MAUI"))),(0,n.yg)("h3",{id:"net-maui"},".NET MAUI"),(0,n.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},(0,n.yg)("a",{parentName:"li",href:"https://zhuanlan.zhihu.com/p/596782927"},"2023 \u5e74\u6700\u5168\u76d8\u70b9 | 16 \u6b3e\u8de8\u5e73\u53f0\u5e94\u7528\u7a0b\u5e8f\u5f00\u53d1\u6846\u67b6")),(0,n.yg)("li",{parentName:"ul"},(0,n.yg)("a",{parentName:"li",href:"https://github.com/Elanis/web-to-desktop-framework-comparison"},"Neutralinojs vs. Electron, NW.JS, Tauri, NodeGui, Flutter, .Net MAUI, Wails"),(0,n.yg)("ul",{parentName:"li"},(0,n.yg)("li",{parentName:"ul"},"\u770b Github Stars \u5c31\u77e5\u9053\u6d41\u7a0b\u7a0b\u5ea6\u4e86")))))}y.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1830dc74.8f99a8a3.js b/assets/js/1830dc74.8517021a.js similarity index 98% rename from assets/js/1830dc74.8f99a8a3.js rename to assets/js/1830dc74.8517021a.js index 310010c92..ec30130bc 100644 --- a/assets/js/1830dc74.8f99a8a3.js +++ b/assets/js/1830dc74.8517021a.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3751],{5680:(e,t,r)=>{r.d(t,{xA:()=>s,yg:()=>f});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var u=n.createContext({}),p=function(e){var t=n.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},s=function(e){var t=p(e.components);return n.createElement(u.Provider,{value:t},e.children)},l="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,u=e.parentName,s=i(e,["components","mdxType","originalType","parentName"]),l=p(r),y=a,f=l["".concat(u,".").concat(y)]||l[y]||d[y]||o;return r?n.createElement(f,c(c({ref:t},s),{},{components:r})):n.createElement(f,c({ref:t},s))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,c=new Array(o);c[0]=y;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i[l]="string"==typeof e?e:a,c[1]=i;for(var p=2;p{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>c,default:()=>d,frontMatter:()=>o,metadata:()=>i,toc:()=>p});var n=r(8168),a=(r(6540),r(5680));const o={},c=void 0,i={unversionedId:"study/db/SQL/MariaDB",id:"study/db/SQL/MariaDB",title:"MariaDB",description:"MariaDB\u6570\u636e\u5e93\u7ba1\u7406\u7cfb\u7edf\u662fMySQL\u7684\u4e00\u4e2a\u5206\u652f\uff0c\u4e3b\u8981\u7531\u5f00\u6e90\u793e\u533a\u5728\u7ef4\u62a4\uff0c\u91c7\u7528GPL\u6388\u6743\u8bb8\u53ef\u3002\u5f00\u53d1\u8fd9\u4e2a\u5206\u652f\u7684\u539f\u56e0\u4e4b\u4e00\u662f\uff1a\u7532\u9aa8\u6587\u516c\u53f8\u6536\u8d2d\u4e86MySQL\u540e\uff0c\u6709\u5c06MySQL\u95ed\u6e90\u7684\u6f5c\u5728\u98ce\u9669\uff0c\u56e0\u6b64\u793e\u533a\u91c7\u7528\u5206\u652f\u7684\u65b9\u5f0f\u6765\u907f\u5f00\u8fd9\u4e2a\u98ce\u9669\u3002",source:"@site/docs/study/db/SQL/MariaDB.md",sourceDirName:"study/db/SQL",slug:"/study/db/SQL/MariaDB",permalink:"/docs/study/db/SQL/MariaDB",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u7efc\u5408\u6982\u8ff0",permalink:"/docs/study/db/SQL/\u7efc\u5408\u6982\u8ff0"},next:{title:"MySQL \u7b14\u8bb0",permalink:"/docs/study/db/SQL/MySQL-\u7b14\u8bb0"}},u={},p=[],s={toc:p},l="wrapper";function d(e){let{components:t,...r}=e;return(0,a.yg)(l,(0,n.A)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("p",null,"MariaDB\u6570\u636e\u5e93\u7ba1\u7406\u7cfb\u7edf\u662fMySQL\u7684\u4e00\u4e2a\u5206\u652f\uff0c\u4e3b\u8981\u7531\u5f00\u6e90\u793e\u533a\u5728\u7ef4\u62a4\uff0c\u91c7\u7528GPL\u6388\u6743\u8bb8\u53ef\u3002\u5f00\u53d1\u8fd9\u4e2a\u5206\u652f\u7684\u539f\u56e0\u4e4b\u4e00\u662f\uff1a\u7532\u9aa8\u6587\u516c\u53f8\u6536\u8d2d\u4e86MySQL\u540e\uff0c\u6709\u5c06MySQL\u95ed\u6e90\u7684\u6f5c\u5728\u98ce\u9669\uff0c\u56e0\u6b64\u793e\u533a\u91c7\u7528\u5206\u652f\u7684\u65b9\u5f0f\u6765\u907f\u5f00\u8fd9\u4e2a\u98ce\u9669\u3002"))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3751],{5680:(e,t,r)=>{r.d(t,{xA:()=>s,yg:()=>f});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var u=n.createContext({}),p=function(e){var t=n.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},s=function(e){var t=p(e.components);return n.createElement(u.Provider,{value:t},e.children)},l="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,u=e.parentName,s=i(e,["components","mdxType","originalType","parentName"]),l=p(r),y=a,f=l["".concat(u,".").concat(y)]||l[y]||d[y]||o;return r?n.createElement(f,c(c({ref:t},s),{},{components:r})):n.createElement(f,c({ref:t},s))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,c=new Array(o);c[0]=y;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i[l]="string"==typeof e?e:a,c[1]=i;for(var p=2;p{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>c,default:()=>d,frontMatter:()=>o,metadata:()=>i,toc:()=>p});var n=r(8168),a=(r(6540),r(5680));const o={},c=void 0,i={unversionedId:"study/db/SQL/MariaDB",id:"study/db/SQL/MariaDB",title:"MariaDB",description:"MariaDB\u6570\u636e\u5e93\u7ba1\u7406\u7cfb\u7edf\u662fMySQL\u7684\u4e00\u4e2a\u5206\u652f\uff0c\u4e3b\u8981\u7531\u5f00\u6e90\u793e\u533a\u5728\u7ef4\u62a4\uff0c\u91c7\u7528GPL\u6388\u6743\u8bb8\u53ef\u3002\u5f00\u53d1\u8fd9\u4e2a\u5206\u652f\u7684\u539f\u56e0\u4e4b\u4e00\u662f\uff1a\u7532\u9aa8\u6587\u516c\u53f8\u6536\u8d2d\u4e86MySQL\u540e\uff0c\u6709\u5c06MySQL\u95ed\u6e90\u7684\u6f5c\u5728\u98ce\u9669\uff0c\u56e0\u6b64\u793e\u533a\u91c7\u7528\u5206\u652f\u7684\u65b9\u5f0f\u6765\u907f\u5f00\u8fd9\u4e2a\u98ce\u9669\u3002",source:"@site/docs/study/db/SQL/MariaDB.md",sourceDirName:"study/db/SQL",slug:"/study/db/SQL/MariaDB",permalink:"/docs/study/db/SQL/MariaDB",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u7efc\u5408\u6982\u8ff0",permalink:"/docs/study/db/SQL/\u7efc\u5408\u6982\u8ff0"},next:{title:"MySQL \u7b14\u8bb0",permalink:"/docs/study/db/SQL/MySQL-\u7b14\u8bb0"}},u={},p=[],s={toc:p},l="wrapper";function d(e){let{components:t,...r}=e;return(0,a.yg)(l,(0,n.A)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("p",null,"MariaDB\u6570\u636e\u5e93\u7ba1\u7406\u7cfb\u7edf\u662fMySQL\u7684\u4e00\u4e2a\u5206\u652f\uff0c\u4e3b\u8981\u7531\u5f00\u6e90\u793e\u533a\u5728\u7ef4\u62a4\uff0c\u91c7\u7528GPL\u6388\u6743\u8bb8\u53ef\u3002\u5f00\u53d1\u8fd9\u4e2a\u5206\u652f\u7684\u539f\u56e0\u4e4b\u4e00\u662f\uff1a\u7532\u9aa8\u6587\u516c\u53f8\u6536\u8d2d\u4e86MySQL\u540e\uff0c\u6709\u5c06MySQL\u95ed\u6e90\u7684\u6f5c\u5728\u98ce\u9669\uff0c\u56e0\u6b64\u793e\u533a\u91c7\u7528\u5206\u652f\u7684\u65b9\u5f0f\u6765\u907f\u5f00\u8fd9\u4e2a\u98ce\u9669\u3002"))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1b135b54.334e23cd.js b/assets/js/1b135b54.bf80b28d.js similarity index 99% rename from assets/js/1b135b54.334e23cd.js rename to assets/js/1b135b54.bf80b28d.js index 8d575410f..be87e1159 100644 --- a/assets/js/1b135b54.334e23cd.js +++ b/assets/js/1b135b54.bf80b28d.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[344],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>f});var n=r(6540);function l(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t=0||(l[r]=e[r]);return l}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(l[r]=e[r])}return l}var i=n.createContext({}),c=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},p=function(e){var t=c(e.components);return n.createElement(i.Provider,{value:t},e.children)},s="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,l=e.mdxType,a=e.originalType,i=e.parentName,p=u(e,["components","mdxType","originalType","parentName"]),s=c(r),d=l,f=s["".concat(i,".").concat(d)]||s[d]||y[d]||a;return r?n.createElement(f,o(o({ref:t},p),{},{components:r})):n.createElement(f,o({ref:t},p))}));function f(e,t){var r=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var a=r.length,o=new Array(a);o[0]=d;var u={};for(var i in t)hasOwnProperty.call(t,i)&&(u[i]=t[i]);u.originalType=e,u[s]="string"==typeof e?e:l,o[1]=u;for(var c=2;c{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>o,default:()=>y,frontMatter:()=>a,metadata:()=>u,toc:()=>c});var n=r(8168),l=(r(6540),r(5680));const a={},o=void 0,u={unversionedId:"study/fe/ARMS\u524d\u7aef\u76d1\u63a7",id:"study/fe/ARMS\u524d\u7aef\u76d1\u63a7",title:"ARMS\u524d\u7aef\u76d1\u63a7",description:"ARMS\u524d\u7aef\u76d1\u63a7\u4e13\u6ce8\u4e8e\u5bf9Web\u573a\u666f\u3001Weex\u573a\u666f\u548c\u5c0f\u7a0b\u5e8f\u573a\u666f\u7684\u76d1\u63a7\uff0c\u4ece\u9875\u9762\u6253\u5f00\u901f\u5ea6\uff08\u6d4b\u901f\uff09\u3001\u9875\u9762\u7a33\u5b9a\u6027\uff08JS\u8bca\u65ad\u9519\u8bef\uff09\u548c\u5916\u90e8\u670d\u52a1\u8c03\u7528\u6210\u529f\u7387\uff08API\uff09\u8fd9\u4e09\u4e2a\u65b9\u9762\u76d1\u6d4bWeb\u548c\u5c0f\u7a0b\u5e8f\u9875\u9762\u7684\u5065\u5eb7\u5ea6\u3002",source:"@site/docs/study/fe/ARMS\u524d\u7aef\u76d1\u63a7.md",sourceDirName:"study/fe",slug:"/study/fe/ARMS\u524d\u7aef\u76d1\u63a7",permalink:"/docs/study/fe/ARMS\u524d\u7aef\u76d1\u63a7",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u524d\u7aef\u6a21\u5757\u5316",permalink:"/docs/study/fe/\u524d\u7aef\u6a21\u5757\u5316"},next:{title:"Flutter\u5f00\u53d1\u95ee\u9898\u8bb0\u5f55",permalink:"/docs/study/fe/Flutter\u5f00\u53d1\u95ee\u9898\u8bb0\u5f55"}},i={},c=[{value:"\u4e3a\u4ec0\u4e48\u8981\u6709\u524d\u7aef\u76d1\u63a7\uff1f",id:"\u4e3a\u4ec0\u4e48\u8981\u6709\u524d\u7aef\u76d1\u63a7",level:3},{value:"\u6211\u4eec\u7684\u89e3\u51b3\u65b9\u6848",id:"\u6211\u4eec\u7684\u89e3\u51b3\u65b9\u6848",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],p={toc:c},s="wrapper";function y(e){let{components:t,...r}=e;return(0,l.yg)(s,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,l.yg)("p",null,"ARMS\u524d\u7aef\u76d1\u63a7\u4e13\u6ce8\u4e8e\u5bf9Web\u573a\u666f\u3001Weex\u573a\u666f\u548c\u5c0f\u7a0b\u5e8f\u573a\u666f\u7684\u76d1\u63a7\uff0c\u4ece\u9875\u9762\u6253\u5f00\u901f\u5ea6\uff08\u6d4b\u901f\uff09\u3001\u9875\u9762\u7a33\u5b9a\u6027\uff08JS\u8bca\u65ad\u9519\u8bef\uff09\u548c\u5916\u90e8\u670d\u52a1\u8c03\u7528\u6210\u529f\u7387\uff08API\uff09\u8fd9\u4e09\u4e2a\u65b9\u9762\u76d1\u6d4bWeb\u548c\u5c0f\u7a0b\u5e8f\u9875\u9762\u7684\u5065\u5eb7\u5ea6\u3002"),(0,l.yg)("h3",{id:"\u4e3a\u4ec0\u4e48\u8981\u6709\u524d\u7aef\u76d1\u63a7"},"\u4e3a\u4ec0\u4e48\u8981\u6709\u524d\u7aef\u76d1\u63a7\uff1f"),(0,l.yg)("p",null,"\u7528\u6237\u8bbf\u95ee\u60a8\u7684\u4e1a\u52a1\u65f6\uff0c\u6574\u4e2a\u8bbf\u95ee\u8fc7\u7a0b\u5927\u81f4\u53ef\u4ee5\u5206\u4e3a\u4e09\u4e2a\u9636\u6bb5\uff1a\u9875\u9762\u751f\u4ea7\u65f6\uff08\u670d\u52a1\u5668\u7aef\u72b6\u6001\uff09\u3001\u9875\u9762\u52a0\u8f7d\u65f6\u548c\u9875\u9762\u8fd0\u884c\u65f6\u3002"),(0,l.yg)("p",null,"\u4e3a\u4e86\u4fdd\u8bc1\u7ebf\u4e0a\u4e1a\u52a1\u7a33\u5b9a\u8fd0\u884c\uff0c\u6211\u4eec\u4f1a\u5728\u670d\u52a1\u5668\u7aef\u5bf9\u4e1a\u52a1\u7684\u8fd0\u884c\u72b6\u6001\u8fdb\u884c\u5404\u79cd\u76d1\u63a7\u3002\u73b0\u6709\u7684\u670d\u52a1\u5668\u7aef\u76d1\u63a7\u7cfb\u7edf\u76f8\u5bf9\u5df2\u7ecf\u5f88\u6210\u719f\uff0c\u800c\u9875\u9762\u52a0\u8f7d\u548c\u9875\u9762\u8fd0\u884c\u65f6\u7684\u72b6\u6001\u76d1\u63a7\u4e00\u76f4\u6bd4\u8f83\u6b20\u7f3a\u3002\u4f8b\u5982\uff1a"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"\u65e0\u6cd5\u7b2c\u4e00\u65f6\u95f4\u83b7\u77e5\u7528\u6237\u8bbf\u95ee\u60a8\u7684\u7ad9\u70b9\u65f6\u9047\u5230\u7684\u9519\u8bef\u3002"),(0,l.yg)("li",{parentName:"ul"},"\u5404\u4e2a\u56fd\u5bb6\u3001\u5404\u4e2a\u5730\u533a\u7684\u7528\u6237\u8bbf\u95ee\u60a8\u7684\u7ad9\u70b9\u7684\u771f\u5b9e\u901f\u5ea6\u672a\u77e5\u3002"),(0,l.yg)("li",{parentName:"ul"},"\u6bcf\u4e2a\u5e94\u7528\u5185\u6709\u5927\u91cf\u7684\u5f02\u6b65\u6570\u636e\u8c03\u7528\uff0c\u800c\u5b83\u4eec\u7684\u6027\u80fd\u3001\u6210\u529f\u7387\u90fd\u662f\u672a\u77e5\u7684\u3002")),(0,l.yg)("h3",{id:"\u6211\u4eec\u7684\u89e3\u51b3\u65b9\u6848"},"\u6211\u4eec\u7684\u89e3\u51b3\u65b9\u6848"),(0,l.yg)("p",null,"ARMS\u524d\u7aef\u76d1\u63a7\u91cd\u70b9\u76d1\u63a7\u9875\u9762\u7684\u52a0\u8f7d\u8fc7\u7a0b\u548c\u8fd0\u884c\u65f6\u72b6\u6001\uff0c\u540c\u65f6\u5c06\u9875\u9762\u52a0\u8f7d\u6027\u80fd\u3001\u8fd0\u884c\u65f6\u5f02\u5e38\u4ee5\u53caAPI\u8c03\u7528\u72b6\u6001\u548c\u8017\u65f6\u7b49\u6570\u636e\uff0c\u4e0a\u62a5\u5230\u65e5\u5fd7\u670d\u52a1\u5668\u3002\u4e4b\u540e\u501f\u52a9ARMS\u63d0\u4f9b\u7684\u6d77\u91cf\u5b9e\u65f6\u65e5\u5fd7\u5206\u6790\u548c\u5904\u7406\u670d\u52a1\uff0c\u5bf9\u5f53\u524d\u7ebf\u4e0a\u6240\u6709\u771f\u5b9e\u7528\u6237\u7684\u8bbf\u95ee\u60c5\u51b5\u8fdb\u884c\u76d1\u63a7\u3002\u6700\u540e\u901a\u8fc7\u76f4\u89c2\u7684\u62a5\u8868\u5c55\u793a\uff0c\u5e2e\u52a9\u60a8\u53ca\u65f6\u53d1\u73b0\u5e76\u8bca\u65ad\u95ee\u9898\u3002"),(0,l.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"https://help.aliyun.com/document_detail/58652.html?spm=a2c4g.91587.0.0.28c94e85lQHFGu"},"\u4ec0\u4e48\u662fARMS\u524d\u7aef\u76d1\u63a7\uff1f"))))}y.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[344],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>f});var n=r(6540);function l(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t=0||(l[r]=e[r]);return l}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(l[r]=e[r])}return l}var i=n.createContext({}),c=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},p=function(e){var t=c(e.components);return n.createElement(i.Provider,{value:t},e.children)},s="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,l=e.mdxType,a=e.originalType,i=e.parentName,p=u(e,["components","mdxType","originalType","parentName"]),s=c(r),d=l,f=s["".concat(i,".").concat(d)]||s[d]||y[d]||a;return r?n.createElement(f,o(o({ref:t},p),{},{components:r})):n.createElement(f,o({ref:t},p))}));function f(e,t){var r=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var a=r.length,o=new Array(a);o[0]=d;var u={};for(var i in t)hasOwnProperty.call(t,i)&&(u[i]=t[i]);u.originalType=e,u[s]="string"==typeof e?e:l,o[1]=u;for(var c=2;c{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>o,default:()=>y,frontMatter:()=>a,metadata:()=>u,toc:()=>c});var n=r(8168),l=(r(6540),r(5680));const a={},o=void 0,u={unversionedId:"study/fe/ARMS\u524d\u7aef\u76d1\u63a7",id:"study/fe/ARMS\u524d\u7aef\u76d1\u63a7",title:"ARMS\u524d\u7aef\u76d1\u63a7",description:"ARMS\u524d\u7aef\u76d1\u63a7\u4e13\u6ce8\u4e8e\u5bf9Web\u573a\u666f\u3001Weex\u573a\u666f\u548c\u5c0f\u7a0b\u5e8f\u573a\u666f\u7684\u76d1\u63a7\uff0c\u4ece\u9875\u9762\u6253\u5f00\u901f\u5ea6\uff08\u6d4b\u901f\uff09\u3001\u9875\u9762\u7a33\u5b9a\u6027\uff08JS\u8bca\u65ad\u9519\u8bef\uff09\u548c\u5916\u90e8\u670d\u52a1\u8c03\u7528\u6210\u529f\u7387\uff08API\uff09\u8fd9\u4e09\u4e2a\u65b9\u9762\u76d1\u6d4bWeb\u548c\u5c0f\u7a0b\u5e8f\u9875\u9762\u7684\u5065\u5eb7\u5ea6\u3002",source:"@site/docs/study/fe/ARMS\u524d\u7aef\u76d1\u63a7.md",sourceDirName:"study/fe",slug:"/study/fe/ARMS\u524d\u7aef\u76d1\u63a7",permalink:"/docs/study/fe/ARMS\u524d\u7aef\u76d1\u63a7",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u524d\u7aef\u6a21\u5757\u5316",permalink:"/docs/study/fe/\u524d\u7aef\u6a21\u5757\u5316"},next:{title:"Flutter\u5f00\u53d1\u95ee\u9898\u8bb0\u5f55",permalink:"/docs/study/fe/Flutter\u5f00\u53d1\u95ee\u9898\u8bb0\u5f55"}},i={},c=[{value:"\u4e3a\u4ec0\u4e48\u8981\u6709\u524d\u7aef\u76d1\u63a7\uff1f",id:"\u4e3a\u4ec0\u4e48\u8981\u6709\u524d\u7aef\u76d1\u63a7",level:3},{value:"\u6211\u4eec\u7684\u89e3\u51b3\u65b9\u6848",id:"\u6211\u4eec\u7684\u89e3\u51b3\u65b9\u6848",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],p={toc:c},s="wrapper";function y(e){let{components:t,...r}=e;return(0,l.yg)(s,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,l.yg)("p",null,"ARMS\u524d\u7aef\u76d1\u63a7\u4e13\u6ce8\u4e8e\u5bf9Web\u573a\u666f\u3001Weex\u573a\u666f\u548c\u5c0f\u7a0b\u5e8f\u573a\u666f\u7684\u76d1\u63a7\uff0c\u4ece\u9875\u9762\u6253\u5f00\u901f\u5ea6\uff08\u6d4b\u901f\uff09\u3001\u9875\u9762\u7a33\u5b9a\u6027\uff08JS\u8bca\u65ad\u9519\u8bef\uff09\u548c\u5916\u90e8\u670d\u52a1\u8c03\u7528\u6210\u529f\u7387\uff08API\uff09\u8fd9\u4e09\u4e2a\u65b9\u9762\u76d1\u6d4bWeb\u548c\u5c0f\u7a0b\u5e8f\u9875\u9762\u7684\u5065\u5eb7\u5ea6\u3002"),(0,l.yg)("h3",{id:"\u4e3a\u4ec0\u4e48\u8981\u6709\u524d\u7aef\u76d1\u63a7"},"\u4e3a\u4ec0\u4e48\u8981\u6709\u524d\u7aef\u76d1\u63a7\uff1f"),(0,l.yg)("p",null,"\u7528\u6237\u8bbf\u95ee\u60a8\u7684\u4e1a\u52a1\u65f6\uff0c\u6574\u4e2a\u8bbf\u95ee\u8fc7\u7a0b\u5927\u81f4\u53ef\u4ee5\u5206\u4e3a\u4e09\u4e2a\u9636\u6bb5\uff1a\u9875\u9762\u751f\u4ea7\u65f6\uff08\u670d\u52a1\u5668\u7aef\u72b6\u6001\uff09\u3001\u9875\u9762\u52a0\u8f7d\u65f6\u548c\u9875\u9762\u8fd0\u884c\u65f6\u3002"),(0,l.yg)("p",null,"\u4e3a\u4e86\u4fdd\u8bc1\u7ebf\u4e0a\u4e1a\u52a1\u7a33\u5b9a\u8fd0\u884c\uff0c\u6211\u4eec\u4f1a\u5728\u670d\u52a1\u5668\u7aef\u5bf9\u4e1a\u52a1\u7684\u8fd0\u884c\u72b6\u6001\u8fdb\u884c\u5404\u79cd\u76d1\u63a7\u3002\u73b0\u6709\u7684\u670d\u52a1\u5668\u7aef\u76d1\u63a7\u7cfb\u7edf\u76f8\u5bf9\u5df2\u7ecf\u5f88\u6210\u719f\uff0c\u800c\u9875\u9762\u52a0\u8f7d\u548c\u9875\u9762\u8fd0\u884c\u65f6\u7684\u72b6\u6001\u76d1\u63a7\u4e00\u76f4\u6bd4\u8f83\u6b20\u7f3a\u3002\u4f8b\u5982\uff1a"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"\u65e0\u6cd5\u7b2c\u4e00\u65f6\u95f4\u83b7\u77e5\u7528\u6237\u8bbf\u95ee\u60a8\u7684\u7ad9\u70b9\u65f6\u9047\u5230\u7684\u9519\u8bef\u3002"),(0,l.yg)("li",{parentName:"ul"},"\u5404\u4e2a\u56fd\u5bb6\u3001\u5404\u4e2a\u5730\u533a\u7684\u7528\u6237\u8bbf\u95ee\u60a8\u7684\u7ad9\u70b9\u7684\u771f\u5b9e\u901f\u5ea6\u672a\u77e5\u3002"),(0,l.yg)("li",{parentName:"ul"},"\u6bcf\u4e2a\u5e94\u7528\u5185\u6709\u5927\u91cf\u7684\u5f02\u6b65\u6570\u636e\u8c03\u7528\uff0c\u800c\u5b83\u4eec\u7684\u6027\u80fd\u3001\u6210\u529f\u7387\u90fd\u662f\u672a\u77e5\u7684\u3002")),(0,l.yg)("h3",{id:"\u6211\u4eec\u7684\u89e3\u51b3\u65b9\u6848"},"\u6211\u4eec\u7684\u89e3\u51b3\u65b9\u6848"),(0,l.yg)("p",null,"ARMS\u524d\u7aef\u76d1\u63a7\u91cd\u70b9\u76d1\u63a7\u9875\u9762\u7684\u52a0\u8f7d\u8fc7\u7a0b\u548c\u8fd0\u884c\u65f6\u72b6\u6001\uff0c\u540c\u65f6\u5c06\u9875\u9762\u52a0\u8f7d\u6027\u80fd\u3001\u8fd0\u884c\u65f6\u5f02\u5e38\u4ee5\u53caAPI\u8c03\u7528\u72b6\u6001\u548c\u8017\u65f6\u7b49\u6570\u636e\uff0c\u4e0a\u62a5\u5230\u65e5\u5fd7\u670d\u52a1\u5668\u3002\u4e4b\u540e\u501f\u52a9ARMS\u63d0\u4f9b\u7684\u6d77\u91cf\u5b9e\u65f6\u65e5\u5fd7\u5206\u6790\u548c\u5904\u7406\u670d\u52a1\uff0c\u5bf9\u5f53\u524d\u7ebf\u4e0a\u6240\u6709\u771f\u5b9e\u7528\u6237\u7684\u8bbf\u95ee\u60c5\u51b5\u8fdb\u884c\u76d1\u63a7\u3002\u6700\u540e\u901a\u8fc7\u76f4\u89c2\u7684\u62a5\u8868\u5c55\u793a\uff0c\u5e2e\u52a9\u60a8\u53ca\u65f6\u53d1\u73b0\u5e76\u8bca\u65ad\u95ee\u9898\u3002"),(0,l.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"https://help.aliyun.com/document_detail/58652.html?spm=a2c4g.91587.0.0.28c94e85lQHFGu"},"\u4ec0\u4e48\u662fARMS\u524d\u7aef\u76d1\u63a7\uff1f"))))}y.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1b25ada3.d8ff626a.js b/assets/js/1b25ada3.555a84a8.js similarity index 99% rename from assets/js/1b25ada3.d8ff626a.js rename to assets/js/1b25ada3.555a84a8.js index 0c853f076..f118882ef 100644 --- a/assets/js/1b25ada3.d8ff626a.js +++ b/assets/js/1b25ada3.555a84a8.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[842],{5680:(e,l,t)=>{t.d(l,{xA:()=>d,yg:()=>s});var n=t(6540);function u(e,l,t){return l in e?Object.defineProperty(e,l,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[l]=t,e}function r(e,l){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);l&&(n=n.filter((function(l){return Object.getOwnPropertyDescriptor(e,l).enumerable}))),t.push.apply(t,n)}return t}function i(e){for(var l=1;l=0||(u[t]=e[t]);return u}(e,l);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(u[t]=e[t])}return u}var c=n.createContext({}),o=function(e){var l=n.useContext(c),t=l;return e&&(t="function"==typeof e?e(l):i(i({},l),e)),t},d=function(e){var l=o(e.components);return n.createElement(c.Provider,{value:l},e.children)},y="mdxType",p={inlineCode:"code",wrapper:function(e){var l=e.children;return n.createElement(n.Fragment,{},l)}},g=n.forwardRef((function(e,l){var t=e.components,u=e.mdxType,r=e.originalType,c=e.parentName,d=a(e,["components","mdxType","originalType","parentName"]),y=o(t),g=u,s=y["".concat(c,".").concat(g)]||y[g]||p[g]||r;return t?n.createElement(s,i(i({ref:l},d),{},{components:t})):n.createElement(s,i({ref:l},d))}));function s(e,l){var t=arguments,u=l&&l.mdxType;if("string"==typeof e||u){var r=t.length,i=new Array(r);i[0]=g;var a={};for(var c in l)hasOwnProperty.call(l,c)&&(a[c]=l[c]);a.originalType=e,a[y]="string"==typeof e?e:u,i[1]=a;for(var o=2;o{t.r(l),t.d(l,{assets:()=>c,contentTitle:()=>i,default:()=>p,frontMatter:()=>r,metadata:()=>a,toc:()=>o});var n=t(8168),u=(t(6540),t(5680));const r={sidebar_position:3},i="MQTT \u8bbe\u5907\u63a5\u5165",a={unversionedId:"iotcloud/connect/mqtt",id:"iotcloud/connect/mqtt",title:"MQTT \u8bbe\u5907\u63a5\u5165",description:"\u6211\u89c9\u5f97\u5927\u6982\u5206\u4e24\u79cd\u6a21\u5f0f\uff1a",source:"@site/docs/iotcloud/connect/mqtt.md",sourceDirName:"iotcloud/connect",slug:"/iotcloud/connect/mqtt",permalink:"/docs/iotcloud/connect/mqtt",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",sidebarPosition:3,frontMatter:{sidebar_position:3},sidebar:"iotCloudSidebar",previous:{title:"\u6982\u8ff0",permalink:"/docs/iotcloud/connect/"},next:{title:"TCP \u8bbe\u5907\u63a5\u5165",permalink:"/docs/iotcloud/connect/tcp"}},c={},o=[{value:"\u8bbe\u5907 connect",id:"\u8bbe\u5907-connect",level:3},{value:"\u8bbe\u5907\u5bf9\u63a5\u672c\u5e73\u53f0\u7684\u5c5e\u6027\u534f\u8bae",id:"\u8bbe\u5907\u5bf9\u63a5\u672c\u5e73\u53f0\u7684\u5c5e\u6027\u534f\u8bae",level:3},{value:"\u8bbe\u5907\u4e0a\u62a5\u5c5e\u6027",id:"\u8bbe\u5907\u4e0a\u62a5\u5c5e\u6027",level:4},{value:"\u7528\u6237\u5199\u5165\u5c5e\u6027",id:"\u7528\u6237\u5199\u5165\u5c5e\u6027",level:4},{value:"\u8bbe\u5907\u5bf9\u63a5\u672c\u5e73\u53f0\u7684\u900f\u4f20\u534f\u8bae",id:"\u8bbe\u5907\u5bf9\u63a5\u672c\u5e73\u53f0\u7684\u900f\u4f20\u534f\u8bae",level:3},{value:"\u8bbe\u5907\u4e0a\u62a5\u900f\u4f20\u6570\u636e",id:"\u8bbe\u5907\u4e0a\u62a5\u900f\u4f20\u6570\u636e",level:4},{value:"\u7528\u6237\u5199\u5165\u5c5e\u6027",id:"\u7528\u6237\u5199\u5165\u5c5e\u6027-1",level:4},{value:"\u4e3e\u4f8b\u8bf4\u660e",id:"\u4e3e\u4f8b\u8bf4\u660e",level:3},{value:"\u81ea\u884c\u5b9e\u73b0",id:"\u81ea\u884c\u5b9e\u73b0",level:4},{value:"\u5854\u77f3 DTU",id:"\u5854\u77f3-dtu",level:4},{value:"\u6709\u4eba DTU",id:"\u6709\u4eba-dtu",level:4},{value:"\u56db\u4fe1 DTU",id:"\u56db\u4fe1-dtu",level:4}],d={toc:o},y="wrapper";function p(e){let{components:l,...t}=e;return(0,u.yg)(y,(0,n.A)({},d,t,{components:l,mdxType:"MDXLayout"}),(0,u.yg)("h1",{id:"mqtt-\u8bbe\u5907\u63a5\u5165"},"MQTT \u8bbe\u5907\u63a5\u5165"),(0,u.yg)("p",null,"\u6211\u89c9\u5f97\u5927\u6982\u5206\u4e24\u79cd\u6a21\u5f0f\uff1a"),(0,u.yg)("ul",null,(0,u.yg)("li",{parentName:"ul"},"\u8bbe\u5907\u5bf9\u63a5\u672c\u5e73\u53f0\u7684\u5c5e\u6027\u534f\u8bae"),(0,u.yg)("li",{parentName:"ul"},"\u8bbe\u5907\u5bf9\u63a5\u672c\u5e73\u53f0\u7684\u900f\u4f20\u534f\u8bae")),(0,u.yg)("p",null,"\u4e24\u79cd\u6a21\u5f0f\u7684\u8bbe\u5907 connect \u662f\u4e00\u6837\u7684\u3002"),(0,u.yg)("h3",{id:"\u8bbe\u5907-connect"},"\u8bbe\u5907 connect"),(0,u.yg)("hr",null),(0,u.yg)("ul",null,(0,u.yg)("li",{parentName:"ul"},"ClientID device:{deviceCode} \u4e3e\u4f8b\uff1adevice:XoVnVQ2"),(0,u.yg)("li",{parentName:"ul"},"Username {deviceCode} \u4e3e\u4f8b\uff1aXoVnVQ2"),(0,u.yg)("li",{parentName:"ul"},"Password {devicePwd} \u4e3e\u4f8b\uff1aYXOsHbV")),(0,u.yg)("p",null,"\u8fde\u63a5\u6210\u529f\u540e\uff0c\u9ed8\u8ba4\u8ba2\u9605"),(0,u.yg)("ul",null,(0,u.yg)("li",{parentName:"ul"},"/device/${device.code}/attributes/d")),(0,u.yg)("p",null,"\u53ef\u6839\u636e\u5177\u4f53\u5e94\u7528\u573a\u666f\uff0c\u53d1\u5e03"),(0,u.yg)("ul",null,(0,u.yg)("li",{parentName:"ul"},"/device/${device.code}/attributes/u"),(0,u.yg)("li",{parentName:"ul"},"/device/${device.code}/attributes/req/u")),(0,u.yg)("p",null,"\u53ef\u6839\u636e\u5177\u4f53\u5e94\u7528\u573a\u666f\uff0c\u8ba2\u9605"),(0,u.yg)("ul",null,(0,u.yg)("li",{parentName:"ul"},"/device/${device.code}/attributes/res/d")),(0,u.yg)("h3",{id:"\u8bbe\u5907\u5bf9\u63a5\u672c\u5e73\u53f0\u7684\u5c5e\u6027\u534f\u8bae"},"\u8bbe\u5907\u5bf9\u63a5\u672c\u5e73\u53f0\u7684\u5c5e\u6027\u534f\u8bae"),(0,u.yg)("h4",{id:"\u8bbe\u5907\u4e0a\u62a5\u5c5e\u6027"},"\u8bbe\u5907\u4e0a\u62a5\u5c5e\u6027"),(0,u.yg)("hr",null),(0,u.yg)("p",null,"\u6570\u636e\u6d41\u5411"),(0,u.yg)("ul",null,(0,u.yg)("li",{parentName:"ul"},"\u8bbe\u5907 >> \u4e91\u7aef >> \u7528\u6237")),(0,u.yg)("p",null,"\u5141\u8bb8\u5c5e\u6027\u7c7b\u578b"),(0,u.yg)("ul",null,(0,u.yg)("li",{parentName:"ul"},"\u8bbe\u5907\u4e0a\u62a5"),(0,u.yg)("li",{parentName:"ul"},"\u8bbe\u5907\u4e91\u7aef\u5171\u4eab")),(0,u.yg)("p",null,"topic"),(0,u.yg)("ul",null,(0,u.yg)("li",{parentName:"ul"},"/device/${device.code}/attributes/u"),(0,u.yg)("li",{parentName:"ul"},"/account/${user.account}/${device.code}/attributes/d")),(0,u.yg)("p",null,"plyload"),(0,u.yg)("ul",null,(0,u.yg)("li",{parentName:"ul"},"[attributeCode:string]"," : ","[value:number|string]")),(0,u.yg)("h4",{id:"\u7528\u6237\u5199\u5165\u5c5e\u6027"},"\u7528\u6237\u5199\u5165\u5c5e\u6027"),(0,u.yg)("hr",null),(0,u.yg)("p",null,"\u6570\u636e\u6d41\u5411"),(0,u.yg)("ul",null,(0,u.yg)("li",{parentName:"ul"},"\u7528\u6237 >> \u4e91\u7aef >> \u8bbe\u5907")),(0,u.yg)("p",null,"\u5141\u8bb8\u5c5e\u6027\u7c7b\u578b"),(0,u.yg)("ul",null,(0,u.yg)("li",{parentName:"ul"},"\u4e91\u7aef\u4e0b\u53d1"),(0,u.yg)("li",{parentName:"ul"},"\u8bbe\u5907\u4e91\u7aef\u5171\u4eab \u6ce8\uff1a\u4e91\u7aef\u6536\u5230\u6b64\u5c5e\u6027\u540e\uff0c\u4f1a\u7acb\u5373\u5b58\u50a8\uff1b\u8bbe\u5907\u6536\u5230\u6b64\u5c5e\u6027\u540e\uff0c\u5e94\u8be5\u7acb\u5373\u4e0a\u62a5\uff1b"),(0,u.yg)("li",{parentName:"ul"},"\u4e91\u7aef\u79c1\u6709 \u6ce8\uff1a\u6b64\u7c7b\u5c5e\u6027\u53ea\u4f1a\u5230\u4e91\u7aef\uff0c\u4e0d\u4f1a\u4e0b\u53d1\u7ed9\u8bbe\u5907")),(0,u.yg)("p",null,"topic"),(0,u.yg)("ul",null,(0,u.yg)("li",{parentName:"ul"},"/account/${user.account}/${device.code}/attributes/u"),(0,u.yg)("li",{parentName:"ul"},"/device/${device.code}/attributes/d")),(0,u.yg)("p",null,"plyload"),(0,u.yg)("ul",null,(0,u.yg)("li",{parentName:"ul"},"[attributeCode:string]"," : ","[value:number|string]")),(0,u.yg)("h3",{id:"\u8bbe\u5907\u5bf9\u63a5\u672c\u5e73\u53f0\u7684\u900f\u4f20\u534f\u8bae"},"\u8bbe\u5907\u5bf9\u63a5\u672c\u5e73\u53f0\u7684\u900f\u4f20\u534f\u8bae"),(0,u.yg)("h4",{id:"\u8bbe\u5907\u4e0a\u62a5\u900f\u4f20\u6570\u636e"},"\u8bbe\u5907\u4e0a\u62a5\u900f\u4f20\u6570\u636e"),(0,u.yg)("hr",null),(0,u.yg)("p",null,"\u6570\u636e\u6d41\u5411"),(0,u.yg)("ul",null,(0,u.yg)("li",{parentName:"ul"},"\u8bbe\u5907 >> \u4e91\u7aef >> \u7528\u6237")),(0,u.yg)("p",null,"\u5141\u8bb8\u5c5e\u6027\u7c7b\u578b"),(0,u.yg)("ul",null,(0,u.yg)("li",{parentName:"ul"},"\u8bbe\u5907\u4e0a\u62a5"),(0,u.yg)("li",{parentName:"ul"},"\u8bbe\u5907\u4e91\u7aef\u5171\u4eab")),(0,u.yg)("p",null,"topic"),(0,u.yg)("ul",null,(0,u.yg)("li",{parentName:"ul"},"/device/${device.code}/t/u"),(0,u.yg)("li",{parentName:"ul"},"\u534f\u8bae\u89e3\u6790\u540e\u6a21\u62df /device/${device.code}/attributes/u"),(0,u.yg)("li",{parentName:"ul"},"/account/${user.account}/${device.code}/attributes/d")),(0,u.yg)("p",null,"plyload"),(0,u.yg)("ul",null,(0,u.yg)("li",{parentName:"ul"},"[attributeCode:string]"," : ","[value:number|string]")),(0,u.yg)("h4",{id:"\u7528\u6237\u5199\u5165\u5c5e\u6027-1"},"\u7528\u6237\u5199\u5165\u5c5e\u6027"),(0,u.yg)("hr",null),(0,u.yg)("p",null,"\u6570\u636e\u6d41\u5411"),(0,u.yg)("ul",null,(0,u.yg)("li",{parentName:"ul"},"\u7528\u6237 >> \u4e91\u7aef >> \u8bbe\u5907")),(0,u.yg)("p",null,"\u5141\u8bb8\u5c5e\u6027\u7c7b\u578b"),(0,u.yg)("ul",null,(0,u.yg)("li",{parentName:"ul"},"\u4e91\u7aef\u4e0b\u53d1"),(0,u.yg)("li",{parentName:"ul"},"\u8bbe\u5907\u4e91\u7aef\u5171\u4eab \u6ce8\uff1a\u4e91\u7aef\u6536\u5230\u6b64\u5c5e\u6027\u540e\uff0c\u4f1a\u7acb\u5373\u5b58\u50a8\uff1b\u8bbe\u5907\u6536\u5230\u6b64\u5c5e\u6027\u540e\uff0c\u5e94\u8be5\u7acb\u5373\u4e0a\u62a5\uff1b"),(0,u.yg)("li",{parentName:"ul"},"\u4e91\u7aef\u79c1\u6709 \u6ce8\uff1a\u6b64\u7c7b\u5c5e\u6027\u53ea\u4f1a\u5230\u4e91\u7aef\uff0c\u4e0d\u4f1a\u4e0b\u53d1\u7ed9\u8bbe\u5907")),(0,u.yg)("p",null,"topic"),(0,u.yg)("ul",null,(0,u.yg)("li",{parentName:"ul"},"/account/${user.account}/${device.code}/attributes/u"),(0,u.yg)("li",{parentName:"ul"},"\u534f\u8bae\u89e3\u6790\u540e\u6a21\u62df /device/${device.code}/t/d")),(0,u.yg)("p",null,"plyload"),(0,u.yg)("ul",null,(0,u.yg)("li",{parentName:"ul"},"[attributeCode:string]"," : ","[value:number|string]")),(0,u.yg)("h3",{id:"\u4e3e\u4f8b\u8bf4\u660e"},"\u4e3e\u4f8b\u8bf4\u660e"),(0,u.yg)("h4",{id:"\u81ea\u884c\u5b9e\u73b0"},"\u81ea\u884c\u5b9e\u73b0"),(0,u.yg)("p",null,"\u6709\u8bbe\u5907\u7aef\u7814\u53d1\u80fd\u529b\u7684\u53ef\u4ee5\u6839\u636e\u4e0a\u9762\u7684\u534f\u8bae\u81ea\u884c\u7814\u53d1\u5b9e\u73b0\u3002"),(0,u.yg)("p",null,"\u6216\u8005\u8bbe\u5907\u91cf\u5927\u7684\uff0c\u53ef\u4ee5\u8ba9 DTU \u6216\u6a21\u7ec4\u5382\u5546\u6839\u636e\u4e0a\u9762\u7684\u534f\u8bae\u5b9e\u73b0\u3002"),(0,u.yg)("p",null,"\u76ee\u524d\uff0c\u672c\u5e73\u53f0\u8fd8\u65e0\u6cd5\u505a\u5230\u8ba9\u4e0b\u9762\u7684 DTU \u5382\u5546\u5b9e\u73b0\u5c5e\u6027\u4ea4\u4e92\u534f\u8bae\uff0c\u4e0b\u9762\u4e3e\u4f8b\uff0c\u53ea\u4e3e\u4f8b\u900f\u4f20\u534f\u8bae\u65b9\u5f0f\u3002\n\u76f8\u5bf9\u4e8e MQTT \u900f\u4f20\uff0c100%\u7684 DTU \u5382\u5546\u90fd\u5b9e\u73b0\u4e86 TCP \u534f\u8bae\u63a5\u5165\uff0c\u5927\u5bb6\u8d2d\u4e70 DTU \u7684\u65f6\u5019\u8bf7\u4ed4\u7ec6\u8fa8\u522b\uff0c\u5e76\u975e\u6240\u6709\u7684 DTU \u90fd\u652f\u6301 MQTT \u900f\u4f20\u3002"),(0,u.yg)("h4",{id:"\u5854\u77f3-dtu"},"\u5854\u77f3 DTU"),(0,u.yg)("h4",{id:"\u6709\u4eba-dtu"},"\u6709\u4eba DTU"),(0,u.yg)("h4",{id:"\u56db\u4fe1-dtu"},"\u56db\u4fe1 DTU"))}p.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[842],{5680:(e,l,t)=>{t.d(l,{xA:()=>d,yg:()=>s});var n=t(6540);function u(e,l,t){return l in e?Object.defineProperty(e,l,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[l]=t,e}function r(e,l){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);l&&(n=n.filter((function(l){return Object.getOwnPropertyDescriptor(e,l).enumerable}))),t.push.apply(t,n)}return t}function i(e){for(var l=1;l=0||(u[t]=e[t]);return u}(e,l);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(u[t]=e[t])}return u}var c=n.createContext({}),o=function(e){var l=n.useContext(c),t=l;return e&&(t="function"==typeof e?e(l):i(i({},l),e)),t},d=function(e){var l=o(e.components);return n.createElement(c.Provider,{value:l},e.children)},y="mdxType",p={inlineCode:"code",wrapper:function(e){var l=e.children;return n.createElement(n.Fragment,{},l)}},g=n.forwardRef((function(e,l){var t=e.components,u=e.mdxType,r=e.originalType,c=e.parentName,d=a(e,["components","mdxType","originalType","parentName"]),y=o(t),g=u,s=y["".concat(c,".").concat(g)]||y[g]||p[g]||r;return t?n.createElement(s,i(i({ref:l},d),{},{components:t})):n.createElement(s,i({ref:l},d))}));function s(e,l){var t=arguments,u=l&&l.mdxType;if("string"==typeof e||u){var r=t.length,i=new Array(r);i[0]=g;var a={};for(var c in l)hasOwnProperty.call(l,c)&&(a[c]=l[c]);a.originalType=e,a[y]="string"==typeof e?e:u,i[1]=a;for(var o=2;o{t.r(l),t.d(l,{assets:()=>c,contentTitle:()=>i,default:()=>p,frontMatter:()=>r,metadata:()=>a,toc:()=>o});var n=t(8168),u=(t(6540),t(5680));const r={sidebar_position:3},i="MQTT \u8bbe\u5907\u63a5\u5165",a={unversionedId:"iotcloud/connect/mqtt",id:"iotcloud/connect/mqtt",title:"MQTT \u8bbe\u5907\u63a5\u5165",description:"\u6211\u89c9\u5f97\u5927\u6982\u5206\u4e24\u79cd\u6a21\u5f0f\uff1a",source:"@site/docs/iotcloud/connect/mqtt.md",sourceDirName:"iotcloud/connect",slug:"/iotcloud/connect/mqtt",permalink:"/docs/iotcloud/connect/mqtt",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",sidebarPosition:3,frontMatter:{sidebar_position:3},sidebar:"iotCloudSidebar",previous:{title:"\u6982\u8ff0",permalink:"/docs/iotcloud/connect/"},next:{title:"TCP \u8bbe\u5907\u63a5\u5165",permalink:"/docs/iotcloud/connect/tcp"}},c={},o=[{value:"\u8bbe\u5907 connect",id:"\u8bbe\u5907-connect",level:3},{value:"\u8bbe\u5907\u5bf9\u63a5\u672c\u5e73\u53f0\u7684\u5c5e\u6027\u534f\u8bae",id:"\u8bbe\u5907\u5bf9\u63a5\u672c\u5e73\u53f0\u7684\u5c5e\u6027\u534f\u8bae",level:3},{value:"\u8bbe\u5907\u4e0a\u62a5\u5c5e\u6027",id:"\u8bbe\u5907\u4e0a\u62a5\u5c5e\u6027",level:4},{value:"\u7528\u6237\u5199\u5165\u5c5e\u6027",id:"\u7528\u6237\u5199\u5165\u5c5e\u6027",level:4},{value:"\u8bbe\u5907\u5bf9\u63a5\u672c\u5e73\u53f0\u7684\u900f\u4f20\u534f\u8bae",id:"\u8bbe\u5907\u5bf9\u63a5\u672c\u5e73\u53f0\u7684\u900f\u4f20\u534f\u8bae",level:3},{value:"\u8bbe\u5907\u4e0a\u62a5\u900f\u4f20\u6570\u636e",id:"\u8bbe\u5907\u4e0a\u62a5\u900f\u4f20\u6570\u636e",level:4},{value:"\u7528\u6237\u5199\u5165\u5c5e\u6027",id:"\u7528\u6237\u5199\u5165\u5c5e\u6027-1",level:4},{value:"\u4e3e\u4f8b\u8bf4\u660e",id:"\u4e3e\u4f8b\u8bf4\u660e",level:3},{value:"\u81ea\u884c\u5b9e\u73b0",id:"\u81ea\u884c\u5b9e\u73b0",level:4},{value:"\u5854\u77f3 DTU",id:"\u5854\u77f3-dtu",level:4},{value:"\u6709\u4eba DTU",id:"\u6709\u4eba-dtu",level:4},{value:"\u56db\u4fe1 DTU",id:"\u56db\u4fe1-dtu",level:4}],d={toc:o},y="wrapper";function p(e){let{components:l,...t}=e;return(0,u.yg)(y,(0,n.A)({},d,t,{components:l,mdxType:"MDXLayout"}),(0,u.yg)("h1",{id:"mqtt-\u8bbe\u5907\u63a5\u5165"},"MQTT \u8bbe\u5907\u63a5\u5165"),(0,u.yg)("p",null,"\u6211\u89c9\u5f97\u5927\u6982\u5206\u4e24\u79cd\u6a21\u5f0f\uff1a"),(0,u.yg)("ul",null,(0,u.yg)("li",{parentName:"ul"},"\u8bbe\u5907\u5bf9\u63a5\u672c\u5e73\u53f0\u7684\u5c5e\u6027\u534f\u8bae"),(0,u.yg)("li",{parentName:"ul"},"\u8bbe\u5907\u5bf9\u63a5\u672c\u5e73\u53f0\u7684\u900f\u4f20\u534f\u8bae")),(0,u.yg)("p",null,"\u4e24\u79cd\u6a21\u5f0f\u7684\u8bbe\u5907 connect \u662f\u4e00\u6837\u7684\u3002"),(0,u.yg)("h3",{id:"\u8bbe\u5907-connect"},"\u8bbe\u5907 connect"),(0,u.yg)("hr",null),(0,u.yg)("ul",null,(0,u.yg)("li",{parentName:"ul"},"ClientID device:{deviceCode} \u4e3e\u4f8b\uff1adevice:XoVnVQ2"),(0,u.yg)("li",{parentName:"ul"},"Username {deviceCode} \u4e3e\u4f8b\uff1aXoVnVQ2"),(0,u.yg)("li",{parentName:"ul"},"Password {devicePwd} \u4e3e\u4f8b\uff1aYXOsHbV")),(0,u.yg)("p",null,"\u8fde\u63a5\u6210\u529f\u540e\uff0c\u9ed8\u8ba4\u8ba2\u9605"),(0,u.yg)("ul",null,(0,u.yg)("li",{parentName:"ul"},"/device/${device.code}/attributes/d")),(0,u.yg)("p",null,"\u53ef\u6839\u636e\u5177\u4f53\u5e94\u7528\u573a\u666f\uff0c\u53d1\u5e03"),(0,u.yg)("ul",null,(0,u.yg)("li",{parentName:"ul"},"/device/${device.code}/attributes/u"),(0,u.yg)("li",{parentName:"ul"},"/device/${device.code}/attributes/req/u")),(0,u.yg)("p",null,"\u53ef\u6839\u636e\u5177\u4f53\u5e94\u7528\u573a\u666f\uff0c\u8ba2\u9605"),(0,u.yg)("ul",null,(0,u.yg)("li",{parentName:"ul"},"/device/${device.code}/attributes/res/d")),(0,u.yg)("h3",{id:"\u8bbe\u5907\u5bf9\u63a5\u672c\u5e73\u53f0\u7684\u5c5e\u6027\u534f\u8bae"},"\u8bbe\u5907\u5bf9\u63a5\u672c\u5e73\u53f0\u7684\u5c5e\u6027\u534f\u8bae"),(0,u.yg)("h4",{id:"\u8bbe\u5907\u4e0a\u62a5\u5c5e\u6027"},"\u8bbe\u5907\u4e0a\u62a5\u5c5e\u6027"),(0,u.yg)("hr",null),(0,u.yg)("p",null,"\u6570\u636e\u6d41\u5411"),(0,u.yg)("ul",null,(0,u.yg)("li",{parentName:"ul"},"\u8bbe\u5907 >> \u4e91\u7aef >> \u7528\u6237")),(0,u.yg)("p",null,"\u5141\u8bb8\u5c5e\u6027\u7c7b\u578b"),(0,u.yg)("ul",null,(0,u.yg)("li",{parentName:"ul"},"\u8bbe\u5907\u4e0a\u62a5"),(0,u.yg)("li",{parentName:"ul"},"\u8bbe\u5907\u4e91\u7aef\u5171\u4eab")),(0,u.yg)("p",null,"topic"),(0,u.yg)("ul",null,(0,u.yg)("li",{parentName:"ul"},"/device/${device.code}/attributes/u"),(0,u.yg)("li",{parentName:"ul"},"/account/${user.account}/${device.code}/attributes/d")),(0,u.yg)("p",null,"plyload"),(0,u.yg)("ul",null,(0,u.yg)("li",{parentName:"ul"},"[attributeCode:string]"," : ","[value:number|string]")),(0,u.yg)("h4",{id:"\u7528\u6237\u5199\u5165\u5c5e\u6027"},"\u7528\u6237\u5199\u5165\u5c5e\u6027"),(0,u.yg)("hr",null),(0,u.yg)("p",null,"\u6570\u636e\u6d41\u5411"),(0,u.yg)("ul",null,(0,u.yg)("li",{parentName:"ul"},"\u7528\u6237 >> \u4e91\u7aef >> \u8bbe\u5907")),(0,u.yg)("p",null,"\u5141\u8bb8\u5c5e\u6027\u7c7b\u578b"),(0,u.yg)("ul",null,(0,u.yg)("li",{parentName:"ul"},"\u4e91\u7aef\u4e0b\u53d1"),(0,u.yg)("li",{parentName:"ul"},"\u8bbe\u5907\u4e91\u7aef\u5171\u4eab \u6ce8\uff1a\u4e91\u7aef\u6536\u5230\u6b64\u5c5e\u6027\u540e\uff0c\u4f1a\u7acb\u5373\u5b58\u50a8\uff1b\u8bbe\u5907\u6536\u5230\u6b64\u5c5e\u6027\u540e\uff0c\u5e94\u8be5\u7acb\u5373\u4e0a\u62a5\uff1b"),(0,u.yg)("li",{parentName:"ul"},"\u4e91\u7aef\u79c1\u6709 \u6ce8\uff1a\u6b64\u7c7b\u5c5e\u6027\u53ea\u4f1a\u5230\u4e91\u7aef\uff0c\u4e0d\u4f1a\u4e0b\u53d1\u7ed9\u8bbe\u5907")),(0,u.yg)("p",null,"topic"),(0,u.yg)("ul",null,(0,u.yg)("li",{parentName:"ul"},"/account/${user.account}/${device.code}/attributes/u"),(0,u.yg)("li",{parentName:"ul"},"/device/${device.code}/attributes/d")),(0,u.yg)("p",null,"plyload"),(0,u.yg)("ul",null,(0,u.yg)("li",{parentName:"ul"},"[attributeCode:string]"," : ","[value:number|string]")),(0,u.yg)("h3",{id:"\u8bbe\u5907\u5bf9\u63a5\u672c\u5e73\u53f0\u7684\u900f\u4f20\u534f\u8bae"},"\u8bbe\u5907\u5bf9\u63a5\u672c\u5e73\u53f0\u7684\u900f\u4f20\u534f\u8bae"),(0,u.yg)("h4",{id:"\u8bbe\u5907\u4e0a\u62a5\u900f\u4f20\u6570\u636e"},"\u8bbe\u5907\u4e0a\u62a5\u900f\u4f20\u6570\u636e"),(0,u.yg)("hr",null),(0,u.yg)("p",null,"\u6570\u636e\u6d41\u5411"),(0,u.yg)("ul",null,(0,u.yg)("li",{parentName:"ul"},"\u8bbe\u5907 >> \u4e91\u7aef >> \u7528\u6237")),(0,u.yg)("p",null,"\u5141\u8bb8\u5c5e\u6027\u7c7b\u578b"),(0,u.yg)("ul",null,(0,u.yg)("li",{parentName:"ul"},"\u8bbe\u5907\u4e0a\u62a5"),(0,u.yg)("li",{parentName:"ul"},"\u8bbe\u5907\u4e91\u7aef\u5171\u4eab")),(0,u.yg)("p",null,"topic"),(0,u.yg)("ul",null,(0,u.yg)("li",{parentName:"ul"},"/device/${device.code}/t/u"),(0,u.yg)("li",{parentName:"ul"},"\u534f\u8bae\u89e3\u6790\u540e\u6a21\u62df /device/${device.code}/attributes/u"),(0,u.yg)("li",{parentName:"ul"},"/account/${user.account}/${device.code}/attributes/d")),(0,u.yg)("p",null,"plyload"),(0,u.yg)("ul",null,(0,u.yg)("li",{parentName:"ul"},"[attributeCode:string]"," : ","[value:number|string]")),(0,u.yg)("h4",{id:"\u7528\u6237\u5199\u5165\u5c5e\u6027-1"},"\u7528\u6237\u5199\u5165\u5c5e\u6027"),(0,u.yg)("hr",null),(0,u.yg)("p",null,"\u6570\u636e\u6d41\u5411"),(0,u.yg)("ul",null,(0,u.yg)("li",{parentName:"ul"},"\u7528\u6237 >> \u4e91\u7aef >> \u8bbe\u5907")),(0,u.yg)("p",null,"\u5141\u8bb8\u5c5e\u6027\u7c7b\u578b"),(0,u.yg)("ul",null,(0,u.yg)("li",{parentName:"ul"},"\u4e91\u7aef\u4e0b\u53d1"),(0,u.yg)("li",{parentName:"ul"},"\u8bbe\u5907\u4e91\u7aef\u5171\u4eab \u6ce8\uff1a\u4e91\u7aef\u6536\u5230\u6b64\u5c5e\u6027\u540e\uff0c\u4f1a\u7acb\u5373\u5b58\u50a8\uff1b\u8bbe\u5907\u6536\u5230\u6b64\u5c5e\u6027\u540e\uff0c\u5e94\u8be5\u7acb\u5373\u4e0a\u62a5\uff1b"),(0,u.yg)("li",{parentName:"ul"},"\u4e91\u7aef\u79c1\u6709 \u6ce8\uff1a\u6b64\u7c7b\u5c5e\u6027\u53ea\u4f1a\u5230\u4e91\u7aef\uff0c\u4e0d\u4f1a\u4e0b\u53d1\u7ed9\u8bbe\u5907")),(0,u.yg)("p",null,"topic"),(0,u.yg)("ul",null,(0,u.yg)("li",{parentName:"ul"},"/account/${user.account}/${device.code}/attributes/u"),(0,u.yg)("li",{parentName:"ul"},"\u534f\u8bae\u89e3\u6790\u540e\u6a21\u62df /device/${device.code}/t/d")),(0,u.yg)("p",null,"plyload"),(0,u.yg)("ul",null,(0,u.yg)("li",{parentName:"ul"},"[attributeCode:string]"," : ","[value:number|string]")),(0,u.yg)("h3",{id:"\u4e3e\u4f8b\u8bf4\u660e"},"\u4e3e\u4f8b\u8bf4\u660e"),(0,u.yg)("h4",{id:"\u81ea\u884c\u5b9e\u73b0"},"\u81ea\u884c\u5b9e\u73b0"),(0,u.yg)("p",null,"\u6709\u8bbe\u5907\u7aef\u7814\u53d1\u80fd\u529b\u7684\u53ef\u4ee5\u6839\u636e\u4e0a\u9762\u7684\u534f\u8bae\u81ea\u884c\u7814\u53d1\u5b9e\u73b0\u3002"),(0,u.yg)("p",null,"\u6216\u8005\u8bbe\u5907\u91cf\u5927\u7684\uff0c\u53ef\u4ee5\u8ba9 DTU \u6216\u6a21\u7ec4\u5382\u5546\u6839\u636e\u4e0a\u9762\u7684\u534f\u8bae\u5b9e\u73b0\u3002"),(0,u.yg)("p",null,"\u76ee\u524d\uff0c\u672c\u5e73\u53f0\u8fd8\u65e0\u6cd5\u505a\u5230\u8ba9\u4e0b\u9762\u7684 DTU \u5382\u5546\u5b9e\u73b0\u5c5e\u6027\u4ea4\u4e92\u534f\u8bae\uff0c\u4e0b\u9762\u4e3e\u4f8b\uff0c\u53ea\u4e3e\u4f8b\u900f\u4f20\u534f\u8bae\u65b9\u5f0f\u3002\n\u76f8\u5bf9\u4e8e MQTT \u900f\u4f20\uff0c100%\u7684 DTU \u5382\u5546\u90fd\u5b9e\u73b0\u4e86 TCP \u534f\u8bae\u63a5\u5165\uff0c\u5927\u5bb6\u8d2d\u4e70 DTU \u7684\u65f6\u5019\u8bf7\u4ed4\u7ec6\u8fa8\u522b\uff0c\u5e76\u975e\u6240\u6709\u7684 DTU \u90fd\u652f\u6301 MQTT \u900f\u4f20\u3002"),(0,u.yg)("h4",{id:"\u5854\u77f3-dtu"},"\u5854\u77f3 DTU"),(0,u.yg)("h4",{id:"\u6709\u4eba-dtu"},"\u6709\u4eba DTU"),(0,u.yg)("h4",{id:"\u56db\u4fe1-dtu"},"\u56db\u4fe1 DTU"))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1c123384.9b9282a2.js b/assets/js/1c123384.25e0ca6d.js similarity index 98% rename from assets/js/1c123384.9b9282a2.js rename to assets/js/1c123384.25e0ca6d.js index 636e91427..250fbd270 100644 --- a/assets/js/1c123384.9b9282a2.js +++ b/assets/js/1c123384.25e0ca6d.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1084],{5680:(e,r,t)=>{t.d(r,{xA:()=>l,yg:()=>f});var n=t(6540);function o(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function a(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function c(e){for(var r=1;r=0||(o[t]=e[t]);return o}(e,r);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var u=n.createContext({}),p=function(e){var r=n.useContext(u),t=r;return e&&(t="function"==typeof e?e(r):c(c({},r),e)),t},l=function(e){var r=p(e.components);return n.createElement(u.Provider,{value:r},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},y=n.forwardRef((function(e,r){var t=e.components,o=e.mdxType,a=e.originalType,u=e.parentName,l=i(e,["components","mdxType","originalType","parentName"]),s=p(t),y=o,f=s["".concat(u,".").concat(y)]||s[y]||d[y]||a;return t?n.createElement(f,c(c({ref:r},l),{},{components:t})):n.createElement(f,c({ref:r},l))}));function f(e,r){var t=arguments,o=r&&r.mdxType;if("string"==typeof e||o){var a=t.length,c=new Array(a);c[0]=y;var i={};for(var u in r)hasOwnProperty.call(r,u)&&(i[u]=r[u]);i.originalType=e,i[s]="string"==typeof e?e:o,c[1]=i;for(var p=2;p{t.r(r),t.d(r,{assets:()=>u,contentTitle:()=>c,default:()=>d,frontMatter:()=>a,metadata:()=>i,toc:()=>p});var n=t(8168),o=(t(6540),t(5680));const a={},c=void 0,i={unversionedId:"study/program/JAVA/Guice",id:"study/program/JAVA/Guice",title:"Guice",description:"\u80cc\u666f",source:"@site/docs/study/program/JAVA/Guice.md",sourceDirName:"study/program/JAVA",slug:"/study/program/JAVA/Guice",permalink:"/docs/study/program/JAVA/Guice",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"GraalVM",permalink:"/docs/study/program/JAVA/GraalVM"},next:{title:"Maven",permalink:"/docs/study/program/JAVA/Maven"}},u={},p=[{value:"\u80cc\u666f",id:"\u80cc\u666f",level:3}],l={toc:p},s="wrapper";function d(e){let{components:r,...t}=e;return(0,o.yg)(s,(0,n.A)({},l,t,{components:r,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"\u80cc\u666f"},"\u80cc\u666f"),(0,o.yg)("p",null,"Guice \u662f\u4e00\u4e2a\u5f00\u6e90\u7684\u3001\u57fa\u4e8e Java \u7684\u4f9d\u8d56\u6ce8\u5165\u6846\u67b6\u3002\u5b83\u662f\u8f7b\u91cf\u7ea7\u7684\uff0c\u7531 Google \u79ef\u6781\u5f00\u53d1/\u7ba1\u7406\u3002"),(0,o.yg)("p",null,"\u5728\u65e5\u5e38\u5199\u4e00\u4e9b\u5c0f\u5de5\u5177\u6216\u8005\u5c0f\u9879\u76ee\u7684\u65f6\u5019\uff0c\u6709\u4f9d\u8d56\u7ba1\u7406\u548c\u4f9d\u8d56\u6ce8\u5165\u7684\u9700\u6c42\uff0c\u4f46\u662fSpring(Boot)\u4f53\u7cfb\u4f5c\u4e3aDI\u6846\u67b6\u8fc7\u4e8e\u91cd\u91cf\u7ea7\uff0c\u4e8e\u662f\u9700\u8981\u8c03\u7814\u4e00\u6b3e\u5fae\u578b\u7684DI\u6846\u67b6\u3002Guice\u662fGoogle\u51fa\u54c1\u7684\u4e00\u6b3e\u8f7b\u91cf\u7ea7\u7684\u4f9d\u8d56\u6ce8\u5165\u6846\u67b6\uff0c\u4f7f\u7528\u5b83\u6709\u52a9\u4e8e\u89e3\u51b3\u9879\u76ee\u4e2d\u7684\u4f9d\u8d56\u6ce8\u5165\u95ee\u9898\uff0c\u63d0\u9ad8\u4e86\u53ef\u7ef4\u62a4\u6027\u548c\u7075\u6d3b\u6027\u3002\u76f8\u5bf9\u4e8e\u91cd\u91cf\u7ea7\u7684Spring(Boot)\u4f53\u7cfb\uff0cGuice\u9879\u76ee\u53ea\u6709\u4e00\u4e2a\u5c0f\u4e8e1MB\u7684\u6838\u5fc3\u6a21\u5757\uff0c\u5982\u679c\u6838\u5fc3\u9700\u6c42\u662fDI\uff08\u5176\u5b9eGuice\u4e5f\u63d0\u4f9b\u4e86\u5f88\u4f4e\u5c42\u6b21\u7684AOP\u5b9e\u73b0\uff09\uff0c\u90a3\u4e48Guice\u5e94\u8be5\u4f1a\u662f\u4e00\u4e2a\u5408\u9002\u7684\u5019\u9009\u65b9\u6848\u3002"))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1084],{5680:(e,r,t)=>{t.d(r,{xA:()=>l,yg:()=>f});var n=t(6540);function o(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function a(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function c(e){for(var r=1;r=0||(o[t]=e[t]);return o}(e,r);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var u=n.createContext({}),p=function(e){var r=n.useContext(u),t=r;return e&&(t="function"==typeof e?e(r):c(c({},r),e)),t},l=function(e){var r=p(e.components);return n.createElement(u.Provider,{value:r},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},y=n.forwardRef((function(e,r){var t=e.components,o=e.mdxType,a=e.originalType,u=e.parentName,l=i(e,["components","mdxType","originalType","parentName"]),s=p(t),y=o,f=s["".concat(u,".").concat(y)]||s[y]||d[y]||a;return t?n.createElement(f,c(c({ref:r},l),{},{components:t})):n.createElement(f,c({ref:r},l))}));function f(e,r){var t=arguments,o=r&&r.mdxType;if("string"==typeof e||o){var a=t.length,c=new Array(a);c[0]=y;var i={};for(var u in r)hasOwnProperty.call(r,u)&&(i[u]=r[u]);i.originalType=e,i[s]="string"==typeof e?e:o,c[1]=i;for(var p=2;p{t.r(r),t.d(r,{assets:()=>u,contentTitle:()=>c,default:()=>d,frontMatter:()=>a,metadata:()=>i,toc:()=>p});var n=t(8168),o=(t(6540),t(5680));const a={},c=void 0,i={unversionedId:"study/program/JAVA/Guice",id:"study/program/JAVA/Guice",title:"Guice",description:"\u80cc\u666f",source:"@site/docs/study/program/JAVA/Guice.md",sourceDirName:"study/program/JAVA",slug:"/study/program/JAVA/Guice",permalink:"/docs/study/program/JAVA/Guice",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"GraalVM",permalink:"/docs/study/program/JAVA/GraalVM"},next:{title:"Maven",permalink:"/docs/study/program/JAVA/Maven"}},u={},p=[{value:"\u80cc\u666f",id:"\u80cc\u666f",level:3}],l={toc:p},s="wrapper";function d(e){let{components:r,...t}=e;return(0,o.yg)(s,(0,n.A)({},l,t,{components:r,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"\u80cc\u666f"},"\u80cc\u666f"),(0,o.yg)("p",null,"Guice \u662f\u4e00\u4e2a\u5f00\u6e90\u7684\u3001\u57fa\u4e8e Java \u7684\u4f9d\u8d56\u6ce8\u5165\u6846\u67b6\u3002\u5b83\u662f\u8f7b\u91cf\u7ea7\u7684\uff0c\u7531 Google \u79ef\u6781\u5f00\u53d1/\u7ba1\u7406\u3002"),(0,o.yg)("p",null,"\u5728\u65e5\u5e38\u5199\u4e00\u4e9b\u5c0f\u5de5\u5177\u6216\u8005\u5c0f\u9879\u76ee\u7684\u65f6\u5019\uff0c\u6709\u4f9d\u8d56\u7ba1\u7406\u548c\u4f9d\u8d56\u6ce8\u5165\u7684\u9700\u6c42\uff0c\u4f46\u662fSpring(Boot)\u4f53\u7cfb\u4f5c\u4e3aDI\u6846\u67b6\u8fc7\u4e8e\u91cd\u91cf\u7ea7\uff0c\u4e8e\u662f\u9700\u8981\u8c03\u7814\u4e00\u6b3e\u5fae\u578b\u7684DI\u6846\u67b6\u3002Guice\u662fGoogle\u51fa\u54c1\u7684\u4e00\u6b3e\u8f7b\u91cf\u7ea7\u7684\u4f9d\u8d56\u6ce8\u5165\u6846\u67b6\uff0c\u4f7f\u7528\u5b83\u6709\u52a9\u4e8e\u89e3\u51b3\u9879\u76ee\u4e2d\u7684\u4f9d\u8d56\u6ce8\u5165\u95ee\u9898\uff0c\u63d0\u9ad8\u4e86\u53ef\u7ef4\u62a4\u6027\u548c\u7075\u6d3b\u6027\u3002\u76f8\u5bf9\u4e8e\u91cd\u91cf\u7ea7\u7684Spring(Boot)\u4f53\u7cfb\uff0cGuice\u9879\u76ee\u53ea\u6709\u4e00\u4e2a\u5c0f\u4e8e1MB\u7684\u6838\u5fc3\u6a21\u5757\uff0c\u5982\u679c\u6838\u5fc3\u9700\u6c42\u662fDI\uff08\u5176\u5b9eGuice\u4e5f\u63d0\u4f9b\u4e86\u5f88\u4f4e\u5c42\u6b21\u7684AOP\u5b9e\u73b0\uff09\uff0c\u90a3\u4e48Guice\u5e94\u8be5\u4f1a\u662f\u4e00\u4e2a\u5408\u9002\u7684\u5019\u9009\u65b9\u6848\u3002"))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1c2262cb.31046f60.js b/assets/js/1c2262cb.6c5c43a9.js similarity index 98% rename from assets/js/1c2262cb.31046f60.js rename to assets/js/1c2262cb.6c5c43a9.js index 9543676a4..f0fc27651 100644 --- a/assets/js/1c2262cb.31046f60.js +++ b/assets/js/1c2262cb.6c5c43a9.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7420],{5680:(e,t,r)=>{r.d(t,{xA:()=>s,yg:()=>m});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var i=n.createContext({}),u=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},s=function(e){var t=u(e.components);return n.createElement(i.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,i=e.parentName,s=c(e,["components","mdxType","originalType","parentName"]),p=u(r),y=o,m=p["".concat(i,".").concat(y)]||p[y]||d[y]||a;return r?n.createElement(m,l(l({ref:t},s),{},{components:r})):n.createElement(m,l({ref:t},s))}));function m(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,l=new Array(a);l[0]=y;var c={};for(var i in t)hasOwnProperty.call(t,i)&&(c[i]=t[i]);c.originalType=e,c[p]="string"==typeof e?e:o,l[1]=c;for(var u=2;u{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>l,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>u});var n=r(8168),o=(r(6540),r(5680));const a={sidebar_position:7},l="RAM \u7528\u6237",c={unversionedId:"iotcloud/usercenter/system-user",id:"iotcloud/usercenter/system-user",title:"RAM \u7528\u6237",description:"\u672c\u6587\u4e3a\u60a8\u4ecb\u7ecd RAM\uff08Resource Access Management\uff09\u7528\u6237\u7684\u57fa\u672c\u6982\u5ff5\u3001\u4f7f\u7528\u6d41\u7a0b\u3001\u6700\u4f73\u5b9e\u8df5\u548c\u4f7f\u7528\u9650\u5236\u3002",source:"@site/docs/iotcloud/usercenter/system-user.md",sourceDirName:"iotcloud/usercenter",slug:"/iotcloud/usercenter/system-user",permalink:"/docs/iotcloud/usercenter/system-user",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",sidebarPosition:7,frontMatter:{sidebar_position:7},sidebar:"iotCloudSidebar",previous:{title:"\u7528\u6237\u8bbe\u7f6e",permalink:"/docs/iotcloud/usercenter/user-settings"},next:{title:"\u5ba2\u6237\u7ba1\u7406",permalink:"/docs/iotcloud/usercenter/customer"}},i={},u=[{value:"\u4ec0\u4e48\u662f RAM \u7528\u6237",id:"\u4ec0\u4e48\u662f-ram-\u7528\u6237",level:3},{value:"\u4f7f\u7528\u6d41\u7a0b",id:"\u4f7f\u7528\u6d41\u7a0b",level:3},{value:"\u6700\u4f73\u5b9e\u8df5",id:"\u6700\u4f73\u5b9e\u8df5",level:3},{value:"\u4f7f\u7528\u9650\u5236",id:"\u4f7f\u7528\u9650\u5236",level:3}],s={toc:u},p="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(p,(0,n.A)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"ram-\u7528\u6237"},"RAM \u7528\u6237"),(0,o.yg)("p",null,"\u672c\u6587\u4e3a\u60a8\u4ecb\u7ecd RAM\uff08Resource Access Management\uff09\u7528\u6237\u7684\u57fa\u672c\u6982\u5ff5\u3001\u4f7f\u7528\u6d41\u7a0b\u3001\u6700\u4f73\u5b9e\u8df5\u548c\u4f7f\u7528\u9650\u5236\u3002"),(0,o.yg)("h3",{id:"\u4ec0\u4e48\u662f-ram-\u7528\u6237"},"\u4ec0\u4e48\u662f RAM \u7528\u6237"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"RAM \u7528\u6237\u53ea\u80fd\u7531\u6ce8\u518c\u7528\u6237\u521b\u5efa\uff1b"),(0,o.yg)("li",{parentName:"ul"},"\u4ed6\u53ea\u662f\u534f\u52a9\u6ce8\u518c\u7528\u6237\u7ba1\u7406\u7cfb\u7edf\u7684\uff0c\u4e0d\u5177\u6709\u8d44\u6e90\u7684\u6240\u5c5e\u6743\u9650\uff0c\u53d7\u63a7\u4e8e\u6ce8\u518c\u7528\u6237\uff1b"),(0,o.yg)("li",{parentName:"ul"},"RAM \u7528\u6237\u4e0d\u62e5\u6709\u8d44\u6e90\uff0c\u4e0d\u80fd\u72ec\u7acb\u8ba1\u91cf\u8ba1\u8d39\uff0c\u7531\u6240\u5c5e\u7684\u6ce8\u518c\u7528\u6237\u7edf\u4e00\u4ed8\u8d39\u3002")),(0,o.yg)("h3",{id:"\u4f7f\u7528\u6d41\u7a0b"},"\u4f7f\u7528\u6d41\u7a0b"),(0,o.yg)("p",null,"GIF \u56fe"),(0,o.yg)("h3",{id:"\u6700\u4f73\u5b9e\u8df5"},"\u6700\u4f73\u5b9e\u8df5"),(0,o.yg)("p",null,"GIF \u56fe"),(0,o.yg)("h3",{id:"\u4f7f\u7528\u9650\u5236"},"\u4f7f\u7528\u9650\u5236"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"\u4e0d\u80fd\u62e5\u6709\u3010\u7528\u6237\u4e2d\u5fc3-RAM \u7528\u6237\u3011\u7684\u6240\u6709\u529f\u80fd\u6743\u9650\uff1b")))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7420],{5680:(e,t,r)=>{r.d(t,{xA:()=>s,yg:()=>m});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var i=n.createContext({}),u=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},s=function(e){var t=u(e.components);return n.createElement(i.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,i=e.parentName,s=c(e,["components","mdxType","originalType","parentName"]),p=u(r),y=o,m=p["".concat(i,".").concat(y)]||p[y]||d[y]||a;return r?n.createElement(m,l(l({ref:t},s),{},{components:r})):n.createElement(m,l({ref:t},s))}));function m(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,l=new Array(a);l[0]=y;var c={};for(var i in t)hasOwnProperty.call(t,i)&&(c[i]=t[i]);c.originalType=e,c[p]="string"==typeof e?e:o,l[1]=c;for(var u=2;u{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>l,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>u});var n=r(8168),o=(r(6540),r(5680));const a={sidebar_position:7},l="RAM \u7528\u6237",c={unversionedId:"iotcloud/usercenter/system-user",id:"iotcloud/usercenter/system-user",title:"RAM \u7528\u6237",description:"\u672c\u6587\u4e3a\u60a8\u4ecb\u7ecd RAM\uff08Resource Access Management\uff09\u7528\u6237\u7684\u57fa\u672c\u6982\u5ff5\u3001\u4f7f\u7528\u6d41\u7a0b\u3001\u6700\u4f73\u5b9e\u8df5\u548c\u4f7f\u7528\u9650\u5236\u3002",source:"@site/docs/iotcloud/usercenter/system-user.md",sourceDirName:"iotcloud/usercenter",slug:"/iotcloud/usercenter/system-user",permalink:"/docs/iotcloud/usercenter/system-user",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",sidebarPosition:7,frontMatter:{sidebar_position:7},sidebar:"iotCloudSidebar",previous:{title:"\u7528\u6237\u8bbe\u7f6e",permalink:"/docs/iotcloud/usercenter/user-settings"},next:{title:"\u5ba2\u6237\u7ba1\u7406",permalink:"/docs/iotcloud/usercenter/customer"}},i={},u=[{value:"\u4ec0\u4e48\u662f RAM \u7528\u6237",id:"\u4ec0\u4e48\u662f-ram-\u7528\u6237",level:3},{value:"\u4f7f\u7528\u6d41\u7a0b",id:"\u4f7f\u7528\u6d41\u7a0b",level:3},{value:"\u6700\u4f73\u5b9e\u8df5",id:"\u6700\u4f73\u5b9e\u8df5",level:3},{value:"\u4f7f\u7528\u9650\u5236",id:"\u4f7f\u7528\u9650\u5236",level:3}],s={toc:u},p="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(p,(0,n.A)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"ram-\u7528\u6237"},"RAM \u7528\u6237"),(0,o.yg)("p",null,"\u672c\u6587\u4e3a\u60a8\u4ecb\u7ecd RAM\uff08Resource Access Management\uff09\u7528\u6237\u7684\u57fa\u672c\u6982\u5ff5\u3001\u4f7f\u7528\u6d41\u7a0b\u3001\u6700\u4f73\u5b9e\u8df5\u548c\u4f7f\u7528\u9650\u5236\u3002"),(0,o.yg)("h3",{id:"\u4ec0\u4e48\u662f-ram-\u7528\u6237"},"\u4ec0\u4e48\u662f RAM \u7528\u6237"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"RAM \u7528\u6237\u53ea\u80fd\u7531\u6ce8\u518c\u7528\u6237\u521b\u5efa\uff1b"),(0,o.yg)("li",{parentName:"ul"},"\u4ed6\u53ea\u662f\u534f\u52a9\u6ce8\u518c\u7528\u6237\u7ba1\u7406\u7cfb\u7edf\u7684\uff0c\u4e0d\u5177\u6709\u8d44\u6e90\u7684\u6240\u5c5e\u6743\u9650\uff0c\u53d7\u63a7\u4e8e\u6ce8\u518c\u7528\u6237\uff1b"),(0,o.yg)("li",{parentName:"ul"},"RAM \u7528\u6237\u4e0d\u62e5\u6709\u8d44\u6e90\uff0c\u4e0d\u80fd\u72ec\u7acb\u8ba1\u91cf\u8ba1\u8d39\uff0c\u7531\u6240\u5c5e\u7684\u6ce8\u518c\u7528\u6237\u7edf\u4e00\u4ed8\u8d39\u3002")),(0,o.yg)("h3",{id:"\u4f7f\u7528\u6d41\u7a0b"},"\u4f7f\u7528\u6d41\u7a0b"),(0,o.yg)("p",null,"GIF \u56fe"),(0,o.yg)("h3",{id:"\u6700\u4f73\u5b9e\u8df5"},"\u6700\u4f73\u5b9e\u8df5"),(0,o.yg)("p",null,"GIF \u56fe"),(0,o.yg)("h3",{id:"\u4f7f\u7528\u9650\u5236"},"\u4f7f\u7528\u9650\u5236"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"\u4e0d\u80fd\u62e5\u6709\u3010\u7528\u6237\u4e2d\u5fc3-RAM \u7528\u6237\u3011\u7684\u6240\u6709\u529f\u80fd\u6743\u9650\uff1b")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1c40b03d.8a58137d.js b/assets/js/1c40b03d.c8cab21e.js similarity index 97% rename from assets/js/1c40b03d.8a58137d.js rename to assets/js/1c40b03d.c8cab21e.js index e7045b0a7..283e89734 100644 --- a/assets/js/1c40b03d.8a58137d.js +++ b/assets/js/1c40b03d.c8cab21e.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3180],{5680:(e,t,r)=>{r.d(t,{xA:()=>s,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var u=n.createContext({}),a=function(e){var t=n.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},s=function(e){var t=a(e.components);return n.createElement(u.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,l=e.originalType,u=e.parentName,s=i(e,["components","mdxType","originalType","parentName"]),p=a(r),y=o,f=p["".concat(u,".").concat(y)]||p[y]||d[y]||l;return r?n.createElement(f,c(c({ref:t},s),{},{components:r})):n.createElement(f,c({ref:t},s))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var l=r.length,c=new Array(l);c[0]=y;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i[p]="string"==typeof e?e:o,c[1]=i;for(var a=2;a{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>c,default:()=>d,frontMatter:()=>l,metadata:()=>i,toc:()=>a});var n=r(8168),o=(r(6540),r(5680));const l={sidebar_position:9},c="\u5ba2\u6237\u7ba1\u7406",i={unversionedId:"iotcloud/usercenter/customer",id:"iotcloud/usercenter/customer",title:"\u5ba2\u6237\u7ba1\u7406",description:"\u672c\u6587\u4e3a\u60a8\u4ecb\u7ecd \u5ba2\u6237 \u7684\u57fa\u672c\u6982\u5ff5\u3001\u4f7f\u7528\u6d41\u7a0b\u3001\u6700\u4f73\u5b9e\u8df5\u548c\u4f7f\u7528\u9650\u5236\u3002",source:"@site/docs/iotcloud/usercenter/customer.md",sourceDirName:"iotcloud/usercenter",slug:"/iotcloud/usercenter/customer",permalink:"/docs/iotcloud/usercenter/customer",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",sidebarPosition:9,frontMatter:{sidebar_position:9},sidebar:"iotCloudSidebar",previous:{title:"RAM \u7528\u6237",permalink:"/docs/iotcloud/usercenter/system-user"}},u={},a=[{value:"\u4ec0\u4e48\u662f\u5ba2\u6237",id:"\u4ec0\u4e48\u662f\u5ba2\u6237",level:3},{value:"\u4f7f\u7528\u6d41\u7a0b",id:"\u4f7f\u7528\u6d41\u7a0b",level:3},{value:"\u6700\u4f73\u5b9e\u8df5",id:"\u6700\u4f73\u5b9e\u8df5",level:3},{value:"\u4f7f\u7528\u9650\u5236",id:"\u4f7f\u7528\u9650\u5236",level:3}],s={toc:a},p="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(p,(0,n.A)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"\u5ba2\u6237\u7ba1\u7406"},"\u5ba2\u6237\u7ba1\u7406"),(0,o.yg)("p",null,"\u672c\u6587\u4e3a\u60a8\u4ecb\u7ecd \u5ba2\u6237 \u7684\u57fa\u672c\u6982\u5ff5\u3001\u4f7f\u7528\u6d41\u7a0b\u3001\u6700\u4f73\u5b9e\u8df5\u548c\u4f7f\u7528\u9650\u5236\u3002"),(0,o.yg)("h3",{id:"\u4ec0\u4e48\u662f\u5ba2\u6237"},"\u4ec0\u4e48\u662f\u5ba2\u6237"),(0,o.yg)("p",null,"\u6211\u4eec\u8ba4\u4e3a\u8fd9\u91cc\u7684\u5ba2\u6237\u662f\u7b80\u5355\u4f7f\u7528\u8bbe\u5907\u7684\u7528\u6237\uff0c\u4ed6\u4eec\u53ea\u9700\u8981\u7ba1\u7406\u51e0\u53f0\u6700\u591a\u51e0\u5341\u53f0\u8bbe\u5907\u3002"),(0,o.yg)("p",null,"\u4ed6\u4eec\u662f RAM \u7528\u6237\u7684\u4e00\u79cd\u7b80\u5355\u5b9e\u7528\u7684\u5212\u5206\uff0c\u53ea\u9700\u8981\u7ed9\u4ed6\u4eec\u5206\u4e00\u4e0b\u8bbe\u5907\u6743\u9650\u5373\u53ef\u3002"),(0,o.yg)("p",null,"\u8bbe\u5907\u6743\u9650\u5e94\u8be5\u5206\u4e24\u79cd\uff1a\u652f\u6301\u8bbe\u5907\u5206\u7ec4\u3001\u652f\u6301\u5355\u72ec\u8bbe\u5907\uff0c\u4e24\u79cd\u6743\u9650\u9009\u62e9\u4e00\u79cd\u3002"),(0,o.yg)("p",null,"\u5982\u679c\u9009\u62e9\u8bbe\u5907\u5206\u7ec4\uff0c\u540e\u7eed\u5f80\u8bbe\u5907\u5206\u7ec4\u91cc\u9762\u589e\u5220\u8bbe\u5907\uff0c\u8be5\u5ba2\u6237\u4f1a\u53d7\u5230\u5f71\u54cd\u3002"),(0,o.yg)("p",null,"\u5982\u679c\u9009\u62e9\u5355\u72ec\u8bbe\u5907\uff0c\u53ea\u6709\u8bbe\u5907\u5220\u9664\uff0c\u8be5\u5ba2\u6237\u8bbe\u5907\u6743\u9650\u624d\u4f1a\u53d7\u5230\u5f71\u54cd\u3002"),(0,o.yg)("h3",{id:"\u4f7f\u7528\u6d41\u7a0b"},"\u4f7f\u7528\u6d41\u7a0b"),(0,o.yg)("p",null,"GIF \u56fe"),(0,o.yg)("h3",{id:"\u6700\u4f73\u5b9e\u8df5"},"\u6700\u4f73\u5b9e\u8df5"),(0,o.yg)("p",null,"GIF \u56fe"),(0,o.yg)("h3",{id:"\u4f7f\u7528\u9650\u5236"},"\u4f7f\u7528\u9650\u5236"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"\u5ba2\u6237\u4e0d\u80fd\u767b\u5f55 PC \u63a7\u5236\u53f0\uff0c\u53ef\u4ee5\u4f7f\u7528\u5c0f\u7a0b\u5e8f\u3002")))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3180],{5680:(e,t,r)=>{r.d(t,{xA:()=>s,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var u=n.createContext({}),a=function(e){var t=n.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},s=function(e){var t=a(e.components);return n.createElement(u.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,l=e.originalType,u=e.parentName,s=i(e,["components","mdxType","originalType","parentName"]),p=a(r),y=o,f=p["".concat(u,".").concat(y)]||p[y]||d[y]||l;return r?n.createElement(f,c(c({ref:t},s),{},{components:r})):n.createElement(f,c({ref:t},s))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var l=r.length,c=new Array(l);c[0]=y;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i[p]="string"==typeof e?e:o,c[1]=i;for(var a=2;a{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>c,default:()=>d,frontMatter:()=>l,metadata:()=>i,toc:()=>a});var n=r(8168),o=(r(6540),r(5680));const l={sidebar_position:9},c="\u5ba2\u6237\u7ba1\u7406",i={unversionedId:"iotcloud/usercenter/customer",id:"iotcloud/usercenter/customer",title:"\u5ba2\u6237\u7ba1\u7406",description:"\u672c\u6587\u4e3a\u60a8\u4ecb\u7ecd \u5ba2\u6237 \u7684\u57fa\u672c\u6982\u5ff5\u3001\u4f7f\u7528\u6d41\u7a0b\u3001\u6700\u4f73\u5b9e\u8df5\u548c\u4f7f\u7528\u9650\u5236\u3002",source:"@site/docs/iotcloud/usercenter/customer.md",sourceDirName:"iotcloud/usercenter",slug:"/iotcloud/usercenter/customer",permalink:"/docs/iotcloud/usercenter/customer",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",sidebarPosition:9,frontMatter:{sidebar_position:9},sidebar:"iotCloudSidebar",previous:{title:"RAM \u7528\u6237",permalink:"/docs/iotcloud/usercenter/system-user"}},u={},a=[{value:"\u4ec0\u4e48\u662f\u5ba2\u6237",id:"\u4ec0\u4e48\u662f\u5ba2\u6237",level:3},{value:"\u4f7f\u7528\u6d41\u7a0b",id:"\u4f7f\u7528\u6d41\u7a0b",level:3},{value:"\u6700\u4f73\u5b9e\u8df5",id:"\u6700\u4f73\u5b9e\u8df5",level:3},{value:"\u4f7f\u7528\u9650\u5236",id:"\u4f7f\u7528\u9650\u5236",level:3}],s={toc:a},p="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(p,(0,n.A)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"\u5ba2\u6237\u7ba1\u7406"},"\u5ba2\u6237\u7ba1\u7406"),(0,o.yg)("p",null,"\u672c\u6587\u4e3a\u60a8\u4ecb\u7ecd \u5ba2\u6237 \u7684\u57fa\u672c\u6982\u5ff5\u3001\u4f7f\u7528\u6d41\u7a0b\u3001\u6700\u4f73\u5b9e\u8df5\u548c\u4f7f\u7528\u9650\u5236\u3002"),(0,o.yg)("h3",{id:"\u4ec0\u4e48\u662f\u5ba2\u6237"},"\u4ec0\u4e48\u662f\u5ba2\u6237"),(0,o.yg)("p",null,"\u6211\u4eec\u8ba4\u4e3a\u8fd9\u91cc\u7684\u5ba2\u6237\u662f\u7b80\u5355\u4f7f\u7528\u8bbe\u5907\u7684\u7528\u6237\uff0c\u4ed6\u4eec\u53ea\u9700\u8981\u7ba1\u7406\u51e0\u53f0\u6700\u591a\u51e0\u5341\u53f0\u8bbe\u5907\u3002"),(0,o.yg)("p",null,"\u4ed6\u4eec\u662f RAM \u7528\u6237\u7684\u4e00\u79cd\u7b80\u5355\u5b9e\u7528\u7684\u5212\u5206\uff0c\u53ea\u9700\u8981\u7ed9\u4ed6\u4eec\u5206\u4e00\u4e0b\u8bbe\u5907\u6743\u9650\u5373\u53ef\u3002"),(0,o.yg)("p",null,"\u8bbe\u5907\u6743\u9650\u5e94\u8be5\u5206\u4e24\u79cd\uff1a\u652f\u6301\u8bbe\u5907\u5206\u7ec4\u3001\u652f\u6301\u5355\u72ec\u8bbe\u5907\uff0c\u4e24\u79cd\u6743\u9650\u9009\u62e9\u4e00\u79cd\u3002"),(0,o.yg)("p",null,"\u5982\u679c\u9009\u62e9\u8bbe\u5907\u5206\u7ec4\uff0c\u540e\u7eed\u5f80\u8bbe\u5907\u5206\u7ec4\u91cc\u9762\u589e\u5220\u8bbe\u5907\uff0c\u8be5\u5ba2\u6237\u4f1a\u53d7\u5230\u5f71\u54cd\u3002"),(0,o.yg)("p",null,"\u5982\u679c\u9009\u62e9\u5355\u72ec\u8bbe\u5907\uff0c\u53ea\u6709\u8bbe\u5907\u5220\u9664\uff0c\u8be5\u5ba2\u6237\u8bbe\u5907\u6743\u9650\u624d\u4f1a\u53d7\u5230\u5f71\u54cd\u3002"),(0,o.yg)("h3",{id:"\u4f7f\u7528\u6d41\u7a0b"},"\u4f7f\u7528\u6d41\u7a0b"),(0,o.yg)("p",null,"GIF \u56fe"),(0,o.yg)("h3",{id:"\u6700\u4f73\u5b9e\u8df5"},"\u6700\u4f73\u5b9e\u8df5"),(0,o.yg)("p",null,"GIF \u56fe"),(0,o.yg)("h3",{id:"\u4f7f\u7528\u9650\u5236"},"\u4f7f\u7528\u9650\u5236"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"\u5ba2\u6237\u4e0d\u80fd\u767b\u5f55 PC \u63a7\u5236\u53f0\uff0c\u53ef\u4ee5\u4f7f\u7528\u5c0f\u7a0b\u5e8f\u3002")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1d6606cd.21759358.js b/assets/js/1d6606cd.b92e6581.js similarity index 99% rename from assets/js/1d6606cd.21759358.js rename to assets/js/1d6606cd.b92e6581.js index 64a867365..fe29d8c1b 100644 --- a/assets/js/1d6606cd.21759358.js +++ b/assets/js/1d6606cd.b92e6581.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2347],{5680:(e,t,n)=>{n.d(t,{xA:()=>y,yg:()=>d});var r=n(6540);function l(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(l[n]=e[n]);return l}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(l[n]=e[n])}return l}var p=r.createContext({}),o=function(e){var t=r.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},y=function(e){var t=o(e.components);return r.createElement(p.Provider,{value:t},e.children)},g="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},s=r.forwardRef((function(e,t){var n=e.components,l=e.mdxType,a=e.originalType,p=e.parentName,y=u(e,["components","mdxType","originalType","parentName"]),g=o(n),s=l,d=g["".concat(p,".").concat(s)]||g[s]||c[s]||a;return n?r.createElement(d,i(i({ref:t},y),{},{components:n})):r.createElement(d,i({ref:t},y))}));function d(e,t){var n=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var a=n.length,i=new Array(a);i[0]=s;var u={};for(var p in t)hasOwnProperty.call(t,p)&&(u[p]=t[p]);u.originalType=e,u[g]="string"==typeof e?e:l,i[1]=u;for(var o=2;o{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>c,frontMatter:()=>a,metadata:()=>u,toc:()=>o});var r=n(8168),l=(n(6540),n(5680));const a={},i=void 0,u={unversionedId:"study/think/\u67b6\u6784/\u8d1f\u8f7d\u5747\u8861",id:"study/think/\u67b6\u6784/\u8d1f\u8f7d\u5747\u8861",title:"\u8d1f\u8f7d\u5747\u8861",description:"DNS\u8d1f\u8f7d",source:"@site/docs/study/think/\u67b6\u6784/\u8d1f\u8f7d\u5747\u8861.md",sourceDirName:"study/think/\u67b6\u6784",slug:"/study/think/\u67b6\u6784/\u8d1f\u8f7d\u5747\u8861",permalink:"/docs/study/think/\u67b6\u6784/\u8d1f\u8f7d\u5747\u8861",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u67b6\u6784\u56fe\u793a\u4f8b",permalink:"/docs/study/think/\u67b6\u6784/\u67b6\u6784\u56fe\u793a\u4f8b"},next:{title:"\u9ad8\u6027\u80fd\u67b6\u6784\u6a21\u5f0f",permalink:"/docs/study/think/\u67b6\u6784/\u9ad8\u6027\u80fd\u67b6\u6784\u6a21\u5f0f"}},p={},o=[{value:"DNS\u8d1f\u8f7d",id:"dns\u8d1f\u8f7d",level:3},{value:"\u786c\u4ef6\u8d1f\u8f7d",id:"\u786c\u4ef6\u8d1f\u8f7d",level:3},{value:"\u8f6f\u4ef6\u8d1f\u8f7d",id:"\u8f6f\u4ef6\u8d1f\u8f7d",level:3},{value:"\u4f7f\u7528\u603b\u7ed3",id:"\u4f7f\u7528\u603b\u7ed3",level:3},{value:"\u7b97\u6cd5\u603b\u7ed3",id:"\u7b97\u6cd5\u603b\u7ed3",level:3}],y={toc:o},g="wrapper";function c(e){let{components:t,...a}=e;return(0,l.yg)(g,(0,r.A)({},y,a,{components:t,mdxType:"MDXLayout"}),(0,l.yg)("h3",{id:"dns\u8d1f\u8f7d"},"DNS\u8d1f\u8f7d"),(0,l.yg)("p",null,"DNS \u662f\u6700\u7b80\u5355\u4e5f\u662f\u6700\u5e38\u89c1\u7684\u8d1f\u8f7d\u5747\u8861\u65b9\u5f0f\uff0c\u4e00\u822c\u7528\u6765\u5b9e\u73b0\u5730\u7406\u7ea7\u522b\u7684\u5747\u8861\u3002\u4f8b\u5982\uff0c\u5317\u65b9\u7684\u7528\u6237\u8bbf\u95ee\u5317\u4eac\u7684\u673a\u623f\uff0c\u5357\u65b9\u7684\u7528\u6237\u8bbf\u95ee\u6df1\u5733\u7684\u673a\u623f\u3002DNS \u8d1f\u8f7d\u5747\u8861\u7684\u672c\u8d28\u662f DNS \u89e3\u6790\u540c\u4e00\u4e2a\u57df\u540d\u53ef\u4ee5\u8fd4\u56de\u4e0d\u540c\u7684 IP \u5730\u5740\u3002\u4f8b\u5982\uff0c\u540c\u6837\u662f ",(0,l.yg)("a",{parentName:"p",href:"http://www.baidu.com%EF%BC%8C%E5%8C%97%E6%96%B9%E7%94%A8%E6%88%B7%E8%A7%A3%E6%9E%90%E5%90%8E%E8%8E%B7%E5%8F%96%E7%9A%84%E5%9C%B0%E5%9D%80%E6%98%AF"},"www.baidu.com\uff0c\u5317\u65b9\u7528\u6237\u89e3\u6790\u540e\u83b7\u53d6\u7684\u5730\u5740\u662f")," 61.135.165.224\uff08\u8fd9\u662f\u5317\u4eac\u673a\u623f\u7684 IP\uff09\uff0c\u5357\u65b9\u7528\u6237\u89e3\u6790\u540e\u83b7\u53d6\u7684\u5730\u5740\u662f 14.215.177.38\uff08\u8fd9\u662f\u6df1\u5733\u673a\u623f\u7684 IP\uff09\u3002"),(0,l.yg)("p",null,"DNS \u8d1f\u8f7d\u5747\u8861\u5b9e\u73b0\u7b80\u5355\u3001\u6210\u672c\u4f4e\uff0c\u4f46\u4e5f\u5b58\u5728\u7c92\u5ea6\u592a\u7c97\u3001\u8d1f\u8f7d\u5747\u8861\u7b97\u6cd5\u5c11\u7b49\u7f3a\u70b9\u3002\u4ed4\u7ec6\u5206\u6790\u4e00\u4e0b\u4f18\u7f3a\u70b9\uff0c\u5176\u4f18\u70b9\u6709\uff1a"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"\u7b80\u5355\u3001\u6210\u672c\u4f4e\uff1a\u8d1f\u8f7d\u5747\u8861\u5de5\u4f5c\u4ea4\u7ed9 DNS \u670d\u52a1\u5668\u5904\u7406\uff0c\u65e0\u987b\u81ea\u5df1\u5f00\u53d1\u6216\u8005\u7ef4\u62a4\u8d1f\u8f7d\u5747\u8861\u8bbe\u5907\u3002"),(0,l.yg)("li",{parentName:"ul"},"\u5c31\u8fd1\u8bbf\u95ee\uff0c\u63d0\u5347\u8bbf\u95ee\u901f\u5ea6\uff1aDNS \u89e3\u6790\u65f6\u53ef\u4ee5\u6839\u636e\u8bf7\u6c42\u6765\u6e90 IP\uff0c\u89e3\u6790\u6210\u8ddd\u79bb\u7528\u6237\u6700\u8fd1\u7684\u670d\u52a1\u5668\u5730\u5740\uff0c\u53ef\u4ee5\u52a0\u5feb\u8bbf\u95ee\u901f\u5ea6\uff0c\u6539\u5584\u6027\u80fd\u3002")),(0,l.yg)("p",null,"\u7f3a\u70b9\u6709\uff1a"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"\u66f4\u65b0\u4e0d\u53ca\u65f6\uff1aDNS \u7f13\u5b58\u7684\u65f6\u95f4\u6bd4\u8f83\u957f\uff0c\u4fee\u6539 DNS \u914d\u7f6e\u540e\uff0c\u7531\u4e8e\u7f13\u5b58\u7684\u539f\u56e0\uff0c\u8fd8\u662f\u6709\u5f88\u591a\u7528\u6237\u4f1a\u7ee7\u7eed\u8bbf\u95ee\u4fee\u6539\u524d\u7684 IP\uff0c\u8fd9\u6837\u7684\u8bbf\u95ee\u4f1a\u5931\u8d25\uff0c\u8fbe\u4e0d\u5230\u8d1f\u8f7d\u5747\u8861\u7684\u76ee\u7684\uff0c\u5e76\u4e14\u4e5f\u5f71\u54cd\u7528\u6237\u6b63\u5e38\u4f7f\u7528\u4e1a\u52a1\u3002"),(0,l.yg)("li",{parentName:"ul"},"\u6269\u5c55\u6027\u5dee\uff1aDNS \u8d1f\u8f7d\u5747\u8861\u7684\u63a7\u5236\u6743\u5728\u57df\u540d\u5546\u90a3\u91cc\uff0c\u65e0\u6cd5\u6839\u636e\u4e1a\u52a1\u7279\u70b9\u9488\u5bf9\u5176\u505a\u66f4\u591a\u7684\u5b9a\u5236\u5316\u529f\u80fd\u548c\u6269\u5c55\u7279\u6027\u3002"),(0,l.yg)("li",{parentName:"ul"},"\u5206\u914d\u7b56\u7565\u6bd4\u8f83\u7b80\u5355\uff1aDNS \u8d1f\u8f7d\u5747\u8861\u652f\u6301\u7684\u7b97\u6cd5\u5c11\uff1b\u4e0d\u80fd\u533a\u5206\u670d\u52a1\u5668\u7684\u5dee\u5f02\uff08\u4e0d\u80fd\u6839\u636e\u7cfb\u7edf\u4e0e\u670d\u52a1\u7684\u72b6\u6001\u6765\u5224\u65ad\u8d1f\u8f7d\uff09\uff1b\u4e5f\u65e0\u6cd5\u611f\u77e5\u540e\u7aef\u670d\u52a1\u5668\u7684\u72b6\u6001\u3002")),(0,l.yg)("p",null,"\u9488\u5bf9 DNS \u8d1f\u8f7d\u5747\u8861\u7684\u4e00\u4e9b\u7f3a\u70b9\uff0c\u5bf9\u4e8e\u65f6\u5ef6\u548c\u6545\u969c\u654f\u611f\u7684\u4e1a\u52a1\uff0c\u6709\u4e00\u4e9b\u516c\u53f8\u81ea\u5df1\u5b9e\u73b0\u4e86 HTTP-DNS \u7684\u529f\u80fd\uff0c\u5373\u4f7f\u7528 HTTP \u534f\u8bae\u5b9e\u73b0\u4e00\u4e2a\u79c1\u6709\u7684 DNS \u7cfb\u7edf\u3002\u8fd9\u6837\u7684\u65b9\u6848\u548c\u901a\u7528\u7684 DNS \u4f18\u7f3a\u70b9\u6b63\u597d\u76f8\u53cd\u3002"),(0,l.yg)("h3",{id:"\u786c\u4ef6\u8d1f\u8f7d"},"\u786c\u4ef6\u8d1f\u8f7d"),(0,l.yg)("p",null,"\u786c\u4ef6\u8d1f\u8f7d\u5747\u8861\u662f\u901a\u8fc7\u5355\u72ec\u7684\u786c\u4ef6\u8bbe\u5907\u6765\u5b9e\u73b0\u8d1f\u8f7d\u5747\u8861\u529f\u80fd\uff0c\u8fd9\u7c7b\u8bbe\u5907\u548c\u8def\u7531\u5668\u3001\u4ea4\u6362\u673a\u7c7b\u4f3c\uff0c\u53ef\u4ee5\u7406\u89e3\u4e3a\u4e00\u4e2a\u7528\u4e8e\u8d1f\u8f7d\u5747\u8861\u7684\u57fa\u7840\u7f51\u7edc\u8bbe\u5907\u3002\u76ee\u524d\u4e1a\u754c\u5178\u578b\u7684\u786c\u4ef6\u8d1f\u8f7d\u5747\u8861\u8bbe\u5907\u6709\u4e24\u6b3e\uff1aF5 \u548c A10\u3002\u8fd9\u7c7b\u8bbe\u5907\u6027\u80fd\u5f3a\u52b2\u3001\u529f\u80fd\u5f3a\u5927\uff0c\u4f46\u4ef7\u683c\u90fd\u4e0d\u4fbf\u5b9c\uff0c\u4e00\u822c\u53ea\u6709\u201c\u571f\u8c6a\u201d\u516c\u53f8\u624d\u4f1a\u8003\u8651\u4f7f\u7528\u6b64\u7c7b\u8bbe\u5907\u3002\u666e\u901a\u4e1a\u52a1\u91cf\u7ea7\u7684\u516c\u53f8\u4e00\u662f\u8d1f\u62c5\u4e0d\u8d77\uff0c\u4e8c\u662f\u4e1a\u52a1\u91cf\u6ca1\u90a3\u4e48\u5927\uff0c\u7528\u8fd9\u4e9b\u8bbe\u5907\u4e5f\u662f\u6d6a\u8d39\u3002"),(0,l.yg)("p",null,"\u786c\u4ef6\u8d1f\u8f7d\u5747\u8861\u7684\u4f18\u70b9\u662f\uff1a"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"\u529f\u80fd\u5f3a\u5927\uff1a\u5168\u9762\u652f\u6301\u5404\u5c42\u7ea7\u7684\u8d1f\u8f7d\u5747\u8861\uff0c\u652f\u6301\u5168\u9762\u7684\u8d1f\u8f7d\u5747\u8861\u7b97\u6cd5\uff0c\u652f\u6301\u5168\u5c40\u8d1f\u8f7d\u5747\u8861\u3002"),(0,l.yg)("li",{parentName:"ul"},"\u6027\u80fd\u5f3a\u5927\uff1a\u5bf9\u6bd4\u4e00\u4e0b\uff0c\u8f6f\u4ef6\u8d1f\u8f7d\u5747\u8861\u652f\u6301\u5230 10 \u4e07\u7ea7\u5e76\u53d1\u5df2\u7ecf\u5f88\u5389\u5bb3\u4e86\uff0c\u786c\u4ef6\u8d1f\u8f7d\u5747\u8861\u53ef\u4ee5\u652f\u6301 100 \u4e07\u4ee5\u4e0a\u7684\u5e76\u53d1\u3002"),(0,l.yg)("li",{parentName:"ul"},"\u7a33\u5b9a\u6027\u9ad8\uff1a\u5546\u7528\u786c\u4ef6\u8d1f\u8f7d\u5747\u8861\uff0c\u7ecf\u8fc7\u4e86\u826f\u597d\u7684\u4e25\u683c\u6d4b\u8bd5\uff0c\u7ecf\u8fc7\u5927\u89c4\u6a21\u4f7f\u7528\uff0c\u7a33\u5b9a\u6027\u9ad8\u3002"),(0,l.yg)("li",{parentName:"ul"},"\u652f\u6301\u5b89\u5168\u9632\u62a4\uff1a\u786c\u4ef6\u5747\u8861\u8bbe\u5907\u9664\u5177\u5907\u8d1f\u8f7d\u5747\u8861\u529f\u80fd\u5916\uff0c\u8fd8\u5177\u5907\u9632\u706b\u5899\u3001\u9632 DDoS \u653b\u51fb\u7b49\u5b89\u5168\u529f\u80fd\u3002")),(0,l.yg)("p",null,"\u786c\u4ef6\u8d1f\u8f7d\u5747\u8861\u7684\u7f3a\u70b9\u662f\uff1a"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"\u4ef7\u683c\u6602\u8d35\uff1a\u6700\u666e\u901a\u7684\u4e00\u53f0 F5 \u5c31\u662f\u4e00\u53f0\u201c\u9a6c 6\u201d\uff0c\u597d\u4e00\u70b9\u7684\u5c31\u662f\u201cQ7\u201d\u4e86\u3002"),(0,l.yg)("li",{parentName:"ul"},"\u6269\u5c55\u80fd\u529b\u5dee\uff1a\u786c\u4ef6\u8bbe\u5907\uff0c\u53ef\u4ee5\u6839\u636e\u4e1a\u52a1\u8fdb\u884c\u914d\u7f6e\uff0c\u4f46\u65e0\u6cd5\u8fdb\u884c\u6269\u5c55\u548c\u5b9a\u5236\u3002")),(0,l.yg)("h4",{id:""}),(0,l.yg)("h3",{id:"\u8f6f\u4ef6\u8d1f\u8f7d"},"\u8f6f\u4ef6\u8d1f\u8f7d"),(0,l.yg)("p",null,"\u8f6f\u4ef6\u8d1f\u8f7d\u5747\u8861\u901a\u8fc7\u8d1f\u8f7d\u5747\u8861\u8f6f\u4ef6\u6765\u5b9e\u73b0\u8d1f\u8f7d\u5747\u8861\u529f\u80fd\uff0c\u5e38\u89c1\u7684\u6709 Nginx \u548c LVS\uff0c\u5176\u4e2d Nginx \u662f\u8f6f\u4ef6\u7684 7 \u5c42\u8d1f\u8f7d\u5747\u8861\uff0cLVS \u662f Linux \u5185\u6838\u7684 4 \u5c42\u8d1f\u8f7d\u5747\u8861\u30024 \u5c42\u548c 7 \u5c42\u7684\u533a\u522b\u5c31\u5728\u4e8e\u534f\u8bae\u548c\u7075\u6d3b\u6027\uff0cNginx \u652f\u6301 HTTP\u3001E-mail \u534f\u8bae\uff1b\u800c LVS \u662f 4 \u5c42\u8d1f\u8f7d\u5747\u8861\uff0c\u548c\u534f\u8bae\u65e0\u5173\uff0c\u51e0\u4e4e\u6240\u6709\u5e94\u7528\u90fd\u53ef\u4ee5\u505a\uff0c\u4f8b\u5982\uff0c\u804a\u5929\u3001\u6570\u636e\u5e93\u7b49\u3002"),(0,l.yg)("p",null,"\u8f6f\u4ef6\u548c\u786c\u4ef6\u7684\u6700\u4e3b\u8981\u533a\u522b\u5c31\u5728\u4e8e\u6027\u80fd\uff0c\u786c\u4ef6\u8d1f\u8f7d\u5747\u8861\u6027\u80fd\u8fdc\u8fdc\u9ad8\u4e8e\u8f6f\u4ef6\u8d1f\u8f7d\u5747\u8861\u6027\u80fd\u3002Nginx \u7684\u6027\u80fd\u662f\u4e07\u7ea7\uff0c\u4e00\u822c\u7684 Linux \u670d\u52a1\u5668\u4e0a\u88c5\u4e00\u4e2a Nginx \u5927\u6982\u80fd\u5230 5 \u4e07 / \u79d2\uff1bLVS \u7684\u6027\u80fd\u662f\u5341\u4e07\u7ea7\uff0c\u636e\u8bf4\u53ef\u8fbe\u5230 80 \u4e07 / \u79d2\uff1b\u800c F5 \u6027\u80fd\u662f\u767e\u4e07\u7ea7\uff0c\u4ece 200 \u4e07 / \u79d2\u5230 800 \u4e07 / \u79d2\u90fd\u6709\uff08\u6570\u636e\u6765\u6e90\u7f51\u7edc\uff0c\u4ec5\u4f9b\u53c2\u8003\uff0c\u5982\u9700\u91c7\u7528\u8bf7\u6839\u636e\u5b9e\u9645\u4e1a\u52a1\u573a\u666f\u8fdb\u884c\u6027\u80fd\u6d4b\u8bd5\uff09\u3002\u5f53\u7136\uff0c\u8f6f\u4ef6\u8d1f\u8f7d\u5747\u8861\u7684\u6700\u5927\u4f18\u52bf\u662f\u4fbf\u5b9c\uff0c\u4e00\u53f0\u666e\u901a\u7684 Linux \u670d\u52a1\u5668\u6279\u53d1\u4ef7\u5927\u6982\u5c31\u662f 1 \u4e07\u5143\u5de6\u53f3\uff0c\u76f8\u6bd4 F5 \u7684\u4ef7\u683c\uff0c\u90a3\u5c31\u662f\u81ea\u884c\u8f66\u548c\u5b9d\u9a6c\u7684\u533a\u522b\u4e86\u3002"),(0,l.yg)("p",null,"\u8f6f\u4ef6\u8d1f\u8f7d\u5747\u8861\u7684\u4f18\u70b9\uff1a"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"\u7b80\u5355\uff1a\u65e0\u8bba\u662f\u90e8\u7f72\u8fd8\u662f\u7ef4\u62a4\u90fd\u6bd4\u8f83\u7b80\u5355\u3002"),(0,l.yg)("li",{parentName:"ul"},"\u4fbf\u5b9c\uff1a\u53ea\u8981\u4e70\u4e2a Linux \u670d\u52a1\u5668\uff0c\u88c5\u4e0a\u8f6f\u4ef6\u5373\u53ef\u3002"),(0,l.yg)("li",{parentName:"ul"},"\u7075\u6d3b\uff1a4 \u5c42\u548c 7 \u5c42\u8d1f\u8f7d\u5747\u8861\u53ef\u4ee5\u6839\u636e\u4e1a\u52a1\u8fdb\u884c\u9009\u62e9\uff1b\u4e5f\u53ef\u4ee5\u6839\u636e\u4e1a\u52a1\u8fdb\u884c\u6bd4\u8f83\u65b9\u4fbf\u7684\u6269\u5c55\uff0c\u4f8b\u5982\uff0c\u53ef\u4ee5\u901a\u8fc7 Nginx \u7684\u63d2\u4ef6\u6765\u5b9e\u73b0\u4e1a\u52a1\u7684\u5b9a\u5236\u5316\u529f\u80fd\u3002")),(0,l.yg)("p",null,"\u5176\u5b9e\u4e0b\u9762\u7684\u7f3a\u70b9\u90fd\u662f\u548c\u786c\u4ef6\u8d1f\u8f7d\u5747\u8861\u76f8\u6bd4\u7684\uff0c\u5e76\u4e0d\u662f\u8bf4\u8f6f\u4ef6\u8d1f\u8f7d\u5747\u8861\u6ca1\u6cd5\u7528\u3002"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"\u6027\u80fd\u4e00\u822c\uff1a\u4e00\u4e2a Nginx \u5927\u7ea6\u80fd\u652f\u6491 5 \u4e07\u5e76\u53d1\u3002"),(0,l.yg)("li",{parentName:"ul"},"\u529f\u80fd\u6ca1\u6709\u786c\u4ef6\u8d1f\u8f7d\u5747\u8861\u90a3\u4e48\u5f3a\u5927\u3002"),(0,l.yg)("li",{parentName:"ul"},"\u4e00\u822c\u4e0d\u5177\u5907\u9632\u706b\u5899\u548c\u9632 DDoS \u653b\u51fb\u7b49\u5b89\u5168\u529f\u80fd\u3002")),(0,l.yg)("h3",{id:"\u4f7f\u7528\u603b\u7ed3"},"\u4f7f\u7528\u603b\u7ed3"),(0,l.yg)("p",null,"\u524d\u9762\u6211\u4eec\u4ecb\u7ecd\u4e86 3 \u79cd\u5e38\u89c1\u7684\u8d1f\u8f7d\u5747\u8861\u673a\u5236\uff1aDNS \u8d1f\u8f7d\u5747\u8861\u3001\u786c\u4ef6\u8d1f\u8f7d\u5747\u8861\u3001\u8f6f\u4ef6\u8d1f\u8f7d\u5747\u8861\uff0c\u6bcf\u79cd\u65b9\u5f0f\u90fd\u6709\u4e00\u4e9b\u4f18\u7f3a\u70b9\uff0c\u4f46\u5e76\u4e0d\u610f\u5473\u7740\u5728\u5b9e\u9645\u5e94\u7528\u4e2d\u53ea\u80fd\u57fa\u4e8e\u5b83\u4eec\u7684\u4f18\u7f3a\u70b9\u8fdb\u884c\u975e\u6b64\u5373\u5f7c\u7684\u9009\u62e9\uff0c\u53cd\u800c\u662f\u57fa\u4e8e\u5b83\u4eec\u7684\u4f18\u7f3a\u70b9\u8fdb\u884c\u7ec4\u5408\u4f7f\u7528\u3002\u5177\u4f53\u6765\u8bf4\uff0c\u7ec4\u5408\u7684\u57fa\u672c\u539f\u5219\u4e3a\uff1aDNS \u8d1f\u8f7d\u5747\u8861\u7528\u4e8e\u5b9e\u73b0\u5730\u7406\u7ea7\u522b\u7684\u8d1f\u8f7d\u5747\u8861\uff1b\u786c\u4ef6\u8d1f\u8f7d\u5747\u8861\u7528\u4e8e\u5b9e\u73b0\u96c6\u7fa4\u7ea7\u522b\u7684\u8d1f\u8f7d\u5747\u8861\uff1b\u8f6f\u4ef6\u8d1f\u8f7d\u5747\u8861\u7528\u4e8e\u5b9e\u73b0\u673a\u5668\u7ea7\u522b\u7684\u8d1f\u8f7d\u5747\u8861\u3002"),(0,l.yg)("p",null,(0,l.yg)("img",{alt:"image.png",src:n(4993).A,width:"750",height:"500"})),(0,l.yg)("h3",{id:"-1"}),(0,l.yg)("h3",{id:"-2"}),(0,l.yg)("h3",{id:"\u7b97\u6cd5\u603b\u7ed3"},"\u7b97\u6cd5\u603b\u7ed3"),(0,l.yg)("p",null,"\u8d1f\u8f7d\u5747\u8861\u7b97\u6cd5\u6570\u91cf\u8f83\u591a\uff0c\u800c\u4e14\u53ef\u4ee5\u6839\u636e\u4e00\u4e9b\u4e1a\u52a1\u7279\u6027\u8fdb\u884c\u5b9a\u5236\u5f00\u53d1\uff0c\u629b\u5f00\u7ec6\u8282\u4e0a\u7684\u5dee\u5f02\uff0c\u6839\u636e\u7b97\u6cd5\u671f\u671b\u8fbe\u5230\u7684\u76ee\u7684\uff0c\u5927\u4f53\u4e0a\u53ef\u4ee5\u5206\u4e3a\u4e0b\u9762\u51e0\u7c7b\u3002"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"\u4efb\u52a1\u5e73\u5206\u7c7b\uff1a\u8d1f\u8f7d\u5747\u8861\u7cfb\u7edf\u5c06\u6536\u5230\u7684\u4efb\u52a1\u5e73\u5747\u5206\u914d\u7ed9\u670d\u52a1\u5668\u8fdb\u884c\u5904\u7406\uff0c\u8fd9\u91cc\u7684\u201c\u5e73\u5747\u201d\u53ef\u4ee5\u662f\u7edd\u5bf9\u6570\u91cf\u7684\u5e73\u5747\uff0c\u4e5f\u53ef\u4ee5\u662f\u6bd4\u4f8b\u6216\u8005\u6743\u91cd\u4e0a\u7684\u5e73\u5747\u3002"),(0,l.yg)("li",{parentName:"ul"},"\u8d1f\u8f7d\u5747\u8861\u7c7b\uff1a\u8d1f\u8f7d\u5747\u8861\u7cfb\u7edf\u6839\u636e\u670d\u52a1\u5668\u7684\u8d1f\u8f7d\u6765\u8fdb\u884c\u5206\u914d\uff0c\u8fd9\u91cc\u7684\u8d1f\u8f7d\u5e76\u4e0d\u4e00\u5b9a\u662f\u901a\u5e38\u610f\u4e49\u4e0a\u6211\u4eec\u8bf4\u7684\u201cCPU \u8d1f\u8f7d\u201d\uff0c\u800c\u662f\u7cfb\u7edf\u5f53\u524d\u7684\u538b\u529b\uff0c\u53ef\u4ee5\u7528 CPU \u8d1f\u8f7d\u6765\u8861\u91cf\uff0c\u4e5f\u53ef\u4ee5\u7528\u8fde\u63a5\u6570\u3001I/O \u4f7f\u7528\u7387\u3001\u7f51\u5361\u541e\u5410\u91cf\u7b49\u6765\u8861\u91cf\u7cfb\u7edf\u7684\u538b\u529b\u3002"),(0,l.yg)("li",{parentName:"ul"},"\u6027\u80fd\u6700\u4f18\u7c7b\uff1a\u8d1f\u8f7d\u5747\u8861\u7cfb\u7edf\u6839\u636e\u670d\u52a1\u5668\u7684\u54cd\u5e94\u65f6\u95f4\u6765\u8fdb\u884c\u4efb\u52a1\u5206\u914d\uff0c\u4f18\u5148\u5c06\u65b0\u4efb\u52a1\u5206\u914d\u7ed9\u54cd\u5e94\u6700\u5feb\u7684\u670d\u52a1\u5668\u3002"),(0,l.yg)("li",{parentName:"ul"},"Hash \u7c7b\uff1a\u8d1f\u8f7d\u5747\u8861\u7cfb\u7edf\u6839\u636e\u4efb\u52a1\u4e2d\u7684\u67d0\u4e9b\u5173\u952e\u4fe1\u606f\u8fdb\u884c Hash \u8fd0\u7b97\uff0c\u5c06\u76f8\u540c Hash \u503c\u7684\u8bf7\u6c42\u5206\u914d\u5230\u540c\u4e00\u53f0\u670d\u52a1\u5668\u4e0a\u3002\u5e38\u89c1\u7684\u6709\u6e90\u5730\u5740 Hash\u3001\u76ee\u6807\u5730\u5740 Hash\u3001session id hash\u3001\u7528\u6237 ID Hash \u7b49\u3002")))}c.isMDXComponent=!0},4993:(e,t,n)=>{n.d(t,{A:()=>r});const r=n.p+"assets/images/4-1110b0b730ae76dd61a1d7d14c8523cb.png"}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2347],{5680:(e,t,n)=>{n.d(t,{xA:()=>y,yg:()=>d});var r=n(6540);function l(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(l[n]=e[n]);return l}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(l[n]=e[n])}return l}var p=r.createContext({}),o=function(e){var t=r.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},y=function(e){var t=o(e.components);return r.createElement(p.Provider,{value:t},e.children)},g="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},s=r.forwardRef((function(e,t){var n=e.components,l=e.mdxType,a=e.originalType,p=e.parentName,y=u(e,["components","mdxType","originalType","parentName"]),g=o(n),s=l,d=g["".concat(p,".").concat(s)]||g[s]||c[s]||a;return n?r.createElement(d,i(i({ref:t},y),{},{components:n})):r.createElement(d,i({ref:t},y))}));function d(e,t){var n=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var a=n.length,i=new Array(a);i[0]=s;var u={};for(var p in t)hasOwnProperty.call(t,p)&&(u[p]=t[p]);u.originalType=e,u[g]="string"==typeof e?e:l,i[1]=u;for(var o=2;o{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>c,frontMatter:()=>a,metadata:()=>u,toc:()=>o});var r=n(8168),l=(n(6540),n(5680));const a={},i=void 0,u={unversionedId:"study/think/\u67b6\u6784/\u8d1f\u8f7d\u5747\u8861",id:"study/think/\u67b6\u6784/\u8d1f\u8f7d\u5747\u8861",title:"\u8d1f\u8f7d\u5747\u8861",description:"DNS\u8d1f\u8f7d",source:"@site/docs/study/think/\u67b6\u6784/\u8d1f\u8f7d\u5747\u8861.md",sourceDirName:"study/think/\u67b6\u6784",slug:"/study/think/\u67b6\u6784/\u8d1f\u8f7d\u5747\u8861",permalink:"/docs/study/think/\u67b6\u6784/\u8d1f\u8f7d\u5747\u8861",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u67b6\u6784\u56fe\u793a\u4f8b",permalink:"/docs/study/think/\u67b6\u6784/\u67b6\u6784\u56fe\u793a\u4f8b"},next:{title:"\u9ad8\u6027\u80fd\u67b6\u6784\u6a21\u5f0f",permalink:"/docs/study/think/\u67b6\u6784/\u9ad8\u6027\u80fd\u67b6\u6784\u6a21\u5f0f"}},p={},o=[{value:"DNS\u8d1f\u8f7d",id:"dns\u8d1f\u8f7d",level:3},{value:"\u786c\u4ef6\u8d1f\u8f7d",id:"\u786c\u4ef6\u8d1f\u8f7d",level:3},{value:"\u8f6f\u4ef6\u8d1f\u8f7d",id:"\u8f6f\u4ef6\u8d1f\u8f7d",level:3},{value:"\u4f7f\u7528\u603b\u7ed3",id:"\u4f7f\u7528\u603b\u7ed3",level:3},{value:"\u7b97\u6cd5\u603b\u7ed3",id:"\u7b97\u6cd5\u603b\u7ed3",level:3}],y={toc:o},g="wrapper";function c(e){let{components:t,...a}=e;return(0,l.yg)(g,(0,r.A)({},y,a,{components:t,mdxType:"MDXLayout"}),(0,l.yg)("h3",{id:"dns\u8d1f\u8f7d"},"DNS\u8d1f\u8f7d"),(0,l.yg)("p",null,"DNS \u662f\u6700\u7b80\u5355\u4e5f\u662f\u6700\u5e38\u89c1\u7684\u8d1f\u8f7d\u5747\u8861\u65b9\u5f0f\uff0c\u4e00\u822c\u7528\u6765\u5b9e\u73b0\u5730\u7406\u7ea7\u522b\u7684\u5747\u8861\u3002\u4f8b\u5982\uff0c\u5317\u65b9\u7684\u7528\u6237\u8bbf\u95ee\u5317\u4eac\u7684\u673a\u623f\uff0c\u5357\u65b9\u7684\u7528\u6237\u8bbf\u95ee\u6df1\u5733\u7684\u673a\u623f\u3002DNS \u8d1f\u8f7d\u5747\u8861\u7684\u672c\u8d28\u662f DNS \u89e3\u6790\u540c\u4e00\u4e2a\u57df\u540d\u53ef\u4ee5\u8fd4\u56de\u4e0d\u540c\u7684 IP \u5730\u5740\u3002\u4f8b\u5982\uff0c\u540c\u6837\u662f ",(0,l.yg)("a",{parentName:"p",href:"http://www.baidu.com%EF%BC%8C%E5%8C%97%E6%96%B9%E7%94%A8%E6%88%B7%E8%A7%A3%E6%9E%90%E5%90%8E%E8%8E%B7%E5%8F%96%E7%9A%84%E5%9C%B0%E5%9D%80%E6%98%AF"},"www.baidu.com\uff0c\u5317\u65b9\u7528\u6237\u89e3\u6790\u540e\u83b7\u53d6\u7684\u5730\u5740\u662f")," 61.135.165.224\uff08\u8fd9\u662f\u5317\u4eac\u673a\u623f\u7684 IP\uff09\uff0c\u5357\u65b9\u7528\u6237\u89e3\u6790\u540e\u83b7\u53d6\u7684\u5730\u5740\u662f 14.215.177.38\uff08\u8fd9\u662f\u6df1\u5733\u673a\u623f\u7684 IP\uff09\u3002"),(0,l.yg)("p",null,"DNS \u8d1f\u8f7d\u5747\u8861\u5b9e\u73b0\u7b80\u5355\u3001\u6210\u672c\u4f4e\uff0c\u4f46\u4e5f\u5b58\u5728\u7c92\u5ea6\u592a\u7c97\u3001\u8d1f\u8f7d\u5747\u8861\u7b97\u6cd5\u5c11\u7b49\u7f3a\u70b9\u3002\u4ed4\u7ec6\u5206\u6790\u4e00\u4e0b\u4f18\u7f3a\u70b9\uff0c\u5176\u4f18\u70b9\u6709\uff1a"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"\u7b80\u5355\u3001\u6210\u672c\u4f4e\uff1a\u8d1f\u8f7d\u5747\u8861\u5de5\u4f5c\u4ea4\u7ed9 DNS \u670d\u52a1\u5668\u5904\u7406\uff0c\u65e0\u987b\u81ea\u5df1\u5f00\u53d1\u6216\u8005\u7ef4\u62a4\u8d1f\u8f7d\u5747\u8861\u8bbe\u5907\u3002"),(0,l.yg)("li",{parentName:"ul"},"\u5c31\u8fd1\u8bbf\u95ee\uff0c\u63d0\u5347\u8bbf\u95ee\u901f\u5ea6\uff1aDNS \u89e3\u6790\u65f6\u53ef\u4ee5\u6839\u636e\u8bf7\u6c42\u6765\u6e90 IP\uff0c\u89e3\u6790\u6210\u8ddd\u79bb\u7528\u6237\u6700\u8fd1\u7684\u670d\u52a1\u5668\u5730\u5740\uff0c\u53ef\u4ee5\u52a0\u5feb\u8bbf\u95ee\u901f\u5ea6\uff0c\u6539\u5584\u6027\u80fd\u3002")),(0,l.yg)("p",null,"\u7f3a\u70b9\u6709\uff1a"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"\u66f4\u65b0\u4e0d\u53ca\u65f6\uff1aDNS \u7f13\u5b58\u7684\u65f6\u95f4\u6bd4\u8f83\u957f\uff0c\u4fee\u6539 DNS \u914d\u7f6e\u540e\uff0c\u7531\u4e8e\u7f13\u5b58\u7684\u539f\u56e0\uff0c\u8fd8\u662f\u6709\u5f88\u591a\u7528\u6237\u4f1a\u7ee7\u7eed\u8bbf\u95ee\u4fee\u6539\u524d\u7684 IP\uff0c\u8fd9\u6837\u7684\u8bbf\u95ee\u4f1a\u5931\u8d25\uff0c\u8fbe\u4e0d\u5230\u8d1f\u8f7d\u5747\u8861\u7684\u76ee\u7684\uff0c\u5e76\u4e14\u4e5f\u5f71\u54cd\u7528\u6237\u6b63\u5e38\u4f7f\u7528\u4e1a\u52a1\u3002"),(0,l.yg)("li",{parentName:"ul"},"\u6269\u5c55\u6027\u5dee\uff1aDNS \u8d1f\u8f7d\u5747\u8861\u7684\u63a7\u5236\u6743\u5728\u57df\u540d\u5546\u90a3\u91cc\uff0c\u65e0\u6cd5\u6839\u636e\u4e1a\u52a1\u7279\u70b9\u9488\u5bf9\u5176\u505a\u66f4\u591a\u7684\u5b9a\u5236\u5316\u529f\u80fd\u548c\u6269\u5c55\u7279\u6027\u3002"),(0,l.yg)("li",{parentName:"ul"},"\u5206\u914d\u7b56\u7565\u6bd4\u8f83\u7b80\u5355\uff1aDNS \u8d1f\u8f7d\u5747\u8861\u652f\u6301\u7684\u7b97\u6cd5\u5c11\uff1b\u4e0d\u80fd\u533a\u5206\u670d\u52a1\u5668\u7684\u5dee\u5f02\uff08\u4e0d\u80fd\u6839\u636e\u7cfb\u7edf\u4e0e\u670d\u52a1\u7684\u72b6\u6001\u6765\u5224\u65ad\u8d1f\u8f7d\uff09\uff1b\u4e5f\u65e0\u6cd5\u611f\u77e5\u540e\u7aef\u670d\u52a1\u5668\u7684\u72b6\u6001\u3002")),(0,l.yg)("p",null,"\u9488\u5bf9 DNS \u8d1f\u8f7d\u5747\u8861\u7684\u4e00\u4e9b\u7f3a\u70b9\uff0c\u5bf9\u4e8e\u65f6\u5ef6\u548c\u6545\u969c\u654f\u611f\u7684\u4e1a\u52a1\uff0c\u6709\u4e00\u4e9b\u516c\u53f8\u81ea\u5df1\u5b9e\u73b0\u4e86 HTTP-DNS \u7684\u529f\u80fd\uff0c\u5373\u4f7f\u7528 HTTP \u534f\u8bae\u5b9e\u73b0\u4e00\u4e2a\u79c1\u6709\u7684 DNS \u7cfb\u7edf\u3002\u8fd9\u6837\u7684\u65b9\u6848\u548c\u901a\u7528\u7684 DNS \u4f18\u7f3a\u70b9\u6b63\u597d\u76f8\u53cd\u3002"),(0,l.yg)("h3",{id:"\u786c\u4ef6\u8d1f\u8f7d"},"\u786c\u4ef6\u8d1f\u8f7d"),(0,l.yg)("p",null,"\u786c\u4ef6\u8d1f\u8f7d\u5747\u8861\u662f\u901a\u8fc7\u5355\u72ec\u7684\u786c\u4ef6\u8bbe\u5907\u6765\u5b9e\u73b0\u8d1f\u8f7d\u5747\u8861\u529f\u80fd\uff0c\u8fd9\u7c7b\u8bbe\u5907\u548c\u8def\u7531\u5668\u3001\u4ea4\u6362\u673a\u7c7b\u4f3c\uff0c\u53ef\u4ee5\u7406\u89e3\u4e3a\u4e00\u4e2a\u7528\u4e8e\u8d1f\u8f7d\u5747\u8861\u7684\u57fa\u7840\u7f51\u7edc\u8bbe\u5907\u3002\u76ee\u524d\u4e1a\u754c\u5178\u578b\u7684\u786c\u4ef6\u8d1f\u8f7d\u5747\u8861\u8bbe\u5907\u6709\u4e24\u6b3e\uff1aF5 \u548c A10\u3002\u8fd9\u7c7b\u8bbe\u5907\u6027\u80fd\u5f3a\u52b2\u3001\u529f\u80fd\u5f3a\u5927\uff0c\u4f46\u4ef7\u683c\u90fd\u4e0d\u4fbf\u5b9c\uff0c\u4e00\u822c\u53ea\u6709\u201c\u571f\u8c6a\u201d\u516c\u53f8\u624d\u4f1a\u8003\u8651\u4f7f\u7528\u6b64\u7c7b\u8bbe\u5907\u3002\u666e\u901a\u4e1a\u52a1\u91cf\u7ea7\u7684\u516c\u53f8\u4e00\u662f\u8d1f\u62c5\u4e0d\u8d77\uff0c\u4e8c\u662f\u4e1a\u52a1\u91cf\u6ca1\u90a3\u4e48\u5927\uff0c\u7528\u8fd9\u4e9b\u8bbe\u5907\u4e5f\u662f\u6d6a\u8d39\u3002"),(0,l.yg)("p",null,"\u786c\u4ef6\u8d1f\u8f7d\u5747\u8861\u7684\u4f18\u70b9\u662f\uff1a"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"\u529f\u80fd\u5f3a\u5927\uff1a\u5168\u9762\u652f\u6301\u5404\u5c42\u7ea7\u7684\u8d1f\u8f7d\u5747\u8861\uff0c\u652f\u6301\u5168\u9762\u7684\u8d1f\u8f7d\u5747\u8861\u7b97\u6cd5\uff0c\u652f\u6301\u5168\u5c40\u8d1f\u8f7d\u5747\u8861\u3002"),(0,l.yg)("li",{parentName:"ul"},"\u6027\u80fd\u5f3a\u5927\uff1a\u5bf9\u6bd4\u4e00\u4e0b\uff0c\u8f6f\u4ef6\u8d1f\u8f7d\u5747\u8861\u652f\u6301\u5230 10 \u4e07\u7ea7\u5e76\u53d1\u5df2\u7ecf\u5f88\u5389\u5bb3\u4e86\uff0c\u786c\u4ef6\u8d1f\u8f7d\u5747\u8861\u53ef\u4ee5\u652f\u6301 100 \u4e07\u4ee5\u4e0a\u7684\u5e76\u53d1\u3002"),(0,l.yg)("li",{parentName:"ul"},"\u7a33\u5b9a\u6027\u9ad8\uff1a\u5546\u7528\u786c\u4ef6\u8d1f\u8f7d\u5747\u8861\uff0c\u7ecf\u8fc7\u4e86\u826f\u597d\u7684\u4e25\u683c\u6d4b\u8bd5\uff0c\u7ecf\u8fc7\u5927\u89c4\u6a21\u4f7f\u7528\uff0c\u7a33\u5b9a\u6027\u9ad8\u3002"),(0,l.yg)("li",{parentName:"ul"},"\u652f\u6301\u5b89\u5168\u9632\u62a4\uff1a\u786c\u4ef6\u5747\u8861\u8bbe\u5907\u9664\u5177\u5907\u8d1f\u8f7d\u5747\u8861\u529f\u80fd\u5916\uff0c\u8fd8\u5177\u5907\u9632\u706b\u5899\u3001\u9632 DDoS \u653b\u51fb\u7b49\u5b89\u5168\u529f\u80fd\u3002")),(0,l.yg)("p",null,"\u786c\u4ef6\u8d1f\u8f7d\u5747\u8861\u7684\u7f3a\u70b9\u662f\uff1a"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"\u4ef7\u683c\u6602\u8d35\uff1a\u6700\u666e\u901a\u7684\u4e00\u53f0 F5 \u5c31\u662f\u4e00\u53f0\u201c\u9a6c 6\u201d\uff0c\u597d\u4e00\u70b9\u7684\u5c31\u662f\u201cQ7\u201d\u4e86\u3002"),(0,l.yg)("li",{parentName:"ul"},"\u6269\u5c55\u80fd\u529b\u5dee\uff1a\u786c\u4ef6\u8bbe\u5907\uff0c\u53ef\u4ee5\u6839\u636e\u4e1a\u52a1\u8fdb\u884c\u914d\u7f6e\uff0c\u4f46\u65e0\u6cd5\u8fdb\u884c\u6269\u5c55\u548c\u5b9a\u5236\u3002")),(0,l.yg)("h4",{id:""}),(0,l.yg)("h3",{id:"\u8f6f\u4ef6\u8d1f\u8f7d"},"\u8f6f\u4ef6\u8d1f\u8f7d"),(0,l.yg)("p",null,"\u8f6f\u4ef6\u8d1f\u8f7d\u5747\u8861\u901a\u8fc7\u8d1f\u8f7d\u5747\u8861\u8f6f\u4ef6\u6765\u5b9e\u73b0\u8d1f\u8f7d\u5747\u8861\u529f\u80fd\uff0c\u5e38\u89c1\u7684\u6709 Nginx \u548c LVS\uff0c\u5176\u4e2d Nginx \u662f\u8f6f\u4ef6\u7684 7 \u5c42\u8d1f\u8f7d\u5747\u8861\uff0cLVS \u662f Linux \u5185\u6838\u7684 4 \u5c42\u8d1f\u8f7d\u5747\u8861\u30024 \u5c42\u548c 7 \u5c42\u7684\u533a\u522b\u5c31\u5728\u4e8e\u534f\u8bae\u548c\u7075\u6d3b\u6027\uff0cNginx \u652f\u6301 HTTP\u3001E-mail \u534f\u8bae\uff1b\u800c LVS \u662f 4 \u5c42\u8d1f\u8f7d\u5747\u8861\uff0c\u548c\u534f\u8bae\u65e0\u5173\uff0c\u51e0\u4e4e\u6240\u6709\u5e94\u7528\u90fd\u53ef\u4ee5\u505a\uff0c\u4f8b\u5982\uff0c\u804a\u5929\u3001\u6570\u636e\u5e93\u7b49\u3002"),(0,l.yg)("p",null,"\u8f6f\u4ef6\u548c\u786c\u4ef6\u7684\u6700\u4e3b\u8981\u533a\u522b\u5c31\u5728\u4e8e\u6027\u80fd\uff0c\u786c\u4ef6\u8d1f\u8f7d\u5747\u8861\u6027\u80fd\u8fdc\u8fdc\u9ad8\u4e8e\u8f6f\u4ef6\u8d1f\u8f7d\u5747\u8861\u6027\u80fd\u3002Nginx \u7684\u6027\u80fd\u662f\u4e07\u7ea7\uff0c\u4e00\u822c\u7684 Linux \u670d\u52a1\u5668\u4e0a\u88c5\u4e00\u4e2a Nginx \u5927\u6982\u80fd\u5230 5 \u4e07 / \u79d2\uff1bLVS \u7684\u6027\u80fd\u662f\u5341\u4e07\u7ea7\uff0c\u636e\u8bf4\u53ef\u8fbe\u5230 80 \u4e07 / \u79d2\uff1b\u800c F5 \u6027\u80fd\u662f\u767e\u4e07\u7ea7\uff0c\u4ece 200 \u4e07 / \u79d2\u5230 800 \u4e07 / \u79d2\u90fd\u6709\uff08\u6570\u636e\u6765\u6e90\u7f51\u7edc\uff0c\u4ec5\u4f9b\u53c2\u8003\uff0c\u5982\u9700\u91c7\u7528\u8bf7\u6839\u636e\u5b9e\u9645\u4e1a\u52a1\u573a\u666f\u8fdb\u884c\u6027\u80fd\u6d4b\u8bd5\uff09\u3002\u5f53\u7136\uff0c\u8f6f\u4ef6\u8d1f\u8f7d\u5747\u8861\u7684\u6700\u5927\u4f18\u52bf\u662f\u4fbf\u5b9c\uff0c\u4e00\u53f0\u666e\u901a\u7684 Linux \u670d\u52a1\u5668\u6279\u53d1\u4ef7\u5927\u6982\u5c31\u662f 1 \u4e07\u5143\u5de6\u53f3\uff0c\u76f8\u6bd4 F5 \u7684\u4ef7\u683c\uff0c\u90a3\u5c31\u662f\u81ea\u884c\u8f66\u548c\u5b9d\u9a6c\u7684\u533a\u522b\u4e86\u3002"),(0,l.yg)("p",null,"\u8f6f\u4ef6\u8d1f\u8f7d\u5747\u8861\u7684\u4f18\u70b9\uff1a"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"\u7b80\u5355\uff1a\u65e0\u8bba\u662f\u90e8\u7f72\u8fd8\u662f\u7ef4\u62a4\u90fd\u6bd4\u8f83\u7b80\u5355\u3002"),(0,l.yg)("li",{parentName:"ul"},"\u4fbf\u5b9c\uff1a\u53ea\u8981\u4e70\u4e2a Linux \u670d\u52a1\u5668\uff0c\u88c5\u4e0a\u8f6f\u4ef6\u5373\u53ef\u3002"),(0,l.yg)("li",{parentName:"ul"},"\u7075\u6d3b\uff1a4 \u5c42\u548c 7 \u5c42\u8d1f\u8f7d\u5747\u8861\u53ef\u4ee5\u6839\u636e\u4e1a\u52a1\u8fdb\u884c\u9009\u62e9\uff1b\u4e5f\u53ef\u4ee5\u6839\u636e\u4e1a\u52a1\u8fdb\u884c\u6bd4\u8f83\u65b9\u4fbf\u7684\u6269\u5c55\uff0c\u4f8b\u5982\uff0c\u53ef\u4ee5\u901a\u8fc7 Nginx \u7684\u63d2\u4ef6\u6765\u5b9e\u73b0\u4e1a\u52a1\u7684\u5b9a\u5236\u5316\u529f\u80fd\u3002")),(0,l.yg)("p",null,"\u5176\u5b9e\u4e0b\u9762\u7684\u7f3a\u70b9\u90fd\u662f\u548c\u786c\u4ef6\u8d1f\u8f7d\u5747\u8861\u76f8\u6bd4\u7684\uff0c\u5e76\u4e0d\u662f\u8bf4\u8f6f\u4ef6\u8d1f\u8f7d\u5747\u8861\u6ca1\u6cd5\u7528\u3002"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"\u6027\u80fd\u4e00\u822c\uff1a\u4e00\u4e2a Nginx \u5927\u7ea6\u80fd\u652f\u6491 5 \u4e07\u5e76\u53d1\u3002"),(0,l.yg)("li",{parentName:"ul"},"\u529f\u80fd\u6ca1\u6709\u786c\u4ef6\u8d1f\u8f7d\u5747\u8861\u90a3\u4e48\u5f3a\u5927\u3002"),(0,l.yg)("li",{parentName:"ul"},"\u4e00\u822c\u4e0d\u5177\u5907\u9632\u706b\u5899\u548c\u9632 DDoS \u653b\u51fb\u7b49\u5b89\u5168\u529f\u80fd\u3002")),(0,l.yg)("h3",{id:"\u4f7f\u7528\u603b\u7ed3"},"\u4f7f\u7528\u603b\u7ed3"),(0,l.yg)("p",null,"\u524d\u9762\u6211\u4eec\u4ecb\u7ecd\u4e86 3 \u79cd\u5e38\u89c1\u7684\u8d1f\u8f7d\u5747\u8861\u673a\u5236\uff1aDNS \u8d1f\u8f7d\u5747\u8861\u3001\u786c\u4ef6\u8d1f\u8f7d\u5747\u8861\u3001\u8f6f\u4ef6\u8d1f\u8f7d\u5747\u8861\uff0c\u6bcf\u79cd\u65b9\u5f0f\u90fd\u6709\u4e00\u4e9b\u4f18\u7f3a\u70b9\uff0c\u4f46\u5e76\u4e0d\u610f\u5473\u7740\u5728\u5b9e\u9645\u5e94\u7528\u4e2d\u53ea\u80fd\u57fa\u4e8e\u5b83\u4eec\u7684\u4f18\u7f3a\u70b9\u8fdb\u884c\u975e\u6b64\u5373\u5f7c\u7684\u9009\u62e9\uff0c\u53cd\u800c\u662f\u57fa\u4e8e\u5b83\u4eec\u7684\u4f18\u7f3a\u70b9\u8fdb\u884c\u7ec4\u5408\u4f7f\u7528\u3002\u5177\u4f53\u6765\u8bf4\uff0c\u7ec4\u5408\u7684\u57fa\u672c\u539f\u5219\u4e3a\uff1aDNS \u8d1f\u8f7d\u5747\u8861\u7528\u4e8e\u5b9e\u73b0\u5730\u7406\u7ea7\u522b\u7684\u8d1f\u8f7d\u5747\u8861\uff1b\u786c\u4ef6\u8d1f\u8f7d\u5747\u8861\u7528\u4e8e\u5b9e\u73b0\u96c6\u7fa4\u7ea7\u522b\u7684\u8d1f\u8f7d\u5747\u8861\uff1b\u8f6f\u4ef6\u8d1f\u8f7d\u5747\u8861\u7528\u4e8e\u5b9e\u73b0\u673a\u5668\u7ea7\u522b\u7684\u8d1f\u8f7d\u5747\u8861\u3002"),(0,l.yg)("p",null,(0,l.yg)("img",{alt:"image.png",src:n(4993).A,width:"750",height:"500"})),(0,l.yg)("h3",{id:"-1"}),(0,l.yg)("h3",{id:"-2"}),(0,l.yg)("h3",{id:"\u7b97\u6cd5\u603b\u7ed3"},"\u7b97\u6cd5\u603b\u7ed3"),(0,l.yg)("p",null,"\u8d1f\u8f7d\u5747\u8861\u7b97\u6cd5\u6570\u91cf\u8f83\u591a\uff0c\u800c\u4e14\u53ef\u4ee5\u6839\u636e\u4e00\u4e9b\u4e1a\u52a1\u7279\u6027\u8fdb\u884c\u5b9a\u5236\u5f00\u53d1\uff0c\u629b\u5f00\u7ec6\u8282\u4e0a\u7684\u5dee\u5f02\uff0c\u6839\u636e\u7b97\u6cd5\u671f\u671b\u8fbe\u5230\u7684\u76ee\u7684\uff0c\u5927\u4f53\u4e0a\u53ef\u4ee5\u5206\u4e3a\u4e0b\u9762\u51e0\u7c7b\u3002"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"\u4efb\u52a1\u5e73\u5206\u7c7b\uff1a\u8d1f\u8f7d\u5747\u8861\u7cfb\u7edf\u5c06\u6536\u5230\u7684\u4efb\u52a1\u5e73\u5747\u5206\u914d\u7ed9\u670d\u52a1\u5668\u8fdb\u884c\u5904\u7406\uff0c\u8fd9\u91cc\u7684\u201c\u5e73\u5747\u201d\u53ef\u4ee5\u662f\u7edd\u5bf9\u6570\u91cf\u7684\u5e73\u5747\uff0c\u4e5f\u53ef\u4ee5\u662f\u6bd4\u4f8b\u6216\u8005\u6743\u91cd\u4e0a\u7684\u5e73\u5747\u3002"),(0,l.yg)("li",{parentName:"ul"},"\u8d1f\u8f7d\u5747\u8861\u7c7b\uff1a\u8d1f\u8f7d\u5747\u8861\u7cfb\u7edf\u6839\u636e\u670d\u52a1\u5668\u7684\u8d1f\u8f7d\u6765\u8fdb\u884c\u5206\u914d\uff0c\u8fd9\u91cc\u7684\u8d1f\u8f7d\u5e76\u4e0d\u4e00\u5b9a\u662f\u901a\u5e38\u610f\u4e49\u4e0a\u6211\u4eec\u8bf4\u7684\u201cCPU \u8d1f\u8f7d\u201d\uff0c\u800c\u662f\u7cfb\u7edf\u5f53\u524d\u7684\u538b\u529b\uff0c\u53ef\u4ee5\u7528 CPU \u8d1f\u8f7d\u6765\u8861\u91cf\uff0c\u4e5f\u53ef\u4ee5\u7528\u8fde\u63a5\u6570\u3001I/O \u4f7f\u7528\u7387\u3001\u7f51\u5361\u541e\u5410\u91cf\u7b49\u6765\u8861\u91cf\u7cfb\u7edf\u7684\u538b\u529b\u3002"),(0,l.yg)("li",{parentName:"ul"},"\u6027\u80fd\u6700\u4f18\u7c7b\uff1a\u8d1f\u8f7d\u5747\u8861\u7cfb\u7edf\u6839\u636e\u670d\u52a1\u5668\u7684\u54cd\u5e94\u65f6\u95f4\u6765\u8fdb\u884c\u4efb\u52a1\u5206\u914d\uff0c\u4f18\u5148\u5c06\u65b0\u4efb\u52a1\u5206\u914d\u7ed9\u54cd\u5e94\u6700\u5feb\u7684\u670d\u52a1\u5668\u3002"),(0,l.yg)("li",{parentName:"ul"},"Hash \u7c7b\uff1a\u8d1f\u8f7d\u5747\u8861\u7cfb\u7edf\u6839\u636e\u4efb\u52a1\u4e2d\u7684\u67d0\u4e9b\u5173\u952e\u4fe1\u606f\u8fdb\u884c Hash \u8fd0\u7b97\uff0c\u5c06\u76f8\u540c Hash \u503c\u7684\u8bf7\u6c42\u5206\u914d\u5230\u540c\u4e00\u53f0\u670d\u52a1\u5668\u4e0a\u3002\u5e38\u89c1\u7684\u6709\u6e90\u5730\u5740 Hash\u3001\u76ee\u6807\u5730\u5740 Hash\u3001session id hash\u3001\u7528\u6237 ID Hash \u7b49\u3002")))}c.isMDXComponent=!0},4993:(e,t,n)=>{n.d(t,{A:()=>r});const r=n.p+"assets/images/4-1110b0b730ae76dd61a1d7d14c8523cb.png"}}]); \ No newline at end of file diff --git a/assets/js/1e8406f2.2ce311e1.js b/assets/js/1e8406f2.04b5e4c4.js similarity index 99% rename from assets/js/1e8406f2.2ce311e1.js rename to assets/js/1e8406f2.04b5e4c4.js index 30248bc86..1045fe596 100644 --- a/assets/js/1e8406f2.2ce311e1.js +++ b/assets/js/1e8406f2.04b5e4c4.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6407],{5680:(e,n,r)=>{r.d(n,{xA:()=>o,yg:()=>v});var a=r(6540);function t(e,n,r){return n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r,e}function l(e,n){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),r.push.apply(r,a)}return r}function i(e){for(var n=1;n=0||(t[r]=e[r]);return t}(e,n);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(t[r]=e[r])}return t}var u=a.createContext({}),s=function(e){var n=a.useContext(u),r=n;return e&&(r="function"==typeof e?e(n):i(i({},n),e)),r},o=function(e){var n=s(e.components);return a.createElement(u.Provider,{value:n},e.children)},g="mdxType",m={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},d=a.forwardRef((function(e,n){var r=e.components,t=e.mdxType,l=e.originalType,u=e.parentName,o=p(e,["components","mdxType","originalType","parentName"]),g=s(r),d=t,v=g["".concat(u,".").concat(d)]||g[d]||m[d]||l;return r?a.createElement(v,i(i({ref:n},o),{},{components:r})):a.createElement(v,i({ref:n},o))}));function v(e,n){var r=arguments,t=n&&n.mdxType;if("string"==typeof e||t){var l=r.length,i=new Array(l);i[0]=d;var p={};for(var u in n)hasOwnProperty.call(n,u)&&(p[u]=n[u]);p.originalType=e,p[g]="string"==typeof e?e:t,i[1]=p;for(var s=2;s{r.r(n),r.d(n,{assets:()=>u,contentTitle:()=>i,default:()=>m,frontMatter:()=>l,metadata:()=>p,toc:()=>s});var a=r(8168),t=(r(6540),r(5680));const l={},i=void 0,p={unversionedId:"study/program/JAVA/Maven",id:"study/program/JAVA/Maven",title:"Maven",description:"\u7b80\u4ecb",source:"@site/docs/study/program/JAVA/Maven.md",sourceDirName:"study/program/JAVA",slug:"/study/program/JAVA/Maven",permalink:"/docs/study/program/JAVA/Maven",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Guice",permalink:"/docs/study/program/JAVA/Guice"},next:{title:"RxJava",permalink:"/docs/study/program/JAVA/RxJava"}},u={},s=[{value:"\u7b80\u4ecb",id:"\u7b80\u4ecb",level:3},{value:"\u53c2\u6570",id:"\u53c2\u6570",level:3},{value:"\u63d2\u4ef6",id:"\u63d2\u4ef6",level:3},{value:"\u4e09\u79cd\u6253\u5305\u63d2\u4ef6",id:"\u4e09\u79cd\u6253\u5305\u63d2\u4ef6",level:4},{value:"maven-assembly-plugin",id:"maven-assembly-plugin",level:4},{value:"maven-enforcer-plugin",id:"maven-enforcer-plugin",level:4},{value:"maven-release-plugin",id:"maven-release-plugin",level:4},{value:"maven-resources-plugin",id:"maven-resources-plugin",level:4},{value:"build-helper-maven-plugin",id:"build-helper-maven-plugin",level:4},{value:"versions-maven-plugin",id:"versions-maven-plugin",level:4}],o={toc:s},g="wrapper";function m(e){let{components:n,...r}=e;return(0,t.yg)(g,(0,a.A)({},o,r,{components:n,mdxType:"MDXLayout"}),(0,t.yg)("h3",{id:"\u7b80\u4ecb"},"\u7b80\u4ecb"),(0,t.yg)("p",null,"\u672c\u8d28\u4e0a\u662f\u4e00\u4e2a\u63d2\u4ef6\u6846\u67b6\uff0c\u5b83\u7684\u6838\u5fc3\u5e76\u4e0d\u6267\u884c\u4efb\u4f55\u5177\u4f53\u7684\u6784\u5efa\u4efb\u52a1\uff0c\u6240\u6709\u8fd9\u4e9b\u4efb\u52a1\u90fd\u4ea4\u7ed9\u63d2\u4ef6\u6765\u5b8c\u6210\uff0c\u4f8b\u5982\u7f16\u8bd1\u6e90\u4ee3\u7801\u662f\u7531maven- compiler-plugin\u5b8c\u6210\u7684\u3002"),(0,t.yg)("h3",{id:"\u53c2\u6570"},"\u53c2\u6570"),(0,t.yg)("table",null,(0,t.yg)("thead",{parentName:"table"},(0,t.yg)("tr",{parentName:"thead"},(0,t.yg)("th",{parentName:"tr",align:null},"\u53c2\u6570"),(0,t.yg)("th",{parentName:"tr",align:null},"\u5168\u79f0"),(0,t.yg)("th",{parentName:"tr",align:null},"\u91ca\u4e49"),(0,t.yg)("th",{parentName:"tr",align:null},"\u8bf4\u660e"))),(0,t.yg)("tbody",{parentName:"table"},(0,t.yg)("tr",{parentName:"tbody"},(0,t.yg)("td",{parentName:"tr",align:null},"-pl"),(0,t.yg)("td",{parentName:"tr",align:null},"--projects"),(0,t.yg)("td",{parentName:"tr",align:null},"Build specified reactor projects instead of all projects"),(0,t.yg)("td",{parentName:"tr",align:null},"\u9009\u9879\u540e\u53ef\u8ddf\u968f{groupId}:{artifactId}\u6216\u8005\u6240\u9009\u6a21\u5757\u7684\u76f8\u5bf9\u8def\u5f84(\u591a\u4e2a\u6a21\u5757\u4ee5\u9017\u53f7\u5206\u9694)")),(0,t.yg)("tr",{parentName:"tbody"},(0,t.yg)("td",{parentName:"tr",align:null},"-am"),(0,t.yg)("td",{parentName:"tr",align:null},"--also-make"),(0,t.yg)("td",{parentName:"tr",align:null},"If project list is specified, also build projects required by the list"),(0,t.yg)("td",{parentName:"tr",align:null},"\u8868\u793a\u540c\u65f6\u5904\u7406\u9009\u5b9a\u6a21\u5757\u6240\u4f9d\u8d56\u7684\u6a21\u5757")),(0,t.yg)("tr",{parentName:"tbody"},(0,t.yg)("td",{parentName:"tr",align:null},"-amd"),(0,t.yg)("td",{parentName:"tr",align:null},"--also-make-dependents"),(0,t.yg)("td",{parentName:"tr",align:null},"If project list is specified, also build projects that depend on projects on the list"),(0,t.yg)("td",{parentName:"tr",align:null},"\u8868\u793a\u540c\u65f6\u5904\u7406\u4f9d\u8d56\u9009\u5b9a\u6a21\u5757\u7684\u6a21\u5757")),(0,t.yg)("tr",{parentName:"tbody"},(0,t.yg)("td",{parentName:"tr",align:null},"-N"),(0,t.yg)("td",{parentName:"tr",align:null},"--Non-recursive"),(0,t.yg)("td",{parentName:"tr",align:null},"Build projects without recursive"),(0,t.yg)("td",{parentName:"tr",align:null},"\u8868\u793a\u4e0d\u9012\u5f52\u5b50\u6a21\u5757")),(0,t.yg)("tr",{parentName:"tbody"},(0,t.yg)("td",{parentName:"tr",align:null},"-rf"),(0,t.yg)("td",{parentName:"tr",align:null},"--resume-from"),(0,t.yg)("td",{parentName:"tr",align:null},"Resume reactor from specified project"),(0,t.yg)("td",{parentName:"tr",align:null},"\u8868\u793a\u4ece\u6307\u5b9a\u6a21\u5757\u5f00\u59cb\u7ee7\u7eed\u5904\u7406")))),(0,t.yg)("h3",{id:"\u63d2\u4ef6"},"\u63d2\u4ef6"),(0,t.yg)("h4",{id:"\u4e09\u79cd\u6253\u5305\u63d2\u4ef6"},"\u4e09\u79cd\u6253\u5305\u63d2\u4ef6"),(0,t.yg)("ul",null,(0,t.yg)("li",{parentName:"ul"},"maven-jar-plugin\uff0c\u9ed8\u8ba4\u7684\u6253\u5305\u63d2\u4ef6\uff0c\u7528\u6765\u6253\u666e\u901a\u7684project JAR\u5305\uff1b"),(0,t.yg)("li",{parentName:"ul"},"maven-shade-plugin\uff0c\u7528\u6765\u6253\u53ef\u6267\u884cJAR\u5305\uff0c\u4e5f\u5c31\u662f\u6240\u8c13\u7684fat JAR\u5305\uff1b"),(0,t.yg)("li",{parentName:"ul"},"maven-assembly-plugin\uff0c\u652f\u6301\u81ea\u5b9a\u4e49\u7684\u6253\u5305\u7ed3\u6784\uff0c\u4e5f\u53ef\u4ee5\u5b9a\u5236\u4f9d\u8d56\u9879\u7b49\u3002")),(0,t.yg)("h4",{id:"maven-assembly-plugin"},"maven-assembly-plugin"),(0,t.yg)("p",null,"maven-assembly-plugin\u7684\u7528\u9014\u662f\u5236\u4f5c\u9879\u76ee\u5206\u53d1\u5305\uff0c\u8be5\u5206\u53d1\u5305\u53ef\u80fd\u5305\u542b\u4e86\u9879\u76ee\u7684\u53ef\u6267\u884c\u6587\u4ef6\u3001\u6e90\u4ee3\u7801\u3001readme\u3001\u5e73\u53f0\u811a\u672c\u7b49\u7b49\u3002maven-assembly-plugin\u652f\u6301\u5404\u79cd\u4e3b\u6d41\u7684\u683c\u5f0f\u5982zip\u3001tar.gz\u3001jar\u548cwar\u7b49\uff0c\u5177\u4f53\u6253\u5305\u54ea\u4e9b\u6587\u4ef6\u662f\u9ad8\u5ea6\u53ef\u63a7\u7684\uff0c\u4f8b\u5982\u7528\u6237\u53ef\u4ee5 \u6309\u6587\u4ef6\u7ea7\u522b\u7684\u7c92\u5ea6\u3001\u6587\u4ef6\u96c6\u7ea7\u522b\u7684\u7c92\u5ea6\u3001\u6a21\u5757\u7ea7\u522b\u7684\u7c92\u5ea6\u3001\u4ee5\u53ca\u4f9d\u8d56\u7ea7\u522b\u7684\u7c92\u5ea6\u63a7\u5236\u6253\u5305\uff0c\u6b64\u5916\uff0c\u5305\u542b\u548c\u6392\u9664\u914d\u7f6e\u4e5f\u662f\u652f\u6301\u7684\u3002maven-assembly- plugin\u8981\u6c42\u7528\u6237\u4f7f\u7528\u4e00\u4e2a\u540d\u4e3aassembly.xml\u7684\u5143\u6570\u636e\u6587\u4ef6\u6765\u8868\u8ff0\u6253\u5305\uff0c\u5b83\u7684single\u76ee\u6807\u53ef\u4ee5\u76f4\u63a5\u5728\u547d\u4ee4\u884c\u8c03\u7528\uff0c\u4e5f\u53ef\u4ee5\u88ab\u7ed1\u5b9a\u81f3\u751f\u547d\u5468\u671f\u3002"),(0,t.yg)("h4",{id:"maven-enforcer-plugin"},"maven-enforcer-plugin"),(0,t.yg)("p",null,"\u5728\u4e00\u4e2a\u7a0d\u5927\u4e00\u70b9\u7684\u7ec4\u7ec7\u6216\u56e2\u961f\u4e2d\uff0c\u4f60\u65e0\u6cd5\u4fdd\u8bc1\u6240\u6709\u6210\u5458\u90fd\u719f\u6089Maven\uff0c\u90a3\u4ed6\u4eec\u505a\u4e00\u4e9b\u6bd4\u8f83\u611a\u8822\u7684\u4e8b\u60c5\u5c31\u4f1a\u53d8\u5f97\u5f88\u6b63\u5e38\uff0c\u4f8b\u5982\u7ed9\u9879\u76ee\u5f15\u5165\u4e86\u5916\u90e8\u7684 SNAPSHOT\u4f9d\u8d56\u800c\u5bfc\u81f4\u6784\u5efa\u4e0d\u7a33\u5b9a\uff0c\u4f7f\u7528\u4e86\u4e00\u4e2a\u4e0e\u5927\u5bb6\u4e0d\u4e00\u81f4\u7684Maven\u7248\u672c\u800c\u7ecf\u5e38\u62b1\u6028\u6784\u5efa\u51fa\u73b0\u8be1\u5f02\u95ee\u9898\u3002maven-enforcer- plugin\u80fd\u591f\u5e2e\u52a9\u4f60\u907f\u514d\u4e4b\u7c7b\u95ee\u9898\uff0c\u5b83\u5141\u8bb8\u4f60\u521b\u5efa\u4e00\u7cfb\u5217\u89c4\u5219\u5f3a\u5236\u5927\u5bb6\u9075\u5b88\uff0c\u5305\u62ec\u8bbe\u5b9aJava\u7248\u672c\u3001\u8bbe\u5b9aMaven\u7248\u672c\u3001\u7981\u6b62\u67d0\u4e9b\u4f9d\u8d56\u3001\u7981\u6b62 SNAPSHOT\u4f9d\u8d56\u3002\u53ea\u8981\u5728\u4e00\u4e2a\u7236POM\u914d\u7f6e\u89c4\u5219\uff0c\u7136\u540e\u8ba9\u5927\u5bb6\u7ee7\u627f\uff0c\u5f53\u89c4\u5219\u906d\u5230\u7834\u574f\u7684\u65f6\u5019\uff0cMaven\u5c31\u4f1a\u62a5\u9519\u3002\u9664\u4e86\u6807\u51c6\u7684\u89c4\u5219\u4e4b\u5916\uff0c\u4f60\u8fd8\u53ef\u4ee5\u6269\u5c55\u8be5\u63d2 \u4ef6\uff0c\u7f16\u5199\u81ea\u5df1\u7684\u89c4\u5219\u3002maven-enforcer-plugin\u7684enforce\u76ee\u6807\u8d1f\u8d23\u68c0\u67e5\u89c4\u5219\uff0c\u5b83\u9ed8\u8ba4\u7ed1\u5b9a\u5230\u751f\u547d\u5468\u671f\u7684validate\u9636\u6bb5\u3002"),(0,t.yg)("h4",{id:"maven-release-plugin"},"maven-release-plugin"),(0,t.yg)("p",null,"maven-release-plugin\u7684\u7528\u9014\u662f\u5e2e\u52a9\u81ea\u52a8\u5316\u9879\u76ee\u7248\u672c\u53d1\u5e03\uff0c\u5b83\u4f9d\u8d56\u4e8ePOM\u4e2d\u7684SCM\u4fe1\u606f\u3002release:prepare\u7528\u6765\u51c6\u5907\u7248\u672c\u53d1\u5e03\uff0c\u5177\u4f53\u7684\u5de5\u4f5c\u5305\u62ec\u68c0\u67e5\u662f\u5426\u6709\u672a\u63d0\u4ea4\u4ee3\u7801\u3001\u68c0\u67e5\u662f\u5426\u6709SNAPSHOT\u4f9d\u8d56\u3001\u5347\u7ea7\u9879\u76ee\u7684SNAPSHOT\u7248\u672c\u81f3RELEASE\u7248\u672c\u3001\u4e3a\u9879\u76ee\u6253\u6807\u7b7e\u7b49\u7b49\u3002release:perform\u5219 \u662f\u7b7e\u51fa\u6807\u7b7e\u4e2d\u7684RELEASE\u6e90\u7801\uff0c\u6784\u5efa\u5e76\u53d1\u5e03\u3002\u7248\u672c\u53d1\u5e03\u662f\u975e\u5e38\u7410\u788e\u7684\u5de5\u4f5c\uff0c\u5b83\u6d89\u53ca\u4e86\u5404\u79cd\u68c0\u67e5\uff0c\u800c\u4e14\u7531\u4e8e\u8be5\u5de5\u4f5c\u4ec5\u4ec5\u662f\u5076\u5c14\u9700\u8981\uff0c\u56e0\u6b64\u624b\u52a8\u64cd\u4f5c\u5f88\u5bb9\u6613\u9057\u6f0f\u4e00 \u4e9b\u7ec6\u8282\uff0cmaven-release-plugin\u8ba9\u8be5\u5de5\u4f5c\u53d8\u5f97\u975e\u5e38\u5feb\u901f\u7b80\u4fbf\uff0c\u4e0d\u6613\u51fa\u9519\u3002maven-release-plugin\u7684\u5404\u79cd\u76ee\u6807\u901a\u5e38\u76f4\u63a5\u5728 \u547d\u4ee4\u884c\u8c03\u7528\uff0c\u56e0\u4e3a\u7248\u672c\u53d1\u5e03\u663e\u7136\u4e0d\u662f\u65e5\u5e38\u6784\u5efa\u751f\u547d\u5468\u671f\u7684\u4e00\u90e8\u5206\u3002"),(0,t.yg)("h4",{id:"maven-resources-plugin"},"maven-resources-plugin"),(0,t.yg)("p",null,"\u4e3a\u4e86\u4f7f\u9879\u76ee\u7ed3\u6784\u66f4\u4e3a\u6e05\u6670\uff0cMaven\u533a\u522b\u5bf9\u5f85Java\u4ee3\u7801\u6587\u4ef6\u548c\u8d44\u6e90\u6587\u4ef6\uff0cmaven-compiler-plugin\u7528\u6765\u7f16\u8bd1Java\u4ee3\u7801\uff0cmaven-resources-plugin\u5219\u7528\u6765\u5904\u7406\u8d44\u6e90\u6587\u4ef6\u3002\u9ed8\u8ba4\u7684\u4e3b\u8d44\u6e90\u6587\u4ef6\u76ee\u5f55\u662fsrc/main/resources\uff0c\u5f88\u591a\u7528\u6237\u4f1a\u9700\u8981\u6dfb\u52a0\u989d\u5916\u7684\u8d44\u6e90\u6587\u4ef6\u76ee\u5f55\uff0c\u8fd9\u4e2a\u65f6\u5019\u5c31\u53ef\u4ee5\u901a\u8fc7\u914d\u7f6emaven-resources-plugin\u6765\u5b9e\u73b0\u3002\u6b64\u5916\uff0c\u8d44\u6e90\u6587\u4ef6\u8fc7\u6ee4\u4e5f\u662fMaven\u7684\u4e00\u5927\u7279\u6027\uff0c\u4f60\u53ef\u4ee5\u5728\u8d44\u6e90\u6587\u4ef6\u4e2d\u4f7f\u7528${propertyName}\u5f62\u5f0f\u7684Maven\u5c5e\u6027\uff0c\u7136\u540e\u914d\u7f6emaven-resources-plugin\u5f00\u542f\u5bf9\u8d44\u6e90\u6587\u4ef6\u7684\u8fc7\u6ee4\uff0c\u4e4b\u540e\u5c31\u53ef\u4ee5\u9488\u5bf9\u4e0d\u540c\u73af\u5883\u901a\u8fc7\u547d\u4ee4\u884c\u6216\u8005Profile\u4f20\u5165\u5c5e\u6027\u7684\u503c\uff0c\u4ee5\u5b9e\u73b0\u66f4\u4e3a\u7075\u6d3b\u7684\u6784\u5efa\u3002"),(0,t.yg)("h4",{id:"build-helper-maven-plugin"},"build-helper-maven-plugin"),(0,t.yg)("p",null,"Maven\u9ed8\u8ba4\u53ea\u5141\u8bb8\u6307\u5b9a\u4e00\u4e2a\u4e3bJava\u4ee3\u7801\u76ee\u5f55\u548c\u4e00\u4e2a\u6d4b\u8bd5Java\u4ee3\u7801\u76ee\u5f55\uff0c\u867d\u7136\u8fd9\u5176\u5b9e\u662f\u4e2a\u5e94\u5f53\u5c3d\u91cf\u9075\u5b88\u7684\u7ea6\u5b9a\uff0c\u4f46\u5076\u5c14\u4f60\u8fd8\u662f\u4f1a\u5e0c\u671b\u80fd\u591f\u6307\u5b9a\u591a\u4e2a \u6e90\u7801\u76ee\u5f55\uff08\u4f8b\u5982\u4e3a\u4e86\u5e94\u5bf9\u9057\u7559\u9879\u76ee\uff09\uff0cbuild-helper-maven-plugin\u7684add-source\u76ee\u6807\u5c31\u662f\u670d\u52a1\u4e8e\u8fd9\u4e2a\u76ee\u7684\uff0c\u901a\u5e38\u5b83\u88ab\u7ed1\u5b9a\u5230 \u9ed8\u8ba4\u751f\u547d\u5468\u671f\u7684generate-sources\u9636\u6bb5\u4ee5\u6dfb\u52a0\u989d\u5916\u7684\u6e90\u7801\u76ee\u5f55\u3002\u9700\u8981\u5f3a\u8c03\u7684\u662f\uff0c\u8fd9\u79cd\u505a\u6cd5\u8fd8\u662f\u4e0d\u63a8\u8350\u7684\uff0c\u56e0\u4e3a\u5b83\u7834\u574f\u4e86 Maven\u7684\u7ea6\u5b9a\uff0c\u800c\u4e14\u53ef\u80fd\u4f1a\u9047\u5230\u5176\u4ed6\u4e25\u683c\u9075\u5b88\u7ea6\u5b9a\u7684\u63d2\u4ef6\u5de5\u5177\u65e0\u6cd5\u6b63\u786e\u8bc6\u522b\u989d\u5916\u7684\u6e90\u7801\u76ee\u5f55\u3002\nbuild-helper-maven-plugin\u7684\u53e6\u4e00\u4e2a\u975e\u5e38\u6709\u7528\u7684\u76ee\u6807\u662fattach-artifact\uff0c\u4f7f\u7528\u8be5\u76ee\u6807\u4f60\u53ef\u4ee5\u4ee5classifier\u7684\u5f62\u5f0f\u9009\u53d6\u90e8\u5206\u9879\u76ee\u6587\u4ef6\u751f\u6210\u9644\u5c5e\u6784\u4ef6\uff0c\u5e76\u540c\u65f6install\u5230\u672c\u5730\u4ed3\u5e93\uff0c\u4e5f\u53ef\u4ee5deploy\u5230\u8fdc\u7a0b\u4ed3\u5e93\u3002"),(0,t.yg)("h4",{id:"versions-maven-plugin"},"versions-maven-plugin"),(0,t.yg)("p",null,"\u5f88\u591aMaven\u7528\u6237\u9047\u5230\u8fc7\u8fd9\u6837\u4e00\u4e2a\u95ee\u9898\uff0c\u5f53\u9879\u76ee\u5305\u542b\u5927\u91cf\u6a21\u5757\u7684\u65f6\u5019\uff0c\u4e3a\u4ed6\u4eec\u96c6\u4f53\u66f4\u65b0\u7248\u672c\u5c31\u53d8\u6210\u4e00\u4ef6\u70e6\u4eba\u7684\u4e8b\u60c5\uff0c\u5230\u5e95\u6709\u6ca1\u6709\u81ea\u52a8\u5316\u5de5\u5177\u80fd\u5e2e\u52a9\u5b8c\u6210\u8fd9\u4ef6 \u4e8b\u60c5\u5462\uff1f\uff08\u5f53\u7136\u4f60\u53ef\u4ee5\u4f7f\u7528sed\u4e4b\u7c7b\u7684\u6587\u672c\u64cd\u4f5c\u5de5\u5177\uff0c\u4e0d\u8fc7\u4e0d\u5728\u672c\u6587\u8ba8\u8bba\u8303\u56f4\uff09\u7b54\u6848\u662f\u80af\u5b9a\u7684\uff0cversions-maven- plugin\u63d0\u4f9b\u4e86\u5f88\u591a\u76ee\u6807\u5e2e\u52a9\u4f60\u7ba1\u7406Maven\u9879\u76ee\u7684\u5404\u79cd\u7248\u672c\u4fe1\u606f\u3002\u4f8b\u5982\u6700\u5e38\u7528\u7684\uff0c\u547d\u4ee4 mvn versions:set -DnewVersion=1.1-SNAPSHOT \u5c31\u80fd\u5e2e\u52a9\u4f60\u628a\u6240\u6709\u6a21\u5757\u7684\u7248\u672c\u66f4\u65b0\u52301.1-SNAPSHOT\u3002\u8be5\u63d2\u4ef6\u8fd8\u63d0\u4f9b\u4e86\u5176\u4ed6\u4e00\u4e9b\u5f88\u6709\u7528\u7684\u76ee\u6807\uff0cdisplay-dependency- updates\u80fd\u544a\u8bc9\u4f60\u9879\u76ee\u4f9d\u8d56\u6709\u54ea\u4e9b\u53ef\u7528\u7684\u66f4\u65b0\uff1b\u7c7b\u4f3c\u7684display-plugin-updates\u80fd\u544a\u8bc9\u4f60\u53ef\u7528\u7684\u63d2\u4ef6\u66f4\u65b0\uff1b\u7136\u540euse- latest-versions\u80fd\u81ea\u52a8\u5e2e\u4f60\u5c06\u6240\u6709\u4f9d\u8d56\u5347\u7ea7\u5230\u6700\u65b0\u7248\u672c\u3002\u6700\u540e\uff0c\u5982\u679c\u4f60\u5bf9\u6240\u505a\u7684\u66f4\u6539\u6ee1\u610f\uff0c\u5219\u53ef\u4ee5\u4f7f\u7528 mvn versions:commit \u63d0\u4ea4\uff0c\u4e0d\u6ee1\u610f\u7684\u8bdd\u4e5f\u53ef\u4ee5\u4f7f\u7528 mvn versions:revert \u8fdb\u884c\u64a4\u9500\u3002"))}m.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6407],{5680:(e,n,r)=>{r.d(n,{xA:()=>o,yg:()=>v});var a=r(6540);function t(e,n,r){return n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r,e}function l(e,n){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),r.push.apply(r,a)}return r}function i(e){for(var n=1;n=0||(t[r]=e[r]);return t}(e,n);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(t[r]=e[r])}return t}var u=a.createContext({}),s=function(e){var n=a.useContext(u),r=n;return e&&(r="function"==typeof e?e(n):i(i({},n),e)),r},o=function(e){var n=s(e.components);return a.createElement(u.Provider,{value:n},e.children)},g="mdxType",m={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},d=a.forwardRef((function(e,n){var r=e.components,t=e.mdxType,l=e.originalType,u=e.parentName,o=p(e,["components","mdxType","originalType","parentName"]),g=s(r),d=t,v=g["".concat(u,".").concat(d)]||g[d]||m[d]||l;return r?a.createElement(v,i(i({ref:n},o),{},{components:r})):a.createElement(v,i({ref:n},o))}));function v(e,n){var r=arguments,t=n&&n.mdxType;if("string"==typeof e||t){var l=r.length,i=new Array(l);i[0]=d;var p={};for(var u in n)hasOwnProperty.call(n,u)&&(p[u]=n[u]);p.originalType=e,p[g]="string"==typeof e?e:t,i[1]=p;for(var s=2;s{r.r(n),r.d(n,{assets:()=>u,contentTitle:()=>i,default:()=>m,frontMatter:()=>l,metadata:()=>p,toc:()=>s});var a=r(8168),t=(r(6540),r(5680));const l={},i=void 0,p={unversionedId:"study/program/JAVA/Maven",id:"study/program/JAVA/Maven",title:"Maven",description:"\u7b80\u4ecb",source:"@site/docs/study/program/JAVA/Maven.md",sourceDirName:"study/program/JAVA",slug:"/study/program/JAVA/Maven",permalink:"/docs/study/program/JAVA/Maven",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Guice",permalink:"/docs/study/program/JAVA/Guice"},next:{title:"RxJava",permalink:"/docs/study/program/JAVA/RxJava"}},u={},s=[{value:"\u7b80\u4ecb",id:"\u7b80\u4ecb",level:3},{value:"\u53c2\u6570",id:"\u53c2\u6570",level:3},{value:"\u63d2\u4ef6",id:"\u63d2\u4ef6",level:3},{value:"\u4e09\u79cd\u6253\u5305\u63d2\u4ef6",id:"\u4e09\u79cd\u6253\u5305\u63d2\u4ef6",level:4},{value:"maven-assembly-plugin",id:"maven-assembly-plugin",level:4},{value:"maven-enforcer-plugin",id:"maven-enforcer-plugin",level:4},{value:"maven-release-plugin",id:"maven-release-plugin",level:4},{value:"maven-resources-plugin",id:"maven-resources-plugin",level:4},{value:"build-helper-maven-plugin",id:"build-helper-maven-plugin",level:4},{value:"versions-maven-plugin",id:"versions-maven-plugin",level:4}],o={toc:s},g="wrapper";function m(e){let{components:n,...r}=e;return(0,t.yg)(g,(0,a.A)({},o,r,{components:n,mdxType:"MDXLayout"}),(0,t.yg)("h3",{id:"\u7b80\u4ecb"},"\u7b80\u4ecb"),(0,t.yg)("p",null,"\u672c\u8d28\u4e0a\u662f\u4e00\u4e2a\u63d2\u4ef6\u6846\u67b6\uff0c\u5b83\u7684\u6838\u5fc3\u5e76\u4e0d\u6267\u884c\u4efb\u4f55\u5177\u4f53\u7684\u6784\u5efa\u4efb\u52a1\uff0c\u6240\u6709\u8fd9\u4e9b\u4efb\u52a1\u90fd\u4ea4\u7ed9\u63d2\u4ef6\u6765\u5b8c\u6210\uff0c\u4f8b\u5982\u7f16\u8bd1\u6e90\u4ee3\u7801\u662f\u7531maven- compiler-plugin\u5b8c\u6210\u7684\u3002"),(0,t.yg)("h3",{id:"\u53c2\u6570"},"\u53c2\u6570"),(0,t.yg)("table",null,(0,t.yg)("thead",{parentName:"table"},(0,t.yg)("tr",{parentName:"thead"},(0,t.yg)("th",{parentName:"tr",align:null},"\u53c2\u6570"),(0,t.yg)("th",{parentName:"tr",align:null},"\u5168\u79f0"),(0,t.yg)("th",{parentName:"tr",align:null},"\u91ca\u4e49"),(0,t.yg)("th",{parentName:"tr",align:null},"\u8bf4\u660e"))),(0,t.yg)("tbody",{parentName:"table"},(0,t.yg)("tr",{parentName:"tbody"},(0,t.yg)("td",{parentName:"tr",align:null},"-pl"),(0,t.yg)("td",{parentName:"tr",align:null},"--projects"),(0,t.yg)("td",{parentName:"tr",align:null},"Build specified reactor projects instead of all projects"),(0,t.yg)("td",{parentName:"tr",align:null},"\u9009\u9879\u540e\u53ef\u8ddf\u968f{groupId}:{artifactId}\u6216\u8005\u6240\u9009\u6a21\u5757\u7684\u76f8\u5bf9\u8def\u5f84(\u591a\u4e2a\u6a21\u5757\u4ee5\u9017\u53f7\u5206\u9694)")),(0,t.yg)("tr",{parentName:"tbody"},(0,t.yg)("td",{parentName:"tr",align:null},"-am"),(0,t.yg)("td",{parentName:"tr",align:null},"--also-make"),(0,t.yg)("td",{parentName:"tr",align:null},"If project list is specified, also build projects required by the list"),(0,t.yg)("td",{parentName:"tr",align:null},"\u8868\u793a\u540c\u65f6\u5904\u7406\u9009\u5b9a\u6a21\u5757\u6240\u4f9d\u8d56\u7684\u6a21\u5757")),(0,t.yg)("tr",{parentName:"tbody"},(0,t.yg)("td",{parentName:"tr",align:null},"-amd"),(0,t.yg)("td",{parentName:"tr",align:null},"--also-make-dependents"),(0,t.yg)("td",{parentName:"tr",align:null},"If project list is specified, also build projects that depend on projects on the list"),(0,t.yg)("td",{parentName:"tr",align:null},"\u8868\u793a\u540c\u65f6\u5904\u7406\u4f9d\u8d56\u9009\u5b9a\u6a21\u5757\u7684\u6a21\u5757")),(0,t.yg)("tr",{parentName:"tbody"},(0,t.yg)("td",{parentName:"tr",align:null},"-N"),(0,t.yg)("td",{parentName:"tr",align:null},"--Non-recursive"),(0,t.yg)("td",{parentName:"tr",align:null},"Build projects without recursive"),(0,t.yg)("td",{parentName:"tr",align:null},"\u8868\u793a\u4e0d\u9012\u5f52\u5b50\u6a21\u5757")),(0,t.yg)("tr",{parentName:"tbody"},(0,t.yg)("td",{parentName:"tr",align:null},"-rf"),(0,t.yg)("td",{parentName:"tr",align:null},"--resume-from"),(0,t.yg)("td",{parentName:"tr",align:null},"Resume reactor from specified project"),(0,t.yg)("td",{parentName:"tr",align:null},"\u8868\u793a\u4ece\u6307\u5b9a\u6a21\u5757\u5f00\u59cb\u7ee7\u7eed\u5904\u7406")))),(0,t.yg)("h3",{id:"\u63d2\u4ef6"},"\u63d2\u4ef6"),(0,t.yg)("h4",{id:"\u4e09\u79cd\u6253\u5305\u63d2\u4ef6"},"\u4e09\u79cd\u6253\u5305\u63d2\u4ef6"),(0,t.yg)("ul",null,(0,t.yg)("li",{parentName:"ul"},"maven-jar-plugin\uff0c\u9ed8\u8ba4\u7684\u6253\u5305\u63d2\u4ef6\uff0c\u7528\u6765\u6253\u666e\u901a\u7684project JAR\u5305\uff1b"),(0,t.yg)("li",{parentName:"ul"},"maven-shade-plugin\uff0c\u7528\u6765\u6253\u53ef\u6267\u884cJAR\u5305\uff0c\u4e5f\u5c31\u662f\u6240\u8c13\u7684fat JAR\u5305\uff1b"),(0,t.yg)("li",{parentName:"ul"},"maven-assembly-plugin\uff0c\u652f\u6301\u81ea\u5b9a\u4e49\u7684\u6253\u5305\u7ed3\u6784\uff0c\u4e5f\u53ef\u4ee5\u5b9a\u5236\u4f9d\u8d56\u9879\u7b49\u3002")),(0,t.yg)("h4",{id:"maven-assembly-plugin"},"maven-assembly-plugin"),(0,t.yg)("p",null,"maven-assembly-plugin\u7684\u7528\u9014\u662f\u5236\u4f5c\u9879\u76ee\u5206\u53d1\u5305\uff0c\u8be5\u5206\u53d1\u5305\u53ef\u80fd\u5305\u542b\u4e86\u9879\u76ee\u7684\u53ef\u6267\u884c\u6587\u4ef6\u3001\u6e90\u4ee3\u7801\u3001readme\u3001\u5e73\u53f0\u811a\u672c\u7b49\u7b49\u3002maven-assembly-plugin\u652f\u6301\u5404\u79cd\u4e3b\u6d41\u7684\u683c\u5f0f\u5982zip\u3001tar.gz\u3001jar\u548cwar\u7b49\uff0c\u5177\u4f53\u6253\u5305\u54ea\u4e9b\u6587\u4ef6\u662f\u9ad8\u5ea6\u53ef\u63a7\u7684\uff0c\u4f8b\u5982\u7528\u6237\u53ef\u4ee5 \u6309\u6587\u4ef6\u7ea7\u522b\u7684\u7c92\u5ea6\u3001\u6587\u4ef6\u96c6\u7ea7\u522b\u7684\u7c92\u5ea6\u3001\u6a21\u5757\u7ea7\u522b\u7684\u7c92\u5ea6\u3001\u4ee5\u53ca\u4f9d\u8d56\u7ea7\u522b\u7684\u7c92\u5ea6\u63a7\u5236\u6253\u5305\uff0c\u6b64\u5916\uff0c\u5305\u542b\u548c\u6392\u9664\u914d\u7f6e\u4e5f\u662f\u652f\u6301\u7684\u3002maven-assembly- plugin\u8981\u6c42\u7528\u6237\u4f7f\u7528\u4e00\u4e2a\u540d\u4e3aassembly.xml\u7684\u5143\u6570\u636e\u6587\u4ef6\u6765\u8868\u8ff0\u6253\u5305\uff0c\u5b83\u7684single\u76ee\u6807\u53ef\u4ee5\u76f4\u63a5\u5728\u547d\u4ee4\u884c\u8c03\u7528\uff0c\u4e5f\u53ef\u4ee5\u88ab\u7ed1\u5b9a\u81f3\u751f\u547d\u5468\u671f\u3002"),(0,t.yg)("h4",{id:"maven-enforcer-plugin"},"maven-enforcer-plugin"),(0,t.yg)("p",null,"\u5728\u4e00\u4e2a\u7a0d\u5927\u4e00\u70b9\u7684\u7ec4\u7ec7\u6216\u56e2\u961f\u4e2d\uff0c\u4f60\u65e0\u6cd5\u4fdd\u8bc1\u6240\u6709\u6210\u5458\u90fd\u719f\u6089Maven\uff0c\u90a3\u4ed6\u4eec\u505a\u4e00\u4e9b\u6bd4\u8f83\u611a\u8822\u7684\u4e8b\u60c5\u5c31\u4f1a\u53d8\u5f97\u5f88\u6b63\u5e38\uff0c\u4f8b\u5982\u7ed9\u9879\u76ee\u5f15\u5165\u4e86\u5916\u90e8\u7684 SNAPSHOT\u4f9d\u8d56\u800c\u5bfc\u81f4\u6784\u5efa\u4e0d\u7a33\u5b9a\uff0c\u4f7f\u7528\u4e86\u4e00\u4e2a\u4e0e\u5927\u5bb6\u4e0d\u4e00\u81f4\u7684Maven\u7248\u672c\u800c\u7ecf\u5e38\u62b1\u6028\u6784\u5efa\u51fa\u73b0\u8be1\u5f02\u95ee\u9898\u3002maven-enforcer- plugin\u80fd\u591f\u5e2e\u52a9\u4f60\u907f\u514d\u4e4b\u7c7b\u95ee\u9898\uff0c\u5b83\u5141\u8bb8\u4f60\u521b\u5efa\u4e00\u7cfb\u5217\u89c4\u5219\u5f3a\u5236\u5927\u5bb6\u9075\u5b88\uff0c\u5305\u62ec\u8bbe\u5b9aJava\u7248\u672c\u3001\u8bbe\u5b9aMaven\u7248\u672c\u3001\u7981\u6b62\u67d0\u4e9b\u4f9d\u8d56\u3001\u7981\u6b62 SNAPSHOT\u4f9d\u8d56\u3002\u53ea\u8981\u5728\u4e00\u4e2a\u7236POM\u914d\u7f6e\u89c4\u5219\uff0c\u7136\u540e\u8ba9\u5927\u5bb6\u7ee7\u627f\uff0c\u5f53\u89c4\u5219\u906d\u5230\u7834\u574f\u7684\u65f6\u5019\uff0cMaven\u5c31\u4f1a\u62a5\u9519\u3002\u9664\u4e86\u6807\u51c6\u7684\u89c4\u5219\u4e4b\u5916\uff0c\u4f60\u8fd8\u53ef\u4ee5\u6269\u5c55\u8be5\u63d2 \u4ef6\uff0c\u7f16\u5199\u81ea\u5df1\u7684\u89c4\u5219\u3002maven-enforcer-plugin\u7684enforce\u76ee\u6807\u8d1f\u8d23\u68c0\u67e5\u89c4\u5219\uff0c\u5b83\u9ed8\u8ba4\u7ed1\u5b9a\u5230\u751f\u547d\u5468\u671f\u7684validate\u9636\u6bb5\u3002"),(0,t.yg)("h4",{id:"maven-release-plugin"},"maven-release-plugin"),(0,t.yg)("p",null,"maven-release-plugin\u7684\u7528\u9014\u662f\u5e2e\u52a9\u81ea\u52a8\u5316\u9879\u76ee\u7248\u672c\u53d1\u5e03\uff0c\u5b83\u4f9d\u8d56\u4e8ePOM\u4e2d\u7684SCM\u4fe1\u606f\u3002release:prepare\u7528\u6765\u51c6\u5907\u7248\u672c\u53d1\u5e03\uff0c\u5177\u4f53\u7684\u5de5\u4f5c\u5305\u62ec\u68c0\u67e5\u662f\u5426\u6709\u672a\u63d0\u4ea4\u4ee3\u7801\u3001\u68c0\u67e5\u662f\u5426\u6709SNAPSHOT\u4f9d\u8d56\u3001\u5347\u7ea7\u9879\u76ee\u7684SNAPSHOT\u7248\u672c\u81f3RELEASE\u7248\u672c\u3001\u4e3a\u9879\u76ee\u6253\u6807\u7b7e\u7b49\u7b49\u3002release:perform\u5219 \u662f\u7b7e\u51fa\u6807\u7b7e\u4e2d\u7684RELEASE\u6e90\u7801\uff0c\u6784\u5efa\u5e76\u53d1\u5e03\u3002\u7248\u672c\u53d1\u5e03\u662f\u975e\u5e38\u7410\u788e\u7684\u5de5\u4f5c\uff0c\u5b83\u6d89\u53ca\u4e86\u5404\u79cd\u68c0\u67e5\uff0c\u800c\u4e14\u7531\u4e8e\u8be5\u5de5\u4f5c\u4ec5\u4ec5\u662f\u5076\u5c14\u9700\u8981\uff0c\u56e0\u6b64\u624b\u52a8\u64cd\u4f5c\u5f88\u5bb9\u6613\u9057\u6f0f\u4e00 \u4e9b\u7ec6\u8282\uff0cmaven-release-plugin\u8ba9\u8be5\u5de5\u4f5c\u53d8\u5f97\u975e\u5e38\u5feb\u901f\u7b80\u4fbf\uff0c\u4e0d\u6613\u51fa\u9519\u3002maven-release-plugin\u7684\u5404\u79cd\u76ee\u6807\u901a\u5e38\u76f4\u63a5\u5728 \u547d\u4ee4\u884c\u8c03\u7528\uff0c\u56e0\u4e3a\u7248\u672c\u53d1\u5e03\u663e\u7136\u4e0d\u662f\u65e5\u5e38\u6784\u5efa\u751f\u547d\u5468\u671f\u7684\u4e00\u90e8\u5206\u3002"),(0,t.yg)("h4",{id:"maven-resources-plugin"},"maven-resources-plugin"),(0,t.yg)("p",null,"\u4e3a\u4e86\u4f7f\u9879\u76ee\u7ed3\u6784\u66f4\u4e3a\u6e05\u6670\uff0cMaven\u533a\u522b\u5bf9\u5f85Java\u4ee3\u7801\u6587\u4ef6\u548c\u8d44\u6e90\u6587\u4ef6\uff0cmaven-compiler-plugin\u7528\u6765\u7f16\u8bd1Java\u4ee3\u7801\uff0cmaven-resources-plugin\u5219\u7528\u6765\u5904\u7406\u8d44\u6e90\u6587\u4ef6\u3002\u9ed8\u8ba4\u7684\u4e3b\u8d44\u6e90\u6587\u4ef6\u76ee\u5f55\u662fsrc/main/resources\uff0c\u5f88\u591a\u7528\u6237\u4f1a\u9700\u8981\u6dfb\u52a0\u989d\u5916\u7684\u8d44\u6e90\u6587\u4ef6\u76ee\u5f55\uff0c\u8fd9\u4e2a\u65f6\u5019\u5c31\u53ef\u4ee5\u901a\u8fc7\u914d\u7f6emaven-resources-plugin\u6765\u5b9e\u73b0\u3002\u6b64\u5916\uff0c\u8d44\u6e90\u6587\u4ef6\u8fc7\u6ee4\u4e5f\u662fMaven\u7684\u4e00\u5927\u7279\u6027\uff0c\u4f60\u53ef\u4ee5\u5728\u8d44\u6e90\u6587\u4ef6\u4e2d\u4f7f\u7528${propertyName}\u5f62\u5f0f\u7684Maven\u5c5e\u6027\uff0c\u7136\u540e\u914d\u7f6emaven-resources-plugin\u5f00\u542f\u5bf9\u8d44\u6e90\u6587\u4ef6\u7684\u8fc7\u6ee4\uff0c\u4e4b\u540e\u5c31\u53ef\u4ee5\u9488\u5bf9\u4e0d\u540c\u73af\u5883\u901a\u8fc7\u547d\u4ee4\u884c\u6216\u8005Profile\u4f20\u5165\u5c5e\u6027\u7684\u503c\uff0c\u4ee5\u5b9e\u73b0\u66f4\u4e3a\u7075\u6d3b\u7684\u6784\u5efa\u3002"),(0,t.yg)("h4",{id:"build-helper-maven-plugin"},"build-helper-maven-plugin"),(0,t.yg)("p",null,"Maven\u9ed8\u8ba4\u53ea\u5141\u8bb8\u6307\u5b9a\u4e00\u4e2a\u4e3bJava\u4ee3\u7801\u76ee\u5f55\u548c\u4e00\u4e2a\u6d4b\u8bd5Java\u4ee3\u7801\u76ee\u5f55\uff0c\u867d\u7136\u8fd9\u5176\u5b9e\u662f\u4e2a\u5e94\u5f53\u5c3d\u91cf\u9075\u5b88\u7684\u7ea6\u5b9a\uff0c\u4f46\u5076\u5c14\u4f60\u8fd8\u662f\u4f1a\u5e0c\u671b\u80fd\u591f\u6307\u5b9a\u591a\u4e2a \u6e90\u7801\u76ee\u5f55\uff08\u4f8b\u5982\u4e3a\u4e86\u5e94\u5bf9\u9057\u7559\u9879\u76ee\uff09\uff0cbuild-helper-maven-plugin\u7684add-source\u76ee\u6807\u5c31\u662f\u670d\u52a1\u4e8e\u8fd9\u4e2a\u76ee\u7684\uff0c\u901a\u5e38\u5b83\u88ab\u7ed1\u5b9a\u5230 \u9ed8\u8ba4\u751f\u547d\u5468\u671f\u7684generate-sources\u9636\u6bb5\u4ee5\u6dfb\u52a0\u989d\u5916\u7684\u6e90\u7801\u76ee\u5f55\u3002\u9700\u8981\u5f3a\u8c03\u7684\u662f\uff0c\u8fd9\u79cd\u505a\u6cd5\u8fd8\u662f\u4e0d\u63a8\u8350\u7684\uff0c\u56e0\u4e3a\u5b83\u7834\u574f\u4e86 Maven\u7684\u7ea6\u5b9a\uff0c\u800c\u4e14\u53ef\u80fd\u4f1a\u9047\u5230\u5176\u4ed6\u4e25\u683c\u9075\u5b88\u7ea6\u5b9a\u7684\u63d2\u4ef6\u5de5\u5177\u65e0\u6cd5\u6b63\u786e\u8bc6\u522b\u989d\u5916\u7684\u6e90\u7801\u76ee\u5f55\u3002\nbuild-helper-maven-plugin\u7684\u53e6\u4e00\u4e2a\u975e\u5e38\u6709\u7528\u7684\u76ee\u6807\u662fattach-artifact\uff0c\u4f7f\u7528\u8be5\u76ee\u6807\u4f60\u53ef\u4ee5\u4ee5classifier\u7684\u5f62\u5f0f\u9009\u53d6\u90e8\u5206\u9879\u76ee\u6587\u4ef6\u751f\u6210\u9644\u5c5e\u6784\u4ef6\uff0c\u5e76\u540c\u65f6install\u5230\u672c\u5730\u4ed3\u5e93\uff0c\u4e5f\u53ef\u4ee5deploy\u5230\u8fdc\u7a0b\u4ed3\u5e93\u3002"),(0,t.yg)("h4",{id:"versions-maven-plugin"},"versions-maven-plugin"),(0,t.yg)("p",null,"\u5f88\u591aMaven\u7528\u6237\u9047\u5230\u8fc7\u8fd9\u6837\u4e00\u4e2a\u95ee\u9898\uff0c\u5f53\u9879\u76ee\u5305\u542b\u5927\u91cf\u6a21\u5757\u7684\u65f6\u5019\uff0c\u4e3a\u4ed6\u4eec\u96c6\u4f53\u66f4\u65b0\u7248\u672c\u5c31\u53d8\u6210\u4e00\u4ef6\u70e6\u4eba\u7684\u4e8b\u60c5\uff0c\u5230\u5e95\u6709\u6ca1\u6709\u81ea\u52a8\u5316\u5de5\u5177\u80fd\u5e2e\u52a9\u5b8c\u6210\u8fd9\u4ef6 \u4e8b\u60c5\u5462\uff1f\uff08\u5f53\u7136\u4f60\u53ef\u4ee5\u4f7f\u7528sed\u4e4b\u7c7b\u7684\u6587\u672c\u64cd\u4f5c\u5de5\u5177\uff0c\u4e0d\u8fc7\u4e0d\u5728\u672c\u6587\u8ba8\u8bba\u8303\u56f4\uff09\u7b54\u6848\u662f\u80af\u5b9a\u7684\uff0cversions-maven- plugin\u63d0\u4f9b\u4e86\u5f88\u591a\u76ee\u6807\u5e2e\u52a9\u4f60\u7ba1\u7406Maven\u9879\u76ee\u7684\u5404\u79cd\u7248\u672c\u4fe1\u606f\u3002\u4f8b\u5982\u6700\u5e38\u7528\u7684\uff0c\u547d\u4ee4 mvn versions:set -DnewVersion=1.1-SNAPSHOT \u5c31\u80fd\u5e2e\u52a9\u4f60\u628a\u6240\u6709\u6a21\u5757\u7684\u7248\u672c\u66f4\u65b0\u52301.1-SNAPSHOT\u3002\u8be5\u63d2\u4ef6\u8fd8\u63d0\u4f9b\u4e86\u5176\u4ed6\u4e00\u4e9b\u5f88\u6709\u7528\u7684\u76ee\u6807\uff0cdisplay-dependency- updates\u80fd\u544a\u8bc9\u4f60\u9879\u76ee\u4f9d\u8d56\u6709\u54ea\u4e9b\u53ef\u7528\u7684\u66f4\u65b0\uff1b\u7c7b\u4f3c\u7684display-plugin-updates\u80fd\u544a\u8bc9\u4f60\u53ef\u7528\u7684\u63d2\u4ef6\u66f4\u65b0\uff1b\u7136\u540euse- latest-versions\u80fd\u81ea\u52a8\u5e2e\u4f60\u5c06\u6240\u6709\u4f9d\u8d56\u5347\u7ea7\u5230\u6700\u65b0\u7248\u672c\u3002\u6700\u540e\uff0c\u5982\u679c\u4f60\u5bf9\u6240\u505a\u7684\u66f4\u6539\u6ee1\u610f\uff0c\u5219\u53ef\u4ee5\u4f7f\u7528 mvn versions:commit \u63d0\u4ea4\uff0c\u4e0d\u6ee1\u610f\u7684\u8bdd\u4e5f\u53ef\u4ee5\u4f7f\u7528 mvn versions:revert \u8fdb\u884c\u64a4\u9500\u3002"))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1ea907ab.da6d14c7.js b/assets/js/1ea907ab.a02dc11b.js similarity index 98% rename from assets/js/1ea907ab.da6d14c7.js rename to assets/js/1ea907ab.a02dc11b.js index 63372022c..8fed3f8b2 100644 --- a/assets/js/1ea907ab.da6d14c7.js +++ b/assets/js/1ea907ab.a02dc11b.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3441],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>y});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),p=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(l.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),s=p(r),m=o,y=s["".concat(l,".").concat(m)]||s[m]||d[m]||a;return r?n.createElement(y,c(c({ref:t},u),{},{components:r})):n.createElement(y,c({ref:t},u))}));function y(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=m;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[s]="string"==typeof e?e:o,c[1]=i;for(var p=2;p{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>c,default:()=>d,frontMatter:()=>a,metadata:()=>i,toc:()=>p});var n=r(8168),o=(r(6540),r(5680));const a={},c=void 0,i={unversionedId:"study/program/C/extern-c",id:"study/program/C/extern-c",title:"extern-c",description:'extern "C"',source:"@site/docs/study/program/C/extern-c.md",sourceDirName:"study/program/C",slug:"/study/program/C/extern-c",permalink:"/docs/study/program/C/extern-c",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"cmake",permalink:"/docs/study/program/C/cmake"},next:{title:"make",permalink:"/docs/study/program/C/make"}},l={},p=[{value:"extern "C"",id:"extern-c",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],u={toc:p},s="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"extern-c"},'extern "C"'),(0,o.yg)("p",null,'\u5176\u5b9e\u5c31\u662f C++\u6587\u4ef6\u4e3a\u4e86\u517c\u5bb9 C\uff0c\u88ab\u5934\u6587\u4ef6\u6807\u8bb0 extern "C"\u7684\u51fd\u6570\uff0c\u5982\u679c C++\u6587\u4ef6\u5b9e\u73b0\u4e86\u6b64\u51fd\u6570\uff0c\u662f\u9700\u8981\u88ab extern "C"{}\u5305\u88f9\u7684\u3002\u5982\u679c C \u6587\u4ef6\u5b9e\u73b0\uff0c\u662f\u4e0d\u9700\u8981\u5305\u88f9\u7684\u3002'),(0,o.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://baike.baidu.com/item/extern%20%22C%22/15267013?fr=ge_ala"},'\u767e\u5ea6\u767e\u79d1-extern "C"'))))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3441],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>y});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),p=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(l.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),s=p(r),m=o,y=s["".concat(l,".").concat(m)]||s[m]||d[m]||a;return r?n.createElement(y,c(c({ref:t},u),{},{components:r})):n.createElement(y,c({ref:t},u))}));function y(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=m;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[s]="string"==typeof e?e:o,c[1]=i;for(var p=2;p{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>c,default:()=>d,frontMatter:()=>a,metadata:()=>i,toc:()=>p});var n=r(8168),o=(r(6540),r(5680));const a={},c=void 0,i={unversionedId:"study/program/C/extern-c",id:"study/program/C/extern-c",title:"extern-c",description:'extern "C"',source:"@site/docs/study/program/C/extern-c.md",sourceDirName:"study/program/C",slug:"/study/program/C/extern-c",permalink:"/docs/study/program/C/extern-c",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"cmake",permalink:"/docs/study/program/C/cmake"},next:{title:"make",permalink:"/docs/study/program/C/make"}},l={},p=[{value:"extern "C"",id:"extern-c",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],u={toc:p},s="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"extern-c"},'extern "C"'),(0,o.yg)("p",null,'\u5176\u5b9e\u5c31\u662f C++\u6587\u4ef6\u4e3a\u4e86\u517c\u5bb9 C\uff0c\u88ab\u5934\u6587\u4ef6\u6807\u8bb0 extern "C"\u7684\u51fd\u6570\uff0c\u5982\u679c C++\u6587\u4ef6\u5b9e\u73b0\u4e86\u6b64\u51fd\u6570\uff0c\u662f\u9700\u8981\u88ab extern "C"{}\u5305\u88f9\u7684\u3002\u5982\u679c C \u6587\u4ef6\u5b9e\u73b0\uff0c\u662f\u4e0d\u9700\u8981\u5305\u88f9\u7684\u3002'),(0,o.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://baike.baidu.com/item/extern%20%22C%22/15267013?fr=ge_ala"},'\u767e\u5ea6\u767e\u79d1-extern "C"'))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/2015f8aa.a32339a2.js b/assets/js/2015f8aa.608ea198.js similarity index 98% rename from assets/js/2015f8aa.a32339a2.js rename to assets/js/2015f8aa.608ea198.js index cdadc035d..6d8259a81 100644 --- a/assets/js/2015f8aa.a32339a2.js +++ b/assets/js/2015f8aa.608ea198.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[407],{5680:(e,t,n)=>{n.d(t,{xA:()=>l,yg:()=>f});var r=n(6540);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=r.createContext({}),u=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},l=function(e){var t=u(e.components);return r.createElement(s.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},y=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,l=c(e,["components","mdxType","originalType","parentName"]),p=u(n),y=o,f=p["".concat(s,".").concat(y)]||p[y]||d[y]||a;return n?r.createElement(f,i(i({ref:t},l),{},{components:n})):r.createElement(f,i({ref:t},l))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=y;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[p]="string"==typeof e?e:o,i[1]=c;for(var u=2;u{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>u});var r=n(8168),o=(n(6540),n(5680));const a={},i="Linux netns",c={unversionedId:"study/net/netns",id:"study/net/netns",title:"Linux netns",description:"\u53c2\u8003",source:"@site/docs/study/net/netns.md",sourceDirName:"study/net",slug:"/study/net/netns",permalink:"/docs/study/net/netns",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Linux iptables \u9632\u706b\u5899",permalink:"/docs/study/net/iptables"},next:{title:"P2P \u7f51\u7edc NAT \u7a7f\u900f\u539f\u7406(\u6253\u6d1e\u65b9\u6848)",permalink:"/docs/study/net/p2p"}},s={},u=[{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],l={toc:u},p="wrapper";function d(e){let{components:t,...n}=e;return(0,o.yg)(p,(0,r.A)({},l,n,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"linux-netns"},"Linux netns"),(0,o.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://zhuanlan.zhihu.com/p/293659403"},"Linux netns \u8be6\u89e3"))))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[407],{5680:(e,t,n)=>{n.d(t,{xA:()=>l,yg:()=>f});var r=n(6540);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=r.createContext({}),u=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},l=function(e){var t=u(e.components);return r.createElement(s.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},y=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,l=c(e,["components","mdxType","originalType","parentName"]),p=u(n),y=o,f=p["".concat(s,".").concat(y)]||p[y]||d[y]||a;return n?r.createElement(f,i(i({ref:t},l),{},{components:n})):r.createElement(f,i({ref:t},l))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=y;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[p]="string"==typeof e?e:o,i[1]=c;for(var u=2;u{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>u});var r=n(8168),o=(n(6540),n(5680));const a={},i="Linux netns",c={unversionedId:"study/net/netns",id:"study/net/netns",title:"Linux netns",description:"\u53c2\u8003",source:"@site/docs/study/net/netns.md",sourceDirName:"study/net",slug:"/study/net/netns",permalink:"/docs/study/net/netns",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Linux iptables \u9632\u706b\u5899",permalink:"/docs/study/net/iptables"},next:{title:"P2P \u7f51\u7edc NAT \u7a7f\u900f\u539f\u7406(\u6253\u6d1e\u65b9\u6848)",permalink:"/docs/study/net/p2p"}},s={},u=[{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],l={toc:u},p="wrapper";function d(e){let{components:t,...n}=e;return(0,o.yg)(p,(0,r.A)({},l,n,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"linux-netns"},"Linux netns"),(0,o.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://zhuanlan.zhihu.com/p/293659403"},"Linux netns \u8be6\u89e3"))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/20ecba9b.f64d1336.js b/assets/js/20ecba9b.7cc5d97e.js similarity index 99% rename from assets/js/20ecba9b.f64d1336.js rename to assets/js/20ecba9b.7cc5d97e.js index 878b6279b..ce9bcf6ea 100644 --- a/assets/js/20ecba9b.f64d1336.js +++ b/assets/js/20ecba9b.7cc5d97e.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5779],{5680:(e,n,r)=>{r.d(n,{xA:()=>i,yg:()=>m});var t=r(6540);function a(e,n,r){return n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r,e}function o(e,n){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);n&&(t=t.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),r.push.apply(r,t)}return r}function s(e){for(var n=1;n=0||(a[r]=e[r]);return a}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var l=t.createContext({}),d=function(e){var n=t.useContext(l),r=n;return e&&(r="function"==typeof e?e(n):s(s({},n),e)),r},i=function(e){var n=d(e.components);return t.createElement(l.Provider,{value:n},e.children)},u="mdxType",p={inlineCode:"code",wrapper:function(e){var n=e.children;return t.createElement(t.Fragment,{},n)}},y=t.forwardRef((function(e,n){var r=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,i=c(e,["components","mdxType","originalType","parentName"]),u=d(r),y=a,m=u["".concat(l,".").concat(y)]||u[y]||p[y]||o;return r?t.createElement(m,s(s({ref:n},i),{},{components:r})):t.createElement(m,s({ref:n},i))}));function m(e,n){var r=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var o=r.length,s=new Array(o);s[0]=y;var c={};for(var l in n)hasOwnProperty.call(n,l)&&(c[l]=n[l]);c.originalType=e,c[u]="string"==typeof e?e:a,s[1]=c;for(var d=2;d{r.r(n),r.d(n,{assets:()=>l,contentTitle:()=>s,default:()=>p,frontMatter:()=>o,metadata:()=>c,toc:()=>d});var t=r(8168),a=(r(6540),r(5680));const o={},s=void 0,c={unversionedId:"study/docker/Docker\u7684\u4f7f\u7528\u603b\u7ed3",id:"study/docker/Docker\u7684\u4f7f\u7528\u603b\u7ed3",title:"Docker\u7684\u4f7f\u7528\u603b\u7ed3",description:"1. Docker\u547d\u4ee4\u8be6\u89e3(run\u7bc7)\xa0\u94fe\u63a5",source:"@site/docs/study/docker/Docker\u7684\u4f7f\u7528\u603b\u7ed3.md",sourceDirName:"study/docker",slug:"/study/docker/Docker\u7684\u4f7f\u7528\u603b\u7ed3",permalink:"/docs/study/docker/Docker\u7684\u4f7f\u7528\u603b\u7ed3",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Docker_Docker-compose",permalink:"/docs/study/docker/Docker_Docker-compose"},next:{title:"docker-linux",permalink:"/docs/study/docker/docker-linux"}},l={},d=[{value:"\u5e38\u7528\u547d\u4ee4\u5927\u5168",id:"\u5e38\u7528\u547d\u4ee4\u5927\u5168",level:3},{value:"\u4fee\u6539\u5bb9\u5668\u914d\u7f6e",id:"\u4fee\u6539\u5bb9\u5668\u914d\u7f6e",level:3},{value:"\u5bb9\u5668\u81ea\u52a8\u542f\u52a8",id:"\u5bb9\u5668\u81ea\u52a8\u542f\u52a8",level:3},{value:"\u5b89\u88c5",id:"\u5b89\u88c5",level:3},{value:"jenkins",id:"jenkins",level:3},{value:"nexus",id:"nexus",level:3},{value:"\u5bb9\u5668\u65f6\u533a\u95ee\u9898",id:"\u5bb9\u5668\u65f6\u533a\u95ee\u9898",level:3},{value:"\u67e5\u770b\u548c\u6e05\u9664\u5bb9\u5668\u65e5\u5fd7",id:"\u67e5\u770b\u548c\u6e05\u9664\u5bb9\u5668\u65e5\u5fd7",level:3}],i={toc:d},u="wrapper";function p(e){let{components:n,...o}=e;return(0,a.yg)(u,(0,t.A)({},i,o,{components:n,mdxType:"MDXLayout"}),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},"Docker\u547d\u4ee4\u8be6\u89e3(run\u7bc7)\xa0\u94fe\u63a5"),(0,a.yg)("li",{parentName:"ol"},"\u641c\u7d22\u7248\u672c\u53f7\xa0",(0,a.yg)("a",{parentName:"li",href:"https://hub.docker.com"},"https://hub.docker.com")),(0,a.yg)("li",{parentName:"ol"},"\u811a\u672c\u641c\u7d22\u7248\u672c\u53f7\xa0",(0,a.yg)("a",{parentName:"li",href:"https://blog.csdn.net/CodyGuo/article/details/86515354"},"docker-tags")),(0,a.yg)("li",{parentName:"ol"},"Dcoker\u6570\u636e\u6e90\uff0c\u4fee\u6539\u6587\u4ef6\xa0/etc/docker/daemon.json")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-json"},'\n{ \n "registry-mirrors": ["https://registry.docker-cn.com","http://hub-mirror.c.163.com","https://docker.mirrors.ustc.edu.cn"] \n}\n\n\n')),(0,a.yg)("h3",{id:"\u5e38\u7528\u547d\u4ee4\u5927\u5168"},"\u5e38\u7528\u547d\u4ee4\u5927\u5168"),(0,a.yg)("p",null,(0,a.yg)("img",{alt:"1.png",src:r(3579).A,width:"750",height:"538"})),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},"#\u83b7\u53d6\u67d0\u4e2adocker\u5bb9\u5668\u7684IP\u5730\u5740\ndocker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' container_name_or_id\n")),(0,a.yg)("h3",{id:"\u4fee\u6539\u5bb9\u5668\u914d\u7f6e"},"\u4fee\u6539\u5bb9\u5668\u914d\u7f6e"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},"/var/lib/docker/containers/[hash_of_the_container]/hostconfig.json\nsystemctl restart docker\n#\u6b64\u79cd\u65b9\u6cd5 \u6211\u8bd5\u9a8c\u4e86\uff0c\u8c8c\u4f3c\u4e0d\u884c\uff0c\u6709\u7a7a\u518d\u5b9e\u9a8c\u4e00\u4e0b\n")),(0,a.yg)("h3",{id:"\u5bb9\u5668\u81ea\u52a8\u542f\u52a8"},"\u5bb9\u5668\u81ea\u52a8\u542f\u52a8"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},"docker run --restart=always \n#no - \u5bb9\u5668\u9000\u51fa\u65f6\uff0c\u4e0d\u91cd\u542f\u5bb9\u5668\uff1b\n#on-failure - \u53ea\u6709\u5728\u975e0\u72b6\u6001\u9000\u51fa\u65f6\u624d\u4ece\u65b0\u542f\u52a8\u5bb9\u5668\uff1b\n#always - \u65e0\u8bba\u9000\u51fa\u72b6\u6001\u662f\u5982\u4f55\uff0c\u90fd\u91cd\u542f\u5bb9\u5668\uff1b\n#\u5982\u679c\u521b\u5efa\u65f6\u672a\u6307\u5b9a --restart=always ,\u53ef\u901a\u8fc7update \u547d\u4ee4\ndocker update --restart=always xxx\ndocker update --restart=always api\ndocker update --restart=always redis\ndocker update --restart=always es\n#\ndocker update --restart=no es-xx.2\n")),(0,a.yg)("h3",{id:"\u5b89\u88c5"},"\u5b89\u88c5"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},"#\u5b89\u88c5\u65b9\u5f0f\u4e00\nyum install docker\nsystemctl start docker\n")),(0,a.yg)("h3",{id:"jenkins"},"jenkins"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},"\n\ndocker pull jenkins\n\n#mkdir -p /mnt/docker/jenkins/jenkins_home\nmkdir -p ~/Documents/docker/jenkins/jenkins_home\n\ndocker run --name jenkins -p 8080:8080 -p 50000:50000 -v ~/Documents/docker/jenkins/jenkins_home:/var/jenkins_home -d jenkins:latest\n\n\n#\u67e5\u770b\u7ba1\u7406\u5458\u5bc6\u7801\ndocker logs jenkins\n\n\n")),(0,a.yg)("h3",{id:"nexus"},"nexus"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},"\nmkdir -p /mnt/docker/nexus/nexus-data\nmkdir -p ~/Documents/docker/nexus/nexus-data\n\ndocker pull sonatype/nexus3 \n\n\ndocker run -d --name nexus3 \\\n --restart=always \\\n-p 8081:8081 \\\n-p 8082:8082 \\\n-p 8083:8083 \\\n-p 8084:8084 \\\n-p 8085:8085 \\\n-v /mnt/docker/nexus/nexus-data:/nexus-data \\\nsonatype/nexus3\n\n\ndocker run -d --name nexus3 \\\n --restart=always \\\n-p 8081:8081 \\\n-p 8082:8082 \\\n-p 8083:8083 \\\n-p 8084:8084 \\\n-p 8085:8085 \\\n-v ~/Documents/docker/nexus/nexus-data:/nexus-data \\\nsonatype/nexus3\n\n")),(0,a.yg)("h3",{id:"\u5bb9\u5668\u65f6\u533a\u95ee\u9898"},"\u5bb9\u5668\u65f6\u533a\u95ee\u9898"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},"# \u521b\u5efa\u5bb9\u5668\u7684\u65f6\u5019\u52a0\u4e0a\u8fd9\u4e2a\u53c2\u6570 \u4f1a\u8ba9\u5bb9\u5668\u91c7\u7528\u5bbf\u4e3b\u673a\u7684\u65f6\u533a\n-v /etc/localtime:/etc/localtime \n")),(0,a.yg)("h3",{id:"\u67e5\u770b\u548c\u6e05\u9664\u5bb9\u5668\u65e5\u5fd7"},"\u67e5\u770b\u548c\u6e05\u9664\u5bb9\u5668\u65e5\u5fd7"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},"#\nls -lh $(find /var/lib/docker/containers/ -name *-json.log)\n#\ntruncate -s 0 /var/lib/docker/containers/*/*-json.log\n#\u7528\u4e8e\u67e5\u770bDocker\u7684\u78c1\u76d8\u4f7f\u7528\u60c5\u51b5\ndocker system df\n#\u7528\u4e8e\u67e5\u770bDocker\u7684\u78c1\u76d8\u4f7f\u7528\u60c5\u51b5 \u8be6\u7ec6\u60c5\u51b5\ndocker system df -v\n#\u7528\u4e8e\u6e05\u7406\u78c1\u76d8\uff0c\u5220\u9664\u5173\u95ed\u7684\u5bb9\u5668\u3001\u65e0\u7528\u7684\u6570\u636e\u5377\u548c\u7f51\u7edc\uff0c\u4ee5\u53cadangling\u955c\u50cf\uff08\u5373\u65e0tag\u7684\u955c\u50cf\uff09\ndocker system prune\n#\u6e05\u7406\u5f97\u66f4\u52a0\u5f7b\u5e95\uff0c\u53ef\u4ee5\u5c06\u6ca1\u6709\u5bb9\u5668\u4f7f\u7528Docker\u955c\u50cf\u90fd\u5220\u6389\u3002\ndocker system prune -a\n")),(0,a.yg)("p",null,(0,a.yg)("a",{parentName:"p",href:"https://developer.aliyun.com/article/272173"},"\u53c2\u80031")))}p.isMDXComponent=!0},3579:(e,n,r)=>{r.d(n,{A:()=>t});const t=r.p+"assets/images/1-b23594a1c043f6f3f2961f17d876ef47.png"}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5779],{5680:(e,n,r)=>{r.d(n,{xA:()=>i,yg:()=>m});var t=r(6540);function a(e,n,r){return n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r,e}function o(e,n){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);n&&(t=t.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),r.push.apply(r,t)}return r}function s(e){for(var n=1;n=0||(a[r]=e[r]);return a}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var l=t.createContext({}),d=function(e){var n=t.useContext(l),r=n;return e&&(r="function"==typeof e?e(n):s(s({},n),e)),r},i=function(e){var n=d(e.components);return t.createElement(l.Provider,{value:n},e.children)},u="mdxType",p={inlineCode:"code",wrapper:function(e){var n=e.children;return t.createElement(t.Fragment,{},n)}},y=t.forwardRef((function(e,n){var r=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,i=c(e,["components","mdxType","originalType","parentName"]),u=d(r),y=a,m=u["".concat(l,".").concat(y)]||u[y]||p[y]||o;return r?t.createElement(m,s(s({ref:n},i),{},{components:r})):t.createElement(m,s({ref:n},i))}));function m(e,n){var r=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var o=r.length,s=new Array(o);s[0]=y;var c={};for(var l in n)hasOwnProperty.call(n,l)&&(c[l]=n[l]);c.originalType=e,c[u]="string"==typeof e?e:a,s[1]=c;for(var d=2;d{r.r(n),r.d(n,{assets:()=>l,contentTitle:()=>s,default:()=>p,frontMatter:()=>o,metadata:()=>c,toc:()=>d});var t=r(8168),a=(r(6540),r(5680));const o={},s=void 0,c={unversionedId:"study/docker/Docker\u7684\u4f7f\u7528\u603b\u7ed3",id:"study/docker/Docker\u7684\u4f7f\u7528\u603b\u7ed3",title:"Docker\u7684\u4f7f\u7528\u603b\u7ed3",description:"1. Docker\u547d\u4ee4\u8be6\u89e3(run\u7bc7)\xa0\u94fe\u63a5",source:"@site/docs/study/docker/Docker\u7684\u4f7f\u7528\u603b\u7ed3.md",sourceDirName:"study/docker",slug:"/study/docker/Docker\u7684\u4f7f\u7528\u603b\u7ed3",permalink:"/docs/study/docker/Docker\u7684\u4f7f\u7528\u603b\u7ed3",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Docker_Docker-compose",permalink:"/docs/study/docker/Docker_Docker-compose"},next:{title:"docker-linux",permalink:"/docs/study/docker/docker-linux"}},l={},d=[{value:"\u5e38\u7528\u547d\u4ee4\u5927\u5168",id:"\u5e38\u7528\u547d\u4ee4\u5927\u5168",level:3},{value:"\u4fee\u6539\u5bb9\u5668\u914d\u7f6e",id:"\u4fee\u6539\u5bb9\u5668\u914d\u7f6e",level:3},{value:"\u5bb9\u5668\u81ea\u52a8\u542f\u52a8",id:"\u5bb9\u5668\u81ea\u52a8\u542f\u52a8",level:3},{value:"\u5b89\u88c5",id:"\u5b89\u88c5",level:3},{value:"jenkins",id:"jenkins",level:3},{value:"nexus",id:"nexus",level:3},{value:"\u5bb9\u5668\u65f6\u533a\u95ee\u9898",id:"\u5bb9\u5668\u65f6\u533a\u95ee\u9898",level:3},{value:"\u67e5\u770b\u548c\u6e05\u9664\u5bb9\u5668\u65e5\u5fd7",id:"\u67e5\u770b\u548c\u6e05\u9664\u5bb9\u5668\u65e5\u5fd7",level:3}],i={toc:d},u="wrapper";function p(e){let{components:n,...o}=e;return(0,a.yg)(u,(0,t.A)({},i,o,{components:n,mdxType:"MDXLayout"}),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},"Docker\u547d\u4ee4\u8be6\u89e3(run\u7bc7)\xa0\u94fe\u63a5"),(0,a.yg)("li",{parentName:"ol"},"\u641c\u7d22\u7248\u672c\u53f7\xa0",(0,a.yg)("a",{parentName:"li",href:"https://hub.docker.com"},"https://hub.docker.com")),(0,a.yg)("li",{parentName:"ol"},"\u811a\u672c\u641c\u7d22\u7248\u672c\u53f7\xa0",(0,a.yg)("a",{parentName:"li",href:"https://blog.csdn.net/CodyGuo/article/details/86515354"},"docker-tags")),(0,a.yg)("li",{parentName:"ol"},"Dcoker\u6570\u636e\u6e90\uff0c\u4fee\u6539\u6587\u4ef6\xa0/etc/docker/daemon.json")),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-json"},'\n{ \n "registry-mirrors": ["https://registry.docker-cn.com","http://hub-mirror.c.163.com","https://docker.mirrors.ustc.edu.cn"] \n}\n\n\n')),(0,a.yg)("h3",{id:"\u5e38\u7528\u547d\u4ee4\u5927\u5168"},"\u5e38\u7528\u547d\u4ee4\u5927\u5168"),(0,a.yg)("p",null,(0,a.yg)("img",{alt:"1.png",src:r(3579).A,width:"750",height:"538"})),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},"#\u83b7\u53d6\u67d0\u4e2adocker\u5bb9\u5668\u7684IP\u5730\u5740\ndocker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' container_name_or_id\n")),(0,a.yg)("h3",{id:"\u4fee\u6539\u5bb9\u5668\u914d\u7f6e"},"\u4fee\u6539\u5bb9\u5668\u914d\u7f6e"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},"/var/lib/docker/containers/[hash_of_the_container]/hostconfig.json\nsystemctl restart docker\n#\u6b64\u79cd\u65b9\u6cd5 \u6211\u8bd5\u9a8c\u4e86\uff0c\u8c8c\u4f3c\u4e0d\u884c\uff0c\u6709\u7a7a\u518d\u5b9e\u9a8c\u4e00\u4e0b\n")),(0,a.yg)("h3",{id:"\u5bb9\u5668\u81ea\u52a8\u542f\u52a8"},"\u5bb9\u5668\u81ea\u52a8\u542f\u52a8"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},"docker run --restart=always \n#no - \u5bb9\u5668\u9000\u51fa\u65f6\uff0c\u4e0d\u91cd\u542f\u5bb9\u5668\uff1b\n#on-failure - \u53ea\u6709\u5728\u975e0\u72b6\u6001\u9000\u51fa\u65f6\u624d\u4ece\u65b0\u542f\u52a8\u5bb9\u5668\uff1b\n#always - \u65e0\u8bba\u9000\u51fa\u72b6\u6001\u662f\u5982\u4f55\uff0c\u90fd\u91cd\u542f\u5bb9\u5668\uff1b\n#\u5982\u679c\u521b\u5efa\u65f6\u672a\u6307\u5b9a --restart=always ,\u53ef\u901a\u8fc7update \u547d\u4ee4\ndocker update --restart=always xxx\ndocker update --restart=always api\ndocker update --restart=always redis\ndocker update --restart=always es\n#\ndocker update --restart=no es-xx.2\n")),(0,a.yg)("h3",{id:"\u5b89\u88c5"},"\u5b89\u88c5"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},"#\u5b89\u88c5\u65b9\u5f0f\u4e00\nyum install docker\nsystemctl start docker\n")),(0,a.yg)("h3",{id:"jenkins"},"jenkins"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},"\n\ndocker pull jenkins\n\n#mkdir -p /mnt/docker/jenkins/jenkins_home\nmkdir -p ~/Documents/docker/jenkins/jenkins_home\n\ndocker run --name jenkins -p 8080:8080 -p 50000:50000 -v ~/Documents/docker/jenkins/jenkins_home:/var/jenkins_home -d jenkins:latest\n\n\n#\u67e5\u770b\u7ba1\u7406\u5458\u5bc6\u7801\ndocker logs jenkins\n\n\n")),(0,a.yg)("h3",{id:"nexus"},"nexus"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},"\nmkdir -p /mnt/docker/nexus/nexus-data\nmkdir -p ~/Documents/docker/nexus/nexus-data\n\ndocker pull sonatype/nexus3 \n\n\ndocker run -d --name nexus3 \\\n --restart=always \\\n-p 8081:8081 \\\n-p 8082:8082 \\\n-p 8083:8083 \\\n-p 8084:8084 \\\n-p 8085:8085 \\\n-v /mnt/docker/nexus/nexus-data:/nexus-data \\\nsonatype/nexus3\n\n\ndocker run -d --name nexus3 \\\n --restart=always \\\n-p 8081:8081 \\\n-p 8082:8082 \\\n-p 8083:8083 \\\n-p 8084:8084 \\\n-p 8085:8085 \\\n-v ~/Documents/docker/nexus/nexus-data:/nexus-data \\\nsonatype/nexus3\n\n")),(0,a.yg)("h3",{id:"\u5bb9\u5668\u65f6\u533a\u95ee\u9898"},"\u5bb9\u5668\u65f6\u533a\u95ee\u9898"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},"# \u521b\u5efa\u5bb9\u5668\u7684\u65f6\u5019\u52a0\u4e0a\u8fd9\u4e2a\u53c2\u6570 \u4f1a\u8ba9\u5bb9\u5668\u91c7\u7528\u5bbf\u4e3b\u673a\u7684\u65f6\u533a\n-v /etc/localtime:/etc/localtime \n")),(0,a.yg)("h3",{id:"\u67e5\u770b\u548c\u6e05\u9664\u5bb9\u5668\u65e5\u5fd7"},"\u67e5\u770b\u548c\u6e05\u9664\u5bb9\u5668\u65e5\u5fd7"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},"#\nls -lh $(find /var/lib/docker/containers/ -name *-json.log)\n#\ntruncate -s 0 /var/lib/docker/containers/*/*-json.log\n#\u7528\u4e8e\u67e5\u770bDocker\u7684\u78c1\u76d8\u4f7f\u7528\u60c5\u51b5\ndocker system df\n#\u7528\u4e8e\u67e5\u770bDocker\u7684\u78c1\u76d8\u4f7f\u7528\u60c5\u51b5 \u8be6\u7ec6\u60c5\u51b5\ndocker system df -v\n#\u7528\u4e8e\u6e05\u7406\u78c1\u76d8\uff0c\u5220\u9664\u5173\u95ed\u7684\u5bb9\u5668\u3001\u65e0\u7528\u7684\u6570\u636e\u5377\u548c\u7f51\u7edc\uff0c\u4ee5\u53cadangling\u955c\u50cf\uff08\u5373\u65e0tag\u7684\u955c\u50cf\uff09\ndocker system prune\n#\u6e05\u7406\u5f97\u66f4\u52a0\u5f7b\u5e95\uff0c\u53ef\u4ee5\u5c06\u6ca1\u6709\u5bb9\u5668\u4f7f\u7528Docker\u955c\u50cf\u90fd\u5220\u6389\u3002\ndocker system prune -a\n")),(0,a.yg)("p",null,(0,a.yg)("a",{parentName:"p",href:"https://developer.aliyun.com/article/272173"},"\u53c2\u80031")))}p.isMDXComponent=!0},3579:(e,n,r)=>{r.d(n,{A:()=>t});const t=r.p+"assets/images/1-b23594a1c043f6f3f2961f17d876ef47.png"}}]); \ No newline at end of file diff --git a/assets/js/228940c7.21236534.js b/assets/js/228940c7.76968ffc.js similarity index 98% rename from assets/js/228940c7.21236534.js rename to assets/js/228940c7.76968ffc.js index fab263483..c1760f15a 100644 --- a/assets/js/228940c7.21236534.js +++ b/assets/js/228940c7.76968ffc.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7152],{5680:(e,r,t)=>{t.d(r,{xA:()=>u,yg:()=>d});var n=t(6540);function o(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function a(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function p(e){for(var r=1;r=0||(o[t]=e[t]);return o}(e,r);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var c=n.createContext({}),i=function(e){var r=n.useContext(c),t=r;return e&&(t="function"==typeof e?e(r):p(p({},r),e)),t},u=function(e){var r=i(e.components);return n.createElement(c.Provider,{value:r},e.children)},s="mdxType",m={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},y=n.forwardRef((function(e,r){var t=e.components,o=e.mdxType,a=e.originalType,c=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),s=i(t),y=o,d=s["".concat(c,".").concat(y)]||s[y]||m[y]||a;return t?n.createElement(d,p(p({ref:r},u),{},{components:t})):n.createElement(d,p({ref:r},u))}));function d(e,r){var t=arguments,o=r&&r.mdxType;if("string"==typeof e||o){var a=t.length,p=new Array(a);p[0]=y;var l={};for(var c in r)hasOwnProperty.call(r,c)&&(l[c]=r[c]);l.originalType=e,l[s]="string"==typeof e?e:o,p[1]=l;for(var i=2;i{t.r(r),t.d(r,{assets:()=>c,contentTitle:()=>p,default:()=>m,frontMatter:()=>a,metadata:()=>l,toc:()=>i});var n=t(8168),o=(t(6540),t(5680));const a={},p=void 0,l={unversionedId:"study/program/JS/npx",id:"study/program/JS/npx",title:"npx",description:"\u6982\u5ff5",source:"@site/docs/study/program/JS/npx.md",sourceDirName:"study/program/JS",slug:"/study/program/JS/npx",permalink:"/docs/study/program/JS/npx",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"npm",permalink:"/docs/study/program/JS/npm"},next:{title:"nrm",permalink:"/docs/study/program/JS/nrm"}},c={},i=[],u={toc:i},s="wrapper";function m(e){let{components:r,...t}=e;return(0,o.yg)(s,(0,n.A)({},u,t,{components:r,mdxType:"MDXLayout"}),(0,o.yg)("p",null,"\u6982\u5ff5\nnpx\u662f\u4e00\u4e2a\u5de5\u5177\uff0c\u5b83\u662fnpm v5.2.0\u5f15\u5165\u7684\u4e00\u6761\u547d\u4ee4\uff08npx\uff09\uff0c\u662fnpm\u7684\u4e00\u4e2a\u5305\u6267\u884c\u5668\uff0c\u53ea\u8981\u4e3a\u4e86\u63d0\u9ad8\u4ecenpm\u6ce8\u518c\u8868\u4f7f\u7528\u8f6f\u4ef6\u5305\u7684\u4f53\u9a8c \u3002 npm\u4f7f\u5f97\u5b83\u975e\u5e38\u5bb9\u6613\u5730\u5b89\u88c5\u548c\u7ba1\u7406\u6258\u7ba1\u5728\u6ce8\u518c\u8868\u4e0a\u7684\u4f9d\u8d56\u9879\uff0c npx\u4f7f\u5f97\u4f7f\u7528CLI\u5de5\u5177\u548c\u5176\u4ed6\u6258\u7ba1\u5728\u6ce8\u518c\u8868\u3002"),(0,o.yg)("p",null,"\u5c31\u50cfnpm\u6781\u5927\u5730\u63d0\u5347\u4e86\u6211\u4eec\u5b89\u88c5\u548c\u7ba1\u7406\u5305\u4f9d\u8d56\u7684\u4f53\u9a8c\uff0c\u5728npm\u7684\u57fa\u7840\u4e4b\u4e0a\uff0cnpx\u8ba9npm\u5305\u4e2d\u7684\u547d\u4ee4\u884c\u5de5\u5177\u548c\u5176\u4ed6\u53ef\u6267\u884c\u6587\u4ef6\u5728\u4f7f\u7528\u4e0a\u53d8\u5f97\u66f4\u52a0\u7b80\u5355\u3002\u5b83\u6781\u5927\u5730\u7b80\u5316\u4e86\u6211\u4eec\u4e4b\u524d\u4f7f\u7528\u7eaf\u7cb9\u7684npm\u65f6\u6240\u9700\u8981\u7684\u5927\u91cf\u6b65\u9aa4\u3002"),(0,o.yg)("p",null,"\u4e3b\u8981\u7279\u70b9\uff1a"),(0,o.yg)("ol",null,(0,o.yg)("li",{parentName:"ol"},"\u4e34\u65f6\u5b89\u88c5\u53ef\u6267\u884c\u4f9d\u8d56\u5305\uff0c\u4e0d\u7528\u5168\u5c40\u5b89\u88c5\uff0c\u4e0d\u7528\u62c5\u5fc3\u957f\u671f\u7684\u6c61\u67d3\u3002"),(0,o.yg)("li",{parentName:"ol"},"\u53ef\u4ee5\u6267\u884c\u4f9d\u8d56\u5305\u4e2d\u7684\u547d\u4ee4\uff0c\u5b89\u88c5\u5b8c\u6210\u81ea\u52a8\u8fd0\u884c\u3002"),(0,o.yg)("li",{parentName:"ol"},"\u81ea\u52a8\u52a0\u8f7dnode_modules\u4e2d\u4f9d\u8d56\u5305\uff0c\u4e0d\u7528\u6307\u5b9a$PATH\u3002"),(0,o.yg)("li",{parentName:"ol"},"\u53ef\u4ee5\u6307\u5b9anode\u7248\u672c\u3001\u547d\u4ee4\u7684\u7248\u672c\uff0c\u89e3\u51b3\u4e86\u4e0d\u540c\u9879\u76ee\u4f7f\u7528\u4e0d\u540c\u7248\u672c\u7684\u547d\u4ee4\u7684\u95ee\u9898\u3002")))}m.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7152],{5680:(e,r,t)=>{t.d(r,{xA:()=>u,yg:()=>d});var n=t(6540);function o(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function a(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function p(e){for(var r=1;r=0||(o[t]=e[t]);return o}(e,r);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var c=n.createContext({}),i=function(e){var r=n.useContext(c),t=r;return e&&(t="function"==typeof e?e(r):p(p({},r),e)),t},u=function(e){var r=i(e.components);return n.createElement(c.Provider,{value:r},e.children)},s="mdxType",m={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},y=n.forwardRef((function(e,r){var t=e.components,o=e.mdxType,a=e.originalType,c=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),s=i(t),y=o,d=s["".concat(c,".").concat(y)]||s[y]||m[y]||a;return t?n.createElement(d,p(p({ref:r},u),{},{components:t})):n.createElement(d,p({ref:r},u))}));function d(e,r){var t=arguments,o=r&&r.mdxType;if("string"==typeof e||o){var a=t.length,p=new Array(a);p[0]=y;var l={};for(var c in r)hasOwnProperty.call(r,c)&&(l[c]=r[c]);l.originalType=e,l[s]="string"==typeof e?e:o,p[1]=l;for(var i=2;i{t.r(r),t.d(r,{assets:()=>c,contentTitle:()=>p,default:()=>m,frontMatter:()=>a,metadata:()=>l,toc:()=>i});var n=t(8168),o=(t(6540),t(5680));const a={},p=void 0,l={unversionedId:"study/program/JS/npx",id:"study/program/JS/npx",title:"npx",description:"\u6982\u5ff5",source:"@site/docs/study/program/JS/npx.md",sourceDirName:"study/program/JS",slug:"/study/program/JS/npx",permalink:"/docs/study/program/JS/npx",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"npm",permalink:"/docs/study/program/JS/npm"},next:{title:"nrm",permalink:"/docs/study/program/JS/nrm"}},c={},i=[],u={toc:i},s="wrapper";function m(e){let{components:r,...t}=e;return(0,o.yg)(s,(0,n.A)({},u,t,{components:r,mdxType:"MDXLayout"}),(0,o.yg)("p",null,"\u6982\u5ff5\nnpx\u662f\u4e00\u4e2a\u5de5\u5177\uff0c\u5b83\u662fnpm v5.2.0\u5f15\u5165\u7684\u4e00\u6761\u547d\u4ee4\uff08npx\uff09\uff0c\u662fnpm\u7684\u4e00\u4e2a\u5305\u6267\u884c\u5668\uff0c\u53ea\u8981\u4e3a\u4e86\u63d0\u9ad8\u4ecenpm\u6ce8\u518c\u8868\u4f7f\u7528\u8f6f\u4ef6\u5305\u7684\u4f53\u9a8c \u3002 npm\u4f7f\u5f97\u5b83\u975e\u5e38\u5bb9\u6613\u5730\u5b89\u88c5\u548c\u7ba1\u7406\u6258\u7ba1\u5728\u6ce8\u518c\u8868\u4e0a\u7684\u4f9d\u8d56\u9879\uff0c npx\u4f7f\u5f97\u4f7f\u7528CLI\u5de5\u5177\u548c\u5176\u4ed6\u6258\u7ba1\u5728\u6ce8\u518c\u8868\u3002"),(0,o.yg)("p",null,"\u5c31\u50cfnpm\u6781\u5927\u5730\u63d0\u5347\u4e86\u6211\u4eec\u5b89\u88c5\u548c\u7ba1\u7406\u5305\u4f9d\u8d56\u7684\u4f53\u9a8c\uff0c\u5728npm\u7684\u57fa\u7840\u4e4b\u4e0a\uff0cnpx\u8ba9npm\u5305\u4e2d\u7684\u547d\u4ee4\u884c\u5de5\u5177\u548c\u5176\u4ed6\u53ef\u6267\u884c\u6587\u4ef6\u5728\u4f7f\u7528\u4e0a\u53d8\u5f97\u66f4\u52a0\u7b80\u5355\u3002\u5b83\u6781\u5927\u5730\u7b80\u5316\u4e86\u6211\u4eec\u4e4b\u524d\u4f7f\u7528\u7eaf\u7cb9\u7684npm\u65f6\u6240\u9700\u8981\u7684\u5927\u91cf\u6b65\u9aa4\u3002"),(0,o.yg)("p",null,"\u4e3b\u8981\u7279\u70b9\uff1a"),(0,o.yg)("ol",null,(0,o.yg)("li",{parentName:"ol"},"\u4e34\u65f6\u5b89\u88c5\u53ef\u6267\u884c\u4f9d\u8d56\u5305\uff0c\u4e0d\u7528\u5168\u5c40\u5b89\u88c5\uff0c\u4e0d\u7528\u62c5\u5fc3\u957f\u671f\u7684\u6c61\u67d3\u3002"),(0,o.yg)("li",{parentName:"ol"},"\u53ef\u4ee5\u6267\u884c\u4f9d\u8d56\u5305\u4e2d\u7684\u547d\u4ee4\uff0c\u5b89\u88c5\u5b8c\u6210\u81ea\u52a8\u8fd0\u884c\u3002"),(0,o.yg)("li",{parentName:"ol"},"\u81ea\u52a8\u52a0\u8f7dnode_modules\u4e2d\u4f9d\u8d56\u5305\uff0c\u4e0d\u7528\u6307\u5b9a$PATH\u3002"),(0,o.yg)("li",{parentName:"ol"},"\u53ef\u4ee5\u6307\u5b9anode\u7248\u672c\u3001\u547d\u4ee4\u7684\u7248\u672c\uff0c\u89e3\u51b3\u4e86\u4e0d\u540c\u9879\u76ee\u4f7f\u7528\u4e0d\u540c\u7248\u672c\u7684\u547d\u4ee4\u7684\u95ee\u9898\u3002")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/22d8222a.8c324c3b.js b/assets/js/22d8222a.4c7fd1f2.js similarity index 98% rename from assets/js/22d8222a.8c324c3b.js rename to assets/js/22d8222a.4c7fd1f2.js index 4d642b6fd..3197908cf 100644 --- a/assets/js/22d8222a.8c324c3b.js +++ b/assets/js/22d8222a.4c7fd1f2.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4504],{5680:(e,r,t)=>{t.d(r,{xA:()=>d,yg:()=>f});var n=t(6540);function o(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function i(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function c(e){for(var r=1;r=0||(o[t]=e[t]);return o}(e,r);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var l=n.createContext({}),u=function(e){var r=n.useContext(l),t=r;return e&&(t="function"==typeof e?e(r):c(c({},r),e)),t},d=function(e){var r=u(e.components);return n.createElement(l.Provider,{value:r},e.children)},s="mdxType",p={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},y=n.forwardRef((function(e,r){var t=e.components,o=e.mdxType,i=e.originalType,l=e.parentName,d=a(e,["components","mdxType","originalType","parentName"]),s=u(t),y=o,f=s["".concat(l,".").concat(y)]||s[y]||p[y]||i;return t?n.createElement(f,c(c({ref:r},d),{},{components:t})):n.createElement(f,c({ref:r},d))}));function f(e,r){var t=arguments,o=r&&r.mdxType;if("string"==typeof e||o){var i=t.length,c=new Array(i);c[0]=y;var a={};for(var l in r)hasOwnProperty.call(r,l)&&(a[l]=r[l]);a.originalType=e,a[s]="string"==typeof e?e:o,c[1]=a;for(var u=2;u{t.r(r),t.d(r,{assets:()=>l,contentTitle:()=>c,default:()=>p,frontMatter:()=>i,metadata:()=>a,toc:()=>u});var n=t(8168),o=(t(6540),t(5680));const i={sidebar_position:1},c="\u6982\u8ff0",a={unversionedId:"study/docker/index",id:"study/docker/index",title:"\u6982\u8ff0",description:"\u4e00\u79cd\u865a\u62df\u6280\u672f\u3002",source:"@site/docs/study/docker/index.md",sourceDirName:"study/docker",slug:"/study/docker/",permalink:"/docs/study/docker/",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"studySidebar",previous:{title:"\u9886\u57df\u9a71\u52a8\u8bbe\u8ba1DDD",permalink:"/docs/study/think/\u9886\u57df\u9a71\u52a8\u8bbe\u8ba1DDD"},next:{title:"Docker_Docker-compose",permalink:"/docs/study/docker/Docker_Docker-compose"}},l={},u=[{value:"windows/linux docker",id:"windowslinux-docker",level:3}],d={toc:u},s="wrapper";function p(e){let{components:r,...t}=e;return(0,o.yg)(s,(0,n.A)({},d,t,{components:r,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"\u6982\u8ff0"},"\u6982\u8ff0"),(0,o.yg)("p",null,"\u4e00\u79cd\u865a\u62df\u6280\u672f\u3002"),(0,o.yg)("h3",{id:"windowslinux-docker"},"windows/linux docker"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"windows docker \u5bbf\u4e3b\u673a \u53ef\u4ee5\u8fd0\u884c windows \u548c linux \u5bb9\u5668;"),(0,o.yg)("li",{parentName:"ul"},"linux docker \u5bbf\u4e3b\u673a\u53ea\u80fd\u8fd0\u884c linux \u5bb9\u5668;"),(0,o.yg)("li",{parentName:"ul"},"windows \u5bbf\u4e3b\u673a\u53ef\u4ee5\u8fd0\u884c linux \u5bb9\u5668\u7684\u539f\u56e0\u662f\uff1a windows \u5728\u540e\u53f0\u521b\u5efa\u4e86\u4e00\u4e2a Linux \u5b50\u7cfb\u7edf(WSL)\uff0c\u56e0\u6b64 Linux \u5bb9\u5668\u4ecd\u5728 Linux \u4e0a\u8fd0\u884c;")))}p.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4504],{5680:(e,r,t)=>{t.d(r,{xA:()=>d,yg:()=>f});var n=t(6540);function o(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function i(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function c(e){for(var r=1;r=0||(o[t]=e[t]);return o}(e,r);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var l=n.createContext({}),u=function(e){var r=n.useContext(l),t=r;return e&&(t="function"==typeof e?e(r):c(c({},r),e)),t},d=function(e){var r=u(e.components);return n.createElement(l.Provider,{value:r},e.children)},s="mdxType",p={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},y=n.forwardRef((function(e,r){var t=e.components,o=e.mdxType,i=e.originalType,l=e.parentName,d=a(e,["components","mdxType","originalType","parentName"]),s=u(t),y=o,f=s["".concat(l,".").concat(y)]||s[y]||p[y]||i;return t?n.createElement(f,c(c({ref:r},d),{},{components:t})):n.createElement(f,c({ref:r},d))}));function f(e,r){var t=arguments,o=r&&r.mdxType;if("string"==typeof e||o){var i=t.length,c=new Array(i);c[0]=y;var a={};for(var l in r)hasOwnProperty.call(r,l)&&(a[l]=r[l]);a.originalType=e,a[s]="string"==typeof e?e:o,c[1]=a;for(var u=2;u{t.r(r),t.d(r,{assets:()=>l,contentTitle:()=>c,default:()=>p,frontMatter:()=>i,metadata:()=>a,toc:()=>u});var n=t(8168),o=(t(6540),t(5680));const i={sidebar_position:1},c="\u6982\u8ff0",a={unversionedId:"study/docker/index",id:"study/docker/index",title:"\u6982\u8ff0",description:"\u4e00\u79cd\u865a\u62df\u6280\u672f\u3002",source:"@site/docs/study/docker/index.md",sourceDirName:"study/docker",slug:"/study/docker/",permalink:"/docs/study/docker/",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"studySidebar",previous:{title:"\u9886\u57df\u9a71\u52a8\u8bbe\u8ba1DDD",permalink:"/docs/study/think/\u9886\u57df\u9a71\u52a8\u8bbe\u8ba1DDD"},next:{title:"Docker_Docker-compose",permalink:"/docs/study/docker/Docker_Docker-compose"}},l={},u=[{value:"windows/linux docker",id:"windowslinux-docker",level:3}],d={toc:u},s="wrapper";function p(e){let{components:r,...t}=e;return(0,o.yg)(s,(0,n.A)({},d,t,{components:r,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"\u6982\u8ff0"},"\u6982\u8ff0"),(0,o.yg)("p",null,"\u4e00\u79cd\u865a\u62df\u6280\u672f\u3002"),(0,o.yg)("h3",{id:"windowslinux-docker"},"windows/linux docker"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"windows docker \u5bbf\u4e3b\u673a \u53ef\u4ee5\u8fd0\u884c windows \u548c linux \u5bb9\u5668;"),(0,o.yg)("li",{parentName:"ul"},"linux docker \u5bbf\u4e3b\u673a\u53ea\u80fd\u8fd0\u884c linux \u5bb9\u5668;"),(0,o.yg)("li",{parentName:"ul"},"windows \u5bbf\u4e3b\u673a\u53ef\u4ee5\u8fd0\u884c linux \u5bb9\u5668\u7684\u539f\u56e0\u662f\uff1a windows \u5728\u540e\u53f0\u521b\u5efa\u4e86\u4e00\u4e2a Linux \u5b50\u7cfb\u7edf(WSL)\uff0c\u56e0\u6b64 Linux \u5bb9\u5668\u4ecd\u5728 Linux \u4e0a\u8fd0\u884c;")))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/231f518d.e5784f26.js b/assets/js/231f518d.b4b23bf9.js similarity index 99% rename from assets/js/231f518d.e5784f26.js rename to assets/js/231f518d.b4b23bf9.js index 024a9ea7b..f91ede1a6 100644 --- a/assets/js/231f518d.e5784f26.js +++ b/assets/js/231f518d.b4b23bf9.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5829],{5680:(e,r,o)=>{o.d(r,{xA:()=>d,yg:()=>u});var t=o(6540);function n(e,r,o){return r in e?Object.defineProperty(e,r,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[r]=o,e}function l(e,r){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);r&&(t=t.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),o.push.apply(o,t)}return o}function a(e){for(var r=1;r=0||(n[o]=e[o]);return n}(e,r);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(n[o]=e[o])}return n}var i=t.createContext({}),p=function(e){var r=t.useContext(i),o=r;return e&&(o="function"==typeof e?e(r):a(a({},r),e)),o},d=function(e){var r=p(e.components);return t.createElement(i.Provider,{value:r},e.children)},s="mdxType",m={inlineCode:"code",wrapper:function(e){var r=e.children;return t.createElement(t.Fragment,{},r)}},y=t.forwardRef((function(e,r){var o=e.components,n=e.mdxType,l=e.originalType,i=e.parentName,d=c(e,["components","mdxType","originalType","parentName"]),s=p(o),y=n,u=s["".concat(i,".").concat(y)]||s[y]||m[y]||l;return o?t.createElement(u,a(a({ref:r},d),{},{components:o})):t.createElement(u,a({ref:r},d))}));function u(e,r){var o=arguments,n=r&&r.mdxType;if("string"==typeof e||n){var l=o.length,a=new Array(l);a[0]=y;var c={};for(var i in r)hasOwnProperty.call(r,i)&&(c[i]=r[i]);c.originalType=e,c[s]="string"==typeof e?e:n,a[1]=c;for(var p=2;p{o.r(r),o.d(r,{assets:()=>i,contentTitle:()=>a,default:()=>m,frontMatter:()=>l,metadata:()=>c,toc:()=>p});var t=o(8168),n=(o(6540),o(5680));const l={},a=void 0,c={unversionedId:"study/docker/Docker_Docker-compose",id:"study/docker/Docker_Docker-compose",title:"Docker_Docker-compose",description:"\u5b9a\u4e49",source:"@site/docs/study/docker/Docker_Docker-compose.md",sourceDirName:"study/docker",slug:"/study/docker/Docker_Docker-compose",permalink:"/docs/study/docker/Docker_Docker-compose",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u6982\u8ff0",permalink:"/docs/study/docker/"},next:{title:"Docker\u7684\u4f7f\u7528\u603b\u7ed3",permalink:"/docs/study/docker/Docker\u7684\u4f7f\u7528\u603b\u7ed3"}},i={},p=[{value:"\u5b9a\u4e49",id:"\u5b9a\u4e49",level:3},{value:"\u4e3a\u4ec0\u4e48\u8981\u7528Docker",id:"\u4e3a\u4ec0\u4e48\u8981\u7528docker",level:3},{value:"Docker\u57fa\u672c\u7ec4\u6210",id:"docker\u57fa\u672c\u7ec4\u6210",level:3},{value:"\u5e38\u7528\u547d\u4ee4",id:"\u5e38\u7528\u547d\u4ee4",level:3},{value:"Docker Compose",id:"docker-compose",level:3},{value:"\u5b89\u88c5",id:"\u5b89\u88c5",level:4},{value:"\u5e38\u7528\u547d\u4ee4",id:"\u5e38\u7528\u547d\u4ee4-1",level:4},{value:"\u95ee\u9898\u5904\u7406",id:"\u95ee\u9898\u5904\u7406",level:3}],d={toc:p},s="wrapper";function m(e){let{components:r,...o}=e;return(0,n.yg)(s,(0,t.A)({},d,o,{components:r,mdxType:"MDXLayout"}),(0,n.yg)("h3",{id:"\u5b9a\u4e49"},"\u5b9a\u4e49"),(0,n.yg)("p",null,"Docker\u662f\u4e00\u4e2a\u5f00\u6e90\u7684\u5bb9\u5668\u5f15\u64ce\uff0c\u5b83\u6709\u52a9\u4e8e\u66f4\u5feb\u5730\u4ea4\u4ed8\u5e94\u7528\u3002\u65b9\u4fbf\u5feb\u6377\u5df2\u7ecf\u662f Docker\u7684\u6700\u5927\u4f18\u52bf\uff0c\u8fc7\u53bb\u9700\u8981\u7528\u6570\u5929\u4e43\u81f3\u6570\u5468\u7684\u4efb\u52a1\uff0c\u5728Docker\u5bb9\u5668\u7684\u5904\u7406\u4e0b\uff0c\u53ea\u9700\u8981\u6570\u79d2\u5c31\u80fd\u5b8c\u6210\u3002"),(0,n.yg)("h3",{id:"\u4e3a\u4ec0\u4e48\u8981\u7528docker"},"\u4e3a\u4ec0\u4e48\u8981\u7528Docker"),(0,n.yg)("ol",null,(0,n.yg)("li",{parentName:"ol"},"\u4e00\u81f4\u7684\u8fd0\u884c\u73af\u5883\uff1aDocker \u7684\u955c\u50cf\u63d0\u4f9b\u4e86\u9664\u5185\u6838\u5916\u5b8c\u6574\u7684\u8fd0\u884c\u65f6\u73af\u5883\uff0c\u786e\u4fdd\u4e86\u5e94\u7528\u8fd0\u884c\u73af\u5883\u4e00\u81f4\u6027\u3002"),(0,n.yg)("li",{parentName:"ol"},"\u6301\u7eed\u4ea4\u4ed8\u548c\u90e8\u7f72\uff1a\u4f7f\u7528 Docker \u53ef\u4ee5\u901a\u8fc7\u5b9a\u5236\u5e94\u7528\u955c\u50cf\u6765\u5b9e\u73b0\u6301\u7eed\u96c6\u6210\u3001\u6301\u7eed\u4ea4\u4ed8\u3001\u90e8\u7f72\u3002\u4e00\u6b21\u521b\u5efa\u6216\u914d\u7f6e\uff0c\u53ef\u4ee5\u5728\u4efb\u610f\u5730\u65b9\u6b63\u5e38\u8fd0\u884c\u3002"),(0,n.yg)("li",{parentName:"ol"},"\u66f4\u8f7b\u677e\u7684\u8fc1\u79fb\uff1aDocker \u786e\u4fdd\u4e86\u6267\u884c\u73af\u5883\u7684\u4e00\u81f4\u6027\uff0c\u4f7f\u5f97\u5e94\u7528\u7684\u8fc1\u79fb\u66f4\u52a0\u5bb9\u6613\u3002Docker \u53ef\u4ee5\u5728\u5f88\u591a\u5e73\u53f0\u4e0a\u8fd0\u884c\uff0c\u65e0\u8bba\u662f\u7269\u7406\u673a\u3001\u865a\u62df\u673a\u3001\u516c\u6709\u4e91\u3001\u79c1\u6709\u4e91\uff0c\u751a\u81f3\u662f\u7b14\u8bb0\u672c\uff0c\u5176\u8fd0\u884c\u7ed3\u679c\u662f\u4e00\u81f4\u7684\u3002"),(0,n.yg)("li",{parentName:"ol"},"\u66f4\u5feb\u901f\u7684\u542f\u52a8\u65f6\u95f4\uff1aDocker \u5bb9\u5668\u5e94\u7528\uff0c\u7531\u4e8e\u76f4\u63a5\u8fd0\u884c\u4e8e\u5bbf\u4e3b\u5185\u6838\uff0c\u65e0\u9700\u542f\u52a8\u5b8c\u6574\u7684\u64cd\u4f5c\u7cfb\u7edf\uff0c\u56e0\u6b64\u53ef\u4ee5\u505a\u5230\u79d2\u7ea7\u3001\u751a\u81f3\u6beb\u79d2\u7ea7\u7684\u542f\u52a8\u65f6\u95f4\u3002"),(0,n.yg)("li",{parentName:"ol"},"\u66f4\u9ad8\u6548\u7684\u5229\u7528\u7cfb\u7edf\u8d44\u6e90\uff1a\u7531\u4e8e\u5bb9\u5668\u4e0d\u9700\u8981\u8fdb\u884c\u786c\u4ef6\u865a\u62df\u4ee5\u53ca\u8fd0\u884c\u5b8c\u6574\u64cd\u4f5c\u7cfb\u7edf\u7b49\u989d\u5916\u5f00\u9500\uff0cDocker \u5bf9\u7cfb\u7edf\u8d44\u6e90\u7684\u5229\u7528\u7387\u66f4\u9ad8\u3002")),(0,n.yg)("h3",{id:"docker\u57fa\u672c\u7ec4\u6210"},"Docker\u57fa\u672c\u7ec4\u6210"),(0,n.yg)("ol",null,(0,n.yg)("li",{parentName:"ol"},"\u955c\u50cf(Images)"),(0,n.yg)("li",{parentName:"ol"},"\u5bb9\u5668(Container)"),(0,n.yg)("li",{parentName:"ol"},"\u955c\u50cf\u4ed3\u5e93(Registry)")),(0,n.yg)("h3",{id:"\u5e38\u7528\u547d\u4ee4"},"\u5e38\u7528\u547d\u4ee4"),(0,n.yg)("ol",null,(0,n.yg)("li",{parentName:"ol"},"docker ps"),(0,n.yg)("li",{parentName:"ol"},"docker ps -a"),(0,n.yg)("li",{parentName:"ol"},"docker start xxx"),(0,n.yg)("li",{parentName:"ol"},"dcoker stop xxx"),(0,n.yg)("li",{parentName:"ol"},"docker rm xxx"),(0,n.yg)("li",{parentName:"ol"},"docker rmi xxx"),(0,n.yg)("li",{parentName:"ol"},"docker save -o ./xxx.tar xxx \u5bfc\u51fa\u955c\u50cf"),(0,n.yg)("li",{parentName:"ol"},"docker load -i xxx.tar \u5bfc\u5165\u955c\u50cf"),(0,n.yg)("li",{parentName:"ol"},"docker logs"),(0,n.yg)("li",{parentName:"ol"},"docker inspect xxx \u67e5\u770b\u5bb9\u5668\u8be6\u7ec6\u4fe1\u606f"),(0,n.yg)("li",{parentName:"ol"},"docker port xxx \u5217\u51fa\u6216\u6307\u5b9a\u5bb9\u5668\u7aef\u53e3\u6620\u5c04"),(0,n.yg)("li",{parentName:"ol"},"docker cp ","[dir]"," xxx:","[dir]"),(0,n.yg)("li",{parentName:"ol"},"docker diff xxx \u67e5\u770b\u5bb9\u5668\u548c\u955c\u50cf\u7684\u5dee\u5f02"),(0,n.yg)("li",{parentName:"ol"},"docker kill \u5bb9\u5668id \u5f3a\u5236\u505c\u6b62\u5bb9\u5668"),(0,n.yg)("li",{parentName:"ol"},"docker container logs \u5bb9\u5668id\uff1a\u67e5\u770b\u5bb9\u5668\u65e5\u5fd7"),(0,n.yg)("li",{parentName:"ol"},"docker top \u5bb9\u5668id\uff1a\u67e5\u770b\u5bb9\u5668\u91cc\u7684\u8fdb\u7a0b")),(0,n.yg)("h3",{id:"docker-compose"},"Docker Compose"),(0,n.yg)("p",null,"Docker Compose\u662f docker \u63d0\u4f9b\u7684\u4e00\u4e2a\u547d\u4ee4\u884c\u5de5\u5177\uff0c\u7528\u6765\u5b9a\u4e49\u548c\u8fd0\u884c\u7531\u591a\u4e2a\u5bb9\u5668\u7ec4\u6210\u7684\u5e94\u7528\u3002\u4f7f\u7528 compose\uff0c\u6211\u4eec\u53ef\u4ee5\u901a\u8fc7 YAML \u6587\u4ef6\u58f0\u660e\u5f0f\u7684\u5b9a\u4e49\u5e94\u7528\u7a0b\u5e8f\u7684\u5404\u4e2a\u670d\u52a1\uff0c\u5e76\u7531\u5355\u4e2a\u547d\u4ee4\u5b8c\u6210\u5e94\u7528\u7684\u521b\u5efa\u548c\u542f\u52a8\u3002"),(0,n.yg)("h4",{id:"\u5b89\u88c5"},"\u5b89\u88c5"),(0,n.yg)("pre",null,(0,n.yg)("code",{parentName:"pre",className:"language-shell"},"#\u9700\u8981\u5148\u628apython3\u548cpip3\u5b89\u88c5\u597d\npip3 install docker-compose\ndocker-compose --version\n")),(0,n.yg)("h4",{id:"\u5e38\u7528\u547d\u4ee4-1"},"\u5e38\u7528\u547d\u4ee4"),(0,n.yg)("ol",null,(0,n.yg)("li",{parentName:"ol"},"docker-compose up -d \xa0 \u540e\u53f0\u542f\u52a8"),(0,n.yg)("li",{parentName:"ol"},"docker-compose ps/stop/start/restart/rm"),(0,n.yg)("li",{parentName:"ol"},"docker-compose scale service=num\xa0\u8bbe\u7f6e\u6307\u5b9a\u670d\u52a1\u8fd0\u884c\u7684\u5bb9\u5668\u4e2a\u6570\u3002\u901a\u8fc7service=num\u7684\u53c2\u6570\u6765\u8bbe\u7f6e\u6570\u91cf")),(0,n.yg)("h3",{id:"\u95ee\u9898\u5904\u7406"},"\u95ee\u9898\u5904\u7406"),(0,n.yg)("ol",null,(0,n.yg)("li",{parentName:"ol"},(0,n.yg)("a",{parentName:"li",href:"https://blog.csdn.net/sangfei18829896970/article/details/97754635"},"python\u5b89\u88c5pandas\u5e93\u51fa\u73b0 No module named \u2018_lzma\u2019")),(0,n.yg)("li",{parentName:"ol"},(0,n.yg)("a",{parentName:"li",href:"https://blog.51cto.com/13362895/2130375"},"docker \u4e4b\u7f51\u7edc\u914d\u7f6e")),(0,n.yg)("li",{parentName:"ol"},(0,n.yg)("a",{parentName:"li",href:"https://www.cnblogs.com/minseo/p/11548177.html"},"Docker\u5165\u95e8\u4e4bdocker-compose"))))}m.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5829],{5680:(e,r,o)=>{o.d(r,{xA:()=>d,yg:()=>u});var t=o(6540);function n(e,r,o){return r in e?Object.defineProperty(e,r,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[r]=o,e}function l(e,r){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);r&&(t=t.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),o.push.apply(o,t)}return o}function a(e){for(var r=1;r=0||(n[o]=e[o]);return n}(e,r);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(n[o]=e[o])}return n}var i=t.createContext({}),p=function(e){var r=t.useContext(i),o=r;return e&&(o="function"==typeof e?e(r):a(a({},r),e)),o},d=function(e){var r=p(e.components);return t.createElement(i.Provider,{value:r},e.children)},s="mdxType",m={inlineCode:"code",wrapper:function(e){var r=e.children;return t.createElement(t.Fragment,{},r)}},y=t.forwardRef((function(e,r){var o=e.components,n=e.mdxType,l=e.originalType,i=e.parentName,d=c(e,["components","mdxType","originalType","parentName"]),s=p(o),y=n,u=s["".concat(i,".").concat(y)]||s[y]||m[y]||l;return o?t.createElement(u,a(a({ref:r},d),{},{components:o})):t.createElement(u,a({ref:r},d))}));function u(e,r){var o=arguments,n=r&&r.mdxType;if("string"==typeof e||n){var l=o.length,a=new Array(l);a[0]=y;var c={};for(var i in r)hasOwnProperty.call(r,i)&&(c[i]=r[i]);c.originalType=e,c[s]="string"==typeof e?e:n,a[1]=c;for(var p=2;p{o.r(r),o.d(r,{assets:()=>i,contentTitle:()=>a,default:()=>m,frontMatter:()=>l,metadata:()=>c,toc:()=>p});var t=o(8168),n=(o(6540),o(5680));const l={},a=void 0,c={unversionedId:"study/docker/Docker_Docker-compose",id:"study/docker/Docker_Docker-compose",title:"Docker_Docker-compose",description:"\u5b9a\u4e49",source:"@site/docs/study/docker/Docker_Docker-compose.md",sourceDirName:"study/docker",slug:"/study/docker/Docker_Docker-compose",permalink:"/docs/study/docker/Docker_Docker-compose",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u6982\u8ff0",permalink:"/docs/study/docker/"},next:{title:"Docker\u7684\u4f7f\u7528\u603b\u7ed3",permalink:"/docs/study/docker/Docker\u7684\u4f7f\u7528\u603b\u7ed3"}},i={},p=[{value:"\u5b9a\u4e49",id:"\u5b9a\u4e49",level:3},{value:"\u4e3a\u4ec0\u4e48\u8981\u7528Docker",id:"\u4e3a\u4ec0\u4e48\u8981\u7528docker",level:3},{value:"Docker\u57fa\u672c\u7ec4\u6210",id:"docker\u57fa\u672c\u7ec4\u6210",level:3},{value:"\u5e38\u7528\u547d\u4ee4",id:"\u5e38\u7528\u547d\u4ee4",level:3},{value:"Docker Compose",id:"docker-compose",level:3},{value:"\u5b89\u88c5",id:"\u5b89\u88c5",level:4},{value:"\u5e38\u7528\u547d\u4ee4",id:"\u5e38\u7528\u547d\u4ee4-1",level:4},{value:"\u95ee\u9898\u5904\u7406",id:"\u95ee\u9898\u5904\u7406",level:3}],d={toc:p},s="wrapper";function m(e){let{components:r,...o}=e;return(0,n.yg)(s,(0,t.A)({},d,o,{components:r,mdxType:"MDXLayout"}),(0,n.yg)("h3",{id:"\u5b9a\u4e49"},"\u5b9a\u4e49"),(0,n.yg)("p",null,"Docker\u662f\u4e00\u4e2a\u5f00\u6e90\u7684\u5bb9\u5668\u5f15\u64ce\uff0c\u5b83\u6709\u52a9\u4e8e\u66f4\u5feb\u5730\u4ea4\u4ed8\u5e94\u7528\u3002\u65b9\u4fbf\u5feb\u6377\u5df2\u7ecf\u662f Docker\u7684\u6700\u5927\u4f18\u52bf\uff0c\u8fc7\u53bb\u9700\u8981\u7528\u6570\u5929\u4e43\u81f3\u6570\u5468\u7684\u4efb\u52a1\uff0c\u5728Docker\u5bb9\u5668\u7684\u5904\u7406\u4e0b\uff0c\u53ea\u9700\u8981\u6570\u79d2\u5c31\u80fd\u5b8c\u6210\u3002"),(0,n.yg)("h3",{id:"\u4e3a\u4ec0\u4e48\u8981\u7528docker"},"\u4e3a\u4ec0\u4e48\u8981\u7528Docker"),(0,n.yg)("ol",null,(0,n.yg)("li",{parentName:"ol"},"\u4e00\u81f4\u7684\u8fd0\u884c\u73af\u5883\uff1aDocker \u7684\u955c\u50cf\u63d0\u4f9b\u4e86\u9664\u5185\u6838\u5916\u5b8c\u6574\u7684\u8fd0\u884c\u65f6\u73af\u5883\uff0c\u786e\u4fdd\u4e86\u5e94\u7528\u8fd0\u884c\u73af\u5883\u4e00\u81f4\u6027\u3002"),(0,n.yg)("li",{parentName:"ol"},"\u6301\u7eed\u4ea4\u4ed8\u548c\u90e8\u7f72\uff1a\u4f7f\u7528 Docker \u53ef\u4ee5\u901a\u8fc7\u5b9a\u5236\u5e94\u7528\u955c\u50cf\u6765\u5b9e\u73b0\u6301\u7eed\u96c6\u6210\u3001\u6301\u7eed\u4ea4\u4ed8\u3001\u90e8\u7f72\u3002\u4e00\u6b21\u521b\u5efa\u6216\u914d\u7f6e\uff0c\u53ef\u4ee5\u5728\u4efb\u610f\u5730\u65b9\u6b63\u5e38\u8fd0\u884c\u3002"),(0,n.yg)("li",{parentName:"ol"},"\u66f4\u8f7b\u677e\u7684\u8fc1\u79fb\uff1aDocker \u786e\u4fdd\u4e86\u6267\u884c\u73af\u5883\u7684\u4e00\u81f4\u6027\uff0c\u4f7f\u5f97\u5e94\u7528\u7684\u8fc1\u79fb\u66f4\u52a0\u5bb9\u6613\u3002Docker \u53ef\u4ee5\u5728\u5f88\u591a\u5e73\u53f0\u4e0a\u8fd0\u884c\uff0c\u65e0\u8bba\u662f\u7269\u7406\u673a\u3001\u865a\u62df\u673a\u3001\u516c\u6709\u4e91\u3001\u79c1\u6709\u4e91\uff0c\u751a\u81f3\u662f\u7b14\u8bb0\u672c\uff0c\u5176\u8fd0\u884c\u7ed3\u679c\u662f\u4e00\u81f4\u7684\u3002"),(0,n.yg)("li",{parentName:"ol"},"\u66f4\u5feb\u901f\u7684\u542f\u52a8\u65f6\u95f4\uff1aDocker \u5bb9\u5668\u5e94\u7528\uff0c\u7531\u4e8e\u76f4\u63a5\u8fd0\u884c\u4e8e\u5bbf\u4e3b\u5185\u6838\uff0c\u65e0\u9700\u542f\u52a8\u5b8c\u6574\u7684\u64cd\u4f5c\u7cfb\u7edf\uff0c\u56e0\u6b64\u53ef\u4ee5\u505a\u5230\u79d2\u7ea7\u3001\u751a\u81f3\u6beb\u79d2\u7ea7\u7684\u542f\u52a8\u65f6\u95f4\u3002"),(0,n.yg)("li",{parentName:"ol"},"\u66f4\u9ad8\u6548\u7684\u5229\u7528\u7cfb\u7edf\u8d44\u6e90\uff1a\u7531\u4e8e\u5bb9\u5668\u4e0d\u9700\u8981\u8fdb\u884c\u786c\u4ef6\u865a\u62df\u4ee5\u53ca\u8fd0\u884c\u5b8c\u6574\u64cd\u4f5c\u7cfb\u7edf\u7b49\u989d\u5916\u5f00\u9500\uff0cDocker \u5bf9\u7cfb\u7edf\u8d44\u6e90\u7684\u5229\u7528\u7387\u66f4\u9ad8\u3002")),(0,n.yg)("h3",{id:"docker\u57fa\u672c\u7ec4\u6210"},"Docker\u57fa\u672c\u7ec4\u6210"),(0,n.yg)("ol",null,(0,n.yg)("li",{parentName:"ol"},"\u955c\u50cf(Images)"),(0,n.yg)("li",{parentName:"ol"},"\u5bb9\u5668(Container)"),(0,n.yg)("li",{parentName:"ol"},"\u955c\u50cf\u4ed3\u5e93(Registry)")),(0,n.yg)("h3",{id:"\u5e38\u7528\u547d\u4ee4"},"\u5e38\u7528\u547d\u4ee4"),(0,n.yg)("ol",null,(0,n.yg)("li",{parentName:"ol"},"docker ps"),(0,n.yg)("li",{parentName:"ol"},"docker ps -a"),(0,n.yg)("li",{parentName:"ol"},"docker start xxx"),(0,n.yg)("li",{parentName:"ol"},"dcoker stop xxx"),(0,n.yg)("li",{parentName:"ol"},"docker rm xxx"),(0,n.yg)("li",{parentName:"ol"},"docker rmi xxx"),(0,n.yg)("li",{parentName:"ol"},"docker save -o ./xxx.tar xxx \u5bfc\u51fa\u955c\u50cf"),(0,n.yg)("li",{parentName:"ol"},"docker load -i xxx.tar \u5bfc\u5165\u955c\u50cf"),(0,n.yg)("li",{parentName:"ol"},"docker logs"),(0,n.yg)("li",{parentName:"ol"},"docker inspect xxx \u67e5\u770b\u5bb9\u5668\u8be6\u7ec6\u4fe1\u606f"),(0,n.yg)("li",{parentName:"ol"},"docker port xxx \u5217\u51fa\u6216\u6307\u5b9a\u5bb9\u5668\u7aef\u53e3\u6620\u5c04"),(0,n.yg)("li",{parentName:"ol"},"docker cp ","[dir]"," xxx:","[dir]"),(0,n.yg)("li",{parentName:"ol"},"docker diff xxx \u67e5\u770b\u5bb9\u5668\u548c\u955c\u50cf\u7684\u5dee\u5f02"),(0,n.yg)("li",{parentName:"ol"},"docker kill \u5bb9\u5668id \u5f3a\u5236\u505c\u6b62\u5bb9\u5668"),(0,n.yg)("li",{parentName:"ol"},"docker container logs \u5bb9\u5668id\uff1a\u67e5\u770b\u5bb9\u5668\u65e5\u5fd7"),(0,n.yg)("li",{parentName:"ol"},"docker top \u5bb9\u5668id\uff1a\u67e5\u770b\u5bb9\u5668\u91cc\u7684\u8fdb\u7a0b")),(0,n.yg)("h3",{id:"docker-compose"},"Docker Compose"),(0,n.yg)("p",null,"Docker Compose\u662f docker \u63d0\u4f9b\u7684\u4e00\u4e2a\u547d\u4ee4\u884c\u5de5\u5177\uff0c\u7528\u6765\u5b9a\u4e49\u548c\u8fd0\u884c\u7531\u591a\u4e2a\u5bb9\u5668\u7ec4\u6210\u7684\u5e94\u7528\u3002\u4f7f\u7528 compose\uff0c\u6211\u4eec\u53ef\u4ee5\u901a\u8fc7 YAML \u6587\u4ef6\u58f0\u660e\u5f0f\u7684\u5b9a\u4e49\u5e94\u7528\u7a0b\u5e8f\u7684\u5404\u4e2a\u670d\u52a1\uff0c\u5e76\u7531\u5355\u4e2a\u547d\u4ee4\u5b8c\u6210\u5e94\u7528\u7684\u521b\u5efa\u548c\u542f\u52a8\u3002"),(0,n.yg)("h4",{id:"\u5b89\u88c5"},"\u5b89\u88c5"),(0,n.yg)("pre",null,(0,n.yg)("code",{parentName:"pre",className:"language-shell"},"#\u9700\u8981\u5148\u628apython3\u548cpip3\u5b89\u88c5\u597d\npip3 install docker-compose\ndocker-compose --version\n")),(0,n.yg)("h4",{id:"\u5e38\u7528\u547d\u4ee4-1"},"\u5e38\u7528\u547d\u4ee4"),(0,n.yg)("ol",null,(0,n.yg)("li",{parentName:"ol"},"docker-compose up -d \xa0 \u540e\u53f0\u542f\u52a8"),(0,n.yg)("li",{parentName:"ol"},"docker-compose ps/stop/start/restart/rm"),(0,n.yg)("li",{parentName:"ol"},"docker-compose scale service=num\xa0\u8bbe\u7f6e\u6307\u5b9a\u670d\u52a1\u8fd0\u884c\u7684\u5bb9\u5668\u4e2a\u6570\u3002\u901a\u8fc7service=num\u7684\u53c2\u6570\u6765\u8bbe\u7f6e\u6570\u91cf")),(0,n.yg)("h3",{id:"\u95ee\u9898\u5904\u7406"},"\u95ee\u9898\u5904\u7406"),(0,n.yg)("ol",null,(0,n.yg)("li",{parentName:"ol"},(0,n.yg)("a",{parentName:"li",href:"https://blog.csdn.net/sangfei18829896970/article/details/97754635"},"python\u5b89\u88c5pandas\u5e93\u51fa\u73b0 No module named \u2018_lzma\u2019")),(0,n.yg)("li",{parentName:"ol"},(0,n.yg)("a",{parentName:"li",href:"https://blog.51cto.com/13362895/2130375"},"docker \u4e4b\u7f51\u7edc\u914d\u7f6e")),(0,n.yg)("li",{parentName:"ol"},(0,n.yg)("a",{parentName:"li",href:"https://www.cnblogs.com/minseo/p/11548177.html"},"Docker\u5165\u95e8\u4e4bdocker-compose"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/249c18b0.3caf7a73.js b/assets/js/249c18b0.f640ca37.js similarity index 98% rename from assets/js/249c18b0.3caf7a73.js rename to assets/js/249c18b0.f640ca37.js index 25da5d6af..7c2e904f0 100644 --- a/assets/js/249c18b0.3caf7a73.js +++ b/assets/js/249c18b0.f640ca37.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9684],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>m});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function p(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var c=n.createContext({}),l=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):p(p({},t),e)),r},u=function(e){var t=l(e.components);return n.createElement(c.Provider,{value:t},e.children)},s="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),s=l(r),d=a,m=s["".concat(c,".").concat(d)]||s[d]||y[d]||o;return r?n.createElement(m,p(p({ref:t},u),{},{components:r})):n.createElement(m,p({ref:t},u))}));function m(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,p=new Array(o);p[0]=d;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[s]="string"==typeof e?e:a,p[1]=i;for(var l=2;l{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>p,default:()=>y,frontMatter:()=>o,metadata:()=>i,toc:()=>l});var n=r(8168),a=(r(6540),r(5680));const o={},p=void 0,i={unversionedId:"study/program/JAVA/RxJava",id:"study/program/JAVA/RxJava",title:"RxJava",description:"\u7b80\u4ecb",source:"@site/docs/study/program/JAVA/RxJava.md",sourceDirName:"study/program/JAVA",slug:"/study/program/JAVA/RxJava",permalink:"/docs/study/program/JAVA/RxJava",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Maven",permalink:"/docs/study/program/JAVA/Maven"},next:{title:"Vert.x",permalink:"/docs/study/program/JAVA/Vert.x"}},c={},l=[{value:"\u7b80\u4ecb",id:"\u7b80\u4ecb",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],u={toc:l},s="wrapper";function y(e){let{components:t,...r}=e;return(0,a.yg)(s,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"\u7b80\u4ecb"},"\u7b80\u4ecb"),(0,a.yg)("p",null,(0,a.yg)("a",{parentName:"p",href:"https://github.com/ReactiveX/RxJava"},"GitHub\u5730\u5740")),(0,a.yg)("p",null,"RxJava - JVM\u54cd\u5e94\u5f0f\u6269\u5c55Reactive Extensions \u7528\u4e8e\u4f7f\u7528Java VM\u7684\u53ef\u89c2\u5bdf\u5e8f\u5217\u7f16\u5199\u5f02\u6b65\u548c\u57fa\u4e8e\u4e8b\u4ef6\u7684\u7a0b\u5e8f\u7684\u5e93\u3002"),(0,a.yg)("p",null,"RxJava\u5230\u5e95\u662f\u4ec0\u4e48\uff1f\u8ba9\u6211\u4eec\u76f4\u63a5\u8df3\u8fc7\u5b98\u65b9\u90a3\u79cd\u6666\u6da9\u7684\u8ffd\u6c42\u7cbe\u786e\u7684\u5b9a\u4e49\uff0c\u5176\u5b9e\u521d\u5b66RxJava\u53ea\u8981\u628a\u63e1\u4e24\u70b9\uff1a\u89c2\u5bdf\u8005\u6a21\u5f0f\u548c\u5f02\u6b65,\u5c31\u57fa\u672c\u53ef\u4ee5\u719f\u7ec3\u4f7f\u7528RxJava\u4e86\u3002"),(0,a.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("a",{parentName:"li",href:"https://juejin.cn/post/6844903447280484360"},"\u5173\u4e8eRxJava\u6700\u53cb\u597d\u7684\u6587\u7ae0")),(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("a",{parentName:"li",href:"https://juejin.cn/post/6844903454067032071"},"\u5173\u4e8eRxJava\u6700\u53cb\u597d\u7684\u6587\u7ae0\u2014\u2014\u80cc\u538b\uff08Backpressure\uff09")),(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("a",{parentName:"li",href:"https://juejin.cn/post/6844903455929139207"},"\u5173\u4e8e RxJava \u6700\u53cb\u597d\u7684\u6587\u7ae0\u2014\u2014 RxJava 2.0 \u5168\u65b0\u6765\u88ad"))))}y.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9684],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>m});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function p(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var c=n.createContext({}),l=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):p(p({},t),e)),r},u=function(e){var t=l(e.components);return n.createElement(c.Provider,{value:t},e.children)},s="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),s=l(r),d=a,m=s["".concat(c,".").concat(d)]||s[d]||y[d]||o;return r?n.createElement(m,p(p({ref:t},u),{},{components:r})):n.createElement(m,p({ref:t},u))}));function m(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,p=new Array(o);p[0]=d;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[s]="string"==typeof e?e:a,p[1]=i;for(var l=2;l{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>p,default:()=>y,frontMatter:()=>o,metadata:()=>i,toc:()=>l});var n=r(8168),a=(r(6540),r(5680));const o={},p=void 0,i={unversionedId:"study/program/JAVA/RxJava",id:"study/program/JAVA/RxJava",title:"RxJava",description:"\u7b80\u4ecb",source:"@site/docs/study/program/JAVA/RxJava.md",sourceDirName:"study/program/JAVA",slug:"/study/program/JAVA/RxJava",permalink:"/docs/study/program/JAVA/RxJava",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Maven",permalink:"/docs/study/program/JAVA/Maven"},next:{title:"Vert.x",permalink:"/docs/study/program/JAVA/Vert.x"}},c={},l=[{value:"\u7b80\u4ecb",id:"\u7b80\u4ecb",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],u={toc:l},s="wrapper";function y(e){let{components:t,...r}=e;return(0,a.yg)(s,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"\u7b80\u4ecb"},"\u7b80\u4ecb"),(0,a.yg)("p",null,(0,a.yg)("a",{parentName:"p",href:"https://github.com/ReactiveX/RxJava"},"GitHub\u5730\u5740")),(0,a.yg)("p",null,"RxJava - JVM\u54cd\u5e94\u5f0f\u6269\u5c55Reactive Extensions \u7528\u4e8e\u4f7f\u7528Java VM\u7684\u53ef\u89c2\u5bdf\u5e8f\u5217\u7f16\u5199\u5f02\u6b65\u548c\u57fa\u4e8e\u4e8b\u4ef6\u7684\u7a0b\u5e8f\u7684\u5e93\u3002"),(0,a.yg)("p",null,"RxJava\u5230\u5e95\u662f\u4ec0\u4e48\uff1f\u8ba9\u6211\u4eec\u76f4\u63a5\u8df3\u8fc7\u5b98\u65b9\u90a3\u79cd\u6666\u6da9\u7684\u8ffd\u6c42\u7cbe\u786e\u7684\u5b9a\u4e49\uff0c\u5176\u5b9e\u521d\u5b66RxJava\u53ea\u8981\u628a\u63e1\u4e24\u70b9\uff1a\u89c2\u5bdf\u8005\u6a21\u5f0f\u548c\u5f02\u6b65,\u5c31\u57fa\u672c\u53ef\u4ee5\u719f\u7ec3\u4f7f\u7528RxJava\u4e86\u3002"),(0,a.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("a",{parentName:"li",href:"https://juejin.cn/post/6844903447280484360"},"\u5173\u4e8eRxJava\u6700\u53cb\u597d\u7684\u6587\u7ae0")),(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("a",{parentName:"li",href:"https://juejin.cn/post/6844903454067032071"},"\u5173\u4e8eRxJava\u6700\u53cb\u597d\u7684\u6587\u7ae0\u2014\u2014\u80cc\u538b\uff08Backpressure\uff09")),(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("a",{parentName:"li",href:"https://juejin.cn/post/6844903455929139207"},"\u5173\u4e8e RxJava \u6700\u53cb\u597d\u7684\u6587\u7ae0\u2014\u2014 RxJava 2.0 \u5168\u65b0\u6765\u88ad"))))}y.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/25692582.90f77a75.js b/assets/js/25692582.a604f2f6.js similarity index 98% rename from assets/js/25692582.90f77a75.js rename to assets/js/25692582.a604f2f6.js index 9fb40edbb..4caae20e6 100644 --- a/assets/js/25692582.90f77a75.js +++ b/assets/js/25692582.a604f2f6.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7782],{5680:(e,t,r)=>{r.d(t,{xA:()=>i,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function c(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),p=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},i=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},u="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,c=e.originalType,s=e.parentName,i=a(e,["components","mdxType","originalType","parentName"]),u=p(r),d=o,f=u["".concat(s,".").concat(d)]||u[d]||y[d]||c;return r?n.createElement(f,l(l({ref:t},i),{},{components:r})):n.createElement(f,l({ref:t},i))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var c=r.length,l=new Array(c);l[0]=d;var a={};for(var s in t)hasOwnProperty.call(t,s)&&(a[s]=t[s]);a.originalType=e,a[u]="string"==typeof e?e:o,l[1]=a;for(var p=2;p{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>l,default:()=>y,frontMatter:()=>c,metadata:()=>a,toc:()=>p});var n=r(8168),o=(r(6540),r(5680));const c={},l=void 0,a={unversionedId:"study/system/shell\u7f16\u7a0b\u667aexpect",id:"study/system/shell\u7f16\u7a0b\u667aexpect",title:"shell\u7f16\u7a0b\u667aexpect",description:"expect",source:"@site/docs/study/system/shell\u7f16\u7a0b\u667aexpect.md",sourceDirName:"study/system",slug:"/study/system/shell\u7f16\u7a0b\u667aexpect",permalink:"/docs/study/system/shell\u7f16\u7a0b\u667aexpect",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"openWRT",permalink:"/docs/study/system/openWRT"},next:{title:"\u5185\u5b58\u7ba1\u7406",permalink:"/docs/study/system/\u5185\u5b58\u7ba1\u7406"}},s={},p=[{value:"expect",id:"expect",level:3}],i={toc:p},u="wrapper";function y(e){let{components:t,...r}=e;return(0,o.yg)(u,(0,n.A)({},i,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"expect"},"expect"),(0,o.yg)("p",null,"expect \u662f\u4e00\u4e2a\u514d\u8d39\u7684\u7f16\u7a0b\u5de5\u5177\uff0c\u7528\u6765\u5b9e\u73b0\u81ea\u52a8\u7684\u4ea4\u4e92\u5f0f\u4efb\u52a1\uff0c\u800c\u65e0\u9700\u4eba\u4e3a\u5e72\u9884\u3002"),(0,o.yg)("p",null,"\u8fd9\u4e2a\u5de5\u5177\u5728\u5904\u7406\u8c03\u7528\u5176\u4ed6\u5de5\u5177\uff0c\u8f93\u5165\u5bc6\u7801\u4e4b\u7c7b\u7684\u4ea4\u4e92\uff0c\u975e\u5e38\u6709\u7528\u3002"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://blog.csdn.net/givenchy_yzl/article/details/118079170"},"CSDN-shell \u7f16\u7a0b\u4e4b expect"))))}y.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7782],{5680:(e,t,r)=>{r.d(t,{xA:()=>i,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function c(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),p=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},i=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},u="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,c=e.originalType,s=e.parentName,i=a(e,["components","mdxType","originalType","parentName"]),u=p(r),d=o,f=u["".concat(s,".").concat(d)]||u[d]||y[d]||c;return r?n.createElement(f,l(l({ref:t},i),{},{components:r})):n.createElement(f,l({ref:t},i))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var c=r.length,l=new Array(c);l[0]=d;var a={};for(var s in t)hasOwnProperty.call(t,s)&&(a[s]=t[s]);a.originalType=e,a[u]="string"==typeof e?e:o,l[1]=a;for(var p=2;p{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>l,default:()=>y,frontMatter:()=>c,metadata:()=>a,toc:()=>p});var n=r(8168),o=(r(6540),r(5680));const c={},l=void 0,a={unversionedId:"study/system/shell\u7f16\u7a0b\u667aexpect",id:"study/system/shell\u7f16\u7a0b\u667aexpect",title:"shell\u7f16\u7a0b\u667aexpect",description:"expect",source:"@site/docs/study/system/shell\u7f16\u7a0b\u667aexpect.md",sourceDirName:"study/system",slug:"/study/system/shell\u7f16\u7a0b\u667aexpect",permalink:"/docs/study/system/shell\u7f16\u7a0b\u667aexpect",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"openWRT",permalink:"/docs/study/system/openWRT"},next:{title:"\u5185\u5b58\u7ba1\u7406",permalink:"/docs/study/system/\u5185\u5b58\u7ba1\u7406"}},s={},p=[{value:"expect",id:"expect",level:3}],i={toc:p},u="wrapper";function y(e){let{components:t,...r}=e;return(0,o.yg)(u,(0,n.A)({},i,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"expect"},"expect"),(0,o.yg)("p",null,"expect \u662f\u4e00\u4e2a\u514d\u8d39\u7684\u7f16\u7a0b\u5de5\u5177\uff0c\u7528\u6765\u5b9e\u73b0\u81ea\u52a8\u7684\u4ea4\u4e92\u5f0f\u4efb\u52a1\uff0c\u800c\u65e0\u9700\u4eba\u4e3a\u5e72\u9884\u3002"),(0,o.yg)("p",null,"\u8fd9\u4e2a\u5de5\u5177\u5728\u5904\u7406\u8c03\u7528\u5176\u4ed6\u5de5\u5177\uff0c\u8f93\u5165\u5bc6\u7801\u4e4b\u7c7b\u7684\u4ea4\u4e92\uff0c\u975e\u5e38\u6709\u7528\u3002"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://blog.csdn.net/givenchy_yzl/article/details/118079170"},"CSDN-shell \u7f16\u7a0b\u4e4b expect"))))}y.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/26299e01.35b745ea.js b/assets/js/26299e01.8ab1ca8f.js similarity index 99% rename from assets/js/26299e01.35b745ea.js rename to assets/js/26299e01.8ab1ca8f.js index baa519818..50df7941e 100644 --- a/assets/js/26299e01.35b745ea.js +++ b/assets/js/26299e01.8ab1ca8f.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9343],{5680:(e,t,r)=>{r.d(t,{xA:()=>c,yg:()=>m});var n=r(6540);function l(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t=0||(l[r]=e[r]);return l}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(l[r]=e[r])}return l}var u=n.createContext({}),p=function(e){var t=n.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},c=function(e){var t=p(e.components);return n.createElement(u.Provider,{value:t},e.children)},y="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,l=e.mdxType,a=e.originalType,u=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),y=p(r),d=l,m=y["".concat(u,".").concat(d)]||y[d]||s[d]||a;return r?n.createElement(m,o(o({ref:t},c),{},{components:r})):n.createElement(m,o({ref:t},c))}));function m(e,t){var r=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var a=r.length,o=new Array(a);o[0]=d;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i[y]="string"==typeof e?e:l,o[1]=i;for(var p=2;p{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>o,default:()=>s,frontMatter:()=>a,metadata:()=>i,toc:()=>p});var n=r(8168),l=(r(6540),r(5680));const a={},o=void 0,i={unversionedId:"study/net/\u5f02\u5730\u7ec4\u7f51",id:"study/net/\u5f02\u5730\u7ec4\u7f51",title:"\u5f02\u5730\u7ec4\u7f51",description:"\u7f51\u7edc\u7c7b\u578b",source:"@site/docs/study/net/\u5f02\u5730\u7ec4\u7f51.md",sourceDirName:"study/net",slug:"/study/net/\u5f02\u5730\u7ec4\u7f51",permalink:"/docs/study/net/\u5f02\u5730\u7ec4\u7f51",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u5c40\u57df\u7f51IP\u5730\u5740\u8303\u56f4",permalink:"/docs/study/net/\u5c40\u57df\u7f51IP\u5730\u5740\u8303\u56f4"},next:{title:"\u6293\u5305\u5de5\u5177",permalink:"/docs/study/net/\u6293\u5305\u5de5\u5177"}},u={},p=[{value:"\u7f51\u7edc\u7c7b\u578b",id:"\u7f51\u7edc\u7c7b\u578b",level:3},{value:"\u5bf9\u7b49\u7f51\u7edc",id:"\u5bf9\u7b49\u7f51\u7edc",level:4},{value:"\u96c6\u6563\u7f51\u7edc",id:"\u96c6\u6563\u7f51\u7edc",level:4},{value:"\u7ade\u54c1\u5206\u6790",id:"\u7ade\u54c1\u5206\u6790",level:3},{value:"\u8d1d\u9510\u84b2\u516c\u82f1",id:"\u8d1d\u9510\u84b2\u516c\u82f1",level:4},{value:"\u6620\u7ff0\u901a",id:"\u6620\u7ff0\u901a",level:4},{value:"\u53ef\u9009\u65b9\u6848",id:"\u53ef\u9009\u65b9\u6848",level:3}],c={toc:p},y="wrapper";function s(e){let{components:t,...r}=e;return(0,l.yg)(y,(0,n.A)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,l.yg)("h3",{id:"\u7f51\u7edc\u7c7b\u578b"},"\u7f51\u7edc\u7c7b\u578b"),(0,l.yg)("h4",{id:"\u5bf9\u7b49\u7f51\u7edc"},"\u5bf9\u7b49\u7f51\u7edc"),(0,l.yg)("p",null,"\u7ec4\u7f51\u5185\u5404\u6210\u5458\u8eab\u4efd\u5bf9\u7b49\uff0c\u5747\u53ef\u5b9e\u73b0\u4e92\u8bbf\u3002"),(0,l.yg)("p",null,"\u5bf9\u7b49\u7f51\u7edc\uff08Peer-to-Peer\uff0c\u7b80\u79f0 P2P\uff09\u662f\u4e00\u79cd\u5206\u5e03\u5f0f\u7f51\u7edc\u7ed3\u6784\uff0c\u5b83\u5141\u8bb8\u7f51\u7edc\u4e2d\u7684\u8282\u70b9\uff08\u53c8\u79f0\u201c\u5bf9\u7b49\u4f53\u201d\u6216\u201c\u7528\u6237\u201d\uff09\u76f4\u63a5\u8fdb\u884c\u6570\u636e\u5171\u4eab\u548c\u901a\u4fe1\uff0c\u800c\u65e0\u9700\u4f9d\u8d56\u4e8e\u4e2d\u5fc3\u670d\u52a1\u5668\u3002\u5728\u5bf9\u7b49\u7f51\u7edc\u4e2d\uff0c\u6bcf\u4e2a\u8282\u70b9\u65e2\u662f\u5ba2\u6237\u7aef\u53c8\u662f\u670d\u52a1\u5668\uff0c\u56e0\u6b64\u7f51\u7edc\u8d44\u6e90\u548c\u8ba1\u7b97\u80fd\u529b\u662f\u5206\u6563\u7684\uff0c\u4e0d\u96c6\u4e2d\u5728\u7279\u5b9a\u7684\u670d\u52a1\u5668\u4e0a\u3002"),(0,l.yg)("h4",{id:"\u96c6\u6563\u7f51\u7edc"},"\u96c6\u6563\u7f51\u7edc"),(0,l.yg)("p",null,"\u7ec4\u7f51\u5185\u533a\u5206\u4e2d\u5fc3\u6210\u5458\u548c\u666e\u901a\u6210\u5458\uff0c\u666e\u901a\u6210\u5458\u53ea\u80fd\u8bbf\u95ee\u4e2d\u5fc3\u6210\u5458\uff0c\u666e\u901a\u6210\u5458\u4e4b\u95f4\u65e0\u6cd5\u4e92\u8bbf\u3002"),(0,l.yg)("h3",{id:"\u7ade\u54c1\u5206\u6790"},"\u7ade\u54c1\u5206\u6790"),(0,l.yg)("h4",{id:"\u8d1d\u9510\u84b2\u516c\u82f1"},"\u8d1d\u9510\u84b2\u516c\u82f1"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"https://pgy.oray.com/"},"https://pgy.oray.com/")," \u5f02\u5730\u7ec4\u7f51\u89e3\u51b3\u65b9\u6848")),(0,l.yg)("p",null,"p2p \u7684\u6280\u672f\u65b9\u6848"),(0,l.yg)("h4",{id:"\u6620\u7ff0\u901a"},"\u6620\u7ff0\u901a"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"https://ics.inhandiot.com/users/home"},"https://ics.inhandiot.com/users/home")," \u968f\u5fc3\u6240\u6b32\u7684\u4e91\u8fde\u63a5\u670d\u52a1\uff0c\u8fde\u63a5 IoT\uff0c\u8fde\u63a5\u672a\u6765")),(0,l.yg)("p",null,"OpenVPN \u7684\u6280\u672f\u65b9\u6848"),(0,l.yg)("h3",{id:"\u53ef\u9009\u65b9\u6848"},"\u53ef\u9009\u65b9\u6848"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"\u65b9\u6848\u4e00\uff1aSD-VPN\uff1a\u786c\u4ef6\uff08\u8def\u7531\u5668\uff09\u6765\u5b9e\u73b0 VPN \u7684 Server\uff08\u9700\u8981\u516c\u7f51 IP\uff09\uff0c\u53c2\u8003 TP-LINK\uff0c\u9700\u8981\u516c\u7f51 IP \u8fd9\u4e00\u6761\u5c31\u5f88\u5c40\u9650"),(0,l.yg)("li",{parentName:"ul"},"\u65b9\u6848\u4e8c\uff1aOpenVPN\uff1a\u8981\u6c42\u662f\u5b9e\u73b0\u591a\u79df\u6237\u9694\u79bb",(0,l.yg)("ul",{parentName:"li"},(0,l.yg)("li",{parentName:"ul"},"\u65b9\u6848\u4e8c A\uff1a\u91c7\u7528\u591a\u5b9e\u4f8b\u7684\u6a21\u5f0f\uff0c\u4e0d\u9002\u5408\u6700\u7ec8\u65b9\u6848\uff0c\u4e0d\u9002\u5408\u8fd0\u8425\u3001\u7ef4\u62a4"),(0,l.yg)("li",{parentName:"ul"},"\u65b9\u6848\u4e8c B\uff1a\u91c7\u7528\u5355\u5b9e\u4f8b\u7684\u6a21\u5f0f\uff0c\u4e0d\u9002\u5408\u6700\u7ec8\u65b9\u6848\uff0c\u53ef\u4ee5\u8fd0\u8425\u3001\u7ef4\u62a4"))),(0,l.yg)("li",{parentName:"ul"},"\u65b9\u6848\u4e09\uff1a\u57fa\u4e8e\u5f00\u6e90\u7684 P2P \u9879\u76ee\u6539\u9020\uff0c\u7814\u53d1\u5468\u671f\u957f\uff0c\u9700\u8981 C/C++\u4eba\u624d"),(0,l.yg)("li",{parentName:"ul"},"\u65b9\u6848\u56db\uff1a\u81ea\u7814 P2P\uff0c\u7814\u53d1\u5468\u671f\u957f\uff0c\u9700\u8981 C/C++\u4eba\u624d")))}s.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9343],{5680:(e,t,r)=>{r.d(t,{xA:()=>c,yg:()=>m});var n=r(6540);function l(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t=0||(l[r]=e[r]);return l}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(l[r]=e[r])}return l}var u=n.createContext({}),p=function(e){var t=n.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},c=function(e){var t=p(e.components);return n.createElement(u.Provider,{value:t},e.children)},y="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,l=e.mdxType,a=e.originalType,u=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),y=p(r),d=l,m=y["".concat(u,".").concat(d)]||y[d]||s[d]||a;return r?n.createElement(m,o(o({ref:t},c),{},{components:r})):n.createElement(m,o({ref:t},c))}));function m(e,t){var r=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var a=r.length,o=new Array(a);o[0]=d;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i[y]="string"==typeof e?e:l,o[1]=i;for(var p=2;p{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>o,default:()=>s,frontMatter:()=>a,metadata:()=>i,toc:()=>p});var n=r(8168),l=(r(6540),r(5680));const a={},o=void 0,i={unversionedId:"study/net/\u5f02\u5730\u7ec4\u7f51",id:"study/net/\u5f02\u5730\u7ec4\u7f51",title:"\u5f02\u5730\u7ec4\u7f51",description:"\u7f51\u7edc\u7c7b\u578b",source:"@site/docs/study/net/\u5f02\u5730\u7ec4\u7f51.md",sourceDirName:"study/net",slug:"/study/net/\u5f02\u5730\u7ec4\u7f51",permalink:"/docs/study/net/\u5f02\u5730\u7ec4\u7f51",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u5c40\u57df\u7f51IP\u5730\u5740\u8303\u56f4",permalink:"/docs/study/net/\u5c40\u57df\u7f51IP\u5730\u5740\u8303\u56f4"},next:{title:"\u6293\u5305\u5de5\u5177",permalink:"/docs/study/net/\u6293\u5305\u5de5\u5177"}},u={},p=[{value:"\u7f51\u7edc\u7c7b\u578b",id:"\u7f51\u7edc\u7c7b\u578b",level:3},{value:"\u5bf9\u7b49\u7f51\u7edc",id:"\u5bf9\u7b49\u7f51\u7edc",level:4},{value:"\u96c6\u6563\u7f51\u7edc",id:"\u96c6\u6563\u7f51\u7edc",level:4},{value:"\u7ade\u54c1\u5206\u6790",id:"\u7ade\u54c1\u5206\u6790",level:3},{value:"\u8d1d\u9510\u84b2\u516c\u82f1",id:"\u8d1d\u9510\u84b2\u516c\u82f1",level:4},{value:"\u6620\u7ff0\u901a",id:"\u6620\u7ff0\u901a",level:4},{value:"\u53ef\u9009\u65b9\u6848",id:"\u53ef\u9009\u65b9\u6848",level:3}],c={toc:p},y="wrapper";function s(e){let{components:t,...r}=e;return(0,l.yg)(y,(0,n.A)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,l.yg)("h3",{id:"\u7f51\u7edc\u7c7b\u578b"},"\u7f51\u7edc\u7c7b\u578b"),(0,l.yg)("h4",{id:"\u5bf9\u7b49\u7f51\u7edc"},"\u5bf9\u7b49\u7f51\u7edc"),(0,l.yg)("p",null,"\u7ec4\u7f51\u5185\u5404\u6210\u5458\u8eab\u4efd\u5bf9\u7b49\uff0c\u5747\u53ef\u5b9e\u73b0\u4e92\u8bbf\u3002"),(0,l.yg)("p",null,"\u5bf9\u7b49\u7f51\u7edc\uff08Peer-to-Peer\uff0c\u7b80\u79f0 P2P\uff09\u662f\u4e00\u79cd\u5206\u5e03\u5f0f\u7f51\u7edc\u7ed3\u6784\uff0c\u5b83\u5141\u8bb8\u7f51\u7edc\u4e2d\u7684\u8282\u70b9\uff08\u53c8\u79f0\u201c\u5bf9\u7b49\u4f53\u201d\u6216\u201c\u7528\u6237\u201d\uff09\u76f4\u63a5\u8fdb\u884c\u6570\u636e\u5171\u4eab\u548c\u901a\u4fe1\uff0c\u800c\u65e0\u9700\u4f9d\u8d56\u4e8e\u4e2d\u5fc3\u670d\u52a1\u5668\u3002\u5728\u5bf9\u7b49\u7f51\u7edc\u4e2d\uff0c\u6bcf\u4e2a\u8282\u70b9\u65e2\u662f\u5ba2\u6237\u7aef\u53c8\u662f\u670d\u52a1\u5668\uff0c\u56e0\u6b64\u7f51\u7edc\u8d44\u6e90\u548c\u8ba1\u7b97\u80fd\u529b\u662f\u5206\u6563\u7684\uff0c\u4e0d\u96c6\u4e2d\u5728\u7279\u5b9a\u7684\u670d\u52a1\u5668\u4e0a\u3002"),(0,l.yg)("h4",{id:"\u96c6\u6563\u7f51\u7edc"},"\u96c6\u6563\u7f51\u7edc"),(0,l.yg)("p",null,"\u7ec4\u7f51\u5185\u533a\u5206\u4e2d\u5fc3\u6210\u5458\u548c\u666e\u901a\u6210\u5458\uff0c\u666e\u901a\u6210\u5458\u53ea\u80fd\u8bbf\u95ee\u4e2d\u5fc3\u6210\u5458\uff0c\u666e\u901a\u6210\u5458\u4e4b\u95f4\u65e0\u6cd5\u4e92\u8bbf\u3002"),(0,l.yg)("h3",{id:"\u7ade\u54c1\u5206\u6790"},"\u7ade\u54c1\u5206\u6790"),(0,l.yg)("h4",{id:"\u8d1d\u9510\u84b2\u516c\u82f1"},"\u8d1d\u9510\u84b2\u516c\u82f1"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"https://pgy.oray.com/"},"https://pgy.oray.com/")," \u5f02\u5730\u7ec4\u7f51\u89e3\u51b3\u65b9\u6848")),(0,l.yg)("p",null,"p2p \u7684\u6280\u672f\u65b9\u6848"),(0,l.yg)("h4",{id:"\u6620\u7ff0\u901a"},"\u6620\u7ff0\u901a"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"https://ics.inhandiot.com/users/home"},"https://ics.inhandiot.com/users/home")," \u968f\u5fc3\u6240\u6b32\u7684\u4e91\u8fde\u63a5\u670d\u52a1\uff0c\u8fde\u63a5 IoT\uff0c\u8fde\u63a5\u672a\u6765")),(0,l.yg)("p",null,"OpenVPN \u7684\u6280\u672f\u65b9\u6848"),(0,l.yg)("h3",{id:"\u53ef\u9009\u65b9\u6848"},"\u53ef\u9009\u65b9\u6848"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"\u65b9\u6848\u4e00\uff1aSD-VPN\uff1a\u786c\u4ef6\uff08\u8def\u7531\u5668\uff09\u6765\u5b9e\u73b0 VPN \u7684 Server\uff08\u9700\u8981\u516c\u7f51 IP\uff09\uff0c\u53c2\u8003 TP-LINK\uff0c\u9700\u8981\u516c\u7f51 IP \u8fd9\u4e00\u6761\u5c31\u5f88\u5c40\u9650"),(0,l.yg)("li",{parentName:"ul"},"\u65b9\u6848\u4e8c\uff1aOpenVPN\uff1a\u8981\u6c42\u662f\u5b9e\u73b0\u591a\u79df\u6237\u9694\u79bb",(0,l.yg)("ul",{parentName:"li"},(0,l.yg)("li",{parentName:"ul"},"\u65b9\u6848\u4e8c A\uff1a\u91c7\u7528\u591a\u5b9e\u4f8b\u7684\u6a21\u5f0f\uff0c\u4e0d\u9002\u5408\u6700\u7ec8\u65b9\u6848\uff0c\u4e0d\u9002\u5408\u8fd0\u8425\u3001\u7ef4\u62a4"),(0,l.yg)("li",{parentName:"ul"},"\u65b9\u6848\u4e8c B\uff1a\u91c7\u7528\u5355\u5b9e\u4f8b\u7684\u6a21\u5f0f\uff0c\u4e0d\u9002\u5408\u6700\u7ec8\u65b9\u6848\uff0c\u53ef\u4ee5\u8fd0\u8425\u3001\u7ef4\u62a4"))),(0,l.yg)("li",{parentName:"ul"},"\u65b9\u6848\u4e09\uff1a\u57fa\u4e8e\u5f00\u6e90\u7684 P2P \u9879\u76ee\u6539\u9020\uff0c\u7814\u53d1\u5468\u671f\u957f\uff0c\u9700\u8981 C/C++\u4eba\u624d"),(0,l.yg)("li",{parentName:"ul"},"\u65b9\u6848\u56db\uff1a\u81ea\u7814 P2P\uff0c\u7814\u53d1\u5468\u671f\u957f\uff0c\u9700\u8981 C/C++\u4eba\u624d")))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/281494d0.84c66515.js b/assets/js/281494d0.02d12c5f.js similarity index 99% rename from assets/js/281494d0.84c66515.js rename to assets/js/281494d0.02d12c5f.js index ed2fafd55..f03bffa3a 100644 --- a/assets/js/281494d0.84c66515.js +++ b/assets/js/281494d0.02d12c5f.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7145],{5680:(e,n,t)=>{t.d(n,{xA:()=>p,yg:()=>f});var r=t(6540);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function o(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function i(e){for(var n=1;n=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var l=r.createContext({}),c=function(e){var n=r.useContext(l),t=n;return e&&(t="function"==typeof e?e(n):i(i({},n),e)),t},p=function(e){var n=c(e.components);return r.createElement(l.Provider,{value:n},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},g=r.forwardRef((function(e,n){var t=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,p=u(e,["components","mdxType","originalType","parentName"]),s=c(t),g=a,f=s["".concat(l,".").concat(g)]||s[g]||d[g]||o;return t?r.createElement(f,i(i({ref:n},p),{},{components:t})):r.createElement(f,i({ref:n},p))}));function f(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var o=t.length,i=new Array(o);i[0]=g;var u={};for(var l in n)hasOwnProperty.call(n,l)&&(u[l]=n[l]);u.originalType=e,u[s]="string"==typeof e?e:a,i[1]=u;for(var c=2;c{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>u,toc:()=>c});var r=t(8168),a=(t(6540),t(5680));const o={sidebar_position:3},i="\u7528\u6237\u7aef+\u7ba1\u7406\u7aef",u={unversionedId:"xuanxing/fe/\u7528\u6237\u7aef\u7ba1\u7406\u7aef",id:"xuanxing/fe/\u7528\u6237\u7aef\u7ba1\u7406\u7aef",title:"\u7528\u6237\u7aef+\u7ba1\u7406\u7aef",description:"\u5728\u7269\u8054\u7f51\u4e91\u5e73\u53f0\u4e0a\uff0c\u7528\u6237\u7aef\u548c\u7ba1\u7406\u7aef\u90fd\u662f\u504f\u4e2d\u540e\u53f0\u7684\u7ba1\u7406\u7cfb\u7edf\uff0c\u6240\u4ee5\u4ed6\u4eec\u4e24\u4e2a\u524d\u7aef\u7684\u6280\u672f\u9009\u578b\u4e0a\u5e94\u8be5\u662f\u7edf\u4e00\u7684\uff1b",source:"@site/docs/xuanxing/fe/3-\u7528\u6237\u7aef\u7ba1\u7406\u7aef.md",sourceDirName:"xuanxing/fe",slug:"/xuanxing/fe/\u7528\u6237\u7aef\u7ba1\u7406\u7aef",permalink:"/docs/xuanxing/fe/\u7528\u6237\u7aef\u7ba1\u7406\u7aef",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",sidebarPosition:3,frontMatter:{sidebar_position:3},sidebar:"xuanxingSidebar",previous:{title:"\u5b98\u7f51",permalink:"/docs/xuanxing/fe/\u5b98\u7f51"},next:{title:"\u79fb\u52a8\u7aef",permalink:"/docs/xuanxing/fe/\u79fb\u52a8\u7aef"}},l={},c=[{value:"\u53ef\u9009\u65b9\u6848",id:"\u53ef\u9009\u65b9\u6848",level:3},{value:"\u6700\u7ec8\uff0c\u6280\u672f\u9009\u578b\u4e2a\u4eba\u63a8\u8350\uff1a",id:"\u6700\u7ec8\u6280\u672f\u9009\u578b\u4e2a\u4eba\u63a8\u8350",level:3}],p={toc:c},s="wrapper";function d(e){let{components:n,...t}=e;return(0,a.yg)(s,(0,r.A)({},p,t,{components:n,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"\u7528\u6237\u7aef\u7ba1\u7406\u7aef"},"\u7528\u6237\u7aef+\u7ba1\u7406\u7aef"),(0,a.yg)("p",null,"\u5728\u7269\u8054\u7f51\u4e91\u5e73\u53f0\u4e0a\uff0c\u7528\u6237\u7aef\u548c\u7ba1\u7406\u7aef\u90fd\u662f\u504f\u4e2d\u540e\u53f0\u7684\u7ba1\u7406\u7cfb\u7edf\uff0c\u6240\u4ee5\u4ed6\u4eec\u4e24\u4e2a\u524d\u7aef\u7684\u6280\u672f\u9009\u578b\u4e0a\u5e94\u8be5\u662f\u7edf\u4e00\u7684\uff1b\n\u7528\u6237\u7aef\u662f\u7ed9\u7528\u6237\u4f7f\u7528\u7684\uff0c\u7ba1\u7406\u7aef\u662f\u7ed9\u516c\u53f8\u5185\u90e8\u4f7f\u7528\u7684\u3002"),(0,a.yg)("h3",{id:"\u53ef\u9009\u65b9\u6848"},"\u53ef\u9009\u65b9\u6848"),(0,a.yg)("p",null,"\u6700\u8fd1\u6bd4\u8f83\u706b\u7684\u6280\u672f\u5c31\u4e09\u4e2a\uff1aVue\u3001React\u3001Angular"),(0,a.yg)("p",null,"\u53d7\u4f17\u7a0b\u5ea6\u4e0a\uff0cVue\u56fd\u5185\u8f83\u591a\uff0cReact\u56fd\u5916\u8f83\u591a\uff0cAngular\u90fd\u4e0d\u591a\uff0c\u6240\u4ee5\uff0cAngular\u57fa\u672c\u53ef\u4ee5\u653e\u5f03\u4e86\u3002"),(0,a.yg)("p",null,"\u4ece\u7269\u8054\u7f51\u4e91\u5e73\u53f0\u4ea7\u54c1\u67b6\u6784\u4e0a\u53ef\u4ee5\u770b\u51fa\uff0c\u529f\u80fd\u662f\u5f88\u591a\u5f88\u6742\u7684\uff0c\u800c\u4e14\u8fd8\u6709\u53ef\u80fd\u8bbe\u8ba1\u5230\u4e09\u65b9\u9875\u9762\u7684\u6574\u5408\u7b49\uff0c\n\u8fd9\u4e09\u4e2a\u6280\u672f\u4e0a\u90fd\u53ef\u4ee5\u80dc\u4efb\uff0c\u5dee\u522b\u4e0d\u5927\u3002"),(0,a.yg)("p",null,"\u56fd\u5185\u7684\u8bdd\uff0c\u9996\u63a8Vue\uff0c\u5176\u4ed6\u4e0d\u5206\u6790\u4e86\u3002"),(0,a.yg)("p",null,"\u9009Vue\u7684\u8bdd\uff0c\u6709\u51e0\u4e2a\u5907\u9009\u65b9\u6848\uff1a"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"Vue2+element-ui\uff0c\u8fd9\u4e2a\u5728\u56fd\u5185\u7528\u7684\u662f\u771f\u591a\uff0c\u552f\u4e00\u7684\u52a3\u52bf\u5c31\u662f\u4ed6\u662fVue2\uff0c\u800c\u76ee\u524dVue\u662f\u4e3b\u6d41\uff1b"),(0,a.yg)("li",{parentName:"ul"},"Vue3+elementuiPlus\uff0c\u8fd9\u4e2a\u53d7\u4f17\u9762\u4e0d\u9519\uff0c\u52a3\u52bf\u5c31\u662felementuiPlus\u662f\u793e\u533a\u7ef4\u62a4\u7684\uff0c\u4e0d\u518d\u80cc\u9760\u997f\u4e86\u4e48\u4e86\uff1b"),(0,a.yg)("li",{parentName:"ul"},"Vue3+antd-vue\uff0c\u5982\u679c\u662freact\u53ef\u4ee5\u8003\u8651antd\uff0c\u4f46\u662f\u5982\u679c\u662fVue\uff0c\u5c31\u7b97\u4e86\u5427\uff0c\u800c\u4e14antd-vue\u548cantd\u4e0d\u662f\u4e00\u56de\u4e8b\uff1b"),(0,a.yg)("li",{parentName:"ul"},"Vue3+tdesign\uff0c\u80cc\u9760\u817e\u8baf\uff0cpro\u505a\u7684\u4e5f\u4e0d\u9519\uff1b"),(0,a.yg)("li",{parentName:"ul"},"Vue3+arco.design\uff0c\u80cc\u9760\u5b57\u8282\uff0cpro\u505a\u7684\u4e5f\u4e0d\u9519\uff1b")),(0,a.yg)("p",null,"\u57fa\u672c\u4e0a\uff0c\u5c31\u662ftdesign\u548carcodesign\u4e8c\u9009\u4e00\u4e86\uff0c\u4e2a\u4eba\u63a8\u8350arco.design\u3002"),(0,a.yg)("h3",{id:"\u6700\u7ec8\u6280\u672f\u9009\u578b\u4e2a\u4eba\u63a8\u8350"},"\u6700\u7ec8\uff0c\u6280\u672f\u9009\u578b\u4e2a\u4eba\u63a8\u8350\uff1a"),(0,a.yg)("p",null,"Vue3+arco-design-pro-vue"))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7145],{5680:(e,n,t)=>{t.d(n,{xA:()=>p,yg:()=>f});var r=t(6540);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function o(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function i(e){for(var n=1;n=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var l=r.createContext({}),c=function(e){var n=r.useContext(l),t=n;return e&&(t="function"==typeof e?e(n):i(i({},n),e)),t},p=function(e){var n=c(e.components);return r.createElement(l.Provider,{value:n},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},g=r.forwardRef((function(e,n){var t=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,p=u(e,["components","mdxType","originalType","parentName"]),s=c(t),g=a,f=s["".concat(l,".").concat(g)]||s[g]||d[g]||o;return t?r.createElement(f,i(i({ref:n},p),{},{components:t})):r.createElement(f,i({ref:n},p))}));function f(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var o=t.length,i=new Array(o);i[0]=g;var u={};for(var l in n)hasOwnProperty.call(n,l)&&(u[l]=n[l]);u.originalType=e,u[s]="string"==typeof e?e:a,i[1]=u;for(var c=2;c{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>u,toc:()=>c});var r=t(8168),a=(t(6540),t(5680));const o={sidebar_position:3},i="\u7528\u6237\u7aef+\u7ba1\u7406\u7aef",u={unversionedId:"xuanxing/fe/\u7528\u6237\u7aef\u7ba1\u7406\u7aef",id:"xuanxing/fe/\u7528\u6237\u7aef\u7ba1\u7406\u7aef",title:"\u7528\u6237\u7aef+\u7ba1\u7406\u7aef",description:"\u5728\u7269\u8054\u7f51\u4e91\u5e73\u53f0\u4e0a\uff0c\u7528\u6237\u7aef\u548c\u7ba1\u7406\u7aef\u90fd\u662f\u504f\u4e2d\u540e\u53f0\u7684\u7ba1\u7406\u7cfb\u7edf\uff0c\u6240\u4ee5\u4ed6\u4eec\u4e24\u4e2a\u524d\u7aef\u7684\u6280\u672f\u9009\u578b\u4e0a\u5e94\u8be5\u662f\u7edf\u4e00\u7684\uff1b",source:"@site/docs/xuanxing/fe/3-\u7528\u6237\u7aef\u7ba1\u7406\u7aef.md",sourceDirName:"xuanxing/fe",slug:"/xuanxing/fe/\u7528\u6237\u7aef\u7ba1\u7406\u7aef",permalink:"/docs/xuanxing/fe/\u7528\u6237\u7aef\u7ba1\u7406\u7aef",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",sidebarPosition:3,frontMatter:{sidebar_position:3},sidebar:"xuanxingSidebar",previous:{title:"\u5b98\u7f51",permalink:"/docs/xuanxing/fe/\u5b98\u7f51"},next:{title:"\u79fb\u52a8\u7aef",permalink:"/docs/xuanxing/fe/\u79fb\u52a8\u7aef"}},l={},c=[{value:"\u53ef\u9009\u65b9\u6848",id:"\u53ef\u9009\u65b9\u6848",level:3},{value:"\u6700\u7ec8\uff0c\u6280\u672f\u9009\u578b\u4e2a\u4eba\u63a8\u8350\uff1a",id:"\u6700\u7ec8\u6280\u672f\u9009\u578b\u4e2a\u4eba\u63a8\u8350",level:3}],p={toc:c},s="wrapper";function d(e){let{components:n,...t}=e;return(0,a.yg)(s,(0,r.A)({},p,t,{components:n,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"\u7528\u6237\u7aef\u7ba1\u7406\u7aef"},"\u7528\u6237\u7aef+\u7ba1\u7406\u7aef"),(0,a.yg)("p",null,"\u5728\u7269\u8054\u7f51\u4e91\u5e73\u53f0\u4e0a\uff0c\u7528\u6237\u7aef\u548c\u7ba1\u7406\u7aef\u90fd\u662f\u504f\u4e2d\u540e\u53f0\u7684\u7ba1\u7406\u7cfb\u7edf\uff0c\u6240\u4ee5\u4ed6\u4eec\u4e24\u4e2a\u524d\u7aef\u7684\u6280\u672f\u9009\u578b\u4e0a\u5e94\u8be5\u662f\u7edf\u4e00\u7684\uff1b\n\u7528\u6237\u7aef\u662f\u7ed9\u7528\u6237\u4f7f\u7528\u7684\uff0c\u7ba1\u7406\u7aef\u662f\u7ed9\u516c\u53f8\u5185\u90e8\u4f7f\u7528\u7684\u3002"),(0,a.yg)("h3",{id:"\u53ef\u9009\u65b9\u6848"},"\u53ef\u9009\u65b9\u6848"),(0,a.yg)("p",null,"\u6700\u8fd1\u6bd4\u8f83\u706b\u7684\u6280\u672f\u5c31\u4e09\u4e2a\uff1aVue\u3001React\u3001Angular"),(0,a.yg)("p",null,"\u53d7\u4f17\u7a0b\u5ea6\u4e0a\uff0cVue\u56fd\u5185\u8f83\u591a\uff0cReact\u56fd\u5916\u8f83\u591a\uff0cAngular\u90fd\u4e0d\u591a\uff0c\u6240\u4ee5\uff0cAngular\u57fa\u672c\u53ef\u4ee5\u653e\u5f03\u4e86\u3002"),(0,a.yg)("p",null,"\u4ece\u7269\u8054\u7f51\u4e91\u5e73\u53f0\u4ea7\u54c1\u67b6\u6784\u4e0a\u53ef\u4ee5\u770b\u51fa\uff0c\u529f\u80fd\u662f\u5f88\u591a\u5f88\u6742\u7684\uff0c\u800c\u4e14\u8fd8\u6709\u53ef\u80fd\u8bbe\u8ba1\u5230\u4e09\u65b9\u9875\u9762\u7684\u6574\u5408\u7b49\uff0c\n\u8fd9\u4e09\u4e2a\u6280\u672f\u4e0a\u90fd\u53ef\u4ee5\u80dc\u4efb\uff0c\u5dee\u522b\u4e0d\u5927\u3002"),(0,a.yg)("p",null,"\u56fd\u5185\u7684\u8bdd\uff0c\u9996\u63a8Vue\uff0c\u5176\u4ed6\u4e0d\u5206\u6790\u4e86\u3002"),(0,a.yg)("p",null,"\u9009Vue\u7684\u8bdd\uff0c\u6709\u51e0\u4e2a\u5907\u9009\u65b9\u6848\uff1a"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"Vue2+element-ui\uff0c\u8fd9\u4e2a\u5728\u56fd\u5185\u7528\u7684\u662f\u771f\u591a\uff0c\u552f\u4e00\u7684\u52a3\u52bf\u5c31\u662f\u4ed6\u662fVue2\uff0c\u800c\u76ee\u524dVue\u662f\u4e3b\u6d41\uff1b"),(0,a.yg)("li",{parentName:"ul"},"Vue3+elementuiPlus\uff0c\u8fd9\u4e2a\u53d7\u4f17\u9762\u4e0d\u9519\uff0c\u52a3\u52bf\u5c31\u662felementuiPlus\u662f\u793e\u533a\u7ef4\u62a4\u7684\uff0c\u4e0d\u518d\u80cc\u9760\u997f\u4e86\u4e48\u4e86\uff1b"),(0,a.yg)("li",{parentName:"ul"},"Vue3+antd-vue\uff0c\u5982\u679c\u662freact\u53ef\u4ee5\u8003\u8651antd\uff0c\u4f46\u662f\u5982\u679c\u662fVue\uff0c\u5c31\u7b97\u4e86\u5427\uff0c\u800c\u4e14antd-vue\u548cantd\u4e0d\u662f\u4e00\u56de\u4e8b\uff1b"),(0,a.yg)("li",{parentName:"ul"},"Vue3+tdesign\uff0c\u80cc\u9760\u817e\u8baf\uff0cpro\u505a\u7684\u4e5f\u4e0d\u9519\uff1b"),(0,a.yg)("li",{parentName:"ul"},"Vue3+arco.design\uff0c\u80cc\u9760\u5b57\u8282\uff0cpro\u505a\u7684\u4e5f\u4e0d\u9519\uff1b")),(0,a.yg)("p",null,"\u57fa\u672c\u4e0a\uff0c\u5c31\u662ftdesign\u548carcodesign\u4e8c\u9009\u4e00\u4e86\uff0c\u4e2a\u4eba\u63a8\u8350arco.design\u3002"),(0,a.yg)("h3",{id:"\u6700\u7ec8\u6280\u672f\u9009\u578b\u4e2a\u4eba\u63a8\u8350"},"\u6700\u7ec8\uff0c\u6280\u672f\u9009\u578b\u4e2a\u4eba\u63a8\u8350\uff1a"),(0,a.yg)("p",null,"Vue3+arco-design-pro-vue"))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/28f5562e.0e54e065.js b/assets/js/28f5562e.8ae8cb6d.js similarity index 99% rename from assets/js/28f5562e.0e54e065.js rename to assets/js/28f5562e.8ae8cb6d.js index eadaff889..127a55043 100644 --- a/assets/js/28f5562e.0e54e065.js +++ b/assets/js/28f5562e.8ae8cb6d.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2228],{5680:(e,t,n)=>{n.d(t,{xA:()=>u,yg:()=>g});var r=n(6540);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var o=r.createContext({}),c=function(e){var t=r.useContext(o),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},u=function(e){var t=c(e.components);return r.createElement(o.Provider,{value:t},e.children)},s="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},y=r.forwardRef((function(e,t){var n=e.components,i=e.mdxType,l=e.originalType,o=e.parentName,u=d(e,["components","mdxType","originalType","parentName"]),s=c(n),y=i,g=s["".concat(o,".").concat(y)]||s[y]||p[y]||l;return n?r.createElement(g,a(a({ref:t},u),{},{components:n})):r.createElement(g,a({ref:t},u))}));function g(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var l=n.length,a=new Array(l);a[0]=y;var d={};for(var o in t)hasOwnProperty.call(t,o)&&(d[o]=t[o]);d.originalType=e,d[s]="string"==typeof e?e:i,a[1]=d;for(var c=2;c{n.r(t),n.d(t,{assets:()=>o,contentTitle:()=>a,default:()=>p,frontMatter:()=>l,metadata:()=>d,toc:()=>c});var r=n(8168),i=(n(6540),n(5680));const l={},a=void 0,d={unversionedId:"study/think/\u67b6\u6784/\u5f02\u5730\u591a\u6d3b\u67b6\u6784",id:"study/think/\u67b6\u6784/\u5f02\u5730\u591a\u6d3b\u67b6\u6784",title:"\u5f02\u5730\u591a\u6d3b\u67b6\u6784",description:"\u5e72\u8d27\uff5c\u641e\u61c2\u300c\u5f02\u5730\u591a\u6d3b\u300d\uff0c\u770b\u8fd9\u7bc7\u5c31\u591f\u4e86",source:"@site/docs/study/think/\u67b6\u6784/\u5f02\u5730\u591a\u6d3b\u67b6\u6784.md",sourceDirName:"study/think/\u67b6\u6784",slug:"/study/think/\u67b6\u6784/\u5f02\u5730\u591a\u6d3b\u67b6\u6784",permalink:"/docs/study/think/\u67b6\u6784/\u5f02\u5730\u591a\u6d3b\u67b6\u6784",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"CAP\u7406\u8bba",permalink:"/docs/study/think/\u67b6\u6784/CAP\u7406\u8bba"},next:{title:"\u6280\u672f\u4e2d\u53f0",permalink:"/docs/study/think/\u67b6\u6784/\u6280\u672f\u4e2d\u53f0"}},o={},c=[{value:"\u5355\u673a\u67b6\u6784",id:"\u5355\u673a\u67b6\u6784",level:3},{value:"\u3010\u6ca1\u6709\u6570\u636e\u5907\u4efd\u3011",id:"\u6ca1\u6709\u6570\u636e\u5907\u4efd",level:4},{value:"\u3010\u6709\u6570\u636e\u5907\u4efd\u3001\u975e\u5b9e\u65f6\u3011",id:"\u6709\u6570\u636e\u5907\u4efd\u975e\u5b9e\u65f6",level:4},{value:"\u3010\u6709\u6570\u636e\u5907\u4efd\u3001\u5b9e\u65f6\u3001\u4e3b\u4ece\u6570\u636e\u5e93\u3001\u975e\u8bfb\u5199\u5206\u79bb\u3011",id:"\u6709\u6570\u636e\u5907\u4efd\u5b9e\u65f6\u4e3b\u4ece\u6570\u636e\u5e93\u975e\u8bfb\u5199\u5206\u79bb",level:4},{value:"\u3010\u6709\u6570\u636e\u5907\u4efd\u3001\u5b9e\u65f6\u3001\u4e3b\u4ece\u6570\u636e\u5e93\u3001\u8bfb\u5199\u5206\u79bb\u3011",id:"\u6709\u6570\u636e\u5907\u4efd\u5b9e\u65f6\u4e3b\u4ece\u6570\u636e\u5e93\u8bfb\u5199\u5206\u79bb",level:4},{value:"\u5206\u5e03\u5f0f\u67b6\u6784\u3010\u540c\u57ce\u4e00\u4e2a\u673a\u623f\u3011",id:"\u5206\u5e03\u5f0f\u67b6\u6784\u540c\u57ce\u4e00\u4e2a\u673a\u623f",level:3},{value:"\u3010\u6ca1\u6709\u6570\u636e\u5907\u4efd\u3011",id:"\u6ca1\u6709\u6570\u636e\u5907\u4efd-1",level:4},{value:"\u3010\u6709\u6570\u636e\u5907\u4efd\u3001\u975e\u5b9e\u65f6\u3011",id:"\u6709\u6570\u636e\u5907\u4efd\u975e\u5b9e\u65f6-1",level:4},{value:"\u3010\u6709\u6570\u636e\u5907\u4efd\u3001\u5b9e\u65f6\u3001\u4e3b\u4ece\u6570\u636e\u5e93\u3001\u975e\u8bfb\u5199\u5206\u79bb\u3011",id:"\u6709\u6570\u636e\u5907\u4efd\u5b9e\u65f6\u4e3b\u4ece\u6570\u636e\u5e93\u975e\u8bfb\u5199\u5206\u79bb-1",level:4},{value:"\u3010\u6709\u6570\u636e\u5907\u4efd\u3001\u5b9e\u65f6\u3001\u4e3b\u4ece\u6570\u636e\u5e93\u3001\u8bfb\u5199\u5206\u79bb\u3011",id:"\u6709\u6570\u636e\u5907\u4efd\u5b9e\u65f6\u4e3b\u4ece\u6570\u636e\u5e93\u8bfb\u5199\u5206\u79bb-1",level:4},{value:"\u5206\u5e03\u5f0f\u67b6\u6784\u3010\u540c\u57ce2\u4e2a\u673a\u623f\u3011",id:"\u5206\u5e03\u5f0f\u67b6\u6784\u540c\u57ce2\u4e2a\u673a\u623f",level:3},{value:"\u3010\u51b7\u5907\u3011",id:"\u51b7\u5907",level:4},{value:"\u3010\u70ed\u5907\u3011",id:"\u70ed\u5907",level:4},{value:"\u3010\u540c\u57ce\u53cc\u6d3b\u3011",id:"\u540c\u57ce\u53cc\u6d3b",level:4},{value:"\u5206\u5e03\u5f0f\u67b6\u6784\u3010\u4e24\u57ce3\u4e2a\u673a\u623f\u3011",id:"\u5206\u5e03\u5f0f\u67b6\u6784\u4e24\u57ce3\u4e2a\u673a\u623f",level:3},{value:"\u3010\u4e24\u5730\u4e09\u4e2d\u5fc3\u3001\u707e\u5907\u3011",id:"\u4e24\u5730\u4e09\u4e2d\u5fc3\u707e\u5907",level:4},{value:"\u5206\u5e03\u5f0f\u67b6\u6784\u3010\u4f2a\u5f02\u5730\u53cc\u6d3b\u3011",id:"\u5206\u5e03\u5f0f\u67b6\u6784\u4f2a\u5f02\u5730\u53cc\u6d3b",level:3},{value:"\u5206\u5e03\u5f0f\u67b6\u6784\u3010\u5f02\u5730\u53cc\u6d3b\u3011",id:"\u5206\u5e03\u5f0f\u67b6\u6784\u5f02\u5730\u53cc\u6d3b",level:3},{value:"\u5206\u5e03\u5f0f\u67b6\u6784\u3010\u5f02\u5730\u591a\u6d3b\u3011",id:"\u5206\u5e03\u5f0f\u67b6\u6784\u5f02\u5730\u591a\u6d3b",level:3}],u={toc:c},s="wrapper";function p(e){let{components:t,...l}=e;return(0,i.yg)(s,(0,r.A)({},u,l,{components:t,mdxType:"MDXLayout"}),(0,i.yg)("p",null,(0,i.yg)("a",{parentName:"p",href:"https://baijiahao.baidu.com/s?id=1714292603624190772&wfr=spider&for=pc"},"\u5e72\u8d27\uff5c\u641e\u61c2\u300c\u5f02\u5730\u591a\u6d3b\u300d\uff0c\u770b\u8fd9\u7bc7\u5c31\u591f\u4e86")),(0,i.yg)("p",null,(0,i.yg)("img",{alt:"image.png",src:n(1959).A,width:"376",height:"481"})),(0,i.yg)("h3",{id:"\u5355\u673a\u67b6\u6784"},"\u5355\u673a\u67b6\u6784"),(0,i.yg)("h4",{id:"\u6ca1\u6709\u6570\u636e\u5907\u4efd"},"\u3010\u6ca1\u6709\u6570\u636e\u5907\u4efd\u3011"),(0,i.yg)("h4",{id:"\u6709\u6570\u636e\u5907\u4efd\u975e\u5b9e\u65f6"},"\u3010\u6709\u6570\u636e\u5907\u4efd\u3001\u975e\u5b9e\u65f6\u3011"),(0,i.yg)("h4",{id:"\u6709\u6570\u636e\u5907\u4efd\u5b9e\u65f6\u4e3b\u4ece\u6570\u636e\u5e93\u975e\u8bfb\u5199\u5206\u79bb"},"\u3010\u6709\u6570\u636e\u5907\u4efd\u3001\u5b9e\u65f6\u3001\u4e3b\u4ece\u6570\u636e\u5e93\u3001\u975e\u8bfb\u5199\u5206\u79bb\u3011"),(0,i.yg)("h4",{id:"\u6709\u6570\u636e\u5907\u4efd\u5b9e\u65f6\u4e3b\u4ece\u6570\u636e\u5e93\u8bfb\u5199\u5206\u79bb"},"\u3010\u6709\u6570\u636e\u5907\u4efd\u3001\u5b9e\u65f6\u3001\u4e3b\u4ece\u6570\u636e\u5e93\u3001\u8bfb\u5199\u5206\u79bb\u3011"),(0,i.yg)("h3",{id:"\u5206\u5e03\u5f0f\u67b6\u6784\u540c\u57ce\u4e00\u4e2a\u673a\u623f"},"\u5206\u5e03\u5f0f\u67b6\u6784\u3010\u540c\u57ce\u4e00\u4e2a\u673a\u623f\u3011"),(0,i.yg)("h4",{id:"\u6ca1\u6709\u6570\u636e\u5907\u4efd-1"},"\u3010\u6ca1\u6709\u6570\u636e\u5907\u4efd\u3011"),(0,i.yg)("h4",{id:"\u6709\u6570\u636e\u5907\u4efd\u975e\u5b9e\u65f6-1"},"\u3010\u6709\u6570\u636e\u5907\u4efd\u3001\u975e\u5b9e\u65f6\u3011"),(0,i.yg)("h4",{id:"\u6709\u6570\u636e\u5907\u4efd\u5b9e\u65f6\u4e3b\u4ece\u6570\u636e\u5e93\u975e\u8bfb\u5199\u5206\u79bb-1"},"\u3010\u6709\u6570\u636e\u5907\u4efd\u3001\u5b9e\u65f6\u3001\u4e3b\u4ece\u6570\u636e\u5e93\u3001\u975e\u8bfb\u5199\u5206\u79bb\u3011"),(0,i.yg)("h4",{id:"\u6709\u6570\u636e\u5907\u4efd\u5b9e\u65f6\u4e3b\u4ece\u6570\u636e\u5e93\u8bfb\u5199\u5206\u79bb-1"},"\u3010\u6709\u6570\u636e\u5907\u4efd\u3001\u5b9e\u65f6\u3001\u4e3b\u4ece\u6570\u636e\u5e93\u3001\u8bfb\u5199\u5206\u79bb\u3011"),(0,i.yg)("h3",{id:"\u5206\u5e03\u5f0f\u67b6\u6784\u540c\u57ce2\u4e2a\u673a\u623f"},"\u5206\u5e03\u5f0f\u67b6\u6784\u3010\u540c\u57ce2\u4e2a\u673a\u623f\u3011"),(0,i.yg)("h4",{id:"\u51b7\u5907"},"\u3010\u51b7\u5907\u3011"),(0,i.yg)("h4",{id:"\u70ed\u5907"},"\u3010\u70ed\u5907\u3011"),(0,i.yg)("h4",{id:"\u540c\u57ce\u53cc\u6d3b"},"\u3010\u540c\u57ce\u53cc\u6d3b\u3011"),(0,i.yg)("h3",{id:"\u5206\u5e03\u5f0f\u67b6\u6784\u4e24\u57ce3\u4e2a\u673a\u623f"},"\u5206\u5e03\u5f0f\u67b6\u6784\u3010\u4e24\u57ce3\u4e2a\u673a\u623f\u3011"),(0,i.yg)("p",null,"\u5728\u3010\u540c\u57ce\u53cc\u6d3b\u3011\u7684\u57fa\u7840\u4e0a\u65b0\u589e\u4e86\u4e00\u4e2a\u5f02\u5730\uff08\u975e\u4e00\u4e2a\u57ce\u5e02\uff09\u673a\u623f\u3002"),(0,i.yg)("h4",{id:"\u4e24\u5730\u4e09\u4e2d\u5fc3\u707e\u5907"},"\u3010\u4e24\u5730\u4e09\u4e2d\u5fc3\u3001\u707e\u5907\u3011"),(0,i.yg)("h3",{id:"\u5206\u5e03\u5f0f\u67b6\u6784\u4f2a\u5f02\u5730\u53cc\u6d3b"},"\u5206\u5e03\u5f0f\u67b6\u6784\u3010\u4f2a\u5f02\u5730\u53cc\u6d3b\u3011"),(0,i.yg)("h3",{id:"\u5206\u5e03\u5f0f\u67b6\u6784\u5f02\u5730\u53cc\u6d3b"},"\u5206\u5e03\u5f0f\u67b6\u6784\u3010\u5f02\u5730\u53cc\u6d3b\u3011"),(0,i.yg)("p",null,"\u8def\u7531\u5c42\u7684\u89c4\u5219\u600e\u4e48\u5b9a\uff0c\u4e00\u822c\u662f\u6839\u636e\u4e1a\u52a1\u7c7b\u578b\u3001\u54c8\u5e0c\u7b97\u6cd5(\u4f8b\u5982\u7528\u6237ID)\u3001\u5730\u7406\u4f4d\u7f6e\u7b49"),(0,i.yg)("p",null,(0,i.yg)("img",{alt:"image.png",src:n(4924).A,width:"640",height:"927"})),(0,i.yg)("h3",{id:"\u5206\u5e03\u5f0f\u67b6\u6784\u5f02\u5730\u591a\u6d3b"},"\u5206\u5e03\u5f0f\u67b6\u6784\u3010\u5f02\u5730\u591a\u6d3b\u3011"),(0,i.yg)("p",null,"\u3010\u7f51\u72b6\u3011"),(0,i.yg)("p",null,(0,i.yg)("img",{alt:"image.png",src:n(6549).A,width:"640",height:"668"})),(0,i.yg)("p",null,"\u3010\u661f\u72b6\u3011"),(0,i.yg)("p",null,(0,i.yg)("img",{alt:"image.png",src:n(4490).A,width:"640",height:"668"})))}p.isMDXComponent=!0},1959:(e,t,n)=>{n.d(t,{A:()=>r});const r=n.p+"assets/images/y1-2ea87099668e063c3e7c2ff629fb6343.png"},4924:(e,t,n)=>{n.d(t,{A:()=>r});const r=n.p+"assets/images/y2-6d288cb5097c590fd6e5f87b0bc7d444.png"},6549:(e,t,n)=>{n.d(t,{A:()=>r});const r=n.p+"assets/images/y3-c6ae8c195d1db0dbd128a468ead957ec.png"},4490:(e,t,n)=>{n.d(t,{A:()=>r});const r=n.p+"assets/images/y4-664326e1d0537a58fb2221d2aa95bf62.png"}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2228],{5680:(e,t,n)=>{n.d(t,{xA:()=>u,yg:()=>g});var r=n(6540);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var o=r.createContext({}),c=function(e){var t=r.useContext(o),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},u=function(e){var t=c(e.components);return r.createElement(o.Provider,{value:t},e.children)},s="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},y=r.forwardRef((function(e,t){var n=e.components,i=e.mdxType,l=e.originalType,o=e.parentName,u=d(e,["components","mdxType","originalType","parentName"]),s=c(n),y=i,g=s["".concat(o,".").concat(y)]||s[y]||p[y]||l;return n?r.createElement(g,a(a({ref:t},u),{},{components:n})):r.createElement(g,a({ref:t},u))}));function g(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var l=n.length,a=new Array(l);a[0]=y;var d={};for(var o in t)hasOwnProperty.call(t,o)&&(d[o]=t[o]);d.originalType=e,d[s]="string"==typeof e?e:i,a[1]=d;for(var c=2;c{n.r(t),n.d(t,{assets:()=>o,contentTitle:()=>a,default:()=>p,frontMatter:()=>l,metadata:()=>d,toc:()=>c});var r=n(8168),i=(n(6540),n(5680));const l={},a=void 0,d={unversionedId:"study/think/\u67b6\u6784/\u5f02\u5730\u591a\u6d3b\u67b6\u6784",id:"study/think/\u67b6\u6784/\u5f02\u5730\u591a\u6d3b\u67b6\u6784",title:"\u5f02\u5730\u591a\u6d3b\u67b6\u6784",description:"\u5e72\u8d27\uff5c\u641e\u61c2\u300c\u5f02\u5730\u591a\u6d3b\u300d\uff0c\u770b\u8fd9\u7bc7\u5c31\u591f\u4e86",source:"@site/docs/study/think/\u67b6\u6784/\u5f02\u5730\u591a\u6d3b\u67b6\u6784.md",sourceDirName:"study/think/\u67b6\u6784",slug:"/study/think/\u67b6\u6784/\u5f02\u5730\u591a\u6d3b\u67b6\u6784",permalink:"/docs/study/think/\u67b6\u6784/\u5f02\u5730\u591a\u6d3b\u67b6\u6784",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"CAP\u7406\u8bba",permalink:"/docs/study/think/\u67b6\u6784/CAP\u7406\u8bba"},next:{title:"\u6280\u672f\u4e2d\u53f0",permalink:"/docs/study/think/\u67b6\u6784/\u6280\u672f\u4e2d\u53f0"}},o={},c=[{value:"\u5355\u673a\u67b6\u6784",id:"\u5355\u673a\u67b6\u6784",level:3},{value:"\u3010\u6ca1\u6709\u6570\u636e\u5907\u4efd\u3011",id:"\u6ca1\u6709\u6570\u636e\u5907\u4efd",level:4},{value:"\u3010\u6709\u6570\u636e\u5907\u4efd\u3001\u975e\u5b9e\u65f6\u3011",id:"\u6709\u6570\u636e\u5907\u4efd\u975e\u5b9e\u65f6",level:4},{value:"\u3010\u6709\u6570\u636e\u5907\u4efd\u3001\u5b9e\u65f6\u3001\u4e3b\u4ece\u6570\u636e\u5e93\u3001\u975e\u8bfb\u5199\u5206\u79bb\u3011",id:"\u6709\u6570\u636e\u5907\u4efd\u5b9e\u65f6\u4e3b\u4ece\u6570\u636e\u5e93\u975e\u8bfb\u5199\u5206\u79bb",level:4},{value:"\u3010\u6709\u6570\u636e\u5907\u4efd\u3001\u5b9e\u65f6\u3001\u4e3b\u4ece\u6570\u636e\u5e93\u3001\u8bfb\u5199\u5206\u79bb\u3011",id:"\u6709\u6570\u636e\u5907\u4efd\u5b9e\u65f6\u4e3b\u4ece\u6570\u636e\u5e93\u8bfb\u5199\u5206\u79bb",level:4},{value:"\u5206\u5e03\u5f0f\u67b6\u6784\u3010\u540c\u57ce\u4e00\u4e2a\u673a\u623f\u3011",id:"\u5206\u5e03\u5f0f\u67b6\u6784\u540c\u57ce\u4e00\u4e2a\u673a\u623f",level:3},{value:"\u3010\u6ca1\u6709\u6570\u636e\u5907\u4efd\u3011",id:"\u6ca1\u6709\u6570\u636e\u5907\u4efd-1",level:4},{value:"\u3010\u6709\u6570\u636e\u5907\u4efd\u3001\u975e\u5b9e\u65f6\u3011",id:"\u6709\u6570\u636e\u5907\u4efd\u975e\u5b9e\u65f6-1",level:4},{value:"\u3010\u6709\u6570\u636e\u5907\u4efd\u3001\u5b9e\u65f6\u3001\u4e3b\u4ece\u6570\u636e\u5e93\u3001\u975e\u8bfb\u5199\u5206\u79bb\u3011",id:"\u6709\u6570\u636e\u5907\u4efd\u5b9e\u65f6\u4e3b\u4ece\u6570\u636e\u5e93\u975e\u8bfb\u5199\u5206\u79bb-1",level:4},{value:"\u3010\u6709\u6570\u636e\u5907\u4efd\u3001\u5b9e\u65f6\u3001\u4e3b\u4ece\u6570\u636e\u5e93\u3001\u8bfb\u5199\u5206\u79bb\u3011",id:"\u6709\u6570\u636e\u5907\u4efd\u5b9e\u65f6\u4e3b\u4ece\u6570\u636e\u5e93\u8bfb\u5199\u5206\u79bb-1",level:4},{value:"\u5206\u5e03\u5f0f\u67b6\u6784\u3010\u540c\u57ce2\u4e2a\u673a\u623f\u3011",id:"\u5206\u5e03\u5f0f\u67b6\u6784\u540c\u57ce2\u4e2a\u673a\u623f",level:3},{value:"\u3010\u51b7\u5907\u3011",id:"\u51b7\u5907",level:4},{value:"\u3010\u70ed\u5907\u3011",id:"\u70ed\u5907",level:4},{value:"\u3010\u540c\u57ce\u53cc\u6d3b\u3011",id:"\u540c\u57ce\u53cc\u6d3b",level:4},{value:"\u5206\u5e03\u5f0f\u67b6\u6784\u3010\u4e24\u57ce3\u4e2a\u673a\u623f\u3011",id:"\u5206\u5e03\u5f0f\u67b6\u6784\u4e24\u57ce3\u4e2a\u673a\u623f",level:3},{value:"\u3010\u4e24\u5730\u4e09\u4e2d\u5fc3\u3001\u707e\u5907\u3011",id:"\u4e24\u5730\u4e09\u4e2d\u5fc3\u707e\u5907",level:4},{value:"\u5206\u5e03\u5f0f\u67b6\u6784\u3010\u4f2a\u5f02\u5730\u53cc\u6d3b\u3011",id:"\u5206\u5e03\u5f0f\u67b6\u6784\u4f2a\u5f02\u5730\u53cc\u6d3b",level:3},{value:"\u5206\u5e03\u5f0f\u67b6\u6784\u3010\u5f02\u5730\u53cc\u6d3b\u3011",id:"\u5206\u5e03\u5f0f\u67b6\u6784\u5f02\u5730\u53cc\u6d3b",level:3},{value:"\u5206\u5e03\u5f0f\u67b6\u6784\u3010\u5f02\u5730\u591a\u6d3b\u3011",id:"\u5206\u5e03\u5f0f\u67b6\u6784\u5f02\u5730\u591a\u6d3b",level:3}],u={toc:c},s="wrapper";function p(e){let{components:t,...l}=e;return(0,i.yg)(s,(0,r.A)({},u,l,{components:t,mdxType:"MDXLayout"}),(0,i.yg)("p",null,(0,i.yg)("a",{parentName:"p",href:"https://baijiahao.baidu.com/s?id=1714292603624190772&wfr=spider&for=pc"},"\u5e72\u8d27\uff5c\u641e\u61c2\u300c\u5f02\u5730\u591a\u6d3b\u300d\uff0c\u770b\u8fd9\u7bc7\u5c31\u591f\u4e86")),(0,i.yg)("p",null,(0,i.yg)("img",{alt:"image.png",src:n(1959).A,width:"376",height:"481"})),(0,i.yg)("h3",{id:"\u5355\u673a\u67b6\u6784"},"\u5355\u673a\u67b6\u6784"),(0,i.yg)("h4",{id:"\u6ca1\u6709\u6570\u636e\u5907\u4efd"},"\u3010\u6ca1\u6709\u6570\u636e\u5907\u4efd\u3011"),(0,i.yg)("h4",{id:"\u6709\u6570\u636e\u5907\u4efd\u975e\u5b9e\u65f6"},"\u3010\u6709\u6570\u636e\u5907\u4efd\u3001\u975e\u5b9e\u65f6\u3011"),(0,i.yg)("h4",{id:"\u6709\u6570\u636e\u5907\u4efd\u5b9e\u65f6\u4e3b\u4ece\u6570\u636e\u5e93\u975e\u8bfb\u5199\u5206\u79bb"},"\u3010\u6709\u6570\u636e\u5907\u4efd\u3001\u5b9e\u65f6\u3001\u4e3b\u4ece\u6570\u636e\u5e93\u3001\u975e\u8bfb\u5199\u5206\u79bb\u3011"),(0,i.yg)("h4",{id:"\u6709\u6570\u636e\u5907\u4efd\u5b9e\u65f6\u4e3b\u4ece\u6570\u636e\u5e93\u8bfb\u5199\u5206\u79bb"},"\u3010\u6709\u6570\u636e\u5907\u4efd\u3001\u5b9e\u65f6\u3001\u4e3b\u4ece\u6570\u636e\u5e93\u3001\u8bfb\u5199\u5206\u79bb\u3011"),(0,i.yg)("h3",{id:"\u5206\u5e03\u5f0f\u67b6\u6784\u540c\u57ce\u4e00\u4e2a\u673a\u623f"},"\u5206\u5e03\u5f0f\u67b6\u6784\u3010\u540c\u57ce\u4e00\u4e2a\u673a\u623f\u3011"),(0,i.yg)("h4",{id:"\u6ca1\u6709\u6570\u636e\u5907\u4efd-1"},"\u3010\u6ca1\u6709\u6570\u636e\u5907\u4efd\u3011"),(0,i.yg)("h4",{id:"\u6709\u6570\u636e\u5907\u4efd\u975e\u5b9e\u65f6-1"},"\u3010\u6709\u6570\u636e\u5907\u4efd\u3001\u975e\u5b9e\u65f6\u3011"),(0,i.yg)("h4",{id:"\u6709\u6570\u636e\u5907\u4efd\u5b9e\u65f6\u4e3b\u4ece\u6570\u636e\u5e93\u975e\u8bfb\u5199\u5206\u79bb-1"},"\u3010\u6709\u6570\u636e\u5907\u4efd\u3001\u5b9e\u65f6\u3001\u4e3b\u4ece\u6570\u636e\u5e93\u3001\u975e\u8bfb\u5199\u5206\u79bb\u3011"),(0,i.yg)("h4",{id:"\u6709\u6570\u636e\u5907\u4efd\u5b9e\u65f6\u4e3b\u4ece\u6570\u636e\u5e93\u8bfb\u5199\u5206\u79bb-1"},"\u3010\u6709\u6570\u636e\u5907\u4efd\u3001\u5b9e\u65f6\u3001\u4e3b\u4ece\u6570\u636e\u5e93\u3001\u8bfb\u5199\u5206\u79bb\u3011"),(0,i.yg)("h3",{id:"\u5206\u5e03\u5f0f\u67b6\u6784\u540c\u57ce2\u4e2a\u673a\u623f"},"\u5206\u5e03\u5f0f\u67b6\u6784\u3010\u540c\u57ce2\u4e2a\u673a\u623f\u3011"),(0,i.yg)("h4",{id:"\u51b7\u5907"},"\u3010\u51b7\u5907\u3011"),(0,i.yg)("h4",{id:"\u70ed\u5907"},"\u3010\u70ed\u5907\u3011"),(0,i.yg)("h4",{id:"\u540c\u57ce\u53cc\u6d3b"},"\u3010\u540c\u57ce\u53cc\u6d3b\u3011"),(0,i.yg)("h3",{id:"\u5206\u5e03\u5f0f\u67b6\u6784\u4e24\u57ce3\u4e2a\u673a\u623f"},"\u5206\u5e03\u5f0f\u67b6\u6784\u3010\u4e24\u57ce3\u4e2a\u673a\u623f\u3011"),(0,i.yg)("p",null,"\u5728\u3010\u540c\u57ce\u53cc\u6d3b\u3011\u7684\u57fa\u7840\u4e0a\u65b0\u589e\u4e86\u4e00\u4e2a\u5f02\u5730\uff08\u975e\u4e00\u4e2a\u57ce\u5e02\uff09\u673a\u623f\u3002"),(0,i.yg)("h4",{id:"\u4e24\u5730\u4e09\u4e2d\u5fc3\u707e\u5907"},"\u3010\u4e24\u5730\u4e09\u4e2d\u5fc3\u3001\u707e\u5907\u3011"),(0,i.yg)("h3",{id:"\u5206\u5e03\u5f0f\u67b6\u6784\u4f2a\u5f02\u5730\u53cc\u6d3b"},"\u5206\u5e03\u5f0f\u67b6\u6784\u3010\u4f2a\u5f02\u5730\u53cc\u6d3b\u3011"),(0,i.yg)("h3",{id:"\u5206\u5e03\u5f0f\u67b6\u6784\u5f02\u5730\u53cc\u6d3b"},"\u5206\u5e03\u5f0f\u67b6\u6784\u3010\u5f02\u5730\u53cc\u6d3b\u3011"),(0,i.yg)("p",null,"\u8def\u7531\u5c42\u7684\u89c4\u5219\u600e\u4e48\u5b9a\uff0c\u4e00\u822c\u662f\u6839\u636e\u4e1a\u52a1\u7c7b\u578b\u3001\u54c8\u5e0c\u7b97\u6cd5(\u4f8b\u5982\u7528\u6237ID)\u3001\u5730\u7406\u4f4d\u7f6e\u7b49"),(0,i.yg)("p",null,(0,i.yg)("img",{alt:"image.png",src:n(4924).A,width:"640",height:"927"})),(0,i.yg)("h3",{id:"\u5206\u5e03\u5f0f\u67b6\u6784\u5f02\u5730\u591a\u6d3b"},"\u5206\u5e03\u5f0f\u67b6\u6784\u3010\u5f02\u5730\u591a\u6d3b\u3011"),(0,i.yg)("p",null,"\u3010\u7f51\u72b6\u3011"),(0,i.yg)("p",null,(0,i.yg)("img",{alt:"image.png",src:n(6549).A,width:"640",height:"668"})),(0,i.yg)("p",null,"\u3010\u661f\u72b6\u3011"),(0,i.yg)("p",null,(0,i.yg)("img",{alt:"image.png",src:n(4490).A,width:"640",height:"668"})))}p.isMDXComponent=!0},1959:(e,t,n)=>{n.d(t,{A:()=>r});const r=n.p+"assets/images/y1-2ea87099668e063c3e7c2ff629fb6343.png"},4924:(e,t,n)=>{n.d(t,{A:()=>r});const r=n.p+"assets/images/y2-6d288cb5097c590fd6e5f87b0bc7d444.png"},6549:(e,t,n)=>{n.d(t,{A:()=>r});const r=n.p+"assets/images/y3-c6ae8c195d1db0dbd128a468ead957ec.png"},4490:(e,t,n)=>{n.d(t,{A:()=>r});const r=n.p+"assets/images/y4-664326e1d0537a58fb2221d2aa95bf62.png"}}]); \ No newline at end of file diff --git a/assets/js/2a0a68ae.1f6557d0.js b/assets/js/2a0a68ae.02fee4c4.js similarity index 98% rename from assets/js/2a0a68ae.1f6557d0.js rename to assets/js/2a0a68ae.02fee4c4.js index 929a50f45..1c0b45189 100644 --- a/assets/js/2a0a68ae.1f6557d0.js +++ b/assets/js/2a0a68ae.02fee4c4.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2613],{5680:(e,r,t)=>{t.d(r,{xA:()=>s,yg:()=>f});var n=t(6540);function o(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function a(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function c(e){for(var r=1;r=0||(o[t]=e[t]);return o}(e,r);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var i=n.createContext({}),u=function(e){var r=n.useContext(i),t=r;return e&&(t="function"==typeof e?e(r):c(c({},r),e)),t},s=function(e){var r=u(e.components);return n.createElement(i.Provider,{value:r},e.children)},l="mdxType",m={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},d=n.forwardRef((function(e,r){var t=e.components,o=e.mdxType,a=e.originalType,i=e.parentName,s=p(e,["components","mdxType","originalType","parentName"]),l=u(t),d=o,f=l["".concat(i,".").concat(d)]||l[d]||m[d]||a;return t?n.createElement(f,c(c({ref:r},s),{},{components:t})):n.createElement(f,c({ref:r},s))}));function f(e,r){var t=arguments,o=r&&r.mdxType;if("string"==typeof e||o){var a=t.length,c=new Array(a);c[0]=d;var p={};for(var i in r)hasOwnProperty.call(r,i)&&(p[i]=r[i]);p.originalType=e,p[l]="string"==typeof e?e:o,c[1]=p;for(var u=2;u{t.r(r),t.d(r,{assets:()=>i,contentTitle:()=>c,default:()=>m,frontMatter:()=>a,metadata:()=>p,toc:()=>u});var n=t(8168),o=(t(6540),t(5680));const a={},c=void 0,p={unversionedId:"study/program/JS/nrm",id:"study/program/JS/nrm",title:"nrm",description:"nrm \u662f\u4e00\u4e2a npm \u6e90\u7ba1\u7406\u5668\uff0c\u5141\u8bb8\u4f60\u5feb\u901f\u5730\u5728 npm\u6e90\u95f4\u5207\u6362\u3002",source:"@site/docs/study/program/JS/nrm.md",sourceDirName:"study/program/JS",slug:"/study/program/JS/nrm",permalink:"/docs/study/program/JS/nrm",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"npx",permalink:"/docs/study/program/JS/npx"},next:{title:"index",permalink:"/docs/study/program/Lua/"}},i={},u=[],s={toc:u},l="wrapper";function m(e){let{components:r,...t}=e;return(0,o.yg)(l,(0,n.A)({},s,t,{components:r,mdxType:"MDXLayout"}),(0,o.yg)("p",null,"nrm \u662f\u4e00\u4e2a npm \u6e90\u7ba1\u7406\u5668\uff0c\u5141\u8bb8\u4f60\u5feb\u901f\u5730\u5728 npm\u6e90\u95f4\u5207\u6362\u3002"))}m.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2613],{5680:(e,r,t)=>{t.d(r,{xA:()=>s,yg:()=>f});var n=t(6540);function o(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function a(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function c(e){for(var r=1;r=0||(o[t]=e[t]);return o}(e,r);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var i=n.createContext({}),u=function(e){var r=n.useContext(i),t=r;return e&&(t="function"==typeof e?e(r):c(c({},r),e)),t},s=function(e){var r=u(e.components);return n.createElement(i.Provider,{value:r},e.children)},l="mdxType",m={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},d=n.forwardRef((function(e,r){var t=e.components,o=e.mdxType,a=e.originalType,i=e.parentName,s=p(e,["components","mdxType","originalType","parentName"]),l=u(t),d=o,f=l["".concat(i,".").concat(d)]||l[d]||m[d]||a;return t?n.createElement(f,c(c({ref:r},s),{},{components:t})):n.createElement(f,c({ref:r},s))}));function f(e,r){var t=arguments,o=r&&r.mdxType;if("string"==typeof e||o){var a=t.length,c=new Array(a);c[0]=d;var p={};for(var i in r)hasOwnProperty.call(r,i)&&(p[i]=r[i]);p.originalType=e,p[l]="string"==typeof e?e:o,c[1]=p;for(var u=2;u{t.r(r),t.d(r,{assets:()=>i,contentTitle:()=>c,default:()=>m,frontMatter:()=>a,metadata:()=>p,toc:()=>u});var n=t(8168),o=(t(6540),t(5680));const a={},c=void 0,p={unversionedId:"study/program/JS/nrm",id:"study/program/JS/nrm",title:"nrm",description:"nrm \u662f\u4e00\u4e2a npm \u6e90\u7ba1\u7406\u5668\uff0c\u5141\u8bb8\u4f60\u5feb\u901f\u5730\u5728 npm\u6e90\u95f4\u5207\u6362\u3002",source:"@site/docs/study/program/JS/nrm.md",sourceDirName:"study/program/JS",slug:"/study/program/JS/nrm",permalink:"/docs/study/program/JS/nrm",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"npx",permalink:"/docs/study/program/JS/npx"},next:{title:"index",permalink:"/docs/study/program/Lua/"}},i={},u=[],s={toc:u},l="wrapper";function m(e){let{components:r,...t}=e;return(0,o.yg)(l,(0,n.A)({},s,t,{components:r,mdxType:"MDXLayout"}),(0,o.yg)("p",null,"nrm \u662f\u4e00\u4e2a npm \u6e90\u7ba1\u7406\u5668\uff0c\u5141\u8bb8\u4f60\u5feb\u901f\u5730\u5728 npm\u6e90\u95f4\u5207\u6362\u3002"))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/2b486500.2a3495bc.js b/assets/js/2b486500.6b37cbaa.js similarity index 99% rename from assets/js/2b486500.2a3495bc.js rename to assets/js/2b486500.6b37cbaa.js index 16f97ba7e..fee0defd9 100644 --- a/assets/js/2b486500.2a3495bc.js +++ b/assets/js/2b486500.6b37cbaa.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1808],{5680:(e,t,n)=>{n.d(t,{xA:()=>c,yg:()=>f});var r=n(6540);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function u(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),i=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},c=function(e){var t=i(e.components);return r.createElement(l.Provider,{value:t},e.children)},s="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,u=e.originalType,l=e.parentName,c=p(e,["components","mdxType","originalType","parentName"]),s=i(n),d=a,f=s["".concat(l,".").concat(d)]||s[d]||y[d]||u;return n?r.createElement(f,o(o({ref:t},c),{},{components:n})):r.createElement(f,o({ref:t},c))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var u=n.length,o=new Array(u);o[0]=d;var p={};for(var l in t)hasOwnProperty.call(t,l)&&(p[l]=t[l]);p.originalType=e,p[s]="string"==typeof e?e:a,o[1]=p;for(var i=2;i{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>y,frontMatter:()=>u,metadata:()=>p,toc:()=>i});var r=n(8168),a=(n(6540),n(5680));const u={},o=void 0,p={unversionedId:"study/net/tuntap",id:"study/net/tuntap",title:"tuntap",description:"Tun/Tap",source:"@site/docs/study/net/tuntap.md",sourceDirName:"study/net",slug:"/study/net/tuntap",permalink:"/docs/study/net/tuntap",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Linux tc",permalink:"/docs/study/net/tc"},next:{title:"vpn",permalink:"/docs/study/net/vpn"}},l={},i=[{value:"Tun/Tap",id:"tuntap",level:3}],c={toc:i},s="wrapper";function y(e){let{components:t,...u}=e;return(0,a.yg)(s,(0,r.A)({},c,u,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"tuntap"},"Tun/Tap"),(0,a.yg)("p",null,"\u5728\u8ba1\u7b97\u673a\u7f51\u7edc\u4e2d\uff0cTUN \u4e0e TAP \u662f\u64cd\u4f5c\u7cfb\u7edf\u5185\u6838\u4e2d\u7684\u865a\u62df\u7f51\u7edc\u8bbe\u5907\u3002\u4e0d\u540c\u4e8e\u666e\u901a\u9760\u786c\u4ef6\u7f51\u8def\u677f\u5361\u5b9e\u73b0\u7684\u8bbe\u5907\uff0c\u8fd9\u4e9b\u865a\u62df\u7684\u7f51\u7edc\u8bbe\u5907\u5168\u90e8\u7528\u8f6f\u4ef6\u5b9e\u73b0\uff0c\u5e76\u5411\u8fd0\u884c\u4e8e\u64cd\u4f5c\u7cfb\u7edf\u4e0a\u7684\u8f6f\u4ef6\u63d0\u4f9b\u4e0e\u786c\u4ef6\u7684\u7f51\u7edc\u8bbe\u5907\u5b8c\u5168\u76f8\u540c\u7684\u529f\u80fd\u3002"),(0,a.yg)("p",null,"TAP \u7b49\u540c\u4e8e\u4e00\u4e2a\u4ee5\u592a\u7f51\u8bbe\u5907\uff0c\u5b83\u64cd\u4f5c\u7b2c\u4e8c\u5c42\u6570\u636e\u5305\u5982\u4ee5\u592a\u7f51\u6570\u636e\u5e27\u3002TUN \u6a21\u62df\u4e86\u7f51\u7edc\u5c42\u8bbe\u5907\uff0c\u64cd\u4f5c\u7b2c\u4e09\u5c42\u6570\u636e\u5305\u6bd4\u5982 IP \u6570\u636e\u5c01\u5305\u3002"),(0,a.yg)("p",null,"\u64cd\u4f5c\u7cfb\u7edf\u901a\u8fc7 TUN/TAP \u8bbe\u5907\u5411\u7ed1\u5b9a\u8be5\u8bbe\u5907\u7684\u7528\u6237\u7a7a\u95f4\u7684\u7a0b\u5e8f\u53d1\u9001\u6570\u636e\uff0c\u53cd\u4e4b\uff0c\u7528\u6237\u7a7a\u95f4\u7684\u7a0b\u5e8f\u4e5f\u53ef\u4ee5\u50cf\u64cd\u4f5c\u786c\u4ef6\u7f51\u7edc\u8bbe\u5907\u90a3\u6837\uff0c\u901a\u8fc7 TUN/TAP \u8bbe\u5907\u53d1\u9001\u6570\u636e\u3002\u5728\u540e\u79cd\u60c5\u51b5\u4e0b\uff0cTUN/TAP \u8bbe\u5907\u5411\u64cd\u4f5c\u7cfb\u7edf\u7684\u7f51\u7edc\u6808\u6295\u9012\uff08\u6216\u201c\u6ce8\u5165\u201d\uff09\u6570\u636e\u5305\uff0c\u4ece\u800c\u6a21\u62df\u4ece\u5916\u90e8\u63a5\u53d7\u6570\u636e\u7684\u8fc7\u7a0b\u3002"),(0,a.yg)("p",null,"Tun \u865a\u62df\u8bbe\u5907\u548c\u7269\u7406\u7f51\u5361\u7684\u533a\u522b\u662f Tun \u865a\u62df\u8bbe\u5907\u662f IP \u5c42\u8bbe\u5907\uff0c\u4ece/dev/net/tun \u5b57\u7b26\u8bbe\u5907\u4e0a\u8bfb\u53d6\u7684\u662f IP \u6570\u636e\u5305\uff0c\u5199\u5165\u7684\u4e5f\u53ea\u80fd\u662f IP \u6570\u636e\u5305\uff0c\u56e0\u6b64\u4e0d\u80fd\u8fdb\u884c\u4e8c\u5c42\u64cd\u4f5c\uff0c\u5982\u53d1\u9001 ARP \u8bf7\u6c42\u548c\u4ee5\u592a\u7f51\u5e7f\u64ad\u3002\u4e0e\u4e4b\u76f8\u5bf9\u7684\u662f\uff0cTap \u865a\u62df\u8bbe\u5907\u662f\u4ee5\u592a\u7f51\u8bbe\u5907\uff0c\u5904\u7406\u7684\u662f\u4e8c\u5c42\u4ee5\u592a\u7f51\u6570\u636e\u5e27\uff0c\u4ece/dev/net/tun \u5b57\u7b26\u8bbe\u5907\u4e0a\u8bfb\u53d6\u7684\u662f\u4ee5\u592a\u7f51\u6570\u636e\u5e27\uff0c\u5199\u5165\u7684\u4e5f\u53ea\u80fd\u662f\u4ee5\u592a\u7f51\u6570\u636e\u5e27\u3002\u4ece\u8fd9\u70b9\u6765\u770b\uff0cTap \u865a\u62df\u8bbe\u5907\u548c\u771f\u5b9e\u7684\u7269\u7406\u7f51\u5361\u7684\u80fd\u529b\u66f4\u63a5\u8fd1\u3002"),(0,a.yg)("p",null,(0,a.yg)("a",{target:"_blank",href:n(202).A},"\u539f\u7406\u56fe")),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://www.lxlinux.net/12108.html"},"\u4ecb\u7ecd Linux \u4e0b\u7684 Tun/Tap"),(0,a.yg)("ul",{parentName:"li"},(0,a.yg)("li",{parentName:"ul"},"\u5199\u7684\u771f\u4e0d\u9519\uff0c\u4e86\u89e3 tun\u3001tap \u4ee5\u53ca vpn \u7684\u539f\u7406\u56fe"))),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://www.junmajinlong.com/virtual/network/all_about_tun_tap/index.html"},"\u7406\u89e3 Linux \u865a\u62df\u7f51\u5361\u8bbe\u5907 tun/tap \u7684\u4e00\u5207"))))}y.isMDXComponent=!0},202:(e,t,n)=>{n.d(t,{A:()=>r});const r=n.p+"assets/files/vpnyuanlitu-0ce325275673446da8a9cf4e89759ca3.jpg"}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1808],{5680:(e,t,n)=>{n.d(t,{xA:()=>c,yg:()=>f});var r=n(6540);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function u(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),i=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},c=function(e){var t=i(e.components);return r.createElement(l.Provider,{value:t},e.children)},s="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,u=e.originalType,l=e.parentName,c=p(e,["components","mdxType","originalType","parentName"]),s=i(n),d=a,f=s["".concat(l,".").concat(d)]||s[d]||y[d]||u;return n?r.createElement(f,o(o({ref:t},c),{},{components:n})):r.createElement(f,o({ref:t},c))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var u=n.length,o=new Array(u);o[0]=d;var p={};for(var l in t)hasOwnProperty.call(t,l)&&(p[l]=t[l]);p.originalType=e,p[s]="string"==typeof e?e:a,o[1]=p;for(var i=2;i{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>y,frontMatter:()=>u,metadata:()=>p,toc:()=>i});var r=n(8168),a=(n(6540),n(5680));const u={},o=void 0,p={unversionedId:"study/net/tuntap",id:"study/net/tuntap",title:"tuntap",description:"Tun/Tap",source:"@site/docs/study/net/tuntap.md",sourceDirName:"study/net",slug:"/study/net/tuntap",permalink:"/docs/study/net/tuntap",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Linux tc",permalink:"/docs/study/net/tc"},next:{title:"vpn",permalink:"/docs/study/net/vpn"}},l={},i=[{value:"Tun/Tap",id:"tuntap",level:3}],c={toc:i},s="wrapper";function y(e){let{components:t,...u}=e;return(0,a.yg)(s,(0,r.A)({},c,u,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"tuntap"},"Tun/Tap"),(0,a.yg)("p",null,"\u5728\u8ba1\u7b97\u673a\u7f51\u7edc\u4e2d\uff0cTUN \u4e0e TAP \u662f\u64cd\u4f5c\u7cfb\u7edf\u5185\u6838\u4e2d\u7684\u865a\u62df\u7f51\u7edc\u8bbe\u5907\u3002\u4e0d\u540c\u4e8e\u666e\u901a\u9760\u786c\u4ef6\u7f51\u8def\u677f\u5361\u5b9e\u73b0\u7684\u8bbe\u5907\uff0c\u8fd9\u4e9b\u865a\u62df\u7684\u7f51\u7edc\u8bbe\u5907\u5168\u90e8\u7528\u8f6f\u4ef6\u5b9e\u73b0\uff0c\u5e76\u5411\u8fd0\u884c\u4e8e\u64cd\u4f5c\u7cfb\u7edf\u4e0a\u7684\u8f6f\u4ef6\u63d0\u4f9b\u4e0e\u786c\u4ef6\u7684\u7f51\u7edc\u8bbe\u5907\u5b8c\u5168\u76f8\u540c\u7684\u529f\u80fd\u3002"),(0,a.yg)("p",null,"TAP \u7b49\u540c\u4e8e\u4e00\u4e2a\u4ee5\u592a\u7f51\u8bbe\u5907\uff0c\u5b83\u64cd\u4f5c\u7b2c\u4e8c\u5c42\u6570\u636e\u5305\u5982\u4ee5\u592a\u7f51\u6570\u636e\u5e27\u3002TUN \u6a21\u62df\u4e86\u7f51\u7edc\u5c42\u8bbe\u5907\uff0c\u64cd\u4f5c\u7b2c\u4e09\u5c42\u6570\u636e\u5305\u6bd4\u5982 IP \u6570\u636e\u5c01\u5305\u3002"),(0,a.yg)("p",null,"\u64cd\u4f5c\u7cfb\u7edf\u901a\u8fc7 TUN/TAP \u8bbe\u5907\u5411\u7ed1\u5b9a\u8be5\u8bbe\u5907\u7684\u7528\u6237\u7a7a\u95f4\u7684\u7a0b\u5e8f\u53d1\u9001\u6570\u636e\uff0c\u53cd\u4e4b\uff0c\u7528\u6237\u7a7a\u95f4\u7684\u7a0b\u5e8f\u4e5f\u53ef\u4ee5\u50cf\u64cd\u4f5c\u786c\u4ef6\u7f51\u7edc\u8bbe\u5907\u90a3\u6837\uff0c\u901a\u8fc7 TUN/TAP \u8bbe\u5907\u53d1\u9001\u6570\u636e\u3002\u5728\u540e\u79cd\u60c5\u51b5\u4e0b\uff0cTUN/TAP \u8bbe\u5907\u5411\u64cd\u4f5c\u7cfb\u7edf\u7684\u7f51\u7edc\u6808\u6295\u9012\uff08\u6216\u201c\u6ce8\u5165\u201d\uff09\u6570\u636e\u5305\uff0c\u4ece\u800c\u6a21\u62df\u4ece\u5916\u90e8\u63a5\u53d7\u6570\u636e\u7684\u8fc7\u7a0b\u3002"),(0,a.yg)("p",null,"Tun \u865a\u62df\u8bbe\u5907\u548c\u7269\u7406\u7f51\u5361\u7684\u533a\u522b\u662f Tun \u865a\u62df\u8bbe\u5907\u662f IP \u5c42\u8bbe\u5907\uff0c\u4ece/dev/net/tun \u5b57\u7b26\u8bbe\u5907\u4e0a\u8bfb\u53d6\u7684\u662f IP \u6570\u636e\u5305\uff0c\u5199\u5165\u7684\u4e5f\u53ea\u80fd\u662f IP \u6570\u636e\u5305\uff0c\u56e0\u6b64\u4e0d\u80fd\u8fdb\u884c\u4e8c\u5c42\u64cd\u4f5c\uff0c\u5982\u53d1\u9001 ARP \u8bf7\u6c42\u548c\u4ee5\u592a\u7f51\u5e7f\u64ad\u3002\u4e0e\u4e4b\u76f8\u5bf9\u7684\u662f\uff0cTap \u865a\u62df\u8bbe\u5907\u662f\u4ee5\u592a\u7f51\u8bbe\u5907\uff0c\u5904\u7406\u7684\u662f\u4e8c\u5c42\u4ee5\u592a\u7f51\u6570\u636e\u5e27\uff0c\u4ece/dev/net/tun \u5b57\u7b26\u8bbe\u5907\u4e0a\u8bfb\u53d6\u7684\u662f\u4ee5\u592a\u7f51\u6570\u636e\u5e27\uff0c\u5199\u5165\u7684\u4e5f\u53ea\u80fd\u662f\u4ee5\u592a\u7f51\u6570\u636e\u5e27\u3002\u4ece\u8fd9\u70b9\u6765\u770b\uff0cTap \u865a\u62df\u8bbe\u5907\u548c\u771f\u5b9e\u7684\u7269\u7406\u7f51\u5361\u7684\u80fd\u529b\u66f4\u63a5\u8fd1\u3002"),(0,a.yg)("p",null,(0,a.yg)("a",{target:"_blank",href:n(202).A},"\u539f\u7406\u56fe")),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://www.lxlinux.net/12108.html"},"\u4ecb\u7ecd Linux \u4e0b\u7684 Tun/Tap"),(0,a.yg)("ul",{parentName:"li"},(0,a.yg)("li",{parentName:"ul"},"\u5199\u7684\u771f\u4e0d\u9519\uff0c\u4e86\u89e3 tun\u3001tap \u4ee5\u53ca vpn \u7684\u539f\u7406\u56fe"))),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://www.junmajinlong.com/virtual/network/all_about_tun_tap/index.html"},"\u7406\u89e3 Linux \u865a\u62df\u7f51\u5361\u8bbe\u5907 tun/tap \u7684\u4e00\u5207"))))}y.isMDXComponent=!0},202:(e,t,n)=>{n.d(t,{A:()=>r});const r=n.p+"assets/files/vpnyuanlitu-0ce325275673446da8a9cf4e89759ca3.jpg"}}]); \ No newline at end of file diff --git a/assets/js/2b5f2f35.d4412468.js b/assets/js/2b5f2f35.056fe490.js similarity index 99% rename from assets/js/2b5f2f35.d4412468.js rename to assets/js/2b5f2f35.056fe490.js index e8f344ba1..d9e5e1960 100644 --- a/assets/js/2b5f2f35.d4412468.js +++ b/assets/js/2b5f2f35.056fe490.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5350],{5680:(e,t,n)=>{n.d(t,{xA:()=>d,yg:()=>g});var r=n(6540);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var u=r.createContext({}),c=function(e){var t=r.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},d=function(e){var t=c(e.components);return r.createElement(u.Provider,{value:t},e.children)},p="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},y=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,i=e.originalType,u=e.parentName,d=o(e,["components","mdxType","originalType","parentName"]),p=c(n),y=a,g=p["".concat(u,".").concat(y)]||p[y]||s[y]||i;return n?r.createElement(g,l(l({ref:t},d),{},{components:n})):r.createElement(g,l({ref:t},d))}));function g(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=n.length,l=new Array(i);l[0]=y;var o={};for(var u in t)hasOwnProperty.call(t,u)&&(o[u]=t[u]);o.originalType=e,o[p]="string"==typeof e?e:a,l[1]=o;for(var c=2;c{n.r(t),n.d(t,{assets:()=>u,contentTitle:()=>l,default:()=>s,frontMatter:()=>i,metadata:()=>o,toc:()=>c});var r=n(8168),a=(n(6540),n(5680));const i={},l="\u5b57\u8282\u5e8f Big Endian Little Endian",o={unversionedId:"study/other/\u5b57\u8282\u5e8f",id:"study/other/\u5b57\u8282\u5e8f",title:"\u5b57\u8282\u5e8f Big Endian Little Endian",description:"\u5b57\u8282\u5e8f\uff0c\u4e5f\u5c31\u662f\u5b57\u8282\u7684\u987a\u5e8f\uff0c\u6307\u7684\u662f\u591a\u5b57\u8282\u7684\u6570\u636e\u5728\u5185\u5b58\u4e2d\u7684\u5b58\u653e\u987a\u5e8f\u3002",source:"@site/docs/study/other/\u5b57\u8282\u5e8f.md",sourceDirName:"study/other",slug:"/study/other/\u5b57\u8282\u5e8f",permalink:"/docs/study/other/\u5b57\u8282\u5e8f",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u4eba\u5de5\u667a\u80fd",permalink:"/docs/study/ai/"}},u={},c=[{value:"\u5927\u7aef\u4e0e\u5c0f\u7aef",id:"\u5927\u7aef\u4e0e\u5c0f\u7aef",level:3},{value:"\u4e24\u79cd\u5b57\u8282\u5e8f\uff1a\u7f51\u7edc\u5e8f\u548c\u4e3b\u673a\u5e8f",id:"\u4e24\u79cd\u5b57\u8282\u5e8f\u7f51\u7edc\u5e8f\u548c\u4e3b\u673a\u5e8f",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],d={toc:c},p="wrapper";function s(e){let{components:t,...i}=e;return(0,a.yg)(p,(0,r.A)({},d,i,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"\u5b57\u8282\u5e8f-big-endian-little-endian"},"\u5b57\u8282\u5e8f Big Endian Little Endian"),(0,a.yg)("p",null,"\u5b57\u8282\u5e8f\uff0c\u4e5f\u5c31\u662f\u5b57\u8282\u7684\u987a\u5e8f\uff0c\u6307\u7684\u662f\u591a\u5b57\u8282\u7684\u6570\u636e\u5728\u5185\u5b58\u4e2d\u7684\u5b58\u653e\u987a\u5e8f\u3002"),(0,a.yg)("p",null,"\u5728\u51e0\u4e4e\u6240\u6709\u7684\u673a\u5668\u4e0a\uff0c\u591a\u5b57\u8282\u5bf9\u8c61\u90fd\u88ab\u5b58\u50a8\u4e3a\u8fde\u7eed\u7684\u5b57\u8282\u5e8f\u5217\u3002\u4f8b\u5982\uff1a\u5982\u679c C/C++\u4e2d\u7684\u4e00\u4e2a int \u578b\u53d8\u91cf a \u7684\u8d77\u59cb\u5730\u5740\u662f&a = 0x100\uff0c\u90a3\u4e48 a \u7684\u56db\u4e2a\u5b57\u8282\u5c06\u88ab\u5b58\u50a8\u5728\u5b58\u50a8\u5668\u7684 0x100, 0x101, 0x102, 0x103 \u4f4d\u7f6e\u3002"),(0,a.yg)("p",null,"\u6839\u636e\u6574\u6570 a \u5728\u8fde\u7eed\u7684 4 byte \u5185\u5b58\u4e2d\u7684\u5b58\u50a8\u987a\u5e8f\uff0c\u5b57\u8282\u5e8f\u88ab\u5206\u4e3a\u5927\u7aef\u5e8f\uff08Big Endian\uff09 \u4e0e \u5c0f\u7aef\u5e8f\uff08Little Endian\uff09\u4e24\u7c7b\u3002 \u7136\u540e\u5c31\u7275\u6d89\u51fa\u4e24\u5927 CPU \u6d3e\u7cfb\uff1a"),(0,a.yg)("p",null,"Motorola 6800\uff0cPowerPC 970\uff0cSPARC\uff08\u9664 V9 \u5916\uff09\u7b49\u5904\u7406\u5668\u91c7\u7528 Big Endian \u65b9\u5f0f\u5b58\u50a8\u6570\u636e\uff1b\nx86 \u7cfb\u5217\uff0cVAX\uff0cPDP-11 \u7b49\u5904\u7406\u5668\u91c7\u7528 Little Endian \u65b9\u5f0f\u5b58\u50a8\u6570\u636e\u3002\n\u53e6\u5916\uff0c\u8fd8\u6709\u4e00\u4e9b\u5904\u7406\u5668\u50cf ARM, DEC Alpha \u7684\u5b57\u8282\u5e8f\u662f\u53ef\u914d\u7f6e\u7684\u3002"),(0,a.yg)("h3",{id:"\u5927\u7aef\u4e0e\u5c0f\u7aef"},"\u5927\u7aef\u4e0e\u5c0f\u7aef"),(0,a.yg)("p",null,(0,a.yg)("img",{alt:"\u5927\u7aef\u4e0e\u5c0f\u7aef",src:n(9356).A,width:"520",height:"426"})),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"Big Endian \u662f\u6307\u4f4e\u5730\u5740\u7aef \u5b58\u653e \u9ad8\u4f4d\u5b57\u8282\u3002"),(0,a.yg)("li",{parentName:"ul"},"Little Endian \u662f\u6307\u4f4e\u5730\u5740\u7aef \u5b58\u653e \u4f4e\u4f4d\u5b57\u8282\u3002")),(0,a.yg)("h3",{id:"\u4e24\u79cd\u5b57\u8282\u5e8f\u7f51\u7edc\u5e8f\u548c\u4e3b\u673a\u5e8f"},"\u4e24\u79cd\u5b57\u8282\u5e8f\uff1a\u7f51\u7edc\u5e8f\u548c\u4e3b\u673a\u5e8f"),(0,a.yg)("p",null,"\u7f51\u7edc\u5b57\u8282\u5e8f\uff1aTCP/IP \u5404\u5c42\u534f\u8bae\u5c06\u5b57\u8282\u5e8f\u5b9a\u4e49\u4e3a Big Endian\uff0c\u56e0\u6b64 TCP/IP \u534f\u8bae\u4e2d\u4f7f\u7528\u7684\u5b57\u8282\u5e8f\u662f\u5927\u7aef\u5e8f\u3002\u662f\u786e\u5b9a\u7684"),(0,a.yg)("p",null,"\u4e3b\u673a\u5b57\u8282\u5e8f\uff1a\u6574\u6570\u5728\u5185\u5b58\u4e2d\u5b58\u50a8\u7684\u987a\u5e8f\uff0c\u7531 CPU \u67b6\u6784\u51b3\u5b9a\uff0c\u53ef\u80fd\u662f\u5c0f\u7aef\uff0c\u4e5f\u53ef\u80fd\u662f\u5927\u7aef\uff0c\u5e38\u7528\u7684 Intel \u4e0e AMD \u7684 CPU \u5747\u4e3a\u5c0f\u7aef\u5b57\u8282\u5e8f\u3002"),(0,a.yg)("p",null,"\u5728\u8fdb\u884c\u7f51\u7edc\u901a\u4fe1\u65f6 \u901a\u5e38\u9700\u8981\u8c03\u7528\u76f8\u5e94\u7684\u51fd\u6570\u8fdb\u884c\u4e3b\u673a\u5e8f\u548c\u7f51\u7edc\u5e8f\u7684\u8f6c\u6362\u3002"),(0,a.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://blog.csdn.net/zhizhengguan/article/details/107887396"},"\u5b57\u8282\u5e8f\uff1aBig Endian \u548c Little Endian"))))}s.isMDXComponent=!0},9356:(e,t,n)=>{n.d(t,{A:()=>r});const r=n.p+"assets/images/zijiexu-8a5e0d07254294a0549c6f18d9f2f801.png"}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5350],{5680:(e,t,n)=>{n.d(t,{xA:()=>d,yg:()=>g});var r=n(6540);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var u=r.createContext({}),c=function(e){var t=r.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},d=function(e){var t=c(e.components);return r.createElement(u.Provider,{value:t},e.children)},p="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},y=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,i=e.originalType,u=e.parentName,d=o(e,["components","mdxType","originalType","parentName"]),p=c(n),y=a,g=p["".concat(u,".").concat(y)]||p[y]||s[y]||i;return n?r.createElement(g,l(l({ref:t},d),{},{components:n})):r.createElement(g,l({ref:t},d))}));function g(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=n.length,l=new Array(i);l[0]=y;var o={};for(var u in t)hasOwnProperty.call(t,u)&&(o[u]=t[u]);o.originalType=e,o[p]="string"==typeof e?e:a,l[1]=o;for(var c=2;c{n.r(t),n.d(t,{assets:()=>u,contentTitle:()=>l,default:()=>s,frontMatter:()=>i,metadata:()=>o,toc:()=>c});var r=n(8168),a=(n(6540),n(5680));const i={},l="\u5b57\u8282\u5e8f Big Endian Little Endian",o={unversionedId:"study/other/\u5b57\u8282\u5e8f",id:"study/other/\u5b57\u8282\u5e8f",title:"\u5b57\u8282\u5e8f Big Endian Little Endian",description:"\u5b57\u8282\u5e8f\uff0c\u4e5f\u5c31\u662f\u5b57\u8282\u7684\u987a\u5e8f\uff0c\u6307\u7684\u662f\u591a\u5b57\u8282\u7684\u6570\u636e\u5728\u5185\u5b58\u4e2d\u7684\u5b58\u653e\u987a\u5e8f\u3002",source:"@site/docs/study/other/\u5b57\u8282\u5e8f.md",sourceDirName:"study/other",slug:"/study/other/\u5b57\u8282\u5e8f",permalink:"/docs/study/other/\u5b57\u8282\u5e8f",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u4eba\u5de5\u667a\u80fd",permalink:"/docs/study/ai/"}},u={},c=[{value:"\u5927\u7aef\u4e0e\u5c0f\u7aef",id:"\u5927\u7aef\u4e0e\u5c0f\u7aef",level:3},{value:"\u4e24\u79cd\u5b57\u8282\u5e8f\uff1a\u7f51\u7edc\u5e8f\u548c\u4e3b\u673a\u5e8f",id:"\u4e24\u79cd\u5b57\u8282\u5e8f\u7f51\u7edc\u5e8f\u548c\u4e3b\u673a\u5e8f",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],d={toc:c},p="wrapper";function s(e){let{components:t,...i}=e;return(0,a.yg)(p,(0,r.A)({},d,i,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"\u5b57\u8282\u5e8f-big-endian-little-endian"},"\u5b57\u8282\u5e8f Big Endian Little Endian"),(0,a.yg)("p",null,"\u5b57\u8282\u5e8f\uff0c\u4e5f\u5c31\u662f\u5b57\u8282\u7684\u987a\u5e8f\uff0c\u6307\u7684\u662f\u591a\u5b57\u8282\u7684\u6570\u636e\u5728\u5185\u5b58\u4e2d\u7684\u5b58\u653e\u987a\u5e8f\u3002"),(0,a.yg)("p",null,"\u5728\u51e0\u4e4e\u6240\u6709\u7684\u673a\u5668\u4e0a\uff0c\u591a\u5b57\u8282\u5bf9\u8c61\u90fd\u88ab\u5b58\u50a8\u4e3a\u8fde\u7eed\u7684\u5b57\u8282\u5e8f\u5217\u3002\u4f8b\u5982\uff1a\u5982\u679c C/C++\u4e2d\u7684\u4e00\u4e2a int \u578b\u53d8\u91cf a \u7684\u8d77\u59cb\u5730\u5740\u662f&a = 0x100\uff0c\u90a3\u4e48 a \u7684\u56db\u4e2a\u5b57\u8282\u5c06\u88ab\u5b58\u50a8\u5728\u5b58\u50a8\u5668\u7684 0x100, 0x101, 0x102, 0x103 \u4f4d\u7f6e\u3002"),(0,a.yg)("p",null,"\u6839\u636e\u6574\u6570 a \u5728\u8fde\u7eed\u7684 4 byte \u5185\u5b58\u4e2d\u7684\u5b58\u50a8\u987a\u5e8f\uff0c\u5b57\u8282\u5e8f\u88ab\u5206\u4e3a\u5927\u7aef\u5e8f\uff08Big Endian\uff09 \u4e0e \u5c0f\u7aef\u5e8f\uff08Little Endian\uff09\u4e24\u7c7b\u3002 \u7136\u540e\u5c31\u7275\u6d89\u51fa\u4e24\u5927 CPU \u6d3e\u7cfb\uff1a"),(0,a.yg)("p",null,"Motorola 6800\uff0cPowerPC 970\uff0cSPARC\uff08\u9664 V9 \u5916\uff09\u7b49\u5904\u7406\u5668\u91c7\u7528 Big Endian \u65b9\u5f0f\u5b58\u50a8\u6570\u636e\uff1b\nx86 \u7cfb\u5217\uff0cVAX\uff0cPDP-11 \u7b49\u5904\u7406\u5668\u91c7\u7528 Little Endian \u65b9\u5f0f\u5b58\u50a8\u6570\u636e\u3002\n\u53e6\u5916\uff0c\u8fd8\u6709\u4e00\u4e9b\u5904\u7406\u5668\u50cf ARM, DEC Alpha \u7684\u5b57\u8282\u5e8f\u662f\u53ef\u914d\u7f6e\u7684\u3002"),(0,a.yg)("h3",{id:"\u5927\u7aef\u4e0e\u5c0f\u7aef"},"\u5927\u7aef\u4e0e\u5c0f\u7aef"),(0,a.yg)("p",null,(0,a.yg)("img",{alt:"\u5927\u7aef\u4e0e\u5c0f\u7aef",src:n(9356).A,width:"520",height:"426"})),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"Big Endian \u662f\u6307\u4f4e\u5730\u5740\u7aef \u5b58\u653e \u9ad8\u4f4d\u5b57\u8282\u3002"),(0,a.yg)("li",{parentName:"ul"},"Little Endian \u662f\u6307\u4f4e\u5730\u5740\u7aef \u5b58\u653e \u4f4e\u4f4d\u5b57\u8282\u3002")),(0,a.yg)("h3",{id:"\u4e24\u79cd\u5b57\u8282\u5e8f\u7f51\u7edc\u5e8f\u548c\u4e3b\u673a\u5e8f"},"\u4e24\u79cd\u5b57\u8282\u5e8f\uff1a\u7f51\u7edc\u5e8f\u548c\u4e3b\u673a\u5e8f"),(0,a.yg)("p",null,"\u7f51\u7edc\u5b57\u8282\u5e8f\uff1aTCP/IP \u5404\u5c42\u534f\u8bae\u5c06\u5b57\u8282\u5e8f\u5b9a\u4e49\u4e3a Big Endian\uff0c\u56e0\u6b64 TCP/IP \u534f\u8bae\u4e2d\u4f7f\u7528\u7684\u5b57\u8282\u5e8f\u662f\u5927\u7aef\u5e8f\u3002\u662f\u786e\u5b9a\u7684"),(0,a.yg)("p",null,"\u4e3b\u673a\u5b57\u8282\u5e8f\uff1a\u6574\u6570\u5728\u5185\u5b58\u4e2d\u5b58\u50a8\u7684\u987a\u5e8f\uff0c\u7531 CPU \u67b6\u6784\u51b3\u5b9a\uff0c\u53ef\u80fd\u662f\u5c0f\u7aef\uff0c\u4e5f\u53ef\u80fd\u662f\u5927\u7aef\uff0c\u5e38\u7528\u7684 Intel \u4e0e AMD \u7684 CPU \u5747\u4e3a\u5c0f\u7aef\u5b57\u8282\u5e8f\u3002"),(0,a.yg)("p",null,"\u5728\u8fdb\u884c\u7f51\u7edc\u901a\u4fe1\u65f6 \u901a\u5e38\u9700\u8981\u8c03\u7528\u76f8\u5e94\u7684\u51fd\u6570\u8fdb\u884c\u4e3b\u673a\u5e8f\u548c\u7f51\u7edc\u5e8f\u7684\u8f6c\u6362\u3002"),(0,a.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://blog.csdn.net/zhizhengguan/article/details/107887396"},"\u5b57\u8282\u5e8f\uff1aBig Endian \u548c Little Endian"))))}s.isMDXComponent=!0},9356:(e,t,n)=>{n.d(t,{A:()=>r});const r=n.p+"assets/images/zijiexu-8a5e0d07254294a0549c6f18d9f2f801.png"}}]); \ No newline at end of file diff --git a/assets/js/2bc909a9.ff6c4c11.js b/assets/js/2bc909a9.a8a8472e.js similarity index 98% rename from assets/js/2bc909a9.ff6c4c11.js rename to assets/js/2bc909a9.a8a8472e.js index c3d7d910d..5a26d96fe 100644 --- a/assets/js/2bc909a9.ff6c4c11.js +++ b/assets/js/2bc909a9.a8a8472e.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8788],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),p=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},l="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),l=p(r),y=o,f=l["".concat(s,".").concat(y)]||l[y]||d[y]||a;return r?n.createElement(f,i(i({ref:t},u),{},{components:r})):n.createElement(f,i({ref:t},u))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=y;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[l]="string"==typeof e?e:o,i[1]=c;for(var p=2;p{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>p});var n=r(8168),o=(r(6540),r(5680));const a={sidebar_position:1},i="\u5b66\u65e0\u6b62\u5883",c={unversionedId:"study/index",id:"study/index",title:"\u5b66\u65e0\u6b62\u5883",description:"\u7269\u8054\u7f51\u4e91\u5e73\u53f0\u662f\u4e00\u4e2a\u4e0d\u65ad\u53d1\u5c55\u548c\u53d8\u5316\u7684\u9886\u57df\uff0c\u5b66\u65e0\u6b62\u5883\u3002\u968f\u7740\u6280\u672f\u548c\u5e02\u573a\u7684\u4e0d\u65ad\u53d8\u5316\uff0c\u6211\u4eec\u9700\u8981\u59cb\u7ec8\u4fdd\u6301\u654f\u9510\u7684\u89c2\u5bdf\u529b\u548c\u5b66\u4e60\u80fd\u529b\u3002",source:"@site/docs/study/index.md",sourceDirName:"study",slug:"/study/",permalink:"/docs/study/",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"studySidebar",next:{title:"\u6982\u8ff0",permalink:"/docs/study/fe/"}},s={},p=[],u={toc:p},l="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(l,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"\u5b66\u65e0\u6b62\u5883"},"\u5b66\u65e0\u6b62\u5883"),(0,o.yg)("p",null,"\u7269\u8054\u7f51\u4e91\u5e73\u53f0\u662f\u4e00\u4e2a\u4e0d\u65ad\u53d1\u5c55\u548c\u53d8\u5316\u7684\u9886\u57df\uff0c\u5b66\u65e0\u6b62\u5883\u3002\u968f\u7740\u6280\u672f\u548c\u5e02\u573a\u7684\u4e0d\u65ad\u53d8\u5316\uff0c\u6211\u4eec\u9700\u8981\u59cb\u7ec8\u4fdd\u6301\u654f\u9510\u7684\u89c2\u5bdf\u529b\u548c\u5b66\u4e60\u80fd\u529b\u3002"),(0,o.yg)("p",null,"\u9996\u5148\uff0c\u6211\u4eec\u9700\u8981\u4e86\u89e3\u5e76\u638c\u63e1\u6700\u65b0\u7684\u7269\u8054\u7f51\u6280\u672f\u548c\u4e91\u8ba1\u7b97\u6280\u672f\uff0c\u4f8b\u5982\u8fb9\u7f18\u8ba1\u7b97\u3001\u4eba\u5de5\u667a\u80fd\u7b49\u3002\u5176\u6b21\uff0c\u6211\u4eec\u9700\u8981\u6df1\u5165\u7406\u89e3\u5ba2\u6237\u7684\u9700\u6c42\uff0c\u4ee5\u6784\u5efa\u66f4\u52a0\u667a\u80fd\u548c\u9ad8\u6548\u7684\u7269\u8054\u7f51\u89e3\u51b3\u65b9\u6848\u3002\u540c\u65f6\uff0c\u6211\u4eec\u8fd8\u9700\u8981\u5bf9\u5404\u79cd\u5b89\u5168\u95ee\u9898\u4fdd\u6301\u9ad8\u5ea6\u8b66\u60d5\uff0c\u5e76\u91c7\u53d6\u63aa\u65bd\u4fdd\u62a4\u7528\u6237\u6570\u636e\u7684\u5b89\u5168\u6027\u3002"),(0,o.yg)("p",null,"\u4e0d\u65ad\u5b66\u4e60\u548c\u63d0\u5347\u81ea\u5df1\u7684\u6280\u80fd\u662f\u975e\u5e38\u91cd\u8981\u7684\uff0c\u53ef\u4ee5\u5e2e\u52a9\u6211\u4eec\u66f4\u597d\u5730\u9002\u5e94\u5feb\u901f\u53d8\u5316\u7684\u5e02\u573a\u548c\u6280\u672f\u73af\u5883\u3002\u56e0\u6b64\uff0c\u6211\u76f8\u4fe1\u5728\u8fd9\u4e2a\u5feb\u901f\u53d1\u5c55\u7684\u884c\u4e1a\u4e2d\uff0c\u6301\u7eed\u4e0d\u65ad\u5730\u5b66\u4e60\u548c\u8fdb\u6b65\u662f\u5fc5\u4e0d\u53ef\u5c11\u7684\u3002"))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8788],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),p=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},l="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),l=p(r),y=o,f=l["".concat(s,".").concat(y)]||l[y]||d[y]||a;return r?n.createElement(f,i(i({ref:t},u),{},{components:r})):n.createElement(f,i({ref:t},u))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=y;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[l]="string"==typeof e?e:o,i[1]=c;for(var p=2;p{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>p});var n=r(8168),o=(r(6540),r(5680));const a={sidebar_position:1},i="\u5b66\u65e0\u6b62\u5883",c={unversionedId:"study/index",id:"study/index",title:"\u5b66\u65e0\u6b62\u5883",description:"\u7269\u8054\u7f51\u4e91\u5e73\u53f0\u662f\u4e00\u4e2a\u4e0d\u65ad\u53d1\u5c55\u548c\u53d8\u5316\u7684\u9886\u57df\uff0c\u5b66\u65e0\u6b62\u5883\u3002\u968f\u7740\u6280\u672f\u548c\u5e02\u573a\u7684\u4e0d\u65ad\u53d8\u5316\uff0c\u6211\u4eec\u9700\u8981\u59cb\u7ec8\u4fdd\u6301\u654f\u9510\u7684\u89c2\u5bdf\u529b\u548c\u5b66\u4e60\u80fd\u529b\u3002",source:"@site/docs/study/index.md",sourceDirName:"study",slug:"/study/",permalink:"/docs/study/",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"studySidebar",next:{title:"\u6982\u8ff0",permalink:"/docs/study/fe/"}},s={},p=[],u={toc:p},l="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(l,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"\u5b66\u65e0\u6b62\u5883"},"\u5b66\u65e0\u6b62\u5883"),(0,o.yg)("p",null,"\u7269\u8054\u7f51\u4e91\u5e73\u53f0\u662f\u4e00\u4e2a\u4e0d\u65ad\u53d1\u5c55\u548c\u53d8\u5316\u7684\u9886\u57df\uff0c\u5b66\u65e0\u6b62\u5883\u3002\u968f\u7740\u6280\u672f\u548c\u5e02\u573a\u7684\u4e0d\u65ad\u53d8\u5316\uff0c\u6211\u4eec\u9700\u8981\u59cb\u7ec8\u4fdd\u6301\u654f\u9510\u7684\u89c2\u5bdf\u529b\u548c\u5b66\u4e60\u80fd\u529b\u3002"),(0,o.yg)("p",null,"\u9996\u5148\uff0c\u6211\u4eec\u9700\u8981\u4e86\u89e3\u5e76\u638c\u63e1\u6700\u65b0\u7684\u7269\u8054\u7f51\u6280\u672f\u548c\u4e91\u8ba1\u7b97\u6280\u672f\uff0c\u4f8b\u5982\u8fb9\u7f18\u8ba1\u7b97\u3001\u4eba\u5de5\u667a\u80fd\u7b49\u3002\u5176\u6b21\uff0c\u6211\u4eec\u9700\u8981\u6df1\u5165\u7406\u89e3\u5ba2\u6237\u7684\u9700\u6c42\uff0c\u4ee5\u6784\u5efa\u66f4\u52a0\u667a\u80fd\u548c\u9ad8\u6548\u7684\u7269\u8054\u7f51\u89e3\u51b3\u65b9\u6848\u3002\u540c\u65f6\uff0c\u6211\u4eec\u8fd8\u9700\u8981\u5bf9\u5404\u79cd\u5b89\u5168\u95ee\u9898\u4fdd\u6301\u9ad8\u5ea6\u8b66\u60d5\uff0c\u5e76\u91c7\u53d6\u63aa\u65bd\u4fdd\u62a4\u7528\u6237\u6570\u636e\u7684\u5b89\u5168\u6027\u3002"),(0,o.yg)("p",null,"\u4e0d\u65ad\u5b66\u4e60\u548c\u63d0\u5347\u81ea\u5df1\u7684\u6280\u80fd\u662f\u975e\u5e38\u91cd\u8981\u7684\uff0c\u53ef\u4ee5\u5e2e\u52a9\u6211\u4eec\u66f4\u597d\u5730\u9002\u5e94\u5feb\u901f\u53d8\u5316\u7684\u5e02\u573a\u548c\u6280\u672f\u73af\u5883\u3002\u56e0\u6b64\uff0c\u6211\u76f8\u4fe1\u5728\u8fd9\u4e2a\u5feb\u901f\u53d1\u5c55\u7684\u884c\u4e1a\u4e2d\uff0c\u6301\u7eed\u4e0d\u65ad\u5730\u5b66\u4e60\u548c\u8fdb\u6b65\u662f\u5fc5\u4e0d\u53ef\u5c11\u7684\u3002"))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/2c29bcc5.5e71a3f5.js b/assets/js/2c29bcc5.6d9416f4.js similarity index 98% rename from assets/js/2c29bcc5.5e71a3f5.js rename to assets/js/2c29bcc5.6d9416f4.js index 5cd39c62a..3eeacf35b 100644 --- a/assets/js/2c29bcc5.5e71a3f5.js +++ b/assets/js/2c29bcc5.6d9416f4.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7748],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>m});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function a(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),d=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},p=function(e){var t=d(e.components);return n.createElement(l.Provider,{value:t},e.children)},u="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,i=e.originalType,l=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),u=d(r),f=o,m=u["".concat(l,".").concat(f)]||u[f]||s[f]||i;return r?n.createElement(m,a(a({ref:t},p),{},{components:r})):n.createElement(m,a({ref:t},p))}));function m(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=r.length,a=new Array(i);a[0]=f;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[u]="string"==typeof e?e:o,a[1]=c;for(var d=2;d{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>a,default:()=>s,frontMatter:()=>i,metadata:()=>c,toc:()=>d});var n=r(8168),o=(r(6540),r(5680));const i={sidebar_position:5},a="\u8bbe\u5907\u4fe1\u606f\u7ba1\u7406",c={unversionedId:"iotcloud/devicemanager/device-info",id:"iotcloud/devicemanager/device-info",title:"\u8bbe\u5907\u4fe1\u606f\u7ba1\u7406",description:"",source:"@site/docs/iotcloud/devicemanager/device-info.md",sourceDirName:"iotcloud/devicemanager",slug:"/iotcloud/devicemanager/device-info",permalink:"/docs/iotcloud/devicemanager/device-info",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",sidebarPosition:5,frontMatter:{sidebar_position:5},sidebar:"iotCloudSidebar",previous:{title:"\u8bbe\u5907\u7c7b\u578b\u7ba1\u7406",permalink:"/docs/iotcloud/devicemanager/device-type"},next:{title:"\u8bbe\u5907\u5206\u7ec4\u7ba1\u7406",permalink:"/docs/iotcloud/devicemanager/device-group"}},l={},d=[],p={toc:d},u="wrapper";function s(e){let{components:t,...r}=e;return(0,o.yg)(u,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"\u8bbe\u5907\u4fe1\u606f\u7ba1\u7406"},"\u8bbe\u5907\u4fe1\u606f\u7ba1\u7406"))}s.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7748],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>m});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function a(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),d=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},p=function(e){var t=d(e.components);return n.createElement(l.Provider,{value:t},e.children)},u="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,i=e.originalType,l=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),u=d(r),f=o,m=u["".concat(l,".").concat(f)]||u[f]||s[f]||i;return r?n.createElement(m,a(a({ref:t},p),{},{components:r})):n.createElement(m,a({ref:t},p))}));function m(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=r.length,a=new Array(i);a[0]=f;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[u]="string"==typeof e?e:o,a[1]=c;for(var d=2;d{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>a,default:()=>s,frontMatter:()=>i,metadata:()=>c,toc:()=>d});var n=r(8168),o=(r(6540),r(5680));const i={sidebar_position:5},a="\u8bbe\u5907\u4fe1\u606f\u7ba1\u7406",c={unversionedId:"iotcloud/devicemanager/device-info",id:"iotcloud/devicemanager/device-info",title:"\u8bbe\u5907\u4fe1\u606f\u7ba1\u7406",description:"",source:"@site/docs/iotcloud/devicemanager/device-info.md",sourceDirName:"iotcloud/devicemanager",slug:"/iotcloud/devicemanager/device-info",permalink:"/docs/iotcloud/devicemanager/device-info",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",sidebarPosition:5,frontMatter:{sidebar_position:5},sidebar:"iotCloudSidebar",previous:{title:"\u8bbe\u5907\u7c7b\u578b\u7ba1\u7406",permalink:"/docs/iotcloud/devicemanager/device-type"},next:{title:"\u8bbe\u5907\u5206\u7ec4\u7ba1\u7406",permalink:"/docs/iotcloud/devicemanager/device-group"}},l={},d=[],p={toc:d},u="wrapper";function s(e){let{components:t,...r}=e;return(0,o.yg)(u,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"\u8bbe\u5907\u4fe1\u606f\u7ba1\u7406"},"\u8bbe\u5907\u4fe1\u606f\u7ba1\u7406"))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/2d2ef872.4dfaa285.js b/assets/js/2d2ef872.74cb875f.js similarity index 99% rename from assets/js/2d2ef872.4dfaa285.js rename to assets/js/2d2ef872.74cb875f.js index ecac02457..959fdf4a1 100644 --- a/assets/js/2d2ef872.4dfaa285.js +++ b/assets/js/2d2ef872.74cb875f.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4283],{5680:(e,t,n)=>{n.d(t,{xA:()=>p,yg:()=>f});var r=n(6540);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var c=r.createContext({}),u=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=u(e.components);return r.createElement(c.Provider,{value:t},e.children)},y="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},s=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,l=e.originalType,c=e.parentName,p=a(e,["components","mdxType","originalType","parentName"]),y=u(n),s=o,f=y["".concat(c,".").concat(s)]||y[s]||d[s]||l;return n?r.createElement(f,i(i({ref:t},p),{},{components:n})):r.createElement(f,i({ref:t},p))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var l=n.length,i=new Array(l);i[0]=s;var a={};for(var c in t)hasOwnProperty.call(t,c)&&(a[c]=t[c]);a.originalType=e,a[y]="string"==typeof e?e:o,i[1]=a;for(var u=2;u{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>d,frontMatter:()=>l,metadata:()=>a,toc:()=>u});var r=n(8168),o=(n(6540),n(5680));const l={},i="\u52a0\u89e3\u5bc6",a={unversionedId:"study/encryption/index",id:"study/encryption/index",title:"\u52a0\u89e3\u5bc6",description:"\u52a0\u5bc6\u548c\u89e3\u5bc6",source:"@site/docs/study/encryption/index.md",sourceDirName:"study/encryption",slug:"/study/encryption/",permalink:"/docs/study/encryption/",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"SSL TLS HTTPS",permalink:"/docs/study/encryption/SSL_TLS"},next:{title:"\u4eba\u5de5\u667a\u80fd",permalink:"/docs/study/ai/"}},c={},u=[{value:"\u52a0\u5bc6\u548c\u89e3\u5bc6",id:"\u52a0\u5bc6\u548c\u89e3\u5bc6",level:3},{value:"\u660e\u6587\u548c\u5bc6\u6587",id:"\u660e\u6587\u548c\u5bc6\u6587",level:3},{value:"\u52a0\u5bc6\u7684\u5bc6\u94a5",id:"\u52a0\u5bc6\u7684\u5bc6\u94a5",level:3},{value:"\u5bf9\u79f0\u4e0e\u975e\u5bf9\u79f0",id:"\u5bf9\u79f0\u4e0e\u975e\u5bf9\u79f0",level:3},{value:"\u5bf9\u79f0\u52a0\u5bc6",id:"\u5bf9\u79f0\u52a0\u5bc6",level:4},{value:"\u975e\u5bf9\u79f0\u52a0\u5bc6",id:"\u975e\u5bf9\u79f0\u52a0\u5bc6",level:4}],p={toc:u},y="wrapper";function d(e){let{components:t,...n}=e;return(0,o.yg)(y,(0,r.A)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"\u52a0\u89e3\u5bc6"},"\u52a0\u89e3\u5bc6"),(0,o.yg)("h3",{id:"\u52a0\u5bc6\u548c\u89e3\u5bc6"},"\u52a0\u5bc6\u548c\u89e3\u5bc6"),(0,o.yg)("p",null,"\u52a0\u5bc6\u662f\u4ee5\u67d0\u79cd\u7279\u5b9a\u7684\u7b97\u6cd5\uff0c\u6539\u53d8\u539f\u6709\u7684\u6570\u636e\u4fe1\u606f\uff0c\u4f7f\u5f97\u672a\u6388\u6743\u7684\u7528\u6237\u5373\u4f7f\u83b7\u5f97\u4e86\u52a0\u5bc6\u540e\u7684\u6570\u636e\uff0c\u4f46\u56e0\u4e0d\u77e5\u89e3\u5bc6\u7684\u65b9\u6cd5\uff08\u786e\u5207\u7684\u8bf4\u662f\u4e0d\u77e5\u9053\u5bc6\u94a5\uff09\uff0c\u4ecd\u7136\u65e0\u6cd5\u4e86\u89e3\u5176\u4fe1\u606f\u5185\u5bb9\u3002\u800c\u89e3\u5bc6\u5219\u662f\u52a0\u5bc6\u7684\u9006\u8fc7\u7a0b\u3002"),(0,o.yg)("h3",{id:"\u660e\u6587\u548c\u5bc6\u6587"},"\u660e\u6587\u548c\u5bc6\u6587"),(0,o.yg)("p",null,"\u6211\u4eec\u79f0\u5c1a\u672a\u52a0\u5bc6\u7684\u6570\u636e\u4e3a\u660e\u6587\uff0c\u901a\u8fc7\u56fa\u5b9a\u7b97\u6cd5\u52a0\u5bc6\u540e\u7684\u6570\u636e\u4e3a\u5bc6\u6587\u3002"),(0,o.yg)("h3",{id:"\u52a0\u5bc6\u7684\u5bc6\u94a5"},"\u52a0\u5bc6\u7684\u5bc6\u94a5"),(0,o.yg)("p",null,"\u5bc6\u94a5\u662f\u4e00\u79cd\u53c2\u6570\uff0c\u5b83\u662f\u5728\u660e\u6587\u8f6c\u6362\u4e3a\u5bc6\u6587\u6216\u5bc6\u6587\u8f6c\u6362\u4e3a\u660e\u6587\u65f6\u7b97\u6cd5\u7684\u8f93\u5165\u53c2\u6570\u3002\u53ef\u4ee5\u7406\u89e3\u6210\u5bc6\u7801\u7684\u94a5\u5319\u3002"),(0,o.yg)("h3",{id:"\u5bf9\u79f0\u4e0e\u975e\u5bf9\u79f0"},"\u5bf9\u79f0\u4e0e\u975e\u5bf9\u79f0"),(0,o.yg)("h4",{id:"\u5bf9\u79f0\u52a0\u5bc6"},"\u5bf9\u79f0\u52a0\u5bc6"),(0,o.yg)("p",null,"\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\u4e2d\uff0c\u6570\u636e\u53d1\u9001\u65b9\u5c06\u660e\u6587\u548c\u5bc6\u94a5\u4e00\u8d77\u7ecf\u8fc7\u7279\u6b8a\u52a0\u5bc6\u7b97\u6cd5\u5904\u7406\u6210\u5bc6\u6587\u540e\uff0c\u5c06\u5b83\u53d1\u9001\u51fa\u53bb\u3002\u63a5\u6536\u65b9\u6536\u5230\u5bc6\u6587\u540e\uff0c\u82e5\u60f3\u89e3\u8bfb\u539f\u6587\uff0c\u5219\u9700\u8981\u4f7f\u7528\u52a0\u5bc6\u7528\u5230\u7684\u76f8\u540c\u5bc6\u94a5\u53ca\u76f8\u540c\u7b97\u6cd5\u7684\u9006\u7b97\u6cd5\u5bf9\u5bc6\u6587\u8fdb\u884c\u89e3\u5bc6\uff0c\u624d\u80fd\u4f7f\u5176\u6062\u590d\u6210\u539f\u6587\u3002"),(0,o.yg)("p",null,"\u5b83\u7684\u6700\u5927\u4f18\u52bf\u662f\u52a0/\u89e3\u5bc6\u901f\u5ea6\u5feb\uff0c\u9002\u7528\u4e8e\u5927\u6570\u636e\u91cf\u8fdb\u884c\u52a0\u5bc6\uff0c\u7f3a\u70b9\u662f\u5bc6\u94a5\u7ba1\u7406\u56f0\u96be\uff0c\u6700\u5178\u578b\u7684\u95ee\u9898\u5c31\u662f\u5982\u4f55\u540c\u6b65\u8fd9\u4e2a\u5bc6\u94a5\uff0c\u540c\u6b65\u8fc7\u7a0b\u5982\u679c\u5728\u516c\u7f51\u4e0a\uff0c\u4e0d\u8fdb\u884c\u52a0\u5bc6\u662f\u53ef\u4ee5\u6293\u5305\u62ff\u5230\u7684\uff0c\u90a3\u4e48\u8fd9\u91cc\u5c31\u9047\u5230\u4e86\u8981\u5bf9\u5bc6\u94a5\u52a0\u5bc6\u7684\u95ee\u9898\u3002"),(0,o.yg)("p",null,"\u5e38\u89c1\u7684\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\u6709 AES\u3001DES\u3001Blowfish \u7b49\u7b49\u3002"),(0,o.yg)("p",null,"\u5bf9\u79f0\u52a0\u5bc6\u7684\u6838\u5fc3\u662f\u53ea\u6709\u4e00\u628a\u5bc6\u94a5\u3002"),(0,o.yg)("h4",{id:"\u975e\u5bf9\u79f0\u52a0\u5bc6"},"\u975e\u5bf9\u79f0\u52a0\u5bc6"),(0,o.yg)("p",null,"\u975e\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\u4e2d\uff0c\u6709\u4e24\u4e2a\u5bc6\u94a5\uff1a\u516c\u94a5\u548c\u79c1\u94a5\u3002\u5b83\u4eec\u662f\u4e00\u5bf9\uff0c\u5982\u679c\u7528\u516c\u94a5\u8fdb\u884c\u52a0\u5bc6\uff0c\u53ea\u6709\u7528\u5bf9\u5e94\u7684\u79c1\u94a5\u624d\u80fd\u89e3\u5bc6\uff1b\u5982\u679c\u7528\u79c1\u94a5\u8fdb\u884c\u52a0\u5bc6\uff0c\u53ea\u6709\u7528\u5bf9\u5e94\u7684\u516c\u94a5\u624d\u80fd\u89e3\u5bc6\u3002"),(0,o.yg)("p",null,"\u975e\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\u5b9e\u73b0\u673a\u5bc6\u4fe1\u606f\u7684\u4ea4\u6362\u8fc7\u7a0b\u4e3a\uff1a\u7532\u65b9\u751f\u6210\u4e00\u5bf9\u5bc6\u94a5\u5e76\u5c06\u5176\u4e2d\u4e00\u4e2a\u4f5c\u4e3a\u516c\u94a5\u5411\u5176\u4ed6\u65b9\u516c\u5f00\uff1b\u5f97\u5230\u8be5\u516c\u94a5\u7684\u4e59\u65b9\u4f7f\u7528\u8be5\u5bc6\u94a5\u5bf9\u673a\u5bc6\u4fe1\u606f\u8fdb\u884c\u52a0\u5bc6\u540e\u53d1\u9001\u7ed9\u7532\u65b9\uff1b\u7532\u65b9\u518d\u7528\u81ea\u5df1\u7684\u53e6\u4e00\u4e2a\u4e13\u7528\u5bc6\u94a5\u5bf9\u52a0\u5bc6\u540e\u7684\u4fe1\u606f\u8fdb\u884c\u89e3\u5bc6\u3002"),(0,o.yg)("p",null,"\u6700\u6709\u540d\u7684\u975e\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\u5f53\u5c5e RSA \u4e86\uff0c\u672c\u6587\u5c06\u5bf9 RSA \u7b97\u6cd5\u7684\u52a0/\u89e3\u5bc6\u8fc7\u7a0b\u8fdb\u884c\u8be6\u7ec6\u5256\u6790\u3002"),(0,o.yg)("p",null,"\u975e\u5bf9\u79f0\u52a0\u5bc6\u62e5\u6709\u4e24\u628a\u5bc6\u94a5\u3002"))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4283],{5680:(e,t,n)=>{n.d(t,{xA:()=>p,yg:()=>f});var r=n(6540);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var c=r.createContext({}),u=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=u(e.components);return r.createElement(c.Provider,{value:t},e.children)},y="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},s=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,l=e.originalType,c=e.parentName,p=a(e,["components","mdxType","originalType","parentName"]),y=u(n),s=o,f=y["".concat(c,".").concat(s)]||y[s]||d[s]||l;return n?r.createElement(f,i(i({ref:t},p),{},{components:n})):r.createElement(f,i({ref:t},p))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var l=n.length,i=new Array(l);i[0]=s;var a={};for(var c in t)hasOwnProperty.call(t,c)&&(a[c]=t[c]);a.originalType=e,a[y]="string"==typeof e?e:o,i[1]=a;for(var u=2;u{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>d,frontMatter:()=>l,metadata:()=>a,toc:()=>u});var r=n(8168),o=(n(6540),n(5680));const l={},i="\u52a0\u89e3\u5bc6",a={unversionedId:"study/encryption/index",id:"study/encryption/index",title:"\u52a0\u89e3\u5bc6",description:"\u52a0\u5bc6\u548c\u89e3\u5bc6",source:"@site/docs/study/encryption/index.md",sourceDirName:"study/encryption",slug:"/study/encryption/",permalink:"/docs/study/encryption/",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"SSL TLS HTTPS",permalink:"/docs/study/encryption/SSL_TLS"},next:{title:"\u4eba\u5de5\u667a\u80fd",permalink:"/docs/study/ai/"}},c={},u=[{value:"\u52a0\u5bc6\u548c\u89e3\u5bc6",id:"\u52a0\u5bc6\u548c\u89e3\u5bc6",level:3},{value:"\u660e\u6587\u548c\u5bc6\u6587",id:"\u660e\u6587\u548c\u5bc6\u6587",level:3},{value:"\u52a0\u5bc6\u7684\u5bc6\u94a5",id:"\u52a0\u5bc6\u7684\u5bc6\u94a5",level:3},{value:"\u5bf9\u79f0\u4e0e\u975e\u5bf9\u79f0",id:"\u5bf9\u79f0\u4e0e\u975e\u5bf9\u79f0",level:3},{value:"\u5bf9\u79f0\u52a0\u5bc6",id:"\u5bf9\u79f0\u52a0\u5bc6",level:4},{value:"\u975e\u5bf9\u79f0\u52a0\u5bc6",id:"\u975e\u5bf9\u79f0\u52a0\u5bc6",level:4}],p={toc:u},y="wrapper";function d(e){let{components:t,...n}=e;return(0,o.yg)(y,(0,r.A)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"\u52a0\u89e3\u5bc6"},"\u52a0\u89e3\u5bc6"),(0,o.yg)("h3",{id:"\u52a0\u5bc6\u548c\u89e3\u5bc6"},"\u52a0\u5bc6\u548c\u89e3\u5bc6"),(0,o.yg)("p",null,"\u52a0\u5bc6\u662f\u4ee5\u67d0\u79cd\u7279\u5b9a\u7684\u7b97\u6cd5\uff0c\u6539\u53d8\u539f\u6709\u7684\u6570\u636e\u4fe1\u606f\uff0c\u4f7f\u5f97\u672a\u6388\u6743\u7684\u7528\u6237\u5373\u4f7f\u83b7\u5f97\u4e86\u52a0\u5bc6\u540e\u7684\u6570\u636e\uff0c\u4f46\u56e0\u4e0d\u77e5\u89e3\u5bc6\u7684\u65b9\u6cd5\uff08\u786e\u5207\u7684\u8bf4\u662f\u4e0d\u77e5\u9053\u5bc6\u94a5\uff09\uff0c\u4ecd\u7136\u65e0\u6cd5\u4e86\u89e3\u5176\u4fe1\u606f\u5185\u5bb9\u3002\u800c\u89e3\u5bc6\u5219\u662f\u52a0\u5bc6\u7684\u9006\u8fc7\u7a0b\u3002"),(0,o.yg)("h3",{id:"\u660e\u6587\u548c\u5bc6\u6587"},"\u660e\u6587\u548c\u5bc6\u6587"),(0,o.yg)("p",null,"\u6211\u4eec\u79f0\u5c1a\u672a\u52a0\u5bc6\u7684\u6570\u636e\u4e3a\u660e\u6587\uff0c\u901a\u8fc7\u56fa\u5b9a\u7b97\u6cd5\u52a0\u5bc6\u540e\u7684\u6570\u636e\u4e3a\u5bc6\u6587\u3002"),(0,o.yg)("h3",{id:"\u52a0\u5bc6\u7684\u5bc6\u94a5"},"\u52a0\u5bc6\u7684\u5bc6\u94a5"),(0,o.yg)("p",null,"\u5bc6\u94a5\u662f\u4e00\u79cd\u53c2\u6570\uff0c\u5b83\u662f\u5728\u660e\u6587\u8f6c\u6362\u4e3a\u5bc6\u6587\u6216\u5bc6\u6587\u8f6c\u6362\u4e3a\u660e\u6587\u65f6\u7b97\u6cd5\u7684\u8f93\u5165\u53c2\u6570\u3002\u53ef\u4ee5\u7406\u89e3\u6210\u5bc6\u7801\u7684\u94a5\u5319\u3002"),(0,o.yg)("h3",{id:"\u5bf9\u79f0\u4e0e\u975e\u5bf9\u79f0"},"\u5bf9\u79f0\u4e0e\u975e\u5bf9\u79f0"),(0,o.yg)("h4",{id:"\u5bf9\u79f0\u52a0\u5bc6"},"\u5bf9\u79f0\u52a0\u5bc6"),(0,o.yg)("p",null,"\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\u4e2d\uff0c\u6570\u636e\u53d1\u9001\u65b9\u5c06\u660e\u6587\u548c\u5bc6\u94a5\u4e00\u8d77\u7ecf\u8fc7\u7279\u6b8a\u52a0\u5bc6\u7b97\u6cd5\u5904\u7406\u6210\u5bc6\u6587\u540e\uff0c\u5c06\u5b83\u53d1\u9001\u51fa\u53bb\u3002\u63a5\u6536\u65b9\u6536\u5230\u5bc6\u6587\u540e\uff0c\u82e5\u60f3\u89e3\u8bfb\u539f\u6587\uff0c\u5219\u9700\u8981\u4f7f\u7528\u52a0\u5bc6\u7528\u5230\u7684\u76f8\u540c\u5bc6\u94a5\u53ca\u76f8\u540c\u7b97\u6cd5\u7684\u9006\u7b97\u6cd5\u5bf9\u5bc6\u6587\u8fdb\u884c\u89e3\u5bc6\uff0c\u624d\u80fd\u4f7f\u5176\u6062\u590d\u6210\u539f\u6587\u3002"),(0,o.yg)("p",null,"\u5b83\u7684\u6700\u5927\u4f18\u52bf\u662f\u52a0/\u89e3\u5bc6\u901f\u5ea6\u5feb\uff0c\u9002\u7528\u4e8e\u5927\u6570\u636e\u91cf\u8fdb\u884c\u52a0\u5bc6\uff0c\u7f3a\u70b9\u662f\u5bc6\u94a5\u7ba1\u7406\u56f0\u96be\uff0c\u6700\u5178\u578b\u7684\u95ee\u9898\u5c31\u662f\u5982\u4f55\u540c\u6b65\u8fd9\u4e2a\u5bc6\u94a5\uff0c\u540c\u6b65\u8fc7\u7a0b\u5982\u679c\u5728\u516c\u7f51\u4e0a\uff0c\u4e0d\u8fdb\u884c\u52a0\u5bc6\u662f\u53ef\u4ee5\u6293\u5305\u62ff\u5230\u7684\uff0c\u90a3\u4e48\u8fd9\u91cc\u5c31\u9047\u5230\u4e86\u8981\u5bf9\u5bc6\u94a5\u52a0\u5bc6\u7684\u95ee\u9898\u3002"),(0,o.yg)("p",null,"\u5e38\u89c1\u7684\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\u6709 AES\u3001DES\u3001Blowfish \u7b49\u7b49\u3002"),(0,o.yg)("p",null,"\u5bf9\u79f0\u52a0\u5bc6\u7684\u6838\u5fc3\u662f\u53ea\u6709\u4e00\u628a\u5bc6\u94a5\u3002"),(0,o.yg)("h4",{id:"\u975e\u5bf9\u79f0\u52a0\u5bc6"},"\u975e\u5bf9\u79f0\u52a0\u5bc6"),(0,o.yg)("p",null,"\u975e\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\u4e2d\uff0c\u6709\u4e24\u4e2a\u5bc6\u94a5\uff1a\u516c\u94a5\u548c\u79c1\u94a5\u3002\u5b83\u4eec\u662f\u4e00\u5bf9\uff0c\u5982\u679c\u7528\u516c\u94a5\u8fdb\u884c\u52a0\u5bc6\uff0c\u53ea\u6709\u7528\u5bf9\u5e94\u7684\u79c1\u94a5\u624d\u80fd\u89e3\u5bc6\uff1b\u5982\u679c\u7528\u79c1\u94a5\u8fdb\u884c\u52a0\u5bc6\uff0c\u53ea\u6709\u7528\u5bf9\u5e94\u7684\u516c\u94a5\u624d\u80fd\u89e3\u5bc6\u3002"),(0,o.yg)("p",null,"\u975e\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\u5b9e\u73b0\u673a\u5bc6\u4fe1\u606f\u7684\u4ea4\u6362\u8fc7\u7a0b\u4e3a\uff1a\u7532\u65b9\u751f\u6210\u4e00\u5bf9\u5bc6\u94a5\u5e76\u5c06\u5176\u4e2d\u4e00\u4e2a\u4f5c\u4e3a\u516c\u94a5\u5411\u5176\u4ed6\u65b9\u516c\u5f00\uff1b\u5f97\u5230\u8be5\u516c\u94a5\u7684\u4e59\u65b9\u4f7f\u7528\u8be5\u5bc6\u94a5\u5bf9\u673a\u5bc6\u4fe1\u606f\u8fdb\u884c\u52a0\u5bc6\u540e\u53d1\u9001\u7ed9\u7532\u65b9\uff1b\u7532\u65b9\u518d\u7528\u81ea\u5df1\u7684\u53e6\u4e00\u4e2a\u4e13\u7528\u5bc6\u94a5\u5bf9\u52a0\u5bc6\u540e\u7684\u4fe1\u606f\u8fdb\u884c\u89e3\u5bc6\u3002"),(0,o.yg)("p",null,"\u6700\u6709\u540d\u7684\u975e\u5bf9\u79f0\u52a0\u5bc6\u7b97\u6cd5\u5f53\u5c5e RSA \u4e86\uff0c\u672c\u6587\u5c06\u5bf9 RSA \u7b97\u6cd5\u7684\u52a0/\u89e3\u5bc6\u8fc7\u7a0b\u8fdb\u884c\u8be6\u7ec6\u5256\u6790\u3002"),(0,o.yg)("p",null,"\u975e\u5bf9\u79f0\u52a0\u5bc6\u62e5\u6709\u4e24\u628a\u5bc6\u94a5\u3002"))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/2dda2596.03e5aba9.js b/assets/js/2dda2596.6a107b82.js similarity index 97% rename from assets/js/2dda2596.03e5aba9.js rename to assets/js/2dda2596.6a107b82.js index a5402a38e..0f9fe1adc 100644 --- a/assets/js/2dda2596.03e5aba9.js +++ b/assets/js/2dda2596.6a107b82.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8906],{5680:(e,t,r)=>{r.d(t,{xA:()=>l,yg:()=>y});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),p=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},l=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,l=c(e,["components","mdxType","originalType","parentName"]),u=p(r),f=o,y=u["".concat(s,".").concat(f)]||u[f]||d[f]||a;return r?n.createElement(y,i(i({ref:t},l),{},{components:r})):n.createElement(y,i({ref:t},l))}));function y(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=f;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[u]="string"==typeof e?e:o,i[1]=c;for(var p=2;p{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>p});var n=r(8168),o=(r(6540),r(5680));const a={},i="Linux iptables \u9632\u706b\u5899",c={unversionedId:"study/net/iptables",id:"study/net/iptables",title:"Linux iptables \u9632\u706b\u5899",description:"",source:"@site/docs/study/net/iptables.md",sourceDirName:"study/net",slug:"/study/net/iptables",permalink:"/docs/study/net/iptables",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Linux ip \u547d\u4ee4",permalink:"/docs/study/net/ip"},next:{title:"Linux netns",permalink:"/docs/study/net/netns"}},s={},p=[],l={toc:p},u="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(u,(0,n.A)({},l,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"linux-iptables-\u9632\u706b\u5899"},"Linux iptables \u9632\u706b\u5899"))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8906],{5680:(e,t,r)=>{r.d(t,{xA:()=>l,yg:()=>y});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),p=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},l=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,l=c(e,["components","mdxType","originalType","parentName"]),u=p(r),f=o,y=u["".concat(s,".").concat(f)]||u[f]||d[f]||a;return r?n.createElement(y,i(i({ref:t},l),{},{components:r})):n.createElement(y,i({ref:t},l))}));function y(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=f;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[u]="string"==typeof e?e:o,i[1]=c;for(var p=2;p{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>p});var n=r(8168),o=(r(6540),r(5680));const a={},i="Linux iptables \u9632\u706b\u5899",c={unversionedId:"study/net/iptables",id:"study/net/iptables",title:"Linux iptables \u9632\u706b\u5899",description:"",source:"@site/docs/study/net/iptables.md",sourceDirName:"study/net",slug:"/study/net/iptables",permalink:"/docs/study/net/iptables",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Linux ip \u547d\u4ee4",permalink:"/docs/study/net/ip"},next:{title:"Linux netns",permalink:"/docs/study/net/netns"}},s={},p=[],l={toc:p},u="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(u,(0,n.A)({},l,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"linux-iptables-\u9632\u706b\u5899"},"Linux iptables \u9632\u706b\u5899"))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/2e250d6d.db50c638.js b/assets/js/2e250d6d.a71601f9.js similarity index 98% rename from assets/js/2e250d6d.db50c638.js rename to assets/js/2e250d6d.a71601f9.js index 3f42c9701..91d38a42b 100644 --- a/assets/js/2e250d6d.db50c638.js +++ b/assets/js/2e250d6d.a71601f9.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5565],{5680:(e,t,r)=>{r.d(t,{xA:()=>l,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),u=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},l=function(e){var t=u(e.components);return n.createElement(s.Provider,{value:t},e.children)},p="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,l=i(e,["components","mdxType","originalType","parentName"]),p=u(r),d=o,f=p["".concat(s,".").concat(d)]||p[d]||y[d]||a;return r?n.createElement(f,c(c({ref:t},l),{},{components:r})):n.createElement(f,c({ref:t},l))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=d;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[p]="string"==typeof e?e:o,c[1]=i;for(var u=2;u{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>c,default:()=>y,frontMatter:()=>a,metadata:()=>i,toc:()=>u});var n=r(8168),o=(r(6540),r(5680));const a={},c=void 0,i={unversionedId:"study/system/CPU\u7ebf\u7a0b\u5e76\u53d1",id:"study/system/CPU\u7ebf\u7a0b\u5e76\u53d1",title:"CPU\u7ebf\u7a0b\u5e76\u53d1",description:"CPU \u7ebf\u7a0b \u8fdb\u7a0b \u5e76\u53d1 \u5e76\u884c",source:"@site/docs/study/system/CPU\u7ebf\u7a0b\u5e76\u53d1.md",sourceDirName:"study/system",slug:"/study/system/CPU\u7ebf\u7a0b\u5e76\u53d1",permalink:"/docs/study/system/CPU\u7ebf\u7a0b\u5e76\u53d1",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"index",permalink:"/docs/study/system/"},next:{title:"IO\u5835\u8def\u590d\u7528\u884c\u6570Linux",permalink:"/docs/study/system/IO\u5835\u8def\u590d\u7528\u884c\u6570Linux"}},s={},u=[{value:"CPU \u7ebf\u7a0b \u8fdb\u7a0b \u5e76\u53d1 \u5e76\u884c",id:"cpu-\u7ebf\u7a0b-\u8fdb\u7a0b-\u5e76\u53d1-\u5e76\u884c",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],l={toc:u},p="wrapper";function y(e){let{components:t,...r}=e;return(0,o.yg)(p,(0,n.A)({},l,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"cpu-\u7ebf\u7a0b-\u8fdb\u7a0b-\u5e76\u53d1-\u5e76\u884c"},"CPU \u7ebf\u7a0b \u8fdb\u7a0b \u5e76\u53d1 \u5e76\u884c"),(0,o.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://zhuanlan.zhihu.com/p/490318618?utm_id=0"},"\u77e5\u4e4e-\u7b80\u5355\u7406\u89e3\uff1aCPU \u7269\u7406\u6570\uff0c\u6838\u5fc3\u6570\uff0c\u7ebf\u7a0b\u6570\uff0c\u8fdb\u7a0b\uff0c\u7ebf\u7a0b\uff0c\u534f\u7a0b\uff0c\u5e76\u53d1\uff0c\u5e76\u884c\u7684\u6982\u5ff5"))))}y.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5565],{5680:(e,t,r)=>{r.d(t,{xA:()=>l,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),u=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},l=function(e){var t=u(e.components);return n.createElement(s.Provider,{value:t},e.children)},p="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,l=i(e,["components","mdxType","originalType","parentName"]),p=u(r),d=o,f=p["".concat(s,".").concat(d)]||p[d]||y[d]||a;return r?n.createElement(f,c(c({ref:t},l),{},{components:r})):n.createElement(f,c({ref:t},l))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=d;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[p]="string"==typeof e?e:o,c[1]=i;for(var u=2;u{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>c,default:()=>y,frontMatter:()=>a,metadata:()=>i,toc:()=>u});var n=r(8168),o=(r(6540),r(5680));const a={},c=void 0,i={unversionedId:"study/system/CPU\u7ebf\u7a0b\u5e76\u53d1",id:"study/system/CPU\u7ebf\u7a0b\u5e76\u53d1",title:"CPU\u7ebf\u7a0b\u5e76\u53d1",description:"CPU \u7ebf\u7a0b \u8fdb\u7a0b \u5e76\u53d1 \u5e76\u884c",source:"@site/docs/study/system/CPU\u7ebf\u7a0b\u5e76\u53d1.md",sourceDirName:"study/system",slug:"/study/system/CPU\u7ebf\u7a0b\u5e76\u53d1",permalink:"/docs/study/system/CPU\u7ebf\u7a0b\u5e76\u53d1",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"index",permalink:"/docs/study/system/"},next:{title:"IO\u5835\u8def\u590d\u7528\u884c\u6570Linux",permalink:"/docs/study/system/IO\u5835\u8def\u590d\u7528\u884c\u6570Linux"}},s={},u=[{value:"CPU \u7ebf\u7a0b \u8fdb\u7a0b \u5e76\u53d1 \u5e76\u884c",id:"cpu-\u7ebf\u7a0b-\u8fdb\u7a0b-\u5e76\u53d1-\u5e76\u884c",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],l={toc:u},p="wrapper";function y(e){let{components:t,...r}=e;return(0,o.yg)(p,(0,n.A)({},l,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"cpu-\u7ebf\u7a0b-\u8fdb\u7a0b-\u5e76\u53d1-\u5e76\u884c"},"CPU \u7ebf\u7a0b \u8fdb\u7a0b \u5e76\u53d1 \u5e76\u884c"),(0,o.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://zhuanlan.zhihu.com/p/490318618?utm_id=0"},"\u77e5\u4e4e-\u7b80\u5355\u7406\u89e3\uff1aCPU \u7269\u7406\u6570\uff0c\u6838\u5fc3\u6570\uff0c\u7ebf\u7a0b\u6570\uff0c\u8fdb\u7a0b\uff0c\u7ebf\u7a0b\uff0c\u534f\u7a0b\uff0c\u5e76\u53d1\uff0c\u5e76\u884c\u7684\u6982\u5ff5"))))}y.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/2e955f05.295d82ed.js b/assets/js/2e955f05.c76f0c7b.js similarity index 98% rename from assets/js/2e955f05.295d82ed.js rename to assets/js/2e955f05.c76f0c7b.js index 12d22eeaf..52875fd7f 100644 --- a/assets/js/2e955f05.295d82ed.js +++ b/assets/js/2e955f05.c76f0c7b.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6550],{5680:(e,t,n)=>{n.d(t,{xA:()=>u,yg:()=>y});var r=n(6540);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var p=r.createContext({}),l=function(e){var t=r.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},u=function(e){var t=l(e.components);return r.createElement(p.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},f=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,p=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),s=l(n),f=o,y=s["".concat(p,".").concat(f)]||s[f]||d[f]||a;return n?r.createElement(y,i(i({ref:t},u),{},{components:n})):r.createElement(y,i({ref:t},u))}));function y(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=f;var c={};for(var p in t)hasOwnProperty.call(t,p)&&(c[p]=t[p]);c.originalType=e,c[s]="string"==typeof e?e:o,i[1]=c;for(var l=2;l{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>l});var r=n(8168),o=(n(6540),n(5680));const a={sidebar_position:1},i="\u6982\u8ff0",c={unversionedId:"xuanxing/devops/index",id:"xuanxing/devops/index",title:"\u6982\u8ff0",description:"\u4e00\u822c\u9700\u8981\u5305\u62ec\u5982\u4e0b\u5185\u5bb9\uff1a",source:"@site/docs/xuanxing/devops/index.md",sourceDirName:"xuanxing/devops",slug:"/xuanxing/devops/",permalink:"/docs/xuanxing/devops/",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"xuanxingSidebar",previous:{title:"\u6982\u8ff0",permalink:"/docs/xuanxing/back/"},next:{title:"\u7efc\u8ff0",permalink:"/docs/xuanxing/thingsboard/"}},p={},l=[],u={toc:l},s="wrapper";function d(e){let{components:t,...n}=e;return(0,o.yg)(s,(0,r.A)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"\u6982\u8ff0"},"\u6982\u8ff0"),(0,o.yg)("p",null,"\u4e00\u822c\u9700\u8981\u5305\u62ec\u5982\u4e0b\u5185\u5bb9\uff1a"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"Jenkins \u6301\u7eed\u96c6\u6210\u3001\u90e8\u7f72"),(0,o.yg)("li",{parentName:"ul"},"Grafana+\u54e8\u5175 \u76d1\u63a7\u670d\u52a1"),(0,o.yg)("li",{parentName:"ul"},"\u5404\u79cd\u8fd0\u7ef4\u811a\u672c")))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6550],{5680:(e,t,n)=>{n.d(t,{xA:()=>u,yg:()=>y});var r=n(6540);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var p=r.createContext({}),l=function(e){var t=r.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},u=function(e){var t=l(e.components);return r.createElement(p.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},f=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,p=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),s=l(n),f=o,y=s["".concat(p,".").concat(f)]||s[f]||d[f]||a;return n?r.createElement(y,i(i({ref:t},u),{},{components:n})):r.createElement(y,i({ref:t},u))}));function y(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=f;var c={};for(var p in t)hasOwnProperty.call(t,p)&&(c[p]=t[p]);c.originalType=e,c[s]="string"==typeof e?e:o,i[1]=c;for(var l=2;l{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>l});var r=n(8168),o=(n(6540),n(5680));const a={sidebar_position:1},i="\u6982\u8ff0",c={unversionedId:"xuanxing/devops/index",id:"xuanxing/devops/index",title:"\u6982\u8ff0",description:"\u4e00\u822c\u9700\u8981\u5305\u62ec\u5982\u4e0b\u5185\u5bb9\uff1a",source:"@site/docs/xuanxing/devops/index.md",sourceDirName:"xuanxing/devops",slug:"/xuanxing/devops/",permalink:"/docs/xuanxing/devops/",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"xuanxingSidebar",previous:{title:"\u6982\u8ff0",permalink:"/docs/xuanxing/back/"},next:{title:"\u7efc\u8ff0",permalink:"/docs/xuanxing/thingsboard/"}},p={},l=[],u={toc:l},s="wrapper";function d(e){let{components:t,...n}=e;return(0,o.yg)(s,(0,r.A)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"\u6982\u8ff0"},"\u6982\u8ff0"),(0,o.yg)("p",null,"\u4e00\u822c\u9700\u8981\u5305\u62ec\u5982\u4e0b\u5185\u5bb9\uff1a"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"Jenkins \u6301\u7eed\u96c6\u6210\u3001\u90e8\u7f72"),(0,o.yg)("li",{parentName:"ul"},"Grafana+\u54e8\u5175 \u76d1\u63a7\u670d\u52a1"),(0,o.yg)("li",{parentName:"ul"},"\u5404\u79cd\u8fd0\u7ef4\u811a\u672c")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/2fa90042.620ce869.js b/assets/js/2fa90042.7fdacab6.js similarity index 98% rename from assets/js/2fa90042.620ce869.js rename to assets/js/2fa90042.7fdacab6.js index 1225d4562..a5224e25f 100644 --- a/assets/js/2fa90042.620ce869.js +++ b/assets/js/2fa90042.7fdacab6.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5175],{5680:(e,n,t)=>{t.d(n,{xA:()=>u,yg:()=>k});var r=t(6540);function o(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function c(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function i(e){for(var n=1;n=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var d=r.createContext({}),a=function(e){var n=r.useContext(d),t=n;return e&&(t="function"==typeof e?e(n):i(i({},n),e)),t},u=function(e){var n=a(e.components);return r.createElement(d.Provider,{value:n},e.children)},p="mdxType",s={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},y=r.forwardRef((function(e,n){var t=e.components,o=e.mdxType,c=e.originalType,d=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),p=a(t),y=o,k=p["".concat(d,".").concat(y)]||p[y]||s[y]||c;return t?r.createElement(k,i(i({ref:n},u),{},{components:t})):r.createElement(k,i({ref:n},u))}));function k(e,n){var t=arguments,o=n&&n.mdxType;if("string"==typeof e||o){var c=t.length,i=new Array(c);i[0]=y;var l={};for(var d in n)hasOwnProperty.call(n,d)&&(l[d]=n[d]);l.originalType=e,l[p]="string"==typeof e?e:o,i[1]=l;for(var a=2;a{t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>i,default:()=>s,frontMatter:()=>c,metadata:()=>l,toc:()=>a});var r=t(8168),o=(t(6540),t(5680));const c={},i="docker-linux",l={unversionedId:"study/docker/docker-linux",id:"study/docker/docker-linux",title:"docker-linux",description:"docker pull alpine:3.18.3",source:"@site/docs/study/docker/docker-linux.md",sourceDirName:"study/docker",slug:"/study/docker/docker-linux",permalink:"/docs/study/docker/docker-linux",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Docker\u7684\u4f7f\u7528\u603b\u7ed3",permalink:"/docs/study/docker/Docker\u7684\u4f7f\u7528\u603b\u7ed3"},next:{title:"docker-mysql",permalink:"/docs/study/docker/docker-mysql"}},d={},a=[],u={toc:a},p="wrapper";function s(e){let{components:n,...t}=e;return(0,o.yg)(p,(0,r.A)({},u,t,{components:n,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"docker-linux"},"docker-linux"),(0,o.yg)("p",null,"docker pull alpine:3.18.3"),(0,o.yg)("p",null,"docker run -d \\\n-p 1883:1883 \\\n-p 8080:8080 \\\n-p 8081:8081 \\\n-p 8000:8000 \\\n-p 15000:15000 \\\n--privileged=true \\\n-e TZ=Asia/Shanghai \\\n--name alpine-study \\\nalpine:3.18.3"),(0,o.yg)("p",null,'FROM alpine:3.18.3\nMAINTAINER jiot.cloud "',(0,o.yg)("a",{parentName:"p",href:"mailto:cniiot@163.com"},"cniiot@163.com"),'"\nWORKDIR /root/iot-cloud-backend\nADD jdk-17_linux-x64_bin.tar.gz /root/iot-cloud-backend/\nENV JAVA_HOME=/root/iot-cloud-backend/jdk-17.0.8\nENV PATH=$JAVA_HOME/bin:$PATH'),(0,o.yg)("p",null,"docker build -t jdk17:jiot.cloud ."),(0,o.yg)("p",null,"docker run -it jdk17:jiot.cloud /bin/sh"),(0,o.yg)("p",null,"docker pull debian:stable-slim"),(0,o.yg)("p",null,"docker run -d \\\n-p 1883:1883 \\\n-p 8080:8080 \\\n-p 8081:8081 \\\n--privileged=true \\\n-e TZ=Asia/Shanghai \\\n--name debian-study \\\ndebian:stable-slim"),(0,o.yg)("p",null,'FROM debian:stable-slim\nMAINTAINER jiot.cloud "',(0,o.yg)("a",{parentName:"p",href:"mailto:cniiot@163.com"},"cniiot@163.com"),'"\nWORKDIR /root/iot-cloud-backend\nADD jdk-17_linux-x64_bin.tar.gz /root/iot-cloud-backend/\nENV JAVA_HOME=/root/iot-cloud-backend/jdk-17.0.8\nENV PATH=$JAVA_HOME/bin:$PATH'),(0,o.yg)("p",null,"docker build -t jdk17:jiot.cloud ."),(0,o.yg)("p",null,"docker run -it jdk17:jiot.cloud /bin/sh"),(0,o.yg)("p",null,"docker pull centos:centos7.9.2009"),(0,o.yg)("p",null,"docker run -d \\\n-p 1883:1883 \\\n-p 8080:8080 \\\n-p 8081:8081 \\\n--privileged=true \\\n-e TZ=Asia/Shanghai \\\n--name debian-study \\\ncentos:centos7.9.2009"),(0,o.yg)("p",null,'FROM centos:centos7.9.2009\nMAINTAINER jiot.cloud "',(0,o.yg)("a",{parentName:"p",href:"mailto:cniiot@163.com"},"cniiot@163.com"),'"\nWORKDIR /root/iot-cloud-backend\nADD jdk-17_linux-x64_bin.tar.gz /root/iot-cloud-backend/\nENV JAVA_HOME=/root/iot-cloud-backend/jdk-17.0.8\nENV PATH=$JAVA_HOME/bin:$PATH'),(0,o.yg)("p",null,"docker build -t jdk17:jiot.cloud ."),(0,o.yg)("p",null,"docker run -it jdk17:jiot.cloud /bin/sh"))}s.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5175],{5680:(e,n,t)=>{t.d(n,{xA:()=>u,yg:()=>k});var r=t(6540);function o(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function c(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function i(e){for(var n=1;n=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var d=r.createContext({}),a=function(e){var n=r.useContext(d),t=n;return e&&(t="function"==typeof e?e(n):i(i({},n),e)),t},u=function(e){var n=a(e.components);return r.createElement(d.Provider,{value:n},e.children)},p="mdxType",s={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},y=r.forwardRef((function(e,n){var t=e.components,o=e.mdxType,c=e.originalType,d=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),p=a(t),y=o,k=p["".concat(d,".").concat(y)]||p[y]||s[y]||c;return t?r.createElement(k,i(i({ref:n},u),{},{components:t})):r.createElement(k,i({ref:n},u))}));function k(e,n){var t=arguments,o=n&&n.mdxType;if("string"==typeof e||o){var c=t.length,i=new Array(c);i[0]=y;var l={};for(var d in n)hasOwnProperty.call(n,d)&&(l[d]=n[d]);l.originalType=e,l[p]="string"==typeof e?e:o,i[1]=l;for(var a=2;a{t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>i,default:()=>s,frontMatter:()=>c,metadata:()=>l,toc:()=>a});var r=t(8168),o=(t(6540),t(5680));const c={},i="docker-linux",l={unversionedId:"study/docker/docker-linux",id:"study/docker/docker-linux",title:"docker-linux",description:"docker pull alpine:3.18.3",source:"@site/docs/study/docker/docker-linux.md",sourceDirName:"study/docker",slug:"/study/docker/docker-linux",permalink:"/docs/study/docker/docker-linux",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Docker\u7684\u4f7f\u7528\u603b\u7ed3",permalink:"/docs/study/docker/Docker\u7684\u4f7f\u7528\u603b\u7ed3"},next:{title:"docker-mysql",permalink:"/docs/study/docker/docker-mysql"}},d={},a=[],u={toc:a},p="wrapper";function s(e){let{components:n,...t}=e;return(0,o.yg)(p,(0,r.A)({},u,t,{components:n,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"docker-linux"},"docker-linux"),(0,o.yg)("p",null,"docker pull alpine:3.18.3"),(0,o.yg)("p",null,"docker run -d \\\n-p 1883:1883 \\\n-p 8080:8080 \\\n-p 8081:8081 \\\n-p 8000:8000 \\\n-p 15000:15000 \\\n--privileged=true \\\n-e TZ=Asia/Shanghai \\\n--name alpine-study \\\nalpine:3.18.3"),(0,o.yg)("p",null,'FROM alpine:3.18.3\nMAINTAINER jiot.cloud "',(0,o.yg)("a",{parentName:"p",href:"mailto:cniiot@163.com"},"cniiot@163.com"),'"\nWORKDIR /root/iot-cloud-backend\nADD jdk-17_linux-x64_bin.tar.gz /root/iot-cloud-backend/\nENV JAVA_HOME=/root/iot-cloud-backend/jdk-17.0.8\nENV PATH=$JAVA_HOME/bin:$PATH'),(0,o.yg)("p",null,"docker build -t jdk17:jiot.cloud ."),(0,o.yg)("p",null,"docker run -it jdk17:jiot.cloud /bin/sh"),(0,o.yg)("p",null,"docker pull debian:stable-slim"),(0,o.yg)("p",null,"docker run -d \\\n-p 1883:1883 \\\n-p 8080:8080 \\\n-p 8081:8081 \\\n--privileged=true \\\n-e TZ=Asia/Shanghai \\\n--name debian-study \\\ndebian:stable-slim"),(0,o.yg)("p",null,'FROM debian:stable-slim\nMAINTAINER jiot.cloud "',(0,o.yg)("a",{parentName:"p",href:"mailto:cniiot@163.com"},"cniiot@163.com"),'"\nWORKDIR /root/iot-cloud-backend\nADD jdk-17_linux-x64_bin.tar.gz /root/iot-cloud-backend/\nENV JAVA_HOME=/root/iot-cloud-backend/jdk-17.0.8\nENV PATH=$JAVA_HOME/bin:$PATH'),(0,o.yg)("p",null,"docker build -t jdk17:jiot.cloud ."),(0,o.yg)("p",null,"docker run -it jdk17:jiot.cloud /bin/sh"),(0,o.yg)("p",null,"docker pull centos:centos7.9.2009"),(0,o.yg)("p",null,"docker run -d \\\n-p 1883:1883 \\\n-p 8080:8080 \\\n-p 8081:8081 \\\n--privileged=true \\\n-e TZ=Asia/Shanghai \\\n--name debian-study \\\ncentos:centos7.9.2009"),(0,o.yg)("p",null,'FROM centos:centos7.9.2009\nMAINTAINER jiot.cloud "',(0,o.yg)("a",{parentName:"p",href:"mailto:cniiot@163.com"},"cniiot@163.com"),'"\nWORKDIR /root/iot-cloud-backend\nADD jdk-17_linux-x64_bin.tar.gz /root/iot-cloud-backend/\nENV JAVA_HOME=/root/iot-cloud-backend/jdk-17.0.8\nENV PATH=$JAVA_HOME/bin:$PATH'),(0,o.yg)("p",null,"docker build -t jdk17:jiot.cloud ."),(0,o.yg)("p",null,"docker run -it jdk17:jiot.cloud /bin/sh"))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/319ed101.23d9c300.js b/assets/js/319ed101.28b8c8c7.js similarity index 98% rename from assets/js/319ed101.23d9c300.js rename to assets/js/319ed101.28b8c8c7.js index d997367d0..e644b7723 100644 --- a/assets/js/319ed101.23d9c300.js +++ b/assets/js/319ed101.28b8c8c7.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4377],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>y});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function a(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),u=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},p=function(e){var t=u(e.components);return n.createElement(l.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,i=e.originalType,l=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),s=u(r),f=o,y=s["".concat(l,".").concat(f)]||s[f]||d[f]||i;return r?n.createElement(y,a(a({ref:t},p),{},{components:r})):n.createElement(y,a({ref:t},p))}));function y(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=r.length,a=new Array(i);a[0]=f;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[s]="string"==typeof e?e:o,a[1]=c;for(var u=2;u{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>a,default:()=>d,frontMatter:()=>i,metadata:()=>c,toc:()=>u});var n=r(8168),o=(r(6540),r(5680));const i={sidebar_position:1},a="\u6982\u8ff0",c={unversionedId:"iotcloud/usercenter/index",id:"iotcloud/usercenter/index",title:"\u6982\u8ff0",description:"\u7528\u6237\u4e2d\u5fc3\u5305\u62ec\uff1a\u5f53\u524d\u767b\u5f55\u7528\u6237\u7684\u7528\u6237\u65e5\u5fd7\uff0c\u6ce8\u518c\u7528\u6237\u53ca\u5176\u76f8\u5173\u529f\u80fd\u7684\u4fe1\u606f\u8bbe\u7f6e\uff0cRAM \u7528\u6237\u7684\u7ba1\u7406\uff0c\u5ba2\u6237\u7684\u7ba1\u7406\u3002",source:"@site/docs/iotcloud/usercenter/index.md",sourceDirName:"iotcloud/usercenter",slug:"/iotcloud/usercenter/",permalink:"/docs/iotcloud/usercenter/",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"iotCloudSidebar",previous:{title:"\u8bbe\u5907\u5206\u7ec4\u7ba1\u7406",permalink:"/docs/iotcloud/devicemanager/device-group"},next:{title:"\u7528\u6237\u65e5\u5fd7",permalink:"/docs/iotcloud/usercenter/user-log"}},l={},u=[],p={toc:u},s="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"\u6982\u8ff0"},"\u6982\u8ff0"),(0,o.yg)("p",null,"\u7528\u6237\u4e2d\u5fc3\u5305\u62ec\uff1a\u5f53\u524d\u767b\u5f55\u7528\u6237\u7684\u7528\u6237\u65e5\u5fd7\uff0c\u6ce8\u518c\u7528\u6237\u53ca\u5176\u76f8\u5173\u529f\u80fd\u7684\u4fe1\u606f\u8bbe\u7f6e\uff0cRAM \u7528\u6237\u7684\u7ba1\u7406\uff0c\u5ba2\u6237\u7684\u7ba1\u7406\u3002"),(0,o.yg)("p",null,"\u5e73\u53f0\u7528\u6237\u76f8\u5173\u7684\u540d\u8bcd\u89e3\u91ca\uff1a"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"\u6ce8\u518c\u7528\u6237\uff1a\u6ce8\u518c\u5230",(0,o.yg)("strong",{parentName:"li"},"Iot Cloud"),"\u5e73\u53f0\u7684\u7528\u6237\uff0c\u8fd9\u4e9b\u7528\u6237\u4e4b\u95f4\u90fd\u662f\u72ec\u7acb\u7684\uff0c\u4e00\u822c\u90fd\u662f\u5236\u9020\u8bbe\u5907\u7684\u4f01\u4e1a\u3001\u4f7f\u7528\u8bbe\u5907\u7684\u4f01\u4e1a\u4ee5\u53ca\u8bbe\u5907\u4ee3\u7406/\u670d\u52a1\u4f01\u4e1a\uff1b"),(0,o.yg)("li",{parentName:"ul"},"RAM \u7528\u6237\uff1a\u7531\u6ce8\u518c\u7528\u6237\u624b\u52a8\u6dfb\u52a0\uff0c\u4e00\u822c\u662f\u4f01\u4e1a\u5185\u90e8\u5458\u5de5\uff0c\u914d\u5408\u6ce8\u518c\u7528\u6237\u4e00\u5757\u7ba1\u7406\u7ef4\u62a4\u5e73\u53f0\uff1b"),(0,o.yg)("li",{parentName:"ul"},"\u5ba2\u6237\uff1a\u53ef\u7531\u6ce8\u518c\u7528\u6237\u6216\u6709\u6743\u9650\u7684\u7cfb\u7edf\u7528\u6237\u6dfb\u52a0\uff0c\u4e00\u822c\u662f\u5b9e\u9645\u4f7f\u7528\u8bbe\u5907\u7684\u4e2a\u4eba\u6216\u4f01\u4e1a\uff1b\u5982\u679c\u6ce8\u518c\u7528\u6237\u662f",(0,o.yg)("strong",{parentName:"li"},"\u4f7f\u7528\u8bbe\u5907\u7684\u4f01\u4e1a"),"\uff0c\u53ef\u80fd\u8fd9\u79cd\u60c5\u51b5\u65e0\u9700\u4f7f\u7528\u5ba2\u6237\u529f\u80fd\uff1b")))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4377],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>y});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function a(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),u=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},p=function(e){var t=u(e.components);return n.createElement(l.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,i=e.originalType,l=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),s=u(r),f=o,y=s["".concat(l,".").concat(f)]||s[f]||d[f]||i;return r?n.createElement(y,a(a({ref:t},p),{},{components:r})):n.createElement(y,a({ref:t},p))}));function y(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=r.length,a=new Array(i);a[0]=f;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[s]="string"==typeof e?e:o,a[1]=c;for(var u=2;u{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>a,default:()=>d,frontMatter:()=>i,metadata:()=>c,toc:()=>u});var n=r(8168),o=(r(6540),r(5680));const i={sidebar_position:1},a="\u6982\u8ff0",c={unversionedId:"iotcloud/usercenter/index",id:"iotcloud/usercenter/index",title:"\u6982\u8ff0",description:"\u7528\u6237\u4e2d\u5fc3\u5305\u62ec\uff1a\u5f53\u524d\u767b\u5f55\u7528\u6237\u7684\u7528\u6237\u65e5\u5fd7\uff0c\u6ce8\u518c\u7528\u6237\u53ca\u5176\u76f8\u5173\u529f\u80fd\u7684\u4fe1\u606f\u8bbe\u7f6e\uff0cRAM \u7528\u6237\u7684\u7ba1\u7406\uff0c\u5ba2\u6237\u7684\u7ba1\u7406\u3002",source:"@site/docs/iotcloud/usercenter/index.md",sourceDirName:"iotcloud/usercenter",slug:"/iotcloud/usercenter/",permalink:"/docs/iotcloud/usercenter/",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"iotCloudSidebar",previous:{title:"\u8bbe\u5907\u5206\u7ec4\u7ba1\u7406",permalink:"/docs/iotcloud/devicemanager/device-group"},next:{title:"\u7528\u6237\u65e5\u5fd7",permalink:"/docs/iotcloud/usercenter/user-log"}},l={},u=[],p={toc:u},s="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"\u6982\u8ff0"},"\u6982\u8ff0"),(0,o.yg)("p",null,"\u7528\u6237\u4e2d\u5fc3\u5305\u62ec\uff1a\u5f53\u524d\u767b\u5f55\u7528\u6237\u7684\u7528\u6237\u65e5\u5fd7\uff0c\u6ce8\u518c\u7528\u6237\u53ca\u5176\u76f8\u5173\u529f\u80fd\u7684\u4fe1\u606f\u8bbe\u7f6e\uff0cRAM \u7528\u6237\u7684\u7ba1\u7406\uff0c\u5ba2\u6237\u7684\u7ba1\u7406\u3002"),(0,o.yg)("p",null,"\u5e73\u53f0\u7528\u6237\u76f8\u5173\u7684\u540d\u8bcd\u89e3\u91ca\uff1a"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"\u6ce8\u518c\u7528\u6237\uff1a\u6ce8\u518c\u5230",(0,o.yg)("strong",{parentName:"li"},"Iot Cloud"),"\u5e73\u53f0\u7684\u7528\u6237\uff0c\u8fd9\u4e9b\u7528\u6237\u4e4b\u95f4\u90fd\u662f\u72ec\u7acb\u7684\uff0c\u4e00\u822c\u90fd\u662f\u5236\u9020\u8bbe\u5907\u7684\u4f01\u4e1a\u3001\u4f7f\u7528\u8bbe\u5907\u7684\u4f01\u4e1a\u4ee5\u53ca\u8bbe\u5907\u4ee3\u7406/\u670d\u52a1\u4f01\u4e1a\uff1b"),(0,o.yg)("li",{parentName:"ul"},"RAM \u7528\u6237\uff1a\u7531\u6ce8\u518c\u7528\u6237\u624b\u52a8\u6dfb\u52a0\uff0c\u4e00\u822c\u662f\u4f01\u4e1a\u5185\u90e8\u5458\u5de5\uff0c\u914d\u5408\u6ce8\u518c\u7528\u6237\u4e00\u5757\u7ba1\u7406\u7ef4\u62a4\u5e73\u53f0\uff1b"),(0,o.yg)("li",{parentName:"ul"},"\u5ba2\u6237\uff1a\u53ef\u7531\u6ce8\u518c\u7528\u6237\u6216\u6709\u6743\u9650\u7684\u7cfb\u7edf\u7528\u6237\u6dfb\u52a0\uff0c\u4e00\u822c\u662f\u5b9e\u9645\u4f7f\u7528\u8bbe\u5907\u7684\u4e2a\u4eba\u6216\u4f01\u4e1a\uff1b\u5982\u679c\u6ce8\u518c\u7528\u6237\u662f",(0,o.yg)("strong",{parentName:"li"},"\u4f7f\u7528\u8bbe\u5907\u7684\u4f01\u4e1a"),"\uff0c\u53ef\u80fd\u8fd9\u79cd\u60c5\u51b5\u65e0\u9700\u4f7f\u7528\u5ba2\u6237\u529f\u80fd\uff1b")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/32dcf95e.c6538a90.js b/assets/js/32dcf95e.567e4da9.js similarity index 99% rename from assets/js/32dcf95e.c6538a90.js rename to assets/js/32dcf95e.567e4da9.js index d7ae6d200..4d1392157 100644 --- a/assets/js/32dcf95e.c6538a90.js +++ b/assets/js/32dcf95e.567e4da9.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5650],{5680:(t,e,r)=>{r.d(e,{xA:()=>l,yg:()=>f});var o=r(6540);function n(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function a(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);e&&(o=o.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,o)}return r}function s(t){for(var e=1;e=0||(n[r]=t[r]);return n}(t,e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}var i=o.createContext({}),p=function(t){var e=o.useContext(i),r=e;return t&&(r="function"==typeof t?t(e):s(s({},e),t)),r},l=function(t){var e=p(t.components);return o.createElement(i.Provider,{value:e},t.children)},u="mdxType",d={inlineCode:"code",wrapper:function(t){var e=t.children;return o.createElement(o.Fragment,{},e)}},y=o.forwardRef((function(t,e){var r=t.components,n=t.mdxType,a=t.originalType,i=t.parentName,l=c(t,["components","mdxType","originalType","parentName"]),u=p(r),y=n,f=u["".concat(i,".").concat(y)]||u[y]||d[y]||a;return r?o.createElement(f,s(s({ref:e},l),{},{components:r})):o.createElement(f,s({ref:e},l))}));function f(t,e){var r=arguments,n=e&&e.mdxType;if("string"==typeof t||n){var a=r.length,s=new Array(a);s[0]=y;var c={};for(var i in e)hasOwnProperty.call(e,i)&&(c[i]=e[i]);c.originalType=t,c[u]="string"==typeof t?t:n,s[1]=c;for(var p=2;p{r.r(e),r.d(e,{assets:()=>i,contentTitle:()=>s,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>p});var o=r(8168),n=(r(6540),r(5680));const a={},s=void 0,c={unversionedId:"study/db/OLAP/StarRocks",id:"study/db/OLAP/StarRocks",title:"StarRocks",description:"\u80cc\u666f\u4fe1\u606f",source:"@site/docs/study/db/OLAP/StarRocks.md",sourceDirName:"study/db/OLAP",slug:"/study/db/OLAP/StarRocks",permalink:"/docs/study/db/OLAP/StarRocks",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Kylin",permalink:"/docs/study/db/OLAP/Kylin"},next:{title:"\u7efc\u5408\u6982\u8ff0",permalink:"/docs/study/db/SQL/\u7efc\u5408\u6982\u8ff0"}},i={},p=[{value:"\u80cc\u666f\u4fe1\u606f",id:"\u80cc\u666f\u4fe1\u606f",level:4},{value:"\u6982\u8ff0",id:"\u6982\u8ff0",level:4}],l={toc:p},u="wrapper";function d(t){let{components:e,...r}=t;return(0,n.yg)(u,(0,o.A)({},l,r,{components:e,mdxType:"MDXLayout"}),(0,n.yg)("h4",{id:"\u80cc\u666f\u4fe1\u606f"},"\u80cc\u666f\u4fe1\u606f"),(0,n.yg)("p",null,"Doris \u6700\u65e9\u662f\u89e3\u51b3\u767e\u5ea6\u51e4\u5de2\u7edf\u8ba1\u62a5\u8868\u7684\u4e13\u7528\u7cfb\u7edf\uff0c\u968f\u7740\u767e\u5ea6\u4e1a\u52a1\u7684\u98de\u901f\u53d1\u5c55\u5bf9\u7cfb\u7edf\u8fdb\u884c\u4e86\u591a\u6b21\u8fed\u4ee3\uff0c\u9010\u6e10\u627f\u62c5\u8d77\u767e\u5ea6\u5185\u90e8\u4e1a\u52a1\u7684\u7edf\u8ba1\u62a5\u8868\u548c\u591a\u7ef4\u5206\u6790\u9700\u6c42\u30022013 \u5e74\uff0c\u6211\u4eec\u628a Doris \u8fdb\u884c\u4e86 MPP \u6846\u67b6\u7684\u5347\u7ea7\uff0c\u5e76\u5c06\u65b0\u7cfb\u7edf\u547d\u540d\u4e3a Palo \uff0c2017 \u5e74\u6211\u4eec\u4ee5\u767e\u5ea6 Palo \u7684\u540d\u5b57\u5728 GitHub \u4e0a\u8fdb\u884c\u4e86\u5f00\u6e90\uff0c2018 \u5e74\u8d21\u732e\u7ed9 Apache \u57fa\u91d1\u4f1a\u65f6\uff0c\u7531\u4e8e\u4e0e\u56fd\u5916\u6570\u636e\u5e93\u5382\u5546\u91cd\u540d\uff0c\u56e0\u6b64\u9009\u62e9\u7528\u56de\u6700\u521d\u7684\u540d\u5b57\uff0c\u8fd9\u5c31\u662f Apache Doris \u7684\u7531\u6765\u3002"),(0,n.yg)("p",null,"2020 \u5e74 2 \u6708\uff0c\u767e\u5ea6 Doris \u56e2\u961f\u7684\u4e2a\u522b\u540c\u5b66\u79bb\u804c\u521b\u4e1a\uff0c\u57fa\u4e8e Apache Doris\u505a\u4e86\u81ea\u5df1\u7684\u5546\u4e1a\u5316\u95ed\u6e90\u4ea7\u54c1 DorisDB \uff0c\u8fd9\u5c31\u662f StarRocks \u7684\u524d\u8eab\u3002"),(0,n.yg)("p",null,"\u3010\u603b\u7ed3\u3011Doris\u5c5e\u4e8e\u767e\u5ea6\u7684\uff0cApache Doris\u662f\u6709\u767e\u5ea6\u8d21\u732e\u7ed9Apache \u7684\uff0cDorisDB\u662f\u767e\u5ea6\u524d\u5458\u5de5\u57fa\u4e8eApache Doris\u505a\u7684\u5546\u4e1a\u7248\u672c\u5c5e\u4e8e\u53e6\u5916\u7684\u516c\u53f8\uff0c\u540e\u9762\u56e0\u4e3a\u7248\u6743\u7684\u95ee\u9898\uff0c\u5c06DorisDB\u6539\u540d\u4e3aStarRocks\uff0c\u6240\u4ee5StarRocks\u548cDorisDB\u662f\u5c5e\u4e8e\u4e00\u4e2a\u4ea7\u54c1\uff0c\u4e00\u4e2a\u516c\u53f8\u7684\u3002\u4e0d\u77e5\u9053\u5c0f\u4f19\u4f34\uff0c\u8fd8\u8bb0\u4e0d\u8bb0\u5f97\u53e6\u5916\u4e00\u4e2a\u4ea7\u54c1\u7684\u7ecf\u5386\u8ddfDoris\u7684\u7ecf\u5386\u975e\u5e38\u7684\u76f8\u4f3c\uff0c\u90a3\u5c31\u662fpresto\u3002\u8fd9\u91cc\u4e3b\u8981\u8bb2StarRocks\uff0c\u56e0\u4e3aStarRocks\u66f4\u65b0\u8fed\u4ee3\u5f88\u5feb\uff0c\u6d3b\u8dc3\u5ea6\u4e5f\u9ad8\u3002"),(0,n.yg)("p",null,"Apache Doris GitHub\u5730\u5740\uff1a",(0,n.yg)("a",{parentName:"p",href:"https://github.com/apache/doris"},"https://github.com/apache/doris")),(0,n.yg)("p",null,"Apache Doris \u5b98\u7f51\u6587\u6863\uff1a",(0,n.yg)("a",{parentName:"p",href:"https://doris.apache.org/docs/get-starting/get-starting.html"},"https://doris.apache.org/docs/get-starting/get-starting.html")),(0,n.yg)("p",null,"StarRocks GitHub\u5730\u5740\uff1a",(0,n.yg)("a",{parentName:"p",href:"https://github.com/StarRocks/starrocks"},"https://github.com/StarRocks/starrocks")),(0,n.yg)("p",null,"StarRocks\u5b98\u65b9\u6587\u6863\uff1a",(0,n.yg)("a",{parentName:"p",href:"https://docs.starrocks.com/zh-cn/main/introduction/StarRocks_intro"},"https://docs.starrocks.com/zh-cn/main/introduction/StarRocks_intro")),(0,n.yg)("h4",{id:"\u6982\u8ff0"},"\u6982\u8ff0"),(0,n.yg)("p",null,"StarRocks \u662f\u4e00\u6b3e\u9ad8\u6027\u80fd\u5206\u6790\u578b\u6570\u636e\u4ed3\u5e93\uff0c\u4f7f\u7528\u5411\u91cf\u5316\u3001MPP\uff08Massively Parallel Processing\uff1a\u5927\u89c4\u6a21\u5e76\u884c\u5904\u7406\uff09 \u67b6\u6784\u3001\u53ef\u5b9e\u65f6\u66f4\u65b0\u7684\u5217\u5f0f\u5b58\u50a8\u5f15\u64ce\u7b49\u6280\u672f\u5b9e\u73b0\u591a\u7ef4\u3001\u5b9e\u65f6\u3001\u9ad8\u5e76\u53d1\u7684\u6570\u636e\u5206\u6790\u3002StarRocks \u65e2\u652f\u6301\u4ece\u5404\u7c7b\u5b9e\u65f6\u548c\u79bb\u7ebf\u7684\u6570\u636e\u6e90\u9ad8\u6548\u5bfc\u5165\u6570\u636e\uff0c\u4e5f\u652f\u6301\u76f4\u63a5\u5206\u6790\u6570\u636e\u6e56\u4e0a\u5404\u79cd\u683c\u5f0f\u7684\u6570\u636e\u3002StarRocks \u517c\u5bb9 MySQL \u534f\u8bae\uff0c\u53ef\u4f7f\u7528 MySQL \u5ba2\u6237\u7aef\u548c\u5e38\u7528 BI \u5de5\u5177\u5bf9\u63a5\u3002\u540c\u65f6 StarRocks \u5177\u5907\u6c34\u5e73\u6269\u5c55\uff0c\u9ad8\u53ef\u7528\uff0c\u9ad8\u53ef\u9760\uff0c\u6613\u8fd0\u7ef4\u7b49\u7279\u6027\u3002\u5e7f\u6cdb\u5e94\u7528\u4e8e\u5b9e\u65f6\u6570\u4ed3\u3001OLAP \u62a5\u8868\u3001\u6570\u636e\u6e56\u5206\u6790\u7b49\u573a\u666f\u3002"))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5650],{5680:(t,e,r)=>{r.d(e,{xA:()=>l,yg:()=>f});var o=r(6540);function n(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function a(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);e&&(o=o.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,o)}return r}function s(t){for(var e=1;e=0||(n[r]=t[r]);return n}(t,e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r])}return n}var i=o.createContext({}),p=function(t){var e=o.useContext(i),r=e;return t&&(r="function"==typeof t?t(e):s(s({},e),t)),r},l=function(t){var e=p(t.components);return o.createElement(i.Provider,{value:e},t.children)},u="mdxType",d={inlineCode:"code",wrapper:function(t){var e=t.children;return o.createElement(o.Fragment,{},e)}},y=o.forwardRef((function(t,e){var r=t.components,n=t.mdxType,a=t.originalType,i=t.parentName,l=c(t,["components","mdxType","originalType","parentName"]),u=p(r),y=n,f=u["".concat(i,".").concat(y)]||u[y]||d[y]||a;return r?o.createElement(f,s(s({ref:e},l),{},{components:r})):o.createElement(f,s({ref:e},l))}));function f(t,e){var r=arguments,n=e&&e.mdxType;if("string"==typeof t||n){var a=r.length,s=new Array(a);s[0]=y;var c={};for(var i in e)hasOwnProperty.call(e,i)&&(c[i]=e[i]);c.originalType=t,c[u]="string"==typeof t?t:n,s[1]=c;for(var p=2;p{r.r(e),r.d(e,{assets:()=>i,contentTitle:()=>s,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>p});var o=r(8168),n=(r(6540),r(5680));const a={},s=void 0,c={unversionedId:"study/db/OLAP/StarRocks",id:"study/db/OLAP/StarRocks",title:"StarRocks",description:"\u80cc\u666f\u4fe1\u606f",source:"@site/docs/study/db/OLAP/StarRocks.md",sourceDirName:"study/db/OLAP",slug:"/study/db/OLAP/StarRocks",permalink:"/docs/study/db/OLAP/StarRocks",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Kylin",permalink:"/docs/study/db/OLAP/Kylin"},next:{title:"\u7efc\u5408\u6982\u8ff0",permalink:"/docs/study/db/SQL/\u7efc\u5408\u6982\u8ff0"}},i={},p=[{value:"\u80cc\u666f\u4fe1\u606f",id:"\u80cc\u666f\u4fe1\u606f",level:4},{value:"\u6982\u8ff0",id:"\u6982\u8ff0",level:4}],l={toc:p},u="wrapper";function d(t){let{components:e,...r}=t;return(0,n.yg)(u,(0,o.A)({},l,r,{components:e,mdxType:"MDXLayout"}),(0,n.yg)("h4",{id:"\u80cc\u666f\u4fe1\u606f"},"\u80cc\u666f\u4fe1\u606f"),(0,n.yg)("p",null,"Doris \u6700\u65e9\u662f\u89e3\u51b3\u767e\u5ea6\u51e4\u5de2\u7edf\u8ba1\u62a5\u8868\u7684\u4e13\u7528\u7cfb\u7edf\uff0c\u968f\u7740\u767e\u5ea6\u4e1a\u52a1\u7684\u98de\u901f\u53d1\u5c55\u5bf9\u7cfb\u7edf\u8fdb\u884c\u4e86\u591a\u6b21\u8fed\u4ee3\uff0c\u9010\u6e10\u627f\u62c5\u8d77\u767e\u5ea6\u5185\u90e8\u4e1a\u52a1\u7684\u7edf\u8ba1\u62a5\u8868\u548c\u591a\u7ef4\u5206\u6790\u9700\u6c42\u30022013 \u5e74\uff0c\u6211\u4eec\u628a Doris \u8fdb\u884c\u4e86 MPP \u6846\u67b6\u7684\u5347\u7ea7\uff0c\u5e76\u5c06\u65b0\u7cfb\u7edf\u547d\u540d\u4e3a Palo \uff0c2017 \u5e74\u6211\u4eec\u4ee5\u767e\u5ea6 Palo \u7684\u540d\u5b57\u5728 GitHub \u4e0a\u8fdb\u884c\u4e86\u5f00\u6e90\uff0c2018 \u5e74\u8d21\u732e\u7ed9 Apache \u57fa\u91d1\u4f1a\u65f6\uff0c\u7531\u4e8e\u4e0e\u56fd\u5916\u6570\u636e\u5e93\u5382\u5546\u91cd\u540d\uff0c\u56e0\u6b64\u9009\u62e9\u7528\u56de\u6700\u521d\u7684\u540d\u5b57\uff0c\u8fd9\u5c31\u662f Apache Doris \u7684\u7531\u6765\u3002"),(0,n.yg)("p",null,"2020 \u5e74 2 \u6708\uff0c\u767e\u5ea6 Doris \u56e2\u961f\u7684\u4e2a\u522b\u540c\u5b66\u79bb\u804c\u521b\u4e1a\uff0c\u57fa\u4e8e Apache Doris\u505a\u4e86\u81ea\u5df1\u7684\u5546\u4e1a\u5316\u95ed\u6e90\u4ea7\u54c1 DorisDB \uff0c\u8fd9\u5c31\u662f StarRocks \u7684\u524d\u8eab\u3002"),(0,n.yg)("p",null,"\u3010\u603b\u7ed3\u3011Doris\u5c5e\u4e8e\u767e\u5ea6\u7684\uff0cApache Doris\u662f\u6709\u767e\u5ea6\u8d21\u732e\u7ed9Apache \u7684\uff0cDorisDB\u662f\u767e\u5ea6\u524d\u5458\u5de5\u57fa\u4e8eApache Doris\u505a\u7684\u5546\u4e1a\u7248\u672c\u5c5e\u4e8e\u53e6\u5916\u7684\u516c\u53f8\uff0c\u540e\u9762\u56e0\u4e3a\u7248\u6743\u7684\u95ee\u9898\uff0c\u5c06DorisDB\u6539\u540d\u4e3aStarRocks\uff0c\u6240\u4ee5StarRocks\u548cDorisDB\u662f\u5c5e\u4e8e\u4e00\u4e2a\u4ea7\u54c1\uff0c\u4e00\u4e2a\u516c\u53f8\u7684\u3002\u4e0d\u77e5\u9053\u5c0f\u4f19\u4f34\uff0c\u8fd8\u8bb0\u4e0d\u8bb0\u5f97\u53e6\u5916\u4e00\u4e2a\u4ea7\u54c1\u7684\u7ecf\u5386\u8ddfDoris\u7684\u7ecf\u5386\u975e\u5e38\u7684\u76f8\u4f3c\uff0c\u90a3\u5c31\u662fpresto\u3002\u8fd9\u91cc\u4e3b\u8981\u8bb2StarRocks\uff0c\u56e0\u4e3aStarRocks\u66f4\u65b0\u8fed\u4ee3\u5f88\u5feb\uff0c\u6d3b\u8dc3\u5ea6\u4e5f\u9ad8\u3002"),(0,n.yg)("p",null,"Apache Doris GitHub\u5730\u5740\uff1a",(0,n.yg)("a",{parentName:"p",href:"https://github.com/apache/doris"},"https://github.com/apache/doris")),(0,n.yg)("p",null,"Apache Doris \u5b98\u7f51\u6587\u6863\uff1a",(0,n.yg)("a",{parentName:"p",href:"https://doris.apache.org/docs/get-starting/get-starting.html"},"https://doris.apache.org/docs/get-starting/get-starting.html")),(0,n.yg)("p",null,"StarRocks GitHub\u5730\u5740\uff1a",(0,n.yg)("a",{parentName:"p",href:"https://github.com/StarRocks/starrocks"},"https://github.com/StarRocks/starrocks")),(0,n.yg)("p",null,"StarRocks\u5b98\u65b9\u6587\u6863\uff1a",(0,n.yg)("a",{parentName:"p",href:"https://docs.starrocks.com/zh-cn/main/introduction/StarRocks_intro"},"https://docs.starrocks.com/zh-cn/main/introduction/StarRocks_intro")),(0,n.yg)("h4",{id:"\u6982\u8ff0"},"\u6982\u8ff0"),(0,n.yg)("p",null,"StarRocks \u662f\u4e00\u6b3e\u9ad8\u6027\u80fd\u5206\u6790\u578b\u6570\u636e\u4ed3\u5e93\uff0c\u4f7f\u7528\u5411\u91cf\u5316\u3001MPP\uff08Massively Parallel Processing\uff1a\u5927\u89c4\u6a21\u5e76\u884c\u5904\u7406\uff09 \u67b6\u6784\u3001\u53ef\u5b9e\u65f6\u66f4\u65b0\u7684\u5217\u5f0f\u5b58\u50a8\u5f15\u64ce\u7b49\u6280\u672f\u5b9e\u73b0\u591a\u7ef4\u3001\u5b9e\u65f6\u3001\u9ad8\u5e76\u53d1\u7684\u6570\u636e\u5206\u6790\u3002StarRocks \u65e2\u652f\u6301\u4ece\u5404\u7c7b\u5b9e\u65f6\u548c\u79bb\u7ebf\u7684\u6570\u636e\u6e90\u9ad8\u6548\u5bfc\u5165\u6570\u636e\uff0c\u4e5f\u652f\u6301\u76f4\u63a5\u5206\u6790\u6570\u636e\u6e56\u4e0a\u5404\u79cd\u683c\u5f0f\u7684\u6570\u636e\u3002StarRocks \u517c\u5bb9 MySQL \u534f\u8bae\uff0c\u53ef\u4f7f\u7528 MySQL \u5ba2\u6237\u7aef\u548c\u5e38\u7528 BI \u5de5\u5177\u5bf9\u63a5\u3002\u540c\u65f6 StarRocks \u5177\u5907\u6c34\u5e73\u6269\u5c55\uff0c\u9ad8\u53ef\u7528\uff0c\u9ad8\u53ef\u9760\uff0c\u6613\u8fd0\u7ef4\u7b49\u7279\u6027\u3002\u5e7f\u6cdb\u5e94\u7528\u4e8e\u5b9e\u65f6\u6570\u4ed3\u3001OLAP \u62a5\u8868\u3001\u6570\u636e\u6e56\u5206\u6790\u7b49\u573a\u666f\u3002"))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/32ef234c.87279c6e.js b/assets/js/32ef234c.9d9266a1.js similarity index 98% rename from assets/js/32ef234c.87279c6e.js rename to assets/js/32ef234c.9d9266a1.js index 3ef290c15..38cbdf7fe 100644 --- a/assets/js/32ef234c.87279c6e.js +++ b/assets/js/32ef234c.9d9266a1.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7055],{5680:(e,t,r)=>{r.d(t,{xA:()=>c,yg:()=>d});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var u=n.createContext({}),p=function(e){var t=n.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},c=function(e){var t=p(e.components);return n.createElement(u.Provider,{value:t},e.children)},m="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},s=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,l=e.originalType,u=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),m=p(r),s=a,d=m["".concat(u,".").concat(s)]||m[s]||y[s]||l;return r?n.createElement(d,o(o({ref:t},c),{},{components:r})):n.createElement(d,o({ref:t},c))}));function d(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=r.length,o=new Array(l);o[0]=s;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i[m]="string"==typeof e?e:a,o[1]=i;for(var p=2;p{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>o,default:()=>y,frontMatter:()=>l,metadata:()=>i,toc:()=>p});var n=r(8168),a=(r(6540),r(5680));const l={},o=void 0,i={unversionedId:"study/back/mq/MQTT broker",id:"study/back/mq/MQTT broker",title:"MQTT broker",description:"EMQ EMQX",source:"@site/docs/study/back/mq/MQTT broker.md",sourceDirName:"study/back/mq",slug:"/study/back/mq/MQTT broker",permalink:"/docs/study/back/mq/MQTT broker",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Kafka",permalink:"/docs/study/back/mq/Kafka"},next:{title:"MQ\u5b9e\u73b0\u5bf9\u6bd4",permalink:"/docs/study/back/mq/MQ\u5b9e\u73b0\u5bf9\u6bd4"}},u={},p=[{value:"EMQ EMQX",id:"emq-emqx",level:3},{value:"BifroMQ",id:"bifromq",level:3},{value:"FluxMQ",id:"fluxmq",level:3},{value:"TBMQ",id:"tbmq",level:3},{value:"Eclipse Mosquitto",id:"eclipse-mosquitto",level:3},{value:"Moquette",id:"moquette",level:3},{value:"\u603b\u7ed3",id:"\u603b\u7ed3",level:3}],c={toc:p},m="wrapper";function y(e){let{components:t,...r}=e;return(0,a.yg)(m,(0,n.A)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"emq-emqx"},"EMQ EMQX"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("a",{parentName:"li",href:"https://www.emqx.io/cn/"},"\u5b98\u7f51")),(0,a.yg)("li",{parentName:"ol"},"\u5f00\u53d1\u8bed\u8a00\uff1aErlang/OTP\uff0c\u4e00\u4e2a\u4e0d\u5e38\u89c1\u7684\u8bed\u8a00\uff1b"),(0,a.yg)("li",{parentName:"ol"},"\u56fd\u4eba\u5f00\u53d1\uff1b\u53c8\u79f0 emqttd\uff1b"),(0,a.yg)("li",{parentName:"ol"},"\u5f00\u6e90&\u5546\u4e1a\u5316 MQTT \u9f3b\u7956")),(0,a.yg)("h3",{id:"bifromq"},"BifroMQ"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u767e\u5ea6\u5f00\u6e90\u7684\u4e00\u6b3e MQTT \u4ea7\u54c1"),(0,a.yg)("li",{parentName:"ul"},"\u5f00\u53d1\u8bed\u8a00\uff1aJDK17 Maven3.5+"),(0,a.yg)("li",{parentName:"ul"},"\u5f00\u6e90")),(0,a.yg)("h3",{id:"fluxmq"},"FluxMQ"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u53f7\u79f0\u6027\u80fd\u9886\u5148 99%\u7684\u4e00\u6b3e\u5546\u4e1a\u5316 MQTT \u4ea7\u54c1"),(0,a.yg)("li",{parentName:"ul"},"\u5f00\u53d1\u8bed\u8a00\uff1aJDK8+"),(0,a.yg)("li",{parentName:"ul"},"\u95ed\u6e90"),(0,a.yg)("li",{parentName:"ul"},"\u5b98\u7f51 ",(0,a.yg)("a",{parentName:"li",href:"https://www.fluxmq.com/"},"https://www.fluxmq.com/"))),(0,a.yg)("h3",{id:"tbmq"},"TBMQ"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"Thingsboard \u5f00\u6e90\u7684\u2f00\u6b3e MQTT \u4ea7\u54c1"),(0,a.yg)("li",{parentName:"ul"},"\u5f00\u53d1\u8bed\u8a00\uff1aJDK17 Maven3.5+"),(0,a.yg)("li",{parentName:"ul"},"\u5f00\u6e90")),(0,a.yg)("h3",{id:"eclipse-mosquitto"},"Eclipse Mosquitto"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("a",{parentName:"li",href:"https://mosquitto.org"},"\u5b98\u7f51")),(0,a.yg)("li",{parentName:"ol"},"\u5f00\u53d1\u8bed\u8a00\uff1aC/C++")),(0,a.yg)("h3",{id:"moquette"},"Moquette"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("a",{parentName:"li",href:"https://github.com/moquette-io/moquette"},"\u5b98\u7f51")),(0,a.yg)("li",{parentName:"ol"},"\u5f00\u53d1\u8bed\u8a00\uff1aJava"),(0,a.yg)("li",{parentName:"ol"},"\u636e\u5927\u4f6c\u8bf4\u8fd9\u5c31\u662f\u4e00\u4e2a\u73a9\u5177\u9879\u76ee\uff0c\u4f46\u662f\u57fa\u4e8e Java \u5f00\u6e90\u7684\u5e76\u4e0d\u591a\uff0c\u4e14\u7f51\u4e0a\u5f88\u591a\u662f\u57fa\u4e8e\u4ed6\u5f00\u53d1\u51fa\u6765\u7684\uff1b"),(0,a.yg)("li",{parentName:"ol"},"0.10 \u652f\u6301\u96c6\u7fa4\uff1b0.12 \u4e0d\u652f\u6301\u96c6\u7fa4\uff1b")),(0,a.yg)("h3",{id:"\u603b\u7ed3"},"\u603b\u7ed3"))}y.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7055],{5680:(e,t,r)=>{r.d(t,{xA:()=>c,yg:()=>d});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var u=n.createContext({}),p=function(e){var t=n.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},c=function(e){var t=p(e.components);return n.createElement(u.Provider,{value:t},e.children)},m="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},s=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,l=e.originalType,u=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),m=p(r),s=a,d=m["".concat(u,".").concat(s)]||m[s]||y[s]||l;return r?n.createElement(d,o(o({ref:t},c),{},{components:r})):n.createElement(d,o({ref:t},c))}));function d(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=r.length,o=new Array(l);o[0]=s;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i[m]="string"==typeof e?e:a,o[1]=i;for(var p=2;p{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>o,default:()=>y,frontMatter:()=>l,metadata:()=>i,toc:()=>p});var n=r(8168),a=(r(6540),r(5680));const l={},o=void 0,i={unversionedId:"study/back/mq/MQTT broker",id:"study/back/mq/MQTT broker",title:"MQTT broker",description:"EMQ EMQX",source:"@site/docs/study/back/mq/MQTT broker.md",sourceDirName:"study/back/mq",slug:"/study/back/mq/MQTT broker",permalink:"/docs/study/back/mq/MQTT broker",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Kafka",permalink:"/docs/study/back/mq/Kafka"},next:{title:"MQ\u5b9e\u73b0\u5bf9\u6bd4",permalink:"/docs/study/back/mq/MQ\u5b9e\u73b0\u5bf9\u6bd4"}},u={},p=[{value:"EMQ EMQX",id:"emq-emqx",level:3},{value:"BifroMQ",id:"bifromq",level:3},{value:"FluxMQ",id:"fluxmq",level:3},{value:"TBMQ",id:"tbmq",level:3},{value:"Eclipse Mosquitto",id:"eclipse-mosquitto",level:3},{value:"Moquette",id:"moquette",level:3},{value:"\u603b\u7ed3",id:"\u603b\u7ed3",level:3}],c={toc:p},m="wrapper";function y(e){let{components:t,...r}=e;return(0,a.yg)(m,(0,n.A)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"emq-emqx"},"EMQ EMQX"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("a",{parentName:"li",href:"https://www.emqx.io/cn/"},"\u5b98\u7f51")),(0,a.yg)("li",{parentName:"ol"},"\u5f00\u53d1\u8bed\u8a00\uff1aErlang/OTP\uff0c\u4e00\u4e2a\u4e0d\u5e38\u89c1\u7684\u8bed\u8a00\uff1b"),(0,a.yg)("li",{parentName:"ol"},"\u56fd\u4eba\u5f00\u53d1\uff1b\u53c8\u79f0 emqttd\uff1b"),(0,a.yg)("li",{parentName:"ol"},"\u5f00\u6e90&\u5546\u4e1a\u5316 MQTT \u9f3b\u7956")),(0,a.yg)("h3",{id:"bifromq"},"BifroMQ"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u767e\u5ea6\u5f00\u6e90\u7684\u4e00\u6b3e MQTT \u4ea7\u54c1"),(0,a.yg)("li",{parentName:"ul"},"\u5f00\u53d1\u8bed\u8a00\uff1aJDK17 Maven3.5+"),(0,a.yg)("li",{parentName:"ul"},"\u5f00\u6e90")),(0,a.yg)("h3",{id:"fluxmq"},"FluxMQ"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u53f7\u79f0\u6027\u80fd\u9886\u5148 99%\u7684\u4e00\u6b3e\u5546\u4e1a\u5316 MQTT \u4ea7\u54c1"),(0,a.yg)("li",{parentName:"ul"},"\u5f00\u53d1\u8bed\u8a00\uff1aJDK8+"),(0,a.yg)("li",{parentName:"ul"},"\u95ed\u6e90"),(0,a.yg)("li",{parentName:"ul"},"\u5b98\u7f51 ",(0,a.yg)("a",{parentName:"li",href:"https://www.fluxmq.com/"},"https://www.fluxmq.com/"))),(0,a.yg)("h3",{id:"tbmq"},"TBMQ"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"Thingsboard \u5f00\u6e90\u7684\u2f00\u6b3e MQTT \u4ea7\u54c1"),(0,a.yg)("li",{parentName:"ul"},"\u5f00\u53d1\u8bed\u8a00\uff1aJDK17 Maven3.5+"),(0,a.yg)("li",{parentName:"ul"},"\u5f00\u6e90")),(0,a.yg)("h3",{id:"eclipse-mosquitto"},"Eclipse Mosquitto"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("a",{parentName:"li",href:"https://mosquitto.org"},"\u5b98\u7f51")),(0,a.yg)("li",{parentName:"ol"},"\u5f00\u53d1\u8bed\u8a00\uff1aC/C++")),(0,a.yg)("h3",{id:"moquette"},"Moquette"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("a",{parentName:"li",href:"https://github.com/moquette-io/moquette"},"\u5b98\u7f51")),(0,a.yg)("li",{parentName:"ol"},"\u5f00\u53d1\u8bed\u8a00\uff1aJava"),(0,a.yg)("li",{parentName:"ol"},"\u636e\u5927\u4f6c\u8bf4\u8fd9\u5c31\u662f\u4e00\u4e2a\u73a9\u5177\u9879\u76ee\uff0c\u4f46\u662f\u57fa\u4e8e Java \u5f00\u6e90\u7684\u5e76\u4e0d\u591a\uff0c\u4e14\u7f51\u4e0a\u5f88\u591a\u662f\u57fa\u4e8e\u4ed6\u5f00\u53d1\u51fa\u6765\u7684\uff1b"),(0,a.yg)("li",{parentName:"ol"},"0.10 \u652f\u6301\u96c6\u7fa4\uff1b0.12 \u4e0d\u652f\u6301\u96c6\u7fa4\uff1b")),(0,a.yg)("h3",{id:"\u603b\u7ed3"},"\u603b\u7ed3"))}y.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/3474579f.0747341b.js b/assets/js/3474579f.93743f17.js similarity index 99% rename from assets/js/3474579f.0747341b.js rename to assets/js/3474579f.93743f17.js index 0dce8bd8d..69376d67a 100644 --- a/assets/js/3474579f.0747341b.js +++ b/assets/js/3474579f.93743f17.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7134],{5680:(e,t,n)=>{n.d(t,{xA:()=>y,yg:()=>d});var a=n(6540);function l(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t=0||(l[n]=e[n]);return l}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(l[n]=e[n])}return l}var p=a.createContext({}),g=function(e){var t=a.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},y=function(e){var t=g(e.components);return a.createElement(p.Provider,{value:t},e.children)},u="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},s=a.forwardRef((function(e,t){var n=e.components,l=e.mdxType,r=e.originalType,p=e.parentName,y=o(e,["components","mdxType","originalType","parentName"]),u=g(n),s=l,d=u["".concat(p,".").concat(s)]||u[s]||c[s]||r;return n?a.createElement(d,i(i({ref:t},y),{},{components:n})):a.createElement(d,i({ref:t},y))}));function d(e,t){var n=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var r=n.length,i=new Array(r);i[0]=s;var o={};for(var p in t)hasOwnProperty.call(t,p)&&(o[p]=t[p]);o.originalType=e,o[u]="string"==typeof e?e:l,i[1]=o;for(var g=2;g{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>c,frontMatter:()=>r,metadata:()=>o,toc:()=>g});var a=n(8168),l=(n(6540),n(5680));const r={},i=void 0,o={unversionedId:"study/think/\u9650\u6d41",id:"study/think/\u9650\u6d41",title:"\u9650\u6d41",description:"\u524d\u8a00",source:"@site/docs/study/think/\u9650\u6d41.md",sourceDirName:"study/think",slug:"/study/think/\u9650\u6d41",permalink:"/docs/study/think/\u9650\u6d41",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u8c08\u5de5\u4f5c\u5fc3\u5f97",permalink:"/docs/study/think/\u8c08\u5de5\u4f5c\u5fc3\u5f97"},next:{title:"\u9886\u57df\u9a71\u52a8\u8bbe\u8ba1DDD",permalink:"/docs/study/think/\u9886\u57df\u9a71\u52a8\u8bbe\u8ba1DDD"}},p={},g=[{value:"\u524d\u8a00",id:"\u524d\u8a00",level:3},{value:"\u5e38\u89c1\u7684\u9650\u6d41\u7b97\u6cd5",id:"\u5e38\u89c1\u7684\u9650\u6d41\u7b97\u6cd5",level:3},{value:"\u56fa\u5b9a\u7a97\u53e3\u8ba1\u6570\u5668",id:"\u56fa\u5b9a\u7a97\u53e3\u8ba1\u6570\u5668",level:4},{value:"\u6ed1\u52a8\u7a97\u53e3\u8ba1\u6570\u5668",id:"\u6ed1\u52a8\u7a97\u53e3\u8ba1\u6570\u5668",level:4},{value:"\u6f0f\u6876\u7b97\u6cd5",id:"\u6f0f\u6876\u7b97\u6cd5",level:4},{value:"\u4ee4\u724c\u6876\u7b97\u6cd5",id:"\u4ee4\u724c\u6876\u7b97\u6cd5",level:4},{value:"\u5355\u4f53\u5e94\u7528\u5b9e\u73b0",id:"\u5355\u4f53\u5e94\u7528\u5b9e\u73b0",level:3},{value:"\u5206\u5e03\u5f0f\u9650\u6d41",id:"\u5206\u5e03\u5f0f\u9650\u6d41",level:3}],y={toc:g},u="wrapper";function c(e){let{components:t,...r}=e;return(0,l.yg)(u,(0,a.A)({},y,r,{components:t,mdxType:"MDXLayout"}),(0,l.yg)("h3",{id:"\u524d\u8a00"},"\u524d\u8a00"),(0,l.yg)("p",null,"\u5728\u5f00\u53d1\u9ad8\u5e76\u53d1\u7cfb\u7edf\u65f6\u6709\u4e09\u628a\u5229\u5668\u7528\u6765\u4fdd\u62a4\u7cfb\u7edf\uff1a\u7f13\u5b58\u3001\u964d\u7ea7\u548c\u9650\u6d41"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("inlineCode",{parentName:"li"},"\u7f13\u5b58"),"\u7f13\u5b58\u7684\u76ee\u7684\u662f\u63d0\u5347\u7cfb\u7edf\u8bbf\u95ee\u901f\u5ea6\u548c\u589e\u5927\u7cfb\u7edf\u5904\u7406\u5bb9\u91cf"),(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("inlineCode",{parentName:"li"},"\u964d\u7ea7"),"\u964d\u7ea7\u662f\u5f53\u670d\u52a1\u51fa\u73b0\u95ee\u9898\u6216\u8005\u5f71\u54cd\u5230\u6838\u5fc3\u6d41\u7a0b\u65f6\uff0c\u9700\u8981\u6682\u65f6\u5c4f\u853d\u6389\uff0c\u5f85\u9ad8\u5cf0\u6216\u8005\u95ee\u9898\u89e3\u51b3\u540e\u518d\u6253\u5f00"),(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("inlineCode",{parentName:"li"},"\u9650\u6d41"),"\u9650\u6d41\u7684\u76ee\u7684\u662f\u901a\u8fc7\u5bf9\u5e76\u53d1\u8bbf\u95ee/\u8bf7\u6c42\u8fdb\u884c\u9650\u901f\uff0c\u6216\u8005\u5bf9\u4e00\u4e2a\u65f6\u95f4\u7a97\u53e3\u5185\u7684\u8bf7\u6c42\u8fdb\u884c\u9650\u901f\u6765\u4fdd\u62a4\u7cfb\u7edf\uff0c\u4e00\u65e6\u8fbe\u5230\u9650\u5236\u901f\u7387\u5219\u53ef\u4ee5\u62d2\u7edd\u670d\u52a1\u3001\u6392\u961f\u6216\u7b49\u5f85\u3001\u964d\u7ea7\u7b49\u5904\u7406")),(0,l.yg)("h3",{id:"\u5e38\u89c1\u7684\u9650\u6d41\u7b97\u6cd5"},"\u5e38\u89c1\u7684\u9650\u6d41\u7b97\u6cd5"),(0,l.yg)("h4",{id:"\u56fa\u5b9a\u7a97\u53e3\u8ba1\u6570\u5668"},"\u56fa\u5b9a\u7a97\u53e3\u8ba1\u6570\u5668"),(0,l.yg)("p",null,(0,l.yg)("img",{alt:"image.png",src:n(8635).A,width:"659",height:"342"})),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"\u56fa\u5b9a\u7a97\u53e3\u8ba1\u6570\u5668\u7b97\u6cd5\u7684\u6982\u5ff5\u5982\u4e0b",(0,l.yg)("ol",{parentName:"li"},(0,l.yg)("li",{parentName:"ol"},"\u5c06\u65f6\u95f4\u5212\u5206\u4e3a\u591a\u4e2a\u7a97\u53e3"),(0,l.yg)("li",{parentName:"ol"},"\u5728\u6bcf\u4e2a\u7a97\u53e3\u5185\u6bcf\u6709\u4e00\u6b21\u8bf7\u6c42\u5c31\u5c06\u8ba1\u6570\u5668\u52a0\u4e00"),(0,l.yg)("li",{parentName:"ol"},"\u5982\u679c\u8ba1\u6570\u5668\u8d85\u8fc7\u4e86\u9650\u5236\u6570\u91cf\uff0c\u5219\u672c\u7a97\u53e3\u5185\u65b0\u6765\u7684\u5176\u4ed6\u8bf7\u6c42\u90fd\u88ab\u4e22\u5f03\u3002\u5f53\u65f6\u95f4\u5230\u8fbe\u4e0b\u4e00\u4e2a\u7a97\u53e3\u65f6\uff0c\u8ba1\u6570\u5668\u91cd\u7f6e\u3002"))),(0,l.yg)("li",{parentName:"ul"},"\u56fa\u5b9a\u7a97\u53e3\u8ba1\u6570\u5668\u662f\u6700\u4e3a\u7b80\u5355\u7684\u7b97\u6cd5\uff0c\u4f46\u8fd9\u4e2a\u7b97\u6cd5\u6709\u65f6\u4f1a\u8ba9\u901a\u8fc7\u8bf7\u6c42\u91cf\u5141\u8bb8\u4e3a\u9650\u5236\u7684\u4e24\u500d\u3002\u8003\u8651\u5982\u4e0b\u60c5\u51b5\uff1a\u9650\u5236 1 \u79d2\u5185\u6700\u591a\u901a\u8fc7 5 \u4e2a\u8bf7\u6c42\uff0c\u5728\u7b2c\u4e00\u4e2a\u7a97\u53e3\u7684\u6700\u540e\u534a\u79d2\u5185\u901a\u8fc7\u4e86 5 \u4e2a\u8bf7\u6c42\uff0c\u7b2c\u4e8c\u4e2a\u7a97\u53e3\u7684\u524d\u534a\u79d2\u5185\u53c8\u901a\u8fc7\u4e86 5 \u4e2a\u8bf7\u6c42\u3002\u8fd9\u6837\u770b\u6765\u5c31\u662f\u5728 1 \u79d2\u5185\u901a\u8fc7\u4e86 10 \u4e2a\u8bf7\u6c42\u3002")),(0,l.yg)("p",null,(0,l.yg)("img",{alt:"image.png",src:n(8784).A,width:"732",height:"315"})),(0,l.yg)("h4",{id:"\u6ed1\u52a8\u7a97\u53e3\u8ba1\u6570\u5668"},"\u6ed1\u52a8\u7a97\u53e3\u8ba1\u6570\u5668"),(0,l.yg)("p",null,(0,l.yg)("img",{alt:"image.png",src:n(8070).A,width:"653",height:"295"})),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"\u6ed1\u52a8\u7a97\u53e3\u8ba1\u6570\u5668\u7b97\u6cd5\u6982\u5ff5\u5982\u4e0b\uff1a",(0,l.yg)("ol",{parentName:"li"},(0,l.yg)("li",{parentName:"ol"},"\u5c06\u65f6\u95f4\u5212\u5206\u4e3a\u591a\u4e2a\u533a\u95f4\uff1b"),(0,l.yg)("li",{parentName:"ol"},"\u5728\u6bcf\u4e2a\u533a\u95f4\u5185\u6bcf\u6709\u4e00\u6b21\u8bf7\u6c42\u5c31\u5c06\u8ba1\u6570\u5668\u52a0\u4e00\u7ef4\u6301\u4e00\u4e2a\u65f6\u95f4\u7a97\u53e3\uff0c\u5360\u636e\u591a\u4e2a\u533a\u95f4\uff1b"),(0,l.yg)("li",{parentName:"ol"},"\u6bcf\u7ecf\u8fc7\u4e00\u4e2a\u533a\u95f4\u7684\u65f6\u95f4\uff0c\u5219\u629b\u5f03\u6700\u8001\u7684\u4e00\u4e2a\u533a\u95f4\uff0c\u5e76\u7eb3\u5165\u6700\u65b0\u7684\u4e00\u4e2a\u533a\u95f4\uff1b"),(0,l.yg)("li",{parentName:"ol"},"\u5982\u679c\u5f53\u524d\u7a97\u53e3\u5185\u533a\u95f4\u7684\u8bf7\u6c42\u8ba1\u6570\u603b\u548c\u8d85\u8fc7\u4e86\u9650\u5236\u6570\u91cf\uff0c\u5219\u672c\u7a97\u53e3\u5185\u65b0\u6765\u7684\u5176\u4ed6\u8bf7\u6c42\u90fd\u88ab\u4e22\u5f03\u3002"))),(0,l.yg)("li",{parentName:"ul"},'\u6ed1\u52a8\u7a97\u53e3\u8ba1\u6570\u5668\u662f\u901a\u8fc7\u5c06\u7a97\u53e3\u518d\u7ec6\u5206\uff0c\u5e76\u4e14\u6309\u7167\u65f6\u95f4 " \u6ed1\u52a8 "\uff0c\u8fd9\u79cd\u7b97\u6cd5\u907f\u514d\u4e86\u56fa\u5b9a\u7a97\u53e3\u8ba1\u6570\u5668\u5e26\u6765\u7684\u53cc\u500d\u7a81\u53d1\u8bf7\u6c42\uff0c\u4f46\u65f6\u95f4\u533a\u95f4\u7684\u7cbe\u5ea6\u8d8a\u9ad8\uff0c\u7b97\u6cd5\u6240\u9700\u7684\u7a7a\u95f4\u5bb9\u91cf\u5c31\u8d8a\u5927\u3002')),(0,l.yg)("h4",{id:"\u6f0f\u6876\u7b97\u6cd5"},"\u6f0f\u6876\u7b97\u6cd5"),(0,l.yg)("p",null,(0,l.yg)("img",{alt:"image.png",src:n(2614).A,width:"506",height:"406"})),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"\u6f0f\u6876\u7b97\u6cd5\u6982\u5ff5\u5982\u4e0b\uff1a",(0,l.yg)("ol",{parentName:"li"},(0,l.yg)("li",{parentName:"ol"},'\u5c06\u6bcf\u4e2a\u8bf7\u6c42\u89c6\u4f5c " \u6c34\u6ef4 " \u653e\u5165 " \u6f0f\u6876 " \u8fdb\u884c\u5b58\u50a8\uff1b'),(0,l.yg)("li",{parentName:"ol"},'\u201c\u6f0f\u6876 " \u4ee5\u56fa\u5b9a\u901f\u7387\u5411\u5916 " \u6f0f " \u51fa\u8bf7\u6c42\u6765\u6267\u884c\u5982\u679c " \u6f0f\u6876 " \u7a7a\u4e86\u5219\u505c\u6b62 " \u6f0f\u6c34\u201d\uff1b'),(0,l.yg)("li",{parentName:"ol"},'\u5982\u679c " \u6f0f\u6876 " \u6ee1\u4e86\u5219\u591a\u4f59\u7684 " \u6c34\u6ef4 " \u4f1a\u88ab\u76f4\u63a5\u4e22\u5f03\u3002'))),(0,l.yg)("li",{parentName:"ul"},"\u6f0f\u6876\u7b97\u6cd5\u591a\u4f7f\u7528\u961f\u5217\u5b9e\u73b0\uff0c\u670d\u52a1\u7684\u8bf7\u6c42\u4f1a\u5b58\u5230\u961f\u5217\u4e2d\uff0c\u670d\u52a1\u7684\u63d0\u4f9b\u65b9\u5219\u6309\u7167\u56fa\u5b9a\u7684\u901f\u7387\u4ece\u961f\u5217\u4e2d\u53d6\u51fa\u8bf7\u6c42\u5e76\u6267\u884c\uff0c\u8fc7\u591a\u7684\u8bf7\u6c42\u5219\u653e\u5728\u961f\u5217\u4e2d\u6392\u961f\u6216\u76f4\u63a5\u62d2\u7edd\u3002"),(0,l.yg)("li",{parentName:"ul"},"\u6f0f\u6876\u7b97\u6cd5\u7684\u7f3a\u9677\u4e5f\u5f88\u660e\u663e\uff0c\u5f53\u77ed\u65f6\u95f4\u5185\u6709\u5927\u91cf\u7684\u7a81\u53d1\u8bf7\u6c42\u65f6\uff0c\u5373\u4fbf\u6b64\u65f6\u670d\u52a1\u5668\u6ca1\u6709\u4efb\u4f55\u8d1f\u8f7d\uff0c\u6bcf\u4e2a\u8bf7\u6c42\u4e5f\u90fd\u5f97\u5728\u961f\u5217\u4e2d\u7b49\u5f85\u4e00\u6bb5\u65f6\u95f4\u624d\u80fd\u88ab\u54cd\u5e94\u3002")),(0,l.yg)("h4",{id:"\u4ee4\u724c\u6876\u7b97\u6cd5"},"\u4ee4\u724c\u6876\u7b97\u6cd5"),(0,l.yg)("p",null,(0,l.yg)("img",{alt:"image.png",src:n(1631).A,width:"704",height:"526"})),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"\u4ee4\u724c\u6876\u7b97\u6cd5\u6982\u5ff5\u5982\u4e0b\uff1a",(0,l.yg)("ol",{parentName:"li"},(0,l.yg)("li",{parentName:"ol"},"\u4ee4\u724c\u4ee5\u56fa\u5b9a\u901f\u7387\u751f\u6210\u3002"),(0,l.yg)("li",{parentName:"ol"},"\u751f\u6210\u7684\u4ee4\u724c\u653e\u5165\u4ee4\u724c\u6876\u4e2d\u5b58\u653e\uff0c\u5982\u679c\u4ee4\u724c\u6876\u6ee1\u4e86\u5219\u591a\u4f59\u7684\u4ee4\u724c\u4f1a\u76f4\u63a5\u4e22\u5f03\uff0c\u5f53\u8bf7\u6c42\u5230\u8fbe\u65f6\uff0c\u4f1a\u5c1d\u8bd5\u4ece\u4ee4\u724c\u6876\u4e2d\u53d6\u4ee4\u724c\uff0c\u53d6\u5230\u4e86\u4ee4\u724c\u7684\u8bf7\u6c42\u53ef\u4ee5\u6267\u884c\u3002"),(0,l.yg)("li",{parentName:"ol"},"\u5982\u679c\u6876\u7a7a\u4e86\uff0c\u90a3\u4e48\u5c1d\u8bd5\u53d6\u4ee4\u724c\u7684\u8bf7\u6c42\u4f1a\u88ab\u76f4\u63a5\u4e22\u5f03\u3002"))),(0,l.yg)("li",{parentName:"ul"},"\u4ee4\u724c\u6876\u7b97\u6cd5\u65e2\u80fd\u591f\u5c06\u6240\u6709\u7684\u8bf7\u6c42\u5e73\u5747\u5206\u5e03\u5230\u65f6\u95f4\u533a\u95f4\u5185\uff0c\u53c8\u80fd\u63a5\u53d7\u670d\u52a1\u5668\u80fd\u591f\u627f\u53d7\u8303\u56f4\u5185\u7684\u7a81\u53d1\u8bf7\u6c42\uff0c\u56e0\u6b64\u662f\u76ee\u524d\u4f7f\u7528\u8f83\u4e3a\u5e7f\u6cdb\u7684\u4e00\u79cd\u9650\u6d41\u7b97\u6cd5\u3002")),(0,l.yg)("h3",{id:"\u5355\u4f53\u5e94\u7528\u5b9e\u73b0"},"\u5355\u4f53\u5e94\u7528\u5b9e\u73b0"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"\u5728\u4f20\u7edf\u7684\u5355\u4f53\u5e94\u7528\u4e2d\u9650\u6d41\u53ea\u9700\u8981\u8003\u8651\u5230\u591a\u7ebf\u7a0b\u5373\u53ef\uff0c\u4f7f\u7528Google\u5f00\u6e90\u5de5\u5177\u7c7bguava\u5373\u53ef\u3002\u5176\u4e2d\u6709\u4e00\u4e2aRateLimiter\u4e13\u95e8\u5b9e\u73b0\u4e86\u5355\u4f53\u5e94\u7528\u7684\u9650\u6d41\uff0c\u4f7f\u7528\u7684\u662f\u4ee4\u724c\u6876\u7b97\u6cd5\u3002"),(0,l.yg)("li",{parentName:"ul"},"\u5355\u4f53\u5e94\u7528\u7684\u9650\u6d41\u4e0d\u662f\u672c\u6587\u7684\u91cd\u70b9\uff0c\u5b98\u7f51\u4e0a\u73b0\u6210\u7684API\uff0c\u8bfb\u8005\u81ea\u5df1\u53bb\u770b\u770b\u5373\u53ef\uff0c\u8fd9\u91cc\u4e0d\u518d\u8be6\u7ec6\u89e3\u91ca\u3002")),(0,l.yg)("h3",{id:"\u5206\u5e03\u5f0f\u9650\u6d41"},"\u5206\u5e03\u5f0f\u9650\u6d41"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"\u5206\u5e03\u5f0f\u9650\u6d41\u548c\u7194\u65ad\u73b0\u5728\u6709\u5f88\u591a\u7684\u73b0\u6210\u7684\u5de5\u5177\uff0c\u6bd4\u5982Hystrix\uff0cSentinel \u7b49\uff0c\u4f46\u662f\u8fd8\u662f\u6709\u4e9b\u4f01\u4e1a\u4e0d\u5f15\u7528\u5916\u6765\u7c7b\u5e93\uff0c\u56e0\u6b64\u5c31\u9700\u8981\u81ea\u5df1\u5b9e\u73b0\u3002"),(0,l.yg)("li",{parentName:"ul"},"Redis\u4f5c\u4e3a\u5355\u7ebf\u7a0b\u591a\u8def\u590d\u7528\u7684\u7279\u6027\uff0c\u5f88\u663e\u7136\u80fd\u591f\u80dc\u4efb\u8fd9\u9879\u4efb\u52a1\u3002")))}c.isMDXComponent=!0},8635:(e,t,n)=>{n.d(t,{A:()=>a});const a=n.p+"assets/images/x1-3edeedaffe0322bfb5a25168288d91d6.png"},8784:(e,t,n)=>{n.d(t,{A:()=>a});const a=n.p+"assets/images/x2-6bc9382d5a047236dc1cf3608f948729.png"},8070:(e,t,n)=>{n.d(t,{A:()=>a});const a=n.p+"assets/images/x3-74be0be0d3cfd84aff0638a937cd7387.png"},2614:(e,t,n)=>{n.d(t,{A:()=>a});const a=n.p+"assets/images/x4-91ab48a56e8274e31fbb1a851e6cb685.png"},1631:(e,t,n)=>{n.d(t,{A:()=>a});const a=n.p+"assets/images/x5-fa6893daf432a93118fac29e278dc4f0.png"}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7134],{5680:(e,t,n)=>{n.d(t,{xA:()=>y,yg:()=>d});var a=n(6540);function l(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t=0||(l[n]=e[n]);return l}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(l[n]=e[n])}return l}var p=a.createContext({}),g=function(e){var t=a.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},y=function(e){var t=g(e.components);return a.createElement(p.Provider,{value:t},e.children)},u="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},s=a.forwardRef((function(e,t){var n=e.components,l=e.mdxType,r=e.originalType,p=e.parentName,y=o(e,["components","mdxType","originalType","parentName"]),u=g(n),s=l,d=u["".concat(p,".").concat(s)]||u[s]||c[s]||r;return n?a.createElement(d,i(i({ref:t},y),{},{components:n})):a.createElement(d,i({ref:t},y))}));function d(e,t){var n=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var r=n.length,i=new Array(r);i[0]=s;var o={};for(var p in t)hasOwnProperty.call(t,p)&&(o[p]=t[p]);o.originalType=e,o[u]="string"==typeof e?e:l,i[1]=o;for(var g=2;g{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>c,frontMatter:()=>r,metadata:()=>o,toc:()=>g});var a=n(8168),l=(n(6540),n(5680));const r={},i=void 0,o={unversionedId:"study/think/\u9650\u6d41",id:"study/think/\u9650\u6d41",title:"\u9650\u6d41",description:"\u524d\u8a00",source:"@site/docs/study/think/\u9650\u6d41.md",sourceDirName:"study/think",slug:"/study/think/\u9650\u6d41",permalink:"/docs/study/think/\u9650\u6d41",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u8c08\u5de5\u4f5c\u5fc3\u5f97",permalink:"/docs/study/think/\u8c08\u5de5\u4f5c\u5fc3\u5f97"},next:{title:"\u9886\u57df\u9a71\u52a8\u8bbe\u8ba1DDD",permalink:"/docs/study/think/\u9886\u57df\u9a71\u52a8\u8bbe\u8ba1DDD"}},p={},g=[{value:"\u524d\u8a00",id:"\u524d\u8a00",level:3},{value:"\u5e38\u89c1\u7684\u9650\u6d41\u7b97\u6cd5",id:"\u5e38\u89c1\u7684\u9650\u6d41\u7b97\u6cd5",level:3},{value:"\u56fa\u5b9a\u7a97\u53e3\u8ba1\u6570\u5668",id:"\u56fa\u5b9a\u7a97\u53e3\u8ba1\u6570\u5668",level:4},{value:"\u6ed1\u52a8\u7a97\u53e3\u8ba1\u6570\u5668",id:"\u6ed1\u52a8\u7a97\u53e3\u8ba1\u6570\u5668",level:4},{value:"\u6f0f\u6876\u7b97\u6cd5",id:"\u6f0f\u6876\u7b97\u6cd5",level:4},{value:"\u4ee4\u724c\u6876\u7b97\u6cd5",id:"\u4ee4\u724c\u6876\u7b97\u6cd5",level:4},{value:"\u5355\u4f53\u5e94\u7528\u5b9e\u73b0",id:"\u5355\u4f53\u5e94\u7528\u5b9e\u73b0",level:3},{value:"\u5206\u5e03\u5f0f\u9650\u6d41",id:"\u5206\u5e03\u5f0f\u9650\u6d41",level:3}],y={toc:g},u="wrapper";function c(e){let{components:t,...r}=e;return(0,l.yg)(u,(0,a.A)({},y,r,{components:t,mdxType:"MDXLayout"}),(0,l.yg)("h3",{id:"\u524d\u8a00"},"\u524d\u8a00"),(0,l.yg)("p",null,"\u5728\u5f00\u53d1\u9ad8\u5e76\u53d1\u7cfb\u7edf\u65f6\u6709\u4e09\u628a\u5229\u5668\u7528\u6765\u4fdd\u62a4\u7cfb\u7edf\uff1a\u7f13\u5b58\u3001\u964d\u7ea7\u548c\u9650\u6d41"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("inlineCode",{parentName:"li"},"\u7f13\u5b58"),"\u7f13\u5b58\u7684\u76ee\u7684\u662f\u63d0\u5347\u7cfb\u7edf\u8bbf\u95ee\u901f\u5ea6\u548c\u589e\u5927\u7cfb\u7edf\u5904\u7406\u5bb9\u91cf"),(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("inlineCode",{parentName:"li"},"\u964d\u7ea7"),"\u964d\u7ea7\u662f\u5f53\u670d\u52a1\u51fa\u73b0\u95ee\u9898\u6216\u8005\u5f71\u54cd\u5230\u6838\u5fc3\u6d41\u7a0b\u65f6\uff0c\u9700\u8981\u6682\u65f6\u5c4f\u853d\u6389\uff0c\u5f85\u9ad8\u5cf0\u6216\u8005\u95ee\u9898\u89e3\u51b3\u540e\u518d\u6253\u5f00"),(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("inlineCode",{parentName:"li"},"\u9650\u6d41"),"\u9650\u6d41\u7684\u76ee\u7684\u662f\u901a\u8fc7\u5bf9\u5e76\u53d1\u8bbf\u95ee/\u8bf7\u6c42\u8fdb\u884c\u9650\u901f\uff0c\u6216\u8005\u5bf9\u4e00\u4e2a\u65f6\u95f4\u7a97\u53e3\u5185\u7684\u8bf7\u6c42\u8fdb\u884c\u9650\u901f\u6765\u4fdd\u62a4\u7cfb\u7edf\uff0c\u4e00\u65e6\u8fbe\u5230\u9650\u5236\u901f\u7387\u5219\u53ef\u4ee5\u62d2\u7edd\u670d\u52a1\u3001\u6392\u961f\u6216\u7b49\u5f85\u3001\u964d\u7ea7\u7b49\u5904\u7406")),(0,l.yg)("h3",{id:"\u5e38\u89c1\u7684\u9650\u6d41\u7b97\u6cd5"},"\u5e38\u89c1\u7684\u9650\u6d41\u7b97\u6cd5"),(0,l.yg)("h4",{id:"\u56fa\u5b9a\u7a97\u53e3\u8ba1\u6570\u5668"},"\u56fa\u5b9a\u7a97\u53e3\u8ba1\u6570\u5668"),(0,l.yg)("p",null,(0,l.yg)("img",{alt:"image.png",src:n(8635).A,width:"659",height:"342"})),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"\u56fa\u5b9a\u7a97\u53e3\u8ba1\u6570\u5668\u7b97\u6cd5\u7684\u6982\u5ff5\u5982\u4e0b",(0,l.yg)("ol",{parentName:"li"},(0,l.yg)("li",{parentName:"ol"},"\u5c06\u65f6\u95f4\u5212\u5206\u4e3a\u591a\u4e2a\u7a97\u53e3"),(0,l.yg)("li",{parentName:"ol"},"\u5728\u6bcf\u4e2a\u7a97\u53e3\u5185\u6bcf\u6709\u4e00\u6b21\u8bf7\u6c42\u5c31\u5c06\u8ba1\u6570\u5668\u52a0\u4e00"),(0,l.yg)("li",{parentName:"ol"},"\u5982\u679c\u8ba1\u6570\u5668\u8d85\u8fc7\u4e86\u9650\u5236\u6570\u91cf\uff0c\u5219\u672c\u7a97\u53e3\u5185\u65b0\u6765\u7684\u5176\u4ed6\u8bf7\u6c42\u90fd\u88ab\u4e22\u5f03\u3002\u5f53\u65f6\u95f4\u5230\u8fbe\u4e0b\u4e00\u4e2a\u7a97\u53e3\u65f6\uff0c\u8ba1\u6570\u5668\u91cd\u7f6e\u3002"))),(0,l.yg)("li",{parentName:"ul"},"\u56fa\u5b9a\u7a97\u53e3\u8ba1\u6570\u5668\u662f\u6700\u4e3a\u7b80\u5355\u7684\u7b97\u6cd5\uff0c\u4f46\u8fd9\u4e2a\u7b97\u6cd5\u6709\u65f6\u4f1a\u8ba9\u901a\u8fc7\u8bf7\u6c42\u91cf\u5141\u8bb8\u4e3a\u9650\u5236\u7684\u4e24\u500d\u3002\u8003\u8651\u5982\u4e0b\u60c5\u51b5\uff1a\u9650\u5236 1 \u79d2\u5185\u6700\u591a\u901a\u8fc7 5 \u4e2a\u8bf7\u6c42\uff0c\u5728\u7b2c\u4e00\u4e2a\u7a97\u53e3\u7684\u6700\u540e\u534a\u79d2\u5185\u901a\u8fc7\u4e86 5 \u4e2a\u8bf7\u6c42\uff0c\u7b2c\u4e8c\u4e2a\u7a97\u53e3\u7684\u524d\u534a\u79d2\u5185\u53c8\u901a\u8fc7\u4e86 5 \u4e2a\u8bf7\u6c42\u3002\u8fd9\u6837\u770b\u6765\u5c31\u662f\u5728 1 \u79d2\u5185\u901a\u8fc7\u4e86 10 \u4e2a\u8bf7\u6c42\u3002")),(0,l.yg)("p",null,(0,l.yg)("img",{alt:"image.png",src:n(8784).A,width:"732",height:"315"})),(0,l.yg)("h4",{id:"\u6ed1\u52a8\u7a97\u53e3\u8ba1\u6570\u5668"},"\u6ed1\u52a8\u7a97\u53e3\u8ba1\u6570\u5668"),(0,l.yg)("p",null,(0,l.yg)("img",{alt:"image.png",src:n(8070).A,width:"653",height:"295"})),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"\u6ed1\u52a8\u7a97\u53e3\u8ba1\u6570\u5668\u7b97\u6cd5\u6982\u5ff5\u5982\u4e0b\uff1a",(0,l.yg)("ol",{parentName:"li"},(0,l.yg)("li",{parentName:"ol"},"\u5c06\u65f6\u95f4\u5212\u5206\u4e3a\u591a\u4e2a\u533a\u95f4\uff1b"),(0,l.yg)("li",{parentName:"ol"},"\u5728\u6bcf\u4e2a\u533a\u95f4\u5185\u6bcf\u6709\u4e00\u6b21\u8bf7\u6c42\u5c31\u5c06\u8ba1\u6570\u5668\u52a0\u4e00\u7ef4\u6301\u4e00\u4e2a\u65f6\u95f4\u7a97\u53e3\uff0c\u5360\u636e\u591a\u4e2a\u533a\u95f4\uff1b"),(0,l.yg)("li",{parentName:"ol"},"\u6bcf\u7ecf\u8fc7\u4e00\u4e2a\u533a\u95f4\u7684\u65f6\u95f4\uff0c\u5219\u629b\u5f03\u6700\u8001\u7684\u4e00\u4e2a\u533a\u95f4\uff0c\u5e76\u7eb3\u5165\u6700\u65b0\u7684\u4e00\u4e2a\u533a\u95f4\uff1b"),(0,l.yg)("li",{parentName:"ol"},"\u5982\u679c\u5f53\u524d\u7a97\u53e3\u5185\u533a\u95f4\u7684\u8bf7\u6c42\u8ba1\u6570\u603b\u548c\u8d85\u8fc7\u4e86\u9650\u5236\u6570\u91cf\uff0c\u5219\u672c\u7a97\u53e3\u5185\u65b0\u6765\u7684\u5176\u4ed6\u8bf7\u6c42\u90fd\u88ab\u4e22\u5f03\u3002"))),(0,l.yg)("li",{parentName:"ul"},'\u6ed1\u52a8\u7a97\u53e3\u8ba1\u6570\u5668\u662f\u901a\u8fc7\u5c06\u7a97\u53e3\u518d\u7ec6\u5206\uff0c\u5e76\u4e14\u6309\u7167\u65f6\u95f4 " \u6ed1\u52a8 "\uff0c\u8fd9\u79cd\u7b97\u6cd5\u907f\u514d\u4e86\u56fa\u5b9a\u7a97\u53e3\u8ba1\u6570\u5668\u5e26\u6765\u7684\u53cc\u500d\u7a81\u53d1\u8bf7\u6c42\uff0c\u4f46\u65f6\u95f4\u533a\u95f4\u7684\u7cbe\u5ea6\u8d8a\u9ad8\uff0c\u7b97\u6cd5\u6240\u9700\u7684\u7a7a\u95f4\u5bb9\u91cf\u5c31\u8d8a\u5927\u3002')),(0,l.yg)("h4",{id:"\u6f0f\u6876\u7b97\u6cd5"},"\u6f0f\u6876\u7b97\u6cd5"),(0,l.yg)("p",null,(0,l.yg)("img",{alt:"image.png",src:n(2614).A,width:"506",height:"406"})),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"\u6f0f\u6876\u7b97\u6cd5\u6982\u5ff5\u5982\u4e0b\uff1a",(0,l.yg)("ol",{parentName:"li"},(0,l.yg)("li",{parentName:"ol"},'\u5c06\u6bcf\u4e2a\u8bf7\u6c42\u89c6\u4f5c " \u6c34\u6ef4 " \u653e\u5165 " \u6f0f\u6876 " \u8fdb\u884c\u5b58\u50a8\uff1b'),(0,l.yg)("li",{parentName:"ol"},'\u201c\u6f0f\u6876 " \u4ee5\u56fa\u5b9a\u901f\u7387\u5411\u5916 " \u6f0f " \u51fa\u8bf7\u6c42\u6765\u6267\u884c\u5982\u679c " \u6f0f\u6876 " \u7a7a\u4e86\u5219\u505c\u6b62 " \u6f0f\u6c34\u201d\uff1b'),(0,l.yg)("li",{parentName:"ol"},'\u5982\u679c " \u6f0f\u6876 " \u6ee1\u4e86\u5219\u591a\u4f59\u7684 " \u6c34\u6ef4 " \u4f1a\u88ab\u76f4\u63a5\u4e22\u5f03\u3002'))),(0,l.yg)("li",{parentName:"ul"},"\u6f0f\u6876\u7b97\u6cd5\u591a\u4f7f\u7528\u961f\u5217\u5b9e\u73b0\uff0c\u670d\u52a1\u7684\u8bf7\u6c42\u4f1a\u5b58\u5230\u961f\u5217\u4e2d\uff0c\u670d\u52a1\u7684\u63d0\u4f9b\u65b9\u5219\u6309\u7167\u56fa\u5b9a\u7684\u901f\u7387\u4ece\u961f\u5217\u4e2d\u53d6\u51fa\u8bf7\u6c42\u5e76\u6267\u884c\uff0c\u8fc7\u591a\u7684\u8bf7\u6c42\u5219\u653e\u5728\u961f\u5217\u4e2d\u6392\u961f\u6216\u76f4\u63a5\u62d2\u7edd\u3002"),(0,l.yg)("li",{parentName:"ul"},"\u6f0f\u6876\u7b97\u6cd5\u7684\u7f3a\u9677\u4e5f\u5f88\u660e\u663e\uff0c\u5f53\u77ed\u65f6\u95f4\u5185\u6709\u5927\u91cf\u7684\u7a81\u53d1\u8bf7\u6c42\u65f6\uff0c\u5373\u4fbf\u6b64\u65f6\u670d\u52a1\u5668\u6ca1\u6709\u4efb\u4f55\u8d1f\u8f7d\uff0c\u6bcf\u4e2a\u8bf7\u6c42\u4e5f\u90fd\u5f97\u5728\u961f\u5217\u4e2d\u7b49\u5f85\u4e00\u6bb5\u65f6\u95f4\u624d\u80fd\u88ab\u54cd\u5e94\u3002")),(0,l.yg)("h4",{id:"\u4ee4\u724c\u6876\u7b97\u6cd5"},"\u4ee4\u724c\u6876\u7b97\u6cd5"),(0,l.yg)("p",null,(0,l.yg)("img",{alt:"image.png",src:n(1631).A,width:"704",height:"526"})),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"\u4ee4\u724c\u6876\u7b97\u6cd5\u6982\u5ff5\u5982\u4e0b\uff1a",(0,l.yg)("ol",{parentName:"li"},(0,l.yg)("li",{parentName:"ol"},"\u4ee4\u724c\u4ee5\u56fa\u5b9a\u901f\u7387\u751f\u6210\u3002"),(0,l.yg)("li",{parentName:"ol"},"\u751f\u6210\u7684\u4ee4\u724c\u653e\u5165\u4ee4\u724c\u6876\u4e2d\u5b58\u653e\uff0c\u5982\u679c\u4ee4\u724c\u6876\u6ee1\u4e86\u5219\u591a\u4f59\u7684\u4ee4\u724c\u4f1a\u76f4\u63a5\u4e22\u5f03\uff0c\u5f53\u8bf7\u6c42\u5230\u8fbe\u65f6\uff0c\u4f1a\u5c1d\u8bd5\u4ece\u4ee4\u724c\u6876\u4e2d\u53d6\u4ee4\u724c\uff0c\u53d6\u5230\u4e86\u4ee4\u724c\u7684\u8bf7\u6c42\u53ef\u4ee5\u6267\u884c\u3002"),(0,l.yg)("li",{parentName:"ol"},"\u5982\u679c\u6876\u7a7a\u4e86\uff0c\u90a3\u4e48\u5c1d\u8bd5\u53d6\u4ee4\u724c\u7684\u8bf7\u6c42\u4f1a\u88ab\u76f4\u63a5\u4e22\u5f03\u3002"))),(0,l.yg)("li",{parentName:"ul"},"\u4ee4\u724c\u6876\u7b97\u6cd5\u65e2\u80fd\u591f\u5c06\u6240\u6709\u7684\u8bf7\u6c42\u5e73\u5747\u5206\u5e03\u5230\u65f6\u95f4\u533a\u95f4\u5185\uff0c\u53c8\u80fd\u63a5\u53d7\u670d\u52a1\u5668\u80fd\u591f\u627f\u53d7\u8303\u56f4\u5185\u7684\u7a81\u53d1\u8bf7\u6c42\uff0c\u56e0\u6b64\u662f\u76ee\u524d\u4f7f\u7528\u8f83\u4e3a\u5e7f\u6cdb\u7684\u4e00\u79cd\u9650\u6d41\u7b97\u6cd5\u3002")),(0,l.yg)("h3",{id:"\u5355\u4f53\u5e94\u7528\u5b9e\u73b0"},"\u5355\u4f53\u5e94\u7528\u5b9e\u73b0"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"\u5728\u4f20\u7edf\u7684\u5355\u4f53\u5e94\u7528\u4e2d\u9650\u6d41\u53ea\u9700\u8981\u8003\u8651\u5230\u591a\u7ebf\u7a0b\u5373\u53ef\uff0c\u4f7f\u7528Google\u5f00\u6e90\u5de5\u5177\u7c7bguava\u5373\u53ef\u3002\u5176\u4e2d\u6709\u4e00\u4e2aRateLimiter\u4e13\u95e8\u5b9e\u73b0\u4e86\u5355\u4f53\u5e94\u7528\u7684\u9650\u6d41\uff0c\u4f7f\u7528\u7684\u662f\u4ee4\u724c\u6876\u7b97\u6cd5\u3002"),(0,l.yg)("li",{parentName:"ul"},"\u5355\u4f53\u5e94\u7528\u7684\u9650\u6d41\u4e0d\u662f\u672c\u6587\u7684\u91cd\u70b9\uff0c\u5b98\u7f51\u4e0a\u73b0\u6210\u7684API\uff0c\u8bfb\u8005\u81ea\u5df1\u53bb\u770b\u770b\u5373\u53ef\uff0c\u8fd9\u91cc\u4e0d\u518d\u8be6\u7ec6\u89e3\u91ca\u3002")),(0,l.yg)("h3",{id:"\u5206\u5e03\u5f0f\u9650\u6d41"},"\u5206\u5e03\u5f0f\u9650\u6d41"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"\u5206\u5e03\u5f0f\u9650\u6d41\u548c\u7194\u65ad\u73b0\u5728\u6709\u5f88\u591a\u7684\u73b0\u6210\u7684\u5de5\u5177\uff0c\u6bd4\u5982Hystrix\uff0cSentinel \u7b49\uff0c\u4f46\u662f\u8fd8\u662f\u6709\u4e9b\u4f01\u4e1a\u4e0d\u5f15\u7528\u5916\u6765\u7c7b\u5e93\uff0c\u56e0\u6b64\u5c31\u9700\u8981\u81ea\u5df1\u5b9e\u73b0\u3002"),(0,l.yg)("li",{parentName:"ul"},"Redis\u4f5c\u4e3a\u5355\u7ebf\u7a0b\u591a\u8def\u590d\u7528\u7684\u7279\u6027\uff0c\u5f88\u663e\u7136\u80fd\u591f\u80dc\u4efb\u8fd9\u9879\u4efb\u52a1\u3002")))}c.isMDXComponent=!0},8635:(e,t,n)=>{n.d(t,{A:()=>a});const a=n.p+"assets/images/x1-3edeedaffe0322bfb5a25168288d91d6.png"},8784:(e,t,n)=>{n.d(t,{A:()=>a});const a=n.p+"assets/images/x2-6bc9382d5a047236dc1cf3608f948729.png"},8070:(e,t,n)=>{n.d(t,{A:()=>a});const a=n.p+"assets/images/x3-74be0be0d3cfd84aff0638a937cd7387.png"},2614:(e,t,n)=>{n.d(t,{A:()=>a});const a=n.p+"assets/images/x4-91ab48a56e8274e31fbb1a851e6cb685.png"},1631:(e,t,n)=>{n.d(t,{A:()=>a});const a=n.p+"assets/images/x5-fa6893daf432a93118fac29e278dc4f0.png"}}]); \ No newline at end of file diff --git a/assets/js/34be6e6a.81c6b3c7.js b/assets/js/34be6e6a.288028c2.js similarity index 99% rename from assets/js/34be6e6a.81c6b3c7.js rename to assets/js/34be6e6a.288028c2.js index 6d4e9d33e..e7208e003 100644 --- a/assets/js/34be6e6a.81c6b3c7.js +++ b/assets/js/34be6e6a.288028c2.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7005],{5680:(e,n,a)=>{a.d(n,{xA:()=>i,yg:()=>g});var t=a(6540);function r(e,n,a){return n in e?Object.defineProperty(e,n,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[n]=a,e}function o(e,n){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);n&&(t=t.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),a.push.apply(a,t)}return a}function l(e){for(var n=1;n=0||(r[a]=e[a]);return r}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var p=t.createContext({}),d=function(e){var n=t.useContext(p),a=n;return e&&(a="function"==typeof e?e(n):l(l({},n),e)),a},i=function(e){var n=d(e.components);return t.createElement(p.Provider,{value:n},e.children)},s="mdxType",u={inlineCode:"code",wrapper:function(e){var n=e.children;return t.createElement(t.Fragment,{},n)}},v=t.forwardRef((function(e,n){var a=e.components,r=e.mdxType,o=e.originalType,p=e.parentName,i=c(e,["components","mdxType","originalType","parentName"]),s=d(a),v=r,g=s["".concat(p,".").concat(v)]||s[v]||u[v]||o;return a?t.createElement(g,l(l({ref:n},i),{},{components:a})):t.createElement(g,l({ref:n},i))}));function g(e,n){var a=arguments,r=n&&n.mdxType;if("string"==typeof e||r){var o=a.length,l=new Array(o);l[0]=v;var c={};for(var p in n)hasOwnProperty.call(n,p)&&(c[p]=n[p]);c.originalType=e,c[s]="string"==typeof e?e:r,l[1]=c;for(var d=2;d{a.r(n),a.d(n,{assets:()=>p,contentTitle:()=>l,default:()=>u,frontMatter:()=>o,metadata:()=>c,toc:()=>d});var t=a(8168),r=(a(6540),a(5680));const o={},l="centos-jdk17-app",c={unversionedId:"study/devops/centos-jdk17-app",id:"study/devops/centos-jdk17-app",title:"centos-jdk17-app",description:"\u5b89\u88c5 jdk",source:"@site/docs/study/devops/centos-jdk17-app.md",sourceDirName:"study/devops",slug:"/study/devops/centos-jdk17-app",permalink:"/docs/study/devops/centos-jdk17-app",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"centos-nginx",permalink:"/docs/study/devops/centos-gninx-app"},next:{title:"jar\u8fd0\u7ef4-\u76d1\u63a7",permalink:"/docs/study/devops/jar\u8fd0\u7ef4-\u76d1\u63a7"}},p={},d=[{value:"\u5b89\u88c5 jdk",id:"\u5b89\u88c5-jdk",level:3},{value:"\u914d\u7f6e java",id:"\u914d\u7f6e-java",level:3},{value:"\u914d\u7f6e\u5e94\u7528\u6240\u9700\u7684\u73af\u5883\u53d8\u91cf",id:"\u914d\u7f6e\u5e94\u7528\u6240\u9700\u7684\u73af\u5883\u53d8\u91cf",level:3},{value:"\u521b\u5efa hivemq \u6587\u4ef6\u5939",id:"\u521b\u5efa-hivemq-\u6587\u4ef6\u5939",level:3},{value:"\u542f\u52a8\u5e94\u7528",id:"\u542f\u52a8\u5e94\u7528",level:3},{value:"\u542f\u52a8\u811a\u672c",id:"\u542f\u52a8\u811a\u672c",level:3},{value:"\u505c\u6b62\u811a\u672c",id:"\u505c\u6b62\u811a\u672c",level:3}],i={toc:d},s="wrapper";function u(e){let{components:n,...a}=e;return(0,r.yg)(s,(0,t.A)({},i,a,{components:n,mdxType:"MDXLayout"}),(0,r.yg)("h1",{id:"centos-jdk17-app"},"centos-jdk17-app"),(0,r.yg)("h3",{id:"\u5b89\u88c5-jdk"},"\u5b89\u88c5 jdk"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"#\u9700\u8981\u770bcpu\u67b6\u6784 x64\nuname -a\ncd ~\nmkdir iot-cloud-backend\ncd iot-cloud-backend\nwget https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.tar.gz\ntar -zxvf jdk-17_linux-x64_bin.tar.gz\n\n#\u9700\u8981\u770bcpu\u67b6\u6784 aarch64\nuname -a\ncd ~\nmkdir iot-cloud-backend\ncd iot-cloud-backend\nwget https://download.oracle.com/java/17/latest/jdk-17_linux-aarch64_bin.tar.gz\ntar -zxvf jdk-17_linux-aarch64_bin.tar.gz\n")),(0,r.yg)("h3",{id:"\u914d\u7f6e-java"},"\u914d\u7f6e java"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"vim /etc/profile\n\n# \u589e\u52a0\u5982\u4e0b\nexport JAVA_HOME=/root/iot-cloud-backend/jdk-17.0.8;\nexport PATH=$JAVA_HOME/bin:$PATH;\nexport CLASSPATH=.:$JAVA_HOME/lib;\n\n# \u4fdd\u5b58\u540e\nsource /etc/profile\n")),(0,r.yg)("h3",{id:"\u914d\u7f6e\u5e94\u7528\u6240\u9700\u7684\u73af\u5883\u53d8\u91cf"},"\u914d\u7f6e\u5e94\u7528\u6240\u9700\u7684\u73af\u5883\u53d8\u91cf"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"vim ~/.bash_profile\n\n# \u589e\u52a0\u5982\u4e0b\nexport IOT_MYSQL_HOST=127.0.0.1\nexport IOT_MYSQL_PORT=13306\n# HIVEMQ_HOME=/Users/weic/Documents/GITREP/GITHUB/net-cloud-backend/hivemq\nexport IOT_ALIYUN_KEY=xxx\nexport IOT_ALIYUN_SECRET=xxx\nexport IOT_SMS_REAL=0\n\n#\u4fdd\u5b58\u540e\nsource /etc/profile\n")),(0,r.yg)("h3",{id:"\u521b\u5efa-hivemq-\u6587\u4ef6\u5939"},"\u521b\u5efa hivemq \u6587\u4ef6\u5939"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"mkdir -p /root/iot-cloud-backend/hivemq/embedded-config-folder\nmkdir -p /root/iot-cloud-backend/hivemq/embedded-data-folder\nmkdir -p /root/iot-cloud-backend/hivemq/embedded-extensions-folder\n# config\u4e0b\u9762\u6709\u4e09\u4e2a\u914d\u7f6e\u6587\u4ef6\u9700\u8981\u4f20\u8fc7\u53bb\n\n")),(0,r.yg)("h3",{id:"\u542f\u52a8\u5e94\u7528"},"\u542f\u52a8\u5e94\u7528"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"# \u542f\u52a8\njava -jar application-0.0.1-SNAPSHOT.jar > iot-cloud-backend.log &\n")),(0,r.yg)("h3",{id:"\u542f\u52a8\u811a\u672c"},"\u542f\u52a8\u811a\u672c"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'#!/bin/sh\n# \u67e5\u627eJava\u8fdb\u7a0b\uff0c\u5e76\u5c06\u7ed3\u679c\u4fdd\u5b58\u5230\u53d8\u91cf\u4e2d\njava_pid=$(ps aux | grep java | grep application | grep -v grep | awk \'{print $2}\')\n\nif [ -n "$java_pid" ]; then\n echo "\u5df2\u5b58\u5728 $java_pid"\nelse\n java -jar application-0.0.1-SNAPSHOT.jar > net-cloud-backend.log &\n echo "\u542f\u52a8\u4e2d..."\n tail -f net-cloud-backend.log\nfi\n')),(0,r.yg)("h3",{id:"\u505c\u6b62\u811a\u672c"},"\u505c\u6b62\u811a\u672c"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'#!/bin/sh\n\n# \u67e5\u627eJava\u8fdb\u7a0b\uff0c\u5e76\u5c06\u7ed3\u679c\u4fdd\u5b58\u5230\u53d8\u91cf\u4e2d\njava_pid=$(ps aux | grep java | grep application | grep -v grep | awk \'{print $2}\')\n\nif [ -n "$java_pid" ]; then\n echo "\u6b63\u5728\u7ec8\u6b62Java\u8fdb\u7a0b $java_pid"\n kill -9 $java_pid\n echo "Java\u8fdb\u7a0b\u5df2\u7ec8\u6b62"\nelse\n echo "\u672a\u627e\u5230Java\u8fdb\u7a0b"\nfi\n')))}u.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7005],{5680:(e,n,a)=>{a.d(n,{xA:()=>i,yg:()=>g});var t=a(6540);function r(e,n,a){return n in e?Object.defineProperty(e,n,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[n]=a,e}function o(e,n){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);n&&(t=t.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),a.push.apply(a,t)}return a}function l(e){for(var n=1;n=0||(r[a]=e[a]);return r}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var p=t.createContext({}),d=function(e){var n=t.useContext(p),a=n;return e&&(a="function"==typeof e?e(n):l(l({},n),e)),a},i=function(e){var n=d(e.components);return t.createElement(p.Provider,{value:n},e.children)},s="mdxType",u={inlineCode:"code",wrapper:function(e){var n=e.children;return t.createElement(t.Fragment,{},n)}},v=t.forwardRef((function(e,n){var a=e.components,r=e.mdxType,o=e.originalType,p=e.parentName,i=c(e,["components","mdxType","originalType","parentName"]),s=d(a),v=r,g=s["".concat(p,".").concat(v)]||s[v]||u[v]||o;return a?t.createElement(g,l(l({ref:n},i),{},{components:a})):t.createElement(g,l({ref:n},i))}));function g(e,n){var a=arguments,r=n&&n.mdxType;if("string"==typeof e||r){var o=a.length,l=new Array(o);l[0]=v;var c={};for(var p in n)hasOwnProperty.call(n,p)&&(c[p]=n[p]);c.originalType=e,c[s]="string"==typeof e?e:r,l[1]=c;for(var d=2;d{a.r(n),a.d(n,{assets:()=>p,contentTitle:()=>l,default:()=>u,frontMatter:()=>o,metadata:()=>c,toc:()=>d});var t=a(8168),r=(a(6540),a(5680));const o={},l="centos-jdk17-app",c={unversionedId:"study/devops/centos-jdk17-app",id:"study/devops/centos-jdk17-app",title:"centos-jdk17-app",description:"\u5b89\u88c5 jdk",source:"@site/docs/study/devops/centos-jdk17-app.md",sourceDirName:"study/devops",slug:"/study/devops/centos-jdk17-app",permalink:"/docs/study/devops/centos-jdk17-app",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"centos-nginx",permalink:"/docs/study/devops/centos-gninx-app"},next:{title:"jar\u8fd0\u7ef4-\u76d1\u63a7",permalink:"/docs/study/devops/jar\u8fd0\u7ef4-\u76d1\u63a7"}},p={},d=[{value:"\u5b89\u88c5 jdk",id:"\u5b89\u88c5-jdk",level:3},{value:"\u914d\u7f6e java",id:"\u914d\u7f6e-java",level:3},{value:"\u914d\u7f6e\u5e94\u7528\u6240\u9700\u7684\u73af\u5883\u53d8\u91cf",id:"\u914d\u7f6e\u5e94\u7528\u6240\u9700\u7684\u73af\u5883\u53d8\u91cf",level:3},{value:"\u521b\u5efa hivemq \u6587\u4ef6\u5939",id:"\u521b\u5efa-hivemq-\u6587\u4ef6\u5939",level:3},{value:"\u542f\u52a8\u5e94\u7528",id:"\u542f\u52a8\u5e94\u7528",level:3},{value:"\u542f\u52a8\u811a\u672c",id:"\u542f\u52a8\u811a\u672c",level:3},{value:"\u505c\u6b62\u811a\u672c",id:"\u505c\u6b62\u811a\u672c",level:3}],i={toc:d},s="wrapper";function u(e){let{components:n,...a}=e;return(0,r.yg)(s,(0,t.A)({},i,a,{components:n,mdxType:"MDXLayout"}),(0,r.yg)("h1",{id:"centos-jdk17-app"},"centos-jdk17-app"),(0,r.yg)("h3",{id:"\u5b89\u88c5-jdk"},"\u5b89\u88c5 jdk"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"#\u9700\u8981\u770bcpu\u67b6\u6784 x64\nuname -a\ncd ~\nmkdir iot-cloud-backend\ncd iot-cloud-backend\nwget https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.tar.gz\ntar -zxvf jdk-17_linux-x64_bin.tar.gz\n\n#\u9700\u8981\u770bcpu\u67b6\u6784 aarch64\nuname -a\ncd ~\nmkdir iot-cloud-backend\ncd iot-cloud-backend\nwget https://download.oracle.com/java/17/latest/jdk-17_linux-aarch64_bin.tar.gz\ntar -zxvf jdk-17_linux-aarch64_bin.tar.gz\n")),(0,r.yg)("h3",{id:"\u914d\u7f6e-java"},"\u914d\u7f6e java"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"vim /etc/profile\n\n# \u589e\u52a0\u5982\u4e0b\nexport JAVA_HOME=/root/iot-cloud-backend/jdk-17.0.8;\nexport PATH=$JAVA_HOME/bin:$PATH;\nexport CLASSPATH=.:$JAVA_HOME/lib;\n\n# \u4fdd\u5b58\u540e\nsource /etc/profile\n")),(0,r.yg)("h3",{id:"\u914d\u7f6e\u5e94\u7528\u6240\u9700\u7684\u73af\u5883\u53d8\u91cf"},"\u914d\u7f6e\u5e94\u7528\u6240\u9700\u7684\u73af\u5883\u53d8\u91cf"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"vim ~/.bash_profile\n\n# \u589e\u52a0\u5982\u4e0b\nexport IOT_MYSQL_HOST=127.0.0.1\nexport IOT_MYSQL_PORT=13306\n# HIVEMQ_HOME=/Users/weic/Documents/GITREP/GITHUB/net-cloud-backend/hivemq\nexport IOT_ALIYUN_KEY=xxx\nexport IOT_ALIYUN_SECRET=xxx\nexport IOT_SMS_REAL=0\n\n#\u4fdd\u5b58\u540e\nsource /etc/profile\n")),(0,r.yg)("h3",{id:"\u521b\u5efa-hivemq-\u6587\u4ef6\u5939"},"\u521b\u5efa hivemq \u6587\u4ef6\u5939"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"mkdir -p /root/iot-cloud-backend/hivemq/embedded-config-folder\nmkdir -p /root/iot-cloud-backend/hivemq/embedded-data-folder\nmkdir -p /root/iot-cloud-backend/hivemq/embedded-extensions-folder\n# config\u4e0b\u9762\u6709\u4e09\u4e2a\u914d\u7f6e\u6587\u4ef6\u9700\u8981\u4f20\u8fc7\u53bb\n\n")),(0,r.yg)("h3",{id:"\u542f\u52a8\u5e94\u7528"},"\u542f\u52a8\u5e94\u7528"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"# \u542f\u52a8\njava -jar application-0.0.1-SNAPSHOT.jar > iot-cloud-backend.log &\n")),(0,r.yg)("h3",{id:"\u542f\u52a8\u811a\u672c"},"\u542f\u52a8\u811a\u672c"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'#!/bin/sh\n# \u67e5\u627eJava\u8fdb\u7a0b\uff0c\u5e76\u5c06\u7ed3\u679c\u4fdd\u5b58\u5230\u53d8\u91cf\u4e2d\njava_pid=$(ps aux | grep java | grep application | grep -v grep | awk \'{print $2}\')\n\nif [ -n "$java_pid" ]; then\n echo "\u5df2\u5b58\u5728 $java_pid"\nelse\n java -jar application-0.0.1-SNAPSHOT.jar > net-cloud-backend.log &\n echo "\u542f\u52a8\u4e2d..."\n tail -f net-cloud-backend.log\nfi\n')),(0,r.yg)("h3",{id:"\u505c\u6b62\u811a\u672c"},"\u505c\u6b62\u811a\u672c"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'#!/bin/sh\n\n# \u67e5\u627eJava\u8fdb\u7a0b\uff0c\u5e76\u5c06\u7ed3\u679c\u4fdd\u5b58\u5230\u53d8\u91cf\u4e2d\njava_pid=$(ps aux | grep java | grep application | grep -v grep | awk \'{print $2}\')\n\nif [ -n "$java_pid" ]; then\n echo "\u6b63\u5728\u7ec8\u6b62Java\u8fdb\u7a0b $java_pid"\n kill -9 $java_pid\n echo "Java\u8fdb\u7a0b\u5df2\u7ec8\u6b62"\nelse\n echo "\u672a\u627e\u5230Java\u8fdb\u7a0b"\nfi\n')))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/350be966.874e2bc3.js b/assets/js/350be966.5d3ed9a6.js similarity index 98% rename from assets/js/350be966.874e2bc3.js rename to assets/js/350be966.5d3ed9a6.js index 65468619e..511f2a57c 100644 --- a/assets/js/350be966.874e2bc3.js +++ b/assets/js/350be966.5d3ed9a6.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[767],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>y});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function c(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function a(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var u=n.createContext({}),l=function(e){var t=n.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},p=function(e){var t=l(e.components);return n.createElement(u.Provider,{value:t},e.children)},s="mdxType",f={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,c=e.originalType,u=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),s=l(r),d=o,y=s["".concat(u,".").concat(d)]||s[d]||f[d]||c;return r?n.createElement(y,a(a({ref:t},p),{},{components:r})):n.createElement(y,a({ref:t},p))}));function y(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var c=r.length,a=new Array(c);a[0]=d;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i[s]="string"==typeof e?e:o,a[1]=i;for(var l=2;l{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>a,default:()=>f,frontMatter:()=>c,metadata:()=>i,toc:()=>l});var n=r(8168),o=(r(6540),r(5680));const c={},a="Linux tc",i={unversionedId:"study/net/tc",id:"study/net/tc",title:"Linux tc",description:"tc \u662f Linux \u7cfb\u7edf\u4e0b\u7684\u6d41\u91cf\u63a7\u5236\u5de5\u5177\uff0c\u5168\u79f0 Traffic Control\uff0c\u7528\u4e8e\u914d\u7f6e\u548c\u63a7\u5236\u7f51\u7edc\u6d41\u91cf\u3002\u5b83\u662f\u4e00\u4e2a\u5f3a\u5927\u7684\u5de5\u5177\uff0c\u53ef\u4ee5\u7528\u4e8e\u914d\u7f6e\u548c\u8c03\u6574\u5404\u79cd\u7f51\u7edc\u63a5\u53e3\u7684\u6d41\u91cf\u63a7\u5236\u53c2\u6570\uff0c\u5982\u5e26\u5bbd\u9650\u5236\u3001\u5ef6\u8fdf\u3001\u4e22\u5305\u7387\u7b49\u3002",source:"@site/docs/study/net/tc.md",sourceDirName:"study/net",slug:"/study/net/tc",permalink:"/docs/study/net/tc",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"unix pfctl \u9632\u706b\u5899",permalink:"/docs/study/net/pfctl\u9632\u706b\u5899"},next:{title:"tuntap",permalink:"/docs/study/net/tuntap"}},u={},l=[],p={toc:l},s="wrapper";function f(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"linux-tc"},"Linux tc"),(0,o.yg)("p",null,"tc \u662f Linux \u7cfb\u7edf\u4e0b\u7684\u6d41\u91cf\u63a7\u5236\u5de5\u5177\uff0c\u5168\u79f0 Traffic Control\uff0c\u7528\u4e8e\u914d\u7f6e\u548c\u63a7\u5236\u7f51\u7edc\u6d41\u91cf\u3002\u5b83\u662f\u4e00\u4e2a\u5f3a\u5927\u7684\u5de5\u5177\uff0c\u53ef\u4ee5\u7528\u4e8e\u914d\u7f6e\u548c\u8c03\u6574\u5404\u79cd\u7f51\u7edc\u63a5\u53e3\u7684\u6d41\u91cf\u63a7\u5236\u53c2\u6570\uff0c\u5982\u5e26\u5bbd\u9650\u5236\u3001\u5ef6\u8fdf\u3001\u4e22\u5305\u7387\u7b49\u3002"))}f.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[767],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>y});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function c(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function a(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var u=n.createContext({}),l=function(e){var t=n.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},p=function(e){var t=l(e.components);return n.createElement(u.Provider,{value:t},e.children)},s="mdxType",f={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,c=e.originalType,u=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),s=l(r),d=o,y=s["".concat(u,".").concat(d)]||s[d]||f[d]||c;return r?n.createElement(y,a(a({ref:t},p),{},{components:r})):n.createElement(y,a({ref:t},p))}));function y(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var c=r.length,a=new Array(c);a[0]=d;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i[s]="string"==typeof e?e:o,a[1]=i;for(var l=2;l{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>a,default:()=>f,frontMatter:()=>c,metadata:()=>i,toc:()=>l});var n=r(8168),o=(r(6540),r(5680));const c={},a="Linux tc",i={unversionedId:"study/net/tc",id:"study/net/tc",title:"Linux tc",description:"tc \u662f Linux \u7cfb\u7edf\u4e0b\u7684\u6d41\u91cf\u63a7\u5236\u5de5\u5177\uff0c\u5168\u79f0 Traffic Control\uff0c\u7528\u4e8e\u914d\u7f6e\u548c\u63a7\u5236\u7f51\u7edc\u6d41\u91cf\u3002\u5b83\u662f\u4e00\u4e2a\u5f3a\u5927\u7684\u5de5\u5177\uff0c\u53ef\u4ee5\u7528\u4e8e\u914d\u7f6e\u548c\u8c03\u6574\u5404\u79cd\u7f51\u7edc\u63a5\u53e3\u7684\u6d41\u91cf\u63a7\u5236\u53c2\u6570\uff0c\u5982\u5e26\u5bbd\u9650\u5236\u3001\u5ef6\u8fdf\u3001\u4e22\u5305\u7387\u7b49\u3002",source:"@site/docs/study/net/tc.md",sourceDirName:"study/net",slug:"/study/net/tc",permalink:"/docs/study/net/tc",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"unix pfctl \u9632\u706b\u5899",permalink:"/docs/study/net/pfctl\u9632\u706b\u5899"},next:{title:"tuntap",permalink:"/docs/study/net/tuntap"}},u={},l=[],p={toc:l},s="wrapper";function f(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"linux-tc"},"Linux tc"),(0,o.yg)("p",null,"tc \u662f Linux \u7cfb\u7edf\u4e0b\u7684\u6d41\u91cf\u63a7\u5236\u5de5\u5177\uff0c\u5168\u79f0 Traffic Control\uff0c\u7528\u4e8e\u914d\u7f6e\u548c\u63a7\u5236\u7f51\u7edc\u6d41\u91cf\u3002\u5b83\u662f\u4e00\u4e2a\u5f3a\u5927\u7684\u5de5\u5177\uff0c\u53ef\u4ee5\u7528\u4e8e\u914d\u7f6e\u548c\u8c03\u6574\u5404\u79cd\u7f51\u7edc\u63a5\u53e3\u7684\u6d41\u91cf\u63a7\u5236\u53c2\u6570\uff0c\u5982\u5e26\u5bbd\u9650\u5236\u3001\u5ef6\u8fdf\u3001\u4e22\u5305\u7387\u7b49\u3002"))}f.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/35b5dc5a.ab4f0902.js b/assets/js/35b5dc5a.6c2b8af1.js similarity index 96% rename from assets/js/35b5dc5a.ab4f0902.js rename to assets/js/35b5dc5a.6c2b8af1.js index 6af155db8..89d77ed2a 100644 --- a/assets/js/35b5dc5a.ab4f0902.js +++ b/assets/js/35b5dc5a.6c2b8af1.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[385],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),p=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(l.Provider,{value:t},e.children)},s="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),s=p(r),d=o,f=s["".concat(l,".").concat(d)]||s[d]||y[d]||a;return r?n.createElement(f,c(c({ref:t},u),{},{components:r})):n.createElement(f,c({ref:t},u))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=d;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[s]="string"==typeof e?e:o,c[1]=i;for(var p=2;p{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>c,default:()=>y,frontMatter:()=>a,metadata:()=>i,toc:()=>p});var n=r(8168),o=(r(6540),r(5680));const a={},c=void 0,i={unversionedId:"study/net/\u4ee3\u7406",id:"study/net/\u4ee3\u7406",title:"\u4ee3\u7406",description:"\u53c2\u8003",source:"@site/docs/study/net/\u4ee3\u7406.md",sourceDirName:"study/net",slug:"/study/net/\u4ee3\u7406",permalink:"/docs/study/net/\u4ee3\u7406",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"vpn",permalink:"/docs/study/net/vpn"},next:{title:"\u5185\u7f51\u7a7f\u900f",permalink:"/docs/study/net/\u5185\u7f51\u7a7f\u900f"}},l={},p=[{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],u={toc:p},s="wrapper";function y(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://blog.revincx.icu/posts/proxy-summary/"},"\u5173\u4e8e\u300e\u4ee3\u7406\u300f\u7684\u4e0d\u5b8c\u5168\u4f7f\u7528\u6307\u5317"),(0,o.yg)("ul",{parentName:"li"},(0,o.yg)("li",{parentName:"ul"},"\u4ee3\u7406\u548c vpn \u8fd8\u662f\u6709\u5f88\u5927\u533a\u522b\u7684")))))}y.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[385],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),p=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(l.Provider,{value:t},e.children)},s="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),s=p(r),d=o,f=s["".concat(l,".").concat(d)]||s[d]||y[d]||a;return r?n.createElement(f,c(c({ref:t},u),{},{components:r})):n.createElement(f,c({ref:t},u))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=d;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[s]="string"==typeof e?e:o,c[1]=i;for(var p=2;p{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>c,default:()=>y,frontMatter:()=>a,metadata:()=>i,toc:()=>p});var n=r(8168),o=(r(6540),r(5680));const a={},c=void 0,i={unversionedId:"study/net/\u4ee3\u7406",id:"study/net/\u4ee3\u7406",title:"\u4ee3\u7406",description:"\u53c2\u8003",source:"@site/docs/study/net/\u4ee3\u7406.md",sourceDirName:"study/net",slug:"/study/net/\u4ee3\u7406",permalink:"/docs/study/net/\u4ee3\u7406",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"vpn",permalink:"/docs/study/net/vpn"},next:{title:"\u5185\u7f51\u7a7f\u900f",permalink:"/docs/study/net/\u5185\u7f51\u7a7f\u900f"}},l={},p=[{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],u={toc:p},s="wrapper";function y(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://blog.revincx.icu/posts/proxy-summary/"},"\u5173\u4e8e\u300e\u4ee3\u7406\u300f\u7684\u4e0d\u5b8c\u5168\u4f7f\u7528\u6307\u5317"),(0,o.yg)("ul",{parentName:"li"},(0,o.yg)("li",{parentName:"ul"},"\u4ee3\u7406\u548c vpn \u8fd8\u662f\u6709\u5f88\u5927\u533a\u522b\u7684")))))}y.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/35d73bf2.7084f0d6.js b/assets/js/35d73bf2.81c111a2.js similarity index 98% rename from assets/js/35d73bf2.7084f0d6.js rename to assets/js/35d73bf2.81c111a2.js index 6fb7084df..6fe263e25 100644 --- a/assets/js/35d73bf2.7084f0d6.js +++ b/assets/js/35d73bf2.81c111a2.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2747],{5680:(e,t,r)=>{r.d(t,{xA:()=>s,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),p=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},s=function(e){var t=p(e.components);return n.createElement(l.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,s=c(e,["components","mdxType","originalType","parentName"]),u=p(r),y=o,f=u["".concat(l,".").concat(y)]||u[y]||d[y]||a;return r?n.createElement(f,i(i({ref:t},s),{},{components:r})):n.createElement(f,i({ref:t},s))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=y;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[u]="string"==typeof e?e:o,i[1]=c;for(var p=2;p{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>p});var n=r(8168),o=(r(6540),r(5680));const a={},i=void 0,c={unversionedId:"study/think/\u4ee3\u7801\u8bc4\u5ba1/Gerrit\u4ee3\u7801\u8bc4\u5ba1\u5de5\u5177",id:"study/think/\u4ee3\u7801\u8bc4\u5ba1/Gerrit\u4ee3\u7801\u8bc4\u5ba1\u5de5\u5177",title:"Gerrit\u4ee3\u7801\u8bc4\u5ba1\u5de5\u5177",description:"\u53c2\u8003",source:"@site/docs/study/think/\u4ee3\u7801\u8bc4\u5ba1/Gerrit\u4ee3\u7801\u8bc4\u5ba1\u5de5\u5177.md",sourceDirName:"study/think/\u4ee3\u7801\u8bc4\u5ba1",slug:"/study/think/\u4ee3\u7801\u8bc4\u5ba1/Gerrit\u4ee3\u7801\u8bc4\u5ba1\u5de5\u5177",permalink:"/docs/study/think/\u4ee3\u7801\u8bc4\u5ba1/Gerrit\u4ee3\u7801\u8bc4\u5ba1\u5de5\u5177",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"IT_CT_OT",permalink:"/docs/study/think/IT_CT_OT"},next:{title:"\u4ee3\u7801\u5ba1\u67e5\u95ee\u9898\u624b\u518c",permalink:"/docs/study/think/\u4ee3\u7801\u8bc4\u5ba1/\u4ee3\u7801\u5ba1\u67e5\u95ee\u9898\u624b\u518c"}},l={},p=[{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],s={toc:p},u="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(u,(0,n.A)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,o.yg)("ol",null,(0,o.yg)("li",{parentName:"ol"},(0,o.yg)("a",{parentName:"li",href:"https://blog.csdn.net/weihao_/article/details/109636572"},"Gerrit\u4ee3\u7801\u8bc4\u5ba1\u5de5\u5177")),(0,o.yg)("li",{parentName:"ol"},(0,o.yg)("a",{parentName:"li",href:"https://www.pianshen.com/article/23571578417/"},"15\u4e2a\u6700\u4f73\u7684\u4ee3\u7801\u8bc4\u5ba1\uff08Code Review\uff09\u5de5\u5177"))))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2747],{5680:(e,t,r)=>{r.d(t,{xA:()=>s,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),p=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},s=function(e){var t=p(e.components);return n.createElement(l.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,s=c(e,["components","mdxType","originalType","parentName"]),u=p(r),y=o,f=u["".concat(l,".").concat(y)]||u[y]||d[y]||a;return r?n.createElement(f,i(i({ref:t},s),{},{components:r})):n.createElement(f,i({ref:t},s))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=y;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[u]="string"==typeof e?e:o,i[1]=c;for(var p=2;p{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>p});var n=r(8168),o=(r(6540),r(5680));const a={},i=void 0,c={unversionedId:"study/think/\u4ee3\u7801\u8bc4\u5ba1/Gerrit\u4ee3\u7801\u8bc4\u5ba1\u5de5\u5177",id:"study/think/\u4ee3\u7801\u8bc4\u5ba1/Gerrit\u4ee3\u7801\u8bc4\u5ba1\u5de5\u5177",title:"Gerrit\u4ee3\u7801\u8bc4\u5ba1\u5de5\u5177",description:"\u53c2\u8003",source:"@site/docs/study/think/\u4ee3\u7801\u8bc4\u5ba1/Gerrit\u4ee3\u7801\u8bc4\u5ba1\u5de5\u5177.md",sourceDirName:"study/think/\u4ee3\u7801\u8bc4\u5ba1",slug:"/study/think/\u4ee3\u7801\u8bc4\u5ba1/Gerrit\u4ee3\u7801\u8bc4\u5ba1\u5de5\u5177",permalink:"/docs/study/think/\u4ee3\u7801\u8bc4\u5ba1/Gerrit\u4ee3\u7801\u8bc4\u5ba1\u5de5\u5177",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"IT_CT_OT",permalink:"/docs/study/think/IT_CT_OT"},next:{title:"\u4ee3\u7801\u5ba1\u67e5\u95ee\u9898\u624b\u518c",permalink:"/docs/study/think/\u4ee3\u7801\u8bc4\u5ba1/\u4ee3\u7801\u5ba1\u67e5\u95ee\u9898\u624b\u518c"}},l={},p=[{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],s={toc:p},u="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(u,(0,n.A)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,o.yg)("ol",null,(0,o.yg)("li",{parentName:"ol"},(0,o.yg)("a",{parentName:"li",href:"https://blog.csdn.net/weihao_/article/details/109636572"},"Gerrit\u4ee3\u7801\u8bc4\u5ba1\u5de5\u5177")),(0,o.yg)("li",{parentName:"ol"},(0,o.yg)("a",{parentName:"li",href:"https://www.pianshen.com/article/23571578417/"},"15\u4e2a\u6700\u4f73\u7684\u4ee3\u7801\u8bc4\u5ba1\uff08Code Review\uff09\u5de5\u5177"))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/36351059.554590f8.js b/assets/js/36351059.cde371b5.js similarity index 98% rename from assets/js/36351059.554590f8.js rename to assets/js/36351059.cde371b5.js index 60b56d1c6..92dc58648 100644 --- a/assets/js/36351059.554590f8.js +++ b/assets/js/36351059.cde371b5.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1213],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>m});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),p=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(l.Provider,{value:t},e.children)},d="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),d=p(r),f=o,m=d["".concat(l,".").concat(f)]||d[f]||s[f]||a;return r?n.createElement(m,i(i({ref:t},u),{},{components:r})):n.createElement(m,i({ref:t},u))}));function m(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=f;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[d]="string"==typeof e?e:o,i[1]=c;for(var p=2;p{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>s,frontMatter:()=>a,metadata:()=>c,toc:()=>p});var n=r(8168),o=(r(6540),r(5680));const a={sidebar_position:7},i="\u8bbe\u5907\u5206\u7ec4\u7ba1\u7406",c={unversionedId:"iotcloud/devicemanager/device-group",id:"iotcloud/devicemanager/device-group",title:"\u8bbe\u5907\u5206\u7ec4\u7ba1\u7406",description:"\u4e3a\u4ec0\u4e48\u9700\u8981\u8bbe\u8ba1\u8bbe\u5907\u5206\u7ec4\u8fd9\u4e2a\u529f\u80fd\uff1f",source:"@site/docs/iotcloud/devicemanager/device-group.md",sourceDirName:"iotcloud/devicemanager",slug:"/iotcloud/devicemanager/device-group",permalink:"/docs/iotcloud/devicemanager/device-group",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",sidebarPosition:7,frontMatter:{sidebar_position:7},sidebar:"iotCloudSidebar",previous:{title:"\u8bbe\u5907\u4fe1\u606f\u7ba1\u7406",permalink:"/docs/iotcloud/devicemanager/device-info"},next:{title:"\u6982\u8ff0",permalink:"/docs/iotcloud/usercenter/"}},l={},p=[],u={toc:p},d="wrapper";function s(e){let{components:t,...r}=e;return(0,o.yg)(d,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"\u8bbe\u5907\u5206\u7ec4\u7ba1\u7406"},"\u8bbe\u5907\u5206\u7ec4\u7ba1\u7406"),(0,o.yg)("p",null,"\u4e3a\u4ec0\u4e48\u9700\u8981\u8bbe\u8ba1\u8bbe\u5907\u5206\u7ec4\u8fd9\u4e2a\u529f\u80fd\uff1f"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"\u8bbe\u5907\u592a\u591a\uff0c\u67e5\u8be2\u7684\u65f6\u5019\u5f88\u4e0d\u65b9\u4fbf\uff0c\u9700\u8981\u8bbe\u5907\u91cd\u65b0\u5f52\u7eb3\uff1b\u5982\u679c\u8bbe\u5907\u592a\u5c11\uff08\u4f4e\u4e8e 100\uff09\uff0c\u4f7f\u7528\u8fd9\u4e2a\u529f\u80fd\u610f\u4e49\u4e0d\u5927\u3002"),(0,o.yg)("li",{parentName:"ul"},"\u8fd8\u662f\u8bbe\u5907\u592a\u591a\uff0c\u5206\u914d\u6743\u9650\u7684\u65f6\u5019\uff0c\u4e0d\u597d\u5212\u5206\uff0c\u4e3b\u8981\u662f\u5206\u7ed9",(0,o.yg)("strong",{parentName:"li"},"\u5ba2\u6237"),"\u3001",(0,o.yg)("strong",{parentName:"li"},"\u7cfb\u7edf\u7528\u6237"),"\uff0c\u8fd9\u79cd\u60c5\u51b5\u4e0b\u53ef\u4ee5\u76f4\u63a5\u5212\u5206",(0,o.yg)("strong",{parentName:"li"},"\u5206\u7ec4"),"\u7ed9\u4ed6\u4eec\uff0c\u8fd9\u6837\u8fd9\u4e2a\u5206\u7ec4\u4e0b\u9762\u7684\u8bbe\u5907\u7684\u589e\u5220\u4e5f\u4f1a\u76f4\u63a5\u5f71\u54cd\u5ba2\u6237\u548c\u7cfb\u7edf\u7528\u6237\u7684\u8bbe\u5907\u6743\u9650\u3002")))}s.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1213],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>m});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),p=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(l.Provider,{value:t},e.children)},d="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),d=p(r),f=o,m=d["".concat(l,".").concat(f)]||d[f]||s[f]||a;return r?n.createElement(m,i(i({ref:t},u),{},{components:r})):n.createElement(m,i({ref:t},u))}));function m(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=f;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[d]="string"==typeof e?e:o,i[1]=c;for(var p=2;p{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>s,frontMatter:()=>a,metadata:()=>c,toc:()=>p});var n=r(8168),o=(r(6540),r(5680));const a={sidebar_position:7},i="\u8bbe\u5907\u5206\u7ec4\u7ba1\u7406",c={unversionedId:"iotcloud/devicemanager/device-group",id:"iotcloud/devicemanager/device-group",title:"\u8bbe\u5907\u5206\u7ec4\u7ba1\u7406",description:"\u4e3a\u4ec0\u4e48\u9700\u8981\u8bbe\u8ba1\u8bbe\u5907\u5206\u7ec4\u8fd9\u4e2a\u529f\u80fd\uff1f",source:"@site/docs/iotcloud/devicemanager/device-group.md",sourceDirName:"iotcloud/devicemanager",slug:"/iotcloud/devicemanager/device-group",permalink:"/docs/iotcloud/devicemanager/device-group",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",sidebarPosition:7,frontMatter:{sidebar_position:7},sidebar:"iotCloudSidebar",previous:{title:"\u8bbe\u5907\u4fe1\u606f\u7ba1\u7406",permalink:"/docs/iotcloud/devicemanager/device-info"},next:{title:"\u6982\u8ff0",permalink:"/docs/iotcloud/usercenter/"}},l={},p=[],u={toc:p},d="wrapper";function s(e){let{components:t,...r}=e;return(0,o.yg)(d,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"\u8bbe\u5907\u5206\u7ec4\u7ba1\u7406"},"\u8bbe\u5907\u5206\u7ec4\u7ba1\u7406"),(0,o.yg)("p",null,"\u4e3a\u4ec0\u4e48\u9700\u8981\u8bbe\u8ba1\u8bbe\u5907\u5206\u7ec4\u8fd9\u4e2a\u529f\u80fd\uff1f"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"\u8bbe\u5907\u592a\u591a\uff0c\u67e5\u8be2\u7684\u65f6\u5019\u5f88\u4e0d\u65b9\u4fbf\uff0c\u9700\u8981\u8bbe\u5907\u91cd\u65b0\u5f52\u7eb3\uff1b\u5982\u679c\u8bbe\u5907\u592a\u5c11\uff08\u4f4e\u4e8e 100\uff09\uff0c\u4f7f\u7528\u8fd9\u4e2a\u529f\u80fd\u610f\u4e49\u4e0d\u5927\u3002"),(0,o.yg)("li",{parentName:"ul"},"\u8fd8\u662f\u8bbe\u5907\u592a\u591a\uff0c\u5206\u914d\u6743\u9650\u7684\u65f6\u5019\uff0c\u4e0d\u597d\u5212\u5206\uff0c\u4e3b\u8981\u662f\u5206\u7ed9",(0,o.yg)("strong",{parentName:"li"},"\u5ba2\u6237"),"\u3001",(0,o.yg)("strong",{parentName:"li"},"\u7cfb\u7edf\u7528\u6237"),"\uff0c\u8fd9\u79cd\u60c5\u51b5\u4e0b\u53ef\u4ee5\u76f4\u63a5\u5212\u5206",(0,o.yg)("strong",{parentName:"li"},"\u5206\u7ec4"),"\u7ed9\u4ed6\u4eec\uff0c\u8fd9\u6837\u8fd9\u4e2a\u5206\u7ec4\u4e0b\u9762\u7684\u8bbe\u5907\u7684\u589e\u5220\u4e5f\u4f1a\u76f4\u63a5\u5f71\u54cd\u5ba2\u6237\u548c\u7cfb\u7edf\u7528\u6237\u7684\u8bbe\u5907\u6743\u9650\u3002")))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/3815e5ff.af887039.js b/assets/js/3815e5ff.0f2b21ad.js similarity index 99% rename from assets/js/3815e5ff.af887039.js rename to assets/js/3815e5ff.0f2b21ad.js index a05686c0c..63f554221 100644 --- a/assets/js/3815e5ff.af887039.js +++ b/assets/js/3815e5ff.0f2b21ad.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1366],{5680:(e,n,l)=>{l.d(n,{xA:()=>u,yg:()=>s});var t=l(6540);function a(e,n,l){return n in e?Object.defineProperty(e,n,{value:l,enumerable:!0,configurable:!0,writable:!0}):e[n]=l,e}function r(e,n){var l=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);n&&(t=t.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),l.push.apply(l,t)}return l}function p(e){for(var n=1;n=0||(a[l]=e[l]);return a}(e,n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(e,l)&&(a[l]=e[l])}return a}var i=t.createContext({}),y=function(e){var n=t.useContext(i),l=n;return e&&(l="function"==typeof e?e(n):p(p({},n),e)),l},u=function(e){var n=y(e.components);return t.createElement(i.Provider,{value:n},e.children)},o="mdxType",m={inlineCode:"code",wrapper:function(e){var n=e.children;return t.createElement(t.Fragment,{},n)}},d=t.forwardRef((function(e,n){var l=e.components,a=e.mdxType,r=e.originalType,i=e.parentName,u=g(e,["components","mdxType","originalType","parentName"]),o=y(l),d=a,s=o["".concat(i,".").concat(d)]||o[d]||m[d]||r;return l?t.createElement(s,p(p({ref:n},u),{},{components:l})):t.createElement(s,p({ref:n},u))}));function s(e,n){var l=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var r=l.length,p=new Array(r);p[0]=d;var g={};for(var i in n)hasOwnProperty.call(n,i)&&(g[i]=n[i]);g.originalType=e,g[o]="string"==typeof e?e:a,p[1]=g;for(var y=2;y{l.r(n),l.d(n,{assets:()=>i,contentTitle:()=>p,default:()=>m,frontMatter:()=>r,metadata:()=>g,toc:()=>y});var t=l(8168),a=(l(6540),l(5680));const r={},p=void 0,g={unversionedId:"study/think/\u8c08\u5de5\u4f5c\u5fc3\u5f97",id:"study/think/\u8c08\u5de5\u4f5c\u5fc3\u5f97",title:"\u8c08\u5de5\u4f5c\u5fc3\u5f97",description:"\u5236\u5b9a\u539f\u5219\uff1a\u624b\u4e2d\u65e0\u5200\uff0c\u4f46\u4f60\u7684\u5fc3\u4e2d\u8981\u6709\u5200",source:"@site/docs/study/think/\u8c08\u5de5\u4f5c\u5fc3\u5f97.md",sourceDirName:"study/think",slug:"/study/think/\u8c08\u5de5\u4f5c\u5fc3\u5f97",permalink:"/docs/study/think/\u8c08\u5de5\u4f5c\u5fc3\u5f97",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u5206\u5e03\u5f0f\u7f13\u5b58",permalink:"/docs/study/think/\u7f13\u5b58/\u5206\u5e03\u5f0f\u7f13\u5b58"},next:{title:"\u9650\u6d41",permalink:"/docs/study/think/\u9650\u6d41"}},i={},y=[{value:"\u5236\u5b9a\u539f\u5219\uff1a\u624b\u4e2d\u65e0\u5200\uff0c\u4f46\u4f60\u7684\u5fc3\u4e2d\u8981\u6709\u5200",id:"\u5236\u5b9a\u539f\u5219\u624b\u4e2d\u65e0\u5200\u4f46\u4f60\u7684\u5fc3\u4e2d\u8981\u6709\u5200",level:3},{value:"\u6280\u672f\u56e2\u961f\u6210\u9f99\u6210\u866b\u7684\u79d8\u8bc0",id:"\u6280\u672f\u56e2\u961f\u6210\u9f99\u6210\u866b\u7684\u79d8\u8bc0",level:3},{value:"\u56e2\u961f\u7684\u89c2\u5bdf\u8005\u6548\u5e94",id:"\u56e2\u961f\u7684\u89c2\u5bdf\u8005\u6548\u5e94",level:4},{value:"\u613f\u666f\u521d\u5fc3\u5f88\u91cd\u8981\u3002",id:"\u613f\u666f\u521d\u5fc3\u5f88\u91cd\u8981",level:4},{value:"\u4e13\u4e1a\u7684\u4eba\u505a\u4e13\u4e1a\u7684\u4e8b",id:"\u4e13\u4e1a\u7684\u4eba\u505a\u4e13\u4e1a\u7684\u4e8b",level:3},{value:"\u7ebf\u4e0a\u6545\u969c\u5904\u7406\u603b\u7ed3",id:"\u7ebf\u4e0a\u6545\u969c\u5904\u7406\u603b\u7ed3",level:3},{value:"\u6ca1\u6709\u9884\u89c1\u6027\u4f60\u51ed\u4ec0\u4e48\u664b\u5347",id:"\u6ca1\u6709\u9884\u89c1\u6027\u4f60\u51ed\u4ec0\u4e48\u664b\u5347",level:3},{value:"\u4ec0\u4e48\u662f\u9884\u89c1\u6027\uff1f",id:"\u4ec0\u4e48\u662f\u9884\u89c1\u6027",level:4},{value:"\u6211\u53f8\u7814\u53d1\u6587\u5316=",id:"\u6211\u53f8\u7814\u53d1\u6587\u5316",level:3},{value:"Don't make me think",id:"dont-make-me-think",level:3},{value:"If it hurts, do it more and often",id:"if-it-hurts-do-it-more-and-often",level:3},{value:"\u8fd9\u4e2a\u4e16\u754c\u4ece\u6765\u6ca1\u6709\u4ec0\u4e48\u6551\u4e16\u4e3b",id:"\u8fd9\u4e2a\u4e16\u754c\u4ece\u6765\u6ca1\u6709\u4ec0\u4e48\u6551\u4e16\u4e3b",level:3},{value:"\u4e00\u5b9a\u8981\u6709\u540e\u5907\u65b9\u6848",id:"\u4e00\u5b9a\u8981\u6709\u540e\u5907\u65b9\u6848",level:3},{value:"DevOps \u65b0\u516b\u8363\u516b\u803b\uff0c\u6bcf\u4e00\u6761\u90fd\u662f\u8840\u8089\u957f\u57ce",id:"devops-\u65b0\u516b\u8363\u516b\u803b\u6bcf\u4e00\u6761\u90fd\u662f\u8840\u8089\u957f\u57ce",level:3},{value:"\u6838\u5fc3\u4e1a\u52a1\u6d41\u7a0b\u7684\u6545\u969c\u5904\u7406\u539f\u5219\uff1a\u4e0d\u53ef\u604b\u6218",id:"\u6838\u5fc3\u4e1a\u52a1\u6d41\u7a0b\u7684\u6545\u969c\u5904\u7406\u539f\u5219\u4e0d\u53ef\u604b\u6218",level:3},{value:"\u5f53\u6211\u4eec\u8c08\u91cd\u6784\u7684\u65f6\u5019\u6211\u4eec\u60f3\u8c08\u4ec0\u4e48",id:"\u5f53\u6211\u4eec\u8c08\u91cd\u6784\u7684\u65f6\u5019\u6211\u4eec\u60f3\u8c08\u4ec0\u4e48",level:3},{value:"\u8981\u719f\u7ec3\u638c\u63e1\u7684\u4e03\u4e2a\u4eba\u751f\u5de5\u5177",id:"\u8981\u719f\u7ec3\u638c\u63e1\u7684\u4e03\u4e2a\u4eba\u751f\u5de5\u5177",level:3},{value:"\u4e00\u3001SWOT\u5206\u6790\u6cd5\uff1a",id:"\u4e00swot\u5206\u6790\u6cd5",level:4},{value:"\u4e8c\u3001PDCA\u5faa\u73af\u89c4\u5219",id:"\u4e8cpdca\u5faa\u73af\u89c4\u5219",level:4},{value:"\u4e09\u30016W2H\u6cd5",id:"\u4e096w2h\u6cd5",level:4},{value:"\u56db\u3001SMART\u539f\u5219",id:"\u56dbsmart\u539f\u5219",level:4},{value:"\u4e94\u3001\u65f6\u95f4\u7ba1\u7406-\u91cd\u8981\u4e0e\u7d27\u6025",id:"\u4e94\u65f6\u95f4\u7ba1\u7406-\u91cd\u8981\u4e0e\u7d27\u6025",level:4},{value:"\u516d\u3001\u4efb\u52a1\u5206\u89e3\u6cd5WBS",id:"\u516d\u4efb\u52a1\u5206\u89e3\u6cd5wbs",level:4},{value:"\u4e03\u3001\u4e8c\u516b\u539f\u5219",id:"\u4e03\u4e8c\u516b\u539f\u5219",level:4},{value:"\u63d0\u9ad8\u63d0\u6d4b\u8d28\u91cf",id:"\u63d0\u9ad8\u63d0\u6d4b\u8d28\u91cf",level:3},{value:"\u5148\u5199\u6587\u6863\u518d\u5199\u4ee3\u7801",id:"\u5148\u5199\u6587\u6863\u518d\u5199\u4ee3\u7801",level:3},{value:"\u4e00\u4e2a\u7a0b\u5e8f\u5458\u7684\u4ef7\u503c\u662f\u89e3\u51b3\u95ee\u9898\u7684\u80fd\u529b",id:"\u4e00\u4e2a\u7a0b\u5e8f\u5458\u7684\u4ef7\u503c\u662f\u89e3\u51b3\u95ee\u9898\u7684\u80fd\u529b",level:3},{value:"\u6ce8\u610f\u6d41\u7a0b\u3001\u89c4\u8303",id:"\u6ce8\u610f\u6d41\u7a0b\u89c4\u8303",level:3}],u={toc:y},o="wrapper";function m(e){let{components:n,...l}=e;return(0,a.yg)(o,(0,t.A)({},u,l,{components:n,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"\u5236\u5b9a\u539f\u5219\u624b\u4e2d\u65e0\u5200\u4f46\u4f60\u7684\u5fc3\u4e2d\u8981\u6709\u5200"},"\u5236\u5b9a\u539f\u5219\uff1a\u624b\u4e2d\u65e0\u5200\uff0c\u4f46\u4f60\u7684\u5fc3\u4e2d\u8981\u6709\u5200"),(0,a.yg)("p",null,"\u8f6f\u4ef6\u5de5\u7a0b\u548c\u6280\u672f\u9886\u57df\u91cc\u867d\u8bf4\u6cd5\u65e0\u5b9a\u6cd5\uff0c\u9700\u6c42\u548c\u6d41\u7a0b\u968f\u4fbf\u600e\u4e48\u505a\u90fd\u53ef\u4ee5\uff0c\u4f46\u4e5f\u5e76\u975e\u53ef\u4ee5\u5929\u9a6c\u884c\u7a7a\u6063\u610f\u5984\u4e3a\uff0c\u7a0d\u4e0d\u7559\u610f\u5c31\u53ef\u80fd\u5929\u584c\u5730\u9677\u5899\u5012\u5c4b\u584c\uff0c\u917f\u6210\u4e0d\u53ef\u6536\u62fe\u4e4b\u60e8\u5267\u3002\u4e0b\u9762\u6211\u5c31\u8bf4\u9053\u8bf4\u9053\u3002"),(0,a.yg)("p",null,"2020\u5e741\u6708\u5e952\u6708\u521d\uff0c\u9996\u90fd\u533b\u79d1\u5927\u5b66\u9644\u5c5e\u590d\u5174\u533b\u9662\u51fa\u73b0\u533b\u62a4\u4eba\u5458\u611f\u67d3\u65b0\u51a0\u80ba\u708e\u4e8b\u4ef6\uff0c\u6700\u7ec8\u7d2f\u8ba1\u786e\u8bca34\u4eba\uff0c\u65e2\u6709\u533b\u62a4\u4e5f\u6709\u60a3\u8005\u548c\u5bb6\u5c5e\uff0c\u539f\u56e0\u4e5f\u975e\u5e38\u201c\u611f\u4eba\u201d\uff1a\u4e00\u4f4d\u6709\u6b66\u6c49\u63a5\u89e6\u53f2\u7684\u8001\u592a\u592a\uff0c\u672c\u6765\u5c5e\u4e8e\u201c\u65b0\u51a0\u80ba\u708e\u7591\u4f3c\u75c5\u4f8b\u201d\u5728\u53d1\u70ed\u95e8\u8bca\u770b\u75c5\uff0c\u4f46\u5374\u7a81\u53d1\u5947\u60f3\uff0c\u901a\u8fc7\u9662\u9886\u5bfc\u7684\u5173\u7cfb\uff0c\u6258\u5173\u7cfb\u627e\u5fc3\u5185\u79d1ICU\u4e3b\u4efb\u97e9\u67d0\uff0c\u6123\u662f\u4ece\u9632\u62a4\u68ee\u4e25\u7684\u53d1\u70ed\u95e8\u8bca\u75c5\u623f\u8f6c\u8fdb\u4e86\u4e91\u6de1\u98ce\u8f7b\u7684\u5fc3\u5185\u79d1ICU\uff0c\u7ed3\u679c\u6a2a\u626b\u4e00\u7247\u3002"),(0,a.yg)("p",null,"\u6211\u4e00\u76f4\u8bf4\uff0c\u5de5\u7a0b\u5e08\u56e2\u961f\u548c\u533b\u62a4\u56e2\u961f\u90fd\u662f\u4e13\u4e1a\u9886\u57df\u673a\u6784\uff0c\u7ba1\u7406\u65b9\u5f0f\u6709\u76f8\u4f3c\u4e4b\u5904\u3002\u90a3\u4e48\u5728\u8fd9\u4e2a\u6848\u4f8b\u91cc\uff0c\u7ba1\u7406\u8005\u72af\u4e86\u4ec0\u4e48\u9519\u8bef\uff1f\u5fc3\u4e2d\u65e0\u539f\u5219\uff01"),(0,a.yg)("p",null,"\u5fc3\u4e2d\u65e0\u539f\u5219\uff0c\u4f1a\u6709\u4e00\u767e\u4e07\u79cd\u6b7b\u6cd5\u3002"),(0,a.yg)("p",null,"\u539f\u5219\uff01\u4e13\u4e1a\u56e2\u961f\u7684\u7ba1\u7406\u8005\u5fc3\u4e2d\u4e00\u5b9a\u8981\u6709\u539f\u5219\uff0c\u4f60\u6709\u4e86\u539f\u5219\uff0c\u624d\u80fd\u8981\u6c42\u5927\u5bb6\u201c\u8bb2\u653f\u6cbb\uff0c\u5b88\u89c4\u77e9\u201d\uff01\u540c\u6837\uff0c\u5728\u505a\u8bbe\u8ba1\u7684\u65f6\u5019\uff0c\u5148\u628a\u8bbe\u8ba1\u613f\u666f\u3001\u8bbe\u8ba1\u5206\u9636\u6bb5\u76ee\u6807\u3001\u8bbe\u8ba1\u539f\u5219\u5199\u4e0b\u6765\uff0c\u5728\u6b64\u57fa\u7840\u4e0a\u753b\u5730\u4e3a\u7262\u518d\u505a\u8bbe\u8ba1\u63a8\u6f14\uff0c\u83ab\u8981\u5929\u9a6c\u884c\u7a7a\u6063\u610f\u5984\u4e3a\u3002\u624b\u4e2d\u65e0\u5200\uff0c\u5fc3\u4e2d\u6709\u5200\u3002"),(0,a.yg)("p",null,"\u4f5c\u4e3a\u7ba1\u7406\u8005\uff0c\u5982\u679c\u4e0d\u8bb2\u539f\u5219\uff0c\u6ca1\u6709\u89c4\u8303\uff0c\u65e0\u6cd5\u505a\u597d\u7ba1\u7406\u3002\u4e0b\u9762\u7684\u4eba\u4f1a\u65e0\u6240\u9002\u4ece\uff0c\u56e0\u4e3a\u539f\u5219\u5929\u5929\u53d8\uff0c\u4eca\u5929\u8fd9\u6837\uff0c\u660e\u5929\u53c8\u90a3\u6837\uff0c\u6beb\u65e0\u7ae0\u6cd5\u3002\u4e0b\u9762\u7684\u4eba\u4e0d\u77e5\u9053\u5f80\u54ea\u91cc\u91cd\u70b9\u4f7f\u52b2\uff0c\u4e8b\u60c5\u5c31\u4f1a\u53d8\u5f97\u4e00\u56e2\u7cdf\u3002"),(0,a.yg)("p",null,"\u4e0d\uff0c\u6ca1\u6709\u4ec0\u4e48\u6cd5\u65e0\u5b9a\u6cd5\uff0c\u6280\u672f\u7684\u4e16\u754c\u91cc\u4e00\u5b9a\u662f\u6709\u6cd5\u5219\u7684\uff0c\u5426\u5219\u4f60\u4f1a\u6b7b\u5f97\u5f88\u96be\u770b\uff0c\u522b\u6307\u671b\u6211\u6765\u6551\u4f60\uff0c\u6211\u6551\u90fd\u6551\u4e0d\u8d62\u3002"),(0,a.yg)("p",null,"You\uff01Leaders\uff01\u4e00\u5b9a\u8981\u901a\u8fc7\u5c42\u5c42\u53e0\u52a0\u7684\u201cRules\u201d\u5efa\u7acb\u8d77\u672c\u80fd\u53cd\u5e94\uff0c\u4e00\u9047\u5230\u7c7b\u4f3c\u7684\u4e8b\u60c5\uff0c\u5e94\u6fc0\u822c\u7684\u5c31\u77e5\u9053\u8be5\u600e\u4e48\u8bbe\u8ba1\uff0c\u600e\u4e48\u884c\u52a8\uff0c\u600e\u4e48\u6551\u706b\u3002\n\u800c\u8fd9\u4e9b\u201cRules\u201d\u662f\u7ecf\u5386\u4e86\u8840\u4e0e\u706b\u7684\u6d17\u793c\u94f8\u9020\u7684\uff0c\u6bcf\u4e00\u6761\u90fd\u6709\u6765\u7531\u6709\u53bb\u8def\u3002\n\u6bd4\u5982\u8bf4\uff0c\u6211\u57282018\u5e74\u5b9a\u4e49\u7684 DevOps \u65b0\u516b\u8363\u516b\u803b\uff0c\u6bcf\u4e00\u6761\u90fd\u662f\u8840\u8089\u957f\u57ce\uff1a"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},"\u4ee5\u968f\u65f6\u53ef\u6269\u5bb9\u3001\u53ef\u7f29\u5bb9\u3001\u53ef\u91cd\u542f\u3001\u53ef\u5207\u6362\u673a\u623f\u6d41\u91cf\u4e3a\u8363\uff0c\u4ee5\u4e0d\u80fd\u8fc1\u79fb\u4e3a\u803b\u3002"),(0,a.yg)("li",{parentName:"ol"},"\u4ee5\u53ef\u914d\u7f6e\u4e3a\u8363\uff0c\u4ee5\u786c\u7f16\u7801\u4e3a\u803b\u3002"),(0,a.yg)("li",{parentName:"ol"},"\u4ee5\u7cfb\u7edf\u4e92\u5907\u4e3a\u8363\uff0c\u4ee5\u7cfb\u7edf\u5355\u70b9\u4e3a\u803b\u3002"),(0,a.yg)("li",{parentName:"ol"},"\u4ee5\u4ea4\u4ed8\u65f6\u6709\u76d1\u63a7\u62a5\u8b66\u4e3a\u8363\uff0c\u4ee5\u4ea4\u4ed8\u88f8\u5954\u7cfb\u7edf\u4e3a\u803b\u3002"),(0,a.yg)("li",{parentName:"ol"},"\u4ee5\u65e0\u72b6\u6001\u4e3a\u8363\uff0c\u4ee5\u6709\u72b6\u6001\u4e3a\u803b\u3002"),(0,a.yg)("li",{parentName:"ol"},"\u4ee5\u6807\u51c6\u5316\u4e3a\u8363\uff0c\u4ee5\u7279\u6b8a\u5316\u4e3a\u803b\u3002"),(0,a.yg)("li",{parentName:"ol"},"\u4ee5\u81ea\u52a8\u5316\u5de5\u5177\u4e3a\u8363\uff0c\u4ee5\u4eba\u8089\u64cd\u4f5c\u4e3a\u803b\u3002"),(0,a.yg)("li",{parentName:"ol"},"\u4ee5\u65e0\u4eba\u503c\u5b88\u4e3a\u8363\uff0c\u4ee5\u4eba\u5de5\u4ecb\u5165\u4e3a\u803b\u3002")),(0,a.yg)("p",null,"\xa0\n\u5982\u4f55\u81ea\u5efa\u6cd5\u5219\uff1f\n\u4ece\u9519\u8bef\u4e2d\u5b66\u4e60\u9519\u8bef\uff01"),(0,a.yg)("p",null,"\xa0\n\u300e\u5b66\u6821\u91cc\u5b66\u4e60\u6700\u597d\u7684\u5b66\u751f\u53ef\u80fd\u5f80\u5f80\u662f\u90a3\u4e9b\u6700\u4e0d\u5584\u4e8e\u4ece\u9519\u8bef\u4e2d\u5b66\u4e60\u7684\u4eba\uff0c\u56e0\u4e3a\u4ed6\u4eec\u5df2\u7ecf\u4e60\u60ef\u4e86\u628a\u9519\u9898\u5f53\u6210\u5931\u8d25\u7684\u4ee3\u540d\u8bcd\uff0c\u800c\u4e0d\u662f\u628a\u72af\u9519\u770b\u6210\u5b66\u4e60\u7684\u673a\u4f1a\uff0c\u8fd9\u53cd\u800c\u6210\u4e3a\u4ed6\u4eec\u8fdb\u6b65\u7684\u4e3b\u8981\u969c\u788d\u3002\u8d70\u5165\u793e\u4f1a\u4e4b\u540e\uff0c\u806a\u660e\u7684\u4eba\u5fc5\u987b\u5584\u4e8e\u62e5\u62b1\u81ea\u5df1\u7684\u9519\u8bef\u548c\u4e0d\u8db3\uff0c\u4ece\u800c\u80fd\u8fdc\u8fdc\u8d85\u8fc7\u90a3\u4e9b\u4e0e\u4ed6\u4eec\u6c34\u5e73\u76f8\u5f53\uff0c\u4f46\u66f4\u81ea\u8d1f\u7684\u540c\u5b66\u3001\u540c\u8f88\u3002\u300f\n\u8fd9\u4e5f\u5c31\u662f\u4e3a\u4ec0\u4e48\u5e73\u51e1\u4eba\u53ef\u4e3a\u975e\u51e1\u4e8b\u7684\u7f18\u6545\uff01\n\u300e\u4e0d\u8981\u60a3\u5f97\u60a3\u5931\uff0c\u8981\u671d\u7740\u76ee\u6807\u52aa\u529b\u524d\u884c\u3002\u8981\u81ea\u7701\u81ea\u8b66\uff0c\u522b\u4eba\u5bf9\u4f60\u5f88\u5230\u4f4d\u7684\u6279\u8bc4\uff0c\u662f\u4f60\u80fd\u5f97\u5230\u7684\u6700\u5b9d\u8d35\u7684\u5efa\u8bae\u3002\u60f3\u60f3\u770b\uff0c\u4f60\u7684\u6ed1\u96ea\u6559\u7ec3\u544a\u8bc9\u4f60\uff0c\u4f60\u6454\u8ddf\u5934\u662f\u56e0\u4e3a\u4f60\u6ed1\u884c\u4e2d\u7684\u91cd\u5fc3\u79fb\u52a8\u4e0d\u5bf9\uff0c\u6b64\u65f6\u4f60\u8981\u662f\u8ba4\u4e3a\u4ed6\u5728\u8d23\u9a82\u4f60\uff0c\u4f60\u8be5\u591a\u4e48\u611a\u8822\u548c\u4f4e\u6548\u3002\u540c\u7406\uff0c\u4f60\u7684\u4e0a\u53f8\uff0c\u6211\uff0c\u4e5f\u53ef\u80fd\u4f1a\u6307\u51fa\u4f60\u5de5\u4f5c\u4e2d\u7684\u7f3a\u70b9\uff0c\u6709\u5219\u6539\u4e4b\uff0c\u7ee7\u7eed\u52aa\u529b\u5c31\u662f\u4e86\u3002\u300f\n\u7b49\u6709\u4e00\u5929\u4f60\u4f9d\u636e\u672c\u80fd\uff08\u4e5f\u5c31\u662f\u4f60\u81ea\u5efa\u7684\u6cd5\u5219\uff09\u884c\u4e8b\u7684\u65f6\u5019\uff0c\u4f60\u80af\u5b9a\u4f1a\u628a\u4e8b\u60c5\u505a\u5f97\u5f88\u597d\uff01"),(0,a.yg)("h3",{id:"\u6280\u672f\u56e2\u961f\u6210\u9f99\u6210\u866b\u7684\u79d8\u8bc0"},"\u6280\u672f\u56e2\u961f\u6210\u9f99\u6210\u866b\u7684\u79d8\u8bc0"),(0,a.yg)("h4",{id:"\u56e2\u961f\u7684\u89c2\u5bdf\u8005\u6548\u5e94"},"\u56e2\u961f\u7684\u89c2\u5bdf\u8005\u6548\u5e94"),(0,a.yg)("p",null,"\u9519\u8bef\u4f1a\u6f14\u53d8\u6210\u4ec0\u4e48\uff0c\u53d6\u51b3\u4e8e\u4f60\u600e\u4e48\u770b\u5f85\u5b83\u3002\u4f60\u89c9\u5f97\u5b83\u662f\u7f9e\u803b\uff0c\u5e94\u8be5\u9690\u79d8\u4e8e\u4eba\uff0c\u6700\u597d\u7edd\u53e3\u4e0d\u63d0\uff0c\u90a3\u4e48\u5b83\u5c31\u4f1a\u53d8\u6210\u5b83\u5b83\u5b83\u5b83\u5b83\u5b83\u5b83\uff0c\u6700\u7ec8\u53d8\u6210\u5927\u707e\u96be\u3002\u4f60\u89c9\u5f97\u5b83\u662f\u8d22\u5bcc\uff0c\u662f\u7ec4\u7ec7\u8fdb\u6b65\u7684\u597d\u673a\u4f1a\uff0c\u662f\u63a8\u884c\u5de5\u5177\u548c\u89c4\u8303\u7684\u5207\u5165\u70b9\uff0c\u90a3\u4e48\u5b83\u5c31\u4f1a\u771f\u7684\u6210\u4e3a\u56e2\u961f\u7684\u4e0d\u53ef\u78e8\u706d\u7684\u4f20\u627f\uff0c\u6210\u4e3a\u5b9d\u8d35\u8d22\u5bcc\u3002"),(0,a.yg)("p",null,(0,a.yg)("strong",{parentName:"p"},"\u9519\u8bef\u7684\u89c2\u5bdf\u8005\u6548\u5e94\uff1a"),"\n",(0,a.yg)("strong",{parentName:"p"},"\u4f60\u8ba4\u4e3a\u9519\u8bef\u662f\u8d22\u5bcc\uff0c\u5b83\u5c31\u662f\u5b9d\u8d35\u8d22\u5bcc\u3002"),"\n",(0,a.yg)("strong",{parentName:"p"},"\u4f60\u8ba4\u4e3a\u9519\u8bef\u662f\u5931\u8d25\uff0c\u5b83\u7acb\u9a6c\u53d8\u6210\u707e\u96be\u3002"),"\n",(0,a.yg)("strong",{parentName:"p"},"\n\u5176\u5b9e\u8fd8\u6709\u4e00\u79cd\u89c2\u5bdf\u8005\u6548\u5e94\u3002\n"),"\u56e2\u961f\u7684\u89c2\u5bdf\u8005\u6548\u5e94\uff1a**\n",(0,a.yg)("strong",{parentName:"p"},"\u4f60\u8ba4\u4e3a\u56e2\u961f\u662f\u8d22\u5bcc\uff0c\u5b83\u5c31\u662f\u8d22\u5bcc\u3002"),"\n",(0,a.yg)("strong",{parentName:"p"},"\u4f60\u8ba4\u4e3a\u56e2\u961f\u662f\u6210\u672c\u5305\u88b1\uff0c\u5b83\u7acb\u9a6c\u53d8\u8eab\u5305\u88b1\u3002")),(0,a.yg)("p",null,"2017\u5e74\uff0c\u6709\u8d5eCTO\u5d14\u7389\u677e\u8bf4\uff0c\u6211\u60f3\u6253\u9020\u51fa\u4e2d\u56fd\u6700\u597d\u7684\u6280\u672f\u56e2\u961f\u3002"),(0,a.yg)("blockquote",null,(0,a.yg)("p",{parentName:"blockquote"},"\u6280\u672f\u4e0a\uff0c\u6709\u8d5e\u8d70\u8fc7\u7684\u8def\u548c\u5927\u591a\u6570\u4ece\u5c0f\u5230\u5927\u7684\u521b\u4e1a\u516c\u53f8\u5dee\u4e0d\u591a\uff0c\u90fd\u662f\u524d\u671f\u4e13\u6ce8\u4e8e\u89e3\u51b3\u4e1a\u52a1\u95ee\u9898\uff0c\u6700\u540e\u67b6\u6784\u95ee\u9898\u5728\u67d0\u4e2a\u65f6\u95f4\u70b9\u96c6\u4e2d\u7206\u53d1\uff0c\u5bfc\u81f4\u5f88\u591a\u7684\u4e0d\u7a33\u5b9a\u3002\u8fd9\u4e00\u70b9\u4e0d\u7ba1\u662f\u963f\u91cc\u4e5f\u597d\uff0c\u4eac\u4e1c\u4e5f\u7f62\uff0c\u8fd8\u662f\u6700\u8fd1\u4ea4\u6d41\u7684\u4e00\u4e9b\u5176\u4ed6\u516c\u53f8\uff0c\u57fa\u672c\u4e0a\u90fd\u662f\u4e00\u6837\u7684\uff0c\u53ea\u662f\u5927\u5bb6\u95ee\u9898\u7684\u4e25\u91cd\u7a0b\u5ea6\u548c\u89e3\u51b3\u95ee\u9898\u7684\u901f\u5ea6\u4e0d\u4e00\u6837\u3002",(0,a.yg)("strong",{parentName:"p"},"\u6709\u8d5e\u7684\u89e3\u51b3\u65b9\u6cd5\u548c\u5927\u5bb6\u4e5f\u6ca1\u4ec0\u4e48\u592a\u5927\u533a\u522b\uff0c\u5c31\u662f\u7ec4\u5efa\u4e00\u6d41\u5e95\u5c42\u6838\u5fc3\u67b6\u6784\u548c\u6838\u5fc3\u8fd0\u7ef4\u56e2\u961f\uff0c\u8fd9\u4e2a\u56e2\u961f\u5fc5\u987b\u5f97\u597d\uff0c\u4e0d\u7136\u89e3\u51b3\u95ee\u9898\u7684\u901f\u5ea6\u975e\u5e38\u975e\u5e38\u6162\uff0c\u6bcf\u5929\u90fd\u53ef\u80fd\u5b95\u673a\uff0c\u4f1a\u4e25\u91cd\u5f71\u54cd\u516c\u53f8\u4e1a\u52a1\u53ca\u6548\u76ca\u3002"),"\n\u65e5\u5e38\u4e1a\u52a1\u4e2d\uff0c\u6211\u4eec\u975e\u5e38\u9f13\u52b1\u5927\u5bb6\u76f8\u4e92\u8865\u4f4d\uff0c\u6709\u95ee\u9898\u53ca\u65f6\u5bfb\u627e\u8d44\u6e90\uff0c\u53ca\u65f6\u83b7\u53d6\u6709\u6548\u7684\u4fe1\u606f\uff0c\u9f13\u52b1\u5927\u5bb6\u9762\u5bf9\u9762\u628a\u4e8b\u60c5\u8bf4\u6e05\u695a\u3002\n\u2014\u20142017\uff0c\u6709\u8d5eCTO\u5d14\u7389\u677e\uff1a\u6211\u60f3\u6253\u9020\u51fa\u4e2d\u56fd\u6700\u597d\u7684\u6280\u672f\u56e2\u961f")),(0,a.yg)("p",null,"2020\u5e74\uff0c\u73b0\u5728\u6765\u770b\uff0c\u4ed6\u53ef\u80fd\u786e\u5b9e\u505a\u5230\u4e86\uff0c\u6709\u8d5e\u7684\u6280\u672f\u5e95\u8574\u975e\u5e38\u5f3a\u3002\u5f53\u7136\u4e0a\u9762\u8fd8\u6709\u4e00\u5c42\u7f8e\u56e2\uff0c\u518d\u4e0a\u9762\u8fd8\u6709\u4e00\u5c42\u963f\u91cc\u5df4\u5df4\u3002"),(0,a.yg)("h4",{id:"\u613f\u666f\u521d\u5fc3\u5f88\u91cd\u8981"},"\u613f\u666f\u521d\u5fc3\u5f88\u91cd\u8981\u3002"),(0,a.yg)("p",null,"\u6709\u7684\u4eba\u613f\u666f\u5c31\u662f\u6d3b\u4e0b\u53bb\uff0c\u90a3\u4e48\u5e74\u590d\u4e00\u5e74\u65e5\u590d\u4e00\u65e5\u59cb\u7ec8\u6323\u624e\u5728\u751f\u6b7b\u8fb9\u7f18\u3002\n\u6709\u7684\u4eba\u613f\u666f\u5c31\u662f\u7528\u4e09\u4e94\u4e2a\u4eba\u505a\u4e00\u4e2a\u8d5a\u94b1\u7684\u5c0f\u516c\u53f8\uff0c\u90a3\u4e48\u4e5f\u633a\u597d\uff0c\u4ed6\u80fd\u8fd9\u6837\u8fc7\u4e00\u8f88\u5b50\u3002\n\u6709\u7684\u4eba\u6ca1\u6709\u613f\u666f\uff0c\u6240\u4ee5\u4ed6\u6b7b\u4e86\u3002"),(0,a.yg)("p",null,"\xa0\n\u963f\u91cc\u5df4\u5df4\u7684\u201c",(0,a.yg)("strong",{parentName:"p"},"\u6b64\u65f6\u6b64\u523b\uff0c\u975e\u6211\u83ab\u5c5e"),"\u201d\u786e\u5b9e\u725b\u903c\uff0c99\u5e74\u5c31\u6709\u4e86\uff0c\u53ef\u4ee5\u8bf4\u662f\u963f\u91cc\u5df4\u5df4\u7b2c\u4e00\u53e5\u571f\u8bdd\u3002"),(0,a.yg)("h3",{id:"\u4e13\u4e1a\u7684\u4eba\u505a\u4e13\u4e1a\u7684\u4e8b"},"\u4e13\u4e1a\u7684\u4eba\u505a\u4e13\u4e1a\u7684\u4e8b"),(0,a.yg)("p",null,"\u6211\u4ee5\u524d\u8bb2\u8fc7\u804c\u573a\uff08\u6f5c\uff09\u89c4\u5219\uff0c\u5176\u4e2d\u4e00\u6761\u53eb\u201c\u542c\u539f\u59cb\u9700\u6c42\uff0c\u4e0d\u542c\u6280\u672f\u89e3\u51b3\u65b9\u6848\u201d\uff0c\u539f\u6587\u5982\u4e0b\uff1a\n\u300e\u6211\u53d1\u73b0\u5f88\u591a\u505a\u4e1a\u52a1\u7684\u4eba\u4e00\u65b9\u9762\u641e\u4e0d\u6e05\u695a\u4ec0\u4e48\u53eb\u539f\u59cb\u9700\u6c42\uff0c\u751a\u81f3\u8fde\u6574\u4e2a\u4e1a\u52a1\u4f53\u7cfb\u662f\u600e\u4e48\u8fd0\u8f6c\u8d77\u6765\u7684\u90fd\u61f5\u61f5\u61c2\u61c2\uff0c\u542c\u4ed6\u8bf4\u4e86\u534a\u5929\uff0c\u539f\u6765\u662f\u5728\u8bb2\u4ed6\u8ba4\u4e3a\u6280\u672f\u4e0a\u600e\u4e48\u89e3\u51b3\u3002\n\u53e6\u4e00\u65b9\u9762\u4ed6\u4eec\u8fd8\u633a\u559c\u6b22\u8d8a\u4fce\u4ee3\u5e96\uff0c\u539f\u59cb\u9700\u6c42\u8fd8\u542d\u542d\u54e7\u54e7\u8bf4\u4e0d\u6e05\u695a\u5462\uff0c\u5c31\u76f4\u63a5\u62cd\u65b9\u6848\uff0c\u751a\u81f3\u8feb\u4e0d\u53ca\u5f85\u5730\u66ff\u6211\u4eec\u60f3\u6570\u636e\u5e93\u662f\u4e0d\u662f\u52a0\u5b57\u6bb5\u2026\u2026\n\u5bf9\u6b64\uff0c\u6211\u7684\u6807\u51c6\u56de\u7b54\u662f\uff1a\u201c\u8bf7\u76f4\u63a5\u8bf4\u539f\u59cb\u9700\u6c42\uff0c\u8bf7\u4e0d\u8981\u7ed9\u6211\u8bb2\u89e3\u51b3\u65b9\u6848\u201d\u3002\n",(0,a.yg)("strong",{parentName:"p"},"\u6f5c\u53f0\u8bcd\u5c31\u662f\uff0c\u4f60\u6709\u4f60\u7684\u4e13\u4e1a\u9886\u57df\uff0c\u6211\u6709\u6211\u7684\uff0c\u8d62\u5f97\u522b\u4eba\u5c0a\u91cd\u7684\u524d\u63d0\u662f\u5148\u628a\u81ea\u5df1\u7684\u672c\u804c\u5de5\u4f5c\u505a\u597d\u3002"),"\n**\n",(0,a.yg)("strong",{parentName:"p"},"\u5728\u4e13\u4e1a\u9886\u57df\u91cc\uff0c\u5343\u4e07\u4e0d\u80fd\u8ba9\u5916\u884c\u9886\u5bfc\u5185\u884c\uff01"),"\n\u6211\u53d1\u73b0\u597d\u591a\u505a\u7ba1\u7406\u7684\u90fd\u4e0d\u77e5\u9053\u8fd9\u4e00\u6761\uff0c\u603b\u89c9\u5f97\u6211\u505a\u7ba1\u7406\u7684\u80fd\u7ba1\u5929\u4e0b\u4e07\u4e8b\u4e07\u7269\u3002\u626f\u6de1\uff01\n**"),(0,a.yg)("h3",{id:"\u7ebf\u4e0a\u6545\u969c\u5904\u7406\u603b\u7ed3"},"\u7ebf\u4e0a\u6545\u969c\u5904\u7406\u603b\u7ed3"),(0,a.yg)("p",null,"\u7ebf\u4e0a\u6545\u969c\u5904\u7406\u53e3\u8bc0\uff1a\n",(0,a.yg)("strong",{parentName:"p"},"\u9047\u4e8b\u4e0d\u4e71\uff0c\u5206\u5934\u6838\u67e5\uff0c\u7fa4\u91cc\u540c\u6b65\uff0c\u7b80\u5355\u9648\u8ff0\uff0c\u7edd\u4e0d\u604b\u6218\uff0c\u6062\u590d\u670d\u52a1\u3002"),"\n**\n\u5177\u4f53\u89e3\u91ca\u4e00\u4e0b\u3002"),(0,a.yg)("p",null,(0,a.yg)("strong",{parentName:"p"},"\u5206\u5934\u6838\u67e5"),"\uff1aQA\u8d1f\u8d23\u7ebf\u4e0b\u590d\u73b0\u73b0\u8c61\uff0c\u786e\u8ba4\u95ee\u9898\u662f\u5426\u5b58\u5728\uff1bSA\u8d1f\u8d23\u6838\u67e5\u4e1a\u52a1\u5bf9\u5e94\u7684\u673a\u623f\u3001\u6570\u636e\u5e93\u3001\u5185\u5916\u7f51\u6d41\u91cf\u3001\u5e94\u7528\u8d1f\u8f7d\u6709\u65e0\u53d8\u66f4\u64cd\u4f5c\u3001\u6709\u4f55\u5f02\u5e38\u6307\u6807\u3002"),(0,a.yg)("p",null,(0,a.yg)("strong",{parentName:"p"},"\u7edd\u4e0d\u604b\u6218"),"\uff1a\u5982\u679c\u8fdf\u8fdf\u5b9a\u4f4d\u4e0d\u4e86\u95ee\u9898\uff08\u6bd4\u5982\u4e94\u5206\u949f\u4e4b\u5185\uff09\uff0c\u5c31\u4e0d\u53ef\u604b\u6218\uff0c\u5fc5\u987b\u5feb\u901f\u6062\u590d\u4e1a\u52a1\u3002\u7b2c\u4e00\uff0c\u4e0d\u8981\u628a\u751f\u4ea7\u73af\u5883\u5f53\u6210\u6d4b\u8bd5\u73af\u5883\uff0c\u4e0d\u8981\u5728\u7ebf\u8c03\u8bd5\uff1b\u7b2c\u4e8c\uff0c\u4e0d\u8981\u4e00\u76f4\u7559\u7740\u73b0\u573a\u89c2\u5bdf\u6765\u89c2\u5bdf\u53bb\u3002"),(0,a.yg)("p",null,(0,a.yg)("strong",{parentName:"p"},"\u7b80\u5355\u9648\u8ff0"),"\uff1a\u51fa\u4e86\u4e8b\u513f\u4e00\u5b9a\u5404\u65b9\u9762\u90fd\u52a8\u5458\u8d77\u6765\u4e86\uff0c\u4e03\u5634\u516b\u820c\uff0c\u5404\u8bf4\u5404\u8bdd\uff0c\u8fd9\u65f6\u5019\u4e00\u5b9a\u8981\u6709\u4e00\u4e2a\u4e34\u65f6\u603b\u6307\u6325\u4e0d\u65ad\u5730\u603b\u7ed3\u5927\u5bb6\u73b0\u5728\u7684\u8fdb\u5ea6\uff0c\u505a\u7cbe\u70bc\u7684\u201c\u7b80\u5355\u9648\u8ff0\u201d\uff0c\u53d1\u5728\u7fa4\u91cc\uff0c\u76f8\u5f53\u4e8e\u4e00\u4e2a\u65b0\u95fb\u53d1\u8a00\u4eba\u3002\u4ed6\u5728\u7b2c\u4e00\u65f6\u95f4\u51fa\u6765\u505a\u7b80\u8981\u7efc\u8ff0\uff0c\u628aWHEN/WHO/WHAT/HOW/RESULT\u51e0\u53e5\u8bdd\u8bf4\u6e05\u695a\uff0c\u540c\u6b65\u7ed9\u6838\u5fc3\u5e72\u90e8\u3002\u4e0d\u8981\u70b9\u5bf9\u70b9\u3002\u8bf7\u52a1\u5fc5\u5e7f\u64ad\u3002\u8868\u660e\u6211\u4eec\u5728\u8ddf\uff0c\u6211\u4eec\u5728\u89e3\u51b3\uff0c\u6240\u6709\u4e8b\u60c5\u90fd\u5728\u638c\u63e1\u4e2d\uff0c\u522b\u6015\uff0c\u522b\u614c\u3002"),(0,a.yg)("h3",{id:"\u6ca1\u6709\u9884\u89c1\u6027\u4f60\u51ed\u4ec0\u4e48\u664b\u5347"},"\u6ca1\u6709\u9884\u89c1\u6027\u4f60\u51ed\u4ec0\u4e48\u664b\u5347"),(0,a.yg)("h4",{id:"\u4ec0\u4e48\u662f\u9884\u89c1\u6027"},"\u4ec0\u4e48\u662f\u9884\u89c1\u6027\uff1f"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},"\u5e02\u573a\u7ade\u4e89\u6001\u52bf\u7684\u9884\u89c1\u6027\u3002",(0,a.yg)("ol",{parentName:"li"},(0,a.yg)("li",{parentName:"ol"},"\u6709\u6ca1\u6709\u5bf9\u5e02\u573a\u5927\u52bf\u6709\u4e00\u5b9a\u9884\u89c1\u6027\uff1f"),(0,a.yg)("li",{parentName:"ol"},"\u662f\u4e0d\u662f\u65f6\u523b\u5728\u5173\u6ce8\u7740\u53cb\u5546\u3001\u7ade\u54c1\u548c\u884c\u4e1a\u52a8\u6001\uff1f"),(0,a.yg)("li",{parentName:"ol"},"\u80fd\u4e0d\u80fd\u5bf9\u4e1a\u52a1\u505a\u51fa\u6709\u524d\u77bb\u6027\u7684\u9884\u6d4b\uff1f"),(0,a.yg)("li",{parentName:"ol"},"\u4e3e\u4f8b\uff1a\u672c\u5730\u751f\u6d3b\u670d\u52a1\u5e02\u573a\uff0c\u5927\u7684\u5e02\u573a\u53d8\u5316\u8d8b\u52bf\u662f\uff0c\u70b9\u8bc4\u2014>\u56e2\u8d2d\u2014>\u5916\u5356\u2014>\u4e70\u5355\u548c\u4e0b\u7801\u2014>\u94fa\u673a\u5177\u6784\u7b51IoT\u58c1\u5792\u2014>\u5207ERP\u2014>\u5e26\u8d27\u548c\u4fdd\u7406\u2026\u2026"))),(0,a.yg)("li",{parentName:"ol"},"\u4e1a\u52a1\u4e0a\u7684\u9884\u89c1\u6027\u3002",(0,a.yg)("ol",{parentName:"li"},(0,a.yg)("li",{parentName:"ol"},"\u9700\u6c42\u65b9\u8bf4\u4ec0\u4e48\u5c31\u662f\u4ec0\u4e48\u5417\uff1f"),(0,a.yg)("li",{parentName:"ol"},"\u4ea7\u54c1\u8bbe\u8ba1\u6210\u4ec0\u4e48\u6837\u5c31\u505a\u6210\u4ec0\u4e48\u6837\u5417\uff1f"),(0,a.yg)("li",{parentName:"ol"},"\u4e00\u5207\u90fd\u662f\u987a\u6c34\u63a8\u821f\u5417\uff1f"),(0,a.yg)("li",{parentName:"ol"},"\u4f60\u6709\u6ca1\u6709\u529b\u6392\u4f17\u8bae\uff0c\u63d0\u51fa\u81ea\u5df1\u7684\u89c2\u70b9\u548c\u65b9\u6848\uff0c\u800c\u4e14\u6700\u540e\u4e8b\u5b9e\u8bc1\u660e\u4f60\u8bf4\u7684\u505a\u7684\u662f\u5bf9\u7684\uff1f"))),(0,a.yg)("li",{parentName:"ol"},"\u6280\u672f\u4e0a\u7684\u9884\u89c1\u6027\u3002")),(0,a.yg)("p",null,"\u9996\u5148\uff0c\u6280\u672f\u9886\u57df\u77ac\u606f\u4e07\u53d8\uff0c\u6628\u5929\u7684\u6280\u672f\u65b0\u8d8b\u52bf\uff0c\u660e\u5929\u5c31\u6210\u4e3a\u884c\u4e1a\u6807\u6746\u7684\u6807\u51c6\u89e3\u51b3\u65b9\u6848\u3002\u4f4e\u5934\u62c9\u8f66\u4e4b\u4f59\uff0c\u5fc5\u987b\u62ac\u5934\u770b\u8def\u3002Docker\u4ece2014\u5e74\u7684\u5fae\u70ed\uff0c\u52302015\u30012016\u5e74\u4e00\u7ebf\u4e92\u8054\u7f51\u516c\u53f8\u7684\u6807\u914d\uff0c\u4ec5\u4ec5\u4e00\u4e24\u5e74\u65f6\u95f4\u3002\n\u5176\u6b21\uff0c\u5355\u4e00\u6280\u672f\u8d8b\u52bf\uff0c\u5e76\u4e0d\u80fd\u627f\u8f7d\u4e2d\u5927\u578b\u56e2\u961f\uff0c\u4e0d\u80fd\u627f\u8f7d\u5267\u70c8\u53d8\u5316\u7684\u4e1a\u52a1\uff0c\u6211\u4eec\u5bf9\u6b64\u9700\u8981\u6709\u4e00\u4e2a\u57fa\u672c\u7684\u5224\u65ad\u3002\u6bd4\u5982\u8bf4\u5fae\u670d\u52a1\u7684\u524d\u63d0\u662fDocker\u5bb9\u5668\u5316\u3001\u670d\u52a1\u8def\u7531\u548c\u5e73\u53f0\u81ea\u52a8\u5316\u3002Docker\u96c6\u7fa4\u7f16\u6392+\u7814\u53d1\u534f\u4f5c\u53ef\u89c6\u5316+\u8fd0\u7ef4\u81ea\u52a8\u5316+API\u7f51\u5173+\u5fae\u670d\u52a1\uff0c\u624d\u8c08\u5f97\u4e0a\u53ef\u8d1f\u91cd\u524d\u884c\u3002\n\u518d\u6b21\uff0c\u5f53\u4e1a\u52a1\u4ece\u96f6\u5230\u4e00\u7684\u65f6\u5019\uff0c\u6211\u4eec\u9700\u8981\u6709\u4e00\u5b9a\u7684\u9884\u89c1\u6027\uff0c\u8d70\u4e00\u6b65\u770b\u4e24\u6b65\u3002\n\u4e3e\u4f8b\uff1a\u4e1a\u52a1\u521a\u5f00\u59cb\u8bd5\u70b9\u7684\u65f6\u5019\uff0c\u6211\u5c31\u9884\u89c1\u5230IoT\u673a\u5177\u94fa\u8bbe\u5728\u5168\u56fd\u5404\u5730\uff0c\u6240\u6709\u95ee\u9898\u90fd\u5c06\u7531\u6211\u4eec\u515c\u5e95\uff0c\u6240\u4ee5\u5fc5\u987b\u4ee5\u6700\u5feb\u901f\u5ea6\u5efa\u8bbe\u4e00\u4e2a\u5f3a\u5927\u7684\u8bbe\u5907\u5f3a\u7ba1\u63a7\u8fd0\u7ef4\u7ba1\u7406\u5e73\u53f0\uff0c\u5b83\u5c06\u662f\u5927\u4e2d\u53f0\u4f53\u7cfb\u7684\u91cd\u8981\u7ec4\u6210\u90e8\u5206\u3002\n\u4e3e\u4f8b\uff1a\u968f\u7740\u4e1a\u52a1\u7684\u6df1\u5165\uff0c\u6211\u9884\u89c1\u5230\u7531\u4e8e\u673a\u5177\u7684\u5404\u79cd\u4e1a\u52a1\u65b9\u90fd\u4f1a\u7ed9\u673a\u5177\u4e0b\u53d1\u6307\u4ee4\uff08\u4e0a\u884c\u548c\u4e0b\u884c\uff09\uff0c\u6bd4\u5982\u652f\u4ed8\u6210\u529f\u8bed\u97f3\u64ad\u62a5\uff0c\u6bd4\u5982\u5e94\u7528\u7248\u672c\u5206\u53d1\uff0c\u6bd4\u5982\u5feb\u901f\u6539\u53d8\u673a\u5177\u4e0aApp\u5185\u90e8\u72b6\u6001\uff0c\u4e1a\u52a1\u65b9\u4e0d\u5173\u5fc3\u4e5f\u4e0d\u9700\u8981\u5173\u5fc3\u673a\u5177\u5728\u4e0d\u5728\u7ebf\uff0c\u6240\u4ee5\u6211\u51b3\u5b9a\u5c3d\u5feb\u5f15\u5165\u8bbe\u5907\u5f71\u5b50\uff0c\u5728\u4e1a\u52a1\u65b9\u8fd8\u4e0d\u8db3\u591f\u591a\u7684\u65f6\u5019\u4e00\u52b3\u6c38\u9038\u5730\u89e3\u51b3\u8fd9\u4e2a\u95ee\u9898\u3002\n\u505a\u6280\u672f\u5343\u4e07\u4e0d\u8981\u811a\u8e29\u897f\u74dc\u76ae\uff0c\u6ed1\u5230\u54ea\u91cc\u7b97\u54ea\u91cc\u3002"),(0,a.yg)("h3",{id:"\u6211\u53f8\u7814\u53d1\u6587\u5316"},"\u6211\u53f8\u7814\u53d1\u6587\u5316="),(0,a.yg)("p",null,"\u7814\u53d1\u54f2\u5b66\uff08Don't make me think/If it hurts, do it more and often/\u8fd9\u4e2a\u4e16\u754c\u4ece\u6765\u6ca1\u6709\u4ec0\u4e48\u6551\u4e16\u4e3b/\u6ca1\u6709\u82e6\u52b3\u53ea\u6709\u529f\u52b3/\u4e00\u5b9a\u8981\u6709\u540e\u5907\u65b9\u6848\uff09\n+\u7814\u53d1\u4e09\u5faa\u73af\u65b9\u6cd5\u8bba\uff08\u7814\u53d1\u80fd\u529b/\u7814\u53d1\u6548\u7387/\u7814\u53d1\u6d3b\u529b\uff09\n+\u7814\u53d1\u4e09\u677f\u65a7\uff08RCA/\u6280\u672f\u5206\u4eab\u8bb2\u5ea7/\u6280\u672f\u9884\u7814\u8bfe\u9898\uff09\n\u6bcf\u4e00\u4e2a\u7814\u53d1\u7ec4\u7ec7\u90fd\u5fc5\u987b\u60f3\u7740\u5ff5\u7740\u505a\u7740\u3002"),(0,a.yg)("h3",{id:"dont-make-me-think"},"Don't make me think"),(0,a.yg)("p",null,"\u5927\u5bb6\u90fd\u77e5\u9053\uff0c\u6280\u672f\u4eba\u5458\u4ece\u4e8b\u7684\u662f\u521b\u9020\u6027\u5de5\u4f5c\uff0c\u52a0\u4e4b\u662f\u5355\u6838\u5904\u7406\u5668\uff0c\u6211\u4eec\u7684\u4e0a\u4e0b\u6587\u5207\u6362\u975e\u5e38\u56f0\u96be\uff0c\u88ab\u6253\u65ad\u540e\u4ece\u65b0\u8fdb\u5165\u201c\u795e\u6e38\u201d\u72b6\u6001\u5f80\u5f80\u9700\u8981\u5341\u51e0\u5206\u949f\u3002\u5c24\u5176\u662f\u7814\u53d1\u7ecf\u7406\uff0c\u627f\u62c5\u66f4\u591a\u7684\u8d23\u4efb\uff0c\u7ebf\u4e0a\u7ebf\u4e0b\u7684\u95ee\u9898\u90fd\u8981\u7167\u987e\u5230\uff0c\u8fd8\u8981\u89e3\u7b54\u5185\u5916\u7684\u5404\u79cd\u54a8\u8be2\uff0c\u5de5\u4f5c\u65f6\u95f4\u788e\u7247\u5316\u4e25\u91cd\u3002\u6211\u4eec\uff08\u5305\u62ec\u7cfb\u7edf\uff09\u7ed9\u51fa\u7684\u4fe1\u606f\uff0c\u4e00\u5b9a\u8981\u8db3\u591f\u7b80\u7ec3\uff0c\u4e00\u76ee\u4e86\u7136\uff0c\u8ba9\u4eba\u5f88\u5bb9\u6613\u514b\u670d\u7126\u8e81\u60c5\u7eea\uff0c\u556a\u556a\u5730\u5c31\u5904\u7406\u4e86\uff0c\u6216\u8005\u556a\u556a\u5730\u4e8c\u6b21\u5206\u53d1\u51fa\u53bb\u3002\xa0\u4e0d\u8981\u8ba9\u65e0\u7528\u7684\u4fe1\u606f\u6298\u78e8\u8fd9\u4e9b\u4eba\u3002"),(0,a.yg)("p",null,"\u5176\u6b21\uff0c\u6280\u672f\u4eba\u5458\u662f\u201c\u4e16\u754c\u201d\u7684\u6784\u5efa\u8005\uff0c\u4e0d\u5f97\u4e0d\u505a\u5927\u91cf\u7410\u788e\u4e14\u67af\u71e5\u7684\u5de5\u4f5c\uff0c\u5176\u4e2d\uff0c\u76f8\u5f53\u5927\u6bd4\u4f8b\u7684\u5de5\u4f5c\u662f\u91cd\u590d\u6027\u7684\uff0c\u5982\u4fee\u6539\u914d\u7f6e\u6587\u4ef6\u9002\u914d\u4e0d\u540c\u73af\u5883\uff0c\u5982\u6253\u5305\u3002\n\u91cd\u590d\u7684\u5de5\u4f5c\u4e00\u65b9\u9762\u5bb9\u6613\u51fa\u9519\uff0c\u5c24\u5176\u662f\u5728\u901a\u5bb5\u4e0a\u7ebf\u65f6\uff0c\u53e6\u4e00\u65b9\u9762\u6d88\u78e8\u4eba\u7684\u8010\u5fc3\u548c\u6597\u5fd7\u3002 \u6211\u5728\u300a\u804c\u573a\u57f9\u8bad\u7b2c\u4e94\u671f\uff1a\u804c\u573a\u7684\u771f\u76f8\u300b\u4e2d\u8bb2\u8fc7\u89e3\u9898\u601d\u8def\uff1a\u300e",(0,a.yg)("strong",{parentName:"p"},"\u8981\u6452\u5f03\u5355\u7eaf\u4f9d\u9760\u5458\u5de5\u4e4b\u95f4\u4e92\u76f8\u63d0\u9192\u3001\u4f9d\u9760\u4e2a\u4eba\u8ba4\u771f\u7ec6\u81f4\u6765\u89c4\u907f\u76f8\u540c\u9519\u8bef\u7684\u56fa\u6709\u601d\u8def\uff0c\u94c1\u6253\u8425\u76d8\u6d41\u6c34\u5175\uff0c\u9760\u4eba\u7ec8\u5f52\u662f\u9760\u4e0d\u4f4f\u7684\uff0c\u6700\u597d\u9760\u9075\u5faa\u89c4\u5219\u7684\u673a\u5668"),"\u300f\u3002\n\u738b\u6dee\u5728\u300a\u4ee5 Facebook \u4e3a\u6848\u4f8b\u5256\u6790\u79d1\u6280\u516c\u53f8\u5e94\u6709\u7684\u5de5\u5177\u6587\u5316\u300b\u4e00\u6587\u4e2d\u8c08\u53ca\uff0c\u57fa\u672c\u7406\u5ff5\u5c31\u662f",(0,a.yg)("strong",{parentName:"p"},'\u51e1\u662f\u88ab\u5f88\u591a\u4eba\u4e0d\u65ad\u91cd\u590d\u7684\u597d\u4e60\u60ef\uff0c\u8981\u5c06\u5176\u81ea\u52a8\u5316\uff0c\u7ed1\u5b9a\u5230\u5de5\u5177\u4e4b\u4e2d\uff0c\u4ee5"Don\'t make me think"\u7684\u65b9\u5f0f\u6765\u63a8\u5e7f\u6700\u4f73\u5b9e\u8df5\uff08best practice\uff09'),"\u3002"),(0,a.yg)("p",null,"\u57fa\u4e8e\u4ee5\u4e0a\u539f\u56e0\uff0c\u6211\u4eec\u8ba4\u4e3a\uff0c",(0,a.yg)("strong",{parentName:"p"},"\u51e1\u662f\u88ab\u4e0d\u65ad\u91cd\u590d\u7684\u8fc7\u7a0b\uff0c\u5c06\u5176\u5de5\u5177\u5316\uff0c\u7ed1\u5b9a\u5230\u81ea\u52a8\u5316\u6d41\u7a0b\u4e4b\u4e2d\uff0c\u51cf\u5c11\u4e0d\u5fc5\u8981\u7684\u5fc3\u667a\u8d1f\u62c5"),"\u3002\n\u8fd9\u4e5f\u5c31\u662f\u8fc7\u53bb\u51e0\u5e74\u91cc\u6211\u4eec\u4e00\u5b63\u5b63\u5730\u63a8\u8fdb\u6301\u7eed\u96c6\u6210\uff08Continuous Integration\uff0cCI\uff09\u7684\u539f\u56e0\uff0c\u628a\u6211\u4eec\u7684\u7ecf\u9a8c\u6559\u8bad\u53d8\u6210\u53ef\u91cd\u590d\u7684\u89c4\u5219\uff0c\u878d\u5165\u5de5\u5177\u4e2d\uff0c\u878d\u5165\u81ea\u52a8\u5316\u6d41\u7a0b\u4e2d\uff0c\u800c\u4e0d\u662f\u4e00\u4ee3\u4e00\u4ee3\u53e3\u53e3\u76f8\u4f20\u3002"),(0,a.yg)("p",null,"\u597d\u4e86\uff0c\u5728\u4e3e\u5177\u4f53\u7684\u4f8b\u5b50\u4e4b\u524d\uff0c\u8ba9\u6211\u4eec\u5927\u58f0\u8bfb\u51fa\u8fd9\u51e0\u6761 Slogan\uff1a"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"Don't make me think!"),(0,a.yg)("li",{parentName:"ul"},"\u51cf\u5c11\u4e0d\u5fc5\u8981\u7684\u5fc3\u667a\u8d1f\u62c5\uff01")),(0,a.yg)("h3",{id:"if-it-hurts-do-it-more-and-often"},"If it hurts, do it more and often"),(0,a.yg)("p",null,"\u6211\u4eec\u4e0d\u80fd\u6b7b\u4e8e\u542c\u5929\u7531\u547d\u548c\u6f2b\u4e0d\u7ecf\u5fc3\u3002\n\u5de5\u7a0b\u5e08\u4e3a\u4ec0\u4e48\u4f1a\u542c\u5929\u7531\u547d\uff1f"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u56e0\u4e3a\u7ebf\u4e0a\u65e5\u5fd7\u91cc\u7684\u5f02\u5e38\u5b9e\u5728\u662f\u592a\u591a\u4e86\uff0c\u5904\u7406\u4e0d\u8fc7\u6765\u3002",(0,a.yg)("ul",{parentName:"li"},(0,a.yg)("li",{parentName:"ul"},"\u56e0\u4e3a\u5f02\u5e38\u592a\u591a\u4e86\uff0c\u6df9\u6ca1\u4e86\u81f4\u547d\u5f02\u5e38\uff0c\u4ee5\u81f3\u4e8e\u670d\u52a1\u6302\u5f97\u6b7b\u6b7b\u7684\u624d\u53d1\u73b0\u95ee\u9898\u5df2\u7ecf\u5b58\u5728N\u4e45\u4e86\u3002"))),(0,a.yg)("li",{parentName:"ul"},"\u56e0\u4e3a\u660e\u5929\u5c31\u8981\u63d0\u6d4b\u4e86\uff0c\u4ee3\u7801\u5408\u5e76\u51b2\u7a81\u8fd8\u6709\u51e0\u5343\u4e2a\u3002",(0,a.yg)("ul",{parentName:"li"},(0,a.yg)("li",{parentName:"ul"},"\u6bcf\u5230\u5e38\u89c4\u7248\u672c\u63d0\u6d4b\u65f6\u5c31\u5fc3\u91cc\u6253\u9f13\uff0c\u5408\u5e76\u4e2a\u4ee3\u7801\u90fd\u5f97\u9884\u7559\u4e24\u5929\u65f6\u95f4\u3002"))),(0,a.yg)("li",{parentName:"ul"},"\u56e0\u4e3a\u753b\u65f6\u5e8f\u56fe\u597d\u70e6\uff0c\u6240\u4ee5\u590d\u6742\u7cfb\u7edf\u7684\u6570\u636e\u6d41\u8f6c\u9760\u201c\u5fc3\u7b97\u201d\u3001\u9760\u6587\u5b57\u63cf\u8ff0\u3002",(0,a.yg)("ul",{parentName:"li"},(0,a.yg)("li",{parentName:"ul"},"\u4eba\u8111\u5bb9\u6613\u6709\u601d\u7ef4\u6b7b\u89d2\uff0c\u4e00\u4e2a\u8003\u8651\u4e0d\u5230\uff0c\u7cfb\u7edf\u5c31\u9632\u4e0d\u4f4f\u5e76\u53d1\u63d0\u4ea4\u548c\u91cd\u590d\u63d0\u4ea4\u3002"))),(0,a.yg)("li",{parentName:"ul"},"\u2026\u2026")),(0,a.yg)("p",null,"\u56e0\u4e3a\u5df2\u7136\u96c6\u814b\u6210\u88d8\uff0c\u6240\u4ee5\u505a\u4e8b\u524d\u6211\u4eec\u5404\u79cd\u7ea0\u7ed3\u548c\u62b5\u89e6\uff0c\u4e8e\u662f\u627e\u5404\u79cd\u7406\u7531\u62d6\u5ef6\u3002\n\u600e\u4e48\u529e\uff1f\n\u6211\u5728\u300a\u804c\u4e1a\u5316\u76847\u4e2a\u7ec6\u8282\u300b\u91cc\u8bb2\u5230\uff0c \u5982\u679c\u4e00\u4ef6\u4e8b\u505a\u8d77\u6765\u5f88\u70e6\uff0c\u90a3\u5c31\u628a\u5b83\u62c6\u6210\u5f88\u591a\u5757\u513f\uff0c\u6bcf\u5929\u505a\u4e00\u70b9\uff0c\u6bcf\u6b21\u505a\u4e00\u70b9\u3002"),(0,a.yg)("h3",{id:"\u8fd9\u4e2a\u4e16\u754c\u4ece\u6765\u6ca1\u6709\u4ec0\u4e48\u6551\u4e16\u4e3b"},"\u8fd9\u4e2a\u4e16\u754c\u4ece\u6765\u6ca1\u6709\u4ec0\u4e48\u6551\u4e16\u4e3b"),(0,a.yg)("p",null,"\u8fd9\u4e2a\u54f2\u5b66\u6211\u8fc7\u53bb\u51e0\u5e74\u91cc\u4e00\u800c\u518d\u518d\u800c\u4e09\u5730\u8bb2\u3002\u5728\u300a\u804c\u4e1a\u57f9\u8bad\u7b2c\u4e94\u671f\uff1a\u804c\u573a\u7684\u771f\u76f8\u300b\u4e2d\uff0c\u6211\u8bf4\uff1a\u8fc7\u53bb\u51e0\u5e74\u91cc\uff0c\u6211\u4eec\u6df1\u6df1\u5730\u4f53\u4f1a\u5230\uff0c\u4ece\u6765\u5c31\u6ca1\u6709\u4ec0\u4e48\u6551\u4e16\u4e3b\uff0c\u8981\u521b\u9020\u4eba\u7c7b\u7684\u5e78\u798f\u5168\u9760\u6211\u4eec\u81ea\u5df1\uff0c\u4e0d\u8981\u6307\u671b\u6709\u4ec0\u4e48\u4eba\u80fd\u6551\u6211\u4eec\uff0c\u53ea\u80fd\u7ede\u5c3d\u8111\u6c41\u95ef\u9635\u3002"),(0,a.yg)("p",null,"\u4e3a\u4ec0\u4e48\uff1f\n\u6280\u672f\u56e2\u961f\u662f\u4e92\u8054\u7f51\u516c\u53f8\u91cc\u6700\u8ba4\u771f\u6700\u4e13\u4e1a\u6700\u5b9e\u64cd\u6700\u9760\u8c31\u7684\u4e00\u7fa4\u4eba\uff0c\u5982\u679c\u6211\u4eec\u51e1\u4e8b\u90fd\u8981\u6307\u671b\u522b\u4eba\u7ed9\u6211\u4eec\u89e3\u51b3\u65b9\u6848\u548c\u601d\u8def\uff0c\u6307\u671b\u522b\u4eba\u6bd4\u6211\u4eec\u66f4\u8ba4\u771f\uff0c\u90a3\u8fd9\u4e2a\u516c\u53f8\u5c31\u5371\u5728\u65e6\u5915\u4e86\u3002\n\u6240\u4ee5\uff0c\u6211\u57282012\u5e74\u7684\u98de\u884c\u7814\u8ba8\u4f1a\u4e0a\u629b\u51fa\u4e24\u4e2a Slogan\uff1a"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u629b\u6389\u5e7b\u60f3\uff0c\u52c7\u6562\u9762\u5bf9\uff01"),(0,a.yg)("li",{parentName:"ul"},"\u76f4\u9762\u767d\u5203\u6218\uff01")),(0,a.yg)("p",null,"\u57fa\u4e8e\u8fd9\u4e2a\u54f2\u5b66\uff0c\u6211\u4eec\u884d\u751f\u51fa\u4e24\u4e2a Slogan\uff1a"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u4e0d\u8981\u7b49\u6b7b\uff01"),(0,a.yg)("li",{parentName:"ul"},"\u5411\u524d\u8fc8\u534a\u6b65\u5bf9\u63a5\uff01")),(0,a.yg)("h3",{id:"\u4e00\u5b9a\u8981\u6709\u540e\u5907\u65b9\u6848"},"\u4e00\u5b9a\u8981\u6709\u540e\u5907\u65b9\u6848"),(0,a.yg)("p",null,"\u707e\u96be\uff0c\u603b\u662f\u5728\u4f60\u610f\u6599\u4e4b\u5916\u3002\n\u4e00\u4e2a\u540e\u5907\u65b9\u6848\uff0c\n\u6700\u540e\u4e00\u6761\u8ba9\u4f60\u8d77\u6b7b\u56de\u751f\u7684\u8def\u3002"),(0,a.yg)("p",null,"\u65e9\u5e74\u95f4\uff0c\u4faf\u5c0f\u5f3a\u66fe\u7ecf\u8bf4\u8fc7\uff1a \u5982\u679c\u4f60\u5728\u804c\u573a\uff0c\u9700\u8981\u6709\u4e09\u4e2a\u597d\u4e60\u60ef\uff0c1\uff0c\u80fd\u9a6c\u4e0a\u505a\u7684\u4e8b\u60c5\u9a6c\u4e0a\u505a\u30022\uff0c\u6bcf\u4e2a\u4e8b\u60c5\u8981\u6709\u59cb\u6709\u7ec8\u30023\uff0c\u8981\u6709\u8fd9\u4e2a\u4e60\u60ef\u601d\u7ef4\uff0c\u6ca1\u6709\u82e6\u52b3\uff0c\u53ea\u6709\u529f\u52b3\u3002\u4f46\u5982\u679c\u6ca1\u6709\u6781\u5176\u52aa\u529b\uff0c\u901a\u5e38\u4e5f\u4e0d\u4f1a\u6709\u529f\u52b3\u3002\n\u5ef6\u7eed\u7740\u8fd9\u4e2a\u601d\u7ef4\uff0c\u6211\u4eec\u8fc7\u53bb\u51e0\u5e74\u91cc\u53cd\u590d\u5f3a\u8c03\uff1a",(0,a.yg)("strong",{parentName:"p"},"\u6ca1\u6709\u7ed3\u679c\u5c31\u6ca1\u6709\u610f\u4e49"),"\u3002\u4e0d\u8981\u671f\u671b\u516c\u53f8\u56e0\u4e3a\u4f60\u548c\u5c0f\u4f19\u4f34\u4eec\u6709\u82e6\u52b3\u800c\u5bbd\u5bb9\u4f60\u4eec\u6ca1\u6709\u4ea7\u51fa\uff0c\u8fd9\u662f\u4e00\u4e2a\u5546\u4e1a\u516c\u53f8\u3002"),(0,a.yg)("h3",{id:"devops-\u65b0\u516b\u8363\u516b\u803b\u6bcf\u4e00\u6761\u90fd\u662f\u8840\u8089\u957f\u57ce"},"DevOps \u65b0\u516b\u8363\u516b\u803b\uff0c\u6bcf\u4e00\u6761\u90fd\u662f\u8840\u8089\u957f\u57ce"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},"\u4ee5\u968f\u65f6\u53ef\u6269\u5bb9\u3001\u53ef\u7f29\u5bb9\u3001\u53ef\u91cd\u542f\u3001\u53ef\u5207\u6362\u673a\u623f\u6d41\u91cf\u4e3a\u8363\uff0c\u4ee5\u4e0d\u80fd\u8fc1\u79fb\u4e3a\u803b\u3002"),(0,a.yg)("li",{parentName:"ol"},"\u4ee5\u53ef\u914d\u7f6e\u4e3a\u8363\uff0c\u4ee5\u786c\u7f16\u7801\u4e3a\u803b\u3002"),(0,a.yg)("li",{parentName:"ol"},"\u4ee5\u7cfb\u7edf\u4e92\u5907\u4e3a\u8363\uff0c\u4ee5\u7cfb\u7edf\u5355\u70b9\u4e3a\u803b\u3002"),(0,a.yg)("li",{parentName:"ol"},"\u4ee5\u4ea4\u4ed8\u65f6\u6709\u76d1\u63a7\u62a5\u8b66\u4e3a\u8363\uff0c\u4ee5\u4ea4\u4ed8\u88f8\u5954\u7cfb\u7edf\u4e3a\u803b\u3002"),(0,a.yg)("li",{parentName:"ol"},"\u4ee5\u65e0\u72b6\u6001\u4e3a\u8363\uff0c\u4ee5\u6709\u72b6\u6001\u4e3a\u803b\u3002"),(0,a.yg)("li",{parentName:"ol"},"\u4ee5\u6807\u51c6\u5316\u4e3a\u8363\uff0c\u4ee5\u7279\u6b8a\u5316\u4e3a\u803b\u3002"),(0,a.yg)("li",{parentName:"ol"},"\u4ee5\u81ea\u52a8\u5316\u5de5\u5177\u4e3a\u8363\uff0c\u4ee5\u4eba\u8089\u64cd\u4f5c\u4e3a\u803b\u3002"),(0,a.yg)("li",{parentName:"ol"},"\u4ee5\u65e0\u4eba\u503c\u5b88\u4e3a\u8363\uff0c\u4ee5\u4eba\u5de5\u4ecb\u5165\u4e3a\u803b\u3002")),(0,a.yg)("h3",{id:"\u6838\u5fc3\u4e1a\u52a1\u6d41\u7a0b\u7684\u6545\u969c\u5904\u7406\u539f\u5219\u4e0d\u53ef\u604b\u6218"},"\u6838\u5fc3\u4e1a\u52a1\u6d41\u7a0b\u7684\u6545\u969c\u5904\u7406\u539f\u5219\uff1a\u4e0d\u53ef\u604b\u6218"),(0,a.yg)("p",null,"\u7b2c\u4e00\u65f6\u95f4\u53eb\u591a\u4eba\u4e00\u8d77\u5206\u5934\u67e5\uff1a\u67e5\u673a\u623f\uff0c\u67e5\u6d41\u91cf\uff0c\u67e5\u5e94\u7528\u6027\u80fd\uff0c\u67e5\u6570\u636e\u5e93\uff0c\u67e5Redis\u3002\n\u5982\u679c\u8fdf\u8fdf\u5b9a\u4f4d\u4e0d\u4e86\u95ee\u9898\uff08\u6bd4\u5982\u5341\u5206\u949f\u4e4b\u5185\uff09\uff0c\u5c31\u4e0d\u53ef\u604b\u6218\uff0c\u5fc5\u987b\u6062\u590d\u4e1a\u52a1\uff08\u4e09\u677f\u65a7\uff09\uff1a\n\u7b2c\u4e00\u62db\u91cd\u542f\u5e94\u7528\uff0c\n\u7b2c\u4e8c\u62db\u56de\u9000\u7248\u672c\uff0c\n\u6700\u540e\u4e00\u62db\u662f\u5f02\u5730\u591a\u6d3b\u5207\u673a\u623f\u6d41\u91cf\uff0c\u628a\u53d7\u5f71\u54cd\u7684\u5546\u6237\u5207\u5230\u53e6\u4e00\u4e2a\u673a\u623f\u7684\u5355\u5143\u683c\u91cc\u3002\n\u5343\u4e07\u522b\u5728\u5b9a\u4f4d\u95ee\u9898\u4e0a\u82b1\u592a\u591a\u65f6\u95f4\u3002"),(0,a.yg)("h3",{id:"\u5f53\u6211\u4eec\u8c08\u91cd\u6784\u7684\u65f6\u5019\u6211\u4eec\u60f3\u8c08\u4ec0\u4e48"},"\u5f53\u6211\u4eec\u8c08\u91cd\u6784\u7684\u65f6\u5019\u6211\u4eec\u60f3\u8c08\u4ec0\u4e48"),(0,a.yg)("p",null,"\u5982\u679c\u4f60\u5728\u7e41\u5fd9\u7684\u4e1a\u52a1\u8fed\u4ee3\u4e2d\u5f00\u59cb\u7cfb\u7edf\u91cd\u6784\uff0c\u606d\u559c\u4f60\uff0c\u8bf4\u660e\u4f60\u7684\u4e1a\u52a1\u5df2\u7ecf\u5b8c\u6210\u4e86\u4ece0\u52301\uff0c\u6b63\u5728\u4ece1\u8d70\u541110\uff0c\u6216\u8005\u4ece10\u8d70\u5411100\u3002"),(0,a.yg)("p",null,(0,a.yg)("strong",{parentName:"p"},"\u4e24\u4e2a\u201c\u662f\u5426\u6709\u5229\u4e8e\u201d\uff1a"),"\n",(0,a.yg)("strong",{parentName:"p"},"\u4e00\uff0c\u662f\u5426\u6709\u5229\u4e8e\u53d1\u5e03\u90e8\u7f72\u3002"),"\n",(0,a.yg)("strong",{parentName:"p"},"\u4e8c\uff0c\u662f\u5426\u6709\u5229\u4e8e\u6392\u9664\u6545\u969c\uff08\u662f\u5426\u6709\u5229\u4e8e\u5feb\u901f\u5b9a\u4f4d\u95ee\u9898\u548c\u89e3\u51b3\u95ee\u9898\uff09\u3002")),(0,a.yg)("p",null,"\xa0\n",(0,a.yg)("strong",{parentName:"p"},"\u4e24\u4e2a\u6212\u5f8b\uff1a"),"\n",(0,a.yg)("strong",{parentName:"p"},"\u6212\u5f8b\u4e00\uff1a\u51e1\u662f\u4e2d\u95f4\u4ef6\uff0c\u4e0d\u7ba1\u662f\u81ea\u4e3b\u5f00\u53d1\u7684\uff0c\u8fd8\u662f\u4ee5\u5f00\u6e90\u8f6f\u4ef6\u4e3a\u5185\u6838\u6784\u5efa\u51fa\u6765\u7684\uff0c\u90fd\u5fc5\u987b\u81ea\u5e26\u76d1\u63a7\u62a5\u8b66\uff0c\u5426\u5219\u4e0d\u5141\u8bb8\u4e0a\u7ebf\u3002"),"\n",(0,a.yg)("strong",{parentName:"p"},"\u6212\u5f8b\u4e8c\uff1a\u672c\u7740 Don't make me think \u7684\u54f2\u5b66\u601d\u8def\uff0c\u6240\u6709\u5bf9\u6392\u9664\u6545\u969c\u6709\u5e2e\u52a9\u7684\u4fe1\u606f\uff0c\u90fd\u5fc5\u987b\u4e00\u7ad9\u5f0f\u5c55\u793a\u5728\u4ea4\u4e92\u754c\u9762\u4e0a\uff0c\u4e5f\u5c31\u662f\u4e2d\u95f4\u4ef6\u7684\u63a7\u5236\u53f0\u4e0a\uff0c\u6216\u8fd0\u7ef4\u81ea\u52a8\u5316\u5e73\u53f0\u4e0a\uff0c\u6216\u7814\u53d1\u534f\u4f5c\u5e73\u53f0\u4e0a\u3002")),(0,a.yg)("h3",{id:"\u8981\u719f\u7ec3\u638c\u63e1\u7684\u4e03\u4e2a\u4eba\u751f\u5de5\u5177"},"\u8981\u719f\u7ec3\u638c\u63e1\u7684\u4e03\u4e2a\u4eba\u751f\u5de5\u5177"),(0,a.yg)("h4",{id:"\u4e00swot\u5206\u6790\u6cd5"},"\u4e00\u3001SWOT\u5206\u6790\u6cd5\uff1a"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"Strengths\uff1a\u4f18\u52bf"),(0,a.yg)("li",{parentName:"ul"},"Weaknesses\uff1a\u52a3\u52bf"),(0,a.yg)("li",{parentName:"ul"},"Opportunities\uff1a\u673a\u4f1a"),(0,a.yg)("li",{parentName:"ul"},"Threats\uff1a\u5a01\u80c1"),(0,a.yg)("li",{parentName:"ul"},"\u610f\u4e49\uff1a\u5e2e\u60a8\u6e05\u6670\u5730\u628a\u63e1\u5168\u5c40\uff0c\u5206\u6790\u81ea\u5df1\u5728\u8d44\u6e90\u65b9\u9762\u7684\u4f18\u52bf\u4e0e\u52a3\u52bf\uff0c\u628a\u63e1\u73af\u5883\u63d0\u4f9b\u7684\u673a\u4f1a\uff0c\u9632\u8303\u53ef\u80fd\u5b58\u5728\u7684\u98ce\u9669\u4e0e\u5a01\u80c1\uff0c\u5bf9\u6211\u4eec\u7684\u6210\u529f\u6709\u975e\u5e38\u91cd\u8981\u7684\u610f\u4e49\u3002")),(0,a.yg)("h4",{id:"\u4e8cpdca\u5faa\u73af\u89c4\u5219"},"\u4e8c\u3001PDCA\u5faa\u73af\u89c4\u5219"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"Plan\uff1a\u5236\u5b9a\u76ee\u6807\u4e0e\u8ba1\u5212\uff1b"),(0,a.yg)("li",{parentName:"ul"},"Do\uff1a\u4efb\u52a1\u5c55\u5f00\uff0c\u7ec4\u7ec7\u5b9e\u65bd\uff1b"),(0,a.yg)("li",{parentName:"ul"},"Check\uff1a\u5bf9\u8fc7\u7a0b\u4e2d\u7684\u5173\u952e\u70b9\u548c\u6700\u7ec8\u7ed3\u679c\u8fdb\u884c\u68c0\u67e5\uff1b"),(0,a.yg)("li",{parentName:"ul"},"Action\uff1a\u7ea0\u6b63\u504f\u5dee\uff0c\u5bf9\u6210\u679c\u8fdb\u884c\u6807\u51c6\u5316\uff0c\u5e76\u786e\u5b9a\u65b0\u7684\u76ee\u6807\uff0c\u5236\u5b9a\u4e0b\u4e00\u8f6e\u8ba1\u5212\u3002"),(0,a.yg)("li",{parentName:"ul"},"\u610f\u4e49\uff1a\u6bcf\u4e00\u9879\u5de5\u4f5c\uff0c\u90fd\u662f\u4e00\u4e2apdca\u5faa\u73af\uff0c\u90fd\u9700\u8981\u8ba1\u5212\u3001\u5b9e\u65bd\u3001\u68c0\u67e5\u7ed3\u679c\uff0c\u5e76\u8fdb\u4e00\u6b65\u8fdb\u884c\u6539\u8fdb\uff0c\u540c\u65f6\u8fdb\u5165\u4e0b\u4e00\u4e2a\u5faa\u73af\uff0c\u53ea\u6709\u5728\u65e5\u79ef\u6708\u7d2f\u7684\u6e10\u8fdb\u6539\u5584\u4e2d\uff0c\u624d\u53ef\u80fd\u4f1a\u6709\u8d28\u7684\u98de\u8dc3\uff0c\u624d\u53ef\u80fd\u53d6\u5f97\u5b8c\u5584\u6bcf\u4e00\u9879\u5de5\u4f5c\uff0c\u5b8c\u5584\u81ea\u5df1\u7684\u4eba\u751f\u3002")),(0,a.yg)("h4",{id:"\u4e096w2h\u6cd5"},"\u4e09\u30016W2H\u6cd5"),(0,a.yg)("p",null,"**"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"What\uff1a\u5de5\u4f5c\u7684\u5185\u5bb9\u548c\u8fbe\u6210\u7684\u76ee\u6807\uff1b"),(0,a.yg)("li",{parentName:"ul"},"Why\uff1a\u505a\u8fd9\u9879\u5de5\u4f5c\u7684\u539f\u56e0\uff1b"),(0,a.yg)("li",{parentName:"ul"},"Who\uff1a\u53c2\u52a0\u8fd9\u9879\u5de5\u4f5c\u7684\u5177\u4f53\u4eba\u5458\uff0c\u4ee5\u53ca\u8d1f\u8d23\u4eba\uff1b"),(0,a.yg)("li",{parentName:"ul"},"When\uff1a\u5728\u4ec0\u4e48\u65f6\u95f4\u3001\u4ec0\u4e48\u65f6\u95f4\u6bb5\u8fdb\u884c\u5de5\u4f5c\uff1b"),(0,a.yg)("li",{parentName:"ul"},"Where\uff1a\u5de5\u4f5c\u53d1\u751f\u7684\u5730\u70b9 \uff1b"),(0,a.yg)("li",{parentName:"ul"},"Which\uff1a\u54ea\u4e00\u79cd\u65b9\u6cd5\u6216\u9014\u5f84\uff1b"),(0,a.yg)("li",{parentName:"ul"},"How\uff1a\u7528\u4ec0\u4e48\u65b9\u6cd5\u8fdb\u884c\uff1b"),(0,a.yg)("li",{parentName:"ul"},"How much\uff1a\u9700\u8981\u591a\u5c11\u6210\u672c\uff1f"),(0,a.yg)("li",{parentName:"ul"},"\u610f\u4e49\uff1a\u505a\u4efb\u4f55\u5de5\u4f5c\u90fd\u5e94\u8be5\u4ece6W2H\u6765\u601d\u8003\uff0c\u8fd9\u6709\u52a9\u4e8e\u6211\u4eec\u7684\u601d\u8def\u7684\u6761\u7406\u5316\uff0c\u675c\u7edd\u76f2\u76ee\u6027\u3002\u6211\u4eec\u7684\u6c47\u62a5\u4e5f\u5e94\u8be5\u75286W2H\uff0c\u80fd\u8282\u7ea6\u5199\u62a5\u544a\u53ca\u770b\u62a5\u544a\u7684\u65f6\u95f4\u3002")),(0,a.yg)("h4",{id:"\u56dbsmart\u539f\u5219"},"\u56db\u3001SMART\u539f\u5219"),(0,a.yg)("p",null,"**"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"Specific \u5177\u4f53\u7684\uff1b"),(0,a.yg)("li",{parentName:"ul"},"Measurable \u53ef\u6d4b\u91cf\u7684\uff1b"),(0,a.yg)("li",{parentName:"ul"},"Attainable \u53ef\u8fbe\u5230\u7684\uff1b"),(0,a.yg)("li",{parentName:"ul"},"Relevant \u76f8\u5173\u7684\uff1b"),(0,a.yg)("li",{parentName:"ul"},"Time based \u65f6\u95f4\u7684\uff1b"),(0,a.yg)("li",{parentName:"ul"},"\u610f\u4e49\uff1a\u4eba\u4eec\u5728\u5236\u5b9a\u5de5\u4f5c\u76ee\u6807\u6216\u8005\u4efb\u52a1\u76ee\u6807\u65f6\uff0c\u8003\u8651\u4e00\u4e0b\u76ee\u6807\u4e0e\u8ba1\u5212\u662f\u4e0d\u662fSMART\u5316\u7684\u3002\u53ea\u6709\u5177\u5907SMART\u5316\u7684\u8ba1\u5212\u624d\u662f\u5177\u6709\u826f\u597d\u53ef\u5b9e\u65bd\u6027\u7684\uff0c\u4e5f\u624d\u80fd\u6307\u5bfc\u4fdd\u8bc1\u8ba1\u5212\u5f97\u4ee5\u5b9e\u73b0\u3002"),(0,a.yg)("li",{parentName:"ul"},"\u7279\u522b\u6ce8\u660e\uff1a")),(0,a.yg)("p",null,"\u6709\u7684\u53c8\u5982\u6b64\u89e3\u91ca\u6b64\u539f\u5219\uff1a\n\u2014\u2014S\u4ee3\u8868\u5177\u4f53(Specific)\uff0c\u6307\u7ee9\u6548\u8003\u6838\u8981\u5207\u4e2d\u7279\u5b9a\u7684\u5de5\u4f5c\u6307\u6807\uff0c\u4e0d\u80fd\u7b3c\u7edf\uff1b\n\u2014\u2014M\u4ee3\u8868\u53ef\u5ea6\u91cf(Measurable)\uff0c\u6307\u7ee9\u6548\u6307\u6807\u662f\u6570\u91cf\u5316\u6216\u8005\u884c\u4e3a\u5316\u7684\uff0c\u9a8c\u8bc1\u8fd9\u4e9b\u7ee9\u6548\u6307\u6807\u7684\u6570\u636e\u6216\u8005\u4fe1\u606f\u662f\u53ef\u4ee5\u83b7\u5f97\u7684\uff1b\n\u2014\u2014A\u4ee3\u8868\u53ef\u5b9e\u73b0(Attainable)\uff0c\u6307\u7ee9\u6548\u6307\u6807\u5728\u4ed8\u51fa\u52aa\u529b\u7684\u60c5\u51b5\u4e0b\u53ef\u4ee5\u5b9e\u73b0\uff0c\u907f\u514d\u8bbe\u7acb\u8fc7\u9ad8\u6216\u8fc7\u4f4e\u7684\u76ee\u6807\uff1b\n\u2014\u2014R\u4ee3\u8868\u73b0\u5b9e\u6027(realistic)\uff0c\u6307\u7ee9\u6548\u6307\u6807\u662f\u5b9e\u5b9e\u5728\u5728\u7684\uff0c\u53ef\u4ee5\u8bc1\u660e\u548c\u89c2\u5bdf\uff1b\n\u2014\u2014T\u4ee3\u8868\u6709\u65f6\u9650(time bound)\uff0c\u6ce8\u91cd\u5b8c\u6210\u7ee9\u6548\u6307\u6807\u7684\u7279\u5b9a\u671f\u9650\u3002"),(0,a.yg)("h4",{id:"\u4e94\u65f6\u95f4\u7ba1\u7406-\u91cd\u8981\u4e0e\u7d27\u6025"},"\u4e94\u3001\u65f6\u95f4\u7ba1\u7406-\u91cd\u8981\u4e0e\u7d27\u6025"),(0,a.yg)("p",null,"**"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"A\u3001\u91cd\u8981\u4e14\u7d27\u6025")),(0,a.yg)("p",null,"\u7d27\u6025\u72b6\u51b5\n\u8feb\u5207\u7684\u95ee\u9898\n\u9650\u671f\u5b8c\u6210\u7684\u5de5\u4f5c\n\u4f60\u4e0d\u505a\u5176\u4ed6\u4eba\u4e5f\u4e0d\u80fd\u505a"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"B\u3001\u91cd\u8981\u4e0d\u7d27\u6025")),(0,a.yg)("p",null,"\u51c6\u5907\u5de5\u4f5c\n\u9884\u9632\u63aa\u65bd\n\u4ef7\u503c\u89c2\u7684\u6f84\u6e05\n\u8ba1\u5212\n\u4eba\u9645\u5173\u7cfb\u7684\u5efa\u7acb\n\u771f\u6b63\u7684\u518d\u521b\u9020\n\u589e\u8fdb\u81ea\u5df1\u7684\u80fd\u529b"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"C\u3001\u7d27\u6025\u4e0d\u91cd\u8981")),(0,a.yg)("p",null,"\u9020\u6210\u5e72\u6270\u7684\u4e8b\u3001\u7535\u8bdd\u3001\n\u4fe1\u4ef6\u3001\u62a5\u544a\n\u4f1a\u8bae\n\u8bb8\u591a\u8feb\u5728\u7709\u6377\u7684\u6025\u4e8b\n\u7b26\u5408\u522b\u4eba\u671f\u671b\u7684\u4e8b"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"D\u3001\u4e0d\u91cd\u8981\u4e0d\u7d27\u6025")),(0,a.yg)("p",null,"\u5fd9\u788c\u7410\u788e\u7684\u4e8b\n\u5e7f\u544a\u51fd\u4ef6\n\u7535\u8bdd\n\u9003\u907f\u6027\u6d3b\u52a8\n\u7b49\u5f85\u65f6\u95f4\n\u4f18\u5148\u987a\u5e8f=\u91cd\u8981\u6027*\u7d27\u8feb\u6027\n\u5728\u8fdb\u884c\u65f6\u95f4\u5b89\u6392\u65f6\uff0c\u5e94\u6743\u8861\u5404\u79cd\u4e8b\u60c5\u7684\u4f18\u5148\u987a\u5e8f\uff0c\u8981\u5b66\u4f1a\u201c\u5f39\u94a2\u7434\u201d\u3002\n\u5bf9\u5de5\u4f5c\u8981\u6709\u524d\u77bb\u80fd\u529b\uff0c\u9632\u60a3\u4e8e\u672a\u7136\uff0c\u5982\u679c\u603b\u662f\u5728\u5fd9\u4e8e\u6551\u706b\uff0c\u90a3\u5c06\u4f7f\u6211\u4eec\u7684\u5de5\u4f5c\u6c38\u8fdc\u5904\u7406\u88ab\u52a8\u4e4b\u4e2d\u3002\n**"),(0,a.yg)("h4",{id:"\u516d\u4efb\u52a1\u5206\u89e3\u6cd5wbs"},"\u516d\u3001\u4efb\u52a1\u5206\u89e3\u6cd5","[WBS]"),(0,a.yg)("p",null,"\u5373Work Breakdown Structure\uff0c\u5982\u4f55\u8fdb\u884cWBS\u5206\u89e3\uff1a\u76ee\u6807\u2192\u4efb\u52a1\u2192\u5de5\u4f5c\u2192\u6d3b\u52a8\nWBS\u5206\u89e3\u7684\u539f\u5219\uff1a\n\u5c06\u4e3b\u4f53\u76ee\u6807\u9010\u6b65\u7ec6\u5316\u5206\u89e3\uff0c\u6700\u5e95\u5c42\u7684\u4efb\u52a1\u6d3b\u52a8\u53ef\u76f4\u63a5\u5206\u6d3e\u5230\u4e2a\u4eba\u53bb\u5b8c\u6210\uff1b\u6bcf\u4e2a\u4efb\u52a1\u539f\u5219\u4e0a\u8981\u6c42\u5206\u89e3\u5230\u4e0d\u80fd\u518d\u7ec6\u5206\u4e3a\u6b62\u3002\nWBS\u5206\u89e3\u7684\u65b9\u6cd5\uff1a\n\u81f3\u4e0a\u800c\u4e0b\u4e0e\u81f3\u4e0b\u800c\u4e0a\u7684\u5145\u5206\u6c9f\u901a\uff1b\n\u4e00\u5bf9\u4e00\u4e2a\u522b\u4ea4\u6d41\uff1b\n\u5c0f\u7ec4\u8ba8\u8bba\u3002\nWBS\u5206\u89e3\u7684\u6807\u51c6\uff1a\n\u5206\u89e3\u540e\u7684\u6d3b\u52a8\u7ed3\u6784\u6e05\u6670\uff1b\n\u903b\u8f91\u4e0a\u5f62\u6210\u4e00\u4e2a\u5927\u7684\u6d3b\u52a8\uff1b\n\u96c6\u6210\u4e86\u6240\u6709\u7684\u5173\u952e\u56e0\u7d20\u5305\u542b\u4e34\u65f6\u7684\u91cc\u7a0b\u7891\u548c\u76d1\u63a7\u70b9\uff1b\n\u6240\u6709\u6d3b\u52a8\u5168\u90e8\u5b9a\u4e49\u6e05\u695a\u3002\n\u610f\u4e49\uff1a\u5b66\u4f1a\u5206\u89e3\u4efb\u52a1\uff0c\u53ea\u6709\u5c06\u4efb\u52a1\u5206\u89e3\u5f97\u8db3\u591f\u7ec6\uff0c\u60a8\u624d\u80fd\u5fc3\u91cc\u6709\u6570\uff0c\u60a8\u624d\u80fd\u6709\u6761\u4e0d\u7d0a\u5730\u5de5\u4f5c\uff0c\u60a8\u624d\u80fd\u7edf\u7b79\u5b89\u6392\u60a8\u7684\u65f6\u95f4\u8868\u3002\n**"),(0,a.yg)("h4",{id:"\u4e03\u4e8c\u516b\u539f\u5219"},"\u4e03\u3001\u4e8c\u516b\u539f\u5219"),(0,a.yg)("p",null,"\u5df4\u5217\u7279\u5b9a\u5f8b\uff1a\u201c\u603b\u7ed3\u679c\u768480%\u662f\u7531\u603b\u6d88\u8017\u65f6\u95f4\u4e2d\u768420%\u6240\u5f62\u6210\u7684\u3002\u201d\u6309\u4e8b\u60c5\u7684\u201c\u91cd\u8981\u7a0b\u5ea6\u201d\u7f16\u6392\u4e8b\u52a1\u4f18\u5148\u6b21\u5e8f\u7684\u51c6\u5219\u662f\u5efa\u7acb\u5728\u201c\u91cd\u8981\u7684\u5c11\u6570\u4e0e\u7410\u788e\u7684\u591a\u6570\u201d\u7684\u539f\u7406\u7684\u57fa\u7840\u4e0a\u3002\n\u4e3e\u4f8b\u8bf4\u660e\uff1a\n80%\u7684\u9500\u552e\u989d\u662f\u6e90\u81ea20%\u7684\u987e\u5ba2\uff1b\n80%\u7684\u7535\u8bdd\u662f\u6765\u81ea20%\u7684\u670b\u53cb\uff1b\n80%\u7684\u603b\u4ea7\u91cf\u6765\u81ea20%\u7684\u4ea7\u54c1\uff1b\n80%\u7684\u8d22\u5bcc\u96c6\u4e2d\u572820%\u7684\u4eba\u624b\u4e2d\uff1b\n\u8fd9\u542f\u793a\u6211\u4eec\u5728\u5de5\u4f5c\u4e2d\u8981\u5584\u4e8e\u6293\u4e3b\u8981\u77db\u76fe\uff0c\u5584\u4e8e\u4ece\u7eb7\u7e41\u590d\u6742\u7684\u5de5\u4f5c\u4e2d\u7406\u51fa\u5934\u7eea\uff0c\u628a\u8d44\u6e90\u7528\u5728\u6700\u91cd\u8981\u3001\u6700\u7d27\u8feb\u7684\u4e8b\u60c5\u4e0a\u3002"),(0,a.yg)("h3",{id:"\u63d0\u9ad8\u63d0\u6d4b\u8d28\u91cf"},"\u63d0\u9ad8\u63d0\u6d4b\u8d28\u91cf"),(0,a.yg)("p",null,"QA\u7684\u804c\u8d23\u4e0d\u662f\u5f00\u53d1\u5199\u5b8c\u6254\u7ed9\u4eba\u5bb6\u6d4b\u8bd5\uff0c\u8fd9\u662f\u504f\u89c1\uff0c\u4e5f\u662f\u597d\u591a\u5f00\u53d1\u4eba\u5458\u4e00\u76f4\u6709\u7684\u9519\u8bef\u7684\u89c2\u5ff5\uff0cQA \u4e0d\u662f\u7b80\u5355\u7684\u9a8c\u8bc1\u529f\u80fd\u6027\u7684\uff08\u5f53\u7136\u5b58\u5728\u8fd9\u79cdAQ\uff09\uff0cQA\u66f4\u591a\u662f\u9a8c\u8bc1\u7a0b\u5e8f\u7684",(0,a.yg)("strong",{parentName:"p"},"\u5065\u58ee\u6027"),"\u3001",(0,a.yg)("strong",{parentName:"p"},"\u5bb9\u9519\u6027"),"\uff0c\u6240\u4ee5\u5728\u6211\u4eec\u8fd9\u91cc\u5e94\u8be5\u4fdd\u8bc1\u7a0b\u5e8f\u6700\u57fa\u672c\u7684\u529f\u80fd\u6027\u95ee\u9898\uff0c\u51cf\u5c11\u4ee3\u7801\u7684\u56de\u6eaf\uff0c\u8fd9\u6837\u624d\u80fd\u4e0d\u5f71\u54cd\u4ea7\u54c1\u7684\u8fc5\u901f\u8fed\u4ee3\uff0c\u4e0d\u5f71\u54cd\u4ea7\u54c1\u7684\u63a8\u8fdb\u3002"),(0,a.yg)("h3",{id:"\u5148\u5199\u6587\u6863\u518d\u5199\u4ee3\u7801"},"\u5148\u5199\u6587\u6863\u518d\u5199\u4ee3\u7801"),(0,a.yg)("p",null,"\u597d\u591a\u7a0b\u5e8f\u5458\u7684\u901a\u75c5\u5c31\u662f\u62ff\u5230\u9700\u6c42\u5c31\u5f00\u59cb\u5199\u4ee3\u7801\uff0c\u8fd9\u662f\u76f8\u5f53\u7684\u4e0d\u8d1f\u8d23\u4efb\u7684\uff0c\u5f88\u660e\u663e\u8fd9\u79cd\u505a\u6cd5\u6709\u95ee\u9898\u3002\u5e94\u8be5\u5148\u5199\u81ea\u5df1\u7684\u601d\u8def\uff0c\u5982\u679c\u529f\u80fd\u5927\u4e00\u4e9b\uff0c\u8981\u5148\u5199\u65b9\u6848\uff0c\u8bc4\u5ba1\u65b9\u6848\u3002\u601d\u8def\u3001\u65b9\u6848\u6ca1\u6709\u95ee\u9898\u5728\u52a8\u624b\u53bb\u5199\u4ee3\u7801\uff0c\u4f60\u4f1a\u53d1\u73b0\u5751\u4f1a\u5c11\u8e29\u597d\u591a\u3002"),(0,a.yg)("h3",{id:"\u4e00\u4e2a\u7a0b\u5e8f\u5458\u7684\u4ef7\u503c\u662f\u89e3\u51b3\u95ee\u9898\u7684\u80fd\u529b"},"\u4e00\u4e2a\u7a0b\u5e8f\u5458\u7684\u4ef7\u503c\u662f\u89e3\u51b3\u95ee\u9898\u7684\u80fd\u529b"),(0,a.yg)("p",null,"\u6280\u672f\u8d8a\u597d\u89e3\u51b3\u95ee\u9898\u7684\u80fd\u529b\u8d8a\u5f3a\uff0c\u8fd9\u4e2a\u6ca1\u6709\u95ee\u9898\uff0c\u8fd9\u662f\u4e00\u4e2a\u6b63\u5411\u6bd4\u4f8b\u5173\u7cfb\u3002\u4f46\u662f\u89e3\u51b3\u95ee\u9898\u7684\u80fd\u529b\uff0c\u4e0d\u4ec5\u4ec5\u5305\u62ec\u6280\u672f\uff0c\u4e5f\u5305\u62ec\u6c9f\u901a\u3001\u4e1a\u52a1\u7b49\u7b49\u5176\u4ed6\u65b9\u9762\u3002\u5728\u5de5\u4f5c\u4e2d\uff0c\u4e0d\u8981\u4ec5\u4ec5\u7684\u53bb\u5b66\u4e60\u5404\u79cd\u7f16\u7a0b\u6280\u672f\uff0c\u4e5f\u8981\u5b66\u4f1a\u6c9f\u901a\u3001\u4e1a\u52a1\u3002"),(0,a.yg)("h3",{id:"\u6ce8\u610f\u6d41\u7a0b\u89c4\u8303"},"\u6ce8\u610f\u6d41\u7a0b\u3001\u89c4\u8303"),(0,a.yg)("p",null,"\u5c24\u5176\u662f\u7ba1\u7406\u4eba\u5458\u3001\u7ec4\u957f\u3001\u9ad8\u7a0b\uff0c\u4e00\u5b9a\u8981\u4e3b\u8981\u6d41\u7a0b\u548c\u89c4\u8303\uff0c\u6ca1\u6709\u6d41\u7a0b\u548c\u89c4\u8303\u5c31\u662f\u4e00\u7fa4\u4e4c\u5408\u4e4b\u4f17\uff0c\u6ca1\u6709\u4efb\u4f55\u6218\u529b\u53ef\u8a00\u3002\u6709\u4e86\u6d41\u7a0b\u548c\u89c4\u8303\uff0c10\u4e2a\u4eba\u53ef\u4ee5\u505a20\u4e2a\u4eba\u7684\u5de5\u4f5c\uff1b\u6ca1\u6709\u6d41\u7a0b\u548c\u89c4\u8303\uff0c20\u4e2a\u4eba\u9876\u591a\u4e5f\u53ea\u80fd\u505a10\u4e2a\u4eba\u7684\u5de5\u4f5c\uff0c\u4e14\u4e0d\u4f1a\u6709\u4efb\u4f55\u53ef\u7ef4\u62a4\u6027\u3002"))}m.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1366],{5680:(e,n,l)=>{l.d(n,{xA:()=>u,yg:()=>s});var t=l(6540);function a(e,n,l){return n in e?Object.defineProperty(e,n,{value:l,enumerable:!0,configurable:!0,writable:!0}):e[n]=l,e}function r(e,n){var l=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);n&&(t=t.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),l.push.apply(l,t)}return l}function p(e){for(var n=1;n=0||(a[l]=e[l]);return a}(e,n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(e,l)&&(a[l]=e[l])}return a}var i=t.createContext({}),y=function(e){var n=t.useContext(i),l=n;return e&&(l="function"==typeof e?e(n):p(p({},n),e)),l},u=function(e){var n=y(e.components);return t.createElement(i.Provider,{value:n},e.children)},o="mdxType",m={inlineCode:"code",wrapper:function(e){var n=e.children;return t.createElement(t.Fragment,{},n)}},d=t.forwardRef((function(e,n){var l=e.components,a=e.mdxType,r=e.originalType,i=e.parentName,u=g(e,["components","mdxType","originalType","parentName"]),o=y(l),d=a,s=o["".concat(i,".").concat(d)]||o[d]||m[d]||r;return l?t.createElement(s,p(p({ref:n},u),{},{components:l})):t.createElement(s,p({ref:n},u))}));function s(e,n){var l=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var r=l.length,p=new Array(r);p[0]=d;var g={};for(var i in n)hasOwnProperty.call(n,i)&&(g[i]=n[i]);g.originalType=e,g[o]="string"==typeof e?e:a,p[1]=g;for(var y=2;y{l.r(n),l.d(n,{assets:()=>i,contentTitle:()=>p,default:()=>m,frontMatter:()=>r,metadata:()=>g,toc:()=>y});var t=l(8168),a=(l(6540),l(5680));const r={},p=void 0,g={unversionedId:"study/think/\u8c08\u5de5\u4f5c\u5fc3\u5f97",id:"study/think/\u8c08\u5de5\u4f5c\u5fc3\u5f97",title:"\u8c08\u5de5\u4f5c\u5fc3\u5f97",description:"\u5236\u5b9a\u539f\u5219\uff1a\u624b\u4e2d\u65e0\u5200\uff0c\u4f46\u4f60\u7684\u5fc3\u4e2d\u8981\u6709\u5200",source:"@site/docs/study/think/\u8c08\u5de5\u4f5c\u5fc3\u5f97.md",sourceDirName:"study/think",slug:"/study/think/\u8c08\u5de5\u4f5c\u5fc3\u5f97",permalink:"/docs/study/think/\u8c08\u5de5\u4f5c\u5fc3\u5f97",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u5206\u5e03\u5f0f\u7f13\u5b58",permalink:"/docs/study/think/\u7f13\u5b58/\u5206\u5e03\u5f0f\u7f13\u5b58"},next:{title:"\u9650\u6d41",permalink:"/docs/study/think/\u9650\u6d41"}},i={},y=[{value:"\u5236\u5b9a\u539f\u5219\uff1a\u624b\u4e2d\u65e0\u5200\uff0c\u4f46\u4f60\u7684\u5fc3\u4e2d\u8981\u6709\u5200",id:"\u5236\u5b9a\u539f\u5219\u624b\u4e2d\u65e0\u5200\u4f46\u4f60\u7684\u5fc3\u4e2d\u8981\u6709\u5200",level:3},{value:"\u6280\u672f\u56e2\u961f\u6210\u9f99\u6210\u866b\u7684\u79d8\u8bc0",id:"\u6280\u672f\u56e2\u961f\u6210\u9f99\u6210\u866b\u7684\u79d8\u8bc0",level:3},{value:"\u56e2\u961f\u7684\u89c2\u5bdf\u8005\u6548\u5e94",id:"\u56e2\u961f\u7684\u89c2\u5bdf\u8005\u6548\u5e94",level:4},{value:"\u613f\u666f\u521d\u5fc3\u5f88\u91cd\u8981\u3002",id:"\u613f\u666f\u521d\u5fc3\u5f88\u91cd\u8981",level:4},{value:"\u4e13\u4e1a\u7684\u4eba\u505a\u4e13\u4e1a\u7684\u4e8b",id:"\u4e13\u4e1a\u7684\u4eba\u505a\u4e13\u4e1a\u7684\u4e8b",level:3},{value:"\u7ebf\u4e0a\u6545\u969c\u5904\u7406\u603b\u7ed3",id:"\u7ebf\u4e0a\u6545\u969c\u5904\u7406\u603b\u7ed3",level:3},{value:"\u6ca1\u6709\u9884\u89c1\u6027\u4f60\u51ed\u4ec0\u4e48\u664b\u5347",id:"\u6ca1\u6709\u9884\u89c1\u6027\u4f60\u51ed\u4ec0\u4e48\u664b\u5347",level:3},{value:"\u4ec0\u4e48\u662f\u9884\u89c1\u6027\uff1f",id:"\u4ec0\u4e48\u662f\u9884\u89c1\u6027",level:4},{value:"\u6211\u53f8\u7814\u53d1\u6587\u5316=",id:"\u6211\u53f8\u7814\u53d1\u6587\u5316",level:3},{value:"Don't make me think",id:"dont-make-me-think",level:3},{value:"If it hurts, do it more and often",id:"if-it-hurts-do-it-more-and-often",level:3},{value:"\u8fd9\u4e2a\u4e16\u754c\u4ece\u6765\u6ca1\u6709\u4ec0\u4e48\u6551\u4e16\u4e3b",id:"\u8fd9\u4e2a\u4e16\u754c\u4ece\u6765\u6ca1\u6709\u4ec0\u4e48\u6551\u4e16\u4e3b",level:3},{value:"\u4e00\u5b9a\u8981\u6709\u540e\u5907\u65b9\u6848",id:"\u4e00\u5b9a\u8981\u6709\u540e\u5907\u65b9\u6848",level:3},{value:"DevOps \u65b0\u516b\u8363\u516b\u803b\uff0c\u6bcf\u4e00\u6761\u90fd\u662f\u8840\u8089\u957f\u57ce",id:"devops-\u65b0\u516b\u8363\u516b\u803b\u6bcf\u4e00\u6761\u90fd\u662f\u8840\u8089\u957f\u57ce",level:3},{value:"\u6838\u5fc3\u4e1a\u52a1\u6d41\u7a0b\u7684\u6545\u969c\u5904\u7406\u539f\u5219\uff1a\u4e0d\u53ef\u604b\u6218",id:"\u6838\u5fc3\u4e1a\u52a1\u6d41\u7a0b\u7684\u6545\u969c\u5904\u7406\u539f\u5219\u4e0d\u53ef\u604b\u6218",level:3},{value:"\u5f53\u6211\u4eec\u8c08\u91cd\u6784\u7684\u65f6\u5019\u6211\u4eec\u60f3\u8c08\u4ec0\u4e48",id:"\u5f53\u6211\u4eec\u8c08\u91cd\u6784\u7684\u65f6\u5019\u6211\u4eec\u60f3\u8c08\u4ec0\u4e48",level:3},{value:"\u8981\u719f\u7ec3\u638c\u63e1\u7684\u4e03\u4e2a\u4eba\u751f\u5de5\u5177",id:"\u8981\u719f\u7ec3\u638c\u63e1\u7684\u4e03\u4e2a\u4eba\u751f\u5de5\u5177",level:3},{value:"\u4e00\u3001SWOT\u5206\u6790\u6cd5\uff1a",id:"\u4e00swot\u5206\u6790\u6cd5",level:4},{value:"\u4e8c\u3001PDCA\u5faa\u73af\u89c4\u5219",id:"\u4e8cpdca\u5faa\u73af\u89c4\u5219",level:4},{value:"\u4e09\u30016W2H\u6cd5",id:"\u4e096w2h\u6cd5",level:4},{value:"\u56db\u3001SMART\u539f\u5219",id:"\u56dbsmart\u539f\u5219",level:4},{value:"\u4e94\u3001\u65f6\u95f4\u7ba1\u7406-\u91cd\u8981\u4e0e\u7d27\u6025",id:"\u4e94\u65f6\u95f4\u7ba1\u7406-\u91cd\u8981\u4e0e\u7d27\u6025",level:4},{value:"\u516d\u3001\u4efb\u52a1\u5206\u89e3\u6cd5WBS",id:"\u516d\u4efb\u52a1\u5206\u89e3\u6cd5wbs",level:4},{value:"\u4e03\u3001\u4e8c\u516b\u539f\u5219",id:"\u4e03\u4e8c\u516b\u539f\u5219",level:4},{value:"\u63d0\u9ad8\u63d0\u6d4b\u8d28\u91cf",id:"\u63d0\u9ad8\u63d0\u6d4b\u8d28\u91cf",level:3},{value:"\u5148\u5199\u6587\u6863\u518d\u5199\u4ee3\u7801",id:"\u5148\u5199\u6587\u6863\u518d\u5199\u4ee3\u7801",level:3},{value:"\u4e00\u4e2a\u7a0b\u5e8f\u5458\u7684\u4ef7\u503c\u662f\u89e3\u51b3\u95ee\u9898\u7684\u80fd\u529b",id:"\u4e00\u4e2a\u7a0b\u5e8f\u5458\u7684\u4ef7\u503c\u662f\u89e3\u51b3\u95ee\u9898\u7684\u80fd\u529b",level:3},{value:"\u6ce8\u610f\u6d41\u7a0b\u3001\u89c4\u8303",id:"\u6ce8\u610f\u6d41\u7a0b\u89c4\u8303",level:3}],u={toc:y},o="wrapper";function m(e){let{components:n,...l}=e;return(0,a.yg)(o,(0,t.A)({},u,l,{components:n,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"\u5236\u5b9a\u539f\u5219\u624b\u4e2d\u65e0\u5200\u4f46\u4f60\u7684\u5fc3\u4e2d\u8981\u6709\u5200"},"\u5236\u5b9a\u539f\u5219\uff1a\u624b\u4e2d\u65e0\u5200\uff0c\u4f46\u4f60\u7684\u5fc3\u4e2d\u8981\u6709\u5200"),(0,a.yg)("p",null,"\u8f6f\u4ef6\u5de5\u7a0b\u548c\u6280\u672f\u9886\u57df\u91cc\u867d\u8bf4\u6cd5\u65e0\u5b9a\u6cd5\uff0c\u9700\u6c42\u548c\u6d41\u7a0b\u968f\u4fbf\u600e\u4e48\u505a\u90fd\u53ef\u4ee5\uff0c\u4f46\u4e5f\u5e76\u975e\u53ef\u4ee5\u5929\u9a6c\u884c\u7a7a\u6063\u610f\u5984\u4e3a\uff0c\u7a0d\u4e0d\u7559\u610f\u5c31\u53ef\u80fd\u5929\u584c\u5730\u9677\u5899\u5012\u5c4b\u584c\uff0c\u917f\u6210\u4e0d\u53ef\u6536\u62fe\u4e4b\u60e8\u5267\u3002\u4e0b\u9762\u6211\u5c31\u8bf4\u9053\u8bf4\u9053\u3002"),(0,a.yg)("p",null,"2020\u5e741\u6708\u5e952\u6708\u521d\uff0c\u9996\u90fd\u533b\u79d1\u5927\u5b66\u9644\u5c5e\u590d\u5174\u533b\u9662\u51fa\u73b0\u533b\u62a4\u4eba\u5458\u611f\u67d3\u65b0\u51a0\u80ba\u708e\u4e8b\u4ef6\uff0c\u6700\u7ec8\u7d2f\u8ba1\u786e\u8bca34\u4eba\uff0c\u65e2\u6709\u533b\u62a4\u4e5f\u6709\u60a3\u8005\u548c\u5bb6\u5c5e\uff0c\u539f\u56e0\u4e5f\u975e\u5e38\u201c\u611f\u4eba\u201d\uff1a\u4e00\u4f4d\u6709\u6b66\u6c49\u63a5\u89e6\u53f2\u7684\u8001\u592a\u592a\uff0c\u672c\u6765\u5c5e\u4e8e\u201c\u65b0\u51a0\u80ba\u708e\u7591\u4f3c\u75c5\u4f8b\u201d\u5728\u53d1\u70ed\u95e8\u8bca\u770b\u75c5\uff0c\u4f46\u5374\u7a81\u53d1\u5947\u60f3\uff0c\u901a\u8fc7\u9662\u9886\u5bfc\u7684\u5173\u7cfb\uff0c\u6258\u5173\u7cfb\u627e\u5fc3\u5185\u79d1ICU\u4e3b\u4efb\u97e9\u67d0\uff0c\u6123\u662f\u4ece\u9632\u62a4\u68ee\u4e25\u7684\u53d1\u70ed\u95e8\u8bca\u75c5\u623f\u8f6c\u8fdb\u4e86\u4e91\u6de1\u98ce\u8f7b\u7684\u5fc3\u5185\u79d1ICU\uff0c\u7ed3\u679c\u6a2a\u626b\u4e00\u7247\u3002"),(0,a.yg)("p",null,"\u6211\u4e00\u76f4\u8bf4\uff0c\u5de5\u7a0b\u5e08\u56e2\u961f\u548c\u533b\u62a4\u56e2\u961f\u90fd\u662f\u4e13\u4e1a\u9886\u57df\u673a\u6784\uff0c\u7ba1\u7406\u65b9\u5f0f\u6709\u76f8\u4f3c\u4e4b\u5904\u3002\u90a3\u4e48\u5728\u8fd9\u4e2a\u6848\u4f8b\u91cc\uff0c\u7ba1\u7406\u8005\u72af\u4e86\u4ec0\u4e48\u9519\u8bef\uff1f\u5fc3\u4e2d\u65e0\u539f\u5219\uff01"),(0,a.yg)("p",null,"\u5fc3\u4e2d\u65e0\u539f\u5219\uff0c\u4f1a\u6709\u4e00\u767e\u4e07\u79cd\u6b7b\u6cd5\u3002"),(0,a.yg)("p",null,"\u539f\u5219\uff01\u4e13\u4e1a\u56e2\u961f\u7684\u7ba1\u7406\u8005\u5fc3\u4e2d\u4e00\u5b9a\u8981\u6709\u539f\u5219\uff0c\u4f60\u6709\u4e86\u539f\u5219\uff0c\u624d\u80fd\u8981\u6c42\u5927\u5bb6\u201c\u8bb2\u653f\u6cbb\uff0c\u5b88\u89c4\u77e9\u201d\uff01\u540c\u6837\uff0c\u5728\u505a\u8bbe\u8ba1\u7684\u65f6\u5019\uff0c\u5148\u628a\u8bbe\u8ba1\u613f\u666f\u3001\u8bbe\u8ba1\u5206\u9636\u6bb5\u76ee\u6807\u3001\u8bbe\u8ba1\u539f\u5219\u5199\u4e0b\u6765\uff0c\u5728\u6b64\u57fa\u7840\u4e0a\u753b\u5730\u4e3a\u7262\u518d\u505a\u8bbe\u8ba1\u63a8\u6f14\uff0c\u83ab\u8981\u5929\u9a6c\u884c\u7a7a\u6063\u610f\u5984\u4e3a\u3002\u624b\u4e2d\u65e0\u5200\uff0c\u5fc3\u4e2d\u6709\u5200\u3002"),(0,a.yg)("p",null,"\u4f5c\u4e3a\u7ba1\u7406\u8005\uff0c\u5982\u679c\u4e0d\u8bb2\u539f\u5219\uff0c\u6ca1\u6709\u89c4\u8303\uff0c\u65e0\u6cd5\u505a\u597d\u7ba1\u7406\u3002\u4e0b\u9762\u7684\u4eba\u4f1a\u65e0\u6240\u9002\u4ece\uff0c\u56e0\u4e3a\u539f\u5219\u5929\u5929\u53d8\uff0c\u4eca\u5929\u8fd9\u6837\uff0c\u660e\u5929\u53c8\u90a3\u6837\uff0c\u6beb\u65e0\u7ae0\u6cd5\u3002\u4e0b\u9762\u7684\u4eba\u4e0d\u77e5\u9053\u5f80\u54ea\u91cc\u91cd\u70b9\u4f7f\u52b2\uff0c\u4e8b\u60c5\u5c31\u4f1a\u53d8\u5f97\u4e00\u56e2\u7cdf\u3002"),(0,a.yg)("p",null,"\u4e0d\uff0c\u6ca1\u6709\u4ec0\u4e48\u6cd5\u65e0\u5b9a\u6cd5\uff0c\u6280\u672f\u7684\u4e16\u754c\u91cc\u4e00\u5b9a\u662f\u6709\u6cd5\u5219\u7684\uff0c\u5426\u5219\u4f60\u4f1a\u6b7b\u5f97\u5f88\u96be\u770b\uff0c\u522b\u6307\u671b\u6211\u6765\u6551\u4f60\uff0c\u6211\u6551\u90fd\u6551\u4e0d\u8d62\u3002"),(0,a.yg)("p",null,"You\uff01Leaders\uff01\u4e00\u5b9a\u8981\u901a\u8fc7\u5c42\u5c42\u53e0\u52a0\u7684\u201cRules\u201d\u5efa\u7acb\u8d77\u672c\u80fd\u53cd\u5e94\uff0c\u4e00\u9047\u5230\u7c7b\u4f3c\u7684\u4e8b\u60c5\uff0c\u5e94\u6fc0\u822c\u7684\u5c31\u77e5\u9053\u8be5\u600e\u4e48\u8bbe\u8ba1\uff0c\u600e\u4e48\u884c\u52a8\uff0c\u600e\u4e48\u6551\u706b\u3002\n\u800c\u8fd9\u4e9b\u201cRules\u201d\u662f\u7ecf\u5386\u4e86\u8840\u4e0e\u706b\u7684\u6d17\u793c\u94f8\u9020\u7684\uff0c\u6bcf\u4e00\u6761\u90fd\u6709\u6765\u7531\u6709\u53bb\u8def\u3002\n\u6bd4\u5982\u8bf4\uff0c\u6211\u57282018\u5e74\u5b9a\u4e49\u7684 DevOps \u65b0\u516b\u8363\u516b\u803b\uff0c\u6bcf\u4e00\u6761\u90fd\u662f\u8840\u8089\u957f\u57ce\uff1a"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},"\u4ee5\u968f\u65f6\u53ef\u6269\u5bb9\u3001\u53ef\u7f29\u5bb9\u3001\u53ef\u91cd\u542f\u3001\u53ef\u5207\u6362\u673a\u623f\u6d41\u91cf\u4e3a\u8363\uff0c\u4ee5\u4e0d\u80fd\u8fc1\u79fb\u4e3a\u803b\u3002"),(0,a.yg)("li",{parentName:"ol"},"\u4ee5\u53ef\u914d\u7f6e\u4e3a\u8363\uff0c\u4ee5\u786c\u7f16\u7801\u4e3a\u803b\u3002"),(0,a.yg)("li",{parentName:"ol"},"\u4ee5\u7cfb\u7edf\u4e92\u5907\u4e3a\u8363\uff0c\u4ee5\u7cfb\u7edf\u5355\u70b9\u4e3a\u803b\u3002"),(0,a.yg)("li",{parentName:"ol"},"\u4ee5\u4ea4\u4ed8\u65f6\u6709\u76d1\u63a7\u62a5\u8b66\u4e3a\u8363\uff0c\u4ee5\u4ea4\u4ed8\u88f8\u5954\u7cfb\u7edf\u4e3a\u803b\u3002"),(0,a.yg)("li",{parentName:"ol"},"\u4ee5\u65e0\u72b6\u6001\u4e3a\u8363\uff0c\u4ee5\u6709\u72b6\u6001\u4e3a\u803b\u3002"),(0,a.yg)("li",{parentName:"ol"},"\u4ee5\u6807\u51c6\u5316\u4e3a\u8363\uff0c\u4ee5\u7279\u6b8a\u5316\u4e3a\u803b\u3002"),(0,a.yg)("li",{parentName:"ol"},"\u4ee5\u81ea\u52a8\u5316\u5de5\u5177\u4e3a\u8363\uff0c\u4ee5\u4eba\u8089\u64cd\u4f5c\u4e3a\u803b\u3002"),(0,a.yg)("li",{parentName:"ol"},"\u4ee5\u65e0\u4eba\u503c\u5b88\u4e3a\u8363\uff0c\u4ee5\u4eba\u5de5\u4ecb\u5165\u4e3a\u803b\u3002")),(0,a.yg)("p",null,"\xa0\n\u5982\u4f55\u81ea\u5efa\u6cd5\u5219\uff1f\n\u4ece\u9519\u8bef\u4e2d\u5b66\u4e60\u9519\u8bef\uff01"),(0,a.yg)("p",null,"\xa0\n\u300e\u5b66\u6821\u91cc\u5b66\u4e60\u6700\u597d\u7684\u5b66\u751f\u53ef\u80fd\u5f80\u5f80\u662f\u90a3\u4e9b\u6700\u4e0d\u5584\u4e8e\u4ece\u9519\u8bef\u4e2d\u5b66\u4e60\u7684\u4eba\uff0c\u56e0\u4e3a\u4ed6\u4eec\u5df2\u7ecf\u4e60\u60ef\u4e86\u628a\u9519\u9898\u5f53\u6210\u5931\u8d25\u7684\u4ee3\u540d\u8bcd\uff0c\u800c\u4e0d\u662f\u628a\u72af\u9519\u770b\u6210\u5b66\u4e60\u7684\u673a\u4f1a\uff0c\u8fd9\u53cd\u800c\u6210\u4e3a\u4ed6\u4eec\u8fdb\u6b65\u7684\u4e3b\u8981\u969c\u788d\u3002\u8d70\u5165\u793e\u4f1a\u4e4b\u540e\uff0c\u806a\u660e\u7684\u4eba\u5fc5\u987b\u5584\u4e8e\u62e5\u62b1\u81ea\u5df1\u7684\u9519\u8bef\u548c\u4e0d\u8db3\uff0c\u4ece\u800c\u80fd\u8fdc\u8fdc\u8d85\u8fc7\u90a3\u4e9b\u4e0e\u4ed6\u4eec\u6c34\u5e73\u76f8\u5f53\uff0c\u4f46\u66f4\u81ea\u8d1f\u7684\u540c\u5b66\u3001\u540c\u8f88\u3002\u300f\n\u8fd9\u4e5f\u5c31\u662f\u4e3a\u4ec0\u4e48\u5e73\u51e1\u4eba\u53ef\u4e3a\u975e\u51e1\u4e8b\u7684\u7f18\u6545\uff01\n\u300e\u4e0d\u8981\u60a3\u5f97\u60a3\u5931\uff0c\u8981\u671d\u7740\u76ee\u6807\u52aa\u529b\u524d\u884c\u3002\u8981\u81ea\u7701\u81ea\u8b66\uff0c\u522b\u4eba\u5bf9\u4f60\u5f88\u5230\u4f4d\u7684\u6279\u8bc4\uff0c\u662f\u4f60\u80fd\u5f97\u5230\u7684\u6700\u5b9d\u8d35\u7684\u5efa\u8bae\u3002\u60f3\u60f3\u770b\uff0c\u4f60\u7684\u6ed1\u96ea\u6559\u7ec3\u544a\u8bc9\u4f60\uff0c\u4f60\u6454\u8ddf\u5934\u662f\u56e0\u4e3a\u4f60\u6ed1\u884c\u4e2d\u7684\u91cd\u5fc3\u79fb\u52a8\u4e0d\u5bf9\uff0c\u6b64\u65f6\u4f60\u8981\u662f\u8ba4\u4e3a\u4ed6\u5728\u8d23\u9a82\u4f60\uff0c\u4f60\u8be5\u591a\u4e48\u611a\u8822\u548c\u4f4e\u6548\u3002\u540c\u7406\uff0c\u4f60\u7684\u4e0a\u53f8\uff0c\u6211\uff0c\u4e5f\u53ef\u80fd\u4f1a\u6307\u51fa\u4f60\u5de5\u4f5c\u4e2d\u7684\u7f3a\u70b9\uff0c\u6709\u5219\u6539\u4e4b\uff0c\u7ee7\u7eed\u52aa\u529b\u5c31\u662f\u4e86\u3002\u300f\n\u7b49\u6709\u4e00\u5929\u4f60\u4f9d\u636e\u672c\u80fd\uff08\u4e5f\u5c31\u662f\u4f60\u81ea\u5efa\u7684\u6cd5\u5219\uff09\u884c\u4e8b\u7684\u65f6\u5019\uff0c\u4f60\u80af\u5b9a\u4f1a\u628a\u4e8b\u60c5\u505a\u5f97\u5f88\u597d\uff01"),(0,a.yg)("h3",{id:"\u6280\u672f\u56e2\u961f\u6210\u9f99\u6210\u866b\u7684\u79d8\u8bc0"},"\u6280\u672f\u56e2\u961f\u6210\u9f99\u6210\u866b\u7684\u79d8\u8bc0"),(0,a.yg)("h4",{id:"\u56e2\u961f\u7684\u89c2\u5bdf\u8005\u6548\u5e94"},"\u56e2\u961f\u7684\u89c2\u5bdf\u8005\u6548\u5e94"),(0,a.yg)("p",null,"\u9519\u8bef\u4f1a\u6f14\u53d8\u6210\u4ec0\u4e48\uff0c\u53d6\u51b3\u4e8e\u4f60\u600e\u4e48\u770b\u5f85\u5b83\u3002\u4f60\u89c9\u5f97\u5b83\u662f\u7f9e\u803b\uff0c\u5e94\u8be5\u9690\u79d8\u4e8e\u4eba\uff0c\u6700\u597d\u7edd\u53e3\u4e0d\u63d0\uff0c\u90a3\u4e48\u5b83\u5c31\u4f1a\u53d8\u6210\u5b83\u5b83\u5b83\u5b83\u5b83\u5b83\u5b83\uff0c\u6700\u7ec8\u53d8\u6210\u5927\u707e\u96be\u3002\u4f60\u89c9\u5f97\u5b83\u662f\u8d22\u5bcc\uff0c\u662f\u7ec4\u7ec7\u8fdb\u6b65\u7684\u597d\u673a\u4f1a\uff0c\u662f\u63a8\u884c\u5de5\u5177\u548c\u89c4\u8303\u7684\u5207\u5165\u70b9\uff0c\u90a3\u4e48\u5b83\u5c31\u4f1a\u771f\u7684\u6210\u4e3a\u56e2\u961f\u7684\u4e0d\u53ef\u78e8\u706d\u7684\u4f20\u627f\uff0c\u6210\u4e3a\u5b9d\u8d35\u8d22\u5bcc\u3002"),(0,a.yg)("p",null,(0,a.yg)("strong",{parentName:"p"},"\u9519\u8bef\u7684\u89c2\u5bdf\u8005\u6548\u5e94\uff1a"),"\n",(0,a.yg)("strong",{parentName:"p"},"\u4f60\u8ba4\u4e3a\u9519\u8bef\u662f\u8d22\u5bcc\uff0c\u5b83\u5c31\u662f\u5b9d\u8d35\u8d22\u5bcc\u3002"),"\n",(0,a.yg)("strong",{parentName:"p"},"\u4f60\u8ba4\u4e3a\u9519\u8bef\u662f\u5931\u8d25\uff0c\u5b83\u7acb\u9a6c\u53d8\u6210\u707e\u96be\u3002"),"\n",(0,a.yg)("strong",{parentName:"p"},"\n\u5176\u5b9e\u8fd8\u6709\u4e00\u79cd\u89c2\u5bdf\u8005\u6548\u5e94\u3002\n"),"\u56e2\u961f\u7684\u89c2\u5bdf\u8005\u6548\u5e94\uff1a**\n",(0,a.yg)("strong",{parentName:"p"},"\u4f60\u8ba4\u4e3a\u56e2\u961f\u662f\u8d22\u5bcc\uff0c\u5b83\u5c31\u662f\u8d22\u5bcc\u3002"),"\n",(0,a.yg)("strong",{parentName:"p"},"\u4f60\u8ba4\u4e3a\u56e2\u961f\u662f\u6210\u672c\u5305\u88b1\uff0c\u5b83\u7acb\u9a6c\u53d8\u8eab\u5305\u88b1\u3002")),(0,a.yg)("p",null,"2017\u5e74\uff0c\u6709\u8d5eCTO\u5d14\u7389\u677e\u8bf4\uff0c\u6211\u60f3\u6253\u9020\u51fa\u4e2d\u56fd\u6700\u597d\u7684\u6280\u672f\u56e2\u961f\u3002"),(0,a.yg)("blockquote",null,(0,a.yg)("p",{parentName:"blockquote"},"\u6280\u672f\u4e0a\uff0c\u6709\u8d5e\u8d70\u8fc7\u7684\u8def\u548c\u5927\u591a\u6570\u4ece\u5c0f\u5230\u5927\u7684\u521b\u4e1a\u516c\u53f8\u5dee\u4e0d\u591a\uff0c\u90fd\u662f\u524d\u671f\u4e13\u6ce8\u4e8e\u89e3\u51b3\u4e1a\u52a1\u95ee\u9898\uff0c\u6700\u540e\u67b6\u6784\u95ee\u9898\u5728\u67d0\u4e2a\u65f6\u95f4\u70b9\u96c6\u4e2d\u7206\u53d1\uff0c\u5bfc\u81f4\u5f88\u591a\u7684\u4e0d\u7a33\u5b9a\u3002\u8fd9\u4e00\u70b9\u4e0d\u7ba1\u662f\u963f\u91cc\u4e5f\u597d\uff0c\u4eac\u4e1c\u4e5f\u7f62\uff0c\u8fd8\u662f\u6700\u8fd1\u4ea4\u6d41\u7684\u4e00\u4e9b\u5176\u4ed6\u516c\u53f8\uff0c\u57fa\u672c\u4e0a\u90fd\u662f\u4e00\u6837\u7684\uff0c\u53ea\u662f\u5927\u5bb6\u95ee\u9898\u7684\u4e25\u91cd\u7a0b\u5ea6\u548c\u89e3\u51b3\u95ee\u9898\u7684\u901f\u5ea6\u4e0d\u4e00\u6837\u3002",(0,a.yg)("strong",{parentName:"p"},"\u6709\u8d5e\u7684\u89e3\u51b3\u65b9\u6cd5\u548c\u5927\u5bb6\u4e5f\u6ca1\u4ec0\u4e48\u592a\u5927\u533a\u522b\uff0c\u5c31\u662f\u7ec4\u5efa\u4e00\u6d41\u5e95\u5c42\u6838\u5fc3\u67b6\u6784\u548c\u6838\u5fc3\u8fd0\u7ef4\u56e2\u961f\uff0c\u8fd9\u4e2a\u56e2\u961f\u5fc5\u987b\u5f97\u597d\uff0c\u4e0d\u7136\u89e3\u51b3\u95ee\u9898\u7684\u901f\u5ea6\u975e\u5e38\u975e\u5e38\u6162\uff0c\u6bcf\u5929\u90fd\u53ef\u80fd\u5b95\u673a\uff0c\u4f1a\u4e25\u91cd\u5f71\u54cd\u516c\u53f8\u4e1a\u52a1\u53ca\u6548\u76ca\u3002"),"\n\u65e5\u5e38\u4e1a\u52a1\u4e2d\uff0c\u6211\u4eec\u975e\u5e38\u9f13\u52b1\u5927\u5bb6\u76f8\u4e92\u8865\u4f4d\uff0c\u6709\u95ee\u9898\u53ca\u65f6\u5bfb\u627e\u8d44\u6e90\uff0c\u53ca\u65f6\u83b7\u53d6\u6709\u6548\u7684\u4fe1\u606f\uff0c\u9f13\u52b1\u5927\u5bb6\u9762\u5bf9\u9762\u628a\u4e8b\u60c5\u8bf4\u6e05\u695a\u3002\n\u2014\u20142017\uff0c\u6709\u8d5eCTO\u5d14\u7389\u677e\uff1a\u6211\u60f3\u6253\u9020\u51fa\u4e2d\u56fd\u6700\u597d\u7684\u6280\u672f\u56e2\u961f")),(0,a.yg)("p",null,"2020\u5e74\uff0c\u73b0\u5728\u6765\u770b\uff0c\u4ed6\u53ef\u80fd\u786e\u5b9e\u505a\u5230\u4e86\uff0c\u6709\u8d5e\u7684\u6280\u672f\u5e95\u8574\u975e\u5e38\u5f3a\u3002\u5f53\u7136\u4e0a\u9762\u8fd8\u6709\u4e00\u5c42\u7f8e\u56e2\uff0c\u518d\u4e0a\u9762\u8fd8\u6709\u4e00\u5c42\u963f\u91cc\u5df4\u5df4\u3002"),(0,a.yg)("h4",{id:"\u613f\u666f\u521d\u5fc3\u5f88\u91cd\u8981"},"\u613f\u666f\u521d\u5fc3\u5f88\u91cd\u8981\u3002"),(0,a.yg)("p",null,"\u6709\u7684\u4eba\u613f\u666f\u5c31\u662f\u6d3b\u4e0b\u53bb\uff0c\u90a3\u4e48\u5e74\u590d\u4e00\u5e74\u65e5\u590d\u4e00\u65e5\u59cb\u7ec8\u6323\u624e\u5728\u751f\u6b7b\u8fb9\u7f18\u3002\n\u6709\u7684\u4eba\u613f\u666f\u5c31\u662f\u7528\u4e09\u4e94\u4e2a\u4eba\u505a\u4e00\u4e2a\u8d5a\u94b1\u7684\u5c0f\u516c\u53f8\uff0c\u90a3\u4e48\u4e5f\u633a\u597d\uff0c\u4ed6\u80fd\u8fd9\u6837\u8fc7\u4e00\u8f88\u5b50\u3002\n\u6709\u7684\u4eba\u6ca1\u6709\u613f\u666f\uff0c\u6240\u4ee5\u4ed6\u6b7b\u4e86\u3002"),(0,a.yg)("p",null,"\xa0\n\u963f\u91cc\u5df4\u5df4\u7684\u201c",(0,a.yg)("strong",{parentName:"p"},"\u6b64\u65f6\u6b64\u523b\uff0c\u975e\u6211\u83ab\u5c5e"),"\u201d\u786e\u5b9e\u725b\u903c\uff0c99\u5e74\u5c31\u6709\u4e86\uff0c\u53ef\u4ee5\u8bf4\u662f\u963f\u91cc\u5df4\u5df4\u7b2c\u4e00\u53e5\u571f\u8bdd\u3002"),(0,a.yg)("h3",{id:"\u4e13\u4e1a\u7684\u4eba\u505a\u4e13\u4e1a\u7684\u4e8b"},"\u4e13\u4e1a\u7684\u4eba\u505a\u4e13\u4e1a\u7684\u4e8b"),(0,a.yg)("p",null,"\u6211\u4ee5\u524d\u8bb2\u8fc7\u804c\u573a\uff08\u6f5c\uff09\u89c4\u5219\uff0c\u5176\u4e2d\u4e00\u6761\u53eb\u201c\u542c\u539f\u59cb\u9700\u6c42\uff0c\u4e0d\u542c\u6280\u672f\u89e3\u51b3\u65b9\u6848\u201d\uff0c\u539f\u6587\u5982\u4e0b\uff1a\n\u300e\u6211\u53d1\u73b0\u5f88\u591a\u505a\u4e1a\u52a1\u7684\u4eba\u4e00\u65b9\u9762\u641e\u4e0d\u6e05\u695a\u4ec0\u4e48\u53eb\u539f\u59cb\u9700\u6c42\uff0c\u751a\u81f3\u8fde\u6574\u4e2a\u4e1a\u52a1\u4f53\u7cfb\u662f\u600e\u4e48\u8fd0\u8f6c\u8d77\u6765\u7684\u90fd\u61f5\u61f5\u61c2\u61c2\uff0c\u542c\u4ed6\u8bf4\u4e86\u534a\u5929\uff0c\u539f\u6765\u662f\u5728\u8bb2\u4ed6\u8ba4\u4e3a\u6280\u672f\u4e0a\u600e\u4e48\u89e3\u51b3\u3002\n\u53e6\u4e00\u65b9\u9762\u4ed6\u4eec\u8fd8\u633a\u559c\u6b22\u8d8a\u4fce\u4ee3\u5e96\uff0c\u539f\u59cb\u9700\u6c42\u8fd8\u542d\u542d\u54e7\u54e7\u8bf4\u4e0d\u6e05\u695a\u5462\uff0c\u5c31\u76f4\u63a5\u62cd\u65b9\u6848\uff0c\u751a\u81f3\u8feb\u4e0d\u53ca\u5f85\u5730\u66ff\u6211\u4eec\u60f3\u6570\u636e\u5e93\u662f\u4e0d\u662f\u52a0\u5b57\u6bb5\u2026\u2026\n\u5bf9\u6b64\uff0c\u6211\u7684\u6807\u51c6\u56de\u7b54\u662f\uff1a\u201c\u8bf7\u76f4\u63a5\u8bf4\u539f\u59cb\u9700\u6c42\uff0c\u8bf7\u4e0d\u8981\u7ed9\u6211\u8bb2\u89e3\u51b3\u65b9\u6848\u201d\u3002\n",(0,a.yg)("strong",{parentName:"p"},"\u6f5c\u53f0\u8bcd\u5c31\u662f\uff0c\u4f60\u6709\u4f60\u7684\u4e13\u4e1a\u9886\u57df\uff0c\u6211\u6709\u6211\u7684\uff0c\u8d62\u5f97\u522b\u4eba\u5c0a\u91cd\u7684\u524d\u63d0\u662f\u5148\u628a\u81ea\u5df1\u7684\u672c\u804c\u5de5\u4f5c\u505a\u597d\u3002"),"\n**\n",(0,a.yg)("strong",{parentName:"p"},"\u5728\u4e13\u4e1a\u9886\u57df\u91cc\uff0c\u5343\u4e07\u4e0d\u80fd\u8ba9\u5916\u884c\u9886\u5bfc\u5185\u884c\uff01"),"\n\u6211\u53d1\u73b0\u597d\u591a\u505a\u7ba1\u7406\u7684\u90fd\u4e0d\u77e5\u9053\u8fd9\u4e00\u6761\uff0c\u603b\u89c9\u5f97\u6211\u505a\u7ba1\u7406\u7684\u80fd\u7ba1\u5929\u4e0b\u4e07\u4e8b\u4e07\u7269\u3002\u626f\u6de1\uff01\n**"),(0,a.yg)("h3",{id:"\u7ebf\u4e0a\u6545\u969c\u5904\u7406\u603b\u7ed3"},"\u7ebf\u4e0a\u6545\u969c\u5904\u7406\u603b\u7ed3"),(0,a.yg)("p",null,"\u7ebf\u4e0a\u6545\u969c\u5904\u7406\u53e3\u8bc0\uff1a\n",(0,a.yg)("strong",{parentName:"p"},"\u9047\u4e8b\u4e0d\u4e71\uff0c\u5206\u5934\u6838\u67e5\uff0c\u7fa4\u91cc\u540c\u6b65\uff0c\u7b80\u5355\u9648\u8ff0\uff0c\u7edd\u4e0d\u604b\u6218\uff0c\u6062\u590d\u670d\u52a1\u3002"),"\n**\n\u5177\u4f53\u89e3\u91ca\u4e00\u4e0b\u3002"),(0,a.yg)("p",null,(0,a.yg)("strong",{parentName:"p"},"\u5206\u5934\u6838\u67e5"),"\uff1aQA\u8d1f\u8d23\u7ebf\u4e0b\u590d\u73b0\u73b0\u8c61\uff0c\u786e\u8ba4\u95ee\u9898\u662f\u5426\u5b58\u5728\uff1bSA\u8d1f\u8d23\u6838\u67e5\u4e1a\u52a1\u5bf9\u5e94\u7684\u673a\u623f\u3001\u6570\u636e\u5e93\u3001\u5185\u5916\u7f51\u6d41\u91cf\u3001\u5e94\u7528\u8d1f\u8f7d\u6709\u65e0\u53d8\u66f4\u64cd\u4f5c\u3001\u6709\u4f55\u5f02\u5e38\u6307\u6807\u3002"),(0,a.yg)("p",null,(0,a.yg)("strong",{parentName:"p"},"\u7edd\u4e0d\u604b\u6218"),"\uff1a\u5982\u679c\u8fdf\u8fdf\u5b9a\u4f4d\u4e0d\u4e86\u95ee\u9898\uff08\u6bd4\u5982\u4e94\u5206\u949f\u4e4b\u5185\uff09\uff0c\u5c31\u4e0d\u53ef\u604b\u6218\uff0c\u5fc5\u987b\u5feb\u901f\u6062\u590d\u4e1a\u52a1\u3002\u7b2c\u4e00\uff0c\u4e0d\u8981\u628a\u751f\u4ea7\u73af\u5883\u5f53\u6210\u6d4b\u8bd5\u73af\u5883\uff0c\u4e0d\u8981\u5728\u7ebf\u8c03\u8bd5\uff1b\u7b2c\u4e8c\uff0c\u4e0d\u8981\u4e00\u76f4\u7559\u7740\u73b0\u573a\u89c2\u5bdf\u6765\u89c2\u5bdf\u53bb\u3002"),(0,a.yg)("p",null,(0,a.yg)("strong",{parentName:"p"},"\u7b80\u5355\u9648\u8ff0"),"\uff1a\u51fa\u4e86\u4e8b\u513f\u4e00\u5b9a\u5404\u65b9\u9762\u90fd\u52a8\u5458\u8d77\u6765\u4e86\uff0c\u4e03\u5634\u516b\u820c\uff0c\u5404\u8bf4\u5404\u8bdd\uff0c\u8fd9\u65f6\u5019\u4e00\u5b9a\u8981\u6709\u4e00\u4e2a\u4e34\u65f6\u603b\u6307\u6325\u4e0d\u65ad\u5730\u603b\u7ed3\u5927\u5bb6\u73b0\u5728\u7684\u8fdb\u5ea6\uff0c\u505a\u7cbe\u70bc\u7684\u201c\u7b80\u5355\u9648\u8ff0\u201d\uff0c\u53d1\u5728\u7fa4\u91cc\uff0c\u76f8\u5f53\u4e8e\u4e00\u4e2a\u65b0\u95fb\u53d1\u8a00\u4eba\u3002\u4ed6\u5728\u7b2c\u4e00\u65f6\u95f4\u51fa\u6765\u505a\u7b80\u8981\u7efc\u8ff0\uff0c\u628aWHEN/WHO/WHAT/HOW/RESULT\u51e0\u53e5\u8bdd\u8bf4\u6e05\u695a\uff0c\u540c\u6b65\u7ed9\u6838\u5fc3\u5e72\u90e8\u3002\u4e0d\u8981\u70b9\u5bf9\u70b9\u3002\u8bf7\u52a1\u5fc5\u5e7f\u64ad\u3002\u8868\u660e\u6211\u4eec\u5728\u8ddf\uff0c\u6211\u4eec\u5728\u89e3\u51b3\uff0c\u6240\u6709\u4e8b\u60c5\u90fd\u5728\u638c\u63e1\u4e2d\uff0c\u522b\u6015\uff0c\u522b\u614c\u3002"),(0,a.yg)("h3",{id:"\u6ca1\u6709\u9884\u89c1\u6027\u4f60\u51ed\u4ec0\u4e48\u664b\u5347"},"\u6ca1\u6709\u9884\u89c1\u6027\u4f60\u51ed\u4ec0\u4e48\u664b\u5347"),(0,a.yg)("h4",{id:"\u4ec0\u4e48\u662f\u9884\u89c1\u6027"},"\u4ec0\u4e48\u662f\u9884\u89c1\u6027\uff1f"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},"\u5e02\u573a\u7ade\u4e89\u6001\u52bf\u7684\u9884\u89c1\u6027\u3002",(0,a.yg)("ol",{parentName:"li"},(0,a.yg)("li",{parentName:"ol"},"\u6709\u6ca1\u6709\u5bf9\u5e02\u573a\u5927\u52bf\u6709\u4e00\u5b9a\u9884\u89c1\u6027\uff1f"),(0,a.yg)("li",{parentName:"ol"},"\u662f\u4e0d\u662f\u65f6\u523b\u5728\u5173\u6ce8\u7740\u53cb\u5546\u3001\u7ade\u54c1\u548c\u884c\u4e1a\u52a8\u6001\uff1f"),(0,a.yg)("li",{parentName:"ol"},"\u80fd\u4e0d\u80fd\u5bf9\u4e1a\u52a1\u505a\u51fa\u6709\u524d\u77bb\u6027\u7684\u9884\u6d4b\uff1f"),(0,a.yg)("li",{parentName:"ol"},"\u4e3e\u4f8b\uff1a\u672c\u5730\u751f\u6d3b\u670d\u52a1\u5e02\u573a\uff0c\u5927\u7684\u5e02\u573a\u53d8\u5316\u8d8b\u52bf\u662f\uff0c\u70b9\u8bc4\u2014>\u56e2\u8d2d\u2014>\u5916\u5356\u2014>\u4e70\u5355\u548c\u4e0b\u7801\u2014>\u94fa\u673a\u5177\u6784\u7b51IoT\u58c1\u5792\u2014>\u5207ERP\u2014>\u5e26\u8d27\u548c\u4fdd\u7406\u2026\u2026"))),(0,a.yg)("li",{parentName:"ol"},"\u4e1a\u52a1\u4e0a\u7684\u9884\u89c1\u6027\u3002",(0,a.yg)("ol",{parentName:"li"},(0,a.yg)("li",{parentName:"ol"},"\u9700\u6c42\u65b9\u8bf4\u4ec0\u4e48\u5c31\u662f\u4ec0\u4e48\u5417\uff1f"),(0,a.yg)("li",{parentName:"ol"},"\u4ea7\u54c1\u8bbe\u8ba1\u6210\u4ec0\u4e48\u6837\u5c31\u505a\u6210\u4ec0\u4e48\u6837\u5417\uff1f"),(0,a.yg)("li",{parentName:"ol"},"\u4e00\u5207\u90fd\u662f\u987a\u6c34\u63a8\u821f\u5417\uff1f"),(0,a.yg)("li",{parentName:"ol"},"\u4f60\u6709\u6ca1\u6709\u529b\u6392\u4f17\u8bae\uff0c\u63d0\u51fa\u81ea\u5df1\u7684\u89c2\u70b9\u548c\u65b9\u6848\uff0c\u800c\u4e14\u6700\u540e\u4e8b\u5b9e\u8bc1\u660e\u4f60\u8bf4\u7684\u505a\u7684\u662f\u5bf9\u7684\uff1f"))),(0,a.yg)("li",{parentName:"ol"},"\u6280\u672f\u4e0a\u7684\u9884\u89c1\u6027\u3002")),(0,a.yg)("p",null,"\u9996\u5148\uff0c\u6280\u672f\u9886\u57df\u77ac\u606f\u4e07\u53d8\uff0c\u6628\u5929\u7684\u6280\u672f\u65b0\u8d8b\u52bf\uff0c\u660e\u5929\u5c31\u6210\u4e3a\u884c\u4e1a\u6807\u6746\u7684\u6807\u51c6\u89e3\u51b3\u65b9\u6848\u3002\u4f4e\u5934\u62c9\u8f66\u4e4b\u4f59\uff0c\u5fc5\u987b\u62ac\u5934\u770b\u8def\u3002Docker\u4ece2014\u5e74\u7684\u5fae\u70ed\uff0c\u52302015\u30012016\u5e74\u4e00\u7ebf\u4e92\u8054\u7f51\u516c\u53f8\u7684\u6807\u914d\uff0c\u4ec5\u4ec5\u4e00\u4e24\u5e74\u65f6\u95f4\u3002\n\u5176\u6b21\uff0c\u5355\u4e00\u6280\u672f\u8d8b\u52bf\uff0c\u5e76\u4e0d\u80fd\u627f\u8f7d\u4e2d\u5927\u578b\u56e2\u961f\uff0c\u4e0d\u80fd\u627f\u8f7d\u5267\u70c8\u53d8\u5316\u7684\u4e1a\u52a1\uff0c\u6211\u4eec\u5bf9\u6b64\u9700\u8981\u6709\u4e00\u4e2a\u57fa\u672c\u7684\u5224\u65ad\u3002\u6bd4\u5982\u8bf4\u5fae\u670d\u52a1\u7684\u524d\u63d0\u662fDocker\u5bb9\u5668\u5316\u3001\u670d\u52a1\u8def\u7531\u548c\u5e73\u53f0\u81ea\u52a8\u5316\u3002Docker\u96c6\u7fa4\u7f16\u6392+\u7814\u53d1\u534f\u4f5c\u53ef\u89c6\u5316+\u8fd0\u7ef4\u81ea\u52a8\u5316+API\u7f51\u5173+\u5fae\u670d\u52a1\uff0c\u624d\u8c08\u5f97\u4e0a\u53ef\u8d1f\u91cd\u524d\u884c\u3002\n\u518d\u6b21\uff0c\u5f53\u4e1a\u52a1\u4ece\u96f6\u5230\u4e00\u7684\u65f6\u5019\uff0c\u6211\u4eec\u9700\u8981\u6709\u4e00\u5b9a\u7684\u9884\u89c1\u6027\uff0c\u8d70\u4e00\u6b65\u770b\u4e24\u6b65\u3002\n\u4e3e\u4f8b\uff1a\u4e1a\u52a1\u521a\u5f00\u59cb\u8bd5\u70b9\u7684\u65f6\u5019\uff0c\u6211\u5c31\u9884\u89c1\u5230IoT\u673a\u5177\u94fa\u8bbe\u5728\u5168\u56fd\u5404\u5730\uff0c\u6240\u6709\u95ee\u9898\u90fd\u5c06\u7531\u6211\u4eec\u515c\u5e95\uff0c\u6240\u4ee5\u5fc5\u987b\u4ee5\u6700\u5feb\u901f\u5ea6\u5efa\u8bbe\u4e00\u4e2a\u5f3a\u5927\u7684\u8bbe\u5907\u5f3a\u7ba1\u63a7\u8fd0\u7ef4\u7ba1\u7406\u5e73\u53f0\uff0c\u5b83\u5c06\u662f\u5927\u4e2d\u53f0\u4f53\u7cfb\u7684\u91cd\u8981\u7ec4\u6210\u90e8\u5206\u3002\n\u4e3e\u4f8b\uff1a\u968f\u7740\u4e1a\u52a1\u7684\u6df1\u5165\uff0c\u6211\u9884\u89c1\u5230\u7531\u4e8e\u673a\u5177\u7684\u5404\u79cd\u4e1a\u52a1\u65b9\u90fd\u4f1a\u7ed9\u673a\u5177\u4e0b\u53d1\u6307\u4ee4\uff08\u4e0a\u884c\u548c\u4e0b\u884c\uff09\uff0c\u6bd4\u5982\u652f\u4ed8\u6210\u529f\u8bed\u97f3\u64ad\u62a5\uff0c\u6bd4\u5982\u5e94\u7528\u7248\u672c\u5206\u53d1\uff0c\u6bd4\u5982\u5feb\u901f\u6539\u53d8\u673a\u5177\u4e0aApp\u5185\u90e8\u72b6\u6001\uff0c\u4e1a\u52a1\u65b9\u4e0d\u5173\u5fc3\u4e5f\u4e0d\u9700\u8981\u5173\u5fc3\u673a\u5177\u5728\u4e0d\u5728\u7ebf\uff0c\u6240\u4ee5\u6211\u51b3\u5b9a\u5c3d\u5feb\u5f15\u5165\u8bbe\u5907\u5f71\u5b50\uff0c\u5728\u4e1a\u52a1\u65b9\u8fd8\u4e0d\u8db3\u591f\u591a\u7684\u65f6\u5019\u4e00\u52b3\u6c38\u9038\u5730\u89e3\u51b3\u8fd9\u4e2a\u95ee\u9898\u3002\n\u505a\u6280\u672f\u5343\u4e07\u4e0d\u8981\u811a\u8e29\u897f\u74dc\u76ae\uff0c\u6ed1\u5230\u54ea\u91cc\u7b97\u54ea\u91cc\u3002"),(0,a.yg)("h3",{id:"\u6211\u53f8\u7814\u53d1\u6587\u5316"},"\u6211\u53f8\u7814\u53d1\u6587\u5316="),(0,a.yg)("p",null,"\u7814\u53d1\u54f2\u5b66\uff08Don't make me think/If it hurts, do it more and often/\u8fd9\u4e2a\u4e16\u754c\u4ece\u6765\u6ca1\u6709\u4ec0\u4e48\u6551\u4e16\u4e3b/\u6ca1\u6709\u82e6\u52b3\u53ea\u6709\u529f\u52b3/\u4e00\u5b9a\u8981\u6709\u540e\u5907\u65b9\u6848\uff09\n+\u7814\u53d1\u4e09\u5faa\u73af\u65b9\u6cd5\u8bba\uff08\u7814\u53d1\u80fd\u529b/\u7814\u53d1\u6548\u7387/\u7814\u53d1\u6d3b\u529b\uff09\n+\u7814\u53d1\u4e09\u677f\u65a7\uff08RCA/\u6280\u672f\u5206\u4eab\u8bb2\u5ea7/\u6280\u672f\u9884\u7814\u8bfe\u9898\uff09\n\u6bcf\u4e00\u4e2a\u7814\u53d1\u7ec4\u7ec7\u90fd\u5fc5\u987b\u60f3\u7740\u5ff5\u7740\u505a\u7740\u3002"),(0,a.yg)("h3",{id:"dont-make-me-think"},"Don't make me think"),(0,a.yg)("p",null,"\u5927\u5bb6\u90fd\u77e5\u9053\uff0c\u6280\u672f\u4eba\u5458\u4ece\u4e8b\u7684\u662f\u521b\u9020\u6027\u5de5\u4f5c\uff0c\u52a0\u4e4b\u662f\u5355\u6838\u5904\u7406\u5668\uff0c\u6211\u4eec\u7684\u4e0a\u4e0b\u6587\u5207\u6362\u975e\u5e38\u56f0\u96be\uff0c\u88ab\u6253\u65ad\u540e\u4ece\u65b0\u8fdb\u5165\u201c\u795e\u6e38\u201d\u72b6\u6001\u5f80\u5f80\u9700\u8981\u5341\u51e0\u5206\u949f\u3002\u5c24\u5176\u662f\u7814\u53d1\u7ecf\u7406\uff0c\u627f\u62c5\u66f4\u591a\u7684\u8d23\u4efb\uff0c\u7ebf\u4e0a\u7ebf\u4e0b\u7684\u95ee\u9898\u90fd\u8981\u7167\u987e\u5230\uff0c\u8fd8\u8981\u89e3\u7b54\u5185\u5916\u7684\u5404\u79cd\u54a8\u8be2\uff0c\u5de5\u4f5c\u65f6\u95f4\u788e\u7247\u5316\u4e25\u91cd\u3002\u6211\u4eec\uff08\u5305\u62ec\u7cfb\u7edf\uff09\u7ed9\u51fa\u7684\u4fe1\u606f\uff0c\u4e00\u5b9a\u8981\u8db3\u591f\u7b80\u7ec3\uff0c\u4e00\u76ee\u4e86\u7136\uff0c\u8ba9\u4eba\u5f88\u5bb9\u6613\u514b\u670d\u7126\u8e81\u60c5\u7eea\uff0c\u556a\u556a\u5730\u5c31\u5904\u7406\u4e86\uff0c\u6216\u8005\u556a\u556a\u5730\u4e8c\u6b21\u5206\u53d1\u51fa\u53bb\u3002\xa0\u4e0d\u8981\u8ba9\u65e0\u7528\u7684\u4fe1\u606f\u6298\u78e8\u8fd9\u4e9b\u4eba\u3002"),(0,a.yg)("p",null,"\u5176\u6b21\uff0c\u6280\u672f\u4eba\u5458\u662f\u201c\u4e16\u754c\u201d\u7684\u6784\u5efa\u8005\uff0c\u4e0d\u5f97\u4e0d\u505a\u5927\u91cf\u7410\u788e\u4e14\u67af\u71e5\u7684\u5de5\u4f5c\uff0c\u5176\u4e2d\uff0c\u76f8\u5f53\u5927\u6bd4\u4f8b\u7684\u5de5\u4f5c\u662f\u91cd\u590d\u6027\u7684\uff0c\u5982\u4fee\u6539\u914d\u7f6e\u6587\u4ef6\u9002\u914d\u4e0d\u540c\u73af\u5883\uff0c\u5982\u6253\u5305\u3002\n\u91cd\u590d\u7684\u5de5\u4f5c\u4e00\u65b9\u9762\u5bb9\u6613\u51fa\u9519\uff0c\u5c24\u5176\u662f\u5728\u901a\u5bb5\u4e0a\u7ebf\u65f6\uff0c\u53e6\u4e00\u65b9\u9762\u6d88\u78e8\u4eba\u7684\u8010\u5fc3\u548c\u6597\u5fd7\u3002 \u6211\u5728\u300a\u804c\u573a\u57f9\u8bad\u7b2c\u4e94\u671f\uff1a\u804c\u573a\u7684\u771f\u76f8\u300b\u4e2d\u8bb2\u8fc7\u89e3\u9898\u601d\u8def\uff1a\u300e",(0,a.yg)("strong",{parentName:"p"},"\u8981\u6452\u5f03\u5355\u7eaf\u4f9d\u9760\u5458\u5de5\u4e4b\u95f4\u4e92\u76f8\u63d0\u9192\u3001\u4f9d\u9760\u4e2a\u4eba\u8ba4\u771f\u7ec6\u81f4\u6765\u89c4\u907f\u76f8\u540c\u9519\u8bef\u7684\u56fa\u6709\u601d\u8def\uff0c\u94c1\u6253\u8425\u76d8\u6d41\u6c34\u5175\uff0c\u9760\u4eba\u7ec8\u5f52\u662f\u9760\u4e0d\u4f4f\u7684\uff0c\u6700\u597d\u9760\u9075\u5faa\u89c4\u5219\u7684\u673a\u5668"),"\u300f\u3002\n\u738b\u6dee\u5728\u300a\u4ee5 Facebook \u4e3a\u6848\u4f8b\u5256\u6790\u79d1\u6280\u516c\u53f8\u5e94\u6709\u7684\u5de5\u5177\u6587\u5316\u300b\u4e00\u6587\u4e2d\u8c08\u53ca\uff0c\u57fa\u672c\u7406\u5ff5\u5c31\u662f",(0,a.yg)("strong",{parentName:"p"},'\u51e1\u662f\u88ab\u5f88\u591a\u4eba\u4e0d\u65ad\u91cd\u590d\u7684\u597d\u4e60\u60ef\uff0c\u8981\u5c06\u5176\u81ea\u52a8\u5316\uff0c\u7ed1\u5b9a\u5230\u5de5\u5177\u4e4b\u4e2d\uff0c\u4ee5"Don\'t make me think"\u7684\u65b9\u5f0f\u6765\u63a8\u5e7f\u6700\u4f73\u5b9e\u8df5\uff08best practice\uff09'),"\u3002"),(0,a.yg)("p",null,"\u57fa\u4e8e\u4ee5\u4e0a\u539f\u56e0\uff0c\u6211\u4eec\u8ba4\u4e3a\uff0c",(0,a.yg)("strong",{parentName:"p"},"\u51e1\u662f\u88ab\u4e0d\u65ad\u91cd\u590d\u7684\u8fc7\u7a0b\uff0c\u5c06\u5176\u5de5\u5177\u5316\uff0c\u7ed1\u5b9a\u5230\u81ea\u52a8\u5316\u6d41\u7a0b\u4e4b\u4e2d\uff0c\u51cf\u5c11\u4e0d\u5fc5\u8981\u7684\u5fc3\u667a\u8d1f\u62c5"),"\u3002\n\u8fd9\u4e5f\u5c31\u662f\u8fc7\u53bb\u51e0\u5e74\u91cc\u6211\u4eec\u4e00\u5b63\u5b63\u5730\u63a8\u8fdb\u6301\u7eed\u96c6\u6210\uff08Continuous Integration\uff0cCI\uff09\u7684\u539f\u56e0\uff0c\u628a\u6211\u4eec\u7684\u7ecf\u9a8c\u6559\u8bad\u53d8\u6210\u53ef\u91cd\u590d\u7684\u89c4\u5219\uff0c\u878d\u5165\u5de5\u5177\u4e2d\uff0c\u878d\u5165\u81ea\u52a8\u5316\u6d41\u7a0b\u4e2d\uff0c\u800c\u4e0d\u662f\u4e00\u4ee3\u4e00\u4ee3\u53e3\u53e3\u76f8\u4f20\u3002"),(0,a.yg)("p",null,"\u597d\u4e86\uff0c\u5728\u4e3e\u5177\u4f53\u7684\u4f8b\u5b50\u4e4b\u524d\uff0c\u8ba9\u6211\u4eec\u5927\u58f0\u8bfb\u51fa\u8fd9\u51e0\u6761 Slogan\uff1a"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"Don't make me think!"),(0,a.yg)("li",{parentName:"ul"},"\u51cf\u5c11\u4e0d\u5fc5\u8981\u7684\u5fc3\u667a\u8d1f\u62c5\uff01")),(0,a.yg)("h3",{id:"if-it-hurts-do-it-more-and-often"},"If it hurts, do it more and often"),(0,a.yg)("p",null,"\u6211\u4eec\u4e0d\u80fd\u6b7b\u4e8e\u542c\u5929\u7531\u547d\u548c\u6f2b\u4e0d\u7ecf\u5fc3\u3002\n\u5de5\u7a0b\u5e08\u4e3a\u4ec0\u4e48\u4f1a\u542c\u5929\u7531\u547d\uff1f"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u56e0\u4e3a\u7ebf\u4e0a\u65e5\u5fd7\u91cc\u7684\u5f02\u5e38\u5b9e\u5728\u662f\u592a\u591a\u4e86\uff0c\u5904\u7406\u4e0d\u8fc7\u6765\u3002",(0,a.yg)("ul",{parentName:"li"},(0,a.yg)("li",{parentName:"ul"},"\u56e0\u4e3a\u5f02\u5e38\u592a\u591a\u4e86\uff0c\u6df9\u6ca1\u4e86\u81f4\u547d\u5f02\u5e38\uff0c\u4ee5\u81f3\u4e8e\u670d\u52a1\u6302\u5f97\u6b7b\u6b7b\u7684\u624d\u53d1\u73b0\u95ee\u9898\u5df2\u7ecf\u5b58\u5728N\u4e45\u4e86\u3002"))),(0,a.yg)("li",{parentName:"ul"},"\u56e0\u4e3a\u660e\u5929\u5c31\u8981\u63d0\u6d4b\u4e86\uff0c\u4ee3\u7801\u5408\u5e76\u51b2\u7a81\u8fd8\u6709\u51e0\u5343\u4e2a\u3002",(0,a.yg)("ul",{parentName:"li"},(0,a.yg)("li",{parentName:"ul"},"\u6bcf\u5230\u5e38\u89c4\u7248\u672c\u63d0\u6d4b\u65f6\u5c31\u5fc3\u91cc\u6253\u9f13\uff0c\u5408\u5e76\u4e2a\u4ee3\u7801\u90fd\u5f97\u9884\u7559\u4e24\u5929\u65f6\u95f4\u3002"))),(0,a.yg)("li",{parentName:"ul"},"\u56e0\u4e3a\u753b\u65f6\u5e8f\u56fe\u597d\u70e6\uff0c\u6240\u4ee5\u590d\u6742\u7cfb\u7edf\u7684\u6570\u636e\u6d41\u8f6c\u9760\u201c\u5fc3\u7b97\u201d\u3001\u9760\u6587\u5b57\u63cf\u8ff0\u3002",(0,a.yg)("ul",{parentName:"li"},(0,a.yg)("li",{parentName:"ul"},"\u4eba\u8111\u5bb9\u6613\u6709\u601d\u7ef4\u6b7b\u89d2\uff0c\u4e00\u4e2a\u8003\u8651\u4e0d\u5230\uff0c\u7cfb\u7edf\u5c31\u9632\u4e0d\u4f4f\u5e76\u53d1\u63d0\u4ea4\u548c\u91cd\u590d\u63d0\u4ea4\u3002"))),(0,a.yg)("li",{parentName:"ul"},"\u2026\u2026")),(0,a.yg)("p",null,"\u56e0\u4e3a\u5df2\u7136\u96c6\u814b\u6210\u88d8\uff0c\u6240\u4ee5\u505a\u4e8b\u524d\u6211\u4eec\u5404\u79cd\u7ea0\u7ed3\u548c\u62b5\u89e6\uff0c\u4e8e\u662f\u627e\u5404\u79cd\u7406\u7531\u62d6\u5ef6\u3002\n\u600e\u4e48\u529e\uff1f\n\u6211\u5728\u300a\u804c\u4e1a\u5316\u76847\u4e2a\u7ec6\u8282\u300b\u91cc\u8bb2\u5230\uff0c \u5982\u679c\u4e00\u4ef6\u4e8b\u505a\u8d77\u6765\u5f88\u70e6\uff0c\u90a3\u5c31\u628a\u5b83\u62c6\u6210\u5f88\u591a\u5757\u513f\uff0c\u6bcf\u5929\u505a\u4e00\u70b9\uff0c\u6bcf\u6b21\u505a\u4e00\u70b9\u3002"),(0,a.yg)("h3",{id:"\u8fd9\u4e2a\u4e16\u754c\u4ece\u6765\u6ca1\u6709\u4ec0\u4e48\u6551\u4e16\u4e3b"},"\u8fd9\u4e2a\u4e16\u754c\u4ece\u6765\u6ca1\u6709\u4ec0\u4e48\u6551\u4e16\u4e3b"),(0,a.yg)("p",null,"\u8fd9\u4e2a\u54f2\u5b66\u6211\u8fc7\u53bb\u51e0\u5e74\u91cc\u4e00\u800c\u518d\u518d\u800c\u4e09\u5730\u8bb2\u3002\u5728\u300a\u804c\u4e1a\u57f9\u8bad\u7b2c\u4e94\u671f\uff1a\u804c\u573a\u7684\u771f\u76f8\u300b\u4e2d\uff0c\u6211\u8bf4\uff1a\u8fc7\u53bb\u51e0\u5e74\u91cc\uff0c\u6211\u4eec\u6df1\u6df1\u5730\u4f53\u4f1a\u5230\uff0c\u4ece\u6765\u5c31\u6ca1\u6709\u4ec0\u4e48\u6551\u4e16\u4e3b\uff0c\u8981\u521b\u9020\u4eba\u7c7b\u7684\u5e78\u798f\u5168\u9760\u6211\u4eec\u81ea\u5df1\uff0c\u4e0d\u8981\u6307\u671b\u6709\u4ec0\u4e48\u4eba\u80fd\u6551\u6211\u4eec\uff0c\u53ea\u80fd\u7ede\u5c3d\u8111\u6c41\u95ef\u9635\u3002"),(0,a.yg)("p",null,"\u4e3a\u4ec0\u4e48\uff1f\n\u6280\u672f\u56e2\u961f\u662f\u4e92\u8054\u7f51\u516c\u53f8\u91cc\u6700\u8ba4\u771f\u6700\u4e13\u4e1a\u6700\u5b9e\u64cd\u6700\u9760\u8c31\u7684\u4e00\u7fa4\u4eba\uff0c\u5982\u679c\u6211\u4eec\u51e1\u4e8b\u90fd\u8981\u6307\u671b\u522b\u4eba\u7ed9\u6211\u4eec\u89e3\u51b3\u65b9\u6848\u548c\u601d\u8def\uff0c\u6307\u671b\u522b\u4eba\u6bd4\u6211\u4eec\u66f4\u8ba4\u771f\uff0c\u90a3\u8fd9\u4e2a\u516c\u53f8\u5c31\u5371\u5728\u65e6\u5915\u4e86\u3002\n\u6240\u4ee5\uff0c\u6211\u57282012\u5e74\u7684\u98de\u884c\u7814\u8ba8\u4f1a\u4e0a\u629b\u51fa\u4e24\u4e2a Slogan\uff1a"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u629b\u6389\u5e7b\u60f3\uff0c\u52c7\u6562\u9762\u5bf9\uff01"),(0,a.yg)("li",{parentName:"ul"},"\u76f4\u9762\u767d\u5203\u6218\uff01")),(0,a.yg)("p",null,"\u57fa\u4e8e\u8fd9\u4e2a\u54f2\u5b66\uff0c\u6211\u4eec\u884d\u751f\u51fa\u4e24\u4e2a Slogan\uff1a"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u4e0d\u8981\u7b49\u6b7b\uff01"),(0,a.yg)("li",{parentName:"ul"},"\u5411\u524d\u8fc8\u534a\u6b65\u5bf9\u63a5\uff01")),(0,a.yg)("h3",{id:"\u4e00\u5b9a\u8981\u6709\u540e\u5907\u65b9\u6848"},"\u4e00\u5b9a\u8981\u6709\u540e\u5907\u65b9\u6848"),(0,a.yg)("p",null,"\u707e\u96be\uff0c\u603b\u662f\u5728\u4f60\u610f\u6599\u4e4b\u5916\u3002\n\u4e00\u4e2a\u540e\u5907\u65b9\u6848\uff0c\n\u6700\u540e\u4e00\u6761\u8ba9\u4f60\u8d77\u6b7b\u56de\u751f\u7684\u8def\u3002"),(0,a.yg)("p",null,"\u65e9\u5e74\u95f4\uff0c\u4faf\u5c0f\u5f3a\u66fe\u7ecf\u8bf4\u8fc7\uff1a \u5982\u679c\u4f60\u5728\u804c\u573a\uff0c\u9700\u8981\u6709\u4e09\u4e2a\u597d\u4e60\u60ef\uff0c1\uff0c\u80fd\u9a6c\u4e0a\u505a\u7684\u4e8b\u60c5\u9a6c\u4e0a\u505a\u30022\uff0c\u6bcf\u4e2a\u4e8b\u60c5\u8981\u6709\u59cb\u6709\u7ec8\u30023\uff0c\u8981\u6709\u8fd9\u4e2a\u4e60\u60ef\u601d\u7ef4\uff0c\u6ca1\u6709\u82e6\u52b3\uff0c\u53ea\u6709\u529f\u52b3\u3002\u4f46\u5982\u679c\u6ca1\u6709\u6781\u5176\u52aa\u529b\uff0c\u901a\u5e38\u4e5f\u4e0d\u4f1a\u6709\u529f\u52b3\u3002\n\u5ef6\u7eed\u7740\u8fd9\u4e2a\u601d\u7ef4\uff0c\u6211\u4eec\u8fc7\u53bb\u51e0\u5e74\u91cc\u53cd\u590d\u5f3a\u8c03\uff1a",(0,a.yg)("strong",{parentName:"p"},"\u6ca1\u6709\u7ed3\u679c\u5c31\u6ca1\u6709\u610f\u4e49"),"\u3002\u4e0d\u8981\u671f\u671b\u516c\u53f8\u56e0\u4e3a\u4f60\u548c\u5c0f\u4f19\u4f34\u4eec\u6709\u82e6\u52b3\u800c\u5bbd\u5bb9\u4f60\u4eec\u6ca1\u6709\u4ea7\u51fa\uff0c\u8fd9\u662f\u4e00\u4e2a\u5546\u4e1a\u516c\u53f8\u3002"),(0,a.yg)("h3",{id:"devops-\u65b0\u516b\u8363\u516b\u803b\u6bcf\u4e00\u6761\u90fd\u662f\u8840\u8089\u957f\u57ce"},"DevOps \u65b0\u516b\u8363\u516b\u803b\uff0c\u6bcf\u4e00\u6761\u90fd\u662f\u8840\u8089\u957f\u57ce"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},"\u4ee5\u968f\u65f6\u53ef\u6269\u5bb9\u3001\u53ef\u7f29\u5bb9\u3001\u53ef\u91cd\u542f\u3001\u53ef\u5207\u6362\u673a\u623f\u6d41\u91cf\u4e3a\u8363\uff0c\u4ee5\u4e0d\u80fd\u8fc1\u79fb\u4e3a\u803b\u3002"),(0,a.yg)("li",{parentName:"ol"},"\u4ee5\u53ef\u914d\u7f6e\u4e3a\u8363\uff0c\u4ee5\u786c\u7f16\u7801\u4e3a\u803b\u3002"),(0,a.yg)("li",{parentName:"ol"},"\u4ee5\u7cfb\u7edf\u4e92\u5907\u4e3a\u8363\uff0c\u4ee5\u7cfb\u7edf\u5355\u70b9\u4e3a\u803b\u3002"),(0,a.yg)("li",{parentName:"ol"},"\u4ee5\u4ea4\u4ed8\u65f6\u6709\u76d1\u63a7\u62a5\u8b66\u4e3a\u8363\uff0c\u4ee5\u4ea4\u4ed8\u88f8\u5954\u7cfb\u7edf\u4e3a\u803b\u3002"),(0,a.yg)("li",{parentName:"ol"},"\u4ee5\u65e0\u72b6\u6001\u4e3a\u8363\uff0c\u4ee5\u6709\u72b6\u6001\u4e3a\u803b\u3002"),(0,a.yg)("li",{parentName:"ol"},"\u4ee5\u6807\u51c6\u5316\u4e3a\u8363\uff0c\u4ee5\u7279\u6b8a\u5316\u4e3a\u803b\u3002"),(0,a.yg)("li",{parentName:"ol"},"\u4ee5\u81ea\u52a8\u5316\u5de5\u5177\u4e3a\u8363\uff0c\u4ee5\u4eba\u8089\u64cd\u4f5c\u4e3a\u803b\u3002"),(0,a.yg)("li",{parentName:"ol"},"\u4ee5\u65e0\u4eba\u503c\u5b88\u4e3a\u8363\uff0c\u4ee5\u4eba\u5de5\u4ecb\u5165\u4e3a\u803b\u3002")),(0,a.yg)("h3",{id:"\u6838\u5fc3\u4e1a\u52a1\u6d41\u7a0b\u7684\u6545\u969c\u5904\u7406\u539f\u5219\u4e0d\u53ef\u604b\u6218"},"\u6838\u5fc3\u4e1a\u52a1\u6d41\u7a0b\u7684\u6545\u969c\u5904\u7406\u539f\u5219\uff1a\u4e0d\u53ef\u604b\u6218"),(0,a.yg)("p",null,"\u7b2c\u4e00\u65f6\u95f4\u53eb\u591a\u4eba\u4e00\u8d77\u5206\u5934\u67e5\uff1a\u67e5\u673a\u623f\uff0c\u67e5\u6d41\u91cf\uff0c\u67e5\u5e94\u7528\u6027\u80fd\uff0c\u67e5\u6570\u636e\u5e93\uff0c\u67e5Redis\u3002\n\u5982\u679c\u8fdf\u8fdf\u5b9a\u4f4d\u4e0d\u4e86\u95ee\u9898\uff08\u6bd4\u5982\u5341\u5206\u949f\u4e4b\u5185\uff09\uff0c\u5c31\u4e0d\u53ef\u604b\u6218\uff0c\u5fc5\u987b\u6062\u590d\u4e1a\u52a1\uff08\u4e09\u677f\u65a7\uff09\uff1a\n\u7b2c\u4e00\u62db\u91cd\u542f\u5e94\u7528\uff0c\n\u7b2c\u4e8c\u62db\u56de\u9000\u7248\u672c\uff0c\n\u6700\u540e\u4e00\u62db\u662f\u5f02\u5730\u591a\u6d3b\u5207\u673a\u623f\u6d41\u91cf\uff0c\u628a\u53d7\u5f71\u54cd\u7684\u5546\u6237\u5207\u5230\u53e6\u4e00\u4e2a\u673a\u623f\u7684\u5355\u5143\u683c\u91cc\u3002\n\u5343\u4e07\u522b\u5728\u5b9a\u4f4d\u95ee\u9898\u4e0a\u82b1\u592a\u591a\u65f6\u95f4\u3002"),(0,a.yg)("h3",{id:"\u5f53\u6211\u4eec\u8c08\u91cd\u6784\u7684\u65f6\u5019\u6211\u4eec\u60f3\u8c08\u4ec0\u4e48"},"\u5f53\u6211\u4eec\u8c08\u91cd\u6784\u7684\u65f6\u5019\u6211\u4eec\u60f3\u8c08\u4ec0\u4e48"),(0,a.yg)("p",null,"\u5982\u679c\u4f60\u5728\u7e41\u5fd9\u7684\u4e1a\u52a1\u8fed\u4ee3\u4e2d\u5f00\u59cb\u7cfb\u7edf\u91cd\u6784\uff0c\u606d\u559c\u4f60\uff0c\u8bf4\u660e\u4f60\u7684\u4e1a\u52a1\u5df2\u7ecf\u5b8c\u6210\u4e86\u4ece0\u52301\uff0c\u6b63\u5728\u4ece1\u8d70\u541110\uff0c\u6216\u8005\u4ece10\u8d70\u5411100\u3002"),(0,a.yg)("p",null,(0,a.yg)("strong",{parentName:"p"},"\u4e24\u4e2a\u201c\u662f\u5426\u6709\u5229\u4e8e\u201d\uff1a"),"\n",(0,a.yg)("strong",{parentName:"p"},"\u4e00\uff0c\u662f\u5426\u6709\u5229\u4e8e\u53d1\u5e03\u90e8\u7f72\u3002"),"\n",(0,a.yg)("strong",{parentName:"p"},"\u4e8c\uff0c\u662f\u5426\u6709\u5229\u4e8e\u6392\u9664\u6545\u969c\uff08\u662f\u5426\u6709\u5229\u4e8e\u5feb\u901f\u5b9a\u4f4d\u95ee\u9898\u548c\u89e3\u51b3\u95ee\u9898\uff09\u3002")),(0,a.yg)("p",null,"\xa0\n",(0,a.yg)("strong",{parentName:"p"},"\u4e24\u4e2a\u6212\u5f8b\uff1a"),"\n",(0,a.yg)("strong",{parentName:"p"},"\u6212\u5f8b\u4e00\uff1a\u51e1\u662f\u4e2d\u95f4\u4ef6\uff0c\u4e0d\u7ba1\u662f\u81ea\u4e3b\u5f00\u53d1\u7684\uff0c\u8fd8\u662f\u4ee5\u5f00\u6e90\u8f6f\u4ef6\u4e3a\u5185\u6838\u6784\u5efa\u51fa\u6765\u7684\uff0c\u90fd\u5fc5\u987b\u81ea\u5e26\u76d1\u63a7\u62a5\u8b66\uff0c\u5426\u5219\u4e0d\u5141\u8bb8\u4e0a\u7ebf\u3002"),"\n",(0,a.yg)("strong",{parentName:"p"},"\u6212\u5f8b\u4e8c\uff1a\u672c\u7740 Don't make me think \u7684\u54f2\u5b66\u601d\u8def\uff0c\u6240\u6709\u5bf9\u6392\u9664\u6545\u969c\u6709\u5e2e\u52a9\u7684\u4fe1\u606f\uff0c\u90fd\u5fc5\u987b\u4e00\u7ad9\u5f0f\u5c55\u793a\u5728\u4ea4\u4e92\u754c\u9762\u4e0a\uff0c\u4e5f\u5c31\u662f\u4e2d\u95f4\u4ef6\u7684\u63a7\u5236\u53f0\u4e0a\uff0c\u6216\u8fd0\u7ef4\u81ea\u52a8\u5316\u5e73\u53f0\u4e0a\uff0c\u6216\u7814\u53d1\u534f\u4f5c\u5e73\u53f0\u4e0a\u3002")),(0,a.yg)("h3",{id:"\u8981\u719f\u7ec3\u638c\u63e1\u7684\u4e03\u4e2a\u4eba\u751f\u5de5\u5177"},"\u8981\u719f\u7ec3\u638c\u63e1\u7684\u4e03\u4e2a\u4eba\u751f\u5de5\u5177"),(0,a.yg)("h4",{id:"\u4e00swot\u5206\u6790\u6cd5"},"\u4e00\u3001SWOT\u5206\u6790\u6cd5\uff1a"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"Strengths\uff1a\u4f18\u52bf"),(0,a.yg)("li",{parentName:"ul"},"Weaknesses\uff1a\u52a3\u52bf"),(0,a.yg)("li",{parentName:"ul"},"Opportunities\uff1a\u673a\u4f1a"),(0,a.yg)("li",{parentName:"ul"},"Threats\uff1a\u5a01\u80c1"),(0,a.yg)("li",{parentName:"ul"},"\u610f\u4e49\uff1a\u5e2e\u60a8\u6e05\u6670\u5730\u628a\u63e1\u5168\u5c40\uff0c\u5206\u6790\u81ea\u5df1\u5728\u8d44\u6e90\u65b9\u9762\u7684\u4f18\u52bf\u4e0e\u52a3\u52bf\uff0c\u628a\u63e1\u73af\u5883\u63d0\u4f9b\u7684\u673a\u4f1a\uff0c\u9632\u8303\u53ef\u80fd\u5b58\u5728\u7684\u98ce\u9669\u4e0e\u5a01\u80c1\uff0c\u5bf9\u6211\u4eec\u7684\u6210\u529f\u6709\u975e\u5e38\u91cd\u8981\u7684\u610f\u4e49\u3002")),(0,a.yg)("h4",{id:"\u4e8cpdca\u5faa\u73af\u89c4\u5219"},"\u4e8c\u3001PDCA\u5faa\u73af\u89c4\u5219"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"Plan\uff1a\u5236\u5b9a\u76ee\u6807\u4e0e\u8ba1\u5212\uff1b"),(0,a.yg)("li",{parentName:"ul"},"Do\uff1a\u4efb\u52a1\u5c55\u5f00\uff0c\u7ec4\u7ec7\u5b9e\u65bd\uff1b"),(0,a.yg)("li",{parentName:"ul"},"Check\uff1a\u5bf9\u8fc7\u7a0b\u4e2d\u7684\u5173\u952e\u70b9\u548c\u6700\u7ec8\u7ed3\u679c\u8fdb\u884c\u68c0\u67e5\uff1b"),(0,a.yg)("li",{parentName:"ul"},"Action\uff1a\u7ea0\u6b63\u504f\u5dee\uff0c\u5bf9\u6210\u679c\u8fdb\u884c\u6807\u51c6\u5316\uff0c\u5e76\u786e\u5b9a\u65b0\u7684\u76ee\u6807\uff0c\u5236\u5b9a\u4e0b\u4e00\u8f6e\u8ba1\u5212\u3002"),(0,a.yg)("li",{parentName:"ul"},"\u610f\u4e49\uff1a\u6bcf\u4e00\u9879\u5de5\u4f5c\uff0c\u90fd\u662f\u4e00\u4e2apdca\u5faa\u73af\uff0c\u90fd\u9700\u8981\u8ba1\u5212\u3001\u5b9e\u65bd\u3001\u68c0\u67e5\u7ed3\u679c\uff0c\u5e76\u8fdb\u4e00\u6b65\u8fdb\u884c\u6539\u8fdb\uff0c\u540c\u65f6\u8fdb\u5165\u4e0b\u4e00\u4e2a\u5faa\u73af\uff0c\u53ea\u6709\u5728\u65e5\u79ef\u6708\u7d2f\u7684\u6e10\u8fdb\u6539\u5584\u4e2d\uff0c\u624d\u53ef\u80fd\u4f1a\u6709\u8d28\u7684\u98de\u8dc3\uff0c\u624d\u53ef\u80fd\u53d6\u5f97\u5b8c\u5584\u6bcf\u4e00\u9879\u5de5\u4f5c\uff0c\u5b8c\u5584\u81ea\u5df1\u7684\u4eba\u751f\u3002")),(0,a.yg)("h4",{id:"\u4e096w2h\u6cd5"},"\u4e09\u30016W2H\u6cd5"),(0,a.yg)("p",null,"**"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"What\uff1a\u5de5\u4f5c\u7684\u5185\u5bb9\u548c\u8fbe\u6210\u7684\u76ee\u6807\uff1b"),(0,a.yg)("li",{parentName:"ul"},"Why\uff1a\u505a\u8fd9\u9879\u5de5\u4f5c\u7684\u539f\u56e0\uff1b"),(0,a.yg)("li",{parentName:"ul"},"Who\uff1a\u53c2\u52a0\u8fd9\u9879\u5de5\u4f5c\u7684\u5177\u4f53\u4eba\u5458\uff0c\u4ee5\u53ca\u8d1f\u8d23\u4eba\uff1b"),(0,a.yg)("li",{parentName:"ul"},"When\uff1a\u5728\u4ec0\u4e48\u65f6\u95f4\u3001\u4ec0\u4e48\u65f6\u95f4\u6bb5\u8fdb\u884c\u5de5\u4f5c\uff1b"),(0,a.yg)("li",{parentName:"ul"},"Where\uff1a\u5de5\u4f5c\u53d1\u751f\u7684\u5730\u70b9 \uff1b"),(0,a.yg)("li",{parentName:"ul"},"Which\uff1a\u54ea\u4e00\u79cd\u65b9\u6cd5\u6216\u9014\u5f84\uff1b"),(0,a.yg)("li",{parentName:"ul"},"How\uff1a\u7528\u4ec0\u4e48\u65b9\u6cd5\u8fdb\u884c\uff1b"),(0,a.yg)("li",{parentName:"ul"},"How much\uff1a\u9700\u8981\u591a\u5c11\u6210\u672c\uff1f"),(0,a.yg)("li",{parentName:"ul"},"\u610f\u4e49\uff1a\u505a\u4efb\u4f55\u5de5\u4f5c\u90fd\u5e94\u8be5\u4ece6W2H\u6765\u601d\u8003\uff0c\u8fd9\u6709\u52a9\u4e8e\u6211\u4eec\u7684\u601d\u8def\u7684\u6761\u7406\u5316\uff0c\u675c\u7edd\u76f2\u76ee\u6027\u3002\u6211\u4eec\u7684\u6c47\u62a5\u4e5f\u5e94\u8be5\u75286W2H\uff0c\u80fd\u8282\u7ea6\u5199\u62a5\u544a\u53ca\u770b\u62a5\u544a\u7684\u65f6\u95f4\u3002")),(0,a.yg)("h4",{id:"\u56dbsmart\u539f\u5219"},"\u56db\u3001SMART\u539f\u5219"),(0,a.yg)("p",null,"**"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"Specific \u5177\u4f53\u7684\uff1b"),(0,a.yg)("li",{parentName:"ul"},"Measurable \u53ef\u6d4b\u91cf\u7684\uff1b"),(0,a.yg)("li",{parentName:"ul"},"Attainable \u53ef\u8fbe\u5230\u7684\uff1b"),(0,a.yg)("li",{parentName:"ul"},"Relevant \u76f8\u5173\u7684\uff1b"),(0,a.yg)("li",{parentName:"ul"},"Time based \u65f6\u95f4\u7684\uff1b"),(0,a.yg)("li",{parentName:"ul"},"\u610f\u4e49\uff1a\u4eba\u4eec\u5728\u5236\u5b9a\u5de5\u4f5c\u76ee\u6807\u6216\u8005\u4efb\u52a1\u76ee\u6807\u65f6\uff0c\u8003\u8651\u4e00\u4e0b\u76ee\u6807\u4e0e\u8ba1\u5212\u662f\u4e0d\u662fSMART\u5316\u7684\u3002\u53ea\u6709\u5177\u5907SMART\u5316\u7684\u8ba1\u5212\u624d\u662f\u5177\u6709\u826f\u597d\u53ef\u5b9e\u65bd\u6027\u7684\uff0c\u4e5f\u624d\u80fd\u6307\u5bfc\u4fdd\u8bc1\u8ba1\u5212\u5f97\u4ee5\u5b9e\u73b0\u3002"),(0,a.yg)("li",{parentName:"ul"},"\u7279\u522b\u6ce8\u660e\uff1a")),(0,a.yg)("p",null,"\u6709\u7684\u53c8\u5982\u6b64\u89e3\u91ca\u6b64\u539f\u5219\uff1a\n\u2014\u2014S\u4ee3\u8868\u5177\u4f53(Specific)\uff0c\u6307\u7ee9\u6548\u8003\u6838\u8981\u5207\u4e2d\u7279\u5b9a\u7684\u5de5\u4f5c\u6307\u6807\uff0c\u4e0d\u80fd\u7b3c\u7edf\uff1b\n\u2014\u2014M\u4ee3\u8868\u53ef\u5ea6\u91cf(Measurable)\uff0c\u6307\u7ee9\u6548\u6307\u6807\u662f\u6570\u91cf\u5316\u6216\u8005\u884c\u4e3a\u5316\u7684\uff0c\u9a8c\u8bc1\u8fd9\u4e9b\u7ee9\u6548\u6307\u6807\u7684\u6570\u636e\u6216\u8005\u4fe1\u606f\u662f\u53ef\u4ee5\u83b7\u5f97\u7684\uff1b\n\u2014\u2014A\u4ee3\u8868\u53ef\u5b9e\u73b0(Attainable)\uff0c\u6307\u7ee9\u6548\u6307\u6807\u5728\u4ed8\u51fa\u52aa\u529b\u7684\u60c5\u51b5\u4e0b\u53ef\u4ee5\u5b9e\u73b0\uff0c\u907f\u514d\u8bbe\u7acb\u8fc7\u9ad8\u6216\u8fc7\u4f4e\u7684\u76ee\u6807\uff1b\n\u2014\u2014R\u4ee3\u8868\u73b0\u5b9e\u6027(realistic)\uff0c\u6307\u7ee9\u6548\u6307\u6807\u662f\u5b9e\u5b9e\u5728\u5728\u7684\uff0c\u53ef\u4ee5\u8bc1\u660e\u548c\u89c2\u5bdf\uff1b\n\u2014\u2014T\u4ee3\u8868\u6709\u65f6\u9650(time bound)\uff0c\u6ce8\u91cd\u5b8c\u6210\u7ee9\u6548\u6307\u6807\u7684\u7279\u5b9a\u671f\u9650\u3002"),(0,a.yg)("h4",{id:"\u4e94\u65f6\u95f4\u7ba1\u7406-\u91cd\u8981\u4e0e\u7d27\u6025"},"\u4e94\u3001\u65f6\u95f4\u7ba1\u7406-\u91cd\u8981\u4e0e\u7d27\u6025"),(0,a.yg)("p",null,"**"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"A\u3001\u91cd\u8981\u4e14\u7d27\u6025")),(0,a.yg)("p",null,"\u7d27\u6025\u72b6\u51b5\n\u8feb\u5207\u7684\u95ee\u9898\n\u9650\u671f\u5b8c\u6210\u7684\u5de5\u4f5c\n\u4f60\u4e0d\u505a\u5176\u4ed6\u4eba\u4e5f\u4e0d\u80fd\u505a"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"B\u3001\u91cd\u8981\u4e0d\u7d27\u6025")),(0,a.yg)("p",null,"\u51c6\u5907\u5de5\u4f5c\n\u9884\u9632\u63aa\u65bd\n\u4ef7\u503c\u89c2\u7684\u6f84\u6e05\n\u8ba1\u5212\n\u4eba\u9645\u5173\u7cfb\u7684\u5efa\u7acb\n\u771f\u6b63\u7684\u518d\u521b\u9020\n\u589e\u8fdb\u81ea\u5df1\u7684\u80fd\u529b"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"C\u3001\u7d27\u6025\u4e0d\u91cd\u8981")),(0,a.yg)("p",null,"\u9020\u6210\u5e72\u6270\u7684\u4e8b\u3001\u7535\u8bdd\u3001\n\u4fe1\u4ef6\u3001\u62a5\u544a\n\u4f1a\u8bae\n\u8bb8\u591a\u8feb\u5728\u7709\u6377\u7684\u6025\u4e8b\n\u7b26\u5408\u522b\u4eba\u671f\u671b\u7684\u4e8b"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"D\u3001\u4e0d\u91cd\u8981\u4e0d\u7d27\u6025")),(0,a.yg)("p",null,"\u5fd9\u788c\u7410\u788e\u7684\u4e8b\n\u5e7f\u544a\u51fd\u4ef6\n\u7535\u8bdd\n\u9003\u907f\u6027\u6d3b\u52a8\n\u7b49\u5f85\u65f6\u95f4\n\u4f18\u5148\u987a\u5e8f=\u91cd\u8981\u6027*\u7d27\u8feb\u6027\n\u5728\u8fdb\u884c\u65f6\u95f4\u5b89\u6392\u65f6\uff0c\u5e94\u6743\u8861\u5404\u79cd\u4e8b\u60c5\u7684\u4f18\u5148\u987a\u5e8f\uff0c\u8981\u5b66\u4f1a\u201c\u5f39\u94a2\u7434\u201d\u3002\n\u5bf9\u5de5\u4f5c\u8981\u6709\u524d\u77bb\u80fd\u529b\uff0c\u9632\u60a3\u4e8e\u672a\u7136\uff0c\u5982\u679c\u603b\u662f\u5728\u5fd9\u4e8e\u6551\u706b\uff0c\u90a3\u5c06\u4f7f\u6211\u4eec\u7684\u5de5\u4f5c\u6c38\u8fdc\u5904\u7406\u88ab\u52a8\u4e4b\u4e2d\u3002\n**"),(0,a.yg)("h4",{id:"\u516d\u4efb\u52a1\u5206\u89e3\u6cd5wbs"},"\u516d\u3001\u4efb\u52a1\u5206\u89e3\u6cd5","[WBS]"),(0,a.yg)("p",null,"\u5373Work Breakdown Structure\uff0c\u5982\u4f55\u8fdb\u884cWBS\u5206\u89e3\uff1a\u76ee\u6807\u2192\u4efb\u52a1\u2192\u5de5\u4f5c\u2192\u6d3b\u52a8\nWBS\u5206\u89e3\u7684\u539f\u5219\uff1a\n\u5c06\u4e3b\u4f53\u76ee\u6807\u9010\u6b65\u7ec6\u5316\u5206\u89e3\uff0c\u6700\u5e95\u5c42\u7684\u4efb\u52a1\u6d3b\u52a8\u53ef\u76f4\u63a5\u5206\u6d3e\u5230\u4e2a\u4eba\u53bb\u5b8c\u6210\uff1b\u6bcf\u4e2a\u4efb\u52a1\u539f\u5219\u4e0a\u8981\u6c42\u5206\u89e3\u5230\u4e0d\u80fd\u518d\u7ec6\u5206\u4e3a\u6b62\u3002\nWBS\u5206\u89e3\u7684\u65b9\u6cd5\uff1a\n\u81f3\u4e0a\u800c\u4e0b\u4e0e\u81f3\u4e0b\u800c\u4e0a\u7684\u5145\u5206\u6c9f\u901a\uff1b\n\u4e00\u5bf9\u4e00\u4e2a\u522b\u4ea4\u6d41\uff1b\n\u5c0f\u7ec4\u8ba8\u8bba\u3002\nWBS\u5206\u89e3\u7684\u6807\u51c6\uff1a\n\u5206\u89e3\u540e\u7684\u6d3b\u52a8\u7ed3\u6784\u6e05\u6670\uff1b\n\u903b\u8f91\u4e0a\u5f62\u6210\u4e00\u4e2a\u5927\u7684\u6d3b\u52a8\uff1b\n\u96c6\u6210\u4e86\u6240\u6709\u7684\u5173\u952e\u56e0\u7d20\u5305\u542b\u4e34\u65f6\u7684\u91cc\u7a0b\u7891\u548c\u76d1\u63a7\u70b9\uff1b\n\u6240\u6709\u6d3b\u52a8\u5168\u90e8\u5b9a\u4e49\u6e05\u695a\u3002\n\u610f\u4e49\uff1a\u5b66\u4f1a\u5206\u89e3\u4efb\u52a1\uff0c\u53ea\u6709\u5c06\u4efb\u52a1\u5206\u89e3\u5f97\u8db3\u591f\u7ec6\uff0c\u60a8\u624d\u80fd\u5fc3\u91cc\u6709\u6570\uff0c\u60a8\u624d\u80fd\u6709\u6761\u4e0d\u7d0a\u5730\u5de5\u4f5c\uff0c\u60a8\u624d\u80fd\u7edf\u7b79\u5b89\u6392\u60a8\u7684\u65f6\u95f4\u8868\u3002\n**"),(0,a.yg)("h4",{id:"\u4e03\u4e8c\u516b\u539f\u5219"},"\u4e03\u3001\u4e8c\u516b\u539f\u5219"),(0,a.yg)("p",null,"\u5df4\u5217\u7279\u5b9a\u5f8b\uff1a\u201c\u603b\u7ed3\u679c\u768480%\u662f\u7531\u603b\u6d88\u8017\u65f6\u95f4\u4e2d\u768420%\u6240\u5f62\u6210\u7684\u3002\u201d\u6309\u4e8b\u60c5\u7684\u201c\u91cd\u8981\u7a0b\u5ea6\u201d\u7f16\u6392\u4e8b\u52a1\u4f18\u5148\u6b21\u5e8f\u7684\u51c6\u5219\u662f\u5efa\u7acb\u5728\u201c\u91cd\u8981\u7684\u5c11\u6570\u4e0e\u7410\u788e\u7684\u591a\u6570\u201d\u7684\u539f\u7406\u7684\u57fa\u7840\u4e0a\u3002\n\u4e3e\u4f8b\u8bf4\u660e\uff1a\n80%\u7684\u9500\u552e\u989d\u662f\u6e90\u81ea20%\u7684\u987e\u5ba2\uff1b\n80%\u7684\u7535\u8bdd\u662f\u6765\u81ea20%\u7684\u670b\u53cb\uff1b\n80%\u7684\u603b\u4ea7\u91cf\u6765\u81ea20%\u7684\u4ea7\u54c1\uff1b\n80%\u7684\u8d22\u5bcc\u96c6\u4e2d\u572820%\u7684\u4eba\u624b\u4e2d\uff1b\n\u8fd9\u542f\u793a\u6211\u4eec\u5728\u5de5\u4f5c\u4e2d\u8981\u5584\u4e8e\u6293\u4e3b\u8981\u77db\u76fe\uff0c\u5584\u4e8e\u4ece\u7eb7\u7e41\u590d\u6742\u7684\u5de5\u4f5c\u4e2d\u7406\u51fa\u5934\u7eea\uff0c\u628a\u8d44\u6e90\u7528\u5728\u6700\u91cd\u8981\u3001\u6700\u7d27\u8feb\u7684\u4e8b\u60c5\u4e0a\u3002"),(0,a.yg)("h3",{id:"\u63d0\u9ad8\u63d0\u6d4b\u8d28\u91cf"},"\u63d0\u9ad8\u63d0\u6d4b\u8d28\u91cf"),(0,a.yg)("p",null,"QA\u7684\u804c\u8d23\u4e0d\u662f\u5f00\u53d1\u5199\u5b8c\u6254\u7ed9\u4eba\u5bb6\u6d4b\u8bd5\uff0c\u8fd9\u662f\u504f\u89c1\uff0c\u4e5f\u662f\u597d\u591a\u5f00\u53d1\u4eba\u5458\u4e00\u76f4\u6709\u7684\u9519\u8bef\u7684\u89c2\u5ff5\uff0cQA \u4e0d\u662f\u7b80\u5355\u7684\u9a8c\u8bc1\u529f\u80fd\u6027\u7684\uff08\u5f53\u7136\u5b58\u5728\u8fd9\u79cdAQ\uff09\uff0cQA\u66f4\u591a\u662f\u9a8c\u8bc1\u7a0b\u5e8f\u7684",(0,a.yg)("strong",{parentName:"p"},"\u5065\u58ee\u6027"),"\u3001",(0,a.yg)("strong",{parentName:"p"},"\u5bb9\u9519\u6027"),"\uff0c\u6240\u4ee5\u5728\u6211\u4eec\u8fd9\u91cc\u5e94\u8be5\u4fdd\u8bc1\u7a0b\u5e8f\u6700\u57fa\u672c\u7684\u529f\u80fd\u6027\u95ee\u9898\uff0c\u51cf\u5c11\u4ee3\u7801\u7684\u56de\u6eaf\uff0c\u8fd9\u6837\u624d\u80fd\u4e0d\u5f71\u54cd\u4ea7\u54c1\u7684\u8fc5\u901f\u8fed\u4ee3\uff0c\u4e0d\u5f71\u54cd\u4ea7\u54c1\u7684\u63a8\u8fdb\u3002"),(0,a.yg)("h3",{id:"\u5148\u5199\u6587\u6863\u518d\u5199\u4ee3\u7801"},"\u5148\u5199\u6587\u6863\u518d\u5199\u4ee3\u7801"),(0,a.yg)("p",null,"\u597d\u591a\u7a0b\u5e8f\u5458\u7684\u901a\u75c5\u5c31\u662f\u62ff\u5230\u9700\u6c42\u5c31\u5f00\u59cb\u5199\u4ee3\u7801\uff0c\u8fd9\u662f\u76f8\u5f53\u7684\u4e0d\u8d1f\u8d23\u4efb\u7684\uff0c\u5f88\u660e\u663e\u8fd9\u79cd\u505a\u6cd5\u6709\u95ee\u9898\u3002\u5e94\u8be5\u5148\u5199\u81ea\u5df1\u7684\u601d\u8def\uff0c\u5982\u679c\u529f\u80fd\u5927\u4e00\u4e9b\uff0c\u8981\u5148\u5199\u65b9\u6848\uff0c\u8bc4\u5ba1\u65b9\u6848\u3002\u601d\u8def\u3001\u65b9\u6848\u6ca1\u6709\u95ee\u9898\u5728\u52a8\u624b\u53bb\u5199\u4ee3\u7801\uff0c\u4f60\u4f1a\u53d1\u73b0\u5751\u4f1a\u5c11\u8e29\u597d\u591a\u3002"),(0,a.yg)("h3",{id:"\u4e00\u4e2a\u7a0b\u5e8f\u5458\u7684\u4ef7\u503c\u662f\u89e3\u51b3\u95ee\u9898\u7684\u80fd\u529b"},"\u4e00\u4e2a\u7a0b\u5e8f\u5458\u7684\u4ef7\u503c\u662f\u89e3\u51b3\u95ee\u9898\u7684\u80fd\u529b"),(0,a.yg)("p",null,"\u6280\u672f\u8d8a\u597d\u89e3\u51b3\u95ee\u9898\u7684\u80fd\u529b\u8d8a\u5f3a\uff0c\u8fd9\u4e2a\u6ca1\u6709\u95ee\u9898\uff0c\u8fd9\u662f\u4e00\u4e2a\u6b63\u5411\u6bd4\u4f8b\u5173\u7cfb\u3002\u4f46\u662f\u89e3\u51b3\u95ee\u9898\u7684\u80fd\u529b\uff0c\u4e0d\u4ec5\u4ec5\u5305\u62ec\u6280\u672f\uff0c\u4e5f\u5305\u62ec\u6c9f\u901a\u3001\u4e1a\u52a1\u7b49\u7b49\u5176\u4ed6\u65b9\u9762\u3002\u5728\u5de5\u4f5c\u4e2d\uff0c\u4e0d\u8981\u4ec5\u4ec5\u7684\u53bb\u5b66\u4e60\u5404\u79cd\u7f16\u7a0b\u6280\u672f\uff0c\u4e5f\u8981\u5b66\u4f1a\u6c9f\u901a\u3001\u4e1a\u52a1\u3002"),(0,a.yg)("h3",{id:"\u6ce8\u610f\u6d41\u7a0b\u89c4\u8303"},"\u6ce8\u610f\u6d41\u7a0b\u3001\u89c4\u8303"),(0,a.yg)("p",null,"\u5c24\u5176\u662f\u7ba1\u7406\u4eba\u5458\u3001\u7ec4\u957f\u3001\u9ad8\u7a0b\uff0c\u4e00\u5b9a\u8981\u4e3b\u8981\u6d41\u7a0b\u548c\u89c4\u8303\uff0c\u6ca1\u6709\u6d41\u7a0b\u548c\u89c4\u8303\u5c31\u662f\u4e00\u7fa4\u4e4c\u5408\u4e4b\u4f17\uff0c\u6ca1\u6709\u4efb\u4f55\u6218\u529b\u53ef\u8a00\u3002\u6709\u4e86\u6d41\u7a0b\u548c\u89c4\u8303\uff0c10\u4e2a\u4eba\u53ef\u4ee5\u505a20\u4e2a\u4eba\u7684\u5de5\u4f5c\uff1b\u6ca1\u6709\u6d41\u7a0b\u548c\u89c4\u8303\uff0c20\u4e2a\u4eba\u9876\u591a\u4e5f\u53ea\u80fd\u505a10\u4e2a\u4eba\u7684\u5de5\u4f5c\uff0c\u4e14\u4e0d\u4f1a\u6709\u4efb\u4f55\u53ef\u7ef4\u62a4\u6027\u3002"))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/397e604e.bdc37ed4.js b/assets/js/397e604e.f3275611.js similarity index 98% rename from assets/js/397e604e.bdc37ed4.js rename to assets/js/397e604e.f3275611.js index c7b3f9c4a..f8faa4637 100644 --- a/assets/js/397e604e.bdc37ed4.js +++ b/assets/js/397e604e.f3275611.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9304],{5680:(e,t,r)=>{r.d(t,{xA:()=>s,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var a=n.createContext({}),u=function(e){var t=n.useContext(a),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},s=function(e){var t=u(e.components);return n.createElement(a.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,i=e.originalType,a=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),p=u(r),y=o,f=p["".concat(a,".").concat(y)]||p[y]||d[y]||i;return r?n.createElement(f,c(c({ref:t},s),{},{components:r})):n.createElement(f,c({ref:t},s))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=r.length,c=new Array(i);c[0]=y;var l={};for(var a in t)hasOwnProperty.call(t,a)&&(l[a]=t[a]);l.originalType=e,l[p]="string"==typeof e?e:o,c[1]=l;for(var u=2;u{r.r(t),r.d(t,{assets:()=>a,contentTitle:()=>c,default:()=>d,frontMatter:()=>i,metadata:()=>l,toc:()=>u});var n=r(8168),o=(r(6540),r(5680));const i={sidebar_position:5},c="\u7528\u6237\u8bbe\u7f6e",l={unversionedId:"iotcloud/usercenter/user-settings",id:"iotcloud/usercenter/user-settings",title:"\u7528\u6237\u8bbe\u7f6e",description:"\u672c\u6587\u4e3a\u60a8\u4ecb\u7ecd \u7528\u6237\u8bbe\u7f6e \u7684\u57fa\u672c\u6982\u5ff5\u3001\u4f7f\u7528\u6d41\u7a0b\u3001\u6700\u4f73\u5b9e\u8df5\u548c\u4f7f\u7528\u9650\u5236\u3002",source:"@site/docs/iotcloud/usercenter/user-settings.md",sourceDirName:"iotcloud/usercenter",slug:"/iotcloud/usercenter/user-settings",permalink:"/docs/iotcloud/usercenter/user-settings",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",sidebarPosition:5,frontMatter:{sidebar_position:5},sidebar:"iotCloudSidebar",previous:{title:"\u7528\u6237\u65e5\u5fd7",permalink:"/docs/iotcloud/usercenter/user-log"},next:{title:"RAM \u7528\u6237",permalink:"/docs/iotcloud/usercenter/system-user"}},a={},u=[{value:"\u4ec0\u4e48\u662f\u7528\u6237\u8bbe\u7f6e",id:"\u4ec0\u4e48\u662f\u7528\u6237\u8bbe\u7f6e",level:3},{value:"\u4f7f\u7528\u6d41\u7a0b",id:"\u4f7f\u7528\u6d41\u7a0b",level:3},{value:"\u6700\u4f73\u5b9e\u8df5",id:"\u6700\u4f73\u5b9e\u8df5",level:3},{value:"\u4f7f\u7528\u9650\u5236",id:"\u4f7f\u7528\u9650\u5236",level:3}],s={toc:u},p="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(p,(0,n.A)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"\u7528\u6237\u8bbe\u7f6e"},"\u7528\u6237\u8bbe\u7f6e"),(0,o.yg)("p",null,"\u672c\u6587\u4e3a\u60a8\u4ecb\u7ecd \u7528\u6237\u8bbe\u7f6e \u7684\u57fa\u672c\u6982\u5ff5\u3001\u4f7f\u7528\u6d41\u7a0b\u3001\u6700\u4f73\u5b9e\u8df5\u548c\u4f7f\u7528\u9650\u5236\u3002"),(0,o.yg)("h3",{id:"\u4ec0\u4e48\u662f\u7528\u6237\u8bbe\u7f6e"},"\u4ec0\u4e48\u662f\u7528\u6237\u8bbe\u7f6e"),(0,o.yg)("p",null,"\u5982\u679c\u662f\u6ce8\u518c\u7528\u6237\uff0c\u53ef\u4ee5\u7ba1\u7406\u7528\u6237\u4fe1\u606f\u3001\u4ee5\u53ca\u4e00\u4e9b\u91cd\u8981\u7684\u670d\u52a1\u4fe1\u606f\u914d\u7f6e\uff1b"),(0,o.yg)("p",null,"\u5982\u679c\u662f RAM \u7528\u6237\uff0c\u53ea\u5141\u8bb8\u7ba1\u7406\u7528\u6237\u4fe1\u606f\u3002"),(0,o.yg)("h3",{id:"\u4f7f\u7528\u6d41\u7a0b"},"\u4f7f\u7528\u6d41\u7a0b"),(0,o.yg)("p",null,"GIF \u56fe"),(0,o.yg)("h3",{id:"\u6700\u4f73\u5b9e\u8df5"},"\u6700\u4f73\u5b9e\u8df5"),(0,o.yg)("p",null,"GIF \u56fe"),(0,o.yg)("h3",{id:"\u4f7f\u7528\u9650\u5236"},"\u4f7f\u7528\u9650\u5236"))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9304],{5680:(e,t,r)=>{r.d(t,{xA:()=>s,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var a=n.createContext({}),u=function(e){var t=n.useContext(a),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},s=function(e){var t=u(e.components);return n.createElement(a.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,i=e.originalType,a=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),p=u(r),y=o,f=p["".concat(a,".").concat(y)]||p[y]||d[y]||i;return r?n.createElement(f,c(c({ref:t},s),{},{components:r})):n.createElement(f,c({ref:t},s))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=r.length,c=new Array(i);c[0]=y;var l={};for(var a in t)hasOwnProperty.call(t,a)&&(l[a]=t[a]);l.originalType=e,l[p]="string"==typeof e?e:o,c[1]=l;for(var u=2;u{r.r(t),r.d(t,{assets:()=>a,contentTitle:()=>c,default:()=>d,frontMatter:()=>i,metadata:()=>l,toc:()=>u});var n=r(8168),o=(r(6540),r(5680));const i={sidebar_position:5},c="\u7528\u6237\u8bbe\u7f6e",l={unversionedId:"iotcloud/usercenter/user-settings",id:"iotcloud/usercenter/user-settings",title:"\u7528\u6237\u8bbe\u7f6e",description:"\u672c\u6587\u4e3a\u60a8\u4ecb\u7ecd \u7528\u6237\u8bbe\u7f6e \u7684\u57fa\u672c\u6982\u5ff5\u3001\u4f7f\u7528\u6d41\u7a0b\u3001\u6700\u4f73\u5b9e\u8df5\u548c\u4f7f\u7528\u9650\u5236\u3002",source:"@site/docs/iotcloud/usercenter/user-settings.md",sourceDirName:"iotcloud/usercenter",slug:"/iotcloud/usercenter/user-settings",permalink:"/docs/iotcloud/usercenter/user-settings",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",sidebarPosition:5,frontMatter:{sidebar_position:5},sidebar:"iotCloudSidebar",previous:{title:"\u7528\u6237\u65e5\u5fd7",permalink:"/docs/iotcloud/usercenter/user-log"},next:{title:"RAM \u7528\u6237",permalink:"/docs/iotcloud/usercenter/system-user"}},a={},u=[{value:"\u4ec0\u4e48\u662f\u7528\u6237\u8bbe\u7f6e",id:"\u4ec0\u4e48\u662f\u7528\u6237\u8bbe\u7f6e",level:3},{value:"\u4f7f\u7528\u6d41\u7a0b",id:"\u4f7f\u7528\u6d41\u7a0b",level:3},{value:"\u6700\u4f73\u5b9e\u8df5",id:"\u6700\u4f73\u5b9e\u8df5",level:3},{value:"\u4f7f\u7528\u9650\u5236",id:"\u4f7f\u7528\u9650\u5236",level:3}],s={toc:u},p="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(p,(0,n.A)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"\u7528\u6237\u8bbe\u7f6e"},"\u7528\u6237\u8bbe\u7f6e"),(0,o.yg)("p",null,"\u672c\u6587\u4e3a\u60a8\u4ecb\u7ecd \u7528\u6237\u8bbe\u7f6e \u7684\u57fa\u672c\u6982\u5ff5\u3001\u4f7f\u7528\u6d41\u7a0b\u3001\u6700\u4f73\u5b9e\u8df5\u548c\u4f7f\u7528\u9650\u5236\u3002"),(0,o.yg)("h3",{id:"\u4ec0\u4e48\u662f\u7528\u6237\u8bbe\u7f6e"},"\u4ec0\u4e48\u662f\u7528\u6237\u8bbe\u7f6e"),(0,o.yg)("p",null,"\u5982\u679c\u662f\u6ce8\u518c\u7528\u6237\uff0c\u53ef\u4ee5\u7ba1\u7406\u7528\u6237\u4fe1\u606f\u3001\u4ee5\u53ca\u4e00\u4e9b\u91cd\u8981\u7684\u670d\u52a1\u4fe1\u606f\u914d\u7f6e\uff1b"),(0,o.yg)("p",null,"\u5982\u679c\u662f RAM \u7528\u6237\uff0c\u53ea\u5141\u8bb8\u7ba1\u7406\u7528\u6237\u4fe1\u606f\u3002"),(0,o.yg)("h3",{id:"\u4f7f\u7528\u6d41\u7a0b"},"\u4f7f\u7528\u6d41\u7a0b"),(0,o.yg)("p",null,"GIF \u56fe"),(0,o.yg)("h3",{id:"\u6700\u4f73\u5b9e\u8df5"},"\u6700\u4f73\u5b9e\u8df5"),(0,o.yg)("p",null,"GIF \u56fe"),(0,o.yg)("h3",{id:"\u4f7f\u7528\u9650\u5236"},"\u4f7f\u7528\u9650\u5236"))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/398dd9ed.64182682.js b/assets/js/398dd9ed.4cced19d.js similarity index 99% rename from assets/js/398dd9ed.64182682.js rename to assets/js/398dd9ed.4cced19d.js index c0b0ad81f..7d7cc2c43 100644 --- a/assets/js/398dd9ed.64182682.js +++ b/assets/js/398dd9ed.4cced19d.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7445],{5680:(e,r,t)=>{t.d(r,{xA:()=>y,yg:()=>m});var n=t(6540);function o(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function a(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function p(e){for(var r=1;r=0||(o[t]=e[t]);return o}(e,r);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var l=n.createContext({}),c=function(e){var r=n.useContext(l),t=r;return e&&(t="function"==typeof e?e(r):p(p({},r),e)),t},y=function(e){var r=c(e.components);return n.createElement(l.Provider,{value:r},e.children)},d="mdxType",s={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},u=n.forwardRef((function(e,r){var t=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,y=i(e,["components","mdxType","originalType","parentName"]),d=c(t),u=o,m=d["".concat(l,".").concat(u)]||d[u]||s[u]||a;return t?n.createElement(m,p(p({ref:r},y),{},{components:t})):n.createElement(m,p({ref:r},y))}));function m(e,r){var t=arguments,o=r&&r.mdxType;if("string"==typeof e||o){var a=t.length,p=new Array(a);p[0]=u;var i={};for(var l in r)hasOwnProperty.call(r,l)&&(i[l]=r[l]);i.originalType=e,i[d]="string"==typeof e?e:o,p[1]=i;for(var c=2;c{t.r(r),t.d(r,{assets:()=>l,contentTitle:()=>p,default:()=>s,frontMatter:()=>a,metadata:()=>i,toc:()=>c});var n=t(8168),o=(t(6540),t(5680));const a={sidebar_position:2},p=void 0,i={unversionedId:"study/back/Zookeeper",id:"study/back/Zookeeper",title:"Zookeeper",description:"Zookeeper\u6982\u8ff0",source:"@site/docs/study/back/Zookeeper.md",sourceDirName:"study/back",slug:"/study/back/Zookeeper",permalink:"/docs/study/back/Zookeeper",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"studySidebar",previous:{title:"\u6982\u8ff0",permalink:"/docs/study/back/"},next:{title:"\u9ad8\u5e76\u53d1API",permalink:"/docs/study/back/\u9ad8\u5e76\u53d1API"}},l={},c=[{value:"Zookeeper\u6982\u8ff0",id:"zookeeper\u6982\u8ff0",level:3},{value:"Zookeeper \u7279\u6027",id:"zookeeper-\u7279\u6027",level:3}],y={toc:c},d="wrapper";function s(e){let{components:r,...t}=e;return(0,o.yg)(d,(0,n.A)({},y,t,{components:r,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"zookeeper\u6982\u8ff0"},"Zookeeper\u6982\u8ff0"),(0,o.yg)("p",null,"Zookeeper \u662f\u4e00\u4e2a\u5206\u5e03\u5f0f\u534f\u8c03\u670d\u52a1\u7684\u5f00\u6e90\u6846\u67b6\u3002\u4e3b\u8981\u7528\u6765\u89e3\u51b3\u5206\u5e03\u5f0f\u96c6\u7fa4\u4e2d\u5e94\u7528\u7cfb\u7edf\u7684\u4e00\u81f4\u6027\u95ee\u9898\uff0c\u4f8b\u5982\u600e\u6837\u907f\u514d\u540c\u65f6\u64cd\u4f5c\u540c\u4e00\u6570\u636e\u9020\u6210\u810f\u8bfb\u7684\u95ee\u9898\u3002"),(0,o.yg)("p",null,"ZooKeeper \u672c\u8d28\u4e0a\u662f\u4e00\u4e2a\u5206\u5e03\u5f0f\u7684\u5c0f\u6587\u4ef6\u5b58\u50a8\u7cfb\u7edf\u3002\u63d0\u4f9b\u57fa\u4e8e\u7c7b\u4f3c\u4e8e\u6587\u4ef6\u7cfb \u7edf\u7684\u76ee\u5f55\u6811\u65b9\u5f0f\u7684\u6570\u636e\u5b58\u50a8\uff0c\u5e76\u4e14\u53ef\u4ee5\u5bf9\u6811\u4e2d\u7684\u8282\u70b9\u8fdb\u884c\u6709\u6548\u7ba1\u7406\u3002\u4ece\u800c\u7528\u6765\u7ef4\u62a4\u548c\u76d1\u63a7\u4f60\u5b58\u50a8\u7684\u6570\u636e\u7684\u72b6\u6001\u53d8\u5316\u3002\u901a\u8fc7\u76d1\u63a7\u8fd9\u4e9b\u6570\u636e\u72b6\u6001\u7684\u53d8\u5316\uff0c\u4ece\u800c\u53ef\u4ee5\u8fbe \u5230\u57fa\u4e8e\u6570\u636e\u7684\u96c6\u7fa4\u7ba1\u7406\u3002\u8bf8\u5982\uff1a",(0,o.yg)("inlineCode",{parentName:"p"},"\u7edf\u4e00\u547d\u540d\u670d\u52a1"),"\u3001",(0,o.yg)("inlineCode",{parentName:"p"},"\u5206\u5e03\u5f0f\u914d\u7f6e\u7ba1\u7406"),"\u3001",(0,o.yg)("inlineCode",{parentName:"p"},"\u5206\u5e03\u5f0f\u6d88\u606f\u961f\u5217"),"\u3001",(0,o.yg)("inlineCode",{parentName:"p"},"\u5206\u5e03\u5f0f\u9501"),"\u3001",(0,o.yg)("inlineCode",{parentName:"p"},"\u5206\u5e03\u5f0f\u534f\u8c03"),"\u7b49\u529f\u80fd\u3002"),(0,o.yg)("p",null,"\u4e0a\u9762\u7684\u89e3\u91ca\u6709\u70b9\u62bd\u8c61\uff0c\u7b80\u5355\u6765\u8bf4zookeeper=\u6587\u4ef6\u7cfb\u7edf+\u76d1\u542c\u901a\u77e5\u673a\u5236\u3002"),(0,o.yg)("ol",null,(0,o.yg)("li",{parentName:"ol"},"\u6587\u4ef6\u7cfb\u7edf\uff0cZookeeper\u7ef4\u62a4\u4e00\u4e2a\u7c7b\u4f3c\u6587\u4ef6\u7cfb\u7edf\u7684\u6570\u636e\u7ed3\u6784\uff0c\u6bcf\u4e2a\u5b50\u76ee\u5f55\u9879\u5982 NameService \u90fd\u88ab\u79f0\u4f5c\u4e3a znode(\u76ee\u5f55\u8282\u70b9)\uff0c\u548c\u6587\u4ef6\u7cfb\u7edf\u4e00\u6837\uff0c\u6211\u4eec\u80fd\u591f\u81ea\u7531\u7684\u589e\u52a0\u3001\u5220\u9664znode\uff0c\u5728\u4e00\u4e2aznode\u4e0b\u589e\u52a0\u3001\u5220\u9664\u5b50znode\uff0c\u552f\u4e00\u7684\u4e0d\u540c\u5728\u4e8eznode\u662f\u53ef\u4ee5\u5b58\u50a8\u6570\u636e\u7684\u3002"),(0,o.yg)("li",{parentName:"ol"},"\u76d1\u542c\u901a\u77e5\u673a\u5236\uff0c\u5ba2\u6237\u7aef\u6ce8\u518c\u76d1\u542c\u5b83\u5173\u5fc3\u7684\u76ee\u5f55\u8282\u70b9\uff0c\u5f53\u76ee\u5f55\u8282\u70b9\u53d1\u751f\u53d8\u5316\uff08\u6570\u636e\u6539\u53d8\u3001\u88ab\u5220\u9664\u3001\u5b50\u76ee\u5f55\u8282\u70b9\u589e\u52a0\u5220\u9664\uff09\u65f6\uff0czookeeper\u4f1a\u901a\u77e5\u5ba2\u6237\u7aef\u3002")),(0,o.yg)("h3",{id:"zookeeper-\u7279\u6027"},"Zookeeper \u7279\u6027"),(0,o.yg)("ol",null,(0,o.yg)("li",{parentName:"ol"},(0,o.yg)("p",{parentName:"li"},(0,o.yg)("inlineCode",{parentName:"p"},"\u5168\u5c40\u6570\u636e\u4e00\u81f4"),"\uff1a\u6bcf\u4e2a server \u4fdd\u5b58\u4e00\u4efd\u76f8\u540c\u7684\u6570\u636e\u526f\u672c\uff0cclient \u65e0\u8bba\u8fde \u63a5\u5230\u54ea\u4e2a server\uff0c\u5c55\u793a\u7684\u6570\u636e\u90fd\u662f\u4e00\u81f4\u7684\uff0c\u8fd9\u662f\u6700\u91cd\u8981\u7684\u7279\u5f81\uff1b")),(0,o.yg)("li",{parentName:"ol"},(0,o.yg)("p",{parentName:"li"},(0,o.yg)("inlineCode",{parentName:"p"},"\u53ef\u9760\u6027"),"\uff1a\u5982\u679c\u6d88\u606f\u88ab\u5176\u4e2d\u4e00\u53f0\u670d\u52a1\u5668\u63a5\u53d7\uff0c\u90a3\u4e48\u5c06\u88ab\u6240\u6709\u7684\u670d\u52a1\u5668\u63a5\u53d7\u3002")),(0,o.yg)("li",{parentName:"ol"},(0,o.yg)("p",{parentName:"li"},(0,o.yg)("inlineCode",{parentName:"p"},"\u987a\u5e8f\u6027"),"\uff1a\u5305\u62ec\u5168\u5c40\u6709\u5e8f\u548c\u504f\u5e8f\u4e24\u79cd\uff1a\u5168\u5c40\u6709\u5e8f\u662f\u6307\u5982\u679c\u5728\u4e00\u53f0\u670d\u52a1\u5668\u4e0a \u6d88\u606f a \u5728\u6d88\u606f b \u524d\u53d1\u5e03\uff0c\u5219\u5728\u6240\u6709 Server \u4e0a\u6d88\u606f a \u90fd\u5c06\u5728\u6d88\u606f b \u524d\u88ab \u53d1\u5e03\uff1b\u504f\u5e8f\u662f\u6307\u5982\u679c\u4e00\u4e2a\u6d88\u606f b \u5728\u6d88\u606f a \u540e\u88ab\u540c\u4e00\u4e2a\u53d1\u9001\u8005\u53d1\u5e03\uff0ca \u5fc5\u5c06\u6392\u5728 b \u524d\u9762\u3002")),(0,o.yg)("li",{parentName:"ol"},(0,o.yg)("p",{parentName:"li"},(0,o.yg)("inlineCode",{parentName:"p"},"\u6570\u636e\u66f4\u65b0\u539f\u5b50\u6027"),"\uff1a\u4e00\u6b21\u6570\u636e\u66f4\u65b0\u8981\u4e48\u6210\u529f\uff08\u534a\u6570\u4ee5\u4e0a\u8282\u70b9\u6210\u529f\uff09\uff0c\u8981\u4e48\u5931 \u8d25\uff0c\u4e0d\u5b58\u5728\u4e2d\u95f4\u72b6\u6001\uff1b")),(0,o.yg)("li",{parentName:"ol"},(0,o.yg)("p",{parentName:"li"},(0,o.yg)("inlineCode",{parentName:"p"},"\u5b9e\u65f6\u6027"),"\uff1aZookeeper \u4fdd\u8bc1\u5ba2\u6237\u7aef\u5c06\u5728\u4e00\u4e2a\u65f6\u95f4\u95f4\u9694\u8303\u56f4\u5185\u83b7\u5f97\u670d\u52a1\u5668\u7684\u66f4\u65b0\u4fe1\u606f\uff0c\u6216\u8005\u670d\u52a1\u5668\u5931\u6548\u7684\u4fe1\u606f\u3002"))))}s.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7445],{5680:(e,r,t)=>{t.d(r,{xA:()=>y,yg:()=>m});var n=t(6540);function o(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function a(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function p(e){for(var r=1;r=0||(o[t]=e[t]);return o}(e,r);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var l=n.createContext({}),c=function(e){var r=n.useContext(l),t=r;return e&&(t="function"==typeof e?e(r):p(p({},r),e)),t},y=function(e){var r=c(e.components);return n.createElement(l.Provider,{value:r},e.children)},d="mdxType",s={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},u=n.forwardRef((function(e,r){var t=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,y=i(e,["components","mdxType","originalType","parentName"]),d=c(t),u=o,m=d["".concat(l,".").concat(u)]||d[u]||s[u]||a;return t?n.createElement(m,p(p({ref:r},y),{},{components:t})):n.createElement(m,p({ref:r},y))}));function m(e,r){var t=arguments,o=r&&r.mdxType;if("string"==typeof e||o){var a=t.length,p=new Array(a);p[0]=u;var i={};for(var l in r)hasOwnProperty.call(r,l)&&(i[l]=r[l]);i.originalType=e,i[d]="string"==typeof e?e:o,p[1]=i;for(var c=2;c{t.r(r),t.d(r,{assets:()=>l,contentTitle:()=>p,default:()=>s,frontMatter:()=>a,metadata:()=>i,toc:()=>c});var n=t(8168),o=(t(6540),t(5680));const a={sidebar_position:2},p=void 0,i={unversionedId:"study/back/Zookeeper",id:"study/back/Zookeeper",title:"Zookeeper",description:"Zookeeper\u6982\u8ff0",source:"@site/docs/study/back/Zookeeper.md",sourceDirName:"study/back",slug:"/study/back/Zookeeper",permalink:"/docs/study/back/Zookeeper",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"studySidebar",previous:{title:"\u6982\u8ff0",permalink:"/docs/study/back/"},next:{title:"\u9ad8\u5e76\u53d1API",permalink:"/docs/study/back/\u9ad8\u5e76\u53d1API"}},l={},c=[{value:"Zookeeper\u6982\u8ff0",id:"zookeeper\u6982\u8ff0",level:3},{value:"Zookeeper \u7279\u6027",id:"zookeeper-\u7279\u6027",level:3}],y={toc:c},d="wrapper";function s(e){let{components:r,...t}=e;return(0,o.yg)(d,(0,n.A)({},y,t,{components:r,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"zookeeper\u6982\u8ff0"},"Zookeeper\u6982\u8ff0"),(0,o.yg)("p",null,"Zookeeper \u662f\u4e00\u4e2a\u5206\u5e03\u5f0f\u534f\u8c03\u670d\u52a1\u7684\u5f00\u6e90\u6846\u67b6\u3002\u4e3b\u8981\u7528\u6765\u89e3\u51b3\u5206\u5e03\u5f0f\u96c6\u7fa4\u4e2d\u5e94\u7528\u7cfb\u7edf\u7684\u4e00\u81f4\u6027\u95ee\u9898\uff0c\u4f8b\u5982\u600e\u6837\u907f\u514d\u540c\u65f6\u64cd\u4f5c\u540c\u4e00\u6570\u636e\u9020\u6210\u810f\u8bfb\u7684\u95ee\u9898\u3002"),(0,o.yg)("p",null,"ZooKeeper \u672c\u8d28\u4e0a\u662f\u4e00\u4e2a\u5206\u5e03\u5f0f\u7684\u5c0f\u6587\u4ef6\u5b58\u50a8\u7cfb\u7edf\u3002\u63d0\u4f9b\u57fa\u4e8e\u7c7b\u4f3c\u4e8e\u6587\u4ef6\u7cfb \u7edf\u7684\u76ee\u5f55\u6811\u65b9\u5f0f\u7684\u6570\u636e\u5b58\u50a8\uff0c\u5e76\u4e14\u53ef\u4ee5\u5bf9\u6811\u4e2d\u7684\u8282\u70b9\u8fdb\u884c\u6709\u6548\u7ba1\u7406\u3002\u4ece\u800c\u7528\u6765\u7ef4\u62a4\u548c\u76d1\u63a7\u4f60\u5b58\u50a8\u7684\u6570\u636e\u7684\u72b6\u6001\u53d8\u5316\u3002\u901a\u8fc7\u76d1\u63a7\u8fd9\u4e9b\u6570\u636e\u72b6\u6001\u7684\u53d8\u5316\uff0c\u4ece\u800c\u53ef\u4ee5\u8fbe \u5230\u57fa\u4e8e\u6570\u636e\u7684\u96c6\u7fa4\u7ba1\u7406\u3002\u8bf8\u5982\uff1a",(0,o.yg)("inlineCode",{parentName:"p"},"\u7edf\u4e00\u547d\u540d\u670d\u52a1"),"\u3001",(0,o.yg)("inlineCode",{parentName:"p"},"\u5206\u5e03\u5f0f\u914d\u7f6e\u7ba1\u7406"),"\u3001",(0,o.yg)("inlineCode",{parentName:"p"},"\u5206\u5e03\u5f0f\u6d88\u606f\u961f\u5217"),"\u3001",(0,o.yg)("inlineCode",{parentName:"p"},"\u5206\u5e03\u5f0f\u9501"),"\u3001",(0,o.yg)("inlineCode",{parentName:"p"},"\u5206\u5e03\u5f0f\u534f\u8c03"),"\u7b49\u529f\u80fd\u3002"),(0,o.yg)("p",null,"\u4e0a\u9762\u7684\u89e3\u91ca\u6709\u70b9\u62bd\u8c61\uff0c\u7b80\u5355\u6765\u8bf4zookeeper=\u6587\u4ef6\u7cfb\u7edf+\u76d1\u542c\u901a\u77e5\u673a\u5236\u3002"),(0,o.yg)("ol",null,(0,o.yg)("li",{parentName:"ol"},"\u6587\u4ef6\u7cfb\u7edf\uff0cZookeeper\u7ef4\u62a4\u4e00\u4e2a\u7c7b\u4f3c\u6587\u4ef6\u7cfb\u7edf\u7684\u6570\u636e\u7ed3\u6784\uff0c\u6bcf\u4e2a\u5b50\u76ee\u5f55\u9879\u5982 NameService \u90fd\u88ab\u79f0\u4f5c\u4e3a znode(\u76ee\u5f55\u8282\u70b9)\uff0c\u548c\u6587\u4ef6\u7cfb\u7edf\u4e00\u6837\uff0c\u6211\u4eec\u80fd\u591f\u81ea\u7531\u7684\u589e\u52a0\u3001\u5220\u9664znode\uff0c\u5728\u4e00\u4e2aznode\u4e0b\u589e\u52a0\u3001\u5220\u9664\u5b50znode\uff0c\u552f\u4e00\u7684\u4e0d\u540c\u5728\u4e8eznode\u662f\u53ef\u4ee5\u5b58\u50a8\u6570\u636e\u7684\u3002"),(0,o.yg)("li",{parentName:"ol"},"\u76d1\u542c\u901a\u77e5\u673a\u5236\uff0c\u5ba2\u6237\u7aef\u6ce8\u518c\u76d1\u542c\u5b83\u5173\u5fc3\u7684\u76ee\u5f55\u8282\u70b9\uff0c\u5f53\u76ee\u5f55\u8282\u70b9\u53d1\u751f\u53d8\u5316\uff08\u6570\u636e\u6539\u53d8\u3001\u88ab\u5220\u9664\u3001\u5b50\u76ee\u5f55\u8282\u70b9\u589e\u52a0\u5220\u9664\uff09\u65f6\uff0czookeeper\u4f1a\u901a\u77e5\u5ba2\u6237\u7aef\u3002")),(0,o.yg)("h3",{id:"zookeeper-\u7279\u6027"},"Zookeeper \u7279\u6027"),(0,o.yg)("ol",null,(0,o.yg)("li",{parentName:"ol"},(0,o.yg)("p",{parentName:"li"},(0,o.yg)("inlineCode",{parentName:"p"},"\u5168\u5c40\u6570\u636e\u4e00\u81f4"),"\uff1a\u6bcf\u4e2a server \u4fdd\u5b58\u4e00\u4efd\u76f8\u540c\u7684\u6570\u636e\u526f\u672c\uff0cclient \u65e0\u8bba\u8fde \u63a5\u5230\u54ea\u4e2a server\uff0c\u5c55\u793a\u7684\u6570\u636e\u90fd\u662f\u4e00\u81f4\u7684\uff0c\u8fd9\u662f\u6700\u91cd\u8981\u7684\u7279\u5f81\uff1b")),(0,o.yg)("li",{parentName:"ol"},(0,o.yg)("p",{parentName:"li"},(0,o.yg)("inlineCode",{parentName:"p"},"\u53ef\u9760\u6027"),"\uff1a\u5982\u679c\u6d88\u606f\u88ab\u5176\u4e2d\u4e00\u53f0\u670d\u52a1\u5668\u63a5\u53d7\uff0c\u90a3\u4e48\u5c06\u88ab\u6240\u6709\u7684\u670d\u52a1\u5668\u63a5\u53d7\u3002")),(0,o.yg)("li",{parentName:"ol"},(0,o.yg)("p",{parentName:"li"},(0,o.yg)("inlineCode",{parentName:"p"},"\u987a\u5e8f\u6027"),"\uff1a\u5305\u62ec\u5168\u5c40\u6709\u5e8f\u548c\u504f\u5e8f\u4e24\u79cd\uff1a\u5168\u5c40\u6709\u5e8f\u662f\u6307\u5982\u679c\u5728\u4e00\u53f0\u670d\u52a1\u5668\u4e0a \u6d88\u606f a \u5728\u6d88\u606f b \u524d\u53d1\u5e03\uff0c\u5219\u5728\u6240\u6709 Server \u4e0a\u6d88\u606f a \u90fd\u5c06\u5728\u6d88\u606f b \u524d\u88ab \u53d1\u5e03\uff1b\u504f\u5e8f\u662f\u6307\u5982\u679c\u4e00\u4e2a\u6d88\u606f b \u5728\u6d88\u606f a \u540e\u88ab\u540c\u4e00\u4e2a\u53d1\u9001\u8005\u53d1\u5e03\uff0ca \u5fc5\u5c06\u6392\u5728 b \u524d\u9762\u3002")),(0,o.yg)("li",{parentName:"ol"},(0,o.yg)("p",{parentName:"li"},(0,o.yg)("inlineCode",{parentName:"p"},"\u6570\u636e\u66f4\u65b0\u539f\u5b50\u6027"),"\uff1a\u4e00\u6b21\u6570\u636e\u66f4\u65b0\u8981\u4e48\u6210\u529f\uff08\u534a\u6570\u4ee5\u4e0a\u8282\u70b9\u6210\u529f\uff09\uff0c\u8981\u4e48\u5931 \u8d25\uff0c\u4e0d\u5b58\u5728\u4e2d\u95f4\u72b6\u6001\uff1b")),(0,o.yg)("li",{parentName:"ol"},(0,o.yg)("p",{parentName:"li"},(0,o.yg)("inlineCode",{parentName:"p"},"\u5b9e\u65f6\u6027"),"\uff1aZookeeper \u4fdd\u8bc1\u5ba2\u6237\u7aef\u5c06\u5728\u4e00\u4e2a\u65f6\u95f4\u95f4\u9694\u8303\u56f4\u5185\u83b7\u5f97\u670d\u52a1\u5668\u7684\u66f4\u65b0\u4fe1\u606f\uff0c\u6216\u8005\u670d\u52a1\u5668\u5931\u6548\u7684\u4fe1\u606f\u3002"))))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/399850d1.31b810cd.js b/assets/js/399850d1.26c49233.js similarity index 99% rename from assets/js/399850d1.31b810cd.js rename to assets/js/399850d1.26c49233.js index c577eeed7..19aee382e 100644 --- a/assets/js/399850d1.31b810cd.js +++ b/assets/js/399850d1.26c49233.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2042],{5680:(e,n,t)=>{t.d(n,{xA:()=>s,yg:()=>m});var a=t(6540);function l(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function r(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function g(e){for(var n=1;n=0||(l[t]=e[t]);return l}(e,n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(l[t]=e[t])}return l}var o=a.createContext({}),d=function(e){var n=a.useContext(o),t=n;return e&&(t="function"==typeof e?e(n):g(g({},n),e)),t},s=function(e){var n=d(e.components);return a.createElement(o.Provider,{value:n},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},y=a.forwardRef((function(e,n){var t=e.components,l=e.mdxType,r=e.originalType,o=e.parentName,s=i(e,["components","mdxType","originalType","parentName"]),p=d(t),y=l,m=p["".concat(o,".").concat(y)]||p[y]||u[y]||r;return t?a.createElement(m,g(g({ref:n},s),{},{components:t})):a.createElement(m,g({ref:n},s))}));function m(e,n){var t=arguments,l=n&&n.mdxType;if("string"==typeof e||l){var r=t.length,g=new Array(r);g[0]=y;var i={};for(var o in n)hasOwnProperty.call(n,o)&&(i[o]=n[o]);i.originalType=e,i[p]="string"==typeof e?e:l,g[1]=i;for(var d=2;d{t.r(n),t.d(n,{assets:()=>o,contentTitle:()=>g,default:()=>u,frontMatter:()=>r,metadata:()=>i,toc:()=>d});var a=t(8168),l=(t(6540),t(5680));const r={sidebar_position:2},g=void 0,i={unversionedId:"study/db/\u65f6\u5e8f\u6570\u636e\u5e93/TDengine",id:"study/db/\u65f6\u5e8f\u6570\u636e\u5e93/TDengine",title:"TDengine",description:"\u5b98\u7f51",source:"@site/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/TDengine.md",sourceDirName:"study/db/\u65f6\u5e8f\u6570\u636e\u5e93",slug:"/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/TDengine",permalink:"/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/TDengine",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"studySidebar",previous:{title:"InfluxDB",permalink:"/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/InfluxDB"},next:{title:"Apache IoTDB",permalink:"/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/Apache IoTDB"}},o={},d=[{value:"\u7b80\u4ecb",id:"\u7b80\u4ecb",level:3},{value:"\u8bc4\u4ef7",id:"\u8bc4\u4ef7",level:3},{value:"\u90e8\u7f72",id:"\u90e8\u7f72",level:3},{value:"\u73af\u5883\u51c6\u5907",id:"\u73af\u5883\u51c6\u5907",level:4},{value:"\u6784\u5efa&\u5b89\u88c5\u3010\u6e90\u7801\u3011",id:"\u6784\u5efa\u5b89\u88c5\u6e90\u7801",level:4},{value:"\u6784\u4ef6\u5b89\u88c5\u3010\u5b89\u88c5\u5305\u3011",id:"\u6784\u4ef6\u5b89\u88c5\u5b89\u88c5\u5305",level:4},{value:"\u4f53\u9a8c SQL",id:"\u4f53\u9a8c-sql",level:4},{value:"\u96c6\u7fa4\u90e8\u7f72",id:"\u96c6\u7fa4\u90e8\u7f72",level:4},{value:"\u57fa\u672c\u6982\u5ff5",id:"\u57fa\u672c\u6982\u5ff5",level:3},{value:"\u91c7\u96c6\u91cf (Metric)",id:"\u91c7\u96c6\u91cf-metric",level:4},{value:"\u6807\u7b7e (Label/Tag)",id:"\u6807\u7b7e-labeltag",level:4},{value:"\u6570\u636e\u91c7\u96c6\u70b9 (Data Collection Point)",id:"\u6570\u636e\u91c7\u96c6\u70b9-data-collection-point",level:4},{value:"\u8868 (Table)",id:"\u8868-table",level:4},{value:"\u8d85\u7ea7\u8868 (STable)",id:"\u8d85\u7ea7\u8868-stable",level:4},{value:"\u5b50\u8868 (Subtable)",id:"\u5b50\u8868-subtable",level:4},{value:"\u5e93 (database)",id:"\u5e93-database",level:4},{value:"\u51c6\u5907\u6570\u636e",id:"\u51c6\u5907\u6570\u636e",level:3},{value:"\u538b\u6d4b",id:"\u538b\u6d4b",level:3},{value:"\u5751\u70b9\u6c47\u603b",id:"\u5751\u70b9\u6c47\u603b",level:3},{value:"\u9644\u5f55",id:"\u9644\u5f55",level:3},{value:"\u5f00\u6e90\u534f\u8bae\u8bf4\u660e",id:"\u5f00\u6e90\u534f\u8bae\u8bf4\u660e",level:4}],s={toc:d},p="wrapper";function u(e){let{components:n,...r}=e;return(0,l.yg)(p,(0,a.A)({},s,r,{components:n,mdxType:"MDXLayout"}),(0,l.yg)("p",null,(0,l.yg)("a",{parentName:"p",href:"https://www.taosdata.com/"},"\u5b98\u7f51"),"\n",(0,l.yg)("a",{parentName:"p",href:"https://github.com/taosdata/TDengine"},"GitHub \u94fe\u63a5\u5730\u5740")),(0,l.yg)("h3",{id:"\u7b80\u4ecb"},"\u7b80\u4ecb"),(0,l.yg)("p",null,"\u5f00\u6e90\u534f\u8bae\uff1aAGPL V3\n\u5f00\u53d1\u8bed\u8a00\uff1aC\n\u5546\u4e1a\u516c\u53f8\uff1a\u5317\u4eac\u6d9b\u601d\u6570\u636e\u79d1\u6280\u6709\u9650\u516c\u53f8(TAOS Data) \uff1b\u6d9b\u601d\u6570\u636e\u91c7\u7528 AGPL \u8bb8\u53ef\u8bc1\uff0c\u5df2\u7ecf\u5c06 TDengine \u7684\u5185\u6838(\u5b58\u50a8\u3001\u8ba1\u7b97\u5f15\u64ce\u548c\u96c6\u7fa4\uff09100%\u5f00\u6e90\u3002\u6d9b\u601d\u6570\u636e\u5c06\u5c3d\u6700\u5927\u52aa\u529b\u6253\u9020\u5f00\u53d1\u8005\u793e\u533a\uff0c\u7ef4\u62a4\u8fd9\u4e2a\u5f00\u6e90\u7684\u5546\u4e1a\u6a21\u5f0f\uff0c\u76f8\u4fe1\u4e0d\u5c06\u6700\u6838\u5fc3\u7684\u4ee3\u7801\u5f00\u6e90\uff0c\u4efb\u4f55\u57fa\u7840\u8f6f\u4ef6\u90fd\u5c06\u65e0\u6cd5\u8d62\u5f97\u5e02\u573a\u3002\u6d9b\u601d\u6570\u636e\u5e0c\u671b\u901a\u8fc7\u5f00\u6e90\uff0c\u5feb\u901f\u83b7\u5f97\u5e02\u573a\u53cd\u9988\uff0c\u5b8c\u5584\u4ea7\u54c1\uff0c\u5b8c\u5584\u751f\u6001\uff0c\u800c\u4e14\u5438\u5f15\u66f4\u591a\u7684\u5f00\u53d1\u8005\u52a0\u5165\u5230\u8fd9\u4e2a\u9879\u76ee\u4e2d\u3002\n\u652f\u6301\u96c6\u7fa4\uff1a\u5f00\u6e90\u7248\u672c\u652f\u6301\u96c6\u7fa4"),(0,l.yg)("h3",{id:"\u8bc4\u4ef7"},"\u8bc4\u4ef7"),(0,l.yg)("ol",null,(0,l.yg)("li",{parentName:"ol"},"\u56fd\u5185\u516c\u53f8\u4f17\u591a\u9879\u76ee\u4f7f\u7528\uff0c\u4f7f\u7528\u91cf\u8fd8\u662f\u5f88\u9ad8\u7684\uff1b"),(0,l.yg)("li",{parentName:"ol"},"\u5f00\u6e90\u65e2\u652f\u6301\u96c6\u7fa4\uff0c\u5927\u6570\u636e\u91cf\u7684\u62d3\u5c55\u662f\u6ca1\u95ee\u9898\u7684\uff1b"),(0,l.yg)("li",{parentName:"ol"},"\u6587\u6863\u76f8\u5bf9\u6765\u8bf4\u662f\u975e\u5e38\u53cb\u597d\u7684\uff0c\u65b9\u65b9\u9762\u9762\u4ff1\u5230\uff1b")),(0,l.yg)("h3",{id:"\u90e8\u7f72"},"\u90e8\u7f72"),(0,l.yg)("h4",{id:"\u73af\u5883\u51c6\u5907"},"\u73af\u5883\u51c6\u5907"),(0,l.yg)("p",null,"\u6587\u6863\u662f\u4e2d\u6587\u7684\uff0c\u8fd8\u662f\u4e0d\u9519\u7684\u3002",(0,l.yg)("a",{parentName:"p",href:"https://github.com/taosdata/TDengine/blob/develop/README-CN.md"},"\u5b89\u88c5\u6587\u6863")),(0,l.yg)("p",null,"\u95ee\u8fd0\u7ef4\u7ae5\u978b\u8981\u4e86\u9884\u7814\u4f7f\u7528\u7684\u670d\u52a1\u5668\uff0c\u5982\u4e0b\uff1a"),(0,l.yg)("table",null,(0,l.yg)("thead",{parentName:"table"},(0,l.yg)("tr",{parentName:"thead"},(0,l.yg)("th",{parentName:"tr",align:null},"hostname"),(0,l.yg)("th",{parentName:"tr",align:null},"ip"))),(0,l.yg)("tbody",{parentName:"table"},(0,l.yg)("tr",{parentName:"tbody"},(0,l.yg)("td",{parentName:"tr",align:null},"node57"),(0,l.yg)("td",{parentName:"tr",align:null},"192.168.0.57")),(0,l.yg)("tr",{parentName:"tbody"},(0,l.yg)("td",{parentName:"tr",align:null},"node54"),(0,l.yg)("td",{parentName:"tr",align:null},"192.168.0.54")),(0,l.yg)("tr",{parentName:"tbody"},(0,l.yg)("td",{parentName:"tr",align:null},"node53"),(0,l.yg)("td",{parentName:"tr",align:null},"192.168.0.53")),(0,l.yg)("tr",{parentName:"tbody"},(0,l.yg)("td",{parentName:"tr",align:null},"node55"),(0,l.yg)("td",{parentName:"tr",align:null},"192.168.0.55")))),(0,l.yg)("p",null,"\u770b\u4e86\u4e00\u4e0b\u64cd\u4f5c\u7cfb\u7edf\u7248\u672c\u4e3a Centos 7\uff0c\u5927\u5bb6\u6839\u636e\u81ea\u5df1\u670d\u52a1\u5668\u7684\u64cd\u4f5c\u7cfb\u7edf\u5b89\u88c5\u4e0d\u540c\u547d\u4ee4\uff0c\u4ee5\u4e0b\u90fd\u662f\u57fa\u4e8e Centos7 \u7684"),(0,l.yg)("pre",null,(0,l.yg)("code",{parentName:"pre",className:"language-shell"},"[root@centos ~]# cat /etc/redhat-release\nCentOS Linux release 7.9.2009 (Core)\n")),(0,l.yg)("p",null,"\u6839\u636e\u6587\u6863\u4f9d\u6b21\u6267\u884c\uff1a"),(0,l.yg)("pre",null,(0,l.yg)("code",{parentName:"pre",className:"language-shell"},"sudo yum install -y gcc gcc-c++ make cmake git\n\nsudo yum install -y java-1.8.0-openjdk\n\n#maven\u4e0d\u8981\u8fd9\u4e48\u5b89\u88c5\uff0c\u6709\u53ef\u80fd\u7248\u672c\u6bd4\u8f83\u4f4e \u53ea\u80fd\u8bf4\u6709\u53ef\u80fd\nsudo yum install -y maven\n\nsudo yum install zlib-devel xz-devel snappy-devel jansson jansson-devel pkgconfig libatomic libstdc++-static\n\ngit clone https://github.com/taosdata/TDengine.git\ncd TDengine\n\n#Go \u8fde\u63a5\u5668\u548c Grafana \u63d2\u4ef6\u5728\u5176\u4ed6\u72ec\u7acb\u4ed3\u5e93\uff0c\u5982\u679c\u5b89\u88c5\u5b83\u4eec\u7684\u8bdd\uff0c\u9700\u8981\u5728 TDengine \u76ee\u5f55\u4e0b\u901a\u8fc7\u6b64\u547d\u4ee4\u5b89\u88c5\uff1a\ngit submodule update --init --recursive\n")),(0,l.yg)("p",null,"\u6267\u884c\u6700\u540e\u7684\u547d\u4ee4\u7684\u65f6\u5019\uff0c\u4f1a\u62a5\u9519\uff0c\u9700\u8981\u914d\u7f6e git\uff0c\u3010YiRanCN\u3011\u548c\u3010",(0,l.yg)("a",{parentName:"p",href:"mailto:jiot.cloud059@163.com"},"jiot.cloud059@163.com"),"\u3011\u90fd\u662f\u6211\u7684 git \u8d26\u53f7\uff0c\u9700\u8981\u6839\u636e\u81ea\u5df1\u7684\u8d26\u53f7\u81ea\u884c\u914d\u7f6e"),(0,l.yg)("pre",null,(0,l.yg)("code",{parentName:"pre",className:"language-shell"},'git config --global http.sslVerify false\ngit config --global user.name "YiRanCN"\ngit config --global user.email "xxx@163.com"\n\nssh-keygen -t rsa -C "YiRanCN"\n\n#\u83b7\u53d6 \u4e4b\u540e \u4e0d\u8981\u540e\u9762\u7684\u8d26\u53f7 \u590d\u5236\u4e0b\u6765\ncat /root/.ssh/id_rsa.pub\n')),(0,l.yg)("p",null,"\u6839\u636e\u3010cat /root/.ssh/id_rsa.pub\u3011\u8fd9\u4e2a\u5f97\u7ed3\u679c\uff0c\u653e\u5230 github \u8d26\u53f7\u7684\u3010SSH and GPG keys\u3011\u529f\u80fd\u4e0b\u9762\n",(0,l.yg)("img",{parentName:"p",src:"https://cdn.nlark.com/yuque/0/2022/png/276833/1654587900708-8145fd94-a69e-492a-bf83-41ddd0a2e789.png#averageHue=%23fefefe&clientId=u7121fde3-9777-4&from=paste&height=1174&id=ua6a234e7&name=image.png&originHeight=1174&originWidth=2428&originalType=binary&ratio=1&rotation=0&showTitle=false&size=317728&status=done&style=none&taskId=u1b8b6bce-4d72-4ca1-b2c2-48963f55d0b&title=&width=2428",alt:"image.png"})),(0,l.yg)("h4",{id:"\u6784\u5efa\u5b89\u88c5\u6e90\u7801"},"\u6784\u5efa&\u5b89\u88c5\u3010\u6e90\u7801\u3011"),(0,l.yg)("p",null,"\u6784\u5efa\u5f88\u7b80\u5355\uff0c\u81ea\u5e26\u6784\u5efa\u811a\u672c"),(0,l.yg)("pre",null,(0,l.yg)("code",{parentName:"pre",className:"language-shell"},"./build.sh\n")),(0,l.yg)("h4",{id:"\u6784\u4ef6\u5b89\u88c5\u5b89\u88c5\u5305"},"\u6784\u4ef6\u5b89\u88c5\u3010\u5b89\u88c5\u5305\u3011"),(0,l.yg)("p",null,"\u4e0b\u8f7d\u5730\u5740\uff1a\u3010",(0,l.yg)("a",{parentName:"p",href:"https://docs.tdengine.com/get-started/#!"},"https://docs.tdengine.com/get-started/#!"),"\u3011\n\u6267\u884c\u3010rpm -i TDengine-server-2.6.0.1-Linux-x64.rpm\u3011\uff0c\u5982\u679c\u53ea\u662f\u5b89\u88c5\u975e\u96c6\u7fa4\u7248\u672c\u76f4\u63a5\u56de\u8f66\u5373\u53ef\u3002\n\u3010sudo systemctl start taosd\u3011\u542f\u52a8\uff1b\n\u6267\u884c\u3010sudo systemctl status taosd\u3011\u68c0\u67e5\u8fd0\u884c\u72b6\u6001"),(0,l.yg)("p",null,"\u5982\u679c\u9700\u8981\u5378\u8f7d\uff1a\n\u3010sudo rpm -qa|grep tdengine\u3011\n\u3010sudo rpm -e tdengine\u3011\n\u3010sudo rm -rf /var/lib/taos/","*","\u3011\u614e\u7528"),(0,l.yg)("h4",{id:"\u4f53\u9a8c-sql"},"\u4f53\u9a8c SQL"),(0,l.yg)("pre",null,(0,l.yg)("code",{parentName:"pre",className:"language-shell"},"CREATE DATABASE demo;\nUSE demo;\nCREATE TABLE t (ts TIMESTAMP, speed INT);\nINSERT INTO t VALUES('2019-07-15 00:00:00', 10);\nINSERT INTO t VALUES('2019-07-15 01:00:00', 20);\nSELECT * FROM t;\n")),(0,l.yg)("p",null,"\u4e3a\u964d\u4f4e\u5b66\u4e60\u95e8\u69db\uff0cTDengine \u91c7\u7528\u4f20\u7edf\u7684\u5173\u7cfb\u578b\u6570\u636e\u5e93\u6a21\u578b\u7ba1\u7406\u6570\u636e\uff0c\u548c MySQL \u6ca1\u5565\u592a\u5927\u533a\u522b\u3002"),(0,l.yg)("h4",{id:"\u96c6\u7fa4\u90e8\u7f72"},"\u96c6\u7fa4\u90e8\u7f72"),(0,l.yg)("p",null,"\u56e0\u4e3a\u6211\u7684\u76ee\u6807\u662f\u96c6\u7fa4\uff0c\u6240\u4ee5\uff0c\u4e0a\u9762\u7684\u90fd\u662f\u5f00\u80c3\u5c0f\u83dc\u3002"),(0,l.yg)("table",null,(0,l.yg)("thead",{parentName:"table"},(0,l.yg)("tr",{parentName:"thead"},(0,l.yg)("th",{parentName:"tr",align:null},"hostname"),(0,l.yg)("th",{parentName:"tr",align:null},"ip"))),(0,l.yg)("tbody",{parentName:"table"},(0,l.yg)("tr",{parentName:"tbody"},(0,l.yg)("td",{parentName:"tr",align:null},"node57"),(0,l.yg)("td",{parentName:"tr",align:null},"192.168.0.57")),(0,l.yg)("tr",{parentName:"tbody"},(0,l.yg)("td",{parentName:"tr",align:null},"node54"),(0,l.yg)("td",{parentName:"tr",align:null},"192.168.0.54")),(0,l.yg)("tr",{parentName:"tbody"},(0,l.yg)("td",{parentName:"tr",align:null},"node53"),(0,l.yg)("td",{parentName:"tr",align:null},"192.168.0.53")),(0,l.yg)("tr",{parentName:"tbody"},(0,l.yg)("td",{parentName:"tr",align:null},"node55"),(0,l.yg)("td",{parentName:"tr",align:null},"192.168.0.55")))),(0,l.yg)("p",null,"\u4f7f\u7528\n\u3010hostnamectl set-hostname node57\u3011\n\u3010hostnamectl set-hostname node54\u3011\n\u3010hostnamectl set-hostname node53\u3011\n\u3010hostnamectl set-hostname node55\u3011\n\u547d\u4ee4\u4fee\u6539 hostname.\n\u5c06\u5982\u4e0b\u914d\u7f6e\u653e\u5230\u3010vim /etc/hosts\u3011\u6587\u4ef6\u5185"),(0,l.yg)("pre",null,(0,l.yg)("code",{parentName:"pre",className:"language-shell"},"192.168.0.57 node57\n192.168.0.54 node54\n192.168.0.53 node53\n192.168.0.55 node55\n")),(0,l.yg)("p",null,"\u6240\u6709\u7684\u8282\u70b9\u5b89\u88c5\u4e00\u904d\u3002\n\u96c6\u7fa4\u642d\u5efa\u5b8c\u6210\uff0c\u5982\u4e0b\u56fe\u6240\u793a\uff1a\n",(0,l.yg)("img",{alt:"image.png",src:t(9792).A,width:"1087",height:"153"})),(0,l.yg)("h3",{id:"\u57fa\u672c\u6982\u5ff5"},"\u57fa\u672c\u6982\u5ff5"),(0,l.yg)("h4",{id:"\u91c7\u96c6\u91cf-metric"},"\u91c7\u96c6\u91cf (Metric)"),(0,l.yg)("p",null,"\u91c7\u96c6\u91cf\u662f\u6307\u4f20\u611f\u5668\u3001\u8bbe\u5907\u6216\u5176\u4ed6\u7c7b\u578b\u91c7\u96c6\u70b9\u91c7\u96c6\u7684\u7269\u7406\u91cf\uff0c\u6bd4\u5982\u7535\u6d41\u3001\u7535\u538b\u3001\u6e29\u5ea6\u3001\u538b\u529b\u3001GPS \u4f4d\u7f6e\u7b49\uff0c\u662f\u968f\u65f6\u95f4\u53d8\u5316\u7684\uff0c\u6570\u636e\u7c7b\u578b\u53ef\u4ee5\u662f\u6574\u578b\u3001\u6d6e\u70b9\u578b\u3001\u5e03\u5c14\u578b\uff0c\u4e5f\u53ef\u662f\u5b57\u7b26\u4e32\u3002\u968f\u7740\u65f6\u95f4\u7684\u63a8\u79fb\uff0c\u5b58\u50a8\u7684\u91c7\u96c6\u91cf\u7684\u6570\u636e\u91cf\u8d8a\u6765\u8d8a\u5927\u3002"),(0,l.yg)("h4",{id:"\u6807\u7b7e-labeltag"},"\u6807\u7b7e (Label/Tag)"),(0,l.yg)("p",null,"\u6807\u7b7e\u662f\u6307\u4f20\u611f\u5668\u3001\u8bbe\u5907\u6216\u5176\u4ed6\u7c7b\u578b\u91c7\u96c6\u70b9\u7684\u9759\u6001\u5c5e\u6027\uff0c\u4e0d\u662f\u968f\u65f6\u95f4\u53d8\u5316\u7684\uff0c\u6bd4\u5982\u8bbe\u5907\u578b\u53f7\u3001\u989c\u8272\u3001\u8bbe\u5907\u7684\u6240\u5728\u5730\u7b49\uff0c\u6570\u636e\u7c7b\u578b\u53ef\u4ee5\u662f\u4efb\u4f55\u7c7b\u578b\u3002\u867d\u7136\u662f\u9759\u6001\u7684\uff0c\u4f46 TDengine \u5bb9\u8bb8\u7528\u6237\u4fee\u6539\u3001\u5220\u9664\u6216\u589e\u52a0\u6807\u7b7e\u503c\u3002\u4e0e\u91c7\u96c6\u91cf\u4e0d\u4e00\u6837\u7684\u662f\uff0c\u968f\u65f6\u95f4\u7684\u63a8\u79fb\uff0c\u5b58\u50a8\u7684\u6807\u7b7e\u7684\u6570\u636e\u91cf\u4e0d\u4f1a\u6709\u4ec0\u4e48\u53d8\u5316\u3002"),(0,l.yg)("h4",{id:"\u6570\u636e\u91c7\u96c6\u70b9-data-collection-point"},"\u6570\u636e\u91c7\u96c6\u70b9 (Data Collection Point)"),(0,l.yg)("p",null,"\u6570\u636e\u91c7\u96c6\u70b9\u662f\u6307\u6309\u7167\u9884\u8bbe\u65f6\u95f4\u5468\u671f\u6216\u53d7\u4e8b\u4ef6\u89e6\u53d1\u91c7\u96c6\u7269\u7406\u91cf\u7684\u786c\u4ef6\u6216\u8f6f\u4ef6\u3002\u4e00\u4e2a\u6570\u636e\u91c7\u96c6\u70b9\u53ef\u4ee5\u91c7\u96c6\u4e00\u4e2a\u6216\u591a\u4e2a\u91c7\u96c6\u91cf\uff0c",(0,l.yg)("strong",{parentName:"p"},"\u4f46\u8fd9\u4e9b\u91c7\u96c6\u91cf\u90fd\u662f\u540c\u4e00\u65f6\u523b\u91c7\u96c6\u7684\uff0c\u5177\u6709\u76f8\u540c\u7684\u65f6\u95f4\u6233"),"\u3002\u5bf9\u4e8e\u590d\u6742\u7684\u8bbe\u5907\uff0c\u5f80\u5f80\u6709\u591a\u4e2a\u6570\u636e\u91c7\u96c6\u70b9\uff0c\u6bcf\u4e2a\u6570\u636e\u91c7\u96c6\u70b9\u91c7\u96c6\u7684\u5468\u671f\u90fd\u53ef\u80fd\u4e0d\u4e00\u6837\uff0c\u800c\u4e14\u5b8c\u5168\u72ec\u7acb\uff0c\u4e0d\u540c\u6b65\u3002\u6bd4\u5982\u5bf9\u4e8e\u4e00\u53f0\u6c7d\u8f66\uff0c\u6709\u6570\u636e\u91c7\u96c6\u70b9\u4e13\u95e8\u91c7\u96c6 GPS \u4f4d\u7f6e\uff0c\u6709\u6570\u636e\u91c7\u96c6\u70b9\u4e13\u95e8\u91c7\u96c6\u53d1\u52a8\u673a\u72b6\u6001\uff0c\u6709\u6570\u636e\u91c7\u96c6\u70b9\u4e13\u95e8\u91c7\u96c6\u8f66\u5185\u7684\u73af\u5883\uff0c\u8fd9\u6837\u4e00\u53f0\u6c7d\u8f66\u5c31\u6709\u4e09\u4e2a\u6570\u636e\u91c7\u96c6\u70b9\u3002"),(0,l.yg)("h4",{id:"\u8868-table"},"\u8868 (Table)"),(0,l.yg)("p",null,"\u56e0\u4e3a\u91c7\u96c6\u91cf\u4e00\u822c\u662f\u7ed3\u6784\u5316\u6570\u636e\uff0c\u540c\u65f6\u4e3a\u964d\u4f4e\u5b66\u4e60\u95e8\u69db\uff0cTDengine \u91c7\u7528\u4f20\u7edf\u7684\u5173\u7cfb\u578b\u6570\u636e\u5e93\u6a21\u578b\u7ba1\u7406\u6570\u636e\u3002\u7528\u6237\u9700\u8981\u5148\u521b\u5efa\u5e93\uff0c\u7136\u540e\u521b\u5efa\u8868\uff0c\u4e4b\u540e\u624d\u80fd\u63d2\u5165\u6216\u67e5\u8be2\u6570\u636e\u3002\n\u4e3a\u5145\u5206\u5229\u7528\u5176\u6570\u636e\u7684\u65f6\u5e8f\u6027\u548c\u5176\u4ed6\u6570\u636e\u7279\u70b9\uff0cTDengine \u91c7\u53d6",(0,l.yg)("strong",{parentName:"p"},"\u4e00\u4e2a\u6570\u636e\u91c7\u96c6\u70b9\u4e00\u5f20\u8868"),"\u7684\u7b56\u7565\uff0c\u8981\u6c42\u5bf9\u6bcf\u4e2a\u6570\u636e\u91c7\u96c6\u70b9\u5355\u72ec\u5efa\u8868\uff08\u6bd4\u5982\u6709\u4e00\u5343\u4e07\u4e2a\u667a\u80fd\u7535\u8868\uff0c\u5c31\u9700\u521b\u5efa\u4e00\u5343\u4e07\u5f20\u8868\uff0c\u4e0a\u8ff0\u8868\u683c\u4e2d\u7684 d1001\uff0cd1002\uff0cd1003\uff0cd1004 \u90fd\u9700\u5355\u72ec\u5efa\u8868\uff09\uff0c\u7528\u6765\u5b58\u50a8\u8fd9\u4e2a\u6570\u636e\u91c7\u96c6\u70b9\u6240\u91c7\u96c6\u7684\u65f6\u5e8f\u6570\u636e\u3002\u8fd9\u79cd\u8bbe\u8ba1\u6709\u51e0\u5927\u4f18\u70b9\uff1a"),(0,l.yg)("ol",null,(0,l.yg)("li",{parentName:"ol"},"\u7531\u4e8e\u4e0d\u540c\u6570\u636e\u91c7\u96c6\u70b9\u4ea7\u751f\u6570\u636e\u7684\u8fc7\u7a0b\u5b8c\u5168\u72ec\u7acb\uff0c\u6bcf\u4e2a\u6570\u636e\u91c7\u96c6\u70b9\u7684\u6570\u636e\u6e90\u662f\u552f\u4e00\u7684\uff0c\u4e00\u5f20\u8868\u4e5f\u5c31\u53ea\u6709\u4e00\u4e2a\u5199\u5165\u8005\uff0c\u8fd9\u6837\u5c31\u53ef\u91c7\u7528\u65e0\u9501\u65b9\u5f0f\u6765\u5199\uff0c\u5199\u5165\u901f\u5ea6\u5c31\u80fd\u5927\u5e45\u63d0\u5347\u3002"),(0,l.yg)("li",{parentName:"ol"},"\u5bf9\u4e8e\u4e00\u4e2a\u6570\u636e\u91c7\u96c6\u70b9\u800c\u8a00\uff0c\u5176\u4ea7\u751f\u7684\u6570\u636e\u662f\u6309\u7167\u65f6\u95f4\u6392\u5e8f\u7684\uff0c\u56e0\u6b64\u5199\u7684\u64cd\u4f5c\u53ef\u7528\u8ffd\u52a0\u7684\u65b9\u5f0f\u5b9e\u73b0\uff0c\u8fdb\u4e00\u6b65\u5927\u5e45\u63d0\u9ad8\u6570\u636e\u5199\u5165\u901f\u5ea6\u3002"),(0,l.yg)("li",{parentName:"ol"},"\u4e00\u4e2a\u6570\u636e\u91c7\u96c6\u70b9\u7684\u6570\u636e\u662f\u4ee5\u5757\u4e3a\u5355\u4f4d\u8fde\u7eed\u5b58\u50a8\u7684\u3002\u5982\u679c\u8bfb\u53d6\u4e00\u4e2a\u65f6\u95f4\u6bb5\u7684\u6570\u636e\uff0c\u5b83\u80fd\u5927\u5e45\u51cf\u5c11\u968f\u673a\u8bfb\u53d6\u64cd\u4f5c\uff0c\u6210\u6570\u91cf\u7ea7\u7684\u63d0\u5347\u8bfb\u53d6\u548c\u67e5\u8be2\u901f\u5ea6\u3002"),(0,l.yg)("li",{parentName:"ol"},"\u4e00\u4e2a\u6570\u636e\u5757\u5185\u90e8\uff0c\u91c7\u7528\u5217\u5f0f\u5b58\u50a8\uff0c\u5bf9\u4e8e\u4e0d\u540c\u6570\u636e\u7c7b\u578b\uff0c\u91c7\u7528\u4e0d\u540c\u538b\u7f29\u7b97\u6cd5\uff0c\u800c\u4e14\u7531\u4e8e\u4e00\u4e2a\u6570\u636e\u91c7\u96c6\u70b9\u7684\u91c7\u96c6\u91cf\u7684\u53d8\u5316\u662f\u7f13\u6162\u7684\uff0c\u538b\u7f29\u7387\u66f4\u9ad8\u3002")),(0,l.yg)("p",null,"\u5982\u679c\u91c7\u7528\u4f20\u7edf\u7684\u65b9\u5f0f\uff0c\u5c06\u591a\u4e2a\u6570\u636e\u91c7\u96c6\u70b9\u7684\u6570\u636e\u5199\u5165\u4e00\u5f20\u8868\uff0c\u7531\u4e8e\u7f51\u7edc\u5ef6\u65f6\u4e0d\u53ef\u63a7\uff0c\u4e0d\u540c\u6570\u636e\u91c7\u96c6\u70b9\u7684\u6570\u636e\u5230\u8fbe\u670d\u52a1\u5668\u7684\u65f6\u5e8f\u662f\u65e0\u6cd5\u4fdd\u8bc1\u7684\uff0c\u5199\u5165\u64cd\u4f5c\u662f\u8981\u6709\u9501\u4fdd\u62a4\u7684\uff0c\u800c\u4e14\u4e00\u4e2a\u6570\u636e\u91c7\u96c6\u70b9\u7684\u6570\u636e\u662f\u96be\u4ee5\u4fdd\u8bc1\u8fde\u7eed\u5b58\u50a8\u5728\u4e00\u8d77\u7684\u3002",(0,l.yg)("strong",{parentName:"p"},"\u91c7\u7528\u4e00\u4e2a\u6570\u636e\u91c7\u96c6\u70b9\u4e00\u5f20\u8868\u7684\u65b9\u5f0f\uff0c\u80fd\u6700\u5927\u7a0b\u5ea6\u7684\u4fdd\u8bc1\u5355\u4e2a\u6570\u636e\u91c7\u96c6\u70b9\u7684\u63d2\u5165\u548c\u67e5\u8be2\u7684\u6027\u80fd\u662f\u6700\u4f18\u7684\u3002"),"\nTDengine \u5efa\u8bae\u7528\u6570\u636e\u91c7\u96c6\u70b9\u7684\u540d\u5b57\uff08\u5982\u4e0a\u8868\u4e2d\u7684 D1001\uff09\u6765\u505a\u8868\u540d\u3002\u6bcf\u4e2a\u6570\u636e\u91c7\u96c6\u70b9\u53ef\u80fd\u540c\u65f6\u91c7\u96c6\u591a\u4e2a\u91c7\u96c6\u91cf\uff08\u5982\u4e0a\u8868\u4e2d\u7684 current\uff0cvoltage\uff0cphase\uff09\uff0c\u6bcf\u4e2a\u91c7\u96c6\u91cf\u5bf9\u5e94\u4e00\u5f20\u8868\u4e2d\u7684\u4e00\u5217\uff0c\u6570\u636e\u7c7b\u578b\u53ef\u4ee5\u662f\u6574\u578b\u3001\u6d6e\u70b9\u578b\u3001\u5b57\u7b26\u4e32\u7b49\u3002\u9664\u6b64\u4e4b\u5916\uff0c\u8868\u7684\u7b2c\u4e00\u5217\u5fc5\u987b\u662f\u65f6\u95f4\u6233\uff0c\u5373\u6570\u636e\u7c7b\u578b\u4e3a timestamp\u3002\u5bf9\u91c7\u96c6\u91cf\uff0cTDengine \u5c06\u81ea\u52a8\u6309\u7167\u65f6\u95f4\u6233\u5efa\u7acb\u7d22\u5f15\uff0c\u4f46\u5bf9\u91c7\u96c6\u91cf\u672c\u8eab\u4e0d\u5efa\u4efb\u4f55\u7d22\u5f15\u3002\u6570\u636e\u7528\u5217\u5f0f\u5b58\u50a8\u65b9\u5f0f\u4fdd\u5b58\u3002\n\u5bf9\u4e8e\u590d\u6742\u7684\u8bbe\u5907\uff0c\u6bd4\u5982\u6c7d\u8f66\uff0c\u5b83\u6709\u591a\u4e2a\u6570\u636e\u91c7\u96c6\u70b9\uff0c\u90a3\u4e48\u5c31\u9700\u8981\u4e3a\u4e00\u53f0\u6c7d\u8f66\u5efa\u7acb\u591a\u5f20\u8868\u3002"),(0,l.yg)("h4",{id:"\u8d85\u7ea7\u8868-stable"},"\u8d85\u7ea7\u8868 (STable)"),(0,l.yg)("p",null,"\u7531\u4e8e\u4e00\u4e2a\u6570\u636e\u91c7\u96c6\u70b9\u4e00\u5f20\u8868\uff0c\u5bfc\u81f4\u8868\u7684\u6570\u91cf\u5de8\u589e\uff0c\u96be\u4ee5\u7ba1\u7406\uff0c\u800c\u4e14\u5e94\u7528\u7ecf\u5e38\u9700\u8981\u505a\u91c7\u96c6\u70b9\u4e4b\u95f4\u7684\u805a\u5408\u64cd\u4f5c\uff0c\u805a\u5408\u7684\u64cd\u4f5c\u4e5f\u53d8\u5f97\u590d\u6742\u8d77\u6765\u3002\u4e3a\u89e3\u51b3\u8fd9\u4e2a\u95ee\u9898\uff0cTDengine \u5f15\u5165\u8d85\u7ea7\u8868\uff08Super Table\uff0c\u7b80\u79f0\u4e3a STable\uff09\u7684\u6982\u5ff5\u3002\n\u8d85\u7ea7\u8868\u662f\u6307\u67d0\u4e00\u7279\u5b9a\u7c7b\u578b\u7684\u6570\u636e\u91c7\u96c6\u70b9\u7684\u96c6\u5408\u3002\u540c\u4e00\u7c7b\u578b\u7684\u6570\u636e\u91c7\u96c6\u70b9\uff0c\u5176\u8868\u7684\u7ed3\u6784\u662f\u5b8c\u5168\u4e00\u6837\u7684\uff0c\u4f46\u6bcf\u4e2a\u8868\uff08\u6570\u636e\u91c7\u96c6\u70b9\uff09\u7684\u9759\u6001\u5c5e\u6027\uff08\u6807\u7b7e\uff09\u662f\u4e0d\u4e00\u6837\u7684\u3002\u63cf\u8ff0\u4e00\u4e2a\u8d85\u7ea7\u8868\uff08\u67d0\u4e00\u7279\u5b9a\u7c7b\u578b\u7684\u6570\u636e\u91c7\u96c6\u70b9\u7684\u96c6\u5408\uff09\uff0c\u9664\u9700\u8981\u5b9a\u4e49\u91c7\u96c6\u91cf\u7684\u8868\u7ed3\u6784\u4e4b\u5916\uff0c\u8fd8\u9700\u8981\u5b9a\u4e49\u5176\u6807\u7b7e\u7684 schema\uff0c\u6807\u7b7e\u7684\u6570\u636e\u7c7b\u578b\u53ef\u4ee5\u662f\u6574\u6570\u3001\u6d6e\u70b9\u6570\u3001\u5b57\u7b26\u4e32\uff0c\u6807\u7b7e\u53ef\u4ee5\u6709\u591a\u4e2a\uff0c\u53ef\u4ee5\u4e8b\u540e\u589e\u52a0\u3001\u5220\u9664\u6216\u4fee\u6539\u3002\u5982\u679c\u6574\u4e2a\u7cfb\u7edf\u6709 N \u4e2a\u4e0d\u540c\u7c7b\u578b\u7684\u6570\u636e\u91c7\u96c6\u70b9\uff0c\u5c31\u9700\u8981\u5efa\u7acb N \u4e2a\u8d85\u7ea7\u8868\u3002\n\u5728 TDengine \u7684\u8bbe\u8ba1\u91cc\uff0c",(0,l.yg)("strong",{parentName:"p"},"\u8868\u7528\u6765\u4ee3\u8868\u4e00\u4e2a\u5177\u4f53\u7684\u6570\u636e\u91c7\u96c6\u70b9\uff0c\u8d85\u7ea7\u8868\u7528\u6765\u4ee3\u8868\u4e00\u7ec4\u76f8\u540c\u7c7b\u578b\u7684\u6570\u636e\u91c7\u96c6\u70b9\u96c6\u5408"),"\u3002"),(0,l.yg)("p",null,"\u8fd9\u91cc\u7684\u8d85\u7ea7\u8868\u3001\u5b50\u8868\u7684\u8bbe\u8ba1\u5f88\u6709\u610f\u601d\uff0c\u5b50\u8868\u5c31\u662f\u67d0\u4e2a\u8bbe\u5907\uff08\u865a\u62df\u7684\uff0c\u5176\u4ed6\u4e5f\u884c\uff09\uff0c\u8fd9\u4e2a\u662f\u6570\u636e\u653e\u5230\u4e00\u5757\u7684\u6700\u5c0f\u5355\u4f4d\uff0c\u8fd9\u91cc\u548c\u5176\u4ed6\u65f6\u5e8f\u6570\u636e\u5e93\u7684\u5f88\u5927\u533a\u522b\uff0c\u53ef\u6709\u6709\u6548\u5904\u7406\u201c\u8bbe\u5907\u5220\u4e86\uff0c\u6570\u636e\u8fd8\u5b58\u5728\u7684\u95ee\u9898\u201d\u3002"),(0,l.yg)("h4",{id:"\u5b50\u8868-subtable"},"\u5b50\u8868 (Subtable)"),(0,l.yg)("p",null,"\u5f53\u4e3a\u67d0\u4e2a\u5177\u4f53\u6570\u636e\u91c7\u96c6\u70b9\u521b\u5efa\u8868\u65f6\uff0c\u7528\u6237\u53ef\u4ee5\u4f7f\u7528\u8d85\u7ea7\u8868\u7684\u5b9a\u4e49\u505a\u6a21\u677f\uff0c\u540c\u65f6\u6307\u5b9a\u8be5\u5177\u4f53\u91c7\u96c6\u70b9\uff08\u8868\uff09\u7684\u5177\u4f53\u6807\u7b7e\u503c\u6765\u521b\u5efa\u8be5\u8868\u3002",(0,l.yg)("strong",{parentName:"p"},"\u901a\u8fc7\u8d85\u7ea7\u8868\u521b\u5efa\u7684\u8868\u79f0\u4e4b\u4e3a\u5b50\u8868"),"\u3002\u6b63\u5e38\u7684\u8868\u4e0e\u5b50\u8868\u7684\u5dee\u5f02\u5728\u4e8e\uff1a"),(0,l.yg)("ol",null,(0,l.yg)("li",{parentName:"ol"},"\u5b50\u8868\u5c31\u662f\u8868\uff0c\u56e0\u6b64\u6240\u6709\u6b63\u5e38\u8868\u7684 SQL \u64cd\u4f5c\u90fd\u53ef\u4ee5\u5728\u5b50\u8868\u4e0a\u6267\u884c\u3002"),(0,l.yg)("li",{parentName:"ol"},"\u5b50\u8868\u5728\u6b63\u5e38\u8868\u7684\u57fa\u7840\u4e0a\u6709\u6269\u5c55\uff0c\u5b83\u662f\u5e26\u6709\u9759\u6001\u6807\u7b7e\u7684\uff0c\u800c\u4e14\u8fd9\u4e9b\u6807\u7b7e\u53ef\u4ee5\u4e8b\u540e\u589e\u52a0\u3001\u5220\u9664\u3001\u4fee\u6539\uff0c\u800c\u6b63\u5e38\u7684\u8868\u6ca1\u6709\u3002"),(0,l.yg)("li",{parentName:"ol"},"\u5b50\u8868\u4e00\u5b9a\u5c5e\u4e8e\u4e00\u5f20\u8d85\u7ea7\u8868\uff0c\u4f46\u666e\u901a\u8868\u4e0d\u5c5e\u4e8e\u4efb\u4f55\u8d85\u7ea7\u8868"),(0,l.yg)("li",{parentName:"ol"},"\u666e\u901a\u8868\u65e0\u6cd5\u8f6c\u4e3a\u5b50\u8868\uff0c\u5b50\u8868\u4e5f\u65e0\u6cd5\u8f6c\u4e3a\u666e\u901a\u8868\u3002")),(0,l.yg)("p",null,"\u8d85\u7ea7\u8868\u4e0e\u4e0e\u57fa\u4e8e\u8d85\u7ea7\u8868\u5efa\u7acb\u7684\u5b50\u8868\u4e4b\u95f4\u7684\u5173\u7cfb\u8868\u73b0\u5728\uff1a"),(0,l.yg)("ol",null,(0,l.yg)("li",{parentName:"ol"},"\u4e00\u5f20\u8d85\u7ea7\u8868\u5305\u542b\u6709\u591a\u5f20\u5b50\u8868\uff0c\u8fd9\u4e9b\u5b50\u8868\u5177\u6709\u76f8\u540c\u7684\u91c7\u96c6\u91cf schema\uff0c\u4f46\u5e26\u6709\u4e0d\u540c\u7684\u6807\u7b7e\u503c\u3002"),(0,l.yg)("li",{parentName:"ol"},"\u4e0d\u80fd\u901a\u8fc7\u5b50\u8868\u8c03\u6574\u6570\u636e\u6216\u6807\u7b7e\u7684\u6a21\u5f0f\uff0c\u5bf9\u4e8e\u8d85\u7ea7\u8868\u7684\u6570\u636e\u6a21\u5f0f\u4fee\u6539\u7acb\u5373\u5bf9\u6240\u6709\u7684\u5b50\u8868\u751f\u6548\u3002"),(0,l.yg)("li",{parentName:"ol"},"\u8d85\u7ea7\u8868\u53ea\u5b9a\u4e49\u4e00\u4e2a\u6a21\u677f\uff0c\u81ea\u8eab\u4e0d\u5b58\u50a8\u4efb\u4f55\u6570\u636e\u6216\u6807\u7b7e\u4fe1\u606f\u3002\u56e0\u6b64\uff0c\u4e0d\u80fd\u5411\u4e00\u4e2a\u8d85\u7ea7\u8868\u5199\u5165\u6570\u636e\uff0c\u53ea\u80fd\u5c06\u6570\u636e\u5199\u5165\u5b50\u8868\u4e2d\u3002")),(0,l.yg)("p",null,"\u67e5\u8be2\u65e2\u53ef\u4ee5\u5728\u8868\u4e0a\u8fdb\u884c\uff0c\u4e5f\u53ef\u4ee5\u5728\u8d85\u7ea7\u8868\u4e0a\u8fdb\u884c\u3002\u9488\u5bf9\u8d85\u7ea7\u8868\u7684\u67e5\u8be2\uff0cTDengine \u5c06\u628a\u6240\u6709\u5b50\u8868\u4e2d\u7684\u6570\u636e\u89c6\u4e3a\u4e00\u4e2a\u6574\u4f53\u6570\u636e\u96c6\u8fdb\u884c\u5904\u7406\uff0c\u4f1a\u5148\u628a\u6ee1\u8db3\u6807\u7b7e\u8fc7\u6ee4\u6761\u4ef6\u7684\u8868\u4ece\u8d85\u7ea7\u8868\u4e2d\u627e\u51fa\u6765\uff0c\u7136\u540e\u518d\u626b\u63cf\u8fd9\u4e9b\u8868\u7684\u65f6\u5e8f\u6570\u636e\uff0c\u8fdb\u884c\u805a\u5408\u64cd\u4f5c\uff0c\u8fd9\u6837\u9700\u8981\u626b\u63cf\u7684\u6570\u636e\u96c6\u4f1a\u5927\u5e45\u51cf\u5c11\uff0c\u4ece\u800c\u663e\u8457\u63d0\u9ad8\u67e5\u8be2\u7684\u6027\u80fd\u3002\u672c\u8d28\u4e0a\uff0cTDengine \u901a\u8fc7\u5bf9\u8d85\u7ea7\u8868\u67e5\u8be2\u7684\u652f\u6301\uff0c\u5b9e\u73b0\u4e86\u591a\u4e2a\u540c\u7c7b\u6570\u636e\u91c7\u96c6\u70b9\u7684\u9ad8\u6548\u805a\u5408\u3002\nTDengine \u7cfb\u7edf\u5efa\u8bae\u7ed9\u4e00\u4e2a\u6570\u636e\u91c7\u96c6\u70b9\u5efa\u8868\uff0c\u9700\u8981\u901a\u8fc7\u8d85\u7ea7\u8868\u5efa\u8868\uff0c\u800c\u4e0d\u662f\u5efa\u666e\u901a\u8868\u3002"),(0,l.yg)("h4",{id:"\u5e93-database"},"\u5e93 (database)"),(0,l.yg)("p",null,"\u5e93\u662f\u6307\u4e00\u7ec4\u8868\u7684\u96c6\u5408\u3002TDengine \u5bb9\u8bb8\u4e00\u4e2a\u8fd0\u884c\u5b9e\u4f8b\u6709\u591a\u4e2a\u5e93\uff0c\u800c\u4e14\u6bcf\u4e2a\u5e93\u53ef\u4ee5\u914d\u7f6e\u4e0d\u540c\u7684\u5b58\u50a8\u7b56\u7565\u3002\u4e0d\u540c\u7c7b\u578b\u7684\u6570\u636e\u91c7\u96c6\u70b9\u5f80\u5f80\u5177\u6709\u4e0d\u540c\u7684\u6570\u636e\u7279\u5f81\uff0c\u5305\u62ec\u6570\u636e\u91c7\u96c6\u9891\u7387\u7684\u9ad8\u4f4e\uff0c\u6570\u636e\u4fdd\u7559\u65f6\u95f4\u7684\u957f\u77ed\uff0c\u526f\u672c\u7684\u6570\u76ee\uff0c\u6570\u636e\u5757\u7684\u5927\u5c0f\uff0c\u662f\u5426\u5141\u8bb8\u66f4\u65b0\u6570\u636e\u7b49\u7b49\u3002\u4e3a\u4e86\u5728\u5404\u79cd\u573a\u666f\u4e0b TDengine \u90fd\u80fd\u6700\u5927\u6548\u7387\u7684\u5de5\u4f5c\uff0cTDengine \u5efa\u8bae\u5c06\u4e0d\u540c\u6570\u636e\u7279\u5f81\u7684\u8d85\u7ea7\u8868\u521b\u5efa\u5728\u4e0d\u540c\u7684\u5e93\u91cc\u3002"),(0,l.yg)("p",null,"\u4e00\u4e2a\u5e93\u91cc\uff0c\u53ef\u4ee5\u6709\u4e00\u5230\u591a\u4e2a\u8d85\u7ea7\u8868\uff0c\u4f46\u4e00\u4e2a\u8d85\u7ea7\u8868\u53ea\u5c5e\u4e8e\u4e00\u4e2a\u5e93\u3002\u4e00\u4e2a\u8d85\u7ea7\u8868\u6240\u62e5\u6709\u7684\u5b50\u8868\u5168\u90e8\u5b58\u5728\u4e00\u4e2a\u5e93\u91cc\u3002"),(0,l.yg)("p",null,"\u8fd9\u91cc\u4e00\u5b9a\u8981\u6ce8\u610f\uff0c\u6211\u4eec\u5728\u8bbe\u8ba1\u5e93\u7684\u65f6\u5019\uff0c\u4e00\u5b9a\u8981\u6839\u636e\u6570\u636e\u7684\u60c5\u51b5\u6765\uff0c\u4f8b\u5982\u4e0a\u4e0b\u7ebf\u6d88\u606f\u548c\u8bbe\u5907\u5386\u53f2\u6570\u636e\u5e94\u8be5\u5206\u4e24\u4e2a\u5e93\uff0c\u56e0\u4e3a\u4ed6\u4eec\u7684\u6570\u636e\u4fdd\u7559\u65f6\u95f4\u4e0d\u540c\uff0c\u8bbe\u5907\u4e0a\u4e0b\u7ebf\u6d88\u606f\u5b58 1 \u5e74\u5c31\u5f88\u591a\u4e86\uff0c\u8bbe\u5907\u5386\u53f2\u6570\u636e\u53ef\u80fd\u9700\u8981\u5b58 5 \u5e74\u4ee5\u4e0a\u3002"),(0,l.yg)("h3",{id:"\u51c6\u5907\u6570\u636e"},"\u51c6\u5907\u6570\u636e"),(0,l.yg)("p",null,"\u7ed3\u5408\u4e0a\u9762\u7684\u6982\u5ff5\u4ee5\u53ca SQL \u8bed\u6cd5\u53ef\u4ee5\u521b\u5efa\u8868\u505a\u538b\u6d4b\u4e86\uff0cSQL \u662f\u53c2\u8003\u76ee\u524d influxdb \u5b58\u50a8\u7684\u5386\u53f2\u6570\u636e\u6765\u7684\u3002"),(0,l.yg)("pre",null,(0,l.yg)("code",{parentName:"pre",className:"language-sql"},'# \u4fdd\u5b5810\u5e74 1\u4e2a\u526f\u672c\ncreate database ucloud keep 3650 REPLICA 2;\nuse ucloud;\n\n#\u521b\u5efa\u8d85\u7ea7\u8868\ncreate stable datapoint_record(ts timestamp,value double,StringValue NCHAR(128),DataType NCHAR(10),StorageFlag int)\n tags(DeviceId NCHAR(32),DataPointId int,SlaveIndex int);\n#\u63d2\u5165\u6d4b\u8bd5\u6570\u636e\ninsert into D00500221122700004100_1_1 using datapoint_record\ntags(00500221122700004100,1,1)\nvalues(now(),1,"1","ushort",1);\ninsert into D00500221122700004100_1_2 using datapoint_record\ntags(00500221122700004100,1,2)\nvalues(now(),1,"1","ushort",1);\n#\u67e5\u8be2\nselect * from datapoint_record;\n\n')),(0,l.yg)("p",null,"\u6700\u91cd\u70b9\u7684\u5176\u5b9e\u662f\u8868\u7ed3\u6784\u7684\u8bbe\u8ba1\u4e86\uff0c\u7ed3\u5408\u6211\u4eec\u7684\u4e1a\u52a1\uff0c\u6211\u4eec\u5e73\u53f0\u7684\u201c\u91c7\u96c6\u91cf\u201d\u662f\u914d\u7f6e\u51fa\u6765\uff0c\u6240\u4ee5\u91c7\u96c6\u91cf\u662f\u4e0d\u56fa\u5b9a\u7684\uff0c\u7528\u6237\u4f1a\u6839\u636e\u81ea\u5df1\u7684\u4e8b\u60c5\u60c5\u51b5\u52a8\u6001\u7684\u589e\u5220\u3002\u6240\u4ee5\u6211\u4eec\u7684\u5b50\u8868\u53ea\u80fd\u6709\u4e00\u4e2a\u91c7\u96c6\u91cf\uff0c\u8fd9\u4e2a\u662f\u5173\u952e\u3002"),(0,l.yg)("p",null,"\u6211\u4eec\u76ee\u524d\u7528\u7684\u65f6\u5e8f\u6570\u636e\u5e93\u662f InfluxDB\uff0c\u6240\u4ee5\u9700\u8981\u6709\u4e2a\u4e2d\u95f4\u4ef6\uff0c\u8f6f\u5b9e\u65f6\u540c\u6b65\u5230 TDengine\u3002\u5b9e\u73b0\u601d\u8def\u4e3a\uff1a"),(0,l.yg)("ol",null,(0,l.yg)("li",{parentName:"ol"},"\u5b9a\u65f6\u6bcf\u5206\u949f\uff1b"),(0,l.yg)("li",{parentName:"ol"},"\u5bfc\u51fa InfluxDB \u6570\u636e\uff0c\u4e00\u5206\u949f\u7684\uff1b"),(0,l.yg)("li",{parentName:"ol"},"\u8bfb\u53d6\u8fd9\u4e2a\u5bfc\u51fa\u6587\u4ef6\uff0c\u5e76\u63d2\u5165\u5230 TDengine \u4e2d\uff1b")),(0,l.yg)("h3",{id:"\u538b\u6d4b"},"\u538b\u6d4b"),(0,l.yg)("p",null,"\u81ea\u5e26 taosBenchmark \u6027\u80fd\u6d4b\u8bd5\u5de5\u5177\uff0c\u53ef\u4ee5\u4f7f\u7528\u3002"),(0,l.yg)("p",null,"\u65e0\u547d\u4ee4\u884c\u53c2\u6570\u76f4\u63a5\u8fd0\u884c taosBenchmark\uff0c\u56de\u8f66\u76f4\u63a5\u6267\u884c\uff0c\u9ed8\u8ba4\u5728 TDengine \u4e2d\u521b\u5efa\u4e00\u4e2a\u540d\u4e3a test \u7684\u6570\u636e\u5e93\uff0ctest \u6570\u636e\u5e93\u4e0b\u521b\u5efa\u540d\u4e3a meters \u7684\u4e00\u5f20\u8d85\u7ea7\u8868\uff0c\u8d85\u7ea7\u8868\u4e0b\u521b\u5efa 10000 \u5f20\u8868\uff0c\u6bcf\u5f20\u8868\u4e2d\u5199\u5165 10000 \u6761\u8bb0\u5f55\u3002"),(0,l.yg)("p",null,(0,l.yg)("img",{alt:"image.png",src:t(8123).A,width:"1435",height:"48"}),"\n1w \u5f20\u8868\u7528\u4e86\u63a5\u8fd1 4 \u5206\u949f\u521b\u5efa\u5b8c\u6210\uff0c\u5f53\u7136\u4e86\u548c\u6d4b\u8bd5\u670d\u52a1\u5668\u7684\u673a\u68b0\u786c\u76d8\u5e94\u8be5\u6709\u5f88\u5927\u5173\u7cfb\uff1b"),(0,l.yg)("p",null,(0,l.yg)("img",{alt:"image.png",src:t(3906).A,width:"1237",height:"58"}),"\n\u63d2\u5165 1 \u4ebf\u8c03\u6570\u636e\u7528\u4e86 18 \u79d2\uff0c\u5f53\u7136\u4e86\u548c\u6d4b\u8bd5\u670d\u52a1\u5668\u7684\u673a\u68b0\u786c\u76d8\u5e94\u8be5\u6709\u5f88\u5927\u5173\u7cfb\uff1b"),(0,l.yg)("h3",{id:"\u5751\u70b9\u6c47\u603b"},"\u5751\u70b9\u6c47\u603b"),(0,l.yg)("ol",null,(0,l.yg)("li",{parentName:"ol"},"\u793e\u533a\u7248\u672c\u4e0d\u652f\u6301\u201c\u5220\u9664\u6307\u5b9a\u65f6\u95f4\u8303\u56f4\u7684\u6570\u636e\u201d\u7684\u529f\u80fd\uff0c\u4f01\u4e1a\u7248\u624d\u652f\u6301\uff0c\u4f46\u662f\u6709\u4e9b\u7279\u6b8a\u60c5\u51b5\u8fd8\u662f\u9700\u8981\u5220\u9664\u6570\u636e\u7684\uff0c\u53ef\u4ee5\u901a\u8fc7\u589e\u52a0\u201c\u5220\u9664\u6807\u8bb0\u5b57\u6bb5\u201d\u6765\u8fc2\u56de\u5904\u7406\u8fd9\u4e2a\u95ee\u9898\u3002"),(0,l.yg)("li",{parentName:"ol"},"\u793e\u533a\u7248\u672c\u4e0d\u652f\u6301\u201cUAF\u201d\uff0c\u4e5f\u5c31\u662f\u7528\u6237\u81ea\u5b9a\u4e49\u51fd\u6570\uff0c\u67d0\u4e9b\u7279\u6b8a\u805a\u5408\u6216\u8ba1\u7b97\u7b97\u6cd5\u65e0\u6cd5\u505a\u5230\uff0c\u4e0d\u8fc7\u793e\u533a\u7248\u672c\u63d0\u4f9b\u7684\u5df2\u7ecf\u662f\u7edd\u5bf9\u90e8\u5206\u4e86\u3002"),(0,l.yg)("li",{parentName:"ol"},"java client \u4f7f\u7528 RS \u600e\u4e48\u4e5f\u8fde\u63a5\u4e0d\u4e0a\uff0c\u540e\u6765\u53d1\u73b0\u662f\u670d\u52a1\u7aef\u6ca1\u6709\u542f\u52a8 taosadapter\uff0c\u4f7f\u7528\u547d\u4ee4 systemctl start taosadapter \u542f\u52a8\u540e\uff0cjava client \u5c31\u53ef\u4ee5\u6b63\u5e38\u8fde\u63a5\u4e86\u3002")),(0,l.yg)("h3",{id:"\u9644\u5f55"},"\u9644\u5f55"),(0,l.yg)("h4",{id:"\u5f00\u6e90\u534f\u8bae\u8bf4\u660e"},"\u5f00\u6e90\u534f\u8bae\u8bf4\u660e"),(0,l.yg)("p",null,(0,l.yg)("img",{alt:"image.png",src:t(6413).A,width:"750",height:"454"})))}u.isMDXComponent=!0},9792:(e,n,t)=>{t.d(n,{A:()=>a});const a=t.p+"assets/images/1-86f297ccfad12004e3b4a982a06dbdb1.png"},8123:(e,n,t)=>{t.d(n,{A:()=>a});const a=t.p+"assets/images/2-c10305180fd1dff6eef758f70d21f175.png"},3906:(e,n,t)=>{t.d(n,{A:()=>a});const a=t.p+"assets/images/3-e91119dc93e175c318646768f42457a1.png"},6413:(e,n,t)=>{t.d(n,{A:()=>a});const a=t.p+"assets/images/4-708f8212de488f91684592cc80775af3.png"}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2042],{5680:(e,n,t)=>{t.d(n,{xA:()=>s,yg:()=>m});var a=t(6540);function l(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function r(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function g(e){for(var n=1;n=0||(l[t]=e[t]);return l}(e,n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(l[t]=e[t])}return l}var o=a.createContext({}),d=function(e){var n=a.useContext(o),t=n;return e&&(t="function"==typeof e?e(n):g(g({},n),e)),t},s=function(e){var n=d(e.components);return a.createElement(o.Provider,{value:n},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},y=a.forwardRef((function(e,n){var t=e.components,l=e.mdxType,r=e.originalType,o=e.parentName,s=i(e,["components","mdxType","originalType","parentName"]),p=d(t),y=l,m=p["".concat(o,".").concat(y)]||p[y]||u[y]||r;return t?a.createElement(m,g(g({ref:n},s),{},{components:t})):a.createElement(m,g({ref:n},s))}));function m(e,n){var t=arguments,l=n&&n.mdxType;if("string"==typeof e||l){var r=t.length,g=new Array(r);g[0]=y;var i={};for(var o in n)hasOwnProperty.call(n,o)&&(i[o]=n[o]);i.originalType=e,i[p]="string"==typeof e?e:l,g[1]=i;for(var d=2;d{t.r(n),t.d(n,{assets:()=>o,contentTitle:()=>g,default:()=>u,frontMatter:()=>r,metadata:()=>i,toc:()=>d});var a=t(8168),l=(t(6540),t(5680));const r={sidebar_position:2},g=void 0,i={unversionedId:"study/db/\u65f6\u5e8f\u6570\u636e\u5e93/TDengine",id:"study/db/\u65f6\u5e8f\u6570\u636e\u5e93/TDengine",title:"TDengine",description:"\u5b98\u7f51",source:"@site/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/TDengine.md",sourceDirName:"study/db/\u65f6\u5e8f\u6570\u636e\u5e93",slug:"/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/TDengine",permalink:"/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/TDengine",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"studySidebar",previous:{title:"InfluxDB",permalink:"/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/InfluxDB"},next:{title:"Apache IoTDB",permalink:"/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/Apache IoTDB"}},o={},d=[{value:"\u7b80\u4ecb",id:"\u7b80\u4ecb",level:3},{value:"\u8bc4\u4ef7",id:"\u8bc4\u4ef7",level:3},{value:"\u90e8\u7f72",id:"\u90e8\u7f72",level:3},{value:"\u73af\u5883\u51c6\u5907",id:"\u73af\u5883\u51c6\u5907",level:4},{value:"\u6784\u5efa&\u5b89\u88c5\u3010\u6e90\u7801\u3011",id:"\u6784\u5efa\u5b89\u88c5\u6e90\u7801",level:4},{value:"\u6784\u4ef6\u5b89\u88c5\u3010\u5b89\u88c5\u5305\u3011",id:"\u6784\u4ef6\u5b89\u88c5\u5b89\u88c5\u5305",level:4},{value:"\u4f53\u9a8c SQL",id:"\u4f53\u9a8c-sql",level:4},{value:"\u96c6\u7fa4\u90e8\u7f72",id:"\u96c6\u7fa4\u90e8\u7f72",level:4},{value:"\u57fa\u672c\u6982\u5ff5",id:"\u57fa\u672c\u6982\u5ff5",level:3},{value:"\u91c7\u96c6\u91cf (Metric)",id:"\u91c7\u96c6\u91cf-metric",level:4},{value:"\u6807\u7b7e (Label/Tag)",id:"\u6807\u7b7e-labeltag",level:4},{value:"\u6570\u636e\u91c7\u96c6\u70b9 (Data Collection Point)",id:"\u6570\u636e\u91c7\u96c6\u70b9-data-collection-point",level:4},{value:"\u8868 (Table)",id:"\u8868-table",level:4},{value:"\u8d85\u7ea7\u8868 (STable)",id:"\u8d85\u7ea7\u8868-stable",level:4},{value:"\u5b50\u8868 (Subtable)",id:"\u5b50\u8868-subtable",level:4},{value:"\u5e93 (database)",id:"\u5e93-database",level:4},{value:"\u51c6\u5907\u6570\u636e",id:"\u51c6\u5907\u6570\u636e",level:3},{value:"\u538b\u6d4b",id:"\u538b\u6d4b",level:3},{value:"\u5751\u70b9\u6c47\u603b",id:"\u5751\u70b9\u6c47\u603b",level:3},{value:"\u9644\u5f55",id:"\u9644\u5f55",level:3},{value:"\u5f00\u6e90\u534f\u8bae\u8bf4\u660e",id:"\u5f00\u6e90\u534f\u8bae\u8bf4\u660e",level:4}],s={toc:d},p="wrapper";function u(e){let{components:n,...r}=e;return(0,l.yg)(p,(0,a.A)({},s,r,{components:n,mdxType:"MDXLayout"}),(0,l.yg)("p",null,(0,l.yg)("a",{parentName:"p",href:"https://www.taosdata.com/"},"\u5b98\u7f51"),"\n",(0,l.yg)("a",{parentName:"p",href:"https://github.com/taosdata/TDengine"},"GitHub \u94fe\u63a5\u5730\u5740")),(0,l.yg)("h3",{id:"\u7b80\u4ecb"},"\u7b80\u4ecb"),(0,l.yg)("p",null,"\u5f00\u6e90\u534f\u8bae\uff1aAGPL V3\n\u5f00\u53d1\u8bed\u8a00\uff1aC\n\u5546\u4e1a\u516c\u53f8\uff1a\u5317\u4eac\u6d9b\u601d\u6570\u636e\u79d1\u6280\u6709\u9650\u516c\u53f8(TAOS Data) \uff1b\u6d9b\u601d\u6570\u636e\u91c7\u7528 AGPL \u8bb8\u53ef\u8bc1\uff0c\u5df2\u7ecf\u5c06 TDengine \u7684\u5185\u6838(\u5b58\u50a8\u3001\u8ba1\u7b97\u5f15\u64ce\u548c\u96c6\u7fa4\uff09100%\u5f00\u6e90\u3002\u6d9b\u601d\u6570\u636e\u5c06\u5c3d\u6700\u5927\u52aa\u529b\u6253\u9020\u5f00\u53d1\u8005\u793e\u533a\uff0c\u7ef4\u62a4\u8fd9\u4e2a\u5f00\u6e90\u7684\u5546\u4e1a\u6a21\u5f0f\uff0c\u76f8\u4fe1\u4e0d\u5c06\u6700\u6838\u5fc3\u7684\u4ee3\u7801\u5f00\u6e90\uff0c\u4efb\u4f55\u57fa\u7840\u8f6f\u4ef6\u90fd\u5c06\u65e0\u6cd5\u8d62\u5f97\u5e02\u573a\u3002\u6d9b\u601d\u6570\u636e\u5e0c\u671b\u901a\u8fc7\u5f00\u6e90\uff0c\u5feb\u901f\u83b7\u5f97\u5e02\u573a\u53cd\u9988\uff0c\u5b8c\u5584\u4ea7\u54c1\uff0c\u5b8c\u5584\u751f\u6001\uff0c\u800c\u4e14\u5438\u5f15\u66f4\u591a\u7684\u5f00\u53d1\u8005\u52a0\u5165\u5230\u8fd9\u4e2a\u9879\u76ee\u4e2d\u3002\n\u652f\u6301\u96c6\u7fa4\uff1a\u5f00\u6e90\u7248\u672c\u652f\u6301\u96c6\u7fa4"),(0,l.yg)("h3",{id:"\u8bc4\u4ef7"},"\u8bc4\u4ef7"),(0,l.yg)("ol",null,(0,l.yg)("li",{parentName:"ol"},"\u56fd\u5185\u516c\u53f8\u4f17\u591a\u9879\u76ee\u4f7f\u7528\uff0c\u4f7f\u7528\u91cf\u8fd8\u662f\u5f88\u9ad8\u7684\uff1b"),(0,l.yg)("li",{parentName:"ol"},"\u5f00\u6e90\u65e2\u652f\u6301\u96c6\u7fa4\uff0c\u5927\u6570\u636e\u91cf\u7684\u62d3\u5c55\u662f\u6ca1\u95ee\u9898\u7684\uff1b"),(0,l.yg)("li",{parentName:"ol"},"\u6587\u6863\u76f8\u5bf9\u6765\u8bf4\u662f\u975e\u5e38\u53cb\u597d\u7684\uff0c\u65b9\u65b9\u9762\u9762\u4ff1\u5230\uff1b")),(0,l.yg)("h3",{id:"\u90e8\u7f72"},"\u90e8\u7f72"),(0,l.yg)("h4",{id:"\u73af\u5883\u51c6\u5907"},"\u73af\u5883\u51c6\u5907"),(0,l.yg)("p",null,"\u6587\u6863\u662f\u4e2d\u6587\u7684\uff0c\u8fd8\u662f\u4e0d\u9519\u7684\u3002",(0,l.yg)("a",{parentName:"p",href:"https://github.com/taosdata/TDengine/blob/develop/README-CN.md"},"\u5b89\u88c5\u6587\u6863")),(0,l.yg)("p",null,"\u95ee\u8fd0\u7ef4\u7ae5\u978b\u8981\u4e86\u9884\u7814\u4f7f\u7528\u7684\u670d\u52a1\u5668\uff0c\u5982\u4e0b\uff1a"),(0,l.yg)("table",null,(0,l.yg)("thead",{parentName:"table"},(0,l.yg)("tr",{parentName:"thead"},(0,l.yg)("th",{parentName:"tr",align:null},"hostname"),(0,l.yg)("th",{parentName:"tr",align:null},"ip"))),(0,l.yg)("tbody",{parentName:"table"},(0,l.yg)("tr",{parentName:"tbody"},(0,l.yg)("td",{parentName:"tr",align:null},"node57"),(0,l.yg)("td",{parentName:"tr",align:null},"192.168.0.57")),(0,l.yg)("tr",{parentName:"tbody"},(0,l.yg)("td",{parentName:"tr",align:null},"node54"),(0,l.yg)("td",{parentName:"tr",align:null},"192.168.0.54")),(0,l.yg)("tr",{parentName:"tbody"},(0,l.yg)("td",{parentName:"tr",align:null},"node53"),(0,l.yg)("td",{parentName:"tr",align:null},"192.168.0.53")),(0,l.yg)("tr",{parentName:"tbody"},(0,l.yg)("td",{parentName:"tr",align:null},"node55"),(0,l.yg)("td",{parentName:"tr",align:null},"192.168.0.55")))),(0,l.yg)("p",null,"\u770b\u4e86\u4e00\u4e0b\u64cd\u4f5c\u7cfb\u7edf\u7248\u672c\u4e3a Centos 7\uff0c\u5927\u5bb6\u6839\u636e\u81ea\u5df1\u670d\u52a1\u5668\u7684\u64cd\u4f5c\u7cfb\u7edf\u5b89\u88c5\u4e0d\u540c\u547d\u4ee4\uff0c\u4ee5\u4e0b\u90fd\u662f\u57fa\u4e8e Centos7 \u7684"),(0,l.yg)("pre",null,(0,l.yg)("code",{parentName:"pre",className:"language-shell"},"[root@centos ~]# cat /etc/redhat-release\nCentOS Linux release 7.9.2009 (Core)\n")),(0,l.yg)("p",null,"\u6839\u636e\u6587\u6863\u4f9d\u6b21\u6267\u884c\uff1a"),(0,l.yg)("pre",null,(0,l.yg)("code",{parentName:"pre",className:"language-shell"},"sudo yum install -y gcc gcc-c++ make cmake git\n\nsudo yum install -y java-1.8.0-openjdk\n\n#maven\u4e0d\u8981\u8fd9\u4e48\u5b89\u88c5\uff0c\u6709\u53ef\u80fd\u7248\u672c\u6bd4\u8f83\u4f4e \u53ea\u80fd\u8bf4\u6709\u53ef\u80fd\nsudo yum install -y maven\n\nsudo yum install zlib-devel xz-devel snappy-devel jansson jansson-devel pkgconfig libatomic libstdc++-static\n\ngit clone https://github.com/taosdata/TDengine.git\ncd TDengine\n\n#Go \u8fde\u63a5\u5668\u548c Grafana \u63d2\u4ef6\u5728\u5176\u4ed6\u72ec\u7acb\u4ed3\u5e93\uff0c\u5982\u679c\u5b89\u88c5\u5b83\u4eec\u7684\u8bdd\uff0c\u9700\u8981\u5728 TDengine \u76ee\u5f55\u4e0b\u901a\u8fc7\u6b64\u547d\u4ee4\u5b89\u88c5\uff1a\ngit submodule update --init --recursive\n")),(0,l.yg)("p",null,"\u6267\u884c\u6700\u540e\u7684\u547d\u4ee4\u7684\u65f6\u5019\uff0c\u4f1a\u62a5\u9519\uff0c\u9700\u8981\u914d\u7f6e git\uff0c\u3010YiRanCN\u3011\u548c\u3010",(0,l.yg)("a",{parentName:"p",href:"mailto:jiot.cloud059@163.com"},"jiot.cloud059@163.com"),"\u3011\u90fd\u662f\u6211\u7684 git \u8d26\u53f7\uff0c\u9700\u8981\u6839\u636e\u81ea\u5df1\u7684\u8d26\u53f7\u81ea\u884c\u914d\u7f6e"),(0,l.yg)("pre",null,(0,l.yg)("code",{parentName:"pre",className:"language-shell"},'git config --global http.sslVerify false\ngit config --global user.name "YiRanCN"\ngit config --global user.email "xxx@163.com"\n\nssh-keygen -t rsa -C "YiRanCN"\n\n#\u83b7\u53d6 \u4e4b\u540e \u4e0d\u8981\u540e\u9762\u7684\u8d26\u53f7 \u590d\u5236\u4e0b\u6765\ncat /root/.ssh/id_rsa.pub\n')),(0,l.yg)("p",null,"\u6839\u636e\u3010cat /root/.ssh/id_rsa.pub\u3011\u8fd9\u4e2a\u5f97\u7ed3\u679c\uff0c\u653e\u5230 github \u8d26\u53f7\u7684\u3010SSH and GPG keys\u3011\u529f\u80fd\u4e0b\u9762\n",(0,l.yg)("img",{parentName:"p",src:"https://cdn.nlark.com/yuque/0/2022/png/276833/1654587900708-8145fd94-a69e-492a-bf83-41ddd0a2e789.png#averageHue=%23fefefe&clientId=u7121fde3-9777-4&from=paste&height=1174&id=ua6a234e7&name=image.png&originHeight=1174&originWidth=2428&originalType=binary&ratio=1&rotation=0&showTitle=false&size=317728&status=done&style=none&taskId=u1b8b6bce-4d72-4ca1-b2c2-48963f55d0b&title=&width=2428",alt:"image.png"})),(0,l.yg)("h4",{id:"\u6784\u5efa\u5b89\u88c5\u6e90\u7801"},"\u6784\u5efa&\u5b89\u88c5\u3010\u6e90\u7801\u3011"),(0,l.yg)("p",null,"\u6784\u5efa\u5f88\u7b80\u5355\uff0c\u81ea\u5e26\u6784\u5efa\u811a\u672c"),(0,l.yg)("pre",null,(0,l.yg)("code",{parentName:"pre",className:"language-shell"},"./build.sh\n")),(0,l.yg)("h4",{id:"\u6784\u4ef6\u5b89\u88c5\u5b89\u88c5\u5305"},"\u6784\u4ef6\u5b89\u88c5\u3010\u5b89\u88c5\u5305\u3011"),(0,l.yg)("p",null,"\u4e0b\u8f7d\u5730\u5740\uff1a\u3010",(0,l.yg)("a",{parentName:"p",href:"https://docs.tdengine.com/get-started/#!"},"https://docs.tdengine.com/get-started/#!"),"\u3011\n\u6267\u884c\u3010rpm -i TDengine-server-2.6.0.1-Linux-x64.rpm\u3011\uff0c\u5982\u679c\u53ea\u662f\u5b89\u88c5\u975e\u96c6\u7fa4\u7248\u672c\u76f4\u63a5\u56de\u8f66\u5373\u53ef\u3002\n\u3010sudo systemctl start taosd\u3011\u542f\u52a8\uff1b\n\u6267\u884c\u3010sudo systemctl status taosd\u3011\u68c0\u67e5\u8fd0\u884c\u72b6\u6001"),(0,l.yg)("p",null,"\u5982\u679c\u9700\u8981\u5378\u8f7d\uff1a\n\u3010sudo rpm -qa|grep tdengine\u3011\n\u3010sudo rpm -e tdengine\u3011\n\u3010sudo rm -rf /var/lib/taos/","*","\u3011\u614e\u7528"),(0,l.yg)("h4",{id:"\u4f53\u9a8c-sql"},"\u4f53\u9a8c SQL"),(0,l.yg)("pre",null,(0,l.yg)("code",{parentName:"pre",className:"language-shell"},"CREATE DATABASE demo;\nUSE demo;\nCREATE TABLE t (ts TIMESTAMP, speed INT);\nINSERT INTO t VALUES('2019-07-15 00:00:00', 10);\nINSERT INTO t VALUES('2019-07-15 01:00:00', 20);\nSELECT * FROM t;\n")),(0,l.yg)("p",null,"\u4e3a\u964d\u4f4e\u5b66\u4e60\u95e8\u69db\uff0cTDengine \u91c7\u7528\u4f20\u7edf\u7684\u5173\u7cfb\u578b\u6570\u636e\u5e93\u6a21\u578b\u7ba1\u7406\u6570\u636e\uff0c\u548c MySQL \u6ca1\u5565\u592a\u5927\u533a\u522b\u3002"),(0,l.yg)("h4",{id:"\u96c6\u7fa4\u90e8\u7f72"},"\u96c6\u7fa4\u90e8\u7f72"),(0,l.yg)("p",null,"\u56e0\u4e3a\u6211\u7684\u76ee\u6807\u662f\u96c6\u7fa4\uff0c\u6240\u4ee5\uff0c\u4e0a\u9762\u7684\u90fd\u662f\u5f00\u80c3\u5c0f\u83dc\u3002"),(0,l.yg)("table",null,(0,l.yg)("thead",{parentName:"table"},(0,l.yg)("tr",{parentName:"thead"},(0,l.yg)("th",{parentName:"tr",align:null},"hostname"),(0,l.yg)("th",{parentName:"tr",align:null},"ip"))),(0,l.yg)("tbody",{parentName:"table"},(0,l.yg)("tr",{parentName:"tbody"},(0,l.yg)("td",{parentName:"tr",align:null},"node57"),(0,l.yg)("td",{parentName:"tr",align:null},"192.168.0.57")),(0,l.yg)("tr",{parentName:"tbody"},(0,l.yg)("td",{parentName:"tr",align:null},"node54"),(0,l.yg)("td",{parentName:"tr",align:null},"192.168.0.54")),(0,l.yg)("tr",{parentName:"tbody"},(0,l.yg)("td",{parentName:"tr",align:null},"node53"),(0,l.yg)("td",{parentName:"tr",align:null},"192.168.0.53")),(0,l.yg)("tr",{parentName:"tbody"},(0,l.yg)("td",{parentName:"tr",align:null},"node55"),(0,l.yg)("td",{parentName:"tr",align:null},"192.168.0.55")))),(0,l.yg)("p",null,"\u4f7f\u7528\n\u3010hostnamectl set-hostname node57\u3011\n\u3010hostnamectl set-hostname node54\u3011\n\u3010hostnamectl set-hostname node53\u3011\n\u3010hostnamectl set-hostname node55\u3011\n\u547d\u4ee4\u4fee\u6539 hostname.\n\u5c06\u5982\u4e0b\u914d\u7f6e\u653e\u5230\u3010vim /etc/hosts\u3011\u6587\u4ef6\u5185"),(0,l.yg)("pre",null,(0,l.yg)("code",{parentName:"pre",className:"language-shell"},"192.168.0.57 node57\n192.168.0.54 node54\n192.168.0.53 node53\n192.168.0.55 node55\n")),(0,l.yg)("p",null,"\u6240\u6709\u7684\u8282\u70b9\u5b89\u88c5\u4e00\u904d\u3002\n\u96c6\u7fa4\u642d\u5efa\u5b8c\u6210\uff0c\u5982\u4e0b\u56fe\u6240\u793a\uff1a\n",(0,l.yg)("img",{alt:"image.png",src:t(9792).A,width:"1087",height:"153"})),(0,l.yg)("h3",{id:"\u57fa\u672c\u6982\u5ff5"},"\u57fa\u672c\u6982\u5ff5"),(0,l.yg)("h4",{id:"\u91c7\u96c6\u91cf-metric"},"\u91c7\u96c6\u91cf (Metric)"),(0,l.yg)("p",null,"\u91c7\u96c6\u91cf\u662f\u6307\u4f20\u611f\u5668\u3001\u8bbe\u5907\u6216\u5176\u4ed6\u7c7b\u578b\u91c7\u96c6\u70b9\u91c7\u96c6\u7684\u7269\u7406\u91cf\uff0c\u6bd4\u5982\u7535\u6d41\u3001\u7535\u538b\u3001\u6e29\u5ea6\u3001\u538b\u529b\u3001GPS \u4f4d\u7f6e\u7b49\uff0c\u662f\u968f\u65f6\u95f4\u53d8\u5316\u7684\uff0c\u6570\u636e\u7c7b\u578b\u53ef\u4ee5\u662f\u6574\u578b\u3001\u6d6e\u70b9\u578b\u3001\u5e03\u5c14\u578b\uff0c\u4e5f\u53ef\u662f\u5b57\u7b26\u4e32\u3002\u968f\u7740\u65f6\u95f4\u7684\u63a8\u79fb\uff0c\u5b58\u50a8\u7684\u91c7\u96c6\u91cf\u7684\u6570\u636e\u91cf\u8d8a\u6765\u8d8a\u5927\u3002"),(0,l.yg)("h4",{id:"\u6807\u7b7e-labeltag"},"\u6807\u7b7e (Label/Tag)"),(0,l.yg)("p",null,"\u6807\u7b7e\u662f\u6307\u4f20\u611f\u5668\u3001\u8bbe\u5907\u6216\u5176\u4ed6\u7c7b\u578b\u91c7\u96c6\u70b9\u7684\u9759\u6001\u5c5e\u6027\uff0c\u4e0d\u662f\u968f\u65f6\u95f4\u53d8\u5316\u7684\uff0c\u6bd4\u5982\u8bbe\u5907\u578b\u53f7\u3001\u989c\u8272\u3001\u8bbe\u5907\u7684\u6240\u5728\u5730\u7b49\uff0c\u6570\u636e\u7c7b\u578b\u53ef\u4ee5\u662f\u4efb\u4f55\u7c7b\u578b\u3002\u867d\u7136\u662f\u9759\u6001\u7684\uff0c\u4f46 TDengine \u5bb9\u8bb8\u7528\u6237\u4fee\u6539\u3001\u5220\u9664\u6216\u589e\u52a0\u6807\u7b7e\u503c\u3002\u4e0e\u91c7\u96c6\u91cf\u4e0d\u4e00\u6837\u7684\u662f\uff0c\u968f\u65f6\u95f4\u7684\u63a8\u79fb\uff0c\u5b58\u50a8\u7684\u6807\u7b7e\u7684\u6570\u636e\u91cf\u4e0d\u4f1a\u6709\u4ec0\u4e48\u53d8\u5316\u3002"),(0,l.yg)("h4",{id:"\u6570\u636e\u91c7\u96c6\u70b9-data-collection-point"},"\u6570\u636e\u91c7\u96c6\u70b9 (Data Collection Point)"),(0,l.yg)("p",null,"\u6570\u636e\u91c7\u96c6\u70b9\u662f\u6307\u6309\u7167\u9884\u8bbe\u65f6\u95f4\u5468\u671f\u6216\u53d7\u4e8b\u4ef6\u89e6\u53d1\u91c7\u96c6\u7269\u7406\u91cf\u7684\u786c\u4ef6\u6216\u8f6f\u4ef6\u3002\u4e00\u4e2a\u6570\u636e\u91c7\u96c6\u70b9\u53ef\u4ee5\u91c7\u96c6\u4e00\u4e2a\u6216\u591a\u4e2a\u91c7\u96c6\u91cf\uff0c",(0,l.yg)("strong",{parentName:"p"},"\u4f46\u8fd9\u4e9b\u91c7\u96c6\u91cf\u90fd\u662f\u540c\u4e00\u65f6\u523b\u91c7\u96c6\u7684\uff0c\u5177\u6709\u76f8\u540c\u7684\u65f6\u95f4\u6233"),"\u3002\u5bf9\u4e8e\u590d\u6742\u7684\u8bbe\u5907\uff0c\u5f80\u5f80\u6709\u591a\u4e2a\u6570\u636e\u91c7\u96c6\u70b9\uff0c\u6bcf\u4e2a\u6570\u636e\u91c7\u96c6\u70b9\u91c7\u96c6\u7684\u5468\u671f\u90fd\u53ef\u80fd\u4e0d\u4e00\u6837\uff0c\u800c\u4e14\u5b8c\u5168\u72ec\u7acb\uff0c\u4e0d\u540c\u6b65\u3002\u6bd4\u5982\u5bf9\u4e8e\u4e00\u53f0\u6c7d\u8f66\uff0c\u6709\u6570\u636e\u91c7\u96c6\u70b9\u4e13\u95e8\u91c7\u96c6 GPS \u4f4d\u7f6e\uff0c\u6709\u6570\u636e\u91c7\u96c6\u70b9\u4e13\u95e8\u91c7\u96c6\u53d1\u52a8\u673a\u72b6\u6001\uff0c\u6709\u6570\u636e\u91c7\u96c6\u70b9\u4e13\u95e8\u91c7\u96c6\u8f66\u5185\u7684\u73af\u5883\uff0c\u8fd9\u6837\u4e00\u53f0\u6c7d\u8f66\u5c31\u6709\u4e09\u4e2a\u6570\u636e\u91c7\u96c6\u70b9\u3002"),(0,l.yg)("h4",{id:"\u8868-table"},"\u8868 (Table)"),(0,l.yg)("p",null,"\u56e0\u4e3a\u91c7\u96c6\u91cf\u4e00\u822c\u662f\u7ed3\u6784\u5316\u6570\u636e\uff0c\u540c\u65f6\u4e3a\u964d\u4f4e\u5b66\u4e60\u95e8\u69db\uff0cTDengine \u91c7\u7528\u4f20\u7edf\u7684\u5173\u7cfb\u578b\u6570\u636e\u5e93\u6a21\u578b\u7ba1\u7406\u6570\u636e\u3002\u7528\u6237\u9700\u8981\u5148\u521b\u5efa\u5e93\uff0c\u7136\u540e\u521b\u5efa\u8868\uff0c\u4e4b\u540e\u624d\u80fd\u63d2\u5165\u6216\u67e5\u8be2\u6570\u636e\u3002\n\u4e3a\u5145\u5206\u5229\u7528\u5176\u6570\u636e\u7684\u65f6\u5e8f\u6027\u548c\u5176\u4ed6\u6570\u636e\u7279\u70b9\uff0cTDengine \u91c7\u53d6",(0,l.yg)("strong",{parentName:"p"},"\u4e00\u4e2a\u6570\u636e\u91c7\u96c6\u70b9\u4e00\u5f20\u8868"),"\u7684\u7b56\u7565\uff0c\u8981\u6c42\u5bf9\u6bcf\u4e2a\u6570\u636e\u91c7\u96c6\u70b9\u5355\u72ec\u5efa\u8868\uff08\u6bd4\u5982\u6709\u4e00\u5343\u4e07\u4e2a\u667a\u80fd\u7535\u8868\uff0c\u5c31\u9700\u521b\u5efa\u4e00\u5343\u4e07\u5f20\u8868\uff0c\u4e0a\u8ff0\u8868\u683c\u4e2d\u7684 d1001\uff0cd1002\uff0cd1003\uff0cd1004 \u90fd\u9700\u5355\u72ec\u5efa\u8868\uff09\uff0c\u7528\u6765\u5b58\u50a8\u8fd9\u4e2a\u6570\u636e\u91c7\u96c6\u70b9\u6240\u91c7\u96c6\u7684\u65f6\u5e8f\u6570\u636e\u3002\u8fd9\u79cd\u8bbe\u8ba1\u6709\u51e0\u5927\u4f18\u70b9\uff1a"),(0,l.yg)("ol",null,(0,l.yg)("li",{parentName:"ol"},"\u7531\u4e8e\u4e0d\u540c\u6570\u636e\u91c7\u96c6\u70b9\u4ea7\u751f\u6570\u636e\u7684\u8fc7\u7a0b\u5b8c\u5168\u72ec\u7acb\uff0c\u6bcf\u4e2a\u6570\u636e\u91c7\u96c6\u70b9\u7684\u6570\u636e\u6e90\u662f\u552f\u4e00\u7684\uff0c\u4e00\u5f20\u8868\u4e5f\u5c31\u53ea\u6709\u4e00\u4e2a\u5199\u5165\u8005\uff0c\u8fd9\u6837\u5c31\u53ef\u91c7\u7528\u65e0\u9501\u65b9\u5f0f\u6765\u5199\uff0c\u5199\u5165\u901f\u5ea6\u5c31\u80fd\u5927\u5e45\u63d0\u5347\u3002"),(0,l.yg)("li",{parentName:"ol"},"\u5bf9\u4e8e\u4e00\u4e2a\u6570\u636e\u91c7\u96c6\u70b9\u800c\u8a00\uff0c\u5176\u4ea7\u751f\u7684\u6570\u636e\u662f\u6309\u7167\u65f6\u95f4\u6392\u5e8f\u7684\uff0c\u56e0\u6b64\u5199\u7684\u64cd\u4f5c\u53ef\u7528\u8ffd\u52a0\u7684\u65b9\u5f0f\u5b9e\u73b0\uff0c\u8fdb\u4e00\u6b65\u5927\u5e45\u63d0\u9ad8\u6570\u636e\u5199\u5165\u901f\u5ea6\u3002"),(0,l.yg)("li",{parentName:"ol"},"\u4e00\u4e2a\u6570\u636e\u91c7\u96c6\u70b9\u7684\u6570\u636e\u662f\u4ee5\u5757\u4e3a\u5355\u4f4d\u8fde\u7eed\u5b58\u50a8\u7684\u3002\u5982\u679c\u8bfb\u53d6\u4e00\u4e2a\u65f6\u95f4\u6bb5\u7684\u6570\u636e\uff0c\u5b83\u80fd\u5927\u5e45\u51cf\u5c11\u968f\u673a\u8bfb\u53d6\u64cd\u4f5c\uff0c\u6210\u6570\u91cf\u7ea7\u7684\u63d0\u5347\u8bfb\u53d6\u548c\u67e5\u8be2\u901f\u5ea6\u3002"),(0,l.yg)("li",{parentName:"ol"},"\u4e00\u4e2a\u6570\u636e\u5757\u5185\u90e8\uff0c\u91c7\u7528\u5217\u5f0f\u5b58\u50a8\uff0c\u5bf9\u4e8e\u4e0d\u540c\u6570\u636e\u7c7b\u578b\uff0c\u91c7\u7528\u4e0d\u540c\u538b\u7f29\u7b97\u6cd5\uff0c\u800c\u4e14\u7531\u4e8e\u4e00\u4e2a\u6570\u636e\u91c7\u96c6\u70b9\u7684\u91c7\u96c6\u91cf\u7684\u53d8\u5316\u662f\u7f13\u6162\u7684\uff0c\u538b\u7f29\u7387\u66f4\u9ad8\u3002")),(0,l.yg)("p",null,"\u5982\u679c\u91c7\u7528\u4f20\u7edf\u7684\u65b9\u5f0f\uff0c\u5c06\u591a\u4e2a\u6570\u636e\u91c7\u96c6\u70b9\u7684\u6570\u636e\u5199\u5165\u4e00\u5f20\u8868\uff0c\u7531\u4e8e\u7f51\u7edc\u5ef6\u65f6\u4e0d\u53ef\u63a7\uff0c\u4e0d\u540c\u6570\u636e\u91c7\u96c6\u70b9\u7684\u6570\u636e\u5230\u8fbe\u670d\u52a1\u5668\u7684\u65f6\u5e8f\u662f\u65e0\u6cd5\u4fdd\u8bc1\u7684\uff0c\u5199\u5165\u64cd\u4f5c\u662f\u8981\u6709\u9501\u4fdd\u62a4\u7684\uff0c\u800c\u4e14\u4e00\u4e2a\u6570\u636e\u91c7\u96c6\u70b9\u7684\u6570\u636e\u662f\u96be\u4ee5\u4fdd\u8bc1\u8fde\u7eed\u5b58\u50a8\u5728\u4e00\u8d77\u7684\u3002",(0,l.yg)("strong",{parentName:"p"},"\u91c7\u7528\u4e00\u4e2a\u6570\u636e\u91c7\u96c6\u70b9\u4e00\u5f20\u8868\u7684\u65b9\u5f0f\uff0c\u80fd\u6700\u5927\u7a0b\u5ea6\u7684\u4fdd\u8bc1\u5355\u4e2a\u6570\u636e\u91c7\u96c6\u70b9\u7684\u63d2\u5165\u548c\u67e5\u8be2\u7684\u6027\u80fd\u662f\u6700\u4f18\u7684\u3002"),"\nTDengine \u5efa\u8bae\u7528\u6570\u636e\u91c7\u96c6\u70b9\u7684\u540d\u5b57\uff08\u5982\u4e0a\u8868\u4e2d\u7684 D1001\uff09\u6765\u505a\u8868\u540d\u3002\u6bcf\u4e2a\u6570\u636e\u91c7\u96c6\u70b9\u53ef\u80fd\u540c\u65f6\u91c7\u96c6\u591a\u4e2a\u91c7\u96c6\u91cf\uff08\u5982\u4e0a\u8868\u4e2d\u7684 current\uff0cvoltage\uff0cphase\uff09\uff0c\u6bcf\u4e2a\u91c7\u96c6\u91cf\u5bf9\u5e94\u4e00\u5f20\u8868\u4e2d\u7684\u4e00\u5217\uff0c\u6570\u636e\u7c7b\u578b\u53ef\u4ee5\u662f\u6574\u578b\u3001\u6d6e\u70b9\u578b\u3001\u5b57\u7b26\u4e32\u7b49\u3002\u9664\u6b64\u4e4b\u5916\uff0c\u8868\u7684\u7b2c\u4e00\u5217\u5fc5\u987b\u662f\u65f6\u95f4\u6233\uff0c\u5373\u6570\u636e\u7c7b\u578b\u4e3a timestamp\u3002\u5bf9\u91c7\u96c6\u91cf\uff0cTDengine \u5c06\u81ea\u52a8\u6309\u7167\u65f6\u95f4\u6233\u5efa\u7acb\u7d22\u5f15\uff0c\u4f46\u5bf9\u91c7\u96c6\u91cf\u672c\u8eab\u4e0d\u5efa\u4efb\u4f55\u7d22\u5f15\u3002\u6570\u636e\u7528\u5217\u5f0f\u5b58\u50a8\u65b9\u5f0f\u4fdd\u5b58\u3002\n\u5bf9\u4e8e\u590d\u6742\u7684\u8bbe\u5907\uff0c\u6bd4\u5982\u6c7d\u8f66\uff0c\u5b83\u6709\u591a\u4e2a\u6570\u636e\u91c7\u96c6\u70b9\uff0c\u90a3\u4e48\u5c31\u9700\u8981\u4e3a\u4e00\u53f0\u6c7d\u8f66\u5efa\u7acb\u591a\u5f20\u8868\u3002"),(0,l.yg)("h4",{id:"\u8d85\u7ea7\u8868-stable"},"\u8d85\u7ea7\u8868 (STable)"),(0,l.yg)("p",null,"\u7531\u4e8e\u4e00\u4e2a\u6570\u636e\u91c7\u96c6\u70b9\u4e00\u5f20\u8868\uff0c\u5bfc\u81f4\u8868\u7684\u6570\u91cf\u5de8\u589e\uff0c\u96be\u4ee5\u7ba1\u7406\uff0c\u800c\u4e14\u5e94\u7528\u7ecf\u5e38\u9700\u8981\u505a\u91c7\u96c6\u70b9\u4e4b\u95f4\u7684\u805a\u5408\u64cd\u4f5c\uff0c\u805a\u5408\u7684\u64cd\u4f5c\u4e5f\u53d8\u5f97\u590d\u6742\u8d77\u6765\u3002\u4e3a\u89e3\u51b3\u8fd9\u4e2a\u95ee\u9898\uff0cTDengine \u5f15\u5165\u8d85\u7ea7\u8868\uff08Super Table\uff0c\u7b80\u79f0\u4e3a STable\uff09\u7684\u6982\u5ff5\u3002\n\u8d85\u7ea7\u8868\u662f\u6307\u67d0\u4e00\u7279\u5b9a\u7c7b\u578b\u7684\u6570\u636e\u91c7\u96c6\u70b9\u7684\u96c6\u5408\u3002\u540c\u4e00\u7c7b\u578b\u7684\u6570\u636e\u91c7\u96c6\u70b9\uff0c\u5176\u8868\u7684\u7ed3\u6784\u662f\u5b8c\u5168\u4e00\u6837\u7684\uff0c\u4f46\u6bcf\u4e2a\u8868\uff08\u6570\u636e\u91c7\u96c6\u70b9\uff09\u7684\u9759\u6001\u5c5e\u6027\uff08\u6807\u7b7e\uff09\u662f\u4e0d\u4e00\u6837\u7684\u3002\u63cf\u8ff0\u4e00\u4e2a\u8d85\u7ea7\u8868\uff08\u67d0\u4e00\u7279\u5b9a\u7c7b\u578b\u7684\u6570\u636e\u91c7\u96c6\u70b9\u7684\u96c6\u5408\uff09\uff0c\u9664\u9700\u8981\u5b9a\u4e49\u91c7\u96c6\u91cf\u7684\u8868\u7ed3\u6784\u4e4b\u5916\uff0c\u8fd8\u9700\u8981\u5b9a\u4e49\u5176\u6807\u7b7e\u7684 schema\uff0c\u6807\u7b7e\u7684\u6570\u636e\u7c7b\u578b\u53ef\u4ee5\u662f\u6574\u6570\u3001\u6d6e\u70b9\u6570\u3001\u5b57\u7b26\u4e32\uff0c\u6807\u7b7e\u53ef\u4ee5\u6709\u591a\u4e2a\uff0c\u53ef\u4ee5\u4e8b\u540e\u589e\u52a0\u3001\u5220\u9664\u6216\u4fee\u6539\u3002\u5982\u679c\u6574\u4e2a\u7cfb\u7edf\u6709 N \u4e2a\u4e0d\u540c\u7c7b\u578b\u7684\u6570\u636e\u91c7\u96c6\u70b9\uff0c\u5c31\u9700\u8981\u5efa\u7acb N \u4e2a\u8d85\u7ea7\u8868\u3002\n\u5728 TDengine \u7684\u8bbe\u8ba1\u91cc\uff0c",(0,l.yg)("strong",{parentName:"p"},"\u8868\u7528\u6765\u4ee3\u8868\u4e00\u4e2a\u5177\u4f53\u7684\u6570\u636e\u91c7\u96c6\u70b9\uff0c\u8d85\u7ea7\u8868\u7528\u6765\u4ee3\u8868\u4e00\u7ec4\u76f8\u540c\u7c7b\u578b\u7684\u6570\u636e\u91c7\u96c6\u70b9\u96c6\u5408"),"\u3002"),(0,l.yg)("p",null,"\u8fd9\u91cc\u7684\u8d85\u7ea7\u8868\u3001\u5b50\u8868\u7684\u8bbe\u8ba1\u5f88\u6709\u610f\u601d\uff0c\u5b50\u8868\u5c31\u662f\u67d0\u4e2a\u8bbe\u5907\uff08\u865a\u62df\u7684\uff0c\u5176\u4ed6\u4e5f\u884c\uff09\uff0c\u8fd9\u4e2a\u662f\u6570\u636e\u653e\u5230\u4e00\u5757\u7684\u6700\u5c0f\u5355\u4f4d\uff0c\u8fd9\u91cc\u548c\u5176\u4ed6\u65f6\u5e8f\u6570\u636e\u5e93\u7684\u5f88\u5927\u533a\u522b\uff0c\u53ef\u6709\u6709\u6548\u5904\u7406\u201c\u8bbe\u5907\u5220\u4e86\uff0c\u6570\u636e\u8fd8\u5b58\u5728\u7684\u95ee\u9898\u201d\u3002"),(0,l.yg)("h4",{id:"\u5b50\u8868-subtable"},"\u5b50\u8868 (Subtable)"),(0,l.yg)("p",null,"\u5f53\u4e3a\u67d0\u4e2a\u5177\u4f53\u6570\u636e\u91c7\u96c6\u70b9\u521b\u5efa\u8868\u65f6\uff0c\u7528\u6237\u53ef\u4ee5\u4f7f\u7528\u8d85\u7ea7\u8868\u7684\u5b9a\u4e49\u505a\u6a21\u677f\uff0c\u540c\u65f6\u6307\u5b9a\u8be5\u5177\u4f53\u91c7\u96c6\u70b9\uff08\u8868\uff09\u7684\u5177\u4f53\u6807\u7b7e\u503c\u6765\u521b\u5efa\u8be5\u8868\u3002",(0,l.yg)("strong",{parentName:"p"},"\u901a\u8fc7\u8d85\u7ea7\u8868\u521b\u5efa\u7684\u8868\u79f0\u4e4b\u4e3a\u5b50\u8868"),"\u3002\u6b63\u5e38\u7684\u8868\u4e0e\u5b50\u8868\u7684\u5dee\u5f02\u5728\u4e8e\uff1a"),(0,l.yg)("ol",null,(0,l.yg)("li",{parentName:"ol"},"\u5b50\u8868\u5c31\u662f\u8868\uff0c\u56e0\u6b64\u6240\u6709\u6b63\u5e38\u8868\u7684 SQL \u64cd\u4f5c\u90fd\u53ef\u4ee5\u5728\u5b50\u8868\u4e0a\u6267\u884c\u3002"),(0,l.yg)("li",{parentName:"ol"},"\u5b50\u8868\u5728\u6b63\u5e38\u8868\u7684\u57fa\u7840\u4e0a\u6709\u6269\u5c55\uff0c\u5b83\u662f\u5e26\u6709\u9759\u6001\u6807\u7b7e\u7684\uff0c\u800c\u4e14\u8fd9\u4e9b\u6807\u7b7e\u53ef\u4ee5\u4e8b\u540e\u589e\u52a0\u3001\u5220\u9664\u3001\u4fee\u6539\uff0c\u800c\u6b63\u5e38\u7684\u8868\u6ca1\u6709\u3002"),(0,l.yg)("li",{parentName:"ol"},"\u5b50\u8868\u4e00\u5b9a\u5c5e\u4e8e\u4e00\u5f20\u8d85\u7ea7\u8868\uff0c\u4f46\u666e\u901a\u8868\u4e0d\u5c5e\u4e8e\u4efb\u4f55\u8d85\u7ea7\u8868"),(0,l.yg)("li",{parentName:"ol"},"\u666e\u901a\u8868\u65e0\u6cd5\u8f6c\u4e3a\u5b50\u8868\uff0c\u5b50\u8868\u4e5f\u65e0\u6cd5\u8f6c\u4e3a\u666e\u901a\u8868\u3002")),(0,l.yg)("p",null,"\u8d85\u7ea7\u8868\u4e0e\u4e0e\u57fa\u4e8e\u8d85\u7ea7\u8868\u5efa\u7acb\u7684\u5b50\u8868\u4e4b\u95f4\u7684\u5173\u7cfb\u8868\u73b0\u5728\uff1a"),(0,l.yg)("ol",null,(0,l.yg)("li",{parentName:"ol"},"\u4e00\u5f20\u8d85\u7ea7\u8868\u5305\u542b\u6709\u591a\u5f20\u5b50\u8868\uff0c\u8fd9\u4e9b\u5b50\u8868\u5177\u6709\u76f8\u540c\u7684\u91c7\u96c6\u91cf schema\uff0c\u4f46\u5e26\u6709\u4e0d\u540c\u7684\u6807\u7b7e\u503c\u3002"),(0,l.yg)("li",{parentName:"ol"},"\u4e0d\u80fd\u901a\u8fc7\u5b50\u8868\u8c03\u6574\u6570\u636e\u6216\u6807\u7b7e\u7684\u6a21\u5f0f\uff0c\u5bf9\u4e8e\u8d85\u7ea7\u8868\u7684\u6570\u636e\u6a21\u5f0f\u4fee\u6539\u7acb\u5373\u5bf9\u6240\u6709\u7684\u5b50\u8868\u751f\u6548\u3002"),(0,l.yg)("li",{parentName:"ol"},"\u8d85\u7ea7\u8868\u53ea\u5b9a\u4e49\u4e00\u4e2a\u6a21\u677f\uff0c\u81ea\u8eab\u4e0d\u5b58\u50a8\u4efb\u4f55\u6570\u636e\u6216\u6807\u7b7e\u4fe1\u606f\u3002\u56e0\u6b64\uff0c\u4e0d\u80fd\u5411\u4e00\u4e2a\u8d85\u7ea7\u8868\u5199\u5165\u6570\u636e\uff0c\u53ea\u80fd\u5c06\u6570\u636e\u5199\u5165\u5b50\u8868\u4e2d\u3002")),(0,l.yg)("p",null,"\u67e5\u8be2\u65e2\u53ef\u4ee5\u5728\u8868\u4e0a\u8fdb\u884c\uff0c\u4e5f\u53ef\u4ee5\u5728\u8d85\u7ea7\u8868\u4e0a\u8fdb\u884c\u3002\u9488\u5bf9\u8d85\u7ea7\u8868\u7684\u67e5\u8be2\uff0cTDengine \u5c06\u628a\u6240\u6709\u5b50\u8868\u4e2d\u7684\u6570\u636e\u89c6\u4e3a\u4e00\u4e2a\u6574\u4f53\u6570\u636e\u96c6\u8fdb\u884c\u5904\u7406\uff0c\u4f1a\u5148\u628a\u6ee1\u8db3\u6807\u7b7e\u8fc7\u6ee4\u6761\u4ef6\u7684\u8868\u4ece\u8d85\u7ea7\u8868\u4e2d\u627e\u51fa\u6765\uff0c\u7136\u540e\u518d\u626b\u63cf\u8fd9\u4e9b\u8868\u7684\u65f6\u5e8f\u6570\u636e\uff0c\u8fdb\u884c\u805a\u5408\u64cd\u4f5c\uff0c\u8fd9\u6837\u9700\u8981\u626b\u63cf\u7684\u6570\u636e\u96c6\u4f1a\u5927\u5e45\u51cf\u5c11\uff0c\u4ece\u800c\u663e\u8457\u63d0\u9ad8\u67e5\u8be2\u7684\u6027\u80fd\u3002\u672c\u8d28\u4e0a\uff0cTDengine \u901a\u8fc7\u5bf9\u8d85\u7ea7\u8868\u67e5\u8be2\u7684\u652f\u6301\uff0c\u5b9e\u73b0\u4e86\u591a\u4e2a\u540c\u7c7b\u6570\u636e\u91c7\u96c6\u70b9\u7684\u9ad8\u6548\u805a\u5408\u3002\nTDengine \u7cfb\u7edf\u5efa\u8bae\u7ed9\u4e00\u4e2a\u6570\u636e\u91c7\u96c6\u70b9\u5efa\u8868\uff0c\u9700\u8981\u901a\u8fc7\u8d85\u7ea7\u8868\u5efa\u8868\uff0c\u800c\u4e0d\u662f\u5efa\u666e\u901a\u8868\u3002"),(0,l.yg)("h4",{id:"\u5e93-database"},"\u5e93 (database)"),(0,l.yg)("p",null,"\u5e93\u662f\u6307\u4e00\u7ec4\u8868\u7684\u96c6\u5408\u3002TDengine \u5bb9\u8bb8\u4e00\u4e2a\u8fd0\u884c\u5b9e\u4f8b\u6709\u591a\u4e2a\u5e93\uff0c\u800c\u4e14\u6bcf\u4e2a\u5e93\u53ef\u4ee5\u914d\u7f6e\u4e0d\u540c\u7684\u5b58\u50a8\u7b56\u7565\u3002\u4e0d\u540c\u7c7b\u578b\u7684\u6570\u636e\u91c7\u96c6\u70b9\u5f80\u5f80\u5177\u6709\u4e0d\u540c\u7684\u6570\u636e\u7279\u5f81\uff0c\u5305\u62ec\u6570\u636e\u91c7\u96c6\u9891\u7387\u7684\u9ad8\u4f4e\uff0c\u6570\u636e\u4fdd\u7559\u65f6\u95f4\u7684\u957f\u77ed\uff0c\u526f\u672c\u7684\u6570\u76ee\uff0c\u6570\u636e\u5757\u7684\u5927\u5c0f\uff0c\u662f\u5426\u5141\u8bb8\u66f4\u65b0\u6570\u636e\u7b49\u7b49\u3002\u4e3a\u4e86\u5728\u5404\u79cd\u573a\u666f\u4e0b TDengine \u90fd\u80fd\u6700\u5927\u6548\u7387\u7684\u5de5\u4f5c\uff0cTDengine \u5efa\u8bae\u5c06\u4e0d\u540c\u6570\u636e\u7279\u5f81\u7684\u8d85\u7ea7\u8868\u521b\u5efa\u5728\u4e0d\u540c\u7684\u5e93\u91cc\u3002"),(0,l.yg)("p",null,"\u4e00\u4e2a\u5e93\u91cc\uff0c\u53ef\u4ee5\u6709\u4e00\u5230\u591a\u4e2a\u8d85\u7ea7\u8868\uff0c\u4f46\u4e00\u4e2a\u8d85\u7ea7\u8868\u53ea\u5c5e\u4e8e\u4e00\u4e2a\u5e93\u3002\u4e00\u4e2a\u8d85\u7ea7\u8868\u6240\u62e5\u6709\u7684\u5b50\u8868\u5168\u90e8\u5b58\u5728\u4e00\u4e2a\u5e93\u91cc\u3002"),(0,l.yg)("p",null,"\u8fd9\u91cc\u4e00\u5b9a\u8981\u6ce8\u610f\uff0c\u6211\u4eec\u5728\u8bbe\u8ba1\u5e93\u7684\u65f6\u5019\uff0c\u4e00\u5b9a\u8981\u6839\u636e\u6570\u636e\u7684\u60c5\u51b5\u6765\uff0c\u4f8b\u5982\u4e0a\u4e0b\u7ebf\u6d88\u606f\u548c\u8bbe\u5907\u5386\u53f2\u6570\u636e\u5e94\u8be5\u5206\u4e24\u4e2a\u5e93\uff0c\u56e0\u4e3a\u4ed6\u4eec\u7684\u6570\u636e\u4fdd\u7559\u65f6\u95f4\u4e0d\u540c\uff0c\u8bbe\u5907\u4e0a\u4e0b\u7ebf\u6d88\u606f\u5b58 1 \u5e74\u5c31\u5f88\u591a\u4e86\uff0c\u8bbe\u5907\u5386\u53f2\u6570\u636e\u53ef\u80fd\u9700\u8981\u5b58 5 \u5e74\u4ee5\u4e0a\u3002"),(0,l.yg)("h3",{id:"\u51c6\u5907\u6570\u636e"},"\u51c6\u5907\u6570\u636e"),(0,l.yg)("p",null,"\u7ed3\u5408\u4e0a\u9762\u7684\u6982\u5ff5\u4ee5\u53ca SQL \u8bed\u6cd5\u53ef\u4ee5\u521b\u5efa\u8868\u505a\u538b\u6d4b\u4e86\uff0cSQL \u662f\u53c2\u8003\u76ee\u524d influxdb \u5b58\u50a8\u7684\u5386\u53f2\u6570\u636e\u6765\u7684\u3002"),(0,l.yg)("pre",null,(0,l.yg)("code",{parentName:"pre",className:"language-sql"},'# \u4fdd\u5b5810\u5e74 1\u4e2a\u526f\u672c\ncreate database ucloud keep 3650 REPLICA 2;\nuse ucloud;\n\n#\u521b\u5efa\u8d85\u7ea7\u8868\ncreate stable datapoint_record(ts timestamp,value double,StringValue NCHAR(128),DataType NCHAR(10),StorageFlag int)\n tags(DeviceId NCHAR(32),DataPointId int,SlaveIndex int);\n#\u63d2\u5165\u6d4b\u8bd5\u6570\u636e\ninsert into D00500221122700004100_1_1 using datapoint_record\ntags(00500221122700004100,1,1)\nvalues(now(),1,"1","ushort",1);\ninsert into D00500221122700004100_1_2 using datapoint_record\ntags(00500221122700004100,1,2)\nvalues(now(),1,"1","ushort",1);\n#\u67e5\u8be2\nselect * from datapoint_record;\n\n')),(0,l.yg)("p",null,"\u6700\u91cd\u70b9\u7684\u5176\u5b9e\u662f\u8868\u7ed3\u6784\u7684\u8bbe\u8ba1\u4e86\uff0c\u7ed3\u5408\u6211\u4eec\u7684\u4e1a\u52a1\uff0c\u6211\u4eec\u5e73\u53f0\u7684\u201c\u91c7\u96c6\u91cf\u201d\u662f\u914d\u7f6e\u51fa\u6765\uff0c\u6240\u4ee5\u91c7\u96c6\u91cf\u662f\u4e0d\u56fa\u5b9a\u7684\uff0c\u7528\u6237\u4f1a\u6839\u636e\u81ea\u5df1\u7684\u4e8b\u60c5\u60c5\u51b5\u52a8\u6001\u7684\u589e\u5220\u3002\u6240\u4ee5\u6211\u4eec\u7684\u5b50\u8868\u53ea\u80fd\u6709\u4e00\u4e2a\u91c7\u96c6\u91cf\uff0c\u8fd9\u4e2a\u662f\u5173\u952e\u3002"),(0,l.yg)("p",null,"\u6211\u4eec\u76ee\u524d\u7528\u7684\u65f6\u5e8f\u6570\u636e\u5e93\u662f InfluxDB\uff0c\u6240\u4ee5\u9700\u8981\u6709\u4e2a\u4e2d\u95f4\u4ef6\uff0c\u8f6f\u5b9e\u65f6\u540c\u6b65\u5230 TDengine\u3002\u5b9e\u73b0\u601d\u8def\u4e3a\uff1a"),(0,l.yg)("ol",null,(0,l.yg)("li",{parentName:"ol"},"\u5b9a\u65f6\u6bcf\u5206\u949f\uff1b"),(0,l.yg)("li",{parentName:"ol"},"\u5bfc\u51fa InfluxDB \u6570\u636e\uff0c\u4e00\u5206\u949f\u7684\uff1b"),(0,l.yg)("li",{parentName:"ol"},"\u8bfb\u53d6\u8fd9\u4e2a\u5bfc\u51fa\u6587\u4ef6\uff0c\u5e76\u63d2\u5165\u5230 TDengine \u4e2d\uff1b")),(0,l.yg)("h3",{id:"\u538b\u6d4b"},"\u538b\u6d4b"),(0,l.yg)("p",null,"\u81ea\u5e26 taosBenchmark \u6027\u80fd\u6d4b\u8bd5\u5de5\u5177\uff0c\u53ef\u4ee5\u4f7f\u7528\u3002"),(0,l.yg)("p",null,"\u65e0\u547d\u4ee4\u884c\u53c2\u6570\u76f4\u63a5\u8fd0\u884c taosBenchmark\uff0c\u56de\u8f66\u76f4\u63a5\u6267\u884c\uff0c\u9ed8\u8ba4\u5728 TDengine \u4e2d\u521b\u5efa\u4e00\u4e2a\u540d\u4e3a test \u7684\u6570\u636e\u5e93\uff0ctest \u6570\u636e\u5e93\u4e0b\u521b\u5efa\u540d\u4e3a meters \u7684\u4e00\u5f20\u8d85\u7ea7\u8868\uff0c\u8d85\u7ea7\u8868\u4e0b\u521b\u5efa 10000 \u5f20\u8868\uff0c\u6bcf\u5f20\u8868\u4e2d\u5199\u5165 10000 \u6761\u8bb0\u5f55\u3002"),(0,l.yg)("p",null,(0,l.yg)("img",{alt:"image.png",src:t(8123).A,width:"1435",height:"48"}),"\n1w \u5f20\u8868\u7528\u4e86\u63a5\u8fd1 4 \u5206\u949f\u521b\u5efa\u5b8c\u6210\uff0c\u5f53\u7136\u4e86\u548c\u6d4b\u8bd5\u670d\u52a1\u5668\u7684\u673a\u68b0\u786c\u76d8\u5e94\u8be5\u6709\u5f88\u5927\u5173\u7cfb\uff1b"),(0,l.yg)("p",null,(0,l.yg)("img",{alt:"image.png",src:t(3906).A,width:"1237",height:"58"}),"\n\u63d2\u5165 1 \u4ebf\u8c03\u6570\u636e\u7528\u4e86 18 \u79d2\uff0c\u5f53\u7136\u4e86\u548c\u6d4b\u8bd5\u670d\u52a1\u5668\u7684\u673a\u68b0\u786c\u76d8\u5e94\u8be5\u6709\u5f88\u5927\u5173\u7cfb\uff1b"),(0,l.yg)("h3",{id:"\u5751\u70b9\u6c47\u603b"},"\u5751\u70b9\u6c47\u603b"),(0,l.yg)("ol",null,(0,l.yg)("li",{parentName:"ol"},"\u793e\u533a\u7248\u672c\u4e0d\u652f\u6301\u201c\u5220\u9664\u6307\u5b9a\u65f6\u95f4\u8303\u56f4\u7684\u6570\u636e\u201d\u7684\u529f\u80fd\uff0c\u4f01\u4e1a\u7248\u624d\u652f\u6301\uff0c\u4f46\u662f\u6709\u4e9b\u7279\u6b8a\u60c5\u51b5\u8fd8\u662f\u9700\u8981\u5220\u9664\u6570\u636e\u7684\uff0c\u53ef\u4ee5\u901a\u8fc7\u589e\u52a0\u201c\u5220\u9664\u6807\u8bb0\u5b57\u6bb5\u201d\u6765\u8fc2\u56de\u5904\u7406\u8fd9\u4e2a\u95ee\u9898\u3002"),(0,l.yg)("li",{parentName:"ol"},"\u793e\u533a\u7248\u672c\u4e0d\u652f\u6301\u201cUAF\u201d\uff0c\u4e5f\u5c31\u662f\u7528\u6237\u81ea\u5b9a\u4e49\u51fd\u6570\uff0c\u67d0\u4e9b\u7279\u6b8a\u805a\u5408\u6216\u8ba1\u7b97\u7b97\u6cd5\u65e0\u6cd5\u505a\u5230\uff0c\u4e0d\u8fc7\u793e\u533a\u7248\u672c\u63d0\u4f9b\u7684\u5df2\u7ecf\u662f\u7edd\u5bf9\u90e8\u5206\u4e86\u3002"),(0,l.yg)("li",{parentName:"ol"},"java client \u4f7f\u7528 RS \u600e\u4e48\u4e5f\u8fde\u63a5\u4e0d\u4e0a\uff0c\u540e\u6765\u53d1\u73b0\u662f\u670d\u52a1\u7aef\u6ca1\u6709\u542f\u52a8 taosadapter\uff0c\u4f7f\u7528\u547d\u4ee4 systemctl start taosadapter \u542f\u52a8\u540e\uff0cjava client \u5c31\u53ef\u4ee5\u6b63\u5e38\u8fde\u63a5\u4e86\u3002")),(0,l.yg)("h3",{id:"\u9644\u5f55"},"\u9644\u5f55"),(0,l.yg)("h4",{id:"\u5f00\u6e90\u534f\u8bae\u8bf4\u660e"},"\u5f00\u6e90\u534f\u8bae\u8bf4\u660e"),(0,l.yg)("p",null,(0,l.yg)("img",{alt:"image.png",src:t(6413).A,width:"750",height:"454"})))}u.isMDXComponent=!0},9792:(e,n,t)=>{t.d(n,{A:()=>a});const a=t.p+"assets/images/1-86f297ccfad12004e3b4a982a06dbdb1.png"},8123:(e,n,t)=>{t.d(n,{A:()=>a});const a=t.p+"assets/images/2-c10305180fd1dff6eef758f70d21f175.png"},3906:(e,n,t)=>{t.d(n,{A:()=>a});const a=t.p+"assets/images/3-e91119dc93e175c318646768f42457a1.png"},6413:(e,n,t)=>{t.d(n,{A:()=>a});const a=t.p+"assets/images/4-708f8212de488f91684592cc80775af3.png"}}]); \ No newline at end of file diff --git a/assets/js/39e40f36.b987af38.js b/assets/js/39e40f36.2c84fe7e.js similarity index 98% rename from assets/js/39e40f36.b987af38.js rename to assets/js/39e40f36.2c84fe7e.js index f8d6e3781..21744f0a7 100644 --- a/assets/js/39e40f36.b987af38.js +++ b/assets/js/39e40f36.2c84fe7e.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9253],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>m});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var c=n.createContext({}),u=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},p=function(e){var t=u(e.components);return n.createElement(c.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),s=u(r),y=a,m=s["".concat(c,".").concat(y)]||s[y]||d[y]||o;return r?n.createElement(m,l(l({ref:t},p),{},{components:r})):n.createElement(m,l({ref:t},p))}));function m(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,l=new Array(o);l[0]=y;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[s]="string"==typeof e?e:a,l[1]=i;for(var u=2;u{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>d,frontMatter:()=>o,metadata:()=>i,toc:()=>u});var n=r(8168),a=(r(6540),r(5680));const o={},l="Dart \u5b66\u4e60\u8d44\u6599",i={unversionedId:"study/program/Dart/\u5b66\u4e60\u8d44\u6599",id:"study/program/Dart/\u5b66\u4e60\u8d44\u6599",title:"Dart \u5b66\u4e60\u8d44\u6599",description:"\u7279\u70b9",source:"@site/docs/study/program/Dart/\u5b66\u4e60\u8d44\u6599.md",sourceDirName:"study/program/Dart",slug:"/study/program/Dart/\u5b66\u4e60\u8d44\u6599",permalink:"/docs/study/program/Dart/\u5b66\u4e60\u8d44\u6599",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Flutter",permalink:"/docs/study/program/Dart/Flutter"},next:{title:"dataX",permalink:"/docs/study/program/ETL/dataX"}},c={},u=[{value:"\u7279\u70b9",id:"\u7279\u70b9",level:3},{value:"\u5b98\u65b9\u6587\u6863",id:"\u5b98\u65b9\u6587\u6863",level:3}],p={toc:u},s="wrapper";function d(e){let{components:t,...r}=e;return(0,a.yg)(s,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"dart-\u5b66\u4e60\u8d44\u6599"},"Dart \u5b66\u4e60\u8d44\u6599"),(0,a.yg)("h3",{id:"\u7279\u70b9"},"\u7279\u70b9"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u9488\u5bf9\u5ba2\u6237\u7aef\u4f18\u5316\uff0c\u4e9a\u79d2\u7ea7\u7684\u72b6\u6001\u70ed\u91cd\u8f7d"),(0,a.yg)("li",{parentName:"ul"},"\u4f18\u5148\u8003\u8651\u591a\u5e73\u53f0 (Web\uff0c\u79fb\u52a8\u7aef\u548c\u684c\u9762\u7aef)"),(0,a.yg)("li",{parentName:"ul"},"Dart \u4e5f\u662f Flutter \u7684\u57fa\u7840"),(0,a.yg)("li",{parentName:"ul"},"\u9759\u6001\u7c7b\u578b\uff0c\u4f46\u652f\u6301\u7c7b\u578b\u63a8\u65ad"),(0,a.yg)("li",{parentName:"ul"},"\u9488\u5bf9\u9762\u5411\u79fb\u52a8\u548c\u684c\u9762\u8bbe\u5907\u7684\u5e94\u7528\u7a0b\u5e8f\uff0c Dart \u62e5\u6709\u5177\u6709\u5b9e\u65f6 (JIT) \u7f16\u8bd1\u529f\u80fd\u7684 Dart VM \u548c\u7528\u4e8e\u751f\u6210\u673a\u5668\u4ee3\u7801\u7684\u63d0\u524d (AOT) \u7f16\u8bd1\u5668\u3002")),(0,a.yg)("h3",{id:"\u5b98\u65b9\u6587\u6863"},"\u5b98\u65b9\u6587\u6863"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://dart.cn/overview"},"dart.cn \u6587\u6863"))))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9253],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>m});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var c=n.createContext({}),u=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},p=function(e){var t=u(e.components);return n.createElement(c.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),s=u(r),y=a,m=s["".concat(c,".").concat(y)]||s[y]||d[y]||o;return r?n.createElement(m,l(l({ref:t},p),{},{components:r})):n.createElement(m,l({ref:t},p))}));function m(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,l=new Array(o);l[0]=y;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[s]="string"==typeof e?e:a,l[1]=i;for(var u=2;u{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>d,frontMatter:()=>o,metadata:()=>i,toc:()=>u});var n=r(8168),a=(r(6540),r(5680));const o={},l="Dart \u5b66\u4e60\u8d44\u6599",i={unversionedId:"study/program/Dart/\u5b66\u4e60\u8d44\u6599",id:"study/program/Dart/\u5b66\u4e60\u8d44\u6599",title:"Dart \u5b66\u4e60\u8d44\u6599",description:"\u7279\u70b9",source:"@site/docs/study/program/Dart/\u5b66\u4e60\u8d44\u6599.md",sourceDirName:"study/program/Dart",slug:"/study/program/Dart/\u5b66\u4e60\u8d44\u6599",permalink:"/docs/study/program/Dart/\u5b66\u4e60\u8d44\u6599",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Flutter",permalink:"/docs/study/program/Dart/Flutter"},next:{title:"dataX",permalink:"/docs/study/program/ETL/dataX"}},c={},u=[{value:"\u7279\u70b9",id:"\u7279\u70b9",level:3},{value:"\u5b98\u65b9\u6587\u6863",id:"\u5b98\u65b9\u6587\u6863",level:3}],p={toc:u},s="wrapper";function d(e){let{components:t,...r}=e;return(0,a.yg)(s,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"dart-\u5b66\u4e60\u8d44\u6599"},"Dart \u5b66\u4e60\u8d44\u6599"),(0,a.yg)("h3",{id:"\u7279\u70b9"},"\u7279\u70b9"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u9488\u5bf9\u5ba2\u6237\u7aef\u4f18\u5316\uff0c\u4e9a\u79d2\u7ea7\u7684\u72b6\u6001\u70ed\u91cd\u8f7d"),(0,a.yg)("li",{parentName:"ul"},"\u4f18\u5148\u8003\u8651\u591a\u5e73\u53f0 (Web\uff0c\u79fb\u52a8\u7aef\u548c\u684c\u9762\u7aef)"),(0,a.yg)("li",{parentName:"ul"},"Dart \u4e5f\u662f Flutter \u7684\u57fa\u7840"),(0,a.yg)("li",{parentName:"ul"},"\u9759\u6001\u7c7b\u578b\uff0c\u4f46\u652f\u6301\u7c7b\u578b\u63a8\u65ad"),(0,a.yg)("li",{parentName:"ul"},"\u9488\u5bf9\u9762\u5411\u79fb\u52a8\u548c\u684c\u9762\u8bbe\u5907\u7684\u5e94\u7528\u7a0b\u5e8f\uff0c Dart \u62e5\u6709\u5177\u6709\u5b9e\u65f6 (JIT) \u7f16\u8bd1\u529f\u80fd\u7684 Dart VM \u548c\u7528\u4e8e\u751f\u6210\u673a\u5668\u4ee3\u7801\u7684\u63d0\u524d (AOT) \u7f16\u8bd1\u5668\u3002")),(0,a.yg)("h3",{id:"\u5b98\u65b9\u6587\u6863"},"\u5b98\u65b9\u6587\u6863"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://dart.cn/overview"},"dart.cn \u6587\u6863"))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/3b2c25df.a15be0dc.js b/assets/js/3b2c25df.df1cf6a3.js similarity index 99% rename from assets/js/3b2c25df.a15be0dc.js rename to assets/js/3b2c25df.df1cf6a3.js index bb3ca4796..06b932842 100644 --- a/assets/js/3b2c25df.a15be0dc.js +++ b/assets/js/3b2c25df.df1cf6a3.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[496],{5680:(e,t,r)=>{r.d(t,{xA:()=>y,yg:()=>m});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var i=n.createContext({}),u=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},y=function(e){var t=u(e.components);return n.createElement(i.Provider,{value:t},e.children)},s="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,l=e.originalType,i=e.parentName,y=o(e,["components","mdxType","originalType","parentName"]),s=u(r),d=a,m=s["".concat(i,".").concat(d)]||s[d]||p[d]||l;return r?n.createElement(m,c(c({ref:t},y),{},{components:r})):n.createElement(m,c({ref:t},y))}));function m(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=r.length,c=new Array(l);c[0]=d;var o={};for(var i in t)hasOwnProperty.call(t,i)&&(o[i]=t[i]);o.originalType=e,o[s]="string"==typeof e?e:a,c[1]=o;for(var u=2;u{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>c,default:()=>p,frontMatter:()=>l,metadata:()=>o,toc:()=>u});var n=r(8168),a=(r(6540),r(5680));const l={},c="MySQL \u7b14\u8bb0",o={unversionedId:"study/db/SQL/MySQL-\u7b14\u8bb0",id:"study/db/SQL/MySQL-\u7b14\u8bb0",title:"MySQL \u7b14\u8bb0",description:"WITH \u67e5\u8be2",source:"@site/docs/study/db/SQL/MySQL-\u7b14\u8bb0.md",sourceDirName:"study/db/SQL",slug:"/study/db/SQL/MySQL-\u7b14\u8bb0",permalink:"/docs/study/db/SQL/MySQL-\u7b14\u8bb0",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"MariaDB",permalink:"/docs/study/db/SQL/MariaDB"},next:{title:"MySQL",permalink:"/docs/study/db/SQL/MySQL"}},i={},u=[{value:"WITH \u67e5\u8be2",id:"with-\u67e5\u8be2",level:3},{value:"\u9012\u5f52\u5171\u7528\u8868\u8fbe\u5f0f with recursive",id:"\u9012\u5f52\u5171\u7528\u8868\u8fbe\u5f0f-with-recursive",level:3},{value:"\u53c2\u8003\u6587\u6863",id:"\u53c2\u8003\u6587\u6863",level:3}],y={toc:u},s="wrapper";function p(e){let{components:t,...r}=e;return(0,a.yg)(s,(0,n.A)({},y,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"mysql-\u7b14\u8bb0"},"MySQL \u7b14\u8bb0"),(0,a.yg)("h3",{id:"with-\u67e5\u8be2"},"WITH \u67e5\u8be2"),(0,a.yg)("p",null,"MySQL \u8bed\u53e5 WITH \u662f MySQL 8.0 \u4e2d\u7684\u4e00\u4e2a\u65b0\u7279\u6027\uff0c\u7528\u4e8e\u5e2e\u52a9\u7b80\u5316\u590d\u6742\u67e5\u8be2\u4ee5\u53ca\u63d0\u9ad8\u67e5\u8be2\u6548\u7387\u3002\u5728\u5927\u591a\u6570\u60c5\u51b5\u4e0b\uff0c\u67e5\u8be2\u90fd\u9700\u8981\u591a\u6b21\u5d4c\u5957\u4f7f\u7528\uff0c\u8fd9\u5bfc\u81f4\u67e5\u8be2\u8bed\u53e5\u5199\u5f97\u5f88\u957f\u4e14\u96be\u4ee5\u7ef4\u62a4\u3002WITH \u8bed\u53e5\u5c31\u662f\u7528\u6765\u89e3\u51b3\u8fd9\u4e2a\u95ee\u9898\u7684\uff0c\u5b83\u662f\u4e00\u79cd\u4e34\u65f6\u8868\u7684\u65b9\u5f0f\uff0c\u5f97\u5230\u7684\u7ed3\u679c\u96c6\u53ef\u4ee5\u4f5c\u4e3a\u67e5\u8be2\u7684\u7ed3\u679c\u96c6\u3002\u5728 WITH \u8bed\u53e5\u4e2d\uff0c\u53ef\u4ee5\u5b9a\u4e49\u591a\u4e2a\u522b\u540d\uff0c\u7136\u540e\u5d4c\u5957\u4f7f\u7528\u3002"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sql"},"WITH t1 AS (\n SELECT col1 FROM table1\n),\nt2 as (\n SELECT col1 FROM table2\n)\n--\u4f7f\u7528\nSELECT * FROM t1 INNER JOIN t2 ON t1.col1 = t2.col1;\n")),(0,a.yg)("p",null,"\u5728\u8fd9\u4e2a\u4f8b\u5b50\u4e2d\uff0c\u6211\u4eec\u5b9a\u4e49\u4e86\u4e24\u5f20\u8868\uff0ct1 \u548c t2\uff0c\u7136\u540e\u4f7f\u7528\u4e86\u8fd9\u4e24\u5f20\u8868\u6765\u8fdb\u884c\u67e5\u8be2\uff0c\u8fd9\u6837\u6211\u4eec\u5c31\u53ef\u4ee5\u907f\u514d\u5728\u67e5\u8be2\u8bed\u53e5\u4e2d\u591a\u6b21\u5d4c\u5957\u4f7f\u7528\u76f8\u540c\u7684\u5b50\u67e5\u8be2\uff0c\u5e76\u4e14\u4e5f\u4e0d\u9700\u8981\u4e3a\u6bcf\u4e2a\u67e5\u8be2\u5b9a\u4e49\u4e00\u4e2a\u4e34\u65f6\u8868\u3002"),(0,a.yg)("p",null,"with \u7279\u6027\uff1a"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"with \u5176\u5b9e\u5c31\u662f\u4e00\u4e2a\u5b50\u67e5\u8be2\u62bd\u53d6\u51fa\u6765\uff0c\u6362\u4e86\u4e00\u4e2a\u522b\u540d"),(0,a.yg)("li",{parentName:"ul"},"\u548c\u89c6\u56fe\u7684\u533a\u522b\uff1awith as \u7b49\u540c\u4e8e\u4e00\u6b21\u6027\u89c6\u56fe\uff0c\u53ea\u4f1a\u6301\u7eed\u5230\u4e0b\u4e00\u4e2a\u67e5\u8be2\u3002\u5728\u4e4b\u540e\u5c31\u4e0d\u80fd\u518d\u88ab\u5f15\u7528"),(0,a.yg)("li",{parentName:"ul"},"\u4e3b\u8981\u7528\u4e8e\u7b80\u5316\u590d\u6742\u7684 \u6570\u636e\u96c6 \u548c \u9012\u5f52")),(0,a.yg)("p",null,"\u5176\u5b9e WITH \u8868\u8fbe\u5f0f\u9664\u4e86\u548c SELECT \u4e00\u8d77\u7528\uff0c \u8fd8\u53ef\u4ee5\u6709\u4e0b\u9762\u7684\u7ec4\u5408\uff1a"),(0,a.yg)("p",null,"insert with \u3001with update\u3001with delete\u3001with with\u3001with recursive(\u53ef\u4ee5\u6a21\u62df\u6570\u5b57\u3001\u65e5\u671f\u7b49\u5e8f\u5217)\u3001WITH \u53ef\u4ee5\u5b9a\u4e49\u591a\u5f20\u8868"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sql"},"with_clause:\n WITH [RECURSIVE]\n cte_name [(col_name [, col_name] ...)] AS (subquery)\n [, cte_name [(col_name [, col_name] ...)] AS (subquery)] ...\n")),(0,a.yg)("h3",{id:"\u9012\u5f52\u5171\u7528\u8868\u8fbe\u5f0f-with-recursive"},"\u9012\u5f52\u5171\u7528\u8868\u8fbe\u5f0f with recursive"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sql"},"WITH RECURSIVE cte (n) AS\n(\n SELECT 1\n UNION ALL\n SELECT n + 1 FROM cte WHERE n < 5\n)\nSELECT * FROM cte;\n")),(0,a.yg)("h3",{id:"\u53c2\u8003\u6587\u6863"},"\u53c2\u8003\u6587\u6863"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://halo.sherlocky.com/archives/mysql-8-cte"},"MySQL 8.0 with \u8bed\u6cd5(cte)")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://dev.mysql.com/doc/refman/8.0/en/preface.html"},"MySQL 8.0 \u5b98\u65b9\u6587\u6863"))))}p.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[496],{5680:(e,t,r)=>{r.d(t,{xA:()=>y,yg:()=>m});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var i=n.createContext({}),u=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},y=function(e){var t=u(e.components);return n.createElement(i.Provider,{value:t},e.children)},s="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,l=e.originalType,i=e.parentName,y=o(e,["components","mdxType","originalType","parentName"]),s=u(r),d=a,m=s["".concat(i,".").concat(d)]||s[d]||p[d]||l;return r?n.createElement(m,c(c({ref:t},y),{},{components:r})):n.createElement(m,c({ref:t},y))}));function m(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=r.length,c=new Array(l);c[0]=d;var o={};for(var i in t)hasOwnProperty.call(t,i)&&(o[i]=t[i]);o.originalType=e,o[s]="string"==typeof e?e:a,c[1]=o;for(var u=2;u{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>c,default:()=>p,frontMatter:()=>l,metadata:()=>o,toc:()=>u});var n=r(8168),a=(r(6540),r(5680));const l={},c="MySQL \u7b14\u8bb0",o={unversionedId:"study/db/SQL/MySQL-\u7b14\u8bb0",id:"study/db/SQL/MySQL-\u7b14\u8bb0",title:"MySQL \u7b14\u8bb0",description:"WITH \u67e5\u8be2",source:"@site/docs/study/db/SQL/MySQL-\u7b14\u8bb0.md",sourceDirName:"study/db/SQL",slug:"/study/db/SQL/MySQL-\u7b14\u8bb0",permalink:"/docs/study/db/SQL/MySQL-\u7b14\u8bb0",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"MariaDB",permalink:"/docs/study/db/SQL/MariaDB"},next:{title:"MySQL",permalink:"/docs/study/db/SQL/MySQL"}},i={},u=[{value:"WITH \u67e5\u8be2",id:"with-\u67e5\u8be2",level:3},{value:"\u9012\u5f52\u5171\u7528\u8868\u8fbe\u5f0f with recursive",id:"\u9012\u5f52\u5171\u7528\u8868\u8fbe\u5f0f-with-recursive",level:3},{value:"\u53c2\u8003\u6587\u6863",id:"\u53c2\u8003\u6587\u6863",level:3}],y={toc:u},s="wrapper";function p(e){let{components:t,...r}=e;return(0,a.yg)(s,(0,n.A)({},y,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"mysql-\u7b14\u8bb0"},"MySQL \u7b14\u8bb0"),(0,a.yg)("h3",{id:"with-\u67e5\u8be2"},"WITH \u67e5\u8be2"),(0,a.yg)("p",null,"MySQL \u8bed\u53e5 WITH \u662f MySQL 8.0 \u4e2d\u7684\u4e00\u4e2a\u65b0\u7279\u6027\uff0c\u7528\u4e8e\u5e2e\u52a9\u7b80\u5316\u590d\u6742\u67e5\u8be2\u4ee5\u53ca\u63d0\u9ad8\u67e5\u8be2\u6548\u7387\u3002\u5728\u5927\u591a\u6570\u60c5\u51b5\u4e0b\uff0c\u67e5\u8be2\u90fd\u9700\u8981\u591a\u6b21\u5d4c\u5957\u4f7f\u7528\uff0c\u8fd9\u5bfc\u81f4\u67e5\u8be2\u8bed\u53e5\u5199\u5f97\u5f88\u957f\u4e14\u96be\u4ee5\u7ef4\u62a4\u3002WITH \u8bed\u53e5\u5c31\u662f\u7528\u6765\u89e3\u51b3\u8fd9\u4e2a\u95ee\u9898\u7684\uff0c\u5b83\u662f\u4e00\u79cd\u4e34\u65f6\u8868\u7684\u65b9\u5f0f\uff0c\u5f97\u5230\u7684\u7ed3\u679c\u96c6\u53ef\u4ee5\u4f5c\u4e3a\u67e5\u8be2\u7684\u7ed3\u679c\u96c6\u3002\u5728 WITH \u8bed\u53e5\u4e2d\uff0c\u53ef\u4ee5\u5b9a\u4e49\u591a\u4e2a\u522b\u540d\uff0c\u7136\u540e\u5d4c\u5957\u4f7f\u7528\u3002"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sql"},"WITH t1 AS (\n SELECT col1 FROM table1\n),\nt2 as (\n SELECT col1 FROM table2\n)\n--\u4f7f\u7528\nSELECT * FROM t1 INNER JOIN t2 ON t1.col1 = t2.col1;\n")),(0,a.yg)("p",null,"\u5728\u8fd9\u4e2a\u4f8b\u5b50\u4e2d\uff0c\u6211\u4eec\u5b9a\u4e49\u4e86\u4e24\u5f20\u8868\uff0ct1 \u548c t2\uff0c\u7136\u540e\u4f7f\u7528\u4e86\u8fd9\u4e24\u5f20\u8868\u6765\u8fdb\u884c\u67e5\u8be2\uff0c\u8fd9\u6837\u6211\u4eec\u5c31\u53ef\u4ee5\u907f\u514d\u5728\u67e5\u8be2\u8bed\u53e5\u4e2d\u591a\u6b21\u5d4c\u5957\u4f7f\u7528\u76f8\u540c\u7684\u5b50\u67e5\u8be2\uff0c\u5e76\u4e14\u4e5f\u4e0d\u9700\u8981\u4e3a\u6bcf\u4e2a\u67e5\u8be2\u5b9a\u4e49\u4e00\u4e2a\u4e34\u65f6\u8868\u3002"),(0,a.yg)("p",null,"with \u7279\u6027\uff1a"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"with \u5176\u5b9e\u5c31\u662f\u4e00\u4e2a\u5b50\u67e5\u8be2\u62bd\u53d6\u51fa\u6765\uff0c\u6362\u4e86\u4e00\u4e2a\u522b\u540d"),(0,a.yg)("li",{parentName:"ul"},"\u548c\u89c6\u56fe\u7684\u533a\u522b\uff1awith as \u7b49\u540c\u4e8e\u4e00\u6b21\u6027\u89c6\u56fe\uff0c\u53ea\u4f1a\u6301\u7eed\u5230\u4e0b\u4e00\u4e2a\u67e5\u8be2\u3002\u5728\u4e4b\u540e\u5c31\u4e0d\u80fd\u518d\u88ab\u5f15\u7528"),(0,a.yg)("li",{parentName:"ul"},"\u4e3b\u8981\u7528\u4e8e\u7b80\u5316\u590d\u6742\u7684 \u6570\u636e\u96c6 \u548c \u9012\u5f52")),(0,a.yg)("p",null,"\u5176\u5b9e WITH \u8868\u8fbe\u5f0f\u9664\u4e86\u548c SELECT \u4e00\u8d77\u7528\uff0c \u8fd8\u53ef\u4ee5\u6709\u4e0b\u9762\u7684\u7ec4\u5408\uff1a"),(0,a.yg)("p",null,"insert with \u3001with update\u3001with delete\u3001with with\u3001with recursive(\u53ef\u4ee5\u6a21\u62df\u6570\u5b57\u3001\u65e5\u671f\u7b49\u5e8f\u5217)\u3001WITH \u53ef\u4ee5\u5b9a\u4e49\u591a\u5f20\u8868"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sql"},"with_clause:\n WITH [RECURSIVE]\n cte_name [(col_name [, col_name] ...)] AS (subquery)\n [, cte_name [(col_name [, col_name] ...)] AS (subquery)] ...\n")),(0,a.yg)("h3",{id:"\u9012\u5f52\u5171\u7528\u8868\u8fbe\u5f0f-with-recursive"},"\u9012\u5f52\u5171\u7528\u8868\u8fbe\u5f0f with recursive"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-sql"},"WITH RECURSIVE cte (n) AS\n(\n SELECT 1\n UNION ALL\n SELECT n + 1 FROM cte WHERE n < 5\n)\nSELECT * FROM cte;\n")),(0,a.yg)("h3",{id:"\u53c2\u8003\u6587\u6863"},"\u53c2\u8003\u6587\u6863"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://halo.sherlocky.com/archives/mysql-8-cte"},"MySQL 8.0 with \u8bed\u6cd5(cte)")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://dev.mysql.com/doc/refman/8.0/en/preface.html"},"MySQL 8.0 \u5b98\u65b9\u6587\u6863"))))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/3b47b6b5.21376f84.js b/assets/js/3b47b6b5.2bc67421.js similarity index 98% rename from assets/js/3b47b6b5.21376f84.js rename to assets/js/3b47b6b5.2bc67421.js index 364ca3fff..7a8d30c14 100644 --- a/assets/js/3b47b6b5.21376f84.js +++ b/assets/js/3b47b6b5.2bc67421.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9688],{5680:(e,t,r)=>{r.d(t,{xA:()=>d,yg:()=>y});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),p=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},d=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},u="mdxType",l={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,d=c(e,["components","mdxType","originalType","parentName"]),u=p(r),f=o,y=u["".concat(s,".").concat(f)]||u[f]||l[f]||a;return r?n.createElement(y,i(i({ref:t},d),{},{components:r})):n.createElement(y,i({ref:t},d))}));function y(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=f;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[u]="string"==typeof e?e:o,i[1]=c;for(var p=2;p{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>l,frontMatter:()=>a,metadata:()=>c,toc:()=>p});var n=r(8168),o=(r(6540),r(5680));const a={sidebar_position:1},i="\u6982\u8ff0",c={unversionedId:"study/hard/index",id:"study/hard/index",title:"\u6982\u8ff0",description:"",source:"@site/docs/study/hard/index.md",sourceDirName:"study/hard",slug:"/study/hard/",permalink:"/docs/study/hard/",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"studySidebar",previous:{title:"\u94fe\u8def\u8ffd\u8e2a\u76d1\u63a7",permalink:"/docs/study/devops/\u94fe\u8def\u8ffd\u8e2a\u76d1\u63a7"},next:{title:"\u5d4c\u5165\u5f0f_\u5355\u7247\u673a",permalink:"/docs/study/hard/\u5d4c\u5165\u5f0f_\u5355\u7247\u673a"}},s={},p=[],d={toc:p},u="wrapper";function l(e){let{components:t,...r}=e;return(0,o.yg)(u,(0,n.A)({},d,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"\u6982\u8ff0"},"\u6982\u8ff0"))}l.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9688],{5680:(e,t,r)=>{r.d(t,{xA:()=>d,yg:()=>y});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),p=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},d=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},u="mdxType",l={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,d=c(e,["components","mdxType","originalType","parentName"]),u=p(r),f=o,y=u["".concat(s,".").concat(f)]||u[f]||l[f]||a;return r?n.createElement(y,i(i({ref:t},d),{},{components:r})):n.createElement(y,i({ref:t},d))}));function y(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=f;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[u]="string"==typeof e?e:o,i[1]=c;for(var p=2;p{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>l,frontMatter:()=>a,metadata:()=>c,toc:()=>p});var n=r(8168),o=(r(6540),r(5680));const a={sidebar_position:1},i="\u6982\u8ff0",c={unversionedId:"study/hard/index",id:"study/hard/index",title:"\u6982\u8ff0",description:"",source:"@site/docs/study/hard/index.md",sourceDirName:"study/hard",slug:"/study/hard/",permalink:"/docs/study/hard/",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"studySidebar",previous:{title:"\u94fe\u8def\u8ffd\u8e2a\u76d1\u63a7",permalink:"/docs/study/devops/\u94fe\u8def\u8ffd\u8e2a\u76d1\u63a7"},next:{title:"\u5d4c\u5165\u5f0f_\u5355\u7247\u673a",permalink:"/docs/study/hard/\u5d4c\u5165\u5f0f_\u5355\u7247\u673a"}},s={},p=[],d={toc:p},u="wrapper";function l(e){let{components:t,...r}=e;return(0,o.yg)(u,(0,n.A)({},d,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"\u6982\u8ff0"},"\u6982\u8ff0"))}l.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/3c356cd2.e194ae55.js b/assets/js/3c356cd2.03f750a8.js similarity index 99% rename from assets/js/3c356cd2.e194ae55.js rename to assets/js/3c356cd2.03f750a8.js index 9beb61486..33e80a91c 100644 --- a/assets/js/3c356cd2.e194ae55.js +++ b/assets/js/3c356cd2.03f750a8.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2582],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var i=n.createContext({}),p=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(i.Provider,{value:t},e.children)},s="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,i=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),s=p(r),d=o,f=s["".concat(i,".").concat(d)]||s[d]||y[d]||a;return r?n.createElement(f,l(l({ref:t},u),{},{components:r})):n.createElement(f,l({ref:t},u))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,l=new Array(a);l[0]=d;var c={};for(var i in t)hasOwnProperty.call(t,i)&&(c[i]=t[i]);c.originalType=e,c[s]="string"==typeof e?e:o,l[1]=c;for(var p=2;p{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>l,default:()=>y,frontMatter:()=>a,metadata:()=>c,toc:()=>p});var n=r(8168),o=(r(6540),r(5680));const a={},l=void 0,c={unversionedId:"study/net/\u5185\u7f51\u7a7f\u900f",id:"study/net/\u5185\u7f51\u7a7f\u900f",title:"\u5185\u7f51\u7a7f\u900f",description:"\u5185\u7f51\u7a7f\u900f",source:"@site/docs/study/net/\u5185\u7f51\u7a7f\u900f.md",sourceDirName:"study/net",slug:"/study/net/\u5185\u7f51\u7a7f\u900f",permalink:"/docs/study/net/\u5185\u7f51\u7a7f\u900f",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u4ee3\u7406",permalink:"/docs/study/net/\u4ee3\u7406"},next:{title:"\u5c40\u57df\u7f51IP\u5730\u5740\u8303\u56f4",permalink:"/docs/study/net/\u5c40\u57df\u7f51IP\u5730\u5740\u8303\u56f4"}},i={},p=[{value:"\u5185\u7f51\u7a7f\u900f",id:"\u5185\u7f51\u7a7f\u900f",level:3},{value:"\u5185\u7f51\u7a7f\u900f\u539f\u7406",id:"\u5185\u7f51\u7a7f\u900f\u539f\u7406",level:3},{value:"\u7ade\u54c1\u5206\u6790",id:"\u7ade\u54c1\u5206\u6790",level:3}],u={toc:p},s="wrapper";function y(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"\u5185\u7f51\u7a7f\u900f"},"\u5185\u7f51\u7a7f\u900f"),(0,o.yg)("p",null,"\u5185\u7f51\uff0c\u5c31\u662f\u5728\u516c\u53f8\u6216\u8005\u5bb6\u5ead\u5185\u90e8\uff0c\u5efa\u7acb\u7684\u5c40\u57df\u7f51\u7edc\u6216\u8005\u662f\u529e\u516c\u7f51\u7edc\uff0c\u53ef\u4ee5\u5b9e\u73b0\u591a\u53f0\u7535\u8111\u4e4b\u95f4\u7684\u8d44\u6e90\u5171\u4eab\uff0c\u5305\u62ec\u8bbe\u5907\u3001\u8d44\u6599\u3001\u6570\u636e\u7b49\u3002\u800c\u5916\u7f51\u5219\u662f\u901a\u8fc7\u4e00\u4e2a\u7f51\u5173\u4e0e\u5176\u5b83\u7684\u7f51\u7edc\u7cfb\u7edf\u8fde\u63a5\uff0c\u76f8\u5bf9\u4e8e\u5185\u7f51\u800c\u8a00\uff0c\u8fd9\u79cd\u7f51\u7edc\u7cfb\u7edf\u79f0\u4e4b\u4e3a\u5916\u90e8\u7f51\u7edc\uff0c\u5e38\u89c1\u7684\u5c31\u662f\u6211\u4eec\u65e5\u5e38\u4f7f\u7528\u7684\u4e92\u8054\u7f51\u3002"),(0,o.yg)("p",null,"\u4e00\u822c\u800c\u8a00\uff0c\u5728\u6ca1\u6709\u56fa\u5b9a\u516c\u7f51 IP \u7684\u60c5\u51b5\u4e0b\uff0c\u5916\u7f51\u8bbe\u5907\u65e0\u6cd5\u76f4\u63a5\u8bbf\u95ee\u5185\u7f51\u8bbe\u5907\u3002\u800c\u5185\u7f51\u7a7f\u900f\u6280\u672f\uff0c\u987e\u540d\u601d\u4e49\u5c31\u662f\u80fd\u8ba9\u5916\u7f51\u7684\u8bbe\u5907\u627e\u5230\u5904\u4e8e\u5185\u7f51\u7684\u8bbe\u5907\uff0c\u4ece\u800c\u5b9e\u73b0\u6570\u636e\u901a\u4fe1\u3002"),(0,o.yg)("h3",{id:"\u5185\u7f51\u7a7f\u900f\u539f\u7406"},"\u5185\u7f51\u7a7f\u900f\u539f\u7406"),(0,o.yg)("p",null,"\u5185\u7f51\u7a7f\u900f\uff0c\u53c8\u79f0\u4e3a NAT \u7a7f\u900f\u3002NAT \u80cc\u540e\u7684\u8bbe\u5907\uff0c\u5b83\u4eec\u7684\u4e3b\u8981\u7279\u70b9\u662f \uff0c\u53ef\u4ee5\u8bbf\u95ee\u5916\u7f51\uff0c\u4f46\u4e0d\u80fd\u88ab\u5916\u7f51\u8bbe\u5907\u6709\u6548\u8bbf\u95ee\u3002\u57fa\u4e8e\u8fd9\u4e00\u7279\u70b9\uff0cNAT \u7a7f\u900f\u6280\u672f\u662f\u8ba9 NAT \u80cc\u540e\u7684\u8bbe\u5907\uff0c\u5148\u8bbf\u95ee\u6307\u5b9a\u7684\u5916\u7f51\u670d\u52a1\u5668\uff0c\u7531\u6307\u5b9a\u7684\u5916\u7f51\u670d\u52a1\u5668\u642d\u5efa\u6865\u6881\uff0c\u6253\u901a\u5185\u3001\u5916\u7f51\u8bbe\u5907\u7684\u8bbf\u95ee\u901a\u9053\uff0c\u5b9e\u73b0\u5916\u7f51\u8bbe\u5907\u8bbf\u95ee\u5230\u5185\u7f51\u8bbe\u5907\u3002"),(0,o.yg)("p",null,"\u8be5\u6280\u672f\u9664\u4e86\u53ef\u4ee5\u8bbf\u95ee\u9690\u85cf\u5728 NAT \u540e\u7684\u8bbe\u5907\uff0c\u540c\u6837\u53ef\u4ee5\u7a7f\u900f\u9632\u706b\u5899\u3002\u8fd9\u662f\u56e0\u4e3a\u9632\u706b\u5899\u4e00\u822c\u53ea\u62e6\u622a\u4e86\u5165\u7ad9\u6ca1\u6709\u62e6\u622a\u51fa\u7ad9\uff0c\u6240\u4ee5\u4e5f\u53ef\u4ee5\u8ba9\u9632\u706b\u5899\u5185\u7684\u8bbe\u5907\u5bf9\u5916\u63d0\u4f9b\u670d\u52a1\u3002"),(0,o.yg)("p",null,"\u7531\u4e8e\u5185\u7f51\u8bbe\u5907\u5e76\u4e0d\u662f\u4e0e\u5916\u7f51\u8bbe\u5907\u76f4\u63a5\u76f8\u8fde\uff0c\u6240\u4ee5\u5728\u5b89\u5168\u6027\u4e0a\u662f\u6bcb\u5eb8\u7f6e\u7591\u7684\uff0c\u5185\u7f51\u7a7f\u900f\u53ef\u4ee5\u8bf4\u662f\u5b89\u5168\u4e0e\u6548\u7387\u517c\u5f97\u3002"),(0,o.yg)("h3",{id:"\u7ade\u54c1\u5206\u6790"},"\u7ade\u54c1\u5206\u6790"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://hsk.oray.com/"},"https://hsk.oray.com/")," \u82b1\u751f\u58f3 8 \u4ee5\u82af\u6362\u65b0\uff0c\u8ba9\u5185\u7f51\u7a7f\u900f\u66f4\u7b80\u5355"),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://www.cpolar.com/"},"https://www.cpolar.com/")," \u6df1\u8015\u5185\u7f51\u7a7f\u900f\u9886\u57df")))}y.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2582],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var i=n.createContext({}),p=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(i.Provider,{value:t},e.children)},s="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,i=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),s=p(r),d=o,f=s["".concat(i,".").concat(d)]||s[d]||y[d]||a;return r?n.createElement(f,l(l({ref:t},u),{},{components:r})):n.createElement(f,l({ref:t},u))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,l=new Array(a);l[0]=d;var c={};for(var i in t)hasOwnProperty.call(t,i)&&(c[i]=t[i]);c.originalType=e,c[s]="string"==typeof e?e:o,l[1]=c;for(var p=2;p{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>l,default:()=>y,frontMatter:()=>a,metadata:()=>c,toc:()=>p});var n=r(8168),o=(r(6540),r(5680));const a={},l=void 0,c={unversionedId:"study/net/\u5185\u7f51\u7a7f\u900f",id:"study/net/\u5185\u7f51\u7a7f\u900f",title:"\u5185\u7f51\u7a7f\u900f",description:"\u5185\u7f51\u7a7f\u900f",source:"@site/docs/study/net/\u5185\u7f51\u7a7f\u900f.md",sourceDirName:"study/net",slug:"/study/net/\u5185\u7f51\u7a7f\u900f",permalink:"/docs/study/net/\u5185\u7f51\u7a7f\u900f",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u4ee3\u7406",permalink:"/docs/study/net/\u4ee3\u7406"},next:{title:"\u5c40\u57df\u7f51IP\u5730\u5740\u8303\u56f4",permalink:"/docs/study/net/\u5c40\u57df\u7f51IP\u5730\u5740\u8303\u56f4"}},i={},p=[{value:"\u5185\u7f51\u7a7f\u900f",id:"\u5185\u7f51\u7a7f\u900f",level:3},{value:"\u5185\u7f51\u7a7f\u900f\u539f\u7406",id:"\u5185\u7f51\u7a7f\u900f\u539f\u7406",level:3},{value:"\u7ade\u54c1\u5206\u6790",id:"\u7ade\u54c1\u5206\u6790",level:3}],u={toc:p},s="wrapper";function y(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"\u5185\u7f51\u7a7f\u900f"},"\u5185\u7f51\u7a7f\u900f"),(0,o.yg)("p",null,"\u5185\u7f51\uff0c\u5c31\u662f\u5728\u516c\u53f8\u6216\u8005\u5bb6\u5ead\u5185\u90e8\uff0c\u5efa\u7acb\u7684\u5c40\u57df\u7f51\u7edc\u6216\u8005\u662f\u529e\u516c\u7f51\u7edc\uff0c\u53ef\u4ee5\u5b9e\u73b0\u591a\u53f0\u7535\u8111\u4e4b\u95f4\u7684\u8d44\u6e90\u5171\u4eab\uff0c\u5305\u62ec\u8bbe\u5907\u3001\u8d44\u6599\u3001\u6570\u636e\u7b49\u3002\u800c\u5916\u7f51\u5219\u662f\u901a\u8fc7\u4e00\u4e2a\u7f51\u5173\u4e0e\u5176\u5b83\u7684\u7f51\u7edc\u7cfb\u7edf\u8fde\u63a5\uff0c\u76f8\u5bf9\u4e8e\u5185\u7f51\u800c\u8a00\uff0c\u8fd9\u79cd\u7f51\u7edc\u7cfb\u7edf\u79f0\u4e4b\u4e3a\u5916\u90e8\u7f51\u7edc\uff0c\u5e38\u89c1\u7684\u5c31\u662f\u6211\u4eec\u65e5\u5e38\u4f7f\u7528\u7684\u4e92\u8054\u7f51\u3002"),(0,o.yg)("p",null,"\u4e00\u822c\u800c\u8a00\uff0c\u5728\u6ca1\u6709\u56fa\u5b9a\u516c\u7f51 IP \u7684\u60c5\u51b5\u4e0b\uff0c\u5916\u7f51\u8bbe\u5907\u65e0\u6cd5\u76f4\u63a5\u8bbf\u95ee\u5185\u7f51\u8bbe\u5907\u3002\u800c\u5185\u7f51\u7a7f\u900f\u6280\u672f\uff0c\u987e\u540d\u601d\u4e49\u5c31\u662f\u80fd\u8ba9\u5916\u7f51\u7684\u8bbe\u5907\u627e\u5230\u5904\u4e8e\u5185\u7f51\u7684\u8bbe\u5907\uff0c\u4ece\u800c\u5b9e\u73b0\u6570\u636e\u901a\u4fe1\u3002"),(0,o.yg)("h3",{id:"\u5185\u7f51\u7a7f\u900f\u539f\u7406"},"\u5185\u7f51\u7a7f\u900f\u539f\u7406"),(0,o.yg)("p",null,"\u5185\u7f51\u7a7f\u900f\uff0c\u53c8\u79f0\u4e3a NAT \u7a7f\u900f\u3002NAT \u80cc\u540e\u7684\u8bbe\u5907\uff0c\u5b83\u4eec\u7684\u4e3b\u8981\u7279\u70b9\u662f \uff0c\u53ef\u4ee5\u8bbf\u95ee\u5916\u7f51\uff0c\u4f46\u4e0d\u80fd\u88ab\u5916\u7f51\u8bbe\u5907\u6709\u6548\u8bbf\u95ee\u3002\u57fa\u4e8e\u8fd9\u4e00\u7279\u70b9\uff0cNAT \u7a7f\u900f\u6280\u672f\u662f\u8ba9 NAT \u80cc\u540e\u7684\u8bbe\u5907\uff0c\u5148\u8bbf\u95ee\u6307\u5b9a\u7684\u5916\u7f51\u670d\u52a1\u5668\uff0c\u7531\u6307\u5b9a\u7684\u5916\u7f51\u670d\u52a1\u5668\u642d\u5efa\u6865\u6881\uff0c\u6253\u901a\u5185\u3001\u5916\u7f51\u8bbe\u5907\u7684\u8bbf\u95ee\u901a\u9053\uff0c\u5b9e\u73b0\u5916\u7f51\u8bbe\u5907\u8bbf\u95ee\u5230\u5185\u7f51\u8bbe\u5907\u3002"),(0,o.yg)("p",null,"\u8be5\u6280\u672f\u9664\u4e86\u53ef\u4ee5\u8bbf\u95ee\u9690\u85cf\u5728 NAT \u540e\u7684\u8bbe\u5907\uff0c\u540c\u6837\u53ef\u4ee5\u7a7f\u900f\u9632\u706b\u5899\u3002\u8fd9\u662f\u56e0\u4e3a\u9632\u706b\u5899\u4e00\u822c\u53ea\u62e6\u622a\u4e86\u5165\u7ad9\u6ca1\u6709\u62e6\u622a\u51fa\u7ad9\uff0c\u6240\u4ee5\u4e5f\u53ef\u4ee5\u8ba9\u9632\u706b\u5899\u5185\u7684\u8bbe\u5907\u5bf9\u5916\u63d0\u4f9b\u670d\u52a1\u3002"),(0,o.yg)("p",null,"\u7531\u4e8e\u5185\u7f51\u8bbe\u5907\u5e76\u4e0d\u662f\u4e0e\u5916\u7f51\u8bbe\u5907\u76f4\u63a5\u76f8\u8fde\uff0c\u6240\u4ee5\u5728\u5b89\u5168\u6027\u4e0a\u662f\u6bcb\u5eb8\u7f6e\u7591\u7684\uff0c\u5185\u7f51\u7a7f\u900f\u53ef\u4ee5\u8bf4\u662f\u5b89\u5168\u4e0e\u6548\u7387\u517c\u5f97\u3002"),(0,o.yg)("h3",{id:"\u7ade\u54c1\u5206\u6790"},"\u7ade\u54c1\u5206\u6790"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://hsk.oray.com/"},"https://hsk.oray.com/")," \u82b1\u751f\u58f3 8 \u4ee5\u82af\u6362\u65b0\uff0c\u8ba9\u5185\u7f51\u7a7f\u900f\u66f4\u7b80\u5355"),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://www.cpolar.com/"},"https://www.cpolar.com/")," \u6df1\u8015\u5185\u7f51\u7a7f\u900f\u9886\u57df")))}y.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/3c4f1597.d5949486.js b/assets/js/3c4f1597.87481e4a.js similarity index 98% rename from assets/js/3c4f1597.d5949486.js rename to assets/js/3c4f1597.87481e4a.js index 1e28ebc9f..4990bd3b7 100644 --- a/assets/js/3c4f1597.d5949486.js +++ b/assets/js/3c4f1597.87481e4a.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3845],{5680:(t,e,r)=>{r.d(e,{xA:()=>c,yg:()=>y});var n=r(6540);function i(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function o(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function p(t){for(var e=1;e=0||(i[r]=t[r]);return i}(t,e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(t,r)&&(i[r]=t[r])}return i}var l=n.createContext({}),u=function(t){var e=n.useContext(l),r=e;return t&&(r="function"==typeof t?t(e):p(p({},e),t)),r},c=function(t){var e=u(t.components);return n.createElement(l.Provider,{value:e},t.children)},s="mdxType",f={inlineCode:"code",wrapper:function(t){var e=t.children;return n.createElement(n.Fragment,{},e)}},d=n.forwardRef((function(t,e){var r=t.components,i=t.mdxType,o=t.originalType,l=t.parentName,c=a(t,["components","mdxType","originalType","parentName"]),s=u(r),d=i,y=s["".concat(l,".").concat(d)]||s[d]||f[d]||o;return r?n.createElement(y,p(p({ref:e},c),{},{components:r})):n.createElement(y,p({ref:e},c))}));function y(t,e){var r=arguments,i=e&&e.mdxType;if("string"==typeof t||i){var o=r.length,p=new Array(o);p[0]=d;var a={};for(var l in e)hasOwnProperty.call(e,l)&&(a[l]=e[l]);a.originalType=t,a[s]="string"==typeof t?t:i,p[1]=a;for(var u=2;u{r.r(e),r.d(e,{assets:()=>l,contentTitle:()=>p,default:()=>f,frontMatter:()=>o,metadata:()=>a,toc:()=>u});var n=r(8168),i=(r(6540),r(5680));const o={},p=void 0,a={unversionedId:"study/program/C/size_t-ptrdiff_t-intptr_t-uintptr_t",id:"study/program/C/size_t-ptrdiff_t-intptr_t-uintptr_t",title:"size_t-ptrdiff_t-intptr_t-uintptr_t",description:"- size_t",source:"@site/docs/study/program/C/size_t-ptrdiff_t-intptr_t-uintptr_t.md",sourceDirName:"study/program/C",slug:"/study/program/C/size_t-ptrdiff_t-intptr_t-uintptr_t",permalink:"/docs/study/program/C/size_t-ptrdiff_t-intptr_t-uintptr_t",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"pragma",permalink:"/docs/study/program/C/pragma"},next:{title:"\u65b9\u6cd5\u5e93-\u9759\u6001\u5e93-\u52a8\u6001\u5e93-\u5171\u4eab\u5e93",permalink:"/docs/study/program/C/\u65b9\u6cd5\u5e93-\u9759\u6001\u5e93-\u52a8\u6001\u5e93-\u5171\u4eab\u5e93"}},l={},u=[],c={toc:u},s="wrapper";function f(t){let{components:e,...r}=t;return(0,i.yg)(s,(0,n.A)({},c,r,{components:e,mdxType:"MDXLayout"}),(0,i.yg)("ul",null,(0,i.yg)("li",{parentName:"ul"},"size_t")),(0,i.yg)("p",null,"size_t \u662f\u65e0\u7b26\u53f7\u6574\u6570\u7c7b\u578b\uff0c\u8fd9\u662f sizeof \u64cd\u4f5c\u7b26\u7ed3\u679c\u7684\u7c7b\u578b\u3002\u5982\u679c\u8bbe\u5907\u7684\u5730\u5740\u7a7a\u95f4\u4e3a 32 \u4f4d\uff0c\u8fd9\u5c31\u662f\u4e00\u4e2a 32 \u4f4d\u65e0\u7b26\u53f7\u6574\u6570\uff1b\u5982\u679c\u8bbe\u5907\u7684\u5730\u5740\u7a7a\u95f4\u662f 64 \u4f4d\uff0c\u8fd9\u5c31\u662f\u4e00\u4e2a 64 \u4f4d\u65e0\u7b26\u53f7\u6574\u6570\u3002\u6362\u800c\u8a00\u4e4b\uff0c\u4e00\u4e2a size_t \u7c7b\u578b\u7684\u53d8\u91cf\u80fd\u591f\u5b89\u5168\u4fdd\u5b58\u4e00\u4e2a\u6307\u9488\uff08\u552f\u4e00\u7684\u4f8b\u5916\u662f\u6307\u5411\u7c7b\u51fd\u6570\u7684\u6307\u9488\uff09\u3002size_t \u901a\u5e38\u7528\u4e8e loop \u8ba1\u6570\u5668\uff0c\u6570\u7ec4\u7d22\u5f15\u548c\u5730\u5740\u7b97\u6570\u3002"),(0,i.yg)("ul",null,(0,i.yg)("li",{parentName:"ul"},"ptrdiff_t")),(0,i.yg)("p",null,"ptrdiff_t \u662f\u6709\u7b26\u53f7\u6574\u6570\u7c7b\u578b\uff0c\u8fd9\u662f\u4e24\u4e2a\u6307\u9488\u76f8\u51cf\u7ed3\u679c\u7684\u7c7b\u578b\u3002\u5982\u679c\u8bbe\u5907\u7684\u5730\u5740\u7a7a\u95f4\u4e3a 32 \u4f4d\uff0c\u8fd9\u5c31\u662f\u4e00\u4e2a 32 \u4f4d\u6709\u7b26\u53f7\u6574\u6570\uff1b\u5982\u679c\u8bbe\u5907\u7684\u5730\u5740\u7a7a\u95f4\u662f 64 \u4f4d\uff0c\u8fd9\u5c31\u662f\u4e00\u4e2a 64 \u4f4d\u6709\u7b26\u53f7\u6574\u6570\u3002\u4e0e size_t \u4e00\u6837\uff0cptrdiff_t \u80fd\u5b89\u5168\u5b58\u50a8\u9664\u7c7b\u51fd\u6570\u6307\u9488\u5916\u7684\u6307\u9488\u3002"),(0,i.yg)("p",null,"size_t \u548c ptr_diff \u7684\u5927\u5c0f\u603b\u662f\u548c\u6307\u9488\u7684\u5927\u5c0f\u4e00\u81f4\uff0c\u56e0\u6b64\u9002\u5408\u7528\u6765\u7d22\u5f15\u5927\u6570\u7ec4\u3001\u5b58\u50a8\u6307\u9488\u4ee5\u53ca\u6307\u9488\u8fd0\u7b97\u7b49\u3002"),(0,i.yg)("ul",null,(0,i.yg)("li",{parentName:"ul"},"intptr_t")),(0,i.yg)("p",null,"\u6709\u7b26\u53f7\u6574\u6570\u7c7b\u578b\uff0c\u5b83\u6709\u4e00\u4e2a\u6027\u8d28\uff0c\u4efb\u4f55\u6307\u5411 void \u7684\u5408\u6cd5\u6307\u9488\u90fd\u53ef\u4ee5\u8f6c\u5316\u4e3a\u8fd9\u4e2a\u7c7b\u578b\uff0c\u7136\u540e\u8fd8\u53ef\u4ee5\u518d\u8f6c\u6362\u56de\u6307\u5411 void \u7684\u6307\u9488\uff0c\u5176\u7ed3\u679c\u4e0e\u539f\u6307\u9488\u6bd4\u8f83\u662f\u76f8\u7b49\u7684\u3002"),(0,i.yg)("ul",null,(0,i.yg)("li",{parentName:"ul"},"uintptr_t")),(0,i.yg)("p",null,"\u65e0\u7b26\u53f7\u6574\u6570\u7c7b\u578b\uff0c\u5b83\u6709\u4e00\u4e2a\u6027\u8d28\uff0c\u4efb\u4f55\u6307\u5411 void \u7684\u5408\u6cd5\u6307\u9488\u90fd\u53ef\u4ee5\u8f6c\u5316\u4e3a\u8fd9\u4e2a\u7c7b\u578b\uff0c\u7136\u540e\u8fd8\u53ef\u4ee5\u518d\u8f6c\u6362\u56de\u6307\u5411 void \u7684\u6307\u9488\uff0c\u5176\u7ed3\u679c\u4e0e\u539f\u6307\u9488\u6bd4\u8f83\u662f\u76f8\u7b49\u7684\u3002"))}f.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3845],{5680:(t,e,r)=>{r.d(e,{xA:()=>c,yg:()=>y});var n=r(6540);function i(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function o(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function p(t){for(var e=1;e=0||(i[r]=t[r]);return i}(t,e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(t,r)&&(i[r]=t[r])}return i}var l=n.createContext({}),u=function(t){var e=n.useContext(l),r=e;return t&&(r="function"==typeof t?t(e):p(p({},e),t)),r},c=function(t){var e=u(t.components);return n.createElement(l.Provider,{value:e},t.children)},s="mdxType",f={inlineCode:"code",wrapper:function(t){var e=t.children;return n.createElement(n.Fragment,{},e)}},d=n.forwardRef((function(t,e){var r=t.components,i=t.mdxType,o=t.originalType,l=t.parentName,c=a(t,["components","mdxType","originalType","parentName"]),s=u(r),d=i,y=s["".concat(l,".").concat(d)]||s[d]||f[d]||o;return r?n.createElement(y,p(p({ref:e},c),{},{components:r})):n.createElement(y,p({ref:e},c))}));function y(t,e){var r=arguments,i=e&&e.mdxType;if("string"==typeof t||i){var o=r.length,p=new Array(o);p[0]=d;var a={};for(var l in e)hasOwnProperty.call(e,l)&&(a[l]=e[l]);a.originalType=t,a[s]="string"==typeof t?t:i,p[1]=a;for(var u=2;u{r.r(e),r.d(e,{assets:()=>l,contentTitle:()=>p,default:()=>f,frontMatter:()=>o,metadata:()=>a,toc:()=>u});var n=r(8168),i=(r(6540),r(5680));const o={},p=void 0,a={unversionedId:"study/program/C/size_t-ptrdiff_t-intptr_t-uintptr_t",id:"study/program/C/size_t-ptrdiff_t-intptr_t-uintptr_t",title:"size_t-ptrdiff_t-intptr_t-uintptr_t",description:"- size_t",source:"@site/docs/study/program/C/size_t-ptrdiff_t-intptr_t-uintptr_t.md",sourceDirName:"study/program/C",slug:"/study/program/C/size_t-ptrdiff_t-intptr_t-uintptr_t",permalink:"/docs/study/program/C/size_t-ptrdiff_t-intptr_t-uintptr_t",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"pragma",permalink:"/docs/study/program/C/pragma"},next:{title:"\u65b9\u6cd5\u5e93-\u9759\u6001\u5e93-\u52a8\u6001\u5e93-\u5171\u4eab\u5e93",permalink:"/docs/study/program/C/\u65b9\u6cd5\u5e93-\u9759\u6001\u5e93-\u52a8\u6001\u5e93-\u5171\u4eab\u5e93"}},l={},u=[],c={toc:u},s="wrapper";function f(t){let{components:e,...r}=t;return(0,i.yg)(s,(0,n.A)({},c,r,{components:e,mdxType:"MDXLayout"}),(0,i.yg)("ul",null,(0,i.yg)("li",{parentName:"ul"},"size_t")),(0,i.yg)("p",null,"size_t \u662f\u65e0\u7b26\u53f7\u6574\u6570\u7c7b\u578b\uff0c\u8fd9\u662f sizeof \u64cd\u4f5c\u7b26\u7ed3\u679c\u7684\u7c7b\u578b\u3002\u5982\u679c\u8bbe\u5907\u7684\u5730\u5740\u7a7a\u95f4\u4e3a 32 \u4f4d\uff0c\u8fd9\u5c31\u662f\u4e00\u4e2a 32 \u4f4d\u65e0\u7b26\u53f7\u6574\u6570\uff1b\u5982\u679c\u8bbe\u5907\u7684\u5730\u5740\u7a7a\u95f4\u662f 64 \u4f4d\uff0c\u8fd9\u5c31\u662f\u4e00\u4e2a 64 \u4f4d\u65e0\u7b26\u53f7\u6574\u6570\u3002\u6362\u800c\u8a00\u4e4b\uff0c\u4e00\u4e2a size_t \u7c7b\u578b\u7684\u53d8\u91cf\u80fd\u591f\u5b89\u5168\u4fdd\u5b58\u4e00\u4e2a\u6307\u9488\uff08\u552f\u4e00\u7684\u4f8b\u5916\u662f\u6307\u5411\u7c7b\u51fd\u6570\u7684\u6307\u9488\uff09\u3002size_t \u901a\u5e38\u7528\u4e8e loop \u8ba1\u6570\u5668\uff0c\u6570\u7ec4\u7d22\u5f15\u548c\u5730\u5740\u7b97\u6570\u3002"),(0,i.yg)("ul",null,(0,i.yg)("li",{parentName:"ul"},"ptrdiff_t")),(0,i.yg)("p",null,"ptrdiff_t \u662f\u6709\u7b26\u53f7\u6574\u6570\u7c7b\u578b\uff0c\u8fd9\u662f\u4e24\u4e2a\u6307\u9488\u76f8\u51cf\u7ed3\u679c\u7684\u7c7b\u578b\u3002\u5982\u679c\u8bbe\u5907\u7684\u5730\u5740\u7a7a\u95f4\u4e3a 32 \u4f4d\uff0c\u8fd9\u5c31\u662f\u4e00\u4e2a 32 \u4f4d\u6709\u7b26\u53f7\u6574\u6570\uff1b\u5982\u679c\u8bbe\u5907\u7684\u5730\u5740\u7a7a\u95f4\u662f 64 \u4f4d\uff0c\u8fd9\u5c31\u662f\u4e00\u4e2a 64 \u4f4d\u6709\u7b26\u53f7\u6574\u6570\u3002\u4e0e size_t \u4e00\u6837\uff0cptrdiff_t \u80fd\u5b89\u5168\u5b58\u50a8\u9664\u7c7b\u51fd\u6570\u6307\u9488\u5916\u7684\u6307\u9488\u3002"),(0,i.yg)("p",null,"size_t \u548c ptr_diff \u7684\u5927\u5c0f\u603b\u662f\u548c\u6307\u9488\u7684\u5927\u5c0f\u4e00\u81f4\uff0c\u56e0\u6b64\u9002\u5408\u7528\u6765\u7d22\u5f15\u5927\u6570\u7ec4\u3001\u5b58\u50a8\u6307\u9488\u4ee5\u53ca\u6307\u9488\u8fd0\u7b97\u7b49\u3002"),(0,i.yg)("ul",null,(0,i.yg)("li",{parentName:"ul"},"intptr_t")),(0,i.yg)("p",null,"\u6709\u7b26\u53f7\u6574\u6570\u7c7b\u578b\uff0c\u5b83\u6709\u4e00\u4e2a\u6027\u8d28\uff0c\u4efb\u4f55\u6307\u5411 void \u7684\u5408\u6cd5\u6307\u9488\u90fd\u53ef\u4ee5\u8f6c\u5316\u4e3a\u8fd9\u4e2a\u7c7b\u578b\uff0c\u7136\u540e\u8fd8\u53ef\u4ee5\u518d\u8f6c\u6362\u56de\u6307\u5411 void \u7684\u6307\u9488\uff0c\u5176\u7ed3\u679c\u4e0e\u539f\u6307\u9488\u6bd4\u8f83\u662f\u76f8\u7b49\u7684\u3002"),(0,i.yg)("ul",null,(0,i.yg)("li",{parentName:"ul"},"uintptr_t")),(0,i.yg)("p",null,"\u65e0\u7b26\u53f7\u6574\u6570\u7c7b\u578b\uff0c\u5b83\u6709\u4e00\u4e2a\u6027\u8d28\uff0c\u4efb\u4f55\u6307\u5411 void \u7684\u5408\u6cd5\u6307\u9488\u90fd\u53ef\u4ee5\u8f6c\u5316\u4e3a\u8fd9\u4e2a\u7c7b\u578b\uff0c\u7136\u540e\u8fd8\u53ef\u4ee5\u518d\u8f6c\u6362\u56de\u6307\u5411 void \u7684\u6307\u9488\uff0c\u5176\u7ed3\u679c\u4e0e\u539f\u6307\u9488\u6bd4\u8f83\u662f\u76f8\u7b49\u7684\u3002"))}f.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/3e116dbc.db4995ab.js b/assets/js/3e116dbc.9c8d5de7.js similarity index 98% rename from assets/js/3e116dbc.db4995ab.js rename to assets/js/3e116dbc.9c8d5de7.js index d7cac4967..f815b4bbf 100644 --- a/assets/js/3e116dbc.db4995ab.js +++ b/assets/js/3e116dbc.9c8d5de7.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[822],{5680:(e,n,t)=>{t.d(n,{xA:()=>s,yg:()=>f});var r=t(6540);function c(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function o(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function i(e){for(var n=1;n=0||(c[t]=e[t]);return c}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(c[t]=e[t])}return c}var p=r.createContext({}),l=function(e){var n=r.useContext(p),t=n;return e&&(t="function"==typeof e?e(n):i(i({},n),e)),t},s=function(e){var n=l(e.components);return r.createElement(p.Provider,{value:n},e.children)},u="mdxType",m={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},d=r.forwardRef((function(e,n){var t=e.components,c=e.mdxType,o=e.originalType,p=e.parentName,s=a(e,["components","mdxType","originalType","parentName"]),u=l(t),d=c,f=u["".concat(p,".").concat(d)]||u[d]||m[d]||o;return t?r.createElement(f,i(i({ref:n},s),{},{components:t})):r.createElement(f,i({ref:n},s))}));function f(e,n){var t=arguments,c=n&&n.mdxType;if("string"==typeof e||c){var o=t.length,i=new Array(o);i[0]=d;var a={};for(var p in n)hasOwnProperty.call(n,p)&&(a[p]=n[p]);a.originalType=e,a[u]="string"==typeof e?e:c,i[1]=a;for(var l=2;l{t.r(n),t.d(n,{assets:()=>p,contentTitle:()=>i,default:()=>m,frontMatter:()=>o,metadata:()=>a,toc:()=>l});var r=t(8168),c=(t(6540),t(5680));const o={},i=void 0,a={unversionedId:"study/devops/Linux\u8fd0\u7ef4-\u9ad8\u5e76\u53d1",id:"study/devops/Linux\u8fd0\u7ef4-\u9ad8\u5e76\u53d1",title:"Linux\u8fd0\u7ef4-\u9ad8\u5e76\u53d1",description:"\u6700\u5927\u6587\u4ef6\u63cf\u8ff0\u7b26",source:"@site/docs/study/devops/Linux\u8fd0\u7ef4-\u9ad8\u5e76\u53d1.md",sourceDirName:"study/devops",slug:"/study/devops/Linux\u8fd0\u7ef4-\u9ad8\u5e76\u53d1",permalink:"/docs/study/devops/Linux\u8fd0\u7ef4-\u9ad8\u5e76\u53d1",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Linux\u8fd0\u7ef4-\u76d1\u63a7\u6570\u636e",permalink:"/docs/study/devops/Linux\u8fd0\u7ef4-\u76d1\u63a7\u6570\u636e"},next:{title:"centos-nginx",permalink:"/docs/study/devops/centos-gninx-app"}},p={},l=[{value:"\u6700\u5927\u6587\u4ef6\u63cf\u8ff0\u7b26",id:"\u6700\u5927\u6587\u4ef6\u63cf\u8ff0\u7b26",level:3},{value:"max-file",id:"max-file",level:3},{value:"\u5185\u6838\u53c2\u6570\u4f18\u5316/etc/sysctl.conf",id:"\u5185\u6838\u53c2\u6570\u4f18\u5316etcsysctlconf",level:3}],s={toc:l},u="wrapper";function m(e){let{components:n,...t}=e;return(0,c.yg)(u,(0,r.A)({},s,t,{components:n,mdxType:"MDXLayout"}),(0,c.yg)("h3",{id:"\u6700\u5927\u6587\u4ef6\u63cf\u8ff0\u7b26"},"\u6700\u5927\u6587\u4ef6\u63cf\u8ff0\u7b26"),(0,c.yg)("p",null,"ulimit -n \u63a7\u5236\u8fdb\u7a0b\u7ea7\u522b\u80fd\u591f\u6253\u5f00\u7684\u6587\u4ef6\u53e5\u67c4\u7684\u6570\u91cf\u3002\u63d0\u4f9b\u5bf9shell\u53ca\u5176\u542f\u52a8\u7684\u8fdb\u7a0b\u7684\u53ef\u7528\u6587\u4ef6\u53e5\u67c4\u7684\u63a7\u5236\u3002\u8fd9\u662f\u8fdb\u7a0b\u7ea7\u522b\u7684\u3002"),(0,c.yg)("pre",null,(0,c.yg)("code",{parentName:"pre",className:"language-shell"},'#\u6700\u5927\u6587\u4ef6\u63cf\u8ff0\u7b26 100W\nulimit -SHn 1000000 \necho "ulimit -SHn 1000000" >> /etc/rc.d/rc.local \nsource /etc/rc.d/rc.local\nulimit -n\n\n')),(0,c.yg)("h3",{id:"max-file"},"max-file"),(0,c.yg)("h3",{id:""}),(0,c.yg)("p",null,"\u8868\u793a\u7cfb\u7edf\u7ea7\u522b\u7684\u80fd\u591f\u6253\u5f00\u7684\u6587\u4ef6\u53e5\u67c4\u7684\u6570\u91cf\u3002\u662f\u5bf9\u6574\u4e2a\u7cfb\u7edf\u7684\u9650\u5236\uff0c\u5e76\u4e0d\u662f\u9488\u5bf9\u7528\u6237\u7684\u3002"),(0,c.yg)("pre",null,(0,c.yg)("code",{parentName:"pre",className:"language-shell"},"#\u67e5\u770b\u7cfb\u7edf\u7ea7\u522b\u7684\u80fd\u591f\u6253\u5f00\u7684\u6587\u4ef6\u53e5\u67c4\u7684\u6570\u91cf\uff0cCentos7\u9ed8\u8ba4\u662f794168\ncat /proc/sys/fs/file-max\n#\nvim /etc/sysctl.conf\n#\nfs.file-max = 1000000\n#\u7136\u540e\u6267\u884c\u547d\u4ee4\uff0c\u4f7f\u4fee\u6539\u914d\u7f6e\u7acb\u5373\u751f\u6548\uff1a\nsysctl -p\n")),(0,c.yg)("h3",{id:"\u5185\u6838\u53c2\u6570\u4f18\u5316etcsysctlconf"},"\u5185\u6838\u53c2\u6570\u4f18\u5316/etc/sysctl.conf"),(0,c.yg)("pre",null,(0,c.yg)("code",{parentName:"pre",className:"language-shell"},"#\u5173\u95edipv6\nnet.ipv6.conf.all.disable_ipv6 = 1\nnet.ipv6.conf.default.disable_ipv6 = 1\n\n#\u51b3\u5b9a\u68c0\u67e5\u8fc7\u671f\u591a\u4e45\u90bb\u5c45\u6761\u76ee\nnet.ipv4.neigh.default.gc_stale_time=120\n\n#\u4f7f\u7528arp_announce / arp_ignore\u89e3\u51b3ARP\u6620\u5c04\u95ee\u9898\nnet.ipv4.conf.default.arp_announce = 2\nnet.ipv4.conf.all.arp_announce=2\nnet.ipv4.conf.lo.arp_announce=2 # \u907f\u514d\u653e\u5927\u653b\u51fb\nnet.ipv4.icmp_echo_ignore_broadcasts = 1 # \u5f00\u542f\u6076\u610ficmp\u9519\u8bef\u6d88\u606f\u4fdd\u62a4\nnet.ipv4.icmp_ignore_bogus_error_responses = 1\n\n#\u5904\u7406\u65e0\u6e90\u8def\u7531\u7684\u5305\nnet.ipv4.conf.all.accept_source_route = 0\nnet.ipv4.conf.default.accept_source_route = 0\n\n#core\u6587\u4ef6\u540d\u4e2d\u6dfb\u52a0pid\u4f5c\u4e3a\u6269\u5c55\u540d\nkernel.core_uses_pid = 1 # \u5f00\u542fSYN\u6d2a\u6c34\u653b\u51fb\u4fdd\u62a4\nnet.ipv4.tcp_syncookies = 1\n\n#\u4fee\u6539\u6d88\u606f\u961f\u5217\u957f\u5ea6\nkernel.msgmnb = 65536\nkernel.msgmax = 65536\n\n#timewait\u7684\u6570\u91cf\uff0c\u9ed8\u8ba4180000\nnet.ipv4.tcp_max_tw_buckets = 6000\nnet.ipv4.tcp_sack = 1\nnet.ipv4.tcp_window_scaling = 1\nnet.ipv4.tcp_rmem = 4096 87380 4194304\nnet.ipv4.tcp_wmem = 4096 16384 4194304\nnet.core.wmem_default = 8388608\nnet.core.rmem_default = 8388608\nnet.core.rmem_max = 16777216\nnet.core.wmem_max = 16777216\n\n#\u9650\u5236\u4ec5\u4ec5\u662f\u4e3a\u4e86\u9632\u6b62\u7b80\u5355\u7684DoS \u653b\u51fb\nnet.ipv4.tcp_max_orphans = 3276800\n\n#\u672a\u6536\u5230\u5ba2\u6237\u7aef\u786e\u8ba4\u4fe1\u606f\u7684\u8fde\u63a5\u8bf7\u6c42\u7684\u6700\u5927\u503c\nnet.ipv4.tcp_max_syn_backlog = 262144\nnet.ipv4.tcp_timestamps = 0\n\n#\u5185\u6838\u653e\u5f03\u5efa\u7acb\u8fde\u63a5\u4e4b\u524d\u53d1\u9001SYNACK \u5305\u7684\u6570\u91cf\nnet.ipv4.tcp_synack_retries = 1\n\n#\u5185\u6838\u653e\u5f03\u5efa\u7acb\u8fde\u63a5\u4e4b\u524d\u53d1\u9001SYN \u5305\u7684\u6570\u91cf\nnet.ipv4.tcp_syn_retries = 1\n\n#\u542f\u7528timewait \u5feb\u901f\u56de\u6536\nnet.ipv4.tcp_tw_recycle = 1\n\n#\u5f00\u542f\u91cd\u7528\u3002\u5141\u8bb8\u5c06TIME-WAIT sockets \u91cd\u65b0\u7528\u4e8e\u65b0\u7684TCP \u8fde\u63a5\nnet.ipv4.tcp_tw_reuse = 1\nnet.ipv4.tcp_mem = 94500000 915000000 927000000\nnet.ipv4.tcp_fin_timeout = 1\n\n#\u7136\u540e\u6267\u884c\u4ee5\u4e0b\u547d\u4ee4\u91cd\u8f7d\u914d\u7f6e\nsysctl -p\n")))}m.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[822],{5680:(e,n,t)=>{t.d(n,{xA:()=>s,yg:()=>f});var r=t(6540);function c(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function o(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function i(e){for(var n=1;n=0||(c[t]=e[t]);return c}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(c[t]=e[t])}return c}var p=r.createContext({}),l=function(e){var n=r.useContext(p),t=n;return e&&(t="function"==typeof e?e(n):i(i({},n),e)),t},s=function(e){var n=l(e.components);return r.createElement(p.Provider,{value:n},e.children)},u="mdxType",m={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},d=r.forwardRef((function(e,n){var t=e.components,c=e.mdxType,o=e.originalType,p=e.parentName,s=a(e,["components","mdxType","originalType","parentName"]),u=l(t),d=c,f=u["".concat(p,".").concat(d)]||u[d]||m[d]||o;return t?r.createElement(f,i(i({ref:n},s),{},{components:t})):r.createElement(f,i({ref:n},s))}));function f(e,n){var t=arguments,c=n&&n.mdxType;if("string"==typeof e||c){var o=t.length,i=new Array(o);i[0]=d;var a={};for(var p in n)hasOwnProperty.call(n,p)&&(a[p]=n[p]);a.originalType=e,a[u]="string"==typeof e?e:c,i[1]=a;for(var l=2;l{t.r(n),t.d(n,{assets:()=>p,contentTitle:()=>i,default:()=>m,frontMatter:()=>o,metadata:()=>a,toc:()=>l});var r=t(8168),c=(t(6540),t(5680));const o={},i=void 0,a={unversionedId:"study/devops/Linux\u8fd0\u7ef4-\u9ad8\u5e76\u53d1",id:"study/devops/Linux\u8fd0\u7ef4-\u9ad8\u5e76\u53d1",title:"Linux\u8fd0\u7ef4-\u9ad8\u5e76\u53d1",description:"\u6700\u5927\u6587\u4ef6\u63cf\u8ff0\u7b26",source:"@site/docs/study/devops/Linux\u8fd0\u7ef4-\u9ad8\u5e76\u53d1.md",sourceDirName:"study/devops",slug:"/study/devops/Linux\u8fd0\u7ef4-\u9ad8\u5e76\u53d1",permalink:"/docs/study/devops/Linux\u8fd0\u7ef4-\u9ad8\u5e76\u53d1",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Linux\u8fd0\u7ef4-\u76d1\u63a7\u6570\u636e",permalink:"/docs/study/devops/Linux\u8fd0\u7ef4-\u76d1\u63a7\u6570\u636e"},next:{title:"centos-nginx",permalink:"/docs/study/devops/centos-gninx-app"}},p={},l=[{value:"\u6700\u5927\u6587\u4ef6\u63cf\u8ff0\u7b26",id:"\u6700\u5927\u6587\u4ef6\u63cf\u8ff0\u7b26",level:3},{value:"max-file",id:"max-file",level:3},{value:"\u5185\u6838\u53c2\u6570\u4f18\u5316/etc/sysctl.conf",id:"\u5185\u6838\u53c2\u6570\u4f18\u5316etcsysctlconf",level:3}],s={toc:l},u="wrapper";function m(e){let{components:n,...t}=e;return(0,c.yg)(u,(0,r.A)({},s,t,{components:n,mdxType:"MDXLayout"}),(0,c.yg)("h3",{id:"\u6700\u5927\u6587\u4ef6\u63cf\u8ff0\u7b26"},"\u6700\u5927\u6587\u4ef6\u63cf\u8ff0\u7b26"),(0,c.yg)("p",null,"ulimit -n \u63a7\u5236\u8fdb\u7a0b\u7ea7\u522b\u80fd\u591f\u6253\u5f00\u7684\u6587\u4ef6\u53e5\u67c4\u7684\u6570\u91cf\u3002\u63d0\u4f9b\u5bf9shell\u53ca\u5176\u542f\u52a8\u7684\u8fdb\u7a0b\u7684\u53ef\u7528\u6587\u4ef6\u53e5\u67c4\u7684\u63a7\u5236\u3002\u8fd9\u662f\u8fdb\u7a0b\u7ea7\u522b\u7684\u3002"),(0,c.yg)("pre",null,(0,c.yg)("code",{parentName:"pre",className:"language-shell"},'#\u6700\u5927\u6587\u4ef6\u63cf\u8ff0\u7b26 100W\nulimit -SHn 1000000 \necho "ulimit -SHn 1000000" >> /etc/rc.d/rc.local \nsource /etc/rc.d/rc.local\nulimit -n\n\n')),(0,c.yg)("h3",{id:"max-file"},"max-file"),(0,c.yg)("h3",{id:""}),(0,c.yg)("p",null,"\u8868\u793a\u7cfb\u7edf\u7ea7\u522b\u7684\u80fd\u591f\u6253\u5f00\u7684\u6587\u4ef6\u53e5\u67c4\u7684\u6570\u91cf\u3002\u662f\u5bf9\u6574\u4e2a\u7cfb\u7edf\u7684\u9650\u5236\uff0c\u5e76\u4e0d\u662f\u9488\u5bf9\u7528\u6237\u7684\u3002"),(0,c.yg)("pre",null,(0,c.yg)("code",{parentName:"pre",className:"language-shell"},"#\u67e5\u770b\u7cfb\u7edf\u7ea7\u522b\u7684\u80fd\u591f\u6253\u5f00\u7684\u6587\u4ef6\u53e5\u67c4\u7684\u6570\u91cf\uff0cCentos7\u9ed8\u8ba4\u662f794168\ncat /proc/sys/fs/file-max\n#\nvim /etc/sysctl.conf\n#\nfs.file-max = 1000000\n#\u7136\u540e\u6267\u884c\u547d\u4ee4\uff0c\u4f7f\u4fee\u6539\u914d\u7f6e\u7acb\u5373\u751f\u6548\uff1a\nsysctl -p\n")),(0,c.yg)("h3",{id:"\u5185\u6838\u53c2\u6570\u4f18\u5316etcsysctlconf"},"\u5185\u6838\u53c2\u6570\u4f18\u5316/etc/sysctl.conf"),(0,c.yg)("pre",null,(0,c.yg)("code",{parentName:"pre",className:"language-shell"},"#\u5173\u95edipv6\nnet.ipv6.conf.all.disable_ipv6 = 1\nnet.ipv6.conf.default.disable_ipv6 = 1\n\n#\u51b3\u5b9a\u68c0\u67e5\u8fc7\u671f\u591a\u4e45\u90bb\u5c45\u6761\u76ee\nnet.ipv4.neigh.default.gc_stale_time=120\n\n#\u4f7f\u7528arp_announce / arp_ignore\u89e3\u51b3ARP\u6620\u5c04\u95ee\u9898\nnet.ipv4.conf.default.arp_announce = 2\nnet.ipv4.conf.all.arp_announce=2\nnet.ipv4.conf.lo.arp_announce=2 # \u907f\u514d\u653e\u5927\u653b\u51fb\nnet.ipv4.icmp_echo_ignore_broadcasts = 1 # \u5f00\u542f\u6076\u610ficmp\u9519\u8bef\u6d88\u606f\u4fdd\u62a4\nnet.ipv4.icmp_ignore_bogus_error_responses = 1\n\n#\u5904\u7406\u65e0\u6e90\u8def\u7531\u7684\u5305\nnet.ipv4.conf.all.accept_source_route = 0\nnet.ipv4.conf.default.accept_source_route = 0\n\n#core\u6587\u4ef6\u540d\u4e2d\u6dfb\u52a0pid\u4f5c\u4e3a\u6269\u5c55\u540d\nkernel.core_uses_pid = 1 # \u5f00\u542fSYN\u6d2a\u6c34\u653b\u51fb\u4fdd\u62a4\nnet.ipv4.tcp_syncookies = 1\n\n#\u4fee\u6539\u6d88\u606f\u961f\u5217\u957f\u5ea6\nkernel.msgmnb = 65536\nkernel.msgmax = 65536\n\n#timewait\u7684\u6570\u91cf\uff0c\u9ed8\u8ba4180000\nnet.ipv4.tcp_max_tw_buckets = 6000\nnet.ipv4.tcp_sack = 1\nnet.ipv4.tcp_window_scaling = 1\nnet.ipv4.tcp_rmem = 4096 87380 4194304\nnet.ipv4.tcp_wmem = 4096 16384 4194304\nnet.core.wmem_default = 8388608\nnet.core.rmem_default = 8388608\nnet.core.rmem_max = 16777216\nnet.core.wmem_max = 16777216\n\n#\u9650\u5236\u4ec5\u4ec5\u662f\u4e3a\u4e86\u9632\u6b62\u7b80\u5355\u7684DoS \u653b\u51fb\nnet.ipv4.tcp_max_orphans = 3276800\n\n#\u672a\u6536\u5230\u5ba2\u6237\u7aef\u786e\u8ba4\u4fe1\u606f\u7684\u8fde\u63a5\u8bf7\u6c42\u7684\u6700\u5927\u503c\nnet.ipv4.tcp_max_syn_backlog = 262144\nnet.ipv4.tcp_timestamps = 0\n\n#\u5185\u6838\u653e\u5f03\u5efa\u7acb\u8fde\u63a5\u4e4b\u524d\u53d1\u9001SYNACK \u5305\u7684\u6570\u91cf\nnet.ipv4.tcp_synack_retries = 1\n\n#\u5185\u6838\u653e\u5f03\u5efa\u7acb\u8fde\u63a5\u4e4b\u524d\u53d1\u9001SYN \u5305\u7684\u6570\u91cf\nnet.ipv4.tcp_syn_retries = 1\n\n#\u542f\u7528timewait \u5feb\u901f\u56de\u6536\nnet.ipv4.tcp_tw_recycle = 1\n\n#\u5f00\u542f\u91cd\u7528\u3002\u5141\u8bb8\u5c06TIME-WAIT sockets \u91cd\u65b0\u7528\u4e8e\u65b0\u7684TCP \u8fde\u63a5\nnet.ipv4.tcp_tw_reuse = 1\nnet.ipv4.tcp_mem = 94500000 915000000 927000000\nnet.ipv4.tcp_fin_timeout = 1\n\n#\u7136\u540e\u6267\u884c\u4ee5\u4e0b\u547d\u4ee4\u91cd\u8f7d\u914d\u7f6e\nsysctl -p\n")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/3eef7308.b7a089a8.js b/assets/js/3eef7308.1754e1a0.js similarity index 98% rename from assets/js/3eef7308.b7a089a8.js rename to assets/js/3eef7308.1754e1a0.js index a0f7003e5..0672826d3 100644 --- a/assets/js/3eef7308.b7a089a8.js +++ b/assets/js/3eef7308.1754e1a0.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1956],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),c=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=c(e.components);return n.createElement(l.Provider,{value:t},e.children)},d="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,p=u(e,["components","mdxType","originalType","parentName"]),d=c(r),y=o,f=d["".concat(l,".").concat(y)]||d[y]||s[y]||a;return r?n.createElement(f,i(i({ref:t},p),{},{components:r})):n.createElement(f,i({ref:t},p))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=y;var u={};for(var l in t)hasOwnProperty.call(t,l)&&(u[l]=t[l]);u.originalType=e,u[d]="string"==typeof e?e:o,i[1]=u;for(var c=2;c{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>s,frontMatter:()=>a,metadata:()=>u,toc:()=>c});var n=r(8168),o=(r(6540),r(5680));const a={},i=void 0,u={unversionedId:"study/net/UDP",id:"study/net/UDP",title:"UDP",description:"UDP",source:"@site/docs/study/net/UDP.md",sourceDirName:"study/net",slug:"/study/net/UDP",permalink:"/docs/study/net/UDP",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"TCP",permalink:"/docs/study/net/TCP"},next:{title:"Linux ip \u547d\u4ee4",permalink:"/docs/study/net/ip"}},l={},c=[{value:"UDP",id:"udp",level:3},{value:"\u57fa\u4e8e UDP \u7684\u53ef\u9760\u6027\u534f\u8bae",id:"\u57fa\u4e8e-udp-\u7684\u53ef\u9760\u6027\u534f\u8bae",level:3},{value:"QUIC",id:"quic",level:4},{value:"RUDP",id:"rudp",level:4},{value:"RTP",id:"rtp",level:4},{value:"UDT",id:"udt",level:4}],p={toc:c},d="wrapper";function s(e){let{components:t,...r}=e;return(0,o.yg)(d,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"udp"},"UDP"),(0,o.yg)("p",null,"UDP (User Datagram Protocol) \u662f\u4e00\u79cd\u65e0\u8fde\u63a5\u7684\u7f51\u7edc\u4f20\u8f93\u534f\u8bae\uff0c\u5b83\u4e0d\u4fdd\u8bc1\u6570\u636e\u4f20\u8f93\u7684\u53ef\u9760\u6027\u548c\u987a\u5e8f\uff0c\u4f46\u5177\u6709\u9ad8\u6548\u3001\u4f4e\u5ef6\u8fdf\u548c\u7075\u6d3b\u7684\u7279\u70b9\u3002UDP \u5e38\u7528\u4e8e\u5b9e\u65f6\u901a\u4fe1\u5e94\u7528\u7a0b\u5e8f\uff0c\u4f8b\u5982\u97f3\u9891\u3001\u89c6\u9891\u548c\u5728\u7ebf\u6e38\u620f\u7b49\u3002\u7531\u4e8e UDP \u5c06\u6570\u636e\u5305\u53d1\u9001\u5230\u76ee\u6807\u5730\u5740\uff0c\u800c\u4e0d\u9700\u8981\u5efa\u7acb\u8fde\u63a5\uff0c\u56e0\u6b64\u5b83\u6bd4 TCP \u66f4\u52a0\u7b80\u5355\u3001\u8f7b\u91cf\u7ea7\u548c\u5feb\u901f\u3002\u4f46\u662f\uff0c\u7531\u4e8e\u5b83\u4e0d\u63d0\u4f9b\u6570\u636e\u5b8c\u6574\u6027\u68c0\u67e5\u548c\u91cd\u4f20\u673a\u5236\uff0c\u56e0\u6b64\u5728\u4e00\u4e9b\u5e94\u7528\u573a\u666f\u4e0b\u53ef\u80fd\u4f1a\u51fa\u73b0\u6570\u636e\u4e22\u5931\u6216\u9519\u8bef\u7684\u95ee\u9898\u3002"),(0,o.yg)("h3",{id:"\u57fa\u4e8e-udp-\u7684\u53ef\u9760\u6027\u534f\u8bae"},"\u57fa\u4e8e UDP \u7684\u53ef\u9760\u6027\u534f\u8bae"),(0,o.yg)("h4",{id:"quic"},"QUIC"),(0,o.yg)("h4",{id:"rudp"},"RUDP"),(0,o.yg)("h4",{id:"rtp"},"RTP"),(0,o.yg)("h4",{id:"udt"},"UDT"))}s.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1956],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),c=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=c(e.components);return n.createElement(l.Provider,{value:t},e.children)},d="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,p=u(e,["components","mdxType","originalType","parentName"]),d=c(r),y=o,f=d["".concat(l,".").concat(y)]||d[y]||s[y]||a;return r?n.createElement(f,i(i({ref:t},p),{},{components:r})):n.createElement(f,i({ref:t},p))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=y;var u={};for(var l in t)hasOwnProperty.call(t,l)&&(u[l]=t[l]);u.originalType=e,u[d]="string"==typeof e?e:o,i[1]=u;for(var c=2;c{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>s,frontMatter:()=>a,metadata:()=>u,toc:()=>c});var n=r(8168),o=(r(6540),r(5680));const a={},i=void 0,u={unversionedId:"study/net/UDP",id:"study/net/UDP",title:"UDP",description:"UDP",source:"@site/docs/study/net/UDP.md",sourceDirName:"study/net",slug:"/study/net/UDP",permalink:"/docs/study/net/UDP",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"TCP",permalink:"/docs/study/net/TCP"},next:{title:"Linux ip \u547d\u4ee4",permalink:"/docs/study/net/ip"}},l={},c=[{value:"UDP",id:"udp",level:3},{value:"\u57fa\u4e8e UDP \u7684\u53ef\u9760\u6027\u534f\u8bae",id:"\u57fa\u4e8e-udp-\u7684\u53ef\u9760\u6027\u534f\u8bae",level:3},{value:"QUIC",id:"quic",level:4},{value:"RUDP",id:"rudp",level:4},{value:"RTP",id:"rtp",level:4},{value:"UDT",id:"udt",level:4}],p={toc:c},d="wrapper";function s(e){let{components:t,...r}=e;return(0,o.yg)(d,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"udp"},"UDP"),(0,o.yg)("p",null,"UDP (User Datagram Protocol) \u662f\u4e00\u79cd\u65e0\u8fde\u63a5\u7684\u7f51\u7edc\u4f20\u8f93\u534f\u8bae\uff0c\u5b83\u4e0d\u4fdd\u8bc1\u6570\u636e\u4f20\u8f93\u7684\u53ef\u9760\u6027\u548c\u987a\u5e8f\uff0c\u4f46\u5177\u6709\u9ad8\u6548\u3001\u4f4e\u5ef6\u8fdf\u548c\u7075\u6d3b\u7684\u7279\u70b9\u3002UDP \u5e38\u7528\u4e8e\u5b9e\u65f6\u901a\u4fe1\u5e94\u7528\u7a0b\u5e8f\uff0c\u4f8b\u5982\u97f3\u9891\u3001\u89c6\u9891\u548c\u5728\u7ebf\u6e38\u620f\u7b49\u3002\u7531\u4e8e UDP \u5c06\u6570\u636e\u5305\u53d1\u9001\u5230\u76ee\u6807\u5730\u5740\uff0c\u800c\u4e0d\u9700\u8981\u5efa\u7acb\u8fde\u63a5\uff0c\u56e0\u6b64\u5b83\u6bd4 TCP \u66f4\u52a0\u7b80\u5355\u3001\u8f7b\u91cf\u7ea7\u548c\u5feb\u901f\u3002\u4f46\u662f\uff0c\u7531\u4e8e\u5b83\u4e0d\u63d0\u4f9b\u6570\u636e\u5b8c\u6574\u6027\u68c0\u67e5\u548c\u91cd\u4f20\u673a\u5236\uff0c\u56e0\u6b64\u5728\u4e00\u4e9b\u5e94\u7528\u573a\u666f\u4e0b\u53ef\u80fd\u4f1a\u51fa\u73b0\u6570\u636e\u4e22\u5931\u6216\u9519\u8bef\u7684\u95ee\u9898\u3002"),(0,o.yg)("h3",{id:"\u57fa\u4e8e-udp-\u7684\u53ef\u9760\u6027\u534f\u8bae"},"\u57fa\u4e8e UDP \u7684\u53ef\u9760\u6027\u534f\u8bae"),(0,o.yg)("h4",{id:"quic"},"QUIC"),(0,o.yg)("h4",{id:"rudp"},"RUDP"),(0,o.yg)("h4",{id:"rtp"},"RTP"),(0,o.yg)("h4",{id:"udt"},"UDT"))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/3f06bf29.e171fa6f.js b/assets/js/3f06bf29.f013cf67.js similarity index 99% rename from assets/js/3f06bf29.e171fa6f.js rename to assets/js/3f06bf29.f013cf67.js index 852bd841e..7d828afbe 100644 --- a/assets/js/3f06bf29.e171fa6f.js +++ b/assets/js/3f06bf29.f013cf67.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4501],{5680:(e,t,n)=>{n.d(t,{xA:()=>p,yg:()=>d});var r=n(6540);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var u=r.createContext({}),c=function(e){var t=r.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},p=function(e){var t=c(e.components);return r.createElement(u.Provider,{value:t},e.children)},s="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,u=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),s=c(n),m=a,d=s["".concat(u,".").concat(m)]||s[m]||y[m]||o;return n?r.createElement(d,l(l({ref:t},p),{},{components:n})):r.createElement(d,l({ref:t},p))}));function d(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,l=new Array(o);l[0]=m;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i[s]="string"==typeof e?e:a,l[1]=i;for(var c=2;c{n.r(t),n.d(t,{assets:()=>u,contentTitle:()=>l,default:()=>y,frontMatter:()=>o,metadata:()=>i,toc:()=>c});var r=n(8168),a=(n(6540),n(5680));const o={},l=void 0,i={unversionedId:"study/program/C/\u6784\u5efa\u5de5\u5177",id:"study/program/C/\u6784\u5efa\u5de5\u5177",title:"\u6784\u5efa\u5de5\u5177",description:"C \u8bed\u8a00\u6784\u5efa\u5de5\u5177",source:"@site/docs/study/program/C/\u6784\u5efa\u5de5\u5177.md",sourceDirName:"study/program/C",slug:"/study/program/C/\u6784\u5efa\u5de5\u5177",permalink:"/docs/study/program/C/\u6784\u5efa\u5de5\u5177",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u65b9\u6cd5\u5e93-\u9759\u6001\u5e93-\u52a8\u6001\u5e93-\u5171\u4eab\u5e93",permalink:"/docs/study/program/C/\u65b9\u6cd5\u5e93-\u9759\u6001\u5e93-\u52a8\u6001\u5e93-\u5171\u4eab\u5e93"},next:{title:"\u865a\u62df\u7f51\u5361",permalink:"/docs/study/program/C/\u865a\u62df\u7f51\u5361"}},u={},c=[{value:"C \u8bed\u8a00\u6784\u5efa\u5de5\u5177",id:"c-\u8bed\u8a00\u6784\u5efa\u5de5\u5177",level:3},{value:"Make\uff1a",id:"make",level:4},{value:"CMake\uff1a",id:"cmake",level:4},{value:"Autotools\uff1a",id:"autotools",level:4},{value:"SCons\uff1a",id:"scons",level:4},{value:"Ninja\uff1a",id:"ninja",level:4},{value:"bazel",id:"bazel",level:4},{value:"xmake",id:"xmake",level:4},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],p={toc:c},s="wrapper";function y(e){let{components:t,...n}=e;return(0,a.yg)(s,(0,r.A)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"c-\u8bed\u8a00\u6784\u5efa\u5de5\u5177"},"C \u8bed\u8a00\u6784\u5efa\u5de5\u5177"),(0,a.yg)("p",null,"\u5728 C \u8bed\u8a00\u5f00\u53d1\u4e2d\uff0c\u4f7f\u7528\u6784\u5efa\u5de5\u5177\u53ef\u4ee5\u7b80\u5316\u4ee3\u7801\u7f16\u8bd1\u3001\u6784\u5efa\u548c\u90e8\u7f72\u7b49\u8fc7\u7a0b\uff0c\u63d0\u9ad8\u5f00\u53d1\u6548\u7387\u548c\u4ee3\u7801\u8d28\u91cf\u3002"),(0,a.yg)("p",null,"\u4e0b\u9762\u4ecb\u7ecd\u4e00\u4e9b\u5e38\u7528\u7684 C \u8bed\u8a00\u6784\u5efa\u5de5\u5177\u3002"),(0,a.yg)("h4",{id:"make"},"Make\uff1a"),(0,a.yg)("p",null,"Make \u662f\u4e00\u4e2a\u6d41\u884c\u7684\u6784\u5efa\u5de5\u5177\uff0c\u5b83\u53ef\u4ee5\u81ea\u52a8\u5316\u6267\u884c\u4ee3\u7801\u7f16\u8bd1\u3001\u6784\u5efa\u548c\u90e8\u7f72\u7b49\u8fc7\u7a0b\u3002Make \u57fa\u4e8e Makefile \u6587\u4ef6\u8fdb\u884c\u914d\u7f6e\uff0c\u901a\u8fc7 Makefile \u6587\u4ef6\u4e2d\u7684\u89c4\u5219\u548c\u4f9d\u8d56\u5173\u7cfb\uff0c\u53ef\u4ee5\u5b9a\u4e49\u6e90\u4ee3\u7801\u6587\u4ef6\u3001\u5934\u6587\u4ef6\u548c\u53ef\u6267\u884c\u6587\u4ef6\u7b49\u5404\u4e2a\u90e8\u5206\u4e4b\u95f4\u7684\u5173\u7cfb\u3002Make \u5177\u6709\u7b80\u5355\u6613\u7528\u3001\u53ef\u6269\u5c55\u6027\u5f3a\u7b49\u4f18\u70b9\uff0c\u56e0\u6b64\u88ab\u5e7f\u6cdb\u5e94\u7528\u4e8e C \u8bed\u8a00\u5f00\u53d1\u4e2d\u3002"),(0,a.yg)("h4",{id:"cmake"},"CMake\uff1a"),(0,a.yg)("p",null,"CMake \u662f\u4e00\u4e2a\u8de8\u5e73\u53f0\u7684\u6784\u5efa\u5de5\u5177\uff0c\u53ef\u4ee5\u81ea\u52a8\u751f\u6210 Makefile \u6587\u4ef6\uff0c\u4ece\u800c\u7b80\u5316\u6784\u5efa\u8fc7\u7a0b\u3002CMake \u652f\u6301\u591a\u79cd\u5e73\u53f0\u548c\u7f16\u8bd1\u5668\uff0c\u53ef\u4ee5\u901a\u8fc7\u7b80\u5355\u7684\u547d\u4ee4\u884c\u53c2\u6570\u548c\u914d\u7f6e\u6587\u4ef6\u8fdb\u884c\u914d\u7f6e\u3002CMake \u5177\u6709\u7b80\u5355\u6613\u7528\u3001\u8de8\u5e73\u53f0\u3001\u53ef\u6269\u5c55\u6027\u5f3a\u7b49\u4f18\u70b9\uff0c\u56e0\u6b64\u88ab\u5e7f\u6cdb\u5e94\u7528\u4e8e C \u8bed\u8a00\u5f00\u53d1\u4e2d\u3002"),(0,a.yg)("h4",{id:"autotools"},"Autotools\uff1a"),(0,a.yg)("p",null,"Autotools \u662f\u4e00\u4e2a\u6d41\u884c\u7684\u81ea\u52a8\u5316\u6784\u5efa\u5de5\u5177\u96c6\uff0c\u5305\u62ec Autoconf\u3001Automake \u548c Libtool \u7b49\u7ec4\u4ef6\u3002\u5176\u4e2d\uff0cAutoconf \u7528\u4e8e\u68c0\u67e5\u7cfb\u7edf\u73af\u5883\u548c\u751f\u6210 Makefile.in \u6587\u4ef6\uff0cAutomake \u7528\u4e8e\u751f\u6210 Makefile \u6587\u4ef6\uff0cLibtool \u7528\u4e8e\u7ba1\u7406\u5e93\u6587\u4ef6\u7684\u7f16\u8bd1\u548c\u94fe\u63a5\u3002Autotools \u5177\u6709\u8de8\u5e73\u53f0\u3001\u53ef\u6269\u5c55\u6027\u5f3a\u7b49\u4f18\u70b9\uff0c\u88ab\u5e7f\u6cdb\u5e94\u7528\u4e8e C \u8bed\u8a00\u5f00\u53d1\u4e2d\u3002"),(0,a.yg)("p",null,"\u5728 linux \u4e0a\u7f16\u8bd1\u4e00\u4e2a\u5de5\u7a0b\u9700\u8981\u5148\u8c03\u7528./configure,\u5927\u90e8\u5206 linux \u5f00\u6e90\u9879\u76ee\u90fd\u4f7f\u7528 autotools \u7f16\u8bd1\u67b6\u6784\u6765\u751f\u6210 configure \u8fd9\u4e2a\u811a\u672c\u6587\u4ef6\u3002\u901a\u8fc7\u5728\u6267\u884c./configure\uff0c\u4ea7\u751f Makefile,src/Makefile,config.h\uff0c\u4e3a\u4e0b\u4e00\u6b65\u7f16\u8bd1\u505a\u51c6\u5907\u3002\u968f\u540e\u8c03\u7528 make \u8fdb\u884c\u7f16\u8bd1\u3002"),(0,a.yg)("p",null,"GNU \u6784\u5efa\u7cfb\u7edf\uff0c\u662f\u5229\u7528\u811a\u672c\u548c make \u7a0b\u5e8f\u5728\u7279\u5b9a\u7684\u5e73\u53f0\u4e0a\u6784\u5efa\u8f6f\u4ef6\u7684\u8fc7\u7a0b\u3002\u4e00\u822c\u8fc7\u7a0b\u662f configure\uff0cmake\uff0cmake install \u4e09\u90e8\u66f2\u3002\u8fd9\u79cd\u65b9\u5f0f\u6210\u4e3a\u4e00\u79cd\u4e60\u60ef\uff0c\u88ab\u5e7f\u6cdb\u4f7f\u7528\u3002\n\u4e3a\u4e86\u7b80\u5316\u53ef\u79fb\u690d\u6784\u5efa\u7684\u96be\u5ea6\uff0c\u65e9\u671f\u6709\u4e00\u5957 AutoTools \u7684\u5de5\u5177\u5e2e\u52a9\u7a0b\u5e8f\u5458\u6784\u5efa\u8f6f\u4ef6\u3002configure\uff0cmake\uff0cmake install \u4e09\u90e8\u66f2\uff0c\u5927\u591a\u90fd\u662f\u57fa\u4e8e Auto Tools \u6765\u6784\u5efa\u7684\u3002Auto Tools \u662f GNU \u7a0b\u5e8f\u7684\u6807\u51c6\u6784\u5efa\u7cfb\u7edf\u3002"),(0,a.yg)("h4",{id:"scons"},"SCons\uff1a"),(0,a.yg)("p",null,"SCons \u662f\u4e00\u4e2a Python \u7f16\u5199\u7684\u6784\u5efa\u5de5\u5177\uff0c\u5b83\u53ef\u4ee5\u81ea\u52a8\u5316\u6267\u884c\u4ee3\u7801\u7f16\u8bd1\u3001\u6784\u5efa\u548c\u90e8\u7f72\u7b49\u8fc7\u7a0b\u3002SCons \u57fa\u4e8e Python \u8bed\u8a00\u8fdb\u884c\u914d\u7f6e\uff0c\u901a\u8fc7 Python \u811a\u672c\u6587\u4ef6\u4e2d\u7684\u89c4\u5219\u548c\u4f9d\u8d56\u5173\u7cfb\uff0c\u53ef\u4ee5\u5b9a\u4e49\u6e90\u4ee3\u7801\u6587\u4ef6\u3001\u5934\u6587\u4ef6\u548c\u53ef\u6267\u884c\u6587\u4ef6\u7b49\u5404\u4e2a\u90e8\u5206\u4e4b\u95f4\u7684\u5173\u7cfb\u3002SCons \u5177\u6709\u53ef\u6269\u5c55\u6027\u5f3a\u3001\u6613\u4e8e\u914d\u7f6e\u7b49\u4f18\u70b9\uff0c\u56e0\u6b64\u88ab\u5e7f\u6cdb\u5e94\u7528\u4e8e C \u8bed\u8a00\u5f00\u53d1\u4e2d\u3002"),(0,a.yg)("h4",{id:"ninja"},"Ninja\uff1a"),(0,a.yg)("p",null,"Ninja \u662f\u4e00\u4e2a\u5feb\u901f\u7684\u6784\u5efa\u5de5\u5177\uff0c\u53ef\u4ee5\u751f\u6210\u9ad8\u6548\u7684\u6784\u5efa\u56fe\u8c31\uff0c\u4ece\u800c\u63d0\u9ad8\u4ee3\u7801\u7f16\u8bd1\u3001\u6784\u5efa\u548c\u90e8\u7f72\u7684\u901f\u5ea6\u3002Ninja \u53ef\u4ee5\u4f7f\u7528 Ninjafile \u6587\u4ef6\u8fdb\u884c\u914d\u7f6e\uff0c\u901a\u8fc7 Ninjafile \u6587\u4ef6\u4e2d\u7684\u89c4\u5219\u548c\u4f9d\u8d56\u5173\u7cfb\uff0c\u53ef\u4ee5\u5b9a\u4e49\u6e90\u4ee3\u7801\u6587\u4ef6\u3001\u5934\u6587\u4ef6\u548c\u53ef\u6267\u884c\u6587\u4ef6\u7b49\u5404\u4e2a\u90e8\u5206\u4e4b\u95f4\u7684\u5173\u7cfb\u3002Ninja \u5177\u6709\u901f\u5ea6\u5feb\u3001\u53ef\u6269\u5c55\u6027\u5f3a\u7b49\u4f18\u70b9\uff0c\u56e0\u6b64\u88ab\u5e7f\u6cdb\u5e94\u7528\u4e8e C \u8bed\u8a00\u5f00\u53d1\u4e2d\u3002"),(0,a.yg)("h4",{id:"bazel"},"bazel"),(0,a.yg)("h4",{id:"xmake"},"xmake"),(0,a.yg)("p",null,(0,a.yg)("a",{parentName:"p",href:"https://xmake.io/#/zh-cn/"},"https://xmake.io/#/zh-cn/")),(0,a.yg)("p",null,"\u4e00\u4e2a\u57fa\u4e8e Lua \u7684\u8f7b\u91cf\u7ea7\u8de8\u5e73\u53f0\u81ea\u52a8\u6784\u5efa\u5de5\u5177"),(0,a.yg)("p",null,"\u7b80\u5355\uff0c\u5feb\u901f\uff0c\u8f7b\u91cf\u65e0\u4f9d\u8d56"),(0,a.yg)("p",null,"\u73b0\u4ee3\u5316\u7684 C/C++ \u6784\u5efa\u5de5\u5177\uff0c\u5f3a\u5927\u7684\u4f9d\u8d56\u5305\u7ba1\u7406\u548c\u96c6\u6210"),(0,a.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://blog.csdn.net/qq_27870421/article/details/99621737"},"CSDN-Autotools \u7b14\u8bb0")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://www.jianshu.com/p/b3b0a090a01e"},"\u7b80\u4e66-Autotools \u5de5\u5177")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://zhuanlan.zhihu.com/p/638986464"},"\u77e5\u4e4e-GCC\u3001CMake\u3001CMakelist\u3001Make\u3001Makefile\u3001Ninja \u5565\u5173\u7cfb\uff1f\u4e00\u56fe\u8bb2\u900f\uff01"))))}y.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4501],{5680:(e,t,n)=>{n.d(t,{xA:()=>p,yg:()=>d});var r=n(6540);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var u=r.createContext({}),c=function(e){var t=r.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},p=function(e){var t=c(e.components);return r.createElement(u.Provider,{value:t},e.children)},s="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,u=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),s=c(n),m=a,d=s["".concat(u,".").concat(m)]||s[m]||y[m]||o;return n?r.createElement(d,l(l({ref:t},p),{},{components:n})):r.createElement(d,l({ref:t},p))}));function d(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,l=new Array(o);l[0]=m;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i[s]="string"==typeof e?e:a,l[1]=i;for(var c=2;c{n.r(t),n.d(t,{assets:()=>u,contentTitle:()=>l,default:()=>y,frontMatter:()=>o,metadata:()=>i,toc:()=>c});var r=n(8168),a=(n(6540),n(5680));const o={},l=void 0,i={unversionedId:"study/program/C/\u6784\u5efa\u5de5\u5177",id:"study/program/C/\u6784\u5efa\u5de5\u5177",title:"\u6784\u5efa\u5de5\u5177",description:"C \u8bed\u8a00\u6784\u5efa\u5de5\u5177",source:"@site/docs/study/program/C/\u6784\u5efa\u5de5\u5177.md",sourceDirName:"study/program/C",slug:"/study/program/C/\u6784\u5efa\u5de5\u5177",permalink:"/docs/study/program/C/\u6784\u5efa\u5de5\u5177",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u65b9\u6cd5\u5e93-\u9759\u6001\u5e93-\u52a8\u6001\u5e93-\u5171\u4eab\u5e93",permalink:"/docs/study/program/C/\u65b9\u6cd5\u5e93-\u9759\u6001\u5e93-\u52a8\u6001\u5e93-\u5171\u4eab\u5e93"},next:{title:"\u865a\u62df\u7f51\u5361",permalink:"/docs/study/program/C/\u865a\u62df\u7f51\u5361"}},u={},c=[{value:"C \u8bed\u8a00\u6784\u5efa\u5de5\u5177",id:"c-\u8bed\u8a00\u6784\u5efa\u5de5\u5177",level:3},{value:"Make\uff1a",id:"make",level:4},{value:"CMake\uff1a",id:"cmake",level:4},{value:"Autotools\uff1a",id:"autotools",level:4},{value:"SCons\uff1a",id:"scons",level:4},{value:"Ninja\uff1a",id:"ninja",level:4},{value:"bazel",id:"bazel",level:4},{value:"xmake",id:"xmake",level:4},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],p={toc:c},s="wrapper";function y(e){let{components:t,...n}=e;return(0,a.yg)(s,(0,r.A)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"c-\u8bed\u8a00\u6784\u5efa\u5de5\u5177"},"C \u8bed\u8a00\u6784\u5efa\u5de5\u5177"),(0,a.yg)("p",null,"\u5728 C \u8bed\u8a00\u5f00\u53d1\u4e2d\uff0c\u4f7f\u7528\u6784\u5efa\u5de5\u5177\u53ef\u4ee5\u7b80\u5316\u4ee3\u7801\u7f16\u8bd1\u3001\u6784\u5efa\u548c\u90e8\u7f72\u7b49\u8fc7\u7a0b\uff0c\u63d0\u9ad8\u5f00\u53d1\u6548\u7387\u548c\u4ee3\u7801\u8d28\u91cf\u3002"),(0,a.yg)("p",null,"\u4e0b\u9762\u4ecb\u7ecd\u4e00\u4e9b\u5e38\u7528\u7684 C \u8bed\u8a00\u6784\u5efa\u5de5\u5177\u3002"),(0,a.yg)("h4",{id:"make"},"Make\uff1a"),(0,a.yg)("p",null,"Make \u662f\u4e00\u4e2a\u6d41\u884c\u7684\u6784\u5efa\u5de5\u5177\uff0c\u5b83\u53ef\u4ee5\u81ea\u52a8\u5316\u6267\u884c\u4ee3\u7801\u7f16\u8bd1\u3001\u6784\u5efa\u548c\u90e8\u7f72\u7b49\u8fc7\u7a0b\u3002Make \u57fa\u4e8e Makefile \u6587\u4ef6\u8fdb\u884c\u914d\u7f6e\uff0c\u901a\u8fc7 Makefile \u6587\u4ef6\u4e2d\u7684\u89c4\u5219\u548c\u4f9d\u8d56\u5173\u7cfb\uff0c\u53ef\u4ee5\u5b9a\u4e49\u6e90\u4ee3\u7801\u6587\u4ef6\u3001\u5934\u6587\u4ef6\u548c\u53ef\u6267\u884c\u6587\u4ef6\u7b49\u5404\u4e2a\u90e8\u5206\u4e4b\u95f4\u7684\u5173\u7cfb\u3002Make \u5177\u6709\u7b80\u5355\u6613\u7528\u3001\u53ef\u6269\u5c55\u6027\u5f3a\u7b49\u4f18\u70b9\uff0c\u56e0\u6b64\u88ab\u5e7f\u6cdb\u5e94\u7528\u4e8e C \u8bed\u8a00\u5f00\u53d1\u4e2d\u3002"),(0,a.yg)("h4",{id:"cmake"},"CMake\uff1a"),(0,a.yg)("p",null,"CMake \u662f\u4e00\u4e2a\u8de8\u5e73\u53f0\u7684\u6784\u5efa\u5de5\u5177\uff0c\u53ef\u4ee5\u81ea\u52a8\u751f\u6210 Makefile \u6587\u4ef6\uff0c\u4ece\u800c\u7b80\u5316\u6784\u5efa\u8fc7\u7a0b\u3002CMake \u652f\u6301\u591a\u79cd\u5e73\u53f0\u548c\u7f16\u8bd1\u5668\uff0c\u53ef\u4ee5\u901a\u8fc7\u7b80\u5355\u7684\u547d\u4ee4\u884c\u53c2\u6570\u548c\u914d\u7f6e\u6587\u4ef6\u8fdb\u884c\u914d\u7f6e\u3002CMake \u5177\u6709\u7b80\u5355\u6613\u7528\u3001\u8de8\u5e73\u53f0\u3001\u53ef\u6269\u5c55\u6027\u5f3a\u7b49\u4f18\u70b9\uff0c\u56e0\u6b64\u88ab\u5e7f\u6cdb\u5e94\u7528\u4e8e C \u8bed\u8a00\u5f00\u53d1\u4e2d\u3002"),(0,a.yg)("h4",{id:"autotools"},"Autotools\uff1a"),(0,a.yg)("p",null,"Autotools \u662f\u4e00\u4e2a\u6d41\u884c\u7684\u81ea\u52a8\u5316\u6784\u5efa\u5de5\u5177\u96c6\uff0c\u5305\u62ec Autoconf\u3001Automake \u548c Libtool \u7b49\u7ec4\u4ef6\u3002\u5176\u4e2d\uff0cAutoconf \u7528\u4e8e\u68c0\u67e5\u7cfb\u7edf\u73af\u5883\u548c\u751f\u6210 Makefile.in \u6587\u4ef6\uff0cAutomake \u7528\u4e8e\u751f\u6210 Makefile \u6587\u4ef6\uff0cLibtool \u7528\u4e8e\u7ba1\u7406\u5e93\u6587\u4ef6\u7684\u7f16\u8bd1\u548c\u94fe\u63a5\u3002Autotools \u5177\u6709\u8de8\u5e73\u53f0\u3001\u53ef\u6269\u5c55\u6027\u5f3a\u7b49\u4f18\u70b9\uff0c\u88ab\u5e7f\u6cdb\u5e94\u7528\u4e8e C \u8bed\u8a00\u5f00\u53d1\u4e2d\u3002"),(0,a.yg)("p",null,"\u5728 linux \u4e0a\u7f16\u8bd1\u4e00\u4e2a\u5de5\u7a0b\u9700\u8981\u5148\u8c03\u7528./configure,\u5927\u90e8\u5206 linux \u5f00\u6e90\u9879\u76ee\u90fd\u4f7f\u7528 autotools \u7f16\u8bd1\u67b6\u6784\u6765\u751f\u6210 configure \u8fd9\u4e2a\u811a\u672c\u6587\u4ef6\u3002\u901a\u8fc7\u5728\u6267\u884c./configure\uff0c\u4ea7\u751f Makefile,src/Makefile,config.h\uff0c\u4e3a\u4e0b\u4e00\u6b65\u7f16\u8bd1\u505a\u51c6\u5907\u3002\u968f\u540e\u8c03\u7528 make \u8fdb\u884c\u7f16\u8bd1\u3002"),(0,a.yg)("p",null,"GNU \u6784\u5efa\u7cfb\u7edf\uff0c\u662f\u5229\u7528\u811a\u672c\u548c make \u7a0b\u5e8f\u5728\u7279\u5b9a\u7684\u5e73\u53f0\u4e0a\u6784\u5efa\u8f6f\u4ef6\u7684\u8fc7\u7a0b\u3002\u4e00\u822c\u8fc7\u7a0b\u662f configure\uff0cmake\uff0cmake install \u4e09\u90e8\u66f2\u3002\u8fd9\u79cd\u65b9\u5f0f\u6210\u4e3a\u4e00\u79cd\u4e60\u60ef\uff0c\u88ab\u5e7f\u6cdb\u4f7f\u7528\u3002\n\u4e3a\u4e86\u7b80\u5316\u53ef\u79fb\u690d\u6784\u5efa\u7684\u96be\u5ea6\uff0c\u65e9\u671f\u6709\u4e00\u5957 AutoTools \u7684\u5de5\u5177\u5e2e\u52a9\u7a0b\u5e8f\u5458\u6784\u5efa\u8f6f\u4ef6\u3002configure\uff0cmake\uff0cmake install \u4e09\u90e8\u66f2\uff0c\u5927\u591a\u90fd\u662f\u57fa\u4e8e Auto Tools \u6765\u6784\u5efa\u7684\u3002Auto Tools \u662f GNU \u7a0b\u5e8f\u7684\u6807\u51c6\u6784\u5efa\u7cfb\u7edf\u3002"),(0,a.yg)("h4",{id:"scons"},"SCons\uff1a"),(0,a.yg)("p",null,"SCons \u662f\u4e00\u4e2a Python \u7f16\u5199\u7684\u6784\u5efa\u5de5\u5177\uff0c\u5b83\u53ef\u4ee5\u81ea\u52a8\u5316\u6267\u884c\u4ee3\u7801\u7f16\u8bd1\u3001\u6784\u5efa\u548c\u90e8\u7f72\u7b49\u8fc7\u7a0b\u3002SCons \u57fa\u4e8e Python \u8bed\u8a00\u8fdb\u884c\u914d\u7f6e\uff0c\u901a\u8fc7 Python \u811a\u672c\u6587\u4ef6\u4e2d\u7684\u89c4\u5219\u548c\u4f9d\u8d56\u5173\u7cfb\uff0c\u53ef\u4ee5\u5b9a\u4e49\u6e90\u4ee3\u7801\u6587\u4ef6\u3001\u5934\u6587\u4ef6\u548c\u53ef\u6267\u884c\u6587\u4ef6\u7b49\u5404\u4e2a\u90e8\u5206\u4e4b\u95f4\u7684\u5173\u7cfb\u3002SCons \u5177\u6709\u53ef\u6269\u5c55\u6027\u5f3a\u3001\u6613\u4e8e\u914d\u7f6e\u7b49\u4f18\u70b9\uff0c\u56e0\u6b64\u88ab\u5e7f\u6cdb\u5e94\u7528\u4e8e C \u8bed\u8a00\u5f00\u53d1\u4e2d\u3002"),(0,a.yg)("h4",{id:"ninja"},"Ninja\uff1a"),(0,a.yg)("p",null,"Ninja \u662f\u4e00\u4e2a\u5feb\u901f\u7684\u6784\u5efa\u5de5\u5177\uff0c\u53ef\u4ee5\u751f\u6210\u9ad8\u6548\u7684\u6784\u5efa\u56fe\u8c31\uff0c\u4ece\u800c\u63d0\u9ad8\u4ee3\u7801\u7f16\u8bd1\u3001\u6784\u5efa\u548c\u90e8\u7f72\u7684\u901f\u5ea6\u3002Ninja \u53ef\u4ee5\u4f7f\u7528 Ninjafile \u6587\u4ef6\u8fdb\u884c\u914d\u7f6e\uff0c\u901a\u8fc7 Ninjafile \u6587\u4ef6\u4e2d\u7684\u89c4\u5219\u548c\u4f9d\u8d56\u5173\u7cfb\uff0c\u53ef\u4ee5\u5b9a\u4e49\u6e90\u4ee3\u7801\u6587\u4ef6\u3001\u5934\u6587\u4ef6\u548c\u53ef\u6267\u884c\u6587\u4ef6\u7b49\u5404\u4e2a\u90e8\u5206\u4e4b\u95f4\u7684\u5173\u7cfb\u3002Ninja \u5177\u6709\u901f\u5ea6\u5feb\u3001\u53ef\u6269\u5c55\u6027\u5f3a\u7b49\u4f18\u70b9\uff0c\u56e0\u6b64\u88ab\u5e7f\u6cdb\u5e94\u7528\u4e8e C \u8bed\u8a00\u5f00\u53d1\u4e2d\u3002"),(0,a.yg)("h4",{id:"bazel"},"bazel"),(0,a.yg)("h4",{id:"xmake"},"xmake"),(0,a.yg)("p",null,(0,a.yg)("a",{parentName:"p",href:"https://xmake.io/#/zh-cn/"},"https://xmake.io/#/zh-cn/")),(0,a.yg)("p",null,"\u4e00\u4e2a\u57fa\u4e8e Lua \u7684\u8f7b\u91cf\u7ea7\u8de8\u5e73\u53f0\u81ea\u52a8\u6784\u5efa\u5de5\u5177"),(0,a.yg)("p",null,"\u7b80\u5355\uff0c\u5feb\u901f\uff0c\u8f7b\u91cf\u65e0\u4f9d\u8d56"),(0,a.yg)("p",null,"\u73b0\u4ee3\u5316\u7684 C/C++ \u6784\u5efa\u5de5\u5177\uff0c\u5f3a\u5927\u7684\u4f9d\u8d56\u5305\u7ba1\u7406\u548c\u96c6\u6210"),(0,a.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://blog.csdn.net/qq_27870421/article/details/99621737"},"CSDN-Autotools \u7b14\u8bb0")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://www.jianshu.com/p/b3b0a090a01e"},"\u7b80\u4e66-Autotools \u5de5\u5177")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://zhuanlan.zhihu.com/p/638986464"},"\u77e5\u4e4e-GCC\u3001CMake\u3001CMakelist\u3001Make\u3001Makefile\u3001Ninja \u5565\u5173\u7cfb\uff1f\u4e00\u56fe\u8bb2\u900f\uff01"))))}y.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/42c9ab86.7624f85d.js b/assets/js/42c9ab86.ae6058ec.js similarity index 98% rename from assets/js/42c9ab86.7624f85d.js rename to assets/js/42c9ab86.ae6058ec.js index 4d97ac9de..6baa33e31 100644 --- a/assets/js/42c9ab86.7624f85d.js +++ b/assets/js/42c9ab86.ae6058ec.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8274],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>y});var n=r(6540);function c(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(c[r]=e[r]);return c}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(c[r]=e[r])}return c}var i=n.createContext({}),p=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(i.Provider,{value:t},e.children)},s="mdxType",f={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,c=e.mdxType,a=e.originalType,i=e.parentName,u=o(e,["components","mdxType","originalType","parentName"]),s=p(r),d=c,y=s["".concat(i,".").concat(d)]||s[d]||f[d]||a;return r?n.createElement(y,l(l({ref:t},u),{},{components:r})):n.createElement(y,l({ref:t},u))}));function y(e,t){var r=arguments,c=t&&t.mdxType;if("string"==typeof e||c){var a=r.length,l=new Array(a);l[0]=d;var o={};for(var i in t)hasOwnProperty.call(t,i)&&(o[i]=t[i]);o.originalType=e,o[s]="string"==typeof e?e:c,l[1]=o;for(var p=2;p{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>l,default:()=>f,frontMatter:()=>a,metadata:()=>o,toc:()=>p});var n=r(8168),c=(r(6540),r(5680));const a={},l="unix pfctl \u9632\u706b\u5899",o={unversionedId:"study/net/pfctl\u9632\u706b\u5899",id:"study/net/pfctl\u9632\u706b\u5899",title:"unix pfctl \u9632\u706b\u5899",description:"iptables \u662f Linux \u4e0b\u7684\u9632\u706b\u5899\uff0c\u53ef\u4ee5\u8fdb\u884c\u6570\u636e\u5305\u7684\u8fc7\u6ee4\uff0c\u5728\u7f51\u7edc\u5c42\u8fdb\u884c\u6570\u636e\u7684\u8f6c\u53d1\u3001\u62e6\u622a\u6216\u4e22\u5f03\u7b49\uff0c\u4f7f\u7528\u975e\u5e38\u666e\u904d\uff0c\u529f\u80fd\u4e5f\u975e\u5e38\u5f3a\u5927\u3002\u4f46\u662f Mac \u4e0b\u6ca1\u6709 iptables\uff0c\u4e3a\u4e86\u5b9e\u73b0\u6d41\u91cf\u8f6c\u53d1\u548c\u8fc7\u6ee4\uff0c\u8981\u4f7f\u7528\u5230 Mac \u81ea\u5e26\u7684 PFctl\u3002PFctl \u5373 control the packet filter\uff0c\u662f Unix LIKE \u7cfb\u7edf\u4e0a\u8fdb\u884c TCP/IP \u6d41\u91cf\u8fc7\u6ee4\u548c\u7f51\u7edc\u5730\u5740\u8f6c\u6362\u7684\u7cfb\u7edf\uff0c\u4e5f\u80fd\u63d0\u4f9b\u6d41\u91cf\u6574\u5f62\u548c\u63a7\u5236\u7b49",source:"@site/docs/study/net/pfctl\u9632\u706b\u5899.md",sourceDirName:"study/net",slug:"/study/net/pfctl\u9632\u706b\u5899",permalink:"/docs/study/net/pfctl\u9632\u706b\u5899",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"P2P \u7f51\u7edc NAT \u7a7f\u900f\u539f\u7406(\u6253\u6d1e\u65b9\u6848)",permalink:"/docs/study/net/p2p"},next:{title:"Linux tc",permalink:"/docs/study/net/tc"}},i={},p=[{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],u={toc:p},s="wrapper";function f(e){let{components:t,...r}=e;return(0,c.yg)(s,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,c.yg)("h1",{id:"unix-pfctl-\u9632\u706b\u5899"},"unix pfctl \u9632\u706b\u5899"),(0,c.yg)("p",null,"iptables \u662f Linux \u4e0b\u7684\u9632\u706b\u5899\uff0c\u53ef\u4ee5\u8fdb\u884c\u6570\u636e\u5305\u7684\u8fc7\u6ee4\uff0c\u5728\u7f51\u7edc\u5c42\u8fdb\u884c\u6570\u636e\u7684\u8f6c\u53d1\u3001\u62e6\u622a\u6216\u4e22\u5f03\u7b49\uff0c\u4f7f\u7528\u975e\u5e38\u666e\u904d\uff0c\u529f\u80fd\u4e5f\u975e\u5e38\u5f3a\u5927\u3002\u4f46\u662f Mac \u4e0b\u6ca1\u6709 iptables\uff0c\u4e3a\u4e86\u5b9e\u73b0\u6d41\u91cf\u8f6c\u53d1\u548c\u8fc7\u6ee4\uff0c\u8981\u4f7f\u7528\u5230 Mac \u81ea\u5e26\u7684 PFctl\u3002PFctl \u5373 control the packet filter\uff0c\u662f Unix LIKE \u7cfb\u7edf\u4e0a\u8fdb\u884c TCP/IP \u6d41\u91cf\u8fc7\u6ee4\u548c\u7f51\u7edc\u5730\u5740\u8f6c\u6362\u7684\u7cfb\u7edf\uff0c\u4e5f\u80fd\u63d0\u4f9b\u6d41\u91cf\u6574\u5f62\u548c\u63a7\u5236\u7b49"),(0,c.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,c.yg)("ul",null,(0,c.yg)("li",{parentName:"ul"},(0,c.yg)("a",{parentName:"li",href:"https://www.imydl.tech/linux-command/c/pfctl.html"},"pfctl")),(0,c.yg)("li",{parentName:"ul"},(0,c.yg)("a",{parentName:"li",href:"https://shidian.baike.com/wikiid/658345936018390300"},"\u8bc6\u5178\u767e\u79d1-PF \u9632\u706b\u5899"))))}f.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8274],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>y});var n=r(6540);function c(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(c[r]=e[r]);return c}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(c[r]=e[r])}return c}var i=n.createContext({}),p=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(i.Provider,{value:t},e.children)},s="mdxType",f={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,c=e.mdxType,a=e.originalType,i=e.parentName,u=o(e,["components","mdxType","originalType","parentName"]),s=p(r),d=c,y=s["".concat(i,".").concat(d)]||s[d]||f[d]||a;return r?n.createElement(y,l(l({ref:t},u),{},{components:r})):n.createElement(y,l({ref:t},u))}));function y(e,t){var r=arguments,c=t&&t.mdxType;if("string"==typeof e||c){var a=r.length,l=new Array(a);l[0]=d;var o={};for(var i in t)hasOwnProperty.call(t,i)&&(o[i]=t[i]);o.originalType=e,o[s]="string"==typeof e?e:c,l[1]=o;for(var p=2;p{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>l,default:()=>f,frontMatter:()=>a,metadata:()=>o,toc:()=>p});var n=r(8168),c=(r(6540),r(5680));const a={},l="unix pfctl \u9632\u706b\u5899",o={unversionedId:"study/net/pfctl\u9632\u706b\u5899",id:"study/net/pfctl\u9632\u706b\u5899",title:"unix pfctl \u9632\u706b\u5899",description:"iptables \u662f Linux \u4e0b\u7684\u9632\u706b\u5899\uff0c\u53ef\u4ee5\u8fdb\u884c\u6570\u636e\u5305\u7684\u8fc7\u6ee4\uff0c\u5728\u7f51\u7edc\u5c42\u8fdb\u884c\u6570\u636e\u7684\u8f6c\u53d1\u3001\u62e6\u622a\u6216\u4e22\u5f03\u7b49\uff0c\u4f7f\u7528\u975e\u5e38\u666e\u904d\uff0c\u529f\u80fd\u4e5f\u975e\u5e38\u5f3a\u5927\u3002\u4f46\u662f Mac \u4e0b\u6ca1\u6709 iptables\uff0c\u4e3a\u4e86\u5b9e\u73b0\u6d41\u91cf\u8f6c\u53d1\u548c\u8fc7\u6ee4\uff0c\u8981\u4f7f\u7528\u5230 Mac \u81ea\u5e26\u7684 PFctl\u3002PFctl \u5373 control the packet filter\uff0c\u662f Unix LIKE \u7cfb\u7edf\u4e0a\u8fdb\u884c TCP/IP \u6d41\u91cf\u8fc7\u6ee4\u548c\u7f51\u7edc\u5730\u5740\u8f6c\u6362\u7684\u7cfb\u7edf\uff0c\u4e5f\u80fd\u63d0\u4f9b\u6d41\u91cf\u6574\u5f62\u548c\u63a7\u5236\u7b49",source:"@site/docs/study/net/pfctl\u9632\u706b\u5899.md",sourceDirName:"study/net",slug:"/study/net/pfctl\u9632\u706b\u5899",permalink:"/docs/study/net/pfctl\u9632\u706b\u5899",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"P2P \u7f51\u7edc NAT \u7a7f\u900f\u539f\u7406(\u6253\u6d1e\u65b9\u6848)",permalink:"/docs/study/net/p2p"},next:{title:"Linux tc",permalink:"/docs/study/net/tc"}},i={},p=[{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],u={toc:p},s="wrapper";function f(e){let{components:t,...r}=e;return(0,c.yg)(s,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,c.yg)("h1",{id:"unix-pfctl-\u9632\u706b\u5899"},"unix pfctl \u9632\u706b\u5899"),(0,c.yg)("p",null,"iptables \u662f Linux \u4e0b\u7684\u9632\u706b\u5899\uff0c\u53ef\u4ee5\u8fdb\u884c\u6570\u636e\u5305\u7684\u8fc7\u6ee4\uff0c\u5728\u7f51\u7edc\u5c42\u8fdb\u884c\u6570\u636e\u7684\u8f6c\u53d1\u3001\u62e6\u622a\u6216\u4e22\u5f03\u7b49\uff0c\u4f7f\u7528\u975e\u5e38\u666e\u904d\uff0c\u529f\u80fd\u4e5f\u975e\u5e38\u5f3a\u5927\u3002\u4f46\u662f Mac \u4e0b\u6ca1\u6709 iptables\uff0c\u4e3a\u4e86\u5b9e\u73b0\u6d41\u91cf\u8f6c\u53d1\u548c\u8fc7\u6ee4\uff0c\u8981\u4f7f\u7528\u5230 Mac \u81ea\u5e26\u7684 PFctl\u3002PFctl \u5373 control the packet filter\uff0c\u662f Unix LIKE \u7cfb\u7edf\u4e0a\u8fdb\u884c TCP/IP \u6d41\u91cf\u8fc7\u6ee4\u548c\u7f51\u7edc\u5730\u5740\u8f6c\u6362\u7684\u7cfb\u7edf\uff0c\u4e5f\u80fd\u63d0\u4f9b\u6d41\u91cf\u6574\u5f62\u548c\u63a7\u5236\u7b49"),(0,c.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,c.yg)("ul",null,(0,c.yg)("li",{parentName:"ul"},(0,c.yg)("a",{parentName:"li",href:"https://www.imydl.tech/linux-command/c/pfctl.html"},"pfctl")),(0,c.yg)("li",{parentName:"ul"},(0,c.yg)("a",{parentName:"li",href:"https://shidian.baike.com/wikiid/658345936018390300"},"\u8bc6\u5178\u767e\u79d1-PF \u9632\u706b\u5899"))))}f.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/44c08670.588425bc.js b/assets/js/44c08670.db8fef05.js similarity index 99% rename from assets/js/44c08670.588425bc.js rename to assets/js/44c08670.db8fef05.js index 3f1dae7d6..27d1a470f 100644 --- a/assets/js/44c08670.588425bc.js +++ b/assets/js/44c08670.db8fef05.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9489],{5680:(e,n,t)=>{t.d(n,{xA:()=>s,yg:()=>g});var r=t(6540);function i(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function l(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function p(e){for(var n=1;n=0||(i[t]=e[t]);return i}(e,n);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}var u=r.createContext({}),o=function(e){var n=r.useContext(u),t=n;return e&&(t="function"==typeof e?e(n):p(p({},n),e)),t},s=function(e){var n=o(e.components);return r.createElement(u.Provider,{value:n},e.children)},c="mdxType",d={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},y=r.forwardRef((function(e,n){var t=e.components,i=e.mdxType,l=e.originalType,u=e.parentName,s=a(e,["components","mdxType","originalType","parentName"]),c=o(t),y=i,g=c["".concat(u,".").concat(y)]||c[y]||d[y]||l;return t?r.createElement(g,p(p({ref:n},s),{},{components:t})):r.createElement(g,p({ref:n},s))}));function g(e,n){var t=arguments,i=n&&n.mdxType;if("string"==typeof e||i){var l=t.length,p=new Array(l);p[0]=y;var a={};for(var u in n)hasOwnProperty.call(n,u)&&(a[u]=n[u]);a.originalType=e,a[c]="string"==typeof e?e:i,p[1]=a;for(var o=2;o{t.r(n),t.d(n,{assets:()=>u,contentTitle:()=>p,default:()=>d,frontMatter:()=>l,metadata:()=>a,toc:()=>o});var r=t(8168),i=(t(6540),t(5680));const l={},p="Linux ip \u547d\u4ee4",a={unversionedId:"study/net/ip",id:"study/net/ip",title:"Linux ip \u547d\u4ee4",description:"ip \u547d\u4ee4\u6765\u81ea iproute \u8f6f\u4ef6\u5305\uff0c\u8f6f\u4ef6\u5305\u63d0\u4f9b\u4e86\u5f88\u591a\u547d\u4ee4\uff08rpm -ql iproute |grep bin\uff09\uff0c\u5982 ss \u547d\u4ee4\u3001bridge\uff0c\u8fd9\u4e9b\u547d\u4ee4\u53ef\u4ee5\u5b8c\u5168\u66ff\u4ee3 ifconfig\u3001netstat\u3001route \u7b49\u547d\u4ee4\u3002",source:"@site/docs/study/net/ip.md",sourceDirName:"study/net",slug:"/study/net/ip",permalink:"/docs/study/net/ip",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"UDP",permalink:"/docs/study/net/UDP"},next:{title:"Linux iptables \u9632\u706b\u5899",permalink:"/docs/study/net/iptables"}},u={},o=[{value:"ip netns",id:"ip-netns",level:3},{value:"ip address",id:"ip-address",level:3},{value:"ip route",id:"ip-route",level:3},{value:"ip link",id:"ip-link",level:3},{value:"ip neigh",id:"ip-neigh",level:3}],s={toc:o},c="wrapper";function d(e){let{components:n,...t}=e;return(0,i.yg)(c,(0,r.A)({},s,t,{components:n,mdxType:"MDXLayout"}),(0,i.yg)("h1",{id:"linux-ip-\u547d\u4ee4"},"Linux ip \u547d\u4ee4"),(0,i.yg)("p",null,"ip \u547d\u4ee4\u6765\u81ea iproute \u8f6f\u4ef6\u5305\uff0c\u8f6f\u4ef6\u5305\u63d0\u4f9b\u4e86\u5f88\u591a\u547d\u4ee4\uff08rpm -ql iproute |grep bin\uff09\uff0c\u5982 ss \u547d\u4ee4\u3001bridge\uff0c\u8fd9\u4e9b\u547d\u4ee4\u53ef\u4ee5\u5b8c\u5168\u66ff\u4ee3 ifconfig\u3001netstat\u3001route \u7b49\u547d\u4ee4\u3002"),(0,i.yg)("p",null,"ip \u547d\u4ee4\u6709\u5f88\u591a\u5b50\u547d\u4ee4\uff0c\u53ef\u4ee5\u901a\u8fc7 man ip \u67e5\u770b"),(0,i.yg)("p",null,"link - address - addrlabel - route - rule - neigh - ntable - tunnel - tuntap - maddress - mroute - mrule - monitor - xfrm - netns - l2tp - tcp_metrics -\ntoken - macsec"),(0,i.yg)("p",null,"\u67e5\u770b\u547d\u4ee4\u7684\u7528\u6cd5\uff1a"),(0,i.yg)("ul",null,(0,i.yg)("li",{parentName:"ul"},"ip netns help"),(0,i.yg)("li",{parentName:"ul"},"ip address help"),(0,i.yg)("li",{parentName:"ul"},"ip route help"),(0,i.yg)("li",{parentName:"ul"},"ip link help"),(0,i.yg)("li",{parentName:"ul"},"ip neigh help")),(0,i.yg)("p",null,"\u67e5\u770b\u5e2e\u52a9\u6587\u6863\uff1a"),(0,i.yg)("ul",null,(0,i.yg)("li",{parentName:"ul"},"man ip-netns"),(0,i.yg)("li",{parentName:"ul"},"man ip-address"),(0,i.yg)("li",{parentName:"ul"},"man ip-route"),(0,i.yg)("li",{parentName:"ul"},"man ip-link"),(0,i.yg)("li",{parentName:"ul"},"man ip-neighbour")),(0,i.yg)("p",null,"\u66f4\u591a\u547d\u4ee4\u7684\u5e2e\u52a9\u6587\u6863\u53ef\u4ee5\u901a\u8fc7\u4ee5\u4e0b\u547d\u4ee4\u67e5\u770b\uff1a"),(0,i.yg)("p",null,"rpm -ql iproute |grep man"),(0,i.yg)("h3",{id:"ip-netns"},"ip netns"),(0,i.yg)("p",null,"\u67e5\u770b\u6240\u6709\u7f51\u7edc\u547d\u540d\u7a7a\u95f4\uff0c\u7528\u4e8e\u9694\u79bb\u7f51\u7edc"),(0,i.yg)("h3",{id:"ip-address"},"ip address"),(0,i.yg)("p",null,"address \u53ef\u4ee5\u7b80\u5199\u4e3a a \u6216 ad \u6216 add \u6216 addr"),(0,i.yg)("p",null,"\u67e5\u770b ip"),(0,i.yg)("h3",{id:"ip-route"},"ip route"),(0,i.yg)("p",null,"route \u53ef\u4ee5\u7b80\u5199\u4e3a r \u6216 ro \u6216 rou"),(0,i.yg)("p",null,"\u67e5\u770b\u8def\u7531"),(0,i.yg)("h3",{id:"ip-link"},"ip link"),(0,i.yg)("p",null,"link \u8868\u793a\u94fe\u8def\u5c42\u3002link \u53ef\u4ee5\u7b80\u5199\u4e3a l \u6216 li \u6216 lin"),(0,i.yg)("p",null,"ip l\uff1a\u67e5\u770b\u6240\u6709\u7684\u7f51\u7edc\u8bbe\u5907\uff08\u56e0\u4e3a\u662f\u94fe\u8def\u5c42\uff0c\u6240\u4ee5\u53ea\u663e\u793a MAC \u5730\u5740\uff0c\u4e0d\u663e\u793a IP \u5730\u5740\uff09\u3002\u5176\u4e2d\uff0clo\u3001ens33 \u7b49\u662f\u771f\u5b9e\u7684\u7269\u7406\u8bbe\u5907\uff0c\u901a\u8fc7 ip l add \u547d\u4ee4\u521b\u5efa\u7684\u90fd\u662f\u865a\u62df\u8bbe\u5907\u3002"),(0,i.yg)("ul",null,(0,i.yg)("li",{parentName:"ul"},(0,i.yg)("a",{parentName:"li",href:"https://mp.weixin.qq.com/s/sSQFINJ8RO8Nc4XtcyQIjQ"},"\u8f7b\u677e\u7406\u89e3 Docker \u7f51\u7edc\u865a\u62df\u5316\u57fa\u7840\u4e4b veth \u8bbe\u5907\uff01")),(0,i.yg)("li",{parentName:"ul"},(0,i.yg)("a",{parentName:"li",href:"https://mp.weixin.qq.com/s?__biz=MjM5Njg5NDgwNA==&mid=2247485146&idx=1&sn=e5bfc79ba915df1f6a8b32b87ef0ef78&scene=21#wechat_redirect"},"25 \u5f20\u56fe\uff0c\u4e00\u4e07\u5b57\uff0c\u62c6\u89e3 Linux \u7f51\u7edc\u5305\u53d1\u9001\u8fc7\u7a0b")),(0,i.yg)("li",{parentName:"ul"},(0,i.yg)("a",{parentName:"li",href:"https://mp.weixin.qq.com/s?__biz=MjM5Njg5NDgwNA==&mid=2247484058&idx=1&sn=a2621bc27c74b313528eefbc81ee8c0f&scene=21#wechat_redirect"},"\u56fe\u89e3 Linux \u7f51\u7edc\u5305\u63a5\u6536\u8fc7\u7a0b"))),(0,i.yg)("h3",{id:"ip-neigh"},"ip neigh"),(0,i.yg)("p",null,"neigh \u53ef\u4ee5\u7b80\u5199\u4e3a n \u6216 ne \u6216 nei"),(0,i.yg)("p",null,"ip n\uff1a\u67e5\u770b\u5185\u6838\u4e2d\u8bb0\u5f55\u7684 ARP \u8868\uff08\u4e5f\u5c31\u662f\u94fe\u8def\u5c42\u76f4\u8fde\u7684\u4e3b\u673a\u7684 IP \u548c MAC \u5730\u5740\uff0c\u4e0d\u4e00\u5b9a\u51c6\u786e\uff0c\u9700\u8981\u4e4b\u524d\u8fde\u8fc7\uff09\u3002"))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9489],{5680:(e,n,t)=>{t.d(n,{xA:()=>s,yg:()=>g});var r=t(6540);function i(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function l(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function p(e){for(var n=1;n=0||(i[t]=e[t]);return i}(e,n);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}var u=r.createContext({}),o=function(e){var n=r.useContext(u),t=n;return e&&(t="function"==typeof e?e(n):p(p({},n),e)),t},s=function(e){var n=o(e.components);return r.createElement(u.Provider,{value:n},e.children)},c="mdxType",d={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},y=r.forwardRef((function(e,n){var t=e.components,i=e.mdxType,l=e.originalType,u=e.parentName,s=a(e,["components","mdxType","originalType","parentName"]),c=o(t),y=i,g=c["".concat(u,".").concat(y)]||c[y]||d[y]||l;return t?r.createElement(g,p(p({ref:n},s),{},{components:t})):r.createElement(g,p({ref:n},s))}));function g(e,n){var t=arguments,i=n&&n.mdxType;if("string"==typeof e||i){var l=t.length,p=new Array(l);p[0]=y;var a={};for(var u in n)hasOwnProperty.call(n,u)&&(a[u]=n[u]);a.originalType=e,a[c]="string"==typeof e?e:i,p[1]=a;for(var o=2;o{t.r(n),t.d(n,{assets:()=>u,contentTitle:()=>p,default:()=>d,frontMatter:()=>l,metadata:()=>a,toc:()=>o});var r=t(8168),i=(t(6540),t(5680));const l={},p="Linux ip \u547d\u4ee4",a={unversionedId:"study/net/ip",id:"study/net/ip",title:"Linux ip \u547d\u4ee4",description:"ip \u547d\u4ee4\u6765\u81ea iproute \u8f6f\u4ef6\u5305\uff0c\u8f6f\u4ef6\u5305\u63d0\u4f9b\u4e86\u5f88\u591a\u547d\u4ee4\uff08rpm -ql iproute |grep bin\uff09\uff0c\u5982 ss \u547d\u4ee4\u3001bridge\uff0c\u8fd9\u4e9b\u547d\u4ee4\u53ef\u4ee5\u5b8c\u5168\u66ff\u4ee3 ifconfig\u3001netstat\u3001route \u7b49\u547d\u4ee4\u3002",source:"@site/docs/study/net/ip.md",sourceDirName:"study/net",slug:"/study/net/ip",permalink:"/docs/study/net/ip",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"UDP",permalink:"/docs/study/net/UDP"},next:{title:"Linux iptables \u9632\u706b\u5899",permalink:"/docs/study/net/iptables"}},u={},o=[{value:"ip netns",id:"ip-netns",level:3},{value:"ip address",id:"ip-address",level:3},{value:"ip route",id:"ip-route",level:3},{value:"ip link",id:"ip-link",level:3},{value:"ip neigh",id:"ip-neigh",level:3}],s={toc:o},c="wrapper";function d(e){let{components:n,...t}=e;return(0,i.yg)(c,(0,r.A)({},s,t,{components:n,mdxType:"MDXLayout"}),(0,i.yg)("h1",{id:"linux-ip-\u547d\u4ee4"},"Linux ip \u547d\u4ee4"),(0,i.yg)("p",null,"ip \u547d\u4ee4\u6765\u81ea iproute \u8f6f\u4ef6\u5305\uff0c\u8f6f\u4ef6\u5305\u63d0\u4f9b\u4e86\u5f88\u591a\u547d\u4ee4\uff08rpm -ql iproute |grep bin\uff09\uff0c\u5982 ss \u547d\u4ee4\u3001bridge\uff0c\u8fd9\u4e9b\u547d\u4ee4\u53ef\u4ee5\u5b8c\u5168\u66ff\u4ee3 ifconfig\u3001netstat\u3001route \u7b49\u547d\u4ee4\u3002"),(0,i.yg)("p",null,"ip \u547d\u4ee4\u6709\u5f88\u591a\u5b50\u547d\u4ee4\uff0c\u53ef\u4ee5\u901a\u8fc7 man ip \u67e5\u770b"),(0,i.yg)("p",null,"link - address - addrlabel - route - rule - neigh - ntable - tunnel - tuntap - maddress - mroute - mrule - monitor - xfrm - netns - l2tp - tcp_metrics -\ntoken - macsec"),(0,i.yg)("p",null,"\u67e5\u770b\u547d\u4ee4\u7684\u7528\u6cd5\uff1a"),(0,i.yg)("ul",null,(0,i.yg)("li",{parentName:"ul"},"ip netns help"),(0,i.yg)("li",{parentName:"ul"},"ip address help"),(0,i.yg)("li",{parentName:"ul"},"ip route help"),(0,i.yg)("li",{parentName:"ul"},"ip link help"),(0,i.yg)("li",{parentName:"ul"},"ip neigh help")),(0,i.yg)("p",null,"\u67e5\u770b\u5e2e\u52a9\u6587\u6863\uff1a"),(0,i.yg)("ul",null,(0,i.yg)("li",{parentName:"ul"},"man ip-netns"),(0,i.yg)("li",{parentName:"ul"},"man ip-address"),(0,i.yg)("li",{parentName:"ul"},"man ip-route"),(0,i.yg)("li",{parentName:"ul"},"man ip-link"),(0,i.yg)("li",{parentName:"ul"},"man ip-neighbour")),(0,i.yg)("p",null,"\u66f4\u591a\u547d\u4ee4\u7684\u5e2e\u52a9\u6587\u6863\u53ef\u4ee5\u901a\u8fc7\u4ee5\u4e0b\u547d\u4ee4\u67e5\u770b\uff1a"),(0,i.yg)("p",null,"rpm -ql iproute |grep man"),(0,i.yg)("h3",{id:"ip-netns"},"ip netns"),(0,i.yg)("p",null,"\u67e5\u770b\u6240\u6709\u7f51\u7edc\u547d\u540d\u7a7a\u95f4\uff0c\u7528\u4e8e\u9694\u79bb\u7f51\u7edc"),(0,i.yg)("h3",{id:"ip-address"},"ip address"),(0,i.yg)("p",null,"address \u53ef\u4ee5\u7b80\u5199\u4e3a a \u6216 ad \u6216 add \u6216 addr"),(0,i.yg)("p",null,"\u67e5\u770b ip"),(0,i.yg)("h3",{id:"ip-route"},"ip route"),(0,i.yg)("p",null,"route \u53ef\u4ee5\u7b80\u5199\u4e3a r \u6216 ro \u6216 rou"),(0,i.yg)("p",null,"\u67e5\u770b\u8def\u7531"),(0,i.yg)("h3",{id:"ip-link"},"ip link"),(0,i.yg)("p",null,"link \u8868\u793a\u94fe\u8def\u5c42\u3002link \u53ef\u4ee5\u7b80\u5199\u4e3a l \u6216 li \u6216 lin"),(0,i.yg)("p",null,"ip l\uff1a\u67e5\u770b\u6240\u6709\u7684\u7f51\u7edc\u8bbe\u5907\uff08\u56e0\u4e3a\u662f\u94fe\u8def\u5c42\uff0c\u6240\u4ee5\u53ea\u663e\u793a MAC \u5730\u5740\uff0c\u4e0d\u663e\u793a IP \u5730\u5740\uff09\u3002\u5176\u4e2d\uff0clo\u3001ens33 \u7b49\u662f\u771f\u5b9e\u7684\u7269\u7406\u8bbe\u5907\uff0c\u901a\u8fc7 ip l add \u547d\u4ee4\u521b\u5efa\u7684\u90fd\u662f\u865a\u62df\u8bbe\u5907\u3002"),(0,i.yg)("ul",null,(0,i.yg)("li",{parentName:"ul"},(0,i.yg)("a",{parentName:"li",href:"https://mp.weixin.qq.com/s/sSQFINJ8RO8Nc4XtcyQIjQ"},"\u8f7b\u677e\u7406\u89e3 Docker \u7f51\u7edc\u865a\u62df\u5316\u57fa\u7840\u4e4b veth \u8bbe\u5907\uff01")),(0,i.yg)("li",{parentName:"ul"},(0,i.yg)("a",{parentName:"li",href:"https://mp.weixin.qq.com/s?__biz=MjM5Njg5NDgwNA==&mid=2247485146&idx=1&sn=e5bfc79ba915df1f6a8b32b87ef0ef78&scene=21#wechat_redirect"},"25 \u5f20\u56fe\uff0c\u4e00\u4e07\u5b57\uff0c\u62c6\u89e3 Linux \u7f51\u7edc\u5305\u53d1\u9001\u8fc7\u7a0b")),(0,i.yg)("li",{parentName:"ul"},(0,i.yg)("a",{parentName:"li",href:"https://mp.weixin.qq.com/s?__biz=MjM5Njg5NDgwNA==&mid=2247484058&idx=1&sn=a2621bc27c74b313528eefbc81ee8c0f&scene=21#wechat_redirect"},"\u56fe\u89e3 Linux \u7f51\u7edc\u5305\u63a5\u6536\u8fc7\u7a0b"))),(0,i.yg)("h3",{id:"ip-neigh"},"ip neigh"),(0,i.yg)("p",null,"neigh \u53ef\u4ee5\u7b80\u5199\u4e3a n \u6216 ne \u6216 nei"),(0,i.yg)("p",null,"ip n\uff1a\u67e5\u770b\u5185\u6838\u4e2d\u8bb0\u5f55\u7684 ARP \u8868\uff08\u4e5f\u5c31\u662f\u94fe\u8def\u5c42\u76f4\u8fde\u7684\u4e3b\u673a\u7684 IP \u548c MAC \u5730\u5740\uff0c\u4e0d\u4e00\u5b9a\u51c6\u786e\uff0c\u9700\u8981\u4e4b\u524d\u8fde\u8fc7\uff09\u3002"))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/455d41bc.49744cce.js b/assets/js/455d41bc.b93ebf21.js similarity index 98% rename from assets/js/455d41bc.49744cce.js rename to assets/js/455d41bc.b93ebf21.js index 11d8a7753..9a61eb45f 100644 --- a/assets/js/455d41bc.49744cce.js +++ b/assets/js/455d41bc.b93ebf21.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6097],{5680:(e,t,r)=>{r.d(t,{xA:()=>s,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),p=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},s=function(e){var t=p(e.components);return n.createElement(l.Provider,{value:t},e.children)},u="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,s=c(e,["components","mdxType","originalType","parentName"]),u=p(r),d=o,f=u["".concat(l,".").concat(d)]||u[d]||y[d]||a;return r?n.createElement(f,i(i({ref:t},s),{},{components:r})):n.createElement(f,i({ref:t},s))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=d;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[u]="string"==typeof e?e:o,i[1]=c;for(var p=2;p{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>y,frontMatter:()=>a,metadata:()=>c,toc:()=>p});var n=r(8168),o=(r(6540),r(5680));const a={},i=void 0,c={unversionedId:"study/think/\u67b6\u6784/\u6280\u672f\u4e2d\u53f0",id:"study/think/\u67b6\u6784/\u6280\u672f\u4e2d\u53f0",title:"\u6280\u672f\u4e2d\u53f0",description:"\u53c2\u8003",source:"@site/docs/study/think/\u67b6\u6784/\u6280\u672f\u4e2d\u53f0.md",sourceDirName:"study/think/\u67b6\u6784",slug:"/study/think/\u67b6\u6784/\u6280\u672f\u4e2d\u53f0",permalink:"/docs/study/think/\u67b6\u6784/\u6280\u672f\u4e2d\u53f0",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u5f02\u5730\u591a\u6d3b\u67b6\u6784",permalink:"/docs/study/think/\u67b6\u6784/\u5f02\u5730\u591a\u6d3b\u67b6\u6784"},next:{title:"\u67b6\u6784\u56fe\u793a\u4f8b",permalink:"/docs/study/think/\u67b6\u6784/\u67b6\u6784\u56fe\u793a\u4f8b"}},l={},p=[{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],s={toc:p},u="wrapper";function y(e){let{components:t,...r}=e;return(0,o.yg)(u,(0,n.A)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,o.yg)("ol",null,(0,o.yg)("li",{parentName:"ol"},(0,o.yg)("a",{parentName:"li",href:"https://blog.csdn.net/sinat_26811377/article/details/98484190"},"\u6280\u672f\u4e2d\u53f0\u7684\u4f5c\u7528\u662f\u4ec0\u4e48\uff0c\u5728\u4ec0\u4e48\u60c5\u51b5\u4e0b\u624d\u6709\u5fc5\u8981\u505a\u6280\u672f\u4e2d\u53f0\uff1f")),(0,o.yg)("li",{parentName:"ol"},(0,o.yg)("a",{parentName:"li",href:"https://www.cnblogs.com/itlz/p/15786961.html"},"\u8be6\u89e3\u6570\u636e\u4e2d\u53f0\u7684\u5e95\u5c42\u67b6\u6784\u903b\u8f91")),(0,o.yg)("li",{parentName:"ol"},(0,o.yg)("a",{parentName:"li",href:"https://36kr.com/p/1725013082113"},"\u4e2d\u53f0\uff0c\u6211\u4fe1\u4e86\u4f60\u7684\u90aa | \u6df1\u6c2a"))))}y.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6097],{5680:(e,t,r)=>{r.d(t,{xA:()=>s,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),p=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},s=function(e){var t=p(e.components);return n.createElement(l.Provider,{value:t},e.children)},u="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,s=c(e,["components","mdxType","originalType","parentName"]),u=p(r),d=o,f=u["".concat(l,".").concat(d)]||u[d]||y[d]||a;return r?n.createElement(f,i(i({ref:t},s),{},{components:r})):n.createElement(f,i({ref:t},s))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=d;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[u]="string"==typeof e?e:o,i[1]=c;for(var p=2;p{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>y,frontMatter:()=>a,metadata:()=>c,toc:()=>p});var n=r(8168),o=(r(6540),r(5680));const a={},i=void 0,c={unversionedId:"study/think/\u67b6\u6784/\u6280\u672f\u4e2d\u53f0",id:"study/think/\u67b6\u6784/\u6280\u672f\u4e2d\u53f0",title:"\u6280\u672f\u4e2d\u53f0",description:"\u53c2\u8003",source:"@site/docs/study/think/\u67b6\u6784/\u6280\u672f\u4e2d\u53f0.md",sourceDirName:"study/think/\u67b6\u6784",slug:"/study/think/\u67b6\u6784/\u6280\u672f\u4e2d\u53f0",permalink:"/docs/study/think/\u67b6\u6784/\u6280\u672f\u4e2d\u53f0",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u5f02\u5730\u591a\u6d3b\u67b6\u6784",permalink:"/docs/study/think/\u67b6\u6784/\u5f02\u5730\u591a\u6d3b\u67b6\u6784"},next:{title:"\u67b6\u6784\u56fe\u793a\u4f8b",permalink:"/docs/study/think/\u67b6\u6784/\u67b6\u6784\u56fe\u793a\u4f8b"}},l={},p=[{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],s={toc:p},u="wrapper";function y(e){let{components:t,...r}=e;return(0,o.yg)(u,(0,n.A)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,o.yg)("ol",null,(0,o.yg)("li",{parentName:"ol"},(0,o.yg)("a",{parentName:"li",href:"https://blog.csdn.net/sinat_26811377/article/details/98484190"},"\u6280\u672f\u4e2d\u53f0\u7684\u4f5c\u7528\u662f\u4ec0\u4e48\uff0c\u5728\u4ec0\u4e48\u60c5\u51b5\u4e0b\u624d\u6709\u5fc5\u8981\u505a\u6280\u672f\u4e2d\u53f0\uff1f")),(0,o.yg)("li",{parentName:"ol"},(0,o.yg)("a",{parentName:"li",href:"https://www.cnblogs.com/itlz/p/15786961.html"},"\u8be6\u89e3\u6570\u636e\u4e2d\u53f0\u7684\u5e95\u5c42\u67b6\u6784\u903b\u8f91")),(0,o.yg)("li",{parentName:"ol"},(0,o.yg)("a",{parentName:"li",href:"https://36kr.com/p/1725013082113"},"\u4e2d\u53f0\uff0c\u6211\u4fe1\u4e86\u4f60\u7684\u90aa | \u6df1\u6c2a"))))}y.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/489cc4f4.61d45c1b.js b/assets/js/489cc4f4.e32d220b.js similarity index 98% rename from assets/js/489cc4f4.61d45c1b.js rename to assets/js/489cc4f4.e32d220b.js index 9007c1b3c..331e7c6df 100644 --- a/assets/js/489cc4f4.61d45c1b.js +++ b/assets/js/489cc4f4.e32d220b.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7876],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>y});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),s=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},u=function(e){var t=s(e.components);return n.createElement(l.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),p=s(r),m=o,y=p["".concat(l,".").concat(m)]||p[m]||d[m]||a;return r?n.createElement(y,c(c({ref:t},u),{},{components:r})):n.createElement(y,c({ref:t},u))}));function y(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=m;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[p]="string"==typeof e?e:o,c[1]=i;for(var s=2;s{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>c,default:()=>d,frontMatter:()=>a,metadata:()=>i,toc:()=>s});var n=r(8168),o=(r(6540),r(5680));const a={},c=void 0,i={unversionedId:"study/back/mq/MQ\u5b9e\u73b0\u5bf9\u6bd4",id:"study/back/mq/MQ\u5b9e\u73b0\u5bf9\u6bd4",title:"MQ\u5b9e\u73b0\u5bf9\u6bd4",description:"\u56db\u79cd MQ \u5b9e\u73b0\u5bf9\u6bd4",source:"@site/docs/study/back/mq/MQ\u5b9e\u73b0\u5bf9\u6bd4.md",sourceDirName:"study/back/mq",slug:"/study/back/mq/MQ\u5b9e\u73b0\u5bf9\u6bd4",permalink:"/docs/study/back/mq/MQ\u5b9e\u73b0\u5bf9\u6bd4",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"MQTT broker",permalink:"/docs/study/back/mq/MQTT broker"},next:{title:"RocketMQ",permalink:"/docs/study/back/mq/RocketMQ"}},l={},s=[{value:"\u56db\u79cd MQ \u5b9e\u73b0\u5bf9\u6bd4",id:"\u56db\u79cd-mq-\u5b9e\u73b0\u5bf9\u6bd4",level:3}],u={toc:s},p="wrapper";function d(e){let{components:t,...a}=e;return(0,o.yg)(p,(0,n.A)({},u,a,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"\u56db\u79cd-mq-\u5b9e\u73b0\u5bf9\u6bd4"},"\u56db\u79cd MQ \u5b9e\u73b0\u5bf9\u6bd4"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("img",{alt:"\u56db\u79cdMQ\u5b9e\u73b0\u5bf9\u6bd4",src:r(9374).A,width:"1300",height:"666"}))))}d.isMDXComponent=!0},9374:(e,t,r)=>{r.d(t,{A:()=>n});const n=r.p+"assets/images/mq4-7e461104b366281c78b8265d74e21a7a.png"}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7876],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>y});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),s=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},u=function(e){var t=s(e.components);return n.createElement(l.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),p=s(r),m=o,y=p["".concat(l,".").concat(m)]||p[m]||d[m]||a;return r?n.createElement(y,c(c({ref:t},u),{},{components:r})):n.createElement(y,c({ref:t},u))}));function y(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=m;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[p]="string"==typeof e?e:o,c[1]=i;for(var s=2;s{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>c,default:()=>d,frontMatter:()=>a,metadata:()=>i,toc:()=>s});var n=r(8168),o=(r(6540),r(5680));const a={},c=void 0,i={unversionedId:"study/back/mq/MQ\u5b9e\u73b0\u5bf9\u6bd4",id:"study/back/mq/MQ\u5b9e\u73b0\u5bf9\u6bd4",title:"MQ\u5b9e\u73b0\u5bf9\u6bd4",description:"\u56db\u79cd MQ \u5b9e\u73b0\u5bf9\u6bd4",source:"@site/docs/study/back/mq/MQ\u5b9e\u73b0\u5bf9\u6bd4.md",sourceDirName:"study/back/mq",slug:"/study/back/mq/MQ\u5b9e\u73b0\u5bf9\u6bd4",permalink:"/docs/study/back/mq/MQ\u5b9e\u73b0\u5bf9\u6bd4",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"MQTT broker",permalink:"/docs/study/back/mq/MQTT broker"},next:{title:"RocketMQ",permalink:"/docs/study/back/mq/RocketMQ"}},l={},s=[{value:"\u56db\u79cd MQ \u5b9e\u73b0\u5bf9\u6bd4",id:"\u56db\u79cd-mq-\u5b9e\u73b0\u5bf9\u6bd4",level:3}],u={toc:s},p="wrapper";function d(e){let{components:t,...a}=e;return(0,o.yg)(p,(0,n.A)({},u,a,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"\u56db\u79cd-mq-\u5b9e\u73b0\u5bf9\u6bd4"},"\u56db\u79cd MQ \u5b9e\u73b0\u5bf9\u6bd4"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("img",{alt:"\u56db\u79cdMQ\u5b9e\u73b0\u5bf9\u6bd4",src:r(9374).A,width:"1300",height:"666"}))))}d.isMDXComponent=!0},9374:(e,t,r)=>{r.d(t,{A:()=>n});const n=r.p+"assets/images/mq4-7e461104b366281c78b8265d74e21a7a.png"}}]); \ No newline at end of file diff --git a/assets/js/4af85ab8.56171a64.js b/assets/js/4af85ab8.250b0fc7.js similarity index 98% rename from assets/js/4af85ab8.56171a64.js rename to assets/js/4af85ab8.250b0fc7.js index a69233d6f..043a815cf 100644 --- a/assets/js/4af85ab8.56171a64.js +++ b/assets/js/4af85ab8.250b0fc7.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4072],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var i=n.createContext({}),u=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},p=function(e){var t=u(e.components);return n.createElement(i.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,i=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),s=u(r),y=o,f=s["".concat(i,".").concat(y)]||s[y]||d[y]||a;return r?n.createElement(f,c(c({ref:t},p),{},{components:r})):n.createElement(f,c({ref:t},p))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=y;var l={};for(var i in t)hasOwnProperty.call(t,i)&&(l[i]=t[i]);l.originalType=e,l[s]="string"==typeof e?e:o,c[1]=l;for(var u=2;u{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>c,default:()=>d,frontMatter:()=>a,metadata:()=>l,toc:()=>u});var n=r(8168),o=(r(6540),r(5680));const a={},c=void 0,l={unversionedId:"study/devops/\u94fe\u8def\u8ffd\u8e2a\u76d1\u63a7",id:"study/devops/\u94fe\u8def\u8ffd\u8e2a\u76d1\u63a7",title:"\u94fe\u8def\u8ffd\u8e2a\u76d1\u63a7",description:"jaeger",source:"@site/docs/study/devops/\u94fe\u8def\u8ffd\u8e2a\u76d1\u63a7.md",sourceDirName:"study/devops",slug:"/study/devops/\u94fe\u8def\u8ffd\u8e2a\u76d1\u63a7",permalink:"/docs/study/devops/\u94fe\u8def\u8ffd\u8e2a\u76d1\u63a7",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"jar\u8fd0\u7ef4-\u76d1\u63a7",permalink:"/docs/study/devops/jar\u8fd0\u7ef4-\u76d1\u63a7"},next:{title:"\u6982\u8ff0",permalink:"/docs/study/hard/"}},i={},u=[{value:"jaeger",id:"jaeger",level:3},{value:"Prometheus",id:"prometheus",level:3}],p={toc:u},s="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"jaeger"},"jaeger"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://mikechen.cc/32479.html"},"Jaeger \u6700\u5168\u8be6\u89e3"))),(0,o.yg)("h3",{id:"prometheus"},"Prometheus"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://zhuanlan.zhihu.com/p/467438139"},"\u77e5\u4e4e-Prometheus \u7b80\u4ecb"))))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4072],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var i=n.createContext({}),u=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},p=function(e){var t=u(e.components);return n.createElement(i.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,i=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),s=u(r),y=o,f=s["".concat(i,".").concat(y)]||s[y]||d[y]||a;return r?n.createElement(f,c(c({ref:t},p),{},{components:r})):n.createElement(f,c({ref:t},p))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=y;var l={};for(var i in t)hasOwnProperty.call(t,i)&&(l[i]=t[i]);l.originalType=e,l[s]="string"==typeof e?e:o,c[1]=l;for(var u=2;u{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>c,default:()=>d,frontMatter:()=>a,metadata:()=>l,toc:()=>u});var n=r(8168),o=(r(6540),r(5680));const a={},c=void 0,l={unversionedId:"study/devops/\u94fe\u8def\u8ffd\u8e2a\u76d1\u63a7",id:"study/devops/\u94fe\u8def\u8ffd\u8e2a\u76d1\u63a7",title:"\u94fe\u8def\u8ffd\u8e2a\u76d1\u63a7",description:"jaeger",source:"@site/docs/study/devops/\u94fe\u8def\u8ffd\u8e2a\u76d1\u63a7.md",sourceDirName:"study/devops",slug:"/study/devops/\u94fe\u8def\u8ffd\u8e2a\u76d1\u63a7",permalink:"/docs/study/devops/\u94fe\u8def\u8ffd\u8e2a\u76d1\u63a7",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"jar\u8fd0\u7ef4-\u76d1\u63a7",permalink:"/docs/study/devops/jar\u8fd0\u7ef4-\u76d1\u63a7"},next:{title:"\u6982\u8ff0",permalink:"/docs/study/hard/"}},i={},u=[{value:"jaeger",id:"jaeger",level:3},{value:"Prometheus",id:"prometheus",level:3}],p={toc:u},s="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"jaeger"},"jaeger"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://mikechen.cc/32479.html"},"Jaeger \u6700\u5168\u8be6\u89e3"))),(0,o.yg)("h3",{id:"prometheus"},"Prometheus"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://zhuanlan.zhihu.com/p/467438139"},"\u77e5\u4e4e-Prometheus \u7b80\u4ecb"))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4b0ccf38.e82e19f6.js b/assets/js/4b0ccf38.7e87b164.js similarity index 99% rename from assets/js/4b0ccf38.e82e19f6.js rename to assets/js/4b0ccf38.7e87b164.js index aee4e4229..1641e685e 100644 --- a/assets/js/4b0ccf38.e82e19f6.js +++ b/assets/js/4b0ccf38.7e87b164.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3624],{5680:(e,n,t)=>{t.d(n,{xA:()=>c,yg:()=>m});var r=t(6540);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function l(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function i(e){for(var n=1;n=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var u=r.createContext({}),p=function(e){var n=r.useContext(u),t=n;return e&&(t="function"==typeof e?e(n):i(i({},n),e)),t},c=function(e){var n=p(e.components);return r.createElement(u.Provider,{value:n},e.children)},y="mdxType",g={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},s=r.forwardRef((function(e,n){var t=e.components,a=e.mdxType,l=e.originalType,u=e.parentName,c=o(e,["components","mdxType","originalType","parentName"]),y=p(t),s=a,m=y["".concat(u,".").concat(s)]||y[s]||g[s]||l;return t?r.createElement(m,i(i({ref:n},c),{},{components:t})):r.createElement(m,i({ref:n},c))}));function m(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var l=t.length,i=new Array(l);i[0]=s;var o={};for(var u in n)hasOwnProperty.call(n,u)&&(o[u]=n[u]);o.originalType=e,o[y]="string"==typeof e?e:a,i[1]=o;for(var p=2;p{t.r(n),t.d(n,{assets:()=>u,contentTitle:()=>i,default:()=>g,frontMatter:()=>l,metadata:()=>o,toc:()=>p});var r=t(8168),a=(t(6540),t(5680));const l={sidebar_position:1},i="\u7efc\u8ff0",o={unversionedId:"xuanxing/index",id:"xuanxing/index",title:"\u7efc\u8ff0",description:"\u7efc\u5408\u8003\u8651",source:"@site/docs/xuanxing/index.md",sourceDirName:"xuanxing",slug:"/xuanxing/",permalink:"/docs/xuanxing/",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"xuanxingSidebar",next:{title:"\u6982\u8ff0",permalink:"/docs/xuanxing/fe/"}},u={},p=[{value:"\u7efc\u5408\u8003\u8651",id:"\u7efc\u5408\u8003\u8651",level:3},{value:"\u7269\u8054\u7f51\u4e91\u5e73\u53f0\u6280\u672f\u65b9\u5411",id:"\u7269\u8054\u7f51\u4e91\u5e73\u53f0\u6280\u672f\u65b9\u5411",level:3}],c={toc:p},y="wrapper";function g(e){let{components:n,...t}=e;return(0,a.yg)(y,(0,r.A)({},c,t,{components:n,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"\u7efc\u8ff0"},"\u7efc\u8ff0"),(0,a.yg)("h3",{id:"\u7efc\u5408\u8003\u8651"},"\u7efc\u5408\u8003\u8651"),(0,a.yg)("p",null,"\u6280\u672f\u9009\u578b\u662f\u975e\u5e38\u91cd\u8981\u7684\uff0c\u4ed6\u51b3\u5b9a\u4e86\u6280\u672f\u76ee\u6807\u662f\u5426\u80fd\u987a\u5229\u5b8c\u6210\u3002"),(0,a.yg)("p",null,"\u6211\u4eec\u5728\u505a\u7269\u8054\u7f51\u4e91\u5e73\u53f0\u7684\u6280\u672f\u9009\u578b\u65f6\uff0c\u5e94\u8be5\u7efc\u5408\u8003\u8651\u5982\u4e0b\u51e0\u4e2a\u65b9\u9762\uff1a"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u6280\u672f\u76ee\u6807\uff0c\u6280\u672f\u76ee\u6807\u662f\u521d\u521b\u3001\u63d0\u5347\u3001\u8fd8\u662f\u91cd\u6784\uff0c\u4e0d\u540c\u7684\u6280\u672f\u76ee\u6807\u5bf9\u6280\u672f\u9009\u578b\u5f71\u54cd\u5f88\u5927\uff1b"),(0,a.yg)("li",{parentName:"ul"},"\u6280\u672f\u7684\u53d7\u4f17\u7a0b\u5ea6\uff0c\u867d\u7136\u67d0\u4e9b\u6280\u672f\u5f88\u9002\u5408\u505a\u67d0\u4e2a\u4e1c\u897f\uff0c\u4f46\u662f\u53d7\u4f17\u7a0b\u5ea6\u4f4e\u4f1a\u5bfc\u81f4\u62db\u4e0d\u5230\u4eba\u624d\uff1b"),(0,a.yg)("li",{parentName:"ul"},"\u56e2\u961f\u7684\u4eba\u624d\u9636\u68af\uff0c\u90fd\u662f\u5927\u725b\u8fd8\u662f\u4e00\u822c\uff0c\u6216\u8005\u521d\u4e2d\u9ad8\u7ea7\u5206\u5e03\u6bd4\u8f83\u5408\u7406\uff1b")),(0,a.yg)("h3",{id:"\u7269\u8054\u7f51\u4e91\u5e73\u53f0\u6280\u672f\u65b9\u5411"},"\u7269\u8054\u7f51\u4e91\u5e73\u53f0\u6280\u672f\u65b9\u5411"),(0,a.yg)("p",null,"\u5728\u7269\u8054\u7f51\u4e91\u5e73\u53f0\u6280\u672f\u65b9\u5411\u4e0a\uff0c\u5927\u6982\u5206\u4e3a\u524d\u7aef\u3001\u540e\u7aef\u548c\u8fd0\u7ef4\uff1a"),(0,a.yg)("p",null,"\u524d\u7aef\u5927\u6982\u5305\u542b\u4ee5\u4e0b\u51e0\u4e2a\u65b9\u9762\uff1a"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u5b98\u7f51"),(0,a.yg)("li",{parentName:"ul"},"\u7528\u6237\u7aef\u3010PC WEB\u3011"),(0,a.yg)("li",{parentName:"ul"},"\u7ba1\u7406\u7aef\u3010PC WEB\u3011"),(0,a.yg)("li",{parentName:"ul"},"\u79fb\u52a8\u7aef\u3010\u5fae\u4fe1\u5c0f\u7a0b\u5e8f\u3001APP\u3001Mobile WEB\u3011"),(0,a.yg)("li",{parentName:"ul"},"\u7ec4\u6001\u7f16\u8f91\u5668\u3010PC WEB\u7f16\u8f91\u53ca\u8fd0\u884c\u3011\u3010Mobile WEB\u8fd0\u884c\u3011"),(0,a.yg)("li",{parentName:"ul"},"\u5927\u5c4f\u7f16\u8f91\u5668\u3010PC WEB\u7f16\u8f91\u53ca\u8fd0\u884c\u3011")),(0,a.yg)("p",null,"\u540e\u7aef\u6839\u636e\u670d\u52a1\u7279\u70b9\uff0c\u5206\u4e3a\u4e24\u4e2a\u5927\u5c42\uff0c\u4e1a\u52a1\u5c42\u548c\u901a\u8baf\u5c42\uff0c\u4e1a\u52a1\u5c42\u9762\u5411\u7684\u662f\u7528\u6237\uff0c\u901a\u8baf\u5c42\u9762\u5411\u7684\u662f\u8bbe\u5907\u3002"),(0,a.yg)("p",null,"\u540e\u7aef\u4e1a\u52a1\u5c42\u5927\u6982\u5305\u542b\u4ee5\u4e0b\u51e0\u4e2a\u65b9\u9762\uff1a"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"API\u670d\u52a1\uff0c\u9700\u8981\u6839\u636e\u524d\u7aef\u7684\u7aef\u518d\u53bb\u7ec6\u5206\u82e5\u5e72\u670d\u52a1\uff0c\u6280\u672f\u9009\u578b\u5e94\u8be5\u7528\u4e00\u4e2a\uff0c\u4fdd\u6301\u7edf\u4e00\uff1b"),(0,a.yg)("li",{parentName:"ul"},"\u62a5\u8b66\u670d\u52a1\uff0c\u4e3b\u8981\u662f\u7ed9\u7528\u6237\u53d1\u9001\u62a5\u8b66\u4fe1\u606f\uff1b"),(0,a.yg)("li",{parentName:"ul"},"Monitor\u670d\u52a1\uff0c\u4e3b\u8981\u662f\u76d1\u63a7\u6765\u81ea\u540e\u7aef\u901a\u8baf\u5c42\u7684\u6d88\u606f\uff1b")),(0,a.yg)("p",null,"\u540e\u7aef\u901a\u8baf\u5c42\u5927\u6982\u5305\u542b\u4ee5\u4e0b\u51e0\u4e2a\u65b9\u9762\uff1a"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u8bbe\u5907\u63a5\u5165"),(0,a.yg)("li",{parentName:"ul"},"\u6570\u636e\u89e3\u6790"),(0,a.yg)("li",{parentName:"ul"},"\u529f\u80fd\u670d\u52a1")))}g.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3624],{5680:(e,n,t)=>{t.d(n,{xA:()=>c,yg:()=>m});var r=t(6540);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function l(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function i(e){for(var n=1;n=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var u=r.createContext({}),p=function(e){var n=r.useContext(u),t=n;return e&&(t="function"==typeof e?e(n):i(i({},n),e)),t},c=function(e){var n=p(e.components);return r.createElement(u.Provider,{value:n},e.children)},y="mdxType",g={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},s=r.forwardRef((function(e,n){var t=e.components,a=e.mdxType,l=e.originalType,u=e.parentName,c=o(e,["components","mdxType","originalType","parentName"]),y=p(t),s=a,m=y["".concat(u,".").concat(s)]||y[s]||g[s]||l;return t?r.createElement(m,i(i({ref:n},c),{},{components:t})):r.createElement(m,i({ref:n},c))}));function m(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var l=t.length,i=new Array(l);i[0]=s;var o={};for(var u in n)hasOwnProperty.call(n,u)&&(o[u]=n[u]);o.originalType=e,o[y]="string"==typeof e?e:a,i[1]=o;for(var p=2;p{t.r(n),t.d(n,{assets:()=>u,contentTitle:()=>i,default:()=>g,frontMatter:()=>l,metadata:()=>o,toc:()=>p});var r=t(8168),a=(t(6540),t(5680));const l={sidebar_position:1},i="\u7efc\u8ff0",o={unversionedId:"xuanxing/index",id:"xuanxing/index",title:"\u7efc\u8ff0",description:"\u7efc\u5408\u8003\u8651",source:"@site/docs/xuanxing/index.md",sourceDirName:"xuanxing",slug:"/xuanxing/",permalink:"/docs/xuanxing/",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"xuanxingSidebar",next:{title:"\u6982\u8ff0",permalink:"/docs/xuanxing/fe/"}},u={},p=[{value:"\u7efc\u5408\u8003\u8651",id:"\u7efc\u5408\u8003\u8651",level:3},{value:"\u7269\u8054\u7f51\u4e91\u5e73\u53f0\u6280\u672f\u65b9\u5411",id:"\u7269\u8054\u7f51\u4e91\u5e73\u53f0\u6280\u672f\u65b9\u5411",level:3}],c={toc:p},y="wrapper";function g(e){let{components:n,...t}=e;return(0,a.yg)(y,(0,r.A)({},c,t,{components:n,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"\u7efc\u8ff0"},"\u7efc\u8ff0"),(0,a.yg)("h3",{id:"\u7efc\u5408\u8003\u8651"},"\u7efc\u5408\u8003\u8651"),(0,a.yg)("p",null,"\u6280\u672f\u9009\u578b\u662f\u975e\u5e38\u91cd\u8981\u7684\uff0c\u4ed6\u51b3\u5b9a\u4e86\u6280\u672f\u76ee\u6807\u662f\u5426\u80fd\u987a\u5229\u5b8c\u6210\u3002"),(0,a.yg)("p",null,"\u6211\u4eec\u5728\u505a\u7269\u8054\u7f51\u4e91\u5e73\u53f0\u7684\u6280\u672f\u9009\u578b\u65f6\uff0c\u5e94\u8be5\u7efc\u5408\u8003\u8651\u5982\u4e0b\u51e0\u4e2a\u65b9\u9762\uff1a"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u6280\u672f\u76ee\u6807\uff0c\u6280\u672f\u76ee\u6807\u662f\u521d\u521b\u3001\u63d0\u5347\u3001\u8fd8\u662f\u91cd\u6784\uff0c\u4e0d\u540c\u7684\u6280\u672f\u76ee\u6807\u5bf9\u6280\u672f\u9009\u578b\u5f71\u54cd\u5f88\u5927\uff1b"),(0,a.yg)("li",{parentName:"ul"},"\u6280\u672f\u7684\u53d7\u4f17\u7a0b\u5ea6\uff0c\u867d\u7136\u67d0\u4e9b\u6280\u672f\u5f88\u9002\u5408\u505a\u67d0\u4e2a\u4e1c\u897f\uff0c\u4f46\u662f\u53d7\u4f17\u7a0b\u5ea6\u4f4e\u4f1a\u5bfc\u81f4\u62db\u4e0d\u5230\u4eba\u624d\uff1b"),(0,a.yg)("li",{parentName:"ul"},"\u56e2\u961f\u7684\u4eba\u624d\u9636\u68af\uff0c\u90fd\u662f\u5927\u725b\u8fd8\u662f\u4e00\u822c\uff0c\u6216\u8005\u521d\u4e2d\u9ad8\u7ea7\u5206\u5e03\u6bd4\u8f83\u5408\u7406\uff1b")),(0,a.yg)("h3",{id:"\u7269\u8054\u7f51\u4e91\u5e73\u53f0\u6280\u672f\u65b9\u5411"},"\u7269\u8054\u7f51\u4e91\u5e73\u53f0\u6280\u672f\u65b9\u5411"),(0,a.yg)("p",null,"\u5728\u7269\u8054\u7f51\u4e91\u5e73\u53f0\u6280\u672f\u65b9\u5411\u4e0a\uff0c\u5927\u6982\u5206\u4e3a\u524d\u7aef\u3001\u540e\u7aef\u548c\u8fd0\u7ef4\uff1a"),(0,a.yg)("p",null,"\u524d\u7aef\u5927\u6982\u5305\u542b\u4ee5\u4e0b\u51e0\u4e2a\u65b9\u9762\uff1a"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u5b98\u7f51"),(0,a.yg)("li",{parentName:"ul"},"\u7528\u6237\u7aef\u3010PC WEB\u3011"),(0,a.yg)("li",{parentName:"ul"},"\u7ba1\u7406\u7aef\u3010PC WEB\u3011"),(0,a.yg)("li",{parentName:"ul"},"\u79fb\u52a8\u7aef\u3010\u5fae\u4fe1\u5c0f\u7a0b\u5e8f\u3001APP\u3001Mobile WEB\u3011"),(0,a.yg)("li",{parentName:"ul"},"\u7ec4\u6001\u7f16\u8f91\u5668\u3010PC WEB\u7f16\u8f91\u53ca\u8fd0\u884c\u3011\u3010Mobile WEB\u8fd0\u884c\u3011"),(0,a.yg)("li",{parentName:"ul"},"\u5927\u5c4f\u7f16\u8f91\u5668\u3010PC WEB\u7f16\u8f91\u53ca\u8fd0\u884c\u3011")),(0,a.yg)("p",null,"\u540e\u7aef\u6839\u636e\u670d\u52a1\u7279\u70b9\uff0c\u5206\u4e3a\u4e24\u4e2a\u5927\u5c42\uff0c\u4e1a\u52a1\u5c42\u548c\u901a\u8baf\u5c42\uff0c\u4e1a\u52a1\u5c42\u9762\u5411\u7684\u662f\u7528\u6237\uff0c\u901a\u8baf\u5c42\u9762\u5411\u7684\u662f\u8bbe\u5907\u3002"),(0,a.yg)("p",null,"\u540e\u7aef\u4e1a\u52a1\u5c42\u5927\u6982\u5305\u542b\u4ee5\u4e0b\u51e0\u4e2a\u65b9\u9762\uff1a"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"API\u670d\u52a1\uff0c\u9700\u8981\u6839\u636e\u524d\u7aef\u7684\u7aef\u518d\u53bb\u7ec6\u5206\u82e5\u5e72\u670d\u52a1\uff0c\u6280\u672f\u9009\u578b\u5e94\u8be5\u7528\u4e00\u4e2a\uff0c\u4fdd\u6301\u7edf\u4e00\uff1b"),(0,a.yg)("li",{parentName:"ul"},"\u62a5\u8b66\u670d\u52a1\uff0c\u4e3b\u8981\u662f\u7ed9\u7528\u6237\u53d1\u9001\u62a5\u8b66\u4fe1\u606f\uff1b"),(0,a.yg)("li",{parentName:"ul"},"Monitor\u670d\u52a1\uff0c\u4e3b\u8981\u662f\u76d1\u63a7\u6765\u81ea\u540e\u7aef\u901a\u8baf\u5c42\u7684\u6d88\u606f\uff1b")),(0,a.yg)("p",null,"\u540e\u7aef\u901a\u8baf\u5c42\u5927\u6982\u5305\u542b\u4ee5\u4e0b\u51e0\u4e2a\u65b9\u9762\uff1a"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u8bbe\u5907\u63a5\u5165"),(0,a.yg)("li",{parentName:"ul"},"\u6570\u636e\u89e3\u6790"),(0,a.yg)("li",{parentName:"ul"},"\u529f\u80fd\u670d\u52a1")))}g.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4d36f4bb.ac39401b.js b/assets/js/4d36f4bb.24ee3df0.js similarity index 98% rename from assets/js/4d36f4bb.ac39401b.js rename to assets/js/4d36f4bb.24ee3df0.js index de5ae1780..6f4a49dfe 100644 --- a/assets/js/4d36f4bb.ac39401b.js +++ b/assets/js/4d36f4bb.24ee3df0.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7686],{5680:(e,t,r)=>{r.d(t,{xA:()=>l,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),u=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},l=function(e){var t=u(e.components);return n.createElement(s.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,l=c(e,["components","mdxType","originalType","parentName"]),p=u(r),m=o,f=p["".concat(s,".").concat(m)]||p[m]||d[m]||a;return r?n.createElement(f,i(i({ref:t},l),{},{components:r})):n.createElement(f,i({ref:t},l))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=m;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[p]="string"==typeof e?e:o,i[1]=c;for(var u=2;u{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>u});var n=r(8168),o=(r(6540),r(5680));const a={},i=void 0,c={unversionedId:"xuanxing/thingsboard/\u5982\u4f55\u4f7f\u7528",id:"xuanxing/thingsboard/\u5982\u4f55\u4f7f\u7528",title:"\u5982\u4f55\u4f7f\u7528",description:"\u4e0a\u884c\u6d88\u606f",source:"@site/docs/xuanxing/thingsboard/\u5982\u4f55\u4f7f\u7528.md",sourceDirName:"xuanxing/thingsboard",slug:"/xuanxing/thingsboard/\u5982\u4f55\u4f7f\u7528",permalink:"/docs/xuanxing/thingsboard/\u5982\u4f55\u4f7f\u7528",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"xuanxingSidebar",previous:{title:"\u7efc\u8ff0",permalink:"/docs/xuanxing/thingsboard/"},next:{title:"\u6e90\u7801\u7ed3\u6784",permalink:"/docs/xuanxing/thingsboard/\u6e90\u7801\u7ed3\u6784"}},s={},u=[{value:"\u4e0a\u884c\u6d88\u606f",id:"\u4e0a\u884c\u6d88\u606f",level:3}],l={toc:u},p="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(p,(0,n.A)({},l,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"\u4e0a\u884c\u6d88\u606f"},"\u4e0a\u884c\u6d88\u606f"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-shell"},'curl -v -X POST -d "{\\"temperature\\": 27}" http://localhost:8080/api/v1/ZGmef5dqOBYcQSR7EzQs/telemetry --header "Content-Type:application/json"\n\n# Acesss token\nmosquitto_pub -d -q 1 -h "localhost" -p "1883" -t "v1/devices/me/telemetry" -u "rX1zRfYWNoUgAg0FIKUt" -m {"temperature":300}\nmosquitto_pub -d -q 1 -h "localhost" -p "1883" -t "v1/devices/me/telemetry" -u "12345678" -m {"t":250}\nmosquitto_pub -d -q 1 -h "localhost" -p "1883" -t "v1/devices/me/attributes" -u "12345678" -m {"t":25}\n\n# MQTT Basic\nmosquitto_pub -h \'localhost\' -i \'c1\' -u \'u1\' -P \'secret\' -t \'/telemetry\' -m \'{"temperature": 25}\'\nmosquitto_pub -h \'localhost\' -i \'c1\' -u \'t1\' -P \'secret\' -t \'/attributes\' -m \'{"firmwareVersion": "1.3"}\'\n')))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7686],{5680:(e,t,r)=>{r.d(t,{xA:()=>l,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),u=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},l=function(e){var t=u(e.components);return n.createElement(s.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,l=c(e,["components","mdxType","originalType","parentName"]),p=u(r),m=o,f=p["".concat(s,".").concat(m)]||p[m]||d[m]||a;return r?n.createElement(f,i(i({ref:t},l),{},{components:r})):n.createElement(f,i({ref:t},l))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=m;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[p]="string"==typeof e?e:o,i[1]=c;for(var u=2;u{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>u});var n=r(8168),o=(r(6540),r(5680));const a={},i=void 0,c={unversionedId:"xuanxing/thingsboard/\u5982\u4f55\u4f7f\u7528",id:"xuanxing/thingsboard/\u5982\u4f55\u4f7f\u7528",title:"\u5982\u4f55\u4f7f\u7528",description:"\u4e0a\u884c\u6d88\u606f",source:"@site/docs/xuanxing/thingsboard/\u5982\u4f55\u4f7f\u7528.md",sourceDirName:"xuanxing/thingsboard",slug:"/xuanxing/thingsboard/\u5982\u4f55\u4f7f\u7528",permalink:"/docs/xuanxing/thingsboard/\u5982\u4f55\u4f7f\u7528",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"xuanxingSidebar",previous:{title:"\u7efc\u8ff0",permalink:"/docs/xuanxing/thingsboard/"},next:{title:"\u6e90\u7801\u7ed3\u6784",permalink:"/docs/xuanxing/thingsboard/\u6e90\u7801\u7ed3\u6784"}},s={},u=[{value:"\u4e0a\u884c\u6d88\u606f",id:"\u4e0a\u884c\u6d88\u606f",level:3}],l={toc:u},p="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(p,(0,n.A)({},l,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"\u4e0a\u884c\u6d88\u606f"},"\u4e0a\u884c\u6d88\u606f"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-shell"},'curl -v -X POST -d "{\\"temperature\\": 27}" http://localhost:8080/api/v1/ZGmef5dqOBYcQSR7EzQs/telemetry --header "Content-Type:application/json"\n\n# Acesss token\nmosquitto_pub -d -q 1 -h "localhost" -p "1883" -t "v1/devices/me/telemetry" -u "rX1zRfYWNoUgAg0FIKUt" -m {"temperature":300}\nmosquitto_pub -d -q 1 -h "localhost" -p "1883" -t "v1/devices/me/telemetry" -u "12345678" -m {"t":250}\nmosquitto_pub -d -q 1 -h "localhost" -p "1883" -t "v1/devices/me/attributes" -u "12345678" -m {"t":25}\n\n# MQTT Basic\nmosquitto_pub -h \'localhost\' -i \'c1\' -u \'u1\' -P \'secret\' -t \'/telemetry\' -m \'{"temperature": 25}\'\nmosquitto_pub -h \'localhost\' -i \'c1\' -u \'t1\' -P \'secret\' -t \'/attributes\' -m \'{"firmwareVersion": "1.3"}\'\n')))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4d3fd4b9.32d618a8.js b/assets/js/4d3fd4b9.0e9dd5f5.js similarity index 99% rename from assets/js/4d3fd4b9.32d618a8.js rename to assets/js/4d3fd4b9.0e9dd5f5.js index 99bd7ddfc..d53a55366 100644 --- a/assets/js/4d3fd4b9.32d618a8.js +++ b/assets/js/4d3fd4b9.0e9dd5f5.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[435],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>m});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var c=n.createContext({}),s=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},u=function(e){var t=s(e.components);return n.createElement(c.Provider,{value:t},e.children)},p="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),p=s(r),d=a,m=p["".concat(c,".").concat(d)]||p[d]||y[d]||o;return r?n.createElement(m,l(l({ref:t},u),{},{components:r})):n.createElement(m,l({ref:t},u))}));function m(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,l=new Array(o);l[0]=d;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[p]="string"==typeof e?e:a,l[1]=i;for(var s=2;s{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>y,frontMatter:()=>o,metadata:()=>i,toc:()=>s});var n=r(8168),a=(r(6540),r(5680));const o={},l=void 0,i={unversionedId:"study/back/MyBatis",id:"study/back/MyBatis",title:"MyBatis",description:"MyBatis \u7f13\u5b58",source:"@site/docs/study/back/MyBatis.md",sourceDirName:"study/back",slug:"/study/back/MyBatis",permalink:"/docs/study/back/MyBatis",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u9ad8\u5e76\u53d1API",permalink:"/docs/study/back/\u9ad8\u5e76\u53d1API"},next:{title:"pom\u6587\u4ef6\u4e2d\u7684scope\u6807\u7b7e",permalink:"/docs/study/back/maven/pom\u6587\u4ef6\u4e2d\u7684scope\u6807\u7b7e"}},c={},s=[{value:"MyBatis \u7f13\u5b58",id:"mybatis-\u7f13\u5b58",level:3},{value:"\u4f5c\u7528\u8303\u56f4",id:"\u4f5c\u7528\u8303\u56f4",level:4},{value:"\u7f13\u5b58\u4f4d\u7f6e",id:"\u7f13\u5b58\u4f4d\u7f6e",level:4},{value:"\u7f13\u5b58\u8fc7\u671f",id:"\u7f13\u5b58\u8fc7\u671f",level:4}],u={toc:s},p="wrapper";function y(e){let{components:t,...r}=e;return(0,a.yg)(p,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"mybatis-\u7f13\u5b58"},"MyBatis \u7f13\u5b58"),(0,a.yg)("p",null,"myabtis \u7684\u7f13\u5b58\u5206\u4e3a\u4e00\u7ea7\u7f13\u5b58\u548c\u4e8c\u7ea7\u7f13\u5b58\uff0c\u9ed8\u8ba4\u5f00\u542f\u4e00\u7ea7\u7f13\u5b58\uff0c\u5173\u95ed\u4e8c\u7ea7\u7f13\u5b58\uff0c\u4e00\u7ea7\u7f13\u5b58\u65f6 sqlSession \u7ea7\u522b\uff0c\u4e8c\u7ea7\u7f13\u5b58\u662f namespace \u7ea7\u522b\u3002"),(0,a.yg)("h4",{id:"\u4f5c\u7528\u8303\u56f4"},"\u4f5c\u7528\u8303\u56f4"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u4e00\u7ea7\u7f13\u5b58\u662f\u4f1a\u8bdd\u7ea7\u522b\u7684\u7f13\u5b58\uff0c\u5373 sqlSession \u7ea7\u522b\uff0c\u4f1a\u8bdd\u7ed3\u675f\uff0c\u6e05\u9664\u4f1a\u8bdd\u4e2d\u7684\u7f13\u5b58\u6570\u636e\uff0c\u5b9e\u9645\u4ee3\u7801\u4e2d\u901a\u8fc7\u901a\u8fc7\u5f00\u542f\u4e8b\u52a1\u8ba9\u591a\u4e2a\u6570\u636e\u5e93\u64cd\u4f5c\u5171\u4eab\u4e00\u4e2a sqlSession\u3002"),(0,a.yg)("li",{parentName:"ul"},"\u4e8c\u7ea7\u7f13\u5b58: \u5168\u5c40\u7ea7\u522b\uff0c\u4e5f\u53eb namespace \u7ea7\u522b\uff0c\u4f1a\u8bdd\u7ed3\u675f\uff0c\u7f13\u5b58\u4f9d\u7136\u5b58\u5728\uff0c\u591a\u4e2a\u8bf7\u6c42\u53ef\u4ee5\u5171\u4eab\u7f13\u5b58\u6570\u636e\u3002")),(0,a.yg)("h4",{id:"\u7f13\u5b58\u4f4d\u7f6e"},"\u7f13\u5b58\u4f4d\u7f6e"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u4e00\u7ea7\u7f13\u5b58\u7531\u4e8e\u662f sqlSession \u7ea7\u522b\uff0c\u672c\u8d28\u4e0a\u662f\u5728 JVM \u4e2d\u521b\u5efa\u4e00\u4e2a Map \u96c6\u5408\u5bf9\u8c61\u4fdd\u5b58\u7f13\u5b58\u6570\u636e\uff0c\u6240\u4ee5\u7f13\u5b58\u6570\u636e\u4fdd\u7559\u7684\u5730\u65b9\u662f\u672c\u5730 JVM \u5185\u5b58\u4e2d\u3002"),(0,a.yg)("li",{parentName:"ul"},"\u4e8c\u7ea7\u7f13\u5b58\u9ed8\u8ba4\u4e5f\u662f\u4fdd\u5b58\u5728 JVM \u4e2d\uff0c\u4f46\u662f\u53ef\u4ee5\u901a\u8fc7\u914d\u7f6e\u5c06\u7f13\u5b58\u6570\u636e\u4fdd\u5b58\u5230\u7b2c\u4e09\u65b9\u7f13\u5b58\u4e2d\uff0c\u6bd4\u5982 ehcache\u3001redis\u3002\u4fdd\u5b58\u5728 redis \u8fd9\u4e9b\u7684\u5206\u5e03\u5f0f\u7f13\u5b58\u4e2d\uff0c\u80fd\u63d0\u4f9b\u66f4\u597d\u7684\u5206\u5e03\u5f0f\u573a\u666f\u7684\u652f\u6301\u3002")),(0,a.yg)("h4",{id:"\u7f13\u5b58\u8fc7\u671f"},"\u7f13\u5b58\u8fc7\u671f"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u4e00\u7ea7\u7f13\u5b58\u65e0\u8fc7\u671f\u65f6\u95f4\uff0c\u53ea\u6709\u751f\u547d\u5468\u671f\uff0c\u7f13\u5b58\u4f1a\u5148\u653e\u5728\u4e00\u7ea7\u7f13\u5b58\u4e2d\uff0c\u5f53 sqlSession \u4f1a\u8bdd\u63d0\u4ea4\u6216\u8005\u5173\u95ed\u65f6\u624d\u4f1a\u5c06\u4e00\u7ea7\u7f13\u5b58\u5237\u65b0\u5230\u4e8c\u7ea7\u7f13\u5b58\u4e2d\uff1b\u5f00\u542f\u4e8c\u7ea7\u7f13\u5b58\u540e\uff0c\u7528\u6237\u67e5\u8be2\u65f6\uff0c\u4f1a\u5148\u53bb\u4e8c\u7ea7\u7f13\u5b58\u4e2d\u627e\uff0c\u627e\u4e0d\u5230\u5728\u53bb\u4e00\u7ea7\u7f13\u5b58\u4e2d\u627e\uff0c\u7136\u540e\u624d\u53bb\u6570\u636e\u5e93\u67e5\u8be2\uff1b"),(0,a.yg)("li",{parentName:"ul"},"\u4e8c\u7ea7\u7f13\u5b58\u7684\u8fc7\u671f\u65f6\u95f4\u9ed8\u8ba4\u662f 1 \u5c0f\u65f6\uff0c\u5982\u679c\u8fd9\u4e2a cache \u5b58\u6d3b\u4e86\u4e00\u4e2a\u5c0f\u65f6\uff0c\u90a3\u4e48\u5c06\u6574\u4e2a\u6e05\u7a7a\u4e00\u4e0b\u3002\u9700\u8981\u6ce8\u610f\u7684\u662f\uff0c\u5e76\u4e0d\u662f key-value \u7684\u8fc7\u671f\u65f6\u95f4\uff0c\u800c\u662f\u8fd9\u4e2a cache \u7684\u8fc7\u671f\u65f6\u95f4\uff0c\u662f flushInterval\uff0c\u610f\u5473\u7740\u6574\u4e2a\u6e05\u7a7a\u7f13\u5b58 cache\uff0c\u6240\u4ee5\u4e0d\u9700\u8981\u540e\u53f0\u7ebf\u7a0b\u53bb\u5b9a\u65f6\u68c0\u6d4b\uff0c\u6bcf\u5f53\u5b58\u53d6\u6570\u636e\u7684\u65f6\u5019\uff0c\u90fd\u6709\u68c0\u6d4b\u4e00\u4e0b cache \u7684\u751f\u547d\u65f6\u95f4\u3002")))}y.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[435],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>m});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var c=n.createContext({}),s=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},u=function(e){var t=s(e.components);return n.createElement(c.Provider,{value:t},e.children)},p="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),p=s(r),d=a,m=p["".concat(c,".").concat(d)]||p[d]||y[d]||o;return r?n.createElement(m,l(l({ref:t},u),{},{components:r})):n.createElement(m,l({ref:t},u))}));function m(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,l=new Array(o);l[0]=d;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[p]="string"==typeof e?e:a,l[1]=i;for(var s=2;s{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>y,frontMatter:()=>o,metadata:()=>i,toc:()=>s});var n=r(8168),a=(r(6540),r(5680));const o={},l=void 0,i={unversionedId:"study/back/MyBatis",id:"study/back/MyBatis",title:"MyBatis",description:"MyBatis \u7f13\u5b58",source:"@site/docs/study/back/MyBatis.md",sourceDirName:"study/back",slug:"/study/back/MyBatis",permalink:"/docs/study/back/MyBatis",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u9ad8\u5e76\u53d1API",permalink:"/docs/study/back/\u9ad8\u5e76\u53d1API"},next:{title:"pom\u6587\u4ef6\u4e2d\u7684scope\u6807\u7b7e",permalink:"/docs/study/back/maven/pom\u6587\u4ef6\u4e2d\u7684scope\u6807\u7b7e"}},c={},s=[{value:"MyBatis \u7f13\u5b58",id:"mybatis-\u7f13\u5b58",level:3},{value:"\u4f5c\u7528\u8303\u56f4",id:"\u4f5c\u7528\u8303\u56f4",level:4},{value:"\u7f13\u5b58\u4f4d\u7f6e",id:"\u7f13\u5b58\u4f4d\u7f6e",level:4},{value:"\u7f13\u5b58\u8fc7\u671f",id:"\u7f13\u5b58\u8fc7\u671f",level:4}],u={toc:s},p="wrapper";function y(e){let{components:t,...r}=e;return(0,a.yg)(p,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"mybatis-\u7f13\u5b58"},"MyBatis \u7f13\u5b58"),(0,a.yg)("p",null,"myabtis \u7684\u7f13\u5b58\u5206\u4e3a\u4e00\u7ea7\u7f13\u5b58\u548c\u4e8c\u7ea7\u7f13\u5b58\uff0c\u9ed8\u8ba4\u5f00\u542f\u4e00\u7ea7\u7f13\u5b58\uff0c\u5173\u95ed\u4e8c\u7ea7\u7f13\u5b58\uff0c\u4e00\u7ea7\u7f13\u5b58\u65f6 sqlSession \u7ea7\u522b\uff0c\u4e8c\u7ea7\u7f13\u5b58\u662f namespace \u7ea7\u522b\u3002"),(0,a.yg)("h4",{id:"\u4f5c\u7528\u8303\u56f4"},"\u4f5c\u7528\u8303\u56f4"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u4e00\u7ea7\u7f13\u5b58\u662f\u4f1a\u8bdd\u7ea7\u522b\u7684\u7f13\u5b58\uff0c\u5373 sqlSession \u7ea7\u522b\uff0c\u4f1a\u8bdd\u7ed3\u675f\uff0c\u6e05\u9664\u4f1a\u8bdd\u4e2d\u7684\u7f13\u5b58\u6570\u636e\uff0c\u5b9e\u9645\u4ee3\u7801\u4e2d\u901a\u8fc7\u901a\u8fc7\u5f00\u542f\u4e8b\u52a1\u8ba9\u591a\u4e2a\u6570\u636e\u5e93\u64cd\u4f5c\u5171\u4eab\u4e00\u4e2a sqlSession\u3002"),(0,a.yg)("li",{parentName:"ul"},"\u4e8c\u7ea7\u7f13\u5b58: \u5168\u5c40\u7ea7\u522b\uff0c\u4e5f\u53eb namespace \u7ea7\u522b\uff0c\u4f1a\u8bdd\u7ed3\u675f\uff0c\u7f13\u5b58\u4f9d\u7136\u5b58\u5728\uff0c\u591a\u4e2a\u8bf7\u6c42\u53ef\u4ee5\u5171\u4eab\u7f13\u5b58\u6570\u636e\u3002")),(0,a.yg)("h4",{id:"\u7f13\u5b58\u4f4d\u7f6e"},"\u7f13\u5b58\u4f4d\u7f6e"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u4e00\u7ea7\u7f13\u5b58\u7531\u4e8e\u662f sqlSession \u7ea7\u522b\uff0c\u672c\u8d28\u4e0a\u662f\u5728 JVM \u4e2d\u521b\u5efa\u4e00\u4e2a Map \u96c6\u5408\u5bf9\u8c61\u4fdd\u5b58\u7f13\u5b58\u6570\u636e\uff0c\u6240\u4ee5\u7f13\u5b58\u6570\u636e\u4fdd\u7559\u7684\u5730\u65b9\u662f\u672c\u5730 JVM \u5185\u5b58\u4e2d\u3002"),(0,a.yg)("li",{parentName:"ul"},"\u4e8c\u7ea7\u7f13\u5b58\u9ed8\u8ba4\u4e5f\u662f\u4fdd\u5b58\u5728 JVM \u4e2d\uff0c\u4f46\u662f\u53ef\u4ee5\u901a\u8fc7\u914d\u7f6e\u5c06\u7f13\u5b58\u6570\u636e\u4fdd\u5b58\u5230\u7b2c\u4e09\u65b9\u7f13\u5b58\u4e2d\uff0c\u6bd4\u5982 ehcache\u3001redis\u3002\u4fdd\u5b58\u5728 redis \u8fd9\u4e9b\u7684\u5206\u5e03\u5f0f\u7f13\u5b58\u4e2d\uff0c\u80fd\u63d0\u4f9b\u66f4\u597d\u7684\u5206\u5e03\u5f0f\u573a\u666f\u7684\u652f\u6301\u3002")),(0,a.yg)("h4",{id:"\u7f13\u5b58\u8fc7\u671f"},"\u7f13\u5b58\u8fc7\u671f"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u4e00\u7ea7\u7f13\u5b58\u65e0\u8fc7\u671f\u65f6\u95f4\uff0c\u53ea\u6709\u751f\u547d\u5468\u671f\uff0c\u7f13\u5b58\u4f1a\u5148\u653e\u5728\u4e00\u7ea7\u7f13\u5b58\u4e2d\uff0c\u5f53 sqlSession \u4f1a\u8bdd\u63d0\u4ea4\u6216\u8005\u5173\u95ed\u65f6\u624d\u4f1a\u5c06\u4e00\u7ea7\u7f13\u5b58\u5237\u65b0\u5230\u4e8c\u7ea7\u7f13\u5b58\u4e2d\uff1b\u5f00\u542f\u4e8c\u7ea7\u7f13\u5b58\u540e\uff0c\u7528\u6237\u67e5\u8be2\u65f6\uff0c\u4f1a\u5148\u53bb\u4e8c\u7ea7\u7f13\u5b58\u4e2d\u627e\uff0c\u627e\u4e0d\u5230\u5728\u53bb\u4e00\u7ea7\u7f13\u5b58\u4e2d\u627e\uff0c\u7136\u540e\u624d\u53bb\u6570\u636e\u5e93\u67e5\u8be2\uff1b"),(0,a.yg)("li",{parentName:"ul"},"\u4e8c\u7ea7\u7f13\u5b58\u7684\u8fc7\u671f\u65f6\u95f4\u9ed8\u8ba4\u662f 1 \u5c0f\u65f6\uff0c\u5982\u679c\u8fd9\u4e2a cache \u5b58\u6d3b\u4e86\u4e00\u4e2a\u5c0f\u65f6\uff0c\u90a3\u4e48\u5c06\u6574\u4e2a\u6e05\u7a7a\u4e00\u4e0b\u3002\u9700\u8981\u6ce8\u610f\u7684\u662f\uff0c\u5e76\u4e0d\u662f key-value \u7684\u8fc7\u671f\u65f6\u95f4\uff0c\u800c\u662f\u8fd9\u4e2a cache \u7684\u8fc7\u671f\u65f6\u95f4\uff0c\u662f flushInterval\uff0c\u610f\u5473\u7740\u6574\u4e2a\u6e05\u7a7a\u7f13\u5b58 cache\uff0c\u6240\u4ee5\u4e0d\u9700\u8981\u540e\u53f0\u7ebf\u7a0b\u53bb\u5b9a\u65f6\u68c0\u6d4b\uff0c\u6bcf\u5f53\u5b58\u53d6\u6570\u636e\u7684\u65f6\u5019\uff0c\u90fd\u6709\u68c0\u6d4b\u4e00\u4e0b cache \u7684\u751f\u547d\u65f6\u95f4\u3002")))}y.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4d86c8f8.e2121099.js b/assets/js/4d86c8f8.e66c8eb6.js similarity index 98% rename from assets/js/4d86c8f8.e2121099.js rename to assets/js/4d86c8f8.e66c8eb6.js index 1cfb7e177..1f7df4ec5 100644 --- a/assets/js/4d86c8f8.e2121099.js +++ b/assets/js/4d86c8f8.e66c8eb6.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1090],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var p=n.createContext({}),s=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},u=function(e){var t=s(e.components);return n.createElement(p.Provider,{value:t},e.children)},l="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,p=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),l=s(r),y=o,f=l["".concat(p,".").concat(y)]||l[y]||d[y]||a;return r?n.createElement(f,c(c({ref:t},u),{},{components:r})):n.createElement(f,c({ref:t},u))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=y;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[l]="string"==typeof e?e:o,c[1]=i;for(var s=2;s{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>c,default:()=>d,frontMatter:()=>a,metadata:()=>i,toc:()=>s});var n=r(8168),o=(r(6540),r(5680));const a={},c=void 0,i={unversionedId:"study/net/IPV6",id:"study/net/IPV6",title:"IPV6",description:"IPV6 \u8fde\u63a5\u6d4b\u8bd5",source:"@site/docs/study/net/IPV6.md",sourceDirName:"study/net",slug:"/study/net/IPV6",permalink:"/docs/study/net/IPV6",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u7a0b\u5e8f\u8c03\u8bd5",permalink:"/docs/study/system/\u7a0b\u5e8f\u8c03\u8bd5"},next:{title:"MacOS\u7f16\u8bd1OpenVPN",permalink:"/docs/study/net/MacOS\u7f16\u8bd1OpenVPN"}},p={},s=[{value:"IPV6 \u8fde\u63a5\u6d4b\u8bd5",id:"ipv6-\u8fde\u63a5\u6d4b\u8bd5",level:3}],u={toc:s},l="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(l,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"ipv6-\u8fde\u63a5\u6d4b\u8bd5"},"IPV6 \u8fde\u63a5\u6d4b\u8bd5"),(0,o.yg)("p",null,(0,o.yg)("a",{parentName:"p",href:"https://www.test-ipv6.com/"},"https://www.test-ipv6.com/")))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1090],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var p=n.createContext({}),s=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},u=function(e){var t=s(e.components);return n.createElement(p.Provider,{value:t},e.children)},l="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,p=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),l=s(r),y=o,f=l["".concat(p,".").concat(y)]||l[y]||d[y]||a;return r?n.createElement(f,c(c({ref:t},u),{},{components:r})):n.createElement(f,c({ref:t},u))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=y;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[l]="string"==typeof e?e:o,c[1]=i;for(var s=2;s{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>c,default:()=>d,frontMatter:()=>a,metadata:()=>i,toc:()=>s});var n=r(8168),o=(r(6540),r(5680));const a={},c=void 0,i={unversionedId:"study/net/IPV6",id:"study/net/IPV6",title:"IPV6",description:"IPV6 \u8fde\u63a5\u6d4b\u8bd5",source:"@site/docs/study/net/IPV6.md",sourceDirName:"study/net",slug:"/study/net/IPV6",permalink:"/docs/study/net/IPV6",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u7a0b\u5e8f\u8c03\u8bd5",permalink:"/docs/study/system/\u7a0b\u5e8f\u8c03\u8bd5"},next:{title:"MacOS\u7f16\u8bd1OpenVPN",permalink:"/docs/study/net/MacOS\u7f16\u8bd1OpenVPN"}},p={},s=[{value:"IPV6 \u8fde\u63a5\u6d4b\u8bd5",id:"ipv6-\u8fde\u63a5\u6d4b\u8bd5",level:3}],u={toc:s},l="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(l,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"ipv6-\u8fde\u63a5\u6d4b\u8bd5"},"IPV6 \u8fde\u63a5\u6d4b\u8bd5"),(0,o.yg)("p",null,(0,o.yg)("a",{parentName:"p",href:"https://www.test-ipv6.com/"},"https://www.test-ipv6.com/")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4f6149ca.1262502b.js b/assets/js/4f6149ca.d15e5671.js similarity index 98% rename from assets/js/4f6149ca.1262502b.js rename to assets/js/4f6149ca.d15e5671.js index eef12922a..048e7558e 100644 --- a/assets/js/4f6149ca.1262502b.js +++ b/assets/js/4f6149ca.d15e5671.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6923],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>m});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),p=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(l.Provider,{value:t},e.children)},d="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),d=p(r),f=o,m=d["".concat(l,".").concat(f)]||d[f]||s[f]||a;return r?n.createElement(m,i(i({ref:t},u),{},{components:r})):n.createElement(m,i({ref:t},u))}));function m(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=f;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[d]="string"==typeof e?e:o,i[1]=c;for(var p=2;p{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>s,frontMatter:()=>a,metadata:()=>c,toc:()=>p});var n=r(8168),o=(r(6540),r(5680));const a={sidebar_position:1},i="\u6982\u8ff0",c={unversionedId:"iotcloud/devicemanager/index",id:"iotcloud/devicemanager/index",title:"\u6982\u8ff0",description:"\u8bbe\u5907\u7ba1\u7406\u7684\u5185\u5bb9\u5305\u62ec\u8bbe\u5907\u7c7b\u578b\u53ca\u5176\u9644\u5c5e\u529f\u80fd\u7684\u7ba1\u7406\u3001\u8bbe\u5907\u4fe1\u606f\u53ca\u5176\u9644\u5c5e\u529f\u80fd\u7684\u7ba1\u7406\u3001\u8bbe\u5907\u5206\u7ec4\u53ca\u5176\u9644\u5c5e\u529f\u80fd\u7684\u7ba1\u7406\u3002",source:"@site/docs/iotcloud/devicemanager/index.md",sourceDirName:"iotcloud/devicemanager",slug:"/iotcloud/devicemanager/",permalink:"/docs/iotcloud/devicemanager/",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"iotCloudSidebar",previous:{title:"HTTP \u8bbe\u5907\u63a5\u5165",permalink:"/docs/iotcloud/connect/http"},next:{title:"\u8bbe\u5907\u7c7b\u578b\u7ba1\u7406",permalink:"/docs/iotcloud/devicemanager/device-type"}},l={},p=[],u={toc:p},d="wrapper";function s(e){let{components:t,...r}=e;return(0,o.yg)(d,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"\u6982\u8ff0"},"\u6982\u8ff0"),(0,o.yg)("p",null,"\u8bbe\u5907\u7ba1\u7406\u7684\u5185\u5bb9\u5305\u62ec\u8bbe\u5907\u7c7b\u578b\u53ca\u5176\u9644\u5c5e\u529f\u80fd\u7684\u7ba1\u7406\u3001\u8bbe\u5907\u4fe1\u606f\u53ca\u5176\u9644\u5c5e\u529f\u80fd\u7684\u7ba1\u7406\u3001\u8bbe\u5907\u5206\u7ec4\u53ca\u5176\u9644\u5c5e\u529f\u80fd\u7684\u7ba1\u7406\u3002"))}s.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6923],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>m});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),p=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(l.Provider,{value:t},e.children)},d="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),d=p(r),f=o,m=d["".concat(l,".").concat(f)]||d[f]||s[f]||a;return r?n.createElement(m,i(i({ref:t},u),{},{components:r})):n.createElement(m,i({ref:t},u))}));function m(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=f;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[d]="string"==typeof e?e:o,i[1]=c;for(var p=2;p{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>s,frontMatter:()=>a,metadata:()=>c,toc:()=>p});var n=r(8168),o=(r(6540),r(5680));const a={sidebar_position:1},i="\u6982\u8ff0",c={unversionedId:"iotcloud/devicemanager/index",id:"iotcloud/devicemanager/index",title:"\u6982\u8ff0",description:"\u8bbe\u5907\u7ba1\u7406\u7684\u5185\u5bb9\u5305\u62ec\u8bbe\u5907\u7c7b\u578b\u53ca\u5176\u9644\u5c5e\u529f\u80fd\u7684\u7ba1\u7406\u3001\u8bbe\u5907\u4fe1\u606f\u53ca\u5176\u9644\u5c5e\u529f\u80fd\u7684\u7ba1\u7406\u3001\u8bbe\u5907\u5206\u7ec4\u53ca\u5176\u9644\u5c5e\u529f\u80fd\u7684\u7ba1\u7406\u3002",source:"@site/docs/iotcloud/devicemanager/index.md",sourceDirName:"iotcloud/devicemanager",slug:"/iotcloud/devicemanager/",permalink:"/docs/iotcloud/devicemanager/",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"iotCloudSidebar",previous:{title:"HTTP \u8bbe\u5907\u63a5\u5165",permalink:"/docs/iotcloud/connect/http"},next:{title:"\u8bbe\u5907\u7c7b\u578b\u7ba1\u7406",permalink:"/docs/iotcloud/devicemanager/device-type"}},l={},p=[],u={toc:p},d="wrapper";function s(e){let{components:t,...r}=e;return(0,o.yg)(d,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"\u6982\u8ff0"},"\u6982\u8ff0"),(0,o.yg)("p",null,"\u8bbe\u5907\u7ba1\u7406\u7684\u5185\u5bb9\u5305\u62ec\u8bbe\u5907\u7c7b\u578b\u53ca\u5176\u9644\u5c5e\u529f\u80fd\u7684\u7ba1\u7406\u3001\u8bbe\u5907\u4fe1\u606f\u53ca\u5176\u9644\u5c5e\u529f\u80fd\u7684\u7ba1\u7406\u3001\u8bbe\u5907\u5206\u7ec4\u53ca\u5176\u9644\u5c5e\u529f\u80fd\u7684\u7ba1\u7406\u3002"))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4fb554a1.525b0144.js b/assets/js/4fb554a1.92902ee8.js similarity index 99% rename from assets/js/4fb554a1.525b0144.js rename to assets/js/4fb554a1.92902ee8.js index 140925a66..1c952d8ca 100644 --- a/assets/js/4fb554a1.525b0144.js +++ b/assets/js/4fb554a1.92902ee8.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8859],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),s=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=s(e.components);return n.createElement(l.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),p=s(r),y=o,f=p["".concat(l,".").concat(y)]||p[y]||d[y]||a;return r?n.createElement(f,i(i({ref:t},u),{},{components:r})):n.createElement(f,i({ref:t},u))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=y;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[p]="string"==typeof e?e:o,i[1]=c;for(var s=2;s{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>s});var n=r(8168),o=(r(6540),r(5680));const a={sidebar_position:1},i=void 0,c={unversionedId:"study/db/\u5168\u6587\u641c\u7d22\u5f15\u64ce/\u7efc\u5408\u6982\u8ff0",id:"study/db/\u5168\u6587\u641c\u7d22\u5f15\u64ce/\u7efc\u5408\u6982\u8ff0",title:"\u7efc\u5408\u6982\u8ff0",description:"\u4f20\u7edf\u7684\u5173\u7cfb\u578b\u6570\u636e\u5e93\u901a\u8fc7\u7d22\u5f15\u6765\u8fbe\u5230\u5feb\u901f\u67e5\u8be2\u7684\u76ee\u7684\uff0c\u4f46\u662f\u5728\u5168\u6587\u641c\u7d22\u7684\u4e1a\u52a1\u573a\u666f\u4e0b\uff0c\u7d22\u5f15\u4e5f\u65e0\u80fd\u4e3a\u529b\uff0c\u4e3b\u8981\u4f53\u73b0\u5728\uff1a",source:"@site/docs/study/db/\u5168\u6587\u641c\u7d22\u5f15\u64ce/\u7efc\u5408\u6982\u8ff0.md",sourceDirName:"study/db/\u5168\u6587\u641c\u7d22\u5f15\u64ce",slug:"/study/db/\u5168\u6587\u641c\u7d22\u5f15\u64ce/\u7efc\u5408\u6982\u8ff0",permalink:"/docs/study/db/\u5168\u6587\u641c\u7d22\u5f15\u64ce/\u7efc\u5408\u6982\u8ff0",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"studySidebar",previous:{title:"PostgreSQL",permalink:"/docs/study/db/SQL/PostgreSQL"},next:{title:"Elasticsearch",permalink:"/docs/study/db/\u5168\u6587\u641c\u7d22\u5f15\u64ce/Elasticsearch"}},l={},s=[{value:"\u5168\u6587\u641c\u7d22\u57fa\u672c\u539f\u7406",id:"\u5168\u6587\u641c\u7d22\u57fa\u672c\u539f\u7406",level:3}],u={toc:s},p="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(p,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("p",null,"\u4f20\u7edf\u7684\u5173\u7cfb\u578b\u6570\u636e\u5e93\u901a\u8fc7\u7d22\u5f15\u6765\u8fbe\u5230\u5feb\u901f\u67e5\u8be2\u7684\u76ee\u7684\uff0c\u4f46\u662f\u5728\u5168\u6587\u641c\u7d22\u7684\u4e1a\u52a1\u573a\u666f\u4e0b\uff0c\u7d22\u5f15\u4e5f\u65e0\u80fd\u4e3a\u529b\uff0c\u4e3b\u8981\u4f53\u73b0\u5728\uff1a"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"\u5168\u6587\u641c\u7d22\u7684\u6761\u4ef6\u53ef\u4ee5\u968f\u610f\u6392\u5217\u7ec4\u5408\uff0c\u5982\u679c\u901a\u8fc7\u7d22\u5f15\u6765\u6ee1\u8db3\uff0c\u5219\u7d22\u5f15\u7684\u6570\u91cf\u4f1a\u975e\u5e38\u591a\u3002"),(0,o.yg)("li",{parentName:"ul"},"\u5168\u6587\u641c\u7d22\u7684\u6a21\u7cca\u5339\u914d\u65b9\u5f0f\uff0c\u7d22\u5f15\u65e0\u6cd5\u6ee1\u8db3\uff0c\u53ea\u80fd\u7528 like \u67e5\u8be2\uff0c\u800c like \u67e5\u8be2\u662f\u6574\u8868\u626b\u63cf\uff0c\u6548\u7387\u975e\u5e38\u4f4e\u3002")),(0,o.yg)("h3",{id:"\u5168\u6587\u641c\u7d22\u57fa\u672c\u539f\u7406"},"\u5168\u6587\u641c\u7d22\u57fa\u672c\u539f\u7406"),(0,o.yg)("p",null,"\u5168\u6587\u641c\u7d22\u5f15\u64ce\u7684\u6280\u672f\u539f\u7406\u88ab\u79f0\u4e3a\u201c\u5012\u6392\u7d22\u5f15\u201d\uff08Inverted index\uff09\uff0c\u4e5f\u5e38\u88ab\u79f0\u4e3a\u53cd\u5411\u7d22\u5f15\u3001\u7f6e\u5165\u6863\u6848\u6216\u53cd\u5411\u6863\u6848\uff0c\u662f\u4e00\u79cd\u7d22\u5f15\u65b9\u6cd5\uff0c\u5176\u57fa\u672c\u539f\u7406\u662f\u5efa\u7acb\u5355\u8bcd\u5230\u6587\u6863\u7684\u7d22\u5f15\u3002\u4e4b\u6240\u4ee5\u88ab\u79f0\u4e3a\u201c\u5012\u6392\u201d\u7d22\u5f15\uff0c\u662f\u548c\u201c\u6b63\u6392\u201c\u7d22\u5f15\u76f8\u5bf9\u7684\uff0c\u201c\u6b63\u6392\u7d22\u5f15\u201d\u7684\u57fa\u672c\u539f\u7406\u662f\u5efa\u7acb\u6587\u6863\u5230\u5355\u8bcd\u7684\u7d22\u5f15\u3002\u6211\u4eec\u901a\u8fc7\u4e00\u4e2a\u7b80\u5355\u7684\u6837\u4f8b\u6765\u8bf4\u660e\u8fd9\u4e24\u79cd\u7d22\u5f15\u7684\u5dee\u5f02\u3002"),(0,o.yg)("p",null,"\u5168\u6587\u641c\u7d22\u5f15\u64ce\u7684\u7d22\u5f15\u5bf9\u8c61\u662f\u5355\u8bcd\u548c\u6587\u6863\uff0c\u800c\u5173\u7cfb\u6570\u636e\u5e93\u7684\u7d22\u5f15\u5bf9\u8c61\u662f\u952e\u548c\u884c\uff0c\u4e24\u8005\u7684\u672f\u8bed\u5dee\u5f02\u5f88\u5927\uff0c\u4e0d\u80fd\u7b80\u5355\u5730\u7b49\u540c\u8d77\u6765\u3002\u56e0\u6b64\uff0c\u4e3a\u4e86\u8ba9\u5168\u6587\u641c\u7d22\u5f15\u64ce\u652f\u6301\u5173\u7cfb\u578b\u6570\u636e\u7684\u5168\u6587\u641c\u7d22\uff0c\u9700\u8981\u505a\u4e00\u4e9b\u8f6c\u6362\u64cd\u4f5c\uff0c\u5373\u5c06\u5173\u7cfb\u578b\u6570\u636e\u8f6c\u6362\u4e3a\u6587\u6863\u6570\u636e\u3002"))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8859],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),s=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=s(e.components);return n.createElement(l.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),p=s(r),y=o,f=p["".concat(l,".").concat(y)]||p[y]||d[y]||a;return r?n.createElement(f,i(i({ref:t},u),{},{components:r})):n.createElement(f,i({ref:t},u))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=y;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[p]="string"==typeof e?e:o,i[1]=c;for(var s=2;s{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>s});var n=r(8168),o=(r(6540),r(5680));const a={sidebar_position:1},i=void 0,c={unversionedId:"study/db/\u5168\u6587\u641c\u7d22\u5f15\u64ce/\u7efc\u5408\u6982\u8ff0",id:"study/db/\u5168\u6587\u641c\u7d22\u5f15\u64ce/\u7efc\u5408\u6982\u8ff0",title:"\u7efc\u5408\u6982\u8ff0",description:"\u4f20\u7edf\u7684\u5173\u7cfb\u578b\u6570\u636e\u5e93\u901a\u8fc7\u7d22\u5f15\u6765\u8fbe\u5230\u5feb\u901f\u67e5\u8be2\u7684\u76ee\u7684\uff0c\u4f46\u662f\u5728\u5168\u6587\u641c\u7d22\u7684\u4e1a\u52a1\u573a\u666f\u4e0b\uff0c\u7d22\u5f15\u4e5f\u65e0\u80fd\u4e3a\u529b\uff0c\u4e3b\u8981\u4f53\u73b0\u5728\uff1a",source:"@site/docs/study/db/\u5168\u6587\u641c\u7d22\u5f15\u64ce/\u7efc\u5408\u6982\u8ff0.md",sourceDirName:"study/db/\u5168\u6587\u641c\u7d22\u5f15\u64ce",slug:"/study/db/\u5168\u6587\u641c\u7d22\u5f15\u64ce/\u7efc\u5408\u6982\u8ff0",permalink:"/docs/study/db/\u5168\u6587\u641c\u7d22\u5f15\u64ce/\u7efc\u5408\u6982\u8ff0",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"studySidebar",previous:{title:"PostgreSQL",permalink:"/docs/study/db/SQL/PostgreSQL"},next:{title:"Elasticsearch",permalink:"/docs/study/db/\u5168\u6587\u641c\u7d22\u5f15\u64ce/Elasticsearch"}},l={},s=[{value:"\u5168\u6587\u641c\u7d22\u57fa\u672c\u539f\u7406",id:"\u5168\u6587\u641c\u7d22\u57fa\u672c\u539f\u7406",level:3}],u={toc:s},p="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(p,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("p",null,"\u4f20\u7edf\u7684\u5173\u7cfb\u578b\u6570\u636e\u5e93\u901a\u8fc7\u7d22\u5f15\u6765\u8fbe\u5230\u5feb\u901f\u67e5\u8be2\u7684\u76ee\u7684\uff0c\u4f46\u662f\u5728\u5168\u6587\u641c\u7d22\u7684\u4e1a\u52a1\u573a\u666f\u4e0b\uff0c\u7d22\u5f15\u4e5f\u65e0\u80fd\u4e3a\u529b\uff0c\u4e3b\u8981\u4f53\u73b0\u5728\uff1a"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"\u5168\u6587\u641c\u7d22\u7684\u6761\u4ef6\u53ef\u4ee5\u968f\u610f\u6392\u5217\u7ec4\u5408\uff0c\u5982\u679c\u901a\u8fc7\u7d22\u5f15\u6765\u6ee1\u8db3\uff0c\u5219\u7d22\u5f15\u7684\u6570\u91cf\u4f1a\u975e\u5e38\u591a\u3002"),(0,o.yg)("li",{parentName:"ul"},"\u5168\u6587\u641c\u7d22\u7684\u6a21\u7cca\u5339\u914d\u65b9\u5f0f\uff0c\u7d22\u5f15\u65e0\u6cd5\u6ee1\u8db3\uff0c\u53ea\u80fd\u7528 like \u67e5\u8be2\uff0c\u800c like \u67e5\u8be2\u662f\u6574\u8868\u626b\u63cf\uff0c\u6548\u7387\u975e\u5e38\u4f4e\u3002")),(0,o.yg)("h3",{id:"\u5168\u6587\u641c\u7d22\u57fa\u672c\u539f\u7406"},"\u5168\u6587\u641c\u7d22\u57fa\u672c\u539f\u7406"),(0,o.yg)("p",null,"\u5168\u6587\u641c\u7d22\u5f15\u64ce\u7684\u6280\u672f\u539f\u7406\u88ab\u79f0\u4e3a\u201c\u5012\u6392\u7d22\u5f15\u201d\uff08Inverted index\uff09\uff0c\u4e5f\u5e38\u88ab\u79f0\u4e3a\u53cd\u5411\u7d22\u5f15\u3001\u7f6e\u5165\u6863\u6848\u6216\u53cd\u5411\u6863\u6848\uff0c\u662f\u4e00\u79cd\u7d22\u5f15\u65b9\u6cd5\uff0c\u5176\u57fa\u672c\u539f\u7406\u662f\u5efa\u7acb\u5355\u8bcd\u5230\u6587\u6863\u7684\u7d22\u5f15\u3002\u4e4b\u6240\u4ee5\u88ab\u79f0\u4e3a\u201c\u5012\u6392\u201d\u7d22\u5f15\uff0c\u662f\u548c\u201c\u6b63\u6392\u201c\u7d22\u5f15\u76f8\u5bf9\u7684\uff0c\u201c\u6b63\u6392\u7d22\u5f15\u201d\u7684\u57fa\u672c\u539f\u7406\u662f\u5efa\u7acb\u6587\u6863\u5230\u5355\u8bcd\u7684\u7d22\u5f15\u3002\u6211\u4eec\u901a\u8fc7\u4e00\u4e2a\u7b80\u5355\u7684\u6837\u4f8b\u6765\u8bf4\u660e\u8fd9\u4e24\u79cd\u7d22\u5f15\u7684\u5dee\u5f02\u3002"),(0,o.yg)("p",null,"\u5168\u6587\u641c\u7d22\u5f15\u64ce\u7684\u7d22\u5f15\u5bf9\u8c61\u662f\u5355\u8bcd\u548c\u6587\u6863\uff0c\u800c\u5173\u7cfb\u6570\u636e\u5e93\u7684\u7d22\u5f15\u5bf9\u8c61\u662f\u952e\u548c\u884c\uff0c\u4e24\u8005\u7684\u672f\u8bed\u5dee\u5f02\u5f88\u5927\uff0c\u4e0d\u80fd\u7b80\u5355\u5730\u7b49\u540c\u8d77\u6765\u3002\u56e0\u6b64\uff0c\u4e3a\u4e86\u8ba9\u5168\u6587\u641c\u7d22\u5f15\u64ce\u652f\u6301\u5173\u7cfb\u578b\u6570\u636e\u7684\u5168\u6587\u641c\u7d22\uff0c\u9700\u8981\u505a\u4e00\u4e9b\u8f6c\u6362\u64cd\u4f5c\uff0c\u5373\u5c06\u5173\u7cfb\u578b\u6570\u636e\u8f6c\u6362\u4e3a\u6587\u6863\u6570\u636e\u3002"))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/50eef34b.bdae470b.js b/assets/js/50eef34b.92f9c738.js similarity index 99% rename from assets/js/50eef34b.bdae470b.js rename to assets/js/50eef34b.92f9c738.js index 273da677f..e8abcc750 100644 --- a/assets/js/50eef34b.bdae470b.js +++ b/assets/js/50eef34b.92f9c738.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5861],{5680:(e,t,r)=>{r.d(t,{xA:()=>c,yg:()=>u});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var i=n.createContext({}),m=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},c=function(e){var t=m(e.components);return n.createElement(i.Provider,{value:t},e.children)},y="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},g=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,i=e.parentName,c=p(e,["components","mdxType","originalType","parentName"]),y=m(r),g=a,u=y["".concat(i,".").concat(g)]||y[g]||s[g]||o;return r?n.createElement(u,l(l({ref:t},c),{},{components:r})):n.createElement(u,l({ref:t},c))}));function u(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,l=new Array(o);l[0]=g;var p={};for(var i in t)hasOwnProperty.call(t,i)&&(p[i]=t[i]);p.originalType=e,p[y]="string"==typeof e?e:a,l[1]=p;for(var m=2;m{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>l,default:()=>s,frontMatter:()=>o,metadata:()=>p,toc:()=>m});var n=r(8168),a=(r(6540),r(5680));const o={sidebar_position:1},l=void 0,p={unversionedId:"study/competitive/\u5de5\u4e1a\u4e92\u8054\u7f51\u63a2\u7a76",id:"study/competitive/\u5de5\u4e1a\u4e92\u8054\u7f51\u63a2\u7a76",title:"\u5de5\u4e1a\u4e92\u8054\u7f51\u63a2\u7a76",description:"\u5206\u7c7b\uff1a\u884c\u4e1a+\u573a\u666f+\u6a21\u5f0f",source:"@site/docs/study/competitive/\u5de5\u4e1a\u4e92\u8054\u7f51\u63a2\u7a76.md",sourceDirName:"study/competitive",slug:"/study/competitive/\u5de5\u4e1a\u4e92\u8054\u7f51\u63a2\u7a76",permalink:"/docs/study/competitive/\u5de5\u4e1a\u4e92\u8054\u7f51\u63a2\u7a76",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"studySidebar",previous:{title:"\u6982\u8ff0",permalink:"/docs/study/competitive/"},next:{title:"CMP-DMP-AEP-BAP",permalink:"/docs/study/competitive/CMP-DMP-AEP-BAP"}},i={},m=[{value:"\u5206\u7c7b\uff1a\u884c\u4e1a+\u573a\u666f+\u6a21\u5f0f",id:"\u5206\u7c7b\u884c\u4e1a\u573a\u666f\u6a21\u5f0f",level:3},{value:"\u901a\u7528\u578b\u5de5\u4e1a\u4e92\u8054\u7f51\u5e73\u53f0",id:"\u901a\u7528\u578b\u5de5\u4e1a\u4e92\u8054\u7f51\u5e73\u53f0",level:3},{value:"\u5782\u76f4\u5de5\u4e1a\u4e92\u8054\u7f51\u5e73\u53f0\u53ca\u89e3\u51b3\u65b9\u6848",id:"\u5782\u76f4\u5de5\u4e1a\u4e92\u8054\u7f51\u5e73\u53f0\u53ca\u89e3\u51b3\u65b9\u6848",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],c={toc:m},y="wrapper";function s(e){let{components:t,...r}=e;return(0,a.yg)(y,(0,n.A)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"\u5206\u7c7b\u884c\u4e1a\u573a\u666f\u6a21\u5f0f"},"\u5206\u7c7b\uff1a\u884c\u4e1a+\u573a\u666f+\u6a21\u5f0f"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},"\u201c\u573a\u666f\u201d\u6307\u8bbe\u5907\u8d44\u4ea7\u7ba1\u7406\u3001\u4e1a\u52a1\u8fd0\u8425\u4f18\u5316\u548c\u4ea7\u4e1a\u751f\u6001\u521b\u65b0\u4e09\u79cd\uff1b"),(0,a.yg)("li",{parentName:"ol"},"\u201c\u6a21\u5f0f\u201d\u5219\u5305\u62ec\u901a\u7528\u578b\u5e73\u53f0\u3001\u5782\u76f4\u884c\u4e1a\u5e73\u53f0\u3001\u5e73\u53f0\u89e3\u51b3\u65b9\u6848\u3001\u5de5\u4e1aApp/\u7ec6\u5206\u89e3\u51b3\u65b9\u6848\u4ee5\u53caIAAS\u5c42\uff08\u4e3b\u8981\u63d0\u4f9b\u4e91\u670d\u52a1\uff0c\u57fa\u672c\u5c31\u662f\u963f\u91cc\u4e91\u3001\u534e\u4e3a\u4e91\u3001\u817e\u8baf\u4e91\u3001AWS\u7b49\uff0c\u4e0d\u5728\u672c\u6587\u8ba8\u8bba\u8303\u56f4\uff09\u4e94\u7c7b")),(0,a.yg)("h3",{id:"\u901a\u7528\u578b\u5de5\u4e1a\u4e92\u8054\u7f51\u5e73\u53f0"},"\u901a\u7528\u578b\u5de5\u4e1a\u4e92\u8054\u7f51\u5e73\u53f0"),(0,a.yg)("p",null,"\u901a\u7528\u578b\u5de5\u4e1a\u4e92\u8054\u7f51\u5e73\u53f0\u8de8\u591a\u884c\u4e1a\u591a\u9886\u57df\uff0c\u5f80\u5f80\u4f1a\u57fa\u4e8e\u81ea\u8eabPaaS\u5c42\u4e0e\u751f\u6001\u4f19\u4f34\u5408\u4f5c\u63a8\u52a8\u5728\u5404\u884c\u4e1a\u3001\u9886\u57df\u7684\u5de5\u4e1a\u4e92\u8054\u7f51\u5efa\u8bbe\u3002\u4e5f\u6b63\u662f\u56e0\u4e3a\u5176\u8de8\u884c\u4e1a\u8de8\u9886\u57df\u7279\u6027\uff0c\u5de5\u4e1a\u4e92\u8054\u7f51\u901a\u7528\u578b\u5e73\u53f0\u5efa\u8bbe\u96be\u5ea6\u5927\uff0c\u5c5e\u4e8e\u8d44\u6e90\u548c\u8d44\u91d1\u5bc6\u96c6\u578b\u7684\u673a\u4f1a\u3002"),(0,a.yg)("p",null,"2019\u5e748\u670826\u65e5\uff0c\u5de5\u4fe1\u90e8\u516c\u5e032019\u5e74\u5341\u5927\u8de8\u884c\u4e1a\u8de8\u9886\u57df\u5de5\u4e1a\u4e92\u8054\u7f51\u5e73\u53f0\u6e05\u5355\uff0c\u5165\u9009\u5e73\u53f0\u5206\u522b\u662f\uff1a",(0,a.yg)("strong",{parentName:"p"},"\u6d77\u5c14COSMOPlat\u5de5\u4e1a\u4e92\u8054\u7f51\u5e73\u53f0"),"\u3001",(0,a.yg)("strong",{parentName:"p"},"\u4e1c\u65b9\u56fd\u4fe1Cloudiip\u5de5\u4e1a\u4e92\u8054\u7f51\u5e73\u53f0"),"\u3001",(0,a.yg)("strong",{parentName:"p"},"\u7528\u53cb\u7cbe\u667a\u5de5\u4e1a\u4e92\u8054\u7f51\u5e73\u53f0"),"\u3001",(0,a.yg)("strong",{parentName:"p"},"\u6811\u6839\u4e92\u8054\u6839\u4e91\u5de5\u4e1a\u4e92\u8054\u7f51\u5e73\u53f0"),"\u3001",(0,a.yg)("strong",{parentName:"p"},"\u822a\u5929\u4e91\u7f51INDICS\u5de5\u4e1a\u4e92\u8054\u7f51\u5e73\u53f0"),"\u3001",(0,a.yg)("strong",{parentName:"p"},"\u6d6a\u6f6e\u4e91In-Cloud\u5de5\u4e1a\u4e92\u8054\u7f51\u5e73\u53f0"),"\u3001",(0,a.yg)("strong",{parentName:"p"},"\u534e\u4e3aFusionPlant\u5de5\u4e1a\u4e92\u8054\u7f51\u5e73\u53f0"),"\u3001",(0,a.yg)("strong",{parentName:"p"},"\u5bcc\u58eb\u5eb7BEACON\u5de5\u4e1a\u4e92\u8054\u7f51\u5e73\u53f0"),"\u3001",(0,a.yg)("strong",{parentName:"p"},"\u963f\u91ccsupET\u5de5\u4e1a\u4e92\u8054\u7f51\u5e73\u53f0"),"\u3001",(0,a.yg)("strong",{parentName:"p"},"\u5f90\u5de5\u4fe1\u606f\u6c49\u4e91\u5de5\u4e1a\u4e92\u8054\u7f51\u5e73\u53f0"),"\uff0c\u8fd9\u5341\u5bb6\u5de5\u4e1a\u4e92\u8054\u7f51\u5e73\u53f0\u5373\u662f\u901a\u7528\u578b\u5e73\u53f0\u7684\u5178\u578b\u6848\u4f8b\u3002"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("a",{parentName:"li",href:"http://www.rootcloud.com"},"\u6811\u6839\u4e92\u8054(\u4e09\u4e00\u91cd\u5de5)")),(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("a",{parentName:"li",href:"http://www.hanplatform.com"},"\u6c49\u4e91\u5de5\u4e1a\u7269\u8054\u7f51\u5e73\u53f0(\u5f90\u5de5\u4fe1\u606f)"))),(0,a.yg)("h3",{id:"\u5782\u76f4\u5de5\u4e1a\u4e92\u8054\u7f51\u5e73\u53f0\u53ca\u89e3\u51b3\u65b9\u6848"},"\u5782\u76f4\u5de5\u4e1a\u4e92\u8054\u7f51\u5e73\u53f0\u53ca\u89e3\u51b3\u65b9\u6848"),(0,a.yg)("p",null,"\u901a\u7528\u578b\u5e73\u53f0\u201c\u4e00\u4e2a\u5e73\u53f0\u5305\u6253\u5929\u4e0b\u201d\u7684\u6a21\u5f0f\u6bd4\u8f83\u96be\u5728\u884c\u4e1a\u5185\u6df1\u8015\uff0c\u4e0d\u540c\u884c\u4e1a\u751f\u4ea7\u573a\u666f\u7684\u5de8\u5927\u5dee\u522b\u4e5f\u7ed9\u4e86\u5782\u76f4\u9886\u57df\u4e92\u8054\u7f51\u5e73\u53f0\u53ca\u89e3\u51b3\u65b9\u6848\u53d1\u5c55\u7684\u673a\u4f1a\u3002\u4e0b\u9762\u4ece\u5de5\u4e1a\u4e92\u8054\u7f51\u4e09\u5927\u5e94\u7528\u573a\u666f",(0,a.yg)("strong",{parentName:"p"},"\u8bbe\u5907\u8d44\u4ea7\u7ba1\u7406\u3001\u4e1a\u52a1\u8fd0\u8425\u4f18\u5316\u3001\u4ea7\u4e1a\u751f\u6001\u521b\u65b0"),"\u51fa\u53d1\uff0c\u5217\u4e3e\u5782\u76f4\u884c\u4e1a\u5e73\u53f0\u3001\u5e73\u53f0\u89e3\u51b3\u65b9\u6848\u4ee5\u53ca\u5de5\u4e1aApp\u7b49\u7ec6\u5206\u89e3\u51b3\u65b9\u6848\u4e09\u7c7b\u56fd\u5185\u5de5\u4e1a\u4e92\u8054\u7f51\u516c\u53f8\u3002\u5176\u4e2d\uff0c\u5782\u76f4\u884c\u4e1a\u5e73\u53f0\u53ea\u805a\u7126\u4e8e\u67d0\u4e00\u4e2a\u9886\u57df\u6216\u884c\u4e1a\uff1b\u5e73\u53f0\u89e3\u51b3\u65b9\u6848\u9664\u4e86\u5e73\u53f0\uff0c\u8fd8\u4f1a\u63d0\u4f9b\u6574\u4f53\u89e3\u51b3\u65b9\u6848\uff0c\u6a21\u5f0f\u66f4\u201c\u91cd\u201d\u3002\u9664\u4e86\u4ee5\u4e0a\u7aef\u5230\u7aef\u7684\u5e73\u53f0\u6a21\u5f0f\uff0c\u8fd8\u6709\u4e00\u7c7b\u516c\u53f8\u662f\u9488\u5bf9\u5de5\u4e1a\u573a\u666f\u4e2d\u7684\u67d0\u4e00\u4e2a\u75db\u70b9\u63d0\u4f9b\u7ec6\u5206\u89e3\u51b3\u65b9\u6848\uff0c\u8fd9\u79cd\u5c31\u662f\u5de5\u4e1aAPP/\u7ec6\u5206\u5e94\u7528\u3002\xa0"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("a",{parentName:"li",href:"http://www.mogulinker.com/index.html"},"\u8611\u83c7\u4e92\u8054"),"\uff08\u5782\u76f4\u884c\u4e1a\u5e73\u53f0\uff09",(0,a.yg)("ol",{parentName:"li"},(0,a.yg)("li",{parentName:"ol"},"\u8bbe\u5907\u4ea7\u4e1a\u94fe\u4e09\u5927\u4e3b\u9898\uff1a\u8bbe\u5907\u5236\u9020\u4f01\u4e1a\u3001\u8bbe\u5907\u4ee3\u7406/\u670d\u52a1\u4f01\u4e1a\u3001\u8bbe\u5907\u7528\u6237\u4f01\u4e1a\uff1b"),(0,a.yg)("li",{parentName:"ol"},"\u8611\u83c7\u4e91\u76d2+\u8611\u83c7\u4e91+\u8611\u83c7\u5708\uff1b"),(0,a.yg)("li",{parentName:"ol"},'\u4e3a\u8bbe\u5907\u5236\u9020\u5546\u5b9a\u5236"\u7269\u8054\u7f51\u96c6\u6210\u7ba1\u7406\u7cfb\u7edf"\uff1b'),(0,a.yg)("li",{parentName:"ol"},'\u4e3a\u8bbe\u5907\u4ee3\u7406/\u670d\u52a1\u5546\u63d0\u4f9b"\u4e00\u7ad9\u5f0f\u7269\u8054\u7f51\u7ba1\u7406\u5de5\u5177"\uff1b'),(0,a.yg)("li",{parentName:"ol"},'\u4e3a\u8bbe\u5907\u7528\u6237\u4f01\u4e1a\u6253\u9020"\u6570\u5b57\u667a\u80fd\u7ba1\u7406\u8f66\u95f4\u7cfb"\uff1b'))),(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("a",{parentName:"li",href:"https://www.isesol.com"},"\u667a\u80fd\u4e91\u79d1"),"\uff08\u5782\u76f4\u884c\u4e1a\u5e73\u53f0\uff09"),(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("a",{parentName:"li",href:"http://www.proudsmart.com"},"\u666e\u5965\u4e91\u79d1\u6280"),"\uff08\u5e73\u53f0\u89e3\u51b3\u65b9\u6848\uff09"),(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("a",{parentName:"li",href:"https://www.neucloud.cn"},"\u5bc4\u4e91\u79d1\u6280"),"\uff08\u5e73\u53f0\u89e3\u51b3\u65b9\u6848\uff09"),(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("a",{parentName:"li",href:"http://www.pi2star.com"},"\u6e43\u65b9\u79d1\u6280"),"\uff08\u5e73\u53f0\u89e3\u51b3\u65b9\u6848\uff09"),(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("a",{parentName:"li",href:"https://www.cyber-insight.com"},"\u5929\u6cfd\u667a\u4e91"),"\uff08\u5e73\u53f0\u89e3\u51b3\u65b9\u6848\uff09")),(0,a.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("a",{parentName:"li",href:"https://mp.weixin.qq.com/s/0-jAmmJE4mVGnajb_QlFog"},"\u8fd1\u4e07\u4ebf\u5de5\u4e1a\u4e92\u8054\u7f51\u8d5b\u9053\u6709\u54ea\u4e9b\u73a9\u5bb6\uff1f\u8fd9\u91cc\u6709\u4e00\u4efd\u884c\u4e1a\u56fe\u8c31"))))}s.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5861],{5680:(e,t,r)=>{r.d(t,{xA:()=>c,yg:()=>u});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var i=n.createContext({}),m=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},c=function(e){var t=m(e.components);return n.createElement(i.Provider,{value:t},e.children)},y="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},g=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,i=e.parentName,c=p(e,["components","mdxType","originalType","parentName"]),y=m(r),g=a,u=y["".concat(i,".").concat(g)]||y[g]||s[g]||o;return r?n.createElement(u,l(l({ref:t},c),{},{components:r})):n.createElement(u,l({ref:t},c))}));function u(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,l=new Array(o);l[0]=g;var p={};for(var i in t)hasOwnProperty.call(t,i)&&(p[i]=t[i]);p.originalType=e,p[y]="string"==typeof e?e:a,l[1]=p;for(var m=2;m{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>l,default:()=>s,frontMatter:()=>o,metadata:()=>p,toc:()=>m});var n=r(8168),a=(r(6540),r(5680));const o={sidebar_position:1},l=void 0,p={unversionedId:"study/competitive/\u5de5\u4e1a\u4e92\u8054\u7f51\u63a2\u7a76",id:"study/competitive/\u5de5\u4e1a\u4e92\u8054\u7f51\u63a2\u7a76",title:"\u5de5\u4e1a\u4e92\u8054\u7f51\u63a2\u7a76",description:"\u5206\u7c7b\uff1a\u884c\u4e1a+\u573a\u666f+\u6a21\u5f0f",source:"@site/docs/study/competitive/\u5de5\u4e1a\u4e92\u8054\u7f51\u63a2\u7a76.md",sourceDirName:"study/competitive",slug:"/study/competitive/\u5de5\u4e1a\u4e92\u8054\u7f51\u63a2\u7a76",permalink:"/docs/study/competitive/\u5de5\u4e1a\u4e92\u8054\u7f51\u63a2\u7a76",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"studySidebar",previous:{title:"\u6982\u8ff0",permalink:"/docs/study/competitive/"},next:{title:"CMP-DMP-AEP-BAP",permalink:"/docs/study/competitive/CMP-DMP-AEP-BAP"}},i={},m=[{value:"\u5206\u7c7b\uff1a\u884c\u4e1a+\u573a\u666f+\u6a21\u5f0f",id:"\u5206\u7c7b\u884c\u4e1a\u573a\u666f\u6a21\u5f0f",level:3},{value:"\u901a\u7528\u578b\u5de5\u4e1a\u4e92\u8054\u7f51\u5e73\u53f0",id:"\u901a\u7528\u578b\u5de5\u4e1a\u4e92\u8054\u7f51\u5e73\u53f0",level:3},{value:"\u5782\u76f4\u5de5\u4e1a\u4e92\u8054\u7f51\u5e73\u53f0\u53ca\u89e3\u51b3\u65b9\u6848",id:"\u5782\u76f4\u5de5\u4e1a\u4e92\u8054\u7f51\u5e73\u53f0\u53ca\u89e3\u51b3\u65b9\u6848",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],c={toc:m},y="wrapper";function s(e){let{components:t,...r}=e;return(0,a.yg)(y,(0,n.A)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"\u5206\u7c7b\u884c\u4e1a\u573a\u666f\u6a21\u5f0f"},"\u5206\u7c7b\uff1a\u884c\u4e1a+\u573a\u666f+\u6a21\u5f0f"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},"\u201c\u573a\u666f\u201d\u6307\u8bbe\u5907\u8d44\u4ea7\u7ba1\u7406\u3001\u4e1a\u52a1\u8fd0\u8425\u4f18\u5316\u548c\u4ea7\u4e1a\u751f\u6001\u521b\u65b0\u4e09\u79cd\uff1b"),(0,a.yg)("li",{parentName:"ol"},"\u201c\u6a21\u5f0f\u201d\u5219\u5305\u62ec\u901a\u7528\u578b\u5e73\u53f0\u3001\u5782\u76f4\u884c\u4e1a\u5e73\u53f0\u3001\u5e73\u53f0\u89e3\u51b3\u65b9\u6848\u3001\u5de5\u4e1aApp/\u7ec6\u5206\u89e3\u51b3\u65b9\u6848\u4ee5\u53caIAAS\u5c42\uff08\u4e3b\u8981\u63d0\u4f9b\u4e91\u670d\u52a1\uff0c\u57fa\u672c\u5c31\u662f\u963f\u91cc\u4e91\u3001\u534e\u4e3a\u4e91\u3001\u817e\u8baf\u4e91\u3001AWS\u7b49\uff0c\u4e0d\u5728\u672c\u6587\u8ba8\u8bba\u8303\u56f4\uff09\u4e94\u7c7b")),(0,a.yg)("h3",{id:"\u901a\u7528\u578b\u5de5\u4e1a\u4e92\u8054\u7f51\u5e73\u53f0"},"\u901a\u7528\u578b\u5de5\u4e1a\u4e92\u8054\u7f51\u5e73\u53f0"),(0,a.yg)("p",null,"\u901a\u7528\u578b\u5de5\u4e1a\u4e92\u8054\u7f51\u5e73\u53f0\u8de8\u591a\u884c\u4e1a\u591a\u9886\u57df\uff0c\u5f80\u5f80\u4f1a\u57fa\u4e8e\u81ea\u8eabPaaS\u5c42\u4e0e\u751f\u6001\u4f19\u4f34\u5408\u4f5c\u63a8\u52a8\u5728\u5404\u884c\u4e1a\u3001\u9886\u57df\u7684\u5de5\u4e1a\u4e92\u8054\u7f51\u5efa\u8bbe\u3002\u4e5f\u6b63\u662f\u56e0\u4e3a\u5176\u8de8\u884c\u4e1a\u8de8\u9886\u57df\u7279\u6027\uff0c\u5de5\u4e1a\u4e92\u8054\u7f51\u901a\u7528\u578b\u5e73\u53f0\u5efa\u8bbe\u96be\u5ea6\u5927\uff0c\u5c5e\u4e8e\u8d44\u6e90\u548c\u8d44\u91d1\u5bc6\u96c6\u578b\u7684\u673a\u4f1a\u3002"),(0,a.yg)("p",null,"2019\u5e748\u670826\u65e5\uff0c\u5de5\u4fe1\u90e8\u516c\u5e032019\u5e74\u5341\u5927\u8de8\u884c\u4e1a\u8de8\u9886\u57df\u5de5\u4e1a\u4e92\u8054\u7f51\u5e73\u53f0\u6e05\u5355\uff0c\u5165\u9009\u5e73\u53f0\u5206\u522b\u662f\uff1a",(0,a.yg)("strong",{parentName:"p"},"\u6d77\u5c14COSMOPlat\u5de5\u4e1a\u4e92\u8054\u7f51\u5e73\u53f0"),"\u3001",(0,a.yg)("strong",{parentName:"p"},"\u4e1c\u65b9\u56fd\u4fe1Cloudiip\u5de5\u4e1a\u4e92\u8054\u7f51\u5e73\u53f0"),"\u3001",(0,a.yg)("strong",{parentName:"p"},"\u7528\u53cb\u7cbe\u667a\u5de5\u4e1a\u4e92\u8054\u7f51\u5e73\u53f0"),"\u3001",(0,a.yg)("strong",{parentName:"p"},"\u6811\u6839\u4e92\u8054\u6839\u4e91\u5de5\u4e1a\u4e92\u8054\u7f51\u5e73\u53f0"),"\u3001",(0,a.yg)("strong",{parentName:"p"},"\u822a\u5929\u4e91\u7f51INDICS\u5de5\u4e1a\u4e92\u8054\u7f51\u5e73\u53f0"),"\u3001",(0,a.yg)("strong",{parentName:"p"},"\u6d6a\u6f6e\u4e91In-Cloud\u5de5\u4e1a\u4e92\u8054\u7f51\u5e73\u53f0"),"\u3001",(0,a.yg)("strong",{parentName:"p"},"\u534e\u4e3aFusionPlant\u5de5\u4e1a\u4e92\u8054\u7f51\u5e73\u53f0"),"\u3001",(0,a.yg)("strong",{parentName:"p"},"\u5bcc\u58eb\u5eb7BEACON\u5de5\u4e1a\u4e92\u8054\u7f51\u5e73\u53f0"),"\u3001",(0,a.yg)("strong",{parentName:"p"},"\u963f\u91ccsupET\u5de5\u4e1a\u4e92\u8054\u7f51\u5e73\u53f0"),"\u3001",(0,a.yg)("strong",{parentName:"p"},"\u5f90\u5de5\u4fe1\u606f\u6c49\u4e91\u5de5\u4e1a\u4e92\u8054\u7f51\u5e73\u53f0"),"\uff0c\u8fd9\u5341\u5bb6\u5de5\u4e1a\u4e92\u8054\u7f51\u5e73\u53f0\u5373\u662f\u901a\u7528\u578b\u5e73\u53f0\u7684\u5178\u578b\u6848\u4f8b\u3002"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("a",{parentName:"li",href:"http://www.rootcloud.com"},"\u6811\u6839\u4e92\u8054(\u4e09\u4e00\u91cd\u5de5)")),(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("a",{parentName:"li",href:"http://www.hanplatform.com"},"\u6c49\u4e91\u5de5\u4e1a\u7269\u8054\u7f51\u5e73\u53f0(\u5f90\u5de5\u4fe1\u606f)"))),(0,a.yg)("h3",{id:"\u5782\u76f4\u5de5\u4e1a\u4e92\u8054\u7f51\u5e73\u53f0\u53ca\u89e3\u51b3\u65b9\u6848"},"\u5782\u76f4\u5de5\u4e1a\u4e92\u8054\u7f51\u5e73\u53f0\u53ca\u89e3\u51b3\u65b9\u6848"),(0,a.yg)("p",null,"\u901a\u7528\u578b\u5e73\u53f0\u201c\u4e00\u4e2a\u5e73\u53f0\u5305\u6253\u5929\u4e0b\u201d\u7684\u6a21\u5f0f\u6bd4\u8f83\u96be\u5728\u884c\u4e1a\u5185\u6df1\u8015\uff0c\u4e0d\u540c\u884c\u4e1a\u751f\u4ea7\u573a\u666f\u7684\u5de8\u5927\u5dee\u522b\u4e5f\u7ed9\u4e86\u5782\u76f4\u9886\u57df\u4e92\u8054\u7f51\u5e73\u53f0\u53ca\u89e3\u51b3\u65b9\u6848\u53d1\u5c55\u7684\u673a\u4f1a\u3002\u4e0b\u9762\u4ece\u5de5\u4e1a\u4e92\u8054\u7f51\u4e09\u5927\u5e94\u7528\u573a\u666f",(0,a.yg)("strong",{parentName:"p"},"\u8bbe\u5907\u8d44\u4ea7\u7ba1\u7406\u3001\u4e1a\u52a1\u8fd0\u8425\u4f18\u5316\u3001\u4ea7\u4e1a\u751f\u6001\u521b\u65b0"),"\u51fa\u53d1\uff0c\u5217\u4e3e\u5782\u76f4\u884c\u4e1a\u5e73\u53f0\u3001\u5e73\u53f0\u89e3\u51b3\u65b9\u6848\u4ee5\u53ca\u5de5\u4e1aApp\u7b49\u7ec6\u5206\u89e3\u51b3\u65b9\u6848\u4e09\u7c7b\u56fd\u5185\u5de5\u4e1a\u4e92\u8054\u7f51\u516c\u53f8\u3002\u5176\u4e2d\uff0c\u5782\u76f4\u884c\u4e1a\u5e73\u53f0\u53ea\u805a\u7126\u4e8e\u67d0\u4e00\u4e2a\u9886\u57df\u6216\u884c\u4e1a\uff1b\u5e73\u53f0\u89e3\u51b3\u65b9\u6848\u9664\u4e86\u5e73\u53f0\uff0c\u8fd8\u4f1a\u63d0\u4f9b\u6574\u4f53\u89e3\u51b3\u65b9\u6848\uff0c\u6a21\u5f0f\u66f4\u201c\u91cd\u201d\u3002\u9664\u4e86\u4ee5\u4e0a\u7aef\u5230\u7aef\u7684\u5e73\u53f0\u6a21\u5f0f\uff0c\u8fd8\u6709\u4e00\u7c7b\u516c\u53f8\u662f\u9488\u5bf9\u5de5\u4e1a\u573a\u666f\u4e2d\u7684\u67d0\u4e00\u4e2a\u75db\u70b9\u63d0\u4f9b\u7ec6\u5206\u89e3\u51b3\u65b9\u6848\uff0c\u8fd9\u79cd\u5c31\u662f\u5de5\u4e1aAPP/\u7ec6\u5206\u5e94\u7528\u3002\xa0"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("a",{parentName:"li",href:"http://www.mogulinker.com/index.html"},"\u8611\u83c7\u4e92\u8054"),"\uff08\u5782\u76f4\u884c\u4e1a\u5e73\u53f0\uff09",(0,a.yg)("ol",{parentName:"li"},(0,a.yg)("li",{parentName:"ol"},"\u8bbe\u5907\u4ea7\u4e1a\u94fe\u4e09\u5927\u4e3b\u9898\uff1a\u8bbe\u5907\u5236\u9020\u4f01\u4e1a\u3001\u8bbe\u5907\u4ee3\u7406/\u670d\u52a1\u4f01\u4e1a\u3001\u8bbe\u5907\u7528\u6237\u4f01\u4e1a\uff1b"),(0,a.yg)("li",{parentName:"ol"},"\u8611\u83c7\u4e91\u76d2+\u8611\u83c7\u4e91+\u8611\u83c7\u5708\uff1b"),(0,a.yg)("li",{parentName:"ol"},'\u4e3a\u8bbe\u5907\u5236\u9020\u5546\u5b9a\u5236"\u7269\u8054\u7f51\u96c6\u6210\u7ba1\u7406\u7cfb\u7edf"\uff1b'),(0,a.yg)("li",{parentName:"ol"},'\u4e3a\u8bbe\u5907\u4ee3\u7406/\u670d\u52a1\u5546\u63d0\u4f9b"\u4e00\u7ad9\u5f0f\u7269\u8054\u7f51\u7ba1\u7406\u5de5\u5177"\uff1b'),(0,a.yg)("li",{parentName:"ol"},'\u4e3a\u8bbe\u5907\u7528\u6237\u4f01\u4e1a\u6253\u9020"\u6570\u5b57\u667a\u80fd\u7ba1\u7406\u8f66\u95f4\u7cfb"\uff1b'))),(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("a",{parentName:"li",href:"https://www.isesol.com"},"\u667a\u80fd\u4e91\u79d1"),"\uff08\u5782\u76f4\u884c\u4e1a\u5e73\u53f0\uff09"),(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("a",{parentName:"li",href:"http://www.proudsmart.com"},"\u666e\u5965\u4e91\u79d1\u6280"),"\uff08\u5e73\u53f0\u89e3\u51b3\u65b9\u6848\uff09"),(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("a",{parentName:"li",href:"https://www.neucloud.cn"},"\u5bc4\u4e91\u79d1\u6280"),"\uff08\u5e73\u53f0\u89e3\u51b3\u65b9\u6848\uff09"),(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("a",{parentName:"li",href:"http://www.pi2star.com"},"\u6e43\u65b9\u79d1\u6280"),"\uff08\u5e73\u53f0\u89e3\u51b3\u65b9\u6848\uff09"),(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("a",{parentName:"li",href:"https://www.cyber-insight.com"},"\u5929\u6cfd\u667a\u4e91"),"\uff08\u5e73\u53f0\u89e3\u51b3\u65b9\u6848\uff09")),(0,a.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("a",{parentName:"li",href:"https://mp.weixin.qq.com/s/0-jAmmJE4mVGnajb_QlFog"},"\u8fd1\u4e07\u4ebf\u5de5\u4e1a\u4e92\u8054\u7f51\u8d5b\u9053\u6709\u54ea\u4e9b\u73a9\u5bb6\uff1f\u8fd9\u91cc\u6709\u4e00\u4efd\u884c\u4e1a\u56fe\u8c31"))))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/52135254.236fae92.js b/assets/js/52135254.518d2dfa.js similarity index 98% rename from assets/js/52135254.236fae92.js rename to assets/js/52135254.518d2dfa.js index 86c209993..99db52980 100644 --- a/assets/js/52135254.236fae92.js +++ b/assets/js/52135254.518d2dfa.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1812],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>y});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var p=n.createContext({}),l=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},u=function(e){var t=l(e.components);return n.createElement(p.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,p=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),s=l(r),f=o,y=s["".concat(p,".").concat(f)]||s[f]||d[f]||a;return r?n.createElement(y,c(c({ref:t},u),{},{components:r})):n.createElement(y,c({ref:t},u))}));function y(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=f;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[s]="string"==typeof e?e:o,c[1]=i;for(var l=2;l{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>c,default:()=>d,frontMatter:()=>a,metadata:()=>i,toc:()=>l});var n=r(8168),o=(r(6540),r(5680));const a={},c=void 0,i={unversionedId:"study/program/\u6280\u672f\u6587\u6863",id:"study/program/\u6280\u672f\u6587\u6863",title:"\u6280\u672f\u6587\u6863",description:"\u6280\u672f\u6587\u6863",source:"@site/docs/study/program/\u6280\u672f\u6587\u6863.md",sourceDirName:"study/program",slug:"/study/program/\u6280\u672f\u6587\u6863",permalink:"/docs/study/program/\u6280\u672f\u6587\u6863",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Rust",permalink:"/docs/study/program/Rust/"},next:{title:"\u7f16\u8bd1\u5668",permalink:"/docs/study/program/\u7f16\u8bd1\u5668"}},p={},l=[{value:"\u6280\u672f\u6587\u6863",id:"\u6280\u672f\u6587\u6863",level:3}],u={toc:l},s="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"\u6280\u672f\u6587\u6863"},"\u6280\u672f\u6587\u6863"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://learn.microsoft.com/zh-cn/docs/"},"Micorsoft-\u6280\u672f\u6587\u6863"))))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1812],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>y});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var p=n.createContext({}),l=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},u=function(e){var t=l(e.components);return n.createElement(p.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,p=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),s=l(r),f=o,y=s["".concat(p,".").concat(f)]||s[f]||d[f]||a;return r?n.createElement(y,c(c({ref:t},u),{},{components:r})):n.createElement(y,c({ref:t},u))}));function y(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=f;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[s]="string"==typeof e?e:o,c[1]=i;for(var l=2;l{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>c,default:()=>d,frontMatter:()=>a,metadata:()=>i,toc:()=>l});var n=r(8168),o=(r(6540),r(5680));const a={},c=void 0,i={unversionedId:"study/program/\u6280\u672f\u6587\u6863",id:"study/program/\u6280\u672f\u6587\u6863",title:"\u6280\u672f\u6587\u6863",description:"\u6280\u672f\u6587\u6863",source:"@site/docs/study/program/\u6280\u672f\u6587\u6863.md",sourceDirName:"study/program",slug:"/study/program/\u6280\u672f\u6587\u6863",permalink:"/docs/study/program/\u6280\u672f\u6587\u6863",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Rust",permalink:"/docs/study/program/Rust/"},next:{title:"\u7f16\u8bd1\u5668",permalink:"/docs/study/program/\u7f16\u8bd1\u5668"}},p={},l=[{value:"\u6280\u672f\u6587\u6863",id:"\u6280\u672f\u6587\u6863",level:3}],u={toc:l},s="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"\u6280\u672f\u6587\u6863"},"\u6280\u672f\u6587\u6863"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://learn.microsoft.com/zh-cn/docs/"},"Micorsoft-\u6280\u672f\u6587\u6863"))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/576ec208.e4d3cb17.js b/assets/js/576ec208.dd3f63a9.js similarity index 98% rename from assets/js/576ec208.e4d3cb17.js rename to assets/js/576ec208.dd3f63a9.js index dd0783fd0..e1e1aa84b 100644 --- a/assets/js/576ec208.e4d3cb17.js +++ b/assets/js/576ec208.dd3f63a9.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[15],{5680:(e,r,t)=>{t.d(r,{xA:()=>u,yg:()=>f});var n=t(6540);function a(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function o(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function c(e){for(var r=1;r=0||(a[t]=e[t]);return a}(e,r);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var i=n.createContext({}),l=function(e){var r=n.useContext(i),t=r;return e&&(t="function"==typeof e?e(r):c(c({},r),e)),t},u=function(e){var r=l(e.components);return n.createElement(i.Provider,{value:r},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},y=n.forwardRef((function(e,r){var t=e.components,a=e.mdxType,o=e.originalType,i=e.parentName,u=p(e,["components","mdxType","originalType","parentName"]),s=l(t),y=a,f=s["".concat(i,".").concat(y)]||s[y]||d[y]||o;return t?n.createElement(f,c(c({ref:r},u),{},{components:t})):n.createElement(f,c({ref:r},u))}));function f(e,r){var t=arguments,a=r&&r.mdxType;if("string"==typeof e||a){var o=t.length,c=new Array(o);c[0]=y;var p={};for(var i in r)hasOwnProperty.call(r,i)&&(p[i]=r[i]);p.originalType=e,p[s]="string"==typeof e?e:a,c[1]=p;for(var l=2;l{t.r(r),t.d(r,{assets:()=>i,contentTitle:()=>c,default:()=>d,frontMatter:()=>o,metadata:()=>p,toc:()=>l});var n=t(8168),a=(t(6540),t(5680));const o={},c=void 0,p={unversionedId:"study/program/JAVA/GraalVM",id:"study/program/JAVA/GraalVM",title:"GraalVM",description:"\u5b98\u7f51",source:"@site/docs/study/program/JAVA/GraalVM.md",sourceDirName:"study/program/JAVA",slug:"/study/program/JAVA/GraalVM",permalink:"/docs/study/program/JAVA/GraalVM",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"GC",permalink:"/docs/study/program/JAVA/GC"},next:{title:"Guice",permalink:"/docs/study/program/JAVA/Guice"}},i={},l=[],u={toc:l},s="wrapper";function d(e){let{components:r,...t}=e;return(0,a.yg)(s,(0,n.A)({},u,t,{components:r,mdxType:"MDXLayout"}),(0,a.yg)("p",null,(0,a.yg)("a",{parentName:"p",href:"https://www.graalvm.org/"},"\u5b98\u7f51")),(0,a.yg)("p",null,"\u4e00\u6b3e\u9ad8\u6027\u80fd\u3001\u4e91\u539f\u751f\u3001\u652f\u6301\u591a\u79cd\u7f16\u7a0b\u8bed\u8a00\u7684\u865a\u62df\u673a\u3002"))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[15],{5680:(e,r,t)=>{t.d(r,{xA:()=>u,yg:()=>f});var n=t(6540);function a(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function o(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function c(e){for(var r=1;r=0||(a[t]=e[t]);return a}(e,r);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var i=n.createContext({}),l=function(e){var r=n.useContext(i),t=r;return e&&(t="function"==typeof e?e(r):c(c({},r),e)),t},u=function(e){var r=l(e.components);return n.createElement(i.Provider,{value:r},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},y=n.forwardRef((function(e,r){var t=e.components,a=e.mdxType,o=e.originalType,i=e.parentName,u=p(e,["components","mdxType","originalType","parentName"]),s=l(t),y=a,f=s["".concat(i,".").concat(y)]||s[y]||d[y]||o;return t?n.createElement(f,c(c({ref:r},u),{},{components:t})):n.createElement(f,c({ref:r},u))}));function f(e,r){var t=arguments,a=r&&r.mdxType;if("string"==typeof e||a){var o=t.length,c=new Array(o);c[0]=y;var p={};for(var i in r)hasOwnProperty.call(r,i)&&(p[i]=r[i]);p.originalType=e,p[s]="string"==typeof e?e:a,c[1]=p;for(var l=2;l{t.r(r),t.d(r,{assets:()=>i,contentTitle:()=>c,default:()=>d,frontMatter:()=>o,metadata:()=>p,toc:()=>l});var n=t(8168),a=(t(6540),t(5680));const o={},c=void 0,p={unversionedId:"study/program/JAVA/GraalVM",id:"study/program/JAVA/GraalVM",title:"GraalVM",description:"\u5b98\u7f51",source:"@site/docs/study/program/JAVA/GraalVM.md",sourceDirName:"study/program/JAVA",slug:"/study/program/JAVA/GraalVM",permalink:"/docs/study/program/JAVA/GraalVM",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"GC",permalink:"/docs/study/program/JAVA/GC"},next:{title:"Guice",permalink:"/docs/study/program/JAVA/Guice"}},i={},l=[],u={toc:l},s="wrapper";function d(e){let{components:r,...t}=e;return(0,a.yg)(s,(0,n.A)({},u,t,{components:r,mdxType:"MDXLayout"}),(0,a.yg)("p",null,(0,a.yg)("a",{parentName:"p",href:"https://www.graalvm.org/"},"\u5b98\u7f51")),(0,a.yg)("p",null,"\u4e00\u6b3e\u9ad8\u6027\u80fd\u3001\u4e91\u539f\u751f\u3001\u652f\u6301\u591a\u79cd\u7f16\u7a0b\u8bed\u8a00\u7684\u865a\u62df\u673a\u3002"))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/588433b1.0efa5c6b.js b/assets/js/588433b1.ac127622.js similarity index 99% rename from assets/js/588433b1.0efa5c6b.js rename to assets/js/588433b1.ac127622.js index f53037433..6dcdb35b5 100644 --- a/assets/js/588433b1.0efa5c6b.js +++ b/assets/js/588433b1.ac127622.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5537],{5680:(e,r,t)=>{t.d(r,{xA:()=>c,yg:()=>g});var n=t(6540);function a(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function o(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function l(e){for(var r=1;r=0||(a[t]=e[t]);return a}(e,r);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var p=n.createContext({}),u=function(e){var r=n.useContext(p),t=r;return e&&(t="function"==typeof e?e(r):l(l({},r),e)),t},c=function(e){var r=u(e.components);return n.createElement(p.Provider,{value:r},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},y=n.forwardRef((function(e,r){var t=e.components,a=e.mdxType,o=e.originalType,p=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),s=u(t),y=a,g=s["".concat(p,".").concat(y)]||s[y]||d[y]||o;return t?n.createElement(g,l(l({ref:r},c),{},{components:t})):n.createElement(g,l({ref:r},c))}));function g(e,r){var t=arguments,a=r&&r.mdxType;if("string"==typeof e||a){var o=t.length,l=new Array(o);l[0]=y;var i={};for(var p in r)hasOwnProperty.call(r,p)&&(i[p]=r[p]);i.originalType=e,i[s]="string"==typeof e?e:a,l[1]=i;for(var u=2;u{t.r(r),t.d(r,{assets:()=>p,contentTitle:()=>l,default:()=>d,frontMatter:()=>o,metadata:()=>i,toc:()=>u});var n=t(8168),a=(t(6540),t(5680));const o={},l="C++\u8fdb\u7a0b\u95f4\u901a\u4fe1",i={unversionedId:"study/program/CPP/CPP\u8fdb\u7a0b\u95f4\u901a\u4fe1",id:"study/program/CPP/CPP\u8fdb\u7a0b\u95f4\u901a\u4fe1",title:"C++\u8fdb\u7a0b\u95f4\u901a\u4fe1",description:"\u7ba1\u9053",source:"@site/docs/study/program/CPP/CPP\u8fdb\u7a0b\u95f4\u901a\u4fe1.md",sourceDirName:"study/program/CPP",slug:"/study/program/CPP/CPP\u8fdb\u7a0b\u95f4\u901a\u4fe1",permalink:"/docs/study/program/CPP/CPP\u8fdb\u7a0b\u95f4\u901a\u4fe1",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"CGI",permalink:"/docs/study/program/CPP/CGI"},next:{title:"CSharp",permalink:"/docs/study/program/CSharp/"}},p={},u=[{value:"\u7ba1\u9053",id:"\u7ba1\u9053",level:3},{value:"\u5171\u4eab\u5185\u5b58",id:"\u5171\u4eab\u5185\u5b58",level:3},{value:"\u6d88\u606f\u961f\u5217",id:"\u6d88\u606f\u961f\u5217",level:3},{value:"\u4fe1\u53f7\u91cf",id:"\u4fe1\u53f7\u91cf",level:3},{value:"\u5957\u63a5\u5b57",id:"\u5957\u63a5\u5b57",level:3},{value:"\u6587\u4ef6\u6620\u5c04",id:"\u6587\u4ef6\u6620\u5c04",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],c={toc:u},s="wrapper";function d(e){let{components:r,...t}=e;return(0,a.yg)(s,(0,n.A)({},c,t,{components:r,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"c\u8fdb\u7a0b\u95f4\u901a\u4fe1"},"C++\u8fdb\u7a0b\u95f4\u901a\u4fe1"),(0,a.yg)("h3",{id:"\u7ba1\u9053"},"\u7ba1\u9053"),(0,a.yg)("p",null,"\u7ba1\u9053\uff08Pipe\uff09\uff1a\u662f\u4e00\u79cd\u534a\u53cc\u5de5\u7684\u901a\u4fe1\u65b9\u5f0f\uff0c\u9002\u7528\u4e8e\u5177\u6709\u4eb2\u7f18\u5173\u7cfb\u7684\u4e24\u4e2a\u8fdb\u7a0b\u4e4b\u95f4\u7684\u901a\u4fe1\u3002\u7ba1\u9053\u5206\u4e3a\u533f\u540d\u7ba1\u9053\u548c\u547d\u540d\u7ba1\u9053\u3002"),(0,a.yg)("h3",{id:"\u5171\u4eab\u5185\u5b58"},"\u5171\u4eab\u5185\u5b58"),(0,a.yg)("p",null,"\u5171\u4eab\u5185\u5b58\uff08Shared Memory\uff09\uff1a\u662f\u4e00\u79cd\u9ad8\u6548\u7684\u8fdb\u7a0b\u95f4\u901a\u4fe1\u65b9\u5f0f\uff0c\u53ef\u4ee5\u5728\u591a\u4e2a\u8fdb\u7a0b\u4e4b\u95f4\u5171\u4eab\u540c\u4e00\u5757\u5185\u5b58\u533a\u57df\uff0c\u9700\u8981\u4f7f\u7528\u4fe1\u53f7\u91cf\u7b49\u540c\u6b65\u673a\u5236\u4fdd\u8bc1\u6570\u636e\u7684\u6b63\u786e\u6027\u3002"),(0,a.yg)("h3",{id:"\u6d88\u606f\u961f\u5217"},"\u6d88\u606f\u961f\u5217"),(0,a.yg)("p",null,"\u6d88\u606f\u961f\u5217\uff08Message Queue\uff09\uff1a\u662f\u4e00\u79cd\u53ef\u9760\u7684\u8fdb\u7a0b\u95f4\u901a\u4fe1\u65b9\u5f0f\uff0c\u5141\u8bb8\u4e00\u4e2a\u8fdb\u7a0b\u5411\u6d88\u606f\u961f\u5217\u53d1\u9001\u6d88\u606f\uff0c\u53e6\u4e00\u4e2a\u8fdb\u7a0b\u4ece\u8be5\u961f\u5217\u63a5\u6536\u6d88\u606f\u3002"),(0,a.yg)("h3",{id:"\u4fe1\u53f7\u91cf"},"\u4fe1\u53f7\u91cf"),(0,a.yg)("p",null,"\u4fe1\u53f7\u91cf\uff08Semaphore\uff09\uff1a\u662f\u4e00\u79cd\u7279\u6b8a\u7684\u53d8\u91cf\uff0c\u4e3b\u8981\u7528\u4e8e\u591a\u4e2a\u8fdb\u7a0b\u5bf9\u5171\u4eab\u8d44\u6e90\u7684\u8bbf\u95ee\u63a7\u5236\u95ee\u9898\uff0c\u4ee5\u4fdd\u8bc1\u7a0b\u5e8f\u6b63\u5e38\u8fd0\u884c\u3002"),(0,a.yg)("h3",{id:"\u5957\u63a5\u5b57"},"\u5957\u63a5\u5b57"),(0,a.yg)("p",null,"\u5957\u63a5\u5b57\uff08Socket\uff09\uff1a\u662f\u4e00\u79cd\u7f51\u7edc\u7f16\u7a0b\u6280\u672f\uff0c\u4f46\u4e5f\u53ef\u7528\u4e8e\u5b9e\u73b0\u8fdb\u7a0b\u95f4\u901a\u4fe1\uff0c\u652f\u6301\u4e0d\u540c\u4e3b\u673a\u4e0a\u7684\u8fdb\u7a0b\u8fdb\u884c\u901a\u4fe1\u3002"),(0,a.yg)("h3",{id:"\u6587\u4ef6\u6620\u5c04"},"\u6587\u4ef6\u6620\u5c04"),(0,a.yg)("p",null,"\u6587\u4ef6\u6620\u5c04\uff08File Mapping\uff09\uff1a\u5c06\u78c1\u76d8\u4e0a\u7684\u6587\u4ef6\u6620\u5c04\u5230\u8fdb\u7a0b\u7684\u5730\u5740\u7a7a\u95f4\u4e2d\uff0c\u591a\u4e2a\u8fdb\u7a0b\u53ef\u4ee5\u540c\u65f6\u5bf9\u8be5\u6587\u4ef6\u8fdb\u884c\u8bfb\u5199\u64cd\u4f5c\uff0c\u9700\u8981\u4f7f\u7528\u540c\u6b65\u673a\u5236\u786e\u4fdd\u6570\u636e\u7684\u5b8c\u6574\u6027\u3002"),(0,a.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://blog.csdn.net/qq_43119867/article/details/130520252"},"CSDN-C++\u8fdb\u7a0b\u95f4\u901a\u4fe1\u7684\u591a\u79cd\u65b9\u5f0f\u53ca\u5b9e\u73b0"))))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5537],{5680:(e,r,t)=>{t.d(r,{xA:()=>c,yg:()=>g});var n=t(6540);function a(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function o(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function l(e){for(var r=1;r=0||(a[t]=e[t]);return a}(e,r);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var p=n.createContext({}),u=function(e){var r=n.useContext(p),t=r;return e&&(t="function"==typeof e?e(r):l(l({},r),e)),t},c=function(e){var r=u(e.components);return n.createElement(p.Provider,{value:r},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},y=n.forwardRef((function(e,r){var t=e.components,a=e.mdxType,o=e.originalType,p=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),s=u(t),y=a,g=s["".concat(p,".").concat(y)]||s[y]||d[y]||o;return t?n.createElement(g,l(l({ref:r},c),{},{components:t})):n.createElement(g,l({ref:r},c))}));function g(e,r){var t=arguments,a=r&&r.mdxType;if("string"==typeof e||a){var o=t.length,l=new Array(o);l[0]=y;var i={};for(var p in r)hasOwnProperty.call(r,p)&&(i[p]=r[p]);i.originalType=e,i[s]="string"==typeof e?e:a,l[1]=i;for(var u=2;u{t.r(r),t.d(r,{assets:()=>p,contentTitle:()=>l,default:()=>d,frontMatter:()=>o,metadata:()=>i,toc:()=>u});var n=t(8168),a=(t(6540),t(5680));const o={},l="C++\u8fdb\u7a0b\u95f4\u901a\u4fe1",i={unversionedId:"study/program/CPP/CPP\u8fdb\u7a0b\u95f4\u901a\u4fe1",id:"study/program/CPP/CPP\u8fdb\u7a0b\u95f4\u901a\u4fe1",title:"C++\u8fdb\u7a0b\u95f4\u901a\u4fe1",description:"\u7ba1\u9053",source:"@site/docs/study/program/CPP/CPP\u8fdb\u7a0b\u95f4\u901a\u4fe1.md",sourceDirName:"study/program/CPP",slug:"/study/program/CPP/CPP\u8fdb\u7a0b\u95f4\u901a\u4fe1",permalink:"/docs/study/program/CPP/CPP\u8fdb\u7a0b\u95f4\u901a\u4fe1",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"CGI",permalink:"/docs/study/program/CPP/CGI"},next:{title:"CSharp",permalink:"/docs/study/program/CSharp/"}},p={},u=[{value:"\u7ba1\u9053",id:"\u7ba1\u9053",level:3},{value:"\u5171\u4eab\u5185\u5b58",id:"\u5171\u4eab\u5185\u5b58",level:3},{value:"\u6d88\u606f\u961f\u5217",id:"\u6d88\u606f\u961f\u5217",level:3},{value:"\u4fe1\u53f7\u91cf",id:"\u4fe1\u53f7\u91cf",level:3},{value:"\u5957\u63a5\u5b57",id:"\u5957\u63a5\u5b57",level:3},{value:"\u6587\u4ef6\u6620\u5c04",id:"\u6587\u4ef6\u6620\u5c04",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],c={toc:u},s="wrapper";function d(e){let{components:r,...t}=e;return(0,a.yg)(s,(0,n.A)({},c,t,{components:r,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"c\u8fdb\u7a0b\u95f4\u901a\u4fe1"},"C++\u8fdb\u7a0b\u95f4\u901a\u4fe1"),(0,a.yg)("h3",{id:"\u7ba1\u9053"},"\u7ba1\u9053"),(0,a.yg)("p",null,"\u7ba1\u9053\uff08Pipe\uff09\uff1a\u662f\u4e00\u79cd\u534a\u53cc\u5de5\u7684\u901a\u4fe1\u65b9\u5f0f\uff0c\u9002\u7528\u4e8e\u5177\u6709\u4eb2\u7f18\u5173\u7cfb\u7684\u4e24\u4e2a\u8fdb\u7a0b\u4e4b\u95f4\u7684\u901a\u4fe1\u3002\u7ba1\u9053\u5206\u4e3a\u533f\u540d\u7ba1\u9053\u548c\u547d\u540d\u7ba1\u9053\u3002"),(0,a.yg)("h3",{id:"\u5171\u4eab\u5185\u5b58"},"\u5171\u4eab\u5185\u5b58"),(0,a.yg)("p",null,"\u5171\u4eab\u5185\u5b58\uff08Shared Memory\uff09\uff1a\u662f\u4e00\u79cd\u9ad8\u6548\u7684\u8fdb\u7a0b\u95f4\u901a\u4fe1\u65b9\u5f0f\uff0c\u53ef\u4ee5\u5728\u591a\u4e2a\u8fdb\u7a0b\u4e4b\u95f4\u5171\u4eab\u540c\u4e00\u5757\u5185\u5b58\u533a\u57df\uff0c\u9700\u8981\u4f7f\u7528\u4fe1\u53f7\u91cf\u7b49\u540c\u6b65\u673a\u5236\u4fdd\u8bc1\u6570\u636e\u7684\u6b63\u786e\u6027\u3002"),(0,a.yg)("h3",{id:"\u6d88\u606f\u961f\u5217"},"\u6d88\u606f\u961f\u5217"),(0,a.yg)("p",null,"\u6d88\u606f\u961f\u5217\uff08Message Queue\uff09\uff1a\u662f\u4e00\u79cd\u53ef\u9760\u7684\u8fdb\u7a0b\u95f4\u901a\u4fe1\u65b9\u5f0f\uff0c\u5141\u8bb8\u4e00\u4e2a\u8fdb\u7a0b\u5411\u6d88\u606f\u961f\u5217\u53d1\u9001\u6d88\u606f\uff0c\u53e6\u4e00\u4e2a\u8fdb\u7a0b\u4ece\u8be5\u961f\u5217\u63a5\u6536\u6d88\u606f\u3002"),(0,a.yg)("h3",{id:"\u4fe1\u53f7\u91cf"},"\u4fe1\u53f7\u91cf"),(0,a.yg)("p",null,"\u4fe1\u53f7\u91cf\uff08Semaphore\uff09\uff1a\u662f\u4e00\u79cd\u7279\u6b8a\u7684\u53d8\u91cf\uff0c\u4e3b\u8981\u7528\u4e8e\u591a\u4e2a\u8fdb\u7a0b\u5bf9\u5171\u4eab\u8d44\u6e90\u7684\u8bbf\u95ee\u63a7\u5236\u95ee\u9898\uff0c\u4ee5\u4fdd\u8bc1\u7a0b\u5e8f\u6b63\u5e38\u8fd0\u884c\u3002"),(0,a.yg)("h3",{id:"\u5957\u63a5\u5b57"},"\u5957\u63a5\u5b57"),(0,a.yg)("p",null,"\u5957\u63a5\u5b57\uff08Socket\uff09\uff1a\u662f\u4e00\u79cd\u7f51\u7edc\u7f16\u7a0b\u6280\u672f\uff0c\u4f46\u4e5f\u53ef\u7528\u4e8e\u5b9e\u73b0\u8fdb\u7a0b\u95f4\u901a\u4fe1\uff0c\u652f\u6301\u4e0d\u540c\u4e3b\u673a\u4e0a\u7684\u8fdb\u7a0b\u8fdb\u884c\u901a\u4fe1\u3002"),(0,a.yg)("h3",{id:"\u6587\u4ef6\u6620\u5c04"},"\u6587\u4ef6\u6620\u5c04"),(0,a.yg)("p",null,"\u6587\u4ef6\u6620\u5c04\uff08File Mapping\uff09\uff1a\u5c06\u78c1\u76d8\u4e0a\u7684\u6587\u4ef6\u6620\u5c04\u5230\u8fdb\u7a0b\u7684\u5730\u5740\u7a7a\u95f4\u4e2d\uff0c\u591a\u4e2a\u8fdb\u7a0b\u53ef\u4ee5\u540c\u65f6\u5bf9\u8be5\u6587\u4ef6\u8fdb\u884c\u8bfb\u5199\u64cd\u4f5c\uff0c\u9700\u8981\u4f7f\u7528\u540c\u6b65\u673a\u5236\u786e\u4fdd\u6570\u636e\u7684\u5b8c\u6574\u6027\u3002"),(0,a.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://blog.csdn.net/qq_43119867/article/details/130520252"},"CSDN-C++\u8fdb\u7a0b\u95f4\u901a\u4fe1\u7684\u591a\u79cd\u65b9\u5f0f\u53ca\u5b9e\u73b0"))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/5886a939.1cab4d9c.js b/assets/js/5886a939.a07ac421.js similarity index 98% rename from assets/js/5886a939.1cab4d9c.js rename to assets/js/5886a939.a07ac421.js index 8899113ac..a57440ee2 100644 --- a/assets/js/5886a939.1cab4d9c.js +++ b/assets/js/5886a939.a07ac421.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7840],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>m});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var c=n.createContext({}),l=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=l(e.components);return n.createElement(c.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),u=l(r),y=a,m=u["".concat(c,".").concat(y)]||u[y]||d[y]||o;return r?n.createElement(m,i(i({ref:t},p),{},{components:r})):n.createElement(m,i({ref:t},p))}));function m(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=y;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s[u]="string"==typeof e?e:a,i[1]=s;for(var l=2;l{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>s,toc:()=>l});var n=r(8168),a=(r(6540),r(5680));const o={sidebar_position:1},i=void 0,s={unversionedId:"study/system/index",id:"study/system/index",title:"index",description:"\u5b66\u4e60\u8d44\u6599",source:"@site/docs/study/system/index.md",sourceDirName:"study/system",slug:"/study/system/",permalink:"/docs/study/system/",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"studySidebar",previous:{title:"\u7269\u8054\u7f51\u5e73\u53f0\u5c42\u6982\u8ff0",permalink:"/docs/study/competitive/\u7269\u8054\u7f51\u5e73\u53f0\u5c42\u6982\u8ff0"},next:{title:"CPU\u7ebf\u7a0b\u5e76\u53d1",permalink:"/docs/study/system/CPU\u7ebf\u7a0b\u5e76\u53d1"}},c={},l=[{value:"\u5b66\u4e60\u8d44\u6599",id:"\u5b66\u4e60\u8d44\u6599",level:3},{value:"mac \u7528\u4e45\u4e86\uff0c\u5982\u4f55\u6e05\u7406\u6bd4\u8f83\u5927\u7684\u6587\u4ef6",id:"mac-\u7528\u4e45\u4e86\u5982\u4f55\u6e05\u7406\u6bd4\u8f83\u5927\u7684\u6587\u4ef6",level:3}],p={toc:l},u="wrapper";function d(e){let{components:t,...r}=e;return(0,a.yg)(u,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"\u5b66\u4e60\u8d44\u6599"},"\u5b66\u4e60\u8d44\u6599"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://www.junmajinlong.com/os/index/"},"\u9a8f\u9a6c\u91d1\u9f99-\u64cd\u4f5c\u7cfb\u7edf\u7cfb\u5217\u6587\u7ae0")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://www.zhihu.com/people/zhang-yan-fei-26-61/posts"},"\u77e5\u4e4e-\u5f20\u5f66\u98de"))),(0,a.yg)("h3",{id:"mac-\u7528\u4e45\u4e86\u5982\u4f55\u6e05\u7406\u6bd4\u8f83\u5927\u7684\u6587\u4ef6"},"mac \u7528\u4e45\u4e86\uff0c\u5982\u4f55\u6e05\u7406\u6bd4\u8f83\u5927\u7684\u6587\u4ef6"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},"cd ~/Library\ndu -s ./* | sort -rn|head\ndu -sh ./* | sort -rn|head\n")))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7840],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>m});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var c=n.createContext({}),l=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=l(e.components);return n.createElement(c.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),u=l(r),y=a,m=u["".concat(c,".").concat(y)]||u[y]||d[y]||o;return r?n.createElement(m,i(i({ref:t},p),{},{components:r})):n.createElement(m,i({ref:t},p))}));function m(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=y;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s[u]="string"==typeof e?e:a,i[1]=s;for(var l=2;l{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>s,toc:()=>l});var n=r(8168),a=(r(6540),r(5680));const o={sidebar_position:1},i=void 0,s={unversionedId:"study/system/index",id:"study/system/index",title:"index",description:"\u5b66\u4e60\u8d44\u6599",source:"@site/docs/study/system/index.md",sourceDirName:"study/system",slug:"/study/system/",permalink:"/docs/study/system/",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"studySidebar",previous:{title:"\u7269\u8054\u7f51\u5e73\u53f0\u5c42\u6982\u8ff0",permalink:"/docs/study/competitive/\u7269\u8054\u7f51\u5e73\u53f0\u5c42\u6982\u8ff0"},next:{title:"CPU\u7ebf\u7a0b\u5e76\u53d1",permalink:"/docs/study/system/CPU\u7ebf\u7a0b\u5e76\u53d1"}},c={},l=[{value:"\u5b66\u4e60\u8d44\u6599",id:"\u5b66\u4e60\u8d44\u6599",level:3},{value:"mac \u7528\u4e45\u4e86\uff0c\u5982\u4f55\u6e05\u7406\u6bd4\u8f83\u5927\u7684\u6587\u4ef6",id:"mac-\u7528\u4e45\u4e86\u5982\u4f55\u6e05\u7406\u6bd4\u8f83\u5927\u7684\u6587\u4ef6",level:3}],p={toc:l},u="wrapper";function d(e){let{components:t,...r}=e;return(0,a.yg)(u,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"\u5b66\u4e60\u8d44\u6599"},"\u5b66\u4e60\u8d44\u6599"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://www.junmajinlong.com/os/index/"},"\u9a8f\u9a6c\u91d1\u9f99-\u64cd\u4f5c\u7cfb\u7edf\u7cfb\u5217\u6587\u7ae0")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://www.zhihu.com/people/zhang-yan-fei-26-61/posts"},"\u77e5\u4e4e-\u5f20\u5f66\u98de"))),(0,a.yg)("h3",{id:"mac-\u7528\u4e45\u4e86\u5982\u4f55\u6e05\u7406\u6bd4\u8f83\u5927\u7684\u6587\u4ef6"},"mac \u7528\u4e45\u4e86\uff0c\u5982\u4f55\u6e05\u7406\u6bd4\u8f83\u5927\u7684\u6587\u4ef6"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},"cd ~/Library\ndu -s ./* | sort -rn|head\ndu -sh ./* | sort -rn|head\n")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/5ae76acd.03aeaf3e.js b/assets/js/5ae76acd.f64578fd.js similarity index 99% rename from assets/js/5ae76acd.03aeaf3e.js rename to assets/js/5ae76acd.f64578fd.js index ba42893e1..0b0965476 100644 --- a/assets/js/5ae76acd.03aeaf3e.js +++ b/assets/js/5ae76acd.f64578fd.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6427],{5680:(e,t,r)=>{r.d(t,{xA:()=>y,yg:()=>g});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var p=n.createContext({}),u=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},y=function(e){var t=u(e.components);return n.createElement(p.Provider,{value:t},e.children)},s="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,p=e.parentName,y=i(e,["components","mdxType","originalType","parentName"]),s=u(r),m=a,g=s["".concat(p,".").concat(m)]||s[m]||c[m]||o;return r?n.createElement(g,l(l({ref:t},y),{},{components:r})):n.createElement(g,l({ref:t},y))}));function g(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,l=new Array(o);l[0]=m;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[s]="string"==typeof e?e:a,l[1]=i;for(var u=2;u{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>c,frontMatter:()=>o,metadata:()=>i,toc:()=>u});var n=r(8168),a=(r(6540),r(5680));const o={},l=void 0,i={unversionedId:"study/hard/\u786c\u4ef6\u5f00\u53d1\u548c\u5d4c\u5165\u5f0f\u5f00\u53d1",id:"study/hard/\u786c\u4ef6\u5f00\u53d1\u548c\u5d4c\u5165\u5f0f\u5f00\u53d1",title:"\u786c\u4ef6\u5f00\u53d1\u548c\u5d4c\u5165\u5f0f\u5f00\u53d1",description:"1. \u5d4c\u5165\u5f0flinux \u548c \u7528stm32\u8fdb\u884c\u7684\u5d4c\u5165\u5f0f\u5f00\u53d1 \u8fd9\u4e24\u8005\u4e4b\u95f4\u6709\u4ec0\u4e48\u5173\u8054\u6027\u5417\uff1f",source:"@site/docs/study/hard/\u786c\u4ef6\u5f00\u53d1\u548c\u5d4c\u5165\u5f0f\u5f00\u53d1.md",sourceDirName:"study/hard",slug:"/study/hard/\u786c\u4ef6\u5f00\u53d1\u548c\u5d4c\u5165\u5f0f\u5f00\u53d1",permalink:"/docs/study/hard/\u786c\u4ef6\u5f00\u53d1\u548c\u5d4c\u5165\u5f0f\u5f00\u53d1",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u5d4c\u5165\u5f0f_\u5355\u7247\u673a",permalink:"/docs/study/hard/\u5d4c\u5165\u5f0f_\u5355\u7247\u673a"},next:{title:"\u8def\u7531\u5668\u548c\u4ea4\u6362\u673a\u7684\u533a\u522b",permalink:"/docs/study/hard/\u8def\u7531\u5668\u548c\u4ea4\u6362\u673a\u7684\u533a\u522b"}},p={},u=[],y={toc:u},s="wrapper";function c(e){let{components:t,...r}=e;return(0,a.yg)(s,(0,n.A)({},y,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("a",{parentName:"li",href:"https://www.zhihu.com/question/53880054/answer/164501004"},"\u5d4c\u5165\u5f0flinux \u548c \u7528stm32\u8fdb\u884c\u7684\u5d4c\u5165\u5f0f\u5f00\u53d1 \u8fd9\u4e24\u8005\u4e4b\u95f4\u6709\u4ec0\u4e48\u5173\u8054\u6027\u5417\uff1f"),(0,a.yg)("ol",{parentName:"li"},(0,a.yg)("li",{parentName:"ol"},"=====\u57fa\u4e8eSTM32\u7684\u5f00\u53d1\u5c5e\u4e8e\u5fae\u63a7\u5236\u5668\u5f00\u53d1\u9886\u57df\uff0c\u4e3b\u8981\u5f00\u53d1\u5de5\u5177\u662f",(0,a.yg)("strong",{parentName:"li"},"keil"),"\u6216",(0,a.yg)("strong",{parentName:"li"},"IAR"),"\uff0c\u8fd9\u79cd\u5f00\u53d1\u66f4\u51c6\u786e\u7684\u8bf4\u6cd5\u662f",(0,a.yg)("strong",{parentName:"li"},"\u5355\u7247\u673a\u5f00\u53d1"),"\u6216\u8005\u786c\u4ef6\u5f00\u53d1\uff1b"),(0,a.yg)("li",{parentName:"ol"},"\u5d4c\u5165\u5f0f\u5f00\u53d1\uff0c\u5f00\u53d1\u73af\u5883\u662f",(0,a.yg)("strong",{parentName:"li"},"\u57fa\u4e8eLinux\u64cd\u4f5c\u7cfb\u7edf"),"\uff0c\u8fd9\u79cd\u5f00\u53d1\u4e00\u822c\u4f1a\u5206\u4e3a\u51e0\u4e2a\u5c42\u6b21\uff1a\u9a71\u52a8\u5f00\u53d1\u3001\u64cd\u4f5c\u7cfb\u7edf\u5c42\u5f00\u53d1\u3001\u5e94\u7528\u5c42\u5f00\u53d1\u3002"),(0,a.yg)("li",{parentName:"ol"},"\u5982\u679c\u73a9\u8fc7Arduino\u548c\u6811\u8393\u6d3e\uff0c\u90a3\u4e48\u8fd9\u4e2a\u5c31\u5f88\u597d\u7406\u89e3\u4e86\u3002STM32\u5f00\u53d1\u548cArduino\u662f\u540c\u4e00\u4e2a\u5c42\u6b21\uff0c\u5904\u4e8e\u5fae\u63a7\u5236\u5668\u7ea7\u522b\uff1b\u5d4c\u5165\u5f0fLinux\u5f00\u53d1\u548c\u6811\u8393\u6d3e\u4e00\u4e2a\u5c42\u6b21\uff0c\u5c5e\u4e8e\u5fae\u5904\u7406\u5668\u7ea7\u522b\u3002"),(0,a.yg)("li",{parentName:"ol"},"\u5355\u7247\u673a\u5f00\u53d1\u4e3b\u8981\u5728\u4e8e",(0,a.yg)("strong",{parentName:"li"},"\u63a7\u5236"),"\u3001",(0,a.yg)("strong",{parentName:"li"},"\u68c0\u6d4b"),"\u548c",(0,a.yg)("strong",{parentName:"li"},"\u4f20\u8f93"),"\u6570\u636e\uff0c\u6bd4\u5982\u63a7\u5236\u7ee7\u7535\u5668\u5f00\u5173\u4ee5\u63a7\u5236\u95e8\u9501\uff0c\u68c0\u6d4b\u6e29\u6e7f\u5ea6\u4e0a\u4f20\u6570\u636e\u5230\u7f51\u5173\u3002\u800c\u5904\u7406\u5668\u9664\u4e86\u53ef\u4ee5\u505a\u5355\u7247\u673a\u7684\u4e8b\uff0c\u8fd8\u53ef\u4ee5\u5904\u7406\u97f3\u89c6\u9891\u7b49",(0,a.yg)("strong",{parentName:"li"},"\u8ba1\u7b97\u91cf"),"\u5f88\u5927\u7684\u4efb\u52a1\uff0c\u6709",(0,a.yg)("strong",{parentName:"li"},"\u6587\u4ef6\u7ba1\u7406\u7cfb\u7edf"),"\u4e5f\u6709",(0,a.yg)("strong",{parentName:"li"},"\u66f4\u591a\u7684\u5b58\u50a8\u7a7a\u95f4"),"\uff0c\u4ee5\u53ca\u8be5\u5e73\u53f0\u6240\u63d0\u4f9b\u7684\u300c",(0,a.yg)("strong",{parentName:"li"},"\u5f00\u5c01\u5373\u7528"),"\u300d\u7684\u5de5\u5177\uff08\u5373\u5b89\u88c5\u540e\u5c31\u53ef\u4ee5\u76f4\u63a5\u4f7f\u7528\uff09\uff0c\u6bd4\u5982\u5728\u6811\u8393\u6d3e\u4e0a\u8fd0\u884c\u4e00\u4e2a\u4eba\u8138\u68c0\u6d4b\u7cfb\u7edf\u662f\u6ca1\u95ee\u9898\u7684\uff0c\u5728\u6811\u8393\u6d3e\u4e0a\u642d\u5efaWeb\u7f51\u7ad9\u4e5f\u662f\u5f88\u65b9\u4fbf\u7684\u3002"),(0,a.yg)("li",{parentName:"ol"},"=====\u5d4c\u5165\u5f0f\u5f00\u53d1\uff0c\u4e3b\u8981\u6709\u4e09\u6761\u6280\u672f\u8def\u7ebf\uff1a",(0,a.yg)("ul",{parentName:"li"},(0,a.yg)("li",{parentName:"ul"},"51\u5355\u7247\u673a"),(0,a.yg)("li",{parentName:"ul"},"STM32 + RTOS"),(0,a.yg)("li",{parentName:"ul"},"ARM + Linux\xa0 \xa0\xa0"),(0,a.yg)("li",{parentName:"ul"},"51\u5355\u7247\u673a\u4e3b\u8981\u7528\u5728\u4e00\u4e9b\u63a7\u5236\u7b80\u5355\u7684\u7535\u8def\u3001\u7535\u5668\u884c\u4e1a"),(0,a.yg)("li",{parentName:"ul"},"STM32 + RTOS \u4e3b\u8981\u7528\u5728\u4e00\u4e9b\u5b9e\u65f6\u8981\u6c42\u6bd4\u8f83\u9ad8\u7684\u884c\u4e1a\uff1a\u822a\u7a7a\u822a\u5929\u7b49\uff0c\u8fd8\u6709\u7269\u8054\u7f51\u3001\u5de5\u4e1a\u63a7\u5236"),(0,a.yg)("li",{parentName:"ul"},"ARM + Linux\u4e3b\u8981\u7528\u5728\u6d88\u8d39\u7535\u5b50\u9886\u57df\uff1a\u624b\u673a\u3001\u5e73\u677f\u3001\u667a\u80fd\u624b\u8868\u3001\u667a\u80fd\u97f3\u7bb1\u7b49"))),(0,a.yg)("li",{parentName:"ol"},"=====\u6309\u7167\u7cfb\u5217\u5212\u5206\uff1a",(0,a.yg)("ol",{parentName:"li"},(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("strong",{parentName:"li"},"\u5fae\u63a7\u5236\u5668\u7cfb\u5217\uff1a8051, MSP 430 ,\xa0"),"STM32 F0-3( ARM Cortext M0 - M3\u7cfb\u5217\uff09\u7b49"),(0,a.yg)("li",{parentName:"ol"},"\u4e3b\u8981\u7279\u70b9\u6ca1\u6709",(0,a.yg)("em",{parentName:"li"},"\u5185\u5b58\u7ba1\u7406\u5355\u5143"),"\uff0c\u4e0d\u80fd\u8fd0\u884clinux \u8fd9\u7c7b\u6709\u7740\u865a\u62df\u5185\u5b58\u7684\u64cd\u4f5c\u7cfb\u7edf\uff0c\u53ea\u80fd\u8fd0\u884c\u88f8\u673a\u7a0b\u5e8f\u6216\u662fucOS\u4e00\u7c7b\u7684\u5b9e\u65f6\u64cd\u4f5c\u7cfb\u7edf\u3002\u4e3b\u8981\u5de5\u4f5c\u5c31\u662f\u5916\u8bbe\u9a71\u52a8\u5f00\u53d1\uff08\u6bd4\u5982\u5199\u4e2a\u7f16\u7801\u5668\u7684\u9a71\u52a8\uff0c\u6db2\u6676\u7684\u9a71\u52a8\uff0cusb\u7684\u9a71\u52a8\uff09\u548c\u57fa\u4e8e\u9a71\u52a8\u7684\u5e94\u7528\u7a0b\u5e8f\u5f00\u53d1\uff0c\u5982\u63a7\u5236\u7c7b\u548c\u7b80\u5355\u7684\u56fe\u50cf\u5904\u7406\u529f\u80fd\u3002"),(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("strong",{parentName:"li"},"\u5fae\u5904\u7406\u5668\u7cfb\u5217"),"\uff1a ARM Cortex A\u7cfb\u5217\u7684\u5904\u7406\u5668"),(0,a.yg)("li",{parentName:"ol"},"\u6709",(0,a.yg)("em",{parentName:"li"},"\u5185\u5b58\u7ba1\u7406\u5355\u5143MMU"),",\u53ef\u4ee5\u8fd0\u884clinux\u7a0b\u5e8f\uff0c\u5f00\u53d1\u5176\u5b9e\u548c\u5728windows pc\u4e0a\u5199\u7a0b\u5e8f\u662f\u4e00\u6837\u7684\uff0c\u53ea\u662f\u7531\u4e8earm\u7f16\u8bd1\u6162\uff0c\u4e00\u822c\u4f1a\u9009\u5728\u5728PC\u4e0a\u7528\u9488\u5bf9ARM\u7279\u5b9a\u7f16\u8bd1\u5668\u53bb\u7f16\u8bd1\u51fa\u7a0b\u5e8f\u653e\u5728ARM\u4e0a\u8fd0\u884c\uff0c\u5c31\u662f\u4ea4\u53c9\u7f16\u8bd1\u3002\u8fd9\u91cc\u6d89\u53ca\u5230\u7684\u9a71\u52a8\u5f00\u53d1\u6bd4\u8f83\u590d\u6742\uff0c\u4e00\u822c\u4f1a\u9075\u5faalinux\u5b9a\u4e49\u7684\u89c4\u5219\u53bb\u5199\u3002")))))))}c.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6427],{5680:(e,t,r)=>{r.d(t,{xA:()=>y,yg:()=>g});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var p=n.createContext({}),u=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},y=function(e){var t=u(e.components);return n.createElement(p.Provider,{value:t},e.children)},s="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,p=e.parentName,y=i(e,["components","mdxType","originalType","parentName"]),s=u(r),m=a,g=s["".concat(p,".").concat(m)]||s[m]||c[m]||o;return r?n.createElement(g,l(l({ref:t},y),{},{components:r})):n.createElement(g,l({ref:t},y))}));function g(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,l=new Array(o);l[0]=m;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[s]="string"==typeof e?e:a,l[1]=i;for(var u=2;u{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>c,frontMatter:()=>o,metadata:()=>i,toc:()=>u});var n=r(8168),a=(r(6540),r(5680));const o={},l=void 0,i={unversionedId:"study/hard/\u786c\u4ef6\u5f00\u53d1\u548c\u5d4c\u5165\u5f0f\u5f00\u53d1",id:"study/hard/\u786c\u4ef6\u5f00\u53d1\u548c\u5d4c\u5165\u5f0f\u5f00\u53d1",title:"\u786c\u4ef6\u5f00\u53d1\u548c\u5d4c\u5165\u5f0f\u5f00\u53d1",description:"1. \u5d4c\u5165\u5f0flinux \u548c \u7528stm32\u8fdb\u884c\u7684\u5d4c\u5165\u5f0f\u5f00\u53d1 \u8fd9\u4e24\u8005\u4e4b\u95f4\u6709\u4ec0\u4e48\u5173\u8054\u6027\u5417\uff1f",source:"@site/docs/study/hard/\u786c\u4ef6\u5f00\u53d1\u548c\u5d4c\u5165\u5f0f\u5f00\u53d1.md",sourceDirName:"study/hard",slug:"/study/hard/\u786c\u4ef6\u5f00\u53d1\u548c\u5d4c\u5165\u5f0f\u5f00\u53d1",permalink:"/docs/study/hard/\u786c\u4ef6\u5f00\u53d1\u548c\u5d4c\u5165\u5f0f\u5f00\u53d1",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u5d4c\u5165\u5f0f_\u5355\u7247\u673a",permalink:"/docs/study/hard/\u5d4c\u5165\u5f0f_\u5355\u7247\u673a"},next:{title:"\u8def\u7531\u5668\u548c\u4ea4\u6362\u673a\u7684\u533a\u522b",permalink:"/docs/study/hard/\u8def\u7531\u5668\u548c\u4ea4\u6362\u673a\u7684\u533a\u522b"}},p={},u=[],y={toc:u},s="wrapper";function c(e){let{components:t,...r}=e;return(0,a.yg)(s,(0,n.A)({},y,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("a",{parentName:"li",href:"https://www.zhihu.com/question/53880054/answer/164501004"},"\u5d4c\u5165\u5f0flinux \u548c \u7528stm32\u8fdb\u884c\u7684\u5d4c\u5165\u5f0f\u5f00\u53d1 \u8fd9\u4e24\u8005\u4e4b\u95f4\u6709\u4ec0\u4e48\u5173\u8054\u6027\u5417\uff1f"),(0,a.yg)("ol",{parentName:"li"},(0,a.yg)("li",{parentName:"ol"},"=====\u57fa\u4e8eSTM32\u7684\u5f00\u53d1\u5c5e\u4e8e\u5fae\u63a7\u5236\u5668\u5f00\u53d1\u9886\u57df\uff0c\u4e3b\u8981\u5f00\u53d1\u5de5\u5177\u662f",(0,a.yg)("strong",{parentName:"li"},"keil"),"\u6216",(0,a.yg)("strong",{parentName:"li"},"IAR"),"\uff0c\u8fd9\u79cd\u5f00\u53d1\u66f4\u51c6\u786e\u7684\u8bf4\u6cd5\u662f",(0,a.yg)("strong",{parentName:"li"},"\u5355\u7247\u673a\u5f00\u53d1"),"\u6216\u8005\u786c\u4ef6\u5f00\u53d1\uff1b"),(0,a.yg)("li",{parentName:"ol"},"\u5d4c\u5165\u5f0f\u5f00\u53d1\uff0c\u5f00\u53d1\u73af\u5883\u662f",(0,a.yg)("strong",{parentName:"li"},"\u57fa\u4e8eLinux\u64cd\u4f5c\u7cfb\u7edf"),"\uff0c\u8fd9\u79cd\u5f00\u53d1\u4e00\u822c\u4f1a\u5206\u4e3a\u51e0\u4e2a\u5c42\u6b21\uff1a\u9a71\u52a8\u5f00\u53d1\u3001\u64cd\u4f5c\u7cfb\u7edf\u5c42\u5f00\u53d1\u3001\u5e94\u7528\u5c42\u5f00\u53d1\u3002"),(0,a.yg)("li",{parentName:"ol"},"\u5982\u679c\u73a9\u8fc7Arduino\u548c\u6811\u8393\u6d3e\uff0c\u90a3\u4e48\u8fd9\u4e2a\u5c31\u5f88\u597d\u7406\u89e3\u4e86\u3002STM32\u5f00\u53d1\u548cArduino\u662f\u540c\u4e00\u4e2a\u5c42\u6b21\uff0c\u5904\u4e8e\u5fae\u63a7\u5236\u5668\u7ea7\u522b\uff1b\u5d4c\u5165\u5f0fLinux\u5f00\u53d1\u548c\u6811\u8393\u6d3e\u4e00\u4e2a\u5c42\u6b21\uff0c\u5c5e\u4e8e\u5fae\u5904\u7406\u5668\u7ea7\u522b\u3002"),(0,a.yg)("li",{parentName:"ol"},"\u5355\u7247\u673a\u5f00\u53d1\u4e3b\u8981\u5728\u4e8e",(0,a.yg)("strong",{parentName:"li"},"\u63a7\u5236"),"\u3001",(0,a.yg)("strong",{parentName:"li"},"\u68c0\u6d4b"),"\u548c",(0,a.yg)("strong",{parentName:"li"},"\u4f20\u8f93"),"\u6570\u636e\uff0c\u6bd4\u5982\u63a7\u5236\u7ee7\u7535\u5668\u5f00\u5173\u4ee5\u63a7\u5236\u95e8\u9501\uff0c\u68c0\u6d4b\u6e29\u6e7f\u5ea6\u4e0a\u4f20\u6570\u636e\u5230\u7f51\u5173\u3002\u800c\u5904\u7406\u5668\u9664\u4e86\u53ef\u4ee5\u505a\u5355\u7247\u673a\u7684\u4e8b\uff0c\u8fd8\u53ef\u4ee5\u5904\u7406\u97f3\u89c6\u9891\u7b49",(0,a.yg)("strong",{parentName:"li"},"\u8ba1\u7b97\u91cf"),"\u5f88\u5927\u7684\u4efb\u52a1\uff0c\u6709",(0,a.yg)("strong",{parentName:"li"},"\u6587\u4ef6\u7ba1\u7406\u7cfb\u7edf"),"\u4e5f\u6709",(0,a.yg)("strong",{parentName:"li"},"\u66f4\u591a\u7684\u5b58\u50a8\u7a7a\u95f4"),"\uff0c\u4ee5\u53ca\u8be5\u5e73\u53f0\u6240\u63d0\u4f9b\u7684\u300c",(0,a.yg)("strong",{parentName:"li"},"\u5f00\u5c01\u5373\u7528"),"\u300d\u7684\u5de5\u5177\uff08\u5373\u5b89\u88c5\u540e\u5c31\u53ef\u4ee5\u76f4\u63a5\u4f7f\u7528\uff09\uff0c\u6bd4\u5982\u5728\u6811\u8393\u6d3e\u4e0a\u8fd0\u884c\u4e00\u4e2a\u4eba\u8138\u68c0\u6d4b\u7cfb\u7edf\u662f\u6ca1\u95ee\u9898\u7684\uff0c\u5728\u6811\u8393\u6d3e\u4e0a\u642d\u5efaWeb\u7f51\u7ad9\u4e5f\u662f\u5f88\u65b9\u4fbf\u7684\u3002"),(0,a.yg)("li",{parentName:"ol"},"=====\u5d4c\u5165\u5f0f\u5f00\u53d1\uff0c\u4e3b\u8981\u6709\u4e09\u6761\u6280\u672f\u8def\u7ebf\uff1a",(0,a.yg)("ul",{parentName:"li"},(0,a.yg)("li",{parentName:"ul"},"51\u5355\u7247\u673a"),(0,a.yg)("li",{parentName:"ul"},"STM32 + RTOS"),(0,a.yg)("li",{parentName:"ul"},"ARM + Linux\xa0 \xa0\xa0"),(0,a.yg)("li",{parentName:"ul"},"51\u5355\u7247\u673a\u4e3b\u8981\u7528\u5728\u4e00\u4e9b\u63a7\u5236\u7b80\u5355\u7684\u7535\u8def\u3001\u7535\u5668\u884c\u4e1a"),(0,a.yg)("li",{parentName:"ul"},"STM32 + RTOS \u4e3b\u8981\u7528\u5728\u4e00\u4e9b\u5b9e\u65f6\u8981\u6c42\u6bd4\u8f83\u9ad8\u7684\u884c\u4e1a\uff1a\u822a\u7a7a\u822a\u5929\u7b49\uff0c\u8fd8\u6709\u7269\u8054\u7f51\u3001\u5de5\u4e1a\u63a7\u5236"),(0,a.yg)("li",{parentName:"ul"},"ARM + Linux\u4e3b\u8981\u7528\u5728\u6d88\u8d39\u7535\u5b50\u9886\u57df\uff1a\u624b\u673a\u3001\u5e73\u677f\u3001\u667a\u80fd\u624b\u8868\u3001\u667a\u80fd\u97f3\u7bb1\u7b49"))),(0,a.yg)("li",{parentName:"ol"},"=====\u6309\u7167\u7cfb\u5217\u5212\u5206\uff1a",(0,a.yg)("ol",{parentName:"li"},(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("strong",{parentName:"li"},"\u5fae\u63a7\u5236\u5668\u7cfb\u5217\uff1a8051, MSP 430 ,\xa0"),"STM32 F0-3( ARM Cortext M0 - M3\u7cfb\u5217\uff09\u7b49"),(0,a.yg)("li",{parentName:"ol"},"\u4e3b\u8981\u7279\u70b9\u6ca1\u6709",(0,a.yg)("em",{parentName:"li"},"\u5185\u5b58\u7ba1\u7406\u5355\u5143"),"\uff0c\u4e0d\u80fd\u8fd0\u884clinux \u8fd9\u7c7b\u6709\u7740\u865a\u62df\u5185\u5b58\u7684\u64cd\u4f5c\u7cfb\u7edf\uff0c\u53ea\u80fd\u8fd0\u884c\u88f8\u673a\u7a0b\u5e8f\u6216\u662fucOS\u4e00\u7c7b\u7684\u5b9e\u65f6\u64cd\u4f5c\u7cfb\u7edf\u3002\u4e3b\u8981\u5de5\u4f5c\u5c31\u662f\u5916\u8bbe\u9a71\u52a8\u5f00\u53d1\uff08\u6bd4\u5982\u5199\u4e2a\u7f16\u7801\u5668\u7684\u9a71\u52a8\uff0c\u6db2\u6676\u7684\u9a71\u52a8\uff0cusb\u7684\u9a71\u52a8\uff09\u548c\u57fa\u4e8e\u9a71\u52a8\u7684\u5e94\u7528\u7a0b\u5e8f\u5f00\u53d1\uff0c\u5982\u63a7\u5236\u7c7b\u548c\u7b80\u5355\u7684\u56fe\u50cf\u5904\u7406\u529f\u80fd\u3002"),(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("strong",{parentName:"li"},"\u5fae\u5904\u7406\u5668\u7cfb\u5217"),"\uff1a ARM Cortex A\u7cfb\u5217\u7684\u5904\u7406\u5668"),(0,a.yg)("li",{parentName:"ol"},"\u6709",(0,a.yg)("em",{parentName:"li"},"\u5185\u5b58\u7ba1\u7406\u5355\u5143MMU"),",\u53ef\u4ee5\u8fd0\u884clinux\u7a0b\u5e8f\uff0c\u5f00\u53d1\u5176\u5b9e\u548c\u5728windows pc\u4e0a\u5199\u7a0b\u5e8f\u662f\u4e00\u6837\u7684\uff0c\u53ea\u662f\u7531\u4e8earm\u7f16\u8bd1\u6162\uff0c\u4e00\u822c\u4f1a\u9009\u5728\u5728PC\u4e0a\u7528\u9488\u5bf9ARM\u7279\u5b9a\u7f16\u8bd1\u5668\u53bb\u7f16\u8bd1\u51fa\u7a0b\u5e8f\u653e\u5728ARM\u4e0a\u8fd0\u884c\uff0c\u5c31\u662f\u4ea4\u53c9\u7f16\u8bd1\u3002\u8fd9\u91cc\u6d89\u53ca\u5230\u7684\u9a71\u52a8\u5f00\u53d1\u6bd4\u8f83\u590d\u6742\uff0c\u4e00\u822c\u4f1a\u9075\u5faalinux\u5b9a\u4e49\u7684\u89c4\u5219\u53bb\u5199\u3002")))))))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/5b270517.ed08f3b9.js b/assets/js/5b270517.2b06309a.js similarity index 98% rename from assets/js/5b270517.ed08f3b9.js rename to assets/js/5b270517.2b06309a.js index d4804e6ea..89bb11459 100644 --- a/assets/js/5b270517.ed08f3b9.js +++ b/assets/js/5b270517.2b06309a.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5006],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),s=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},p=function(e){var t=s(e.components);return n.createElement(l.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),u=s(r),y=o,f=u["".concat(l,".").concat(y)]||u[y]||d[y]||a;return r?n.createElement(f,c(c({ref:t},p),{},{components:r})):n.createElement(f,c({ref:t},p))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=y;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[u]="string"==typeof e?e:o,c[1]=i;for(var s=2;s{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>c,default:()=>d,frontMatter:()=>a,metadata:()=>i,toc:()=>s});var n=r(8168),o=(r(6540),r(5680));const a={},c=void 0,i={unversionedId:"study/db/\u65f6\u5e8f\u6570\u636e\u5e93/TimescaleDB",id:"study/db/\u65f6\u5e8f\u6570\u636e\u5e93/TimescaleDB",title:"TimescaleDB",description:"\u57fa\u672c\u4fe1\u606f",source:"@site/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/TimescaleDB.md",sourceDirName:"study/db/\u65f6\u5e8f\u6570\u636e\u5e93",slug:"/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/TimescaleDB",permalink:"/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/TimescaleDB",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"OpenTSDB",permalink:"/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/OpenTSDB"},next:{title:"\u6982\u8ff0",permalink:"/docs/study/program/"}},l={},s=[{value:"\u57fa\u672c\u4fe1\u606f",id:"\u57fa\u672c\u4fe1\u606f",level:3}],p={toc:s},u="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(u,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"\u57fa\u672c\u4fe1\u606f"},"\u57fa\u672c\u4fe1\u606f"),(0,o.yg)("ol",null,(0,o.yg)("li",{parentName:"ol"},"\u57fa\u4e8e\u5173\u7cfb\u578b\u6570\u636e\u5e93\u7684\u65f6\u95f4\u5e8f\u5217\u6570\u636e\u5e93"),(0,o.yg)("li",{parentName:"ol"},"\u63a5\u53e3\uff1aSQL")))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5006],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),s=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},p=function(e){var t=s(e.components);return n.createElement(l.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),u=s(r),y=o,f=u["".concat(l,".").concat(y)]||u[y]||d[y]||a;return r?n.createElement(f,c(c({ref:t},p),{},{components:r})):n.createElement(f,c({ref:t},p))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=y;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[u]="string"==typeof e?e:o,c[1]=i;for(var s=2;s{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>c,default:()=>d,frontMatter:()=>a,metadata:()=>i,toc:()=>s});var n=r(8168),o=(r(6540),r(5680));const a={},c=void 0,i={unversionedId:"study/db/\u65f6\u5e8f\u6570\u636e\u5e93/TimescaleDB",id:"study/db/\u65f6\u5e8f\u6570\u636e\u5e93/TimescaleDB",title:"TimescaleDB",description:"\u57fa\u672c\u4fe1\u606f",source:"@site/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/TimescaleDB.md",sourceDirName:"study/db/\u65f6\u5e8f\u6570\u636e\u5e93",slug:"/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/TimescaleDB",permalink:"/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/TimescaleDB",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"OpenTSDB",permalink:"/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/OpenTSDB"},next:{title:"\u6982\u8ff0",permalink:"/docs/study/program/"}},l={},s=[{value:"\u57fa\u672c\u4fe1\u606f",id:"\u57fa\u672c\u4fe1\u606f",level:3}],p={toc:s},u="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(u,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"\u57fa\u672c\u4fe1\u606f"},"\u57fa\u672c\u4fe1\u606f"),(0,o.yg)("ol",null,(0,o.yg)("li",{parentName:"ol"},"\u57fa\u4e8e\u5173\u7cfb\u578b\u6570\u636e\u5e93\u7684\u65f6\u95f4\u5e8f\u5217\u6570\u636e\u5e93"),(0,o.yg)("li",{parentName:"ol"},"\u63a5\u53e3\uff1aSQL")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/5b89160d.366ad015.js b/assets/js/5b89160d.7573e140.js similarity index 98% rename from assets/js/5b89160d.366ad015.js rename to assets/js/5b89160d.7573e140.js index 24ca9525c..a7b296394 100644 --- a/assets/js/5b89160d.366ad015.js +++ b/assets/js/5b89160d.7573e140.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2202],{5680:(e,t,r)=>{r.d(t,{xA:()=>l,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var u=n.createContext({}),p=function(e){var t=n.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},l=function(e){var t=p(e.components);return n.createElement(u.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,i=e.originalType,u=e.parentName,l=a(e,["components","mdxType","originalType","parentName"]),s=p(r),y=o,f=s["".concat(u,".").concat(y)]||s[y]||d[y]||i;return r?n.createElement(f,c(c({ref:t},l),{},{components:r})):n.createElement(f,c({ref:t},l))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=r.length,c=new Array(i);c[0]=y;var a={};for(var u in t)hasOwnProperty.call(t,u)&&(a[u]=t[u]);a.originalType=e,a[s]="string"==typeof e?e:o,c[1]=a;for(var p=2;p{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>c,default:()=>d,frontMatter:()=>i,metadata:()=>a,toc:()=>p});var n=r(8168),o=(r(6540),r(5680));const i={},c="ThingsCloud",a={unversionedId:"study/competitive/ThingsCloud",id:"study/competitive/ThingsCloud",title:"ThingsCloud",description:"\u53c2\u8003\uff0c\u53c2\u8003\uff0c\u7edd\u5bf9\u53ef\u4ee5\u53c2\u8003\u3002",source:"@site/docs/study/competitive/ThingsCloud.md",sourceDirName:"study/competitive",slug:"/study/competitive/ThingsCloud",permalink:"/docs/study/competitive/ThingsCloud",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"TP-LINK",permalink:"/docs/study/competitive/TP-LINK"},next:{title:"\u7269\u8054\u7f51\u5e73\u53f0\u5c42\u6982\u8ff0",permalink:"/docs/study/competitive/\u7269\u8054\u7f51\u5e73\u53f0\u5c42\u6982\u8ff0"}},u={},p=[],l={toc:p},s="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},l,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"thingscloud"},"ThingsCloud"),(0,o.yg)("p",null,"\u53c2\u8003\uff0c\u53c2\u8003\uff0c\u7edd\u5bf9\u53ef\u4ee5\u53c2\u8003\u3002"),(0,o.yg)("p",null,(0,o.yg)("a",{parentName:"p",href:"https://www.thingscloud.xyz/"},"\u5b98\u65b9\u7f51\u7ad9")))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2202],{5680:(e,t,r)=>{r.d(t,{xA:()=>l,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var u=n.createContext({}),p=function(e){var t=n.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},l=function(e){var t=p(e.components);return n.createElement(u.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,i=e.originalType,u=e.parentName,l=a(e,["components","mdxType","originalType","parentName"]),s=p(r),y=o,f=s["".concat(u,".").concat(y)]||s[y]||d[y]||i;return r?n.createElement(f,c(c({ref:t},l),{},{components:r})):n.createElement(f,c({ref:t},l))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=r.length,c=new Array(i);c[0]=y;var a={};for(var u in t)hasOwnProperty.call(t,u)&&(a[u]=t[u]);a.originalType=e,a[s]="string"==typeof e?e:o,c[1]=a;for(var p=2;p{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>c,default:()=>d,frontMatter:()=>i,metadata:()=>a,toc:()=>p});var n=r(8168),o=(r(6540),r(5680));const i={},c="ThingsCloud",a={unversionedId:"study/competitive/ThingsCloud",id:"study/competitive/ThingsCloud",title:"ThingsCloud",description:"\u53c2\u8003\uff0c\u53c2\u8003\uff0c\u7edd\u5bf9\u53ef\u4ee5\u53c2\u8003\u3002",source:"@site/docs/study/competitive/ThingsCloud.md",sourceDirName:"study/competitive",slug:"/study/competitive/ThingsCloud",permalink:"/docs/study/competitive/ThingsCloud",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"TP-LINK",permalink:"/docs/study/competitive/TP-LINK"},next:{title:"\u7269\u8054\u7f51\u5e73\u53f0\u5c42\u6982\u8ff0",permalink:"/docs/study/competitive/\u7269\u8054\u7f51\u5e73\u53f0\u5c42\u6982\u8ff0"}},u={},p=[],l={toc:p},s="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},l,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"thingscloud"},"ThingsCloud"),(0,o.yg)("p",null,"\u53c2\u8003\uff0c\u53c2\u8003\uff0c\u7edd\u5bf9\u53ef\u4ee5\u53c2\u8003\u3002"),(0,o.yg)("p",null,(0,o.yg)("a",{parentName:"p",href:"https://www.thingscloud.xyz/"},"\u5b98\u65b9\u7f51\u7ad9")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/5ca6a2d2.1e26a5fa.js b/assets/js/5ca6a2d2.683b4d06.js similarity index 98% rename from assets/js/5ca6a2d2.1e26a5fa.js rename to assets/js/5ca6a2d2.683b4d06.js index ed2e6f358..f3ab9785e 100644 --- a/assets/js/5ca6a2d2.1e26a5fa.js +++ b/assets/js/5ca6a2d2.683b4d06.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2189],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>g});var n=r(6540);function l(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function a(e){for(var t=1;t=0||(l[r]=e[r]);return l}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(l[r]=e[r])}return l}var s=n.createContext({}),d=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},p=function(e){var t=d(e.components);return n.createElement(s.Provider,{value:t},e.children)},u="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},c=n.forwardRef((function(e,t){var r=e.components,l=e.mdxType,i=e.originalType,s=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),u=d(r),c=l,g=u["".concat(s,".").concat(c)]||u[c]||y[c]||i;return r?n.createElement(g,a(a({ref:t},p),{},{components:r})):n.createElement(g,a({ref:t},p))}));function g(e,t){var r=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var i=r.length,a=new Array(i);a[0]=c;var o={};for(var s in t)hasOwnProperty.call(t,s)&&(o[s]=t[s]);o.originalType=e,o[u]="string"==typeof e?e:l,a[1]=o;for(var d=2;d{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>a,default:()=>y,frontMatter:()=>i,metadata:()=>o,toc:()=>d});var n=r(8168),l=(r(6540),r(5680));const i={},a=void 0,o={unversionedId:"study/db/NoSQL/Redis",id:"study/db/NoSQL/Redis",title:"Redis",description:"Redis \u662f\u4ec0\u4e48",source:"@site/docs/study/db/NoSQL/Redis.md",sourceDirName:"study/db/NoSQL",slug:"/study/db/NoSQL/Redis",permalink:"/docs/study/db/NoSQL/Redis",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"MongoDB",permalink:"/docs/study/db/NoSQL/MongoDB"},next:{title:"\u7efc\u5408\u6982\u8ff0",permalink:"/docs/study/db/OLAP/\u7efc\u5408\u6982\u8ff0"}},s={},d=[{value:"Redis \u662f\u4ec0\u4e48",id:"redis-\u662f\u4ec0\u4e48",level:3},{value:"Redis \u6570\u636e\u7ed3\u6784",id:"redis-\u6570\u636e\u7ed3\u6784",level:3},{value:"Redis \u6301\u4e45\u5316",id:"redis-\u6301\u4e45\u5316",level:3},{value:"Redis \u4e3b\u4ece",id:"redis-\u4e3b\u4ece",level:3},{value:"\u53c2\u8003\u8d44\u6599",id:"\u53c2\u8003\u8d44\u6599",level:3}],p={toc:d},u="wrapper";function y(e){let{components:t,...r}=e;return(0,l.yg)(u,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,l.yg)("h3",{id:"redis-\u662f\u4ec0\u4e48"},"Redis \u662f\u4ec0\u4e48"),(0,l.yg)("p",null,"redis \u662f\u4e00\u4e2a\u5f00\u6e90\u7684\u3001\u4f7f\u7528 C \u8bed\u8a00\u7f16\u5199\u7684\u3001\u652f\u6301\u7f51\u7edc\u4ea4\u4e92\u7684\u3001\u53ef\u57fa\u4e8e\u5185\u5b58\u4e5f\u53ef\u6301\u4e45\u5316\u7684 Key-Value \u6570\u636e\u5e93\u3002",(0,l.yg)("a",{parentName:"p",href:"https://redis.io"},"\u5b98\u7f51"),"\u3002"),(0,l.yg)("p",null,"\u76ee\u524d\uff0cVmware \u5728\u8d44\u52a9\u7740 redis \u9879\u76ee\u7684\u5f00\u53d1\u548c\u7ef4\u62a4\u3002"),(0,l.yg)("p",null,"redis \u7684\u4f5c\u8005\uff0c\u4ed6\u53eb Salvatore Sanfilippo\uff0c\u7f51\u540d\u662f antirez\uff0c\u53bb\u4ed6\u7684\u535a\u5ba2\u901b\u901b\uff0c\u5730\u5740\u662f antirez.com\uff0c\u5f53\u7136\u4e5f\u53ef\u4ee5\u53bb follow \u4ed6\u7684 github\uff0c\u5730\u5740\u662f",(0,l.yg)("a",{parentName:"p",href:"http://github.com/antirez"},"http://github.com/antirez"),"\u3002"),(0,l.yg)("p",null,"Redis \u662f K-V \u5b58\u50a8\u7684\u5178\u578b\u4ee3\u8868\uff0c\u5b83\u662f\u4e00\u6b3e\u5f00\u6e90\uff08\u57fa\u4e8e BSD \u8bb8\u53ef\uff09\u7684\u9ad8\u6027\u80fd K-V \u7f13\u5b58\u548c\u5b58\u50a8\u7cfb\u7edf\u3002Redis \u7684 Value \u662f\u5177\u4f53\u7684\u6570\u636e\u7ed3\u6784\uff0c\u5305\u62ec string\u3001hash\u3001list\u3001set\u3001sorted set\u3001bitmap \u548c hyperloglog\uff0c\u6240\u4ee5\u5e38\u5e38\u88ab\u79f0\u4e3a\u6570\u636e\u7ed3\u6784\u670d\u52a1\u5668\u3002"),(0,l.yg)("h3",{id:"redis-\u6570\u636e\u7ed3\u6784"},"Redis \u6570\u636e\u7ed3\u6784"),(0,l.yg)("p",null,"redis \u662f\u4e00\u79cd\u9ad8\u7ea7\u7684 key:value \u5b58\u50a8\u7cfb\u7edf\uff0c\u5176\u4e2d value \u652f\u6301\u4e94\u79cd\u6570\u636e\u7c7b\u578b\uff1a"),(0,l.yg)("ol",null,(0,l.yg)("li",{parentName:"ol"},"\u5b57\u7b26\u4e32\uff08strings\uff09"),(0,l.yg)("li",{parentName:"ol"},"\u5b57\u7b26\u4e32\u5217\u8868\uff08lists\uff09"),(0,l.yg)("li",{parentName:"ol"},"\u5b57\u7b26\u4e32\u96c6\u5408\uff08sets\uff09"),(0,l.yg)("li",{parentName:"ol"},"\u6709\u5e8f\u5b57\u7b26\u4e32\u96c6\u5408\uff08sorted sets\uff09"),(0,l.yg)("li",{parentName:"ol"},"\u54c8\u5e0c\uff08hashes\uff09",(0,l.yg)("ol",{parentName:"li"},(0,l.yg)("li",{parentName:"ol"},"hashes \u5b58\u7684\u662f\u5b57\u7b26\u4e32\u548c\u5b57\u7b26\u4e32\u503c\u4e4b\u95f4\u7684\u6620\u5c04\uff0c\u6bd4\u5982\u4e00\u4e2a\u7528\u6237\u8981\u5b58\u50a8\u5176\u5168\u540d\u3001\u59d3\u6c0f\u3001\u5e74\u9f84\u7b49\u7b49\uff0c\u5c31\u5f88\u9002\u5408\u4f7f\u7528\u54c8\u5e0c\u3002")))),(0,l.yg)("p",null,"key \u7684\u547d\u540d\u89c4\u5219\uff1a"),(0,l.yg)("ol",null,(0,l.yg)("li",{parentName:"ol"},"key \u4e0d\u8981\u592a\u957f\uff0c\u5c3d\u91cf\u4e0d\u8981\u8d85\u8fc7 1024 \u5b57\u8282\uff0c\u8fd9\u4e0d\u4ec5\u6d88\u8017\u5185\u5b58\uff0c\u800c\u4e14\u4f1a\u964d\u4f4e\u67e5\u627e\u7684\u6548\u7387\uff1b"),(0,l.yg)("li",{parentName:"ol"},"key \u4e5f\u4e0d\u8981\u592a\u77ed\uff0c\u592a\u77ed\u7684\u8bdd\uff0ckey \u7684\u53ef\u8bfb\u6027\u4f1a\u964d\u4f4e\uff1b"),(0,l.yg)("li",{parentName:"ol"},"\u5728\u4e00\u4e2a\u9879\u76ee\u4e2d\uff0ckey \u6700\u597d\u4f7f\u7528\u7edf\u4e00\u7684\u547d\u540d\u6a21\u5f0f\uff0c\u4f8b\u5982 user:10000:passwd\u3002")),(0,l.yg)("h3",{id:"redis-\u6301\u4e45\u5316"},"Redis \u6301\u4e45\u5316"),(0,l.yg)("p",null,"redis \u63d0\u4f9b\u4e86\u4e24\u79cd\u6301\u4e45\u5316\u7684\u65b9\u5f0f\uff0c\u5206\u522b\u662f RDB\uff08Redis DataBase\uff09\u548c AOF\uff08Append Only File\uff09\u3002"),(0,l.yg)("p",null,"RDB\uff0c\u7b80\u800c\u8a00\u4e4b\uff0c\u5c31\u662f\u5728\u4e0d\u540c\u7684\u65f6\u95f4\u70b9\uff0c\u5c06 redis \u5b58\u50a8\u7684\u6570\u636e\u751f\u6210\u5feb\u7167\u5e76\u5b58\u50a8\u5230\u78c1\u76d8\u7b49\u4ecb\u8d28\u4e0a\uff1b\nAOF\uff0c\u5219\u662f\u6362\u4e86\u4e00\u4e2a\u89d2\u5ea6\u6765\u5b9e\u73b0\u6301\u4e45\u5316\uff0c\u90a3\u5c31\u662f\u5c06 redis \u6267\u884c\u8fc7\u7684\u6240\u6709\u5199\u6307\u4ee4\u8bb0\u5f55\u4e0b\u6765\uff0c\u5728\u4e0b\u6b21 redis \u91cd\u65b0\u542f\u52a8\u65f6\uff0c\u53ea\u8981\u628a\u8fd9\u4e9b\u5199\u6307\u4ee4\u4ece\u524d\u5230\u540e\u518d\u91cd\u590d\u6267\u884c\u4e00\u904d\uff0c\u5c31\u53ef\u4ee5\u5b9e\u73b0\u6570\u636e\u6062\u590d\u4e86\u3002"),(0,l.yg)("p",null,"\u5176\u5b9e RDB \u548c AOF \u4e24\u79cd\u65b9\u5f0f\u4e5f\u53ef\u4ee5\u540c\u65f6\u4f7f\u7528\uff0c\u5728\u8fd9\u79cd\u60c5\u51b5\u4e0b\uff0c\u5982\u679c redis \u91cd\u542f\u7684\u8bdd\uff0c\u5219\u4f1a\u4f18\u5148\u91c7\u7528 AOF \u65b9\u5f0f\u6765\u8fdb\u884c\u6570\u636e\u6062\u590d\uff0c\u8fd9\u662f\u56e0\u4e3a AOF \u65b9\u5f0f\u7684\u6570\u636e\u6062\u590d\u5b8c\u6574\u5ea6\u66f4\u9ad8\u3002"),(0,l.yg)("p",null,"\u5982\u679c\u4f60\u6ca1\u6709\u6570\u636e\u6301\u4e45\u5316\u7684\u9700\u6c42\uff0c\u4e5f\u5b8c\u5168\u53ef\u4ee5\u5173\u95ed RDB \u548c AOF \u65b9\u5f0f\uff0c\u8fd9\u6837\u7684\u8bdd\uff0credis \u5c06\u53d8\u6210\u4e00\u4e2a\u7eaf\u5185\u5b58\u6570\u636e\u5e93\uff0c\u5c31\u50cf memcache \u4e00\u6837\u3002"),(0,l.yg)("h3",{id:"redis-\u4e3b\u4ece"},"Redis \u4e3b\u4ece"),(0,l.yg)("p",null,"\u50cf MySQL \u4e00\u6837\uff0credis \u662f\u652f\u6301\u4e3b\u4ece\u540c\u6b65\u7684\uff0c\u800c\u4e14\u4e5f\u652f\u6301\u4e00\u4e3b\u591a\u4ece\u4ee5\u53ca\u591a\u7ea7\u4ece\u7ed3\u6784\u3002"),(0,l.yg)("p",null,"\u4e3b\u4ece\u7ed3\u6784\uff0c\u4e00\u662f\u4e3a\u4e86\u7eaf\u7cb9\u7684\u5197\u4f59\u5907\u4efd\uff0c\u4e8c\u662f\u4e3a\u4e86\u63d0\u5347\u8bfb\u6027\u80fd\uff0c\u6bd4\u5982\u5f88\u6d88\u8017\u6027\u80fd\u7684 SORT \u5c31\u53ef\u4ee5\u7531\u4ece\u670d\u52a1\u5668\u6765\u627f\u62c5\u3002"),(0,l.yg)("p",null,"redis \u7684\u4e3b\u4ece\u540c\u6b65\u662f\u5f02\u6b65\u8fdb\u884c\u7684\uff0c\u8fd9\u610f\u5473\u7740\u4e3b\u4ece\u540c\u6b65\u4e0d\u4f1a\u5f71\u54cd\u4e3b\u903b\u8f91\uff0c\u4e5f\u4e0d\u4f1a\u964d\u4f4e redis \u7684\u5904\u7406\u6027\u80fd\u3002"),(0,l.yg)("p",null,"\u4e3b\u4ece\u67b6\u6784\u4e2d\uff0c\u53ef\u4ee5\u8003\u8651\u5173\u95ed\u4e3b\u670d\u52a1\u5668\u7684\u6570\u636e\u6301\u4e45\u5316\u529f\u80fd\uff0c\u53ea\u8ba9\u4ece\u670d\u52a1\u5668\u8fdb\u884c\u6301\u4e45\u5316\uff0c\u8fd9\u6837\u53ef\u4ee5\u63d0\u9ad8\u4e3b\u670d\u52a1\u5668\u7684\u5904\u7406\u6027\u80fd\u3002"),(0,l.yg)("p",null,"\u5728\u4e3b\u4ece\u67b6\u6784\u4e2d\uff0c\u4ece\u670d\u52a1\u5668\u901a\u5e38\u88ab\u8bbe\u7f6e\u4e3a\u53ea\u8bfb\u6a21\u5f0f\uff0c\u8fd9\u6837\u53ef\u4ee5\u907f\u514d\u4ece\u670d\u52a1\u5668\u7684\u6570\u636e\u88ab\u8bef\u4fee\u6539\u3002\u4f46\u662f\u4ece\u670d\u52a1\u5668\u4ecd\u7136\u53ef\u4ee5\u63a5\u53d7 CONFIG \u7b49\u6307\u4ee4\uff0c\u6240\u4ee5\u8fd8\u662f\u4e0d\u5e94\u8be5\u5c06\u4ece\u670d\u52a1\u5668\u76f4\u63a5\u66b4\u9732\u5230\u4e0d\u5b89\u5168\u7684\u7f51\u7edc\u73af\u5883\u4e2d\u3002\u5982\u679c\u5fc5\u987b\u5982\u6b64\uff0c\u90a3\u53ef\u4ee5\u8003\u8651\u7ed9\u91cd\u8981\u6307\u4ee4\u8fdb\u884c\u91cd\u547d\u540d\uff0c\u6765\u907f\u514d\u547d\u4ee4\u88ab\u5916\u4eba\u8bef\u6267\u884c\u3002"),(0,l.yg)("h3",{id:"\u53c2\u8003\u8d44\u6599"},"\u53c2\u8003\u8d44\u6599"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"https://zhuanlan.zhihu.com/p/523368070"},"\u5f20\u5f66\u98de-Redis 6 \u4e2d\u7684\u591a\u7ebf\u7a0b\u5b9e\u73b0\u65b9\u5f0f\u6bd4\u6211\u9884\u671f\u7684\u8981\u5dee")),(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"https://zhuanlan.zhihu.com/p/512502929"},"\u5f20\u5f66\u98de-\u6df1\u5ea6\u89e3\u6790\u5355\u7ebf\u7a0b\u7684 Redis \u5982\u4f55\u505a\u5230\u6bcf\u79d2\u6570\u4e07 QPS \u7684\u8d85\u9ad8\u5904\u7406\u80fd\u529b\uff01"))))}y.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2189],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>g});var n=r(6540);function l(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function a(e){for(var t=1;t=0||(l[r]=e[r]);return l}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(l[r]=e[r])}return l}var s=n.createContext({}),d=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},p=function(e){var t=d(e.components);return n.createElement(s.Provider,{value:t},e.children)},u="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},c=n.forwardRef((function(e,t){var r=e.components,l=e.mdxType,i=e.originalType,s=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),u=d(r),c=l,g=u["".concat(s,".").concat(c)]||u[c]||y[c]||i;return r?n.createElement(g,a(a({ref:t},p),{},{components:r})):n.createElement(g,a({ref:t},p))}));function g(e,t){var r=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var i=r.length,a=new Array(i);a[0]=c;var o={};for(var s in t)hasOwnProperty.call(t,s)&&(o[s]=t[s]);o.originalType=e,o[u]="string"==typeof e?e:l,a[1]=o;for(var d=2;d{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>a,default:()=>y,frontMatter:()=>i,metadata:()=>o,toc:()=>d});var n=r(8168),l=(r(6540),r(5680));const i={},a=void 0,o={unversionedId:"study/db/NoSQL/Redis",id:"study/db/NoSQL/Redis",title:"Redis",description:"Redis \u662f\u4ec0\u4e48",source:"@site/docs/study/db/NoSQL/Redis.md",sourceDirName:"study/db/NoSQL",slug:"/study/db/NoSQL/Redis",permalink:"/docs/study/db/NoSQL/Redis",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"MongoDB",permalink:"/docs/study/db/NoSQL/MongoDB"},next:{title:"\u7efc\u5408\u6982\u8ff0",permalink:"/docs/study/db/OLAP/\u7efc\u5408\u6982\u8ff0"}},s={},d=[{value:"Redis \u662f\u4ec0\u4e48",id:"redis-\u662f\u4ec0\u4e48",level:3},{value:"Redis \u6570\u636e\u7ed3\u6784",id:"redis-\u6570\u636e\u7ed3\u6784",level:3},{value:"Redis \u6301\u4e45\u5316",id:"redis-\u6301\u4e45\u5316",level:3},{value:"Redis \u4e3b\u4ece",id:"redis-\u4e3b\u4ece",level:3},{value:"\u53c2\u8003\u8d44\u6599",id:"\u53c2\u8003\u8d44\u6599",level:3}],p={toc:d},u="wrapper";function y(e){let{components:t,...r}=e;return(0,l.yg)(u,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,l.yg)("h3",{id:"redis-\u662f\u4ec0\u4e48"},"Redis \u662f\u4ec0\u4e48"),(0,l.yg)("p",null,"redis \u662f\u4e00\u4e2a\u5f00\u6e90\u7684\u3001\u4f7f\u7528 C \u8bed\u8a00\u7f16\u5199\u7684\u3001\u652f\u6301\u7f51\u7edc\u4ea4\u4e92\u7684\u3001\u53ef\u57fa\u4e8e\u5185\u5b58\u4e5f\u53ef\u6301\u4e45\u5316\u7684 Key-Value \u6570\u636e\u5e93\u3002",(0,l.yg)("a",{parentName:"p",href:"https://redis.io"},"\u5b98\u7f51"),"\u3002"),(0,l.yg)("p",null,"\u76ee\u524d\uff0cVmware \u5728\u8d44\u52a9\u7740 redis \u9879\u76ee\u7684\u5f00\u53d1\u548c\u7ef4\u62a4\u3002"),(0,l.yg)("p",null,"redis \u7684\u4f5c\u8005\uff0c\u4ed6\u53eb Salvatore Sanfilippo\uff0c\u7f51\u540d\u662f antirez\uff0c\u53bb\u4ed6\u7684\u535a\u5ba2\u901b\u901b\uff0c\u5730\u5740\u662f antirez.com\uff0c\u5f53\u7136\u4e5f\u53ef\u4ee5\u53bb follow \u4ed6\u7684 github\uff0c\u5730\u5740\u662f",(0,l.yg)("a",{parentName:"p",href:"http://github.com/antirez"},"http://github.com/antirez"),"\u3002"),(0,l.yg)("p",null,"Redis \u662f K-V \u5b58\u50a8\u7684\u5178\u578b\u4ee3\u8868\uff0c\u5b83\u662f\u4e00\u6b3e\u5f00\u6e90\uff08\u57fa\u4e8e BSD \u8bb8\u53ef\uff09\u7684\u9ad8\u6027\u80fd K-V \u7f13\u5b58\u548c\u5b58\u50a8\u7cfb\u7edf\u3002Redis \u7684 Value \u662f\u5177\u4f53\u7684\u6570\u636e\u7ed3\u6784\uff0c\u5305\u62ec string\u3001hash\u3001list\u3001set\u3001sorted set\u3001bitmap \u548c hyperloglog\uff0c\u6240\u4ee5\u5e38\u5e38\u88ab\u79f0\u4e3a\u6570\u636e\u7ed3\u6784\u670d\u52a1\u5668\u3002"),(0,l.yg)("h3",{id:"redis-\u6570\u636e\u7ed3\u6784"},"Redis \u6570\u636e\u7ed3\u6784"),(0,l.yg)("p",null,"redis \u662f\u4e00\u79cd\u9ad8\u7ea7\u7684 key:value \u5b58\u50a8\u7cfb\u7edf\uff0c\u5176\u4e2d value \u652f\u6301\u4e94\u79cd\u6570\u636e\u7c7b\u578b\uff1a"),(0,l.yg)("ol",null,(0,l.yg)("li",{parentName:"ol"},"\u5b57\u7b26\u4e32\uff08strings\uff09"),(0,l.yg)("li",{parentName:"ol"},"\u5b57\u7b26\u4e32\u5217\u8868\uff08lists\uff09"),(0,l.yg)("li",{parentName:"ol"},"\u5b57\u7b26\u4e32\u96c6\u5408\uff08sets\uff09"),(0,l.yg)("li",{parentName:"ol"},"\u6709\u5e8f\u5b57\u7b26\u4e32\u96c6\u5408\uff08sorted sets\uff09"),(0,l.yg)("li",{parentName:"ol"},"\u54c8\u5e0c\uff08hashes\uff09",(0,l.yg)("ol",{parentName:"li"},(0,l.yg)("li",{parentName:"ol"},"hashes \u5b58\u7684\u662f\u5b57\u7b26\u4e32\u548c\u5b57\u7b26\u4e32\u503c\u4e4b\u95f4\u7684\u6620\u5c04\uff0c\u6bd4\u5982\u4e00\u4e2a\u7528\u6237\u8981\u5b58\u50a8\u5176\u5168\u540d\u3001\u59d3\u6c0f\u3001\u5e74\u9f84\u7b49\u7b49\uff0c\u5c31\u5f88\u9002\u5408\u4f7f\u7528\u54c8\u5e0c\u3002")))),(0,l.yg)("p",null,"key \u7684\u547d\u540d\u89c4\u5219\uff1a"),(0,l.yg)("ol",null,(0,l.yg)("li",{parentName:"ol"},"key \u4e0d\u8981\u592a\u957f\uff0c\u5c3d\u91cf\u4e0d\u8981\u8d85\u8fc7 1024 \u5b57\u8282\uff0c\u8fd9\u4e0d\u4ec5\u6d88\u8017\u5185\u5b58\uff0c\u800c\u4e14\u4f1a\u964d\u4f4e\u67e5\u627e\u7684\u6548\u7387\uff1b"),(0,l.yg)("li",{parentName:"ol"},"key \u4e5f\u4e0d\u8981\u592a\u77ed\uff0c\u592a\u77ed\u7684\u8bdd\uff0ckey \u7684\u53ef\u8bfb\u6027\u4f1a\u964d\u4f4e\uff1b"),(0,l.yg)("li",{parentName:"ol"},"\u5728\u4e00\u4e2a\u9879\u76ee\u4e2d\uff0ckey \u6700\u597d\u4f7f\u7528\u7edf\u4e00\u7684\u547d\u540d\u6a21\u5f0f\uff0c\u4f8b\u5982 user:10000:passwd\u3002")),(0,l.yg)("h3",{id:"redis-\u6301\u4e45\u5316"},"Redis \u6301\u4e45\u5316"),(0,l.yg)("p",null,"redis \u63d0\u4f9b\u4e86\u4e24\u79cd\u6301\u4e45\u5316\u7684\u65b9\u5f0f\uff0c\u5206\u522b\u662f RDB\uff08Redis DataBase\uff09\u548c AOF\uff08Append Only File\uff09\u3002"),(0,l.yg)("p",null,"RDB\uff0c\u7b80\u800c\u8a00\u4e4b\uff0c\u5c31\u662f\u5728\u4e0d\u540c\u7684\u65f6\u95f4\u70b9\uff0c\u5c06 redis \u5b58\u50a8\u7684\u6570\u636e\u751f\u6210\u5feb\u7167\u5e76\u5b58\u50a8\u5230\u78c1\u76d8\u7b49\u4ecb\u8d28\u4e0a\uff1b\nAOF\uff0c\u5219\u662f\u6362\u4e86\u4e00\u4e2a\u89d2\u5ea6\u6765\u5b9e\u73b0\u6301\u4e45\u5316\uff0c\u90a3\u5c31\u662f\u5c06 redis \u6267\u884c\u8fc7\u7684\u6240\u6709\u5199\u6307\u4ee4\u8bb0\u5f55\u4e0b\u6765\uff0c\u5728\u4e0b\u6b21 redis \u91cd\u65b0\u542f\u52a8\u65f6\uff0c\u53ea\u8981\u628a\u8fd9\u4e9b\u5199\u6307\u4ee4\u4ece\u524d\u5230\u540e\u518d\u91cd\u590d\u6267\u884c\u4e00\u904d\uff0c\u5c31\u53ef\u4ee5\u5b9e\u73b0\u6570\u636e\u6062\u590d\u4e86\u3002"),(0,l.yg)("p",null,"\u5176\u5b9e RDB \u548c AOF \u4e24\u79cd\u65b9\u5f0f\u4e5f\u53ef\u4ee5\u540c\u65f6\u4f7f\u7528\uff0c\u5728\u8fd9\u79cd\u60c5\u51b5\u4e0b\uff0c\u5982\u679c redis \u91cd\u542f\u7684\u8bdd\uff0c\u5219\u4f1a\u4f18\u5148\u91c7\u7528 AOF \u65b9\u5f0f\u6765\u8fdb\u884c\u6570\u636e\u6062\u590d\uff0c\u8fd9\u662f\u56e0\u4e3a AOF \u65b9\u5f0f\u7684\u6570\u636e\u6062\u590d\u5b8c\u6574\u5ea6\u66f4\u9ad8\u3002"),(0,l.yg)("p",null,"\u5982\u679c\u4f60\u6ca1\u6709\u6570\u636e\u6301\u4e45\u5316\u7684\u9700\u6c42\uff0c\u4e5f\u5b8c\u5168\u53ef\u4ee5\u5173\u95ed RDB \u548c AOF \u65b9\u5f0f\uff0c\u8fd9\u6837\u7684\u8bdd\uff0credis \u5c06\u53d8\u6210\u4e00\u4e2a\u7eaf\u5185\u5b58\u6570\u636e\u5e93\uff0c\u5c31\u50cf memcache \u4e00\u6837\u3002"),(0,l.yg)("h3",{id:"redis-\u4e3b\u4ece"},"Redis \u4e3b\u4ece"),(0,l.yg)("p",null,"\u50cf MySQL \u4e00\u6837\uff0credis \u662f\u652f\u6301\u4e3b\u4ece\u540c\u6b65\u7684\uff0c\u800c\u4e14\u4e5f\u652f\u6301\u4e00\u4e3b\u591a\u4ece\u4ee5\u53ca\u591a\u7ea7\u4ece\u7ed3\u6784\u3002"),(0,l.yg)("p",null,"\u4e3b\u4ece\u7ed3\u6784\uff0c\u4e00\u662f\u4e3a\u4e86\u7eaf\u7cb9\u7684\u5197\u4f59\u5907\u4efd\uff0c\u4e8c\u662f\u4e3a\u4e86\u63d0\u5347\u8bfb\u6027\u80fd\uff0c\u6bd4\u5982\u5f88\u6d88\u8017\u6027\u80fd\u7684 SORT \u5c31\u53ef\u4ee5\u7531\u4ece\u670d\u52a1\u5668\u6765\u627f\u62c5\u3002"),(0,l.yg)("p",null,"redis \u7684\u4e3b\u4ece\u540c\u6b65\u662f\u5f02\u6b65\u8fdb\u884c\u7684\uff0c\u8fd9\u610f\u5473\u7740\u4e3b\u4ece\u540c\u6b65\u4e0d\u4f1a\u5f71\u54cd\u4e3b\u903b\u8f91\uff0c\u4e5f\u4e0d\u4f1a\u964d\u4f4e redis \u7684\u5904\u7406\u6027\u80fd\u3002"),(0,l.yg)("p",null,"\u4e3b\u4ece\u67b6\u6784\u4e2d\uff0c\u53ef\u4ee5\u8003\u8651\u5173\u95ed\u4e3b\u670d\u52a1\u5668\u7684\u6570\u636e\u6301\u4e45\u5316\u529f\u80fd\uff0c\u53ea\u8ba9\u4ece\u670d\u52a1\u5668\u8fdb\u884c\u6301\u4e45\u5316\uff0c\u8fd9\u6837\u53ef\u4ee5\u63d0\u9ad8\u4e3b\u670d\u52a1\u5668\u7684\u5904\u7406\u6027\u80fd\u3002"),(0,l.yg)("p",null,"\u5728\u4e3b\u4ece\u67b6\u6784\u4e2d\uff0c\u4ece\u670d\u52a1\u5668\u901a\u5e38\u88ab\u8bbe\u7f6e\u4e3a\u53ea\u8bfb\u6a21\u5f0f\uff0c\u8fd9\u6837\u53ef\u4ee5\u907f\u514d\u4ece\u670d\u52a1\u5668\u7684\u6570\u636e\u88ab\u8bef\u4fee\u6539\u3002\u4f46\u662f\u4ece\u670d\u52a1\u5668\u4ecd\u7136\u53ef\u4ee5\u63a5\u53d7 CONFIG \u7b49\u6307\u4ee4\uff0c\u6240\u4ee5\u8fd8\u662f\u4e0d\u5e94\u8be5\u5c06\u4ece\u670d\u52a1\u5668\u76f4\u63a5\u66b4\u9732\u5230\u4e0d\u5b89\u5168\u7684\u7f51\u7edc\u73af\u5883\u4e2d\u3002\u5982\u679c\u5fc5\u987b\u5982\u6b64\uff0c\u90a3\u53ef\u4ee5\u8003\u8651\u7ed9\u91cd\u8981\u6307\u4ee4\u8fdb\u884c\u91cd\u547d\u540d\uff0c\u6765\u907f\u514d\u547d\u4ee4\u88ab\u5916\u4eba\u8bef\u6267\u884c\u3002"),(0,l.yg)("h3",{id:"\u53c2\u8003\u8d44\u6599"},"\u53c2\u8003\u8d44\u6599"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"https://zhuanlan.zhihu.com/p/523368070"},"\u5f20\u5f66\u98de-Redis 6 \u4e2d\u7684\u591a\u7ebf\u7a0b\u5b9e\u73b0\u65b9\u5f0f\u6bd4\u6211\u9884\u671f\u7684\u8981\u5dee")),(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"https://zhuanlan.zhihu.com/p/512502929"},"\u5f20\u5f66\u98de-\u6df1\u5ea6\u89e3\u6790\u5355\u7ebf\u7a0b\u7684 Redis \u5982\u4f55\u505a\u5230\u6bcf\u79d2\u6570\u4e07 QPS \u7684\u8d85\u9ad8\u5904\u7406\u80fd\u529b\uff01"))))}y.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/5d0c646c.b0adcc1b.js b/assets/js/5d0c646c.2ac18023.js similarity index 98% rename from assets/js/5d0c646c.b0adcc1b.js rename to assets/js/5d0c646c.2ac18023.js index c9f8355a5..ec3e1d368 100644 --- a/assets/js/5d0c646c.b0adcc1b.js +++ b/assets/js/5d0c646c.2ac18023.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4080],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function s(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var i=n.createContext({}),l=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):s(s({},t),e)),r},u=function(e){var t=l(e.components);return n.createElement(i.Provider,{value:t},e.children)},p="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,i=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),p=l(r),d=o,f=p["".concat(i,".").concat(d)]||p[d]||y[d]||a;return r?n.createElement(f,s(s({ref:t},u),{},{components:r})):n.createElement(f,s({ref:t},u))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,s=new Array(a);s[0]=d;var c={};for(var i in t)hasOwnProperty.call(t,i)&&(c[i]=t[i]);c.originalType=e,c[p]="string"==typeof e?e:o,s[1]=c;for(var l=2;l{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>s,default:()=>y,frontMatter:()=>a,metadata:()=>c,toc:()=>l});var n=r(8168),o=(r(6540),r(5680));const a={},s="\u5185\u5b58\u7ba1\u7406",c={unversionedId:"study/system/\u5185\u5b58\u7ba1\u7406",id:"study/system/\u5185\u5b58\u7ba1\u7406",title:"\u5185\u5b58\u7ba1\u7406",description:"\u53c2\u8003",source:"@site/docs/study/system/\u5185\u5b58\u7ba1\u7406.md",sourceDirName:"study/system",slug:"/study/system/\u5185\u5b58\u7ba1\u7406",permalink:"/docs/study/system/\u5185\u5b58\u7ba1\u7406",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"shell\u7f16\u7a0b\u667aexpect",permalink:"/docs/study/system/shell\u7f16\u7a0b\u667aexpect"},next:{title:"\u53ef\u6267\u884c\u7a0b\u5e8f\u5728\u64cd\u4f5c\u7cfb\u7edf\u4e0b\u7684\u8fd0\u884c\u539f\u7406\u5206\u6790",permalink:"/docs/study/system/\u53ef\u6267\u884c\u7a0b\u5e8f\u8fd0\u884c\u539f\u7406\u5206\u6790"}},i={},l=[{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],u={toc:l},p="wrapper";function y(e){let{components:t,...r}=e;return(0,o.yg)(p,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"\u5185\u5b58\u7ba1\u7406"},"\u5185\u5b58\u7ba1\u7406"),(0,o.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://zhuanlan.zhihu.com/p/455772416"},"\u77e5\u4e4e-\u4ece\u5185\u5b58\u7ba1\u7406\u539f\u7406\uff0c\u7aa5\u63a2 OS \u5185\u5b58\u7ba1\u7406\u673a\u5236"))))}y.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4080],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function s(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var i=n.createContext({}),l=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):s(s({},t),e)),r},u=function(e){var t=l(e.components);return n.createElement(i.Provider,{value:t},e.children)},p="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,i=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),p=l(r),d=o,f=p["".concat(i,".").concat(d)]||p[d]||y[d]||a;return r?n.createElement(f,s(s({ref:t},u),{},{components:r})):n.createElement(f,s({ref:t},u))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,s=new Array(a);s[0]=d;var c={};for(var i in t)hasOwnProperty.call(t,i)&&(c[i]=t[i]);c.originalType=e,c[p]="string"==typeof e?e:o,s[1]=c;for(var l=2;l{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>s,default:()=>y,frontMatter:()=>a,metadata:()=>c,toc:()=>l});var n=r(8168),o=(r(6540),r(5680));const a={},s="\u5185\u5b58\u7ba1\u7406",c={unversionedId:"study/system/\u5185\u5b58\u7ba1\u7406",id:"study/system/\u5185\u5b58\u7ba1\u7406",title:"\u5185\u5b58\u7ba1\u7406",description:"\u53c2\u8003",source:"@site/docs/study/system/\u5185\u5b58\u7ba1\u7406.md",sourceDirName:"study/system",slug:"/study/system/\u5185\u5b58\u7ba1\u7406",permalink:"/docs/study/system/\u5185\u5b58\u7ba1\u7406",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"shell\u7f16\u7a0b\u667aexpect",permalink:"/docs/study/system/shell\u7f16\u7a0b\u667aexpect"},next:{title:"\u53ef\u6267\u884c\u7a0b\u5e8f\u5728\u64cd\u4f5c\u7cfb\u7edf\u4e0b\u7684\u8fd0\u884c\u539f\u7406\u5206\u6790",permalink:"/docs/study/system/\u53ef\u6267\u884c\u7a0b\u5e8f\u8fd0\u884c\u539f\u7406\u5206\u6790"}},i={},l=[{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],u={toc:l},p="wrapper";function y(e){let{components:t,...r}=e;return(0,o.yg)(p,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"\u5185\u5b58\u7ba1\u7406"},"\u5185\u5b58\u7ba1\u7406"),(0,o.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://zhuanlan.zhihu.com/p/455772416"},"\u77e5\u4e4e-\u4ece\u5185\u5b58\u7ba1\u7406\u539f\u7406\uff0c\u7aa5\u63a2 OS \u5185\u5b58\u7ba1\u7406\u673a\u5236"))))}y.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/5e266219.fab8f6cf.js b/assets/js/5e266219.12357e77.js similarity index 98% rename from assets/js/5e266219.fab8f6cf.js rename to assets/js/5e266219.12357e77.js index c44c25ad0..bc1bacc14 100644 --- a/assets/js/5e266219.fab8f6cf.js +++ b/assets/js/5e266219.12357e77.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5731],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>g});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var i=n.createContext({}),p=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(i.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,i=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),s=p(r),y=o,g=s["".concat(i,".").concat(y)]||s[y]||d[y]||a;return r?n.createElement(g,c(c({ref:t},u),{},{components:r})):n.createElement(g,c({ref:t},u))}));function g(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=y;var l={};for(var i in t)hasOwnProperty.call(t,i)&&(l[i]=t[i]);l.originalType=e,l[s]="string"==typeof e?e:o,c[1]=l;for(var p=2;p{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>c,default:()=>d,frontMatter:()=>a,metadata:()=>l,toc:()=>p});var n=r(8168),o=(r(6540),r(5680));const a={},c=void 0,l={unversionedId:"study/program/GIT/GIT-\u5e38\u7528\u547d\u4ee4",id:"study/program/GIT/GIT-\u5e38\u7528\u547d\u4ee4",title:"GIT-\u5e38\u7528\u547d\u4ee4",description:"clone",source:"@site/docs/study/program/GIT/GIT-\u5e38\u7528\u547d\u4ee4.md",sourceDirName:"study/program/GIT",slug:"/study/program/GIT/GIT-\u5e38\u7528\u547d\u4ee4",permalink:"/docs/study/program/GIT/GIT-\u5e38\u7528\u547d\u4ee4",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Erlang",permalink:"/docs/study/program/Erlang/"},next:{title:"PR\u548cMR",permalink:"/docs/study/program/GIT/PR\u548cMR"}},i={},p=[{value:"clone",id:"clone",level:3},{value:"\u628a\u975e\u5fc5\u8981\u6587\u4ef6\u5df2\u7ecf\u4e0a\u4f20\u5230 git\uff0c\u5982\u4f55\u5904\u7406",id:"\u628a\u975e\u5fc5\u8981\u6587\u4ef6\u5df2\u7ecf\u4e0a\u4f20\u5230-git\u5982\u4f55\u5904\u7406",level:3}],u={toc:p},s="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"clone"},"clone"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-shell"},"#\u7528\u6237\u540d\u5982\u679c\u643a\u5e26@\u9700\u8981\u4f7f\u7528%40\u66ff\u6362\ngit clone https://\u7528\u6237\u540d:\u5bc6\u7801@git.coding.net/sample/HelloWorld.git\n")),(0,o.yg)("h3",{id:"\u628a\u975e\u5fc5\u8981\u6587\u4ef6\u5df2\u7ecf\u4e0a\u4f20\u5230-git\u5982\u4f55\u5904\u7406"},"\u628a\u975e\u5fc5\u8981\u6587\u4ef6\u5df2\u7ecf\u4e0a\u4f20\u5230 git\uff0c\u5982\u4f55\u5904\u7406"),(0,o.yg)("p",null,"\u5148\u589e\u52a0\u5230.gitignore\uff0c\u7136\u540e\u5220\u9664\u672c\u5730\u7f13\u5b58\uff0c\u518d\u4e0a\u4f20\u5230\u8fdc\u7a0b\u4ed3\u5e93\ngit rm --cached .xxx\ngit rm-r --cached .yyy"))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5731],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>g});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var i=n.createContext({}),p=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(i.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,i=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),s=p(r),y=o,g=s["".concat(i,".").concat(y)]||s[y]||d[y]||a;return r?n.createElement(g,c(c({ref:t},u),{},{components:r})):n.createElement(g,c({ref:t},u))}));function g(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=y;var l={};for(var i in t)hasOwnProperty.call(t,i)&&(l[i]=t[i]);l.originalType=e,l[s]="string"==typeof e?e:o,c[1]=l;for(var p=2;p{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>c,default:()=>d,frontMatter:()=>a,metadata:()=>l,toc:()=>p});var n=r(8168),o=(r(6540),r(5680));const a={},c=void 0,l={unversionedId:"study/program/GIT/GIT-\u5e38\u7528\u547d\u4ee4",id:"study/program/GIT/GIT-\u5e38\u7528\u547d\u4ee4",title:"GIT-\u5e38\u7528\u547d\u4ee4",description:"clone",source:"@site/docs/study/program/GIT/GIT-\u5e38\u7528\u547d\u4ee4.md",sourceDirName:"study/program/GIT",slug:"/study/program/GIT/GIT-\u5e38\u7528\u547d\u4ee4",permalink:"/docs/study/program/GIT/GIT-\u5e38\u7528\u547d\u4ee4",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Erlang",permalink:"/docs/study/program/Erlang/"},next:{title:"PR\u548cMR",permalink:"/docs/study/program/GIT/PR\u548cMR"}},i={},p=[{value:"clone",id:"clone",level:3},{value:"\u628a\u975e\u5fc5\u8981\u6587\u4ef6\u5df2\u7ecf\u4e0a\u4f20\u5230 git\uff0c\u5982\u4f55\u5904\u7406",id:"\u628a\u975e\u5fc5\u8981\u6587\u4ef6\u5df2\u7ecf\u4e0a\u4f20\u5230-git\u5982\u4f55\u5904\u7406",level:3}],u={toc:p},s="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"clone"},"clone"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-shell"},"#\u7528\u6237\u540d\u5982\u679c\u643a\u5e26@\u9700\u8981\u4f7f\u7528%40\u66ff\u6362\ngit clone https://\u7528\u6237\u540d:\u5bc6\u7801@git.coding.net/sample/HelloWorld.git\n")),(0,o.yg)("h3",{id:"\u628a\u975e\u5fc5\u8981\u6587\u4ef6\u5df2\u7ecf\u4e0a\u4f20\u5230-git\u5982\u4f55\u5904\u7406"},"\u628a\u975e\u5fc5\u8981\u6587\u4ef6\u5df2\u7ecf\u4e0a\u4f20\u5230 git\uff0c\u5982\u4f55\u5904\u7406"),(0,o.yg)("p",null,"\u5148\u589e\u52a0\u5230.gitignore\uff0c\u7136\u540e\u5220\u9664\u672c\u5730\u7f13\u5b58\uff0c\u518d\u4e0a\u4f20\u5230\u8fdc\u7a0b\u4ed3\u5e93\ngit rm --cached .xxx\ngit rm-r --cached .yyy"))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/5f2eed60.b8e603ee.js b/assets/js/5f2eed60.5c6e2c63.js similarity index 98% rename from assets/js/5f2eed60.b8e603ee.js rename to assets/js/5f2eed60.5c6e2c63.js index 9211778a3..9f872193c 100644 --- a/assets/js/5f2eed60.b8e603ee.js +++ b/assets/js/5f2eed60.5c6e2c63.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2168],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>d});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var p=n.createContext({}),c=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=c(e.components);return n.createElement(p.Provider,{value:t},e.children)},f="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,l=e.originalType,p=e.parentName,u=o(e,["components","mdxType","originalType","parentName"]),f=c(r),y=a,d=f["".concat(p,".").concat(y)]||f[y]||s[y]||l;return r?n.createElement(d,i(i({ref:t},u),{},{components:r})):n.createElement(d,i({ref:t},u))}));function d(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=r.length,i=new Array(l);i[0]=y;var o={};for(var p in t)hasOwnProperty.call(t,p)&&(o[p]=t[p]);o.originalType=e,o[f]="string"==typeof e?e:a,i[1]=o;for(var c=2;c{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>s,frontMatter:()=>l,metadata:()=>o,toc:()=>c});var n=r(8168),a=(r(6540),r(5680));const l={},i=void 0,o={unversionedId:"study/net/\u7f51\u7edc\u541e\u5410\u91cf\u6d4b\u91cf\u5de5\u5177",id:"study/net/\u7f51\u7edc\u541e\u5410\u91cf\u6d4b\u91cf\u5de5\u5177",title:"\u7f51\u7edc\u541e\u5410\u91cf\u6d4b\u91cf\u5de5\u5177",description:"iperf3",source:"@site/docs/study/net/\u7f51\u7edc\u541e\u5410\u91cf\u6d4b\u91cf\u5de5\u5177.md",sourceDirName:"study/net",slug:"/study/net/\u7f51\u7edc\u541e\u5410\u91cf\u6d4b\u91cf\u5de5\u5177",permalink:"/docs/study/net/\u7f51\u7edc\u541e\u5410\u91cf\u6d4b\u91cf\u5de5\u5177",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u6293\u5305\u5de5\u5177",permalink:"/docs/study/net/\u6293\u5305\u5de5\u5177"},next:{title:"SSL TLS HTTPS",permalink:"/docs/study/encryption/SSL_TLS"}},p={},c=[{value:"iperf3",id:"iperf3",level:3},{value:"netperf",id:"netperf",level:3},{value:"qperf",id:"qperf",level:3}],u={toc:c},f="wrapper";function s(e){let{components:t,...r}=e;return(0,a.yg)(f,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"iperf3"},"iperf3"),(0,a.yg)("p",null,"iPerf3 \u662f\u4e00\u79cd\u7528\u4e8e\u4e3b\u52a8\u6d4b\u91cf IP \u7f51\u7edc\u4e0a\u53ef\u5b9e\u73b0\u7684\u6700\u5927\u5e26\u5bbd\u7684\u5de5\u5177\u3002\u5b83\u652f\u6301\u8c03\u6574\u4e0e\u5b9a\u65f6\u3001\u7f13\u51b2\u533a\u548c\u534f\u8bae\uff08TCP\u3001UDP\u3001\u5e26\u6709 IPv4 \u548c IPv6 \u7684 SCTP\uff09\u76f8\u5173\u7684\u5404\u79cd\u53c2\u6570\u3002\u5bf9\u4e8e\u6bcf\u4e2a\u6d4b\u8bd5\uff0c\u5b83\u90fd\u4f1a\u62a5\u544a\u5e26\u5bbd\u3001\u635f\u8017\u548c\u5176\u4ed6\u53c2\u6570\u3002\u8fd9\u662f\u4e00\u4e2a\u65b0\u7684\u5b9e\u73b0\uff0c\u4e0e\u539f\u59cb iPerf \u4e0d\u5171\u4eab\u4ee3\u7801\uff0c\u4e5f\u4e0d\u5411\u540e\u517c\u5bb9\u3002"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://iperf.fr/"},"\u5b98\u7f51")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://zhuanlan.zhihu.com/p/585534080?utm_id=0"},"\u77e5\u4e4e-iperf3 \u547d\u4ee4\u7b80\u4ecb"))),(0,a.yg)("h3",{id:"netperf"},"netperf"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://github.com/HewlettPackard/netperf"},"github-netperf")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://blog.csdn.net/lsc_2019/article/details/118577155"},"netperf \u7684\u5b89\u88c5\u3001\u6027\u80fd\u6d4b\u8bd5\u3001\u53c2\u6570\u3001\u542f\u52a8\u62a5\u9519\u7684\u5751\u3001\u5b9e\u4f8b"))),(0,a.yg)("h3",{id:"qperf"},"qperf"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://www.python100.com/html/109443.html"},"\u6df1\u5165\u5256\u6790 qperf\uff1a\u7f51\u7edc\u6027\u80fd\u57fa\u51c6\u6d4b\u8bd5\u5de5\u5177"))))}s.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2168],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>d});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var p=n.createContext({}),c=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=c(e.components);return n.createElement(p.Provider,{value:t},e.children)},f="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,l=e.originalType,p=e.parentName,u=o(e,["components","mdxType","originalType","parentName"]),f=c(r),y=a,d=f["".concat(p,".").concat(y)]||f[y]||s[y]||l;return r?n.createElement(d,i(i({ref:t},u),{},{components:r})):n.createElement(d,i({ref:t},u))}));function d(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=r.length,i=new Array(l);i[0]=y;var o={};for(var p in t)hasOwnProperty.call(t,p)&&(o[p]=t[p]);o.originalType=e,o[f]="string"==typeof e?e:a,i[1]=o;for(var c=2;c{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>s,frontMatter:()=>l,metadata:()=>o,toc:()=>c});var n=r(8168),a=(r(6540),r(5680));const l={},i=void 0,o={unversionedId:"study/net/\u7f51\u7edc\u541e\u5410\u91cf\u6d4b\u91cf\u5de5\u5177",id:"study/net/\u7f51\u7edc\u541e\u5410\u91cf\u6d4b\u91cf\u5de5\u5177",title:"\u7f51\u7edc\u541e\u5410\u91cf\u6d4b\u91cf\u5de5\u5177",description:"iperf3",source:"@site/docs/study/net/\u7f51\u7edc\u541e\u5410\u91cf\u6d4b\u91cf\u5de5\u5177.md",sourceDirName:"study/net",slug:"/study/net/\u7f51\u7edc\u541e\u5410\u91cf\u6d4b\u91cf\u5de5\u5177",permalink:"/docs/study/net/\u7f51\u7edc\u541e\u5410\u91cf\u6d4b\u91cf\u5de5\u5177",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u6293\u5305\u5de5\u5177",permalink:"/docs/study/net/\u6293\u5305\u5de5\u5177"},next:{title:"SSL TLS HTTPS",permalink:"/docs/study/encryption/SSL_TLS"}},p={},c=[{value:"iperf3",id:"iperf3",level:3},{value:"netperf",id:"netperf",level:3},{value:"qperf",id:"qperf",level:3}],u={toc:c},f="wrapper";function s(e){let{components:t,...r}=e;return(0,a.yg)(f,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"iperf3"},"iperf3"),(0,a.yg)("p",null,"iPerf3 \u662f\u4e00\u79cd\u7528\u4e8e\u4e3b\u52a8\u6d4b\u91cf IP \u7f51\u7edc\u4e0a\u53ef\u5b9e\u73b0\u7684\u6700\u5927\u5e26\u5bbd\u7684\u5de5\u5177\u3002\u5b83\u652f\u6301\u8c03\u6574\u4e0e\u5b9a\u65f6\u3001\u7f13\u51b2\u533a\u548c\u534f\u8bae\uff08TCP\u3001UDP\u3001\u5e26\u6709 IPv4 \u548c IPv6 \u7684 SCTP\uff09\u76f8\u5173\u7684\u5404\u79cd\u53c2\u6570\u3002\u5bf9\u4e8e\u6bcf\u4e2a\u6d4b\u8bd5\uff0c\u5b83\u90fd\u4f1a\u62a5\u544a\u5e26\u5bbd\u3001\u635f\u8017\u548c\u5176\u4ed6\u53c2\u6570\u3002\u8fd9\u662f\u4e00\u4e2a\u65b0\u7684\u5b9e\u73b0\uff0c\u4e0e\u539f\u59cb iPerf \u4e0d\u5171\u4eab\u4ee3\u7801\uff0c\u4e5f\u4e0d\u5411\u540e\u517c\u5bb9\u3002"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://iperf.fr/"},"\u5b98\u7f51")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://zhuanlan.zhihu.com/p/585534080?utm_id=0"},"\u77e5\u4e4e-iperf3 \u547d\u4ee4\u7b80\u4ecb"))),(0,a.yg)("h3",{id:"netperf"},"netperf"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://github.com/HewlettPackard/netperf"},"github-netperf")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://blog.csdn.net/lsc_2019/article/details/118577155"},"netperf \u7684\u5b89\u88c5\u3001\u6027\u80fd\u6d4b\u8bd5\u3001\u53c2\u6570\u3001\u542f\u52a8\u62a5\u9519\u7684\u5751\u3001\u5b9e\u4f8b"))),(0,a.yg)("h3",{id:"qperf"},"qperf"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://www.python100.com/html/109443.html"},"\u6df1\u5165\u5256\u6790 qperf\uff1a\u7f51\u7edc\u6027\u80fd\u57fa\u51c6\u6d4b\u8bd5\u5de5\u5177"))))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/5f897b5c.f522fbe7.js b/assets/js/5f897b5c.a4b9267a.js similarity index 98% rename from assets/js/5f897b5c.f522fbe7.js rename to assets/js/5f897b5c.a4b9267a.js index 4c8a7a9f6..6d98e033f 100644 --- a/assets/js/5f897b5c.f522fbe7.js +++ b/assets/js/5f897b5c.a4b9267a.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[184],{5680:(e,r,t)=>{t.d(r,{xA:()=>c,yg:()=>m});var n=t(6540);function o(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function a(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function l(e){for(var r=1;r=0||(o[t]=e[t]);return o}(e,r);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var p=n.createContext({}),u=function(e){var r=n.useContext(p),t=r;return e&&(t="function"==typeof e?e(r):l(l({},r),e)),t},c=function(e){var r=u(e.components);return n.createElement(p.Provider,{value:r},e.children)},s="mdxType",y={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},d=n.forwardRef((function(e,r){var t=e.components,o=e.mdxType,a=e.originalType,p=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),s=u(t),d=o,m=s["".concat(p,".").concat(d)]||s[d]||y[d]||a;return t?n.createElement(m,l(l({ref:r},c),{},{components:t})):n.createElement(m,l({ref:r},c))}));function m(e,r){var t=arguments,o=r&&r.mdxType;if("string"==typeof e||o){var a=t.length,l=new Array(a);l[0]=d;var i={};for(var p in r)hasOwnProperty.call(r,p)&&(i[p]=r[p]);i.originalType=e,i[s]="string"==typeof e?e:o,l[1]=i;for(var u=2;u{t.r(r),t.d(r,{assets:()=>p,contentTitle:()=>l,default:()=>y,frontMatter:()=>a,metadata:()=>i,toc:()=>u});var n=t(8168),o=(t(6540),t(5680));const a={},l=void 0,i={unversionedId:"study/program/GIT/PR\u548cMR",id:"study/program/GIT/PR\u548cMR",title:"PR\u548cMR",description:"\u7b80\u4ecb",source:"@site/docs/study/program/GIT/PR\u548cMR.md",sourceDirName:"study/program/GIT",slug:"/study/program/GIT/PR\u548cMR",permalink:"/docs/study/program/GIT/PR\u548cMR",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"GIT-\u5e38\u7528\u547d\u4ee4",permalink:"/docs/study/program/GIT/GIT-\u5e38\u7528\u547d\u4ee4"},next:{title:"Golang",permalink:"/docs/study/program/Golang/"}},p={},u=[{value:"\u7b80\u4ecb",id:"\u7b80\u4ecb",level:3},{value:"GitHub\u7684Fork-PR\u6a21\u5f0f",id:"github\u7684fork-pr\u6a21\u5f0f",level:3},{value:"Gitlab\u7684MR\u6a21\u5f0f",id:"gitlab\u7684mr\u6a21\u5f0f",level:3}],c={toc:u},s="wrapper";function y(e){let{components:r,...t}=e;return(0,o.yg)(s,(0,n.A)({},c,t,{components:r,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"\u7b80\u4ecb"},"\u7b80\u4ecb"),(0,o.yg)("p",null,"\u6211\u4eec\u77e5\u9053Git\u534f\u4f5c\u4e2d\u6700\u91cd\u8981\u7684\u4e00\u4e2a\u6b65\u9aa4\u662fPull Requests\uff08\u7b80\u79f0PR,Gitlab\u4e2d\u4e5f\u53ebMerge requests\uff0cMR\uff09,PR\u548cMR\u8fd9\u4e24\u4e2a\u64cd\u4f5c\u7684\u76ee\u7684\u662f\u4e00\u4e2a\u610f\u601d\uff0c\u53ea\u4e0d\u8fc7PR\u662fGitHub\u7684\u4f7f\u7528\u65b9\u6cd5\uff0cMR\u662fGitlab\u7684\u7684\u4f7f\u7528\u65b9\u6cd5\u3002"),(0,o.yg)("h3",{id:"github\u7684fork-pr\u6a21\u5f0f"},"GitHub\u7684Fork-PR\u6a21\u5f0f"),(0,o.yg)("ol",null,(0,o.yg)("li",{parentName:"ol"},"\u9996\u5148fork\u4e00\u4e2a\u5de5\u7a0b"),(0,o.yg)("li",{parentName:"ol"},"\u4fee\u6539\u4ee3\u7801\u5e76\u63d0\u4ea4PR\u8bf7\u6c42"),(0,o.yg)("li",{parentName:"ol"},"\u5f00\u6e90\u4f5c\u8005review\u4ee3\u7801\uff0c\u5e76\u6839\u636e\u60c5\u51b5PR\u8bf7\u6c42")),(0,o.yg)("h3",{id:"gitlab\u7684mr\u6a21\u5f0f"},"Gitlab\u7684MR\u6a21\u5f0f"),(0,o.yg)("ol",null,(0,o.yg)("li",{parentName:"ol"},"\u4e00\u822cMR\u5230\u7684\u5206\u652f\u90fd\u662fmaster\uff0cmaster\u662f\u53d7\u4fdd\u62a4\u7684\uff0c\u666e\u901a\u5f00\u53d1\u8005\u662f\u6ca1\u6709\u6743\u9650push\u7684\uff1b"),(0,o.yg)("li",{parentName:"ol"},"\u666e\u901a\u5f00\u53d1\u8005\u63d0\u4ea4MR\u8bf7\u6c42\uff1b"),(0,o.yg)("li",{parentName:"ol"},"\u4e3b\u5f00\u53d1\u4eba\u5458review\u4ee3\u7801\uff0c\u5e76\u6839\u636e\u60c5\u51b5\u540c\u610f\u5408\u5e76\u8bf7\u6c42")))}y.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[184],{5680:(e,r,t)=>{t.d(r,{xA:()=>c,yg:()=>m});var n=t(6540);function o(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function a(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function l(e){for(var r=1;r=0||(o[t]=e[t]);return o}(e,r);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var p=n.createContext({}),u=function(e){var r=n.useContext(p),t=r;return e&&(t="function"==typeof e?e(r):l(l({},r),e)),t},c=function(e){var r=u(e.components);return n.createElement(p.Provider,{value:r},e.children)},s="mdxType",y={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},d=n.forwardRef((function(e,r){var t=e.components,o=e.mdxType,a=e.originalType,p=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),s=u(t),d=o,m=s["".concat(p,".").concat(d)]||s[d]||y[d]||a;return t?n.createElement(m,l(l({ref:r},c),{},{components:t})):n.createElement(m,l({ref:r},c))}));function m(e,r){var t=arguments,o=r&&r.mdxType;if("string"==typeof e||o){var a=t.length,l=new Array(a);l[0]=d;var i={};for(var p in r)hasOwnProperty.call(r,p)&&(i[p]=r[p]);i.originalType=e,i[s]="string"==typeof e?e:o,l[1]=i;for(var u=2;u{t.r(r),t.d(r,{assets:()=>p,contentTitle:()=>l,default:()=>y,frontMatter:()=>a,metadata:()=>i,toc:()=>u});var n=t(8168),o=(t(6540),t(5680));const a={},l=void 0,i={unversionedId:"study/program/GIT/PR\u548cMR",id:"study/program/GIT/PR\u548cMR",title:"PR\u548cMR",description:"\u7b80\u4ecb",source:"@site/docs/study/program/GIT/PR\u548cMR.md",sourceDirName:"study/program/GIT",slug:"/study/program/GIT/PR\u548cMR",permalink:"/docs/study/program/GIT/PR\u548cMR",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"GIT-\u5e38\u7528\u547d\u4ee4",permalink:"/docs/study/program/GIT/GIT-\u5e38\u7528\u547d\u4ee4"},next:{title:"Golang",permalink:"/docs/study/program/Golang/"}},p={},u=[{value:"\u7b80\u4ecb",id:"\u7b80\u4ecb",level:3},{value:"GitHub\u7684Fork-PR\u6a21\u5f0f",id:"github\u7684fork-pr\u6a21\u5f0f",level:3},{value:"Gitlab\u7684MR\u6a21\u5f0f",id:"gitlab\u7684mr\u6a21\u5f0f",level:3}],c={toc:u},s="wrapper";function y(e){let{components:r,...t}=e;return(0,o.yg)(s,(0,n.A)({},c,t,{components:r,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"\u7b80\u4ecb"},"\u7b80\u4ecb"),(0,o.yg)("p",null,"\u6211\u4eec\u77e5\u9053Git\u534f\u4f5c\u4e2d\u6700\u91cd\u8981\u7684\u4e00\u4e2a\u6b65\u9aa4\u662fPull Requests\uff08\u7b80\u79f0PR,Gitlab\u4e2d\u4e5f\u53ebMerge requests\uff0cMR\uff09,PR\u548cMR\u8fd9\u4e24\u4e2a\u64cd\u4f5c\u7684\u76ee\u7684\u662f\u4e00\u4e2a\u610f\u601d\uff0c\u53ea\u4e0d\u8fc7PR\u662fGitHub\u7684\u4f7f\u7528\u65b9\u6cd5\uff0cMR\u662fGitlab\u7684\u7684\u4f7f\u7528\u65b9\u6cd5\u3002"),(0,o.yg)("h3",{id:"github\u7684fork-pr\u6a21\u5f0f"},"GitHub\u7684Fork-PR\u6a21\u5f0f"),(0,o.yg)("ol",null,(0,o.yg)("li",{parentName:"ol"},"\u9996\u5148fork\u4e00\u4e2a\u5de5\u7a0b"),(0,o.yg)("li",{parentName:"ol"},"\u4fee\u6539\u4ee3\u7801\u5e76\u63d0\u4ea4PR\u8bf7\u6c42"),(0,o.yg)("li",{parentName:"ol"},"\u5f00\u6e90\u4f5c\u8005review\u4ee3\u7801\uff0c\u5e76\u6839\u636e\u60c5\u51b5PR\u8bf7\u6c42")),(0,o.yg)("h3",{id:"gitlab\u7684mr\u6a21\u5f0f"},"Gitlab\u7684MR\u6a21\u5f0f"),(0,o.yg)("ol",null,(0,o.yg)("li",{parentName:"ol"},"\u4e00\u822cMR\u5230\u7684\u5206\u652f\u90fd\u662fmaster\uff0cmaster\u662f\u53d7\u4fdd\u62a4\u7684\uff0c\u666e\u901a\u5f00\u53d1\u8005\u662f\u6ca1\u6709\u6743\u9650push\u7684\uff1b"),(0,o.yg)("li",{parentName:"ol"},"\u666e\u901a\u5f00\u53d1\u8005\u63d0\u4ea4MR\u8bf7\u6c42\uff1b"),(0,o.yg)("li",{parentName:"ol"},"\u4e3b\u5f00\u53d1\u4eba\u5458review\u4ee3\u7801\uff0c\u5e76\u6839\u636e\u60c5\u51b5\u540c\u610f\u5408\u5e76\u8bf7\u6c42")))}y.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/61127ee0.82fe81ee.js b/assets/js/61127ee0.24091e44.js similarity index 99% rename from assets/js/61127ee0.82fe81ee.js rename to assets/js/61127ee0.24091e44.js index 70feca976..93f97d16f 100644 --- a/assets/js/61127ee0.82fe81ee.js +++ b/assets/js/61127ee0.24091e44.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5218],{5680:(e,n,a)=>{a.d(n,{xA:()=>p,yg:()=>d});var l=a(6540);function r(e,n,a){return n in e?Object.defineProperty(e,n,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[n]=a,e}function t(e,n){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);n&&(l=l.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),a.push.apply(a,l)}return a}function o(e){for(var n=1;n=0||(r[a]=e[a]);return r}(e,n);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);for(l=0;l=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var s=l.createContext({}),g=function(e){var n=l.useContext(s),a=n;return e&&(a="function"==typeof e?e(n):o(o({},n),e)),a},p=function(e){var n=g(e.components);return l.createElement(s.Provider,{value:n},e.children)},c="mdxType",u={inlineCode:"code",wrapper:function(e){var n=e.children;return l.createElement(l.Fragment,{},n)}},y=l.forwardRef((function(e,n){var a=e.components,r=e.mdxType,t=e.originalType,s=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),c=g(a),y=r,d=c["".concat(s,".").concat(y)]||c[y]||u[y]||t;return a?l.createElement(d,o(o({ref:n},p),{},{components:a})):l.createElement(d,o({ref:n},p))}));function d(e,n){var a=arguments,r=n&&n.mdxType;if("string"==typeof e||r){var t=a.length,o=new Array(t);o[0]=y;var i={};for(var s in n)hasOwnProperty.call(n,s)&&(i[s]=n[s]);i.originalType=e,i[c]="string"==typeof e?e:r,o[1]=i;for(var g=2;g{a.r(n),a.d(n,{assets:()=>s,contentTitle:()=>o,default:()=>u,frontMatter:()=>t,metadata:()=>i,toc:()=>g});var l=a(8168),r=(a(6540),a(5680));const t={sidebar_position:2},o=void 0,i={unversionedId:"study/back/\u9ad8\u5e76\u53d1API",id:"study/back/\u9ad8\u5e76\u53d1API",title:"\u9ad8\u5e76\u53d1API",description:"\u603b\u7ed3",source:"@site/docs/study/back/\u9ad8\u5e76\u53d1API.md",sourceDirName:"study/back",slug:"/study/back/\u9ad8\u5e76\u53d1API",permalink:"/docs/study/back/\u9ad8\u5e76\u53d1API",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"studySidebar",previous:{title:"Zookeeper",permalink:"/docs/study/back/Zookeeper"},next:{title:"MyBatis",permalink:"/docs/study/back/MyBatis"}},s={},g=[{value:"\u603b\u7ed3",id:"\u603b\u7ed3",level:3},{value:"wrk\u64cd\u4f5c",id:"wrk\u64cd\u4f5c",level:3},{value:"Nginx\u7edf\u8ba1\u8bbf\u95ee\u91cf",id:"nginx\u7edf\u8ba1\u8bbf\u95ee\u91cf",level:3},{value:"\u6839\u636e\u8bbf\u95eeIP\u7edf\u8ba1UV",id:"\u6839\u636e\u8bbf\u95eeip\u7edf\u8ba1uv",level:4},{value:"\u6839\u636e\u8bbf\u95eeURL\u7edf\u8ba1PV",id:"\u6839\u636e\u8bbf\u95eeurl\u7edf\u8ba1pv",level:4},{value:"\u6839\u636e\u8bbf\u95eeURL\u7edf\u8ba1QPS",id:"\u6839\u636e\u8bbf\u95eeurl\u7edf\u8ba1qps",level:4},{value:"\u67e5\u8be2\u8bbf\u95ee\u6700\u9891\u7e41\u7684URL",id:"\u67e5\u8be2\u8bbf\u95ee\u6700\u9891\u7e41\u7684url",level:4},{value:"\u67e5\u8be2\u8bbf\u95ee\u6700\u9891\u7e41\u7684IP",id:"\u67e5\u8be2\u8bbf\u95ee\u6700\u9891\u7e41\u7684ip",level:4},{value:"\u6839\u636e\u65f6\u95f4\u6bb5\u7edf\u8ba1\u67e5\u770b\u65e5\u5fd7",id:"\u6839\u636e\u65f6\u95f4\u6bb5\u7edf\u8ba1\u67e5\u770b\u65e5\u5fd7",level:4},{value:"\u67d0\u4e2a\u65f6\u95f4\u6bb5\u8bbf\u95ee\u603b\u6b21\u6570",id:"\u67d0\u4e2a\u65f6\u95f4\u6bb5\u8bbf\u95ee\u603b\u6b21\u6570",level:4},{value:"\u67e5\u770b\u8bbf\u95ee\u6700\u9891\u7e41\u7684\u524d5\u4e2aIP\uff0c\u5e76\u5217\u51fa\u8bbf\u95ee\u6b21\u6570",id:"\u67e5\u770b\u8bbf\u95ee\u6700\u9891\u7e41\u7684\u524d5\u4e2aip\u5e76\u5217\u51fa\u8bbf\u95ee\u6b21\u6570",level:4},{value:"\u7edf\u8ba1\u72b6\u6001\u7801\u4e3a200\u6b21\u6570",id:"\u7edf\u8ba1\u72b6\u6001\u7801\u4e3a200\u6b21\u6570",level:4},{value:"\u7edf\u8ba1\u72b6\u6001\u7801\u4e0d\u662f200\u7684\u6b21\u6570",id:"\u7edf\u8ba1\u72b6\u6001\u7801\u4e0d\u662f200\u7684\u6b21\u6570",level:4},{value:"\u67e5\u770b404\u9519\u8bef\u7801\u7684\u8bf7\u6c42",id:"\u67e5\u770b404\u9519\u8bef\u7801\u7684\u8bf7\u6c42",level:4},{value:"\u6bcf\u96945\u5206\u949f\u8bbf\u95ee\u6b21\u6570\u5217\u8868",id:"\u6bcf\u96945\u5206\u949f\u8bbf\u95ee\u6b21\u6570\u5217\u8868",level:4},{value:"\u67e5\u8be2\u67d0\u4e2aIP\u7684\u8be6\u7ec6\u8bbf\u95ee\u60c5\u51b5,\u6309\u8bbf\u95ee\u9891\u7387\u6392\u5e8f",id:"\u67e5\u8be2\u67d0\u4e2aip\u7684\u8be6\u7ec6\u8bbf\u95ee\u60c5\u51b5\u6309\u8bbf\u95ee\u9891\u7387\u6392\u5e8f",level:4},{value:"\u7edf\u8ba1\u6bcf\u79d2\u7684\u8bf7\u6c42\u6570,top100\u7684\u65f6\u95f4\u70b9(\u7cbe\u786e\u5230\u79d2)",id:"\u7edf\u8ba1\u6bcf\u79d2\u7684\u8bf7\u6c42\u6570top100\u7684\u65f6\u95f4\u70b9\u7cbe\u786e\u5230\u79d2",level:4},{value:"\u7edf\u8ba1\u6bcf\u5206\u949f\u7684\u8bf7\u6c42\u6570,top100\u7684\u65f6\u95f4\u70b9(\u7cbe\u786e\u5230\u5206\u949f)",id:"\u7edf\u8ba1\u6bcf\u5206\u949f\u7684\u8bf7\u6c42\u6570top100\u7684\u65f6\u95f4\u70b9\u7cbe\u786e\u5230\u5206\u949f",level:4},{value:"\u7edf\u8ba1\u6bcf\u5c0f\u65f6\u7684\u8bf7\u6c42\u6570,top100\u7684\u65f6\u95f4\u70b9(\u7cbe\u786e\u5230\u5c0f\u65f6)",id:"\u7edf\u8ba1\u6bcf\u5c0f\u65f6\u7684\u8bf7\u6c42\u6570top100\u7684\u65f6\u95f4\u70b9\u7cbe\u786e\u5230\u5c0f\u65f6",level:4},{value:"\u5176\u4ed6\uff0c\u672a\u5206\u7c7b",id:"\u5176\u4ed6\u672a\u5206\u7c7b",level:4},{value:"\u540d\u8bcd\u89e3\u91ca",id:"\u540d\u8bcd\u89e3\u91ca",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],p={toc:g},c="wrapper";function u(e){let{components:n,...a}=e;return(0,r.yg)(c,(0,l.A)({},p,a,{components:n,mdxType:"MDXLayout"}),(0,r.yg)("h3",{id:"\u603b\u7ed3"},"\u603b\u7ed3"),(0,r.yg)("ol",null,(0,r.yg)("li",{parentName:"ol"},"\u5355\u673a\u767e\u4e07QPS\u7684Nginx\u662f\u6ca1\u6709\u95ee\u9898\u7684\uff0c\u5177\u4f53\u80fd\u5230\u591a\u5c11\uff0c\u53d7\u9650\u4e8e\uff1a",(0,r.yg)("ol",{parentName:"li"},(0,r.yg)("li",{parentName:"ol"},"\u670d\u52a1\u5668\u7684CPU\u6570\u91cf\u3001\u5185\u5b58\u5927\u5c0f\u3001\u78c1\u76d8\u6027\u80fd\uff1b"),(0,r.yg)("li",{parentName:"ol"},"\u670d\u52a1\u5668Linux\u7684\u914d\u7f6e"),(0,r.yg)("li",{parentName:"ol"},"Nginx\u7684\u53c2\u6570\u914d\u7f6e"),(0,r.yg)("li",{parentName:"ol"},"\u7f51\u5361\u7684\u914d\u7f6e\u3001\u8def\u7531\u5668\u7684\u914d\u7f6e\u3001\u4ea4\u6362\u673a\u7684\u914d\u7f6e"))),(0,r.yg)("li",{parentName:"ol"},"\u5355\u673aTomcat\u53d7\u9650\u4e8eJVM\u548cweb\u6846\u67b6\u7b49\u539f\u56e0\uff0c\u4e5f\u5c31\u6700\u591a1\u4e07\u5de6\u53f3\u7684QPS\uff1b",(0,r.yg)("ol",{parentName:"li"},(0,r.yg)("li",{parentName:"ol"},"\u5982\u679c\u9700\u8981\u7b80\u5355\u67e5\u8be2\u6570\u636e\u5e93\u7684\uff0c\u4e5f\u5c312~3K\u7684QPS\uff1b"),(0,r.yg)("li",{parentName:"ol"},"\u5982\u679c\u9700\u8981\u6570\u636e\u5e93\u4e8b\u52a1\u64cd\u4f5c\u7684\uff0c\u4e5f\u5c31100~150\u7684QPS\uff1b"))),(0,r.yg)("li",{parentName:"ol"},"\u4ec0\u4e48\u65f6\u5019\u9700\u8981\u6c34\u5e73\u62d3\u5c55QPS"),(0,r.yg)("li",{parentName:"ol"},"HTTP\u538b\u6d4b\u5de5\u5177\u4e4bwrk\uff1b",(0,r.yg)("ol",{parentName:"li"},(0,r.yg)("li",{parentName:"ol"},(0,r.yg)("a",{parentName:"li",href:"https://www.jianshu.com/p/ac185e01cc30"},"HTTP\u538b\u6d4b\u5de5\u5177\u4e4bwrk")),(0,r.yg)("li",{parentName:"ol"},(0,r.yg)("a",{parentName:"li",href:"https://www.cnblogs.com/quanxiaoha/p/10661650.html"},"\u6027\u80fd\u6d4b\u8bd5\u5de5\u5177wrk\u4f7f\u7528\u6559\u7a0b")))),(0,r.yg)("li",{parentName:"ol"},"\u4e00\u822c\u6765\u8bf4\uff0c\u4e0d\u4e00\u5b9a\u5f88\u51c6\u786e\uff0c\u53c2\u8003\uff1a",(0,r.yg)("ol",{parentName:"li"},(0,r.yg)("li",{parentName:"ol"},"2C4G\u673a\u5668\u5355\u673a\u4e00\u822c1000QPS\u3002"),(0,r.yg)("li",{parentName:"ol"},"8C8G\u673a\u5668\u5355\u673a\u53ef\u627f\u53d77000QPS\u3002")))),(0,r.yg)("h3",{id:"wrk\u64cd\u4f5c"},"wrk\u64cd\u4f5c"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'#scripts/post.lua\nvim post.lua\n#\nwrk.method = "POST"\nwrk.body = \'{"domain":"xxx.xxx.xxx"}\'\nwrk.headers["Content-Type"] = "application/json"\n#\n./wrk -t4 -c1000 -d5s -s /root/code/wrk/scripts/post.lua {\u5177\u4f53\u7684URL}\n')),(0,r.yg)("h3",{id:"nginx\u7edf\u8ba1\u8bbf\u95ee\u91cf"},"Nginx\u7edf\u8ba1\u8bbf\u95ee\u91cf"),(0,r.yg)("h4",{id:"\u6839\u636e\u8bbf\u95eeip\u7edf\u8ba1uv"},"\u6839\u636e\u8bbf\u95eeIP\u7edf\u8ba1UV"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"# \u6839\u636e\u8bbf\u95eeIP\u7edf\u8ba1UV\ncat /mnt/docker/tomcat/logs/{\u5177\u4f53\u7684nginx log} \\\n| grep \"21/May/2020\" | awk '{print $1}' \\\n|sort | uniq -c |wc -l\n")),(0,r.yg)("h4",{id:"\u6839\u636e\u8bbf\u95eeurl\u7edf\u8ba1pv"},"\u6839\u636e\u8bbf\u95eeURL\u7edf\u8ba1PV"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"# \u6839\u636e\u8bbf\u95eeURL\u7edf\u8ba1PV\ncat /mnt/docker/tomcat/logs/{\u5177\u4f53\u7684nginx log\u6587\u4ef6} \\\n| grep \"21/May/2020\" \\\n| awk '{print $7}' |wc -l\n")),(0,r.yg)("h4",{id:"\u6839\u636e\u8bbf\u95eeurl\u7edf\u8ba1qps"},"\u6839\u636e\u8bbf\u95eeURL\u7edf\u8ba1QPS"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"# \u6839\u636e\u8bbf\u95eeURL\u7edf\u8ba1QPS\ncat /mnt/docker/tomcat/logs/{\u5177\u4f53\u7684nginx log\u6587\u4ef6} \\\n| grep \"21/May/2020:16:39:\" \\\n| awk '{print $7}' |wc -l\n")),(0,r.yg)("h4",{id:"\u67e5\u8be2\u8bbf\u95ee\u6700\u9891\u7e41\u7684url"},"\u67e5\u8be2\u8bbf\u95ee\u6700\u9891\u7e41\u7684URL"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"# \u67e5\u8be2\u8bbf\u95ee\u6700\u9891\u7e41\u7684URL\ncat /usr/local/nginx/logs/access.log \\\n| grep \"29/Feb/2020\" | awk '{print $7}' \\\n|sort | uniq -c |sort -n -k 1 -r|more\n")),(0,r.yg)("h4",{id:"\u67e5\u8be2\u8bbf\u95ee\u6700\u9891\u7e41\u7684ip"},"\u67e5\u8be2\u8bbf\u95ee\u6700\u9891\u7e41\u7684IP"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"# \u67e5\u8be2\u8bbf\u95ee\u6700\u9891\u7e41\u7684IP\ncat /mnt/docker/tomcat/logs/{\u5177\u4f53\u7684nginx log\u6587\u4ef6} \\\n| grep \"12/May/2020\" | awk '{print $1}' \\\n|sort | uniq -c |sort -n -k 1 -r|more\n")),(0,r.yg)("h4",{id:"\u6839\u636e\u65f6\u95f4\u6bb5\u7edf\u8ba1\u67e5\u770b\u65e5\u5fd7"},"\u6839\u636e\u65f6\u95f4\u6bb5\u7edf\u8ba1\u67e5\u770b\u65e5\u5fd7"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"# \u6839\u636e\u65f6\u95f4\u6bb5\u7edf\u8ba1\u67e5\u770b\u65e5\u5fd7\ncat /usr/local/nginx/logs/access.log \\\n| sed -n '/14\\/Mar\\/2015/,/14\\/Mar\\/2020/p'|more\n")),(0,r.yg)("h4",{id:"\u67d0\u4e2a\u65f6\u95f4\u6bb5\u8bbf\u95ee\u603b\u6b21\u6570"},"\u67d0\u4e2a\u65f6\u95f4\u6bb5\u8bbf\u95ee\u603b\u6b21\u6570"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"# \u67d0\u4e2a\u65f6\u95f4\u6bb5\u8bbf\u95ee\u603b\u6b21\u6570\ncat /usr/local/nginx/logs/access.log \\\n| grep -E '16\\/Feb\\/2020:1[2-9]|29\\/Feb\\/2020:2[0-3]'| wc -\n")),(0,r.yg)("h4",{id:"\u67e5\u770b\u8bbf\u95ee\u6700\u9891\u7e41\u7684\u524d5\u4e2aip\u5e76\u5217\u51fa\u8bbf\u95ee\u6b21\u6570"},"\u67e5\u770b\u8bbf\u95ee\u6700\u9891\u7e41\u7684\u524d5\u4e2aIP\uff0c\u5e76\u5217\u51fa\u8bbf\u95ee\u6b21\u6570"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"#\u67e5\u770b\u8bbf\u95ee\u6700\u9891\u7e41\u7684\u524d5\u4e2aIP\uff0c\u5e76\u5217\u51fa\u8bbf\u95ee\u6b21\u6570\ncat /usr/local/nginx/logs/access.log \\\n| grep \"29/Feb/2020\" | awk '{print $1}'|sort -n|uniq -c| sort -rn| head -5\n")),(0,r.yg)("h4",{id:"\u7edf\u8ba1\u72b6\u6001\u7801\u4e3a200\u6b21\u6570"},"\u7edf\u8ba1\u72b6\u6001\u7801\u4e3a200\u6b21\u6570"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"# \u7edf\u8ba1\u72b6\u6001\u7801\u4e3a200\u6b21\u6570\ncat /usr/local/nginx/logs/access.log \\\n| grep \"29/Feb/2020\" | awk '{if($9 == 200) print $9}'|wc -l\n")),(0,r.yg)("h4",{id:"\u7edf\u8ba1\u72b6\u6001\u7801\u4e0d\u662f200\u7684\u6b21\u6570"},"\u7edf\u8ba1\u72b6\u6001\u7801\u4e0d\u662f200\u7684\u6b21\u6570"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"#\u7edf\u8ba1\u72b6\u6001\u7801\u4e0d\u662f200\u7684\u6b21\u6570\ncat /usr/local/nginx/logs/access.log \\\n| grep \"29/Feb/2020\" | awk '{if($9 != 200) print }'|less\n")),(0,r.yg)("h4",{id:"\u67e5\u770b404\u9519\u8bef\u7801\u7684\u8bf7\u6c42"},"\u67e5\u770b404\u9519\u8bef\u7801\u7684\u8bf7\u6c42"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'#\u67e5\u770b404\u9519\u8bef\u7801\u7684\u8bf7\u6c42\ncat /usr/local/nginx/logs/access.log \\\n| grep "29/Feb/2020" | grep "404"|less\n')),(0,r.yg)("h4",{id:"\u6bcf\u96945\u5206\u949f\u8bbf\u95ee\u6b21\u6570\u5217\u8868"},"\u6bcf\u96945\u5206\u949f\u8bbf\u95ee\u6b21\u6570\u5217\u8868"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'#\u6bcf\u96945\u5206\u949f\u8bbf\u95ee\u6b21\u6570\u5217\u8868\ncat /usr/local/nginx/logs/access.log \\\n| grep "29/Feb/2020" \\\n| awk -F: \'{a[$2":"($3-$3%5)]++}END\\\n{for(i in a){split(i,t);print i" \u81f3",t[1]":"t[2]+4," \\\n\u8bbf\u95ee "a[i] " \u6b21" | "sort -t: -k1n -k2n"}}\'\n')),(0,r.yg)("h4",{id:"\u67e5\u8be2\u67d0\u4e2aip\u7684\u8be6\u7ec6\u8bbf\u95ee\u60c5\u51b5\u6309\u8bbf\u95ee\u9891\u7387\u6392\u5e8f"},"\u67e5\u8be2\u67d0\u4e2aIP\u7684\u8be6\u7ec6\u8bbf\u95ee\u60c5\u51b5,\u6309\u8bbf\u95ee\u9891\u7387\u6392\u5e8f"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"#\u67e5\u8be2\u67d0\u4e2aIP\u7684\u8be6\u7ec6\u8bbf\u95ee\u60c5\u51b5,\u6309\u8bbf\u95ee\u9891\u7387\u6392\u5e8f\ncat /usr/local/nginx/logs/access.log \\\n| grep \"29/Feb/2020\" | grep '122.4.22.242' \\\n| awk '{print $7}'|sort |uniq -c |sort -rn |head -n 100\n")),(0,r.yg)("h4",{id:"\u7edf\u8ba1\u6bcf\u79d2\u7684\u8bf7\u6c42\u6570top100\u7684\u65f6\u95f4\u70b9\u7cbe\u786e\u5230\u79d2"},"\u7edf\u8ba1\u6bcf\u79d2\u7684\u8bf7\u6c42\u6570,top100\u7684\u65f6\u95f4\u70b9(\u7cbe\u786e\u5230\u79d2)"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"#\u7edf\u8ba1\u6bcf\u79d2\u7684\u8bf7\u6c42\u6570,top100\u7684\u65f6\u95f4\u70b9(\u7cbe\u786e\u5230\u79d2)\ncat /usr/local/nginx/logs/access.log \\\n| grep \"29/Feb/2020\" | awk '{print $4}' \\\n|cut -c 14-21|sort|uniq -c|sort -nr|head -n 100\n")),(0,r.yg)("h4",{id:"\u7edf\u8ba1\u6bcf\u5206\u949f\u7684\u8bf7\u6c42\u6570top100\u7684\u65f6\u95f4\u70b9\u7cbe\u786e\u5230\u5206\u949f"},"\u7edf\u8ba1\u6bcf\u5206\u949f\u7684\u8bf7\u6c42\u6570,top100\u7684\u65f6\u95f4\u70b9(\u7cbe\u786e\u5230\u5206\u949f)"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"#\u7edf\u8ba1\u6bcf\u5206\u949f\u7684\u8bf7\u6c42\u6570,top100\u7684\u65f6\u95f4\u70b9(\u7cbe\u786e\u5230\u5206\u949f)\ncat /usr/local/nginx/logs/access.log \\\n| grep \"29/Feb/2020\" | awk '{print $4}' \\\n|cut -c 14-18|sort|uniq -c|sort -nr|head -n 100\n")),(0,r.yg)("h4",{id:"\u7edf\u8ba1\u6bcf\u5c0f\u65f6\u7684\u8bf7\u6c42\u6570top100\u7684\u65f6\u95f4\u70b9\u7cbe\u786e\u5230\u5c0f\u65f6"},"\u7edf\u8ba1\u6bcf\u5c0f\u65f6\u7684\u8bf7\u6c42\u6570,top100\u7684\u65f6\u95f4\u70b9(\u7cbe\u786e\u5230\u5c0f\u65f6)"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"#\u7edf\u8ba1\u6bcf\u5c0f\u65f6\u7684\u8bf7\u6c42\u6570,top100\u7684\u65f6\u95f4\u70b9(\u7cbe\u786e\u5230\u5c0f\u65f6)\ncat /mnt/docker/tomcat/logs/{\u5177\u4f53\u7684nginx log\u6587\u4ef6} \\\n| grep \"21/May/2020\" | awk '{print $4}' \\\n|cut -c 14-15|sort|uniq -c|sort -nr|head -n 100\n")),(0,r.yg)("h4",{id:"\u5176\u4ed6\u672a\u5206\u7c7b"},"\u5176\u4ed6\uff0c\u672a\u5206\u7c7b"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'\n##\u6027\u80fd\u5206\u6790\n#\u5728nginx log\u4e2d\u6700\u540e\u4e00\u4e2a\u5b57\u6bb5\u52a0\u5165$request_time\n#\u5217\u51fa\u4f20\u8f93\u65f6\u95f4\u8d85\u8fc7 3 \u79d2\u7684\u9875\u9762\uff0c\u663e\u793a\u524d20\u6761\ncat /usr/local/nginx/logs/access.log | grep "29/Feb/2020" \\\n| awk \'($NF > 3){print $7}\'|sort -n|uniq -c|sort -nr|head -20\n\n##TCP\u8fde\u63a5\u7edf\u8ba1\n#\u67e5\u770b\u5f53\u524dTCP\u8fde\u63a5\u6570\nnetstat -tan | grep "ESTABLISHED" | grep ":80" | wc -l\n#\u7528tcpdump\u55c5\u63a280\u7aef\u53e3\u7684\u8bbf\u95ee\u770b\u770b\u8c01\u6700\u9ad8\ntcpdump -i eth0 -tnn dst port 80 -c 1000 \\\n| awk -F"." \'{print $1"."$2"."$3"."$4}\' | sort | uniq -c | sort -nr\n\n')),(0,r.yg)("h3",{id:"\u540d\u8bcd\u89e3\u91ca"},"\u540d\u8bcd\u89e3\u91ca"),(0,r.yg)("ol",null,(0,r.yg)("li",{parentName:"ol"},"PV\uff08Page View\uff09\u8bbf\u95ee\u91cf, \u5373\u9875\u9762\u6d4f\u89c8\u91cf\u6216\u70b9\u51fb\u91cf\uff0c\u8861\u91cf\u7f51\u7ad9\u7528\u6237\u8bbf\u95ee\u7684\u7f51\u9875\u6570\u91cf\uff1b\u5728\u4e00\u5b9a\u7edf\u8ba1\u5468\u671f\u5185\u7528\u6237\u6bcf\u6253\u5f00\u6216\u5237\u65b0\u4e00\u4e2a\u9875\u9762\u5c31\u8bb0\u5f551\u6b21\uff0c\u591a\u6b21\u6253\u5f00\u6216\u5237\u65b0\u540c\u4e00\u9875\u9762\u5219\u6d4f\u89c8\u91cf\u7d2f\u8ba1\u3002"),(0,r.yg)("li",{parentName:"ol"},"UV\uff08Unique Visitor\uff09\u72ec\u7acb\u8bbf\u5ba2\uff0c\u7edf\u8ba11\u5929\u5185\u8bbf\u95ee\u67d0\u7ad9\u70b9\u7684\u7528\u6237\u6570(\u4ee5cookie\u4e3a\u4f9d\u636e);\u8bbf\u95ee\u7f51\u7ad9\u7684\u4e00\u53f0\u7535\u8111\u5ba2\u6237\u7aef\u4e3a\u4e00\u4e2a\u8bbf\u5ba2\u3002\u53ef\u4ee5\u7406\u89e3\u6210\u8bbf\u95ee\u67d0\u7f51\u7ad9\u7684\u7535\u8111\u7684\u6570\u91cf\u3002\u7f51\u7ad9\u5224\u65ad\u6765\u8bbf\u7535\u8111\u7684\u8eab\u4efd\u662f\u901a\u8fc7\u6765\u8bbf\u7535\u8111\u7684cookies\u5b9e\u73b0\u7684\u3002\u5982\u679c\u66f4\u6362\u4e86IP\u540e\u4f46\u4e0d\u6e05\u9664cookies\uff0c\u518d\u8bbf\u95ee\u76f8\u540c\u7f51\u7ad9\uff0c\u8be5\u7f51\u7ad9\u7684\u7edf\u8ba1\u4e2dUV\u6570\u662f\u4e0d\u53d8\u7684\u3002\u5982\u679c\u7528\u6237\u4e0d\u4fdd\u5b58cookies\u8bbf\u95ee\u3001\u6e05\u9664\u4e86cookies\u6216\u8005\u66f4\u6362\u8bbe\u5907\u8bbf\u95ee\uff0c\u8ba1\u6570\u4f1a\u52a01\u300200:00-24:00\u5185\u76f8\u540c\u7684\u5ba2\u6237\u7aef\u591a\u6b21\u8bbf\u95ee\u53ea\u8ba1\u4e3a1\u4e2a\u8bbf\u5ba2\u3002"),(0,r.yg)("li",{parentName:"ol"},"IP\uff08Internet Protocol\uff09\u72ec\u7acbIP\u6570\uff0c\u662f\u63071\u5929\u5185\u591a\u5c11\u4e2a\u72ec\u7acb\u7684IP\u6d4f\u89c8\u4e86\u9875\u9762\uff0c\u5373\u7edf\u8ba1\u4e0d\u540c\u7684IP\u6d4f\u89c8\u7528\u6237\u6570\u91cf\u3002\u540c\u4e00IP\u4e0d\u7ba1\u8bbf\u95ee\u4e86\u51e0\u4e2a\u9875\u9762\uff0c\u72ec\u7acbIP\u6570\u5747\u4e3a1\uff1b\u4e0d\u540c\u7684IP\u6d4f\u89c8\u9875\u9762\uff0c\u8ba1\u6570\u4f1a\u52a01\u3002 IP\u662f\u57fa\u4e8e\u7528\u6237\u5e7f\u57df\u7f51IP\u5730\u5740\u6765\u533a\u5206\u4e0d\u540c\u7684\u8bbf\u95ee\u8005\u7684\uff0c\u6240\u4ee5\uff0c\u591a\u4e2a\u7528\u6237\uff08\u591a\u4e2a\u5c40\u57df\u7f51IP\uff09\u5728\u540c\u4e00\u4e2a\u8def\u7531\u5668\uff08\u540c\u4e00\u4e2a\u5e7f\u57df\u7f51IP\uff09\u5185\u4e0a\u7f51\uff0c\u53ef\u80fd\u88ab\u8bb0\u5f55\u4e3a\u4e00\u4e2a\u72ec\u7acbIP\u8bbf\u95ee\u8005\u3002\u5982\u679c\u7528\u6237\u4e0d\u65ad\u66f4\u6362IP\uff0c\u5219\u6709\u53ef\u80fd\u88ab\u591a\u6b21\u7edf\u8ba1\u3002"),(0,r.yg)("li",{parentName:"ol"},"\u4f1a\u8bdd\u6b21\u6570\uff08\u7f51\u7ad9\u8bbf\u95ee\u91cf\uff09Session\uff0c\u4f1a\u8bdd\u662f\u6307\u5728\u6307\u5b9a\u7684\u65f6\u95f4\u6bb5\u5185\u5728\u60a8\u7684\u7f51\u7ad9\u4e0a\u53d1\u751f\u7684\u4e00\u7cfb\u5217\u4e92\u52a8\uff0c\u6240\u4ee5\u4f1a\u8bdd\u6b21\u6570\u662f\u4e00\u6bb5\u65f6\u95f4\u5185\u7528\u6237\u5411\u60a8\u7684\u7f51\u7ad9\u53d1\u8d77\u7684\u4f1a\u8bdd\uff08Session\uff09\u603b\u6570\u91cf\u3002\u4e00\u6b21\u4f1a\u8bdd\u4f1a\u6d4f\u89c8\u4e00\u4e2a\u6216\u591a\u4e2a\u9875\u9762")),(0,r.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,r.yg)("ol",null,(0,r.yg)("li",{parentName:"ol"},(0,r.yg)("a",{parentName:"li",href:"https://www.cnblogs.com/wunaozai/p/6073731.html"},"Nginx \u5355\u673a\u767e\u4e07QPS\u73af\u5883\u642d\u5efa"))))}u.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5218],{5680:(e,n,a)=>{a.d(n,{xA:()=>p,yg:()=>d});var l=a(6540);function r(e,n,a){return n in e?Object.defineProperty(e,n,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[n]=a,e}function t(e,n){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);n&&(l=l.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),a.push.apply(a,l)}return a}function o(e){for(var n=1;n=0||(r[a]=e[a]);return r}(e,n);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);for(l=0;l=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var s=l.createContext({}),g=function(e){var n=l.useContext(s),a=n;return e&&(a="function"==typeof e?e(n):o(o({},n),e)),a},p=function(e){var n=g(e.components);return l.createElement(s.Provider,{value:n},e.children)},c="mdxType",u={inlineCode:"code",wrapper:function(e){var n=e.children;return l.createElement(l.Fragment,{},n)}},y=l.forwardRef((function(e,n){var a=e.components,r=e.mdxType,t=e.originalType,s=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),c=g(a),y=r,d=c["".concat(s,".").concat(y)]||c[y]||u[y]||t;return a?l.createElement(d,o(o({ref:n},p),{},{components:a})):l.createElement(d,o({ref:n},p))}));function d(e,n){var a=arguments,r=n&&n.mdxType;if("string"==typeof e||r){var t=a.length,o=new Array(t);o[0]=y;var i={};for(var s in n)hasOwnProperty.call(n,s)&&(i[s]=n[s]);i.originalType=e,i[c]="string"==typeof e?e:r,o[1]=i;for(var g=2;g{a.r(n),a.d(n,{assets:()=>s,contentTitle:()=>o,default:()=>u,frontMatter:()=>t,metadata:()=>i,toc:()=>g});var l=a(8168),r=(a(6540),a(5680));const t={sidebar_position:2},o=void 0,i={unversionedId:"study/back/\u9ad8\u5e76\u53d1API",id:"study/back/\u9ad8\u5e76\u53d1API",title:"\u9ad8\u5e76\u53d1API",description:"\u603b\u7ed3",source:"@site/docs/study/back/\u9ad8\u5e76\u53d1API.md",sourceDirName:"study/back",slug:"/study/back/\u9ad8\u5e76\u53d1API",permalink:"/docs/study/back/\u9ad8\u5e76\u53d1API",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"studySidebar",previous:{title:"Zookeeper",permalink:"/docs/study/back/Zookeeper"},next:{title:"MyBatis",permalink:"/docs/study/back/MyBatis"}},s={},g=[{value:"\u603b\u7ed3",id:"\u603b\u7ed3",level:3},{value:"wrk\u64cd\u4f5c",id:"wrk\u64cd\u4f5c",level:3},{value:"Nginx\u7edf\u8ba1\u8bbf\u95ee\u91cf",id:"nginx\u7edf\u8ba1\u8bbf\u95ee\u91cf",level:3},{value:"\u6839\u636e\u8bbf\u95eeIP\u7edf\u8ba1UV",id:"\u6839\u636e\u8bbf\u95eeip\u7edf\u8ba1uv",level:4},{value:"\u6839\u636e\u8bbf\u95eeURL\u7edf\u8ba1PV",id:"\u6839\u636e\u8bbf\u95eeurl\u7edf\u8ba1pv",level:4},{value:"\u6839\u636e\u8bbf\u95eeURL\u7edf\u8ba1QPS",id:"\u6839\u636e\u8bbf\u95eeurl\u7edf\u8ba1qps",level:4},{value:"\u67e5\u8be2\u8bbf\u95ee\u6700\u9891\u7e41\u7684URL",id:"\u67e5\u8be2\u8bbf\u95ee\u6700\u9891\u7e41\u7684url",level:4},{value:"\u67e5\u8be2\u8bbf\u95ee\u6700\u9891\u7e41\u7684IP",id:"\u67e5\u8be2\u8bbf\u95ee\u6700\u9891\u7e41\u7684ip",level:4},{value:"\u6839\u636e\u65f6\u95f4\u6bb5\u7edf\u8ba1\u67e5\u770b\u65e5\u5fd7",id:"\u6839\u636e\u65f6\u95f4\u6bb5\u7edf\u8ba1\u67e5\u770b\u65e5\u5fd7",level:4},{value:"\u67d0\u4e2a\u65f6\u95f4\u6bb5\u8bbf\u95ee\u603b\u6b21\u6570",id:"\u67d0\u4e2a\u65f6\u95f4\u6bb5\u8bbf\u95ee\u603b\u6b21\u6570",level:4},{value:"\u67e5\u770b\u8bbf\u95ee\u6700\u9891\u7e41\u7684\u524d5\u4e2aIP\uff0c\u5e76\u5217\u51fa\u8bbf\u95ee\u6b21\u6570",id:"\u67e5\u770b\u8bbf\u95ee\u6700\u9891\u7e41\u7684\u524d5\u4e2aip\u5e76\u5217\u51fa\u8bbf\u95ee\u6b21\u6570",level:4},{value:"\u7edf\u8ba1\u72b6\u6001\u7801\u4e3a200\u6b21\u6570",id:"\u7edf\u8ba1\u72b6\u6001\u7801\u4e3a200\u6b21\u6570",level:4},{value:"\u7edf\u8ba1\u72b6\u6001\u7801\u4e0d\u662f200\u7684\u6b21\u6570",id:"\u7edf\u8ba1\u72b6\u6001\u7801\u4e0d\u662f200\u7684\u6b21\u6570",level:4},{value:"\u67e5\u770b404\u9519\u8bef\u7801\u7684\u8bf7\u6c42",id:"\u67e5\u770b404\u9519\u8bef\u7801\u7684\u8bf7\u6c42",level:4},{value:"\u6bcf\u96945\u5206\u949f\u8bbf\u95ee\u6b21\u6570\u5217\u8868",id:"\u6bcf\u96945\u5206\u949f\u8bbf\u95ee\u6b21\u6570\u5217\u8868",level:4},{value:"\u67e5\u8be2\u67d0\u4e2aIP\u7684\u8be6\u7ec6\u8bbf\u95ee\u60c5\u51b5,\u6309\u8bbf\u95ee\u9891\u7387\u6392\u5e8f",id:"\u67e5\u8be2\u67d0\u4e2aip\u7684\u8be6\u7ec6\u8bbf\u95ee\u60c5\u51b5\u6309\u8bbf\u95ee\u9891\u7387\u6392\u5e8f",level:4},{value:"\u7edf\u8ba1\u6bcf\u79d2\u7684\u8bf7\u6c42\u6570,top100\u7684\u65f6\u95f4\u70b9(\u7cbe\u786e\u5230\u79d2)",id:"\u7edf\u8ba1\u6bcf\u79d2\u7684\u8bf7\u6c42\u6570top100\u7684\u65f6\u95f4\u70b9\u7cbe\u786e\u5230\u79d2",level:4},{value:"\u7edf\u8ba1\u6bcf\u5206\u949f\u7684\u8bf7\u6c42\u6570,top100\u7684\u65f6\u95f4\u70b9(\u7cbe\u786e\u5230\u5206\u949f)",id:"\u7edf\u8ba1\u6bcf\u5206\u949f\u7684\u8bf7\u6c42\u6570top100\u7684\u65f6\u95f4\u70b9\u7cbe\u786e\u5230\u5206\u949f",level:4},{value:"\u7edf\u8ba1\u6bcf\u5c0f\u65f6\u7684\u8bf7\u6c42\u6570,top100\u7684\u65f6\u95f4\u70b9(\u7cbe\u786e\u5230\u5c0f\u65f6)",id:"\u7edf\u8ba1\u6bcf\u5c0f\u65f6\u7684\u8bf7\u6c42\u6570top100\u7684\u65f6\u95f4\u70b9\u7cbe\u786e\u5230\u5c0f\u65f6",level:4},{value:"\u5176\u4ed6\uff0c\u672a\u5206\u7c7b",id:"\u5176\u4ed6\u672a\u5206\u7c7b",level:4},{value:"\u540d\u8bcd\u89e3\u91ca",id:"\u540d\u8bcd\u89e3\u91ca",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],p={toc:g},c="wrapper";function u(e){let{components:n,...a}=e;return(0,r.yg)(c,(0,l.A)({},p,a,{components:n,mdxType:"MDXLayout"}),(0,r.yg)("h3",{id:"\u603b\u7ed3"},"\u603b\u7ed3"),(0,r.yg)("ol",null,(0,r.yg)("li",{parentName:"ol"},"\u5355\u673a\u767e\u4e07QPS\u7684Nginx\u662f\u6ca1\u6709\u95ee\u9898\u7684\uff0c\u5177\u4f53\u80fd\u5230\u591a\u5c11\uff0c\u53d7\u9650\u4e8e\uff1a",(0,r.yg)("ol",{parentName:"li"},(0,r.yg)("li",{parentName:"ol"},"\u670d\u52a1\u5668\u7684CPU\u6570\u91cf\u3001\u5185\u5b58\u5927\u5c0f\u3001\u78c1\u76d8\u6027\u80fd\uff1b"),(0,r.yg)("li",{parentName:"ol"},"\u670d\u52a1\u5668Linux\u7684\u914d\u7f6e"),(0,r.yg)("li",{parentName:"ol"},"Nginx\u7684\u53c2\u6570\u914d\u7f6e"),(0,r.yg)("li",{parentName:"ol"},"\u7f51\u5361\u7684\u914d\u7f6e\u3001\u8def\u7531\u5668\u7684\u914d\u7f6e\u3001\u4ea4\u6362\u673a\u7684\u914d\u7f6e"))),(0,r.yg)("li",{parentName:"ol"},"\u5355\u673aTomcat\u53d7\u9650\u4e8eJVM\u548cweb\u6846\u67b6\u7b49\u539f\u56e0\uff0c\u4e5f\u5c31\u6700\u591a1\u4e07\u5de6\u53f3\u7684QPS\uff1b",(0,r.yg)("ol",{parentName:"li"},(0,r.yg)("li",{parentName:"ol"},"\u5982\u679c\u9700\u8981\u7b80\u5355\u67e5\u8be2\u6570\u636e\u5e93\u7684\uff0c\u4e5f\u5c312~3K\u7684QPS\uff1b"),(0,r.yg)("li",{parentName:"ol"},"\u5982\u679c\u9700\u8981\u6570\u636e\u5e93\u4e8b\u52a1\u64cd\u4f5c\u7684\uff0c\u4e5f\u5c31100~150\u7684QPS\uff1b"))),(0,r.yg)("li",{parentName:"ol"},"\u4ec0\u4e48\u65f6\u5019\u9700\u8981\u6c34\u5e73\u62d3\u5c55QPS"),(0,r.yg)("li",{parentName:"ol"},"HTTP\u538b\u6d4b\u5de5\u5177\u4e4bwrk\uff1b",(0,r.yg)("ol",{parentName:"li"},(0,r.yg)("li",{parentName:"ol"},(0,r.yg)("a",{parentName:"li",href:"https://www.jianshu.com/p/ac185e01cc30"},"HTTP\u538b\u6d4b\u5de5\u5177\u4e4bwrk")),(0,r.yg)("li",{parentName:"ol"},(0,r.yg)("a",{parentName:"li",href:"https://www.cnblogs.com/quanxiaoha/p/10661650.html"},"\u6027\u80fd\u6d4b\u8bd5\u5de5\u5177wrk\u4f7f\u7528\u6559\u7a0b")))),(0,r.yg)("li",{parentName:"ol"},"\u4e00\u822c\u6765\u8bf4\uff0c\u4e0d\u4e00\u5b9a\u5f88\u51c6\u786e\uff0c\u53c2\u8003\uff1a",(0,r.yg)("ol",{parentName:"li"},(0,r.yg)("li",{parentName:"ol"},"2C4G\u673a\u5668\u5355\u673a\u4e00\u822c1000QPS\u3002"),(0,r.yg)("li",{parentName:"ol"},"8C8G\u673a\u5668\u5355\u673a\u53ef\u627f\u53d77000QPS\u3002")))),(0,r.yg)("h3",{id:"wrk\u64cd\u4f5c"},"wrk\u64cd\u4f5c"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'#scripts/post.lua\nvim post.lua\n#\nwrk.method = "POST"\nwrk.body = \'{"domain":"xxx.xxx.xxx"}\'\nwrk.headers["Content-Type"] = "application/json"\n#\n./wrk -t4 -c1000 -d5s -s /root/code/wrk/scripts/post.lua {\u5177\u4f53\u7684URL}\n')),(0,r.yg)("h3",{id:"nginx\u7edf\u8ba1\u8bbf\u95ee\u91cf"},"Nginx\u7edf\u8ba1\u8bbf\u95ee\u91cf"),(0,r.yg)("h4",{id:"\u6839\u636e\u8bbf\u95eeip\u7edf\u8ba1uv"},"\u6839\u636e\u8bbf\u95eeIP\u7edf\u8ba1UV"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"# \u6839\u636e\u8bbf\u95eeIP\u7edf\u8ba1UV\ncat /mnt/docker/tomcat/logs/{\u5177\u4f53\u7684nginx log} \\\n| grep \"21/May/2020\" | awk '{print $1}' \\\n|sort | uniq -c |wc -l\n")),(0,r.yg)("h4",{id:"\u6839\u636e\u8bbf\u95eeurl\u7edf\u8ba1pv"},"\u6839\u636e\u8bbf\u95eeURL\u7edf\u8ba1PV"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"# \u6839\u636e\u8bbf\u95eeURL\u7edf\u8ba1PV\ncat /mnt/docker/tomcat/logs/{\u5177\u4f53\u7684nginx log\u6587\u4ef6} \\\n| grep \"21/May/2020\" \\\n| awk '{print $7}' |wc -l\n")),(0,r.yg)("h4",{id:"\u6839\u636e\u8bbf\u95eeurl\u7edf\u8ba1qps"},"\u6839\u636e\u8bbf\u95eeURL\u7edf\u8ba1QPS"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"# \u6839\u636e\u8bbf\u95eeURL\u7edf\u8ba1QPS\ncat /mnt/docker/tomcat/logs/{\u5177\u4f53\u7684nginx log\u6587\u4ef6} \\\n| grep \"21/May/2020:16:39:\" \\\n| awk '{print $7}' |wc -l\n")),(0,r.yg)("h4",{id:"\u67e5\u8be2\u8bbf\u95ee\u6700\u9891\u7e41\u7684url"},"\u67e5\u8be2\u8bbf\u95ee\u6700\u9891\u7e41\u7684URL"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"# \u67e5\u8be2\u8bbf\u95ee\u6700\u9891\u7e41\u7684URL\ncat /usr/local/nginx/logs/access.log \\\n| grep \"29/Feb/2020\" | awk '{print $7}' \\\n|sort | uniq -c |sort -n -k 1 -r|more\n")),(0,r.yg)("h4",{id:"\u67e5\u8be2\u8bbf\u95ee\u6700\u9891\u7e41\u7684ip"},"\u67e5\u8be2\u8bbf\u95ee\u6700\u9891\u7e41\u7684IP"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"# \u67e5\u8be2\u8bbf\u95ee\u6700\u9891\u7e41\u7684IP\ncat /mnt/docker/tomcat/logs/{\u5177\u4f53\u7684nginx log\u6587\u4ef6} \\\n| grep \"12/May/2020\" | awk '{print $1}' \\\n|sort | uniq -c |sort -n -k 1 -r|more\n")),(0,r.yg)("h4",{id:"\u6839\u636e\u65f6\u95f4\u6bb5\u7edf\u8ba1\u67e5\u770b\u65e5\u5fd7"},"\u6839\u636e\u65f6\u95f4\u6bb5\u7edf\u8ba1\u67e5\u770b\u65e5\u5fd7"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"# \u6839\u636e\u65f6\u95f4\u6bb5\u7edf\u8ba1\u67e5\u770b\u65e5\u5fd7\ncat /usr/local/nginx/logs/access.log \\\n| sed -n '/14\\/Mar\\/2015/,/14\\/Mar\\/2020/p'|more\n")),(0,r.yg)("h4",{id:"\u67d0\u4e2a\u65f6\u95f4\u6bb5\u8bbf\u95ee\u603b\u6b21\u6570"},"\u67d0\u4e2a\u65f6\u95f4\u6bb5\u8bbf\u95ee\u603b\u6b21\u6570"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"# \u67d0\u4e2a\u65f6\u95f4\u6bb5\u8bbf\u95ee\u603b\u6b21\u6570\ncat /usr/local/nginx/logs/access.log \\\n| grep -E '16\\/Feb\\/2020:1[2-9]|29\\/Feb\\/2020:2[0-3]'| wc -\n")),(0,r.yg)("h4",{id:"\u67e5\u770b\u8bbf\u95ee\u6700\u9891\u7e41\u7684\u524d5\u4e2aip\u5e76\u5217\u51fa\u8bbf\u95ee\u6b21\u6570"},"\u67e5\u770b\u8bbf\u95ee\u6700\u9891\u7e41\u7684\u524d5\u4e2aIP\uff0c\u5e76\u5217\u51fa\u8bbf\u95ee\u6b21\u6570"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"#\u67e5\u770b\u8bbf\u95ee\u6700\u9891\u7e41\u7684\u524d5\u4e2aIP\uff0c\u5e76\u5217\u51fa\u8bbf\u95ee\u6b21\u6570\ncat /usr/local/nginx/logs/access.log \\\n| grep \"29/Feb/2020\" | awk '{print $1}'|sort -n|uniq -c| sort -rn| head -5\n")),(0,r.yg)("h4",{id:"\u7edf\u8ba1\u72b6\u6001\u7801\u4e3a200\u6b21\u6570"},"\u7edf\u8ba1\u72b6\u6001\u7801\u4e3a200\u6b21\u6570"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"# \u7edf\u8ba1\u72b6\u6001\u7801\u4e3a200\u6b21\u6570\ncat /usr/local/nginx/logs/access.log \\\n| grep \"29/Feb/2020\" | awk '{if($9 == 200) print $9}'|wc -l\n")),(0,r.yg)("h4",{id:"\u7edf\u8ba1\u72b6\u6001\u7801\u4e0d\u662f200\u7684\u6b21\u6570"},"\u7edf\u8ba1\u72b6\u6001\u7801\u4e0d\u662f200\u7684\u6b21\u6570"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"#\u7edf\u8ba1\u72b6\u6001\u7801\u4e0d\u662f200\u7684\u6b21\u6570\ncat /usr/local/nginx/logs/access.log \\\n| grep \"29/Feb/2020\" | awk '{if($9 != 200) print }'|less\n")),(0,r.yg)("h4",{id:"\u67e5\u770b404\u9519\u8bef\u7801\u7684\u8bf7\u6c42"},"\u67e5\u770b404\u9519\u8bef\u7801\u7684\u8bf7\u6c42"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'#\u67e5\u770b404\u9519\u8bef\u7801\u7684\u8bf7\u6c42\ncat /usr/local/nginx/logs/access.log \\\n| grep "29/Feb/2020" | grep "404"|less\n')),(0,r.yg)("h4",{id:"\u6bcf\u96945\u5206\u949f\u8bbf\u95ee\u6b21\u6570\u5217\u8868"},"\u6bcf\u96945\u5206\u949f\u8bbf\u95ee\u6b21\u6570\u5217\u8868"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'#\u6bcf\u96945\u5206\u949f\u8bbf\u95ee\u6b21\u6570\u5217\u8868\ncat /usr/local/nginx/logs/access.log \\\n| grep "29/Feb/2020" \\\n| awk -F: \'{a[$2":"($3-$3%5)]++}END\\\n{for(i in a){split(i,t);print i" \u81f3",t[1]":"t[2]+4," \\\n\u8bbf\u95ee "a[i] " \u6b21" | "sort -t: -k1n -k2n"}}\'\n')),(0,r.yg)("h4",{id:"\u67e5\u8be2\u67d0\u4e2aip\u7684\u8be6\u7ec6\u8bbf\u95ee\u60c5\u51b5\u6309\u8bbf\u95ee\u9891\u7387\u6392\u5e8f"},"\u67e5\u8be2\u67d0\u4e2aIP\u7684\u8be6\u7ec6\u8bbf\u95ee\u60c5\u51b5,\u6309\u8bbf\u95ee\u9891\u7387\u6392\u5e8f"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"#\u67e5\u8be2\u67d0\u4e2aIP\u7684\u8be6\u7ec6\u8bbf\u95ee\u60c5\u51b5,\u6309\u8bbf\u95ee\u9891\u7387\u6392\u5e8f\ncat /usr/local/nginx/logs/access.log \\\n| grep \"29/Feb/2020\" | grep '122.4.22.242' \\\n| awk '{print $7}'|sort |uniq -c |sort -rn |head -n 100\n")),(0,r.yg)("h4",{id:"\u7edf\u8ba1\u6bcf\u79d2\u7684\u8bf7\u6c42\u6570top100\u7684\u65f6\u95f4\u70b9\u7cbe\u786e\u5230\u79d2"},"\u7edf\u8ba1\u6bcf\u79d2\u7684\u8bf7\u6c42\u6570,top100\u7684\u65f6\u95f4\u70b9(\u7cbe\u786e\u5230\u79d2)"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"#\u7edf\u8ba1\u6bcf\u79d2\u7684\u8bf7\u6c42\u6570,top100\u7684\u65f6\u95f4\u70b9(\u7cbe\u786e\u5230\u79d2)\ncat /usr/local/nginx/logs/access.log \\\n| grep \"29/Feb/2020\" | awk '{print $4}' \\\n|cut -c 14-21|sort|uniq -c|sort -nr|head -n 100\n")),(0,r.yg)("h4",{id:"\u7edf\u8ba1\u6bcf\u5206\u949f\u7684\u8bf7\u6c42\u6570top100\u7684\u65f6\u95f4\u70b9\u7cbe\u786e\u5230\u5206\u949f"},"\u7edf\u8ba1\u6bcf\u5206\u949f\u7684\u8bf7\u6c42\u6570,top100\u7684\u65f6\u95f4\u70b9(\u7cbe\u786e\u5230\u5206\u949f)"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"#\u7edf\u8ba1\u6bcf\u5206\u949f\u7684\u8bf7\u6c42\u6570,top100\u7684\u65f6\u95f4\u70b9(\u7cbe\u786e\u5230\u5206\u949f)\ncat /usr/local/nginx/logs/access.log \\\n| grep \"29/Feb/2020\" | awk '{print $4}' \\\n|cut -c 14-18|sort|uniq -c|sort -nr|head -n 100\n")),(0,r.yg)("h4",{id:"\u7edf\u8ba1\u6bcf\u5c0f\u65f6\u7684\u8bf7\u6c42\u6570top100\u7684\u65f6\u95f4\u70b9\u7cbe\u786e\u5230\u5c0f\u65f6"},"\u7edf\u8ba1\u6bcf\u5c0f\u65f6\u7684\u8bf7\u6c42\u6570,top100\u7684\u65f6\u95f4\u70b9(\u7cbe\u786e\u5230\u5c0f\u65f6)"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"#\u7edf\u8ba1\u6bcf\u5c0f\u65f6\u7684\u8bf7\u6c42\u6570,top100\u7684\u65f6\u95f4\u70b9(\u7cbe\u786e\u5230\u5c0f\u65f6)\ncat /mnt/docker/tomcat/logs/{\u5177\u4f53\u7684nginx log\u6587\u4ef6} \\\n| grep \"21/May/2020\" | awk '{print $4}' \\\n|cut -c 14-15|sort|uniq -c|sort -nr|head -n 100\n")),(0,r.yg)("h4",{id:"\u5176\u4ed6\u672a\u5206\u7c7b"},"\u5176\u4ed6\uff0c\u672a\u5206\u7c7b"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'\n##\u6027\u80fd\u5206\u6790\n#\u5728nginx log\u4e2d\u6700\u540e\u4e00\u4e2a\u5b57\u6bb5\u52a0\u5165$request_time\n#\u5217\u51fa\u4f20\u8f93\u65f6\u95f4\u8d85\u8fc7 3 \u79d2\u7684\u9875\u9762\uff0c\u663e\u793a\u524d20\u6761\ncat /usr/local/nginx/logs/access.log | grep "29/Feb/2020" \\\n| awk \'($NF > 3){print $7}\'|sort -n|uniq -c|sort -nr|head -20\n\n##TCP\u8fde\u63a5\u7edf\u8ba1\n#\u67e5\u770b\u5f53\u524dTCP\u8fde\u63a5\u6570\nnetstat -tan | grep "ESTABLISHED" | grep ":80" | wc -l\n#\u7528tcpdump\u55c5\u63a280\u7aef\u53e3\u7684\u8bbf\u95ee\u770b\u770b\u8c01\u6700\u9ad8\ntcpdump -i eth0 -tnn dst port 80 -c 1000 \\\n| awk -F"." \'{print $1"."$2"."$3"."$4}\' | sort | uniq -c | sort -nr\n\n')),(0,r.yg)("h3",{id:"\u540d\u8bcd\u89e3\u91ca"},"\u540d\u8bcd\u89e3\u91ca"),(0,r.yg)("ol",null,(0,r.yg)("li",{parentName:"ol"},"PV\uff08Page View\uff09\u8bbf\u95ee\u91cf, \u5373\u9875\u9762\u6d4f\u89c8\u91cf\u6216\u70b9\u51fb\u91cf\uff0c\u8861\u91cf\u7f51\u7ad9\u7528\u6237\u8bbf\u95ee\u7684\u7f51\u9875\u6570\u91cf\uff1b\u5728\u4e00\u5b9a\u7edf\u8ba1\u5468\u671f\u5185\u7528\u6237\u6bcf\u6253\u5f00\u6216\u5237\u65b0\u4e00\u4e2a\u9875\u9762\u5c31\u8bb0\u5f551\u6b21\uff0c\u591a\u6b21\u6253\u5f00\u6216\u5237\u65b0\u540c\u4e00\u9875\u9762\u5219\u6d4f\u89c8\u91cf\u7d2f\u8ba1\u3002"),(0,r.yg)("li",{parentName:"ol"},"UV\uff08Unique Visitor\uff09\u72ec\u7acb\u8bbf\u5ba2\uff0c\u7edf\u8ba11\u5929\u5185\u8bbf\u95ee\u67d0\u7ad9\u70b9\u7684\u7528\u6237\u6570(\u4ee5cookie\u4e3a\u4f9d\u636e);\u8bbf\u95ee\u7f51\u7ad9\u7684\u4e00\u53f0\u7535\u8111\u5ba2\u6237\u7aef\u4e3a\u4e00\u4e2a\u8bbf\u5ba2\u3002\u53ef\u4ee5\u7406\u89e3\u6210\u8bbf\u95ee\u67d0\u7f51\u7ad9\u7684\u7535\u8111\u7684\u6570\u91cf\u3002\u7f51\u7ad9\u5224\u65ad\u6765\u8bbf\u7535\u8111\u7684\u8eab\u4efd\u662f\u901a\u8fc7\u6765\u8bbf\u7535\u8111\u7684cookies\u5b9e\u73b0\u7684\u3002\u5982\u679c\u66f4\u6362\u4e86IP\u540e\u4f46\u4e0d\u6e05\u9664cookies\uff0c\u518d\u8bbf\u95ee\u76f8\u540c\u7f51\u7ad9\uff0c\u8be5\u7f51\u7ad9\u7684\u7edf\u8ba1\u4e2dUV\u6570\u662f\u4e0d\u53d8\u7684\u3002\u5982\u679c\u7528\u6237\u4e0d\u4fdd\u5b58cookies\u8bbf\u95ee\u3001\u6e05\u9664\u4e86cookies\u6216\u8005\u66f4\u6362\u8bbe\u5907\u8bbf\u95ee\uff0c\u8ba1\u6570\u4f1a\u52a01\u300200:00-24:00\u5185\u76f8\u540c\u7684\u5ba2\u6237\u7aef\u591a\u6b21\u8bbf\u95ee\u53ea\u8ba1\u4e3a1\u4e2a\u8bbf\u5ba2\u3002"),(0,r.yg)("li",{parentName:"ol"},"IP\uff08Internet Protocol\uff09\u72ec\u7acbIP\u6570\uff0c\u662f\u63071\u5929\u5185\u591a\u5c11\u4e2a\u72ec\u7acb\u7684IP\u6d4f\u89c8\u4e86\u9875\u9762\uff0c\u5373\u7edf\u8ba1\u4e0d\u540c\u7684IP\u6d4f\u89c8\u7528\u6237\u6570\u91cf\u3002\u540c\u4e00IP\u4e0d\u7ba1\u8bbf\u95ee\u4e86\u51e0\u4e2a\u9875\u9762\uff0c\u72ec\u7acbIP\u6570\u5747\u4e3a1\uff1b\u4e0d\u540c\u7684IP\u6d4f\u89c8\u9875\u9762\uff0c\u8ba1\u6570\u4f1a\u52a01\u3002 IP\u662f\u57fa\u4e8e\u7528\u6237\u5e7f\u57df\u7f51IP\u5730\u5740\u6765\u533a\u5206\u4e0d\u540c\u7684\u8bbf\u95ee\u8005\u7684\uff0c\u6240\u4ee5\uff0c\u591a\u4e2a\u7528\u6237\uff08\u591a\u4e2a\u5c40\u57df\u7f51IP\uff09\u5728\u540c\u4e00\u4e2a\u8def\u7531\u5668\uff08\u540c\u4e00\u4e2a\u5e7f\u57df\u7f51IP\uff09\u5185\u4e0a\u7f51\uff0c\u53ef\u80fd\u88ab\u8bb0\u5f55\u4e3a\u4e00\u4e2a\u72ec\u7acbIP\u8bbf\u95ee\u8005\u3002\u5982\u679c\u7528\u6237\u4e0d\u65ad\u66f4\u6362IP\uff0c\u5219\u6709\u53ef\u80fd\u88ab\u591a\u6b21\u7edf\u8ba1\u3002"),(0,r.yg)("li",{parentName:"ol"},"\u4f1a\u8bdd\u6b21\u6570\uff08\u7f51\u7ad9\u8bbf\u95ee\u91cf\uff09Session\uff0c\u4f1a\u8bdd\u662f\u6307\u5728\u6307\u5b9a\u7684\u65f6\u95f4\u6bb5\u5185\u5728\u60a8\u7684\u7f51\u7ad9\u4e0a\u53d1\u751f\u7684\u4e00\u7cfb\u5217\u4e92\u52a8\uff0c\u6240\u4ee5\u4f1a\u8bdd\u6b21\u6570\u662f\u4e00\u6bb5\u65f6\u95f4\u5185\u7528\u6237\u5411\u60a8\u7684\u7f51\u7ad9\u53d1\u8d77\u7684\u4f1a\u8bdd\uff08Session\uff09\u603b\u6570\u91cf\u3002\u4e00\u6b21\u4f1a\u8bdd\u4f1a\u6d4f\u89c8\u4e00\u4e2a\u6216\u591a\u4e2a\u9875\u9762")),(0,r.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,r.yg)("ol",null,(0,r.yg)("li",{parentName:"ol"},(0,r.yg)("a",{parentName:"li",href:"https://www.cnblogs.com/wunaozai/p/6073731.html"},"Nginx \u5355\u673a\u767e\u4e07QPS\u73af\u5883\u642d\u5efa"))))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/62465e63.77aecfb5.js b/assets/js/62465e63.57295463.js similarity index 98% rename from assets/js/62465e63.77aecfb5.js rename to assets/js/62465e63.57295463.js index 23b367827..6a63182d5 100644 --- a/assets/js/62465e63.77aecfb5.js +++ b/assets/js/62465e63.57295463.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1746],{5680:(e,t,r)=>{r.d(t,{xA:()=>s,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var c=n.createContext({}),u=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},s=function(e){var t=u(e.components);return n.createElement(c.Provider,{value:t},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,c=e.parentName,s=i(e,["components","mdxType","originalType","parentName"]),d=u(r),y=o,f=d["".concat(c,".").concat(y)]||d[y]||p[y]||a;return r?n.createElement(f,l(l({ref:t},s),{},{components:r})):n.createElement(f,l({ref:t},s))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,l=new Array(a);l[0]=y;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[d]="string"==typeof e?e:o,l[1]=i;for(var u=2;u{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>p,frontMatter:()=>a,metadata:()=>i,toc:()=>u});var n=r(8168),o=(r(6540),r(5680));const a={},l=void 0,i={unversionedId:"study/db/OLAP/ClickHouse",id:"study/db/OLAP/ClickHouse",title:"ClickHouse",description:"Clickhouse\u662fYandex\u5f00\u6e90\u7684\u4e00\u4e2a\u7528\u4e8e\u5b9e\u65f6\u6570\u636e\u5206\u6790\u7684\u6570\u636e\u5e93\uff0c\u4e00\u5f00\u59cb\u5c31\u7528\u5728yandex\u5185\u90e8\u7684\u591a\u4e2a\u6570\u636e\u5206\u6790\u4e1a\u52a1\u4e0a\u3002\u8981\u4ecb\u7ecdclickhouse\uff0c\u8fd8\u662f\u9700\u8981\u5148\u4ecb\u7ecd\u4e00\u4e0byandex\u3002Clickhouse\u4e3a\u4ec0\u4e48\u4f1a\u51fa\u73b0\uff0c\u5176\u5b9e\u548cyandex\u7684\u4e1a\u52a1\u5173\u7cfb\u975e\u5e38\u5927\u3002Yandex\u662f\u4fc4\u7f57\u65af\u6700\u5927\u7684\u641c\u7d22\u5f15\u64ce\uff0c\u4f1a\u6709\u5f88\u591a\u6570\u636e\u5206\u6790\u7684\u4e1a\u52a1\uff0c\u5176\u4e2d\u6570\u636e\u91cf\u6700\u5927\u7684\u4e1a\u52a1\uff0c\u5c31\u662fYandex.Metrica\uff0c\u8fd9\u662f\u4e00\u4e2a\u548c\u767e\u5ea6\u7edf\u8ba1\u7c7b\u4f3c\u7684\u7f51\u7ad9\u6570\u636e\u5206\u6790\u670d\u52a1\uff0c\u6570\u636e\u91cf\u4e5f\u4ec5\u6b21\u4e8egoogle analysis\u3002\u81ea\u4eceClickhouse\u5f00\u6e90\u540e\uff0c\u5728\u56fd\u5185\u5916\u7684\u5f88\u591a\u516c\u53f8\u7684\u7ebf\u4e0a\u4e1a\u52a1\u90fd\u5df2\u7ecf\u5f00\u59cb\u4f7f\u7528\u3002",source:"@site/docs/study/db/OLAP/ClickHouse.md",sourceDirName:"study/db/OLAP",slug:"/study/db/OLAP/ClickHouse",permalink:"/docs/study/db/OLAP/ClickHouse",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u7efc\u5408\u6982\u8ff0",permalink:"/docs/study/db/OLAP/\u7efc\u5408\u6982\u8ff0"},next:{title:"Kylin",permalink:"/docs/study/db/OLAP/Kylin"}},c={},u=[{value:"\u6982\u8ff0",id:"\u6982\u8ff0",level:3}],s={toc:u},d="wrapper";function p(e){let{components:t,...r}=e;return(0,o.yg)(d,(0,n.A)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("p",null,"Clickhouse\u662fYandex\u5f00\u6e90\u7684\u4e00\u4e2a\u7528\u4e8e\u5b9e\u65f6\u6570\u636e\u5206\u6790\u7684\u6570\u636e\u5e93\uff0c\u4e00\u5f00\u59cb\u5c31\u7528\u5728yandex\u5185\u90e8\u7684\u591a\u4e2a\u6570\u636e\u5206\u6790\u4e1a\u52a1\u4e0a\u3002\u8981\u4ecb\u7ecdclickhouse\uff0c\u8fd8\u662f\u9700\u8981\u5148\u4ecb\u7ecd\u4e00\u4e0byandex\u3002Clickhouse\u4e3a\u4ec0\u4e48\u4f1a\u51fa\u73b0\uff0c\u5176\u5b9e\u548cyandex\u7684\u4e1a\u52a1\u5173\u7cfb\u975e\u5e38\u5927\u3002Yandex\u662f\u4fc4\u7f57\u65af\u6700\u5927\u7684\u641c\u7d22\u5f15\u64ce\uff0c\u4f1a\u6709\u5f88\u591a\u6570\u636e\u5206\u6790\u7684\u4e1a\u52a1\uff0c\u5176\u4e2d\u6570\u636e\u91cf\u6700\u5927\u7684\u4e1a\u52a1\uff0c\u5c31\u662fYandex.Metrica\uff0c\u8fd9\u662f\u4e00\u4e2a\u548c\u767e\u5ea6\u7edf\u8ba1\u7c7b\u4f3c\u7684\u7f51\u7ad9\u6570\u636e\u5206\u6790\u670d\u52a1\uff0c\u6570\u636e\u91cf\u4e5f\u4ec5\u6b21\u4e8egoogle analysis\u3002\u81ea\u4eceClickhouse\u5f00\u6e90\u540e\uff0c\u5728\u56fd\u5185\u5916\u7684\u5f88\u591a\u516c\u53f8\u7684\u7ebf\u4e0a\u4e1a\u52a1\u90fd\u5df2\u7ecf\u5f00\u59cb\u4f7f\u7528\u3002"),(0,o.yg)("h3",{id:"\u6982\u8ff0"},"\u6982\u8ff0"),(0,o.yg)("p",null,"Clickhouse\u662f\u6781\u5176\u9002\u5408OLAP\uff08\u8054\u673a\u5206\u6790\u5904\u7406\uff09\u95ee\u9898\u7684\u4e00\u4e2a\u6570\u636e\u5e93\u3002\u8fd9\u7c7b\u95ee\u9898\u6709\u5982\u4e0b\u4e00\u4e9b\u7279\u70b9\uff1a"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"\u8bf7\u6c42\u4ee5\u8bfb\u4e3a\u4e3b\uff0c\u6570\u636e\u6dfb\u52a0\u3001\u66f4\u65b0\u4e00\u822c\u4ee5\u6279\u91cf\u7684\u5f62\u5f0f\u8fdb\u884c\uff1b"),(0,o.yg)("li",{parentName:"ul"},"\u8868\u53ef\u4ee5\u5f88\u5bbd\uff0c\u4f46\u662f\u5b9e\u9645\u67e5\u8be2\u65f6\u53ea\u4f1a\u7528\u5230\u6709\u9650\u7684\u51e0\u5217\uff1b"),(0,o.yg)("li",{parentName:"ul"},"\u5217\u503c\u8f83\u5c0f\uff0c\u4e00\u822c\u662f\u6570\u5b57\u6216\u8005\u77ed\u5b57\u7b26\u4e32;"),(0,o.yg)("li",{parentName:"ul"},"\u67e5\u8be2\u7ed3\u679c\u96c6\u7684\u5927\u5c0f\u663e\u8457\u5c0f\u4e8e\u6e90\u6570\u636e\uff1b"),(0,o.yg)("li",{parentName:"ul"},"\u4e8b\u52a1\u5904\u7406\u9700\u6c42\u8f83\u5f31")))}p.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1746],{5680:(e,t,r)=>{r.d(t,{xA:()=>s,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var c=n.createContext({}),u=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},s=function(e){var t=u(e.components);return n.createElement(c.Provider,{value:t},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,c=e.parentName,s=i(e,["components","mdxType","originalType","parentName"]),d=u(r),y=o,f=d["".concat(c,".").concat(y)]||d[y]||p[y]||a;return r?n.createElement(f,l(l({ref:t},s),{},{components:r})):n.createElement(f,l({ref:t},s))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,l=new Array(a);l[0]=y;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[d]="string"==typeof e?e:o,l[1]=i;for(var u=2;u{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>p,frontMatter:()=>a,metadata:()=>i,toc:()=>u});var n=r(8168),o=(r(6540),r(5680));const a={},l=void 0,i={unversionedId:"study/db/OLAP/ClickHouse",id:"study/db/OLAP/ClickHouse",title:"ClickHouse",description:"Clickhouse\u662fYandex\u5f00\u6e90\u7684\u4e00\u4e2a\u7528\u4e8e\u5b9e\u65f6\u6570\u636e\u5206\u6790\u7684\u6570\u636e\u5e93\uff0c\u4e00\u5f00\u59cb\u5c31\u7528\u5728yandex\u5185\u90e8\u7684\u591a\u4e2a\u6570\u636e\u5206\u6790\u4e1a\u52a1\u4e0a\u3002\u8981\u4ecb\u7ecdclickhouse\uff0c\u8fd8\u662f\u9700\u8981\u5148\u4ecb\u7ecd\u4e00\u4e0byandex\u3002Clickhouse\u4e3a\u4ec0\u4e48\u4f1a\u51fa\u73b0\uff0c\u5176\u5b9e\u548cyandex\u7684\u4e1a\u52a1\u5173\u7cfb\u975e\u5e38\u5927\u3002Yandex\u662f\u4fc4\u7f57\u65af\u6700\u5927\u7684\u641c\u7d22\u5f15\u64ce\uff0c\u4f1a\u6709\u5f88\u591a\u6570\u636e\u5206\u6790\u7684\u4e1a\u52a1\uff0c\u5176\u4e2d\u6570\u636e\u91cf\u6700\u5927\u7684\u4e1a\u52a1\uff0c\u5c31\u662fYandex.Metrica\uff0c\u8fd9\u662f\u4e00\u4e2a\u548c\u767e\u5ea6\u7edf\u8ba1\u7c7b\u4f3c\u7684\u7f51\u7ad9\u6570\u636e\u5206\u6790\u670d\u52a1\uff0c\u6570\u636e\u91cf\u4e5f\u4ec5\u6b21\u4e8egoogle analysis\u3002\u81ea\u4eceClickhouse\u5f00\u6e90\u540e\uff0c\u5728\u56fd\u5185\u5916\u7684\u5f88\u591a\u516c\u53f8\u7684\u7ebf\u4e0a\u4e1a\u52a1\u90fd\u5df2\u7ecf\u5f00\u59cb\u4f7f\u7528\u3002",source:"@site/docs/study/db/OLAP/ClickHouse.md",sourceDirName:"study/db/OLAP",slug:"/study/db/OLAP/ClickHouse",permalink:"/docs/study/db/OLAP/ClickHouse",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u7efc\u5408\u6982\u8ff0",permalink:"/docs/study/db/OLAP/\u7efc\u5408\u6982\u8ff0"},next:{title:"Kylin",permalink:"/docs/study/db/OLAP/Kylin"}},c={},u=[{value:"\u6982\u8ff0",id:"\u6982\u8ff0",level:3}],s={toc:u},d="wrapper";function p(e){let{components:t,...r}=e;return(0,o.yg)(d,(0,n.A)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("p",null,"Clickhouse\u662fYandex\u5f00\u6e90\u7684\u4e00\u4e2a\u7528\u4e8e\u5b9e\u65f6\u6570\u636e\u5206\u6790\u7684\u6570\u636e\u5e93\uff0c\u4e00\u5f00\u59cb\u5c31\u7528\u5728yandex\u5185\u90e8\u7684\u591a\u4e2a\u6570\u636e\u5206\u6790\u4e1a\u52a1\u4e0a\u3002\u8981\u4ecb\u7ecdclickhouse\uff0c\u8fd8\u662f\u9700\u8981\u5148\u4ecb\u7ecd\u4e00\u4e0byandex\u3002Clickhouse\u4e3a\u4ec0\u4e48\u4f1a\u51fa\u73b0\uff0c\u5176\u5b9e\u548cyandex\u7684\u4e1a\u52a1\u5173\u7cfb\u975e\u5e38\u5927\u3002Yandex\u662f\u4fc4\u7f57\u65af\u6700\u5927\u7684\u641c\u7d22\u5f15\u64ce\uff0c\u4f1a\u6709\u5f88\u591a\u6570\u636e\u5206\u6790\u7684\u4e1a\u52a1\uff0c\u5176\u4e2d\u6570\u636e\u91cf\u6700\u5927\u7684\u4e1a\u52a1\uff0c\u5c31\u662fYandex.Metrica\uff0c\u8fd9\u662f\u4e00\u4e2a\u548c\u767e\u5ea6\u7edf\u8ba1\u7c7b\u4f3c\u7684\u7f51\u7ad9\u6570\u636e\u5206\u6790\u670d\u52a1\uff0c\u6570\u636e\u91cf\u4e5f\u4ec5\u6b21\u4e8egoogle analysis\u3002\u81ea\u4eceClickhouse\u5f00\u6e90\u540e\uff0c\u5728\u56fd\u5185\u5916\u7684\u5f88\u591a\u516c\u53f8\u7684\u7ebf\u4e0a\u4e1a\u52a1\u90fd\u5df2\u7ecf\u5f00\u59cb\u4f7f\u7528\u3002"),(0,o.yg)("h3",{id:"\u6982\u8ff0"},"\u6982\u8ff0"),(0,o.yg)("p",null,"Clickhouse\u662f\u6781\u5176\u9002\u5408OLAP\uff08\u8054\u673a\u5206\u6790\u5904\u7406\uff09\u95ee\u9898\u7684\u4e00\u4e2a\u6570\u636e\u5e93\u3002\u8fd9\u7c7b\u95ee\u9898\u6709\u5982\u4e0b\u4e00\u4e9b\u7279\u70b9\uff1a"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"\u8bf7\u6c42\u4ee5\u8bfb\u4e3a\u4e3b\uff0c\u6570\u636e\u6dfb\u52a0\u3001\u66f4\u65b0\u4e00\u822c\u4ee5\u6279\u91cf\u7684\u5f62\u5f0f\u8fdb\u884c\uff1b"),(0,o.yg)("li",{parentName:"ul"},"\u8868\u53ef\u4ee5\u5f88\u5bbd\uff0c\u4f46\u662f\u5b9e\u9645\u67e5\u8be2\u65f6\u53ea\u4f1a\u7528\u5230\u6709\u9650\u7684\u51e0\u5217\uff1b"),(0,o.yg)("li",{parentName:"ul"},"\u5217\u503c\u8f83\u5c0f\uff0c\u4e00\u822c\u662f\u6570\u5b57\u6216\u8005\u77ed\u5b57\u7b26\u4e32;"),(0,o.yg)("li",{parentName:"ul"},"\u67e5\u8be2\u7ed3\u679c\u96c6\u7684\u5927\u5c0f\u663e\u8457\u5c0f\u4e8e\u6e90\u6570\u636e\uff1b"),(0,o.yg)("li",{parentName:"ul"},"\u4e8b\u52a1\u5904\u7406\u9700\u6c42\u8f83\u5f31")))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/62781bcd.ad05db64.js b/assets/js/62781bcd.3eac4696.js similarity index 99% rename from assets/js/62781bcd.ad05db64.js rename to assets/js/62781bcd.3eac4696.js index c143fb765..b26d00917 100644 --- a/assets/js/62781bcd.ad05db64.js +++ b/assets/js/62781bcd.3eac4696.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3806],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>g});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var i=n.createContext({}),c=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},u=function(e){var t=c(e.components);return n.createElement(i.Provider,{value:t},e.children)},y="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,i=e.parentName,u=p(e,["components","mdxType","originalType","parentName"]),y=c(r),m=o,g=y["".concat(i,".").concat(m)]||y[m]||s[m]||a;return r?n.createElement(g,l(l({ref:t},u),{},{components:r})):n.createElement(g,l({ref:t},u))}));function g(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,l=new Array(a);l[0]=m;var p={};for(var i in t)hasOwnProperty.call(t,i)&&(p[i]=t[i]);p.originalType=e,p[y]="string"==typeof e?e:o,l[1]=p;for(var c=2;c{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>l,default:()=>s,frontMatter:()=>a,metadata:()=>p,toc:()=>c});var n=r(8168),o=(r(6540),r(5680));const a={},l=void 0,p={unversionedId:"study/competitive/\u7269\u8054\u7f51\u5e73\u53f0\u5c42\u6982\u8ff0",id:"study/competitive/\u7269\u8054\u7f51\u5e73\u53f0\u5c42\u6982\u8ff0",title:"\u7269\u8054\u7f51\u5e73\u53f0\u5c42\u6982\u8ff0",description:"\u5728\u5927\u4f17\u719f\u77e5\u7684\u7269\u8054\u7f51\u611f\u77e5\u5c42\u3001\u7f51\u7edc\u5c42\u3001\u5e73\u53f0\u5c42\u3001\u5e94\u7528\u5c42\u56db\u5927\u5c42\u6b21\u91cc\uff0c\u5e73\u53f0\u5c42\u5c06\u4f5c\u4e3a\u7269\u8054\u7f51\u4ece\u8bbe\u5907\u8fde\u63a5\u5230\u573a\u666f\u5e94\u7528\u7684\u5173\u952e\u201c\u6865\u6881\u201d\u800c\u53d1\u6325\u4f5c\u7528\u3002",source:"@site/docs/study/competitive/\u7269\u8054\u7f51\u5e73\u53f0\u5c42\u6982\u8ff0.md",sourceDirName:"study/competitive",slug:"/study/competitive/\u7269\u8054\u7f51\u5e73\u53f0\u5c42\u6982\u8ff0",permalink:"/docs/study/competitive/\u7269\u8054\u7f51\u5e73\u53f0\u5c42\u6982\u8ff0",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"ThingsCloud",permalink:"/docs/study/competitive/ThingsCloud"},next:{title:"index",permalink:"/docs/study/system/"}},i={},c=[],u={toc:c},y="wrapper";function s(e){let{components:t,...r}=e;return(0,o.yg)(y,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("p",null,"\u5728\u5927\u4f17\u719f\u77e5\u7684\u7269\u8054\u7f51\u611f\u77e5\u5c42\u3001\u7f51\u7edc\u5c42\u3001\u5e73\u53f0\u5c42\u3001\u5e94\u7528\u5c42\u56db\u5927\u5c42\u6b21\u91cc\uff0c\u5e73\u53f0\u5c42\u5c06\u4f5c\u4e3a\u7269\u8054\u7f51\u4ece\u8bbe\u5907\u8fde\u63a5\u5230\u573a\u666f\u5e94\u7528\u7684\u5173\u952e\u201c\u6865\u6881\u201d\u800c\u53d1\u6325\u4f5c\u7528\u3002"),(0,o.yg)("p",null,"\u7269\u8054\u7f51\u5e73\u53f0\u662f\u4e00\u6b3e\u63d0\u4f9b\u4e30\u5bcc\u529f\u80fd\u7ec4\u5408\u7684\u5546\u4e1a\u8f6f\u4ef6\u4ea7\u54c1\uff0c\u4e3b\u8981\u4f53\u73b0\u5728\uff1a"),(0,o.yg)("ol",null,(0,o.yg)("li",{parentName:"ol"},"\u8d1f\u8d23\u7269\u8054\u7f51\u8bbe\u5907\u7684\u8fde\u63a5\u4e0e\u7ba1\u7406\uff1b"),(0,o.yg)("li",{parentName:"ol"},"\u8d1f\u8d23\u7269\u8054\u7f51\u6570\u636e\u7684\u8bbf\u95ee\u3001\u6444\u53d6\u4e0e\u5b58\u50a8\uff1b"),(0,o.yg)("li",{parentName:"ol"},"\u5bf9\u6570\u636e\u7684\u53ef\u89c6\u5316\u4e0e\u5206\u6790\uff1b"),(0,o.yg)("li",{parentName:"ol"},"\u4f5c\u4e3a\u7269\u8054\u7f51\u5e94\u7528\u7a0b\u5e8f\u5f00\u53d1\u548c\u96c6\u6210\u7684\u5de5\u5177\u3002")),(0,o.yg)("p",null,"\u751a\u81f3\u8fd8\u6709\u89c2\u70b9\u8ba4\u4e3a\uff0c\u7269\u8054\u7f51\u672a\u6765\u4e00\u5b9a\u662f\u5e73\u53f0\u4e3a\u738b\u3002\u5c24\u5176\u968f\u7740\u6570\u636e\u91cf\u5267\u589e\u3001\u7528\u6237\u5bf9\u8ba1\u7b97\u80fd\u529b\u7684\u9700\u6c42\u8d8a\u6765\u8d8a\u5927\uff0c\u5177\u6709\u5f3a\u5927\u63a5\u5165\u4e0e\u8fd0\u7ef4\u7ba1\u7406\u80fd\u529b\u7684\u4e91\u5e73\u53f0\u5c06\u662f\u4f01\u4e1a\u6253\u9020\u54c1\u724c\u7684\u91cd\u8981\u5173\u952e\u3002"),(0,o.yg)("p",null,"\u7269\u8054\u7f51\u5e73\u53f0\u88ab\u8ba4\u4e3a\u662f\u63a8\u52a8\u7269\u8054\u7f51\u5927\u89c4\u6a21\u8fde\u63a5\u7684\u57fa\u7840\u8f6f\u4ef6\uff0c\u662f\u4fc3\u8fdb IoT \u9879\u76ee\u89c4\u6a21\u843d\u5730\u7684\u5173\u952e\u57fa\u7840\u8bbe\u65bd\uff0c\u662f\u5168\u7403\u7269\u8054\u7f51\u4f01\u4e1a\u4e89\u593a\u53d1\u529b\u7684\u6218\u7565\u9ad8\u5730\u3002"),(0,o.yg)("p",null,"\u7269\u8054\u7f51\u5e73\u53f0\u5c5e\u4e8e\u4e91\u8ba1\u7b97\u4e09\u79cd\u670d\u52a1\u6a21\u578b\uff08IaaS\u3001PaaS\u3001SaaS\uff09\u4e2d PaaS \u5c42\u7684\u4e00\u90e8\u5206\uff0c\u8d77\u6e90\u4e8e\u7269\u8054\u7f51\u4e2d\u95f4\u4ef6\u7684\u5f62\u5f0f\uff0c\u5176\u76ee\u7684\u662f\u5728\u786c\u4ef6\u5c42\u548c\u5e94\u7528\u5c42\u4e4b\u95f4\u8d77\u5230\u4e2d\u4ecb\u4f5c\u7528\uff0c\u7ba1\u7406\u4e8c\u8005\u4e4b\u95f4\u7684\u6240\u6709\u4ea4\u4e92\u3002"),(0,o.yg)("p",null,"\u7269\u8054\u7f51\u5e73\u53f0\u4f01\u4e1a\u8f83\u9ad8\u9891\u5730\u63d0\u5230 4 \u5927\u529f\u80fd\uff0c\u5206\u522b\u662f",(0,o.yg)("strong",{parentName:"p"},"\u8fde\u63a5\u7ba1\u7406"),"\u3001",(0,o.yg)("strong",{parentName:"p"},"\u8bbe\u5907\u7ba1\u7406"),"\u3001",(0,o.yg)("strong",{parentName:"p"},"\u5e94\u7528\u5f00\u53d1"),"\u3001",(0,o.yg)("strong",{parentName:"p"},"\u6570\u636e\u5206\u6790"),"\u3002"),(0,o.yg)("p",null,"\u8fde\u63a5\u7ba1\u7406\u662f\u57fa\u7840\u3001\u8bbe\u5907\u7ba1\u7406\u662f\u6838\u5fc3\u3001\u5e94\u7528\u5f00\u53d1\u662f\u4ef7\u503c\u4f53\u73b0\u3001\u6570\u636e\u5206\u6790\u662f\u5e94\u7528\u6f5c\u80fd\u3001\u5b89\u5168\u662f\u91cd\u8981\u4fdd\u969c\u3002"),(0,o.yg)("p",null,"\u4ece\u6839\u672c\u4e0a\u7406\u89e3\uff0c\u7269\u8054\u7f51\u5e73\u53f0\u73a9\u5bb6\u7684",(0,o.yg)("strong",{parentName:"p"},(0,o.yg)("em",{parentName:"strong"},"\u7ecf\u8425\u7b56\u7565")),"\u4e3b\u8981\u53ef\u5206\u4e3a\u4e24\u70b9\uff1a"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"\u4e00\u79cd\u662f\u6a2a\u5411\u7684\uff0c\u4e13\u95e8\u505a\u6cdb\u884c\u4e1a\u7684\u8fde\u63a5\uff1b"),(0,o.yg)("li",{parentName:"ul"},"\u53e6\u4e00\u79cd\u662f\u7eb5\u5411\u7684\uff0c\u6301\u7eed\u5728\u5782\u76f4\u9886\u57df\u6316\u6398\u6df1\u8015\u3002")),(0,o.yg)("p",null,"\u6784\u7b51\u82af\u7aef\u8fb9\u7f51\u4e91\u5168\u6808\u7269\u8054\u7f51\u4ea7\u54c1\u548c\u89e3\u51b3\u65b9\u6848\u3002\u5728\u7f51\u7edc\u4fa7\uff0c\u9664\u4e86\u5927\u5bb6\u6bd4\u8f83\u719f\u6089\u7684 2\u30013\u30014G\u30015G \u5916\uff0c\u534e\u4e3a\u8fd8\u5728\u63a8\u8fdb NB-IoT\u3001eLTE \u7b49\u7269\u8054\u7f51\u7f51\u7edc\u7684\u5efa\u8bbe\uff0c\u4e3a\u4ea7\u4e1a\u9886\u57df\u4e07\u7269\u4e92\u8054\u51c6\u5907\u597d\u7f51\u7edc\u3002"),(0,o.yg)("p",null,"\u8bbe\u5907\u63a5\u5165\u670d\u52a1\u5b9e\u73b0\u591a\uff08\u4ebf\u7ea7\u8054\u63a5\u3001\u767e\u4e07\u5e76\u53d1\uff09\u3001\u5feb\uff08\u5c0f\u65f6\u7ea7\u63a5\u5165\u3001\u5206\u949f\u7ea7\u5b89\u88c5\u90e8\u7f72\uff09\u3001\u597d\uff08\u9ad8\u5b89\u5168\u9ad8\u53ef\u9760\uff09\u3001\u7701\uff08\u4f4e\u529f\u8017\u3001\u4f4e\u6210\u672c\uff09\u7684\u8bbe\u5907\u4e0a\u4e91\u63a5\u5165\uff1b\u6570\u636e\u5206\u6790\u670d\u52a1\u5b9e\u73b0\u5f00\u7bb1\u5373\u7528\u7684\u4e00\u7ad9\u5f0f\u6570\u636e\u5904\u7406 & \u5206\u6790\uff0c\u4e3a\u5f00\u53d1\u8005\u63d0\u4f9b\u7269\u8054\u7f51\u5b9e\u65f6\u5206\u6790\u3001\u65f6\u9700\u5206\u6790\u3001\u79bb\u7ebf\u5206\u6790\uff0c\u5feb\u901f\u6316\u6398\u7269\u8054\u7f51\u6570\u636e\u7684\u4ef7\u503c\u3002"),(0,o.yg)("p",null,"\u7269\u8054\u7f51\u5e73\u53f0\u5c42\u4e3b\u8981\u6709\u4e09\u79cd\u5ba2\u6237\uff1a\u8bbe\u5907\u751f\u4ea7\u5382\u5bb6\u3001\u5de5\u4e1a\u73b0\u573a\uff08\u8bbe\u5907\u7528\u6237\uff09\u3001\u5782\u76f4\u884c\u4e1a\u7269\u8054\u7f51\u89e3\u51b3\u65b9\u6848\u5546\u3002"),(0,o.yg)("p",null,"\u7269\u8054\u7f51\u4e91\u5e73\u53f0\u5904\u4e8e\u7269\u8054\u7f51\u56db\u4e2a\u903b\u8f91\u5c42\uff08\u611f\u77e5\u5c42\u3001\u7f51\u7edc\u5c42\u3001\u5e73\u53f0\u5c42\u3001\u5e94\u7528\u5c42\uff09\u4e2d\u5904\u4e8e\u5e73\u53f0\u5c42\u8fd9\u4e00\u73af\uff0c\u5e73\u53f0\u5c42\u4e8e\u7269\u8054\u7f51\u7684\u4f5c\u7528\u5728\u4e8e\u6536\u96c6\u3001\u5904\u7406\u6570\u636e\u7b49\u3002\u6211\u4eec\u53ef\u6839\u636e\u4e91\u5e73\u53f0\u7684\u529f\u80fd\u5c06\u5176\u5206\u4e3aCMP\u3001DMP\u3001AEP\u548cBAP\u7b49\u56db\u4e2a\u5e73\u53f0\u3002\u5230\u76ee\u524d\u4e3a\u6b62\u8fd8\u6ca1\u6709\u4e00\u5bb6\u516c\u53f8\u53ef\u5728\u4e1a\u52a1\u4e0a\u6db5\u76d6\u56db\u4e2a\u5b50\u5e73\u53f0\uff0c\u6bcf\u4e2a\u516c\u53f8\u6709\u5404\u81ea\u64c5\u957f\u9886\u57df \u548c\u72ec\u7279\u4f18\u52bf\u3002"))}s.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3806],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>g});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var i=n.createContext({}),c=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},u=function(e){var t=c(e.components);return n.createElement(i.Provider,{value:t},e.children)},y="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,i=e.parentName,u=p(e,["components","mdxType","originalType","parentName"]),y=c(r),m=o,g=y["".concat(i,".").concat(m)]||y[m]||s[m]||a;return r?n.createElement(g,l(l({ref:t},u),{},{components:r})):n.createElement(g,l({ref:t},u))}));function g(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,l=new Array(a);l[0]=m;var p={};for(var i in t)hasOwnProperty.call(t,i)&&(p[i]=t[i]);p.originalType=e,p[y]="string"==typeof e?e:o,l[1]=p;for(var c=2;c{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>l,default:()=>s,frontMatter:()=>a,metadata:()=>p,toc:()=>c});var n=r(8168),o=(r(6540),r(5680));const a={},l=void 0,p={unversionedId:"study/competitive/\u7269\u8054\u7f51\u5e73\u53f0\u5c42\u6982\u8ff0",id:"study/competitive/\u7269\u8054\u7f51\u5e73\u53f0\u5c42\u6982\u8ff0",title:"\u7269\u8054\u7f51\u5e73\u53f0\u5c42\u6982\u8ff0",description:"\u5728\u5927\u4f17\u719f\u77e5\u7684\u7269\u8054\u7f51\u611f\u77e5\u5c42\u3001\u7f51\u7edc\u5c42\u3001\u5e73\u53f0\u5c42\u3001\u5e94\u7528\u5c42\u56db\u5927\u5c42\u6b21\u91cc\uff0c\u5e73\u53f0\u5c42\u5c06\u4f5c\u4e3a\u7269\u8054\u7f51\u4ece\u8bbe\u5907\u8fde\u63a5\u5230\u573a\u666f\u5e94\u7528\u7684\u5173\u952e\u201c\u6865\u6881\u201d\u800c\u53d1\u6325\u4f5c\u7528\u3002",source:"@site/docs/study/competitive/\u7269\u8054\u7f51\u5e73\u53f0\u5c42\u6982\u8ff0.md",sourceDirName:"study/competitive",slug:"/study/competitive/\u7269\u8054\u7f51\u5e73\u53f0\u5c42\u6982\u8ff0",permalink:"/docs/study/competitive/\u7269\u8054\u7f51\u5e73\u53f0\u5c42\u6982\u8ff0",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"ThingsCloud",permalink:"/docs/study/competitive/ThingsCloud"},next:{title:"index",permalink:"/docs/study/system/"}},i={},c=[],u={toc:c},y="wrapper";function s(e){let{components:t,...r}=e;return(0,o.yg)(y,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("p",null,"\u5728\u5927\u4f17\u719f\u77e5\u7684\u7269\u8054\u7f51\u611f\u77e5\u5c42\u3001\u7f51\u7edc\u5c42\u3001\u5e73\u53f0\u5c42\u3001\u5e94\u7528\u5c42\u56db\u5927\u5c42\u6b21\u91cc\uff0c\u5e73\u53f0\u5c42\u5c06\u4f5c\u4e3a\u7269\u8054\u7f51\u4ece\u8bbe\u5907\u8fde\u63a5\u5230\u573a\u666f\u5e94\u7528\u7684\u5173\u952e\u201c\u6865\u6881\u201d\u800c\u53d1\u6325\u4f5c\u7528\u3002"),(0,o.yg)("p",null,"\u7269\u8054\u7f51\u5e73\u53f0\u662f\u4e00\u6b3e\u63d0\u4f9b\u4e30\u5bcc\u529f\u80fd\u7ec4\u5408\u7684\u5546\u4e1a\u8f6f\u4ef6\u4ea7\u54c1\uff0c\u4e3b\u8981\u4f53\u73b0\u5728\uff1a"),(0,o.yg)("ol",null,(0,o.yg)("li",{parentName:"ol"},"\u8d1f\u8d23\u7269\u8054\u7f51\u8bbe\u5907\u7684\u8fde\u63a5\u4e0e\u7ba1\u7406\uff1b"),(0,o.yg)("li",{parentName:"ol"},"\u8d1f\u8d23\u7269\u8054\u7f51\u6570\u636e\u7684\u8bbf\u95ee\u3001\u6444\u53d6\u4e0e\u5b58\u50a8\uff1b"),(0,o.yg)("li",{parentName:"ol"},"\u5bf9\u6570\u636e\u7684\u53ef\u89c6\u5316\u4e0e\u5206\u6790\uff1b"),(0,o.yg)("li",{parentName:"ol"},"\u4f5c\u4e3a\u7269\u8054\u7f51\u5e94\u7528\u7a0b\u5e8f\u5f00\u53d1\u548c\u96c6\u6210\u7684\u5de5\u5177\u3002")),(0,o.yg)("p",null,"\u751a\u81f3\u8fd8\u6709\u89c2\u70b9\u8ba4\u4e3a\uff0c\u7269\u8054\u7f51\u672a\u6765\u4e00\u5b9a\u662f\u5e73\u53f0\u4e3a\u738b\u3002\u5c24\u5176\u968f\u7740\u6570\u636e\u91cf\u5267\u589e\u3001\u7528\u6237\u5bf9\u8ba1\u7b97\u80fd\u529b\u7684\u9700\u6c42\u8d8a\u6765\u8d8a\u5927\uff0c\u5177\u6709\u5f3a\u5927\u63a5\u5165\u4e0e\u8fd0\u7ef4\u7ba1\u7406\u80fd\u529b\u7684\u4e91\u5e73\u53f0\u5c06\u662f\u4f01\u4e1a\u6253\u9020\u54c1\u724c\u7684\u91cd\u8981\u5173\u952e\u3002"),(0,o.yg)("p",null,"\u7269\u8054\u7f51\u5e73\u53f0\u88ab\u8ba4\u4e3a\u662f\u63a8\u52a8\u7269\u8054\u7f51\u5927\u89c4\u6a21\u8fde\u63a5\u7684\u57fa\u7840\u8f6f\u4ef6\uff0c\u662f\u4fc3\u8fdb IoT \u9879\u76ee\u89c4\u6a21\u843d\u5730\u7684\u5173\u952e\u57fa\u7840\u8bbe\u65bd\uff0c\u662f\u5168\u7403\u7269\u8054\u7f51\u4f01\u4e1a\u4e89\u593a\u53d1\u529b\u7684\u6218\u7565\u9ad8\u5730\u3002"),(0,o.yg)("p",null,"\u7269\u8054\u7f51\u5e73\u53f0\u5c5e\u4e8e\u4e91\u8ba1\u7b97\u4e09\u79cd\u670d\u52a1\u6a21\u578b\uff08IaaS\u3001PaaS\u3001SaaS\uff09\u4e2d PaaS \u5c42\u7684\u4e00\u90e8\u5206\uff0c\u8d77\u6e90\u4e8e\u7269\u8054\u7f51\u4e2d\u95f4\u4ef6\u7684\u5f62\u5f0f\uff0c\u5176\u76ee\u7684\u662f\u5728\u786c\u4ef6\u5c42\u548c\u5e94\u7528\u5c42\u4e4b\u95f4\u8d77\u5230\u4e2d\u4ecb\u4f5c\u7528\uff0c\u7ba1\u7406\u4e8c\u8005\u4e4b\u95f4\u7684\u6240\u6709\u4ea4\u4e92\u3002"),(0,o.yg)("p",null,"\u7269\u8054\u7f51\u5e73\u53f0\u4f01\u4e1a\u8f83\u9ad8\u9891\u5730\u63d0\u5230 4 \u5927\u529f\u80fd\uff0c\u5206\u522b\u662f",(0,o.yg)("strong",{parentName:"p"},"\u8fde\u63a5\u7ba1\u7406"),"\u3001",(0,o.yg)("strong",{parentName:"p"},"\u8bbe\u5907\u7ba1\u7406"),"\u3001",(0,o.yg)("strong",{parentName:"p"},"\u5e94\u7528\u5f00\u53d1"),"\u3001",(0,o.yg)("strong",{parentName:"p"},"\u6570\u636e\u5206\u6790"),"\u3002"),(0,o.yg)("p",null,"\u8fde\u63a5\u7ba1\u7406\u662f\u57fa\u7840\u3001\u8bbe\u5907\u7ba1\u7406\u662f\u6838\u5fc3\u3001\u5e94\u7528\u5f00\u53d1\u662f\u4ef7\u503c\u4f53\u73b0\u3001\u6570\u636e\u5206\u6790\u662f\u5e94\u7528\u6f5c\u80fd\u3001\u5b89\u5168\u662f\u91cd\u8981\u4fdd\u969c\u3002"),(0,o.yg)("p",null,"\u4ece\u6839\u672c\u4e0a\u7406\u89e3\uff0c\u7269\u8054\u7f51\u5e73\u53f0\u73a9\u5bb6\u7684",(0,o.yg)("strong",{parentName:"p"},(0,o.yg)("em",{parentName:"strong"},"\u7ecf\u8425\u7b56\u7565")),"\u4e3b\u8981\u53ef\u5206\u4e3a\u4e24\u70b9\uff1a"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"\u4e00\u79cd\u662f\u6a2a\u5411\u7684\uff0c\u4e13\u95e8\u505a\u6cdb\u884c\u4e1a\u7684\u8fde\u63a5\uff1b"),(0,o.yg)("li",{parentName:"ul"},"\u53e6\u4e00\u79cd\u662f\u7eb5\u5411\u7684\uff0c\u6301\u7eed\u5728\u5782\u76f4\u9886\u57df\u6316\u6398\u6df1\u8015\u3002")),(0,o.yg)("p",null,"\u6784\u7b51\u82af\u7aef\u8fb9\u7f51\u4e91\u5168\u6808\u7269\u8054\u7f51\u4ea7\u54c1\u548c\u89e3\u51b3\u65b9\u6848\u3002\u5728\u7f51\u7edc\u4fa7\uff0c\u9664\u4e86\u5927\u5bb6\u6bd4\u8f83\u719f\u6089\u7684 2\u30013\u30014G\u30015G \u5916\uff0c\u534e\u4e3a\u8fd8\u5728\u63a8\u8fdb NB-IoT\u3001eLTE \u7b49\u7269\u8054\u7f51\u7f51\u7edc\u7684\u5efa\u8bbe\uff0c\u4e3a\u4ea7\u4e1a\u9886\u57df\u4e07\u7269\u4e92\u8054\u51c6\u5907\u597d\u7f51\u7edc\u3002"),(0,o.yg)("p",null,"\u8bbe\u5907\u63a5\u5165\u670d\u52a1\u5b9e\u73b0\u591a\uff08\u4ebf\u7ea7\u8054\u63a5\u3001\u767e\u4e07\u5e76\u53d1\uff09\u3001\u5feb\uff08\u5c0f\u65f6\u7ea7\u63a5\u5165\u3001\u5206\u949f\u7ea7\u5b89\u88c5\u90e8\u7f72\uff09\u3001\u597d\uff08\u9ad8\u5b89\u5168\u9ad8\u53ef\u9760\uff09\u3001\u7701\uff08\u4f4e\u529f\u8017\u3001\u4f4e\u6210\u672c\uff09\u7684\u8bbe\u5907\u4e0a\u4e91\u63a5\u5165\uff1b\u6570\u636e\u5206\u6790\u670d\u52a1\u5b9e\u73b0\u5f00\u7bb1\u5373\u7528\u7684\u4e00\u7ad9\u5f0f\u6570\u636e\u5904\u7406 & \u5206\u6790\uff0c\u4e3a\u5f00\u53d1\u8005\u63d0\u4f9b\u7269\u8054\u7f51\u5b9e\u65f6\u5206\u6790\u3001\u65f6\u9700\u5206\u6790\u3001\u79bb\u7ebf\u5206\u6790\uff0c\u5feb\u901f\u6316\u6398\u7269\u8054\u7f51\u6570\u636e\u7684\u4ef7\u503c\u3002"),(0,o.yg)("p",null,"\u7269\u8054\u7f51\u5e73\u53f0\u5c42\u4e3b\u8981\u6709\u4e09\u79cd\u5ba2\u6237\uff1a\u8bbe\u5907\u751f\u4ea7\u5382\u5bb6\u3001\u5de5\u4e1a\u73b0\u573a\uff08\u8bbe\u5907\u7528\u6237\uff09\u3001\u5782\u76f4\u884c\u4e1a\u7269\u8054\u7f51\u89e3\u51b3\u65b9\u6848\u5546\u3002"),(0,o.yg)("p",null,"\u7269\u8054\u7f51\u4e91\u5e73\u53f0\u5904\u4e8e\u7269\u8054\u7f51\u56db\u4e2a\u903b\u8f91\u5c42\uff08\u611f\u77e5\u5c42\u3001\u7f51\u7edc\u5c42\u3001\u5e73\u53f0\u5c42\u3001\u5e94\u7528\u5c42\uff09\u4e2d\u5904\u4e8e\u5e73\u53f0\u5c42\u8fd9\u4e00\u73af\uff0c\u5e73\u53f0\u5c42\u4e8e\u7269\u8054\u7f51\u7684\u4f5c\u7528\u5728\u4e8e\u6536\u96c6\u3001\u5904\u7406\u6570\u636e\u7b49\u3002\u6211\u4eec\u53ef\u6839\u636e\u4e91\u5e73\u53f0\u7684\u529f\u80fd\u5c06\u5176\u5206\u4e3aCMP\u3001DMP\u3001AEP\u548cBAP\u7b49\u56db\u4e2a\u5e73\u53f0\u3002\u5230\u76ee\u524d\u4e3a\u6b62\u8fd8\u6ca1\u6709\u4e00\u5bb6\u516c\u53f8\u53ef\u5728\u4e1a\u52a1\u4e0a\u6db5\u76d6\u56db\u4e2a\u5b50\u5e73\u53f0\uff0c\u6bcf\u4e2a\u516c\u53f8\u6709\u5404\u81ea\u64c5\u957f\u9886\u57df \u548c\u72ec\u7279\u4f18\u52bf\u3002"))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/65c56656.628f022e.js b/assets/js/65c56656.432a8c4e.js similarity index 99% rename from assets/js/65c56656.628f022e.js rename to assets/js/65c56656.432a8c4e.js index 6936dc283..5d8dc9513 100644 --- a/assets/js/65c56656.628f022e.js +++ b/assets/js/65c56656.432a8c4e.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7269],{5680:(e,t,n)=>{n.d(t,{xA:()=>c,yg:()=>s});var r=n(6540);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var u=r.createContext({}),p=function(e){var t=r.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},c=function(e){var t=p(e.components);return r.createElement(u.Provider,{value:t},e.children)},y="mdxType",g={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,l=e.originalType,u=e.parentName,c=o(e,["components","mdxType","originalType","parentName"]),y=p(n),m=a,s=y["".concat(u,".").concat(m)]||y[m]||g[m]||l;return n?r.createElement(s,i(i({ref:t},c),{},{components:n})):r.createElement(s,i({ref:t},c))}));function s(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=n.length,i=new Array(l);i[0]=m;var o={};for(var u in t)hasOwnProperty.call(t,u)&&(o[u]=t[u]);o.originalType=e,o[y]="string"==typeof e?e:a,i[1]=o;for(var p=2;p{n.r(t),n.d(t,{assets:()=>u,contentTitle:()=>i,default:()=>g,frontMatter:()=>l,metadata:()=>o,toc:()=>p});var r=n(8168),a=(n(6540),n(5680));const l={sidebar_position:4},i="\u79fb\u52a8\u7aef",o={unversionedId:"xuanxing/fe/\u79fb\u52a8\u7aef",id:"xuanxing/fe/\u79fb\u52a8\u7aef",title:"\u79fb\u52a8\u7aef",description:"\u5728\u7269\u8054\u7f51\u4e91\u5e73\u53f0\u4e0a\uff0c\u79fb\u52a8\u7aef\u65b9\u9762\uff0c\u9996\u9009\u5fae\u4fe1\u5c0f\u7a0b\u5e8f\uff0c\u5982\u679c\u6709\u5916\u8d38\u9700\u6c42\uff0c\u53ef\u4ee5\u589e\u52a0 APP \u548c Mobile WEB\u3002",source:"@site/docs/xuanxing/fe/4-\u79fb\u52a8\u7aef.md",sourceDirName:"xuanxing/fe",slug:"/xuanxing/fe/\u79fb\u52a8\u7aef",permalink:"/docs/xuanxing/fe/\u79fb\u52a8\u7aef",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",sidebarPosition:4,frontMatter:{sidebar_position:4},sidebar:"xuanxingSidebar",previous:{title:"\u7528\u6237\u7aef+\u7ba1\u7406\u7aef",permalink:"/docs/xuanxing/fe/\u7528\u6237\u7aef\u7ba1\u7406\u7aef"},next:{title:"\u7ec4\u6001\u7f16\u8f91\u5668/\u5927\u5c4f\u7f16\u8f91\u5668",permalink:"/docs/xuanxing/fe/\u7ec4\u6001+\u5927\u5c4f\u7f16\u8f91\u5668"}},u={},p=[{value:"\u5fae\u4fe1\u5c0f\u7a0b\u5e8f\u6280\u672f\u9009\u578b",id:"\u5fae\u4fe1\u5c0f\u7a0b\u5e8f\u6280\u672f\u9009\u578b",level:3},{value:"Mobile WEB \u6280\u672f\u9009\u578b",id:"mobile-web-\u6280\u672f\u9009\u578b",level:3},{value:"APP \u6280\u672f\u9009\u578b",id:"app-\u6280\u672f\u9009\u578b",level:3},{value:"\u6700\u7ec8\uff0c\u6280\u672f\u9009\u578b\u4e2a\u4eba\u63a8\u8350\uff1a",id:"\u6700\u7ec8\u6280\u672f\u9009\u578b\u4e2a\u4eba\u63a8\u8350",level:3}],c={toc:p},y="wrapper";function g(e){let{components:t,...n}=e;return(0,a.yg)(y,(0,r.A)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"\u79fb\u52a8\u7aef"},"\u79fb\u52a8\u7aef"),(0,a.yg)("p",null,"\u5728\u7269\u8054\u7f51\u4e91\u5e73\u53f0\u4e0a\uff0c\u79fb\u52a8\u7aef\u65b9\u9762\uff0c\u9996\u9009",(0,a.yg)("strong",{parentName:"p"},"\u5fae\u4fe1\u5c0f\u7a0b\u5e8f"),"\uff0c\u5982\u679c\u6709\u5916\u8d38\u9700\u6c42\uff0c\u53ef\u4ee5\u589e\u52a0 APP \u548c Mobile WEB\u3002"),(0,a.yg)("h3",{id:"\u5fae\u4fe1\u5c0f\u7a0b\u5e8f\u6280\u672f\u9009\u578b"},"\u5fae\u4fe1\u5c0f\u7a0b\u5e8f\u6280\u672f\u9009\u578b"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"Vant"),(0,a.yg)("li",{parentName:"ul"},"uni-app")),(0,a.yg)("h3",{id:"mobile-web-\u6280\u672f\u9009\u578b"},"Mobile WEB \u6280\u672f\u9009\u578b"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"Vant")),(0,a.yg)("h3",{id:"app-\u6280\u672f\u9009\u578b"},"APP \u6280\u672f\u9009\u578b"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u539f\u751f\u5f00\u53d1\uff1a\u6548\u679c\u3001\u4f53\u9a8c\u662f\u6700\u597d\u7684\uff0c\u4f46\u662f\u5f00\u53d1\u6210\u672c\u9ad8\uff0c\u4e14\u65e0\u6cd5\u505a\u5230\u70ed\u66f4\u65b0\uff0c\u4e0d\u8de8\u5e73\u53f0\uff1b"),(0,a.yg)("li",{parentName:"ul"},"H5+\u539f\u751f\uff1a\u8fd9\u5c31\u662f\u5178\u578b\u7684\u6df7\u5408\u5f00\u53d1\uff0c\u7b80\u5355\u529f\u80fd\u4f7f\u7528 H5,\u590d\u6742\u529f\u80fd\u4f7f\u7528\u539f\u751f\uff0c\u53ef\u9009\u7684\u6846\u67b6\u6709\uff1a",(0,a.yg)("ul",{parentName:"li"},(0,a.yg)("li",{parentName:"ul"},"Cordova\u3001Ionic\u3001uni-app"),(0,a.yg)("li",{parentName:"ul"},"H5 \u90e8\u5206\u53ef\u4ee5\u505a\u70ed\u66f4\u65b0"))),(0,a.yg)("li",{parentName:"ul"},"JS \u5f00\u53d1+\u539f\u751f\u6e32\u67d3:",(0,a.yg)("ul",{parentName:"li"},(0,a.yg)("li",{parentName:"ul"},"React Native\u3001Weex\u3001\u5feb\u5e94\u7528\u3001uni-app"),(0,a.yg)("li",{parentName:"ul"},"Weex \u662f\u963f\u91cc\u51fa\u7684"),(0,a.yg)("li",{parentName:"ul"},"React Native \u548c Weex \u7684\u6e32\u67d3/\u6392\u7248\u5f15\u64ce\u662f\u96c6\u6210\u5230\u6846\u67b6\u4e2d\u7684\uff0c\u6bcf\u4e00\u4e2a APP \u90fd\u9700\u8981\u6253\u5305\u4e00\u4efd\uff0c\u5b89\u88c5\u5305\u4f53\u79ef\u8f83\u5927\uff1b\u800c\u5feb\u5e94\u7528\u6e32\u67d3/\u6392\u7248\u5f15\u64ce\u662f\u96c6\u6210\u5230 ROM \u4e2d\u7684\uff0c\u5e94\u7528\u4e2d\u65e0\u9700\u6253\u5305\uff0c\u5b89\u88c5\u5305\u4f53\u79ef\u5c0f\uff0c\u6b63\u56e0\u5982\u6b64\uff0c\u5feb\u5e94\u7528\u624d\u80fd\u5728\u4fdd\u8bc1\u6027\u80fd\u7684\u540c\u65f6\u505a\u5230\u5feb\u901f\u5206\u53d1\u3002"),(0,a.yg)("li",{parentName:"ul"},"uni-app \u652f\u6301 webview+\u90e8\u5206 weex \u53cc\u91cd\u6e32\u67d3"),(0,a.yg)("li",{parentName:"ul"},"\u53ef\u4ee5\u505a\u70ed\u66f4\u65b0\uff0c\u4f46\u662f\u6b64\u79cd\u65b9\u5f0f\u6253\u51fa\u7684\u5305\u5b9e\u5728\u662f\u6709\u70b9\u5927\uff1b"),(0,a.yg)("li",{parentName:"ul"},"uni-app \u652f\u6301 webview+\u90e8\u5206 weex \u53cc\u91cd\u6e32\u67d3"))),(0,a.yg)("li",{parentName:"ul"},"\u81ea\u7ed8 UI+\u539f\u751f\uff1a",(0,a.yg)("ul",{parentName:"li"},(0,a.yg)("li",{parentName:"ul"},"QT for mobile\u3001Flutter"),(0,a.yg)("li",{parentName:"ul"},"Flutter \u6587\u6863\u8fd8\u662f\u4e0d\u9519\u7684")))),(0,a.yg)("h3",{id:"\u6700\u7ec8\u6280\u672f\u9009\u578b\u4e2a\u4eba\u63a8\u8350"},"\u6700\u7ec8\uff0c\u6280\u672f\u9009\u578b\u4e2a\u4eba\u63a8\u8350\uff1a"),(0,a.yg)("p",null,"\u4ee5\u4e0a\u6765\u770b\uff0c"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u8ffd\u6c42\u5feb\u901f\uff0c\u4f7f\u7528 uni-app"),(0,a.yg)("li",{parentName:"ul"},"\u8ffd\u6c42\u53ef\u7ef4\u62a4\uff0c\u5c0f\u7a0b\u5e8f\u4f7f\u7528 Vant/TDesign\uff0cAPP \u9009\u62e9 Flutter")))}g.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7269],{5680:(e,t,n)=>{n.d(t,{xA:()=>c,yg:()=>s});var r=n(6540);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var u=r.createContext({}),p=function(e){var t=r.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},c=function(e){var t=p(e.components);return r.createElement(u.Provider,{value:t},e.children)},y="mdxType",g={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,l=e.originalType,u=e.parentName,c=o(e,["components","mdxType","originalType","parentName"]),y=p(n),m=a,s=y["".concat(u,".").concat(m)]||y[m]||g[m]||l;return n?r.createElement(s,i(i({ref:t},c),{},{components:n})):r.createElement(s,i({ref:t},c))}));function s(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=n.length,i=new Array(l);i[0]=m;var o={};for(var u in t)hasOwnProperty.call(t,u)&&(o[u]=t[u]);o.originalType=e,o[y]="string"==typeof e?e:a,i[1]=o;for(var p=2;p{n.r(t),n.d(t,{assets:()=>u,contentTitle:()=>i,default:()=>g,frontMatter:()=>l,metadata:()=>o,toc:()=>p});var r=n(8168),a=(n(6540),n(5680));const l={sidebar_position:4},i="\u79fb\u52a8\u7aef",o={unversionedId:"xuanxing/fe/\u79fb\u52a8\u7aef",id:"xuanxing/fe/\u79fb\u52a8\u7aef",title:"\u79fb\u52a8\u7aef",description:"\u5728\u7269\u8054\u7f51\u4e91\u5e73\u53f0\u4e0a\uff0c\u79fb\u52a8\u7aef\u65b9\u9762\uff0c\u9996\u9009\u5fae\u4fe1\u5c0f\u7a0b\u5e8f\uff0c\u5982\u679c\u6709\u5916\u8d38\u9700\u6c42\uff0c\u53ef\u4ee5\u589e\u52a0 APP \u548c Mobile WEB\u3002",source:"@site/docs/xuanxing/fe/4-\u79fb\u52a8\u7aef.md",sourceDirName:"xuanxing/fe",slug:"/xuanxing/fe/\u79fb\u52a8\u7aef",permalink:"/docs/xuanxing/fe/\u79fb\u52a8\u7aef",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",sidebarPosition:4,frontMatter:{sidebar_position:4},sidebar:"xuanxingSidebar",previous:{title:"\u7528\u6237\u7aef+\u7ba1\u7406\u7aef",permalink:"/docs/xuanxing/fe/\u7528\u6237\u7aef\u7ba1\u7406\u7aef"},next:{title:"\u7ec4\u6001\u7f16\u8f91\u5668/\u5927\u5c4f\u7f16\u8f91\u5668",permalink:"/docs/xuanxing/fe/\u7ec4\u6001+\u5927\u5c4f\u7f16\u8f91\u5668"}},u={},p=[{value:"\u5fae\u4fe1\u5c0f\u7a0b\u5e8f\u6280\u672f\u9009\u578b",id:"\u5fae\u4fe1\u5c0f\u7a0b\u5e8f\u6280\u672f\u9009\u578b",level:3},{value:"Mobile WEB \u6280\u672f\u9009\u578b",id:"mobile-web-\u6280\u672f\u9009\u578b",level:3},{value:"APP \u6280\u672f\u9009\u578b",id:"app-\u6280\u672f\u9009\u578b",level:3},{value:"\u6700\u7ec8\uff0c\u6280\u672f\u9009\u578b\u4e2a\u4eba\u63a8\u8350\uff1a",id:"\u6700\u7ec8\u6280\u672f\u9009\u578b\u4e2a\u4eba\u63a8\u8350",level:3}],c={toc:p},y="wrapper";function g(e){let{components:t,...n}=e;return(0,a.yg)(y,(0,r.A)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"\u79fb\u52a8\u7aef"},"\u79fb\u52a8\u7aef"),(0,a.yg)("p",null,"\u5728\u7269\u8054\u7f51\u4e91\u5e73\u53f0\u4e0a\uff0c\u79fb\u52a8\u7aef\u65b9\u9762\uff0c\u9996\u9009",(0,a.yg)("strong",{parentName:"p"},"\u5fae\u4fe1\u5c0f\u7a0b\u5e8f"),"\uff0c\u5982\u679c\u6709\u5916\u8d38\u9700\u6c42\uff0c\u53ef\u4ee5\u589e\u52a0 APP \u548c Mobile WEB\u3002"),(0,a.yg)("h3",{id:"\u5fae\u4fe1\u5c0f\u7a0b\u5e8f\u6280\u672f\u9009\u578b"},"\u5fae\u4fe1\u5c0f\u7a0b\u5e8f\u6280\u672f\u9009\u578b"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"Vant"),(0,a.yg)("li",{parentName:"ul"},"uni-app")),(0,a.yg)("h3",{id:"mobile-web-\u6280\u672f\u9009\u578b"},"Mobile WEB \u6280\u672f\u9009\u578b"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"Vant")),(0,a.yg)("h3",{id:"app-\u6280\u672f\u9009\u578b"},"APP \u6280\u672f\u9009\u578b"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u539f\u751f\u5f00\u53d1\uff1a\u6548\u679c\u3001\u4f53\u9a8c\u662f\u6700\u597d\u7684\uff0c\u4f46\u662f\u5f00\u53d1\u6210\u672c\u9ad8\uff0c\u4e14\u65e0\u6cd5\u505a\u5230\u70ed\u66f4\u65b0\uff0c\u4e0d\u8de8\u5e73\u53f0\uff1b"),(0,a.yg)("li",{parentName:"ul"},"H5+\u539f\u751f\uff1a\u8fd9\u5c31\u662f\u5178\u578b\u7684\u6df7\u5408\u5f00\u53d1\uff0c\u7b80\u5355\u529f\u80fd\u4f7f\u7528 H5,\u590d\u6742\u529f\u80fd\u4f7f\u7528\u539f\u751f\uff0c\u53ef\u9009\u7684\u6846\u67b6\u6709\uff1a",(0,a.yg)("ul",{parentName:"li"},(0,a.yg)("li",{parentName:"ul"},"Cordova\u3001Ionic\u3001uni-app"),(0,a.yg)("li",{parentName:"ul"},"H5 \u90e8\u5206\u53ef\u4ee5\u505a\u70ed\u66f4\u65b0"))),(0,a.yg)("li",{parentName:"ul"},"JS \u5f00\u53d1+\u539f\u751f\u6e32\u67d3:",(0,a.yg)("ul",{parentName:"li"},(0,a.yg)("li",{parentName:"ul"},"React Native\u3001Weex\u3001\u5feb\u5e94\u7528\u3001uni-app"),(0,a.yg)("li",{parentName:"ul"},"Weex \u662f\u963f\u91cc\u51fa\u7684"),(0,a.yg)("li",{parentName:"ul"},"React Native \u548c Weex \u7684\u6e32\u67d3/\u6392\u7248\u5f15\u64ce\u662f\u96c6\u6210\u5230\u6846\u67b6\u4e2d\u7684\uff0c\u6bcf\u4e00\u4e2a APP \u90fd\u9700\u8981\u6253\u5305\u4e00\u4efd\uff0c\u5b89\u88c5\u5305\u4f53\u79ef\u8f83\u5927\uff1b\u800c\u5feb\u5e94\u7528\u6e32\u67d3/\u6392\u7248\u5f15\u64ce\u662f\u96c6\u6210\u5230 ROM \u4e2d\u7684\uff0c\u5e94\u7528\u4e2d\u65e0\u9700\u6253\u5305\uff0c\u5b89\u88c5\u5305\u4f53\u79ef\u5c0f\uff0c\u6b63\u56e0\u5982\u6b64\uff0c\u5feb\u5e94\u7528\u624d\u80fd\u5728\u4fdd\u8bc1\u6027\u80fd\u7684\u540c\u65f6\u505a\u5230\u5feb\u901f\u5206\u53d1\u3002"),(0,a.yg)("li",{parentName:"ul"},"uni-app \u652f\u6301 webview+\u90e8\u5206 weex \u53cc\u91cd\u6e32\u67d3"),(0,a.yg)("li",{parentName:"ul"},"\u53ef\u4ee5\u505a\u70ed\u66f4\u65b0\uff0c\u4f46\u662f\u6b64\u79cd\u65b9\u5f0f\u6253\u51fa\u7684\u5305\u5b9e\u5728\u662f\u6709\u70b9\u5927\uff1b"),(0,a.yg)("li",{parentName:"ul"},"uni-app \u652f\u6301 webview+\u90e8\u5206 weex \u53cc\u91cd\u6e32\u67d3"))),(0,a.yg)("li",{parentName:"ul"},"\u81ea\u7ed8 UI+\u539f\u751f\uff1a",(0,a.yg)("ul",{parentName:"li"},(0,a.yg)("li",{parentName:"ul"},"QT for mobile\u3001Flutter"),(0,a.yg)("li",{parentName:"ul"},"Flutter \u6587\u6863\u8fd8\u662f\u4e0d\u9519\u7684")))),(0,a.yg)("h3",{id:"\u6700\u7ec8\u6280\u672f\u9009\u578b\u4e2a\u4eba\u63a8\u8350"},"\u6700\u7ec8\uff0c\u6280\u672f\u9009\u578b\u4e2a\u4eba\u63a8\u8350\uff1a"),(0,a.yg)("p",null,"\u4ee5\u4e0a\u6765\u770b\uff0c"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u8ffd\u6c42\u5feb\u901f\uff0c\u4f7f\u7528 uni-app"),(0,a.yg)("li",{parentName:"ul"},"\u8ffd\u6c42\u53ef\u7ef4\u62a4\uff0c\u5c0f\u7a0b\u5e8f\u4f7f\u7528 Vant/TDesign\uff0cAPP \u9009\u62e9 Flutter")))}g.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/67e91227.4a6a788a.js b/assets/js/67e91227.a96b95d1.js similarity index 98% rename from assets/js/67e91227.4a6a788a.js rename to assets/js/67e91227.a96b95d1.js index 2b5087f82..e4ddcb8b0 100644 --- a/assets/js/67e91227.4a6a788a.js +++ b/assets/js/67e91227.a96b95d1.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9376],{5680:(e,r,t)=>{t.d(r,{xA:()=>m,yg:()=>d});var n=t(6540);function a(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function o(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function l(e){for(var r=1;r=0||(a[t]=e[t]);return a}(e,r);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var c=n.createContext({}),p=function(e){var r=n.useContext(c),t=r;return e&&(t="function"==typeof e?e(r):l(l({},r),e)),t},m=function(e){var r=p(e.components);return n.createElement(c.Provider,{value:r},e.children)},u="mdxType",s={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},y=n.forwardRef((function(e,r){var t=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,m=i(e,["components","mdxType","originalType","parentName"]),u=p(t),y=a,d=u["".concat(c,".").concat(y)]||u[y]||s[y]||o;return t?n.createElement(d,l(l({ref:r},m),{},{components:t})):n.createElement(d,l({ref:r},m))}));function d(e,r){var t=arguments,a=r&&r.mdxType;if("string"==typeof e||a){var o=t.length,l=new Array(o);l[0]=y;var i={};for(var c in r)hasOwnProperty.call(r,c)&&(i[c]=r[c]);i.originalType=e,i[u]="string"==typeof e?e:a,l[1]=i;for(var p=2;p{t.r(r),t.d(r,{assets:()=>c,contentTitle:()=>l,default:()=>s,frontMatter:()=>o,metadata:()=>i,toc:()=>p});var n=t(8168),a=(t(6540),t(5680));const o={},l="make",i={unversionedId:"study/program/C/make",id:"study/program/C/make",title:"make",description:"make \u662f\u4e00\u6761\u8ba1\u7b97\u673a\u6307\u4ee4\uff0c\u662f\u5728\u5b89\u88c5\u6709 GNU Make \u7684\u8ba1\u7b97\u673a\u4e0a\u7684\u53ef\u6267\u884c\u6307\u4ee4\u3002\u8be5\u6307\u4ee4\u662f\u8bfb\u5165\u4e00\u4e2a\u540d\u4e3a makefile \u7684\u6587\u4ef6\uff0c\u7136\u540e\u6267\u884c\u8fd9\u4e2a\u6587\u4ef6\u4e2d\u6307\u5b9a\u7684\u6307\u4ee4\u3002",source:"@site/docs/study/program/C/make.md",sourceDirName:"study/program/C",slug:"/study/program/C/make",permalink:"/docs/study/program/C/make",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"extern-c",permalink:"/docs/study/program/C/extern-c"},next:{title:"pragma",permalink:"/docs/study/program/C/pragma"}},c={},p=[{value:"make \u7684\u4e00\u4e9b\u5e38\u7528\u53c2\u6570",id:"make-\u7684\u4e00\u4e9b\u5e38\u7528\u53c2\u6570",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],m={toc:p},u="wrapper";function s(e){let{components:r,...t}=e;return(0,a.yg)(u,(0,n.A)({},m,t,{components:r,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"make"},"make"),(0,a.yg)("p",null,"make \u662f\u4e00\u6761\u8ba1\u7b97\u673a\u6307\u4ee4\uff0c\u662f\u5728\u5b89\u88c5\u6709 GNU Make \u7684\u8ba1\u7b97\u673a\u4e0a\u7684\u53ef\u6267\u884c\u6307\u4ee4\u3002\u8be5\u6307\u4ee4\u662f\u8bfb\u5165\u4e00\u4e2a\u540d\u4e3a makefile \u7684\u6587\u4ef6\uff0c\u7136\u540e\u6267\u884c\u8fd9\u4e2a\u6587\u4ef6\u4e2d\u6307\u5b9a\u7684\u6307\u4ee4\u3002"),(0,a.yg)("h3",{id:"make-\u7684\u4e00\u4e9b\u5e38\u7528\u53c2\u6570"},"make \u7684\u4e00\u4e9b\u5e38\u7528\u53c2\u6570"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"make \uff1a\u6839\u636e Makefile \u7f16\u8bd1\u6e90\u4ee3\u7801\uff0c\u8fde\u63a5\uff0c\u751f\u6210\u76ee\u6807\u6587\u4ef6\uff0c\u53ef\u6267\u884c\u6587\u4ef6\u3002"),(0,a.yg)("li",{parentName:"ul"},"make install \uff1a\u5b89\u88c5\u7f16\u8bd1\u597d\u7684\u7a0b\u5e8f\u548c\u5e93\uff0c\u5934\u6587\u4ef6\u5230\u7cfb\u7edf\u4e2d,\u4e00\u822c\u4e3a/usr/local/bin \u76ee\u5f55\u3002"),(0,a.yg)("li",{parentName:"ul"},"make clean : \u6e05\u9664\u4e0a\u6b21\u7684 make \u547d\u4ee4\u6240\u4ea7\u751f\u7684 object \u6587\u4ef6\uff08\u540e\u7f00\u4e3a\u201c.o\u201d\u7684\u6587\u4ef6\uff09\u53ca\u53ef\u6267\u884c\u6587\u4ef6\u3002\uff08make \u7684\u53cd\u5411\u64cd\u4f5c\uff09")),(0,a.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://baike.baidu.com/item/make/17067703"},"\u767e\u5ea6\u767e\u79d1-make"))))}s.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9376],{5680:(e,r,t)=>{t.d(r,{xA:()=>m,yg:()=>d});var n=t(6540);function a(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function o(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function l(e){for(var r=1;r=0||(a[t]=e[t]);return a}(e,r);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var c=n.createContext({}),p=function(e){var r=n.useContext(c),t=r;return e&&(t="function"==typeof e?e(r):l(l({},r),e)),t},m=function(e){var r=p(e.components);return n.createElement(c.Provider,{value:r},e.children)},u="mdxType",s={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},y=n.forwardRef((function(e,r){var t=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,m=i(e,["components","mdxType","originalType","parentName"]),u=p(t),y=a,d=u["".concat(c,".").concat(y)]||u[y]||s[y]||o;return t?n.createElement(d,l(l({ref:r},m),{},{components:t})):n.createElement(d,l({ref:r},m))}));function d(e,r){var t=arguments,a=r&&r.mdxType;if("string"==typeof e||a){var o=t.length,l=new Array(o);l[0]=y;var i={};for(var c in r)hasOwnProperty.call(r,c)&&(i[c]=r[c]);i.originalType=e,i[u]="string"==typeof e?e:a,l[1]=i;for(var p=2;p{t.r(r),t.d(r,{assets:()=>c,contentTitle:()=>l,default:()=>s,frontMatter:()=>o,metadata:()=>i,toc:()=>p});var n=t(8168),a=(t(6540),t(5680));const o={},l="make",i={unversionedId:"study/program/C/make",id:"study/program/C/make",title:"make",description:"make \u662f\u4e00\u6761\u8ba1\u7b97\u673a\u6307\u4ee4\uff0c\u662f\u5728\u5b89\u88c5\u6709 GNU Make \u7684\u8ba1\u7b97\u673a\u4e0a\u7684\u53ef\u6267\u884c\u6307\u4ee4\u3002\u8be5\u6307\u4ee4\u662f\u8bfb\u5165\u4e00\u4e2a\u540d\u4e3a makefile \u7684\u6587\u4ef6\uff0c\u7136\u540e\u6267\u884c\u8fd9\u4e2a\u6587\u4ef6\u4e2d\u6307\u5b9a\u7684\u6307\u4ee4\u3002",source:"@site/docs/study/program/C/make.md",sourceDirName:"study/program/C",slug:"/study/program/C/make",permalink:"/docs/study/program/C/make",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"extern-c",permalink:"/docs/study/program/C/extern-c"},next:{title:"pragma",permalink:"/docs/study/program/C/pragma"}},c={},p=[{value:"make \u7684\u4e00\u4e9b\u5e38\u7528\u53c2\u6570",id:"make-\u7684\u4e00\u4e9b\u5e38\u7528\u53c2\u6570",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],m={toc:p},u="wrapper";function s(e){let{components:r,...t}=e;return(0,a.yg)(u,(0,n.A)({},m,t,{components:r,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"make"},"make"),(0,a.yg)("p",null,"make \u662f\u4e00\u6761\u8ba1\u7b97\u673a\u6307\u4ee4\uff0c\u662f\u5728\u5b89\u88c5\u6709 GNU Make \u7684\u8ba1\u7b97\u673a\u4e0a\u7684\u53ef\u6267\u884c\u6307\u4ee4\u3002\u8be5\u6307\u4ee4\u662f\u8bfb\u5165\u4e00\u4e2a\u540d\u4e3a makefile \u7684\u6587\u4ef6\uff0c\u7136\u540e\u6267\u884c\u8fd9\u4e2a\u6587\u4ef6\u4e2d\u6307\u5b9a\u7684\u6307\u4ee4\u3002"),(0,a.yg)("h3",{id:"make-\u7684\u4e00\u4e9b\u5e38\u7528\u53c2\u6570"},"make \u7684\u4e00\u4e9b\u5e38\u7528\u53c2\u6570"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"make \uff1a\u6839\u636e Makefile \u7f16\u8bd1\u6e90\u4ee3\u7801\uff0c\u8fde\u63a5\uff0c\u751f\u6210\u76ee\u6807\u6587\u4ef6\uff0c\u53ef\u6267\u884c\u6587\u4ef6\u3002"),(0,a.yg)("li",{parentName:"ul"},"make install \uff1a\u5b89\u88c5\u7f16\u8bd1\u597d\u7684\u7a0b\u5e8f\u548c\u5e93\uff0c\u5934\u6587\u4ef6\u5230\u7cfb\u7edf\u4e2d,\u4e00\u822c\u4e3a/usr/local/bin \u76ee\u5f55\u3002"),(0,a.yg)("li",{parentName:"ul"},"make clean : \u6e05\u9664\u4e0a\u6b21\u7684 make \u547d\u4ee4\u6240\u4ea7\u751f\u7684 object \u6587\u4ef6\uff08\u540e\u7f00\u4e3a\u201c.o\u201d\u7684\u6587\u4ef6\uff09\u53ca\u53ef\u6267\u884c\u6587\u4ef6\u3002\uff08make \u7684\u53cd\u5411\u64cd\u4f5c\uff09")),(0,a.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://baike.baidu.com/item/make/17067703"},"\u767e\u5ea6\u767e\u79d1-make"))))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/68699a4c.63676184.js b/assets/js/68699a4c.1f17da0a.js similarity index 98% rename from assets/js/68699a4c.63676184.js rename to assets/js/68699a4c.1f17da0a.js index f17c6576b..3004f6100 100644 --- a/assets/js/68699a4c.63676184.js +++ b/assets/js/68699a4c.1f17da0a.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[695],{5680:(e,r,t)=>{t.d(r,{xA:()=>l,yg:()=>y});var n=t(6540);function a(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function o(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function p(e){for(var r=1;r=0||(a[t]=e[t]);return a}(e,r);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var c=n.createContext({}),i=function(e){var r=n.useContext(c),t=r;return e&&(t="function"==typeof e?e(r):p(p({},r),e)),t},l=function(e){var r=i(e.components);return n.createElement(c.Provider,{value:r},e.children)},m="mdxType",u={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},d=n.forwardRef((function(e,r){var t=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,l=s(e,["components","mdxType","originalType","parentName"]),m=i(t),d=a,y=m["".concat(c,".").concat(d)]||m[d]||u[d]||o;return t?n.createElement(y,p(p({ref:r},l),{},{components:t})):n.createElement(y,p({ref:r},l))}));function y(e,r){var t=arguments,a=r&&r.mdxType;if("string"==typeof e||a){var o=t.length,p=new Array(o);p[0]=d;var s={};for(var c in r)hasOwnProperty.call(r,c)&&(s[c]=r[c]);s.originalType=e,s[m]="string"==typeof e?e:a,p[1]=s;for(var i=2;i{t.r(r),t.d(r,{assets:()=>c,contentTitle:()=>p,default:()=>u,frontMatter:()=>o,metadata:()=>s,toc:()=>i});var n=t(8168),a=(t(6540),t(5680));const o={},p=void 0,s={unversionedId:"study/program/JS/npm",id:"study/program/JS/npm",title:"npm",description:"npmjs",source:"@site/docs/study/program/JS/npm.md",sourceDirName:"study/program/JS",slug:"/study/program/JS/npm",permalink:"/docs/study/program/JS/npm",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Vert.x",permalink:"/docs/study/program/JAVA/Vert.x"},next:{title:"npx",permalink:"/docs/study/program/JS/npx"}},c={},i=[{value:"\u5b89\u88c5cnpm (\u56fd\u5185\u6dd8\u5b9d\u955c\u50cf\u6e90),\u4e3b\u8981\u7528\u4e8e\u67d0\u4e9b\u5305\u6216\u547d\u4ee4\u7a0b\u5e8f\u4e0b\u8f7d\u4e0d\u4e0b\u6765\u7684\u60c5\u51b5",id:"\u5b89\u88c5cnpm-\u56fd\u5185\u6dd8\u5b9d\u955c\u50cf\u6e90\u4e3b\u8981\u7528\u4e8e\u67d0\u4e9b\u5305\u6216\u547d\u4ee4\u7a0b\u5e8f\u4e0b\u8f7d\u4e0d\u4e0b\u6765\u7684\u60c5\u51b5",level:4},{value:"node-sass",id:"node-sass",level:3}],l={toc:i},m="wrapper";function u(e){let{components:r,...o}=e;return(0,a.yg)(m,(0,n.A)({},l,o,{components:r,mdxType:"MDXLayout"}),(0,a.yg)("p",null,(0,a.yg)("a",{parentName:"p",href:"https://www.npmjs.com/"},"npmjs")),(0,a.yg)("h4",{id:"\u5b89\u88c5cnpm-\u56fd\u5185\u6dd8\u5b9d\u955c\u50cf\u6e90\u4e3b\u8981\u7528\u4e8e\u67d0\u4e9b\u5305\u6216\u547d\u4ee4\u7a0b\u5e8f\u4e0b\u8f7d\u4e0d\u4e0b\u6765\u7684\u60c5\u51b5"},"\u5b89\u88c5cnpm (\u56fd\u5185\u6dd8\u5b9d\u955c\u50cf\u6e90),\u4e3b\u8981\u7528\u4e8e\u67d0\u4e9b\u5305\u6216\u547d\u4ee4\u7a0b\u5e8f\u4e0b\u8f7d\u4e0d\u4e0b\u6765\u7684\u60c5\u51b5"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},"# \u76f4\u63a5\u6309\u7167cnpm\nnpm install cnpm -g --registry=https://registry.npm.taobao.org\n\n# \u53e6\u4e00\u79cd\u65b9\u5f0f\nnpm install -g mirror-config-china --registry=https://registry.npmmirror.com\nnpm install node-sass\n")),(0,a.yg)("h3",{id:"node-sass"},"node-sass"),(0,a.yg)("p",null,"\u6ce8\u610f\u4e0d\u540c\u7684node\u7248\u672c\uff0c\u8981\u6c42\u7684node-sass\u7248\u672c\u4e0d\u4e00\u6837\uff0c\u5b58\u5728\u4e00\u5b9a\u7684\u517c\u5bb9\u95ee\u9898\uff1a\n",(0,a.yg)("img",{alt:"image.png",src:t(6747).A,width:"948",height:"836"})))}u.isMDXComponent=!0},6747:(e,r,t)=>{t.d(r,{A:()=>n});const n=t.p+"assets/images/image-e92e78d715ae90026be6844331682aa0.png"}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[695],{5680:(e,r,t)=>{t.d(r,{xA:()=>l,yg:()=>y});var n=t(6540);function a(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function o(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function p(e){for(var r=1;r=0||(a[t]=e[t]);return a}(e,r);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var c=n.createContext({}),i=function(e){var r=n.useContext(c),t=r;return e&&(t="function"==typeof e?e(r):p(p({},r),e)),t},l=function(e){var r=i(e.components);return n.createElement(c.Provider,{value:r},e.children)},m="mdxType",u={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},d=n.forwardRef((function(e,r){var t=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,l=s(e,["components","mdxType","originalType","parentName"]),m=i(t),d=a,y=m["".concat(c,".").concat(d)]||m[d]||u[d]||o;return t?n.createElement(y,p(p({ref:r},l),{},{components:t})):n.createElement(y,p({ref:r},l))}));function y(e,r){var t=arguments,a=r&&r.mdxType;if("string"==typeof e||a){var o=t.length,p=new Array(o);p[0]=d;var s={};for(var c in r)hasOwnProperty.call(r,c)&&(s[c]=r[c]);s.originalType=e,s[m]="string"==typeof e?e:a,p[1]=s;for(var i=2;i{t.r(r),t.d(r,{assets:()=>c,contentTitle:()=>p,default:()=>u,frontMatter:()=>o,metadata:()=>s,toc:()=>i});var n=t(8168),a=(t(6540),t(5680));const o={},p=void 0,s={unversionedId:"study/program/JS/npm",id:"study/program/JS/npm",title:"npm",description:"npmjs",source:"@site/docs/study/program/JS/npm.md",sourceDirName:"study/program/JS",slug:"/study/program/JS/npm",permalink:"/docs/study/program/JS/npm",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Vert.x",permalink:"/docs/study/program/JAVA/Vert.x"},next:{title:"npx",permalink:"/docs/study/program/JS/npx"}},c={},i=[{value:"\u5b89\u88c5cnpm (\u56fd\u5185\u6dd8\u5b9d\u955c\u50cf\u6e90),\u4e3b\u8981\u7528\u4e8e\u67d0\u4e9b\u5305\u6216\u547d\u4ee4\u7a0b\u5e8f\u4e0b\u8f7d\u4e0d\u4e0b\u6765\u7684\u60c5\u51b5",id:"\u5b89\u88c5cnpm-\u56fd\u5185\u6dd8\u5b9d\u955c\u50cf\u6e90\u4e3b\u8981\u7528\u4e8e\u67d0\u4e9b\u5305\u6216\u547d\u4ee4\u7a0b\u5e8f\u4e0b\u8f7d\u4e0d\u4e0b\u6765\u7684\u60c5\u51b5",level:4},{value:"node-sass",id:"node-sass",level:3}],l={toc:i},m="wrapper";function u(e){let{components:r,...o}=e;return(0,a.yg)(m,(0,n.A)({},l,o,{components:r,mdxType:"MDXLayout"}),(0,a.yg)("p",null,(0,a.yg)("a",{parentName:"p",href:"https://www.npmjs.com/"},"npmjs")),(0,a.yg)("h4",{id:"\u5b89\u88c5cnpm-\u56fd\u5185\u6dd8\u5b9d\u955c\u50cf\u6e90\u4e3b\u8981\u7528\u4e8e\u67d0\u4e9b\u5305\u6216\u547d\u4ee4\u7a0b\u5e8f\u4e0b\u8f7d\u4e0d\u4e0b\u6765\u7684\u60c5\u51b5"},"\u5b89\u88c5cnpm (\u56fd\u5185\u6dd8\u5b9d\u955c\u50cf\u6e90),\u4e3b\u8981\u7528\u4e8e\u67d0\u4e9b\u5305\u6216\u547d\u4ee4\u7a0b\u5e8f\u4e0b\u8f7d\u4e0d\u4e0b\u6765\u7684\u60c5\u51b5"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},"# \u76f4\u63a5\u6309\u7167cnpm\nnpm install cnpm -g --registry=https://registry.npm.taobao.org\n\n# \u53e6\u4e00\u79cd\u65b9\u5f0f\nnpm install -g mirror-config-china --registry=https://registry.npmmirror.com\nnpm install node-sass\n")),(0,a.yg)("h3",{id:"node-sass"},"node-sass"),(0,a.yg)("p",null,"\u6ce8\u610f\u4e0d\u540c\u7684node\u7248\u672c\uff0c\u8981\u6c42\u7684node-sass\u7248\u672c\u4e0d\u4e00\u6837\uff0c\u5b58\u5728\u4e00\u5b9a\u7684\u517c\u5bb9\u95ee\u9898\uff1a\n",(0,a.yg)("img",{alt:"image.png",src:t(6747).A,width:"948",height:"836"})))}u.isMDXComponent=!0},6747:(e,r,t)=>{t.d(r,{A:()=>n});const n=t.p+"assets/images/image-e92e78d715ae90026be6844331682aa0.png"}}]); \ No newline at end of file diff --git a/assets/js/6b91e1af.2e152451.js b/assets/js/6b91e1af.2650446d.js similarity index 98% rename from assets/js/6b91e1af.2e152451.js rename to assets/js/6b91e1af.2650446d.js index d5c6fd5c8..b3b688e2a 100644 --- a/assets/js/6b91e1af.2e152451.js +++ b/assets/js/6b91e1af.2650446d.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6902],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>f});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function s(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var c=n.createContext({}),i=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):s(s({},t),e)),r},u=function(e){var t=i(e.components);return n.createElement(c.Provider,{value:t},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),d=i(r),y=a,f=d["".concat(c,".").concat(y)]||d[y]||p[y]||o;return r?n.createElement(f,s(s({ref:t},u),{},{components:r})):n.createElement(f,s({ref:t},u))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,s=new Array(o);s[0]=y;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[d]="string"==typeof e?e:a,s[1]=l;for(var i=2;i{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>s,default:()=>p,frontMatter:()=>o,metadata:()=>l,toc:()=>i});var n=r(8168),a=(r(6540),r(5680));const o={},s=void 0,l={unversionedId:"study/db/NoSQL/Cassandra",id:"study/db/NoSQL/Cassandra",title:"Cassandra",description:"\u7b80\u4ecb",source:"@site/docs/study/db/NoSQL/Cassandra.md",sourceDirName:"study/db/NoSQL",slug:"/study/db/NoSQL/Cassandra",permalink:"/docs/study/db/NoSQL/Cassandra",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"TiDB",permalink:"/docs/study/db/NewSQL/TiDB"},next:{title:"Hbase",permalink:"/docs/study/db/NoSQL/Hbase"}},c={},i=[{value:"\u7b80\u4ecb",id:"\u7b80\u4ecb",level:3}],u={toc:i},d="wrapper";function p(e){let{components:t,...r}=e;return(0,a.yg)(d,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"\u7b80\u4ecb"},"\u7b80\u4ecb"),(0,a.yg)("p",null,"Apache Cassandra \u662f\u4e00\u5957\u5f00\u6e90\u5206\u5e03\u5f0f Key-Value \u5b58\u50a8\u7cfb\u7edf\u3002\u5b83\u6700\u521d\u7531 Facebook \u5f00\u53d1\uff0c\u7528\u4e8e\u50a8\u5b58\u7279\u522b\u5927\u7684\u6570\u636e\u3002"),(0,a.yg)("p",null,"\u4e3b\u8981\u7279\u6027\uff1a"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u5206\u5e03\u5f0f"),(0,a.yg)("li",{parentName:"ul"},"\u57fa\u4e8ecolumn\u7684\u7ed3\u6784\u5316"),(0,a.yg)("li",{parentName:"ul"},"\u9ad8\u4f38\u7f29\u6027")),(0,a.yg)("p",null,"Cassandra \u7684\u4e3b\u8981\u7279\u70b9\u5c31\u662f\u5b83\u4e0d\u662f\u4e00\u4e2a\u6570\u636e\u5e93\uff0c\u800c\u662f\u7531\u4e00\u5806\u6570\u636e\u5e93\u8282\u70b9\u5171\u540c\u6784\u6210\u7684\u4e00\u4e2a\u5206\u5e03\u5f0f\u7f51\u7edc\u670d\u52a1\uff0c\u5bf9 Cassandra \u7684\u4e00\u4e2a\u5199\u64cd\u4f5c\uff0c\u4f1a\u88ab\u590d\u5236\u5230\u5176\u4ed6\u8282\u70b9\u4e0a\u53bb\uff0c\u5bf9 Cassandra \u7684\u8bfb\u64cd\u4f5c\uff0c\u4e5f\u4f1a\u88ab\u8def\u7531\u5230\u67d0\u4e2a\u8282\u70b9\u4e0a\u9762\u53bb\u8bfb\u53d6\u3002\u5bf9\u4e8e\u4e00\u4e2a Cassandra \u7fa4\u96c6\u6765\u8bf4\uff0c\u6269\u5c55\u6027\u80fd \u662f\u6bd4\u8f83\u7b80\u5355\u7684\u4e8b\u60c5\uff0c\u53ea\u7ba1\u5728\u7fa4\u96c6\u91cc\u9762\u6dfb\u52a0\u8282\u70b9\u5c31\u53ef\u4ee5\u4e86\u3002"),(0,a.yg)("p",null,"Cassandra \u662f\u4e00\u4e2a\u6df7\u5408\u578b\u7684\u975e\u5173\u7cfb\u7684\u6570\u636e\u5e93\uff0c\u7c7b\u4f3c\u4e8e Google \u7684 BigTable\u3002\u5176\u4e3b\u8981\u529f\u80fd\u6bd4 Dynomite\uff08\u5206\u5e03\u5f0f\u7684 Key-Value \u5b58 \u50a8\u7cfb\u7edf\uff09\u66f4\u4e30\u5bcc\uff0c\u4f46\u652f\u6301\u5ea6\u5374\u4e0d\u5982\u6587\u6863\u5b58\u50a8 MongoDB\uff08\u4ecb\u4e8e\u5173\u7cfb\u6570\u636e\u5e93\u548c\u975e\u5173\u7cfb\u6570\u636e\u5e93\u4e4b\u95f4\u7684\u5f00\u6e90\u4ea7\u54c1\uff0c\u662f\u975e\u5173\u7cfb\u6570\u636e\u5e93\u5f53\u4e2d\u529f\u80fd\u6700\u4e30\u5bcc\uff0c\u6700\u50cf\u5173\u7cfb\u6570\u636e\u5e93 \u7684\u3002\u652f\u6301\u7684\u6570\u636e\u7ed3\u6784\u975e\u5e38\u677e\u6563\uff0c\u662f\u7c7b\u4f3c json \u7684 bjson \u683c\u5f0f\uff0c\u56e0\u6b64\u53ef\u4ee5\u5b58\u50a8\u6bd4\u8f83\u590d\u6742\u7684\u6570\u636e\u7c7b\u578b\u3002\uff09Cassandra \u6700\u521d\u7531 Facebook \u5f00\u53d1\uff0c\u540e\u8f6c\u53d8\u6210\u4e86\u5f00\u6e90\u9879\u76ee\u3002\u5b83\u662f\u4e00\u4e2a\u7f51\u7edc\u793e\u4ea4\u4e91\u8ba1\u7b97\u65b9\u9762\u7406\u60f3\u7684\u6570\u636e\u5e93\u3002\u4ee5 Amazon \u4e13\u6709\u7684\u5b8c\u5168\u5206\u5e03\u5f0f\u7684 Dynamo \u4e3a\u57fa\u7840\uff0c\u7ed3\u5408\u4e86 Google BigTable \u57fa\u4e8e\u5217\u65cf\uff08Column Family\uff09\u7684\u6570\u636e\u6a21\u578b\u3002P2P \u53bb\u4e2d\u5fc3\u5316\u7684\u5b58\u50a8\u3002\u5f88\u591a\u65b9\u9762\u90fd\u53ef\u4ee5\u79f0\u4e4b\u4e3a Dynamo 2.0\u3002"),(0,a.yg)("p",null,(0,a.yg)("a",{parentName:"p",href:"http://www.cassandra.com.cn/"},"\u4e2d\u6587\u5b98\u7f51\u5730\u5740")))}p.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6902],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>f});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function s(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var c=n.createContext({}),i=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):s(s({},t),e)),r},u=function(e){var t=i(e.components);return n.createElement(c.Provider,{value:t},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),d=i(r),y=a,f=d["".concat(c,".").concat(y)]||d[y]||p[y]||o;return r?n.createElement(f,s(s({ref:t},u),{},{components:r})):n.createElement(f,s({ref:t},u))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,s=new Array(o);s[0]=y;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[d]="string"==typeof e?e:a,s[1]=l;for(var i=2;i{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>s,default:()=>p,frontMatter:()=>o,metadata:()=>l,toc:()=>i});var n=r(8168),a=(r(6540),r(5680));const o={},s=void 0,l={unversionedId:"study/db/NoSQL/Cassandra",id:"study/db/NoSQL/Cassandra",title:"Cassandra",description:"\u7b80\u4ecb",source:"@site/docs/study/db/NoSQL/Cassandra.md",sourceDirName:"study/db/NoSQL",slug:"/study/db/NoSQL/Cassandra",permalink:"/docs/study/db/NoSQL/Cassandra",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"TiDB",permalink:"/docs/study/db/NewSQL/TiDB"},next:{title:"Hbase",permalink:"/docs/study/db/NoSQL/Hbase"}},c={},i=[{value:"\u7b80\u4ecb",id:"\u7b80\u4ecb",level:3}],u={toc:i},d="wrapper";function p(e){let{components:t,...r}=e;return(0,a.yg)(d,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"\u7b80\u4ecb"},"\u7b80\u4ecb"),(0,a.yg)("p",null,"Apache Cassandra \u662f\u4e00\u5957\u5f00\u6e90\u5206\u5e03\u5f0f Key-Value \u5b58\u50a8\u7cfb\u7edf\u3002\u5b83\u6700\u521d\u7531 Facebook \u5f00\u53d1\uff0c\u7528\u4e8e\u50a8\u5b58\u7279\u522b\u5927\u7684\u6570\u636e\u3002"),(0,a.yg)("p",null,"\u4e3b\u8981\u7279\u6027\uff1a"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u5206\u5e03\u5f0f"),(0,a.yg)("li",{parentName:"ul"},"\u57fa\u4e8ecolumn\u7684\u7ed3\u6784\u5316"),(0,a.yg)("li",{parentName:"ul"},"\u9ad8\u4f38\u7f29\u6027")),(0,a.yg)("p",null,"Cassandra \u7684\u4e3b\u8981\u7279\u70b9\u5c31\u662f\u5b83\u4e0d\u662f\u4e00\u4e2a\u6570\u636e\u5e93\uff0c\u800c\u662f\u7531\u4e00\u5806\u6570\u636e\u5e93\u8282\u70b9\u5171\u540c\u6784\u6210\u7684\u4e00\u4e2a\u5206\u5e03\u5f0f\u7f51\u7edc\u670d\u52a1\uff0c\u5bf9 Cassandra \u7684\u4e00\u4e2a\u5199\u64cd\u4f5c\uff0c\u4f1a\u88ab\u590d\u5236\u5230\u5176\u4ed6\u8282\u70b9\u4e0a\u53bb\uff0c\u5bf9 Cassandra \u7684\u8bfb\u64cd\u4f5c\uff0c\u4e5f\u4f1a\u88ab\u8def\u7531\u5230\u67d0\u4e2a\u8282\u70b9\u4e0a\u9762\u53bb\u8bfb\u53d6\u3002\u5bf9\u4e8e\u4e00\u4e2a Cassandra \u7fa4\u96c6\u6765\u8bf4\uff0c\u6269\u5c55\u6027\u80fd \u662f\u6bd4\u8f83\u7b80\u5355\u7684\u4e8b\u60c5\uff0c\u53ea\u7ba1\u5728\u7fa4\u96c6\u91cc\u9762\u6dfb\u52a0\u8282\u70b9\u5c31\u53ef\u4ee5\u4e86\u3002"),(0,a.yg)("p",null,"Cassandra \u662f\u4e00\u4e2a\u6df7\u5408\u578b\u7684\u975e\u5173\u7cfb\u7684\u6570\u636e\u5e93\uff0c\u7c7b\u4f3c\u4e8e Google \u7684 BigTable\u3002\u5176\u4e3b\u8981\u529f\u80fd\u6bd4 Dynomite\uff08\u5206\u5e03\u5f0f\u7684 Key-Value \u5b58 \u50a8\u7cfb\u7edf\uff09\u66f4\u4e30\u5bcc\uff0c\u4f46\u652f\u6301\u5ea6\u5374\u4e0d\u5982\u6587\u6863\u5b58\u50a8 MongoDB\uff08\u4ecb\u4e8e\u5173\u7cfb\u6570\u636e\u5e93\u548c\u975e\u5173\u7cfb\u6570\u636e\u5e93\u4e4b\u95f4\u7684\u5f00\u6e90\u4ea7\u54c1\uff0c\u662f\u975e\u5173\u7cfb\u6570\u636e\u5e93\u5f53\u4e2d\u529f\u80fd\u6700\u4e30\u5bcc\uff0c\u6700\u50cf\u5173\u7cfb\u6570\u636e\u5e93 \u7684\u3002\u652f\u6301\u7684\u6570\u636e\u7ed3\u6784\u975e\u5e38\u677e\u6563\uff0c\u662f\u7c7b\u4f3c json \u7684 bjson \u683c\u5f0f\uff0c\u56e0\u6b64\u53ef\u4ee5\u5b58\u50a8\u6bd4\u8f83\u590d\u6742\u7684\u6570\u636e\u7c7b\u578b\u3002\uff09Cassandra \u6700\u521d\u7531 Facebook \u5f00\u53d1\uff0c\u540e\u8f6c\u53d8\u6210\u4e86\u5f00\u6e90\u9879\u76ee\u3002\u5b83\u662f\u4e00\u4e2a\u7f51\u7edc\u793e\u4ea4\u4e91\u8ba1\u7b97\u65b9\u9762\u7406\u60f3\u7684\u6570\u636e\u5e93\u3002\u4ee5 Amazon \u4e13\u6709\u7684\u5b8c\u5168\u5206\u5e03\u5f0f\u7684 Dynamo \u4e3a\u57fa\u7840\uff0c\u7ed3\u5408\u4e86 Google BigTable \u57fa\u4e8e\u5217\u65cf\uff08Column Family\uff09\u7684\u6570\u636e\u6a21\u578b\u3002P2P \u53bb\u4e2d\u5fc3\u5316\u7684\u5b58\u50a8\u3002\u5f88\u591a\u65b9\u9762\u90fd\u53ef\u4ee5\u79f0\u4e4b\u4e3a Dynamo 2.0\u3002"),(0,a.yg)("p",null,(0,a.yg)("a",{parentName:"p",href:"http://www.cassandra.com.cn/"},"\u4e2d\u6587\u5b98\u7f51\u5730\u5740")))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6bfc7002.8fa9343a.js b/assets/js/6bfc7002.2838228e.js similarity index 98% rename from assets/js/6bfc7002.8fa9343a.js rename to assets/js/6bfc7002.2838228e.js index 5b3dac3fa..19cb7d8cc 100644 --- a/assets/js/6bfc7002.8fa9343a.js +++ b/assets/js/6bfc7002.2838228e.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7165],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),p=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},l="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),l=p(r),y=o,f=l["".concat(s,".").concat(y)]||l[y]||d[y]||a;return r?n.createElement(f,i(i({ref:t},u),{},{components:r})):n.createElement(f,i({ref:t},u))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=y;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[l]="string"==typeof e?e:o,i[1]=c;for(var p=2;p{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>p});var n=r(8168),o=(r(6540),r(5680));const a={sidebar_position:1},i="\u6982\u8ff0",c={unversionedId:"study/devops/index",id:"study/devops/index",title:"\u6982\u8ff0",description:"\u8f6f\u4ef6\u5f00\u53d1 + \u7cfb\u7edf\u8fd0\u7ef4",source:"@site/docs/study/devops/index.md",sourceDirName:"study/devops",slug:"/study/devops/",permalink:"/docs/study/devops/",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"studySidebar",previous:{title:"\u8de8\u5e73\u53f0\u5e94\u7528\u7a0b\u5e8f\u5f00\u53d1\u6846\u67b6",permalink:"/docs/study/program/\u8de8\u5e73\u53f0\u5e94\u7528\u7a0b\u5e8f\u5f00\u53d1\u6846\u67b6"},next:{title:"API\u7684\u8bf7\u6c42\u91cf\u5206\u6790",permalink:"/docs/study/devops/API\u7684\u8bf7\u6c42\u91cf\u5206\u6790"}},s={},p=[],u={toc:p},l="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(l,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"\u6982\u8ff0"},"\u6982\u8ff0"),(0,o.yg)("p",null,"\u8f6f\u4ef6\u5f00\u53d1 + \u7cfb\u7edf\u8fd0\u7ef4"),(0,o.yg)("p",null,"\u7ad9\u5728\u5f00\u53d1\u7684\u89d2\u5ea6\uff0c\u4e00\u4e9b\u5e38\u7528\u7684\u8fd0\u7ef4\u624b\u6bb5\u3002"))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7165],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),p=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},l="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),l=p(r),y=o,f=l["".concat(s,".").concat(y)]||l[y]||d[y]||a;return r?n.createElement(f,i(i({ref:t},u),{},{components:r})):n.createElement(f,i({ref:t},u))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=y;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[l]="string"==typeof e?e:o,i[1]=c;for(var p=2;p{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>p});var n=r(8168),o=(r(6540),r(5680));const a={sidebar_position:1},i="\u6982\u8ff0",c={unversionedId:"study/devops/index",id:"study/devops/index",title:"\u6982\u8ff0",description:"\u8f6f\u4ef6\u5f00\u53d1 + \u7cfb\u7edf\u8fd0\u7ef4",source:"@site/docs/study/devops/index.md",sourceDirName:"study/devops",slug:"/study/devops/",permalink:"/docs/study/devops/",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"studySidebar",previous:{title:"\u8de8\u5e73\u53f0\u5e94\u7528\u7a0b\u5e8f\u5f00\u53d1\u6846\u67b6",permalink:"/docs/study/program/\u8de8\u5e73\u53f0\u5e94\u7528\u7a0b\u5e8f\u5f00\u53d1\u6846\u67b6"},next:{title:"API\u7684\u8bf7\u6c42\u91cf\u5206\u6790",permalink:"/docs/study/devops/API\u7684\u8bf7\u6c42\u91cf\u5206\u6790"}},s={},p=[],u={toc:p},l="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(l,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"\u6982\u8ff0"},"\u6982\u8ff0"),(0,o.yg)("p",null,"\u8f6f\u4ef6\u5f00\u53d1 + \u7cfb\u7edf\u8fd0\u7ef4"),(0,o.yg)("p",null,"\u7ad9\u5728\u5f00\u53d1\u7684\u89d2\u5ea6\uff0c\u4e00\u4e9b\u5e38\u7528\u7684\u8fd0\u7ef4\u624b\u6bb5\u3002"))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6c9e9146.57305156.js b/assets/js/6c9e9146.416d5ff8.js similarity index 98% rename from assets/js/6c9e9146.57305156.js rename to assets/js/6c9e9146.416d5ff8.js index 4cc9812ed..65e5810f1 100644 --- a/assets/js/6c9e9146.57305156.js +++ b/assets/js/6c9e9146.416d5ff8.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5464],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),l=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=l(e.components);return n.createElement(s.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),u=l(r),y=o,f=u["".concat(s,".").concat(y)]||u[y]||d[y]||a;return r?n.createElement(f,i(i({ref:t},p),{},{components:r})):n.createElement(f,i({ref:t},p))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=y;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[u]="string"==typeof e?e:o,i[1]=c;for(var l=2;l{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>l});var n=r(8168),o=(r(6540),r(5680));const a={},i=void 0,c={unversionedId:"study/db/\u65f6\u5e8f\u6570\u636e\u5e93/KairosDB",id:"study/db/\u65f6\u5e8f\u6570\u636e\u5e93/KairosDB",title:"KairosDB",description:"\u57fa\u672c\u4fe1\u606f",source:"@site/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/KairosDB.md",sourceDirName:"study/db/\u65f6\u5e8f\u6570\u636e\u5e93",slug:"/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/KairosDB",permalink:"/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/KairosDB",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Druid",permalink:"/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/Druid"},next:{title:"OpenTSDB",permalink:"/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/OpenTSDB"}},s={},l=[],p={toc:l},u="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(u,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("p",null,(0,o.yg)("strong",{parentName:"p"},"\u57fa\u672c\u4fe1\u606f")),(0,o.yg)("ol",null,(0,o.yg)("li",{parentName:"ol"},"\u7f16\u7a0b\u8bed\u8a00\uff1aJava"),(0,o.yg)("li",{parentName:"ol"},"\u5f00\u6e90\uff1a\u662f\uff0c\u4ed6\u662fOpenTSDB\u7684fork\uff0c\u4e0d\u8fc7\u5b58\u50a8\u7cfb\u7edf\u7528\u7684\u662fCassandra"),(0,o.yg)("li",{parentName:"ol"},"\u5b58\u50a8\u65b9\u6848\uff1aCassandra\uff0cCassandra \u662f\u4e00\u4e2a\u6bd4\u8f83\u6d41\u884c\u7684NoSQL\u6570\u636e\u5e93\uff0c\u5f88\u591a\u5f00\u6e90\u8f6f\u4ef6\u57fa\u4e8e\u6b64\u6570\u636e\u5e93\u3002"),(0,o.yg)("li",{parentName:"ol"},"\u63a5\u53e3\uff1aRestful API")))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5464],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),l=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=l(e.components);return n.createElement(s.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),u=l(r),y=o,f=u["".concat(s,".").concat(y)]||u[y]||d[y]||a;return r?n.createElement(f,i(i({ref:t},p),{},{components:r})):n.createElement(f,i({ref:t},p))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=y;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[u]="string"==typeof e?e:o,i[1]=c;for(var l=2;l{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>l});var n=r(8168),o=(r(6540),r(5680));const a={},i=void 0,c={unversionedId:"study/db/\u65f6\u5e8f\u6570\u636e\u5e93/KairosDB",id:"study/db/\u65f6\u5e8f\u6570\u636e\u5e93/KairosDB",title:"KairosDB",description:"\u57fa\u672c\u4fe1\u606f",source:"@site/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/KairosDB.md",sourceDirName:"study/db/\u65f6\u5e8f\u6570\u636e\u5e93",slug:"/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/KairosDB",permalink:"/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/KairosDB",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Druid",permalink:"/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/Druid"},next:{title:"OpenTSDB",permalink:"/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/OpenTSDB"}},s={},l=[],p={toc:l},u="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(u,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("p",null,(0,o.yg)("strong",{parentName:"p"},"\u57fa\u672c\u4fe1\u606f")),(0,o.yg)("ol",null,(0,o.yg)("li",{parentName:"ol"},"\u7f16\u7a0b\u8bed\u8a00\uff1aJava"),(0,o.yg)("li",{parentName:"ol"},"\u5f00\u6e90\uff1a\u662f\uff0c\u4ed6\u662fOpenTSDB\u7684fork\uff0c\u4e0d\u8fc7\u5b58\u50a8\u7cfb\u7edf\u7528\u7684\u662fCassandra"),(0,o.yg)("li",{parentName:"ol"},"\u5b58\u50a8\u65b9\u6848\uff1aCassandra\uff0cCassandra \u662f\u4e00\u4e2a\u6bd4\u8f83\u6d41\u884c\u7684NoSQL\u6570\u636e\u5e93\uff0c\u5f88\u591a\u5f00\u6e90\u8f6f\u4ef6\u57fa\u4e8e\u6b64\u6570\u636e\u5e93\u3002"),(0,o.yg)("li",{parentName:"ol"},"\u63a5\u53e3\uff1aRestful API")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6cce85b2.8cdae565.js b/assets/js/6cce85b2.3fd87235.js similarity index 98% rename from assets/js/6cce85b2.8cdae565.js rename to assets/js/6cce85b2.3fd87235.js index b43eb2676..ff912ba1e 100644 --- a/assets/js/6cce85b2.8cdae565.js +++ b/assets/js/6cce85b2.3fd87235.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2039],{5680:(e,r,t)=>{t.d(r,{xA:()=>l,yg:()=>y});var n=t(6540);function o(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function a(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function i(e){for(var r=1;r=0||(o[t]=e[t]);return o}(e,r);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var c=n.createContext({}),p=function(e){var r=n.useContext(c),t=r;return e&&(t="function"==typeof e?e(r):i(i({},r),e)),t},l=function(e){var r=p(e.components);return n.createElement(c.Provider,{value:r},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},m=n.forwardRef((function(e,r){var t=e.components,o=e.mdxType,a=e.originalType,c=e.parentName,l=u(e,["components","mdxType","originalType","parentName"]),s=p(t),m=o,y=s["".concat(c,".").concat(m)]||s[m]||d[m]||a;return t?n.createElement(y,i(i({ref:r},l),{},{components:t})):n.createElement(y,i({ref:r},l))}));function y(e,r){var t=arguments,o=r&&r.mdxType;if("string"==typeof e||o){var a=t.length,i=new Array(a);i[0]=m;var u={};for(var c in r)hasOwnProperty.call(r,c)&&(u[c]=r[c]);u.originalType=e,u[s]="string"==typeof e?e:o,i[1]=u;for(var p=2;p{t.r(r),t.d(r,{assets:()=>c,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>u,toc:()=>p});var n=t(8168),o=(t(6540),t(5680));const a={},i=void 0,u={unversionedId:"study/program/Lua/index",id:"study/program/Lua/index",title:"index",description:"\u5b66\u4e60\u8d44\u6599",source:"@site/docs/study/program/Lua/index.md",sourceDirName:"study/program/Lua",slug:"/study/program/Lua/",permalink:"/docs/study/program/Lua/",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"nrm",permalink:"/docs/study/program/JS/nrm"},next:{title:"Rust",permalink:"/docs/study/program/Rust/"}},c={},p=[{value:"\u5b66\u4e60\u8d44\u6599",id:"\u5b66\u4e60\u8d44\u6599",level:3}],l={toc:p},s="wrapper";function d(e){let{components:r,...t}=e;return(0,o.yg)(s,(0,n.A)({},l,t,{components:r,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"\u5b66\u4e60\u8d44\u6599"},"\u5b66\u4e60\u8d44\u6599"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://www.junmajinlong.com/lua/index/"},"Lua \u7b14\u8bb0\u7cfb\u5217"))))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2039],{5680:(e,r,t)=>{t.d(r,{xA:()=>l,yg:()=>y});var n=t(6540);function o(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function a(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function i(e){for(var r=1;r=0||(o[t]=e[t]);return o}(e,r);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var c=n.createContext({}),p=function(e){var r=n.useContext(c),t=r;return e&&(t="function"==typeof e?e(r):i(i({},r),e)),t},l=function(e){var r=p(e.components);return n.createElement(c.Provider,{value:r},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},m=n.forwardRef((function(e,r){var t=e.components,o=e.mdxType,a=e.originalType,c=e.parentName,l=u(e,["components","mdxType","originalType","parentName"]),s=p(t),m=o,y=s["".concat(c,".").concat(m)]||s[m]||d[m]||a;return t?n.createElement(y,i(i({ref:r},l),{},{components:t})):n.createElement(y,i({ref:r},l))}));function y(e,r){var t=arguments,o=r&&r.mdxType;if("string"==typeof e||o){var a=t.length,i=new Array(a);i[0]=m;var u={};for(var c in r)hasOwnProperty.call(r,c)&&(u[c]=r[c]);u.originalType=e,u[s]="string"==typeof e?e:o,i[1]=u;for(var p=2;p{t.r(r),t.d(r,{assets:()=>c,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>u,toc:()=>p});var n=t(8168),o=(t(6540),t(5680));const a={},i=void 0,u={unversionedId:"study/program/Lua/index",id:"study/program/Lua/index",title:"index",description:"\u5b66\u4e60\u8d44\u6599",source:"@site/docs/study/program/Lua/index.md",sourceDirName:"study/program/Lua",slug:"/study/program/Lua/",permalink:"/docs/study/program/Lua/",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"nrm",permalink:"/docs/study/program/JS/nrm"},next:{title:"Rust",permalink:"/docs/study/program/Rust/"}},c={},p=[{value:"\u5b66\u4e60\u8d44\u6599",id:"\u5b66\u4e60\u8d44\u6599",level:3}],l={toc:p},s="wrapper";function d(e){let{components:r,...t}=e;return(0,o.yg)(s,(0,n.A)({},l,t,{components:r,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"\u5b66\u4e60\u8d44\u6599"},"\u5b66\u4e60\u8d44\u6599"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://www.junmajinlong.com/lua/index/"},"Lua \u7b14\u8bb0\u7cfb\u5217"))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/73162314.d84404d8.js b/assets/js/73162314.db1c2925.js similarity index 99% rename from assets/js/73162314.d84404d8.js rename to assets/js/73162314.db1c2925.js index f6d316f46..b97d6fa15 100644 --- a/assets/js/73162314.d84404d8.js +++ b/assets/js/73162314.db1c2925.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6898],{5680:(e,n,l)=>{l.d(n,{xA:()=>y,yg:()=>g});var a=l(6540);function t(e,n,l){return n in e?Object.defineProperty(e,n,{value:l,enumerable:!0,configurable:!0,writable:!0}):e[n]=l,e}function r(e,n){var l=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),l.push.apply(l,a)}return l}function o(e){for(var n=1;n=0||(t[l]=e[l]);return t}(e,n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,l)&&(t[l]=e[l])}return t}var s=a.createContext({}),u=function(e){var n=a.useContext(s),l=n;return e&&(l="function"==typeof e?e(n):o(o({},n),e)),l},y=function(e){var n=u(e.components);return a.createElement(s.Provider,{value:n},e.children)},c="mdxType",d={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},_=a.forwardRef((function(e,n){var l=e.components,t=e.mdxType,r=e.originalType,s=e.parentName,y=i(e,["components","mdxType","originalType","parentName"]),c=u(l),_=t,g=c["".concat(s,".").concat(_)]||c[_]||d[_]||r;return l?a.createElement(g,o(o({ref:n},y),{},{components:l})):a.createElement(g,o({ref:n},y))}));function g(e,n){var l=arguments,t=n&&n.mdxType;if("string"==typeof e||t){var r=l.length,o=new Array(r);o[0]=_;var i={};for(var s in n)hasOwnProperty.call(n,s)&&(i[s]=n[s]);i.originalType=e,i[c]="string"==typeof e?e:t,o[1]=i;for(var u=2;u{l.r(n),l.d(n,{assets:()=>s,contentTitle:()=>o,default:()=>d,frontMatter:()=>r,metadata:()=>i,toc:()=>u});var a=l(8168),t=(l(6540),l(5680));const r={},o=void 0,i={unversionedId:"study/db/SQL/MySQL",id:"study/db/SQL/MySQL",title:"MySQL",description:"\u7248\u672c\u9009\u62e9",source:"@site/docs/study/db/SQL/MySQL.md",sourceDirName:"study/db/SQL",slug:"/study/db/SQL/MySQL",permalink:"/docs/study/db/SQL/MySQL",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"MySQL \u7b14\u8bb0",permalink:"/docs/study/db/SQL/MySQL-\u7b14\u8bb0"},next:{title:"PostgreSQL",permalink:"/docs/study/db/SQL/PostgreSQL"}},s={},u=[{value:"\u7248\u672c\u9009\u62e9",id:"\u7248\u672c\u9009\u62e9",level:3},{value:"\u4fee\u6539\u65f6\u533a",id:"\u4fee\u6539\u65f6\u533a",level:3},{value:"\u521b\u5efa\u7528\u6237\u5e76\u6388\u6743",id:"\u521b\u5efa\u7528\u6237\u5e76\u6388\u6743",level:3},{value:"\u5185\u5b58\u5206\u914d",id:"\u5185\u5b58\u5206\u914d",level:3},{value:"\u5171\u4eab\u5185\u5b58",id:"\u5171\u4eab\u5185\u5b58",level:4},{value:"Session \u79c1\u6709\u5185\u5b58",id:"session-\u79c1\u6709\u5185\u5b58",level:4},{value:"\u5982\u4f55\u8bbe\u7f6e",id:"\u5982\u4f55\u8bbe\u7f6e",level:4},{value:"\u67e5\u8be2\u4f18\u5316",id:"\u67e5\u8be2\u4f18\u5316",level:3},{value:"\u5197\u4f59\u7d22\u5f15",id:"\u5197\u4f59\u7d22\u5f15",level:3},{value:"\u5b58\u50a8\u5f15\u64ce",id:"\u5b58\u50a8\u5f15\u64ce",level:3},{value:"MyISAM\u548cInnoDB\u533a\u522b",id:"myisam\u548cinnodb\u533a\u522b",level:3},{value:"\u4e50\u89c2\u9501\u4e0e\u60b2\u89c2\u9501\u7684\u533a\u522b",id:"\u4e50\u89c2\u9501\u4e0e\u60b2\u89c2\u9501\u7684\u533a\u522b",level:3},{value:"\u60b2\u89c2\u9501",id:"\u60b2\u89c2\u9501",level:4},{value:"\u4e50\u89c2\u9501",id:"\u4e50\u89c2\u9501",level:4},{value:"\u4e24\u79cd\u9501\u7684\u4f7f\u7528\u573a\u666f",id:"\u4e24\u79cd\u9501\u7684\u4f7f\u7528\u573a\u666f",level:4},{value:"\u65e5\u5fd7\u76f8\u5173/Binlog\u7b49",id:"\u65e5\u5fd7\u76f8\u5173binlog\u7b49",level:3},{value:"Binlog\u5f55\u5165\u683c\u5f0f",id:"binlog\u5f55\u5165\u683c\u5f0f",level:4},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:4},{value:"\u5360\u7528\u78c1\u76d8\u5927\u5c0f/\u6570\u636e\u5927\u5c0f/\u7d22\u5f15\u5927\u5c0f",id:"\u5360\u7528\u78c1\u76d8\u5927\u5c0f\u6570\u636e\u5927\u5c0f\u7d22\u5f15\u5927\u5c0f",level:3},{value:"\u4f18\u5316",id:"\u4f18\u5316",level:3}],y={toc:u},c="wrapper";function d(e){let{components:n,...l}=e;return(0,t.yg)(c,(0,a.A)({},y,l,{components:n,mdxType:"MDXLayout"}),(0,t.yg)("h3",{id:"\u7248\u672c\u9009\u62e9"},"\u7248\u672c\u9009\u62e9"),(0,t.yg)("p",null,"\u5f53\u524d\u6bd4\u8f83\u7a33\u5b9a\u7248\u672c\u662f5.6\u30015.7\u548c8.0\uff0c\u5982\u679c\u662f\u65b0\u9879\u76ee\u5f53\u7136\u662f\u75288.0\uff1b6.0\u5c31\u662f\u4e2a\u5e9f\u5f03\u7248\u672c\uff0c7.x\u662fNDB Cluster\u7248\uff1b"),(0,t.yg)("p",null,"mysql8.0\u7684\u4e3b\u8981\u65b0\u7279\u6027\uff1a"),(0,t.yg)("ol",null,(0,t.yg)("li",{parentName:"ol"},"hash join\uff1b")),(0,t.yg)("h3",{id:"\u4fee\u6539\u65f6\u533a"},"\u4fee\u6539\u65f6\u533a"),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-shell"},"docker exec -it mysql02 bash\ncd /etc/mysql/mysql.conf.d\necho \"default-time_zone = '+8:00'\" >> mysqld.cnf\nexit\ndocker restart mysql02\n")),(0,t.yg)("h3",{id:"\u521b\u5efa\u7528\u6237\u5e76\u6388\u6743"},"\u521b\u5efa\u7528\u6237\u5e76\u6388\u6743"),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-shell"},"-- \u521b\u5efa\u7528\u6237\ncreate user 'xx'@'%' identified by 'xx';\n-- \u6388\u6743\u67d0\u4e2a\u8868\u7684\u67e5\u8be2\u548c\u589e\u52a0\u6743\u9650\ngrant SELECT,INSERT on newcloud.elk_user_func_flow_for_user_op_for_res to 'xx'@'%';\n-- \u5220\u9664\u7528\u6237\ndrop user 'xx'@'%';\n-- \u67e5\u770b\u67d0\u4e2a\u7528\u6237\u7684\u6388\u6743\u4fe1\u606f\nshow grants for 'cloudExtend'@'%'; \n--\nflush privileges;\n")),(0,t.yg)("h3",{id:"\u5185\u5b58\u5206\u914d"},"\u5185\u5b58\u5206\u914d"),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-sql"},"-- \u67e5\u8be2\u5171\u4eab\u5185\u5b58\u4f7f\u7528\u60c5\u51b5 \u5355\u4f4d\u662fByte\nshow variables where variable_name in (\n'innodb_buffer_pool_size','innodb_log_buffer_size','innodb_additional_mem_pool_size','key_buffer_size','query_cache_size'\n);\n-- InnoDB \u7f13\u51b2\u6c60\u5212\u5206\u4e3a\u7684\u533a\u57df\u6570\nshow variables like 'innodb_buffer_pool_instances'\n-- \u67e5\u8be2session\u79c1\u6709\u5185\u6d4b\u4f7f\u7528\u60c5\u51b5 \u5355\u4f4d\u662fByte\nshow variables where variable_name in (\n'read_buffer_size','read_rnd_buffer_size','sort_buffer_size','join_buffer_size','binlog_cache_size','tmp_table_size'\n);\n")),(0,t.yg)("p",null,"MySQL \u7684\u5185\u5b58\u5927\u4f53\u53ef\u4ee5\u5206\u4e3a\u5171\u4eab\u5185\u5b58\u548c session \u79c1\u6709\u5185\u5b58\u4e24\u90e8\u5206\uff0c\u4e0b\u9762\u5c06\u8be6\u7ec6\u4ecb\u7ecd\u5404\u90e8\u5206\u7684\u6784\u6210\u3002"),(0,t.yg)("h4",{id:"\u5171\u4eab\u5185\u5b58"},"\u5171\u4eab\u5185\u5b58"),(0,t.yg)("p",null,"\u53c2\u6570\u8bf4\u660e\uff1a"),(0,t.yg)("ul",null,(0,t.yg)("li",{parentName:"ul"},"innodb_buffer_pool\n\u8be5\u90e8\u5206\u7f13\u5b58\u662f Innodb \u5f15\u64ce\u6700\u91cd\u8981\u7684\u7f13\u5b58\u533a\u57df\uff0c\u662f\u901a\u8fc7\u5185\u5b58\u6765\u5f25\u8865\u7269\u7406\u6570\u636e\u6587\u4ef6\u7684\u91cd\u8981\u624b\u6bb5\u3002\u5176\u4e2d\u4e3b\u8981\u5305\u542b\u6570\u636e\u9875\u3001\u7d22\u5f15\u9875\u3001undo \u9875\u3001insert buffer\u3001\u81ea\u9002\u5e94\u54c8\u5e0c\u7d22\u5f15\u3001\u9501\u4fe1\u606f\u4ee5\u53ca\u6570\u636e\u5b57\u5178\u7b49\u4fe1\u606f\u3002\u5728\u8fdb\u884c SQL \u8bfb\u548c\u5199\u7684\u64cd\u4f5c\u65f6\uff0c\u9996\u5148\u5e76\u4e0d\u662f\u5bf9\u7269\u7406\u6570\u636e\u6587\u4ef6\u64cd\u4f5c\uff0c\u800c\u662f\u5148\u5bf9 buffer_pool \u8fdb\u884c\u64cd\u4f5c\uff0c\u7136\u540e\u518d\u901a\u8fc7 checkpoint \u7b49\u673a\u5236\u5199\u56de\u6570\u636e\u6587\u4ef6\u3002\u8be5\u7a7a\u95f4\u7684\u4f18\u70b9\u662f\u53ef\u4ee5\u63d0\u5347\u6570\u636e\u5e93\u7684\u6027\u80fd\u3001\u52a0\u5feb SQL \u8fd0\u884c\u901f\u5ea6\uff0c\u7f3a\u70b9\u662f\u6545\u969c\u6062\u590d\u901f\u5ea6\u8f83\u6162\u3002"),(0,t.yg)("li",{parentName:"ul"},"innodb_log_buffer\n\u8be5\u90e8\u5206\u4e3b\u8981\u5b58\u653e redo log \u7684\u4fe1\u606f\uff0c\u5728 RDS \u4e0a\u4f1a\u8bbe\u7f6e 1 M \u7684\u5927\u5c0f\u3002InnoDB \u4f1a\u9996\u5148\u5c06 redo log \u5199\u5728\u8fd9\u91cc\uff0c\u7136\u540e\u6309\u7167\u4e00\u5b9a\u9891\u7387\u5c06\u5176\u5237\u65b0\u56de\u91cd\u505a\u65e5\u5fd7\u6587\u4ef6\u4e2d\u3002\u8be5\u7a7a\u95f4\u4e0d\u9700\u8981\u592a\u5927\uff0c\u56e0\u4e3a\u4e00\u822c\u60c5\u51b5\u4e0b\u8be5\u90e8\u5206\u7f13\u5b58\u4f1a\u4ee5\u8f83\u5feb\u9891\u7387\u5237\u65b0\u81f3 redo log\uff08Master Thread \u4f1a\u6bcf\u79d2\u5237\u65b0\u3001\u4e8b\u52a1\u63d0\u4ea4\u65f6\u4f1a\u5237\u65b0\u3001\u5176\u7a7a\u95f4\u5c11\u4e8e 1/2 \u65f6\u540c\u6837\u4f1a\u5237\u65b0\uff09\u3002"),(0,t.yg)("li",{parentName:"ul"},"innodb_additional_mem_pool\n\u8be5\u90e8\u5206\u4e3b\u8981\u5b58\u653e InnoDB \u5185\u7684\u4e00\u4e9b\u6570\u636e\u7ed3\u6784\uff0c\u5728 RDS \u4e2d\u7edf\u4e00\u8bbe\u7f6e\u4e3a 2 M\u3002\u901a\u5e38\u662f\u5728 buffer_pool \u4e2d\u7533\u8bf7\u5185\u5b58\u7684\u65f6\u5019\u8fd8\u9700\u8981\u5728\u989d\u5916\u5185\u5b58\u4e2d\u7533\u8bf7\u7a7a\u95f4\u5b58\u50a8\u8be5\u5bf9\u8c61\u7684\u7ed3\u6784\u4fe1\u606f\u3002\u8be5\u5927\u5c0f\u4e3b\u8981\u4e0e\u8868\u6570\u91cf\u6709\u5173\uff0c\u8868\u6570\u91cf\u8d8a\u5927\u9700\u8981\u66f4\u5927\u7684\u7a7a\u95f4\u3002"),(0,t.yg)("li",{parentName:"ul"},"key_buffer\n\u8be5\u90e8\u5206\u662f MyISAM \u8868\u7684\u91cd\u8981\u7f13\u5b58\u533a\u57df\uff0c\u6240\u6709\u5b9e\u4f8b\u7edf\u4e00\u4e3a 16 M\u3002\u8be5\u90e8\u5206\u4e3b\u8981\u5b58\u653e MyISAM \u8868\u7684\u952e\u3002MyISAM \u8868\u4e0d\u540c\u4e8e InnoDB \u8868\uff0c\u5176\u7f13\u5b58\u7684\u7d22\u5f15\u7f13\u5b58\u662f\u653e\u5728 key_buffer \u4e2d\u7684\uff0c\u800c\u6570\u636e\u7f13\u5b58\u5219\u5b58\u50a8\u4e8e\u64cd\u4f5c\u7cfb\u7edf\u7684\u5185\u5b58\u4e2d\u3002RDS \u7684\u7cfb\u7edf\u662f MyISAM \u5f15\u64ce\u7684\uff0c\u56e0\u6b64\u5728 RDS \u4e2d\u662f\u7ed9\u4e88\u8be5\u90e8\u5206\u4e00\u5b9a\u91cf\u7684\u7a7a\u95f4\u7684\u3002"),(0,t.yg)("li",{parentName:"ul"},"query_cache\n\u8be5\u90e8\u5206\u662f\u5bf9\u67e5\u8be2\u7ed3\u679c\u505a\u7f13\u5b58\u4ee5\u51cf\u5c11\u89e3\u6790 SQL \u548c\u6267\u884c SQL \u7684\u82b1\u9500\uff0c\u5728 RDS \u4e0a\u5173\u95ed\u4e86\u8be5\u90e8\u5206\u7684\u7f13\u5b58\u3002\u4e3b\u8981\u9002\u5408\u4e8e\u8bfb\u591a\u5199\u5c11\u7684\u5e94\u7528\u573a\u666f\uff0c\u56e0\u4e3a\u5b83\u662f\u6309\u7167 SQL \u8bed\u53e5\u7684 hash \u503c\u8fdb\u884c\u7f13\u5b58\u7684\uff0c\u5f53\u8868\u6570\u636e\u53d1\u751f\u53d8\u5316\u540e\u5373\u5931\u6548\u3002")),(0,t.yg)("h4",{id:"session-\u79c1\u6709\u5185\u5b58"},"Session \u79c1\u6709\u5185\u5b58"),(0,t.yg)("p",null,"\u5171\u4eab\u5185\u5b58\u4e2d\u4ecb\u7ecd\u7684\u5185\u5b58\u7a7a\u95f4\u662f\u5b9e\u4f8b\u521b\u5efa\u65f6\u5373\u5206\u914d\u7684\u5185\u5b58\u7a7a\u95f4\uff0c\u5e76\u4e14\u662f\u6240\u6709\u8fde\u63a5\u5171\u4eab\u7684\u3002"),(0,t.yg)("p",null,"\u53c2\u6570\u8bf4\u660e\uff1a"),(0,t.yg)("ul",null,(0,t.yg)("li",{parentName:"ul"},"read_buffer&read_rnd_buffer\n\u5206\u522b\u5b58\u653e\u4e86\u5bf9\u987a\u5e8f\u548c\u968f\u673a\u626b\u63cf\uff08\u4f8b\u5982\u6309\u7167\u6392\u5e8f\u7684\u987a\u5e8f\u8bbf\u95ee\uff09\u7684\u7f13\u5b58\uff0cRDS \u7ed9\u6bcf\u4e2a session \u8bbe\u7f6e 256 K \u7684\u5927\u5c0f\u3002\u5f53 thread \u8fdb\u884c\u987a\u5e8f\u6216\u968f\u673a\u626b\u63cf\u6570\u636e\u65f6\u4f1a\u9996\u5148\u626b\u63cf\u8be5 buffer \u7a7a\u95f4\u4ee5\u907f\u514d\u66f4\u591a\u7684\u7269\u7406\u8bfb\u3002"),(0,t.yg)("li",{parentName:"ul"},"sort_buffer\n\u9700\u8981\u6267\u884c order by \u548c group by \u7684 SQL \u90fd\u4f1a\u5206\u914d sort_buffer\uff0c\u7528\u4e8e\u5b58\u50a8\u6392\u5e8f\u7684\u4e2d\u95f4\u7ed3\u679c\uff0c\u5728 RDS \u4e0a\u8bbe\u7f6e 256 K\u3002\u5728\u6392\u5e8f\u8fc7\u7a0b\u4e2d\uff0c\u82e5\u5b58\u50a8\u91cf\u5927\u4e8e sort_buffer_size\uff0c\u5219\u4f1a\u5728\u78c1\u76d8\u751f\u6210\u4e34\u65f6\u8868\u4ee5\u5b8c\u6210\u64cd\u4f5c\u3002\u5728 Linux \u7cfb\u7edf\u4e2d\uff0c\u5f53\u5206\u914d\u7a7a\u95f4\u5927\u4e8e 2 M \u65f6\u4f1a\u4f7f\u7528 mmap() \u800c\u4e0d\u662f malloc() \u6765\u8fdb\u884c\u5185\u5b58\u5206\u914d\uff0c\u5bfc\u81f4\u6548\u7387\u964d\u4f4e\u3002"),(0,t.yg)("li",{parentName:"ul"},"join_buffer\nMySQL \u4ec5\u652f\u6301 nest loop \u7684 join \u7b97\u6cd5\uff0cRDS \u8bbe\u7f6e 256 K \u7684\u5927\u5c0f\u3002\u5904\u7406\u903b\u8f91\u662f\u9a71\u52a8\u8868\u7684\u4e00\u884c\u548c\u975e\u9a71\u52a8\u8868\u8054\u5408\u67e5\u627e\uff0c\u8fd9\u65f6\u5c31\u53ef\u4ee5\u5c06\u975e\u9a71\u52a8\u8868\u653e\u5165 join_buffer\uff0c\u4e0d\u9700\u8981\u8bbf\u95ee\u62e5\u6709\u5e76\u53d1\u4fdd\u62a4\u673a\u5236\u7684 buffer_pool\u3002"),(0,t.yg)("li",{parentName:"ul"},"binlog_cache\n\u8be5\u533a\u57df\u7528\u6765\u7f13\u5b58\u8be5 thread \u7684 binlog \u65e5\u5fd7\uff0cRDS \u8bbe\u7f6e 256 K \u7684\u5927\u5c0f\u3002\u5728\u4e00\u4e2a\u4e8b\u52a1\u8fd8\u6ca1\u6709 commit \u4e4b\u524d\u4f1a\u5148\u5c06\u5176\u65e5\u5fd7\u5b58\u50a8\u4e8e binlog_cache \u4e2d\uff0c\u7b49\u5230\u4e8b\u52a1 commit \u540e\u4f1a\u5c06\u5176 binlog \u5237\u56de\u78c1\u76d8\u4e0a\u7684 binlog \u6587\u4ef6\u4ee5\u6301\u4e45\u5316\u3002"),(0,t.yg)("li",{parentName:"ul"},"tmp_table\n\u4e0d\u540c\u4e8e\u4e0a\u9762\u5404\u4e2a session \u5c42\u6b21\u7684 buffer\uff0c\u8fd9\u4e2a\u53c2\u6570\u53ef\u4ee5\u5728\u63a7\u5236\u53f0\u4e0a\u4fee\u6539\u3002\u8be5\u53c2\u6570\u662f\u6307\u7528\u6237\u5185\u5b58\u4e34\u65f6\u8868\u7684\u5927\u5c0f\uff0c\u5982\u679c\u8be5 thread \u521b\u5efa\u7684\u4e34\u65f6\u8868\u8d85\u8fc7\u5b83\u8bbe\u7f6e\u7684\u5927\u5c0f\u4f1a\u628a\u4e34\u65f6\u8868\u8f6c\u6362\u4e3a\u78c1\u76d8\u4e0a\u7684\u4e00\u5f20 MyISAM \u4e34\u65f6\u8868\u3002\u5982\u679c\u7528\u6237\u5728\u6267\u884c\u4e8b\u52a1\u65f6\u9047\u5230\u7c7b\u4f3c\u5982\u4e0b\u8fd9\u6837\u7684\u9519\u8bef\uff0c\u53ef\u4ee5\u8003\u8651\u589e\u5927 tmp_table \u7684\u503c\u3002")),(0,t.yg)("h4",{id:"\u5982\u4f55\u8bbe\u7f6e"},"\u5982\u4f55\u8bbe\u7f6e"),(0,t.yg)("p",null,"\u9488\u5bf9\u5f53\u524dMySQL\u4f01\u4e1a\u7528\u6237\u7684\u5b9e\u9645\u73af\u5883\uff08\u5927\u5185\u5b58\uff09\uff1a"),(0,t.yg)("ol",null,(0,t.yg)("li",{parentName:"ol"},"\u5728\u4e13\u7528\u6570\u636e\u5e93\u670d\u52a1\u5668\u4e0a\uff0c\u53ef\u4ee5\u5c06innodb_buffer_pool_size\u8bbe\u7f6e\u4e3a\u8ba1\u7b97\u673a\u7269\u7406\u5185\u5b58\u5927\u5c0f\u768480\uff05;"),(0,t.yg)("li",{parentName:"ol"},"\u5728innodb_buffer_pool_size\u8bbe\u7f6e\u6bd4\u8f83\u5927\u7684\u60c5\u51b5\u4e0b\uff0c\u53ef\u4ee5\u5c06innodb_buffer_pool_instances\u7684\u503c\u8bbe\u7f6e\u4e3a8-16\uff0c\u4fdd\u8bc1\u4e00\u4e2apool 10G\u4ee5\u4e0a\u3002")),(0,t.yg)("p",null,"\uff08\u6ce8\u610finnodb_buffer_pool_size\u5fc5\u987b\u4e3a\xa0innodb_buffer_pool_instances \u7684\u500d\u6570\uff09"),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-shell"},"#\u901a\u8fc7SQL\u4fee\u6539 \u91cd\u542f\u540e\u5931\u6548 2G\nset global innodb_buffer_pool_size = 2147483648\n\n#\u4fee\u6539my.cnf\u914d\u7f6e \u9700\u8981\u91cd\u542f\ninnodb_buffer_pool_size = 2147483648\ninnodb_buffer_pool_size = 2G\ninnodb_buffer_pool_size = 2048M\n")),(0,t.yg)("h3",{id:"\u67e5\u8be2\u4f18\u5316"},"\u67e5\u8be2\u4f18\u5316"),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-sql"},"#\n-- \u67e5\u8be2\u7f13\u5b58\nshow variables where variable_name in (\n'have_query_cache','query_cache_limit','query_cache_min_res_unit','query_cache_size','query_cache_type','query_cache_wlock_invalidate'\n);\n")),(0,t.yg)("ol",null,(0,t.yg)("li",{parentName:"ol"},"have_query_cache\uff1a\u5f53\u524d\u7684MYSQL\u7248\u672c\u662f\u5426\u652f\u6301\u201c\u67e5\u8be2\u7f13\u5b58\u201d\u529f\u80fd\u3002"),(0,t.yg)("li",{parentName:"ol"},"query_cache_min_res_unit\uff1a\u67e5\u8be2\u7f13\u5b58\u5206\u914d\u7684\u6700\u5c0f\u5757\uff08\u5b57\u8282\uff09\u3002\u9ed8\u8ba4\u503c\u662f4096\uff084KB\uff09\u3002\u5f53\u67e5\u8be2\u8fdb\u884c\u65f6\uff0cMySQL\u628a\u67e5\u8be2\u7ed3\u679c\u4fdd\u5b58\u5728query cache\uff0c\u4f46\u662f\u5982\u679c\u4fdd\u5b58\u7684\u7ed3\u679c\u6bd4\u8f83\u5927\uff0c\u8d85\u8fc7\u4e86query_cache_min_res_unit\u7684\u503c\uff0c\u8fd9\u65f6\u5019MySQL\u5c06\u4e00\u8fb9\u68c0\u7d22\u7ed3\u679c\uff0c\u4e00\u8fb9\u8fdb\u884c\u4fdd\u5b58\u7ed3\u679c\u3002\u4ed6\u4fdd\u5b58\u7ed3\u679c\u4e5f\u662f\u6309\u9ed8\u8ba4\u5927\u5c0f\u5148\u5206\u914d\u4e00\u5757\u7a7a\u95f4\uff0c\u5982\u679c\u4e0d\u591f\uff0c\u53c8\u8981\u7533\u8bf7\u65b0\u7684\u7a7a\u95f4\u7ed9\u4ed6\u3002\u5982\u679c\u67e5\u8be2\u7ed3\u679c\u6bd4\u8f83\u5c0f\uff0c\u9ed8\u8ba4\u7684query_cache_min_res_unit\u53ef\u80fd\u9020\u6210\u5927\u91cf\u7684\u5185\u5b58\u788e\u7247\uff0c\u5982\u679c\u67e5\u8be2\u7ed3\u679c\u6bd4\u8f83\u5927\uff0c\u9ed8\u8ba4\u7684query_cache_min_res_unit\u53c8\u4e0d\u591f\uff0c\u5bfc\u81f4\u4e00\u76f4\u5206\u914d\u5757\u7a7a\u95f4\uff0c\u6240\u4ee5\u53ef\u4ee5\u6839\u636e\u5b9e\u9645\u9700\u6c42\uff0c\u8c03\u8282query_cache_min_res_unit\u7684\u5927\u5c0f\u3002\u6ce8\uff1a\u5982\u679c\u4e0a\u9762\u8bf4\u7684\u5185\u5bb9\u6709\u70b9\u5f2f\u5f2f\u7ed5\uff0c\u90a3\u4e3e\u4e2a\u73b0\u5b9e\u751f\u6d3b\u4e2d\u7684\u4f8b\u5b50\uff0c\u6bd4\u5982\u54b1\u73b0\u5728\u8981\u7ed9\u8fd0\u52a8\u5458\u9001\u6c34\uff0c\u9ed8\u8ba4\u7684\u662f500ml\u7684\u74f6\u5b50\uff0c\u5982\u679c\u8fc7\u6765\u7684\u662f\u5c11\u5e74\u8fd0\u52a8\u5458\uff0c\u53ef\u80fd500ml\u592a\u5927\u4e86\uff0c\u4ed6\u4eec\u559d\u4e0d\u5b8c\uff0c\u9020\u6210\u4e86\u6d6a\u8d39\uff0c\u90a3\u6211\u4eec\u5c31\u53ef\u4ee5\u9009\u62e9300ml\u7684\u74f6\u5b50\uff0c\u5982\u679c\u8fc7\u6765\u7684\u662f\u6210\u5e74\u8fd0\u52a8\u5458\uff0c\u53ef\u80fd500ml\u4e0d\u591f\uff0c\u90a3\u4ed6\u4eec\u4e00\u74f6\u559d\u5b8c\u4e86\uff0c\u53c8\u5f00\u4e00\u74f6\uff0c\u76f4\u63a5\u4e0d\u6e34\u4e3a\u6b62\u3002\u90a3\u4e48\u90a3\u6837\u5f00\u74f6\u5b50\u4e5f\u8981\u65f6\u95f4\uff0c\u6211\u4eec\u5c31\u53ef\u4ee5\u9009\u62e91000ml\u7684\u74f6\u5b50\u3002"),(0,t.yg)("li",{parentName:"ol"},"query_cache_size\uff1a\u4e3a\u7f13\u5b58\u67e5\u8be2\u7ed3\u679c\u5206\u914d\u7684\u603b\u5185\u5b58\u3002"),(0,t.yg)("li",{parentName:"ol"},"query_cache_type\uff1a\u9ed8\u8ba4\u4e3aon\u3002"),(0,t.yg)("li",{parentName:"ol"},"query_cache_wlock_invalidate\uff1a\u5982\u679c\u8be5\u8868\u88ab\u9501\u4f4f\uff0c\u662f\u5426\u8fd4\u56de\u7f13\u5b58\u4e2d\u7684\u6570\u636e\uff0c\u9ed8\u8ba4\u662f\u5173\u95ed\u7684\u3002")),(0,t.yg)("p",null,"MYSQL\u7684\u67e5\u8be2\u7f13\u5b58\u5b9e\u8d28\u4e0a\u662f\u7f13\u5b58SQL\u7684hash\u503c\u548c\u8be5SQL\u7684\u67e5\u8be2\u7ed3\u679c\uff0c\u5982\u679c\u8fd0\u884c\u76f8\u540c\u7684SQL,\u670d\u52a1\u5668\u76f4\u63a5\u4ece\u7f13\u5b58\u4e2d\u53bb\u6389\u7ed3\u679c\uff0c\u800c\u4e0d\u518d\u53bb\u89e3\u6790\uff0c\u4f18\u5316\uff0c\u5bfb\u627e\u6700\u4f4e\u6210\u672c\u7684\u6267\u884c\u8ba1\u5212\u7b49\u4e00\u7cfb\u5217\u64cd\u4f5c\uff0c\u5927\u5927\u63d0\u5347\u4e86\u67e5\u8be2\u901f\u5ea6\u3002\n\u4f46\u662f\u4e07\u4e8b\u6709\u5229\u4e5f\u6709\u5f0a\u3002"),(0,t.yg)("ul",null,(0,t.yg)("li",{parentName:"ul"},"\u7b2c\u4e00\u4e2a\u5f0a\u7aef\u5c31\u662f\u5982\u679c\u8868\u7684\u6570\u636e\u6709\u4e00\u6761\u53d1\u751f\u53d8\u5316\uff0c\u90a3\u4e48\u7f13\u5b58\u597d\u7684\u7ed3\u679c\u5c06\u5168\u90e8\u4e0d\u518d\u6709\u6548\u3002\u8fd9\u5bf9\u4e8e\u9891\u7e41\u66f4\u65b0\u7684\u8868\uff0c\u67e5\u8be2\u7f13\u5b58\u662f\u4e0d\u9002\u5408\u7684\u3002"),(0,t.yg)("li",{parentName:"ul"},"\u7b2c\u4e8c\u4e2a\u5f0a\u7aef\u5c31\u662f\u7f13\u5b58\u673a\u5236\u662f\u901a\u8fc7\u5bf9SQL\u7684hash\uff0c\u5f97\u51fa\u7684\u503c\u4e3akey\uff0c\u67e5\u8be2\u7ed3\u679c\u4e3avalue\u6765\u5b58\u653e\u7684\uff0c\u90a3\u4e48\u5c31\u610f\u5473\u7740SQL\u5fc5\u987b\u5b8c\u5b8c\u5168\u5168\u4e00\u6a21\u4e00\u6837\uff0c\u5426\u5219\u5c31\u547d\u4e0d\u4e2d\u7f13\u5b58\u3002")),(0,t.yg)("p",null,"\u9ed8\u8ba4query_cache_type\u8bbe\u7f6e\u4e3aOFF\uff0c\u5176\u5b9e\u7f51\u4e0a\u8d44\u6599\u548c\u5404\u5927\u4e91\u5382\u5546\u63d0\u4f9b\u7684\u4e91\u670d\u52a1\u5668\u90fd\u662f\u5c06\u8fd9\u4e2a\u529f\u80fd\u5173\u95ed\u7684\uff0c\u4ece\u4e0a\u9762\u7684\u539f\u7406\u6765\u770b\uff0c\u5728\u4e00\u822c\u60c5\u51b5\u4e0b\uff0c\u4ed6\u7684\u5f0a\u7aef\u5927\u4e8e\u4f18\u70b9\u3002"),(0,t.yg)("h3",{id:"\u5197\u4f59\u7d22\u5f15"},"\u5197\u4f59\u7d22\u5f15"),(0,t.yg)("p",null,"\u5197\u4f59\u7d22\u5f15\u6307\u7684\u662f\u7d22\u5f15\u7684\u529f\u80fd\u76f8\u540c\uff0c\u80fd\u591f\u547d\u4e2d\u5c31\u80af\u5b9a\u80fd\u547d\u4e2d \uff0c\u90a3\u4e48\u5c31\u662f\u5197\u4f59\u7d22\u5f15\u5982\uff08name,city \uff09\u548c\uff08name \uff09\u8fd9\u4e24\u4e2a\u7d22\u5f15\u5c31\u662f\u5197\u4f59\u7d22\u5f15\uff0c\u80fd\u591f\u547d\u4e2d\u540e\u8005\u7684\u67e5\u8be2\u80af\u5b9a\u662f\u80fd\u591f\u547d\u4e2d\u524d\u8005\u7684 \u5728\u5927\u591a\u6570\u60c5\u51b5\u4e0b\uff0c\u90fd\u5e94\u8be5\u5c3d\u91cf\u6269\u5c55\u5df2\u6709\u7684\u7d22\u5f15\u800c\u4e0d\u662f\u521b\u5efa\u65b0\u7d22\u5f15\u3002\nMySQLS.7 \u7248\u672c\u540e\uff0c\u53ef\u4ee5\u901a\u8fc7\u67e5\u8be2 sys \u5e93\u7684 schema_redundant_indexes \u8868\u6765\u67e5\u770b\u5197\u4f59\u7d22\u5f15\u3002"),(0,t.yg)("h3",{id:"\u5b58\u50a8\u5f15\u64ce"},"\u5b58\u50a8\u5f15\u64ce"),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-sql"},"-- \u67e5\u8be2\u5f53\u524d\u6570\u636e\u5e93\u670d\u52a1\u5668\u652f\u6301\u7684\u5b58\u50a8\u5f15\u64ce\u5217\u8868\nshow engines;\n-- \u67e5\u770b\u9ed8\u8ba4\u7684\u5b58\u50a8\u5f15\u64ce\nshow variables like '%storage_engine%';\n-- \u67e5\u770b\u8868\u7684\u5b58\u50a8\u5f15\u64ce\u53ca\u5176\u4ed6\u76f8\u5173\u4fe1\u606f\nshow table status like \"table_name\";\n")),(0,t.yg)("h3",{id:"myisam\u548cinnodb\u533a\u522b"},"MyISAM\u548cInnoDB\u533a\u522b"),(0,t.yg)("p",null,"MyISAM\u662fMySQL\u7684\u9ed8\u8ba4\u6570\u636e\u5e93\u5f15\u64ce\uff085.5\u7248\u4e4b\u524d\uff09\u3002\u867d\u7136\u6027\u80fd\u6781\u4f73\uff0c\u800c\u4e14\u63d0\u4f9b\u4e86\u5927\u91cf\u7684\u7279\u6027\uff0c\u5305\u62ec\u5168\u6587\u7d22\u5f15\u3001\u538b\u7f29\u3001\u7a7a\u95f4\u51fd\u6570\u7b49\uff0c\u4f46MyISAM\u4e0d\u652f\u6301\u4e8b\u52a1\u548c\u884c\u7ea7\u9501\uff0c\u800c\u4e14\u6700\u5927\u7684\u7f3a\u9677\u5c31\u662f\u5d29\u6e83\u540e\u65e0\u6cd5\u5b89\u5168\u6062\u590d\u3002\u4e0d\u8fc7\uff0c5.5\u7248\u672c\u4e4b\u540e\uff0cMySQL\u5f15\u5165\u4e86InnoDB\uff08\u4e8b\u52a1\u6027\u6570\u636e\u5e93\u5f15\u64ce\uff09\uff0cMySQL 5.5\u7248\u672c\u540e\u9ed8\u8ba4\u7684\u5b58\u50a8\u5f15\u64ce\u4e3aInnoDB\u3002\n\u5927\u591a\u6570\u65f6\u5019\u6211\u4eec\u4f7f\u7528\u7684\u90fd\u662f InnoDB \u5b58\u50a8\u5f15\u64ce\uff0c\u4f46\u662f\u5728\u67d0\u4e9b\u60c5\u51b5\u4e0b\u4f7f\u7528 MyISAM \u4e5f\u662f\u5408\u9002\u7684\u6bd4\u5982\u8bfb\u5bc6\u96c6\u7684\u60c5\u51b5\u4e0b\u3002\uff08\u5982\u679c\u4f60\u4e0d\u4ecb\u610f MyISAM \u5d29\u6e83\u56de\u590d\u95ee\u9898\u7684\u8bdd\uff09\u3002"),(0,t.yg)("p",null,"\u4e24\u8005\u7684\u5bf9\u6bd4\uff1a"),(0,t.yg)("ol",null,(0,t.yg)("li",{parentName:"ol"},"\u662f\u5426\u652f\u6301\u884c\u7ea7\u9501: MyISAM \u53ea\u6709\u8868\u7ea7\u9501(table-level locking)\uff0c\u800cInnoDB \u652f\u6301\u884c\u7ea7\u9501(row-level locking)\u548c\u8868\u7ea7\u9501,\u9ed8\u8ba4\u4e3a\u884c\u7ea7\u9501\u3002"),(0,t.yg)("li",{parentName:"ol"},"\u662f\u5426\u652f\u6301\u4e8b\u52a1\u548c\u5d29\u6e83\u540e\u7684\u5b89\u5168\u6062\u590d\uff1aMyISAM\u5f3a\u8c03\u7684\u662f\u6027\u80fd\uff0c\u6bcf\u6b21\u67e5\u8be2\u5177\u6709\u539f\u5b50\u6027,\u5176\u6267\u884c\u6bd4InnoDB\u7c7b\u578b\u66f4\u5feb\uff0c\u4f46\u662f\u4e0d\u63d0\u4f9b\u4e8b\u52a1\u652f\u6301\u3002\u4f46\u662fInnoDB\u63d0\u4f9b\u4e8b\u52a1\u652f\u6301\u4e8b\u52a1\uff0c\u5916\u90e8\u952e\u7b49\u9ad8\u7ea7\u6570\u636e\u5e93\u529f\u80fd\u3002\u5177\u6709\u4e8b\u52a1(commit)\u3001\u56de\u6eda(rollback)\u548c\u5d29\u6e83\u4fee\u590d\u80fd\u529b(crash recovery capabilities)\u7684\u4e8b\u52a1\u5b89\u5168(transaction-safe (ACID compliant))\u578b\u8868\u3002"),(0,t.yg)("li",{parentName:"ol"},"\u662f\u5426\u652f\u6301\u5916\u952e\uff1aMyISAM\u4e0d\u652f\u6301\uff0c\u800cInnoDB\u652f\u6301\u3002"),(0,t.yg)("li",{parentName:"ol"},"\u662f\u5426\u652f\u6301MVCC\uff1a\u4ec5 InnoDB \u652f\u6301\u3002\u5e94\u5bf9\u9ad8\u5e76\u53d1\u4e8b\u52a1, MVCC\u6bd4\u5355\u7eaf\u7684\u52a0\u9501\u66f4\u9ad8\u6548;MVCC\u53ea\u5728 READ COMMITTED\u548c REPEATABLE READ\u4e24\u4e2a\u9694\u79bb\u7ea7\u522b\u4e0b\u5de5\u4f5c;MVCC\u53ef\u4ee5\u4f7f\u7528 \u4e50\u89c2(optimistic)\u9501 \u548c \u60b2\u89c2(pessimistic)\u9501\u6765\u5b9e\u73b0;\u5404\u6570\u636e\u5e93\u4e2dMVCC\u5b9e\u73b0\u5e76\u4e0d\u7edf\u4e00\u3002"),(0,t.yg)("li",{parentName:"ol"},"......")),(0,t.yg)("p",null,"\u300aMySQL\u9ad8\u6027\u80fd\u300b\u4e0a\u9762\u6709\u4e00\u53e5\u8bdd\u8fd9\u6837\u5199\u5230:"),(0,t.yg)("blockquote",null,(0,t.yg)("p",{parentName:"blockquote"},"\u4e0d\u8981\u8f7b\u6613\u76f8\u4fe1\u201cMyISAM\u6bd4InnoDB\u5feb\u201d\u4e4b\u7c7b\u7684\u7ecf\u9a8c\u4e4b\u8c08\uff0c\u8fd9\u4e2a\u7ed3\u8bba\u5f80\u5f80\u4e0d\u662f\u7edd\u5bf9\u7684\u3002\u5728\u5f88\u591a\u6211\u4eec\u5df2\u77e5\u573a\u666f\u4e2d\uff0cInnoDB\u7684\u901f\u5ea6\u90fd\u53ef\u4ee5\u8ba9MyISAM\u671b\u5c18\u83ab\u53ca\uff0c\u5c24\u5176\u662f\u7528\u5230\u4e86\u805a\u7c07\u7d22\u5f15\uff0c\u6216\u8005\u9700\u8981\u8bbf\u95ee\u7684\u6570\u636e\u90fd\u53ef\u4ee5\u653e\u5165\u5185\u5b58\u7684\u5e94\u7528\u3002")),(0,t.yg)("p",null,"\u4e00\u822c\u60c5\u51b5\u4e0b\u6211\u4eec\u9009\u62e9 InnoDB \u90fd\u662f\u6ca1\u6709\u95ee\u9898\u7684\uff0c\u4f46\u662f\u67d0\u4e8b\u60c5\u51b5\u4e0b\u4f60\u5e76\u4e0d\u5728\u4e4e\u53ef\u6269\u5c55\u80fd\u529b\u548c\u5e76\u53d1\u80fd\u529b\uff0c\u4e5f\u4e0d\u9700\u8981\u4e8b\u52a1\u652f\u6301\uff0c\u4e5f\u4e0d\u5728\u4e4e\u5d29\u6e83\u540e\u7684\u5b89\u5168\u6062\u590d\u95ee\u9898\u7684\u8bdd\uff0c\u9009\u62e9MyISAM\u4e5f\u662f\u4e00\u4e2a\u4e0d\u9519\u7684\u9009\u62e9\u3002\u4f46\u662f\u4e00\u822c\u60c5\u51b5\u4e0b\uff0c\u6211\u4eec\u90fd\u662f\u9700\u8981\u8003\u8651\u5230\u8fd9\u4e9b\u95ee\u9898\u7684\u3002"),(0,t.yg)("h3",{id:"\u4e50\u89c2\u9501\u4e0e\u60b2\u89c2\u9501\u7684\u533a\u522b"},"\u4e50\u89c2\u9501\u4e0e\u60b2\u89c2\u9501\u7684\u533a\u522b"),(0,t.yg)("h4",{id:""}),(0,t.yg)("h4",{id:"\u60b2\u89c2\u9501"},"\u60b2\u89c2\u9501"),(0,t.yg)("p",null,"\u603b\u662f\u5047\u8bbe\u6700\u574f\u7684\u60c5\u51b5\uff0c\u6bcf\u6b21\u53bb\u62ff\u6570\u636e\u7684\u65f6\u5019\u90fd\u8ba4\u4e3a\u522b\u4eba\u4f1a\u4fee\u6539\uff0c\u6240\u4ee5\u6bcf\u6b21\u5728\u62ff\u6570\u636e\u7684\u65f6\u5019\u90fd\u4f1a\u4e0a\u9501\uff0c\u8fd9\u6837\u522b\u4eba\u60f3\u62ff\u8fd9\u4e2a\u6570\u636e\u5c31\u4f1a\u963b\u585e\u76f4\u5230\u5b83\u62ff\u5230\u9501\uff08\u5171\u4eab\u8d44\u6e90\u6bcf\u6b21\u53ea\u7ed9\u4e00\u4e2a\u7ebf\u7a0b\u4f7f\u7528\uff0c\u5176\u5b83\u7ebf\u7a0b\u963b\u585e\uff0c\u7528\u5b8c\u540e\u518d\u628a\u8d44\u6e90\u8f6c\u8ba9\u7ed9\u5176\u5b83\u7ebf\u7a0b\uff09\u3002\u4f20\u7edf\u7684\u5173\u7cfb\u578b\u6570\u636e\u5e93\u91cc\u8fb9\u5c31\u7528\u5230\u4e86\u5f88\u591a\u8fd9\u79cd\u9501\u673a\u5236\uff0c\u6bd4\u5982\u884c\u9501\uff0c\u8868\u9501\u7b49\uff0c\u8bfb\u9501\uff0c\u5199\u9501\u7b49\uff0c\u90fd\u662f\u5728\u505a\u64cd\u4f5c\u4e4b\u524d\u5148\u4e0a\u9501\u3002Java\u4e2dsynchronized\u548cReentrantLock\u7b49\u72ec\u5360\u9501\u5c31\u662f\u60b2\u89c2\u9501\u601d\u60f3\u7684\u5b9e\u73b0\u3002"),(0,t.yg)("h4",{id:"\u4e50\u89c2\u9501"},"\u4e50\u89c2\u9501"),(0,t.yg)("p",null,"\u603b\u662f\u5047\u8bbe\u6700\u597d\u7684\u60c5\u51b5\uff0c\u6bcf\u6b21\u53bb\u62ff\u6570\u636e\u7684\u65f6\u5019\u90fd\u8ba4\u4e3a\u522b\u4eba\u4e0d\u4f1a\u4fee\u6539\uff0c\u6240\u4ee5\u4e0d\u4f1a\u4e0a\u9501\uff0c\u4f46\u662f\u5728\u66f4\u65b0\u7684\u65f6\u5019\u4f1a\u5224\u65ad\u4e00\u4e0b\u5728\u6b64\u671f\u95f4\u522b\u4eba\u6709\u6ca1\u6709\u53bb\u66f4\u65b0\u8fd9\u4e2a\u6570\u636e\uff0c\u53ef\u4ee5\u4f7f\u7528\u7248\u672c\u53f7\u673a\u5236\u548cCAS\u7b97\u6cd5\u5b9e\u73b0\u3002\u4e50\u89c2\u9501\u9002\u7528\u4e8e\u591a\u8bfb\u7684\u5e94\u7528\u7c7b\u578b\uff0c\u8fd9\u6837\u53ef\u4ee5\u63d0\u9ad8\u541e\u5410\u91cf\uff0c\u50cf\u6570\u636e\u5e93\u63d0\u4f9b\u7684\u7c7b\u4f3c\u4e8ewrite_condition\u673a\u5236\uff0c\u5176\u5b9e\u90fd\u662f\u63d0\u4f9b\u7684\u4e50\u89c2\u9501\u3002\u5728Java\u4e2djava.util.concurrent.atomic\u5305\u4e0b\u9762\u7684\u539f\u5b50\u53d8\u91cf\u7c7b\u5c31\u662f\u4f7f\u7528\u4e86\u4e50\u89c2\u9501\u7684\u4e00\u79cd\u5b9e\u73b0\u65b9\u5f0fCAS\u5b9e\u73b0\u7684\u3002"),(0,t.yg)("h4",{id:"\u4e24\u79cd\u9501\u7684\u4f7f\u7528\u573a\u666f"},"\u4e24\u79cd\u9501\u7684\u4f7f\u7528\u573a\u666f"),(0,t.yg)("p",null,"\u4ece\u4e0a\u9762\u5bf9\u4e24\u79cd\u9501\u7684\u4ecb\u7ecd\uff0c\u6211\u4eec\u77e5\u9053\u4e24\u79cd\u9501\u5404\u6709\u4f18\u7f3a\u70b9\uff0c\u4e0d\u53ef\u8ba4\u4e3a\u4e00\u79cd\u597d\u4e8e\u53e6\u4e00\u79cd\uff0c\u50cf\u4e50\u89c2\u9501\u9002\u7528\u4e8e\u5199\u6bd4\u8f83\u5c11\u7684\u60c5\u51b5\u4e0b\uff08\u591a\u8bfb\u573a\u666f\uff09\uff0c\u5373\u51b2\u7a81\u771f\u7684\u5f88\u5c11\u53d1\u751f\u7684\u65f6\u5019\uff0c\u8fd9\u6837\u53ef\u4ee5\u7701\u53bb\u4e86\u9501\u7684\u5f00\u9500\uff0c\u52a0\u5927\u4e86\u7cfb\u7edf\u7684\u6574\u4e2a\u541e\u5410\u91cf\u3002\u4f46\u5982\u679c\u662f\u591a\u5199\u7684\u60c5\u51b5\uff0c\u4e00\u822c\u4f1a\u7ecf\u5e38\u4ea7\u751f\u51b2\u7a81\uff0c\u8fd9\u5c31\u4f1a\u5bfc\u81f4\u4e0a\u5c42\u5e94\u7528\u4f1a\u4e0d\u65ad\u7684\u8fdb\u884cretry\uff0c\u8fd9\u6837\u53cd\u5012\u662f\u964d\u4f4e\u4e86\u6027\u80fd\uff0c\u6240\u4ee5\u4e00\u822c\u591a\u5199\u7684\u573a\u666f\u4e0b\u7528\u60b2\u89c2\u9501\u5c31\u6bd4\u8f83\u5408\u9002\u3002"),(0,t.yg)("h3",{id:"\u65e5\u5fd7\u76f8\u5173binlog\u7b49"},"\u65e5\u5fd7\u76f8\u5173/Binlog\u7b49"),(0,t.yg)("h4",{id:"binlog\u5f55\u5165\u683c\u5f0f"},"Binlog\u5f55\u5165\u683c\u5f0f"),(0,t.yg)("ul",null,(0,t.yg)("li",{parentName:"ul"},"\u6709\u4e09\u79cd\u683c\u5f0f\uff0cstatement\uff0crow\u548cmixed\u3002",(0,t.yg)("ul",{parentName:"li"},(0,t.yg)("li",{parentName:"ul"},"statement\u6a21\u5f0f\u4e0b\uff0c\u6bcf\u4e00\u6761\u4f1a\u4fee\u6539\u6570\u636e\u7684sql\u90fd\u4f1a\u8bb0\u5f55\u5728binlog\u4e2d\u3002\u4e0d\u9700\u8981\u8bb0\u5f55\u6bcf\u4e00\u884c\u7684\u53d8\u5316\uff0c\u51cf\u5c11\u4e86binlog\u65e5\u5fd7\u91cf\uff0c\u8282\u7ea6\u4e86IO\uff0c\u63d0\u9ad8\u6027\u80fd\u3002\u7531\u4e8esql\u7684\u6267\u884c\u662f\u6709\u4e0a\u4e0b\u6587\u7684\uff0c\u56e0\u6b64\u5728\u4fdd\u5b58\u7684\u65f6\u5019\u9700\u8981\u4fdd\u5b58\u76f8\u5173\u7684\u4fe1\u606f\uff0c\u540c\u65f6\u8fd8\u6709\u4e00\u4e9b\u4f7f\u7528\u4e86\u51fd\u6570\u4e4b\u7c7b\u7684\u8bed\u53e5\u65e0\u6cd5\u88ab\u8bb0\u5f55\u590d\u5236\u3002"),(0,t.yg)("li",{parentName:"ul"},"row\u7ea7\u522b\u4e0b\uff0c\u4e0d\u8bb0\u5f55sql\u8bed\u53e5\u4e0a\u4e0b\u6587\u76f8\u5173\u4fe1\u606f\uff0c\u4ec5\u4fdd\u5b58\u54ea\u6761\u8bb0\u5f55\u88ab\u4fee\u6539\u3002\u8bb0\u5f55\u5355\u5143\u4e3a\u6bcf\u4e00\u884c\u7684\u6539\u52a8\uff0c\u57fa\u672c\u662f\u53ef\u4ee5\u5168\u90e8\u8bb0\u4e0b\u6765\u4f46\u662f\u7531\u4e8e\u5f88\u591a\u64cd\u4f5c\uff0c\u4f1a\u5bfc\u81f4\u5927\u91cf\u884c\u7684\u6539\u52a8(\u6bd4\u5982alter table)\uff0c\u56e0\u6b64\u8fd9\u79cd\u6a21\u5f0f\u7684\u6587\u4ef6\u4fdd\u5b58\u7684\u4fe1\u606f\u592a\u591a\uff0c\u65e5\u5fd7\u91cf\u592a\u5927\u3002"),(0,t.yg)("li",{parentName:"ul"},"mixed\uff0c\u4e00\u79cd\u6298\u4e2d\u7684\u65b9\u6848\uff0c\u666e\u901a\u64cd\u4f5c\u4f7f\u7528statement\u8bb0\u5f55\uff0c\u5f53\u65e0\u6cd5\u4f7f\u7528statement\u7684\u65f6\u5019\u4f7f\u7528row\u3002"))),(0,t.yg)("li",{parentName:"ul"},"\u6b64\u5916\uff0c\u65b0\u7248\u7684MySQL\u4e2d\u5bf9row\u7ea7\u522b\u4e5f\u505a\u4e86\u4e00\u4e9b\u4f18\u5316\uff0c\u5f53\u8868\u7ed3\u6784\u53d1\u751f\u53d8\u5316\u7684\u65f6\u5019\uff0c\u4f1a\u8bb0\u5f55\u8bed\u53e5\u800c\u4e0d\u662f\u9010\u884c\u8bb0\u5f55\u3002")),(0,t.yg)("h4",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,t.yg)("ol",null,(0,t.yg)("li",{parentName:"ol"},(0,t.yg)("a",{parentName:"li",href:"https://blog.csdn.net/horses/article/details/106053399?utm_medium=distribute.pc_category.none-task-blog-hot-10.nonecase&depth_1-utm_source=distribute.pc_category.none-task-blog-hot-10.nonecase&request_id="},"MySQL \u670d\u52a1\u5668\u4e2d\u7684 6 \u79cd\u65e5\u5fd7\u7c7b\u578b"))),(0,t.yg)("h3",{id:"\u5360\u7528\u78c1\u76d8\u5927\u5c0f\u6570\u636e\u5927\u5c0f\u7d22\u5f15\u5927\u5c0f"},"\u5360\u7528\u78c1\u76d8\u5927\u5c0f/\u6570\u636e\u5927\u5c0f/\u7d22\u5f15\u5927\u5c0f"),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-sql"},"-- \u67e5\u770b\u6240\u6709\u6570\u636e\u5e93\u6570\u636e\u5927\u5c0f\u548c\u7d22\u5f15\u5927\u5c0f\nselect TABLE_SCHEMA, \nconcat(truncate(sum(data_length)/1024/1024,2),' MB') as data_size,\nsum(data_length) as data_size_B,\nconcat(truncate(sum(index_length)/1024/1024,2),'MB') as index_size,\nsum(index_length) as index_size_B\nfrom information_schema.tables\ngroup by TABLE_SCHEMA\norder by data_size_B desc;\n\n-- \u67e5\u770b\u67d0\u4e2a\u6570\u636e\u5e93\u6240\u6709\u6570\u636e\u8868\u6570\u636e\u5927\u5c0f\u548c\u7d22\u5f15\u5927\u5c0f\nselect TABLE_NAME, \nconcat(truncate(sum(data_length)/1024/1024,2),' MB') as data_size,\nsum(data_length) as data_size_B,\nconcat(truncate(sum(index_length)/1024/1024,2),'MB') as index_size,\nsum(index_length) as index_size_B\nfrom information_schema.tables\n where TABLE_SCHEMA = 'newcloud'\ngroup by TABLE_NAME\norder by data_size_B desc;\n\n-- \u67e5\u770b\u67d0\u4e2a\u6570\u636e\u5e93\u67d0\u4e2a\u6570\u636e\u8868\u6570\u636e\u5927\u5c0f\u548c\u7d22\u5f15\u5927\u5c0f\nselect TABLE_NAME, \nconcat(truncate(sum(data_length)/1024/1024,2),' MB') as data_size,\nsum(data_length) as data_size_B,\nconcat(truncate(sum(index_length)/1024/1024,2),'MB') as index_size,\nsum(index_length) as index_size_B\nfrom information_schema.tables\nwhere TABLE_SCHEMA = 'newcloud'\nand table_name='log_err_flow'\ngroup by TABLE_NAME\norder by data_size_B desc;\n")),(0,t.yg)("h3",{id:"\u4f18\u5316"},"\u4f18\u5316"),(0,t.yg)("ol",null,(0,t.yg)("li",{parentName:"ol"},(0,t.yg)("a",{parentName:"li",href:"https://cloud.tencent.com/developer/article/1580260"},"\u7a0b\u5e8f\u5458\u8fdb\u9636\u5fc5\u8bfb\uff0c\u4e07\u5b57\u603b\u7ed3Mysql\u4f18\u5316\u7cbe\u534e\u7bc7"))))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6898],{5680:(e,n,l)=>{l.d(n,{xA:()=>y,yg:()=>g});var a=l(6540);function t(e,n,l){return n in e?Object.defineProperty(e,n,{value:l,enumerable:!0,configurable:!0,writable:!0}):e[n]=l,e}function r(e,n){var l=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),l.push.apply(l,a)}return l}function o(e){for(var n=1;n=0||(t[l]=e[l]);return t}(e,n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,l)&&(t[l]=e[l])}return t}var s=a.createContext({}),u=function(e){var n=a.useContext(s),l=n;return e&&(l="function"==typeof e?e(n):o(o({},n),e)),l},y=function(e){var n=u(e.components);return a.createElement(s.Provider,{value:n},e.children)},c="mdxType",d={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},_=a.forwardRef((function(e,n){var l=e.components,t=e.mdxType,r=e.originalType,s=e.parentName,y=i(e,["components","mdxType","originalType","parentName"]),c=u(l),_=t,g=c["".concat(s,".").concat(_)]||c[_]||d[_]||r;return l?a.createElement(g,o(o({ref:n},y),{},{components:l})):a.createElement(g,o({ref:n},y))}));function g(e,n){var l=arguments,t=n&&n.mdxType;if("string"==typeof e||t){var r=l.length,o=new Array(r);o[0]=_;var i={};for(var s in n)hasOwnProperty.call(n,s)&&(i[s]=n[s]);i.originalType=e,i[c]="string"==typeof e?e:t,o[1]=i;for(var u=2;u{l.r(n),l.d(n,{assets:()=>s,contentTitle:()=>o,default:()=>d,frontMatter:()=>r,metadata:()=>i,toc:()=>u});var a=l(8168),t=(l(6540),l(5680));const r={},o=void 0,i={unversionedId:"study/db/SQL/MySQL",id:"study/db/SQL/MySQL",title:"MySQL",description:"\u7248\u672c\u9009\u62e9",source:"@site/docs/study/db/SQL/MySQL.md",sourceDirName:"study/db/SQL",slug:"/study/db/SQL/MySQL",permalink:"/docs/study/db/SQL/MySQL",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"MySQL \u7b14\u8bb0",permalink:"/docs/study/db/SQL/MySQL-\u7b14\u8bb0"},next:{title:"PostgreSQL",permalink:"/docs/study/db/SQL/PostgreSQL"}},s={},u=[{value:"\u7248\u672c\u9009\u62e9",id:"\u7248\u672c\u9009\u62e9",level:3},{value:"\u4fee\u6539\u65f6\u533a",id:"\u4fee\u6539\u65f6\u533a",level:3},{value:"\u521b\u5efa\u7528\u6237\u5e76\u6388\u6743",id:"\u521b\u5efa\u7528\u6237\u5e76\u6388\u6743",level:3},{value:"\u5185\u5b58\u5206\u914d",id:"\u5185\u5b58\u5206\u914d",level:3},{value:"\u5171\u4eab\u5185\u5b58",id:"\u5171\u4eab\u5185\u5b58",level:4},{value:"Session \u79c1\u6709\u5185\u5b58",id:"session-\u79c1\u6709\u5185\u5b58",level:4},{value:"\u5982\u4f55\u8bbe\u7f6e",id:"\u5982\u4f55\u8bbe\u7f6e",level:4},{value:"\u67e5\u8be2\u4f18\u5316",id:"\u67e5\u8be2\u4f18\u5316",level:3},{value:"\u5197\u4f59\u7d22\u5f15",id:"\u5197\u4f59\u7d22\u5f15",level:3},{value:"\u5b58\u50a8\u5f15\u64ce",id:"\u5b58\u50a8\u5f15\u64ce",level:3},{value:"MyISAM\u548cInnoDB\u533a\u522b",id:"myisam\u548cinnodb\u533a\u522b",level:3},{value:"\u4e50\u89c2\u9501\u4e0e\u60b2\u89c2\u9501\u7684\u533a\u522b",id:"\u4e50\u89c2\u9501\u4e0e\u60b2\u89c2\u9501\u7684\u533a\u522b",level:3},{value:"\u60b2\u89c2\u9501",id:"\u60b2\u89c2\u9501",level:4},{value:"\u4e50\u89c2\u9501",id:"\u4e50\u89c2\u9501",level:4},{value:"\u4e24\u79cd\u9501\u7684\u4f7f\u7528\u573a\u666f",id:"\u4e24\u79cd\u9501\u7684\u4f7f\u7528\u573a\u666f",level:4},{value:"\u65e5\u5fd7\u76f8\u5173/Binlog\u7b49",id:"\u65e5\u5fd7\u76f8\u5173binlog\u7b49",level:3},{value:"Binlog\u5f55\u5165\u683c\u5f0f",id:"binlog\u5f55\u5165\u683c\u5f0f",level:4},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:4},{value:"\u5360\u7528\u78c1\u76d8\u5927\u5c0f/\u6570\u636e\u5927\u5c0f/\u7d22\u5f15\u5927\u5c0f",id:"\u5360\u7528\u78c1\u76d8\u5927\u5c0f\u6570\u636e\u5927\u5c0f\u7d22\u5f15\u5927\u5c0f",level:3},{value:"\u4f18\u5316",id:"\u4f18\u5316",level:3}],y={toc:u},c="wrapper";function d(e){let{components:n,...l}=e;return(0,t.yg)(c,(0,a.A)({},y,l,{components:n,mdxType:"MDXLayout"}),(0,t.yg)("h3",{id:"\u7248\u672c\u9009\u62e9"},"\u7248\u672c\u9009\u62e9"),(0,t.yg)("p",null,"\u5f53\u524d\u6bd4\u8f83\u7a33\u5b9a\u7248\u672c\u662f5.6\u30015.7\u548c8.0\uff0c\u5982\u679c\u662f\u65b0\u9879\u76ee\u5f53\u7136\u662f\u75288.0\uff1b6.0\u5c31\u662f\u4e2a\u5e9f\u5f03\u7248\u672c\uff0c7.x\u662fNDB Cluster\u7248\uff1b"),(0,t.yg)("p",null,"mysql8.0\u7684\u4e3b\u8981\u65b0\u7279\u6027\uff1a"),(0,t.yg)("ol",null,(0,t.yg)("li",{parentName:"ol"},"hash join\uff1b")),(0,t.yg)("h3",{id:"\u4fee\u6539\u65f6\u533a"},"\u4fee\u6539\u65f6\u533a"),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-shell"},"docker exec -it mysql02 bash\ncd /etc/mysql/mysql.conf.d\necho \"default-time_zone = '+8:00'\" >> mysqld.cnf\nexit\ndocker restart mysql02\n")),(0,t.yg)("h3",{id:"\u521b\u5efa\u7528\u6237\u5e76\u6388\u6743"},"\u521b\u5efa\u7528\u6237\u5e76\u6388\u6743"),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-shell"},"-- \u521b\u5efa\u7528\u6237\ncreate user 'xx'@'%' identified by 'xx';\n-- \u6388\u6743\u67d0\u4e2a\u8868\u7684\u67e5\u8be2\u548c\u589e\u52a0\u6743\u9650\ngrant SELECT,INSERT on newcloud.elk_user_func_flow_for_user_op_for_res to 'xx'@'%';\n-- \u5220\u9664\u7528\u6237\ndrop user 'xx'@'%';\n-- \u67e5\u770b\u67d0\u4e2a\u7528\u6237\u7684\u6388\u6743\u4fe1\u606f\nshow grants for 'cloudExtend'@'%'; \n--\nflush privileges;\n")),(0,t.yg)("h3",{id:"\u5185\u5b58\u5206\u914d"},"\u5185\u5b58\u5206\u914d"),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-sql"},"-- \u67e5\u8be2\u5171\u4eab\u5185\u5b58\u4f7f\u7528\u60c5\u51b5 \u5355\u4f4d\u662fByte\nshow variables where variable_name in (\n'innodb_buffer_pool_size','innodb_log_buffer_size','innodb_additional_mem_pool_size','key_buffer_size','query_cache_size'\n);\n-- InnoDB \u7f13\u51b2\u6c60\u5212\u5206\u4e3a\u7684\u533a\u57df\u6570\nshow variables like 'innodb_buffer_pool_instances'\n-- \u67e5\u8be2session\u79c1\u6709\u5185\u6d4b\u4f7f\u7528\u60c5\u51b5 \u5355\u4f4d\u662fByte\nshow variables where variable_name in (\n'read_buffer_size','read_rnd_buffer_size','sort_buffer_size','join_buffer_size','binlog_cache_size','tmp_table_size'\n);\n")),(0,t.yg)("p",null,"MySQL \u7684\u5185\u5b58\u5927\u4f53\u53ef\u4ee5\u5206\u4e3a\u5171\u4eab\u5185\u5b58\u548c session \u79c1\u6709\u5185\u5b58\u4e24\u90e8\u5206\uff0c\u4e0b\u9762\u5c06\u8be6\u7ec6\u4ecb\u7ecd\u5404\u90e8\u5206\u7684\u6784\u6210\u3002"),(0,t.yg)("h4",{id:"\u5171\u4eab\u5185\u5b58"},"\u5171\u4eab\u5185\u5b58"),(0,t.yg)("p",null,"\u53c2\u6570\u8bf4\u660e\uff1a"),(0,t.yg)("ul",null,(0,t.yg)("li",{parentName:"ul"},"innodb_buffer_pool\n\u8be5\u90e8\u5206\u7f13\u5b58\u662f Innodb \u5f15\u64ce\u6700\u91cd\u8981\u7684\u7f13\u5b58\u533a\u57df\uff0c\u662f\u901a\u8fc7\u5185\u5b58\u6765\u5f25\u8865\u7269\u7406\u6570\u636e\u6587\u4ef6\u7684\u91cd\u8981\u624b\u6bb5\u3002\u5176\u4e2d\u4e3b\u8981\u5305\u542b\u6570\u636e\u9875\u3001\u7d22\u5f15\u9875\u3001undo \u9875\u3001insert buffer\u3001\u81ea\u9002\u5e94\u54c8\u5e0c\u7d22\u5f15\u3001\u9501\u4fe1\u606f\u4ee5\u53ca\u6570\u636e\u5b57\u5178\u7b49\u4fe1\u606f\u3002\u5728\u8fdb\u884c SQL \u8bfb\u548c\u5199\u7684\u64cd\u4f5c\u65f6\uff0c\u9996\u5148\u5e76\u4e0d\u662f\u5bf9\u7269\u7406\u6570\u636e\u6587\u4ef6\u64cd\u4f5c\uff0c\u800c\u662f\u5148\u5bf9 buffer_pool \u8fdb\u884c\u64cd\u4f5c\uff0c\u7136\u540e\u518d\u901a\u8fc7 checkpoint \u7b49\u673a\u5236\u5199\u56de\u6570\u636e\u6587\u4ef6\u3002\u8be5\u7a7a\u95f4\u7684\u4f18\u70b9\u662f\u53ef\u4ee5\u63d0\u5347\u6570\u636e\u5e93\u7684\u6027\u80fd\u3001\u52a0\u5feb SQL \u8fd0\u884c\u901f\u5ea6\uff0c\u7f3a\u70b9\u662f\u6545\u969c\u6062\u590d\u901f\u5ea6\u8f83\u6162\u3002"),(0,t.yg)("li",{parentName:"ul"},"innodb_log_buffer\n\u8be5\u90e8\u5206\u4e3b\u8981\u5b58\u653e redo log \u7684\u4fe1\u606f\uff0c\u5728 RDS \u4e0a\u4f1a\u8bbe\u7f6e 1 M \u7684\u5927\u5c0f\u3002InnoDB \u4f1a\u9996\u5148\u5c06 redo log \u5199\u5728\u8fd9\u91cc\uff0c\u7136\u540e\u6309\u7167\u4e00\u5b9a\u9891\u7387\u5c06\u5176\u5237\u65b0\u56de\u91cd\u505a\u65e5\u5fd7\u6587\u4ef6\u4e2d\u3002\u8be5\u7a7a\u95f4\u4e0d\u9700\u8981\u592a\u5927\uff0c\u56e0\u4e3a\u4e00\u822c\u60c5\u51b5\u4e0b\u8be5\u90e8\u5206\u7f13\u5b58\u4f1a\u4ee5\u8f83\u5feb\u9891\u7387\u5237\u65b0\u81f3 redo log\uff08Master Thread \u4f1a\u6bcf\u79d2\u5237\u65b0\u3001\u4e8b\u52a1\u63d0\u4ea4\u65f6\u4f1a\u5237\u65b0\u3001\u5176\u7a7a\u95f4\u5c11\u4e8e 1/2 \u65f6\u540c\u6837\u4f1a\u5237\u65b0\uff09\u3002"),(0,t.yg)("li",{parentName:"ul"},"innodb_additional_mem_pool\n\u8be5\u90e8\u5206\u4e3b\u8981\u5b58\u653e InnoDB \u5185\u7684\u4e00\u4e9b\u6570\u636e\u7ed3\u6784\uff0c\u5728 RDS \u4e2d\u7edf\u4e00\u8bbe\u7f6e\u4e3a 2 M\u3002\u901a\u5e38\u662f\u5728 buffer_pool \u4e2d\u7533\u8bf7\u5185\u5b58\u7684\u65f6\u5019\u8fd8\u9700\u8981\u5728\u989d\u5916\u5185\u5b58\u4e2d\u7533\u8bf7\u7a7a\u95f4\u5b58\u50a8\u8be5\u5bf9\u8c61\u7684\u7ed3\u6784\u4fe1\u606f\u3002\u8be5\u5927\u5c0f\u4e3b\u8981\u4e0e\u8868\u6570\u91cf\u6709\u5173\uff0c\u8868\u6570\u91cf\u8d8a\u5927\u9700\u8981\u66f4\u5927\u7684\u7a7a\u95f4\u3002"),(0,t.yg)("li",{parentName:"ul"},"key_buffer\n\u8be5\u90e8\u5206\u662f MyISAM \u8868\u7684\u91cd\u8981\u7f13\u5b58\u533a\u57df\uff0c\u6240\u6709\u5b9e\u4f8b\u7edf\u4e00\u4e3a 16 M\u3002\u8be5\u90e8\u5206\u4e3b\u8981\u5b58\u653e MyISAM \u8868\u7684\u952e\u3002MyISAM \u8868\u4e0d\u540c\u4e8e InnoDB \u8868\uff0c\u5176\u7f13\u5b58\u7684\u7d22\u5f15\u7f13\u5b58\u662f\u653e\u5728 key_buffer \u4e2d\u7684\uff0c\u800c\u6570\u636e\u7f13\u5b58\u5219\u5b58\u50a8\u4e8e\u64cd\u4f5c\u7cfb\u7edf\u7684\u5185\u5b58\u4e2d\u3002RDS \u7684\u7cfb\u7edf\u662f MyISAM \u5f15\u64ce\u7684\uff0c\u56e0\u6b64\u5728 RDS \u4e2d\u662f\u7ed9\u4e88\u8be5\u90e8\u5206\u4e00\u5b9a\u91cf\u7684\u7a7a\u95f4\u7684\u3002"),(0,t.yg)("li",{parentName:"ul"},"query_cache\n\u8be5\u90e8\u5206\u662f\u5bf9\u67e5\u8be2\u7ed3\u679c\u505a\u7f13\u5b58\u4ee5\u51cf\u5c11\u89e3\u6790 SQL \u548c\u6267\u884c SQL \u7684\u82b1\u9500\uff0c\u5728 RDS \u4e0a\u5173\u95ed\u4e86\u8be5\u90e8\u5206\u7684\u7f13\u5b58\u3002\u4e3b\u8981\u9002\u5408\u4e8e\u8bfb\u591a\u5199\u5c11\u7684\u5e94\u7528\u573a\u666f\uff0c\u56e0\u4e3a\u5b83\u662f\u6309\u7167 SQL \u8bed\u53e5\u7684 hash \u503c\u8fdb\u884c\u7f13\u5b58\u7684\uff0c\u5f53\u8868\u6570\u636e\u53d1\u751f\u53d8\u5316\u540e\u5373\u5931\u6548\u3002")),(0,t.yg)("h4",{id:"session-\u79c1\u6709\u5185\u5b58"},"Session \u79c1\u6709\u5185\u5b58"),(0,t.yg)("p",null,"\u5171\u4eab\u5185\u5b58\u4e2d\u4ecb\u7ecd\u7684\u5185\u5b58\u7a7a\u95f4\u662f\u5b9e\u4f8b\u521b\u5efa\u65f6\u5373\u5206\u914d\u7684\u5185\u5b58\u7a7a\u95f4\uff0c\u5e76\u4e14\u662f\u6240\u6709\u8fde\u63a5\u5171\u4eab\u7684\u3002"),(0,t.yg)("p",null,"\u53c2\u6570\u8bf4\u660e\uff1a"),(0,t.yg)("ul",null,(0,t.yg)("li",{parentName:"ul"},"read_buffer&read_rnd_buffer\n\u5206\u522b\u5b58\u653e\u4e86\u5bf9\u987a\u5e8f\u548c\u968f\u673a\u626b\u63cf\uff08\u4f8b\u5982\u6309\u7167\u6392\u5e8f\u7684\u987a\u5e8f\u8bbf\u95ee\uff09\u7684\u7f13\u5b58\uff0cRDS \u7ed9\u6bcf\u4e2a session \u8bbe\u7f6e 256 K \u7684\u5927\u5c0f\u3002\u5f53 thread \u8fdb\u884c\u987a\u5e8f\u6216\u968f\u673a\u626b\u63cf\u6570\u636e\u65f6\u4f1a\u9996\u5148\u626b\u63cf\u8be5 buffer \u7a7a\u95f4\u4ee5\u907f\u514d\u66f4\u591a\u7684\u7269\u7406\u8bfb\u3002"),(0,t.yg)("li",{parentName:"ul"},"sort_buffer\n\u9700\u8981\u6267\u884c order by \u548c group by \u7684 SQL \u90fd\u4f1a\u5206\u914d sort_buffer\uff0c\u7528\u4e8e\u5b58\u50a8\u6392\u5e8f\u7684\u4e2d\u95f4\u7ed3\u679c\uff0c\u5728 RDS \u4e0a\u8bbe\u7f6e 256 K\u3002\u5728\u6392\u5e8f\u8fc7\u7a0b\u4e2d\uff0c\u82e5\u5b58\u50a8\u91cf\u5927\u4e8e sort_buffer_size\uff0c\u5219\u4f1a\u5728\u78c1\u76d8\u751f\u6210\u4e34\u65f6\u8868\u4ee5\u5b8c\u6210\u64cd\u4f5c\u3002\u5728 Linux \u7cfb\u7edf\u4e2d\uff0c\u5f53\u5206\u914d\u7a7a\u95f4\u5927\u4e8e 2 M \u65f6\u4f1a\u4f7f\u7528 mmap() \u800c\u4e0d\u662f malloc() \u6765\u8fdb\u884c\u5185\u5b58\u5206\u914d\uff0c\u5bfc\u81f4\u6548\u7387\u964d\u4f4e\u3002"),(0,t.yg)("li",{parentName:"ul"},"join_buffer\nMySQL \u4ec5\u652f\u6301 nest loop \u7684 join \u7b97\u6cd5\uff0cRDS \u8bbe\u7f6e 256 K \u7684\u5927\u5c0f\u3002\u5904\u7406\u903b\u8f91\u662f\u9a71\u52a8\u8868\u7684\u4e00\u884c\u548c\u975e\u9a71\u52a8\u8868\u8054\u5408\u67e5\u627e\uff0c\u8fd9\u65f6\u5c31\u53ef\u4ee5\u5c06\u975e\u9a71\u52a8\u8868\u653e\u5165 join_buffer\uff0c\u4e0d\u9700\u8981\u8bbf\u95ee\u62e5\u6709\u5e76\u53d1\u4fdd\u62a4\u673a\u5236\u7684 buffer_pool\u3002"),(0,t.yg)("li",{parentName:"ul"},"binlog_cache\n\u8be5\u533a\u57df\u7528\u6765\u7f13\u5b58\u8be5 thread \u7684 binlog \u65e5\u5fd7\uff0cRDS \u8bbe\u7f6e 256 K \u7684\u5927\u5c0f\u3002\u5728\u4e00\u4e2a\u4e8b\u52a1\u8fd8\u6ca1\u6709 commit \u4e4b\u524d\u4f1a\u5148\u5c06\u5176\u65e5\u5fd7\u5b58\u50a8\u4e8e binlog_cache \u4e2d\uff0c\u7b49\u5230\u4e8b\u52a1 commit \u540e\u4f1a\u5c06\u5176 binlog \u5237\u56de\u78c1\u76d8\u4e0a\u7684 binlog \u6587\u4ef6\u4ee5\u6301\u4e45\u5316\u3002"),(0,t.yg)("li",{parentName:"ul"},"tmp_table\n\u4e0d\u540c\u4e8e\u4e0a\u9762\u5404\u4e2a session \u5c42\u6b21\u7684 buffer\uff0c\u8fd9\u4e2a\u53c2\u6570\u53ef\u4ee5\u5728\u63a7\u5236\u53f0\u4e0a\u4fee\u6539\u3002\u8be5\u53c2\u6570\u662f\u6307\u7528\u6237\u5185\u5b58\u4e34\u65f6\u8868\u7684\u5927\u5c0f\uff0c\u5982\u679c\u8be5 thread \u521b\u5efa\u7684\u4e34\u65f6\u8868\u8d85\u8fc7\u5b83\u8bbe\u7f6e\u7684\u5927\u5c0f\u4f1a\u628a\u4e34\u65f6\u8868\u8f6c\u6362\u4e3a\u78c1\u76d8\u4e0a\u7684\u4e00\u5f20 MyISAM \u4e34\u65f6\u8868\u3002\u5982\u679c\u7528\u6237\u5728\u6267\u884c\u4e8b\u52a1\u65f6\u9047\u5230\u7c7b\u4f3c\u5982\u4e0b\u8fd9\u6837\u7684\u9519\u8bef\uff0c\u53ef\u4ee5\u8003\u8651\u589e\u5927 tmp_table \u7684\u503c\u3002")),(0,t.yg)("h4",{id:"\u5982\u4f55\u8bbe\u7f6e"},"\u5982\u4f55\u8bbe\u7f6e"),(0,t.yg)("p",null,"\u9488\u5bf9\u5f53\u524dMySQL\u4f01\u4e1a\u7528\u6237\u7684\u5b9e\u9645\u73af\u5883\uff08\u5927\u5185\u5b58\uff09\uff1a"),(0,t.yg)("ol",null,(0,t.yg)("li",{parentName:"ol"},"\u5728\u4e13\u7528\u6570\u636e\u5e93\u670d\u52a1\u5668\u4e0a\uff0c\u53ef\u4ee5\u5c06innodb_buffer_pool_size\u8bbe\u7f6e\u4e3a\u8ba1\u7b97\u673a\u7269\u7406\u5185\u5b58\u5927\u5c0f\u768480\uff05;"),(0,t.yg)("li",{parentName:"ol"},"\u5728innodb_buffer_pool_size\u8bbe\u7f6e\u6bd4\u8f83\u5927\u7684\u60c5\u51b5\u4e0b\uff0c\u53ef\u4ee5\u5c06innodb_buffer_pool_instances\u7684\u503c\u8bbe\u7f6e\u4e3a8-16\uff0c\u4fdd\u8bc1\u4e00\u4e2apool 10G\u4ee5\u4e0a\u3002")),(0,t.yg)("p",null,"\uff08\u6ce8\u610finnodb_buffer_pool_size\u5fc5\u987b\u4e3a\xa0innodb_buffer_pool_instances \u7684\u500d\u6570\uff09"),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-shell"},"#\u901a\u8fc7SQL\u4fee\u6539 \u91cd\u542f\u540e\u5931\u6548 2G\nset global innodb_buffer_pool_size = 2147483648\n\n#\u4fee\u6539my.cnf\u914d\u7f6e \u9700\u8981\u91cd\u542f\ninnodb_buffer_pool_size = 2147483648\ninnodb_buffer_pool_size = 2G\ninnodb_buffer_pool_size = 2048M\n")),(0,t.yg)("h3",{id:"\u67e5\u8be2\u4f18\u5316"},"\u67e5\u8be2\u4f18\u5316"),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-sql"},"#\n-- \u67e5\u8be2\u7f13\u5b58\nshow variables where variable_name in (\n'have_query_cache','query_cache_limit','query_cache_min_res_unit','query_cache_size','query_cache_type','query_cache_wlock_invalidate'\n);\n")),(0,t.yg)("ol",null,(0,t.yg)("li",{parentName:"ol"},"have_query_cache\uff1a\u5f53\u524d\u7684MYSQL\u7248\u672c\u662f\u5426\u652f\u6301\u201c\u67e5\u8be2\u7f13\u5b58\u201d\u529f\u80fd\u3002"),(0,t.yg)("li",{parentName:"ol"},"query_cache_min_res_unit\uff1a\u67e5\u8be2\u7f13\u5b58\u5206\u914d\u7684\u6700\u5c0f\u5757\uff08\u5b57\u8282\uff09\u3002\u9ed8\u8ba4\u503c\u662f4096\uff084KB\uff09\u3002\u5f53\u67e5\u8be2\u8fdb\u884c\u65f6\uff0cMySQL\u628a\u67e5\u8be2\u7ed3\u679c\u4fdd\u5b58\u5728query cache\uff0c\u4f46\u662f\u5982\u679c\u4fdd\u5b58\u7684\u7ed3\u679c\u6bd4\u8f83\u5927\uff0c\u8d85\u8fc7\u4e86query_cache_min_res_unit\u7684\u503c\uff0c\u8fd9\u65f6\u5019MySQL\u5c06\u4e00\u8fb9\u68c0\u7d22\u7ed3\u679c\uff0c\u4e00\u8fb9\u8fdb\u884c\u4fdd\u5b58\u7ed3\u679c\u3002\u4ed6\u4fdd\u5b58\u7ed3\u679c\u4e5f\u662f\u6309\u9ed8\u8ba4\u5927\u5c0f\u5148\u5206\u914d\u4e00\u5757\u7a7a\u95f4\uff0c\u5982\u679c\u4e0d\u591f\uff0c\u53c8\u8981\u7533\u8bf7\u65b0\u7684\u7a7a\u95f4\u7ed9\u4ed6\u3002\u5982\u679c\u67e5\u8be2\u7ed3\u679c\u6bd4\u8f83\u5c0f\uff0c\u9ed8\u8ba4\u7684query_cache_min_res_unit\u53ef\u80fd\u9020\u6210\u5927\u91cf\u7684\u5185\u5b58\u788e\u7247\uff0c\u5982\u679c\u67e5\u8be2\u7ed3\u679c\u6bd4\u8f83\u5927\uff0c\u9ed8\u8ba4\u7684query_cache_min_res_unit\u53c8\u4e0d\u591f\uff0c\u5bfc\u81f4\u4e00\u76f4\u5206\u914d\u5757\u7a7a\u95f4\uff0c\u6240\u4ee5\u53ef\u4ee5\u6839\u636e\u5b9e\u9645\u9700\u6c42\uff0c\u8c03\u8282query_cache_min_res_unit\u7684\u5927\u5c0f\u3002\u6ce8\uff1a\u5982\u679c\u4e0a\u9762\u8bf4\u7684\u5185\u5bb9\u6709\u70b9\u5f2f\u5f2f\u7ed5\uff0c\u90a3\u4e3e\u4e2a\u73b0\u5b9e\u751f\u6d3b\u4e2d\u7684\u4f8b\u5b50\uff0c\u6bd4\u5982\u54b1\u73b0\u5728\u8981\u7ed9\u8fd0\u52a8\u5458\u9001\u6c34\uff0c\u9ed8\u8ba4\u7684\u662f500ml\u7684\u74f6\u5b50\uff0c\u5982\u679c\u8fc7\u6765\u7684\u662f\u5c11\u5e74\u8fd0\u52a8\u5458\uff0c\u53ef\u80fd500ml\u592a\u5927\u4e86\uff0c\u4ed6\u4eec\u559d\u4e0d\u5b8c\uff0c\u9020\u6210\u4e86\u6d6a\u8d39\uff0c\u90a3\u6211\u4eec\u5c31\u53ef\u4ee5\u9009\u62e9300ml\u7684\u74f6\u5b50\uff0c\u5982\u679c\u8fc7\u6765\u7684\u662f\u6210\u5e74\u8fd0\u52a8\u5458\uff0c\u53ef\u80fd500ml\u4e0d\u591f\uff0c\u90a3\u4ed6\u4eec\u4e00\u74f6\u559d\u5b8c\u4e86\uff0c\u53c8\u5f00\u4e00\u74f6\uff0c\u76f4\u63a5\u4e0d\u6e34\u4e3a\u6b62\u3002\u90a3\u4e48\u90a3\u6837\u5f00\u74f6\u5b50\u4e5f\u8981\u65f6\u95f4\uff0c\u6211\u4eec\u5c31\u53ef\u4ee5\u9009\u62e91000ml\u7684\u74f6\u5b50\u3002"),(0,t.yg)("li",{parentName:"ol"},"query_cache_size\uff1a\u4e3a\u7f13\u5b58\u67e5\u8be2\u7ed3\u679c\u5206\u914d\u7684\u603b\u5185\u5b58\u3002"),(0,t.yg)("li",{parentName:"ol"},"query_cache_type\uff1a\u9ed8\u8ba4\u4e3aon\u3002"),(0,t.yg)("li",{parentName:"ol"},"query_cache_wlock_invalidate\uff1a\u5982\u679c\u8be5\u8868\u88ab\u9501\u4f4f\uff0c\u662f\u5426\u8fd4\u56de\u7f13\u5b58\u4e2d\u7684\u6570\u636e\uff0c\u9ed8\u8ba4\u662f\u5173\u95ed\u7684\u3002")),(0,t.yg)("p",null,"MYSQL\u7684\u67e5\u8be2\u7f13\u5b58\u5b9e\u8d28\u4e0a\u662f\u7f13\u5b58SQL\u7684hash\u503c\u548c\u8be5SQL\u7684\u67e5\u8be2\u7ed3\u679c\uff0c\u5982\u679c\u8fd0\u884c\u76f8\u540c\u7684SQL,\u670d\u52a1\u5668\u76f4\u63a5\u4ece\u7f13\u5b58\u4e2d\u53bb\u6389\u7ed3\u679c\uff0c\u800c\u4e0d\u518d\u53bb\u89e3\u6790\uff0c\u4f18\u5316\uff0c\u5bfb\u627e\u6700\u4f4e\u6210\u672c\u7684\u6267\u884c\u8ba1\u5212\u7b49\u4e00\u7cfb\u5217\u64cd\u4f5c\uff0c\u5927\u5927\u63d0\u5347\u4e86\u67e5\u8be2\u901f\u5ea6\u3002\n\u4f46\u662f\u4e07\u4e8b\u6709\u5229\u4e5f\u6709\u5f0a\u3002"),(0,t.yg)("ul",null,(0,t.yg)("li",{parentName:"ul"},"\u7b2c\u4e00\u4e2a\u5f0a\u7aef\u5c31\u662f\u5982\u679c\u8868\u7684\u6570\u636e\u6709\u4e00\u6761\u53d1\u751f\u53d8\u5316\uff0c\u90a3\u4e48\u7f13\u5b58\u597d\u7684\u7ed3\u679c\u5c06\u5168\u90e8\u4e0d\u518d\u6709\u6548\u3002\u8fd9\u5bf9\u4e8e\u9891\u7e41\u66f4\u65b0\u7684\u8868\uff0c\u67e5\u8be2\u7f13\u5b58\u662f\u4e0d\u9002\u5408\u7684\u3002"),(0,t.yg)("li",{parentName:"ul"},"\u7b2c\u4e8c\u4e2a\u5f0a\u7aef\u5c31\u662f\u7f13\u5b58\u673a\u5236\u662f\u901a\u8fc7\u5bf9SQL\u7684hash\uff0c\u5f97\u51fa\u7684\u503c\u4e3akey\uff0c\u67e5\u8be2\u7ed3\u679c\u4e3avalue\u6765\u5b58\u653e\u7684\uff0c\u90a3\u4e48\u5c31\u610f\u5473\u7740SQL\u5fc5\u987b\u5b8c\u5b8c\u5168\u5168\u4e00\u6a21\u4e00\u6837\uff0c\u5426\u5219\u5c31\u547d\u4e0d\u4e2d\u7f13\u5b58\u3002")),(0,t.yg)("p",null,"\u9ed8\u8ba4query_cache_type\u8bbe\u7f6e\u4e3aOFF\uff0c\u5176\u5b9e\u7f51\u4e0a\u8d44\u6599\u548c\u5404\u5927\u4e91\u5382\u5546\u63d0\u4f9b\u7684\u4e91\u670d\u52a1\u5668\u90fd\u662f\u5c06\u8fd9\u4e2a\u529f\u80fd\u5173\u95ed\u7684\uff0c\u4ece\u4e0a\u9762\u7684\u539f\u7406\u6765\u770b\uff0c\u5728\u4e00\u822c\u60c5\u51b5\u4e0b\uff0c\u4ed6\u7684\u5f0a\u7aef\u5927\u4e8e\u4f18\u70b9\u3002"),(0,t.yg)("h3",{id:"\u5197\u4f59\u7d22\u5f15"},"\u5197\u4f59\u7d22\u5f15"),(0,t.yg)("p",null,"\u5197\u4f59\u7d22\u5f15\u6307\u7684\u662f\u7d22\u5f15\u7684\u529f\u80fd\u76f8\u540c\uff0c\u80fd\u591f\u547d\u4e2d\u5c31\u80af\u5b9a\u80fd\u547d\u4e2d \uff0c\u90a3\u4e48\u5c31\u662f\u5197\u4f59\u7d22\u5f15\u5982\uff08name,city \uff09\u548c\uff08name \uff09\u8fd9\u4e24\u4e2a\u7d22\u5f15\u5c31\u662f\u5197\u4f59\u7d22\u5f15\uff0c\u80fd\u591f\u547d\u4e2d\u540e\u8005\u7684\u67e5\u8be2\u80af\u5b9a\u662f\u80fd\u591f\u547d\u4e2d\u524d\u8005\u7684 \u5728\u5927\u591a\u6570\u60c5\u51b5\u4e0b\uff0c\u90fd\u5e94\u8be5\u5c3d\u91cf\u6269\u5c55\u5df2\u6709\u7684\u7d22\u5f15\u800c\u4e0d\u662f\u521b\u5efa\u65b0\u7d22\u5f15\u3002\nMySQLS.7 \u7248\u672c\u540e\uff0c\u53ef\u4ee5\u901a\u8fc7\u67e5\u8be2 sys \u5e93\u7684 schema_redundant_indexes \u8868\u6765\u67e5\u770b\u5197\u4f59\u7d22\u5f15\u3002"),(0,t.yg)("h3",{id:"\u5b58\u50a8\u5f15\u64ce"},"\u5b58\u50a8\u5f15\u64ce"),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-sql"},"-- \u67e5\u8be2\u5f53\u524d\u6570\u636e\u5e93\u670d\u52a1\u5668\u652f\u6301\u7684\u5b58\u50a8\u5f15\u64ce\u5217\u8868\nshow engines;\n-- \u67e5\u770b\u9ed8\u8ba4\u7684\u5b58\u50a8\u5f15\u64ce\nshow variables like '%storage_engine%';\n-- \u67e5\u770b\u8868\u7684\u5b58\u50a8\u5f15\u64ce\u53ca\u5176\u4ed6\u76f8\u5173\u4fe1\u606f\nshow table status like \"table_name\";\n")),(0,t.yg)("h3",{id:"myisam\u548cinnodb\u533a\u522b"},"MyISAM\u548cInnoDB\u533a\u522b"),(0,t.yg)("p",null,"MyISAM\u662fMySQL\u7684\u9ed8\u8ba4\u6570\u636e\u5e93\u5f15\u64ce\uff085.5\u7248\u4e4b\u524d\uff09\u3002\u867d\u7136\u6027\u80fd\u6781\u4f73\uff0c\u800c\u4e14\u63d0\u4f9b\u4e86\u5927\u91cf\u7684\u7279\u6027\uff0c\u5305\u62ec\u5168\u6587\u7d22\u5f15\u3001\u538b\u7f29\u3001\u7a7a\u95f4\u51fd\u6570\u7b49\uff0c\u4f46MyISAM\u4e0d\u652f\u6301\u4e8b\u52a1\u548c\u884c\u7ea7\u9501\uff0c\u800c\u4e14\u6700\u5927\u7684\u7f3a\u9677\u5c31\u662f\u5d29\u6e83\u540e\u65e0\u6cd5\u5b89\u5168\u6062\u590d\u3002\u4e0d\u8fc7\uff0c5.5\u7248\u672c\u4e4b\u540e\uff0cMySQL\u5f15\u5165\u4e86InnoDB\uff08\u4e8b\u52a1\u6027\u6570\u636e\u5e93\u5f15\u64ce\uff09\uff0cMySQL 5.5\u7248\u672c\u540e\u9ed8\u8ba4\u7684\u5b58\u50a8\u5f15\u64ce\u4e3aInnoDB\u3002\n\u5927\u591a\u6570\u65f6\u5019\u6211\u4eec\u4f7f\u7528\u7684\u90fd\u662f InnoDB \u5b58\u50a8\u5f15\u64ce\uff0c\u4f46\u662f\u5728\u67d0\u4e9b\u60c5\u51b5\u4e0b\u4f7f\u7528 MyISAM \u4e5f\u662f\u5408\u9002\u7684\u6bd4\u5982\u8bfb\u5bc6\u96c6\u7684\u60c5\u51b5\u4e0b\u3002\uff08\u5982\u679c\u4f60\u4e0d\u4ecb\u610f MyISAM \u5d29\u6e83\u56de\u590d\u95ee\u9898\u7684\u8bdd\uff09\u3002"),(0,t.yg)("p",null,"\u4e24\u8005\u7684\u5bf9\u6bd4\uff1a"),(0,t.yg)("ol",null,(0,t.yg)("li",{parentName:"ol"},"\u662f\u5426\u652f\u6301\u884c\u7ea7\u9501: MyISAM \u53ea\u6709\u8868\u7ea7\u9501(table-level locking)\uff0c\u800cInnoDB \u652f\u6301\u884c\u7ea7\u9501(row-level locking)\u548c\u8868\u7ea7\u9501,\u9ed8\u8ba4\u4e3a\u884c\u7ea7\u9501\u3002"),(0,t.yg)("li",{parentName:"ol"},"\u662f\u5426\u652f\u6301\u4e8b\u52a1\u548c\u5d29\u6e83\u540e\u7684\u5b89\u5168\u6062\u590d\uff1aMyISAM\u5f3a\u8c03\u7684\u662f\u6027\u80fd\uff0c\u6bcf\u6b21\u67e5\u8be2\u5177\u6709\u539f\u5b50\u6027,\u5176\u6267\u884c\u6bd4InnoDB\u7c7b\u578b\u66f4\u5feb\uff0c\u4f46\u662f\u4e0d\u63d0\u4f9b\u4e8b\u52a1\u652f\u6301\u3002\u4f46\u662fInnoDB\u63d0\u4f9b\u4e8b\u52a1\u652f\u6301\u4e8b\u52a1\uff0c\u5916\u90e8\u952e\u7b49\u9ad8\u7ea7\u6570\u636e\u5e93\u529f\u80fd\u3002\u5177\u6709\u4e8b\u52a1(commit)\u3001\u56de\u6eda(rollback)\u548c\u5d29\u6e83\u4fee\u590d\u80fd\u529b(crash recovery capabilities)\u7684\u4e8b\u52a1\u5b89\u5168(transaction-safe (ACID compliant))\u578b\u8868\u3002"),(0,t.yg)("li",{parentName:"ol"},"\u662f\u5426\u652f\u6301\u5916\u952e\uff1aMyISAM\u4e0d\u652f\u6301\uff0c\u800cInnoDB\u652f\u6301\u3002"),(0,t.yg)("li",{parentName:"ol"},"\u662f\u5426\u652f\u6301MVCC\uff1a\u4ec5 InnoDB \u652f\u6301\u3002\u5e94\u5bf9\u9ad8\u5e76\u53d1\u4e8b\u52a1, MVCC\u6bd4\u5355\u7eaf\u7684\u52a0\u9501\u66f4\u9ad8\u6548;MVCC\u53ea\u5728 READ COMMITTED\u548c REPEATABLE READ\u4e24\u4e2a\u9694\u79bb\u7ea7\u522b\u4e0b\u5de5\u4f5c;MVCC\u53ef\u4ee5\u4f7f\u7528 \u4e50\u89c2(optimistic)\u9501 \u548c \u60b2\u89c2(pessimistic)\u9501\u6765\u5b9e\u73b0;\u5404\u6570\u636e\u5e93\u4e2dMVCC\u5b9e\u73b0\u5e76\u4e0d\u7edf\u4e00\u3002"),(0,t.yg)("li",{parentName:"ol"},"......")),(0,t.yg)("p",null,"\u300aMySQL\u9ad8\u6027\u80fd\u300b\u4e0a\u9762\u6709\u4e00\u53e5\u8bdd\u8fd9\u6837\u5199\u5230:"),(0,t.yg)("blockquote",null,(0,t.yg)("p",{parentName:"blockquote"},"\u4e0d\u8981\u8f7b\u6613\u76f8\u4fe1\u201cMyISAM\u6bd4InnoDB\u5feb\u201d\u4e4b\u7c7b\u7684\u7ecf\u9a8c\u4e4b\u8c08\uff0c\u8fd9\u4e2a\u7ed3\u8bba\u5f80\u5f80\u4e0d\u662f\u7edd\u5bf9\u7684\u3002\u5728\u5f88\u591a\u6211\u4eec\u5df2\u77e5\u573a\u666f\u4e2d\uff0cInnoDB\u7684\u901f\u5ea6\u90fd\u53ef\u4ee5\u8ba9MyISAM\u671b\u5c18\u83ab\u53ca\uff0c\u5c24\u5176\u662f\u7528\u5230\u4e86\u805a\u7c07\u7d22\u5f15\uff0c\u6216\u8005\u9700\u8981\u8bbf\u95ee\u7684\u6570\u636e\u90fd\u53ef\u4ee5\u653e\u5165\u5185\u5b58\u7684\u5e94\u7528\u3002")),(0,t.yg)("p",null,"\u4e00\u822c\u60c5\u51b5\u4e0b\u6211\u4eec\u9009\u62e9 InnoDB \u90fd\u662f\u6ca1\u6709\u95ee\u9898\u7684\uff0c\u4f46\u662f\u67d0\u4e8b\u60c5\u51b5\u4e0b\u4f60\u5e76\u4e0d\u5728\u4e4e\u53ef\u6269\u5c55\u80fd\u529b\u548c\u5e76\u53d1\u80fd\u529b\uff0c\u4e5f\u4e0d\u9700\u8981\u4e8b\u52a1\u652f\u6301\uff0c\u4e5f\u4e0d\u5728\u4e4e\u5d29\u6e83\u540e\u7684\u5b89\u5168\u6062\u590d\u95ee\u9898\u7684\u8bdd\uff0c\u9009\u62e9MyISAM\u4e5f\u662f\u4e00\u4e2a\u4e0d\u9519\u7684\u9009\u62e9\u3002\u4f46\u662f\u4e00\u822c\u60c5\u51b5\u4e0b\uff0c\u6211\u4eec\u90fd\u662f\u9700\u8981\u8003\u8651\u5230\u8fd9\u4e9b\u95ee\u9898\u7684\u3002"),(0,t.yg)("h3",{id:"\u4e50\u89c2\u9501\u4e0e\u60b2\u89c2\u9501\u7684\u533a\u522b"},"\u4e50\u89c2\u9501\u4e0e\u60b2\u89c2\u9501\u7684\u533a\u522b"),(0,t.yg)("h4",{id:""}),(0,t.yg)("h4",{id:"\u60b2\u89c2\u9501"},"\u60b2\u89c2\u9501"),(0,t.yg)("p",null,"\u603b\u662f\u5047\u8bbe\u6700\u574f\u7684\u60c5\u51b5\uff0c\u6bcf\u6b21\u53bb\u62ff\u6570\u636e\u7684\u65f6\u5019\u90fd\u8ba4\u4e3a\u522b\u4eba\u4f1a\u4fee\u6539\uff0c\u6240\u4ee5\u6bcf\u6b21\u5728\u62ff\u6570\u636e\u7684\u65f6\u5019\u90fd\u4f1a\u4e0a\u9501\uff0c\u8fd9\u6837\u522b\u4eba\u60f3\u62ff\u8fd9\u4e2a\u6570\u636e\u5c31\u4f1a\u963b\u585e\u76f4\u5230\u5b83\u62ff\u5230\u9501\uff08\u5171\u4eab\u8d44\u6e90\u6bcf\u6b21\u53ea\u7ed9\u4e00\u4e2a\u7ebf\u7a0b\u4f7f\u7528\uff0c\u5176\u5b83\u7ebf\u7a0b\u963b\u585e\uff0c\u7528\u5b8c\u540e\u518d\u628a\u8d44\u6e90\u8f6c\u8ba9\u7ed9\u5176\u5b83\u7ebf\u7a0b\uff09\u3002\u4f20\u7edf\u7684\u5173\u7cfb\u578b\u6570\u636e\u5e93\u91cc\u8fb9\u5c31\u7528\u5230\u4e86\u5f88\u591a\u8fd9\u79cd\u9501\u673a\u5236\uff0c\u6bd4\u5982\u884c\u9501\uff0c\u8868\u9501\u7b49\uff0c\u8bfb\u9501\uff0c\u5199\u9501\u7b49\uff0c\u90fd\u662f\u5728\u505a\u64cd\u4f5c\u4e4b\u524d\u5148\u4e0a\u9501\u3002Java\u4e2dsynchronized\u548cReentrantLock\u7b49\u72ec\u5360\u9501\u5c31\u662f\u60b2\u89c2\u9501\u601d\u60f3\u7684\u5b9e\u73b0\u3002"),(0,t.yg)("h4",{id:"\u4e50\u89c2\u9501"},"\u4e50\u89c2\u9501"),(0,t.yg)("p",null,"\u603b\u662f\u5047\u8bbe\u6700\u597d\u7684\u60c5\u51b5\uff0c\u6bcf\u6b21\u53bb\u62ff\u6570\u636e\u7684\u65f6\u5019\u90fd\u8ba4\u4e3a\u522b\u4eba\u4e0d\u4f1a\u4fee\u6539\uff0c\u6240\u4ee5\u4e0d\u4f1a\u4e0a\u9501\uff0c\u4f46\u662f\u5728\u66f4\u65b0\u7684\u65f6\u5019\u4f1a\u5224\u65ad\u4e00\u4e0b\u5728\u6b64\u671f\u95f4\u522b\u4eba\u6709\u6ca1\u6709\u53bb\u66f4\u65b0\u8fd9\u4e2a\u6570\u636e\uff0c\u53ef\u4ee5\u4f7f\u7528\u7248\u672c\u53f7\u673a\u5236\u548cCAS\u7b97\u6cd5\u5b9e\u73b0\u3002\u4e50\u89c2\u9501\u9002\u7528\u4e8e\u591a\u8bfb\u7684\u5e94\u7528\u7c7b\u578b\uff0c\u8fd9\u6837\u53ef\u4ee5\u63d0\u9ad8\u541e\u5410\u91cf\uff0c\u50cf\u6570\u636e\u5e93\u63d0\u4f9b\u7684\u7c7b\u4f3c\u4e8ewrite_condition\u673a\u5236\uff0c\u5176\u5b9e\u90fd\u662f\u63d0\u4f9b\u7684\u4e50\u89c2\u9501\u3002\u5728Java\u4e2djava.util.concurrent.atomic\u5305\u4e0b\u9762\u7684\u539f\u5b50\u53d8\u91cf\u7c7b\u5c31\u662f\u4f7f\u7528\u4e86\u4e50\u89c2\u9501\u7684\u4e00\u79cd\u5b9e\u73b0\u65b9\u5f0fCAS\u5b9e\u73b0\u7684\u3002"),(0,t.yg)("h4",{id:"\u4e24\u79cd\u9501\u7684\u4f7f\u7528\u573a\u666f"},"\u4e24\u79cd\u9501\u7684\u4f7f\u7528\u573a\u666f"),(0,t.yg)("p",null,"\u4ece\u4e0a\u9762\u5bf9\u4e24\u79cd\u9501\u7684\u4ecb\u7ecd\uff0c\u6211\u4eec\u77e5\u9053\u4e24\u79cd\u9501\u5404\u6709\u4f18\u7f3a\u70b9\uff0c\u4e0d\u53ef\u8ba4\u4e3a\u4e00\u79cd\u597d\u4e8e\u53e6\u4e00\u79cd\uff0c\u50cf\u4e50\u89c2\u9501\u9002\u7528\u4e8e\u5199\u6bd4\u8f83\u5c11\u7684\u60c5\u51b5\u4e0b\uff08\u591a\u8bfb\u573a\u666f\uff09\uff0c\u5373\u51b2\u7a81\u771f\u7684\u5f88\u5c11\u53d1\u751f\u7684\u65f6\u5019\uff0c\u8fd9\u6837\u53ef\u4ee5\u7701\u53bb\u4e86\u9501\u7684\u5f00\u9500\uff0c\u52a0\u5927\u4e86\u7cfb\u7edf\u7684\u6574\u4e2a\u541e\u5410\u91cf\u3002\u4f46\u5982\u679c\u662f\u591a\u5199\u7684\u60c5\u51b5\uff0c\u4e00\u822c\u4f1a\u7ecf\u5e38\u4ea7\u751f\u51b2\u7a81\uff0c\u8fd9\u5c31\u4f1a\u5bfc\u81f4\u4e0a\u5c42\u5e94\u7528\u4f1a\u4e0d\u65ad\u7684\u8fdb\u884cretry\uff0c\u8fd9\u6837\u53cd\u5012\u662f\u964d\u4f4e\u4e86\u6027\u80fd\uff0c\u6240\u4ee5\u4e00\u822c\u591a\u5199\u7684\u573a\u666f\u4e0b\u7528\u60b2\u89c2\u9501\u5c31\u6bd4\u8f83\u5408\u9002\u3002"),(0,t.yg)("h3",{id:"\u65e5\u5fd7\u76f8\u5173binlog\u7b49"},"\u65e5\u5fd7\u76f8\u5173/Binlog\u7b49"),(0,t.yg)("h4",{id:"binlog\u5f55\u5165\u683c\u5f0f"},"Binlog\u5f55\u5165\u683c\u5f0f"),(0,t.yg)("ul",null,(0,t.yg)("li",{parentName:"ul"},"\u6709\u4e09\u79cd\u683c\u5f0f\uff0cstatement\uff0crow\u548cmixed\u3002",(0,t.yg)("ul",{parentName:"li"},(0,t.yg)("li",{parentName:"ul"},"statement\u6a21\u5f0f\u4e0b\uff0c\u6bcf\u4e00\u6761\u4f1a\u4fee\u6539\u6570\u636e\u7684sql\u90fd\u4f1a\u8bb0\u5f55\u5728binlog\u4e2d\u3002\u4e0d\u9700\u8981\u8bb0\u5f55\u6bcf\u4e00\u884c\u7684\u53d8\u5316\uff0c\u51cf\u5c11\u4e86binlog\u65e5\u5fd7\u91cf\uff0c\u8282\u7ea6\u4e86IO\uff0c\u63d0\u9ad8\u6027\u80fd\u3002\u7531\u4e8esql\u7684\u6267\u884c\u662f\u6709\u4e0a\u4e0b\u6587\u7684\uff0c\u56e0\u6b64\u5728\u4fdd\u5b58\u7684\u65f6\u5019\u9700\u8981\u4fdd\u5b58\u76f8\u5173\u7684\u4fe1\u606f\uff0c\u540c\u65f6\u8fd8\u6709\u4e00\u4e9b\u4f7f\u7528\u4e86\u51fd\u6570\u4e4b\u7c7b\u7684\u8bed\u53e5\u65e0\u6cd5\u88ab\u8bb0\u5f55\u590d\u5236\u3002"),(0,t.yg)("li",{parentName:"ul"},"row\u7ea7\u522b\u4e0b\uff0c\u4e0d\u8bb0\u5f55sql\u8bed\u53e5\u4e0a\u4e0b\u6587\u76f8\u5173\u4fe1\u606f\uff0c\u4ec5\u4fdd\u5b58\u54ea\u6761\u8bb0\u5f55\u88ab\u4fee\u6539\u3002\u8bb0\u5f55\u5355\u5143\u4e3a\u6bcf\u4e00\u884c\u7684\u6539\u52a8\uff0c\u57fa\u672c\u662f\u53ef\u4ee5\u5168\u90e8\u8bb0\u4e0b\u6765\u4f46\u662f\u7531\u4e8e\u5f88\u591a\u64cd\u4f5c\uff0c\u4f1a\u5bfc\u81f4\u5927\u91cf\u884c\u7684\u6539\u52a8(\u6bd4\u5982alter table)\uff0c\u56e0\u6b64\u8fd9\u79cd\u6a21\u5f0f\u7684\u6587\u4ef6\u4fdd\u5b58\u7684\u4fe1\u606f\u592a\u591a\uff0c\u65e5\u5fd7\u91cf\u592a\u5927\u3002"),(0,t.yg)("li",{parentName:"ul"},"mixed\uff0c\u4e00\u79cd\u6298\u4e2d\u7684\u65b9\u6848\uff0c\u666e\u901a\u64cd\u4f5c\u4f7f\u7528statement\u8bb0\u5f55\uff0c\u5f53\u65e0\u6cd5\u4f7f\u7528statement\u7684\u65f6\u5019\u4f7f\u7528row\u3002"))),(0,t.yg)("li",{parentName:"ul"},"\u6b64\u5916\uff0c\u65b0\u7248\u7684MySQL\u4e2d\u5bf9row\u7ea7\u522b\u4e5f\u505a\u4e86\u4e00\u4e9b\u4f18\u5316\uff0c\u5f53\u8868\u7ed3\u6784\u53d1\u751f\u53d8\u5316\u7684\u65f6\u5019\uff0c\u4f1a\u8bb0\u5f55\u8bed\u53e5\u800c\u4e0d\u662f\u9010\u884c\u8bb0\u5f55\u3002")),(0,t.yg)("h4",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,t.yg)("ol",null,(0,t.yg)("li",{parentName:"ol"},(0,t.yg)("a",{parentName:"li",href:"https://blog.csdn.net/horses/article/details/106053399?utm_medium=distribute.pc_category.none-task-blog-hot-10.nonecase&depth_1-utm_source=distribute.pc_category.none-task-blog-hot-10.nonecase&request_id="},"MySQL \u670d\u52a1\u5668\u4e2d\u7684 6 \u79cd\u65e5\u5fd7\u7c7b\u578b"))),(0,t.yg)("h3",{id:"\u5360\u7528\u78c1\u76d8\u5927\u5c0f\u6570\u636e\u5927\u5c0f\u7d22\u5f15\u5927\u5c0f"},"\u5360\u7528\u78c1\u76d8\u5927\u5c0f/\u6570\u636e\u5927\u5c0f/\u7d22\u5f15\u5927\u5c0f"),(0,t.yg)("pre",null,(0,t.yg)("code",{parentName:"pre",className:"language-sql"},"-- \u67e5\u770b\u6240\u6709\u6570\u636e\u5e93\u6570\u636e\u5927\u5c0f\u548c\u7d22\u5f15\u5927\u5c0f\nselect TABLE_SCHEMA, \nconcat(truncate(sum(data_length)/1024/1024,2),' MB') as data_size,\nsum(data_length) as data_size_B,\nconcat(truncate(sum(index_length)/1024/1024,2),'MB') as index_size,\nsum(index_length) as index_size_B\nfrom information_schema.tables\ngroup by TABLE_SCHEMA\norder by data_size_B desc;\n\n-- \u67e5\u770b\u67d0\u4e2a\u6570\u636e\u5e93\u6240\u6709\u6570\u636e\u8868\u6570\u636e\u5927\u5c0f\u548c\u7d22\u5f15\u5927\u5c0f\nselect TABLE_NAME, \nconcat(truncate(sum(data_length)/1024/1024,2),' MB') as data_size,\nsum(data_length) as data_size_B,\nconcat(truncate(sum(index_length)/1024/1024,2),'MB') as index_size,\nsum(index_length) as index_size_B\nfrom information_schema.tables\n where TABLE_SCHEMA = 'newcloud'\ngroup by TABLE_NAME\norder by data_size_B desc;\n\n-- \u67e5\u770b\u67d0\u4e2a\u6570\u636e\u5e93\u67d0\u4e2a\u6570\u636e\u8868\u6570\u636e\u5927\u5c0f\u548c\u7d22\u5f15\u5927\u5c0f\nselect TABLE_NAME, \nconcat(truncate(sum(data_length)/1024/1024,2),' MB') as data_size,\nsum(data_length) as data_size_B,\nconcat(truncate(sum(index_length)/1024/1024,2),'MB') as index_size,\nsum(index_length) as index_size_B\nfrom information_schema.tables\nwhere TABLE_SCHEMA = 'newcloud'\nand table_name='log_err_flow'\ngroup by TABLE_NAME\norder by data_size_B desc;\n")),(0,t.yg)("h3",{id:"\u4f18\u5316"},"\u4f18\u5316"),(0,t.yg)("ol",null,(0,t.yg)("li",{parentName:"ol"},(0,t.yg)("a",{parentName:"li",href:"https://cloud.tencent.com/developer/article/1580260"},"\u7a0b\u5e8f\u5458\u8fdb\u9636\u5fc5\u8bfb\uff0c\u4e07\u5b57\u603b\u7ed3Mysql\u4f18\u5316\u7cbe\u534e\u7bc7"))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/74adc76f.ede17127.js b/assets/js/74adc76f.61a864d2.js similarity index 98% rename from assets/js/74adc76f.ede17127.js rename to assets/js/74adc76f.61a864d2.js index 11157344e..227565c07 100644 --- a/assets/js/74adc76f.ede17127.js +++ b/assets/js/74adc76f.61a864d2.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1399],{5680:(e,t,n)=>{n.d(t,{xA:()=>p,yg:()=>y});var r=n(6540);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),u=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=u(e.components);return r.createElement(l.Provider,{value:t},e.children)},s="mdxType",f={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),s=u(n),d=a,y=s["".concat(l,".").concat(d)]||s[d]||f[d]||o;return n?r.createElement(y,i(i({ref:t},p),{},{components:n})):r.createElement(y,i({ref:t},p))}));function y(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=d;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[s]="string"==typeof e?e:a,i[1]=c;for(var u=2;u{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>f,frontMatter:()=>o,metadata:()=>c,toc:()=>u});var r=n(8168),a=(n(6540),n(5680));const o={sidebar_position:1},i="\u6982\u8ff0",c={unversionedId:"xuanxing/back/index",id:"xuanxing/back/index",title:"\u6982\u8ff0",description:"\u4e3b\u8981\u4f7f\u7528 Java\uff0c\u4e2d\u95f4\u4ef6\u53ef\u96c6\u6210\u6216\u72ec\u7acb\u90e8\u7f72\u3002",source:"@site/docs/xuanxing/back/index.md",sourceDirName:"xuanxing/back",slug:"/xuanxing/back/",permalink:"/docs/xuanxing/back/",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"xuanxingSidebar",previous:{title:"\u7ec4\u6001\u7f16\u8f91\u5668/\u5927\u5c4f\u7f16\u8f91\u5668",permalink:"/docs/xuanxing/fe/\u7ec4\u6001+\u5927\u5c4f\u7f16\u8f91\u5668"},next:{title:"\u6982\u8ff0",permalink:"/docs/xuanxing/devops/"}},l={},u=[],p={toc:u},s="wrapper";function f(e){let{components:t,...n}=e;return(0,a.yg)(s,(0,r.A)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"\u6982\u8ff0"},"\u6982\u8ff0"),(0,a.yg)("p",null,"\u4e3b\u8981\u4f7f\u7528 Java\uff0c\u4e2d\u95f4\u4ef6\u53ef\u96c6\u6210\u6216\u72ec\u7acb\u90e8\u7f72\u3002"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"MQTT Broker \u91c7\u7528 hivemq \u96c6\u6210"),(0,a.yg)("li",{parentName:"ul"},"redis"),(0,a.yg)("li",{parentName:"ul"},"mysql"),(0,a.yg)("li",{parentName:"ul"},"kafka"),(0,a.yg)("li",{parentName:"ul"},"influxdb")))}f.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1399],{5680:(e,t,n)=>{n.d(t,{xA:()=>p,yg:()=>y});var r=n(6540);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),u=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=u(e.components);return r.createElement(l.Provider,{value:t},e.children)},s="mdxType",f={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),s=u(n),d=a,y=s["".concat(l,".").concat(d)]||s[d]||f[d]||o;return n?r.createElement(y,i(i({ref:t},p),{},{components:n})):r.createElement(y,i({ref:t},p))}));function y(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=d;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[s]="string"==typeof e?e:a,i[1]=c;for(var u=2;u{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>f,frontMatter:()=>o,metadata:()=>c,toc:()=>u});var r=n(8168),a=(n(6540),n(5680));const o={sidebar_position:1},i="\u6982\u8ff0",c={unversionedId:"xuanxing/back/index",id:"xuanxing/back/index",title:"\u6982\u8ff0",description:"\u4e3b\u8981\u4f7f\u7528 Java\uff0c\u4e2d\u95f4\u4ef6\u53ef\u96c6\u6210\u6216\u72ec\u7acb\u90e8\u7f72\u3002",source:"@site/docs/xuanxing/back/index.md",sourceDirName:"xuanxing/back",slug:"/xuanxing/back/",permalink:"/docs/xuanxing/back/",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"xuanxingSidebar",previous:{title:"\u7ec4\u6001\u7f16\u8f91\u5668/\u5927\u5c4f\u7f16\u8f91\u5668",permalink:"/docs/xuanxing/fe/\u7ec4\u6001+\u5927\u5c4f\u7f16\u8f91\u5668"},next:{title:"\u6982\u8ff0",permalink:"/docs/xuanxing/devops/"}},l={},u=[],p={toc:u},s="wrapper";function f(e){let{components:t,...n}=e;return(0,a.yg)(s,(0,r.A)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"\u6982\u8ff0"},"\u6982\u8ff0"),(0,a.yg)("p",null,"\u4e3b\u8981\u4f7f\u7528 Java\uff0c\u4e2d\u95f4\u4ef6\u53ef\u96c6\u6210\u6216\u72ec\u7acb\u90e8\u7f72\u3002"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"MQTT Broker \u91c7\u7528 hivemq \u96c6\u6210"),(0,a.yg)("li",{parentName:"ul"},"redis"),(0,a.yg)("li",{parentName:"ul"},"mysql"),(0,a.yg)("li",{parentName:"ul"},"kafka"),(0,a.yg)("li",{parentName:"ul"},"influxdb")))}f.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/75219fff.1842f557.js b/assets/js/75219fff.65dd6f0f.js similarity index 98% rename from assets/js/75219fff.1842f557.js rename to assets/js/75219fff.65dd6f0f.js index 17578d5f8..7a36d0552 100644 --- a/assets/js/75219fff.1842f557.js +++ b/assets/js/75219fff.65dd6f0f.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3213],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>m});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),s=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},u=function(e){var t=s(e.components);return n.createElement(l.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),p=s(r),f=o,m=p["".concat(l,".").concat(f)]||p[f]||d[f]||a;return r?n.createElement(m,c(c({ref:t},u),{},{components:r})):n.createElement(m,c({ref:t},u))}));function m(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=f;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[p]="string"==typeof e?e:o,c[1]=i;for(var s=2;s{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>c,default:()=>d,frontMatter:()=>a,metadata:()=>i,toc:()=>s});var n=r(8168),o=(r(6540),r(5680));const a={},c="\u4e0b\u8f7d\u56fe\u7247",i={unversionedId:"study/fe/\u4e0b\u8f7d\u56fe\u7247",id:"study/fe/\u4e0b\u8f7d\u56fe\u7247",title:"\u4e0b\u8f7d\u56fe\u7247",description:"",source:"@site/docs/study/fe/\u4e0b\u8f7d\u56fe\u7247.md",sourceDirName:"study/fe",slug:"/study/fe/\u4e0b\u8f7d\u56fe\u7247",permalink:"/docs/study/fe/\u4e0b\u8f7d\u56fe\u7247",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"mqtt.js",permalink:"/docs/study/fe/mqtt.js"},next:{title:"\u4f4e\u4ee3\u7801\u53ef\u89c6\u5316\u5e73\u53f0",permalink:"/docs/study/fe/\u4f4e\u4ee3\u7801\u53ef\u89c6\u5316\u5e73\u53f0"}},l={},s=[],u={toc:s},p="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(p,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"\u4e0b\u8f7d\u56fe\u7247"},"\u4e0b\u8f7d\u56fe\u7247"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-javascript"},'function download(src, name) {\n var $a = document.createElement("a");\n $a.setAttribute("href", src);\n $a.setAttribute("download", name);\n var evObj = document.createEvent("MouseEvents");\n evObj.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, true, false, 0, null);\n $a.dispatchEvent(evObj);\n}\ndocument.querySelectorAll(".wrap-card:nth-child(15) img.icon").forEach((item, i) => {\n if (i >= 120 && i < 130) {\n console.log(item.src);\n download(item.src, item.src.split("/").slice(-1)[0]);\n }\n});\ndocument.querySelectorAll(".chart img").forEach((item, i) => {\n console.log(i);\n if (i >= 30 && i < 40) {\n console.log(item.src);\n download(item.src, item.src.split("/").slice(-1)[0]);\n }\n});\n')))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3213],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>m});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),s=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},u=function(e){var t=s(e.components);return n.createElement(l.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),p=s(r),f=o,m=p["".concat(l,".").concat(f)]||p[f]||d[f]||a;return r?n.createElement(m,c(c({ref:t},u),{},{components:r})):n.createElement(m,c({ref:t},u))}));function m(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=f;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[p]="string"==typeof e?e:o,c[1]=i;for(var s=2;s{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>c,default:()=>d,frontMatter:()=>a,metadata:()=>i,toc:()=>s});var n=r(8168),o=(r(6540),r(5680));const a={},c="\u4e0b\u8f7d\u56fe\u7247",i={unversionedId:"study/fe/\u4e0b\u8f7d\u56fe\u7247",id:"study/fe/\u4e0b\u8f7d\u56fe\u7247",title:"\u4e0b\u8f7d\u56fe\u7247",description:"",source:"@site/docs/study/fe/\u4e0b\u8f7d\u56fe\u7247.md",sourceDirName:"study/fe",slug:"/study/fe/\u4e0b\u8f7d\u56fe\u7247",permalink:"/docs/study/fe/\u4e0b\u8f7d\u56fe\u7247",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"mqtt.js",permalink:"/docs/study/fe/mqtt.js"},next:{title:"\u4f4e\u4ee3\u7801\u53ef\u89c6\u5316\u5e73\u53f0",permalink:"/docs/study/fe/\u4f4e\u4ee3\u7801\u53ef\u89c6\u5316\u5e73\u53f0"}},l={},s=[],u={toc:s},p="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(p,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"\u4e0b\u8f7d\u56fe\u7247"},"\u4e0b\u8f7d\u56fe\u7247"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-javascript"},'function download(src, name) {\n var $a = document.createElement("a");\n $a.setAttribute("href", src);\n $a.setAttribute("download", name);\n var evObj = document.createEvent("MouseEvents");\n evObj.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, true, false, 0, null);\n $a.dispatchEvent(evObj);\n}\ndocument.querySelectorAll(".wrap-card:nth-child(15) img.icon").forEach((item, i) => {\n if (i >= 120 && i < 130) {\n console.log(item.src);\n download(item.src, item.src.split("/").slice(-1)[0]);\n }\n});\ndocument.querySelectorAll(".chart img").forEach((item, i) => {\n console.log(i);\n if (i >= 30 && i < 40) {\n console.log(item.src);\n download(item.src, item.src.split("/").slice(-1)[0]);\n }\n});\n')))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/7a58d7fa.8d86e70a.js b/assets/js/7a58d7fa.2bb81fbe.js similarity index 99% rename from assets/js/7a58d7fa.8d86e70a.js rename to assets/js/7a58d7fa.2bb81fbe.js index 8a0391fab..eb8cead4c 100644 --- a/assets/js/7a58d7fa.8d86e70a.js +++ b/assets/js/7a58d7fa.2bb81fbe.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7484],{5680:(e,r,t)=>{t.d(r,{xA:()=>s,yg:()=>y});var n=t(6540);function i(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function o(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function a(e){for(var r=1;r=0||(i[t]=e[t]);return i}(e,r);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}var p=n.createContext({}),c=function(e){var r=n.useContext(p),t=r;return e&&(t="function"==typeof e?e(r):a(a({},r),e)),t},s=function(e){var r=c(e.components);return n.createElement(p.Provider,{value:r},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},m=n.forwardRef((function(e,r){var t=e.components,i=e.mdxType,o=e.originalType,p=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),d=c(t),m=i,y=d["".concat(p,".").concat(m)]||d[m]||u[m]||o;return t?n.createElement(y,a(a({ref:r},s),{},{components:t})):n.createElement(y,a({ref:r},s))}));function y(e,r){var t=arguments,i=r&&r.mdxType;if("string"==typeof e||i){var o=t.length,a=new Array(o);a[0]=m;var l={};for(var p in r)hasOwnProperty.call(r,p)&&(l[p]=r[p]);l.originalType=e,l[d]="string"==typeof e?e:i,a[1]=l;for(var c=2;c{t.r(r),t.d(r,{assets:()=>p,contentTitle:()=>a,default:()=>u,frontMatter:()=>o,metadata:()=>l,toc:()=>c});var n=t(8168),i=(t(6540),t(5680));const o={},a=void 0,l={unversionedId:"study/program/C/MFC-WinForm-WPF-DotNet\u7b49",id:"study/program/C/MFC-WinForm-WPF-DotNet\u7b49",title:"MFC-WinForm-WPF-DotNet\u7b49",description:"MFC",source:"@site/docs/study/program/C/MFC-WinForm-WPF-DotNet\u7b49.md",sourceDirName:"study/program/C",slug:"/study/program/C/MFC-WinForm-WPF-DotNet\u7b49",permalink:"/docs/study/program/C/MFC-WinForm-WPF-DotNet\u7b49",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"C\u8bed\u8a00\u6807\u51c6\u5e93",permalink:"/docs/study/program/C/C\u8bed\u8a00\u6807\u51c6\u5e93"},next:{title:"cmake",permalink:"/docs/study/program/C/cmake"}},p={},c=[{value:"MFC",id:"mfc",level:3},{value:"WinForm",id:"winform",level:3},{value:"WPF",id:"wpf",level:3},{value:"DirectX",id:"directx",level:3},{value:".NET",id:"net",level:3},{value:".NET core",id:"net-core",level:3},{value:"UWP",id:"uwp",level:3},{value:"C#",id:"c",level:3},{value:"Delphi",id:"delphi",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],s={toc:c},d="wrapper";function u(e){let{components:r,...t}=e;return(0,i.yg)(d,(0,n.A)({},s,t,{components:r,mdxType:"MDXLayout"}),(0,i.yg)("h3",{id:"mfc"},"MFC"),(0,i.yg)("p",null,"MFC(Microsoft Foundation Classes)\uff0c\u662f\u5fae\u8f6f\u516c\u53f8\u63d0\u4f9b\u7684\u4e00\u4e2a\u7c7b\u5e93\uff08class libraries\uff09\uff0c\u4ee5 C++\u7c7b\u7684\u5f62\u5f0f\u5c01\u88c5\u4e86 Windows \u7684 API\uff0c\u5e76\u4e14\u5305\u542b\u4e00\u4e2a\u5e94\u7528\u7a0b\u5e8f\u6846\u67b6\uff0c\u4ee5\u51cf\u5c11\u5e94\u7528\u7a0b\u5e8f\u5f00\u53d1\u4eba\u5458\u7684\u5de5\u4f5c\u91cf\u3002\u5176\u4e2d\u5305\u542b\u7684\u7c7b\u5305\u542b\u5927\u91cf Windows \u53e5\u67c4\u5c01\u88c5\u7c7b\u548c\u5f88\u591a Windows \u7684\u5185\u5efa\u63a7\u4ef6\u548c\u7ec4\u4ef6\u7684\u5c01\u88c5\u7c7b\u3002"),(0,i.yg)("h3",{id:"winform"},"WinForm"),(0,i.yg)("p",null,"Windows Form\uff0c\u7b80\u79f0 WinForm \u662f\u5fae\u8f6f .NET \u5e73\u53f0 \u4e0b\u7528\u4e8e\u5f00\u53d1\u201c\u56fe\u5f62\u754c\u9762\u201d\u5e94\u7528\u7a0b\u5e8f\u7684\u7ec4\u4ef6\u3002"),(0,i.yg)("h3",{id:"wpf"},"WPF"),(0,i.yg)("p",null,"WPF\uff08Windows Presentation Foundation\uff09\u662f\u5fae\u8f6f\u63a8\u51fa\u7684\u57fa\u4e8e Windows \u7684\u7528\u6237\u754c\u9762\u6846\u67b6\uff0c\u5c5e\u4e8e.NET Framework 3.0 \u7684\u4e00\u90e8\u5206\u3002\u5b83\u63d0\u4f9b\u4e86\u7edf\u4e00\u7684\u7f16\u7a0b\u6a21\u578b\u3001\u8bed\u8a00\u548c\u6846\u67b6\uff0c\u771f\u6b63\u505a\u5230\u4e86\u5206\u79bb\u754c\u9762\u8bbe\u8ba1\u4eba\u5458\u4e0e\u5f00\u53d1\u4eba\u5458\u7684\u5de5\u4f5c\uff1b\u540c\u65f6\u5b83\u63d0\u4f9b\u4e86\u5168\u65b0\u7684\u591a\u5a92\u4f53\u4ea4\u4e92\u7528\u6237\u56fe\u5f62\u754c\u9762\u3002"),(0,i.yg)("h3",{id:"directx"},"DirectX"),(0,i.yg)("p",null,"DirectX\uff08Direct eXtension\uff0c\u7b80\u79f0 DX\uff09\u662f\u7531\u5fae\u8f6f\u516c\u53f8\u521b\u5efa\u7684\u591a\u5a92\u4f53\u7f16\u7a0b\u63a5\u53e3\uff0c\u662f\u4e00\u79cd\u5e94\u7528\u7a0b\u5e8f\u63a5\u53e3\uff08API\uff09\u3002DirectX \u53ef\u4ee5\u8ba9\u4ee5 windows \u4e3a\u5e73\u53f0\u7684\u6e38\u620f\u6216\u591a\u5a92\u4f53\u7a0b\u5e8f\u83b7\u5f97\u66f4\u9ad8\u7684\u6267\u884c\u6548\u7387\uff0c\u52a0\u5f3a 3D \u56fe\u5f62\u548c\u58f0\u97f3\u6548\u679c\uff0c\u5e76\u63d0\u4f9b\u8bbe\u8ba1\u4eba\u5458\u4e00\u4e2a\u5171\u540c\u7684\u786c\u4ef6\u9a71\u52a8\u6807\u51c6\uff0c\u8ba9\u6e38\u620f\u5f00\u53d1\u8005\u4e0d\u5fc5\u4e3a\u6bcf\u4e00\u54c1\u724c\u7684\u786c\u4ef6\u6765\u5199\u4e0d\u540c\u7684\u9a71\u52a8\u7a0b\u5e8f\uff0c\u4e5f\u964d\u4f4e\u7528\u6237\u5b89\u88c5\u53ca\u8bbe\u7f6e\u786c\u4ef6\u7684\u590d\u6742\u5ea6\u3002DirectX \u5df2\u88ab\u5e7f\u6cdb\u4f7f\u7528\u4e8e Microsoft Windows\u3001Microsoft XBOX\u3001Microsoft XBOX 360 \u548c Microsoft XBOX ONE \u7535\u5b50\u6e38\u620f\u5f00\u53d1\u3002"),(0,i.yg)("h3",{id:"net"},".NET"),(0,i.yg)("p",null,".NET \u662f\u4e00\u79cd\u7528\u4e8e\u6784\u5efa\u591a\u79cd\u5e94\u7528\u7684\u514d\u8d39\u5f00\u6e90\u5f00\u53d1\u5e73\u53f0\uff0c\u53ef\u4ee5\u4f7f\u7528 C#\u3001F#\u6216 Visual Basic \u7f16\u5199.NET \u5e94\u7528\u3002 .NET \u7528\u4e8e\u751f\u6210\u591a\u79cd\u7c7b\u578b\u7684\u5e94\u7528\u7a0b\u5e8f\u548c\u5e93\u5f00\u53d1 Web \u5e94\u7528\u3001Web API \u548c\u5fae\u670d\u52a1\u3001\u4e91\u4e2d\u7684\u65e0\u670d\u52a1\u5668\u51fd\u6570\u3001\u4e91\u539f\u751f\u5e94\u7528\u3001\u79fb\u52a8\u5e94\u7528\u3001\u684c\u9762\u5e94\u7528\u3001Windows WPF\u3001Windows \u7a97\u4f53\u3001\u901a\u7528 Windows \u5e73\u53f0 (UWP)\u3001\u6e38\u620f\u3001\u7269\u8054\u7f51 (IoT)\u3001\u673a\u5668\u5b66\u4e60\u3001\u63a7\u5236\u53f0\u5e94\u7528\u3001Windows \u670d\u52a1\u3002.NET \u7c7b\u5e93\u5728\u4e0d\u540c\u5e94\u7528\u548c\u5e94\u7528\u7c7b\u578b\u4e2d\u5171\u4eab\u529f\u80fd\uff0c\u65e0\u8bba\u6784\u5efa\u54ea\u79cd\u7c7b\u578b\u7684\u5e94\u7528\uff0c\u4ee3\u7801\u548c\u9879\u76ee\u6587\u4ef6\u770b\u8d77\u6765\u90fd\u4e00\u6837\uff0c\u53ef\u4ee5\u8bbf\u95ee\u6bcf\u4e2a\u5e94\u7528\u7684\u76f8\u540c\u8fd0\u884c\u65f6\u3001API \u548c\u8bed\u8a00\u529f\u80fd\u3002"),(0,i.yg)("h3",{id:"net-core"},".NET core"),(0,i.yg)("p",null,".NET Core \u662f\u9002\u7528\u4e8e Windows\u3001Linux \u548c macOS \u7684\u514d\u8d39\u3001\u5f00\u6e90\u6258\u7ba1\u7684\u8ba1\u7b97\u673a\u8f6f\u4ef6\u6846\u67b6\uff0c\u662f\u5fae\u8f6f\u5f00\u53d1\u7684\u7b2c\u4e00\u4e2a\u5b98\u65b9\u7248\u672c\uff0c\u5177\u6709\u8de8\u5e73\u53f0\u80fd\u529b\u7684\u5e94\u7528\u7a0b\u5e8f\u5f00\u53d1\u6846\u67b6 (Application Framework)\uff0c\u672a\u6765\u4e5f\u5c06\u4f1a\u652f\u6301 FreeBSD \u4e0e Alpine \u5e73\u53f0\uff0c\u4e5f\u662f\u5fae\u8f6f\u5728\u4e00\u5f00\u59cb\u53d1\u5c55\u65f6\u5c31\u5f00\u6e90\u7684\u8f6f\u4ef6\u5e73\u53f0 \uff0c\u5b83\u7ecf\u5e38\u4e5f\u4f1a\u62ff\u6765\u548c\u73b0\u6709\u7684\u5f00\u6e90 .NET \u5e73\u53f0 Mono \u6bd4\u8f83\u3002"),(0,i.yg)("h3",{id:"uwp"},"UWP"),(0,i.yg)("p",null,"UWP \u5373 Windows 10 \u4e2d\u7684 Universal Windows Platform \u7b80\u79f0\u3002\u5373 Windows \u901a\u7528\u5e94\u7528\u5e73\u53f0\uff0c\u5728 Windows 10 Mobile/Surface\uff08Windows \u5e73\u677f\u7535\u8111\uff09/PC/Xbox/HoloLens \u7b49\u5e73\u53f0\u4e0a\u8fd0\u884c\uff0cuwp \u4e0d\u540c\u4e8e\u4f20\u7edf pc \u4e0a\u7684 exe \u5e94\u7528\uff0c\u4e5f\u8ddf\u53ea\u9002\u7528\u4e8e\u624b\u673a\u7aef\u7684 app \u6709\u672c\u8d28\u533a\u522b\u3002\u5b83\u5e76\u4e0d\u662f\u4e3a\u67d0\u4e00\u4e2a\u7ec8\u7aef\u800c\u8bbe\u8ba1\uff0c\u800c\u662f\u53ef\u4ee5\u5728\u6240\u6709 Windows10 \u8bbe\u5907\u4e0a\u8fd0\u884c\u3002"),(0,i.yg)("h3",{id:"c"},"C#"),(0,i.yg)("p",null,"C#\u662f\u5fae\u8f6f\u516c\u53f8\u53d1\u5e03\u7684\u4e00\u79cd\u7531 C \u548c C++\u884d\u751f\u51fa\u6765\u7684\u9762\u5411\u5bf9\u8c61\u7684\u7f16\u7a0b\u8bed\u8a00\u3001\u8fd0\u884c\u4e8e.NET Framework \u548c.NET Core(\u5b8c\u5168\u5f00\u6e90\uff0c\u8de8\u5e73\u53f0)\u4e4b\u4e0a\u7684\u9ad8\u7ea7\u7a0b\u5e8f\u8bbe\u8ba1\u8bed\u8a00\u3002"),(0,i.yg)("p",null,"C#\u662f\u7531 C \u548c C++\u884d\u751f\u51fa\u6765\u7684\u4e00\u79cd\u5b89\u5168\u7684\u3001\u7a33\u5b9a\u7684\u3001\u7b80\u5355\u7684\u3001\u4f18\u96c5\u7684\u9762\u5411\u5bf9\u8c61\u7f16\u7a0b\u8bed\u8a00\u3002\u5b83\u5728\u7ee7\u627f C \u548c C++\u5f3a\u5927\u529f\u80fd\u7684\u540c\u65f6\u53bb\u6389\u4e86\u4e00\u4e9b\u5b83\u4eec\u7684\u590d\u6742\u7279\u6027\uff08\u4f8b\u5982\u6ca1\u6709\u5b8f\u4ee5\u53ca\u4e0d\u5141\u8bb8\u591a\u91cd\u7ee7\u627f\uff09\u3002C#\u7efc\u5408\u4e86 VB \u7b80\u5355\u7684\u53ef\u89c6\u5316\u64cd\u4f5c\u548c C++\u7684\u9ad8\u8fd0\u884c\u6548\u7387\uff0c\u4ee5\u5176\u5f3a\u5927\u7684\u64cd\u4f5c\u80fd\u529b\u3001\u4f18\u96c5\u7684\u8bed\u6cd5\u98ce\u683c\u3001\u521b\u65b0\u7684\u8bed\u8a00\u7279\u6027\u548c\u4fbf\u6377\u7684\u9762\u5411\u7ec4\u4ef6\u7f16\u7a0b\u7684\u652f\u6301\u6210\u4e3a.NET \u5f00\u53d1\u7684\u9996\u9009\u8bed\u8a00\u3002"),(0,i.yg)("h3",{id:"delphi"},"Delphi"),(0,i.yg)("p",null,"Delphi\uff0c\u662f Windows \u5e73\u53f0\u4e0b\u8457\u540d\u7684\u5feb\u901f\u5e94\u7528\u7a0b\u5e8f\u5f00\u53d1\u5de5\u5177(Rapid Application Development\uff0c\u7b80\u79f0 RAD)\u3002\u5b83\u7684\u524d\u8eab\uff0c\u5373\u662f DOS \u65f6\u4ee3\u76db\u884c\u4e00\u65f6\u7684\u201cBorlandTurbo Pascal\u201d\uff0c\u6700\u65e9\u7684\u7248\u672c\u7531\u7f8e\u56fd Borland\uff08\u5b9d\u5170\uff09\u516c\u53f8\u4e8e 1995 \u5e74\u5f00\u53d1\u3002\u4e3b\u521b\u8005\u4e3a Anders Hejlsberg\u3002\u7ecf\u8fc7\u6570\u5e74\u7684\u53d1\u5c55\uff0c\u6b64\u4ea7\u54c1\u4e5f\u8f6c\u79fb\u81f3 Embarcadero \u516c\u53f8\u65d7\u4e0b\u3002Delphi \u662f\u4e00\u4e2a\u96c6\u6210\u5f00\u53d1\u73af\u5883\uff08IDE\uff09\uff0c\u4f7f\u7528\u7684\u6838\u5fc3\u662f\u7531\u4f20\u7edf Pascal \u8bed\u8a00\u53d1\u5c55\u800c\u6765\u7684 Object Pascal\uff0c\u4ee5\u56fe\u5f62\u7528\u6237\u754c\u9762\u4e3a\u5f00\u53d1\u73af\u5883\uff0c\u900f\u8fc7 IDE\u3001VCL \u5de5\u5177\u4e0e\u7f16\u8bd1\u5668\uff0c\u914d\u5408\u8fde\u7ed3\u6570\u636e\u5e93\u7684\u529f\u80fd\uff0c\u6784\u6210\u4e00\u4e2a\u4ee5\u9762\u5411\u5bf9\u8c61\u7a0b\u5e8f\u8bbe\u8ba1\u4e3a\u4e2d\u5fc3\u7684\u5e94\u7528\u7a0b\u5e8f\u5f00\u53d1\u5de5\u5177\u3002",(0,i.yg)("strong",{parentName:"p"},(0,i.yg)("em",{parentName:"strong"},"\u5df2\u6ca1\u843d\uff0c\u73b0\u5728\u5f88\u5c11\u6709\u4eba\u7528\u4e86"))),(0,i.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,i.yg)("ul",null,(0,i.yg)("li",{parentName:"ul"},(0,i.yg)("a",{parentName:"li",href:"https://baike.baidu.com/item/MFC/2236974"},"\u767e\u5ea6\u767e\u79d1-MFC")),(0,i.yg)("li",{parentName:"ul"},(0,i.yg)("a",{parentName:"li",href:"https://baike.baidu.com/item/WPF/5299594"},"\u767e\u5ea6\u767e\u79d1-WPF")),(0,i.yg)("li",{parentName:"ul"},(0,i.yg)("a",{parentName:"li",href:"https://baike.baidu.com/item/DirectX/314119"},"\u767e\u5ea6\u767e\u79d1-DirectX")),(0,i.yg)("li",{parentName:"ul"},(0,i.yg)("a",{parentName:"li",href:"https://baike.baidu.com/item/.NET/156737"},"\u767e\u5ea6\u767e\u79d1-.NET")),(0,i.yg)("li",{parentName:"ul"},(0,i.yg)("a",{parentName:"li",href:"https://baike.baidu.com/item/.net%20core"},"\u767e\u5ea6\u767e\u79d1-.NET core")),(0,i.yg)("li",{parentName:"ul"},(0,i.yg)("a",{parentName:"li",href:"https://baike.baidu.com/item/Universal%20Windows%20Platform/23796796"},"\u767e\u5ea6\u767e\u79d1-UWP")),(0,i.yg)("li",{parentName:"ul"},(0,i.yg)("a",{parentName:"li",href:"https://baike.baidu.com/item/C%23/195147"},"\u767e\u5ea6\u767e\u79d1-C#"))))}u.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7484],{5680:(e,r,t)=>{t.d(r,{xA:()=>s,yg:()=>y});var n=t(6540);function i(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function o(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function a(e){for(var r=1;r=0||(i[t]=e[t]);return i}(e,r);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}var p=n.createContext({}),c=function(e){var r=n.useContext(p),t=r;return e&&(t="function"==typeof e?e(r):a(a({},r),e)),t},s=function(e){var r=c(e.components);return n.createElement(p.Provider,{value:r},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},m=n.forwardRef((function(e,r){var t=e.components,i=e.mdxType,o=e.originalType,p=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),d=c(t),m=i,y=d["".concat(p,".").concat(m)]||d[m]||u[m]||o;return t?n.createElement(y,a(a({ref:r},s),{},{components:t})):n.createElement(y,a({ref:r},s))}));function y(e,r){var t=arguments,i=r&&r.mdxType;if("string"==typeof e||i){var o=t.length,a=new Array(o);a[0]=m;var l={};for(var p in r)hasOwnProperty.call(r,p)&&(l[p]=r[p]);l.originalType=e,l[d]="string"==typeof e?e:i,a[1]=l;for(var c=2;c{t.r(r),t.d(r,{assets:()=>p,contentTitle:()=>a,default:()=>u,frontMatter:()=>o,metadata:()=>l,toc:()=>c});var n=t(8168),i=(t(6540),t(5680));const o={},a=void 0,l={unversionedId:"study/program/C/MFC-WinForm-WPF-DotNet\u7b49",id:"study/program/C/MFC-WinForm-WPF-DotNet\u7b49",title:"MFC-WinForm-WPF-DotNet\u7b49",description:"MFC",source:"@site/docs/study/program/C/MFC-WinForm-WPF-DotNet\u7b49.md",sourceDirName:"study/program/C",slug:"/study/program/C/MFC-WinForm-WPF-DotNet\u7b49",permalink:"/docs/study/program/C/MFC-WinForm-WPF-DotNet\u7b49",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"C\u8bed\u8a00\u6807\u51c6\u5e93",permalink:"/docs/study/program/C/C\u8bed\u8a00\u6807\u51c6\u5e93"},next:{title:"cmake",permalink:"/docs/study/program/C/cmake"}},p={},c=[{value:"MFC",id:"mfc",level:3},{value:"WinForm",id:"winform",level:3},{value:"WPF",id:"wpf",level:3},{value:"DirectX",id:"directx",level:3},{value:".NET",id:"net",level:3},{value:".NET core",id:"net-core",level:3},{value:"UWP",id:"uwp",level:3},{value:"C#",id:"c",level:3},{value:"Delphi",id:"delphi",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],s={toc:c},d="wrapper";function u(e){let{components:r,...t}=e;return(0,i.yg)(d,(0,n.A)({},s,t,{components:r,mdxType:"MDXLayout"}),(0,i.yg)("h3",{id:"mfc"},"MFC"),(0,i.yg)("p",null,"MFC(Microsoft Foundation Classes)\uff0c\u662f\u5fae\u8f6f\u516c\u53f8\u63d0\u4f9b\u7684\u4e00\u4e2a\u7c7b\u5e93\uff08class libraries\uff09\uff0c\u4ee5 C++\u7c7b\u7684\u5f62\u5f0f\u5c01\u88c5\u4e86 Windows \u7684 API\uff0c\u5e76\u4e14\u5305\u542b\u4e00\u4e2a\u5e94\u7528\u7a0b\u5e8f\u6846\u67b6\uff0c\u4ee5\u51cf\u5c11\u5e94\u7528\u7a0b\u5e8f\u5f00\u53d1\u4eba\u5458\u7684\u5de5\u4f5c\u91cf\u3002\u5176\u4e2d\u5305\u542b\u7684\u7c7b\u5305\u542b\u5927\u91cf Windows \u53e5\u67c4\u5c01\u88c5\u7c7b\u548c\u5f88\u591a Windows \u7684\u5185\u5efa\u63a7\u4ef6\u548c\u7ec4\u4ef6\u7684\u5c01\u88c5\u7c7b\u3002"),(0,i.yg)("h3",{id:"winform"},"WinForm"),(0,i.yg)("p",null,"Windows Form\uff0c\u7b80\u79f0 WinForm \u662f\u5fae\u8f6f .NET \u5e73\u53f0 \u4e0b\u7528\u4e8e\u5f00\u53d1\u201c\u56fe\u5f62\u754c\u9762\u201d\u5e94\u7528\u7a0b\u5e8f\u7684\u7ec4\u4ef6\u3002"),(0,i.yg)("h3",{id:"wpf"},"WPF"),(0,i.yg)("p",null,"WPF\uff08Windows Presentation Foundation\uff09\u662f\u5fae\u8f6f\u63a8\u51fa\u7684\u57fa\u4e8e Windows \u7684\u7528\u6237\u754c\u9762\u6846\u67b6\uff0c\u5c5e\u4e8e.NET Framework 3.0 \u7684\u4e00\u90e8\u5206\u3002\u5b83\u63d0\u4f9b\u4e86\u7edf\u4e00\u7684\u7f16\u7a0b\u6a21\u578b\u3001\u8bed\u8a00\u548c\u6846\u67b6\uff0c\u771f\u6b63\u505a\u5230\u4e86\u5206\u79bb\u754c\u9762\u8bbe\u8ba1\u4eba\u5458\u4e0e\u5f00\u53d1\u4eba\u5458\u7684\u5de5\u4f5c\uff1b\u540c\u65f6\u5b83\u63d0\u4f9b\u4e86\u5168\u65b0\u7684\u591a\u5a92\u4f53\u4ea4\u4e92\u7528\u6237\u56fe\u5f62\u754c\u9762\u3002"),(0,i.yg)("h3",{id:"directx"},"DirectX"),(0,i.yg)("p",null,"DirectX\uff08Direct eXtension\uff0c\u7b80\u79f0 DX\uff09\u662f\u7531\u5fae\u8f6f\u516c\u53f8\u521b\u5efa\u7684\u591a\u5a92\u4f53\u7f16\u7a0b\u63a5\u53e3\uff0c\u662f\u4e00\u79cd\u5e94\u7528\u7a0b\u5e8f\u63a5\u53e3\uff08API\uff09\u3002DirectX \u53ef\u4ee5\u8ba9\u4ee5 windows \u4e3a\u5e73\u53f0\u7684\u6e38\u620f\u6216\u591a\u5a92\u4f53\u7a0b\u5e8f\u83b7\u5f97\u66f4\u9ad8\u7684\u6267\u884c\u6548\u7387\uff0c\u52a0\u5f3a 3D \u56fe\u5f62\u548c\u58f0\u97f3\u6548\u679c\uff0c\u5e76\u63d0\u4f9b\u8bbe\u8ba1\u4eba\u5458\u4e00\u4e2a\u5171\u540c\u7684\u786c\u4ef6\u9a71\u52a8\u6807\u51c6\uff0c\u8ba9\u6e38\u620f\u5f00\u53d1\u8005\u4e0d\u5fc5\u4e3a\u6bcf\u4e00\u54c1\u724c\u7684\u786c\u4ef6\u6765\u5199\u4e0d\u540c\u7684\u9a71\u52a8\u7a0b\u5e8f\uff0c\u4e5f\u964d\u4f4e\u7528\u6237\u5b89\u88c5\u53ca\u8bbe\u7f6e\u786c\u4ef6\u7684\u590d\u6742\u5ea6\u3002DirectX \u5df2\u88ab\u5e7f\u6cdb\u4f7f\u7528\u4e8e Microsoft Windows\u3001Microsoft XBOX\u3001Microsoft XBOX 360 \u548c Microsoft XBOX ONE \u7535\u5b50\u6e38\u620f\u5f00\u53d1\u3002"),(0,i.yg)("h3",{id:"net"},".NET"),(0,i.yg)("p",null,".NET \u662f\u4e00\u79cd\u7528\u4e8e\u6784\u5efa\u591a\u79cd\u5e94\u7528\u7684\u514d\u8d39\u5f00\u6e90\u5f00\u53d1\u5e73\u53f0\uff0c\u53ef\u4ee5\u4f7f\u7528 C#\u3001F#\u6216 Visual Basic \u7f16\u5199.NET \u5e94\u7528\u3002 .NET \u7528\u4e8e\u751f\u6210\u591a\u79cd\u7c7b\u578b\u7684\u5e94\u7528\u7a0b\u5e8f\u548c\u5e93\u5f00\u53d1 Web \u5e94\u7528\u3001Web API \u548c\u5fae\u670d\u52a1\u3001\u4e91\u4e2d\u7684\u65e0\u670d\u52a1\u5668\u51fd\u6570\u3001\u4e91\u539f\u751f\u5e94\u7528\u3001\u79fb\u52a8\u5e94\u7528\u3001\u684c\u9762\u5e94\u7528\u3001Windows WPF\u3001Windows \u7a97\u4f53\u3001\u901a\u7528 Windows \u5e73\u53f0 (UWP)\u3001\u6e38\u620f\u3001\u7269\u8054\u7f51 (IoT)\u3001\u673a\u5668\u5b66\u4e60\u3001\u63a7\u5236\u53f0\u5e94\u7528\u3001Windows \u670d\u52a1\u3002.NET \u7c7b\u5e93\u5728\u4e0d\u540c\u5e94\u7528\u548c\u5e94\u7528\u7c7b\u578b\u4e2d\u5171\u4eab\u529f\u80fd\uff0c\u65e0\u8bba\u6784\u5efa\u54ea\u79cd\u7c7b\u578b\u7684\u5e94\u7528\uff0c\u4ee3\u7801\u548c\u9879\u76ee\u6587\u4ef6\u770b\u8d77\u6765\u90fd\u4e00\u6837\uff0c\u53ef\u4ee5\u8bbf\u95ee\u6bcf\u4e2a\u5e94\u7528\u7684\u76f8\u540c\u8fd0\u884c\u65f6\u3001API \u548c\u8bed\u8a00\u529f\u80fd\u3002"),(0,i.yg)("h3",{id:"net-core"},".NET core"),(0,i.yg)("p",null,".NET Core \u662f\u9002\u7528\u4e8e Windows\u3001Linux \u548c macOS \u7684\u514d\u8d39\u3001\u5f00\u6e90\u6258\u7ba1\u7684\u8ba1\u7b97\u673a\u8f6f\u4ef6\u6846\u67b6\uff0c\u662f\u5fae\u8f6f\u5f00\u53d1\u7684\u7b2c\u4e00\u4e2a\u5b98\u65b9\u7248\u672c\uff0c\u5177\u6709\u8de8\u5e73\u53f0\u80fd\u529b\u7684\u5e94\u7528\u7a0b\u5e8f\u5f00\u53d1\u6846\u67b6 (Application Framework)\uff0c\u672a\u6765\u4e5f\u5c06\u4f1a\u652f\u6301 FreeBSD \u4e0e Alpine \u5e73\u53f0\uff0c\u4e5f\u662f\u5fae\u8f6f\u5728\u4e00\u5f00\u59cb\u53d1\u5c55\u65f6\u5c31\u5f00\u6e90\u7684\u8f6f\u4ef6\u5e73\u53f0 \uff0c\u5b83\u7ecf\u5e38\u4e5f\u4f1a\u62ff\u6765\u548c\u73b0\u6709\u7684\u5f00\u6e90 .NET \u5e73\u53f0 Mono \u6bd4\u8f83\u3002"),(0,i.yg)("h3",{id:"uwp"},"UWP"),(0,i.yg)("p",null,"UWP \u5373 Windows 10 \u4e2d\u7684 Universal Windows Platform \u7b80\u79f0\u3002\u5373 Windows \u901a\u7528\u5e94\u7528\u5e73\u53f0\uff0c\u5728 Windows 10 Mobile/Surface\uff08Windows \u5e73\u677f\u7535\u8111\uff09/PC/Xbox/HoloLens \u7b49\u5e73\u53f0\u4e0a\u8fd0\u884c\uff0cuwp \u4e0d\u540c\u4e8e\u4f20\u7edf pc \u4e0a\u7684 exe \u5e94\u7528\uff0c\u4e5f\u8ddf\u53ea\u9002\u7528\u4e8e\u624b\u673a\u7aef\u7684 app \u6709\u672c\u8d28\u533a\u522b\u3002\u5b83\u5e76\u4e0d\u662f\u4e3a\u67d0\u4e00\u4e2a\u7ec8\u7aef\u800c\u8bbe\u8ba1\uff0c\u800c\u662f\u53ef\u4ee5\u5728\u6240\u6709 Windows10 \u8bbe\u5907\u4e0a\u8fd0\u884c\u3002"),(0,i.yg)("h3",{id:"c"},"C#"),(0,i.yg)("p",null,"C#\u662f\u5fae\u8f6f\u516c\u53f8\u53d1\u5e03\u7684\u4e00\u79cd\u7531 C \u548c C++\u884d\u751f\u51fa\u6765\u7684\u9762\u5411\u5bf9\u8c61\u7684\u7f16\u7a0b\u8bed\u8a00\u3001\u8fd0\u884c\u4e8e.NET Framework \u548c.NET Core(\u5b8c\u5168\u5f00\u6e90\uff0c\u8de8\u5e73\u53f0)\u4e4b\u4e0a\u7684\u9ad8\u7ea7\u7a0b\u5e8f\u8bbe\u8ba1\u8bed\u8a00\u3002"),(0,i.yg)("p",null,"C#\u662f\u7531 C \u548c C++\u884d\u751f\u51fa\u6765\u7684\u4e00\u79cd\u5b89\u5168\u7684\u3001\u7a33\u5b9a\u7684\u3001\u7b80\u5355\u7684\u3001\u4f18\u96c5\u7684\u9762\u5411\u5bf9\u8c61\u7f16\u7a0b\u8bed\u8a00\u3002\u5b83\u5728\u7ee7\u627f C \u548c C++\u5f3a\u5927\u529f\u80fd\u7684\u540c\u65f6\u53bb\u6389\u4e86\u4e00\u4e9b\u5b83\u4eec\u7684\u590d\u6742\u7279\u6027\uff08\u4f8b\u5982\u6ca1\u6709\u5b8f\u4ee5\u53ca\u4e0d\u5141\u8bb8\u591a\u91cd\u7ee7\u627f\uff09\u3002C#\u7efc\u5408\u4e86 VB \u7b80\u5355\u7684\u53ef\u89c6\u5316\u64cd\u4f5c\u548c C++\u7684\u9ad8\u8fd0\u884c\u6548\u7387\uff0c\u4ee5\u5176\u5f3a\u5927\u7684\u64cd\u4f5c\u80fd\u529b\u3001\u4f18\u96c5\u7684\u8bed\u6cd5\u98ce\u683c\u3001\u521b\u65b0\u7684\u8bed\u8a00\u7279\u6027\u548c\u4fbf\u6377\u7684\u9762\u5411\u7ec4\u4ef6\u7f16\u7a0b\u7684\u652f\u6301\u6210\u4e3a.NET \u5f00\u53d1\u7684\u9996\u9009\u8bed\u8a00\u3002"),(0,i.yg)("h3",{id:"delphi"},"Delphi"),(0,i.yg)("p",null,"Delphi\uff0c\u662f Windows \u5e73\u53f0\u4e0b\u8457\u540d\u7684\u5feb\u901f\u5e94\u7528\u7a0b\u5e8f\u5f00\u53d1\u5de5\u5177(Rapid Application Development\uff0c\u7b80\u79f0 RAD)\u3002\u5b83\u7684\u524d\u8eab\uff0c\u5373\u662f DOS \u65f6\u4ee3\u76db\u884c\u4e00\u65f6\u7684\u201cBorlandTurbo Pascal\u201d\uff0c\u6700\u65e9\u7684\u7248\u672c\u7531\u7f8e\u56fd Borland\uff08\u5b9d\u5170\uff09\u516c\u53f8\u4e8e 1995 \u5e74\u5f00\u53d1\u3002\u4e3b\u521b\u8005\u4e3a Anders Hejlsberg\u3002\u7ecf\u8fc7\u6570\u5e74\u7684\u53d1\u5c55\uff0c\u6b64\u4ea7\u54c1\u4e5f\u8f6c\u79fb\u81f3 Embarcadero \u516c\u53f8\u65d7\u4e0b\u3002Delphi \u662f\u4e00\u4e2a\u96c6\u6210\u5f00\u53d1\u73af\u5883\uff08IDE\uff09\uff0c\u4f7f\u7528\u7684\u6838\u5fc3\u662f\u7531\u4f20\u7edf Pascal \u8bed\u8a00\u53d1\u5c55\u800c\u6765\u7684 Object Pascal\uff0c\u4ee5\u56fe\u5f62\u7528\u6237\u754c\u9762\u4e3a\u5f00\u53d1\u73af\u5883\uff0c\u900f\u8fc7 IDE\u3001VCL \u5de5\u5177\u4e0e\u7f16\u8bd1\u5668\uff0c\u914d\u5408\u8fde\u7ed3\u6570\u636e\u5e93\u7684\u529f\u80fd\uff0c\u6784\u6210\u4e00\u4e2a\u4ee5\u9762\u5411\u5bf9\u8c61\u7a0b\u5e8f\u8bbe\u8ba1\u4e3a\u4e2d\u5fc3\u7684\u5e94\u7528\u7a0b\u5e8f\u5f00\u53d1\u5de5\u5177\u3002",(0,i.yg)("strong",{parentName:"p"},(0,i.yg)("em",{parentName:"strong"},"\u5df2\u6ca1\u843d\uff0c\u73b0\u5728\u5f88\u5c11\u6709\u4eba\u7528\u4e86"))),(0,i.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,i.yg)("ul",null,(0,i.yg)("li",{parentName:"ul"},(0,i.yg)("a",{parentName:"li",href:"https://baike.baidu.com/item/MFC/2236974"},"\u767e\u5ea6\u767e\u79d1-MFC")),(0,i.yg)("li",{parentName:"ul"},(0,i.yg)("a",{parentName:"li",href:"https://baike.baidu.com/item/WPF/5299594"},"\u767e\u5ea6\u767e\u79d1-WPF")),(0,i.yg)("li",{parentName:"ul"},(0,i.yg)("a",{parentName:"li",href:"https://baike.baidu.com/item/DirectX/314119"},"\u767e\u5ea6\u767e\u79d1-DirectX")),(0,i.yg)("li",{parentName:"ul"},(0,i.yg)("a",{parentName:"li",href:"https://baike.baidu.com/item/.NET/156737"},"\u767e\u5ea6\u767e\u79d1-.NET")),(0,i.yg)("li",{parentName:"ul"},(0,i.yg)("a",{parentName:"li",href:"https://baike.baidu.com/item/.net%20core"},"\u767e\u5ea6\u767e\u79d1-.NET core")),(0,i.yg)("li",{parentName:"ul"},(0,i.yg)("a",{parentName:"li",href:"https://baike.baidu.com/item/Universal%20Windows%20Platform/23796796"},"\u767e\u5ea6\u767e\u79d1-UWP")),(0,i.yg)("li",{parentName:"ul"},(0,i.yg)("a",{parentName:"li",href:"https://baike.baidu.com/item/C%23/195147"},"\u767e\u5ea6\u767e\u79d1-C#"))))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/7c0c45cc.16fe222f.js b/assets/js/7c0c45cc.16659b78.js similarity index 98% rename from assets/js/7c0c45cc.16fe222f.js rename to assets/js/7c0c45cc.16659b78.js index ad750be1d..44b220863 100644 --- a/assets/js/7c0c45cc.16fe222f.js +++ b/assets/js/7c0c45cc.16659b78.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1521],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>y});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var i=n.createContext({}),s=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},p=function(e){var t=s(e.components);return n.createElement(i.Provider,{value:t},e.children)},u="mdxType",f={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,i=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),u=s(r),d=a,y=u["".concat(i,".").concat(d)]||u[d]||f[d]||o;return r?n.createElement(y,c(c({ref:t},p),{},{components:r})):n.createElement(y,c({ref:t},p))}));function y(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,c=new Array(o);c[0]=d;var l={};for(var i in t)hasOwnProperty.call(t,i)&&(l[i]=t[i]);l.originalType=e,l[u]="string"==typeof e?e:a,c[1]=l;for(var s=2;s{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>c,default:()=>f,frontMatter:()=>o,metadata:()=>l,toc:()=>s});var n=r(8168),a=(r(6540),r(5680));const o={},c=void 0,l={unversionedId:"study/back/mq/Kafka",id:"study/back/mq/Kafka",title:"Kafka",description:"\u7b80\u4ecb",source:"@site/docs/study/back/mq/Kafka.md",sourceDirName:"study/back/mq",slug:"/study/back/mq/Kafka",permalink:"/docs/study/back/mq/Kafka",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"pom\u6587\u4ef6\u4e2d\u7684scope\u6807\u7b7e",permalink:"/docs/study/back/maven/pom\u6587\u4ef6\u4e2d\u7684scope\u6807\u7b7e"},next:{title:"MQTT broker",permalink:"/docs/study/back/mq/MQTT broker"}},i={},s=[{value:"\u7b80\u4ecb",id:"\u7b80\u4ecb",level:3},{value:"\u5e38\u89c1\u4f7f\u7528\u573a\u666f",id:"\u5e38\u89c1\u4f7f\u7528\u573a\u666f",level:3},{value:"\u5e38\u7528\u547d\u4ee4",id:"\u5e38\u7528\u547d\u4ee4",level:3}],p={toc:s},u="wrapper";function f(e){let{components:t,...r}=e;return(0,a.yg)(u,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"\u7b80\u4ecb"},"\u7b80\u4ecb"),(0,a.yg)("p",null,"kafka \u6700\u65b0\u5b9a\u4e49\u4e3a\uff1a\u5206\u5e03\u5f0f\u6d41\u5f0f\u5e73\u53f0\uff0c\u800c\u4e0d\u662f\u5355\u7eaf\u7684\u6d88\u606f\u7cfb\u7edf\uff0c\u66f4\u5177\u6709\u6301\u4e45\u5316\u3001\u6d41\u5904\u7406\u7684\u7279\u70b9\uff1b\u4e3b\u8981\u5904\u7406\u4e24\u7c7b\u5e94\u7528\uff1a\u5b9e\u65f6\u6d41\u6570\u636e\u7ba1\u9053\u548c\u5b9e\u65f6\u6d41\u5e94\u7528\u7a0b\u5e8f\u3002"),(0,a.yg)("p",null,"\u5b9e\u65f6\u6d41\u6570\u636e\u7ba1\u9053\uff1a\u4e3e\u4e2a\u4f8b\u5b50 Kafka+ELK \u5904\u7406\u65e5\u5fd7\uff1b\n\u5b9e\u65f6\u6d41\u5e94\u7528\u7a0b\u5e8f\uff1a\u4e3e\u4e2a\u4f8b\u5b50 Kafka+\u62a5\u8b66\u6a21\u5757 APP\uff1b\n\u6301\u4e45\u5316\uff0c\u53ef\u4ee5\u4f5c\u4e3a\u5b58\u50a8\u7cfb\u7edf\uff0c\u6bcf\u4e2a\u6d88\u8d39\u8005\u5bf9\u6bcf\u4e2a topic \u90fd\u6709\u4e00\u4e2a offset \u6765\u8bb0\u5f55\u4e0a\u6b21\u6d88\u8d39\u7684\u4f4d\u7f6e\uff1b"),(0,a.yg)("h3",{id:"\u5e38\u89c1\u4f7f\u7528\u573a\u666f"},"\u5e38\u89c1\u4f7f\u7528\u573a\u666f"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},"\u6d88\u606f\uff0c\u53ef\u4ee5\u5ab2\u7f8e ActiveMQ \u548c RabbitMQ\uff1b"),(0,a.yg)("li",{parentName:"ol"},"\u7f51\u7ad9\u6d3b\u52a8\u8ddf\u8e2a\uff0c\u6570\u636e>>Kafka>>ELK/Hbase/Hadoop\uff1b"),(0,a.yg)("li",{parentName:"ol"},"\u5ea6\u91cf\uff0c\u8fd0\u8425\u76d1\u63a7\u6570\u636e\uff1b"),(0,a.yg)("li",{parentName:"ol"},"\u65e5\u5fd7\u805a\u5408\uff0cKafka+ELK\uff1b"),(0,a.yg)("li",{parentName:"ol"},"\u6d41\u5904\u7406\uff0c\u4ece 0.10 \u5f00\u59cb\uff0cKafka Streams \u662f\u4e00\u4e2a\u8f7b\u91cf\u7ea7\u4f46\u529f\u80fd\u5f3a\u5927\u7684\u6d41\u5904\u7406\u5e93\uff1b")),(0,a.yg)("h3",{id:"\u5e38\u7528\u547d\u4ee4"},"\u5e38\u7528\u547d\u4ee4"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},"# \u67e5\u770btopic\u5217\u8868\n./kafka-topics.sh --list --bootstrap-server localhost:9092\n# \u521b\u5efatopic\n./kafka-topics.sh --create --bootstrap-server localhost:9092 --topic xxx\n# \u521b\u5efa\u751f\u4ea7\u8005\n./kafka-console-producer.sh --bootstrap-server localhost:9092 --topic jiot.cloud\n# \u521b\u5efa\u6d88\u8d39\u8005\n./kafka-console-consumer.sh --bootstrap-server localhost:9092 \\\n--topic jiot.cloud \\\n--from-beginning\n")))}f.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1521],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>y});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var i=n.createContext({}),s=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},p=function(e){var t=s(e.components);return n.createElement(i.Provider,{value:t},e.children)},u="mdxType",f={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,i=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),u=s(r),d=a,y=u["".concat(i,".").concat(d)]||u[d]||f[d]||o;return r?n.createElement(y,c(c({ref:t},p),{},{components:r})):n.createElement(y,c({ref:t},p))}));function y(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,c=new Array(o);c[0]=d;var l={};for(var i in t)hasOwnProperty.call(t,i)&&(l[i]=t[i]);l.originalType=e,l[u]="string"==typeof e?e:a,c[1]=l;for(var s=2;s{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>c,default:()=>f,frontMatter:()=>o,metadata:()=>l,toc:()=>s});var n=r(8168),a=(r(6540),r(5680));const o={},c=void 0,l={unversionedId:"study/back/mq/Kafka",id:"study/back/mq/Kafka",title:"Kafka",description:"\u7b80\u4ecb",source:"@site/docs/study/back/mq/Kafka.md",sourceDirName:"study/back/mq",slug:"/study/back/mq/Kafka",permalink:"/docs/study/back/mq/Kafka",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"pom\u6587\u4ef6\u4e2d\u7684scope\u6807\u7b7e",permalink:"/docs/study/back/maven/pom\u6587\u4ef6\u4e2d\u7684scope\u6807\u7b7e"},next:{title:"MQTT broker",permalink:"/docs/study/back/mq/MQTT broker"}},i={},s=[{value:"\u7b80\u4ecb",id:"\u7b80\u4ecb",level:3},{value:"\u5e38\u89c1\u4f7f\u7528\u573a\u666f",id:"\u5e38\u89c1\u4f7f\u7528\u573a\u666f",level:3},{value:"\u5e38\u7528\u547d\u4ee4",id:"\u5e38\u7528\u547d\u4ee4",level:3}],p={toc:s},u="wrapper";function f(e){let{components:t,...r}=e;return(0,a.yg)(u,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"\u7b80\u4ecb"},"\u7b80\u4ecb"),(0,a.yg)("p",null,"kafka \u6700\u65b0\u5b9a\u4e49\u4e3a\uff1a\u5206\u5e03\u5f0f\u6d41\u5f0f\u5e73\u53f0\uff0c\u800c\u4e0d\u662f\u5355\u7eaf\u7684\u6d88\u606f\u7cfb\u7edf\uff0c\u66f4\u5177\u6709\u6301\u4e45\u5316\u3001\u6d41\u5904\u7406\u7684\u7279\u70b9\uff1b\u4e3b\u8981\u5904\u7406\u4e24\u7c7b\u5e94\u7528\uff1a\u5b9e\u65f6\u6d41\u6570\u636e\u7ba1\u9053\u548c\u5b9e\u65f6\u6d41\u5e94\u7528\u7a0b\u5e8f\u3002"),(0,a.yg)("p",null,"\u5b9e\u65f6\u6d41\u6570\u636e\u7ba1\u9053\uff1a\u4e3e\u4e2a\u4f8b\u5b50 Kafka+ELK \u5904\u7406\u65e5\u5fd7\uff1b\n\u5b9e\u65f6\u6d41\u5e94\u7528\u7a0b\u5e8f\uff1a\u4e3e\u4e2a\u4f8b\u5b50 Kafka+\u62a5\u8b66\u6a21\u5757 APP\uff1b\n\u6301\u4e45\u5316\uff0c\u53ef\u4ee5\u4f5c\u4e3a\u5b58\u50a8\u7cfb\u7edf\uff0c\u6bcf\u4e2a\u6d88\u8d39\u8005\u5bf9\u6bcf\u4e2a topic \u90fd\u6709\u4e00\u4e2a offset \u6765\u8bb0\u5f55\u4e0a\u6b21\u6d88\u8d39\u7684\u4f4d\u7f6e\uff1b"),(0,a.yg)("h3",{id:"\u5e38\u89c1\u4f7f\u7528\u573a\u666f"},"\u5e38\u89c1\u4f7f\u7528\u573a\u666f"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},"\u6d88\u606f\uff0c\u53ef\u4ee5\u5ab2\u7f8e ActiveMQ \u548c RabbitMQ\uff1b"),(0,a.yg)("li",{parentName:"ol"},"\u7f51\u7ad9\u6d3b\u52a8\u8ddf\u8e2a\uff0c\u6570\u636e>>Kafka>>ELK/Hbase/Hadoop\uff1b"),(0,a.yg)("li",{parentName:"ol"},"\u5ea6\u91cf\uff0c\u8fd0\u8425\u76d1\u63a7\u6570\u636e\uff1b"),(0,a.yg)("li",{parentName:"ol"},"\u65e5\u5fd7\u805a\u5408\uff0cKafka+ELK\uff1b"),(0,a.yg)("li",{parentName:"ol"},"\u6d41\u5904\u7406\uff0c\u4ece 0.10 \u5f00\u59cb\uff0cKafka Streams \u662f\u4e00\u4e2a\u8f7b\u91cf\u7ea7\u4f46\u529f\u80fd\u5f3a\u5927\u7684\u6d41\u5904\u7406\u5e93\uff1b")),(0,a.yg)("h3",{id:"\u5e38\u7528\u547d\u4ee4"},"\u5e38\u7528\u547d\u4ee4"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},"# \u67e5\u770btopic\u5217\u8868\n./kafka-topics.sh --list --bootstrap-server localhost:9092\n# \u521b\u5efatopic\n./kafka-topics.sh --create --bootstrap-server localhost:9092 --topic xxx\n# \u521b\u5efa\u751f\u4ea7\u8005\n./kafka-console-producer.sh --bootstrap-server localhost:9092 --topic jiot.cloud\n# \u521b\u5efa\u6d88\u8d39\u8005\n./kafka-console-consumer.sh --bootstrap-server localhost:9092 \\\n--topic jiot.cloud \\\n--from-beginning\n")))}f.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/7f32d532.bf2f17f3.js b/assets/js/7f32d532.fe6a9503.js similarity index 97% rename from assets/js/7f32d532.bf2f17f3.js rename to assets/js/7f32d532.fe6a9503.js index 831e461c1..86a588a38 100644 --- a/assets/js/7f32d532.bf2f17f3.js +++ b/assets/js/7f32d532.fe6a9503.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6349],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>d});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var l=n.createContext({}),p=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(l.Provider,{value:t},e.children)},m="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),m=p(r),y=a,d=m["".concat(l,".").concat(y)]||m[y]||s[y]||o;return r?n.createElement(d,c(c({ref:t},u),{},{components:r})):n.createElement(d,c({ref:t},u))}));function d(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,c=new Array(o);c[0]=y;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[m]="string"==typeof e?e:a,c[1]=i;for(var p=2;p{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>c,default:()=>s,frontMatter:()=>o,metadata:()=>i,toc:()=>p});var n=r(8168),a=(r(6540),r(5680));const o={},c=void 0,i={unversionedId:"study/program/C/cmake",id:"study/program/C/cmake",title:"cmake",description:"cmake \u4ecb\u7ecd",source:"@site/docs/study/program/C/cmake.md",sourceDirName:"study/program/C",slug:"/study/program/C/cmake",permalink:"/docs/study/program/C/cmake",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"MFC-WinForm-WPF-DotNet\u7b49",permalink:"/docs/study/program/C/MFC-WinForm-WPF-DotNet\u7b49"},next:{title:"extern-c",permalink:"/docs/study/program/C/extern-c"}},l={},p=[{value:"cmake \u4ecb\u7ecd",id:"cmake-\u4ecb\u7ecd",level:3}],u={toc:p},m="wrapper";function s(e){let{components:t,...r}=e;return(0,a.yg)(m,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"cmake-\u4ecb\u7ecd"},"cmake \u4ecb\u7ecd"),(0,a.yg)("p",null,"\u4f60\u6216\u8bb8\u542c\u8fc7\u597d\u51e0\u79cd Make \u5de5\u5177\uff0c\u4f8b\u5982 GNU Make \uff0cQT \u7684 qmake \uff0c\u5fae\u8f6f\u7684 MS nmake\uff0cBSD Make\uff08pmake\uff09\uff0cMakepp\uff0c\u7b49\u7b49\u3002\u8fd9\u4e9b Make \u5de5\u5177\u9075\u5faa\u7740\u4e0d\u540c\u7684\u89c4\u8303\u548c\u6807\u51c6\uff0c\u6240\u6267\u884c\u7684 Makefile \u683c\u5f0f\u4e5f\u5343\u5dee\u4e07\u522b\u3002\u8fd9\u6837\u5c31\u5e26\u6765\u4e86\u4e00\u4e2a\u4e25\u5cfb\u7684\u95ee\u9898\uff1a\u5982\u679c\u8f6f\u4ef6\u60f3\u8de8\u5e73\u53f0\uff0c\u5fc5\u987b\u8981\u4fdd\u8bc1\u80fd\u591f\u5728\u4e0d\u540c\u5e73\u53f0\u7f16\u8bd1\u3002\u800c\u5982\u679c\u4f7f\u7528\u4e0a\u9762\u7684 Make \u5de5\u5177\uff0c\u5c31\u5f97\u4e3a\u6bcf\u4e00\u79cd\u6807\u51c6\u5199\u4e00\u6b21 Makefile \uff0c\u8fd9\u5c06\u662f\u4e00\u4ef6\u8ba9\u4eba\u6293\u72c2\u7684\u5de5\u4f5c\u3002"),(0,a.yg)("p",null,"CMake \u5c31\u662f\u9488\u5bf9\u4e0a\u9762\u95ee\u9898\u6240\u8bbe\u8ba1\u7684\u5de5\u5177\uff1a\u5b83\u9996\u5148\u5141\u8bb8\u5f00\u53d1\u8005\u7f16\u5199\u4e00\u79cd\u5e73\u53f0\u65e0\u5173\u7684 CMakeList.txt \u6587\u4ef6\u6765\u5b9a\u5236\u6574\u4e2a\u7f16\u8bd1\u6d41\u7a0b\uff0c\u7136\u540e\u518d\u6839\u636e\u76ee\u6807\u7528\u6237\u7684\u5e73\u53f0\u8fdb\u4e00\u6b65\u751f\u6210\u6240\u9700\u7684\u672c\u5730\u5316 Makefile \u548c\u5de5\u7a0b\u6587\u4ef6\uff0c\u5982 Unix \u7684 Makefile \u6216 Windows \u7684 Visual Studio \u5de5\u7a0b\u3002\u4ece\u800c\u505a\u5230\u201cWrite once, run everywhere\u201d\u3002\u663e\u7136\uff0cCMake \u662f\u4e00\u4e2a\u6bd4\u4e0a\u8ff0\u51e0\u79cd make \u66f4\u9ad8\u7ea7\u7684\u7f16\u8bd1\u914d\u7f6e\u5de5\u5177\u3002\u4e00\u4e9b\u4f7f\u7528 CMake \u4f5c\u4e3a\u9879\u76ee\u67b6\u6784\u7cfb\u7edf\u7684\u77e5\u540d\u5f00\u6e90\u9879\u76ee\u6709 VTK\u3001ITK\u3001KDE\u3001OpenCV\u3001OSG \u7b49 \u3002"),(0,a.yg)("p",null,"\u5728 linux \u5e73\u53f0\u4e0b\u4f7f\u7528 CMake \u751f\u6210 Makefile \u5e76\u7f16\u8bd1\u7684\u6d41\u7a0b\u5982\u4e0b\uff1a"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u5199 CMake \u914d\u7f6e\u6587\u4ef6 CMakeLists.txt \u3002"),(0,a.yg)("li",{parentName:"ul"},"\u6267\u884c\u547d\u4ee4 cmake PATH \u6216\u8005 ccmake PATH \u751f\u6210 Makefile\uff08ccmake \u548c cmake \u7684\u533a\u522b\u5728\u4e8e\u524d\u8005\u63d0\u4f9b\u4e86\u4e00\u4e2a\u4ea4\u4e92\u5f0f\u7684\u754c\u9762\uff09\u3002\u5176\u4e2d\uff0c PATH \u662f CMakeLists.txt \u6240\u5728\u7684\u76ee\u5f55\u3002"),(0,a.yg)("li",{parentName:"ul"},"\u4f7f\u7528 make \u547d\u4ee4\u8fdb\u884c\u7f16\u8bd1\u3002")))}s.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6349],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>d});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var l=n.createContext({}),p=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(l.Provider,{value:t},e.children)},m="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),m=p(r),y=a,d=m["".concat(l,".").concat(y)]||m[y]||s[y]||o;return r?n.createElement(d,c(c({ref:t},u),{},{components:r})):n.createElement(d,c({ref:t},u))}));function d(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,c=new Array(o);c[0]=y;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[m]="string"==typeof e?e:a,c[1]=i;for(var p=2;p{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>c,default:()=>s,frontMatter:()=>o,metadata:()=>i,toc:()=>p});var n=r(8168),a=(r(6540),r(5680));const o={},c=void 0,i={unversionedId:"study/program/C/cmake",id:"study/program/C/cmake",title:"cmake",description:"cmake \u4ecb\u7ecd",source:"@site/docs/study/program/C/cmake.md",sourceDirName:"study/program/C",slug:"/study/program/C/cmake",permalink:"/docs/study/program/C/cmake",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"MFC-WinForm-WPF-DotNet\u7b49",permalink:"/docs/study/program/C/MFC-WinForm-WPF-DotNet\u7b49"},next:{title:"extern-c",permalink:"/docs/study/program/C/extern-c"}},l={},p=[{value:"cmake \u4ecb\u7ecd",id:"cmake-\u4ecb\u7ecd",level:3}],u={toc:p},m="wrapper";function s(e){let{components:t,...r}=e;return(0,a.yg)(m,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"cmake-\u4ecb\u7ecd"},"cmake \u4ecb\u7ecd"),(0,a.yg)("p",null,"\u4f60\u6216\u8bb8\u542c\u8fc7\u597d\u51e0\u79cd Make \u5de5\u5177\uff0c\u4f8b\u5982 GNU Make \uff0cQT \u7684 qmake \uff0c\u5fae\u8f6f\u7684 MS nmake\uff0cBSD Make\uff08pmake\uff09\uff0cMakepp\uff0c\u7b49\u7b49\u3002\u8fd9\u4e9b Make \u5de5\u5177\u9075\u5faa\u7740\u4e0d\u540c\u7684\u89c4\u8303\u548c\u6807\u51c6\uff0c\u6240\u6267\u884c\u7684 Makefile \u683c\u5f0f\u4e5f\u5343\u5dee\u4e07\u522b\u3002\u8fd9\u6837\u5c31\u5e26\u6765\u4e86\u4e00\u4e2a\u4e25\u5cfb\u7684\u95ee\u9898\uff1a\u5982\u679c\u8f6f\u4ef6\u60f3\u8de8\u5e73\u53f0\uff0c\u5fc5\u987b\u8981\u4fdd\u8bc1\u80fd\u591f\u5728\u4e0d\u540c\u5e73\u53f0\u7f16\u8bd1\u3002\u800c\u5982\u679c\u4f7f\u7528\u4e0a\u9762\u7684 Make \u5de5\u5177\uff0c\u5c31\u5f97\u4e3a\u6bcf\u4e00\u79cd\u6807\u51c6\u5199\u4e00\u6b21 Makefile \uff0c\u8fd9\u5c06\u662f\u4e00\u4ef6\u8ba9\u4eba\u6293\u72c2\u7684\u5de5\u4f5c\u3002"),(0,a.yg)("p",null,"CMake \u5c31\u662f\u9488\u5bf9\u4e0a\u9762\u95ee\u9898\u6240\u8bbe\u8ba1\u7684\u5de5\u5177\uff1a\u5b83\u9996\u5148\u5141\u8bb8\u5f00\u53d1\u8005\u7f16\u5199\u4e00\u79cd\u5e73\u53f0\u65e0\u5173\u7684 CMakeList.txt \u6587\u4ef6\u6765\u5b9a\u5236\u6574\u4e2a\u7f16\u8bd1\u6d41\u7a0b\uff0c\u7136\u540e\u518d\u6839\u636e\u76ee\u6807\u7528\u6237\u7684\u5e73\u53f0\u8fdb\u4e00\u6b65\u751f\u6210\u6240\u9700\u7684\u672c\u5730\u5316 Makefile \u548c\u5de5\u7a0b\u6587\u4ef6\uff0c\u5982 Unix \u7684 Makefile \u6216 Windows \u7684 Visual Studio \u5de5\u7a0b\u3002\u4ece\u800c\u505a\u5230\u201cWrite once, run everywhere\u201d\u3002\u663e\u7136\uff0cCMake \u662f\u4e00\u4e2a\u6bd4\u4e0a\u8ff0\u51e0\u79cd make \u66f4\u9ad8\u7ea7\u7684\u7f16\u8bd1\u914d\u7f6e\u5de5\u5177\u3002\u4e00\u4e9b\u4f7f\u7528 CMake \u4f5c\u4e3a\u9879\u76ee\u67b6\u6784\u7cfb\u7edf\u7684\u77e5\u540d\u5f00\u6e90\u9879\u76ee\u6709 VTK\u3001ITK\u3001KDE\u3001OpenCV\u3001OSG \u7b49 \u3002"),(0,a.yg)("p",null,"\u5728 linux \u5e73\u53f0\u4e0b\u4f7f\u7528 CMake \u751f\u6210 Makefile \u5e76\u7f16\u8bd1\u7684\u6d41\u7a0b\u5982\u4e0b\uff1a"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u5199 CMake \u914d\u7f6e\u6587\u4ef6 CMakeLists.txt \u3002"),(0,a.yg)("li",{parentName:"ul"},"\u6267\u884c\u547d\u4ee4 cmake PATH \u6216\u8005 ccmake PATH \u751f\u6210 Makefile\uff08ccmake \u548c cmake \u7684\u533a\u522b\u5728\u4e8e\u524d\u8005\u63d0\u4f9b\u4e86\u4e00\u4e2a\u4ea4\u4e92\u5f0f\u7684\u754c\u9762\uff09\u3002\u5176\u4e2d\uff0c PATH \u662f CMakeLists.txt \u6240\u5728\u7684\u76ee\u5f55\u3002"),(0,a.yg)("li",{parentName:"ul"},"\u4f7f\u7528 make \u547d\u4ee4\u8fdb\u884c\u7f16\u8bd1\u3002")))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/817aa27b.fb2f3965.js b/assets/js/817aa27b.7e7e2e17.js similarity index 99% rename from assets/js/817aa27b.fb2f3965.js rename to assets/js/817aa27b.7e7e2e17.js index 0a3fdaae8..9fec7aef2 100644 --- a/assets/js/817aa27b.fb2f3965.js +++ b/assets/js/817aa27b.7e7e2e17.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4632],{5680:(e,n,o)=>{o.d(n,{xA:()=>p,yg:()=>s});var t=o(6540);function l(e,n,o){return n in e?Object.defineProperty(e,n,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[n]=o,e}function a(e,n){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);n&&(t=t.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),o.push.apply(o,t)}return o}function r(e){for(var n=1;n=0||(l[o]=e[o]);return l}(e,n);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(l[o]=e[o])}return l}var g=t.createContext({}),u=function(e){var n=t.useContext(g),o=n;return e&&(o="function"==typeof e?e(n):r(r({},n),e)),o},p=function(e){var n=u(e.components);return t.createElement(g.Provider,{value:n},e.children)},d="mdxType",c={inlineCode:"code",wrapper:function(e){var n=e.children;return t.createElement(t.Fragment,{},n)}},y=t.forwardRef((function(e,n){var o=e.components,l=e.mdxType,a=e.originalType,g=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),d=u(o),y=l,s=d["".concat(g,".").concat(y)]||d[y]||c[y]||a;return o?t.createElement(s,r(r({ref:n},p),{},{components:o})):t.createElement(s,r({ref:n},p))}));function s(e,n){var o=arguments,l=n&&n.mdxType;if("string"==typeof e||l){var a=o.length,r=new Array(a);r[0]=y;var i={};for(var g in n)hasOwnProperty.call(n,g)&&(i[g]=n[g]);i.originalType=e,i[d]="string"==typeof e?e:l,r[1]=i;for(var u=2;u{o.r(n),o.d(n,{assets:()=>g,contentTitle:()=>r,default:()=>c,frontMatter:()=>a,metadata:()=>i,toc:()=>u});var t=o(8168),l=(o(6540),o(5680));const a={},r=void 0,i={unversionedId:"study/db/NoSQL/MongoDB",id:"study/db/NoSQL/MongoDB",title:"MongoDB",description:"MongoDB",source:"@site/docs/study/db/NoSQL/MongoDB.md",sourceDirName:"study/db/NoSQL",slug:"/study/db/NoSQL/MongoDB",permalink:"/docs/study/db/NoSQL/MongoDB",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Ignite",permalink:"/docs/study/db/NoSQL/Ignite"},next:{title:"Redis",permalink:"/docs/study/db/NoSQL/Redis"}},g={},u=[{value:"MongoDB",id:"mongodb",level:3},{value:"\u6587\u6863\u6570\u636e\u5e93",id:"\u6587\u6863\u6570\u636e\u5e93",level:3},{value:"\u9002\u7528\u573a\u666f",id:"\u9002\u7528\u573a\u666f",level:3},{value:"\u4e0d\u9002\u7528\u573a\u666f",id:"\u4e0d\u9002\u7528\u573a\u666f",level:3},{value:"\u6982\u5ff5",id:"\u6982\u5ff5",level:3},{value:"db",id:"db",level:4},{value:"collection",id:"collection",level:4},{value:"document",id:"document",level:4},{value:"\u96c6\u7fa4\u6982\u5ff5",id:"\u96c6\u7fa4\u6982\u5ff5",level:3},{value:"mongostat",id:"mongostat",level:3},{value:"mongotop",id:"mongotop",level:3},{value:"\u5907\u4efd/\u6062\u590d",id:"\u5907\u4efd\u6062\u590d",level:3},{value:"\u5206\u9875\u67e5\u8be2",id:"\u5206\u9875\u67e5\u8be2",level:3},{value:"\u65b9\u6848\u4e00",id:"\u65b9\u6848\u4e00",level:4},{value:"\u65b9\u6848\u4e8c",id:"\u65b9\u6848\u4e8c",level:4},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],p={toc:u},d="wrapper";function c(e){let{components:n,...o}=e;return(0,l.yg)(d,(0,t.A)({},p,o,{components:n,mdxType:"MDXLayout"}),(0,l.yg)("h3",{id:"mongodb"},"MongoDB"),(0,l.yg)("p",null,"MongoDB\u662f\u4e00\u4e2a\u4ecb\u4e8e\u5173\u7cfb\u6570\u636e\u5e93\u548c\u975e\u5173\u7cfb\u6570\u636e\u5e93\u4e4b\u95f4\u7684\u4ea7\u54c1\uff0c\u662f\u975e\u5173\u7cfb\u6570\u636e\u5e93\u5f53\u4e2d\u529f\u80fd\u6700\u4e30\u5bcc\uff0c\u6700\u50cf\u5173\u7cfb\u6570\u636e\u5e93\u7684\u3002\u4ed6\u652f\u6301\u7684\u6570\u636e\u7ed3\u6784\u975e\u5e38\u677e\u6563\uff0c\u662f\u7c7b\u4f3cjson\u7684bson\u683c\u5f0f\uff0c\u56e0\u6b64\u53ef\u4ee5\u5b58\u50a8\u6bd4\u8f83\u590d\u6742\u7684\u6570\u636e\u7c7b\u578b\u3002Mongo\u6700\u5927\u7684\u7279\u70b9\u662f\u4ed6\u652f\u6301\u7684\u67e5\u8be2\u8bed\u8a00\u975e\u5e38\u5f3a\u5927\uff0c\u5176\u8bed\u6cd5\u6709\u70b9\u7c7b\u4f3c\u4e8e\u9762\u5411\u5bf9\u8c61\u7684\u67e5\u8be2\u8bed\u8a00\uff0c\u51e0\u4e4e\u53ef\u4ee5\u5b9e\u73b0\u7c7b\u4f3c\u5173\u7cfb\u6570\u636e\u5e93\u5355\u8868\u67e5\u8be2\u7684\u7edd\u5927\u90e8\u5206\u529f\u80fd\uff0c\u800c\u4e14\u8fd8\u652f\u6301\u5bf9\u6570\u636e\u5efa\u7acb\u7d22\u5f15\u3002"),(0,l.yg)("p",null,"Mongo\u662f\u4e00\u4e2a\u9ad8\u6027\u80fd\uff0c\u5f00\u6e90\uff0c\u65e0\u6a21\u5f0f\u7684\u6587\u6863\u578b\u6570\u636e\u5e93\uff0c\u5b83\u5728\u8bb8\u591a\u573a\u666f\u4e0b\u53ef\u7528\u4e8e\u66ff\u4ee3\u4f20\u7edf\u7684\u5173\u7cfb\u578b\u6570\u636e\u5e93\u6216\u952e/\u503c\u5b58\u50a8\u65b9\u5f0f\u3002"),(0,l.yg)("p",null,"MongoDB Version4+\u5f00\u59cb\u539f\u751f\u652f\u6301\u4e8b\u52a1\uff1b\u8c8c\u4f3c\u53ef\u4ee5\u66ff\u6362\u5173\u7cfb\u6570\u636e\u5e93\uff0c\u4f46\u662f\u8fd9\u80fd\u884c\u4e48\uff1f",(0,l.yg)("a",{parentName:"p",href:"https://www.cnblogs.com/ExMan/p/9565125.html"},"\u5343\u4e07\u522b\u7528MongoDB\uff1f\u771f\u7684\u5417\uff1f\uff01")," \xa0\u6211\u5bf9\u6b64\u6301\u4fdd\u7559\u610f\u89c1\u3002"),(0,l.yg)("p",null,(0,l.yg)("strong",{parentName:"p"},"\u4e0d\u8981\u4e3a\u4e86\u4f7f\u7528MongoDB\u800c\u4f7f\u7528MongoDB\uff0c\u4e00\u5b9a\u8981\u597d\u597d\u5206\u6790\uff0c\u4e3b\u8981\u7cbe\u529b\u5e94\u8be5\u653e\u5728\u4f7f\u7528Msql\u7b49\u5173\u7cfb\u578b\u6570\u636e\u5e93\u4e0a\uff0c\u5f53\u5173\u7cfb\u578b\u6570\u636e\u5e93\u662f\u5728\u65e0\u6cd5\u6ee1\u8db3\u6216\u8005\u5b9e\u73b0\u8f83\u590d\u6742\u65f6\uff0c\u518d\u53bb\u8003\u8651\u8fd9\u4e2a\u7ec6\u5206\u573a\u666fMongoDB\u662f\u5426\u5408\u9002\u3002")),(0,l.yg)("h3",{id:"\u6587\u6863\u6570\u636e\u5e93"},"\u6587\u6863\u6570\u636e\u5e93"),(0,l.yg)("p",null,"\u4e3a\u4e86\u89e3\u51b3\u5173\u7cfb\u6570\u636e\u5e93 schema \u5e26\u6765\u7684\u95ee\u9898\uff0c\u6587\u6863\u6570\u636e\u5e93\u5e94\u8fd0\u800c\u751f\u3002\u6587\u6863\u6570\u636e\u5e93\u6700\u5927\u7684\u7279\u70b9\u5c31\u662f no-schema\uff0c\u53ef\u4ee5\u5b58\u50a8\u548c\u8bfb\u53d6\u4efb\u610f\u7684\u6570\u636e\u3002\u76ee\u524d\u7edd\u5927\u90e8\u5206\u6587\u6863\u6570\u636e\u5e93\u5b58\u50a8\u7684\u6570\u636e\u683c\u5f0f\u662f JSON\uff08\u6216\u8005 BSON\uff09\uff0c\u56e0\u4e3a JSON \u6570\u636e\u662f\u81ea\u63cf\u8ff0\u7684\uff0c\u65e0\u987b\u5728\u4f7f\u7528\u524d\u5b9a\u4e49\u5b57\u6bb5\uff0c\u8bfb\u53d6\u4e00\u4e2a JSON \u4e2d\u4e0d\u5b58\u5728\u7684\u5b57\u6bb5\u4e5f\u4e0d\u4f1a\u5bfc\u81f4 SQL \u90a3\u6837\u7684\u8bed\u6cd5\u9519\u8bef\u3002"),(0,l.yg)("p",null,"\u6587\u6863\u6570\u636e\u5e93\u7684 no-schema \u7279\u6027\uff0c\u7ed9\u4e1a\u52a1\u5f00\u53d1\u5e26\u6765\u4e86\u51e0\u4e2a\u660e\u663e\u7684\u4f18\u52bf\u3002"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"\u65b0\u589e\u5b57\u6bb5\u7b80\u5355"),(0,l.yg)("li",{parentName:"ul"},"\u5386\u53f2\u6570\u636e\u4e0d\u4f1a\u51fa\u9519"),(0,l.yg)("li",{parentName:"ul"},"\u53ef\u4ee5\u5f88\u5bb9\u6613\u5b58\u50a8\u590d\u6742\u6570\u636e")),(0,l.yg)("p",null,"\u6587\u6863\u6570\u636e\u5e93 no-schema \u7684\u7279\u6027\u5e26\u6765\u7684\u8fd9\u4e9b\u4f18\u52bf\u4e5f\u662f\u6709\u4ee3\u4ef7\u7684\uff0c\u6700\u4e3b\u8981\u7684\u4ee3\u4ef7\u5c31\u662f\u4e0d\u652f\u6301\u4e8b\u52a1\u3002\u6587\u6863\u6570\u636e\u5e93\u53e6\u5916\u4e00\u4e2a\u7f3a\u70b9\u5c31\u662f\u65e0\u6cd5\u5b9e\u73b0\u5173\u7cfb\u6570\u636e\u5e93\u7684 join \u64cd\u4f5c\u3002"),(0,l.yg)("h3",{id:"\u9002\u7528\u573a\u666f"},"\u9002\u7528\u573a\u666f"),(0,l.yg)("ol",null,(0,l.yg)("li",{parentName:"ol"},"\u7f51\u7ad9\u5b9e\u65f6\u6570\u636e\u5904\u7406\u3002\u5b83\u975e\u5e38\u9002\u5408\u5b9e\u65f6\u7684\u63d2\u5165\u3001\u66f4\u65b0\u4e0e\u67e5\u8be2\uff0c\u5e76\u5177\u5907\u7f51\u7ad9\u5b9e\u65f6\u6570\u636e\u5b58\u50a8\u6240\u9700\u7684\u590d\u5236\u53ca\u9ad8\u5ea6\u4f38\u7f29\u6027\u3002"),(0,l.yg)("li",{parentName:"ol"},"\u7f13\u5b58\u3002\u7531\u4e8e\u6027\u80fd\u5f88\u9ad8\uff0c\u5b83\u9002\u5408\u4f5c\u4e3a\u4fe1\u606f\u57fa\u7840\u8bbe\u65bd\u7684\u7f13\u5b58\u5c42\u3002\u5728\u7cfb\u7edf\u91cd\u542f\u4e4b\u540e\uff0c\u7531\u5b83\u642d\u5efa\u7684\u6301\u4e45\u5316\u7f13\u5b58\u5c42\u53ef\u4ee5\u907f\u514d\u4e0b\u5c42\u7684\u6570\u636e\u6e90\u8fc7\u8f7d\u3002"),(0,l.yg)("li",{parentName:"ol"},"\u9ad8\u4f38\u7f29\u6027\u9ad8\u53ef\u7528\u7684\u573a\u666f\u3002MongoDB\u4f7f\u7528\u5206\u7247\u6c34\u5e73\u7f29\u653e\uff0c\u5e76\u4e14\u53ef\u4ee5\u8fd0\u884c\u5728\u591a\u4e2a\u670d\u52a1\u5668\u4e0a\uff0c\u5e73\u8861\u8d1f\u8f7d\u6216\u590d\u5236\u6570\u636e\uff0c\u4ee5\u4fbf\u5728\u786c\u4ef6\u51fa\u73b0\u6545\u969c\u65f6\u4fdd\u6301\u7cfb\u7edf\u6b63\u5e38\u8fd0\u884c\u3002"),(0,l.yg)("li",{parentName:"ol"},"\u6d77\u91cf\u6570\u636e\u3002")),(0,l.yg)("h3",{id:"\u4e0d\u9002\u7528\u573a\u666f"},"\u4e0d\u9002\u7528\u573a\u666f"),(0,l.yg)("ol",null,(0,l.yg)("li",{parentName:"ol"},"\u8981\u6c42\u9ad8\u5ea6\u4e8b\u52a1\u6027\u7684\u7cfb\u7edf\u3002"),(0,l.yg)("li",{parentName:"ol"},"\u4f20\u7edf\u7684\u5546\u4e1a\u667a\u80fd\u5e94\u7528\u3002"),(0,l.yg)("li",{parentName:"ol"},"\u590d\u6742\u7684\u8de8\u6587\u6863\uff08\u8868\uff09\u7ea7\u8054\u67e5\u8be2\u3002")),(0,l.yg)("h3",{id:"\u6982\u5ff5"},"\u6982\u5ff5"),(0,l.yg)("h4",{id:"db"},"db"),(0,l.yg)("p",null,"\u6709\u4e00\u4e9b\u6570\u636e\u5e93\u540d\u662f\u4fdd\u7559\u7684\uff0c\u53ef\u4ee5\u76f4\u63a5\u8bbf\u95ee\u8fd9\u4e9b\u6709\u7279\u6b8a\u4f5c\u7528\u7684\u6570\u636e\u5e93\u3002"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("strong",{parentName:"li"},"admin"),'\uff1a \u4ece\u6743\u9650\u7684\u89d2\u5ea6\u6765\u770b\uff0c\u8fd9\u662f"root"\u6570\u636e\u5e93\u3002\u8981\u662f\u5c06\u4e00\u4e2a\u7528\u6237\u6dfb\u52a0\u5230\u8fd9\u4e2a\u6570\u636e\u5e93\uff0c\u8fd9\u4e2a\u7528\u6237\u81ea\u52a8\u7ee7\u627f\u6240\u6709\u6570\u636e\u5e93\u7684\u6743\u9650\u3002\u4e00\u4e9b\u7279\u5b9a\u7684\u670d\u52a1\u5668\u7aef\u547d\u4ee4\u4e5f\u53ea\u80fd\u4ece\u8fd9\u4e2a\u6570\u636e\u5e93\u8fd0\u884c\uff0c\u6bd4\u5982\u5217\u51fa\u6240\u6709\u7684\u6570\u636e\u5e93\u6216\u8005\u5173\u95ed\u670d\u52a1\u5668\u3002'),(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("strong",{parentName:"li"},"local:")," \u8fd9\u4e2a\u6570\u636e\u6c38\u8fdc\u4e0d\u4f1a\u88ab\u590d\u5236\uff0c\u53ef\u4ee5\u7528\u6765\u5b58\u50a8\u9650\u4e8e\u672c\u5730\u5355\u53f0\u670d\u52a1\u5668\u7684\u4efb\u610f\u96c6\u5408"),(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("strong",{parentName:"li"},"config"),": \u5f53Mongo\u7528\u4e8e\u5206\u7247\u8bbe\u7f6e\u65f6\uff0cconfig\u6570\u636e\u5e93\u5728\u5185\u90e8\u4f7f\u7528\uff0c\u7528\u4e8e\u4fdd\u5b58\u5206\u7247\u7684\u76f8\u5173\u4fe1\u606f\u3002")),(0,l.yg)("h4",{id:"collection"},"collection"),(0,l.yg)("p",null,"\u6570\u636e\u5e93\u8868/\u96c6\u5408\n\u96c6\u5408\u5c31\u662f MongoDB \u6587\u6863\u7ec4\uff0c\u7c7b\u4f3c\u4e8e RDBMS \uff08\u5173\u7cfb\u6570\u636e\u5e93\u7ba1\u7406\u7cfb\u7edf\uff1aRelational Database Management System)\u4e2d\u7684\u8868\u683c\u3002\n\u96c6\u5408\u5b58\u5728\u4e8e\u6570\u636e\u5e93\u4e2d\uff0c\u96c6\u5408\u6ca1\u6709\u56fa\u5b9a\u7684\u7ed3\u6784\uff0c\u8fd9\u610f\u5473\u7740\u4f60\u5728\u5bf9\u96c6\u5408\u53ef\u4ee5\u63d2\u5165\u4e0d\u540c\u683c\u5f0f\u548c\u7c7b\u578b\u7684\u6570\u636e\uff0c\u4f46\u901a\u5e38\u60c5\u51b5\u4e0b\u6211\u4eec\u63d2\u5165\u96c6\u5408\u7684\u6570\u636e\u90fd\u4f1a\u6709\u4e00\u5b9a\u7684\u5173\u8054\u6027\u3002"),(0,l.yg)("h4",{id:"document"},"document"),(0,l.yg)("p",null,"\u6570\u636e\u8bb0\u5f55\u884c/\u6587\u6863\n\u6587\u6863\u662f\u4e00\u7ec4\u952e\u503c(key-value)\u5bf9(\u5373 BSON)\u3002MongoDB \u7684\u6587\u6863\u4e0d\u9700\u8981\u8bbe\u7f6e\u76f8\u540c\u7684\u5b57\u6bb5\uff0c\u5e76\u4e14\u76f8\u540c\u7684\u5b57\u6bb5\u4e0d\u9700\u8981\u76f8\u540c\u7684\u6570\u636e\u7c7b\u578b\uff0c\u8fd9\u4e0e\u5173\u7cfb\u578b\u6570\u636e\u5e93\u6709\u5f88\u5927\u7684\u533a\u522b\uff0c\u4e5f\u662f MongoDB \u975e\u5e38\u7a81\u51fa\u7684\u7279\u70b9\u3002"),(0,l.yg)("h3",{id:"\u96c6\u7fa4\u6982\u5ff5"},"\u96c6\u7fa4\u6982\u5ff5"),(0,l.yg)("p",null,"mongodb\u96c6\u7fa4\u6709\u4e09\u79cd\u6a21\u5f0f\uff0c\u4e3b\u4ece\u6a21\u5f0f\uff0c\u526f\u672c\u96c6\u6a21\u5f0f\u3001sharding\u5206\u7247\u6a21\u5f0f\u3002\u4e3b\u4ece\u6a21\u5f0f\u5b98\u7f51\u4e5f\u4e0d\u518d\u63a8\u8350\u4e0a\u751f\u4ea7\u73af\u5883\uff0c\u4e3b\u8981\u662f\u5b89\u5168\u6027\u592a\u4f4e\u3002\u526f\u672c\u96c6\u548csharding\u6a21\u5f0f\u76ee\u524d\u662f\u7528\u7684\u6700\u5e7f\u7684\u65b9\u6848\uff0c\u901a\u5e38\u8fd92\u79cd\u65b9\u6848\u7684\u9009\u62e9\u901a\u8fc7\u6570\u636e\u91cf\u548c\u5e76\u53d1\u6570\u6765\u6743\u8861\u3002\u5728GB\u7ea7\u522b\u7684\u57fa\u672c\u4e0a\u526f\u672c\u96c6\u65b9\u6848\u53ef\u6ee1\u8db3\uff0cTB\u7ea7\u522b\u6216\u4ee5\u4e0a\u91c7\u7528sharding\u6a21\u5f0f\uff0c\u89e3\u51b3\u5355\u673a\u5bb9\u91cf\u548c\u5355\u673a\u5e76\u53d1\u80fd\u529b\u3002\n\u8fd9\u4e24\u79cd\u65e2\u6709\u81ea\u5df1\u7684\u4f18\u52bf\u4e5f\u6709\u81ea\u5df1\u7684\u7f3a\u70b9\uff0c\u6bd4\u5982sharding\u6a21\u5f0f\u5206\u7247\u8d8a\u591a\uff0c\u6027\u80fd\u81ea\u7136\u4e0b\u964d\u8d8a\u591a\u3002"),(0,l.yg)("p",null,(0,l.yg)("strong",{parentName:"p"},"\u4e0d\u662f\u6240\u7528\u7684\u4f7f\u7528\u573a\u666f\u90fd\u5fc5\u987b\u4e0a\u96c6\u7fa4\uff0c\u8981\u56e0\u5730\u5236\u5b9c\u3002")),(0,l.yg)("h3",{id:"mongostat"},"mongostat"),(0,l.yg)("pre",null,(0,l.yg)("code",{parentName:"pre",className:"language-shell"},"#\nmongostat -u admin -p Aa0123 --authenticationDatabase=admin\n")),(0,l.yg)("h3",{id:"mongotop"},"mongotop"),(0,l.yg)("pre",null,(0,l.yg)("code",{parentName:"pre",className:"language-shell"},"#\nmongotop -u admin -p Aa0123 --authenticationDatabase=admin\n")),(0,l.yg)("h3",{id:"\u5907\u4efd\u6062\u590d"},"\u5907\u4efd/\u6062\u590d"),(0,l.yg)("pre",null,(0,l.yg)("code",{parentName:"pre",className:"language-shell"},"#\u5907\u4efd\u6240\u6709\u8868\nmongodump -h 172.18.92.170 --port 27017 -u \u7528\u6237\u540d -p \u5bc6\u7801 -o /usr/local/mongodb/bak/\n\n#\u6062\u590d\u6240\u6709\u8868\nmongorestore --port 27017 -u \u7528\u6237\u540d -p \u5bc6\u7801 --authenticationDatabase admin /usr/local/mongodb/bak/\n")),(0,l.yg)("h3",{id:"\u5206\u9875\u67e5\u8be2"},"\u5206\u9875\u67e5\u8be2"),(0,l.yg)("p",null,"mongo\u7684\u5206\u9875\u76f8\u5173\u529f\u80fd\u6027\u80fd\u8f83\u5dee\uff0c\u9488\u5bf9\u8fd9\u4e2a\u95ee\u9898\u7ecf\u8fc7\u7814\u7a76\u53d1\u73b0\u5728\u5206\u9875\u4e2dskip\u6570\u503c\u8d8a\u5927\u6027\u80fd\u5c31\u8d8a\u4f4e\uff0c\u7b26\u5408\u6761\u4ef6\u7684\u6570\u636e\u8d8a\u591acount\u6027\u80fd\u5c31\u8d8a\u4f4e\u3002\u9488\u5bf9\u8fd92\u4e2a\u95ee\u9898\u6211\u4eec\u8fdb\u884c\u4e86\u8be6\u7ec6\u7684\u6d4b\u8bd5\uff0c\u5171\u603b\u7ed3\u51fa2\u79cd\u6548\u679c\u4e0d\u9519\u7684\u65b9\u6848\u3002"),(0,l.yg)("h4",{id:"\u65b9\u6848\u4e00"},"\u65b9\u6848\u4e00"),(0,l.yg)("p",null,"\u4f7f\u7528Top N\u7684\u65b9\u5f0f\u9650\u5236\u68c0\u7d22\u6570\u91cf\u6700\u59275000\u6761\uff0c\u4f8b\u5982\u7edf\u8ba1\u7b26\u5408\u6761\u4ef6\u7684\u62a5\u8b66\u8bb0\u5f55\u6761\u6570\uff1a"),(0,l.yg)("pre",null,(0,l.yg)("code",{parentName:"pre",className:"language-javascript"},'db.AlarmHistory.find({\n "did": {$in: [\n "10000000000000001000"\n ]},\n "createTime":{ "$gte":1636949672, "$lt":1637381672}\n}).limit(5000).count(true);\n')),(0,l.yg)("p",null,"\u901a\u8fc7limit(5000)\u9650\u5236\u7edf\u8ba1\u6700\u5927\u503c\u5373\u4e3a5000\uff0c\u4ece\u800c\u63d0\u9ad8\u4e86count\u6548\u7387\uff0c\u4f46\u4e5f\u6709\u4e00\u4e9b\u5c40\u9650\u6027\u5c31\u662f\u53ea\u80fd\u7edf\u8ba1\u7b26\u5408\u6761\u4ef6\u7684\u6700\u540e5000\u6761\u6570\u636e\uff0c\u800c\u4e0d\u662f\u7b26\u5408\u6761\u4ef6\u7684\u5168\u90e8\u6570\u636e\u3002"),(0,l.yg)("h4",{id:"\u65b9\u6848\u4e8c"},"\u65b9\u6848\u4e8c"),(0,l.yg)("p",null,"\u901a\u8fc7\u52a0\u8f7d\u66f4\u591a\u7684\u65b9\u5f0f\u5206\u9875\uff0c\u5373\u67e5\u8be2\u4e0b\u4e00\u9875\u65f6\u9700\u8981\u4f20\u9012\u5f53\u524d\u9875\u7684\u6700\u540e\u4e00\u6761\u6570\u636e\u7684\u5e8f\u53f7\uff0c\u8fd9\u6837\u5c31\u7ed5\u8fc7count\u7edf\u8ba1\uff0c\u4f46\u8fd9\u79cd\u65b9\u5f0f\u7684\u5f0a\u7aef\u5728\u4e8e\u9875\u9762\u4e0d\u4f1a\u663e\u793a\u603b\u5171\u591a\u5c11\u6761\u6570\u636e\u3001\u5171\u5206\u591a\u5c11\u9875\u7b49\u6570\u636e\u3002"),(0,l.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,l.yg)("ol",null,(0,l.yg)("li",{parentName:"ol"},(0,l.yg)("a",{parentName:"li",href:"https://www.runoob.com/mongodb/mongodb-tutorial.html"},"MongoDB\u6559\u7a0b"))))}c.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4632],{5680:(e,n,o)=>{o.d(n,{xA:()=>p,yg:()=>s});var t=o(6540);function l(e,n,o){return n in e?Object.defineProperty(e,n,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[n]=o,e}function a(e,n){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);n&&(t=t.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),o.push.apply(o,t)}return o}function r(e){for(var n=1;n=0||(l[o]=e[o]);return l}(e,n);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(l[o]=e[o])}return l}var g=t.createContext({}),u=function(e){var n=t.useContext(g),o=n;return e&&(o="function"==typeof e?e(n):r(r({},n),e)),o},p=function(e){var n=u(e.components);return t.createElement(g.Provider,{value:n},e.children)},d="mdxType",c={inlineCode:"code",wrapper:function(e){var n=e.children;return t.createElement(t.Fragment,{},n)}},y=t.forwardRef((function(e,n){var o=e.components,l=e.mdxType,a=e.originalType,g=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),d=u(o),y=l,s=d["".concat(g,".").concat(y)]||d[y]||c[y]||a;return o?t.createElement(s,r(r({ref:n},p),{},{components:o})):t.createElement(s,r({ref:n},p))}));function s(e,n){var o=arguments,l=n&&n.mdxType;if("string"==typeof e||l){var a=o.length,r=new Array(a);r[0]=y;var i={};for(var g in n)hasOwnProperty.call(n,g)&&(i[g]=n[g]);i.originalType=e,i[d]="string"==typeof e?e:l,r[1]=i;for(var u=2;u{o.r(n),o.d(n,{assets:()=>g,contentTitle:()=>r,default:()=>c,frontMatter:()=>a,metadata:()=>i,toc:()=>u});var t=o(8168),l=(o(6540),o(5680));const a={},r=void 0,i={unversionedId:"study/db/NoSQL/MongoDB",id:"study/db/NoSQL/MongoDB",title:"MongoDB",description:"MongoDB",source:"@site/docs/study/db/NoSQL/MongoDB.md",sourceDirName:"study/db/NoSQL",slug:"/study/db/NoSQL/MongoDB",permalink:"/docs/study/db/NoSQL/MongoDB",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Ignite",permalink:"/docs/study/db/NoSQL/Ignite"},next:{title:"Redis",permalink:"/docs/study/db/NoSQL/Redis"}},g={},u=[{value:"MongoDB",id:"mongodb",level:3},{value:"\u6587\u6863\u6570\u636e\u5e93",id:"\u6587\u6863\u6570\u636e\u5e93",level:3},{value:"\u9002\u7528\u573a\u666f",id:"\u9002\u7528\u573a\u666f",level:3},{value:"\u4e0d\u9002\u7528\u573a\u666f",id:"\u4e0d\u9002\u7528\u573a\u666f",level:3},{value:"\u6982\u5ff5",id:"\u6982\u5ff5",level:3},{value:"db",id:"db",level:4},{value:"collection",id:"collection",level:4},{value:"document",id:"document",level:4},{value:"\u96c6\u7fa4\u6982\u5ff5",id:"\u96c6\u7fa4\u6982\u5ff5",level:3},{value:"mongostat",id:"mongostat",level:3},{value:"mongotop",id:"mongotop",level:3},{value:"\u5907\u4efd/\u6062\u590d",id:"\u5907\u4efd\u6062\u590d",level:3},{value:"\u5206\u9875\u67e5\u8be2",id:"\u5206\u9875\u67e5\u8be2",level:3},{value:"\u65b9\u6848\u4e00",id:"\u65b9\u6848\u4e00",level:4},{value:"\u65b9\u6848\u4e8c",id:"\u65b9\u6848\u4e8c",level:4},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],p={toc:u},d="wrapper";function c(e){let{components:n,...o}=e;return(0,l.yg)(d,(0,t.A)({},p,o,{components:n,mdxType:"MDXLayout"}),(0,l.yg)("h3",{id:"mongodb"},"MongoDB"),(0,l.yg)("p",null,"MongoDB\u662f\u4e00\u4e2a\u4ecb\u4e8e\u5173\u7cfb\u6570\u636e\u5e93\u548c\u975e\u5173\u7cfb\u6570\u636e\u5e93\u4e4b\u95f4\u7684\u4ea7\u54c1\uff0c\u662f\u975e\u5173\u7cfb\u6570\u636e\u5e93\u5f53\u4e2d\u529f\u80fd\u6700\u4e30\u5bcc\uff0c\u6700\u50cf\u5173\u7cfb\u6570\u636e\u5e93\u7684\u3002\u4ed6\u652f\u6301\u7684\u6570\u636e\u7ed3\u6784\u975e\u5e38\u677e\u6563\uff0c\u662f\u7c7b\u4f3cjson\u7684bson\u683c\u5f0f\uff0c\u56e0\u6b64\u53ef\u4ee5\u5b58\u50a8\u6bd4\u8f83\u590d\u6742\u7684\u6570\u636e\u7c7b\u578b\u3002Mongo\u6700\u5927\u7684\u7279\u70b9\u662f\u4ed6\u652f\u6301\u7684\u67e5\u8be2\u8bed\u8a00\u975e\u5e38\u5f3a\u5927\uff0c\u5176\u8bed\u6cd5\u6709\u70b9\u7c7b\u4f3c\u4e8e\u9762\u5411\u5bf9\u8c61\u7684\u67e5\u8be2\u8bed\u8a00\uff0c\u51e0\u4e4e\u53ef\u4ee5\u5b9e\u73b0\u7c7b\u4f3c\u5173\u7cfb\u6570\u636e\u5e93\u5355\u8868\u67e5\u8be2\u7684\u7edd\u5927\u90e8\u5206\u529f\u80fd\uff0c\u800c\u4e14\u8fd8\u652f\u6301\u5bf9\u6570\u636e\u5efa\u7acb\u7d22\u5f15\u3002"),(0,l.yg)("p",null,"Mongo\u662f\u4e00\u4e2a\u9ad8\u6027\u80fd\uff0c\u5f00\u6e90\uff0c\u65e0\u6a21\u5f0f\u7684\u6587\u6863\u578b\u6570\u636e\u5e93\uff0c\u5b83\u5728\u8bb8\u591a\u573a\u666f\u4e0b\u53ef\u7528\u4e8e\u66ff\u4ee3\u4f20\u7edf\u7684\u5173\u7cfb\u578b\u6570\u636e\u5e93\u6216\u952e/\u503c\u5b58\u50a8\u65b9\u5f0f\u3002"),(0,l.yg)("p",null,"MongoDB Version4+\u5f00\u59cb\u539f\u751f\u652f\u6301\u4e8b\u52a1\uff1b\u8c8c\u4f3c\u53ef\u4ee5\u66ff\u6362\u5173\u7cfb\u6570\u636e\u5e93\uff0c\u4f46\u662f\u8fd9\u80fd\u884c\u4e48\uff1f",(0,l.yg)("a",{parentName:"p",href:"https://www.cnblogs.com/ExMan/p/9565125.html"},"\u5343\u4e07\u522b\u7528MongoDB\uff1f\u771f\u7684\u5417\uff1f\uff01")," \xa0\u6211\u5bf9\u6b64\u6301\u4fdd\u7559\u610f\u89c1\u3002"),(0,l.yg)("p",null,(0,l.yg)("strong",{parentName:"p"},"\u4e0d\u8981\u4e3a\u4e86\u4f7f\u7528MongoDB\u800c\u4f7f\u7528MongoDB\uff0c\u4e00\u5b9a\u8981\u597d\u597d\u5206\u6790\uff0c\u4e3b\u8981\u7cbe\u529b\u5e94\u8be5\u653e\u5728\u4f7f\u7528Msql\u7b49\u5173\u7cfb\u578b\u6570\u636e\u5e93\u4e0a\uff0c\u5f53\u5173\u7cfb\u578b\u6570\u636e\u5e93\u662f\u5728\u65e0\u6cd5\u6ee1\u8db3\u6216\u8005\u5b9e\u73b0\u8f83\u590d\u6742\u65f6\uff0c\u518d\u53bb\u8003\u8651\u8fd9\u4e2a\u7ec6\u5206\u573a\u666fMongoDB\u662f\u5426\u5408\u9002\u3002")),(0,l.yg)("h3",{id:"\u6587\u6863\u6570\u636e\u5e93"},"\u6587\u6863\u6570\u636e\u5e93"),(0,l.yg)("p",null,"\u4e3a\u4e86\u89e3\u51b3\u5173\u7cfb\u6570\u636e\u5e93 schema \u5e26\u6765\u7684\u95ee\u9898\uff0c\u6587\u6863\u6570\u636e\u5e93\u5e94\u8fd0\u800c\u751f\u3002\u6587\u6863\u6570\u636e\u5e93\u6700\u5927\u7684\u7279\u70b9\u5c31\u662f no-schema\uff0c\u53ef\u4ee5\u5b58\u50a8\u548c\u8bfb\u53d6\u4efb\u610f\u7684\u6570\u636e\u3002\u76ee\u524d\u7edd\u5927\u90e8\u5206\u6587\u6863\u6570\u636e\u5e93\u5b58\u50a8\u7684\u6570\u636e\u683c\u5f0f\u662f JSON\uff08\u6216\u8005 BSON\uff09\uff0c\u56e0\u4e3a JSON \u6570\u636e\u662f\u81ea\u63cf\u8ff0\u7684\uff0c\u65e0\u987b\u5728\u4f7f\u7528\u524d\u5b9a\u4e49\u5b57\u6bb5\uff0c\u8bfb\u53d6\u4e00\u4e2a JSON \u4e2d\u4e0d\u5b58\u5728\u7684\u5b57\u6bb5\u4e5f\u4e0d\u4f1a\u5bfc\u81f4 SQL \u90a3\u6837\u7684\u8bed\u6cd5\u9519\u8bef\u3002"),(0,l.yg)("p",null,"\u6587\u6863\u6570\u636e\u5e93\u7684 no-schema \u7279\u6027\uff0c\u7ed9\u4e1a\u52a1\u5f00\u53d1\u5e26\u6765\u4e86\u51e0\u4e2a\u660e\u663e\u7684\u4f18\u52bf\u3002"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"\u65b0\u589e\u5b57\u6bb5\u7b80\u5355"),(0,l.yg)("li",{parentName:"ul"},"\u5386\u53f2\u6570\u636e\u4e0d\u4f1a\u51fa\u9519"),(0,l.yg)("li",{parentName:"ul"},"\u53ef\u4ee5\u5f88\u5bb9\u6613\u5b58\u50a8\u590d\u6742\u6570\u636e")),(0,l.yg)("p",null,"\u6587\u6863\u6570\u636e\u5e93 no-schema \u7684\u7279\u6027\u5e26\u6765\u7684\u8fd9\u4e9b\u4f18\u52bf\u4e5f\u662f\u6709\u4ee3\u4ef7\u7684\uff0c\u6700\u4e3b\u8981\u7684\u4ee3\u4ef7\u5c31\u662f\u4e0d\u652f\u6301\u4e8b\u52a1\u3002\u6587\u6863\u6570\u636e\u5e93\u53e6\u5916\u4e00\u4e2a\u7f3a\u70b9\u5c31\u662f\u65e0\u6cd5\u5b9e\u73b0\u5173\u7cfb\u6570\u636e\u5e93\u7684 join \u64cd\u4f5c\u3002"),(0,l.yg)("h3",{id:"\u9002\u7528\u573a\u666f"},"\u9002\u7528\u573a\u666f"),(0,l.yg)("ol",null,(0,l.yg)("li",{parentName:"ol"},"\u7f51\u7ad9\u5b9e\u65f6\u6570\u636e\u5904\u7406\u3002\u5b83\u975e\u5e38\u9002\u5408\u5b9e\u65f6\u7684\u63d2\u5165\u3001\u66f4\u65b0\u4e0e\u67e5\u8be2\uff0c\u5e76\u5177\u5907\u7f51\u7ad9\u5b9e\u65f6\u6570\u636e\u5b58\u50a8\u6240\u9700\u7684\u590d\u5236\u53ca\u9ad8\u5ea6\u4f38\u7f29\u6027\u3002"),(0,l.yg)("li",{parentName:"ol"},"\u7f13\u5b58\u3002\u7531\u4e8e\u6027\u80fd\u5f88\u9ad8\uff0c\u5b83\u9002\u5408\u4f5c\u4e3a\u4fe1\u606f\u57fa\u7840\u8bbe\u65bd\u7684\u7f13\u5b58\u5c42\u3002\u5728\u7cfb\u7edf\u91cd\u542f\u4e4b\u540e\uff0c\u7531\u5b83\u642d\u5efa\u7684\u6301\u4e45\u5316\u7f13\u5b58\u5c42\u53ef\u4ee5\u907f\u514d\u4e0b\u5c42\u7684\u6570\u636e\u6e90\u8fc7\u8f7d\u3002"),(0,l.yg)("li",{parentName:"ol"},"\u9ad8\u4f38\u7f29\u6027\u9ad8\u53ef\u7528\u7684\u573a\u666f\u3002MongoDB\u4f7f\u7528\u5206\u7247\u6c34\u5e73\u7f29\u653e\uff0c\u5e76\u4e14\u53ef\u4ee5\u8fd0\u884c\u5728\u591a\u4e2a\u670d\u52a1\u5668\u4e0a\uff0c\u5e73\u8861\u8d1f\u8f7d\u6216\u590d\u5236\u6570\u636e\uff0c\u4ee5\u4fbf\u5728\u786c\u4ef6\u51fa\u73b0\u6545\u969c\u65f6\u4fdd\u6301\u7cfb\u7edf\u6b63\u5e38\u8fd0\u884c\u3002"),(0,l.yg)("li",{parentName:"ol"},"\u6d77\u91cf\u6570\u636e\u3002")),(0,l.yg)("h3",{id:"\u4e0d\u9002\u7528\u573a\u666f"},"\u4e0d\u9002\u7528\u573a\u666f"),(0,l.yg)("ol",null,(0,l.yg)("li",{parentName:"ol"},"\u8981\u6c42\u9ad8\u5ea6\u4e8b\u52a1\u6027\u7684\u7cfb\u7edf\u3002"),(0,l.yg)("li",{parentName:"ol"},"\u4f20\u7edf\u7684\u5546\u4e1a\u667a\u80fd\u5e94\u7528\u3002"),(0,l.yg)("li",{parentName:"ol"},"\u590d\u6742\u7684\u8de8\u6587\u6863\uff08\u8868\uff09\u7ea7\u8054\u67e5\u8be2\u3002")),(0,l.yg)("h3",{id:"\u6982\u5ff5"},"\u6982\u5ff5"),(0,l.yg)("h4",{id:"db"},"db"),(0,l.yg)("p",null,"\u6709\u4e00\u4e9b\u6570\u636e\u5e93\u540d\u662f\u4fdd\u7559\u7684\uff0c\u53ef\u4ee5\u76f4\u63a5\u8bbf\u95ee\u8fd9\u4e9b\u6709\u7279\u6b8a\u4f5c\u7528\u7684\u6570\u636e\u5e93\u3002"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("strong",{parentName:"li"},"admin"),'\uff1a \u4ece\u6743\u9650\u7684\u89d2\u5ea6\u6765\u770b\uff0c\u8fd9\u662f"root"\u6570\u636e\u5e93\u3002\u8981\u662f\u5c06\u4e00\u4e2a\u7528\u6237\u6dfb\u52a0\u5230\u8fd9\u4e2a\u6570\u636e\u5e93\uff0c\u8fd9\u4e2a\u7528\u6237\u81ea\u52a8\u7ee7\u627f\u6240\u6709\u6570\u636e\u5e93\u7684\u6743\u9650\u3002\u4e00\u4e9b\u7279\u5b9a\u7684\u670d\u52a1\u5668\u7aef\u547d\u4ee4\u4e5f\u53ea\u80fd\u4ece\u8fd9\u4e2a\u6570\u636e\u5e93\u8fd0\u884c\uff0c\u6bd4\u5982\u5217\u51fa\u6240\u6709\u7684\u6570\u636e\u5e93\u6216\u8005\u5173\u95ed\u670d\u52a1\u5668\u3002'),(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("strong",{parentName:"li"},"local:")," \u8fd9\u4e2a\u6570\u636e\u6c38\u8fdc\u4e0d\u4f1a\u88ab\u590d\u5236\uff0c\u53ef\u4ee5\u7528\u6765\u5b58\u50a8\u9650\u4e8e\u672c\u5730\u5355\u53f0\u670d\u52a1\u5668\u7684\u4efb\u610f\u96c6\u5408"),(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("strong",{parentName:"li"},"config"),": \u5f53Mongo\u7528\u4e8e\u5206\u7247\u8bbe\u7f6e\u65f6\uff0cconfig\u6570\u636e\u5e93\u5728\u5185\u90e8\u4f7f\u7528\uff0c\u7528\u4e8e\u4fdd\u5b58\u5206\u7247\u7684\u76f8\u5173\u4fe1\u606f\u3002")),(0,l.yg)("h4",{id:"collection"},"collection"),(0,l.yg)("p",null,"\u6570\u636e\u5e93\u8868/\u96c6\u5408\n\u96c6\u5408\u5c31\u662f MongoDB \u6587\u6863\u7ec4\uff0c\u7c7b\u4f3c\u4e8e RDBMS \uff08\u5173\u7cfb\u6570\u636e\u5e93\u7ba1\u7406\u7cfb\u7edf\uff1aRelational Database Management System)\u4e2d\u7684\u8868\u683c\u3002\n\u96c6\u5408\u5b58\u5728\u4e8e\u6570\u636e\u5e93\u4e2d\uff0c\u96c6\u5408\u6ca1\u6709\u56fa\u5b9a\u7684\u7ed3\u6784\uff0c\u8fd9\u610f\u5473\u7740\u4f60\u5728\u5bf9\u96c6\u5408\u53ef\u4ee5\u63d2\u5165\u4e0d\u540c\u683c\u5f0f\u548c\u7c7b\u578b\u7684\u6570\u636e\uff0c\u4f46\u901a\u5e38\u60c5\u51b5\u4e0b\u6211\u4eec\u63d2\u5165\u96c6\u5408\u7684\u6570\u636e\u90fd\u4f1a\u6709\u4e00\u5b9a\u7684\u5173\u8054\u6027\u3002"),(0,l.yg)("h4",{id:"document"},"document"),(0,l.yg)("p",null,"\u6570\u636e\u8bb0\u5f55\u884c/\u6587\u6863\n\u6587\u6863\u662f\u4e00\u7ec4\u952e\u503c(key-value)\u5bf9(\u5373 BSON)\u3002MongoDB \u7684\u6587\u6863\u4e0d\u9700\u8981\u8bbe\u7f6e\u76f8\u540c\u7684\u5b57\u6bb5\uff0c\u5e76\u4e14\u76f8\u540c\u7684\u5b57\u6bb5\u4e0d\u9700\u8981\u76f8\u540c\u7684\u6570\u636e\u7c7b\u578b\uff0c\u8fd9\u4e0e\u5173\u7cfb\u578b\u6570\u636e\u5e93\u6709\u5f88\u5927\u7684\u533a\u522b\uff0c\u4e5f\u662f MongoDB \u975e\u5e38\u7a81\u51fa\u7684\u7279\u70b9\u3002"),(0,l.yg)("h3",{id:"\u96c6\u7fa4\u6982\u5ff5"},"\u96c6\u7fa4\u6982\u5ff5"),(0,l.yg)("p",null,"mongodb\u96c6\u7fa4\u6709\u4e09\u79cd\u6a21\u5f0f\uff0c\u4e3b\u4ece\u6a21\u5f0f\uff0c\u526f\u672c\u96c6\u6a21\u5f0f\u3001sharding\u5206\u7247\u6a21\u5f0f\u3002\u4e3b\u4ece\u6a21\u5f0f\u5b98\u7f51\u4e5f\u4e0d\u518d\u63a8\u8350\u4e0a\u751f\u4ea7\u73af\u5883\uff0c\u4e3b\u8981\u662f\u5b89\u5168\u6027\u592a\u4f4e\u3002\u526f\u672c\u96c6\u548csharding\u6a21\u5f0f\u76ee\u524d\u662f\u7528\u7684\u6700\u5e7f\u7684\u65b9\u6848\uff0c\u901a\u5e38\u8fd92\u79cd\u65b9\u6848\u7684\u9009\u62e9\u901a\u8fc7\u6570\u636e\u91cf\u548c\u5e76\u53d1\u6570\u6765\u6743\u8861\u3002\u5728GB\u7ea7\u522b\u7684\u57fa\u672c\u4e0a\u526f\u672c\u96c6\u65b9\u6848\u53ef\u6ee1\u8db3\uff0cTB\u7ea7\u522b\u6216\u4ee5\u4e0a\u91c7\u7528sharding\u6a21\u5f0f\uff0c\u89e3\u51b3\u5355\u673a\u5bb9\u91cf\u548c\u5355\u673a\u5e76\u53d1\u80fd\u529b\u3002\n\u8fd9\u4e24\u79cd\u65e2\u6709\u81ea\u5df1\u7684\u4f18\u52bf\u4e5f\u6709\u81ea\u5df1\u7684\u7f3a\u70b9\uff0c\u6bd4\u5982sharding\u6a21\u5f0f\u5206\u7247\u8d8a\u591a\uff0c\u6027\u80fd\u81ea\u7136\u4e0b\u964d\u8d8a\u591a\u3002"),(0,l.yg)("p",null,(0,l.yg)("strong",{parentName:"p"},"\u4e0d\u662f\u6240\u7528\u7684\u4f7f\u7528\u573a\u666f\u90fd\u5fc5\u987b\u4e0a\u96c6\u7fa4\uff0c\u8981\u56e0\u5730\u5236\u5b9c\u3002")),(0,l.yg)("h3",{id:"mongostat"},"mongostat"),(0,l.yg)("pre",null,(0,l.yg)("code",{parentName:"pre",className:"language-shell"},"#\nmongostat -u admin -p Aa0123 --authenticationDatabase=admin\n")),(0,l.yg)("h3",{id:"mongotop"},"mongotop"),(0,l.yg)("pre",null,(0,l.yg)("code",{parentName:"pre",className:"language-shell"},"#\nmongotop -u admin -p Aa0123 --authenticationDatabase=admin\n")),(0,l.yg)("h3",{id:"\u5907\u4efd\u6062\u590d"},"\u5907\u4efd/\u6062\u590d"),(0,l.yg)("pre",null,(0,l.yg)("code",{parentName:"pre",className:"language-shell"},"#\u5907\u4efd\u6240\u6709\u8868\nmongodump -h 172.18.92.170 --port 27017 -u \u7528\u6237\u540d -p \u5bc6\u7801 -o /usr/local/mongodb/bak/\n\n#\u6062\u590d\u6240\u6709\u8868\nmongorestore --port 27017 -u \u7528\u6237\u540d -p \u5bc6\u7801 --authenticationDatabase admin /usr/local/mongodb/bak/\n")),(0,l.yg)("h3",{id:"\u5206\u9875\u67e5\u8be2"},"\u5206\u9875\u67e5\u8be2"),(0,l.yg)("p",null,"mongo\u7684\u5206\u9875\u76f8\u5173\u529f\u80fd\u6027\u80fd\u8f83\u5dee\uff0c\u9488\u5bf9\u8fd9\u4e2a\u95ee\u9898\u7ecf\u8fc7\u7814\u7a76\u53d1\u73b0\u5728\u5206\u9875\u4e2dskip\u6570\u503c\u8d8a\u5927\u6027\u80fd\u5c31\u8d8a\u4f4e\uff0c\u7b26\u5408\u6761\u4ef6\u7684\u6570\u636e\u8d8a\u591acount\u6027\u80fd\u5c31\u8d8a\u4f4e\u3002\u9488\u5bf9\u8fd92\u4e2a\u95ee\u9898\u6211\u4eec\u8fdb\u884c\u4e86\u8be6\u7ec6\u7684\u6d4b\u8bd5\uff0c\u5171\u603b\u7ed3\u51fa2\u79cd\u6548\u679c\u4e0d\u9519\u7684\u65b9\u6848\u3002"),(0,l.yg)("h4",{id:"\u65b9\u6848\u4e00"},"\u65b9\u6848\u4e00"),(0,l.yg)("p",null,"\u4f7f\u7528Top N\u7684\u65b9\u5f0f\u9650\u5236\u68c0\u7d22\u6570\u91cf\u6700\u59275000\u6761\uff0c\u4f8b\u5982\u7edf\u8ba1\u7b26\u5408\u6761\u4ef6\u7684\u62a5\u8b66\u8bb0\u5f55\u6761\u6570\uff1a"),(0,l.yg)("pre",null,(0,l.yg)("code",{parentName:"pre",className:"language-javascript"},'db.AlarmHistory.find({\n "did": {$in: [\n "10000000000000001000"\n ]},\n "createTime":{ "$gte":1636949672, "$lt":1637381672}\n}).limit(5000).count(true);\n')),(0,l.yg)("p",null,"\u901a\u8fc7limit(5000)\u9650\u5236\u7edf\u8ba1\u6700\u5927\u503c\u5373\u4e3a5000\uff0c\u4ece\u800c\u63d0\u9ad8\u4e86count\u6548\u7387\uff0c\u4f46\u4e5f\u6709\u4e00\u4e9b\u5c40\u9650\u6027\u5c31\u662f\u53ea\u80fd\u7edf\u8ba1\u7b26\u5408\u6761\u4ef6\u7684\u6700\u540e5000\u6761\u6570\u636e\uff0c\u800c\u4e0d\u662f\u7b26\u5408\u6761\u4ef6\u7684\u5168\u90e8\u6570\u636e\u3002"),(0,l.yg)("h4",{id:"\u65b9\u6848\u4e8c"},"\u65b9\u6848\u4e8c"),(0,l.yg)("p",null,"\u901a\u8fc7\u52a0\u8f7d\u66f4\u591a\u7684\u65b9\u5f0f\u5206\u9875\uff0c\u5373\u67e5\u8be2\u4e0b\u4e00\u9875\u65f6\u9700\u8981\u4f20\u9012\u5f53\u524d\u9875\u7684\u6700\u540e\u4e00\u6761\u6570\u636e\u7684\u5e8f\u53f7\uff0c\u8fd9\u6837\u5c31\u7ed5\u8fc7count\u7edf\u8ba1\uff0c\u4f46\u8fd9\u79cd\u65b9\u5f0f\u7684\u5f0a\u7aef\u5728\u4e8e\u9875\u9762\u4e0d\u4f1a\u663e\u793a\u603b\u5171\u591a\u5c11\u6761\u6570\u636e\u3001\u5171\u5206\u591a\u5c11\u9875\u7b49\u6570\u636e\u3002"),(0,l.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,l.yg)("ol",null,(0,l.yg)("li",{parentName:"ol"},(0,l.yg)("a",{parentName:"li",href:"https://www.runoob.com/mongodb/mongodb-tutorial.html"},"MongoDB\u6559\u7a0b"))))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/826108d9.d8186c02.js b/assets/js/826108d9.2096e4d2.js similarity index 98% rename from assets/js/826108d9.d8186c02.js rename to assets/js/826108d9.2096e4d2.js index fc6a3a90b..15d37c3d3 100644 --- a/assets/js/826108d9.d8186c02.js +++ b/assets/js/826108d9.2096e4d2.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7671],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function a(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),p=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},l="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,i=e.originalType,s=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),l=p(r),y=o,f=l["".concat(s,".").concat(y)]||l[y]||d[y]||i;return r?n.createElement(f,a(a({ref:t},u),{},{components:r})):n.createElement(f,a({ref:t},u))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=r.length,a=new Array(i);a[0]=y;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[l]="string"==typeof e?e:o,a[1]=c;for(var p=2;p{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>a,default:()=>d,frontMatter:()=>i,metadata:()=>c,toc:()=>p});var n=r(8168),o=(r(6540),r(5680));const i={sidebar_position:1},a="\u6982\u8ff0",c={unversionedId:"study/think/index",id:"study/think/index",title:"\u6982\u8ff0",description:"\u8de8\u8d8a\u7f16\u7a0b\u8bed\u8a00\u7684\u4e00\u4e9b\u5957\u8def\u3002",source:"@site/docs/study/think/index.md",sourceDirName:"study/think",slug:"/study/think/",permalink:"/docs/study/think/",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"studySidebar",previous:{title:"\u901a\u4fe1\u6a21\u7ec4",permalink:"/docs/study/hard/\u901a\u4fe1\u6a21\u7ec4"},next:{title:"\u8bbe\u8ba1\u6a21\u5f0f",permalink:"/docs/study/think/\u8bbe\u8ba1\u6a21\u5f0f"}},s={},p=[],u={toc:p},l="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(l,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"\u6982\u8ff0"},"\u6982\u8ff0"),(0,o.yg)("p",null,"\u8de8\u8d8a\u7f16\u7a0b\u8bed\u8a00\u7684\u4e00\u4e9b\u5957\u8def\u3002"))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7671],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function a(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),p=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},l="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,i=e.originalType,s=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),l=p(r),y=o,f=l["".concat(s,".").concat(y)]||l[y]||d[y]||i;return r?n.createElement(f,a(a({ref:t},u),{},{components:r})):n.createElement(f,a({ref:t},u))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=r.length,a=new Array(i);a[0]=y;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[l]="string"==typeof e?e:o,a[1]=c;for(var p=2;p{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>a,default:()=>d,frontMatter:()=>i,metadata:()=>c,toc:()=>p});var n=r(8168),o=(r(6540),r(5680));const i={sidebar_position:1},a="\u6982\u8ff0",c={unversionedId:"study/think/index",id:"study/think/index",title:"\u6982\u8ff0",description:"\u8de8\u8d8a\u7f16\u7a0b\u8bed\u8a00\u7684\u4e00\u4e9b\u5957\u8def\u3002",source:"@site/docs/study/think/index.md",sourceDirName:"study/think",slug:"/study/think/",permalink:"/docs/study/think/",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"studySidebar",previous:{title:"\u901a\u4fe1\u6a21\u7ec4",permalink:"/docs/study/hard/\u901a\u4fe1\u6a21\u7ec4"},next:{title:"\u8bbe\u8ba1\u6a21\u5f0f",permalink:"/docs/study/think/\u8bbe\u8ba1\u6a21\u5f0f"}},s={},p=[],u={toc:p},l="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(l,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"\u6982\u8ff0"},"\u6982\u8ff0"),(0,o.yg)("p",null,"\u8de8\u8d8a\u7f16\u7a0b\u8bed\u8a00\u7684\u4e00\u4e9b\u5957\u8def\u3002"))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8303fa10.6cf5ef62.js b/assets/js/8303fa10.4c6a14f1.js similarity index 98% rename from assets/js/8303fa10.6cf5ef62.js rename to assets/js/8303fa10.4c6a14f1.js index 636741b4e..5c3f03d7e 100644 --- a/assets/js/8303fa10.6cf5ef62.js +++ b/assets/js/8303fa10.4c6a14f1.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8723],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),u=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=u(e.components);return n.createElement(l.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),s=u(r),y=o,f=s["".concat(l,".").concat(y)]||s[y]||d[y]||a;return r?n.createElement(f,i(i({ref:t},p),{},{components:r})):n.createElement(f,i({ref:t},p))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=y;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[s]="string"==typeof e?e:o,i[1]=c;for(var u=2;u{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>u});var n=r(8168),o=(r(6540),r(5680));const a={},i="\u4eba\u5de5\u667a\u80fd",c={unversionedId:"study/ai/index",id:"study/ai/index",title:"\u4eba\u5de5\u667a\u80fd",description:"LLM",source:"@site/docs/study/ai/index.md",sourceDirName:"study/ai",slug:"/study/ai/",permalink:"/docs/study/ai/",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u52a0\u89e3\u5bc6",permalink:"/docs/study/encryption/"},next:{title:"\u5b57\u8282\u5e8f Big Endian Little Endian",permalink:"/docs/study/other/\u5b57\u8282\u5e8f"}},l={},u=[{value:"LLM",id:"llm",level:3}],p={toc:u},s="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"\u4eba\u5de5\u667a\u80fd"},"\u4eba\u5de5\u667a\u80fd"),(0,o.yg)("h3",{id:"llm"},"LLM"),(0,o.yg)("p",null,"\u5927\u8bed\u8a00\u6a21\u578b Large Language Models\uff0c\u4eba\u7c7b\u8981\u8d70\u5411\u4eba\u5de5\u667a\u80fd\u65f6\u4ee3\uff0c\u79bb\u4e0d\u5f00 LLM \u7684\u53d1\u5c55\uff0c\u6216\u8005\u8bf4\uff0cLLM \u662f\u901a\u5f80 AI \u65f6\u4ee3\u7684\u6838\u5fc3\u9014\u5f84\u3002"),(0,o.yg)("p",null,"ChatGPT \u662f\u6700\u77e5\u540d\u7684 LLM \u6848\u4f8b\uff0cLLM \u7684\u53d1\u5c55\u53c8\u79bb\u4e0d\u5f00\u673a\u5668\u5b66\u4e60\u3001\u795e\u7ecf\u7f51\u7edc\u3001\u6df1\u5ea6\u5b66\u4e60\u7b49\u6280\u672f\u7684\u7a81\u7834\u3002\u5927\u8bed\u8a00\u6a21\u578b\u7684\u5173\u952e\u4e4b\u4e00\u662f\u4e00\u4e2a\u201c\u5927\u201d\u5b57\uff0c\u8bad\u7ec3\u7684\u6570\u636e\u975e\u5e38\u591a\uff0c\u582a\u79f0\u6d77\u91cf\uff0c\u5982 ChatGPT \u5c31\u5305\u542b\u4e86 8000 \u4ebf\u4ee5\u4e0a\u7684\u6570\u636e\u3002"))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8723],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),u=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=u(e.components);return n.createElement(l.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),s=u(r),y=o,f=s["".concat(l,".").concat(y)]||s[y]||d[y]||a;return r?n.createElement(f,i(i({ref:t},p),{},{components:r})):n.createElement(f,i({ref:t},p))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=y;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[s]="string"==typeof e?e:o,i[1]=c;for(var u=2;u{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>u});var n=r(8168),o=(r(6540),r(5680));const a={},i="\u4eba\u5de5\u667a\u80fd",c={unversionedId:"study/ai/index",id:"study/ai/index",title:"\u4eba\u5de5\u667a\u80fd",description:"LLM",source:"@site/docs/study/ai/index.md",sourceDirName:"study/ai",slug:"/study/ai/",permalink:"/docs/study/ai/",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u52a0\u89e3\u5bc6",permalink:"/docs/study/encryption/"},next:{title:"\u5b57\u8282\u5e8f Big Endian Little Endian",permalink:"/docs/study/other/\u5b57\u8282\u5e8f"}},l={},u=[{value:"LLM",id:"llm",level:3}],p={toc:u},s="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"\u4eba\u5de5\u667a\u80fd"},"\u4eba\u5de5\u667a\u80fd"),(0,o.yg)("h3",{id:"llm"},"LLM"),(0,o.yg)("p",null,"\u5927\u8bed\u8a00\u6a21\u578b Large Language Models\uff0c\u4eba\u7c7b\u8981\u8d70\u5411\u4eba\u5de5\u667a\u80fd\u65f6\u4ee3\uff0c\u79bb\u4e0d\u5f00 LLM \u7684\u53d1\u5c55\uff0c\u6216\u8005\u8bf4\uff0cLLM \u662f\u901a\u5f80 AI \u65f6\u4ee3\u7684\u6838\u5fc3\u9014\u5f84\u3002"),(0,o.yg)("p",null,"ChatGPT \u662f\u6700\u77e5\u540d\u7684 LLM \u6848\u4f8b\uff0cLLM \u7684\u53d1\u5c55\u53c8\u79bb\u4e0d\u5f00\u673a\u5668\u5b66\u4e60\u3001\u795e\u7ecf\u7f51\u7edc\u3001\u6df1\u5ea6\u5b66\u4e60\u7b49\u6280\u672f\u7684\u7a81\u7834\u3002\u5927\u8bed\u8a00\u6a21\u578b\u7684\u5173\u952e\u4e4b\u4e00\u662f\u4e00\u4e2a\u201c\u5927\u201d\u5b57\uff0c\u8bad\u7ec3\u7684\u6570\u636e\u975e\u5e38\u591a\uff0c\u582a\u79f0\u6d77\u91cf\uff0c\u5982 ChatGPT \u5c31\u5305\u542b\u4e86 8000 \u4ebf\u4ee5\u4e0a\u7684\u6570\u636e\u3002"))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/84ea7d53.ab308969.js b/assets/js/84ea7d53.d9cd8aeb.js similarity index 99% rename from assets/js/84ea7d53.ab308969.js rename to assets/js/84ea7d53.d9cd8aeb.js index 676fababe..ca21e08f2 100644 --- a/assets/js/84ea7d53.ab308969.js +++ b/assets/js/84ea7d53.d9cd8aeb.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[0],{5680:(e,t,n)=>{n.d(t,{xA:()=>y,yg:()=>m});var a=n(6540);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function p(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var g=a.createContext({}),u=function(e){var t=a.useContext(g),n=t;return e&&(n="function"==typeof e?e(t):p(p({},t),e)),n},y=function(e){var t=u(e.components);return a.createElement(g.Provider,{value:t},e.children)},o="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},c=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,l=e.originalType,g=e.parentName,y=i(e,["components","mdxType","originalType","parentName"]),o=u(n),c=r,m=o["".concat(g,".").concat(c)]||o[c]||d[c]||l;return n?a.createElement(m,p(p({ref:t},y),{},{components:n})):a.createElement(m,p({ref:t},y))}));function m(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var l=n.length,p=new Array(l);p[0]=c;var i={};for(var g in t)hasOwnProperty.call(t,g)&&(i[g]=t[g]);i.originalType=e,i[o]="string"==typeof e?e:r,p[1]=i;for(var u=2;u{n.r(t),n.d(t,{assets:()=>g,contentTitle:()=>p,default:()=>d,frontMatter:()=>l,metadata:()=>i,toc:()=>u});var a=n(8168),r=(n(6540),n(5680));const l={},p=void 0,i={unversionedId:"study/net/vpn",id:"study/net/vpn",title:"vpn",description:"\u7b80\u4ecb",source:"@site/docs/study/net/vpn.md",sourceDirName:"study/net",slug:"/study/net/vpn",permalink:"/docs/study/net/vpn",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"tuntap",permalink:"/docs/study/net/tuntap"},next:{title:"\u4ee3\u7406",permalink:"/docs/study/net/\u4ee3\u7406"}},g={},u=[{value:"\u7b80\u4ecb",id:"\u7b80\u4ecb",level:3},{value:"\u5206\u7c7b",id:"\u5206\u7c7b",level:3},{value:"\u6309 VPN \u7684\u534f\u8bae\u5206\u7c7b",id:"\u6309-vpn-\u7684\u534f\u8bae\u5206\u7c7b",level:4},{value:"\u5206\u7c7b\u6bd4\u8f83",id:"\u5206\u7c7b\u6bd4\u8f83",level:4},{value:"OpenVPN",id:"openvpn",level:3},{value:"PPTP",id:"pptp",level:3},{value:"L2TP",id:"l2tp",level:3},{value:"IKEv2/IPSec",id:"ikev2ipsec",level:3},{value:"SSTP",id:"sstp",level:3},{value:"WireGuard",id:"wireguard",level:3},{value:"Shadowsocks",id:"shadowsocks",level:3},{value:"\u5bf9\u6bd4",id:"\u5bf9\u6bd4",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],y={toc:u},o="wrapper";function d(e){let{components:t,...l}=e;return(0,r.yg)(o,(0,a.A)({},y,l,{components:t,mdxType:"MDXLayout"}),(0,r.yg)("h3",{id:"\u7b80\u4ecb"},"\u7b80\u4ecb"),(0,r.yg)("p",null,"\u865a\u62df\u4e13\u7528\u7f51\u7edc(VPN)\u7684\u529f\u80fd\u662f\uff1a\u5728\u516c\u7528\u7f51\u7edc\u4e0a\u5efa\u7acb\u4e13\u7528\u7f51\u7edc\uff0c\u8fdb\u884c\u52a0\u5bc6\u901a\u8baf\u3002\u5728\u4f01\u4e1a\u7f51\u7edc\u4e2d\u6709\u5e7f\u6cdb\u5e94\u7528\u3002VPN \u7f51\u5173\u901a\u8fc7\u5bf9\u6570\u636e\u5305\u7684\u52a0\u5bc6\u548c\u6570\u636e\u5305\u76ee\u6807\u5730\u5740\u7684\u8f6c\u6362\u5b9e\u73b0\u8fdc\u7a0b\u8bbf\u95ee\u3002VPN \u53ef\u901a\u8fc7\u670d\u52a1\u5668\u3001\u786c\u4ef6\u3001\u8f6f\u4ef6\u7b49\u591a\u79cd\u65b9\u5f0f\u5b9e\u73b0\u3002"),(0,r.yg)("p",null,"VPN \u5c5e\u4e8e\u8fdc\u7a0b\u8bbf\u95ee\u6280\u672f\uff0c\u7b80\u5355\u5730\u8bf4\u5c31\u662f\u5229\u7528\u516c\u7528\u7f51\u7edc\u67b6\u8bbe\u4e13\u7528\u7f51\u7edc\u3002\u4f8b\u5982\u67d0\u516c\u53f8\u5458\u5de5\u51fa\u5dee\u5230\u5916\u5730\uff0c\u4ed6\u60f3\u8bbf\u95ee\u4f01\u4e1a\u5185\u7f51\u7684\u670d\u52a1\u5668\u8d44\u6e90\uff0c\u8fd9\u79cd\u8bbf\u95ee\u5c31\u5c5e\u4e8e\u8fdc\u7a0b\u8bbf\u95ee\u3002"),(0,r.yg)("p",null,"\u8ba9\u5916\u5730\u5458\u5de5\u8bbf\u95ee\u5230\u5185\u7f51\u8d44\u6e90\uff0c\u5229\u7528 VPN \u7684\u89e3\u51b3\u65b9\u6cd5\u5c31\u662f\u5728\u5185\u7f51\u4e2d\u67b6\u8bbe\u4e00\u53f0 VPN \u670d\u52a1\u5668\u3002\u5916\u5730\u5458\u5de5\u5728\u5f53\u5730\u8fde\u4e0a\u4e92\u8054\u7f51\u540e\uff0c\u901a\u8fc7\u4e92\u8054\u7f51\u8fde\u63a5 VPN \u670d\u52a1\u5668\uff0c\u7136\u540e\u901a\u8fc7 VPN \u670d\u52a1\u5668\u8fdb\u5165\u4f01\u4e1a\u5185\u7f51\u3002\u4e3a\u4e86\u4fdd\u8bc1\u6570\u636e\u5b89\u5168\uff0cVPN \u670d\u52a1\u5668\u548c\u5ba2\u6237\u673a\u4e4b\u95f4\u7684\u901a\u8baf\u6570\u636e\u90fd\u8fdb\u884c\u4e86\u52a0\u5bc6\u5904\u7406\u3002\u6709\u4e86\u6570\u636e\u52a0\u5bc6\uff0c\u5c31\u53ef\u4ee5\u8ba4\u4e3a\u6570\u636e\u662f\u5728\u4e00\u6761\u4e13\u7528\u7684\u6570\u636e\u94fe\u8def\u4e0a\u8fdb\u884c\u5b89\u5168\u4f20\u8f93\uff0c\u5c31\u5982\u540c\u4e13\u95e8\u67b6\u8bbe\u4e86\u4e00\u4e2a\u4e13\u7528\u7f51\u7edc\u4e00\u6837\uff0c\u4f46\u5b9e\u9645\u4e0a VPN \u4f7f\u7528\u7684\u662f\u4e92\u8054\u7f51\u4e0a\u7684\u516c\u7528\u94fe\u8def\uff0c\u56e0\u6b64 VPN \u79f0\u4e3a\u865a\u62df\u4e13\u7528\u7f51\u7edc\uff0c\u5176\u5b9e\u8d28\u4e0a\u5c31\u662f\u5229\u7528\u52a0\u5bc6\u6280\u672f\u5728\u516c\u7f51\u4e0a\u5c01\u88c5\u51fa\u4e00\u4e2a\u6570\u636e\u901a\u8baf\u96a7\u9053\u3002\u6709\u4e86 VPN \u6280\u672f\uff0c\u7528\u6237\u65e0\u8bba\u662f\u5728\u5916\u5730\u51fa\u5dee\u8fd8\u662f\u5728\u5bb6\u4e2d\u529e\u516c\uff0c\u53ea\u8981\u80fd\u4e0a\u4e92\u8054\u7f51\u5c31\u80fd\u5229\u7528 VPN \u8bbf\u95ee\u5185\u7f51\u8d44\u6e90\uff0c\u8fd9\u5c31\u662f VPN \u5728\u4f01\u4e1a\u4e2d\u5e94\u7528\u5f97\u5982\u6b64\u5e7f\u6cdb\u7684\u539f\u56e0\u3002"),(0,r.yg)("h3",{id:"\u5206\u7c7b"},"\u5206\u7c7b"),(0,r.yg)("h4",{id:"\u6309-vpn-\u7684\u534f\u8bae\u5206\u7c7b"},"\u6309 VPN \u7684\u534f\u8bae\u5206\u7c7b"),(0,r.yg)("p",null,"VPN \u7684\u96a7\u9053\u534f\u8bae\u4e3b\u8981\u6709\u4e09\u79cd\uff0cPPTP\u3001L2TP \u548c IPSec\uff0c\u5176\u4e2d PPTP \u548c L2TP \u534f\u8bae\u5de5\u4f5c\u5728 OSI \u6a21\u578b\u7684\u7b2c\u4e8c\u5c42\uff0c\u53c8\u79f0\u4e3a\u4e8c\u5c42\u96a7\u9053\u534f\u8bae\uff1bIPSec \u662f\u7b2c\u4e09\u5c42\u96a7\u9053\u534f\u8bae\u3002"),(0,r.yg)("p",null,(0,r.yg)("img",{alt:"OSI \u6a21\u578b",src:n(6323).A,width:"640",height:"273"})),(0,r.yg)("h4",{id:"\u5206\u7c7b\u6bd4\u8f83"},"\u5206\u7c7b\u6bd4\u8f83"),(0,r.yg)("table",null,(0,r.yg)("thead",{parentName:"table"},(0,r.yg)("tr",{parentName:"thead"},(0,r.yg)("th",{parentName:"tr",align:null},"VPN \u5206\u7c7b"),(0,r.yg)("th",{parentName:"tr",align:null},"\u901f\u5ea6"),(0,r.yg)("th",{parentName:"tr",align:null},"\u5b89\u5168"),(0,r.yg)("th",{parentName:"tr",align:null},"\u52a0\u5bc6"))),(0,r.yg)("tbody",{parentName:"table"},(0,r.yg)("tr",{parentName:"tbody"},(0,r.yg)("td",{parentName:"tr",align:null},"OpenVPN"),(0,r.yg)("td",{parentName:"tr",align:null},"\u826f"),(0,r.yg)("td",{parentName:"tr",align:null},"\u4f18"),(0,r.yg)("td",{parentName:"tr",align:null},"\u4f18")),(0,r.yg)("tr",{parentName:"tbody"},(0,r.yg)("td",{parentName:"tr",align:null},"PPTP"),(0,r.yg)("td",{parentName:"tr",align:null},"\u826f"),(0,r.yg)("td",{parentName:"tr",align:null},"\u5dee"),(0,r.yg)("td",{parentName:"tr",align:null},"\u5dee")),(0,r.yg)("tr",{parentName:"tbody"},(0,r.yg)("td",{parentName:"tr",align:null},"L2TP"),(0,r.yg)("td",{parentName:"tr",align:null},"\u826f"),(0,r.yg)("td",{parentName:"tr",align:null},"\u5dee"),(0,r.yg)("td",{parentName:"tr",align:null},"\u5dee\uff08\u9664\u975e\u548c IPSec \u914d\u5408\uff09")),(0,r.yg)("tr",{parentName:"tbody"},(0,r.yg)("td",{parentName:"tr",align:null},"IKEv2/IPSec"),(0,r.yg)("td",{parentName:"tr",align:null},"\u826f"),(0,r.yg)("td",{parentName:"tr",align:null},"\u4f18"),(0,r.yg)("td",{parentName:"tr",align:null},"\u4f18")),(0,r.yg)("tr",{parentName:"tbody"},(0,r.yg)("td",{parentName:"tr",align:null},"SSTP"),(0,r.yg)("td",{parentName:"tr",align:null},"\u5dee"),(0,r.yg)("td",{parentName:"tr",align:null},"\u5dee"),(0,r.yg)("td",{parentName:"tr",align:null},"\u826f")),(0,r.yg)("tr",{parentName:"tbody"},(0,r.yg)("td",{parentName:"tr",align:null},"WireGuard"),(0,r.yg)("td",{parentName:"tr",align:null},"\u4f18"),(0,r.yg)("td",{parentName:"tr",align:null},"\u4f18"),(0,r.yg)("td",{parentName:"tr",align:null},"\u4f18")),(0,r.yg)("tr",{parentName:"tbody"},(0,r.yg)("td",{parentName:"tr",align:null},"Shadowsocks"),(0,r.yg)("td",{parentName:"tr",align:null},"\u826f"),(0,r.yg)("td",{parentName:"tr",align:null},"\u826f"),(0,r.yg)("td",{parentName:"tr",align:null},"\u826f")))),(0,r.yg)("h3",{id:"openvpn"},"OpenVPN"),(0,r.yg)("p",null,"OpenVPN \u662f\u4e00\u4e2a\u57fa\u4e8e OpenSSL \u5e93\u7684",(0,r.yg)("strong",{parentName:"p"},(0,r.yg)("em",{parentName:"strong"},"\u5e94\u7528\u5c42"))," VPN \u5b9e\u73b0\u3002\u548c\u4f20\u7edf VPN \u76f8\u6bd4\uff0c\u5b83\u7684\u4f18\u70b9\u662f\u7b80\u5355\u6613\u7528\u3002"),(0,r.yg)("p",null,"OpenVpn \u7684\u6280\u672f\u6838\u5fc3\u662f\u865a\u62df\u7f51\u5361\uff0c\u5176\u6b21\u662f SSL \u534f\u8bae\u5b9e\u73b0\u3002"),(0,r.yg)("p",null,"\u5bf9\u865a\u62df\u7f51\u5361\u53ca\u5176\u5728 OpenVpn \u7684\u4e2d\u7684\u5de5\u4f5c\u673a\u7406\u8fdb\u884c\u4ecb\u7ecd\uff1a"),(0,r.yg)("p",null,"\u865a\u62df\u7f51\u5361\u662f\u4f7f\u7528\u7f51\u7edc\u5e95\u5c42\u7f16\u7a0b\u6280\u672f\u5b9e\u73b0\u7684\u4e00\u4e2a\u9a71\u52a8\u8f6f\u4ef6\uff0c\u5b89\u88c5\u540e\u5728\u4e3b\u673a\u4e0a\u591a\u51fa\u73b0\u4e00\u4e2a\u7f51\u5361\uff0c\u53ef\u4ee5\u50cf\u5176\u5b83\u7f51\u5361\u4e00\u6837\u8fdb\u884c\u914d\u7f6e\u3002\u670d\u52a1\u7a0b\u5e8f\u53ef\u4ee5\u5728\u5e94\u7528\u5c42\u6253\u5f00\u865a\u62df\u7f51\u5361\uff0c\u5982\u679c\u5e94\u7528\u8f6f\u4ef6\uff08\u5982 IE\uff09\u5411\u865a\u62df\u7f51\u5361\u53d1\u9001\u6570\u636e\uff0c\u5219\u670d\u52a1\u7a0b\u5e8f\u53ef\u4ee5\u8bfb\u53d6\u5230\u8be5\u6570\u636e\uff0c\u5982\u679c\u670d\u52a1\u7a0b\u5e8f\u5199\u5408\u9002\u7684\u6570\u636e\u5230\u865a\u62df\u7f51\u5361\uff0c\u5e94\u7528\u8f6f\u4ef6\u4e5f\u53ef\u4ee5\u63a5\u6536\u5f97\u5230\u3002\u865a\u62df\u7f51\u5361\u5728\u5f88\u591a\u7684\u64cd\u4f5c\u7cfb\u7edf\u4e0b\u90fd\u6709\u76f8\u5e94\u7684\u5b9e\u73b0\uff0c\u8fd9\u4e5f\u662f OpenVpn \u80fd\u591f\u8de8\u5e73\u53f0\u4e00\u4e2a\u5f88\u91cd\u8981\u7684\u7406\u7531\u3002"),(0,r.yg)("p",null,"\u5728 OpenVpn \u4e2d\uff0c\u5982\u679c\u7528\u6237\u8bbf\u95ee\u4e00\u4e2a\u8fdc\u7a0b\u7684\u865a\u62df\u5730\u5740\uff08\u5c5e\u4e8e\u865a\u62df\u7f51\u5361\u914d\u7528\u7684\u5730\u5740\u7cfb\u5217\uff0c\u533a\u522b\u4e8e\u771f\u5b9e\u5730\u5740\uff09\uff0c\u5219\u64cd\u4f5c\u7cfb\u7edf\u4f1a\u901a\u8fc7\u8def\u7531\u673a\u5236\u5c06\u6570\u636e\u5305\uff08TUN \u6a21\u5f0f\uff09\u6216\u6570\u636e\u5e27\uff08TAP \u6a21\u5f0f\uff09\u53d1\u9001\u5230\u865a\u62df\u7f51\u5361\u4e0a\uff0c\u670d\u52a1\u7a0b\u5e8f\u63a5\u6536\u8be5\u6570\u636e\u5e76\u8fdb\u884c\u76f8\u5e94\u7684\u5904\u7406\u540e\uff0c\u901a\u8fc7 SOCKET \u4ece\u5916\u7f51\u4e0a\u53d1\u9001\u51fa\u53bb\uff0c\u8fdc\u7a0b\u670d\u52a1\u7a0b\u5e8f\u901a\u8fc7 SOCKET \u4ece\u5916\u7f51\u4e0a\u63a5\u6536\u6570\u636e\uff0c\u5e76\u8fdb\u884c\u76f8\u5e94\u7684\u5904\u7406\u540e\uff0c\u53d1\u9001\u7ed9\u865a\u62df\u7f51\u5361\uff0c\u5219\u5e94\u7528\u8f6f\u4ef6\u53ef\u4ee5\u63a5\u6536\u5230\uff0c\u5b8c\u6210\u4e86\u4e00\u4e2a\u5355\u5411\u4f20\u8f93\u7684\u8fc7\u7a0b\uff0c\u53cd\u4e4b\u4ea6\u7136\u3002"),(0,r.yg)("p",null,(0,r.yg)("a",{parentName:"p",href:"https://community.openvpn.net/openvpn"},"https://community.openvpn.net/openvpn")),(0,r.yg)("p",null,(0,r.yg)("a",{parentName:"p",href:"https://pritunl.com/"},"https://pritunl.com/")),(0,r.yg)("h3",{id:"pptp"},"PPTP"),(0,r.yg)("p",null,"\u7531\u5fae\u8f6f\u548c\u5176\u4ed6\u516c\u53f8\u4e8e 1999 \u5e74\u5f00\u53d1\uff0c\u5e94\u7528\u975e\u5e38\u5e7f\u6cdb\uff0c\u4f46\u662f\u73b0\u5728\u57fa\u672c\u88ab\u8ba4\u4e3a\u662f\u4e0d\u5b89\u5168\u7684\u3001\u8fc7\u65f6\u7684\u3002"),(0,r.yg)("h3",{id:"l2tp"},"L2TP"),(0,r.yg)("p",null,"\u7b2c\u4e8c\u5c42\u96a7\u9053\u534f\u8bae\u5927\u7ea6\u4e0e PPTP \u540c\u65f6\u5f00\u53d1\u3002\u4f5c\u4e3a\u4e00\u79cd\u96a7\u9053\u534f\u8bae\uff0c\u5b83\u672c\u8eab\u4e0d\u52a0\u5bc6\u6570\u636e\uff0c\u56e0\u6b64\u901a\u5e38\u4e0e IPSec \u914d\u5bf9\u3002\u8fd9\u79cd\u6a21\u5757\u5316\u4f7f\u5b83\u80fd\u591f\u5229\u7528 AES \u52a0\u5bc6\u3002"),(0,r.yg)("p",null,"\u548c PPTP \u5dee\u4e0d\u591a\uff0c\u5e94\u7528\u4e5f\u5f88\u5e7f\u6cdb\uff0c\u4f46\u662f\u5b58\u5728\u4e00\u5b9a\u7684\u9632\u706b\u5899\u95ee\u9898\u3002"),(0,r.yg)("h3",{id:"ikev2ipsec"},"IKEv2/IPSec"),(0,r.yg)("p",null,"\u601d\u79d1\u548c\u5fae\u8f6f\u5f00\u53d1\uff0c\u4e5f\u6709\u5f88\u591a\u5f00\u6e90\u7248\u672c\uff0c\u5bf9\u79fb\u52a8\u7aef\u652f\u6301\u66f4\u52a0\u53cb\u597d\u4e00\u4e9b\u3002"),(0,r.yg)("h3",{id:"sstp"},"SSTP"),(0,r.yg)("p",null,"\u662f\u5fae\u8f6f\u5f00\u53d1\u7528\u4e8e\u66ff\u4ee3 PPTP \u7684\u65b0\u534f\u8bae\uff0c\u4f46\u662f\u4e0d\u662f\u5f00\u6e90\u7684\u3002"),(0,r.yg)("h3",{id:"wireguard"},"WireGuard"),(0,r.yg)("p",null,"WireGuard \u662f\u6700\u65b0\u7684\uff0c\u4e8e 2016 \u5e74\u5f00\u53d1\u3002\u4ed6\u7684\u4ee3\u7801\u91cf\u975e\u5e38\u5c0f\uff0c\u53ea\u6709 4K\uff0c\u4ee3\u7801\u91cf\u5c0f\uff0c\u610f\u5473\u7740\u597d\u7ef4\u62a4\u4ee5\u53ca\u5bb9\u6613\u53d1\u73b0\u95ee\u9898\u3002\u5f00\u6e90\u3002"),(0,r.yg)("p",null,"\u53c8\u5feb\u53c8\u5b89\u5168\uff0c\u4f46\u662f\u5bf9\u64cd\u4f5c\u7cfb\u7edf\u7684\u7248\u672c\u8981\u6c42\u8f83\u9ad8\u3002"),(0,r.yg)("h3",{id:"shadowsocks"},"Shadowsocks"),(0,r.yg)("p",null,"Shadowsocks \u662f\u4e00\u4e2a\u514d\u8d39\u7684\u5f00\u6e90\u52a0\u5bc6\u534f\u8bae\u9879\u76ee\u3002\u5b83\u57fa\u4e8e SOCKS5 \u4ee3\u7406\uff0c\u5373 SOCKS \u534f\u8bae\u7684\u7b2c\u4e94\u4e2a\u7248\u672c\uff0c\u7528\u4e8e\u901a\u8fc7\u4ee3\u7406\u8def\u7531\u60a8\u7684\u6d41\u91cf\u3002"),(0,r.yg)("p",null,"Shadowsocks \u65e8\u5728\u63d0\u4f9b\u8fd9\u79cd\u52a0\u5bc6\uff0c\u56e0\u4e3a\u5b83\u7684\u76ee\u7684\u53ea\u6709\u4e00\u4e2a\uff1a\u7ed5\u8fc7\u4e2d\u56fd\u9632\u706b\u957f\u57ce\u3002"),(0,r.yg)("h3",{id:"\u5bf9\u6bd4"},"\u5bf9\u6bd4"),(0,r.yg)("p",null,"IPSec \u534f\u8bae\u5de5\u4f5c\u5728 OSI \u6a21\u578b\u7684\u7b2c\u4e09\u5c42\uff0c\u4f7f\u5176\u5728\u5355\u72ec\u4f7f\u7528\u65f6\u9002\u4e8e\u4fdd\u62a4\u57fa\u4e8e TCP \u6216 UDP \u7684\u534f\u8bae\uff08\u5982\u5b89\u5168\u5957\u63a5\u5b50\u5c42\uff08SSL\uff09\u5c31\u4e0d\u80fd\u4fdd\u62a4 UDP \u5c42\u7684\u901a\u4fe1\u6d41\uff09\u3002\u8fd9\u5c31\u610f\u5473\u7740\uff0c\u4e0e\u4f20\u8f93\u5c42\u6216\u66f4\u9ad8\u5c42\u7684\u534f\u8bae\u76f8\u6bd4\uff0cIPSec \u534f\u8bae\u5fc5\u987b\u5904\u7406\u53ef\u9760\u6027\u548c\u5206\u7247\u7684\u95ee\u9898\uff0c\u8fd9\u540c\u65f6\u4e5f\u589e\u52a0\u4e86\u5b83\u7684\u590d\u6742\u6027\u548c\u5904\u7406\u5f00\u9500\u3002\u76f8\u5bf9\u800c\u8a00\uff0cSSL/TLS \u4f9d\u9760\u66f4\u9ad8\u5c42\u7684 TCP\uff08OSI \u7684\u7b2c\u56db\u5c42\uff09\u6765\u7ba1\u7406\u53ef\u9760\u6027\u548c\u5206\u7247\u3002"),(0,r.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("a",{parentName:"li",href:"https://baike.baidu.com/item/%E8%99%9A%E6%8B%9F%E4%B8%93%E7%94%A8%E7%BD%91%E7%BB%9C/8747869?fromtitle=VPN&fromid=382304&fr=aladdin#reference-2"},"\u767e\u5ea6\u767e\u79d1-VPN")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("a",{parentName:"li",href:"https://baike.baidu.com/item/OpenVPN/10718662?fr=aladdin"},"\u767e\u5ea6\u767e\u79d1-OpenVPN")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("a",{parentName:"li",href:"https://www.w3cschool.cn/completemessageformat/"},"w3cshool-\u62a5\u6587\u683c\u5f0f\u5927\u5168"))))}d.isMDXComponent=!0},6323:(e,t,n)=>{n.d(t,{A:()=>a});const a=n.p+"assets/images/osi-795934f0caf8f9ab1c108a754fd16564.webp"}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[0],{5680:(e,t,n)=>{n.d(t,{xA:()=>y,yg:()=>m});var a=n(6540);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function p(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var g=a.createContext({}),u=function(e){var t=a.useContext(g),n=t;return e&&(n="function"==typeof e?e(t):p(p({},t),e)),n},y=function(e){var t=u(e.components);return a.createElement(g.Provider,{value:t},e.children)},o="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},c=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,l=e.originalType,g=e.parentName,y=i(e,["components","mdxType","originalType","parentName"]),o=u(n),c=r,m=o["".concat(g,".").concat(c)]||o[c]||d[c]||l;return n?a.createElement(m,p(p({ref:t},y),{},{components:n})):a.createElement(m,p({ref:t},y))}));function m(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var l=n.length,p=new Array(l);p[0]=c;var i={};for(var g in t)hasOwnProperty.call(t,g)&&(i[g]=t[g]);i.originalType=e,i[o]="string"==typeof e?e:r,p[1]=i;for(var u=2;u{n.r(t),n.d(t,{assets:()=>g,contentTitle:()=>p,default:()=>d,frontMatter:()=>l,metadata:()=>i,toc:()=>u});var a=n(8168),r=(n(6540),n(5680));const l={},p=void 0,i={unversionedId:"study/net/vpn",id:"study/net/vpn",title:"vpn",description:"\u7b80\u4ecb",source:"@site/docs/study/net/vpn.md",sourceDirName:"study/net",slug:"/study/net/vpn",permalink:"/docs/study/net/vpn",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"tuntap",permalink:"/docs/study/net/tuntap"},next:{title:"\u4ee3\u7406",permalink:"/docs/study/net/\u4ee3\u7406"}},g={},u=[{value:"\u7b80\u4ecb",id:"\u7b80\u4ecb",level:3},{value:"\u5206\u7c7b",id:"\u5206\u7c7b",level:3},{value:"\u6309 VPN \u7684\u534f\u8bae\u5206\u7c7b",id:"\u6309-vpn-\u7684\u534f\u8bae\u5206\u7c7b",level:4},{value:"\u5206\u7c7b\u6bd4\u8f83",id:"\u5206\u7c7b\u6bd4\u8f83",level:4},{value:"OpenVPN",id:"openvpn",level:3},{value:"PPTP",id:"pptp",level:3},{value:"L2TP",id:"l2tp",level:3},{value:"IKEv2/IPSec",id:"ikev2ipsec",level:3},{value:"SSTP",id:"sstp",level:3},{value:"WireGuard",id:"wireguard",level:3},{value:"Shadowsocks",id:"shadowsocks",level:3},{value:"\u5bf9\u6bd4",id:"\u5bf9\u6bd4",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],y={toc:u},o="wrapper";function d(e){let{components:t,...l}=e;return(0,r.yg)(o,(0,a.A)({},y,l,{components:t,mdxType:"MDXLayout"}),(0,r.yg)("h3",{id:"\u7b80\u4ecb"},"\u7b80\u4ecb"),(0,r.yg)("p",null,"\u865a\u62df\u4e13\u7528\u7f51\u7edc(VPN)\u7684\u529f\u80fd\u662f\uff1a\u5728\u516c\u7528\u7f51\u7edc\u4e0a\u5efa\u7acb\u4e13\u7528\u7f51\u7edc\uff0c\u8fdb\u884c\u52a0\u5bc6\u901a\u8baf\u3002\u5728\u4f01\u4e1a\u7f51\u7edc\u4e2d\u6709\u5e7f\u6cdb\u5e94\u7528\u3002VPN \u7f51\u5173\u901a\u8fc7\u5bf9\u6570\u636e\u5305\u7684\u52a0\u5bc6\u548c\u6570\u636e\u5305\u76ee\u6807\u5730\u5740\u7684\u8f6c\u6362\u5b9e\u73b0\u8fdc\u7a0b\u8bbf\u95ee\u3002VPN \u53ef\u901a\u8fc7\u670d\u52a1\u5668\u3001\u786c\u4ef6\u3001\u8f6f\u4ef6\u7b49\u591a\u79cd\u65b9\u5f0f\u5b9e\u73b0\u3002"),(0,r.yg)("p",null,"VPN \u5c5e\u4e8e\u8fdc\u7a0b\u8bbf\u95ee\u6280\u672f\uff0c\u7b80\u5355\u5730\u8bf4\u5c31\u662f\u5229\u7528\u516c\u7528\u7f51\u7edc\u67b6\u8bbe\u4e13\u7528\u7f51\u7edc\u3002\u4f8b\u5982\u67d0\u516c\u53f8\u5458\u5de5\u51fa\u5dee\u5230\u5916\u5730\uff0c\u4ed6\u60f3\u8bbf\u95ee\u4f01\u4e1a\u5185\u7f51\u7684\u670d\u52a1\u5668\u8d44\u6e90\uff0c\u8fd9\u79cd\u8bbf\u95ee\u5c31\u5c5e\u4e8e\u8fdc\u7a0b\u8bbf\u95ee\u3002"),(0,r.yg)("p",null,"\u8ba9\u5916\u5730\u5458\u5de5\u8bbf\u95ee\u5230\u5185\u7f51\u8d44\u6e90\uff0c\u5229\u7528 VPN \u7684\u89e3\u51b3\u65b9\u6cd5\u5c31\u662f\u5728\u5185\u7f51\u4e2d\u67b6\u8bbe\u4e00\u53f0 VPN \u670d\u52a1\u5668\u3002\u5916\u5730\u5458\u5de5\u5728\u5f53\u5730\u8fde\u4e0a\u4e92\u8054\u7f51\u540e\uff0c\u901a\u8fc7\u4e92\u8054\u7f51\u8fde\u63a5 VPN \u670d\u52a1\u5668\uff0c\u7136\u540e\u901a\u8fc7 VPN \u670d\u52a1\u5668\u8fdb\u5165\u4f01\u4e1a\u5185\u7f51\u3002\u4e3a\u4e86\u4fdd\u8bc1\u6570\u636e\u5b89\u5168\uff0cVPN \u670d\u52a1\u5668\u548c\u5ba2\u6237\u673a\u4e4b\u95f4\u7684\u901a\u8baf\u6570\u636e\u90fd\u8fdb\u884c\u4e86\u52a0\u5bc6\u5904\u7406\u3002\u6709\u4e86\u6570\u636e\u52a0\u5bc6\uff0c\u5c31\u53ef\u4ee5\u8ba4\u4e3a\u6570\u636e\u662f\u5728\u4e00\u6761\u4e13\u7528\u7684\u6570\u636e\u94fe\u8def\u4e0a\u8fdb\u884c\u5b89\u5168\u4f20\u8f93\uff0c\u5c31\u5982\u540c\u4e13\u95e8\u67b6\u8bbe\u4e86\u4e00\u4e2a\u4e13\u7528\u7f51\u7edc\u4e00\u6837\uff0c\u4f46\u5b9e\u9645\u4e0a VPN \u4f7f\u7528\u7684\u662f\u4e92\u8054\u7f51\u4e0a\u7684\u516c\u7528\u94fe\u8def\uff0c\u56e0\u6b64 VPN \u79f0\u4e3a\u865a\u62df\u4e13\u7528\u7f51\u7edc\uff0c\u5176\u5b9e\u8d28\u4e0a\u5c31\u662f\u5229\u7528\u52a0\u5bc6\u6280\u672f\u5728\u516c\u7f51\u4e0a\u5c01\u88c5\u51fa\u4e00\u4e2a\u6570\u636e\u901a\u8baf\u96a7\u9053\u3002\u6709\u4e86 VPN \u6280\u672f\uff0c\u7528\u6237\u65e0\u8bba\u662f\u5728\u5916\u5730\u51fa\u5dee\u8fd8\u662f\u5728\u5bb6\u4e2d\u529e\u516c\uff0c\u53ea\u8981\u80fd\u4e0a\u4e92\u8054\u7f51\u5c31\u80fd\u5229\u7528 VPN \u8bbf\u95ee\u5185\u7f51\u8d44\u6e90\uff0c\u8fd9\u5c31\u662f VPN \u5728\u4f01\u4e1a\u4e2d\u5e94\u7528\u5f97\u5982\u6b64\u5e7f\u6cdb\u7684\u539f\u56e0\u3002"),(0,r.yg)("h3",{id:"\u5206\u7c7b"},"\u5206\u7c7b"),(0,r.yg)("h4",{id:"\u6309-vpn-\u7684\u534f\u8bae\u5206\u7c7b"},"\u6309 VPN \u7684\u534f\u8bae\u5206\u7c7b"),(0,r.yg)("p",null,"VPN \u7684\u96a7\u9053\u534f\u8bae\u4e3b\u8981\u6709\u4e09\u79cd\uff0cPPTP\u3001L2TP \u548c IPSec\uff0c\u5176\u4e2d PPTP \u548c L2TP \u534f\u8bae\u5de5\u4f5c\u5728 OSI \u6a21\u578b\u7684\u7b2c\u4e8c\u5c42\uff0c\u53c8\u79f0\u4e3a\u4e8c\u5c42\u96a7\u9053\u534f\u8bae\uff1bIPSec \u662f\u7b2c\u4e09\u5c42\u96a7\u9053\u534f\u8bae\u3002"),(0,r.yg)("p",null,(0,r.yg)("img",{alt:"OSI \u6a21\u578b",src:n(6323).A,width:"640",height:"273"})),(0,r.yg)("h4",{id:"\u5206\u7c7b\u6bd4\u8f83"},"\u5206\u7c7b\u6bd4\u8f83"),(0,r.yg)("table",null,(0,r.yg)("thead",{parentName:"table"},(0,r.yg)("tr",{parentName:"thead"},(0,r.yg)("th",{parentName:"tr",align:null},"VPN \u5206\u7c7b"),(0,r.yg)("th",{parentName:"tr",align:null},"\u901f\u5ea6"),(0,r.yg)("th",{parentName:"tr",align:null},"\u5b89\u5168"),(0,r.yg)("th",{parentName:"tr",align:null},"\u52a0\u5bc6"))),(0,r.yg)("tbody",{parentName:"table"},(0,r.yg)("tr",{parentName:"tbody"},(0,r.yg)("td",{parentName:"tr",align:null},"OpenVPN"),(0,r.yg)("td",{parentName:"tr",align:null},"\u826f"),(0,r.yg)("td",{parentName:"tr",align:null},"\u4f18"),(0,r.yg)("td",{parentName:"tr",align:null},"\u4f18")),(0,r.yg)("tr",{parentName:"tbody"},(0,r.yg)("td",{parentName:"tr",align:null},"PPTP"),(0,r.yg)("td",{parentName:"tr",align:null},"\u826f"),(0,r.yg)("td",{parentName:"tr",align:null},"\u5dee"),(0,r.yg)("td",{parentName:"tr",align:null},"\u5dee")),(0,r.yg)("tr",{parentName:"tbody"},(0,r.yg)("td",{parentName:"tr",align:null},"L2TP"),(0,r.yg)("td",{parentName:"tr",align:null},"\u826f"),(0,r.yg)("td",{parentName:"tr",align:null},"\u5dee"),(0,r.yg)("td",{parentName:"tr",align:null},"\u5dee\uff08\u9664\u975e\u548c IPSec \u914d\u5408\uff09")),(0,r.yg)("tr",{parentName:"tbody"},(0,r.yg)("td",{parentName:"tr",align:null},"IKEv2/IPSec"),(0,r.yg)("td",{parentName:"tr",align:null},"\u826f"),(0,r.yg)("td",{parentName:"tr",align:null},"\u4f18"),(0,r.yg)("td",{parentName:"tr",align:null},"\u4f18")),(0,r.yg)("tr",{parentName:"tbody"},(0,r.yg)("td",{parentName:"tr",align:null},"SSTP"),(0,r.yg)("td",{parentName:"tr",align:null},"\u5dee"),(0,r.yg)("td",{parentName:"tr",align:null},"\u5dee"),(0,r.yg)("td",{parentName:"tr",align:null},"\u826f")),(0,r.yg)("tr",{parentName:"tbody"},(0,r.yg)("td",{parentName:"tr",align:null},"WireGuard"),(0,r.yg)("td",{parentName:"tr",align:null},"\u4f18"),(0,r.yg)("td",{parentName:"tr",align:null},"\u4f18"),(0,r.yg)("td",{parentName:"tr",align:null},"\u4f18")),(0,r.yg)("tr",{parentName:"tbody"},(0,r.yg)("td",{parentName:"tr",align:null},"Shadowsocks"),(0,r.yg)("td",{parentName:"tr",align:null},"\u826f"),(0,r.yg)("td",{parentName:"tr",align:null},"\u826f"),(0,r.yg)("td",{parentName:"tr",align:null},"\u826f")))),(0,r.yg)("h3",{id:"openvpn"},"OpenVPN"),(0,r.yg)("p",null,"OpenVPN \u662f\u4e00\u4e2a\u57fa\u4e8e OpenSSL \u5e93\u7684",(0,r.yg)("strong",{parentName:"p"},(0,r.yg)("em",{parentName:"strong"},"\u5e94\u7528\u5c42"))," VPN \u5b9e\u73b0\u3002\u548c\u4f20\u7edf VPN \u76f8\u6bd4\uff0c\u5b83\u7684\u4f18\u70b9\u662f\u7b80\u5355\u6613\u7528\u3002"),(0,r.yg)("p",null,"OpenVpn \u7684\u6280\u672f\u6838\u5fc3\u662f\u865a\u62df\u7f51\u5361\uff0c\u5176\u6b21\u662f SSL \u534f\u8bae\u5b9e\u73b0\u3002"),(0,r.yg)("p",null,"\u5bf9\u865a\u62df\u7f51\u5361\u53ca\u5176\u5728 OpenVpn \u7684\u4e2d\u7684\u5de5\u4f5c\u673a\u7406\u8fdb\u884c\u4ecb\u7ecd\uff1a"),(0,r.yg)("p",null,"\u865a\u62df\u7f51\u5361\u662f\u4f7f\u7528\u7f51\u7edc\u5e95\u5c42\u7f16\u7a0b\u6280\u672f\u5b9e\u73b0\u7684\u4e00\u4e2a\u9a71\u52a8\u8f6f\u4ef6\uff0c\u5b89\u88c5\u540e\u5728\u4e3b\u673a\u4e0a\u591a\u51fa\u73b0\u4e00\u4e2a\u7f51\u5361\uff0c\u53ef\u4ee5\u50cf\u5176\u5b83\u7f51\u5361\u4e00\u6837\u8fdb\u884c\u914d\u7f6e\u3002\u670d\u52a1\u7a0b\u5e8f\u53ef\u4ee5\u5728\u5e94\u7528\u5c42\u6253\u5f00\u865a\u62df\u7f51\u5361\uff0c\u5982\u679c\u5e94\u7528\u8f6f\u4ef6\uff08\u5982 IE\uff09\u5411\u865a\u62df\u7f51\u5361\u53d1\u9001\u6570\u636e\uff0c\u5219\u670d\u52a1\u7a0b\u5e8f\u53ef\u4ee5\u8bfb\u53d6\u5230\u8be5\u6570\u636e\uff0c\u5982\u679c\u670d\u52a1\u7a0b\u5e8f\u5199\u5408\u9002\u7684\u6570\u636e\u5230\u865a\u62df\u7f51\u5361\uff0c\u5e94\u7528\u8f6f\u4ef6\u4e5f\u53ef\u4ee5\u63a5\u6536\u5f97\u5230\u3002\u865a\u62df\u7f51\u5361\u5728\u5f88\u591a\u7684\u64cd\u4f5c\u7cfb\u7edf\u4e0b\u90fd\u6709\u76f8\u5e94\u7684\u5b9e\u73b0\uff0c\u8fd9\u4e5f\u662f OpenVpn \u80fd\u591f\u8de8\u5e73\u53f0\u4e00\u4e2a\u5f88\u91cd\u8981\u7684\u7406\u7531\u3002"),(0,r.yg)("p",null,"\u5728 OpenVpn \u4e2d\uff0c\u5982\u679c\u7528\u6237\u8bbf\u95ee\u4e00\u4e2a\u8fdc\u7a0b\u7684\u865a\u62df\u5730\u5740\uff08\u5c5e\u4e8e\u865a\u62df\u7f51\u5361\u914d\u7528\u7684\u5730\u5740\u7cfb\u5217\uff0c\u533a\u522b\u4e8e\u771f\u5b9e\u5730\u5740\uff09\uff0c\u5219\u64cd\u4f5c\u7cfb\u7edf\u4f1a\u901a\u8fc7\u8def\u7531\u673a\u5236\u5c06\u6570\u636e\u5305\uff08TUN \u6a21\u5f0f\uff09\u6216\u6570\u636e\u5e27\uff08TAP \u6a21\u5f0f\uff09\u53d1\u9001\u5230\u865a\u62df\u7f51\u5361\u4e0a\uff0c\u670d\u52a1\u7a0b\u5e8f\u63a5\u6536\u8be5\u6570\u636e\u5e76\u8fdb\u884c\u76f8\u5e94\u7684\u5904\u7406\u540e\uff0c\u901a\u8fc7 SOCKET \u4ece\u5916\u7f51\u4e0a\u53d1\u9001\u51fa\u53bb\uff0c\u8fdc\u7a0b\u670d\u52a1\u7a0b\u5e8f\u901a\u8fc7 SOCKET \u4ece\u5916\u7f51\u4e0a\u63a5\u6536\u6570\u636e\uff0c\u5e76\u8fdb\u884c\u76f8\u5e94\u7684\u5904\u7406\u540e\uff0c\u53d1\u9001\u7ed9\u865a\u62df\u7f51\u5361\uff0c\u5219\u5e94\u7528\u8f6f\u4ef6\u53ef\u4ee5\u63a5\u6536\u5230\uff0c\u5b8c\u6210\u4e86\u4e00\u4e2a\u5355\u5411\u4f20\u8f93\u7684\u8fc7\u7a0b\uff0c\u53cd\u4e4b\u4ea6\u7136\u3002"),(0,r.yg)("p",null,(0,r.yg)("a",{parentName:"p",href:"https://community.openvpn.net/openvpn"},"https://community.openvpn.net/openvpn")),(0,r.yg)("p",null,(0,r.yg)("a",{parentName:"p",href:"https://pritunl.com/"},"https://pritunl.com/")),(0,r.yg)("h3",{id:"pptp"},"PPTP"),(0,r.yg)("p",null,"\u7531\u5fae\u8f6f\u548c\u5176\u4ed6\u516c\u53f8\u4e8e 1999 \u5e74\u5f00\u53d1\uff0c\u5e94\u7528\u975e\u5e38\u5e7f\u6cdb\uff0c\u4f46\u662f\u73b0\u5728\u57fa\u672c\u88ab\u8ba4\u4e3a\u662f\u4e0d\u5b89\u5168\u7684\u3001\u8fc7\u65f6\u7684\u3002"),(0,r.yg)("h3",{id:"l2tp"},"L2TP"),(0,r.yg)("p",null,"\u7b2c\u4e8c\u5c42\u96a7\u9053\u534f\u8bae\u5927\u7ea6\u4e0e PPTP \u540c\u65f6\u5f00\u53d1\u3002\u4f5c\u4e3a\u4e00\u79cd\u96a7\u9053\u534f\u8bae\uff0c\u5b83\u672c\u8eab\u4e0d\u52a0\u5bc6\u6570\u636e\uff0c\u56e0\u6b64\u901a\u5e38\u4e0e IPSec \u914d\u5bf9\u3002\u8fd9\u79cd\u6a21\u5757\u5316\u4f7f\u5b83\u80fd\u591f\u5229\u7528 AES \u52a0\u5bc6\u3002"),(0,r.yg)("p",null,"\u548c PPTP \u5dee\u4e0d\u591a\uff0c\u5e94\u7528\u4e5f\u5f88\u5e7f\u6cdb\uff0c\u4f46\u662f\u5b58\u5728\u4e00\u5b9a\u7684\u9632\u706b\u5899\u95ee\u9898\u3002"),(0,r.yg)("h3",{id:"ikev2ipsec"},"IKEv2/IPSec"),(0,r.yg)("p",null,"\u601d\u79d1\u548c\u5fae\u8f6f\u5f00\u53d1\uff0c\u4e5f\u6709\u5f88\u591a\u5f00\u6e90\u7248\u672c\uff0c\u5bf9\u79fb\u52a8\u7aef\u652f\u6301\u66f4\u52a0\u53cb\u597d\u4e00\u4e9b\u3002"),(0,r.yg)("h3",{id:"sstp"},"SSTP"),(0,r.yg)("p",null,"\u662f\u5fae\u8f6f\u5f00\u53d1\u7528\u4e8e\u66ff\u4ee3 PPTP \u7684\u65b0\u534f\u8bae\uff0c\u4f46\u662f\u4e0d\u662f\u5f00\u6e90\u7684\u3002"),(0,r.yg)("h3",{id:"wireguard"},"WireGuard"),(0,r.yg)("p",null,"WireGuard \u662f\u6700\u65b0\u7684\uff0c\u4e8e 2016 \u5e74\u5f00\u53d1\u3002\u4ed6\u7684\u4ee3\u7801\u91cf\u975e\u5e38\u5c0f\uff0c\u53ea\u6709 4K\uff0c\u4ee3\u7801\u91cf\u5c0f\uff0c\u610f\u5473\u7740\u597d\u7ef4\u62a4\u4ee5\u53ca\u5bb9\u6613\u53d1\u73b0\u95ee\u9898\u3002\u5f00\u6e90\u3002"),(0,r.yg)("p",null,"\u53c8\u5feb\u53c8\u5b89\u5168\uff0c\u4f46\u662f\u5bf9\u64cd\u4f5c\u7cfb\u7edf\u7684\u7248\u672c\u8981\u6c42\u8f83\u9ad8\u3002"),(0,r.yg)("h3",{id:"shadowsocks"},"Shadowsocks"),(0,r.yg)("p",null,"Shadowsocks \u662f\u4e00\u4e2a\u514d\u8d39\u7684\u5f00\u6e90\u52a0\u5bc6\u534f\u8bae\u9879\u76ee\u3002\u5b83\u57fa\u4e8e SOCKS5 \u4ee3\u7406\uff0c\u5373 SOCKS \u534f\u8bae\u7684\u7b2c\u4e94\u4e2a\u7248\u672c\uff0c\u7528\u4e8e\u901a\u8fc7\u4ee3\u7406\u8def\u7531\u60a8\u7684\u6d41\u91cf\u3002"),(0,r.yg)("p",null,"Shadowsocks \u65e8\u5728\u63d0\u4f9b\u8fd9\u79cd\u52a0\u5bc6\uff0c\u56e0\u4e3a\u5b83\u7684\u76ee\u7684\u53ea\u6709\u4e00\u4e2a\uff1a\u7ed5\u8fc7\u4e2d\u56fd\u9632\u706b\u957f\u57ce\u3002"),(0,r.yg)("h3",{id:"\u5bf9\u6bd4"},"\u5bf9\u6bd4"),(0,r.yg)("p",null,"IPSec \u534f\u8bae\u5de5\u4f5c\u5728 OSI \u6a21\u578b\u7684\u7b2c\u4e09\u5c42\uff0c\u4f7f\u5176\u5728\u5355\u72ec\u4f7f\u7528\u65f6\u9002\u4e8e\u4fdd\u62a4\u57fa\u4e8e TCP \u6216 UDP \u7684\u534f\u8bae\uff08\u5982\u5b89\u5168\u5957\u63a5\u5b50\u5c42\uff08SSL\uff09\u5c31\u4e0d\u80fd\u4fdd\u62a4 UDP \u5c42\u7684\u901a\u4fe1\u6d41\uff09\u3002\u8fd9\u5c31\u610f\u5473\u7740\uff0c\u4e0e\u4f20\u8f93\u5c42\u6216\u66f4\u9ad8\u5c42\u7684\u534f\u8bae\u76f8\u6bd4\uff0cIPSec \u534f\u8bae\u5fc5\u987b\u5904\u7406\u53ef\u9760\u6027\u548c\u5206\u7247\u7684\u95ee\u9898\uff0c\u8fd9\u540c\u65f6\u4e5f\u589e\u52a0\u4e86\u5b83\u7684\u590d\u6742\u6027\u548c\u5904\u7406\u5f00\u9500\u3002\u76f8\u5bf9\u800c\u8a00\uff0cSSL/TLS \u4f9d\u9760\u66f4\u9ad8\u5c42\u7684 TCP\uff08OSI \u7684\u7b2c\u56db\u5c42\uff09\u6765\u7ba1\u7406\u53ef\u9760\u6027\u548c\u5206\u7247\u3002"),(0,r.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("a",{parentName:"li",href:"https://baike.baidu.com/item/%E8%99%9A%E6%8B%9F%E4%B8%93%E7%94%A8%E7%BD%91%E7%BB%9C/8747869?fromtitle=VPN&fromid=382304&fr=aladdin#reference-2"},"\u767e\u5ea6\u767e\u79d1-VPN")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("a",{parentName:"li",href:"https://baike.baidu.com/item/OpenVPN/10718662?fr=aladdin"},"\u767e\u5ea6\u767e\u79d1-OpenVPN")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("a",{parentName:"li",href:"https://www.w3cschool.cn/completemessageformat/"},"w3cshool-\u62a5\u6587\u683c\u5f0f\u5927\u5168"))))}d.isMDXComponent=!0},6323:(e,t,n)=>{n.d(t,{A:()=>a});const a=n.p+"assets/images/osi-795934f0caf8f9ab1c108a754fd16564.webp"}}]); \ No newline at end of file diff --git a/assets/js/89a98191.1c5150c1.js b/assets/js/89a98191.f6e27916.js similarity index 99% rename from assets/js/89a98191.1c5150c1.js rename to assets/js/89a98191.f6e27916.js index 55b9eeff9..9507b0b9d 100644 --- a/assets/js/89a98191.1c5150c1.js +++ b/assets/js/89a98191.f6e27916.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3991],{5680:(e,n,t)=>{t.d(n,{xA:()=>c,yg:()=>y});var r=t(6540);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function o(e){for(var n=1;n=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var l=r.createContext({}),p=function(e){var n=r.useContext(l),t=n;return e&&(t="function"==typeof e?e(n):o(o({},n),e)),t},c=function(e){var n=p(e.components);return r.createElement(l.Provider,{value:n},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},h=r.forwardRef((function(e,n){var t=e.components,a=e.mdxType,i=e.originalType,l=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),u=p(t),h=a,y=u["".concat(l,".").concat(h)]||u[h]||d[h]||i;return t?r.createElement(y,o(o({ref:n},c),{},{components:t})):r.createElement(y,o({ref:n},c))}));function y(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var i=t.length,o=new Array(i);o[0]=h;var s={};for(var l in n)hasOwnProperty.call(n,l)&&(s[l]=n[l]);s.originalType=e,s[u]="string"==typeof e?e:a,o[1]=s;for(var p=2;p{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>o,default:()=>d,frontMatter:()=>i,metadata:()=>s,toc:()=>p});var r=t(8168),a=(t(6540),t(5680));const i={},o=void 0,s={unversionedId:"study/net/OpenVPN",id:"study/net/OpenVPN",title:"OpenVPN",description:"\u914d\u7f6e",source:"@site/docs/study/net/OpenVPN.md",sourceDirName:"study/net",slug:"/study/net/OpenVPN",permalink:"/docs/study/net/OpenVPN",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"MacOS\u7f16\u8bd1OpenVPN",permalink:"/docs/study/net/MacOS\u7f16\u8bd1OpenVPN"},next:{title:"TCP",permalink:"/docs/study/net/TCP"}},l={},p=[{value:"\u914d\u7f6e",id:"\u914d\u7f6e",level:3},{value:"\u811a\u672c",id:"\u811a\u672c",level:3},{value:"server.conf",id:"serverconf",level:3},{value:"\u914d\u7f6e IP \u8f6c\u53d1\u529f\u80fd",id:"\u914d\u7f6e-ip-\u8f6c\u53d1\u529f\u80fd",level:3},{value:"client.ovpn",id:"clientovpn",level:3},{value:"\u751f\u6210\u5ba2\u6237\u7aef\u8bc1\u4e66",id:"\u751f\u6210\u5ba2\u6237\u7aef\u8bc1\u4e66",level:3},{value:"\u914d\u7f6e\u4e0d\u540c\u7684\u5ba2\u6237\u7aef\u542f\u7528\u4e0d\u540c\u7684\u5b50\u7f51",id:"\u914d\u7f6e\u4e0d\u540c\u7684\u5ba2\u6237\u7aef\u542f\u7528\u4e0d\u540c\u7684\u5b50\u7f51",level:3},{value:"topology",id:"topology",level:3},{value:"tun \u6a21\u5f0f\uff1a",id:"tun-\u6a21\u5f0f",level:4},{value:"tap \u6a21\u5f0f\uff1a",id:"tap-\u6a21\u5f0f",level:4},{value:"\u811a\u672c\u521b\u5efa client",id:"\u811a\u672c\u521b\u5efa-client",level:3},{value:"\u7ba1\u7406\u7aef\u63a5\u53e3",id:"\u7ba1\u7406\u7aef\u63a5\u53e3",level:3},{value:"\u5305\u8fc7\u6ee4",id:"\u5305\u8fc7\u6ee4",level:3},{value:"\u95ee\u9898\uff1a\u8fde\u63a5\u6210\u529f\u540e\uff0c\u5ba2\u6237\u7aef\u65e0\u6cd5\u6b63\u5e38\u8bbf\u95ee\u5176\u4ed6\u7f51\u7ad9",id:"\u95ee\u9898\u8fde\u63a5\u6210\u529f\u540e\u5ba2\u6237\u7aef\u65e0\u6cd5\u6b63\u5e38\u8bbf\u95ee\u5176\u4ed6\u7f51\u7ad9",level:3},{value:"\u95ee\u9898\uff1atcpdump \u76d1\u542c\u4e0d\u4e86 tun0",id:"\u95ee\u9898tcpdump-\u76d1\u542c\u4e0d\u4e86-tun0",level:3}],c={toc:p},u="wrapper";function d(e){let{components:n,...t}=e;return(0,a.yg)(u,(0,r.A)({},c,t,{components:n,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"\u914d\u7f6e"},"\u914d\u7f6e"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://blog.csdn.net/sinat_27690807/article/details/118482528"},"OpenVPN \u4e2d server.conf \u548c client.conf \u914d\u7f6e\u6587\u4ef6\u8be6\u89e3")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://www.linuxfly.org/post/86/"},"\u6df1\u5165 openvpn \u914d\u7f6e-\u6709\u6848\u4f8b")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://blog.51cto.com/icenycmh/1867641"},"openvpn2.3.12 \u5b89\u88c5\u4e0e easy-rsa3 \u7684\u4f7f\u7528")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://blog.51cto.com/songky/2115052?articleABtest=1"},"\u963f\u91cc\u4e91\u670d\u52a1\u5668\u914d\u7f6e CentOS7.4+OpenVPN-2.4.5+easy-rsa-3.0")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://bajie.dev/zh-cn/posts/20211018-openvpn_limit_bandwidth/"},"OpenVPN \u9650\u5236\u6d41\u91cf\u5e26\u5bbd-\u7f51\u5361\u7ea7\u522b\u9650\u5236")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://www.ilxqx.com/archives/jie-jue-openvpn-ke-hu-duan-suo-you-wang-luo-quan-zou-vpn-de-wen-ti"},"\u89e3\u51b3 OpenVPN \u5ba2\u6237\u7aef\u6240\u6709\u7f51\u7edc\u5168\u8d70 VPN \u7684\u95ee\u9898,server.conf \u548c client.conf \u914d\u7f6e\u6587\u4ef6\u8be6\u89e3")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://build.openvpn.net/man/openvpn-2.6/openvpn.8.html"},"openvpn \u5b98\u65b9\u547d\u4ee4\u884c\u6587\u6863")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://www.junmajinlong.com/virtual/network/data_flow_about_openvpn/"},"\u901a\u8fc7 openvpn \u5206\u6790 tun \u5b9e\u73b0\u96a7\u9053\u7684\u6570\u636e\u6d41\u7a0b"))),(0,a.yg)("h3",{id:"\u811a\u672c"},"\u811a\u672c"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},"# \u5b89\u88c5\nyum install openvpn\nyum install easy-rsa\n\n# \u51c6\u5907\u76ee\u5f55 \u6ce8\u610f\u7248\u672c\u53f7 \u9700\u8981\u81ea\u884c\u66f4\u6539\ncp /usr/share/doc/openvpn-2.4.5/sample/sample-config-files/server.conf /etc/openvpn\ncp -r /usr/share/easy-rsa/ /etc/openvpn\ncp /usr/share/doc/easy-rsa-3.0.3/vars.example easy-rsa/3.0/vars\n\n# \u521d\u59cb\u5316pki\ncd /etc/openvpn/easy-rsa/3.0\n./easyrsa init-pki\n\n# \u521b\u5efaca\uff0c\u8bb0\u4f4fca\u5bc6\u7801\n./easyrsa build-ca\n\n# \u521b\u5efaDiffie-Hellman\uff0c\u786e\u4fddkey\u7a7f\u8d8a\u4e0d\u5b89\u5168\u7f51\u7edc\n./easyrsa gen-dh\n# \u751f\u6210\u9632\u653b\u51fbkey\u6587\u4ef6\nopenvpn --genkey --secret ta.key\n\n# \u521b\u5efa\u670d\u52a1\u5668\u8bc1\u4e66 \u6ce8\u610f\u540d\u5b57\u4e3avpnserver \u53ef\u4ee5\u66f4\u6539\n./easyrsa gen-req vpnserver nopass\n# \u7b7e\u7ea6\u670d\u52a1\u7aef\u8bc1\u4e66 \u6ce8\u610f\u540d\u5b57\u4e3avpnserver\n./easyrsa sign server vpnserver\n\n# \u5c06\u670d\u52a1\u5668\u8bc1\u4e66\u6574\u7406\u5230\u4e00\u8d77\ncd /etc/openvpn/\nmkdir pki\ncd pki\n/usr/bin/cp -rf ../easy-rsa/3.0/ta.key ./\n/usr/bin/cp -rf ../easy-rsa/3.0/pki/ca.crt ./\n/usr/bin/cp -rf ../easy-rsa/3.0/pki/dh.pem ./\n/usr/bin/cp -rf ../easy-rsa/3.0/pki/issued/vpnserver.crt ./\n/usr/bin/cp -rf ../easy-rsa/3.0/pki/private/vpnserver.key ./\n# \u5c06\u5ba2\u6237\u7aef\u6240\u9700\u8bc1\u4e66\u6574\u7406\u5230\u4e00\u8d77\nmkdir /etc/openvpn/client\ncd /etc/openvpn/client\n/usr/bin/cp -rf ../easy-rsa/3.0/ta.key ./\n/usr/bin/cp -rf ../easy-rsa/3.0/pki/ca.crt ./\n/usr/bin/cp -rf ../easy-rsa/3.0/pki/issued/client001.crt ./\n/usr/bin/cp -rf ../easy-rsa/3.0/pki/private/client001.key ./\n\n# \u542f\u52a8 \u505c\u6b62 \u72b6\u6001\nsystemctl start openvpn@server\nsystemctl stop openvpn@server\nsystemctl status openvpn@server\nsystemctl restart openvpn@server\n")),(0,a.yg)("h3",{id:"serverconf"},"server.conf"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},'#################################################\n# Sample OpenVPN 2.0 config file for #\n# multi-client server. #\n# #\n# This file is for the server side #\n# of a many-clients <-> one-server #\n# OpenVPN configuration. #\n# #\n# OpenVPN also supports #\n# single-machine <-> single-machine #\n# configurations (See the Examples page #\n# on the web site for more info). #\n# #\n# This config should work on Windows #\n# or Linux/BSD systems. Remember on #\n# Windows to quote pathnames and use #\n# double backslashes, e.g.: #\n# "C:\\\\Program Files\\\\OpenVPN\\\\config\\\\foo.key" #\n# #\n# Comments are preceded with \'#\' or \';\' #\n#################################################\n\n# Which local IP address should OpenVPN\n# listen on? (optional)\n;local a.b.c.d\n\n# Which TCP/UDP port should OpenVPN listen on?\n# If you want to run multiple OpenVPN instances\n# on the same machine, use a different port\n# number for each one. You will need to\n# open up this port on your firewall.\nport 1194\n\n# TCP or UDP server?\n;proto tcp\nproto udp\n\n# "dev tun" will create a routed IP tunnel,\n# "dev tap" will create an ethernet tunnel.\n# Use "dev tap0" if you are ethernet bridging\n# and have precreated a tap0 virtual interface\n# and bridged it with your ethernet interface.\n# If you want to control access policies\n# over the VPN, you must create firewall\n# rules for the the TUN/TAP interface.\n# On non-Windows systems, you can give\n# an explicit unit number, such as tun0.\n# On Windows, use "dev-node" for this.\n# On most systems, the VPN will not function\n# unless you partially or fully disable\n# the firewall for the TUN/TAP interface.\n;dev tap\ndev tun\n\n# Windows needs the TAP-Win32 adapter name\n# from the Network Connections panel if you\n# have more than one. On XP SP2 or higher,\n# you may need to selectively disable the\n# Windows firewall for the TAP adapter.\n# Non-Windows systems usually don\'t need this.\n;dev-node MyTap\n\n# SSL/TLS root certificate (ca), certificate\n# (cert), and private key (key). Each client\n# and the server must have their own cert and\n# key file. The server and all clients will\n# use the same ca file.\n#\n# See the "easy-rsa" directory for a series\n# of scripts for generating RSA certificates\n# and private keys. Remember to use\n# a unique Common Name for the server\n# and each of the client certificates.\n#\n# Any X509 key management system can be used.\n# OpenVPN can also use a PKCS #12 formatted key file\n# (see "pkcs12" directive in man page).\nca /etc/openvpn/pki/ca.crt\ncert /etc/openvpn/pki/vpnserver.crt\nkey /etc/openvpn/pki/vpnserver.key # This file should be kept secret\n\n# Diffie hellman parameters.\n# Generate your own with:\n# openssl dhparam -out dh2048.pem 2048\ndh /etc/openvpn/pki/dh.pem\n\n# Network topology\n# Should be subnet (addressing via IP)\n# unless Windows clients v2.0.9 and lower have to\n# be supported (then net30, i.e. a /30 per client)\n# Defaults to net30 (not recommended)\n;topology subnet\n\n# Configure server mode and supply a VPN subnet\n# for OpenVPN to draw client addresses from.\n# The server will take 10.8.0.1 for itself,\n# the rest will be made available to clients.\n# Each client will be able to reach the server\n# on 10.8.0.1. Comment this line out if you are\n# ethernet bridging. See the man page for more info.\nserver 10.8.0.0 255.255.255.0\n\n# Maintain a record of client <-> virtual IP address\n# associations in this file. If OpenVPN goes down or\n# is restarted, reconnecting clients can be assigned\n# the same virtual IP address from the pool that was\n# previously assigned.\nifconfig-pool-persist ipp.txt\n\n# Configure server mode for ethernet bridging.\n# You must first use your OS\'s bridging capability\n# to bridge the TAP interface with the ethernet\n# NIC interface. Then you must manually set the\n# IP/netmask on the bridge interface, here we\n# assume 10.8.0.4/255.255.255.0. Finally we\n# must set aside an IP range in this subnet\n# (start=10.8.0.50 end=10.8.0.100) to allocate\n# to connecting clients. Leave this line commented\n# out unless you are ethernet bridging.\n;server-bridge 10.8.0.4 255.255.255.0 10.8.0.50 10.8.0.100\n\n# Configure server mode for ethernet bridging\n# using a DHCP-proxy, where clients talk\n# to the OpenVPN server-side DHCP server\n# to receive their IP address allocation\n# and DNS server addresses. You must first use\n# your OS\'s bridging capability to bridge the TAP\n# interface with the ethernet NIC interface.\n# Note: this mode only works on clients (such as\n# Windows), where the client-side TAP adapter is\n# bound to a DHCP client.\n;server-bridge\n\n# Push routes to the client to allow it\n# to reach other private subnets behind\n# the server. Remember that these\n# private subnets will also need\n# to know to route the OpenVPN client\n# address pool (10.8.0.0/255.255.255.0)\n# back to the OpenVPN server.\n;push "route 192.168.10.0 255.255.255.0"\n;push "route 192.168.20.0 255.255.255.0"\n\n# To assign specific IP addresses to specific\n# clients or if a connecting client has a private\n# subnet behind it that should also have VPN access,\n# use the subdirectory "ccd" for client-specific\n# configuration files (see man page for more info).\n\n# EXAMPLE: Suppose the client\n# having the certificate common name "Thelonious"\n# also has a small subnet behind his connecting\n# machine, such as 192.168.40.128/255.255.255.248.\n# First, uncomment out these lines:\n;client-config-dir ccd\n;route 192.168.40.128 255.255.255.248\n# Then create a file ccd/Thelonious with this line:\n# iroute 192.168.40.128 255.255.255.248\n# This will allow Thelonious\' private subnet to\n# access the VPN. This example will only work\n# if you are routing, not bridging, i.e. you are\n# using "dev tun" and "server" directives.\n\n# EXAMPLE: Suppose you want to give\n# Thelonious a fixed VPN IP address of 10.9.0.1.\n# First uncomment out these lines:\n;client-config-dir ccd\n;route 10.9.0.0 255.255.255.252\n# Then add this line to ccd/Thelonious:\n# ifconfig-push 10.9.0.1 10.9.0.2\n\n# Suppose that you want to enable different\n# firewall access policies for different groups\n# of clients. There are two methods:\n# (1) Run multiple OpenVPN daemons, one for each\n# group, and firewall the TUN/TAP interface\n# for each group/daemon appropriately.\n# (2) (Advanced) Create a script to dynamically\n# modify the firewall in response to access\n# from different clients. See man\n# page for more info on learn-address script.\n;learn-address ./script\n\n# If enabled, this directive will configure\n# all clients to redirect their default\n# network gateway through the VPN, causing\n# all IP traffic such as web browsing and\n# and DNS lookups to go through the VPN\n# (The OpenVPN server machine may need to NAT\n# or bridge the TUN/TAP interface to the internet\n# in order for this to work properly).\n;push "redirect-gateway def1 bypass-dhcp"\n\n# Certain Windows-specific network settings\n# can be pushed to clients, such as DNS\n# or WINS server addresses. CAVEAT:\n# http://openvpn.net/faq.html#dhcpcaveats\n# The addresses below refer to the public\n# DNS servers provided by opendns.com.\n;push "dhcp-option DNS 208.67.222.222"\n;push "dhcp-option DNS 208.67.220.220"\npush "dhcp-option DNS 8.8.8.8"\n\n# Uncomment this directive to allow different\n# clients to be able to "see" each other.\n# By default, clients will only see the server.\n# To force clients to only see the server, you\n# will also need to appropriately firewall the\n# server\'s TUN/TAP interface.\nclient-to-client\n\n# Uncomment this directive if multiple clients\n# might connect with the same certificate/key\n# files or common names. This is recommended\n# only for testing purposes. For production use,\n# each client should have its own certificate/key\n# pair.\n#\n# IF YOU HAVE NOT GENERATED INDIVIDUAL\n# CERTIFICATE/KEY PAIRS FOR EACH CLIENT,\n# EACH HAVING ITS OWN UNIQUE "COMMON NAME",\n# UNCOMMENT THIS LINE OUT.\n;duplicate-cn\n\n# The keepalive directive causes ping-like\n# messages to be sent back and forth over\n# the link so that each side knows when\n# the other side has gone down.\n# Ping every 10 seconds, assume that remote\n# peer is down if no ping received during\n# a 120 second time period.\nkeepalive 10 120\n\n# For extra security beyond that provided\n# by SSL/TLS, create an "HMAC firewall"\n# to help block DoS attacks and UDP port flooding.\n#\n# Generate with:\n# openvpn --genkey --secret ta.key\n#\n# The server and each client must have\n# a copy of this key.\n# The second parameter should be \'0\'\n# on the server and \'1\' on the clients.\ntls-auth /etc/openvpn/pki/ta.key 0 # This file is secret\n\n# Select a cryptographic cipher.\n# This config item must be copied to\n# the client config file as well.\n# Note that v2.4 client/server will automatically\n# negotiate AES-256-GCM in TLS mode.\n# See also the ncp-cipher option in the manpage\ncipher AES-256-CBC\n\n# Enable compression on the VPN link and push the\n# option to the client (v2.4+ only, for earlier\n# versions see below)\n;compress lz4-v2\n;push "compress lz4-v2"\n\n# For compression compatible with older clients use comp-lzo\n# If you enable it here, you must also\n# enable it in the client config file.\ncomp-lzo\n\n# The maximum number of concurrently connected\n# clients we want to allow.\nmax-clients 999\n\n# It\'s a good idea to reduce the OpenVPN\n# daemon\'s privileges after initialization.\n#\n# You can uncomment this out on\n# non-Windows systems.\n;user nobody\n;group nobody\n\n# The persist options will try to avoid\n# accessing certain resources on restart\n# that may no longer be accessible because\n# of the privilege downgrade.\npersist-key\npersist-tun\n\n# Output a short status file showing\n# current connections, truncated\n# and rewritten every minute.\nstatus openvpn-status.log\n\n# By default, log messages will go to the syslog (or\n# on Windows, if running as a service, they will go to\n# the "\\Program Files\\OpenVPN\\log" directory).\n# Use log or log-append to override this default.\n# "log" will truncate the log file on OpenVPN startup,\n# while "log-append" will append to it. Use one\n# or the other (but not both).\n;log openvpn.log\n;log-append openvpn.log\n\n# Set the appropriate level of log\n# file verbosity.\n#\n# 0 is silent, except for fatal errors\n# 4 is reasonable for general usage\n# 5 and 6 can help to debug connection problems\n# 9 is extremely verbose\nverb 3\n\n# Silence repeating messages. At most 20\n# sequential messages of the same message\n# category will be output to the log.\n;mute 20\n\n# Notify the client that when the server restarts so it\n# can automatically reconnect.\nexplicit-exit-notify 1\n')),(0,a.yg)("h3",{id:"\u914d\u7f6e-ip-\u8f6c\u53d1\u529f\u80fd"},"\u914d\u7f6e IP \u8f6c\u53d1\u529f\u80fd"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},"# \u67e5\u8be2\nsysctl net.ipv4.ip_forward\n# \u8bbe\u7f6e\necho 'net.ipv4.ip_forward = 1' >/etc/sysctl.conf\nsysctl -p\n")),(0,a.yg)("p",null,"\u53c2\u8003",(0,a.yg)("a",{parentName:"p",href:"https://blog.csdn.net/wangqiaowq/article/details/131802323"},"net.ipv4.ip_forward")),(0,a.yg)("h3",{id:"clientovpn"},"client.ovpn"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},"# \u76f8\u5f53\u4e8e pull tls-client\nclient\n#\ndev tun\n#\nproto udp\n# \u8fde\u63a5\u8fdc\u7a0bopenvpn server\uff0c\u53ef\u4ee5\u6709\u591a\u4e2a\uff0c\u4f46\u540c\u65f6\u8fde\u63a5\u53ea\u6709\u4e00\u4e2a\nremote 60.204.171.251 1194\nresolv-retry infinite\nnobind\npersist-key\npersist-tun\n#\nca ca.crt\ncert client001.crt\nkey client001.key\ntls-auth ta.key 1\n#\ncomp-lzo\n# \u65e5\u5fd7\u5bb9\u6613\u7ea7\u522b\nverb 3\n")),(0,a.yg)("h3",{id:"\u751f\u6210\u5ba2\u6237\u7aef\u8bc1\u4e66"},"\u751f\u6210\u5ba2\u6237\u7aef\u8bc1\u4e66"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},"cd /etc/openvpn/easy-rsa/3.0/\n./easyrsa build-client-full client003\n/usr/bin/cp -rf /etc/openvpn/easy-rsa/3.0/pki/issued/client003.crt /etc/openvpn/client\n/usr/bin/cp -rf /etc/openvpn/easy-rsa/3.0/pki/private/client003.key /etc/openvpn/client\n")),(0,a.yg)("h3",{id:"\u914d\u7f6e\u4e0d\u540c\u7684\u5ba2\u6237\u7aef\u542f\u7528\u4e0d\u540c\u7684\u5b50\u7f51"},"\u914d\u7f6e\u4e0d\u540c\u7684\u5ba2\u6237\u7aef\u542f\u7528\u4e0d\u540c\u7684\u5b50\u7f51"),(0,a.yg)("p",null,"\u4fee\u6539 server.conf \u6587\u4ef6"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},"# \u542f\u7528ccd \u589e\u52a0\u4e24\u4e2a\u5b50\u7f51\u8def\u7531\nclient-config-dir ccd\n;route 10.9.0.0 255.255.255.252\nroute 10.9.0.0 255.255.255.0\nroute 10.9.1.0 255.255.255.0\n# \u4fee\u6539topology\u4e3asubnet\ntopology subnet\n")),(0,a.yg)("h3",{id:"topology"},"topology"),(0,a.yg)("h4",{id:"tun-\u6a21\u5f0f"},"tun \u6a21\u5f0f\uff1a"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"subnet\uff1a"),(0,a.yg)("ul",{parentName:"li"},(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"a. \u4ece pool \u4e2d\u9009\u62e9\u4e00\u4e2a ip \u4f5c\u4e3a client \u7684\u865a\u62df\u7f51\u5361 ip\uff1b")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"b. \u5c06\u81ea\u5df1\u7684\u5b50\u7f51\u63a9\u7801\u4f5c\u4e3a client \u7684\u5b50\u7f51\u63a9\u7801\u3002")))),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"p2p\uff1a"),(0,a.yg)("ul",{parentName:"li"},(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"a.\u4ece pool \u4e2d\u9009\u62e9\u4e00\u4e2a ip \u4f5c\u4e3a client \u7684\u865a\u62df\u7f51\u5361 ip\uff1b")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"b.\u5c06\u81ea\u5df1\u7684\u5b9e\u9645\u865a\u62df\u7f51\u5361 ip \u4f5c\u4e3a client \u7684\u5bf9\u7aef ip\u3002")))),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"net30\uff1a"),(0,a.yg)("ul",{parentName:"li"},(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"a.\u4ece pool \u4e2d\u9009\u62e9 4 \u4e2a\u63a9\u7801\u4e3a 30 \u7684 ip\uff0c\u5c06\u4e2d\u95f4\u4e24\u4e2a ip \u4e2d\u7684\u5927\u8005\u4f5c\u4e3a client \u7684\u865a\u62df\u7f51\u5361 ip\uff1b")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"b.\u5c06\u5c0f\u8005\u4f5c\u4e3a client \u7684\u5bf9\u7aef ip\u3002"))))),(0,a.yg)("h4",{id:"tap-\u6a21\u5f0f"},"tap \u6a21\u5f0f\uff1a"),(0,a.yg)("p",null,"\u5b8c\u5168\u6309\u7167 tun \u6a21\u5f0f\u7684 1 \u6765\u5206\u914d\u3002"),(0,a.yg)("h3",{id:"\u811a\u672c\u521b\u5efa-client"},"\u811a\u672c\u521b\u5efa client"),(0,a.yg)("p",null,"\u811a\u672c\u521b\u5efa client\uff0c\u81ea\u52a8\u8f93\u5165 ca \u5bc6\u7801\uff0c"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},'#!/usr/bin/expect\n\nset timeout 30\n\nspawn ./easyrsa build-client-full client014 nopass\nexpect "pass"\nsend "weichuang"\nsend "\\n"\ninteract\n')),(0,a.yg)("h3",{id:"\u7ba1\u7406\u7aef\u63a5\u53e3"},"\u7ba1\u7406\u7aef\u63a5\u53e3"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://openvpn.net/community-resources/management-interface/"},"\u5b98\u65b9\u7ba1\u7406\u7aef\u63a5\u53e3\u4f7f\u7528\u6587\u6863"))),(0,a.yg)("h3",{id:"\u5305\u8fc7\u6ee4"},"\u5305\u8fc7\u6ee4"),(0,a.yg)("p",null,"\u53ef\u5b9e\u73b0\u7b80\u5355\u7684\u9632\u706b\u5899\u63a7\u5236"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://backreference.org/2010/06/18/openvpns-built-in-packet-filter/"},"openvpn \u5185\u7f6e\u5305\u8fc7\u6ee4\u975e\u5b98\u65b9\u6280\u672f\u6587\u6863"))),(0,a.yg)("h3",{id:"\u95ee\u9898\u8fde\u63a5\u6210\u529f\u540e\u5ba2\u6237\u7aef\u65e0\u6cd5\u6b63\u5e38\u8bbf\u95ee\u5176\u4ed6\u7f51\u7ad9"},"\u95ee\u9898\uff1a\u8fde\u63a5\u6210\u529f\u540e\uff0c\u5ba2\u6237\u7aef\u65e0\u6cd5\u6b63\u5e38\u8bbf\u95ee\u5176\u4ed6\u7f51\u7ad9"),(0,a.yg)("p",null,"\u5c06 server.conf \u7684"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},';push "redirect-gateway def1 bypass-dhcp"\n')),(0,a.yg)("p",null,"\u6ce8\u91ca\u6389"),(0,a.yg)("h3",{id:"\u95ee\u9898tcpdump-\u76d1\u542c\u4e0d\u4e86-tun0"},"\u95ee\u9898\uff1atcpdump \u76d1\u542c\u4e0d\u4e86 tun0"),(0,a.yg)("p",null,"\u5982\u679c\u5f00\u542f\u4e86 client-to-client\uff0c\u6d41\u91cf\u662f\u4e0d\u8d70 tun \u7684\u7684\u3002"),(0,a.yg)("p",null,"\u53ef\u4ee5\u53c2\u8003",(0,a.yg)("a",{parentName:"p",href:"https://serverfault.com/questions/1052645/openvpn-server-not-showing-traffic-using-tcpdump"},"openvpn server not showing traffic using tcpdump")))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3991],{5680:(e,n,t)=>{t.d(n,{xA:()=>c,yg:()=>y});var r=t(6540);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function o(e){for(var n=1;n=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var l=r.createContext({}),p=function(e){var n=r.useContext(l),t=n;return e&&(t="function"==typeof e?e(n):o(o({},n),e)),t},c=function(e){var n=p(e.components);return r.createElement(l.Provider,{value:n},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},h=r.forwardRef((function(e,n){var t=e.components,a=e.mdxType,i=e.originalType,l=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),u=p(t),h=a,y=u["".concat(l,".").concat(h)]||u[h]||d[h]||i;return t?r.createElement(y,o(o({ref:n},c),{},{components:t})):r.createElement(y,o({ref:n},c))}));function y(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var i=t.length,o=new Array(i);o[0]=h;var s={};for(var l in n)hasOwnProperty.call(n,l)&&(s[l]=n[l]);s.originalType=e,s[u]="string"==typeof e?e:a,o[1]=s;for(var p=2;p{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>o,default:()=>d,frontMatter:()=>i,metadata:()=>s,toc:()=>p});var r=t(8168),a=(t(6540),t(5680));const i={},o=void 0,s={unversionedId:"study/net/OpenVPN",id:"study/net/OpenVPN",title:"OpenVPN",description:"\u914d\u7f6e",source:"@site/docs/study/net/OpenVPN.md",sourceDirName:"study/net",slug:"/study/net/OpenVPN",permalink:"/docs/study/net/OpenVPN",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"MacOS\u7f16\u8bd1OpenVPN",permalink:"/docs/study/net/MacOS\u7f16\u8bd1OpenVPN"},next:{title:"TCP",permalink:"/docs/study/net/TCP"}},l={},p=[{value:"\u914d\u7f6e",id:"\u914d\u7f6e",level:3},{value:"\u811a\u672c",id:"\u811a\u672c",level:3},{value:"server.conf",id:"serverconf",level:3},{value:"\u914d\u7f6e IP \u8f6c\u53d1\u529f\u80fd",id:"\u914d\u7f6e-ip-\u8f6c\u53d1\u529f\u80fd",level:3},{value:"client.ovpn",id:"clientovpn",level:3},{value:"\u751f\u6210\u5ba2\u6237\u7aef\u8bc1\u4e66",id:"\u751f\u6210\u5ba2\u6237\u7aef\u8bc1\u4e66",level:3},{value:"\u914d\u7f6e\u4e0d\u540c\u7684\u5ba2\u6237\u7aef\u542f\u7528\u4e0d\u540c\u7684\u5b50\u7f51",id:"\u914d\u7f6e\u4e0d\u540c\u7684\u5ba2\u6237\u7aef\u542f\u7528\u4e0d\u540c\u7684\u5b50\u7f51",level:3},{value:"topology",id:"topology",level:3},{value:"tun \u6a21\u5f0f\uff1a",id:"tun-\u6a21\u5f0f",level:4},{value:"tap \u6a21\u5f0f\uff1a",id:"tap-\u6a21\u5f0f",level:4},{value:"\u811a\u672c\u521b\u5efa client",id:"\u811a\u672c\u521b\u5efa-client",level:3},{value:"\u7ba1\u7406\u7aef\u63a5\u53e3",id:"\u7ba1\u7406\u7aef\u63a5\u53e3",level:3},{value:"\u5305\u8fc7\u6ee4",id:"\u5305\u8fc7\u6ee4",level:3},{value:"\u95ee\u9898\uff1a\u8fde\u63a5\u6210\u529f\u540e\uff0c\u5ba2\u6237\u7aef\u65e0\u6cd5\u6b63\u5e38\u8bbf\u95ee\u5176\u4ed6\u7f51\u7ad9",id:"\u95ee\u9898\u8fde\u63a5\u6210\u529f\u540e\u5ba2\u6237\u7aef\u65e0\u6cd5\u6b63\u5e38\u8bbf\u95ee\u5176\u4ed6\u7f51\u7ad9",level:3},{value:"\u95ee\u9898\uff1atcpdump \u76d1\u542c\u4e0d\u4e86 tun0",id:"\u95ee\u9898tcpdump-\u76d1\u542c\u4e0d\u4e86-tun0",level:3}],c={toc:p},u="wrapper";function d(e){let{components:n,...t}=e;return(0,a.yg)(u,(0,r.A)({},c,t,{components:n,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"\u914d\u7f6e"},"\u914d\u7f6e"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://blog.csdn.net/sinat_27690807/article/details/118482528"},"OpenVPN \u4e2d server.conf \u548c client.conf \u914d\u7f6e\u6587\u4ef6\u8be6\u89e3")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://www.linuxfly.org/post/86/"},"\u6df1\u5165 openvpn \u914d\u7f6e-\u6709\u6848\u4f8b")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://blog.51cto.com/icenycmh/1867641"},"openvpn2.3.12 \u5b89\u88c5\u4e0e easy-rsa3 \u7684\u4f7f\u7528")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://blog.51cto.com/songky/2115052?articleABtest=1"},"\u963f\u91cc\u4e91\u670d\u52a1\u5668\u914d\u7f6e CentOS7.4+OpenVPN-2.4.5+easy-rsa-3.0")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://bajie.dev/zh-cn/posts/20211018-openvpn_limit_bandwidth/"},"OpenVPN \u9650\u5236\u6d41\u91cf\u5e26\u5bbd-\u7f51\u5361\u7ea7\u522b\u9650\u5236")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://www.ilxqx.com/archives/jie-jue-openvpn-ke-hu-duan-suo-you-wang-luo-quan-zou-vpn-de-wen-ti"},"\u89e3\u51b3 OpenVPN \u5ba2\u6237\u7aef\u6240\u6709\u7f51\u7edc\u5168\u8d70 VPN \u7684\u95ee\u9898,server.conf \u548c client.conf \u914d\u7f6e\u6587\u4ef6\u8be6\u89e3")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://build.openvpn.net/man/openvpn-2.6/openvpn.8.html"},"openvpn \u5b98\u65b9\u547d\u4ee4\u884c\u6587\u6863")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://www.junmajinlong.com/virtual/network/data_flow_about_openvpn/"},"\u901a\u8fc7 openvpn \u5206\u6790 tun \u5b9e\u73b0\u96a7\u9053\u7684\u6570\u636e\u6d41\u7a0b"))),(0,a.yg)("h3",{id:"\u811a\u672c"},"\u811a\u672c"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},"# \u5b89\u88c5\nyum install openvpn\nyum install easy-rsa\n\n# \u51c6\u5907\u76ee\u5f55 \u6ce8\u610f\u7248\u672c\u53f7 \u9700\u8981\u81ea\u884c\u66f4\u6539\ncp /usr/share/doc/openvpn-2.4.5/sample/sample-config-files/server.conf /etc/openvpn\ncp -r /usr/share/easy-rsa/ /etc/openvpn\ncp /usr/share/doc/easy-rsa-3.0.3/vars.example easy-rsa/3.0/vars\n\n# \u521d\u59cb\u5316pki\ncd /etc/openvpn/easy-rsa/3.0\n./easyrsa init-pki\n\n# \u521b\u5efaca\uff0c\u8bb0\u4f4fca\u5bc6\u7801\n./easyrsa build-ca\n\n# \u521b\u5efaDiffie-Hellman\uff0c\u786e\u4fddkey\u7a7f\u8d8a\u4e0d\u5b89\u5168\u7f51\u7edc\n./easyrsa gen-dh\n# \u751f\u6210\u9632\u653b\u51fbkey\u6587\u4ef6\nopenvpn --genkey --secret ta.key\n\n# \u521b\u5efa\u670d\u52a1\u5668\u8bc1\u4e66 \u6ce8\u610f\u540d\u5b57\u4e3avpnserver \u53ef\u4ee5\u66f4\u6539\n./easyrsa gen-req vpnserver nopass\n# \u7b7e\u7ea6\u670d\u52a1\u7aef\u8bc1\u4e66 \u6ce8\u610f\u540d\u5b57\u4e3avpnserver\n./easyrsa sign server vpnserver\n\n# \u5c06\u670d\u52a1\u5668\u8bc1\u4e66\u6574\u7406\u5230\u4e00\u8d77\ncd /etc/openvpn/\nmkdir pki\ncd pki\n/usr/bin/cp -rf ../easy-rsa/3.0/ta.key ./\n/usr/bin/cp -rf ../easy-rsa/3.0/pki/ca.crt ./\n/usr/bin/cp -rf ../easy-rsa/3.0/pki/dh.pem ./\n/usr/bin/cp -rf ../easy-rsa/3.0/pki/issued/vpnserver.crt ./\n/usr/bin/cp -rf ../easy-rsa/3.0/pki/private/vpnserver.key ./\n# \u5c06\u5ba2\u6237\u7aef\u6240\u9700\u8bc1\u4e66\u6574\u7406\u5230\u4e00\u8d77\nmkdir /etc/openvpn/client\ncd /etc/openvpn/client\n/usr/bin/cp -rf ../easy-rsa/3.0/ta.key ./\n/usr/bin/cp -rf ../easy-rsa/3.0/pki/ca.crt ./\n/usr/bin/cp -rf ../easy-rsa/3.0/pki/issued/client001.crt ./\n/usr/bin/cp -rf ../easy-rsa/3.0/pki/private/client001.key ./\n\n# \u542f\u52a8 \u505c\u6b62 \u72b6\u6001\nsystemctl start openvpn@server\nsystemctl stop openvpn@server\nsystemctl status openvpn@server\nsystemctl restart openvpn@server\n")),(0,a.yg)("h3",{id:"serverconf"},"server.conf"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},'#################################################\n# Sample OpenVPN 2.0 config file for #\n# multi-client server. #\n# #\n# This file is for the server side #\n# of a many-clients <-> one-server #\n# OpenVPN configuration. #\n# #\n# OpenVPN also supports #\n# single-machine <-> single-machine #\n# configurations (See the Examples page #\n# on the web site for more info). #\n# #\n# This config should work on Windows #\n# or Linux/BSD systems. Remember on #\n# Windows to quote pathnames and use #\n# double backslashes, e.g.: #\n# "C:\\\\Program Files\\\\OpenVPN\\\\config\\\\foo.key" #\n# #\n# Comments are preceded with \'#\' or \';\' #\n#################################################\n\n# Which local IP address should OpenVPN\n# listen on? (optional)\n;local a.b.c.d\n\n# Which TCP/UDP port should OpenVPN listen on?\n# If you want to run multiple OpenVPN instances\n# on the same machine, use a different port\n# number for each one. You will need to\n# open up this port on your firewall.\nport 1194\n\n# TCP or UDP server?\n;proto tcp\nproto udp\n\n# "dev tun" will create a routed IP tunnel,\n# "dev tap" will create an ethernet tunnel.\n# Use "dev tap0" if you are ethernet bridging\n# and have precreated a tap0 virtual interface\n# and bridged it with your ethernet interface.\n# If you want to control access policies\n# over the VPN, you must create firewall\n# rules for the the TUN/TAP interface.\n# On non-Windows systems, you can give\n# an explicit unit number, such as tun0.\n# On Windows, use "dev-node" for this.\n# On most systems, the VPN will not function\n# unless you partially or fully disable\n# the firewall for the TUN/TAP interface.\n;dev tap\ndev tun\n\n# Windows needs the TAP-Win32 adapter name\n# from the Network Connections panel if you\n# have more than one. On XP SP2 or higher,\n# you may need to selectively disable the\n# Windows firewall for the TAP adapter.\n# Non-Windows systems usually don\'t need this.\n;dev-node MyTap\n\n# SSL/TLS root certificate (ca), certificate\n# (cert), and private key (key). Each client\n# and the server must have their own cert and\n# key file. The server and all clients will\n# use the same ca file.\n#\n# See the "easy-rsa" directory for a series\n# of scripts for generating RSA certificates\n# and private keys. Remember to use\n# a unique Common Name for the server\n# and each of the client certificates.\n#\n# Any X509 key management system can be used.\n# OpenVPN can also use a PKCS #12 formatted key file\n# (see "pkcs12" directive in man page).\nca /etc/openvpn/pki/ca.crt\ncert /etc/openvpn/pki/vpnserver.crt\nkey /etc/openvpn/pki/vpnserver.key # This file should be kept secret\n\n# Diffie hellman parameters.\n# Generate your own with:\n# openssl dhparam -out dh2048.pem 2048\ndh /etc/openvpn/pki/dh.pem\n\n# Network topology\n# Should be subnet (addressing via IP)\n# unless Windows clients v2.0.9 and lower have to\n# be supported (then net30, i.e. a /30 per client)\n# Defaults to net30 (not recommended)\n;topology subnet\n\n# Configure server mode and supply a VPN subnet\n# for OpenVPN to draw client addresses from.\n# The server will take 10.8.0.1 for itself,\n# the rest will be made available to clients.\n# Each client will be able to reach the server\n# on 10.8.0.1. Comment this line out if you are\n# ethernet bridging. See the man page for more info.\nserver 10.8.0.0 255.255.255.0\n\n# Maintain a record of client <-> virtual IP address\n# associations in this file. If OpenVPN goes down or\n# is restarted, reconnecting clients can be assigned\n# the same virtual IP address from the pool that was\n# previously assigned.\nifconfig-pool-persist ipp.txt\n\n# Configure server mode for ethernet bridging.\n# You must first use your OS\'s bridging capability\n# to bridge the TAP interface with the ethernet\n# NIC interface. Then you must manually set the\n# IP/netmask on the bridge interface, here we\n# assume 10.8.0.4/255.255.255.0. Finally we\n# must set aside an IP range in this subnet\n# (start=10.8.0.50 end=10.8.0.100) to allocate\n# to connecting clients. Leave this line commented\n# out unless you are ethernet bridging.\n;server-bridge 10.8.0.4 255.255.255.0 10.8.0.50 10.8.0.100\n\n# Configure server mode for ethernet bridging\n# using a DHCP-proxy, where clients talk\n# to the OpenVPN server-side DHCP server\n# to receive their IP address allocation\n# and DNS server addresses. You must first use\n# your OS\'s bridging capability to bridge the TAP\n# interface with the ethernet NIC interface.\n# Note: this mode only works on clients (such as\n# Windows), where the client-side TAP adapter is\n# bound to a DHCP client.\n;server-bridge\n\n# Push routes to the client to allow it\n# to reach other private subnets behind\n# the server. Remember that these\n# private subnets will also need\n# to know to route the OpenVPN client\n# address pool (10.8.0.0/255.255.255.0)\n# back to the OpenVPN server.\n;push "route 192.168.10.0 255.255.255.0"\n;push "route 192.168.20.0 255.255.255.0"\n\n# To assign specific IP addresses to specific\n# clients or if a connecting client has a private\n# subnet behind it that should also have VPN access,\n# use the subdirectory "ccd" for client-specific\n# configuration files (see man page for more info).\n\n# EXAMPLE: Suppose the client\n# having the certificate common name "Thelonious"\n# also has a small subnet behind his connecting\n# machine, such as 192.168.40.128/255.255.255.248.\n# First, uncomment out these lines:\n;client-config-dir ccd\n;route 192.168.40.128 255.255.255.248\n# Then create a file ccd/Thelonious with this line:\n# iroute 192.168.40.128 255.255.255.248\n# This will allow Thelonious\' private subnet to\n# access the VPN. This example will only work\n# if you are routing, not bridging, i.e. you are\n# using "dev tun" and "server" directives.\n\n# EXAMPLE: Suppose you want to give\n# Thelonious a fixed VPN IP address of 10.9.0.1.\n# First uncomment out these lines:\n;client-config-dir ccd\n;route 10.9.0.0 255.255.255.252\n# Then add this line to ccd/Thelonious:\n# ifconfig-push 10.9.0.1 10.9.0.2\n\n# Suppose that you want to enable different\n# firewall access policies for different groups\n# of clients. There are two methods:\n# (1) Run multiple OpenVPN daemons, one for each\n# group, and firewall the TUN/TAP interface\n# for each group/daemon appropriately.\n# (2) (Advanced) Create a script to dynamically\n# modify the firewall in response to access\n# from different clients. See man\n# page for more info on learn-address script.\n;learn-address ./script\n\n# If enabled, this directive will configure\n# all clients to redirect their default\n# network gateway through the VPN, causing\n# all IP traffic such as web browsing and\n# and DNS lookups to go through the VPN\n# (The OpenVPN server machine may need to NAT\n# or bridge the TUN/TAP interface to the internet\n# in order for this to work properly).\n;push "redirect-gateway def1 bypass-dhcp"\n\n# Certain Windows-specific network settings\n# can be pushed to clients, such as DNS\n# or WINS server addresses. CAVEAT:\n# http://openvpn.net/faq.html#dhcpcaveats\n# The addresses below refer to the public\n# DNS servers provided by opendns.com.\n;push "dhcp-option DNS 208.67.222.222"\n;push "dhcp-option DNS 208.67.220.220"\npush "dhcp-option DNS 8.8.8.8"\n\n# Uncomment this directive to allow different\n# clients to be able to "see" each other.\n# By default, clients will only see the server.\n# To force clients to only see the server, you\n# will also need to appropriately firewall the\n# server\'s TUN/TAP interface.\nclient-to-client\n\n# Uncomment this directive if multiple clients\n# might connect with the same certificate/key\n# files or common names. This is recommended\n# only for testing purposes. For production use,\n# each client should have its own certificate/key\n# pair.\n#\n# IF YOU HAVE NOT GENERATED INDIVIDUAL\n# CERTIFICATE/KEY PAIRS FOR EACH CLIENT,\n# EACH HAVING ITS OWN UNIQUE "COMMON NAME",\n# UNCOMMENT THIS LINE OUT.\n;duplicate-cn\n\n# The keepalive directive causes ping-like\n# messages to be sent back and forth over\n# the link so that each side knows when\n# the other side has gone down.\n# Ping every 10 seconds, assume that remote\n# peer is down if no ping received during\n# a 120 second time period.\nkeepalive 10 120\n\n# For extra security beyond that provided\n# by SSL/TLS, create an "HMAC firewall"\n# to help block DoS attacks and UDP port flooding.\n#\n# Generate with:\n# openvpn --genkey --secret ta.key\n#\n# The server and each client must have\n# a copy of this key.\n# The second parameter should be \'0\'\n# on the server and \'1\' on the clients.\ntls-auth /etc/openvpn/pki/ta.key 0 # This file is secret\n\n# Select a cryptographic cipher.\n# This config item must be copied to\n# the client config file as well.\n# Note that v2.4 client/server will automatically\n# negotiate AES-256-GCM in TLS mode.\n# See also the ncp-cipher option in the manpage\ncipher AES-256-CBC\n\n# Enable compression on the VPN link and push the\n# option to the client (v2.4+ only, for earlier\n# versions see below)\n;compress lz4-v2\n;push "compress lz4-v2"\n\n# For compression compatible with older clients use comp-lzo\n# If you enable it here, you must also\n# enable it in the client config file.\ncomp-lzo\n\n# The maximum number of concurrently connected\n# clients we want to allow.\nmax-clients 999\n\n# It\'s a good idea to reduce the OpenVPN\n# daemon\'s privileges after initialization.\n#\n# You can uncomment this out on\n# non-Windows systems.\n;user nobody\n;group nobody\n\n# The persist options will try to avoid\n# accessing certain resources on restart\n# that may no longer be accessible because\n# of the privilege downgrade.\npersist-key\npersist-tun\n\n# Output a short status file showing\n# current connections, truncated\n# and rewritten every minute.\nstatus openvpn-status.log\n\n# By default, log messages will go to the syslog (or\n# on Windows, if running as a service, they will go to\n# the "\\Program Files\\OpenVPN\\log" directory).\n# Use log or log-append to override this default.\n# "log" will truncate the log file on OpenVPN startup,\n# while "log-append" will append to it. Use one\n# or the other (but not both).\n;log openvpn.log\n;log-append openvpn.log\n\n# Set the appropriate level of log\n# file verbosity.\n#\n# 0 is silent, except for fatal errors\n# 4 is reasonable for general usage\n# 5 and 6 can help to debug connection problems\n# 9 is extremely verbose\nverb 3\n\n# Silence repeating messages. At most 20\n# sequential messages of the same message\n# category will be output to the log.\n;mute 20\n\n# Notify the client that when the server restarts so it\n# can automatically reconnect.\nexplicit-exit-notify 1\n')),(0,a.yg)("h3",{id:"\u914d\u7f6e-ip-\u8f6c\u53d1\u529f\u80fd"},"\u914d\u7f6e IP \u8f6c\u53d1\u529f\u80fd"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},"# \u67e5\u8be2\nsysctl net.ipv4.ip_forward\n# \u8bbe\u7f6e\necho 'net.ipv4.ip_forward = 1' >/etc/sysctl.conf\nsysctl -p\n")),(0,a.yg)("p",null,"\u53c2\u8003",(0,a.yg)("a",{parentName:"p",href:"https://blog.csdn.net/wangqiaowq/article/details/131802323"},"net.ipv4.ip_forward")),(0,a.yg)("h3",{id:"clientovpn"},"client.ovpn"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},"# \u76f8\u5f53\u4e8e pull tls-client\nclient\n#\ndev tun\n#\nproto udp\n# \u8fde\u63a5\u8fdc\u7a0bopenvpn server\uff0c\u53ef\u4ee5\u6709\u591a\u4e2a\uff0c\u4f46\u540c\u65f6\u8fde\u63a5\u53ea\u6709\u4e00\u4e2a\nremote 60.204.171.251 1194\nresolv-retry infinite\nnobind\npersist-key\npersist-tun\n#\nca ca.crt\ncert client001.crt\nkey client001.key\ntls-auth ta.key 1\n#\ncomp-lzo\n# \u65e5\u5fd7\u5bb9\u6613\u7ea7\u522b\nverb 3\n")),(0,a.yg)("h3",{id:"\u751f\u6210\u5ba2\u6237\u7aef\u8bc1\u4e66"},"\u751f\u6210\u5ba2\u6237\u7aef\u8bc1\u4e66"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},"cd /etc/openvpn/easy-rsa/3.0/\n./easyrsa build-client-full client003\n/usr/bin/cp -rf /etc/openvpn/easy-rsa/3.0/pki/issued/client003.crt /etc/openvpn/client\n/usr/bin/cp -rf /etc/openvpn/easy-rsa/3.0/pki/private/client003.key /etc/openvpn/client\n")),(0,a.yg)("h3",{id:"\u914d\u7f6e\u4e0d\u540c\u7684\u5ba2\u6237\u7aef\u542f\u7528\u4e0d\u540c\u7684\u5b50\u7f51"},"\u914d\u7f6e\u4e0d\u540c\u7684\u5ba2\u6237\u7aef\u542f\u7528\u4e0d\u540c\u7684\u5b50\u7f51"),(0,a.yg)("p",null,"\u4fee\u6539 server.conf \u6587\u4ef6"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},"# \u542f\u7528ccd \u589e\u52a0\u4e24\u4e2a\u5b50\u7f51\u8def\u7531\nclient-config-dir ccd\n;route 10.9.0.0 255.255.255.252\nroute 10.9.0.0 255.255.255.0\nroute 10.9.1.0 255.255.255.0\n# \u4fee\u6539topology\u4e3asubnet\ntopology subnet\n")),(0,a.yg)("h3",{id:"topology"},"topology"),(0,a.yg)("h4",{id:"tun-\u6a21\u5f0f"},"tun \u6a21\u5f0f\uff1a"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"subnet\uff1a"),(0,a.yg)("ul",{parentName:"li"},(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"a. \u4ece pool \u4e2d\u9009\u62e9\u4e00\u4e2a ip \u4f5c\u4e3a client \u7684\u865a\u62df\u7f51\u5361 ip\uff1b")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"b. \u5c06\u81ea\u5df1\u7684\u5b50\u7f51\u63a9\u7801\u4f5c\u4e3a client \u7684\u5b50\u7f51\u63a9\u7801\u3002")))),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"p2p\uff1a"),(0,a.yg)("ul",{parentName:"li"},(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"a.\u4ece pool \u4e2d\u9009\u62e9\u4e00\u4e2a ip \u4f5c\u4e3a client \u7684\u865a\u62df\u7f51\u5361 ip\uff1b")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"b.\u5c06\u81ea\u5df1\u7684\u5b9e\u9645\u865a\u62df\u7f51\u5361 ip \u4f5c\u4e3a client \u7684\u5bf9\u7aef ip\u3002")))),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"net30\uff1a"),(0,a.yg)("ul",{parentName:"li"},(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"a.\u4ece pool \u4e2d\u9009\u62e9 4 \u4e2a\u63a9\u7801\u4e3a 30 \u7684 ip\uff0c\u5c06\u4e2d\u95f4\u4e24\u4e2a ip \u4e2d\u7684\u5927\u8005\u4f5c\u4e3a client \u7684\u865a\u62df\u7f51\u5361 ip\uff1b")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"b.\u5c06\u5c0f\u8005\u4f5c\u4e3a client \u7684\u5bf9\u7aef ip\u3002"))))),(0,a.yg)("h4",{id:"tap-\u6a21\u5f0f"},"tap \u6a21\u5f0f\uff1a"),(0,a.yg)("p",null,"\u5b8c\u5168\u6309\u7167 tun \u6a21\u5f0f\u7684 1 \u6765\u5206\u914d\u3002"),(0,a.yg)("h3",{id:"\u811a\u672c\u521b\u5efa-client"},"\u811a\u672c\u521b\u5efa client"),(0,a.yg)("p",null,"\u811a\u672c\u521b\u5efa client\uff0c\u81ea\u52a8\u8f93\u5165 ca \u5bc6\u7801\uff0c"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},'#!/usr/bin/expect\n\nset timeout 30\n\nspawn ./easyrsa build-client-full client014 nopass\nexpect "pass"\nsend "weichuang"\nsend "\\n"\ninteract\n')),(0,a.yg)("h3",{id:"\u7ba1\u7406\u7aef\u63a5\u53e3"},"\u7ba1\u7406\u7aef\u63a5\u53e3"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://openvpn.net/community-resources/management-interface/"},"\u5b98\u65b9\u7ba1\u7406\u7aef\u63a5\u53e3\u4f7f\u7528\u6587\u6863"))),(0,a.yg)("h3",{id:"\u5305\u8fc7\u6ee4"},"\u5305\u8fc7\u6ee4"),(0,a.yg)("p",null,"\u53ef\u5b9e\u73b0\u7b80\u5355\u7684\u9632\u706b\u5899\u63a7\u5236"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://backreference.org/2010/06/18/openvpns-built-in-packet-filter/"},"openvpn \u5185\u7f6e\u5305\u8fc7\u6ee4\u975e\u5b98\u65b9\u6280\u672f\u6587\u6863"))),(0,a.yg)("h3",{id:"\u95ee\u9898\u8fde\u63a5\u6210\u529f\u540e\u5ba2\u6237\u7aef\u65e0\u6cd5\u6b63\u5e38\u8bbf\u95ee\u5176\u4ed6\u7f51\u7ad9"},"\u95ee\u9898\uff1a\u8fde\u63a5\u6210\u529f\u540e\uff0c\u5ba2\u6237\u7aef\u65e0\u6cd5\u6b63\u5e38\u8bbf\u95ee\u5176\u4ed6\u7f51\u7ad9"),(0,a.yg)("p",null,"\u5c06 server.conf \u7684"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},';push "redirect-gateway def1 bypass-dhcp"\n')),(0,a.yg)("p",null,"\u6ce8\u91ca\u6389"),(0,a.yg)("h3",{id:"\u95ee\u9898tcpdump-\u76d1\u542c\u4e0d\u4e86-tun0"},"\u95ee\u9898\uff1atcpdump \u76d1\u542c\u4e0d\u4e86 tun0"),(0,a.yg)("p",null,"\u5982\u679c\u5f00\u542f\u4e86 client-to-client\uff0c\u6d41\u91cf\u662f\u4e0d\u8d70 tun \u7684\u7684\u3002"),(0,a.yg)("p",null,"\u53ef\u4ee5\u53c2\u8003",(0,a.yg)("a",{parentName:"p",href:"https://serverfault.com/questions/1052645/openvpn-server-not-showing-traffic-using-tcpdump"},"openvpn server not showing traffic using tcpdump")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8ac6cabb.228dfcb8.js b/assets/js/8ac6cabb.6a67dbf2.js similarity index 99% rename from assets/js/8ac6cabb.228dfcb8.js rename to assets/js/8ac6cabb.6a67dbf2.js index e3d88a39f..b5a1ce903 100644 --- a/assets/js/8ac6cabb.228dfcb8.js +++ b/assets/js/8ac6cabb.6a67dbf2.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1821],{5680:(e,t,n)=>{n.d(t,{xA:()=>p,yg:()=>A});var r=n(6540);function l(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e){for(var t=1;t=0||(l[n]=e[n]);return l}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(l[n]=e[n])}return l}var u=r.createContext({}),c=function(e){var t=r.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},p=function(e){var t=c(e.components);return r.createElement(u.Provider,{value:t},e.children)},y="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},P=r.forwardRef((function(e,t){var n=e.components,l=e.mdxType,o=e.originalType,u=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),y=c(n),P=l,A=y["".concat(u,".").concat(P)]||y[P]||s[P]||o;return n?r.createElement(A,a(a({ref:t},p),{},{components:n})):r.createElement(A,a({ref:t},p))}));function A(e,t){var n=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var o=n.length,a=new Array(o);a[0]=P;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i[y]="string"==typeof e?e:l,a[1]=i;for(var c=2;c{n.r(t),n.d(t,{assets:()=>u,contentTitle:()=>a,default:()=>s,frontMatter:()=>o,metadata:()=>i,toc:()=>c});var r=n(8168),l=(n(6540),n(5680));const o={},a=void 0,i={unversionedId:"study/think/\u67b6\u6784/CAP\u7406\u8bba",id:"study/think/\u67b6\u6784/CAP\u7406\u8bba",title:"CAP\u7406\u8bba",description:"\u7406\u8bba\u77e5\u8bc6",source:"@site/docs/study/think/\u67b6\u6784/CAP\u7406\u8bba.md",sourceDirName:"study/think/\u67b6\u6784",slug:"/study/think/\u67b6\u6784/CAP\u7406\u8bba",permalink:"/docs/study/think/\u67b6\u6784/CAP\u7406\u8bba",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u67b6\u6784",permalink:"/docs/study/think/\u67b6\u6784/"},next:{title:"\u5f02\u5730\u591a\u6d3b\u67b6\u6784",permalink:"/docs/study/think/\u67b6\u6784/\u5f02\u5730\u591a\u6d3b\u67b6\u6784"}},u={},c=[{value:"\u7406\u8bba\u77e5\u8bc6",id:"\u7406\u8bba\u77e5\u8bc6",level:3},{value:"\u4e2a\u4eba\u7406\u89e3",id:"\u4e2a\u4eba\u7406\u89e3",level:3}],p={toc:c},y="wrapper";function s(e){let{components:t,...n}=e;return(0,l.yg)(y,(0,r.A)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,l.yg)("h3",{id:"\u7406\u8bba\u77e5\u8bc6"},"\u7406\u8bba\u77e5\u8bc6"),(0,l.yg)("p",null,"\u5728\u4e00\u4e2a\u5206\u5e03\u5f0f\u7cfb\u7edf\uff08\u6307\u4e92\u76f8\u8fde\u63a5\u5e76\u5171\u4eab\u6570\u636e\u7684\u8282\u70b9\u7684\u96c6\u5408\uff09\u4e2d\uff0c\u5f53\u6d89\u53ca\u8bfb\u5199\u64cd\u4f5c\u65f6\uff0c\u53ea\u80fd\u4fdd\u8bc1\u4e00\u81f4\u6027\uff08Consistence\uff09\u3001\u53ef\u7528\u6027\uff08Availability\uff09\u3001\u5206\u533a\u5bb9\u9519\u6027\uff08Partition Tolerance\uff09\u4e09\u8005\u4e2d\u7684\u4e24\u4e2a\uff0c\u53e6\u5916\u4e00\u4e2a\u5fc5\u987b\u88ab\u727a\u7272\u3002"),(0,l.yg)("p",null,"\u5206\u5e03\u5f0f\u7cfb\u7edf\u5e76\u4e0d\u4e00\u5b9a\u4f1a\u4e92\u8054\u548c\u5171\u4eab\u6570\u636e\u3002\u6700\u7b80\u5355\u7684\u4f8b\u5982 Memcache \u7684\u96c6\u7fa4\uff0c\u76f8\u4e92\u4e4b\u95f4\u5c31\u6ca1\u6709\u8fde\u63a5\u548c\u5171\u4eab\u6570\u636e\uff0c\u56e0\u6b64 Memcache \u96c6\u7fa4\u8fd9\u7c7b\u5206\u5e03\u5f0f\u7cfb\u7edf\u5c31\u4e0d\u7b26\u5408 CAP \u7406\u8bba\u63a2\u8ba8\u7684\u5bf9\u8c61\uff1b\u800c MySQL \u96c6\u7fa4\u5c31\u662f\u4e92\u8054\u548c\u8fdb\u884c\u6570\u636e\u590d\u5236\u7684\uff0c\u56e0\u6b64\u662f CAP \u7406\u8bba\u63a2\u8ba8\u7684\u5bf9\u8c61\u3002"),(0,l.yg)("p",null,"CAP \u5173\u6ce8\u7684\u662f\u5bf9\u6570\u636e\u7684\u8bfb\u5199\u64cd\u4f5c\uff0c\u800c\u4e0d\u662f\u5206\u5e03\u5f0f\u7cfb\u7edf\u7684\u6240\u6709\u529f\u80fd\u3002\u4f8b\u5982\uff0cZooKeeper \u7684\u9009\u4e3e\u673a\u5236\u5c31\u4e0d\u662f CAP \u63a2\u8ba8\u7684\u5bf9\u8c61\u3002"),(0,l.yg)("p",null,"\u4e00\u81f4\u6027\uff08Consistency\uff09\uff0c\u5bf9\u67d0\u4e2a\u6307\u5b9a\u7684\u5ba2\u6237\u7aef\u6765\u8bf4\uff0c\u8bfb\u64cd\u4f5c\u4fdd\u8bc1\u80fd\u591f\u8fd4\u56de\u6700\u65b0\u7684\u5199\u64cd\u4f5c\u7ed3\u679c\u3002"),(0,l.yg)("p",null,"\u53ef\u7528\u6027\uff08Availability\uff09\uff0c\u975e\u6545\u969c\u7684\u8282\u70b9\u5728\u5408\u7406\u7684\u65f6\u95f4\u5185\u8fd4\u56de\u5408\u7406\u7684\u54cd\u5e94\uff08\u4e0d\u662f\u9519\u8bef\u548c\u8d85\u65f6\u7684\u54cd\u5e94\uff09\u3002"),(0,l.yg)("p",null,"\u5206\u533a\u5bb9\u5fcd\u6027\uff08Partition Tolerance\uff09\uff0c\u5f53\u51fa\u73b0\u7f51\u7edc\u5206\u533a\u540e\uff0c\u7cfb\u7edf\u80fd\u591f\u7ee7\u7eed\u201c\u5c65\u884c\u804c\u8d23\u201d\u3002"),(0,l.yg)("p",null,"\u867d\u7136 CAP \u7406\u8bba\u5b9a\u4e49\u662f\u4e09\u4e2a\u8981\u7d20\u4e2d\u53ea\u80fd\u53d6\u4e24\u4e2a\uff0c\u4f46\u653e\u5230\u5206\u5e03\u5f0f\u73af\u5883\u4e0b\u6765\u601d\u8003\uff0c\u6211\u4eec\u4f1a\u53d1\u73b0\u5fc5\u987b\u9009\u62e9 P\uff08\u5206\u533a\u5bb9\u5fcd\uff09\u8981\u7d20\uff0c\u56e0\u4e3a\u7f51\u7edc\u672c\u8eab\u65e0\u6cd5\u505a\u5230 100% \u53ef\u9760\uff0c\u6709\u53ef\u80fd\u51fa\u6545\u969c\uff0c\u6240\u4ee5\u5206\u533a\u662f\u4e00\u4e2a\u5fc5\u7136\u7684\u73b0\u8c61\u3002\u5982\u679c\u6211\u4eec\u9009\u62e9\u4e86 CA \u800c\u653e\u5f03\u4e86 P\uff0c\u90a3\u4e48\u5f53\u53d1\u751f\u5206\u533a\u73b0\u8c61\u65f6\uff0c\u4e3a\u4e86\u4fdd\u8bc1 C\uff0c\u7cfb\u7edf\u9700\u8981\u7981\u6b62\u5199\u5165\uff0c\u5f53\u6709\u5199\u5165\u8bf7\u6c42\u65f6\uff0c\u7cfb\u7edf\u8fd4\u56de error\uff08\u4f8b\u5982\uff0c\u5f53\u524d\u7cfb\u7edf\u4e0d\u5141\u8bb8\u5199\u5165\uff09\uff0c\u8fd9\u53c8\u548c A \u51b2\u7a81\u4e86\uff0c\u56e0\u4e3a A \u8981\u6c42\u8fd4\u56de no error \u548c no timeout\u3002\u56e0\u6b64\uff0c\u5206\u5e03\u5f0f\u7cfb\u7edf\u7406\u8bba\u4e0a\u4e0d\u53ef\u80fd\u9009\u62e9 CA \u67b6\u6784\uff0c\u53ea\u80fd\u9009\u62e9 CP \u6216\u8005 AP \u67b6\u6784\u3002"),(0,l.yg)("p",null," Paxos\u7b97\u6cd5\u672c\u8eab\u80fd\u63d0\u4f9b\u7684\u662f\uff0c\u53ef\u9760\u7684\u6700\u7ec8\u4e00\u81f4\u6027\u4fdd\u8bc1\u3002\u5982\u6709\u8db3\u591f\u7684\u9694\u79bb\u6027\u63aa\u65bd\uff0c\u4e2d\u95f4\u72b6\u6001\u7684\u65e0\u6cd5\u88ab\u5ba2\u6237\u7aef\u8bfb\u53d6\uff0c\u5219\u53ef\u4ee5\u8fbe\u5230\u5f3a\u4e00\u81f4\u6027\uff0c\u8fd9\u79cd\u5c5e\u4e8eCP\u67b6\u6784\u3002\u5176\u5b83\u60c5\u51b5\uff0c\u5c31\u662fAP\u67b6\u6784\u3002 "),(0,l.yg)("p",null,"CAP\u5b9a\u7406\u5b58\u5728\u4e0d\u5c11\u5751\u70b9\uff0c\u7406\u89e3\u8d77\u6765\u5f88\u662f\u4ee4\u4eba\u8d39\u89e3\u3002\n1\u3001\u9002\u7528\u573a\u666f\u3002\u5206\u5e03\u5f0f\u7cfb\u7edf\u6709\u5f88\u591a\u7c7b\u578b\uff0c\u6709\u5f02\u6784\u7684\uff0c\u6bd4\u5982\u8282\u70b9\u4e4b\u95f4\u662f\u4e0a\u4e0b\u6e38\u4f9d\u8d56\u7684\u5173\u7cfb\uff0c\u6709\u540c\u6784\u7684\uff0c\u6bd4\u5982\u5206\u533a/\u5206\u7247\u578b\u7684\u3001\u526f\u672c\u578b\u7684\uff08\u4e3b\u4ece\u3001\u591a\u4e3b\uff09\u3002CAP\u5b9a\u7406\u7684\u9002\u7528\u573a\u666f\u662f\u526f\u672c\u578b\u7684\u8fd9\u79cd\u3002\n2\u3001\u4e00\u81f4\u6027\u7684\u6982\u5ff5\uff0c\u4ece\u5f3a\u5230\u5f31\uff0c\u7ebf\u6027\u4e00\u81f4\u6027\u3001\u987a\u5e8f\u4e00\u81f4\u6027\u3001\u56e0\u679c\u4e00\u81f4\u6027\u3001\u5355\u8c03\u4e00\u81f4\u6027\u3001\u6700\u7ec8\u4e00\u81f4\u6027\uff0cCAP\u4e2d\u7684\u4e00\u81f4\u6027\u5e94\u8be5\u662f\u6307\u7ebf\u6027\u4e00\u81f4\u6027\u3002\n3\u3001CAP\u4e2d\u7684\u4e00\u81f4\u6027\uff0c\u4e0eACID\u4e2d\u7684\u4e00\u81f4\u6027\u7684\u533a\u522b\u3002\u4e8b\u52a1\u4e2d\u7684\u4e00\u81f4\u6027\uff0c\u662f\u6307\u6ee1\u8db3\u5b8c\u6574\u6027\u7ea6\u675f\u6761\u4ef6\uff0cCAP\u4e2d\u7684\u4e00\u81f4\u6027\uff0c\u662f\u6307\u8bfb\u5199\u4e00\u81f4\u6027\u3002\n4\u3001CAP\u4e2d\u7684\u53ef\u7528\u6027\uff0c\u4e0e\u6211\u4eec\u5e38\u8bf4\u7684\u9ad8\u53ef\u7528\u7684\u533a\u522b\u3002\u6bd4\u5982HBase\u3001MongoDB\u5c5e\u4e8eCP\u67b6\u6784\uff0cCassandra\u3001CounchDB\u5c5e\u4e8eAP\u7cfb\u7edf\uff0c\u80fd\u8bf4\u540e\u8005\u6bd4\u524d\u8005\u66f4\u9ad8\u53ef\u7528\u4e48\uff1f\u5e94\u8be5\u4e0d\u662f\u3002CAP\u4e2d\u7684\u53ef\u7528\u6027\uff0c\u662f\u6307\u5728\u67d0\u4e00\u6b21\u8bfb\u64cd\u4f5c\u4e2d\uff0c\u5373\u4fbf\u53d1\u73b0\u4e0d\u4e00\u81f4\uff0c\u4e5f\u8981\u8fd4\u56de\u54cd\u5e94\uff0c\u5373\u5728\u5408\u7406\u65f6\u95f4\u5185\u8fd4\u56de\u5408\u7406\u54cd\u5e94\u3002\u6211\u4eec\u5e38\u8bf4\u7684\u9ad8\u53ef\u7528\uff0c\u662f\u6307\u90e8\u5206\u5b9e\u4f8b\u6302\u4e86\uff0c\u80fd\u81ea\u52a8\u6458\u9664\uff0c\u5e76\u7531\u5176\u5b83\u5b9e\u4f8b\u7ee7\u7eed\u63d0\u4f9b\u670d\u52a1\uff0c\u5173\u952e\u662f\u5197\u4f59\u3002\n5\u3001\u54ea\u4e9b\u60c5\u51b5\u5c5e\u4e8e\u7f51\u7edc\u5206\u533a\u3002\u7f51\u7edc\u6545\u969c\u9020\u6210\u7684\u5206\u533a\uff0c\u5c5e\u4e8e\u3002\u8282\u70b9\u5e94\u7528\u51fa\u73b0\u95ee\u9898\u5bfc\u81f4\u8d85\u65f6\uff0c\u5c5e\u4e8e\u3002\u8282\u70b9\u5b95\u673a\u6216\u786c\u4ef6\u6545\u969c\uff0c\u4e0d\u5c5e\u4e8e\u3002"),(0,l.yg)("p",null,"CAP \u5173\u6ce8\u7684\u7c92\u5ea6\u662f\u6570\u636e\uff0c\u800c\u4e0d\u662f\u6574\u4e2a\u7cfb\u7edf\u3002\u6240\u4ee5\u5728 CAP \u7406\u8bba\u843d\u5730\u5b9e\u8df5\u65f6\uff0c\u6211\u4eec\u9700\u8981\u5c06\u7cfb\u7edf\u5185\u7684\u6570\u636e\u6309\u7167\u4e0d\u540c\u7684\u5e94\u7528\u573a\u666f\u548c\u8981\u6c42\u8fdb\u884c\u5206\u7c7b\uff0c\u6bcf\u7c7b\u6570\u636e\u9009\u62e9\u4e0d\u540c\u7684\u7b56\u7565\uff08CP \u8fd8\u662f AP\uff09\uff0c\u800c\u4e0d\u662f\u76f4\u63a5\u9650\u5b9a\u6574\u4e2a\u7cfb\u7edf\u6240\u6709\u6570\u636e\u90fd\u662f\u540c\u4e00\u7b56\u7565\u3002"),(0,l.yg)("p",null,"CAP \u662f\u5ffd\u7565\u7f51\u7edc\u5ef6\u8fdf\u7684\u3002"),(0,l.yg)("p",null,"\u6b63\u5e38\u8fd0\u884c\u60c5\u51b5\u4e0b\uff0c\u4e0d\u5b58\u5728 CP \u548c AP \u7684\u9009\u62e9\uff0c\u53ef\u4ee5\u540c\u65f6\u6ee1\u8db3 CA\u3002"),(0,l.yg)("p",null,"\u653e\u5f03\u5e76\u4e0d\u7b49\u4e8e\u4ec0\u4e48\u90fd\u4e0d\u505a\uff0c\u9700\u8981\u4e3a\u5206\u533a\u6062\u590d\u540e\u505a\u51c6\u5907\u3002"),(0,l.yg)("p",null,"ACID \u4e2d\u7684 A\uff08Atomicity\uff09\u548c CAP \u4e2d\u7684 A\uff08Availability\uff09\u610f\u4e49\u5b8c\u5168\u4e0d\u540c\uff0c\u800c ACID \u4e2d\u7684 C \u548c CAP \u4e2d\u7684 C \u540d\u79f0\u867d\u7136\u90fd\u662f\u4e00\u81f4\u6027\uff0c\u4f46\u542b\u4e49\u4e5f\u5b8c\u5168\u4e0d\u4e00\u6837\u3002ACID \u4e2d\u7684 C \u662f\u6307\u6570\u636e\u5e93\u7684\u6570\u636e\u5b8c\u6574\u6027\uff0c\u800c CAP \u4e2d\u7684 C \u662f\u6307\u5206\u5e03\u5f0f\u8282\u70b9\u4e2d\u7684\u6570\u636e\u4e00\u81f4\u6027\u3002\u518d\u7ed3\u5408 ACID \u7684\u5e94\u7528\u573a\u666f\u662f\u6570\u636e\u5e93\u4e8b\u52a1\uff0cCAP \u5173\u6ce8\u7684\u662f\u5206\u5e03\u5f0f\u7cfb\u7edf\u6570\u636e\u8bfb\u5199\u8fd9\u4e2a\u5dee\u5f02\u70b9\u6765\u770b\uff0c\u5176\u5b9e CAP \u548c ACID \u7684\u5bf9\u6bd4\u5c31\u7c7b\u4f3c\u5173\u516c\u6218\u79e6\u743c\uff0c\u867d\u7136\u5173\u516c\u548c\u79e6\u743c\u90fd\u662f\u6b66\u5c06\uff0c\u4f46\u5176\u5b9e\u6ca1\u6709\u592a\u591a\u53ef\u6bd4\u6027\u3002"),(0,l.yg)("p",null,"BASE \u662f\u6307\u57fa\u672c\u53ef\u7528\uff08Basically Available\uff09\u3001\u8f6f\u72b6\u6001\uff08 Soft State\uff09\u3001\u6700\u7ec8\u4e00\u81f4\u6027\uff08 Eventual Consistency\uff09\uff0c\u6838\u5fc3\u601d\u60f3\u662f\u5373\u4f7f\u65e0\u6cd5\u505a\u5230\u5f3a\u4e00\u81f4\u6027\uff08CAP \u7684\u4e00\u81f4\u6027\u5c31\u662f\u5f3a\u4e00\u81f4\u6027\uff09\uff0c\u4f46\u5e94\u7528\u53ef\u4ee5\u91c7\u7528\u9002\u5408\u7684\u65b9\u5f0f\u8fbe\u5230\u6700\u7ec8\u4e00\u81f4\u6027\u3002"),(0,l.yg)("p",null,"BASE \u7406\u8bba\u672c\u8d28\u4e0a\u662f\u5bf9 CAP \u7684\u5ef6\u4f38\u548c\u8865\u5145\uff0c\u66f4\u5177\u4f53\u5730\u8bf4\uff0c\u662f\u5bf9 CAP \u4e2d AP \u65b9\u6848\u7684\u4e00\u4e2a\u8865\u5145\u3002CAP \u7406\u8bba\u662f\u5ffd\u7565\u5ef6\u65f6\u7684\uff0c\u800c\u5b9e\u9645\u5e94\u7528\u4e2d\u5ef6\u65f6\u662f\u65e0\u6cd5\u907f\u514d\u7684\u3002AP \u65b9\u6848\u4e2d\u727a\u7272\u4e00\u81f4\u6027\u53ea\u662f\u6307\u5206\u533a\u671f\u95f4\uff0c\u800c\u4e0d\u662f\u6c38\u8fdc\u653e\u5f03\u4e00\u81f4\u6027\u3002"),(0,l.yg)("h3",{id:"\u4e2a\u4eba\u7406\u89e3"},"\u4e2a\u4eba\u7406\u89e3"),(0,l.yg)("p",null,"\u8bbe\u8ba1\u5206\u5e03\u5f0f\u7cfb\u7edf\u7684\u4e24\u5927\u521d\u8877\uff1a\u6a2a\u5411\u6269\u5c55\uff08scalability\uff09\u548c\u9ad8\u53ef\u7528\u6027\uff08availability\uff09\u3002\u201c\u6a2a\u5411\u6269\u5c55\u201d\u662f\u4e3a\u4e86\u89e3\u51b3\u5355\u70b9\u74f6\u9888\u95ee\u9898\uff0c\u8fdb\u800c\u4fdd\u8bc1\u9ad8\u5e76\u53d1\u91cf\u4e0b\u7684\u300c\u53ef\u7528\u6027\u300d\uff1b\u201c\u9ad8\u53ef\u7528\u6027\u201d\u662f\u4e3a\u4e86\u89e3\u51b3\u5355\u70b9\u6545\u969c\uff08SPOF\uff09\u95ee\u9898\uff0c\u8fdb\u800c\u4fdd\u8bc1\u90e8\u5206\u8282\u70b9\u6545\u969c\u65f6\u7684\u300c\u53ef\u7528\u6027\u300d\u3002\u7531\u6b64\u53ef\u4ee5\u770b\u51fa\uff0c\u5206\u5e03\u5f0f\u7cfb\u7edf\u7684\u6838\u5fc3\u8bc9\u6c42\u5c31\u662f\u300c\u53ef\u7528\u6027\u300d\u3002\u8fd9\u4e2a\u300c\u53ef\u7528\u6027\u300d\u6b63\u662f CAP \u4e2d\u7684 A\uff1a\u7528\u6237\u8bbf\u95ee\u7cfb\u7edf\u65f6\uff0c\u53ef\u4ee5\u5728\u5408\u7406\u7684\u65f6\u95f4\u5185\u5f97\u5230\u5408\u7406\u7684\u54cd\u5e94\u3002 "),(0,l.yg)("p",null,"\u4e3a\u4e86\u4fdd\u8bc1\u300c\u53ef\u7528\u6027\u300d\uff0c\u4e00\u4e2a\u5206\u5e03\u5f0f\u7cfb\u7edf\u901a\u5e38\u7531\u591a\u4e2a\u8282\u70b9\u7ec4\u6210\u3002\u8fd9\u4e9b\u8282\u70b9\u5404\u81ea\u7ef4\u62a4\u4e00\u4efd\u6570\u636e\uff0c\u4f46\u662f\u4e0d\u7ba1\u7528\u6237\u8bbf\u95ee\u5230\u54ea\u4e2a\u8282\u70b9\uff0c\u539f\u5219\u4e0a\u90fd\u5e94\u8be5\u8bfb\u53d6\u5230\u76f8\u540c\u7684\u6570\u636e\u3002\u4e3a\u4e86\u8fbe\u5230\u8fd9\u4e2a\u6548\u679c\uff0c\u4e00\u4e2a\u8282\u70b9\u6536\u5230\u5199\u5165\u8bf7\u6c42\u66f4\u65b0\u81ea\u5df1\u7684\u6570\u636e\u540e\uff0c\u5fc5\u987b\u5c06\u6570\u636e\u540c\u6b65\u5230\u5176\u4ed6\u8282\u70b9\uff0c\u4ee5\u4fdd\u8bc1\u5404\u4e2a\u8282\u70b9\u7684\u6570\u636e\u300c\u4e00\u81f4\u6027\u300d\u3002\u8fd9\u4e2a\u300c\u4e00\u81f4\u6027\u300d\u6b63\u662f CAP \u4e2d\u7684 C\uff1a\u7528\u6237\u8bbf\u95ee\u7cfb\u7edf\u65f6\uff0c\u53ef\u4ee5\u8bfb\u53d6\u5230\u6700\u8fd1\u5199\u5165\u7684\u6570\u636e\u3002 "),(0,l.yg)("p",null,"\u9700\u8981\u6ce8\u610f\u7684\u662f\uff1aCAP \u5e76\u6ca1\u6709\u8003\u8651\u6570\u636e\u540c\u6b65\u7684\u8017\u65f6\uff0c\u6240\u4ee5\u73b0\u5b9e\u4e2d\u7684\u5206\u5e03\u5f0f\u7cfb\u7edf\uff0c\u7406\u8bba\u4e0a\u65e0\u6cd5\u4fdd\u8bc1\u4efb\u4f55\u65f6\u523b\u7684\u7edd\u5bf9\u300c\u4e00\u81f4\u6027\u300d\uff1b\u4e0d\u540c\u4e1a\u52a1\u7cfb\u7edf\u5bf9\u4e0a\u8ff0\u8017\u65f6\u7684\u654f\u611f\u5ea6\u4e0d\u540c\u3002 "),(0,l.yg)("p",null,"\u5206\u5e03\u5f0f\u7cfb\u7edf\u4e2d\uff0c\u8282\u70b9\u4e4b\u95f4\u7684\u6570\u636e\u540c\u6b65\u662f\u57fa\u4e8e\u7f51\u7edc\u7684\u3002\u7531\u4e8e\u7f51\u7edc\u672c\u8eab\u56fa\u6709\u7684\u4e0d\u53ef\u9760\u5c5e\u6027\uff0c\u6781\u7aef\u60c5\u51b5\u4e0b\u4f1a\u51fa\u73b0\u7f51\u7edc\u4e0d\u53ef\u7528\u7684\u60c5\u51b5\uff0c\u8fdb\u800c\u5c06\u7f51\u7edc\u4e24\u7aef\u7684\u8282\u70b9\u5b64\u7acb\u5f00\u6765\uff0c\u8fd9\u5c31\u662f\u6240\u8c13\u7684\u201c\u7f51\u7edc\u5206\u533a\u201d\u73b0\u8c61\u3002\u201c\u7f51\u7edc\u5206\u533a\u201d\u7406\u8bba\u4e0a\u662f\u65e0\u6cd5\u907f\u514d\u7684\uff0c\u867d\u7136\u5b9e\u9645\u53d1\u751f\u7684\u6982\u7387\u8f83\u4f4e\u3001\u65f6\u957f\u8f83\u77ed\u3002\u6ca1\u6709\u53d1\u751f\u201c\u7f51\u7edc\u5206\u533a\u201d\u65f6\uff0c\u7cfb\u7edf\u53ef\u4ee5\u505a\u5230\u540c\u65f6\u4fdd\u8bc1\u300c\u4e00\u81f4\u6027\u300d\u548c\u300c\u53ef\u7528\u6027\u300d\u3002 "),(0,l.yg)("p",null,"\u53d1\u751f\u201c\u7f51\u7edc\u5206\u533a\u201d\u65f6\uff0c\u7cfb\u7edf\u4e2d\u591a\u4e2a\u8282\u70b9\u7684\u6570\u636e\u4e00\u5b9a\u662f\u4e0d\u4e00\u81f4\u7684\uff0c\u4f46\u662f\u53ef\u4ee5\u9009\u62e9\u5bf9\u7528\u6237\u8868\u73b0\u51fa\u300c\u4e00\u81f4\u6027\u300d\uff0c\u4ee3\u4ef7\u662f\u727a\u7272\u300c\u53ef\u7528\u6027\u300d\uff1a\u5c06\u672a\u80fd\u540c\u6b65\u5f97\u5230\u65b0\u6570\u636e\u7684\u90e8\u5206\u8282\u70b9\u7f6e\u4e3a\u201c\u4e0d\u53ef\u7528\u72b6\u6001\u201d\uff0c\u8bbf\u95ee\u5230\u8fd9\u4e9b\u8282\u70b9\u7684\u7528\u6237\u663e\u7136\u611f\u77e5\u5230\u7cfb\u7edf\u662f\u4e0d\u53ef\u7528\u7684\u3002\u53d1\u751f\u201c\u7f51\u7edc\u5206\u533a\u201d\u65f6\uff0c\u7cfb\u7edf\u4e5f\u53ef\u4ee5\u9009\u62e9\u300c\u53ef\u7528\u6027\u300d\uff0c\u6b64\u65f6\u7cfb\u7edf\u4e2d\u5404\u4e2a\u8282\u70b9\u90fd\u662f\u53ef\u7528\u7684\uff0c\u53ea\u662f\u8fd4\u56de\u7ed9\u7528\u6237\u7684\u6570\u636e\u662f\u4e0d\u4e00\u81f4\u7684\u3002\u8fd9\u91cc\u7684\u9009\u62e9\uff0c\u5c31\u662f CAP \u4e2d\u7684 P\u3002 "),(0,l.yg)("p",null,"\u5206\u5e03\u5f0f\u7cfb\u7edf\u7406\u8bba\u4e0a\u4e00\u5b9a\u4f1a\u5b58\u5728 P\uff0c\u6240\u4ee5\u7406\u8bba\u4e0a\u53ea\u80fd\u505a\u5230 CP \u6216 AP\u3002\u5982\u679c\u5957\u7528 CAP \u4e2d\u79bb\u6563\u7684 C/A/P \u7684\u6982\u5ff5\uff0c\u7406\u8bba\u4e0a\u6ca1\u6709 P \u7684\u53ea\u53ef\u80fd\u662f\u5355\u70b9\uff08\u5b50\uff09\u7cfb\u7edf\uff0c\u6240\u4ee5\u7406\u8bba\u4e0a\u53ef\u4ee5\u505a\u5230 CA\u3002\u4f46\u662f\u5355\u70b9\uff08\u5b50\uff09\u7cfb\u7edf\u5e76\u4e0d\u662f\u5206\u5e03\u5f0f\u7cfb\u7edf\uff0c\u6240\u4ee5\u5176\u5b9e\u5e76\u4e0d\u5728 CAP \u7406\u8bba\u7684\u63cf\u8ff0\u8303\u56f4\u5185\u3002"))}s.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1821],{5680:(e,t,n)=>{n.d(t,{xA:()=>p,yg:()=>A});var r=n(6540);function l(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e){for(var t=1;t=0||(l[n]=e[n]);return l}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(l[n]=e[n])}return l}var u=r.createContext({}),c=function(e){var t=r.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},p=function(e){var t=c(e.components);return r.createElement(u.Provider,{value:t},e.children)},y="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},P=r.forwardRef((function(e,t){var n=e.components,l=e.mdxType,o=e.originalType,u=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),y=c(n),P=l,A=y["".concat(u,".").concat(P)]||y[P]||s[P]||o;return n?r.createElement(A,a(a({ref:t},p),{},{components:n})):r.createElement(A,a({ref:t},p))}));function A(e,t){var n=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var o=n.length,a=new Array(o);a[0]=P;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i[y]="string"==typeof e?e:l,a[1]=i;for(var c=2;c{n.r(t),n.d(t,{assets:()=>u,contentTitle:()=>a,default:()=>s,frontMatter:()=>o,metadata:()=>i,toc:()=>c});var r=n(8168),l=(n(6540),n(5680));const o={},a=void 0,i={unversionedId:"study/think/\u67b6\u6784/CAP\u7406\u8bba",id:"study/think/\u67b6\u6784/CAP\u7406\u8bba",title:"CAP\u7406\u8bba",description:"\u7406\u8bba\u77e5\u8bc6",source:"@site/docs/study/think/\u67b6\u6784/CAP\u7406\u8bba.md",sourceDirName:"study/think/\u67b6\u6784",slug:"/study/think/\u67b6\u6784/CAP\u7406\u8bba",permalink:"/docs/study/think/\u67b6\u6784/CAP\u7406\u8bba",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u67b6\u6784",permalink:"/docs/study/think/\u67b6\u6784/"},next:{title:"\u5f02\u5730\u591a\u6d3b\u67b6\u6784",permalink:"/docs/study/think/\u67b6\u6784/\u5f02\u5730\u591a\u6d3b\u67b6\u6784"}},u={},c=[{value:"\u7406\u8bba\u77e5\u8bc6",id:"\u7406\u8bba\u77e5\u8bc6",level:3},{value:"\u4e2a\u4eba\u7406\u89e3",id:"\u4e2a\u4eba\u7406\u89e3",level:3}],p={toc:c},y="wrapper";function s(e){let{components:t,...n}=e;return(0,l.yg)(y,(0,r.A)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,l.yg)("h3",{id:"\u7406\u8bba\u77e5\u8bc6"},"\u7406\u8bba\u77e5\u8bc6"),(0,l.yg)("p",null,"\u5728\u4e00\u4e2a\u5206\u5e03\u5f0f\u7cfb\u7edf\uff08\u6307\u4e92\u76f8\u8fde\u63a5\u5e76\u5171\u4eab\u6570\u636e\u7684\u8282\u70b9\u7684\u96c6\u5408\uff09\u4e2d\uff0c\u5f53\u6d89\u53ca\u8bfb\u5199\u64cd\u4f5c\u65f6\uff0c\u53ea\u80fd\u4fdd\u8bc1\u4e00\u81f4\u6027\uff08Consistence\uff09\u3001\u53ef\u7528\u6027\uff08Availability\uff09\u3001\u5206\u533a\u5bb9\u9519\u6027\uff08Partition Tolerance\uff09\u4e09\u8005\u4e2d\u7684\u4e24\u4e2a\uff0c\u53e6\u5916\u4e00\u4e2a\u5fc5\u987b\u88ab\u727a\u7272\u3002"),(0,l.yg)("p",null,"\u5206\u5e03\u5f0f\u7cfb\u7edf\u5e76\u4e0d\u4e00\u5b9a\u4f1a\u4e92\u8054\u548c\u5171\u4eab\u6570\u636e\u3002\u6700\u7b80\u5355\u7684\u4f8b\u5982 Memcache \u7684\u96c6\u7fa4\uff0c\u76f8\u4e92\u4e4b\u95f4\u5c31\u6ca1\u6709\u8fde\u63a5\u548c\u5171\u4eab\u6570\u636e\uff0c\u56e0\u6b64 Memcache \u96c6\u7fa4\u8fd9\u7c7b\u5206\u5e03\u5f0f\u7cfb\u7edf\u5c31\u4e0d\u7b26\u5408 CAP \u7406\u8bba\u63a2\u8ba8\u7684\u5bf9\u8c61\uff1b\u800c MySQL \u96c6\u7fa4\u5c31\u662f\u4e92\u8054\u548c\u8fdb\u884c\u6570\u636e\u590d\u5236\u7684\uff0c\u56e0\u6b64\u662f CAP \u7406\u8bba\u63a2\u8ba8\u7684\u5bf9\u8c61\u3002"),(0,l.yg)("p",null,"CAP \u5173\u6ce8\u7684\u662f\u5bf9\u6570\u636e\u7684\u8bfb\u5199\u64cd\u4f5c\uff0c\u800c\u4e0d\u662f\u5206\u5e03\u5f0f\u7cfb\u7edf\u7684\u6240\u6709\u529f\u80fd\u3002\u4f8b\u5982\uff0cZooKeeper \u7684\u9009\u4e3e\u673a\u5236\u5c31\u4e0d\u662f CAP \u63a2\u8ba8\u7684\u5bf9\u8c61\u3002"),(0,l.yg)("p",null,"\u4e00\u81f4\u6027\uff08Consistency\uff09\uff0c\u5bf9\u67d0\u4e2a\u6307\u5b9a\u7684\u5ba2\u6237\u7aef\u6765\u8bf4\uff0c\u8bfb\u64cd\u4f5c\u4fdd\u8bc1\u80fd\u591f\u8fd4\u56de\u6700\u65b0\u7684\u5199\u64cd\u4f5c\u7ed3\u679c\u3002"),(0,l.yg)("p",null,"\u53ef\u7528\u6027\uff08Availability\uff09\uff0c\u975e\u6545\u969c\u7684\u8282\u70b9\u5728\u5408\u7406\u7684\u65f6\u95f4\u5185\u8fd4\u56de\u5408\u7406\u7684\u54cd\u5e94\uff08\u4e0d\u662f\u9519\u8bef\u548c\u8d85\u65f6\u7684\u54cd\u5e94\uff09\u3002"),(0,l.yg)("p",null,"\u5206\u533a\u5bb9\u5fcd\u6027\uff08Partition Tolerance\uff09\uff0c\u5f53\u51fa\u73b0\u7f51\u7edc\u5206\u533a\u540e\uff0c\u7cfb\u7edf\u80fd\u591f\u7ee7\u7eed\u201c\u5c65\u884c\u804c\u8d23\u201d\u3002"),(0,l.yg)("p",null,"\u867d\u7136 CAP \u7406\u8bba\u5b9a\u4e49\u662f\u4e09\u4e2a\u8981\u7d20\u4e2d\u53ea\u80fd\u53d6\u4e24\u4e2a\uff0c\u4f46\u653e\u5230\u5206\u5e03\u5f0f\u73af\u5883\u4e0b\u6765\u601d\u8003\uff0c\u6211\u4eec\u4f1a\u53d1\u73b0\u5fc5\u987b\u9009\u62e9 P\uff08\u5206\u533a\u5bb9\u5fcd\uff09\u8981\u7d20\uff0c\u56e0\u4e3a\u7f51\u7edc\u672c\u8eab\u65e0\u6cd5\u505a\u5230 100% \u53ef\u9760\uff0c\u6709\u53ef\u80fd\u51fa\u6545\u969c\uff0c\u6240\u4ee5\u5206\u533a\u662f\u4e00\u4e2a\u5fc5\u7136\u7684\u73b0\u8c61\u3002\u5982\u679c\u6211\u4eec\u9009\u62e9\u4e86 CA \u800c\u653e\u5f03\u4e86 P\uff0c\u90a3\u4e48\u5f53\u53d1\u751f\u5206\u533a\u73b0\u8c61\u65f6\uff0c\u4e3a\u4e86\u4fdd\u8bc1 C\uff0c\u7cfb\u7edf\u9700\u8981\u7981\u6b62\u5199\u5165\uff0c\u5f53\u6709\u5199\u5165\u8bf7\u6c42\u65f6\uff0c\u7cfb\u7edf\u8fd4\u56de error\uff08\u4f8b\u5982\uff0c\u5f53\u524d\u7cfb\u7edf\u4e0d\u5141\u8bb8\u5199\u5165\uff09\uff0c\u8fd9\u53c8\u548c A \u51b2\u7a81\u4e86\uff0c\u56e0\u4e3a A \u8981\u6c42\u8fd4\u56de no error \u548c no timeout\u3002\u56e0\u6b64\uff0c\u5206\u5e03\u5f0f\u7cfb\u7edf\u7406\u8bba\u4e0a\u4e0d\u53ef\u80fd\u9009\u62e9 CA \u67b6\u6784\uff0c\u53ea\u80fd\u9009\u62e9 CP \u6216\u8005 AP \u67b6\u6784\u3002"),(0,l.yg)("p",null," Paxos\u7b97\u6cd5\u672c\u8eab\u80fd\u63d0\u4f9b\u7684\u662f\uff0c\u53ef\u9760\u7684\u6700\u7ec8\u4e00\u81f4\u6027\u4fdd\u8bc1\u3002\u5982\u6709\u8db3\u591f\u7684\u9694\u79bb\u6027\u63aa\u65bd\uff0c\u4e2d\u95f4\u72b6\u6001\u7684\u65e0\u6cd5\u88ab\u5ba2\u6237\u7aef\u8bfb\u53d6\uff0c\u5219\u53ef\u4ee5\u8fbe\u5230\u5f3a\u4e00\u81f4\u6027\uff0c\u8fd9\u79cd\u5c5e\u4e8eCP\u67b6\u6784\u3002\u5176\u5b83\u60c5\u51b5\uff0c\u5c31\u662fAP\u67b6\u6784\u3002 "),(0,l.yg)("p",null,"CAP\u5b9a\u7406\u5b58\u5728\u4e0d\u5c11\u5751\u70b9\uff0c\u7406\u89e3\u8d77\u6765\u5f88\u662f\u4ee4\u4eba\u8d39\u89e3\u3002\n1\u3001\u9002\u7528\u573a\u666f\u3002\u5206\u5e03\u5f0f\u7cfb\u7edf\u6709\u5f88\u591a\u7c7b\u578b\uff0c\u6709\u5f02\u6784\u7684\uff0c\u6bd4\u5982\u8282\u70b9\u4e4b\u95f4\u662f\u4e0a\u4e0b\u6e38\u4f9d\u8d56\u7684\u5173\u7cfb\uff0c\u6709\u540c\u6784\u7684\uff0c\u6bd4\u5982\u5206\u533a/\u5206\u7247\u578b\u7684\u3001\u526f\u672c\u578b\u7684\uff08\u4e3b\u4ece\u3001\u591a\u4e3b\uff09\u3002CAP\u5b9a\u7406\u7684\u9002\u7528\u573a\u666f\u662f\u526f\u672c\u578b\u7684\u8fd9\u79cd\u3002\n2\u3001\u4e00\u81f4\u6027\u7684\u6982\u5ff5\uff0c\u4ece\u5f3a\u5230\u5f31\uff0c\u7ebf\u6027\u4e00\u81f4\u6027\u3001\u987a\u5e8f\u4e00\u81f4\u6027\u3001\u56e0\u679c\u4e00\u81f4\u6027\u3001\u5355\u8c03\u4e00\u81f4\u6027\u3001\u6700\u7ec8\u4e00\u81f4\u6027\uff0cCAP\u4e2d\u7684\u4e00\u81f4\u6027\u5e94\u8be5\u662f\u6307\u7ebf\u6027\u4e00\u81f4\u6027\u3002\n3\u3001CAP\u4e2d\u7684\u4e00\u81f4\u6027\uff0c\u4e0eACID\u4e2d\u7684\u4e00\u81f4\u6027\u7684\u533a\u522b\u3002\u4e8b\u52a1\u4e2d\u7684\u4e00\u81f4\u6027\uff0c\u662f\u6307\u6ee1\u8db3\u5b8c\u6574\u6027\u7ea6\u675f\u6761\u4ef6\uff0cCAP\u4e2d\u7684\u4e00\u81f4\u6027\uff0c\u662f\u6307\u8bfb\u5199\u4e00\u81f4\u6027\u3002\n4\u3001CAP\u4e2d\u7684\u53ef\u7528\u6027\uff0c\u4e0e\u6211\u4eec\u5e38\u8bf4\u7684\u9ad8\u53ef\u7528\u7684\u533a\u522b\u3002\u6bd4\u5982HBase\u3001MongoDB\u5c5e\u4e8eCP\u67b6\u6784\uff0cCassandra\u3001CounchDB\u5c5e\u4e8eAP\u7cfb\u7edf\uff0c\u80fd\u8bf4\u540e\u8005\u6bd4\u524d\u8005\u66f4\u9ad8\u53ef\u7528\u4e48\uff1f\u5e94\u8be5\u4e0d\u662f\u3002CAP\u4e2d\u7684\u53ef\u7528\u6027\uff0c\u662f\u6307\u5728\u67d0\u4e00\u6b21\u8bfb\u64cd\u4f5c\u4e2d\uff0c\u5373\u4fbf\u53d1\u73b0\u4e0d\u4e00\u81f4\uff0c\u4e5f\u8981\u8fd4\u56de\u54cd\u5e94\uff0c\u5373\u5728\u5408\u7406\u65f6\u95f4\u5185\u8fd4\u56de\u5408\u7406\u54cd\u5e94\u3002\u6211\u4eec\u5e38\u8bf4\u7684\u9ad8\u53ef\u7528\uff0c\u662f\u6307\u90e8\u5206\u5b9e\u4f8b\u6302\u4e86\uff0c\u80fd\u81ea\u52a8\u6458\u9664\uff0c\u5e76\u7531\u5176\u5b83\u5b9e\u4f8b\u7ee7\u7eed\u63d0\u4f9b\u670d\u52a1\uff0c\u5173\u952e\u662f\u5197\u4f59\u3002\n5\u3001\u54ea\u4e9b\u60c5\u51b5\u5c5e\u4e8e\u7f51\u7edc\u5206\u533a\u3002\u7f51\u7edc\u6545\u969c\u9020\u6210\u7684\u5206\u533a\uff0c\u5c5e\u4e8e\u3002\u8282\u70b9\u5e94\u7528\u51fa\u73b0\u95ee\u9898\u5bfc\u81f4\u8d85\u65f6\uff0c\u5c5e\u4e8e\u3002\u8282\u70b9\u5b95\u673a\u6216\u786c\u4ef6\u6545\u969c\uff0c\u4e0d\u5c5e\u4e8e\u3002"),(0,l.yg)("p",null,"CAP \u5173\u6ce8\u7684\u7c92\u5ea6\u662f\u6570\u636e\uff0c\u800c\u4e0d\u662f\u6574\u4e2a\u7cfb\u7edf\u3002\u6240\u4ee5\u5728 CAP \u7406\u8bba\u843d\u5730\u5b9e\u8df5\u65f6\uff0c\u6211\u4eec\u9700\u8981\u5c06\u7cfb\u7edf\u5185\u7684\u6570\u636e\u6309\u7167\u4e0d\u540c\u7684\u5e94\u7528\u573a\u666f\u548c\u8981\u6c42\u8fdb\u884c\u5206\u7c7b\uff0c\u6bcf\u7c7b\u6570\u636e\u9009\u62e9\u4e0d\u540c\u7684\u7b56\u7565\uff08CP \u8fd8\u662f AP\uff09\uff0c\u800c\u4e0d\u662f\u76f4\u63a5\u9650\u5b9a\u6574\u4e2a\u7cfb\u7edf\u6240\u6709\u6570\u636e\u90fd\u662f\u540c\u4e00\u7b56\u7565\u3002"),(0,l.yg)("p",null,"CAP \u662f\u5ffd\u7565\u7f51\u7edc\u5ef6\u8fdf\u7684\u3002"),(0,l.yg)("p",null,"\u6b63\u5e38\u8fd0\u884c\u60c5\u51b5\u4e0b\uff0c\u4e0d\u5b58\u5728 CP \u548c AP \u7684\u9009\u62e9\uff0c\u53ef\u4ee5\u540c\u65f6\u6ee1\u8db3 CA\u3002"),(0,l.yg)("p",null,"\u653e\u5f03\u5e76\u4e0d\u7b49\u4e8e\u4ec0\u4e48\u90fd\u4e0d\u505a\uff0c\u9700\u8981\u4e3a\u5206\u533a\u6062\u590d\u540e\u505a\u51c6\u5907\u3002"),(0,l.yg)("p",null,"ACID \u4e2d\u7684 A\uff08Atomicity\uff09\u548c CAP \u4e2d\u7684 A\uff08Availability\uff09\u610f\u4e49\u5b8c\u5168\u4e0d\u540c\uff0c\u800c ACID \u4e2d\u7684 C \u548c CAP \u4e2d\u7684 C \u540d\u79f0\u867d\u7136\u90fd\u662f\u4e00\u81f4\u6027\uff0c\u4f46\u542b\u4e49\u4e5f\u5b8c\u5168\u4e0d\u4e00\u6837\u3002ACID \u4e2d\u7684 C \u662f\u6307\u6570\u636e\u5e93\u7684\u6570\u636e\u5b8c\u6574\u6027\uff0c\u800c CAP \u4e2d\u7684 C \u662f\u6307\u5206\u5e03\u5f0f\u8282\u70b9\u4e2d\u7684\u6570\u636e\u4e00\u81f4\u6027\u3002\u518d\u7ed3\u5408 ACID \u7684\u5e94\u7528\u573a\u666f\u662f\u6570\u636e\u5e93\u4e8b\u52a1\uff0cCAP \u5173\u6ce8\u7684\u662f\u5206\u5e03\u5f0f\u7cfb\u7edf\u6570\u636e\u8bfb\u5199\u8fd9\u4e2a\u5dee\u5f02\u70b9\u6765\u770b\uff0c\u5176\u5b9e CAP \u548c ACID \u7684\u5bf9\u6bd4\u5c31\u7c7b\u4f3c\u5173\u516c\u6218\u79e6\u743c\uff0c\u867d\u7136\u5173\u516c\u548c\u79e6\u743c\u90fd\u662f\u6b66\u5c06\uff0c\u4f46\u5176\u5b9e\u6ca1\u6709\u592a\u591a\u53ef\u6bd4\u6027\u3002"),(0,l.yg)("p",null,"BASE \u662f\u6307\u57fa\u672c\u53ef\u7528\uff08Basically Available\uff09\u3001\u8f6f\u72b6\u6001\uff08 Soft State\uff09\u3001\u6700\u7ec8\u4e00\u81f4\u6027\uff08 Eventual Consistency\uff09\uff0c\u6838\u5fc3\u601d\u60f3\u662f\u5373\u4f7f\u65e0\u6cd5\u505a\u5230\u5f3a\u4e00\u81f4\u6027\uff08CAP \u7684\u4e00\u81f4\u6027\u5c31\u662f\u5f3a\u4e00\u81f4\u6027\uff09\uff0c\u4f46\u5e94\u7528\u53ef\u4ee5\u91c7\u7528\u9002\u5408\u7684\u65b9\u5f0f\u8fbe\u5230\u6700\u7ec8\u4e00\u81f4\u6027\u3002"),(0,l.yg)("p",null,"BASE \u7406\u8bba\u672c\u8d28\u4e0a\u662f\u5bf9 CAP \u7684\u5ef6\u4f38\u548c\u8865\u5145\uff0c\u66f4\u5177\u4f53\u5730\u8bf4\uff0c\u662f\u5bf9 CAP \u4e2d AP \u65b9\u6848\u7684\u4e00\u4e2a\u8865\u5145\u3002CAP \u7406\u8bba\u662f\u5ffd\u7565\u5ef6\u65f6\u7684\uff0c\u800c\u5b9e\u9645\u5e94\u7528\u4e2d\u5ef6\u65f6\u662f\u65e0\u6cd5\u907f\u514d\u7684\u3002AP \u65b9\u6848\u4e2d\u727a\u7272\u4e00\u81f4\u6027\u53ea\u662f\u6307\u5206\u533a\u671f\u95f4\uff0c\u800c\u4e0d\u662f\u6c38\u8fdc\u653e\u5f03\u4e00\u81f4\u6027\u3002"),(0,l.yg)("h3",{id:"\u4e2a\u4eba\u7406\u89e3"},"\u4e2a\u4eba\u7406\u89e3"),(0,l.yg)("p",null,"\u8bbe\u8ba1\u5206\u5e03\u5f0f\u7cfb\u7edf\u7684\u4e24\u5927\u521d\u8877\uff1a\u6a2a\u5411\u6269\u5c55\uff08scalability\uff09\u548c\u9ad8\u53ef\u7528\u6027\uff08availability\uff09\u3002\u201c\u6a2a\u5411\u6269\u5c55\u201d\u662f\u4e3a\u4e86\u89e3\u51b3\u5355\u70b9\u74f6\u9888\u95ee\u9898\uff0c\u8fdb\u800c\u4fdd\u8bc1\u9ad8\u5e76\u53d1\u91cf\u4e0b\u7684\u300c\u53ef\u7528\u6027\u300d\uff1b\u201c\u9ad8\u53ef\u7528\u6027\u201d\u662f\u4e3a\u4e86\u89e3\u51b3\u5355\u70b9\u6545\u969c\uff08SPOF\uff09\u95ee\u9898\uff0c\u8fdb\u800c\u4fdd\u8bc1\u90e8\u5206\u8282\u70b9\u6545\u969c\u65f6\u7684\u300c\u53ef\u7528\u6027\u300d\u3002\u7531\u6b64\u53ef\u4ee5\u770b\u51fa\uff0c\u5206\u5e03\u5f0f\u7cfb\u7edf\u7684\u6838\u5fc3\u8bc9\u6c42\u5c31\u662f\u300c\u53ef\u7528\u6027\u300d\u3002\u8fd9\u4e2a\u300c\u53ef\u7528\u6027\u300d\u6b63\u662f CAP \u4e2d\u7684 A\uff1a\u7528\u6237\u8bbf\u95ee\u7cfb\u7edf\u65f6\uff0c\u53ef\u4ee5\u5728\u5408\u7406\u7684\u65f6\u95f4\u5185\u5f97\u5230\u5408\u7406\u7684\u54cd\u5e94\u3002 "),(0,l.yg)("p",null,"\u4e3a\u4e86\u4fdd\u8bc1\u300c\u53ef\u7528\u6027\u300d\uff0c\u4e00\u4e2a\u5206\u5e03\u5f0f\u7cfb\u7edf\u901a\u5e38\u7531\u591a\u4e2a\u8282\u70b9\u7ec4\u6210\u3002\u8fd9\u4e9b\u8282\u70b9\u5404\u81ea\u7ef4\u62a4\u4e00\u4efd\u6570\u636e\uff0c\u4f46\u662f\u4e0d\u7ba1\u7528\u6237\u8bbf\u95ee\u5230\u54ea\u4e2a\u8282\u70b9\uff0c\u539f\u5219\u4e0a\u90fd\u5e94\u8be5\u8bfb\u53d6\u5230\u76f8\u540c\u7684\u6570\u636e\u3002\u4e3a\u4e86\u8fbe\u5230\u8fd9\u4e2a\u6548\u679c\uff0c\u4e00\u4e2a\u8282\u70b9\u6536\u5230\u5199\u5165\u8bf7\u6c42\u66f4\u65b0\u81ea\u5df1\u7684\u6570\u636e\u540e\uff0c\u5fc5\u987b\u5c06\u6570\u636e\u540c\u6b65\u5230\u5176\u4ed6\u8282\u70b9\uff0c\u4ee5\u4fdd\u8bc1\u5404\u4e2a\u8282\u70b9\u7684\u6570\u636e\u300c\u4e00\u81f4\u6027\u300d\u3002\u8fd9\u4e2a\u300c\u4e00\u81f4\u6027\u300d\u6b63\u662f CAP \u4e2d\u7684 C\uff1a\u7528\u6237\u8bbf\u95ee\u7cfb\u7edf\u65f6\uff0c\u53ef\u4ee5\u8bfb\u53d6\u5230\u6700\u8fd1\u5199\u5165\u7684\u6570\u636e\u3002 "),(0,l.yg)("p",null,"\u9700\u8981\u6ce8\u610f\u7684\u662f\uff1aCAP \u5e76\u6ca1\u6709\u8003\u8651\u6570\u636e\u540c\u6b65\u7684\u8017\u65f6\uff0c\u6240\u4ee5\u73b0\u5b9e\u4e2d\u7684\u5206\u5e03\u5f0f\u7cfb\u7edf\uff0c\u7406\u8bba\u4e0a\u65e0\u6cd5\u4fdd\u8bc1\u4efb\u4f55\u65f6\u523b\u7684\u7edd\u5bf9\u300c\u4e00\u81f4\u6027\u300d\uff1b\u4e0d\u540c\u4e1a\u52a1\u7cfb\u7edf\u5bf9\u4e0a\u8ff0\u8017\u65f6\u7684\u654f\u611f\u5ea6\u4e0d\u540c\u3002 "),(0,l.yg)("p",null,"\u5206\u5e03\u5f0f\u7cfb\u7edf\u4e2d\uff0c\u8282\u70b9\u4e4b\u95f4\u7684\u6570\u636e\u540c\u6b65\u662f\u57fa\u4e8e\u7f51\u7edc\u7684\u3002\u7531\u4e8e\u7f51\u7edc\u672c\u8eab\u56fa\u6709\u7684\u4e0d\u53ef\u9760\u5c5e\u6027\uff0c\u6781\u7aef\u60c5\u51b5\u4e0b\u4f1a\u51fa\u73b0\u7f51\u7edc\u4e0d\u53ef\u7528\u7684\u60c5\u51b5\uff0c\u8fdb\u800c\u5c06\u7f51\u7edc\u4e24\u7aef\u7684\u8282\u70b9\u5b64\u7acb\u5f00\u6765\uff0c\u8fd9\u5c31\u662f\u6240\u8c13\u7684\u201c\u7f51\u7edc\u5206\u533a\u201d\u73b0\u8c61\u3002\u201c\u7f51\u7edc\u5206\u533a\u201d\u7406\u8bba\u4e0a\u662f\u65e0\u6cd5\u907f\u514d\u7684\uff0c\u867d\u7136\u5b9e\u9645\u53d1\u751f\u7684\u6982\u7387\u8f83\u4f4e\u3001\u65f6\u957f\u8f83\u77ed\u3002\u6ca1\u6709\u53d1\u751f\u201c\u7f51\u7edc\u5206\u533a\u201d\u65f6\uff0c\u7cfb\u7edf\u53ef\u4ee5\u505a\u5230\u540c\u65f6\u4fdd\u8bc1\u300c\u4e00\u81f4\u6027\u300d\u548c\u300c\u53ef\u7528\u6027\u300d\u3002 "),(0,l.yg)("p",null,"\u53d1\u751f\u201c\u7f51\u7edc\u5206\u533a\u201d\u65f6\uff0c\u7cfb\u7edf\u4e2d\u591a\u4e2a\u8282\u70b9\u7684\u6570\u636e\u4e00\u5b9a\u662f\u4e0d\u4e00\u81f4\u7684\uff0c\u4f46\u662f\u53ef\u4ee5\u9009\u62e9\u5bf9\u7528\u6237\u8868\u73b0\u51fa\u300c\u4e00\u81f4\u6027\u300d\uff0c\u4ee3\u4ef7\u662f\u727a\u7272\u300c\u53ef\u7528\u6027\u300d\uff1a\u5c06\u672a\u80fd\u540c\u6b65\u5f97\u5230\u65b0\u6570\u636e\u7684\u90e8\u5206\u8282\u70b9\u7f6e\u4e3a\u201c\u4e0d\u53ef\u7528\u72b6\u6001\u201d\uff0c\u8bbf\u95ee\u5230\u8fd9\u4e9b\u8282\u70b9\u7684\u7528\u6237\u663e\u7136\u611f\u77e5\u5230\u7cfb\u7edf\u662f\u4e0d\u53ef\u7528\u7684\u3002\u53d1\u751f\u201c\u7f51\u7edc\u5206\u533a\u201d\u65f6\uff0c\u7cfb\u7edf\u4e5f\u53ef\u4ee5\u9009\u62e9\u300c\u53ef\u7528\u6027\u300d\uff0c\u6b64\u65f6\u7cfb\u7edf\u4e2d\u5404\u4e2a\u8282\u70b9\u90fd\u662f\u53ef\u7528\u7684\uff0c\u53ea\u662f\u8fd4\u56de\u7ed9\u7528\u6237\u7684\u6570\u636e\u662f\u4e0d\u4e00\u81f4\u7684\u3002\u8fd9\u91cc\u7684\u9009\u62e9\uff0c\u5c31\u662f CAP \u4e2d\u7684 P\u3002 "),(0,l.yg)("p",null,"\u5206\u5e03\u5f0f\u7cfb\u7edf\u7406\u8bba\u4e0a\u4e00\u5b9a\u4f1a\u5b58\u5728 P\uff0c\u6240\u4ee5\u7406\u8bba\u4e0a\u53ea\u80fd\u505a\u5230 CP \u6216 AP\u3002\u5982\u679c\u5957\u7528 CAP \u4e2d\u79bb\u6563\u7684 C/A/P \u7684\u6982\u5ff5\uff0c\u7406\u8bba\u4e0a\u6ca1\u6709 P \u7684\u53ea\u53ef\u80fd\u662f\u5355\u70b9\uff08\u5b50\uff09\u7cfb\u7edf\uff0c\u6240\u4ee5\u7406\u8bba\u4e0a\u53ef\u4ee5\u505a\u5230 CA\u3002\u4f46\u662f\u5355\u70b9\uff08\u5b50\uff09\u7cfb\u7edf\u5e76\u4e0d\u662f\u5206\u5e03\u5f0f\u7cfb\u7edf\uff0c\u6240\u4ee5\u5176\u5b9e\u5e76\u4e0d\u5728 CAP \u7406\u8bba\u7684\u63cf\u8ff0\u8303\u56f4\u5185\u3002"))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8b59d635.f6a7c690.js b/assets/js/8b59d635.aa74ada3.js similarity index 99% rename from assets/js/8b59d635.f6a7c690.js rename to assets/js/8b59d635.aa74ada3.js index b35d1d70c..42cd9da35 100644 --- a/assets/js/8b59d635.f6a7c690.js +++ b/assets/js/8b59d635.aa74ada3.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2041],{5680:(e,l,t)=>{t.d(l,{xA:()=>g,yg:()=>c});var n=t(6540);function r(e,l,t){return l in e?Object.defineProperty(e,l,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[l]=t,e}function a(e,l){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);l&&(n=n.filter((function(l){return Object.getOwnPropertyDescriptor(e,l).enumerable}))),t.push.apply(t,n)}return t}function u(e){for(var l=1;l=0||(r[t]=e[t]);return r}(e,l);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}var y=n.createContext({}),p=function(e){var l=n.useContext(y),t=l;return e&&(t="function"==typeof e?e(l):u(u({},l),e)),t},g=function(e){var l=p(e.components);return n.createElement(y.Provider,{value:l},e.children)},o="mdxType",m={inlineCode:"code",wrapper:function(e){var l=e.children;return n.createElement(n.Fragment,{},l)}},d=n.forwardRef((function(e,l){var t=e.components,r=e.mdxType,a=e.originalType,y=e.parentName,g=i(e,["components","mdxType","originalType","parentName"]),o=p(t),d=r,c=o["".concat(y,".").concat(d)]||o[d]||m[d]||a;return t?n.createElement(c,u(u({ref:l},g),{},{components:t})):n.createElement(c,u({ref:l},g))}));function c(e,l){var t=arguments,r=l&&l.mdxType;if("string"==typeof e||r){var a=t.length,u=new Array(a);u[0]=d;var i={};for(var y in l)hasOwnProperty.call(l,y)&&(i[y]=l[y]);i.originalType=e,i[o]="string"==typeof e?e:r,u[1]=i;for(var p=2;p{t.r(l),t.d(l,{assets:()=>y,contentTitle:()=>u,default:()=>m,frontMatter:()=>a,metadata:()=>i,toc:()=>p});var n=t(8168),r=(t(6540),t(5680));const a={},u=void 0,i={unversionedId:"study/think/\u4ee3\u7801\u8bc4\u5ba1/\u4ee3\u7801\u5ba1\u67e5\u95ee\u9898\u624b\u518c",id:"study/think/\u4ee3\u7801\u8bc4\u5ba1/\u4ee3\u7801\u5ba1\u67e5\u95ee\u9898\u624b\u518c",title:"\u4ee3\u7801\u5ba1\u67e5\u95ee\u9898\u624b\u518c",description:"\u6bcf\u59295\u70b9\u4e4b\u540e\u82b110\u5206\u949f\u7684\u65f6\u95f4\u5ba1\u67e5\u4e00\u4e0b\u522b\u4eba\u7684\u4ee3\u7801\uff0c\u5e76\u548c\u4ee3\u7801\u4f5c\u8005\u6c9f\u901a\uff1b",source:"@site/docs/study/think/\u4ee3\u7801\u8bc4\u5ba1/\u4ee3\u7801\u5ba1\u67e5\u95ee\u9898\u624b\u518c.md",sourceDirName:"study/think/\u4ee3\u7801\u8bc4\u5ba1",slug:"/study/think/\u4ee3\u7801\u8bc4\u5ba1/\u4ee3\u7801\u5ba1\u67e5\u95ee\u9898\u624b\u518c",permalink:"/docs/study/think/\u4ee3\u7801\u8bc4\u5ba1/\u4ee3\u7801\u5ba1\u67e5\u95ee\u9898\u624b\u518c",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Gerrit\u4ee3\u7801\u8bc4\u5ba1\u5de5\u5177",permalink:"/docs/study/think/\u4ee3\u7801\u8bc4\u5ba1/Gerrit\u4ee3\u7801\u8bc4\u5ba1\u5de5\u5177"},next:{title:"\u5b9e\u65f6\u8ba1\u7b97Storm+Flink",permalink:"/docs/study/think/\u5b9e\u65f6\u8ba1\u7b97Storm+Flink"}},y={},p=[{value:"\u4ee3\u7801\u4f5c\u8005\u5e94\u8be5\u5173\u6ce8\u7684\u5217\u8868",id:"\u4ee3\u7801\u4f5c\u8005\u5e94\u8be5\u5173\u6ce8\u7684\u5217\u8868",level:3},{value:"\u4ee3\u7801\u5ba1\u67e5\u8005\u5e94\u8be5\u5173\u6ce8\u7684\u5217\u8868",id:"\u4ee3\u7801\u5ba1\u67e5\u8005\u5e94\u8be5\u5173\u6ce8\u7684\u5217\u8868",level:3},{value:"\u5b9e\u73b0",id:"\u5b9e\u73b0",level:4},{value:"\u903b\u8f91\u9519\u8bef\u6216Bug",id:"\u903b\u8f91\u9519\u8bef\u6216bug",level:4},{value:"\u9519\u8bef\u5904\u7406\u548c\u65e5\u5fd7",id:"\u9519\u8bef\u5904\u7406\u548c\u65e5\u5fd7",level:4},{value:"\u53ef\u7528\u6027\u548c\u53ef\u8bbf\u95ee\u6027",id:"\u53ef\u7528\u6027\u548c\u53ef\u8bbf\u95ee\u6027",level:4},{value:"\u6d4b\u8bd5\u4e0e\u53ef\u6d4b\u8bd5\u6027",id:"\u6d4b\u8bd5\u4e0e\u53ef\u6d4b\u8bd5\u6027",level:4},{value:"\u4f9d\u8d56",id:"\u4f9d\u8d56",level:4},{value:"\u5b89\u5168\u548c\u9690\u79c1\u6570\u636e",id:"\u5b89\u5168\u548c\u9690\u79c1\u6570\u636e",level:4},{value:"\u6027\u80fd",id:"\u6027\u80fd",level:4},{value:"\u53ef\u8bfb\u6027",id:"\u53ef\u8bfb\u6027",level:4},{value:"\u4e13\u5bb6\u610f\u89c1",id:"\u4e13\u5bb6\u610f\u89c1",level:4},{value:"\u4ee3\u7801\u98ce\u683c\u548c\u7ea6\u5b9a",id:"\u4ee3\u7801\u98ce\u683c\u548c\u7ea6\u5b9a",level:4},{value:"\u5c3d\u53ef\u80fd\u81ea\u52a8\u5316",id:"\u5c3d\u53ef\u80fd\u81ea\u52a8\u5316",level:4}],g={toc:p},o="wrapper";function m(e){let{components:l,...t}=e;return(0,r.yg)(o,(0,n.A)({},g,t,{components:l,mdxType:"MDXLayout"}),(0,r.yg)("p",null,"\u6bcf\u59295\u70b9\u4e4b\u540e\u82b110\u5206\u949f\u7684\u65f6\u95f4\u5ba1\u67e5\u4e00\u4e0b\u522b\u4eba\u7684\u4ee3\u7801\uff0c\u5e76\u548c\u4ee3\u7801\u4f5c\u8005\u6c9f\u901a\uff1b\n\u9605\u8bfb\u522b\u4eba\u7684\u4ee3\u7801\u662f\u4e00\u79cd\u5f88\u91cd\u8981\u7684\u80fd\u529b\u3002\n\u4ece3\u67082\u53f7\u5f00\u59cb\uff0c\u6bcf\u5929\u7684\u65e5\u62a5\u52a0\u4e0a\u4e00\u4e2a\u5185\u5bb9\uff1a\u4ee3\u7801\u5ba1\u6838\u5185\u5bb9\u603b\u7ed3\uff0c\u4f8b\u5982\uff1a\u9605\u8bfb\u4e86\u3010\u738b\u4e16\u8d85\u3011\u7684\u3010\u6dfb\u52a0\u8bbe\u5907\u3011\u76f8\u5173\u4ee3\u7801\uff0c\u53d1\u73b0\u6709\u4e2a\u547d\u540d\u3010xxx\u3011\u4e0d\u662f\u5f88\u5408\u89c4\u8303\uff0c\u548c\u4ed6\u6c9f\u901a\u8fc7\u540e\uff0cxxx\uff1b\n\u8c01\u6765\u9605\u8bfb\u8c01\u7684\u4ee3\u7801\uff0c\u5404\u81ea\u7ec4\u957f\u5b9a\u4e00\u4e0b\u3002"),(0,r.yg)("p",null,"\u8001\u4eba\u9605\u8bfb\u65b0\u4eba\u7684\u4ee3\u7801\uff0c\u80fd\u591f\u66f4\u660e\u786e\u7684\u77e5\u6653\u65b0\u4eba\u5bf9\u529f\u80fd\u5b9e\u73b0\u7684\u7406\u89e3\u662f\u5426\u5230\u4f4d\uff0c\u8001\u4eba\u662f\u5426\u628a\u4efb\u52a1\u8bf4\u660e\u767d\u4e86\u3002\n\u65b0\u4eba\u9605\u8bfb\u8001\u4eba\u7684\u4ee3\u7801\uff0c\u80fd\u591f\u66f4\u660e\u786e\u7684\u77e5\u6653\u5f53\u524d\u9879\u76ee\u7684\u89c4\u8303\u3001\u6d41\u7a0b\u7b49\u3002\n\u9ad8\u7ea7\u5f00\u53d1\u9605\u8bfb\u521d\u4e2d\u7ea7\u5f00\u53d1\u7684\u4ee3\u7801\uff0c\u80fd\u591f\u67e5\u7f3a\u8865\u6f0f\uff0c\u907f\u514d\u5b89\u5168\u98ce\u9669\uff1b\n\u521d\u4e2d\u7ea7\u5f00\u53d1\u4e50\u961f\u9ad8\u7ea7\u5f00\u53d1\u7684\u4ee3\u7801\uff0c\u80fd\u591f\u5b66\u5230\u66f4\u591a\u4ee3\u7801\u7ecf\u9a8c\u3001\u601d\u60f3\u3001\u610f\u8bc6\u3002"),(0,r.yg)("p",null,"\u4ee3\u7801\u5ba1\u67e5\u5217\u8868\uff0c\u662f\u4ee3\u7801\u5ba1\u67e5\u7684\u660e\u786e\u89c4\u5219\u548c\u6307\u5bfc\u624b\u518c\uff0c\u5b83\u53ef\u4ee5\u4f7f\u4ee3\u7801\u5ba1\u67e5\u4e3a\u4f60\u7684\u56e2\u961f\u5e26\u6765\u66f4\u591a\u597d\u5904\uff0c\u5e76\u4e14\u80fd\u591f\u663e\u8457\u63d0\u5347\u4ee3\u7801\u5ba1\u67e5\u7684\u901f\u5ea6\u3002\u7814\u7a76\u8868\u660e\uff0c\u4f7f\u7528\u4ee3\u7801\u5ba1\u67e5\u5217\u8868\u7684\u5ba1\u9605\u8005\u7684\u8868\u73b0\u8981\u4f18\u4e8e\u4e0d\u4f7f\u7528\u7684\u5ba1\u9605\u8005\u3002\u6240\u4ee5\u4e0d\u7ba1\u4f60\u662f\u65b0\u624b\u5f00\u53d1\u8005\u8fd8\u662f\u7ecf\u9a8c\u4e30\u5bcc\u7684\u5f00\u53d1\u8005\uff0c\u5f00\u59cb\u8003\u8651\u4f7f\u7528\u4ee3\u7801\u5ba1\u67e5\u5217\u8868\u5427\u3002"),(0,r.yg)("h3",{id:"\u4ee3\u7801\u4f5c\u8005\u5e94\u8be5\u5173\u6ce8\u7684\u5217\u8868"},"\u4ee3\u7801\u4f5c\u8005\u5e94\u8be5\u5173\u6ce8\u7684\u5217\u8868"),(0,r.yg)("p",null,"\u4f5c\u4e3a\u4ee3\u7801\u7684\u4f5c\u8005\uff0c\u4f60\u5e94\u8be5\u4fdd\u8bc1\uff1a"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"\u4ee3\u7801\u7f16\u8bd1\u6210\u529f\u5e76\u4e14\u901a\u8fc7\u9759\u6001\u68c0\u67e5\uff08\u6ca1\u6709\u8b66\u544a\uff09"),(0,r.yg)("li",{parentName:"ul"},"\u4ee3\u7801\u901a\u8fc7\u6240\u6709\u7684\u6d4b\u8bd5\uff08\u5355\u5143\u6d4b\u8bd5\u3001\u96c6\u6210\u6d4b\u8bd5\u548c\u7cfb\u7edf\u6d4b\u8bd5\uff09"),(0,r.yg)("li",{parentName:"ul"},"\u4f60\u5df2\u7ecf\u4ed4\u7ec6\u68c0\u67e5\u4e86\u62fc\u5199\u9519\u8bef\uff0c\u5e76\u505a\u4e86\u5904\u7406\uff08\u6ce8\u91ca\u3001todo\u7b49\uff09"),(0,r.yg)("li",{parentName:"ul"},"\u6982\u8ff0\u4ee3\u7801\u4fee\u6539\u7684\u539f\u56e0\u4ee5\u53ca\u4fee\u6539\u4e86\u54ea\u4e9b\u5730\u65b9")),(0,r.yg)("p",null,"\u9664\u6b64\u4e4b\u5916\uff0c\u4f5c\u4e3a\u4ee3\u7801\u4f5c\u8005\uff0c\u4e5f\u5e94\u8be5\u5728\u63d0\u4ea4\u5ba1\u67e5\u4e4b\u524d\uff0c\u6309\u7167\u5ba1\u67e5\u8005\u7684\u5217\u8868\u5bf9\u81ea\u5df1\u7684\u4ee3\u7801\u8fdb\u884c\u5ba1\u67e5\u3002"),(0,r.yg)("h3",{id:"\u4ee3\u7801\u5ba1\u67e5\u8005\u5e94\u8be5\u5173\u6ce8\u7684\u5217\u8868"},"\u4ee3\u7801\u5ba1\u67e5\u8005\u5e94\u8be5\u5173\u6ce8\u7684\u5217\u8868"),(0,r.yg)("p",null,"\u4f5c\u4e3a\u4ee3\u7801\u5ba1\u67e5\u8005\uff0c\u4f60\u7684\u4efb\u52a1\u662f\u5bfb\u627e\u6700\u91cd\u8981\u7684\u95ee\u9898\u3002\u8bc4\u8bba\u4f1a\u5bf9\u4ee3\u7801\u7684\u7ed3\u6784\u6027\u6216\u903b\u8f91\u6027\u95ee\u9898\u66f4\u6709\u4ef7\u503c\uff0c\u5373\u4f7f\u6709\u65f6\u5019\u4f1a\u663e\u5f97\u6311\u5254\u3002\u4f60\u5e94\u8be5\u77e5\u9053\u4ec0\u4e48\u662f\u597d\u7684\u4ee3\u7801\u53cd\u9988\u3002\u53e6\u5916\u9700\u8981\u6ce8\u610f\uff0c\u6700\u597d\u7684\u4ee3\u7801\u5ba1\u67e5\u53cd\u9988\u4e0d\u662f\u70b9\u8bc4\uff0c\u800c\u662f\u5efa\u8bae\u3002\u6240\u4ee5\u4e0d\u8981\u8bf4\u201c\u53d8\u91cf\u540d\u79f0\u5e94\u8be5\u662fremoveObject\u201c\uff0c\u6700\u597d\u8bf4\u201d\u8c03\u7528\u53d8\u91cfremoveObject\u600e\u4e48\u6837\uff1f\u201c\u3002\n\u4e0b\u9762\u8fd9\u4efd\u5217\u8868\u8db3\u591f\u5e2e\u52a9\u4f60\u63d0\u51fa\u597d\u7684\u4ee3\u7801\u5ba1\u67e5\u53cd\u9988\u4e86\u3002"),(0,r.yg)("h4",{id:"\u5b9e\u73b0"},"\u5b9e\u73b0"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"\u6b64\u4ee3\u7801\u66f4\u6539\u4f1a\u6267\u884c\u5b83\u5e94\u8be5\u505a\u7684\u4e8b\u60c5\u5417\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u8fd9\u79cd\u89e3\u51b3\u65b9\u6cd5\u662f\u6700\u7b80\u5355\u7684\u5417\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u8fd9\u4e2a\u66f4\u6539\u6709\u5f15\u5165\u4e00\u4e9b\u4e0d\u9700\u8981\u7684\u7f16\u8bd1\u65f6\u6216\u8fd0\u884c\u65f6\u7684\u4f9d\u8d56\u5417\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u662f\u5426\u4f7f\u7528\u4e86\u4e0d\u5e94\u8be5\u4f7f\u7528\u7684\u6846\u67b6\u3001API\u3001\u5e93\u3001\u670d\u52a1\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u662f\u5426\u5b58\u5728\u53ef\u4ee5\u63d0\u5347\u89e3\u51b3\u65b9\u6cd5\u7684\u672a\u4f7f\u7528\u7684\u6846\u67b6\u3001API\u3001\u5e93\u3001\u670d\u52a1\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u4ee3\u7801\u662f\u5426\u5904\u4e8e\u6b63\u786e\u7684\u62bd\u8c61\u7ea7\u522b\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u4ee3\u7801\u7684\u6a21\u5757\u5316\u505a\u7684\u662f\u5426\u8db3\u591f\u597d\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u4f60\u662f\u5426\u6709\u5176\u4ed6\u7684\u89e3\u51b3\u65b9\u6848\uff0c\u8be5\u65b9\u6848\u5728\u4ee3\u7801\u53ef\u7ef4\u62a4\u6027\u3001\u53ef\u8bfb\u6027\u3001\u6027\u80fd\u3001\u5b89\u5168\u65b9\u9762\u8868\u73b0\u66f4\u597d\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u662f\u5426\u5df2\u7ecf\u5b58\u5728\u7c7b\u4f3c\u529f\u80fd\u7684\u51fd\u6570\uff1f\u5982\u679c\u6709\uff0c\u4e3a\u4ec0\u4e48\u4e0d\u590d\u7528\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u662f\u5426\u6709\u6700\u4f73\u5b9e\u8df5\u3001\u8bbe\u8ba1\u6a21\u5f0f\u6216\u7279\u5b9a\u8bed\u8a00\u6a21\u5f0f\u53ef\u4ee5\u4f18\u5316\u4ee3\u7801\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u4ee3\u7801\u662f\u5426\u9075\u5faa\u9762\u5411\u5bf9\u8c61\u7684\u5206\u6790\u548c\u8bbe\u8ba1\u539f\u5219\uff0c\u4f8b\u5982\u5355\u4e00\u8d23\u4efb\u539f\u5219\uff0c\u5f00\u95ed\u539f\u5219\uff0c\u91cc\u6c0f\u66ff\u6362\u539f\u5219\uff0c\u63a5\u53e3\u9694\u79bb\uff0c\u4f9d\u8d56\u6ce8\u5165\uff1f")),(0,r.yg)("h4",{id:"\u903b\u8f91\u9519\u8bef\u6216bug"},"\u903b\u8f91\u9519\u8bef\u6216Bug"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"\u4f60\u80fd\u60f3\u5230\u4ee3\u7801\u4e0d\u6309\u9884\u671f\u8fd0\u884c\u7684\u4efb\u4f55\u7528\u4f8b\u5417\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u4f60\u80fd\u60f3\u5230\u4efb\u4f55\u53ef\u80fd\u7834\u574f\u4ee3\u7801\u7684\u8f93\u5165\u6216\u5916\u90e8\u4e8b\u4ef6\u5417\uff1f")),(0,r.yg)("h4",{id:"\u9519\u8bef\u5904\u7406\u548c\u65e5\u5fd7"},"\u9519\u8bef\u5904\u7406\u548c\u65e5\u5fd7"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"\u9519\u8bef\u90fd\u88ab\u6b63\u786e\u5904\u7406\u4e86\u5417\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u662f\u5426\u6709\u9700\u8981\u589e\u52a0\u6216\u5220\u9664\u7684\u65e5\u5fd7/debug\u4fe1\u606f\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u9519\u8bef\u6d88\u606f\u5bf9\u7528\u6237\u662f\u5426\u53cb\u597d\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u662f\u5426\u6709\u8db3\u591f\u7684\u65e5\u5fd7\uff0c\u5b83\u4eec\u7684\u7f16\u5199\u65b9\u5f0f\u662f\u5426\u662f\u6613\u4e8e\u8c03\u8bd5\u7684\uff1f")),(0,r.yg)("h4",{id:"\u53ef\u7528\u6027\u548c\u53ef\u8bbf\u95ee\u6027"},"\u53ef\u7528\u6027\u548c\u53ef\u8bbf\u95ee\u6027"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"\u4ece\u53ef\u7528\u6027\u89d2\u5ea6\u51fa\u53d1\uff0c\u6240\u63d0\u51fa\u7684\u89e3\u51b3\u65b9\u6848\u662f\u5426\u8bbe\u8ba1\u5408\u7406\uff1f"),(0,r.yg)("li",{parentName:"ul"},"API\u6587\u6863\u662f\u5426\u8db3\u591f\u597d\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u63d0\u51fa\u7684\u89e3\u51b3\u65b9\u6848\u662f\u5426\u5177\u5907\u53ef\u8bbf\u95ee\u6027\uff1f"),(0,r.yg)("li",{parentName:"ul"},"API/UI\u662f\u5426\u76f4\u89c2\u6613\u7528\uff1f")),(0,r.yg)("h4",{id:"\u6d4b\u8bd5\u4e0e\u53ef\u6d4b\u8bd5\u6027"},"\u6d4b\u8bd5\u4e0e\u53ef\u6d4b\u8bd5\u6027"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"\u4ee3\u7801\u662f\u5426\u8fbe\u5230\u53ef\u6d4b\u8bd5\u6807\u51c6\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u662f\u5426\u6709\u8db3\u591f\u7684\u81ea\u52a8\u5316\u6d4b\u8bd5\uff08\u5355\u5143\u6d4b\u8bd5/\u96c6\u6210\u6d4b\u8bd5/\u7cfb\u7edf\u6d4b\u8bd5\uff09\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u73b0\u6709\u6d4b\u8bd5\u662f\u5426\u5408\u7406\u8986\u76d6\u4ee3\u7801\u53d8\u66f4\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u662f\u5426\u6709\u989d\u5916\u7684\u6d4b\u8bd5\u7528\u4f8b\u3001\u8f93\u5165\u6216\u8fb9\u754c\u7528\u4f8b\u4ee5\u4f9b\u6d4b\u8bd5\uff1f")),(0,r.yg)("h4",{id:"\u4f9d\u8d56"},"\u4f9d\u8d56"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"\u5982\u679c\u8fd9\u4e2a\u4fee\u6539\u9700\u8981\u66f4\u65b0\u4ee3\u7801\u4ee5\u5916\u7684\u6587\u4ef6\uff0c\u4f8b\u5982\u66f4\u65b0\u6587\u6863\uff0c\u914d\u7f6e\uff0creadme\u6587\u4ef6\u3002\u662f\u5426\u5b8c\u6210\u4e86\u8fd9\u4e9b\u66f4\u65b0\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u8fd9\u4e2a\u4fee\u6539\u662f\u5426\u4f1a\u5bf9\u7cfb\u7edf\u5176\u4ed6\u5730\u65b9\u9020\u6210\u5f71\u54cd\uff1f\u662f\u5426\u80fd\u540e\u5411\u540e\u517c\u5bb9\uff1f")),(0,r.yg)("h4",{id:"\u5b89\u5168\u548c\u9690\u79c1\u6570\u636e"},"\u5b89\u5168\u548c\u9690\u79c1\u6570\u636e"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"\u8fd9\u6bb5\u4ee3\u7801\u662f\u5426\u6253\u5f00\u8f6f\u4ef6\u7684\u5b89\u5168\u6f0f\u6d1e\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u6743\u9650\u548c\u8eab\u4efd\u9a8c\u8bc1\u662f\u5426\u88ab\u6b63\u786e\u5904\u7406\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u662f\u5426\u5b89\u5168\u5904\u7406\u4e86\u654f\u611f\u6570\u636e\uff0c\u4f8b\u5982\u7528\u6237\u6570\u636e\u3001\u4fe1\u7528\u5361\u4fe1\u606f\u7b49\uff1f\u662f\u5426\u6b63\u786e\u4f7f\u7528\u52a0\u5bc6\u65b9\u6cd5\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u4ee3\u7801\u66f4\u6539\u662f\u5426\u663e\u9732\u4e86\u4e00\u4e9b\u79c1\u5bc6\u4fe1\u606f\uff08\u5982\u79d8\u94a5\uff0c\u7528\u6237\u540d\u7b49\uff09\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u5982\u679c\u4ee3\u7801\u5904\u7406\u7528\u6237\u8f93\u5165\uff0c\u662f\u5426\u89e3\u51b3\u4e86\u8de8\u7ad9\u70b9\u811a\u672c\uff0cSQL\u6ce8\u5165\u7b49\u5b89\u5168\u6f0f\u6d1e\uff0c\u662f\u5426\u8fdb\u884c\u4e86\u8f93\u5165\u6e05\u6d17\u548c\u9a8c\u8bc1\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u4ece\u5916\u90e8API\u6216\u5e93\u4e2d\u83b7\u5f97\u7684\u6570\u636e\u662f\u5426\u8fdb\u884c\u4e86\u76f8\u5e94\u7684\u68c0\u67e5\uff1f")),(0,r.yg)("h4",{id:"\u6027\u80fd"},"\u6027\u80fd"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"\u8fd9\u6bb5\u4ee3\u7801\u4fee\u6539\u662f\u5426\u4f1a\u5bf9\u7cfb\u7edf\u6027\u80fd\u4ea7\u751f\u8d1f\u9762\u5f71\u54cd\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u662f\u5426\u53ef\u4ee5\u8fdb\u4e00\u6b65\u63d0\u5347\u4ee3\u7801\u6027\u80fd\uff1f")),(0,r.yg)("h4",{id:"\u53ef\u8bfb\u6027"},"\u53ef\u8bfb\u6027"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"\u4ee3\u7801\u662f\u5426\u5bb9\u6613\u7406\u89e3\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u54ea\u4e00\u90e8\u5206\u4f7f\u4f60\u56f0\u60d1\uff0c\u4e3a\u4ec0\u4e48\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u53ef\u4ee5\u901a\u8fc7\u51cf\u5c0f\u65b9\u6cd5\u6765\u63d0\u9ad8\u4ee3\u7801\u53ef\u8bfb\u6027\u5417\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u53ef\u4ee5\u901a\u8fc7\u4f7f\u7528\u4e0d\u540c\u7684\u51fd\u6570/\u65b9\u6cd5\u6216\u53d8\u91cf\u540d\u79f0\u6765\u63d0\u5347\u4ee3\u7801\u53ef\u8bfb\u6027\u5417\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u4ee3\u7801\u662f\u5426\u5b58\u653e\u5728\u6b63\u786e\u7684\u6587\u4ef6/\u76ee\u5f55/\u5305\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u4f60\u662f\u5426\u8ba4\u4e3a\u65b9\u6cd5\u5e94\u8be5\u91cd\u6784\u4ee5\u62e5\u6709\u66f4\u76f4\u89c2\u7684\u63a7\u5236\u6d41\u7a0b\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u6570\u636e\u6d41\u662f\u5426\u53ef\u7406\u89e3\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u662f\u5426\u6709\u591a\u4f59\u7684\u6ce8\u91ca\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u67d0\u4e9b\u6ce8\u91ca\u662f\u5426\u53ef\u4ee5\u66f4\u597d\u7684\u4f20\u8fbe\u4fe1\u606f\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u662f\u5426\u66f4\u591a\u7684\u6ce8\u91ca\u4f1a\u4f7f\u4f60\u7684\u4ee3\u7801\u66f4\u5bb9\u6613\u7406\u89e3\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u662f\u5426\u53ef\u4ee5\u79fb\u9664\u4e00\u4e9b\u6ce8\u91ca\uff0c\u901a\u8fc7\u63d0\u5347\u4ee3\u7801\u53ef\u8bfb\u6027\u6765\u7406\u89e3\u4ee3\u7801\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u662f\u5426\u5b58\u5728\u6ce8\u91ca\u6389\u7684\u4ee3\u7801\uff1f")),(0,r.yg)("h4",{id:"\u4e13\u5bb6\u610f\u89c1"},"\u4e13\u5bb6\u610f\u89c1"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"\u4f60\u662f\u5426\u8ba4\u4e3a\u7279\u5b9a\u4e13\u5bb6\uff08\u5982\u5b89\u5168\u4e13\u5bb6\u6216\u53ef\u7528\u6027\u4e13\u5bb6\uff09\u5e94\u8be5\u5148\u68c0\u67e5\u4ee3\u7801\uff0c\u7136\u540e\u518d\u63d0\u4ea4\u4ee3\u7801\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u8fd9\u4e2a\u4ee3\u7801\u4fee\u6539\u4f1a\u5f71\u54cd\u5176\u4ed6\u56e2\u961f\u5417\uff1f\u4ed6\u4eec\u4e5f\u5e94\u8be5\u53d1\u8868\u610f\u89c1\u5417\uff1f")),(0,r.yg)("h4",{id:"\u4ee3\u7801\u98ce\u683c\u548c\u7ea6\u5b9a"},"\u4ee3\u7801\u98ce\u683c\u548c\u7ea6\u5b9a"),(0,r.yg)("p",null,"\u60a8\u7684\u56e2\u961f\u6216\u516c\u53f8\u5fc5\u987b\u62e5\u6709\u6e05\u6670\u7684\u7f16\u7801\u98ce\u683c\u6307\u5357\uff0c\u8fd9\u4e00\u70b9\u5f88\u91cd\u8981\u3002\u56e0\u4e3a\u8fd9\u662f\u5728\u4ee3\u7801\u5e93\u4e2d\u5b9e\u65bd\u552f\u4e00\u6027\u7684\u552f\u4e00\u65b9\u6cd5\u3002\u5e76\u4e14\u4e00\u81f4\u6027\u4f1a\u4f7f\u4ee3\u7801\u5ba1\u67e5\u66f4\u5feb\uff0c\u4f7f\u4eba\u4eec\u53ef\u4ee5\u8f7b\u677e\u5730\u66f4\u6539\u9879\u76ee\uff0c\u5e76\u4fdd\u6301\u60a8\u4ee3\u7801\u7684\u53ef\u8bfb\u6027\u548c\u53ef\u7ef4\u62a4\u6027\u3002Google\u662f\u505a\u5230\u8fd9\u4e00\u70b9\u7684\u5f88\u597d\u7684\u4f8b\u5b50\uff0c\u65e0\u7591\uff0c\u8fd9\u4f7fGoogle\u53ef\u4ee5\u8fdb\u884c\u5feb\u901f\u7684\u4ee3\u7801\u5ba1\u67e5\u3002\u9996\u5148\uff0c\u6211\u5efa\u8bae\u4f7f\u7528\u73b0\u6210\u7684\u7f16\u7801\u6837\u5f0f\u6765\u652f\u6301Google\u63d0\u4f9b\u7684\u591a\u79cd\u8bed\u8a00\u3002\u8bbe\u5b9a\u57fa\u672c\u89c4\u5219\u5f88\u91cd\u8981\uff0c\u4f46\u8981\u786e\u4fdd\u4e00\u52b3\u6c38\u9038\u3002\u4e0d\u8981\u6301\u7eed\u4e89\u8bba\u3002"),(0,r.yg)("h4",{id:"\u5c3d\u53ef\u80fd\u81ea\u52a8\u5316"},"\u5c3d\u53ef\u80fd\u81ea\u52a8\u5316"),(0,r.yg)("p",null,"\u786e\u5b9a\u4e86\u4ee3\u7801\u98ce\u683c\u4ee5\u540e\uff0c\u8bf7\u82b1\u4e00\u4e9b\u65f6\u95f4\u6b63\u786e\u5b89\u88c5\u548c\u914d\u7f6e\u5de5\u5177\uff0c\u4ee5\u4fbf\u4e00\u952e\u683c\u5f0f\u5316\u4ee3\u7801\u3002\u53e6\u5916\u8fd8\u6709\u5f88\u591a\u4e8b\u60c5\u53ef\u4ee5\u505a\u3002\u4f8b\u5982\u4f7f\u7528\u9759\u6001\u68c0\u67e5\u6765\u4ee3\u66ff\u90e8\u5206\u4eba\u5de5\u5ba1\u6838\u3002\u8fd9\u662f\u503c\u5f97\u4e3a\u4e4b\u52aa\u529b\u7684\u3002"))}m.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2041],{5680:(e,l,t)=>{t.d(l,{xA:()=>g,yg:()=>c});var n=t(6540);function r(e,l,t){return l in e?Object.defineProperty(e,l,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[l]=t,e}function a(e,l){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);l&&(n=n.filter((function(l){return Object.getOwnPropertyDescriptor(e,l).enumerable}))),t.push.apply(t,n)}return t}function u(e){for(var l=1;l=0||(r[t]=e[t]);return r}(e,l);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}var y=n.createContext({}),p=function(e){var l=n.useContext(y),t=l;return e&&(t="function"==typeof e?e(l):u(u({},l),e)),t},g=function(e){var l=p(e.components);return n.createElement(y.Provider,{value:l},e.children)},o="mdxType",m={inlineCode:"code",wrapper:function(e){var l=e.children;return n.createElement(n.Fragment,{},l)}},d=n.forwardRef((function(e,l){var t=e.components,r=e.mdxType,a=e.originalType,y=e.parentName,g=i(e,["components","mdxType","originalType","parentName"]),o=p(t),d=r,c=o["".concat(y,".").concat(d)]||o[d]||m[d]||a;return t?n.createElement(c,u(u({ref:l},g),{},{components:t})):n.createElement(c,u({ref:l},g))}));function c(e,l){var t=arguments,r=l&&l.mdxType;if("string"==typeof e||r){var a=t.length,u=new Array(a);u[0]=d;var i={};for(var y in l)hasOwnProperty.call(l,y)&&(i[y]=l[y]);i.originalType=e,i[o]="string"==typeof e?e:r,u[1]=i;for(var p=2;p{t.r(l),t.d(l,{assets:()=>y,contentTitle:()=>u,default:()=>m,frontMatter:()=>a,metadata:()=>i,toc:()=>p});var n=t(8168),r=(t(6540),t(5680));const a={},u=void 0,i={unversionedId:"study/think/\u4ee3\u7801\u8bc4\u5ba1/\u4ee3\u7801\u5ba1\u67e5\u95ee\u9898\u624b\u518c",id:"study/think/\u4ee3\u7801\u8bc4\u5ba1/\u4ee3\u7801\u5ba1\u67e5\u95ee\u9898\u624b\u518c",title:"\u4ee3\u7801\u5ba1\u67e5\u95ee\u9898\u624b\u518c",description:"\u6bcf\u59295\u70b9\u4e4b\u540e\u82b110\u5206\u949f\u7684\u65f6\u95f4\u5ba1\u67e5\u4e00\u4e0b\u522b\u4eba\u7684\u4ee3\u7801\uff0c\u5e76\u548c\u4ee3\u7801\u4f5c\u8005\u6c9f\u901a\uff1b",source:"@site/docs/study/think/\u4ee3\u7801\u8bc4\u5ba1/\u4ee3\u7801\u5ba1\u67e5\u95ee\u9898\u624b\u518c.md",sourceDirName:"study/think/\u4ee3\u7801\u8bc4\u5ba1",slug:"/study/think/\u4ee3\u7801\u8bc4\u5ba1/\u4ee3\u7801\u5ba1\u67e5\u95ee\u9898\u624b\u518c",permalink:"/docs/study/think/\u4ee3\u7801\u8bc4\u5ba1/\u4ee3\u7801\u5ba1\u67e5\u95ee\u9898\u624b\u518c",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Gerrit\u4ee3\u7801\u8bc4\u5ba1\u5de5\u5177",permalink:"/docs/study/think/\u4ee3\u7801\u8bc4\u5ba1/Gerrit\u4ee3\u7801\u8bc4\u5ba1\u5de5\u5177"},next:{title:"\u5b9e\u65f6\u8ba1\u7b97Storm+Flink",permalink:"/docs/study/think/\u5b9e\u65f6\u8ba1\u7b97Storm+Flink"}},y={},p=[{value:"\u4ee3\u7801\u4f5c\u8005\u5e94\u8be5\u5173\u6ce8\u7684\u5217\u8868",id:"\u4ee3\u7801\u4f5c\u8005\u5e94\u8be5\u5173\u6ce8\u7684\u5217\u8868",level:3},{value:"\u4ee3\u7801\u5ba1\u67e5\u8005\u5e94\u8be5\u5173\u6ce8\u7684\u5217\u8868",id:"\u4ee3\u7801\u5ba1\u67e5\u8005\u5e94\u8be5\u5173\u6ce8\u7684\u5217\u8868",level:3},{value:"\u5b9e\u73b0",id:"\u5b9e\u73b0",level:4},{value:"\u903b\u8f91\u9519\u8bef\u6216Bug",id:"\u903b\u8f91\u9519\u8bef\u6216bug",level:4},{value:"\u9519\u8bef\u5904\u7406\u548c\u65e5\u5fd7",id:"\u9519\u8bef\u5904\u7406\u548c\u65e5\u5fd7",level:4},{value:"\u53ef\u7528\u6027\u548c\u53ef\u8bbf\u95ee\u6027",id:"\u53ef\u7528\u6027\u548c\u53ef\u8bbf\u95ee\u6027",level:4},{value:"\u6d4b\u8bd5\u4e0e\u53ef\u6d4b\u8bd5\u6027",id:"\u6d4b\u8bd5\u4e0e\u53ef\u6d4b\u8bd5\u6027",level:4},{value:"\u4f9d\u8d56",id:"\u4f9d\u8d56",level:4},{value:"\u5b89\u5168\u548c\u9690\u79c1\u6570\u636e",id:"\u5b89\u5168\u548c\u9690\u79c1\u6570\u636e",level:4},{value:"\u6027\u80fd",id:"\u6027\u80fd",level:4},{value:"\u53ef\u8bfb\u6027",id:"\u53ef\u8bfb\u6027",level:4},{value:"\u4e13\u5bb6\u610f\u89c1",id:"\u4e13\u5bb6\u610f\u89c1",level:4},{value:"\u4ee3\u7801\u98ce\u683c\u548c\u7ea6\u5b9a",id:"\u4ee3\u7801\u98ce\u683c\u548c\u7ea6\u5b9a",level:4},{value:"\u5c3d\u53ef\u80fd\u81ea\u52a8\u5316",id:"\u5c3d\u53ef\u80fd\u81ea\u52a8\u5316",level:4}],g={toc:p},o="wrapper";function m(e){let{components:l,...t}=e;return(0,r.yg)(o,(0,n.A)({},g,t,{components:l,mdxType:"MDXLayout"}),(0,r.yg)("p",null,"\u6bcf\u59295\u70b9\u4e4b\u540e\u82b110\u5206\u949f\u7684\u65f6\u95f4\u5ba1\u67e5\u4e00\u4e0b\u522b\u4eba\u7684\u4ee3\u7801\uff0c\u5e76\u548c\u4ee3\u7801\u4f5c\u8005\u6c9f\u901a\uff1b\n\u9605\u8bfb\u522b\u4eba\u7684\u4ee3\u7801\u662f\u4e00\u79cd\u5f88\u91cd\u8981\u7684\u80fd\u529b\u3002\n\u4ece3\u67082\u53f7\u5f00\u59cb\uff0c\u6bcf\u5929\u7684\u65e5\u62a5\u52a0\u4e0a\u4e00\u4e2a\u5185\u5bb9\uff1a\u4ee3\u7801\u5ba1\u6838\u5185\u5bb9\u603b\u7ed3\uff0c\u4f8b\u5982\uff1a\u9605\u8bfb\u4e86\u3010\u738b\u4e16\u8d85\u3011\u7684\u3010\u6dfb\u52a0\u8bbe\u5907\u3011\u76f8\u5173\u4ee3\u7801\uff0c\u53d1\u73b0\u6709\u4e2a\u547d\u540d\u3010xxx\u3011\u4e0d\u662f\u5f88\u5408\u89c4\u8303\uff0c\u548c\u4ed6\u6c9f\u901a\u8fc7\u540e\uff0cxxx\uff1b\n\u8c01\u6765\u9605\u8bfb\u8c01\u7684\u4ee3\u7801\uff0c\u5404\u81ea\u7ec4\u957f\u5b9a\u4e00\u4e0b\u3002"),(0,r.yg)("p",null,"\u8001\u4eba\u9605\u8bfb\u65b0\u4eba\u7684\u4ee3\u7801\uff0c\u80fd\u591f\u66f4\u660e\u786e\u7684\u77e5\u6653\u65b0\u4eba\u5bf9\u529f\u80fd\u5b9e\u73b0\u7684\u7406\u89e3\u662f\u5426\u5230\u4f4d\uff0c\u8001\u4eba\u662f\u5426\u628a\u4efb\u52a1\u8bf4\u660e\u767d\u4e86\u3002\n\u65b0\u4eba\u9605\u8bfb\u8001\u4eba\u7684\u4ee3\u7801\uff0c\u80fd\u591f\u66f4\u660e\u786e\u7684\u77e5\u6653\u5f53\u524d\u9879\u76ee\u7684\u89c4\u8303\u3001\u6d41\u7a0b\u7b49\u3002\n\u9ad8\u7ea7\u5f00\u53d1\u9605\u8bfb\u521d\u4e2d\u7ea7\u5f00\u53d1\u7684\u4ee3\u7801\uff0c\u80fd\u591f\u67e5\u7f3a\u8865\u6f0f\uff0c\u907f\u514d\u5b89\u5168\u98ce\u9669\uff1b\n\u521d\u4e2d\u7ea7\u5f00\u53d1\u4e50\u961f\u9ad8\u7ea7\u5f00\u53d1\u7684\u4ee3\u7801\uff0c\u80fd\u591f\u5b66\u5230\u66f4\u591a\u4ee3\u7801\u7ecf\u9a8c\u3001\u601d\u60f3\u3001\u610f\u8bc6\u3002"),(0,r.yg)("p",null,"\u4ee3\u7801\u5ba1\u67e5\u5217\u8868\uff0c\u662f\u4ee3\u7801\u5ba1\u67e5\u7684\u660e\u786e\u89c4\u5219\u548c\u6307\u5bfc\u624b\u518c\uff0c\u5b83\u53ef\u4ee5\u4f7f\u4ee3\u7801\u5ba1\u67e5\u4e3a\u4f60\u7684\u56e2\u961f\u5e26\u6765\u66f4\u591a\u597d\u5904\uff0c\u5e76\u4e14\u80fd\u591f\u663e\u8457\u63d0\u5347\u4ee3\u7801\u5ba1\u67e5\u7684\u901f\u5ea6\u3002\u7814\u7a76\u8868\u660e\uff0c\u4f7f\u7528\u4ee3\u7801\u5ba1\u67e5\u5217\u8868\u7684\u5ba1\u9605\u8005\u7684\u8868\u73b0\u8981\u4f18\u4e8e\u4e0d\u4f7f\u7528\u7684\u5ba1\u9605\u8005\u3002\u6240\u4ee5\u4e0d\u7ba1\u4f60\u662f\u65b0\u624b\u5f00\u53d1\u8005\u8fd8\u662f\u7ecf\u9a8c\u4e30\u5bcc\u7684\u5f00\u53d1\u8005\uff0c\u5f00\u59cb\u8003\u8651\u4f7f\u7528\u4ee3\u7801\u5ba1\u67e5\u5217\u8868\u5427\u3002"),(0,r.yg)("h3",{id:"\u4ee3\u7801\u4f5c\u8005\u5e94\u8be5\u5173\u6ce8\u7684\u5217\u8868"},"\u4ee3\u7801\u4f5c\u8005\u5e94\u8be5\u5173\u6ce8\u7684\u5217\u8868"),(0,r.yg)("p",null,"\u4f5c\u4e3a\u4ee3\u7801\u7684\u4f5c\u8005\uff0c\u4f60\u5e94\u8be5\u4fdd\u8bc1\uff1a"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"\u4ee3\u7801\u7f16\u8bd1\u6210\u529f\u5e76\u4e14\u901a\u8fc7\u9759\u6001\u68c0\u67e5\uff08\u6ca1\u6709\u8b66\u544a\uff09"),(0,r.yg)("li",{parentName:"ul"},"\u4ee3\u7801\u901a\u8fc7\u6240\u6709\u7684\u6d4b\u8bd5\uff08\u5355\u5143\u6d4b\u8bd5\u3001\u96c6\u6210\u6d4b\u8bd5\u548c\u7cfb\u7edf\u6d4b\u8bd5\uff09"),(0,r.yg)("li",{parentName:"ul"},"\u4f60\u5df2\u7ecf\u4ed4\u7ec6\u68c0\u67e5\u4e86\u62fc\u5199\u9519\u8bef\uff0c\u5e76\u505a\u4e86\u5904\u7406\uff08\u6ce8\u91ca\u3001todo\u7b49\uff09"),(0,r.yg)("li",{parentName:"ul"},"\u6982\u8ff0\u4ee3\u7801\u4fee\u6539\u7684\u539f\u56e0\u4ee5\u53ca\u4fee\u6539\u4e86\u54ea\u4e9b\u5730\u65b9")),(0,r.yg)("p",null,"\u9664\u6b64\u4e4b\u5916\uff0c\u4f5c\u4e3a\u4ee3\u7801\u4f5c\u8005\uff0c\u4e5f\u5e94\u8be5\u5728\u63d0\u4ea4\u5ba1\u67e5\u4e4b\u524d\uff0c\u6309\u7167\u5ba1\u67e5\u8005\u7684\u5217\u8868\u5bf9\u81ea\u5df1\u7684\u4ee3\u7801\u8fdb\u884c\u5ba1\u67e5\u3002"),(0,r.yg)("h3",{id:"\u4ee3\u7801\u5ba1\u67e5\u8005\u5e94\u8be5\u5173\u6ce8\u7684\u5217\u8868"},"\u4ee3\u7801\u5ba1\u67e5\u8005\u5e94\u8be5\u5173\u6ce8\u7684\u5217\u8868"),(0,r.yg)("p",null,"\u4f5c\u4e3a\u4ee3\u7801\u5ba1\u67e5\u8005\uff0c\u4f60\u7684\u4efb\u52a1\u662f\u5bfb\u627e\u6700\u91cd\u8981\u7684\u95ee\u9898\u3002\u8bc4\u8bba\u4f1a\u5bf9\u4ee3\u7801\u7684\u7ed3\u6784\u6027\u6216\u903b\u8f91\u6027\u95ee\u9898\u66f4\u6709\u4ef7\u503c\uff0c\u5373\u4f7f\u6709\u65f6\u5019\u4f1a\u663e\u5f97\u6311\u5254\u3002\u4f60\u5e94\u8be5\u77e5\u9053\u4ec0\u4e48\u662f\u597d\u7684\u4ee3\u7801\u53cd\u9988\u3002\u53e6\u5916\u9700\u8981\u6ce8\u610f\uff0c\u6700\u597d\u7684\u4ee3\u7801\u5ba1\u67e5\u53cd\u9988\u4e0d\u662f\u70b9\u8bc4\uff0c\u800c\u662f\u5efa\u8bae\u3002\u6240\u4ee5\u4e0d\u8981\u8bf4\u201c\u53d8\u91cf\u540d\u79f0\u5e94\u8be5\u662fremoveObject\u201c\uff0c\u6700\u597d\u8bf4\u201d\u8c03\u7528\u53d8\u91cfremoveObject\u600e\u4e48\u6837\uff1f\u201c\u3002\n\u4e0b\u9762\u8fd9\u4efd\u5217\u8868\u8db3\u591f\u5e2e\u52a9\u4f60\u63d0\u51fa\u597d\u7684\u4ee3\u7801\u5ba1\u67e5\u53cd\u9988\u4e86\u3002"),(0,r.yg)("h4",{id:"\u5b9e\u73b0"},"\u5b9e\u73b0"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"\u6b64\u4ee3\u7801\u66f4\u6539\u4f1a\u6267\u884c\u5b83\u5e94\u8be5\u505a\u7684\u4e8b\u60c5\u5417\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u8fd9\u79cd\u89e3\u51b3\u65b9\u6cd5\u662f\u6700\u7b80\u5355\u7684\u5417\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u8fd9\u4e2a\u66f4\u6539\u6709\u5f15\u5165\u4e00\u4e9b\u4e0d\u9700\u8981\u7684\u7f16\u8bd1\u65f6\u6216\u8fd0\u884c\u65f6\u7684\u4f9d\u8d56\u5417\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u662f\u5426\u4f7f\u7528\u4e86\u4e0d\u5e94\u8be5\u4f7f\u7528\u7684\u6846\u67b6\u3001API\u3001\u5e93\u3001\u670d\u52a1\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u662f\u5426\u5b58\u5728\u53ef\u4ee5\u63d0\u5347\u89e3\u51b3\u65b9\u6cd5\u7684\u672a\u4f7f\u7528\u7684\u6846\u67b6\u3001API\u3001\u5e93\u3001\u670d\u52a1\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u4ee3\u7801\u662f\u5426\u5904\u4e8e\u6b63\u786e\u7684\u62bd\u8c61\u7ea7\u522b\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u4ee3\u7801\u7684\u6a21\u5757\u5316\u505a\u7684\u662f\u5426\u8db3\u591f\u597d\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u4f60\u662f\u5426\u6709\u5176\u4ed6\u7684\u89e3\u51b3\u65b9\u6848\uff0c\u8be5\u65b9\u6848\u5728\u4ee3\u7801\u53ef\u7ef4\u62a4\u6027\u3001\u53ef\u8bfb\u6027\u3001\u6027\u80fd\u3001\u5b89\u5168\u65b9\u9762\u8868\u73b0\u66f4\u597d\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u662f\u5426\u5df2\u7ecf\u5b58\u5728\u7c7b\u4f3c\u529f\u80fd\u7684\u51fd\u6570\uff1f\u5982\u679c\u6709\uff0c\u4e3a\u4ec0\u4e48\u4e0d\u590d\u7528\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u662f\u5426\u6709\u6700\u4f73\u5b9e\u8df5\u3001\u8bbe\u8ba1\u6a21\u5f0f\u6216\u7279\u5b9a\u8bed\u8a00\u6a21\u5f0f\u53ef\u4ee5\u4f18\u5316\u4ee3\u7801\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u4ee3\u7801\u662f\u5426\u9075\u5faa\u9762\u5411\u5bf9\u8c61\u7684\u5206\u6790\u548c\u8bbe\u8ba1\u539f\u5219\uff0c\u4f8b\u5982\u5355\u4e00\u8d23\u4efb\u539f\u5219\uff0c\u5f00\u95ed\u539f\u5219\uff0c\u91cc\u6c0f\u66ff\u6362\u539f\u5219\uff0c\u63a5\u53e3\u9694\u79bb\uff0c\u4f9d\u8d56\u6ce8\u5165\uff1f")),(0,r.yg)("h4",{id:"\u903b\u8f91\u9519\u8bef\u6216bug"},"\u903b\u8f91\u9519\u8bef\u6216Bug"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"\u4f60\u80fd\u60f3\u5230\u4ee3\u7801\u4e0d\u6309\u9884\u671f\u8fd0\u884c\u7684\u4efb\u4f55\u7528\u4f8b\u5417\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u4f60\u80fd\u60f3\u5230\u4efb\u4f55\u53ef\u80fd\u7834\u574f\u4ee3\u7801\u7684\u8f93\u5165\u6216\u5916\u90e8\u4e8b\u4ef6\u5417\uff1f")),(0,r.yg)("h4",{id:"\u9519\u8bef\u5904\u7406\u548c\u65e5\u5fd7"},"\u9519\u8bef\u5904\u7406\u548c\u65e5\u5fd7"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"\u9519\u8bef\u90fd\u88ab\u6b63\u786e\u5904\u7406\u4e86\u5417\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u662f\u5426\u6709\u9700\u8981\u589e\u52a0\u6216\u5220\u9664\u7684\u65e5\u5fd7/debug\u4fe1\u606f\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u9519\u8bef\u6d88\u606f\u5bf9\u7528\u6237\u662f\u5426\u53cb\u597d\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u662f\u5426\u6709\u8db3\u591f\u7684\u65e5\u5fd7\uff0c\u5b83\u4eec\u7684\u7f16\u5199\u65b9\u5f0f\u662f\u5426\u662f\u6613\u4e8e\u8c03\u8bd5\u7684\uff1f")),(0,r.yg)("h4",{id:"\u53ef\u7528\u6027\u548c\u53ef\u8bbf\u95ee\u6027"},"\u53ef\u7528\u6027\u548c\u53ef\u8bbf\u95ee\u6027"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"\u4ece\u53ef\u7528\u6027\u89d2\u5ea6\u51fa\u53d1\uff0c\u6240\u63d0\u51fa\u7684\u89e3\u51b3\u65b9\u6848\u662f\u5426\u8bbe\u8ba1\u5408\u7406\uff1f"),(0,r.yg)("li",{parentName:"ul"},"API\u6587\u6863\u662f\u5426\u8db3\u591f\u597d\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u63d0\u51fa\u7684\u89e3\u51b3\u65b9\u6848\u662f\u5426\u5177\u5907\u53ef\u8bbf\u95ee\u6027\uff1f"),(0,r.yg)("li",{parentName:"ul"},"API/UI\u662f\u5426\u76f4\u89c2\u6613\u7528\uff1f")),(0,r.yg)("h4",{id:"\u6d4b\u8bd5\u4e0e\u53ef\u6d4b\u8bd5\u6027"},"\u6d4b\u8bd5\u4e0e\u53ef\u6d4b\u8bd5\u6027"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"\u4ee3\u7801\u662f\u5426\u8fbe\u5230\u53ef\u6d4b\u8bd5\u6807\u51c6\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u662f\u5426\u6709\u8db3\u591f\u7684\u81ea\u52a8\u5316\u6d4b\u8bd5\uff08\u5355\u5143\u6d4b\u8bd5/\u96c6\u6210\u6d4b\u8bd5/\u7cfb\u7edf\u6d4b\u8bd5\uff09\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u73b0\u6709\u6d4b\u8bd5\u662f\u5426\u5408\u7406\u8986\u76d6\u4ee3\u7801\u53d8\u66f4\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u662f\u5426\u6709\u989d\u5916\u7684\u6d4b\u8bd5\u7528\u4f8b\u3001\u8f93\u5165\u6216\u8fb9\u754c\u7528\u4f8b\u4ee5\u4f9b\u6d4b\u8bd5\uff1f")),(0,r.yg)("h4",{id:"\u4f9d\u8d56"},"\u4f9d\u8d56"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"\u5982\u679c\u8fd9\u4e2a\u4fee\u6539\u9700\u8981\u66f4\u65b0\u4ee3\u7801\u4ee5\u5916\u7684\u6587\u4ef6\uff0c\u4f8b\u5982\u66f4\u65b0\u6587\u6863\uff0c\u914d\u7f6e\uff0creadme\u6587\u4ef6\u3002\u662f\u5426\u5b8c\u6210\u4e86\u8fd9\u4e9b\u66f4\u65b0\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u8fd9\u4e2a\u4fee\u6539\u662f\u5426\u4f1a\u5bf9\u7cfb\u7edf\u5176\u4ed6\u5730\u65b9\u9020\u6210\u5f71\u54cd\uff1f\u662f\u5426\u80fd\u540e\u5411\u540e\u517c\u5bb9\uff1f")),(0,r.yg)("h4",{id:"\u5b89\u5168\u548c\u9690\u79c1\u6570\u636e"},"\u5b89\u5168\u548c\u9690\u79c1\u6570\u636e"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"\u8fd9\u6bb5\u4ee3\u7801\u662f\u5426\u6253\u5f00\u8f6f\u4ef6\u7684\u5b89\u5168\u6f0f\u6d1e\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u6743\u9650\u548c\u8eab\u4efd\u9a8c\u8bc1\u662f\u5426\u88ab\u6b63\u786e\u5904\u7406\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u662f\u5426\u5b89\u5168\u5904\u7406\u4e86\u654f\u611f\u6570\u636e\uff0c\u4f8b\u5982\u7528\u6237\u6570\u636e\u3001\u4fe1\u7528\u5361\u4fe1\u606f\u7b49\uff1f\u662f\u5426\u6b63\u786e\u4f7f\u7528\u52a0\u5bc6\u65b9\u6cd5\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u4ee3\u7801\u66f4\u6539\u662f\u5426\u663e\u9732\u4e86\u4e00\u4e9b\u79c1\u5bc6\u4fe1\u606f\uff08\u5982\u79d8\u94a5\uff0c\u7528\u6237\u540d\u7b49\uff09\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u5982\u679c\u4ee3\u7801\u5904\u7406\u7528\u6237\u8f93\u5165\uff0c\u662f\u5426\u89e3\u51b3\u4e86\u8de8\u7ad9\u70b9\u811a\u672c\uff0cSQL\u6ce8\u5165\u7b49\u5b89\u5168\u6f0f\u6d1e\uff0c\u662f\u5426\u8fdb\u884c\u4e86\u8f93\u5165\u6e05\u6d17\u548c\u9a8c\u8bc1\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u4ece\u5916\u90e8API\u6216\u5e93\u4e2d\u83b7\u5f97\u7684\u6570\u636e\u662f\u5426\u8fdb\u884c\u4e86\u76f8\u5e94\u7684\u68c0\u67e5\uff1f")),(0,r.yg)("h4",{id:"\u6027\u80fd"},"\u6027\u80fd"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"\u8fd9\u6bb5\u4ee3\u7801\u4fee\u6539\u662f\u5426\u4f1a\u5bf9\u7cfb\u7edf\u6027\u80fd\u4ea7\u751f\u8d1f\u9762\u5f71\u54cd\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u662f\u5426\u53ef\u4ee5\u8fdb\u4e00\u6b65\u63d0\u5347\u4ee3\u7801\u6027\u80fd\uff1f")),(0,r.yg)("h4",{id:"\u53ef\u8bfb\u6027"},"\u53ef\u8bfb\u6027"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"\u4ee3\u7801\u662f\u5426\u5bb9\u6613\u7406\u89e3\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u54ea\u4e00\u90e8\u5206\u4f7f\u4f60\u56f0\u60d1\uff0c\u4e3a\u4ec0\u4e48\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u53ef\u4ee5\u901a\u8fc7\u51cf\u5c0f\u65b9\u6cd5\u6765\u63d0\u9ad8\u4ee3\u7801\u53ef\u8bfb\u6027\u5417\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u53ef\u4ee5\u901a\u8fc7\u4f7f\u7528\u4e0d\u540c\u7684\u51fd\u6570/\u65b9\u6cd5\u6216\u53d8\u91cf\u540d\u79f0\u6765\u63d0\u5347\u4ee3\u7801\u53ef\u8bfb\u6027\u5417\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u4ee3\u7801\u662f\u5426\u5b58\u653e\u5728\u6b63\u786e\u7684\u6587\u4ef6/\u76ee\u5f55/\u5305\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u4f60\u662f\u5426\u8ba4\u4e3a\u65b9\u6cd5\u5e94\u8be5\u91cd\u6784\u4ee5\u62e5\u6709\u66f4\u76f4\u89c2\u7684\u63a7\u5236\u6d41\u7a0b\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u6570\u636e\u6d41\u662f\u5426\u53ef\u7406\u89e3\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u662f\u5426\u6709\u591a\u4f59\u7684\u6ce8\u91ca\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u67d0\u4e9b\u6ce8\u91ca\u662f\u5426\u53ef\u4ee5\u66f4\u597d\u7684\u4f20\u8fbe\u4fe1\u606f\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u662f\u5426\u66f4\u591a\u7684\u6ce8\u91ca\u4f1a\u4f7f\u4f60\u7684\u4ee3\u7801\u66f4\u5bb9\u6613\u7406\u89e3\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u662f\u5426\u53ef\u4ee5\u79fb\u9664\u4e00\u4e9b\u6ce8\u91ca\uff0c\u901a\u8fc7\u63d0\u5347\u4ee3\u7801\u53ef\u8bfb\u6027\u6765\u7406\u89e3\u4ee3\u7801\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u662f\u5426\u5b58\u5728\u6ce8\u91ca\u6389\u7684\u4ee3\u7801\uff1f")),(0,r.yg)("h4",{id:"\u4e13\u5bb6\u610f\u89c1"},"\u4e13\u5bb6\u610f\u89c1"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"\u4f60\u662f\u5426\u8ba4\u4e3a\u7279\u5b9a\u4e13\u5bb6\uff08\u5982\u5b89\u5168\u4e13\u5bb6\u6216\u53ef\u7528\u6027\u4e13\u5bb6\uff09\u5e94\u8be5\u5148\u68c0\u67e5\u4ee3\u7801\uff0c\u7136\u540e\u518d\u63d0\u4ea4\u4ee3\u7801\uff1f"),(0,r.yg)("li",{parentName:"ul"},"\u8fd9\u4e2a\u4ee3\u7801\u4fee\u6539\u4f1a\u5f71\u54cd\u5176\u4ed6\u56e2\u961f\u5417\uff1f\u4ed6\u4eec\u4e5f\u5e94\u8be5\u53d1\u8868\u610f\u89c1\u5417\uff1f")),(0,r.yg)("h4",{id:"\u4ee3\u7801\u98ce\u683c\u548c\u7ea6\u5b9a"},"\u4ee3\u7801\u98ce\u683c\u548c\u7ea6\u5b9a"),(0,r.yg)("p",null,"\u60a8\u7684\u56e2\u961f\u6216\u516c\u53f8\u5fc5\u987b\u62e5\u6709\u6e05\u6670\u7684\u7f16\u7801\u98ce\u683c\u6307\u5357\uff0c\u8fd9\u4e00\u70b9\u5f88\u91cd\u8981\u3002\u56e0\u4e3a\u8fd9\u662f\u5728\u4ee3\u7801\u5e93\u4e2d\u5b9e\u65bd\u552f\u4e00\u6027\u7684\u552f\u4e00\u65b9\u6cd5\u3002\u5e76\u4e14\u4e00\u81f4\u6027\u4f1a\u4f7f\u4ee3\u7801\u5ba1\u67e5\u66f4\u5feb\uff0c\u4f7f\u4eba\u4eec\u53ef\u4ee5\u8f7b\u677e\u5730\u66f4\u6539\u9879\u76ee\uff0c\u5e76\u4fdd\u6301\u60a8\u4ee3\u7801\u7684\u53ef\u8bfb\u6027\u548c\u53ef\u7ef4\u62a4\u6027\u3002Google\u662f\u505a\u5230\u8fd9\u4e00\u70b9\u7684\u5f88\u597d\u7684\u4f8b\u5b50\uff0c\u65e0\u7591\uff0c\u8fd9\u4f7fGoogle\u53ef\u4ee5\u8fdb\u884c\u5feb\u901f\u7684\u4ee3\u7801\u5ba1\u67e5\u3002\u9996\u5148\uff0c\u6211\u5efa\u8bae\u4f7f\u7528\u73b0\u6210\u7684\u7f16\u7801\u6837\u5f0f\u6765\u652f\u6301Google\u63d0\u4f9b\u7684\u591a\u79cd\u8bed\u8a00\u3002\u8bbe\u5b9a\u57fa\u672c\u89c4\u5219\u5f88\u91cd\u8981\uff0c\u4f46\u8981\u786e\u4fdd\u4e00\u52b3\u6c38\u9038\u3002\u4e0d\u8981\u6301\u7eed\u4e89\u8bba\u3002"),(0,r.yg)("h4",{id:"\u5c3d\u53ef\u80fd\u81ea\u52a8\u5316"},"\u5c3d\u53ef\u80fd\u81ea\u52a8\u5316"),(0,r.yg)("p",null,"\u786e\u5b9a\u4e86\u4ee3\u7801\u98ce\u683c\u4ee5\u540e\uff0c\u8bf7\u82b1\u4e00\u4e9b\u65f6\u95f4\u6b63\u786e\u5b89\u88c5\u548c\u914d\u7f6e\u5de5\u5177\uff0c\u4ee5\u4fbf\u4e00\u952e\u683c\u5f0f\u5316\u4ee3\u7801\u3002\u53e6\u5916\u8fd8\u6709\u5f88\u591a\u4e8b\u60c5\u53ef\u4ee5\u505a\u3002\u4f8b\u5982\u4f7f\u7528\u9759\u6001\u68c0\u67e5\u6765\u4ee3\u66ff\u90e8\u5206\u4eba\u5de5\u5ba1\u6838\u3002\u8fd9\u662f\u503c\u5f97\u4e3a\u4e4b\u52aa\u529b\u7684\u3002"))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8cc20a8d.c9b72d6e.js b/assets/js/8cc20a8d.fac1457c.js similarity index 98% rename from assets/js/8cc20a8d.c9b72d6e.js rename to assets/js/8cc20a8d.fac1457c.js index 7a014e559..b51fb0beb 100644 --- a/assets/js/8cc20a8d.c9b72d6e.js +++ b/assets/js/8cc20a8d.fac1457c.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3338],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>f});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var i=n.createContext({}),s=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},u=function(e){var t=s(e.components);return n.createElement(i.Provider,{value:t},e.children)},l="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,i=e.parentName,u=p(e,["components","mdxType","originalType","parentName"]),l=s(r),y=a,f=l["".concat(i,".").concat(y)]||l[y]||d[y]||o;return r?n.createElement(f,c(c({ref:t},u),{},{components:r})):n.createElement(f,c({ref:t},u))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,c=new Array(o);c[0]=y;var p={};for(var i in t)hasOwnProperty.call(t,i)&&(p[i]=t[i]);p.originalType=e,p[l]="string"==typeof e?e:a,c[1]=p;for(var s=2;s{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>c,default:()=>d,frontMatter:()=>o,metadata:()=>p,toc:()=>s});var n=r(8168),a=(r(6540),r(5680));const o={},c=void 0,p={unversionedId:"study/hard/\u8def\u7531\u5668\u548c\u4ea4\u6362\u673a\u7684\u533a\u522b",id:"study/hard/\u8def\u7531\u5668\u548c\u4ea4\u6362\u673a\u7684\u533a\u522b",title:"\u8def\u7531\u5668\u548c\u4ea4\u6362\u673a\u7684\u533a\u522b",description:"\u8def\u7531\u5668\u548c\u4ea4\u6362\u673a\u7684\u4e0d\u540c\u4e4b\u5904\u6709\u54ea\u4e9b\uff1f",source:"@site/docs/study/hard/\u8def\u7531\u5668\u548c\u4ea4\u6362\u673a\u7684\u533a\u522b.md",sourceDirName:"study/hard",slug:"/study/hard/\u8def\u7531\u5668\u548c\u4ea4\u6362\u673a\u7684\u533a\u522b",permalink:"/docs/study/hard/\u8def\u7531\u5668\u548c\u4ea4\u6362\u673a\u7684\u533a\u522b",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u786c\u4ef6\u5f00\u53d1\u548c\u5d4c\u5165\u5f0f\u5f00\u53d1",permalink:"/docs/study/hard/\u786c\u4ef6\u5f00\u53d1\u548c\u5d4c\u5165\u5f0f\u5f00\u53d1"},next:{title:"\u901a\u4fe1\u6a21\u7ec4",permalink:"/docs/study/hard/\u901a\u4fe1\u6a21\u7ec4"}},i={},s=[],u={toc:s},l="wrapper";function d(e){let{components:t,...r}=e;return(0,a.yg)(l,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("p",null,(0,a.yg)("a",{parentName:"p",href:"https://www.zhihu.com/question/20465477"},(0,a.yg)("strong",{parentName:"a"},"\u8def\u7531\u5668\u548c\u4ea4\u6362\u673a\u7684\u4e0d\u540c\u4e4b\u5904\u6709\u54ea\u4e9b\uff1f"))),(0,a.yg)("p",null,(0,a.yg)("strong",{parentName:"p"},"\u5de5\u4f5c\u5c42\u6b21\u4e0d\u540c\uff1a"),"\n\u4ea4\u6362\u673a\u4e3b\u8981\u5de5\u4f5c\u5728\u6570\u636e\u94fe\u8def\u5c42\uff08\u7b2c\u4e8c\u5c42\uff09\n\u8def\u7531\u5668\u5de5\u4f5c\u5728\u7f51\u7edc\u5c42\uff08\u7b2c\u4e09\u5c42\uff09\u3002\n",(0,a.yg)("strong",{parentName:"p"},"\u8f6c\u53d1\u4f9d\u636e\u4e0d\u540c\uff1a"),"\n\u4ea4\u6362\u673a\u8f6c\u53d1\u6240\u4f9d\u636e\u7684\u5bf9\u8c61\u65f6\uff1aMAC\u5730\u5740\u3002\uff08\u7269\u7406\u5730\u5740\uff09\n\u8def\u7531\u8f6c\u53d1\u6240\u4f9d\u636e\u7684\u5bf9\u8c61\u662f\uff1aIP\u5730\u5740\u3002\uff08\u7f51\u7edc\u5730\u5740\uff09\n",(0,a.yg)("strong",{parentName:"p"},"\u4e3b\u8981\u529f\u80fd\u4e0d\u540c\uff1a"),"\n\u4ea4\u6362\u673a\u4e3b\u8981\u7528\u4e8e\u7ec4\u5efa\u5c40\u57df\u7f51\uff0c\n\u800c\u8def\u7531\u4e3b\u8981\u529f\u80fd\u662f\u5c06\u7531\u4ea4\u6362\u673a\u7ec4\u597d\u7684\u5c40\u57df\u7f51\u76f8\u4e92\u8fde\u63a5\u8d77\u6765\uff0c\u6216\u8005\u63a5\u5165Internet\u3002\n\u4ea4\u6362\u673a\u80fd\u505a\u7684\uff0c\u8def\u7531\u90fd\u80fd\u505a\u3002\n\u4ea4\u6362\u673a\u4e0d\u80fd\u5206\u5272\u5e7f\u64ad\u57df\uff0c\u8def\u7531\u53ef\u4ee5\u3002\n\u8def\u7531\u8fd8\u53ef\u4ee5\u63d0\u4f9b\u9632\u706b\u5899\u7684\u529f\u80fd\u3002\n\u8def\u7531\u914d\u7f6e\u6bd4\u4ea4\u6362\u673a\u590d\u6742\u3002\n",(0,a.yg)("strong",{parentName:"p"},"\u4ef7\u683c\u4e0d\u540c"),"\n\u4ea4\u6362\u673a\u662f\u770b\u95e8\u5927\u7237\uff0c\u8def\u7531\u662f\u90ae\u5dee\u3002"))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3338],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>f});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var i=n.createContext({}),s=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},u=function(e){var t=s(e.components);return n.createElement(i.Provider,{value:t},e.children)},l="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,i=e.parentName,u=p(e,["components","mdxType","originalType","parentName"]),l=s(r),y=a,f=l["".concat(i,".").concat(y)]||l[y]||d[y]||o;return r?n.createElement(f,c(c({ref:t},u),{},{components:r})):n.createElement(f,c({ref:t},u))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,c=new Array(o);c[0]=y;var p={};for(var i in t)hasOwnProperty.call(t,i)&&(p[i]=t[i]);p.originalType=e,p[l]="string"==typeof e?e:a,c[1]=p;for(var s=2;s{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>c,default:()=>d,frontMatter:()=>o,metadata:()=>p,toc:()=>s});var n=r(8168),a=(r(6540),r(5680));const o={},c=void 0,p={unversionedId:"study/hard/\u8def\u7531\u5668\u548c\u4ea4\u6362\u673a\u7684\u533a\u522b",id:"study/hard/\u8def\u7531\u5668\u548c\u4ea4\u6362\u673a\u7684\u533a\u522b",title:"\u8def\u7531\u5668\u548c\u4ea4\u6362\u673a\u7684\u533a\u522b",description:"\u8def\u7531\u5668\u548c\u4ea4\u6362\u673a\u7684\u4e0d\u540c\u4e4b\u5904\u6709\u54ea\u4e9b\uff1f",source:"@site/docs/study/hard/\u8def\u7531\u5668\u548c\u4ea4\u6362\u673a\u7684\u533a\u522b.md",sourceDirName:"study/hard",slug:"/study/hard/\u8def\u7531\u5668\u548c\u4ea4\u6362\u673a\u7684\u533a\u522b",permalink:"/docs/study/hard/\u8def\u7531\u5668\u548c\u4ea4\u6362\u673a\u7684\u533a\u522b",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u786c\u4ef6\u5f00\u53d1\u548c\u5d4c\u5165\u5f0f\u5f00\u53d1",permalink:"/docs/study/hard/\u786c\u4ef6\u5f00\u53d1\u548c\u5d4c\u5165\u5f0f\u5f00\u53d1"},next:{title:"\u901a\u4fe1\u6a21\u7ec4",permalink:"/docs/study/hard/\u901a\u4fe1\u6a21\u7ec4"}},i={},s=[],u={toc:s},l="wrapper";function d(e){let{components:t,...r}=e;return(0,a.yg)(l,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("p",null,(0,a.yg)("a",{parentName:"p",href:"https://www.zhihu.com/question/20465477"},(0,a.yg)("strong",{parentName:"a"},"\u8def\u7531\u5668\u548c\u4ea4\u6362\u673a\u7684\u4e0d\u540c\u4e4b\u5904\u6709\u54ea\u4e9b\uff1f"))),(0,a.yg)("p",null,(0,a.yg)("strong",{parentName:"p"},"\u5de5\u4f5c\u5c42\u6b21\u4e0d\u540c\uff1a"),"\n\u4ea4\u6362\u673a\u4e3b\u8981\u5de5\u4f5c\u5728\u6570\u636e\u94fe\u8def\u5c42\uff08\u7b2c\u4e8c\u5c42\uff09\n\u8def\u7531\u5668\u5de5\u4f5c\u5728\u7f51\u7edc\u5c42\uff08\u7b2c\u4e09\u5c42\uff09\u3002\n",(0,a.yg)("strong",{parentName:"p"},"\u8f6c\u53d1\u4f9d\u636e\u4e0d\u540c\uff1a"),"\n\u4ea4\u6362\u673a\u8f6c\u53d1\u6240\u4f9d\u636e\u7684\u5bf9\u8c61\u65f6\uff1aMAC\u5730\u5740\u3002\uff08\u7269\u7406\u5730\u5740\uff09\n\u8def\u7531\u8f6c\u53d1\u6240\u4f9d\u636e\u7684\u5bf9\u8c61\u662f\uff1aIP\u5730\u5740\u3002\uff08\u7f51\u7edc\u5730\u5740\uff09\n",(0,a.yg)("strong",{parentName:"p"},"\u4e3b\u8981\u529f\u80fd\u4e0d\u540c\uff1a"),"\n\u4ea4\u6362\u673a\u4e3b\u8981\u7528\u4e8e\u7ec4\u5efa\u5c40\u57df\u7f51\uff0c\n\u800c\u8def\u7531\u4e3b\u8981\u529f\u80fd\u662f\u5c06\u7531\u4ea4\u6362\u673a\u7ec4\u597d\u7684\u5c40\u57df\u7f51\u76f8\u4e92\u8fde\u63a5\u8d77\u6765\uff0c\u6216\u8005\u63a5\u5165Internet\u3002\n\u4ea4\u6362\u673a\u80fd\u505a\u7684\uff0c\u8def\u7531\u90fd\u80fd\u505a\u3002\n\u4ea4\u6362\u673a\u4e0d\u80fd\u5206\u5272\u5e7f\u64ad\u57df\uff0c\u8def\u7531\u53ef\u4ee5\u3002\n\u8def\u7531\u8fd8\u53ef\u4ee5\u63d0\u4f9b\u9632\u706b\u5899\u7684\u529f\u80fd\u3002\n\u8def\u7531\u914d\u7f6e\u6bd4\u4ea4\u6362\u673a\u590d\u6742\u3002\n",(0,a.yg)("strong",{parentName:"p"},"\u4ef7\u683c\u4e0d\u540c"),"\n\u4ea4\u6362\u673a\u662f\u770b\u95e8\u5927\u7237\uff0c\u8def\u7531\u662f\u90ae\u5dee\u3002"))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/9062da7c.82356233.js b/assets/js/9062da7c.51dcb40b.js similarity index 98% rename from assets/js/9062da7c.82356233.js rename to assets/js/9062da7c.51dcb40b.js index b9e857296..dd7513824 100644 --- a/assets/js/9062da7c.82356233.js +++ b/assets/js/9062da7c.51dcb40b.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9063],{5680:(e,r,t)=>{t.d(r,{xA:()=>i,yg:()=>m});var n=t(6540);function o(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function c(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function s(e){for(var r=1;r=0||(o[t]=e[t]);return o}(e,r);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var l=n.createContext({}),d=function(e){var r=n.useContext(l),t=r;return e&&(t="function"==typeof e?e(r):s(s({},r),e)),t},i=function(e){var r=d(e.components);return n.createElement(l.Provider,{value:r},e.children)},u="mdxType",p={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},y=n.forwardRef((function(e,r){var t=e.components,o=e.mdxType,c=e.originalType,l=e.parentName,i=a(e,["components","mdxType","originalType","parentName"]),u=d(t),y=o,m=u["".concat(l,".").concat(y)]||u[y]||p[y]||c;return t?n.createElement(m,s(s({ref:r},i),{},{components:t})):n.createElement(m,s({ref:r},i))}));function m(e,r){var t=arguments,o=r&&r.mdxType;if("string"==typeof e||o){var c=t.length,s=new Array(c);s[0]=y;var a={};for(var l in r)hasOwnProperty.call(r,l)&&(a[l]=r[l]);a.originalType=e,a[u]="string"==typeof e?e:o,s[1]=a;for(var d=2;d{t.r(r),t.d(r,{assets:()=>l,contentTitle:()=>s,default:()=>p,frontMatter:()=>c,metadata:()=>a,toc:()=>d});var n=t(8168),o=(t(6540),t(5680));const c={},s="docker-mysql",a={unversionedId:"study/docker/docker-mysql",id:"study/docker/docker-mysql",title:"docker-mysql",description:"",source:"@site/docs/study/docker/docker-mysql.md",sourceDirName:"study/docker",slug:"/study/docker/docker-mysql",permalink:"/docs/study/docker/docker-mysql",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"docker-linux",permalink:"/docs/study/docker/docker-linux"},next:{title:"docker-nginx",permalink:"/docs/study/docker/docker-nginx"}},l={},d=[],i={toc:d},u="wrapper";function p(e){let{components:r,...t}=e;return(0,o.yg)(u,(0,n.A)({},i,t,{components:r,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"docker-mysql"},"docker-mysql"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-shell"},"# \u5982\u679c\u8fd8\u6ca1\u5b89\u88c5docker\u670d\u52a1\u7684\u8bdd(centos)\nyum install docker\n# \u5982\u679c\u8fd8\u6ca1\u542f\u52a8docker\u670d\u52a1\u7684\u8bdd\nsystemctl start docker\n#\ndocker pull mysql:8.0.33\n# \u7eaf\u7cb9\u5b66\u4e60\u4f7f\u7528\ndocker run -d \\\n-p 13306:3306 \\\n--privileged=true \\\n-e TZ=Asia/Shanghai \\\n-e MYSQL_ROOT_PASSWORD=Aa0123 \\\n--name mysql-study \\\nmysql:8.0.33\n\n\ndocker exec -it mysql-study bash\n\nmysql -u root -p\n\nuse mysql\nupdate user set authentication_string ='' where user = 'root';\nflush privileges;\nALTER user 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'Aa0123';\nALTER user 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Aa0123';\nflush privileges;\n\n\ndocker stop mysql-study\ndocker rm mysql-study\n")))}p.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9063],{5680:(e,r,t)=>{t.d(r,{xA:()=>i,yg:()=>m});var n=t(6540);function o(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function c(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function s(e){for(var r=1;r=0||(o[t]=e[t]);return o}(e,r);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var l=n.createContext({}),d=function(e){var r=n.useContext(l),t=r;return e&&(t="function"==typeof e?e(r):s(s({},r),e)),t},i=function(e){var r=d(e.components);return n.createElement(l.Provider,{value:r},e.children)},u="mdxType",p={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},y=n.forwardRef((function(e,r){var t=e.components,o=e.mdxType,c=e.originalType,l=e.parentName,i=a(e,["components","mdxType","originalType","parentName"]),u=d(t),y=o,m=u["".concat(l,".").concat(y)]||u[y]||p[y]||c;return t?n.createElement(m,s(s({ref:r},i),{},{components:t})):n.createElement(m,s({ref:r},i))}));function m(e,r){var t=arguments,o=r&&r.mdxType;if("string"==typeof e||o){var c=t.length,s=new Array(c);s[0]=y;var a={};for(var l in r)hasOwnProperty.call(r,l)&&(a[l]=r[l]);a.originalType=e,a[u]="string"==typeof e?e:o,s[1]=a;for(var d=2;d{t.r(r),t.d(r,{assets:()=>l,contentTitle:()=>s,default:()=>p,frontMatter:()=>c,metadata:()=>a,toc:()=>d});var n=t(8168),o=(t(6540),t(5680));const c={},s="docker-mysql",a={unversionedId:"study/docker/docker-mysql",id:"study/docker/docker-mysql",title:"docker-mysql",description:"",source:"@site/docs/study/docker/docker-mysql.md",sourceDirName:"study/docker",slug:"/study/docker/docker-mysql",permalink:"/docs/study/docker/docker-mysql",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"docker-linux",permalink:"/docs/study/docker/docker-linux"},next:{title:"docker-nginx",permalink:"/docs/study/docker/docker-nginx"}},l={},d=[],i={toc:d},u="wrapper";function p(e){let{components:r,...t}=e;return(0,o.yg)(u,(0,n.A)({},i,t,{components:r,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"docker-mysql"},"docker-mysql"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-shell"},"# \u5982\u679c\u8fd8\u6ca1\u5b89\u88c5docker\u670d\u52a1\u7684\u8bdd(centos)\nyum install docker\n# \u5982\u679c\u8fd8\u6ca1\u542f\u52a8docker\u670d\u52a1\u7684\u8bdd\nsystemctl start docker\n#\ndocker pull mysql:8.0.33\n# \u7eaf\u7cb9\u5b66\u4e60\u4f7f\u7528\ndocker run -d \\\n-p 13306:3306 \\\n--privileged=true \\\n-e TZ=Asia/Shanghai \\\n-e MYSQL_ROOT_PASSWORD=Aa0123 \\\n--name mysql-study \\\nmysql:8.0.33\n\n\ndocker exec -it mysql-study bash\n\nmysql -u root -p\n\nuse mysql\nupdate user set authentication_string ='' where user = 'root';\nflush privileges;\nALTER user 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'Aa0123';\nALTER user 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Aa0123';\nflush privileges;\n\n\ndocker stop mysql-study\ndocker rm mysql-study\n")))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/94529d15.af0941ec.js b/assets/js/94529d15.0a2d6455.js similarity index 98% rename from assets/js/94529d15.af0941ec.js rename to assets/js/94529d15.0a2d6455.js index e8e557ac0..07212d90c 100644 --- a/assets/js/94529d15.af0941ec.js +++ b/assets/js/94529d15.0a2d6455.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2996],{5680:(e,r,t)=>{t.d(r,{xA:()=>u,yg:()=>f});var n=t(6540);function o(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function a(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function c(e){for(var r=1;r=0||(o[t]=e[t]);return o}(e,r);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var p=n.createContext({}),l=function(e){var r=n.useContext(p),t=r;return e&&(t="function"==typeof e?e(r):c(c({},r),e)),t},u=function(e){var r=l(e.components);return n.createElement(p.Provider,{value:r},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},y=n.forwardRef((function(e,r){var t=e.components,o=e.mdxType,a=e.originalType,p=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),s=l(t),y=o,f=s["".concat(p,".").concat(y)]||s[y]||d[y]||a;return t?n.createElement(f,c(c({ref:r},u),{},{components:t})):n.createElement(f,c({ref:r},u))}));function f(e,r){var t=arguments,o=r&&r.mdxType;if("string"==typeof e||o){var a=t.length,c=new Array(a);c[0]=y;var i={};for(var p in r)hasOwnProperty.call(r,p)&&(i[p]=r[p]);i.originalType=e,i[s]="string"==typeof e?e:o,c[1]=i;for(var l=2;l{t.r(r),t.d(r,{assets:()=>p,contentTitle:()=>c,default:()=>d,frontMatter:()=>a,metadata:()=>i,toc:()=>l});var n=t(8168),o=(t(6540),t(5680));const a={},c="C C++ \u7f16\u7a0b\u8bed\u8a00",i={unversionedId:"study/program/C/index",id:"study/program/C/index",title:"C C++ \u7f16\u7a0b\u8bed\u8a00",description:"\u53c2\u8003",source:"@site/docs/study/program/C/index.md",sourceDirName:"study/program/C",slug:"/study/program/C/",permalink:"/docs/study/program/C/",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"ABIAPI",permalink:"/docs/study/program/ABIAPI"},next:{title:"C\u8bed\u8a00\u6807\u51c6\u5e93",permalink:"/docs/study/program/C/C\u8bed\u8a00\u6807\u51c6\u5e93"}},p={},l=[{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],u={toc:l},s="wrapper";function d(e){let{components:r,...t}=e;return(0,o.yg)(s,(0,n.A)({},u,t,{components:r,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"c-c-\u7f16\u7a0b\u8bed\u8a00"},"C C++ \u7f16\u7a0b\u8bed\u8a00"),(0,o.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://learn.microsoft.com/zh-cn/cpp/c-language/"},"Microsoft-C \u8bed\u8a00\u6587\u6863"))))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2996],{5680:(e,r,t)=>{t.d(r,{xA:()=>u,yg:()=>f});var n=t(6540);function o(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function a(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function c(e){for(var r=1;r=0||(o[t]=e[t]);return o}(e,r);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var p=n.createContext({}),l=function(e){var r=n.useContext(p),t=r;return e&&(t="function"==typeof e?e(r):c(c({},r),e)),t},u=function(e){var r=l(e.components);return n.createElement(p.Provider,{value:r},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},y=n.forwardRef((function(e,r){var t=e.components,o=e.mdxType,a=e.originalType,p=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),s=l(t),y=o,f=s["".concat(p,".").concat(y)]||s[y]||d[y]||a;return t?n.createElement(f,c(c({ref:r},u),{},{components:t})):n.createElement(f,c({ref:r},u))}));function f(e,r){var t=arguments,o=r&&r.mdxType;if("string"==typeof e||o){var a=t.length,c=new Array(a);c[0]=y;var i={};for(var p in r)hasOwnProperty.call(r,p)&&(i[p]=r[p]);i.originalType=e,i[s]="string"==typeof e?e:o,c[1]=i;for(var l=2;l{t.r(r),t.d(r,{assets:()=>p,contentTitle:()=>c,default:()=>d,frontMatter:()=>a,metadata:()=>i,toc:()=>l});var n=t(8168),o=(t(6540),t(5680));const a={},c="C C++ \u7f16\u7a0b\u8bed\u8a00",i={unversionedId:"study/program/C/index",id:"study/program/C/index",title:"C C++ \u7f16\u7a0b\u8bed\u8a00",description:"\u53c2\u8003",source:"@site/docs/study/program/C/index.md",sourceDirName:"study/program/C",slug:"/study/program/C/",permalink:"/docs/study/program/C/",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"ABIAPI",permalink:"/docs/study/program/ABIAPI"},next:{title:"C\u8bed\u8a00\u6807\u51c6\u5e93",permalink:"/docs/study/program/C/C\u8bed\u8a00\u6807\u51c6\u5e93"}},p={},l=[{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],u={toc:l},s="wrapper";function d(e){let{components:r,...t}=e;return(0,o.yg)(s,(0,n.A)({},u,t,{components:r,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"c-c-\u7f16\u7a0b\u8bed\u8a00"},"C C++ \u7f16\u7a0b\u8bed\u8a00"),(0,o.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://learn.microsoft.com/zh-cn/cpp/c-language/"},"Microsoft-C \u8bed\u8a00\u6587\u6863"))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/947d4688.a3efba27.js b/assets/js/947d4688.0d4570b5.js similarity index 98% rename from assets/js/947d4688.a3efba27.js rename to assets/js/947d4688.0d4570b5.js index 98dace679..9a6e8f3c1 100644 --- a/assets/js/947d4688.a3efba27.js +++ b/assets/js/947d4688.0d4570b5.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9203],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>m});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),p=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},l="mdxType",f={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),l=p(r),d=o,m=l["".concat(s,".").concat(d)]||l[d]||f[d]||a;return r?n.createElement(m,c(c({ref:t},u),{},{components:r})):n.createElement(m,c({ref:t},u))}));function m(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=d;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[l]="string"==typeof e?e:o,c[1]=i;for(var p=2;p{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>c,default:()=>f,frontMatter:()=>a,metadata:()=>i,toc:()=>p});var n=r(8168),o=(r(6540),r(5680));const a={},c=void 0,i={unversionedId:"study/fe/mqtt.js",id:"study/fe/mqtt.js",title:"mqtt.js",description:"\u4e0d\u8981\u4f7f\u7528 mqtt.js \u6362\u7528 precompiled-mqtt",source:"@site/docs/study/fe/mqtt.js.md",sourceDirName:"study/fe",slug:"/study/fe/mqtt.js",permalink:"/docs/study/fe/mqtt.js",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"WebGL",permalink:"/docs/study/fe/WebGL"},next:{title:"\u4e0b\u8f7d\u56fe\u7247",permalink:"/docs/study/fe/\u4e0b\u8f7d\u56fe\u7247"}},s={},p=[],u={toc:p},l="wrapper";function f(e){let{components:t,...r}=e;return(0,o.yg)(l,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:""}),(0,o.yg)("p",null,"\u4e0d\u8981\u4f7f\u7528 mqtt.js \u6362\u7528 precompiled-mqtt"))}f.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9203],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>m});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),p=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},l="mdxType",f={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),l=p(r),d=o,m=l["".concat(s,".").concat(d)]||l[d]||f[d]||a;return r?n.createElement(m,c(c({ref:t},u),{},{components:r})):n.createElement(m,c({ref:t},u))}));function m(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=d;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[l]="string"==typeof e?e:o,c[1]=i;for(var p=2;p{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>c,default:()=>f,frontMatter:()=>a,metadata:()=>i,toc:()=>p});var n=r(8168),o=(r(6540),r(5680));const a={},c=void 0,i={unversionedId:"study/fe/mqtt.js",id:"study/fe/mqtt.js",title:"mqtt.js",description:"\u4e0d\u8981\u4f7f\u7528 mqtt.js \u6362\u7528 precompiled-mqtt",source:"@site/docs/study/fe/mqtt.js.md",sourceDirName:"study/fe",slug:"/study/fe/mqtt.js",permalink:"/docs/study/fe/mqtt.js",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"WebGL",permalink:"/docs/study/fe/WebGL"},next:{title:"\u4e0b\u8f7d\u56fe\u7247",permalink:"/docs/study/fe/\u4e0b\u8f7d\u56fe\u7247"}},s={},p=[],u={toc:p},l="wrapper";function f(e){let{components:t,...r}=e;return(0,o.yg)(l,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:""}),(0,o.yg)("p",null,"\u4e0d\u8981\u4f7f\u7528 mqtt.js \u6362\u7528 precompiled-mqtt"))}f.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/955edfb7.c5488e40.js b/assets/js/955edfb7.77881b3e.js similarity index 99% rename from assets/js/955edfb7.c5488e40.js rename to assets/js/955edfb7.77881b3e.js index ff2e0cbab..c0274ec07 100644 --- a/assets/js/955edfb7.c5488e40.js +++ b/assets/js/955edfb7.77881b3e.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1056],{5680:(e,t,n)=>{n.d(t,{xA:()=>u,yg:()=>d});var r=n(6540);function l(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e){for(var t=1;t=0||(l[n]=e[n]);return l}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(l[n]=e[n])}return l}var o=r.createContext({}),c=function(e){var t=r.useContext(o),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},u=function(e){var t=c(e.components);return r.createElement(o.Provider,{value:t},e.children)},s="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},g=r.forwardRef((function(e,t){var n=e.components,l=e.mdxType,i=e.originalType,o=e.parentName,u=p(e,["components","mdxType","originalType","parentName"]),s=c(n),g=l,d=s["".concat(o,".").concat(g)]||s[g]||y[g]||i;return n?r.createElement(d,a(a({ref:t},u),{},{components:n})):r.createElement(d,a({ref:t},u))}));function d(e,t){var n=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var i=n.length,a=new Array(i);a[0]=g;var p={};for(var o in t)hasOwnProperty.call(t,o)&&(p[o]=t[o]);p.originalType=e,p[s]="string"==typeof e?e:l,a[1]=p;for(var c=2;c{n.r(t),n.d(t,{assets:()=>o,contentTitle:()=>a,default:()=>y,frontMatter:()=>i,metadata:()=>p,toc:()=>c});var r=n(8168),l=(n(6540),n(5680));const i={sidebar_position:2},a=void 0,p={unversionedId:"study/think/\u8bbe\u8ba1\u6a21\u5f0f",id:"study/think/\u8bbe\u8ba1\u6a21\u5f0f",title:"\u8bbe\u8ba1\u6a21\u5f0f",description:"\u516d\u5927\u539f\u5219",source:"@site/docs/study/think/\u8bbe\u8ba1\u6a21\u5f0f.md",sourceDirName:"study/think",slug:"/study/think/\u8bbe\u8ba1\u6a21\u5f0f",permalink:"/docs/study/think/\u8bbe\u8ba1\u6a21\u5f0f",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"studySidebar",previous:{title:"\u6982\u8ff0",permalink:"/docs/study/think/"},next:{title:"IT_CT_OT",permalink:"/docs/study/think/IT_CT_OT"}},o={},c=[{value:"\u516d\u5927\u539f\u5219",id:"\u516d\u5927\u539f\u5219",level:3},{value:"\u603b\u539f\u5219-\u5f00\u95ed\u539f\u5219",id:"\u603b\u539f\u5219-\u5f00\u95ed\u539f\u5219",level:4},{value:"\u5355\u4e00\u804c\u8d23\u539f\u5219",id:"\u5355\u4e00\u804c\u8d23\u539f\u5219",level:4},{value:"\u91cc\u6c0f\u66ff\u6362\u539f\u5219\uff08Liskov Substitution Principle\uff09",id:"\u91cc\u6c0f\u66ff\u6362\u539f\u5219liskov-substitution-principle",level:4},{value:"\u4f9d\u8d56\u5012\u8f6c\u539f\u5219\uff08Dependence Inversion Principle\uff09",id:"\u4f9d\u8d56\u5012\u8f6c\u539f\u5219dependence-inversion-principle",level:4},{value:"\u63a5\u53e3\u9694\u79bb\u539f\u5219\uff08Interface Segregation Principle\uff09",id:"\u63a5\u53e3\u9694\u79bb\u539f\u5219interface-segregation-principle",level:4},{value:"\u8fea\u7c73\u7279\u6cd5\u5219\uff08\u6700\u5c11\u77e5\u9053\u539f\u5219\uff09\uff08Demeter Principle\uff09",id:"\u8fea\u7c73\u7279\u6cd5\u5219\u6700\u5c11\u77e5\u9053\u539f\u5219demeter-principle",level:4},{value:"\u7ec4\u5408(\u5408\u6210)\u590d\u7528\u539f\u5219\uff08Composite Reuse Principle\uff09",id:"\u7ec4\u5408\u5408\u6210\u590d\u7528\u539f\u5219composite-reuse-principle",level:4},{value:"\u5177\u4f53\u5206\u7c7b\uff1a",id:"\u5177\u4f53\u5206\u7c7b",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],u={toc:c},s="wrapper";function y(e){let{components:t,...n}=e;return(0,l.yg)(s,(0,r.A)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,l.yg)("h3",{id:"\u516d\u5927\u539f\u5219"},"\u516d\u5927\u539f\u5219"),(0,l.yg)("h4",{id:"\u603b\u539f\u5219-\u5f00\u95ed\u539f\u5219"},"\u603b\u539f\u5219-\u5f00\u95ed\u539f\u5219"),(0,l.yg)("p",null,"\u5bf9\u6269\u5c55\u5f00\u653e\uff0c\u5bf9\u4fee\u6539\u5c01\u95ed\u3002\u5728\u7a0b\u5e8f\u9700\u8981\u8fdb\u884c\u62d3\u5c55\u7684\u65f6\u5019\uff0c\u4e0d\u80fd\u53bb\u4fee\u6539\u539f\u6709\u7684\u4ee3\u7801\uff0c\u800c\u662f\u8981\u6269\u5c55\u539f\u6709\u4ee3\u7801\uff0c\u5b9e\u73b0\u4e00\u4e2a\u70ed\u63d2\u62d4\u7684\u6548\u679c\u3002\u6240\u4ee5\u4e00\u53e5\u8bdd\u6982\u62ec\u5c31\u662f\uff1a\u4e3a\u4e86\u4f7f\u7a0b\u5e8f\u7684\u6269\u5c55\u6027\u597d\uff0c\u6613\u4e8e\u7ef4\u62a4\u548c\u5347\u7ea7\u3002"),(0,l.yg)("p",null,"\u60f3\u8981\u8fbe\u5230\u8fd9\u6837\u7684\u6548\u679c\uff0c\u6211\u4eec\u9700\u8981\u4f7f\u7528\u63a5\u53e3\u548c\u62bd\u8c61\u7c7b\u7b49\u3002"),(0,l.yg)("p",null,(0,l.yg)("strong",{parentName:"p"},"\u601d\u8003\uff1a")),(0,l.yg)("ol",null,(0,l.yg)("li",{parentName:"ol"},"\u62ff\u5230\u4e00\u4e2a\u529f\u80fd\u9700\u6c42\uff0c\u4e0d\u8981\u4e0a\u6765\u5c31\u53bb\u5b9e\u73b0\uff0c\u5e94\u8be5\u8003\u8651\u600e\u4e48\u62bd\u53d6\u63a5\u53e3\u6216\u62bd\u8c61\u7c7b\uff1b\u4f8b\u5982 API \u4e2d\u7684 ES \u64cd\u4f5c\uff1b"),(0,l.yg)("li",{parentName:"ol"},"\u4e0d\u8981\u968f\u610f\u4fee\u6539\u539f\u6709\u7cfb\u7edf\u7684\u4ee3\u7801\uff0c\u800c\u662f\u5c1d\u8bd5\u53bb\u62d3\u5c55\u6765\u907f\u514d\u98ce\u9669\uff1b\u4f8b\u5982 API \u4e2d\u7684\u65b0\u7248 MVC \u62e6\u622a\u5668\u5904\u7406\uff1b")),(0,l.yg)("h4",{id:"\u5355\u4e00\u804c\u8d23\u539f\u5219"},"\u5355\u4e00\u804c\u8d23\u539f\u5219"),(0,l.yg)("p",null,"\u4e0d\u8981\u5b58\u5728\u591a\u4e8e\u4e00\u4e2a\u5bfc\u81f4\u7c7b\u53d8\u66f4\u7684\u539f\u56e0\uff0c\u4e5f\u5c31\u662f\u8bf4\u6bcf\u4e2a\u7c7b\u5e94\u8be5\u5b9e\u73b0\u5355\u4e00\u7684\u804c\u8d23\uff0c\u5426\u5219\u5c31\u5e94\u8be5\u628a\u7c7b\u62c6\u5206\u3002"),(0,l.yg)("p",null,(0,l.yg)("strong",{parentName:"p"},"\u601d\u8003\uff1a")),(0,l.yg)("ol",null,(0,l.yg)("li",{parentName:"ol"},"\u5904\u7406\u62a5\u8b66\u7684 Service/Controller/Mapper \u7b49\u5939\u6742\u4e00\u4e9b\u4e0d\u76f8\u5e72\u7684\u529f\u80fd\uff0c\u4f8b\u5982\u5b9a\u65f6\u4efb\u52a1\u3001\u7528\u6237\u53cd\u9988\u7b49\uff1b"),(0,l.yg)("li",{parentName:"ol"},"Controller \u5939\u6742\u4e00\u4e9b\u79c1\u6709\u65b9\u6cd5\uff1b\u9700\u4e0d\u9700\u8981\u653e\u5230 Service\u3001Utils \u91cc\u9762\uff1b")),(0,l.yg)("h4",{id:""}),(0,l.yg)("h4",{id:"\u91cc\u6c0f\u66ff\u6362\u539f\u5219liskov-substitution-principle"},"\u91cc\u6c0f\u66ff\u6362\u539f\u5219\uff08Liskov Substitution Principle\uff09"),(0,l.yg)("p",null,"\u4efb\u4f55\u57fa\u7c7b\u53ef\u4ee5\u51fa\u73b0\u7684\u5730\u65b9\uff0c\u5b50\u7c7b\u4e00\u5b9a\u53ef\u4ee5\u51fa\u73b0\u3002\u91cc\u6c0f\u66ff\u6362\u539f\u5219\u662f\u7ee7\u627f\u590d\u7528\u7684\u57fa\u77f3\uff0c\u53ea\u6709\u5f53\u884d\u751f\u7c7b\u53ef\u4ee5\u66ff\u6362\u57fa\u7c7b\uff0c\u8f6f\u4ef6\u5355\u4f4d\u7684\u529f\u80fd\u4e0d\u53d7\u5230\u5f71\u54cd\u65f6\uff0c\u57fa\u7c7b\u624d\u80fd\u771f\u6b63\u88ab\u590d\u7528\uff0c\u800c\u884d\u751f\u7c7b\u4e5f\u80fd\u591f\u5728\u57fa\u7c7b\u7684\u57fa\u7840\u4e0a\u589e\u52a0\u65b0\u7684\u884c\u4e3a\u3002"),(0,l.yg)("p",null,"\u91cc\u6c0f\u4ee3\u6362\u539f\u5219\u662f\u5bf9\u201c\u5f00-\u95ed\u201d\u539f\u5219\u7684\u8865\u5145\u3002\u5b9e\u73b0\u201c\u5f00\u95ed\u201d\u539f\u5219\u7684\u5173\u952e\u6b65\u9aa4\u5c31\u662f\u62bd\u8c61\u5316\u3002\u800c\u57fa\u7c7b\u4e0e\u5b50\u7c7b\u7684\u7ee7\u627f\u5173\u7cfb\u5c31\u662f\u62bd\u8c61\u5316\u7684\u5177\u4f53\u5b9e\u73b0\uff0c\u6240\u4ee5\u91cc\u6c0f\u4ee3\u6362\u539f\u5219\u662f\u5bf9\u5b9e\u73b0\u62bd\u8c61\u5316\u7684\u5177\u4f53\u6b65\u9aa4\u7684\u89c4\u8303\u3002\u91cc\u6c0f\u66ff\u6362\u539f\u5219\u4e2d\uff0c\u5b50\u7c7b\u5bf9\u7236\u7c7b\u7684\u65b9\u6cd5\u5c3d\u91cf\u4e0d\u8981\u91cd\u5199\u548c\u91cd\u8f7d\u3002\u56e0\u4e3a\u7236\u7c7b\u4ee3\u8868\u4e86\u5b9a\u4e49\u597d\u7684\u7ed3\u6784\uff0c\u901a\u8fc7\u8fd9\u4e2a\u89c4\u8303\u7684\u63a5\u53e3\u4e0e\u5916\u754c\u4ea4\u4e92\uff0c\u5b50\u7c7b\u4e0d\u5e94\u8be5\u968f\u4fbf\u7834\u574f\u5b83\u3002"),(0,l.yg)("p",null,(0,l.yg)("strong",{parentName:"p"},"\u601d\u8003\uff1a")),(0,l.yg)("ol",null,(0,l.yg)("li",{parentName:"ol"},"\u5b9a\u4e49\u7528\u57fa\u7c7b\uff0c\u5b9e\u73b0\u7528\u5b50\u7c7b\uff1b"),(0,l.yg)("li",{parentName:"ol"},"\u7528\u63a5\u53e3\u53bb\u5b9a\u4e49\u6d41\u7a0b\u548c\u89c4\u8303\uff0c\u8fd9\u662f\u8bbe\u8ba1\u7684\u5e95\u5c42\u601d\u60f3\uff0c\u4e0d\u5e94\u8be5\u53bb\u7834\u574f\uff1b\u6ca1\u6709\u63a5\u53e3\u7684\u8bbe\u8ba1\uff0c\u662f\u6ca1\u6709\u7075\u9b42\u7684\u7f16\u7801\uff1b")),(0,l.yg)("h4",{id:"\u4f9d\u8d56\u5012\u8f6c\u539f\u5219dependence-inversion-principle"},"\u4f9d\u8d56\u5012\u8f6c\u539f\u5219\uff08Dependence Inversion Principle\uff09"),(0,l.yg)("p",null,"\u9762\u5411\u63a5\u53e3\u7f16\u7a0b\uff0c\u4f9d\u8d56\u4e8e\u62bd\u8c61\u800c\u4e0d\u4f9d\u8d56\u4e8e\u5177\u4f53\u3002\u5199\u4ee3\u7801\u65f6\u7528\u5230\u5177\u4f53\u7c7b\u65f6\uff0c\u4e0d\u4e0e\u5177\u4f53\u7c7b\u4ea4\u4e92\uff0c\u800c\u4e0e\u5177\u4f53\u7c7b\u7684\u4e0a\u5c42\u63a5\u53e3\u4ea4\u4e92\u3002"),(0,l.yg)("p",null,(0,l.yg)("strong",{parentName:"p"},"\u601d\u8003\uff1a")),(0,l.yg)("ol",null,(0,l.yg)("li",{parentName:"ol"},"\u8fd8\u662f\u9762\u5411\u63a5\u53e3\u7f16\u7a0b\uff1b")),(0,l.yg)("h4",{id:"\u63a5\u53e3\u9694\u79bb\u539f\u5219interface-segregation-principle"},"\u63a5\u53e3\u9694\u79bb\u539f\u5219\uff08Interface Segregation Principle\uff09"),(0,l.yg)("p",null,"\u6bcf\u4e2a\u63a5\u53e3\u4e2d\u4e0d\u5b58\u5728\u5b50\u7c7b\u7528\u4e0d\u5230\u5374\u5fc5\u987b\u5b9e\u73b0\u7684\u65b9\u6cd5\uff0c\u5982\u679c\u4e0d\u7136\uff0c\u5c31\u8981\u5c06\u63a5\u53e3\u62c6\u5206\u3002\u4f7f\u7528\u591a\u4e2a\u9694\u79bb\u7684\u63a5\u53e3\uff0c\u6bd4\u4f7f\u7528\u5355\u4e2a\u63a5\u53e3\uff08\u591a\u4e2a\u63a5\u53e3\u65b9\u6cd5\u96c6\u5408\u5230\u4e00\u4e2a\u7684\u63a5\u53e3\uff09\u8981\u597d\u3002"),(0,l.yg)("p",null,(0,l.yg)("strong",{parentName:"p"},"\u601d\u8003\uff1a")),(0,l.yg)("ol",null,(0,l.yg)("li",{parentName:"ol"},"\u63a5\u53e3\u62c6\u5206\uff0c\u548c\u5355\u4e00\u804c\u8d23\u539f\u5219\u4e92\u76f8\u6620\u5c04\uff1b")),(0,l.yg)("h4",{id:"\u8fea\u7c73\u7279\u6cd5\u5219\u6700\u5c11\u77e5\u9053\u539f\u5219demeter-principle"},"\u8fea\u7c73\u7279\u6cd5\u5219\uff08\u6700\u5c11\u77e5\u9053\u539f\u5219\uff09\uff08Demeter Principle\uff09"),(0,l.yg)("p",null,"\u4e00\u4e2a\u7c7b\u5bf9\u81ea\u5df1\u4f9d\u8d56\u7684\u7c7b\u77e5\u9053\u7684\u8d8a\u5c11\u8d8a\u597d\u3002\u65e0\u8bba\u88ab\u4f9d\u8d56\u7684\u7c7b\u591a\u4e48\u590d\u6742\uff0c\u90fd\u5e94\u8be5\u5c06\u903b\u8f91\u5c01\u88c5\u5728\u65b9\u6cd5\u7684\u5185\u90e8\uff0c\u901a\u8fc7 public \u65b9\u6cd5\u63d0\u4f9b\u7ed9\u5916\u90e8\u3002\u8fd9\u6837\u5f53\u88ab\u4f9d\u8d56\u7684\u7c7b\u53d8\u5316\u65f6\uff0c\u624d\u80fd\u6700\u5c0f\u7684\u5f71\u54cd\u8be5\u7c7b\u3002"),(0,l.yg)("p",null,"\u6700\u5c11\u77e5\u9053\u539f\u5219\u7684\u53e6\u4e00\u4e2a\u8868\u8fbe\u65b9\u5f0f\u662f\uff1a\u53ea\u4e0e\u76f4\u63a5\u7684\u670b\u53cb\u901a\u4fe1\u3002\u7c7b\u4e4b\u95f4\u53ea\u8981\u6709\u8026\u5408\u5173\u7cfb\uff0c\u5c31\u53eb\u670b\u53cb\u5173\u7cfb\u3002\u8026\u5408\u5206\u4e3a\u4f9d\u8d56\u3001\u5173\u8054\u3001\u805a\u5408\u3001\u7ec4\u5408\u7b49\u3002\u6211\u4eec\u79f0\u51fa\u73b0\u4e3a\u6210\u5458\u53d8\u91cf\u3001\u65b9\u6cd5\u53c2\u6570\u3001\u65b9\u6cd5\u8fd4\u56de\u503c\u4e2d\u7684\u7c7b\u4e3a\u76f4\u63a5\u670b\u53cb\u3002\u5c40\u90e8\u53d8\u91cf\u3001\u4e34\u65f6\u53d8\u91cf\u5219\u4e0d\u662f\u76f4\u63a5\u7684\u670b\u53cb\u3002\u6211\u4eec\u8981\u6c42\u964c\u751f\u7684\u7c7b\u4e0d\u8981\u4f5c\u4e3a\u5c40\u90e8\u53d8\u91cf\u51fa\u73b0\u5728\u7c7b\u4e2d\u3002"),(0,l.yg)("p",null,(0,l.yg)("strong",{parentName:"p"},"\u601d\u8003\uff1a")),(0,l.yg)("ol",null,(0,l.yg)("li",{parentName:"ol"},"\u89e3\u8026\u548c\u6a21\u5757\u5316\uff1b")),(0,l.yg)("h4",{id:"\u7ec4\u5408\u5408\u6210\u590d\u7528\u539f\u5219composite-reuse-principle"},"\u7ec4\u5408(\u5408\u6210)\u590d\u7528\u539f\u5219\uff08Composite Reuse Principle\uff09"),(0,l.yg)("p",null,"\u5c3d\u91cf\u9996\u5148\u4f7f\u7528\u7ec4\u5408/\u805a\u5408\u7684\u65b9\u5f0f\uff0c\u800c\u4e0d\u662f\u4f7f\u7528\u7ee7\u627f\u3002"),(0,l.yg)("p",null,(0,l.yg)("strong",{parentName:"p"},"\u601d\u8003\uff1a")),(0,l.yg)("ol",null,(0,l.yg)("li",{parentName:"ol"},"\u4ec0\u4e48\u662f\u5173\u8054\u3001\u805a\u5408\u3001\u7ec4\u5408\uff1b",(0,l.yg)("a",{parentName:"li",href:"https://www.php.cn/java-article-413814.html"},"\u5173\u8054\u3001\u7ec4\u5408\u3001\u805a\u5408")),(0,l.yg)("li",{parentName:"ol"},"\u5982\u679c\u8981\u62d3\u5c55\uff0c\u9996\u5148\u60f3\u5230\u662f\u805a\u5408\u6216\u7ec4\u5408\uff0c\u800c\u4e0d\u5e94\u8be5\u662f\u7ee7\u627f\uff0c\u7ee7\u627f\u592a\u91cd\u4e86\u3002")),(0,l.yg)("h3",{id:"\u5177\u4f53\u5206\u7c7b"},"\u5177\u4f53\u5206\u7c7b\uff1a"),(0,l.yg)("p",null,"\u521b\u5efa\u578b\u6a21\u5f0f\uff0c\u5171\u4e94\u79cd\uff1a\u5de5\u5382\u65b9\u6cd5\u6a21\u5f0f\u3001\u62bd\u8c61\u5de5\u5382\u6a21\u5f0f\u3001\u5355\u4f8b\u6a21\u5f0f\u3001\u5efa\u9020\u8005\u6a21\u5f0f\u3001\u539f\u578b\u6a21\u5f0f"),(0,l.yg)("p",null,"\u7ed3\u6784\u578b\u6a21\u5f0f\uff0c\u5171\u4e03\u79cd\uff1a\u9002\u914d\u5668\u6a21\u5f0f\u3001\u88c5\u9970\u8005\u6a21\u5f0f\u3001\u4ee3\u7406\u6a21\u5f0f\u3001\u5916\u89c2\u6a21\u5f0f\u3001\u6865\u63a5\u6a21\u5f0f\u3001\u7ec4\u5408\u6a21\u5f0f\u3001\u4eab\u5143\u6a21\u5f0f\u3002"),(0,l.yg)("p",null,"\u884c\u4e3a\u578b\u6a21\u5f0f\uff0c\u5171\u5341\u4e00\u79cd\uff1a\u7b56\u7565\u6a21\u5f0f\u3001\u6a21\u677f\u65b9\u6cd5\u6a21\u5f0f\u3001\u89c2\u5bdf\u8005\u6a21\u5f0f\u3001\u8fed\u4ee3\u5b50\u6a21\u5f0f\u3001\u8d23\u4efb\u94fe\u6a21\u5f0f\u3001\u547d\u4ee4\u6a21\u5f0f\u3001\u5907\u5fd8\u5f55\u6a21\u5f0f\u3001\u72b6\u6001\u6a21\u5f0f\u3001\u8bbf\u95ee\u8005\u6a21\u5f0f\u3001\u4e2d\u4ecb\u8005\u6a21\u5f0f\u3001\u89e3\u91ca\u5668\u6a21\u5f0f\u3002"),(0,l.yg)("p",null,"\u5176\u5b9e\u8fd8\u6709\u4e24\u7c7b\uff1a\u5e76\u53d1\u578b\u6a21\u5f0f\u548c\u7ebf\u7a0b\u6c60\u6a21\u5f0f\u3002"),(0,l.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"https://www.jianshu.com/p/1974a5837040"},"\u804a\u4e00\u804a\u9762\u5411\u5bf9\u8c61\u7684\u4e09\u5927\u7279\u6027")),(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"https://blog.csdn.net/jason0539/article/details/44956775"},"23 \u79cd\u8bbe\u8ba1\u6a21\u5f0f\u6c47\u603b\u6574\u7406")),(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"https://mp.weixin.qq.com/s?__biz=Mzg5MDczNDI0Nw==&mid=2247492497&idx=1&sn=31882a4693f0e09a419073b58ddf431e&chksm=cfdab059f8ad394f8fcafed1d96825a7393e491f4d287a0e0ab81e42e974ea87f3f54d973864&scene=21#wechat_redirect"},"\u4e24\u4e07\u5b57\u76d8\u70b9\u90a3\u4e9b\u88ab\u73a9\u70c2\u4e86\u7684\u8bbe\u8ba1\u6a21\u5f0f")),(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"https://refactoringguru.cn/design-patterns"},"\u56fe\u8bf4-\u8bbe\u8ba1\u6a21\u5f0f")),(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"https://design-patterns.readthedocs.io/zh_CN/latest/index.html"},"\u8bbe\u8ba1\u6a21\u5f0f\u4e4b\u7f8e"))))}y.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1056],{5680:(e,t,n)=>{n.d(t,{xA:()=>u,yg:()=>d});var r=n(6540);function l(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e){for(var t=1;t=0||(l[n]=e[n]);return l}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(l[n]=e[n])}return l}var o=r.createContext({}),c=function(e){var t=r.useContext(o),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},u=function(e){var t=c(e.components);return r.createElement(o.Provider,{value:t},e.children)},s="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},g=r.forwardRef((function(e,t){var n=e.components,l=e.mdxType,i=e.originalType,o=e.parentName,u=p(e,["components","mdxType","originalType","parentName"]),s=c(n),g=l,d=s["".concat(o,".").concat(g)]||s[g]||y[g]||i;return n?r.createElement(d,a(a({ref:t},u),{},{components:n})):r.createElement(d,a({ref:t},u))}));function d(e,t){var n=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var i=n.length,a=new Array(i);a[0]=g;var p={};for(var o in t)hasOwnProperty.call(t,o)&&(p[o]=t[o]);p.originalType=e,p[s]="string"==typeof e?e:l,a[1]=p;for(var c=2;c{n.r(t),n.d(t,{assets:()=>o,contentTitle:()=>a,default:()=>y,frontMatter:()=>i,metadata:()=>p,toc:()=>c});var r=n(8168),l=(n(6540),n(5680));const i={sidebar_position:2},a=void 0,p={unversionedId:"study/think/\u8bbe\u8ba1\u6a21\u5f0f",id:"study/think/\u8bbe\u8ba1\u6a21\u5f0f",title:"\u8bbe\u8ba1\u6a21\u5f0f",description:"\u516d\u5927\u539f\u5219",source:"@site/docs/study/think/\u8bbe\u8ba1\u6a21\u5f0f.md",sourceDirName:"study/think",slug:"/study/think/\u8bbe\u8ba1\u6a21\u5f0f",permalink:"/docs/study/think/\u8bbe\u8ba1\u6a21\u5f0f",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"studySidebar",previous:{title:"\u6982\u8ff0",permalink:"/docs/study/think/"},next:{title:"IT_CT_OT",permalink:"/docs/study/think/IT_CT_OT"}},o={},c=[{value:"\u516d\u5927\u539f\u5219",id:"\u516d\u5927\u539f\u5219",level:3},{value:"\u603b\u539f\u5219-\u5f00\u95ed\u539f\u5219",id:"\u603b\u539f\u5219-\u5f00\u95ed\u539f\u5219",level:4},{value:"\u5355\u4e00\u804c\u8d23\u539f\u5219",id:"\u5355\u4e00\u804c\u8d23\u539f\u5219",level:4},{value:"\u91cc\u6c0f\u66ff\u6362\u539f\u5219\uff08Liskov Substitution Principle\uff09",id:"\u91cc\u6c0f\u66ff\u6362\u539f\u5219liskov-substitution-principle",level:4},{value:"\u4f9d\u8d56\u5012\u8f6c\u539f\u5219\uff08Dependence Inversion Principle\uff09",id:"\u4f9d\u8d56\u5012\u8f6c\u539f\u5219dependence-inversion-principle",level:4},{value:"\u63a5\u53e3\u9694\u79bb\u539f\u5219\uff08Interface Segregation Principle\uff09",id:"\u63a5\u53e3\u9694\u79bb\u539f\u5219interface-segregation-principle",level:4},{value:"\u8fea\u7c73\u7279\u6cd5\u5219\uff08\u6700\u5c11\u77e5\u9053\u539f\u5219\uff09\uff08Demeter Principle\uff09",id:"\u8fea\u7c73\u7279\u6cd5\u5219\u6700\u5c11\u77e5\u9053\u539f\u5219demeter-principle",level:4},{value:"\u7ec4\u5408(\u5408\u6210)\u590d\u7528\u539f\u5219\uff08Composite Reuse Principle\uff09",id:"\u7ec4\u5408\u5408\u6210\u590d\u7528\u539f\u5219composite-reuse-principle",level:4},{value:"\u5177\u4f53\u5206\u7c7b\uff1a",id:"\u5177\u4f53\u5206\u7c7b",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],u={toc:c},s="wrapper";function y(e){let{components:t,...n}=e;return(0,l.yg)(s,(0,r.A)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,l.yg)("h3",{id:"\u516d\u5927\u539f\u5219"},"\u516d\u5927\u539f\u5219"),(0,l.yg)("h4",{id:"\u603b\u539f\u5219-\u5f00\u95ed\u539f\u5219"},"\u603b\u539f\u5219-\u5f00\u95ed\u539f\u5219"),(0,l.yg)("p",null,"\u5bf9\u6269\u5c55\u5f00\u653e\uff0c\u5bf9\u4fee\u6539\u5c01\u95ed\u3002\u5728\u7a0b\u5e8f\u9700\u8981\u8fdb\u884c\u62d3\u5c55\u7684\u65f6\u5019\uff0c\u4e0d\u80fd\u53bb\u4fee\u6539\u539f\u6709\u7684\u4ee3\u7801\uff0c\u800c\u662f\u8981\u6269\u5c55\u539f\u6709\u4ee3\u7801\uff0c\u5b9e\u73b0\u4e00\u4e2a\u70ed\u63d2\u62d4\u7684\u6548\u679c\u3002\u6240\u4ee5\u4e00\u53e5\u8bdd\u6982\u62ec\u5c31\u662f\uff1a\u4e3a\u4e86\u4f7f\u7a0b\u5e8f\u7684\u6269\u5c55\u6027\u597d\uff0c\u6613\u4e8e\u7ef4\u62a4\u548c\u5347\u7ea7\u3002"),(0,l.yg)("p",null,"\u60f3\u8981\u8fbe\u5230\u8fd9\u6837\u7684\u6548\u679c\uff0c\u6211\u4eec\u9700\u8981\u4f7f\u7528\u63a5\u53e3\u548c\u62bd\u8c61\u7c7b\u7b49\u3002"),(0,l.yg)("p",null,(0,l.yg)("strong",{parentName:"p"},"\u601d\u8003\uff1a")),(0,l.yg)("ol",null,(0,l.yg)("li",{parentName:"ol"},"\u62ff\u5230\u4e00\u4e2a\u529f\u80fd\u9700\u6c42\uff0c\u4e0d\u8981\u4e0a\u6765\u5c31\u53bb\u5b9e\u73b0\uff0c\u5e94\u8be5\u8003\u8651\u600e\u4e48\u62bd\u53d6\u63a5\u53e3\u6216\u62bd\u8c61\u7c7b\uff1b\u4f8b\u5982 API \u4e2d\u7684 ES \u64cd\u4f5c\uff1b"),(0,l.yg)("li",{parentName:"ol"},"\u4e0d\u8981\u968f\u610f\u4fee\u6539\u539f\u6709\u7cfb\u7edf\u7684\u4ee3\u7801\uff0c\u800c\u662f\u5c1d\u8bd5\u53bb\u62d3\u5c55\u6765\u907f\u514d\u98ce\u9669\uff1b\u4f8b\u5982 API \u4e2d\u7684\u65b0\u7248 MVC \u62e6\u622a\u5668\u5904\u7406\uff1b")),(0,l.yg)("h4",{id:"\u5355\u4e00\u804c\u8d23\u539f\u5219"},"\u5355\u4e00\u804c\u8d23\u539f\u5219"),(0,l.yg)("p",null,"\u4e0d\u8981\u5b58\u5728\u591a\u4e8e\u4e00\u4e2a\u5bfc\u81f4\u7c7b\u53d8\u66f4\u7684\u539f\u56e0\uff0c\u4e5f\u5c31\u662f\u8bf4\u6bcf\u4e2a\u7c7b\u5e94\u8be5\u5b9e\u73b0\u5355\u4e00\u7684\u804c\u8d23\uff0c\u5426\u5219\u5c31\u5e94\u8be5\u628a\u7c7b\u62c6\u5206\u3002"),(0,l.yg)("p",null,(0,l.yg)("strong",{parentName:"p"},"\u601d\u8003\uff1a")),(0,l.yg)("ol",null,(0,l.yg)("li",{parentName:"ol"},"\u5904\u7406\u62a5\u8b66\u7684 Service/Controller/Mapper \u7b49\u5939\u6742\u4e00\u4e9b\u4e0d\u76f8\u5e72\u7684\u529f\u80fd\uff0c\u4f8b\u5982\u5b9a\u65f6\u4efb\u52a1\u3001\u7528\u6237\u53cd\u9988\u7b49\uff1b"),(0,l.yg)("li",{parentName:"ol"},"Controller \u5939\u6742\u4e00\u4e9b\u79c1\u6709\u65b9\u6cd5\uff1b\u9700\u4e0d\u9700\u8981\u653e\u5230 Service\u3001Utils \u91cc\u9762\uff1b")),(0,l.yg)("h4",{id:""}),(0,l.yg)("h4",{id:"\u91cc\u6c0f\u66ff\u6362\u539f\u5219liskov-substitution-principle"},"\u91cc\u6c0f\u66ff\u6362\u539f\u5219\uff08Liskov Substitution Principle\uff09"),(0,l.yg)("p",null,"\u4efb\u4f55\u57fa\u7c7b\u53ef\u4ee5\u51fa\u73b0\u7684\u5730\u65b9\uff0c\u5b50\u7c7b\u4e00\u5b9a\u53ef\u4ee5\u51fa\u73b0\u3002\u91cc\u6c0f\u66ff\u6362\u539f\u5219\u662f\u7ee7\u627f\u590d\u7528\u7684\u57fa\u77f3\uff0c\u53ea\u6709\u5f53\u884d\u751f\u7c7b\u53ef\u4ee5\u66ff\u6362\u57fa\u7c7b\uff0c\u8f6f\u4ef6\u5355\u4f4d\u7684\u529f\u80fd\u4e0d\u53d7\u5230\u5f71\u54cd\u65f6\uff0c\u57fa\u7c7b\u624d\u80fd\u771f\u6b63\u88ab\u590d\u7528\uff0c\u800c\u884d\u751f\u7c7b\u4e5f\u80fd\u591f\u5728\u57fa\u7c7b\u7684\u57fa\u7840\u4e0a\u589e\u52a0\u65b0\u7684\u884c\u4e3a\u3002"),(0,l.yg)("p",null,"\u91cc\u6c0f\u4ee3\u6362\u539f\u5219\u662f\u5bf9\u201c\u5f00-\u95ed\u201d\u539f\u5219\u7684\u8865\u5145\u3002\u5b9e\u73b0\u201c\u5f00\u95ed\u201d\u539f\u5219\u7684\u5173\u952e\u6b65\u9aa4\u5c31\u662f\u62bd\u8c61\u5316\u3002\u800c\u57fa\u7c7b\u4e0e\u5b50\u7c7b\u7684\u7ee7\u627f\u5173\u7cfb\u5c31\u662f\u62bd\u8c61\u5316\u7684\u5177\u4f53\u5b9e\u73b0\uff0c\u6240\u4ee5\u91cc\u6c0f\u4ee3\u6362\u539f\u5219\u662f\u5bf9\u5b9e\u73b0\u62bd\u8c61\u5316\u7684\u5177\u4f53\u6b65\u9aa4\u7684\u89c4\u8303\u3002\u91cc\u6c0f\u66ff\u6362\u539f\u5219\u4e2d\uff0c\u5b50\u7c7b\u5bf9\u7236\u7c7b\u7684\u65b9\u6cd5\u5c3d\u91cf\u4e0d\u8981\u91cd\u5199\u548c\u91cd\u8f7d\u3002\u56e0\u4e3a\u7236\u7c7b\u4ee3\u8868\u4e86\u5b9a\u4e49\u597d\u7684\u7ed3\u6784\uff0c\u901a\u8fc7\u8fd9\u4e2a\u89c4\u8303\u7684\u63a5\u53e3\u4e0e\u5916\u754c\u4ea4\u4e92\uff0c\u5b50\u7c7b\u4e0d\u5e94\u8be5\u968f\u4fbf\u7834\u574f\u5b83\u3002"),(0,l.yg)("p",null,(0,l.yg)("strong",{parentName:"p"},"\u601d\u8003\uff1a")),(0,l.yg)("ol",null,(0,l.yg)("li",{parentName:"ol"},"\u5b9a\u4e49\u7528\u57fa\u7c7b\uff0c\u5b9e\u73b0\u7528\u5b50\u7c7b\uff1b"),(0,l.yg)("li",{parentName:"ol"},"\u7528\u63a5\u53e3\u53bb\u5b9a\u4e49\u6d41\u7a0b\u548c\u89c4\u8303\uff0c\u8fd9\u662f\u8bbe\u8ba1\u7684\u5e95\u5c42\u601d\u60f3\uff0c\u4e0d\u5e94\u8be5\u53bb\u7834\u574f\uff1b\u6ca1\u6709\u63a5\u53e3\u7684\u8bbe\u8ba1\uff0c\u662f\u6ca1\u6709\u7075\u9b42\u7684\u7f16\u7801\uff1b")),(0,l.yg)("h4",{id:"\u4f9d\u8d56\u5012\u8f6c\u539f\u5219dependence-inversion-principle"},"\u4f9d\u8d56\u5012\u8f6c\u539f\u5219\uff08Dependence Inversion Principle\uff09"),(0,l.yg)("p",null,"\u9762\u5411\u63a5\u53e3\u7f16\u7a0b\uff0c\u4f9d\u8d56\u4e8e\u62bd\u8c61\u800c\u4e0d\u4f9d\u8d56\u4e8e\u5177\u4f53\u3002\u5199\u4ee3\u7801\u65f6\u7528\u5230\u5177\u4f53\u7c7b\u65f6\uff0c\u4e0d\u4e0e\u5177\u4f53\u7c7b\u4ea4\u4e92\uff0c\u800c\u4e0e\u5177\u4f53\u7c7b\u7684\u4e0a\u5c42\u63a5\u53e3\u4ea4\u4e92\u3002"),(0,l.yg)("p",null,(0,l.yg)("strong",{parentName:"p"},"\u601d\u8003\uff1a")),(0,l.yg)("ol",null,(0,l.yg)("li",{parentName:"ol"},"\u8fd8\u662f\u9762\u5411\u63a5\u53e3\u7f16\u7a0b\uff1b")),(0,l.yg)("h4",{id:"\u63a5\u53e3\u9694\u79bb\u539f\u5219interface-segregation-principle"},"\u63a5\u53e3\u9694\u79bb\u539f\u5219\uff08Interface Segregation Principle\uff09"),(0,l.yg)("p",null,"\u6bcf\u4e2a\u63a5\u53e3\u4e2d\u4e0d\u5b58\u5728\u5b50\u7c7b\u7528\u4e0d\u5230\u5374\u5fc5\u987b\u5b9e\u73b0\u7684\u65b9\u6cd5\uff0c\u5982\u679c\u4e0d\u7136\uff0c\u5c31\u8981\u5c06\u63a5\u53e3\u62c6\u5206\u3002\u4f7f\u7528\u591a\u4e2a\u9694\u79bb\u7684\u63a5\u53e3\uff0c\u6bd4\u4f7f\u7528\u5355\u4e2a\u63a5\u53e3\uff08\u591a\u4e2a\u63a5\u53e3\u65b9\u6cd5\u96c6\u5408\u5230\u4e00\u4e2a\u7684\u63a5\u53e3\uff09\u8981\u597d\u3002"),(0,l.yg)("p",null,(0,l.yg)("strong",{parentName:"p"},"\u601d\u8003\uff1a")),(0,l.yg)("ol",null,(0,l.yg)("li",{parentName:"ol"},"\u63a5\u53e3\u62c6\u5206\uff0c\u548c\u5355\u4e00\u804c\u8d23\u539f\u5219\u4e92\u76f8\u6620\u5c04\uff1b")),(0,l.yg)("h4",{id:"\u8fea\u7c73\u7279\u6cd5\u5219\u6700\u5c11\u77e5\u9053\u539f\u5219demeter-principle"},"\u8fea\u7c73\u7279\u6cd5\u5219\uff08\u6700\u5c11\u77e5\u9053\u539f\u5219\uff09\uff08Demeter Principle\uff09"),(0,l.yg)("p",null,"\u4e00\u4e2a\u7c7b\u5bf9\u81ea\u5df1\u4f9d\u8d56\u7684\u7c7b\u77e5\u9053\u7684\u8d8a\u5c11\u8d8a\u597d\u3002\u65e0\u8bba\u88ab\u4f9d\u8d56\u7684\u7c7b\u591a\u4e48\u590d\u6742\uff0c\u90fd\u5e94\u8be5\u5c06\u903b\u8f91\u5c01\u88c5\u5728\u65b9\u6cd5\u7684\u5185\u90e8\uff0c\u901a\u8fc7 public \u65b9\u6cd5\u63d0\u4f9b\u7ed9\u5916\u90e8\u3002\u8fd9\u6837\u5f53\u88ab\u4f9d\u8d56\u7684\u7c7b\u53d8\u5316\u65f6\uff0c\u624d\u80fd\u6700\u5c0f\u7684\u5f71\u54cd\u8be5\u7c7b\u3002"),(0,l.yg)("p",null,"\u6700\u5c11\u77e5\u9053\u539f\u5219\u7684\u53e6\u4e00\u4e2a\u8868\u8fbe\u65b9\u5f0f\u662f\uff1a\u53ea\u4e0e\u76f4\u63a5\u7684\u670b\u53cb\u901a\u4fe1\u3002\u7c7b\u4e4b\u95f4\u53ea\u8981\u6709\u8026\u5408\u5173\u7cfb\uff0c\u5c31\u53eb\u670b\u53cb\u5173\u7cfb\u3002\u8026\u5408\u5206\u4e3a\u4f9d\u8d56\u3001\u5173\u8054\u3001\u805a\u5408\u3001\u7ec4\u5408\u7b49\u3002\u6211\u4eec\u79f0\u51fa\u73b0\u4e3a\u6210\u5458\u53d8\u91cf\u3001\u65b9\u6cd5\u53c2\u6570\u3001\u65b9\u6cd5\u8fd4\u56de\u503c\u4e2d\u7684\u7c7b\u4e3a\u76f4\u63a5\u670b\u53cb\u3002\u5c40\u90e8\u53d8\u91cf\u3001\u4e34\u65f6\u53d8\u91cf\u5219\u4e0d\u662f\u76f4\u63a5\u7684\u670b\u53cb\u3002\u6211\u4eec\u8981\u6c42\u964c\u751f\u7684\u7c7b\u4e0d\u8981\u4f5c\u4e3a\u5c40\u90e8\u53d8\u91cf\u51fa\u73b0\u5728\u7c7b\u4e2d\u3002"),(0,l.yg)("p",null,(0,l.yg)("strong",{parentName:"p"},"\u601d\u8003\uff1a")),(0,l.yg)("ol",null,(0,l.yg)("li",{parentName:"ol"},"\u89e3\u8026\u548c\u6a21\u5757\u5316\uff1b")),(0,l.yg)("h4",{id:"\u7ec4\u5408\u5408\u6210\u590d\u7528\u539f\u5219composite-reuse-principle"},"\u7ec4\u5408(\u5408\u6210)\u590d\u7528\u539f\u5219\uff08Composite Reuse Principle\uff09"),(0,l.yg)("p",null,"\u5c3d\u91cf\u9996\u5148\u4f7f\u7528\u7ec4\u5408/\u805a\u5408\u7684\u65b9\u5f0f\uff0c\u800c\u4e0d\u662f\u4f7f\u7528\u7ee7\u627f\u3002"),(0,l.yg)("p",null,(0,l.yg)("strong",{parentName:"p"},"\u601d\u8003\uff1a")),(0,l.yg)("ol",null,(0,l.yg)("li",{parentName:"ol"},"\u4ec0\u4e48\u662f\u5173\u8054\u3001\u805a\u5408\u3001\u7ec4\u5408\uff1b",(0,l.yg)("a",{parentName:"li",href:"https://www.php.cn/java-article-413814.html"},"\u5173\u8054\u3001\u7ec4\u5408\u3001\u805a\u5408")),(0,l.yg)("li",{parentName:"ol"},"\u5982\u679c\u8981\u62d3\u5c55\uff0c\u9996\u5148\u60f3\u5230\u662f\u805a\u5408\u6216\u7ec4\u5408\uff0c\u800c\u4e0d\u5e94\u8be5\u662f\u7ee7\u627f\uff0c\u7ee7\u627f\u592a\u91cd\u4e86\u3002")),(0,l.yg)("h3",{id:"\u5177\u4f53\u5206\u7c7b"},"\u5177\u4f53\u5206\u7c7b\uff1a"),(0,l.yg)("p",null,"\u521b\u5efa\u578b\u6a21\u5f0f\uff0c\u5171\u4e94\u79cd\uff1a\u5de5\u5382\u65b9\u6cd5\u6a21\u5f0f\u3001\u62bd\u8c61\u5de5\u5382\u6a21\u5f0f\u3001\u5355\u4f8b\u6a21\u5f0f\u3001\u5efa\u9020\u8005\u6a21\u5f0f\u3001\u539f\u578b\u6a21\u5f0f"),(0,l.yg)("p",null,"\u7ed3\u6784\u578b\u6a21\u5f0f\uff0c\u5171\u4e03\u79cd\uff1a\u9002\u914d\u5668\u6a21\u5f0f\u3001\u88c5\u9970\u8005\u6a21\u5f0f\u3001\u4ee3\u7406\u6a21\u5f0f\u3001\u5916\u89c2\u6a21\u5f0f\u3001\u6865\u63a5\u6a21\u5f0f\u3001\u7ec4\u5408\u6a21\u5f0f\u3001\u4eab\u5143\u6a21\u5f0f\u3002"),(0,l.yg)("p",null,"\u884c\u4e3a\u578b\u6a21\u5f0f\uff0c\u5171\u5341\u4e00\u79cd\uff1a\u7b56\u7565\u6a21\u5f0f\u3001\u6a21\u677f\u65b9\u6cd5\u6a21\u5f0f\u3001\u89c2\u5bdf\u8005\u6a21\u5f0f\u3001\u8fed\u4ee3\u5b50\u6a21\u5f0f\u3001\u8d23\u4efb\u94fe\u6a21\u5f0f\u3001\u547d\u4ee4\u6a21\u5f0f\u3001\u5907\u5fd8\u5f55\u6a21\u5f0f\u3001\u72b6\u6001\u6a21\u5f0f\u3001\u8bbf\u95ee\u8005\u6a21\u5f0f\u3001\u4e2d\u4ecb\u8005\u6a21\u5f0f\u3001\u89e3\u91ca\u5668\u6a21\u5f0f\u3002"),(0,l.yg)("p",null,"\u5176\u5b9e\u8fd8\u6709\u4e24\u7c7b\uff1a\u5e76\u53d1\u578b\u6a21\u5f0f\u548c\u7ebf\u7a0b\u6c60\u6a21\u5f0f\u3002"),(0,l.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"https://www.jianshu.com/p/1974a5837040"},"\u804a\u4e00\u804a\u9762\u5411\u5bf9\u8c61\u7684\u4e09\u5927\u7279\u6027")),(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"https://blog.csdn.net/jason0539/article/details/44956775"},"23 \u79cd\u8bbe\u8ba1\u6a21\u5f0f\u6c47\u603b\u6574\u7406")),(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"https://mp.weixin.qq.com/s?__biz=Mzg5MDczNDI0Nw==&mid=2247492497&idx=1&sn=31882a4693f0e09a419073b58ddf431e&chksm=cfdab059f8ad394f8fcafed1d96825a7393e491f4d287a0e0ab81e42e974ea87f3f54d973864&scene=21#wechat_redirect"},"\u4e24\u4e07\u5b57\u76d8\u70b9\u90a3\u4e9b\u88ab\u73a9\u70c2\u4e86\u7684\u8bbe\u8ba1\u6a21\u5f0f")),(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"https://refactoringguru.cn/design-patterns"},"\u56fe\u8bf4-\u8bbe\u8ba1\u6a21\u5f0f")),(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"https://design-patterns.readthedocs.io/zh_CN/latest/index.html"},"\u8bbe\u8ba1\u6a21\u5f0f\u4e4b\u7f8e"))))}y.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/96162fed.8fd01534.js b/assets/js/96162fed.af95c723.js similarity index 98% rename from assets/js/96162fed.8fd01534.js rename to assets/js/96162fed.af95c723.js index 80031ab53..de6d00704 100644 --- a/assets/js/96162fed.8fd01534.js +++ b/assets/js/96162fed.af95c723.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3428],{5680:(e,t,r)=>{r.d(t,{xA:()=>s,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),p=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},s=function(e){var t=p(e.components);return n.createElement(l.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,s=i(e,["components","mdxType","originalType","parentName"]),u=p(r),y=o,f=u["".concat(l,".").concat(y)]||u[y]||d[y]||a;return r?n.createElement(f,c(c({ref:t},s),{},{components:r})):n.createElement(f,c({ref:t},s))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=y;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[u]="string"==typeof e?e:o,c[1]=i;for(var p=2;p{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>c,default:()=>d,frontMatter:()=>a,metadata:()=>i,toc:()=>p});var n=r(8168),o=(r(6540),r(5680));const a={sidebar_position:1},c=void 0,i={unversionedId:"study/back/springcloud/SpringCloud\u4e94\u5927\u7ec4\u4ef6",id:"study/back/springcloud/SpringCloud\u4e94\u5927\u7ec4\u4ef6",title:"SpringCloud\u4e94\u5927\u7ec4\u4ef6",description:"image.png",source:"@site/docs/study/back/springcloud/SpringCloud\u4e94\u5927\u7ec4\u4ef6.md",sourceDirName:"study/back/springcloud",slug:"/study/back/springcloud/SpringCloud\u4e94\u5927\u7ec4\u4ef6",permalink:"/docs/study/back/springcloud/SpringCloud\u4e94\u5927\u7ec4\u4ef6",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"studySidebar",previous:{title:"RocketMQ",permalink:"/docs/study/back/mq/RocketMQ"},next:{title:"\u5fae\u670d\u52a1",permalink:"/docs/study/back/springcloud/\u5fae\u670d\u52a1"}},l={},p=[{value:"\u53c2\u8003",id:"\u53c2\u8003",level:4}],s={toc:p},u="wrapper";function d(e){let{components:t,...a}=e;return(0,o.yg)(u,(0,n.A)({},s,a,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("p",null,(0,o.yg)("img",{alt:"image.png",src:r(8997).A,width:"889",height:"503"})),(0,o.yg)("h4",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,o.yg)("ol",null,(0,o.yg)("li",{parentName:"ol"},(0,o.yg)("a",{parentName:"li",href:"https://www.cnblogs.com/mark5/p/16179178.html"},"\u6d45\u8c08SpringCloud\u4e94\u5927\u7ec4\u4ef6"))))}d.isMDXComponent=!0},8997:(e,t,r)=>{r.d(t,{A:()=>n});const n=r.p+"assets/images/5components-cb44cfca12b5d98ff58cba209b617c07.png"}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3428],{5680:(e,t,r)=>{r.d(t,{xA:()=>s,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),p=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},s=function(e){var t=p(e.components);return n.createElement(l.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,s=i(e,["components","mdxType","originalType","parentName"]),u=p(r),y=o,f=u["".concat(l,".").concat(y)]||u[y]||d[y]||a;return r?n.createElement(f,c(c({ref:t},s),{},{components:r})):n.createElement(f,c({ref:t},s))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=y;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[u]="string"==typeof e?e:o,c[1]=i;for(var p=2;p{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>c,default:()=>d,frontMatter:()=>a,metadata:()=>i,toc:()=>p});var n=r(8168),o=(r(6540),r(5680));const a={sidebar_position:1},c=void 0,i={unversionedId:"study/back/springcloud/SpringCloud\u4e94\u5927\u7ec4\u4ef6",id:"study/back/springcloud/SpringCloud\u4e94\u5927\u7ec4\u4ef6",title:"SpringCloud\u4e94\u5927\u7ec4\u4ef6",description:"image.png",source:"@site/docs/study/back/springcloud/SpringCloud\u4e94\u5927\u7ec4\u4ef6.md",sourceDirName:"study/back/springcloud",slug:"/study/back/springcloud/SpringCloud\u4e94\u5927\u7ec4\u4ef6",permalink:"/docs/study/back/springcloud/SpringCloud\u4e94\u5927\u7ec4\u4ef6",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"studySidebar",previous:{title:"RocketMQ",permalink:"/docs/study/back/mq/RocketMQ"},next:{title:"\u5fae\u670d\u52a1",permalink:"/docs/study/back/springcloud/\u5fae\u670d\u52a1"}},l={},p=[{value:"\u53c2\u8003",id:"\u53c2\u8003",level:4}],s={toc:p},u="wrapper";function d(e){let{components:t,...a}=e;return(0,o.yg)(u,(0,n.A)({},s,a,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("p",null,(0,o.yg)("img",{alt:"image.png",src:r(8997).A,width:"889",height:"503"})),(0,o.yg)("h4",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,o.yg)("ol",null,(0,o.yg)("li",{parentName:"ol"},(0,o.yg)("a",{parentName:"li",href:"https://www.cnblogs.com/mark5/p/16179178.html"},"\u6d45\u8c08SpringCloud\u4e94\u5927\u7ec4\u4ef6"))))}d.isMDXComponent=!0},8997:(e,t,r)=>{r.d(t,{A:()=>n});const n=r.p+"assets/images/5components-cb44cfca12b5d98ff58cba209b617c07.png"}}]); \ No newline at end of file diff --git a/assets/js/9703c56f.f9157ed6.js b/assets/js/9703c56f.935509b5.js similarity index 99% rename from assets/js/9703c56f.f9157ed6.js rename to assets/js/9703c56f.935509b5.js index 8bce71313..130d2f83e 100644 --- a/assets/js/9703c56f.f9157ed6.js +++ b/assets/js/9703c56f.935509b5.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4680],{5680:(e,t,r)=>{r.d(t,{xA:()=>s,yg:()=>d});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var i=n.createContext({}),p=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},s=function(e){var t=p(e.components);return n.createElement(i.Provider,{value:t},e.children)},u="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},b=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,i=e.parentName,s=c(e,["components","mdxType","originalType","parentName"]),u=p(r),b=a,d=u["".concat(i,".").concat(b)]||u[b]||y[b]||o;return r?n.createElement(d,l(l({ref:t},s),{},{components:r})):n.createElement(d,l({ref:t},s))}));function d(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,l=new Array(o);l[0]=b;var c={};for(var i in t)hasOwnProperty.call(t,i)&&(c[i]=t[i]);c.originalType=e,c[u]="string"==typeof e?e:a,l[1]=c;for(var p=2;p{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>l,default:()=>y,frontMatter:()=>o,metadata:()=>c,toc:()=>p});var n=r(8168),a=(r(6540),r(5680));const o={},l=void 0,c={unversionedId:"study/fe/WebGL",id:"study/fe/WebGL",title:"WebGL",description:"\u6982\u8ff0",source:"@site/docs/study/fe/WebGL.md",sourceDirName:"study/fe",slug:"/study/fe/WebGL",permalink:"/docs/study/fe/WebGL",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"TypeScript\u8bed\u6cd5\u56fe",permalink:"/docs/study/fe/TypeScript\u8bed\u6cd5\u56fe"},next:{title:"mqtt.js",permalink:"/docs/study/fe/mqtt.js"}},i={},p=[{value:"\u6982\u8ff0",id:"\u6982\u8ff0",level:3},{value:"webgl \u548c threejs \u533a\u522b",id:"webgl-\u548c-threejs-\u533a\u522b",level:3},{value:"\u5b66\u4e60\u3001\u4e2a\u4eba\u53d1\u5c55",id:"\u5b66\u4e60\u4e2a\u4eba\u53d1\u5c55",level:3}],s={toc:p},u="wrapper";function y(e){let{components:t,...r}=e;return(0,a.yg)(u,(0,n.A)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"\u6982\u8ff0"},"\u6982\u8ff0"),(0,a.yg)("p",null,"WebGL\uff08\u5168\u5199 Web Graphics Library\uff09\u662f\u4e00\u79cd 3D \u7ed8\u56fe\u534f\u8bae\uff0c\u8fd9\u79cd\u7ed8\u56fe\u6280\u672f\u6807\u51c6\u5141\u8bb8\u628a JavaScript \u548c OpenGL ES 2.0 \u7ed3\u5408\u5728\u4e00\u8d77\uff0c\u901a\u8fc7\u589e\u52a0 OpenGL ES 2.0 \u7684\u4e00\u4e2a JavaScript \u7ed1\u5b9a\uff0cWebGL \u53ef\u4ee5\u4e3a HTML5 Canvas \u63d0\u4f9b\u786c\u4ef6 3D \u52a0\u901f\u6e32\u67d3\uff0c\u8fd9\u6837 Web \u5f00\u53d1\u4eba\u5458\u5c31\u53ef\u4ee5\u501f\u52a9\u7cfb\u7edf\u663e\u5361\u6765\u5728\u6d4f\u89c8\u5668\u91cc\u66f4\u6d41\u7545\u5730\u5c55\u793a 3D \u573a\u666f\u548c\u6a21\u578b\u4e86\uff0c\u8fd8\u80fd\u521b\u5efa\u590d\u6742\u7684\u5bfc\u822a\u548c\u6570\u636e\u89c6\u89c9\u5316\u3002\u663e\u7136\uff0cWebGL \u6280\u672f\u6807\u51c6\u514d\u53bb\u4e86\u5f00\u53d1\u7f51\u9875\u4e13\u7528\u6e32\u67d3\u63d2\u4ef6\u7684\u9ebb\u70e6\uff0c\u53ef\u88ab\u7528\u4e8e\u521b\u5efa\u5177\u6709\u590d\u6742 3D \u7ed3\u6784\u7684\u7f51\u7ad9\u9875\u9762\uff0c\u751a\u81f3\u53ef\u4ee5\u7528\u6765\u8bbe\u8ba1 3D \u7f51\u9875\u6e38\u620f\u7b49\u7b49\u3002"),(0,a.yg)("p",null,"WebGL1.0 \u57fa\u4e8e OpenGL ES 2.0\uff0c\u5e76\u63d0\u4f9b\u4e86 3D \u56fe\u5f62\u7684 API\u3002\u5b83\u4f7f\u7528 HTML5Canvas \u5e76\u5141\u8bb8\u5229\u7528\u6587\u6863\u5bf9\u8c61\u6a21\u578b\u63a5\u53e3\u3002WebGL 2.0 \u57fa\u4e8e OpenGL ES 3.0\uff0c\u786e\u4fdd\u4e86\u63d0\u4f9b\u8bb8\u591a\u9009\u62e9\u6027\u7684 WebGL 1.0 \u6269\u5c55\uff0c\u5e76\u5f15\u5165\u65b0\u7684 API\u3002\u53ef\u5229\u7528\u90e8\u5206 Javascript \u5b9e\u73b0\u81ea\u52a8\u5b58\u50a8\u5668\u7ba1\u7406\u3002"),(0,a.yg)("h3",{id:"webgl-\u548c-threejs-\u533a\u522b"},"webgl \u548c threejs \u533a\u522b"),(0,a.yg)("p",null,"WebGL \u548c Three.js \u90fd\u662f\u7528\u4e8e\u5728\u6d4f\u89c8\u5668\u4e2d\u8fdb\u884c 3D \u56fe\u5f62\u6e32\u67d3\u7684\u6280\u672f\uff0c\u4f46\u5b83\u4eec\u7684\u7528\u9014\u548c\u5b9e\u73b0\u65b9\u5f0f\u6709\u6240\u4e0d\u540c\u3002"),(0,a.yg)("p",null,"WebGL \u662f\u4e00\u4e2a JavaScript API\uff0c\u5b83\u5141\u8bb8\u5f00\u53d1\u8005\u5728\u4e0d\u4f9d\u8d56\u5916\u90e8\u63d2\u4ef6\u7684\u60c5\u51b5\u4e0b\uff0c\u5229\u7528\u6d4f\u89c8\u5668\u7684 GPU \u80fd\u529b\uff0c\u5b9e\u73b0\u5728\u7ebf\u4ea4\u4e92\u5f0f 2D \u548c 3D \u7f51\u9875\u6548\u679c\u3002WebGL \u7684\u5de5\u4f5c\u539f\u7406\u662f\u5728 GPU \u4e0a\u6267\u884c\u7740\u8272\u5668\u8bed\u8a00\uff08GLSL\uff09\uff0c\u8fd9\u662f\u4e00\u79cd\u5f3a\u7c7b\u578b\u7684\u7f16\u7a0b\u8bed\u8a00\uff0c\u4e0e C/C++\u7c7b\u4f3c\u3002WebGL \u7684\u6838\u5fc3\u529f\u80fd\u5305\u62ec\u9876\u70b9\u548c\u7247\u5143\u7684\u7740\u8272\u5668\uff0c\u5206\u522b\u8d1f\u8d23\u8ba1\u7b97\u9876\u70b9\u548c\u50cf\u7d20\u7684\u989c\u8272\u503c\u3002\u5b83\u7684\u5de5\u4f5c\u6d41\u7a0b\u4e3b\u8981\u5305\u62ec\u5c06\u9876\u70b9\u4ece\u6a21\u578b\u7a7a\u95f4\u8f6c\u6362\u5230\u88c1\u526a\u7a7a\u95f4\uff0c\u7136\u540e\u57fa\u4e8e\u8fd9\u4e9b\u4fe1\u606f\u7ed8\u5236\u50cf\u7d20\u70b9\u3002"),(0,a.yg)("p",null,"Three.js \u5219\u662f\u4e00\u4e2a\u5f00\u6e90\u7684 JavaScript \u5e93\uff0c\u5b83\u63d0\u4f9b\u4e86\u8bb8\u591a\u9884\u5236\u7684\u5bf9\u8c61\u548c\u51fd\u6570\uff0c\u4ee5\u7b80\u5316 3D \u5f00\u53d1\u7684\u590d\u6742\u6027\u3002Three.js \u5c01\u88c5\u4e86 WebGL \u7684\u529f\u80fd\uff0c\u5e76\u63d0\u4f9b\u4e86\u4e00\u7cfb\u5217\u65b9\u4fbf\u7684\u5de5\u5177\u548c\u65b9\u6cd5\uff0c\u5982\u6444\u50cf\u673a\u3001\u706f\u5149\u3001\u51e0\u4f55\u5f62\u72b6\u7b49\u3002\u5b83\u53ef\u4ee5\u5355\u72ec\u4f7f\u7528\u4e5f\u53ef\u4ee5\u4e0e\u5176\u4ed6\u5e93\u7ed3\u5408\u4f7f\u7528\u3002Three.js \u7684\u8bbe\u8ba1\u76ee\u7684\u662f\u8ba9\u5f00\u53d1\u8005\u80fd\u591f\u5feb\u901f\u5730\u6784\u5efa\u4e09\u7ef4\u573a\u666f\u548c\u5e94\u7528\uff0c\u800c\u65e0\u9700\u624b\u52a8\u7f16\u5199\u5927\u91cf\u7684 WebGL \u4ee3\u7801\u3002"),(0,a.yg)("p",null,"\u603b\u7ed3\u6765\u8bf4\uff0cWebGL \u662f\u6d4f\u89c8\u5668\u5185\u7f6e\u7684\u6807\u51c6 API\uff0c\u4e3b\u8981\u7528\u4e8e\u5b9e\u73b0 3D \u56fe\u5f62\u7684\u57fa\u672c\u64cd\u4f5c\uff1b\u800c Three.js \u662f\u4e00\u4e2a\u66f4\u9ad8\u7ea7\u522b\u7684\u5e93\uff0c\u5b83\u5305\u542b\u4e86 WebGL \u7684\u529f\u80fd\u548c\u4e00\u4e9b\u989d\u5916\u7684\u5de5\u5177\u548c\u7b97\u6cd5\uff0c\u65e8\u5728\u7b80\u5316 3D \u5f00\u53d1\u7684\u4efb\u52a1\u3002"),(0,a.yg)("h3",{id:"\u5b66\u4e60\u4e2a\u4eba\u53d1\u5c55"},"\u5b66\u4e60\u3001\u4e2a\u4eba\u53d1\u5c55"),(0,a.yg)("p",null,"\u5b66\u4e60\u4ed6\u9700\u8981\u8ba1\u7b97\u673a\u56fe\u5f62\u5b66\u77e5\u8bc6\u3001\u624e\u5b9e\u7684\u6570\u5b66\u529f\u5e95\u3001\u4e30\u5bcc\u7684\u7a7a\u95f4\u60f3\u8c61\u529b\u3002\u4f60\u9700\u8981\u9762\u5bf9\u5f88\u591a\u95ee\u9898\uff0c\u6bd4\u5982\u4e2d\u6587\u6587\u6863\u4e0d\u4e30\u5bcc\u3001\u4f4e\u5c01\u88c5\u5ea6\u7684\u5f15\u64ce\u548c\u6846\u67b6\u3001\u5168\u65b0\u7684\u4e0a\u4e0b\u6e38\u5de5\u5177\u94fe\u3001\u96be\u4ee5\u7406\u89e3\u7684\u6570\u5b66\u3001\u53e4\u602a\u548c\u96be\u4ee5\u8c03\u8bd5\u7684 gl \u8bed\u8a00\u3001\u5947\u5947\u602a\u602a\u4e13\u4e1a\u6587\u4ef6\u683c\u5f0f\u3001\u5404\u79cd\u5404\u6837\u7684\u4e13\u4e1a\u9886\u57df\u77e5\u8bc6\uff0c\u7b49\u7b49\u7b49\u7b49\u2026\u2026"),(0,a.yg)("p",null,"\u9664\u4e86\u53ef\u4ee5\u4f7f\u7528 js \u7f16\u7a0b\u4ee5\u5916\uff0c\u8ddf\u4f20\u7edf\u7684 web \u524d\u7aef\u5f00\u53d1\u51e0\u4e4e\u6beb\u65e0\u5173\u7cfb\u3002"))}y.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4680],{5680:(e,t,r)=>{r.d(t,{xA:()=>s,yg:()=>d});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var i=n.createContext({}),p=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},s=function(e){var t=p(e.components);return n.createElement(i.Provider,{value:t},e.children)},u="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},b=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,i=e.parentName,s=c(e,["components","mdxType","originalType","parentName"]),u=p(r),b=a,d=u["".concat(i,".").concat(b)]||u[b]||y[b]||o;return r?n.createElement(d,l(l({ref:t},s),{},{components:r})):n.createElement(d,l({ref:t},s))}));function d(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,l=new Array(o);l[0]=b;var c={};for(var i in t)hasOwnProperty.call(t,i)&&(c[i]=t[i]);c.originalType=e,c[u]="string"==typeof e?e:a,l[1]=c;for(var p=2;p{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>l,default:()=>y,frontMatter:()=>o,metadata:()=>c,toc:()=>p});var n=r(8168),a=(r(6540),r(5680));const o={},l=void 0,c={unversionedId:"study/fe/WebGL",id:"study/fe/WebGL",title:"WebGL",description:"\u6982\u8ff0",source:"@site/docs/study/fe/WebGL.md",sourceDirName:"study/fe",slug:"/study/fe/WebGL",permalink:"/docs/study/fe/WebGL",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"TypeScript\u8bed\u6cd5\u56fe",permalink:"/docs/study/fe/TypeScript\u8bed\u6cd5\u56fe"},next:{title:"mqtt.js",permalink:"/docs/study/fe/mqtt.js"}},i={},p=[{value:"\u6982\u8ff0",id:"\u6982\u8ff0",level:3},{value:"webgl \u548c threejs \u533a\u522b",id:"webgl-\u548c-threejs-\u533a\u522b",level:3},{value:"\u5b66\u4e60\u3001\u4e2a\u4eba\u53d1\u5c55",id:"\u5b66\u4e60\u4e2a\u4eba\u53d1\u5c55",level:3}],s={toc:p},u="wrapper";function y(e){let{components:t,...r}=e;return(0,a.yg)(u,(0,n.A)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"\u6982\u8ff0"},"\u6982\u8ff0"),(0,a.yg)("p",null,"WebGL\uff08\u5168\u5199 Web Graphics Library\uff09\u662f\u4e00\u79cd 3D \u7ed8\u56fe\u534f\u8bae\uff0c\u8fd9\u79cd\u7ed8\u56fe\u6280\u672f\u6807\u51c6\u5141\u8bb8\u628a JavaScript \u548c OpenGL ES 2.0 \u7ed3\u5408\u5728\u4e00\u8d77\uff0c\u901a\u8fc7\u589e\u52a0 OpenGL ES 2.0 \u7684\u4e00\u4e2a JavaScript \u7ed1\u5b9a\uff0cWebGL \u53ef\u4ee5\u4e3a HTML5 Canvas \u63d0\u4f9b\u786c\u4ef6 3D \u52a0\u901f\u6e32\u67d3\uff0c\u8fd9\u6837 Web \u5f00\u53d1\u4eba\u5458\u5c31\u53ef\u4ee5\u501f\u52a9\u7cfb\u7edf\u663e\u5361\u6765\u5728\u6d4f\u89c8\u5668\u91cc\u66f4\u6d41\u7545\u5730\u5c55\u793a 3D \u573a\u666f\u548c\u6a21\u578b\u4e86\uff0c\u8fd8\u80fd\u521b\u5efa\u590d\u6742\u7684\u5bfc\u822a\u548c\u6570\u636e\u89c6\u89c9\u5316\u3002\u663e\u7136\uff0cWebGL \u6280\u672f\u6807\u51c6\u514d\u53bb\u4e86\u5f00\u53d1\u7f51\u9875\u4e13\u7528\u6e32\u67d3\u63d2\u4ef6\u7684\u9ebb\u70e6\uff0c\u53ef\u88ab\u7528\u4e8e\u521b\u5efa\u5177\u6709\u590d\u6742 3D \u7ed3\u6784\u7684\u7f51\u7ad9\u9875\u9762\uff0c\u751a\u81f3\u53ef\u4ee5\u7528\u6765\u8bbe\u8ba1 3D \u7f51\u9875\u6e38\u620f\u7b49\u7b49\u3002"),(0,a.yg)("p",null,"WebGL1.0 \u57fa\u4e8e OpenGL ES 2.0\uff0c\u5e76\u63d0\u4f9b\u4e86 3D \u56fe\u5f62\u7684 API\u3002\u5b83\u4f7f\u7528 HTML5Canvas \u5e76\u5141\u8bb8\u5229\u7528\u6587\u6863\u5bf9\u8c61\u6a21\u578b\u63a5\u53e3\u3002WebGL 2.0 \u57fa\u4e8e OpenGL ES 3.0\uff0c\u786e\u4fdd\u4e86\u63d0\u4f9b\u8bb8\u591a\u9009\u62e9\u6027\u7684 WebGL 1.0 \u6269\u5c55\uff0c\u5e76\u5f15\u5165\u65b0\u7684 API\u3002\u53ef\u5229\u7528\u90e8\u5206 Javascript \u5b9e\u73b0\u81ea\u52a8\u5b58\u50a8\u5668\u7ba1\u7406\u3002"),(0,a.yg)("h3",{id:"webgl-\u548c-threejs-\u533a\u522b"},"webgl \u548c threejs \u533a\u522b"),(0,a.yg)("p",null,"WebGL \u548c Three.js \u90fd\u662f\u7528\u4e8e\u5728\u6d4f\u89c8\u5668\u4e2d\u8fdb\u884c 3D \u56fe\u5f62\u6e32\u67d3\u7684\u6280\u672f\uff0c\u4f46\u5b83\u4eec\u7684\u7528\u9014\u548c\u5b9e\u73b0\u65b9\u5f0f\u6709\u6240\u4e0d\u540c\u3002"),(0,a.yg)("p",null,"WebGL \u662f\u4e00\u4e2a JavaScript API\uff0c\u5b83\u5141\u8bb8\u5f00\u53d1\u8005\u5728\u4e0d\u4f9d\u8d56\u5916\u90e8\u63d2\u4ef6\u7684\u60c5\u51b5\u4e0b\uff0c\u5229\u7528\u6d4f\u89c8\u5668\u7684 GPU \u80fd\u529b\uff0c\u5b9e\u73b0\u5728\u7ebf\u4ea4\u4e92\u5f0f 2D \u548c 3D \u7f51\u9875\u6548\u679c\u3002WebGL \u7684\u5de5\u4f5c\u539f\u7406\u662f\u5728 GPU \u4e0a\u6267\u884c\u7740\u8272\u5668\u8bed\u8a00\uff08GLSL\uff09\uff0c\u8fd9\u662f\u4e00\u79cd\u5f3a\u7c7b\u578b\u7684\u7f16\u7a0b\u8bed\u8a00\uff0c\u4e0e C/C++\u7c7b\u4f3c\u3002WebGL \u7684\u6838\u5fc3\u529f\u80fd\u5305\u62ec\u9876\u70b9\u548c\u7247\u5143\u7684\u7740\u8272\u5668\uff0c\u5206\u522b\u8d1f\u8d23\u8ba1\u7b97\u9876\u70b9\u548c\u50cf\u7d20\u7684\u989c\u8272\u503c\u3002\u5b83\u7684\u5de5\u4f5c\u6d41\u7a0b\u4e3b\u8981\u5305\u62ec\u5c06\u9876\u70b9\u4ece\u6a21\u578b\u7a7a\u95f4\u8f6c\u6362\u5230\u88c1\u526a\u7a7a\u95f4\uff0c\u7136\u540e\u57fa\u4e8e\u8fd9\u4e9b\u4fe1\u606f\u7ed8\u5236\u50cf\u7d20\u70b9\u3002"),(0,a.yg)("p",null,"Three.js \u5219\u662f\u4e00\u4e2a\u5f00\u6e90\u7684 JavaScript \u5e93\uff0c\u5b83\u63d0\u4f9b\u4e86\u8bb8\u591a\u9884\u5236\u7684\u5bf9\u8c61\u548c\u51fd\u6570\uff0c\u4ee5\u7b80\u5316 3D \u5f00\u53d1\u7684\u590d\u6742\u6027\u3002Three.js \u5c01\u88c5\u4e86 WebGL \u7684\u529f\u80fd\uff0c\u5e76\u63d0\u4f9b\u4e86\u4e00\u7cfb\u5217\u65b9\u4fbf\u7684\u5de5\u5177\u548c\u65b9\u6cd5\uff0c\u5982\u6444\u50cf\u673a\u3001\u706f\u5149\u3001\u51e0\u4f55\u5f62\u72b6\u7b49\u3002\u5b83\u53ef\u4ee5\u5355\u72ec\u4f7f\u7528\u4e5f\u53ef\u4ee5\u4e0e\u5176\u4ed6\u5e93\u7ed3\u5408\u4f7f\u7528\u3002Three.js \u7684\u8bbe\u8ba1\u76ee\u7684\u662f\u8ba9\u5f00\u53d1\u8005\u80fd\u591f\u5feb\u901f\u5730\u6784\u5efa\u4e09\u7ef4\u573a\u666f\u548c\u5e94\u7528\uff0c\u800c\u65e0\u9700\u624b\u52a8\u7f16\u5199\u5927\u91cf\u7684 WebGL \u4ee3\u7801\u3002"),(0,a.yg)("p",null,"\u603b\u7ed3\u6765\u8bf4\uff0cWebGL \u662f\u6d4f\u89c8\u5668\u5185\u7f6e\u7684\u6807\u51c6 API\uff0c\u4e3b\u8981\u7528\u4e8e\u5b9e\u73b0 3D \u56fe\u5f62\u7684\u57fa\u672c\u64cd\u4f5c\uff1b\u800c Three.js \u662f\u4e00\u4e2a\u66f4\u9ad8\u7ea7\u522b\u7684\u5e93\uff0c\u5b83\u5305\u542b\u4e86 WebGL \u7684\u529f\u80fd\u548c\u4e00\u4e9b\u989d\u5916\u7684\u5de5\u5177\u548c\u7b97\u6cd5\uff0c\u65e8\u5728\u7b80\u5316 3D \u5f00\u53d1\u7684\u4efb\u52a1\u3002"),(0,a.yg)("h3",{id:"\u5b66\u4e60\u4e2a\u4eba\u53d1\u5c55"},"\u5b66\u4e60\u3001\u4e2a\u4eba\u53d1\u5c55"),(0,a.yg)("p",null,"\u5b66\u4e60\u4ed6\u9700\u8981\u8ba1\u7b97\u673a\u56fe\u5f62\u5b66\u77e5\u8bc6\u3001\u624e\u5b9e\u7684\u6570\u5b66\u529f\u5e95\u3001\u4e30\u5bcc\u7684\u7a7a\u95f4\u60f3\u8c61\u529b\u3002\u4f60\u9700\u8981\u9762\u5bf9\u5f88\u591a\u95ee\u9898\uff0c\u6bd4\u5982\u4e2d\u6587\u6587\u6863\u4e0d\u4e30\u5bcc\u3001\u4f4e\u5c01\u88c5\u5ea6\u7684\u5f15\u64ce\u548c\u6846\u67b6\u3001\u5168\u65b0\u7684\u4e0a\u4e0b\u6e38\u5de5\u5177\u94fe\u3001\u96be\u4ee5\u7406\u89e3\u7684\u6570\u5b66\u3001\u53e4\u602a\u548c\u96be\u4ee5\u8c03\u8bd5\u7684 gl \u8bed\u8a00\u3001\u5947\u5947\u602a\u602a\u4e13\u4e1a\u6587\u4ef6\u683c\u5f0f\u3001\u5404\u79cd\u5404\u6837\u7684\u4e13\u4e1a\u9886\u57df\u77e5\u8bc6\uff0c\u7b49\u7b49\u7b49\u7b49\u2026\u2026"),(0,a.yg)("p",null,"\u9664\u4e86\u53ef\u4ee5\u4f7f\u7528 js \u7f16\u7a0b\u4ee5\u5916\uff0c\u8ddf\u4f20\u7edf\u7684 web \u524d\u7aef\u5f00\u53d1\u51e0\u4e4e\u6beb\u65e0\u5173\u7cfb\u3002"))}y.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/97b42080.fe62a2ed.js b/assets/js/97b42080.387ba300.js similarity index 99% rename from assets/js/97b42080.fe62a2ed.js rename to assets/js/97b42080.387ba300.js index 0e9071712..a42fb587d 100644 --- a/assets/js/97b42080.fe62a2ed.js +++ b/assets/js/97b42080.387ba300.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8351],{5680:(t,e,n)=>{n.d(e,{xA:()=>s,yg:()=>y});var r=n(6540);function p(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function a(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function c(t){for(var e=1;e=0||(p[n]=t[n]);return p}(t,e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(p[n]=t[n])}return p}var o=r.createContext({}),i=function(t){var e=r.useContext(o),n=e;return t&&(n="function"==typeof t?t(e):c(c({},e),t)),n},s=function(t){var e=i(t.components);return r.createElement(o.Provider,{value:e},t.children)},l="mdxType",d={inlineCode:"code",wrapper:function(t){var e=t.children;return r.createElement(r.Fragment,{},e)}},m=r.forwardRef((function(t,e){var n=t.components,p=t.mdxType,a=t.originalType,o=t.parentName,s=u(t,["components","mdxType","originalType","parentName"]),l=i(n),m=p,y=l["".concat(o,".").concat(m)]||l[m]||d[m]||a;return n?r.createElement(y,c(c({ref:e},s),{},{components:n})):r.createElement(y,c({ref:e},s))}));function y(t,e){var n=arguments,p=e&&e.mdxType;if("string"==typeof t||p){var a=n.length,c=new Array(a);c[0]=m;var u={};for(var o in e)hasOwnProperty.call(e,o)&&(u[o]=e[o]);u.originalType=t,u[l]="string"==typeof t?t:p,c[1]=u;for(var i=2;i{n.r(e),n.d(e,{assets:()=>o,contentTitle:()=>c,default:()=>d,frontMatter:()=>a,metadata:()=>u,toc:()=>i});var r=n(8168),p=(n(6540),n(5680));const a={},c=void 0,u={unversionedId:"study/net/\u6293\u5305\u5de5\u5177",id:"study/net/\u6293\u5305\u5de5\u5177",title:"\u6293\u5305\u5de5\u5177",description:"tcpdump",source:"@site/docs/study/net/\u6293\u5305\u5de5\u5177.md",sourceDirName:"study/net",slug:"/study/net/\u6293\u5305\u5de5\u5177",permalink:"/docs/study/net/\u6293\u5305\u5de5\u5177",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u5f02\u5730\u7ec4\u7f51",permalink:"/docs/study/net/\u5f02\u5730\u7ec4\u7f51"},next:{title:"\u7f51\u7edc\u541e\u5410\u91cf\u6d4b\u91cf\u5de5\u5177",permalink:"/docs/study/net/\u7f51\u7edc\u541e\u5410\u91cf\u6d4b\u91cf\u5de5\u5177"}},o={},i=[{value:"tcpdump",id:"tcpdump",level:3},{value:"netstat",id:"netstat",level:3}],s={toc:i},l="wrapper";function d(t){let{components:e,...n}=t;return(0,p.yg)(l,(0,r.A)({},s,n,{components:e,mdxType:"MDXLayout"}),(0,p.yg)("h3",{id:"tcpdump"},"tcpdump"),(0,p.yg)("p",null,"tcpdump \u662f\u4e00\u4e2a\u5f88\u5e38\u7528\u7684\u7f51\u7edc\u5305\u5206\u6790\u5de5\u5177\uff0c\u53ef\u4ee5\u7528\u6765\u663e\u793a\u901a\u8fc7\u7f51\u7edc\u4f20\u8f93\u5230\u672c\u7cfb\u7edf\u7684 TCP/IP \u4ee5\u53ca\u5176\u4ed6\u7f51\u7edc\u7684\u6570\u636e\u5305\u3002tcpdump \u4f7f\u7528 libpcap \u5e93\u6765\u6293\u53d6\u7f51\u7edc\u62a5\uff0c\u8fd9\u4e2a\u5e93\u5728\u51e0\u4e4e\u5728\u6240\u6709\u7684 Linux/Unix \u4e2d\u90fd\u6709\u3002"),(0,p.yg)("pre",null,(0,p.yg)("code",{parentName:"pre",className:"language-shell"},"tcpdump -i eth0 #\u6355\u83b7\u6307\u5b9a\u63a5\u53e3(\u7f51\u5361)\u7684\u6570\u636e\u5305 \u53ef\u901a\u8fc7 netstat -i\u67e5\u770b\u7f51\u5361\u8bbe\u5907\ntcpdump -i eth0 -c 3 #\u6355\u83b7\u6307\u5b9a\u4e2a\u6570\u7684\u6570\u636e\u5305\uff083\u4e2a\u6570\u636e\u5305\uff09\ntcpdump -A -i eth0 #\u7528ASCII\u7801\u683c\u5f0f\u8f93\u51fa\u6355\u83b7\u7684\u6570\u636e\u5305\ntcpdump -D #\u663e\u793a\u53ef\u7528\u7684\u7cfb\u7edf\u63a5\u53e3\ntcpdump -XX -i eth0 #\u7528\u5341\u516d\u8fdb\u5236\u548cASCII\u7801\u683c\u5f0f\u663e\u793a\u6355\u83b7\u7684\u6570\u636e\u5305\ntcpdump -w tempDump.pcap -i eth0 #\u628a\u6355\u83b7\u7684\u6570\u636e\u5305\u5199\u5165\u5230\u4e00\u4e2a.pcap\u540e\u7f00\u7684\u6587\u4ef6\u4e2d\ntcpdump -r tempDump.pcap #\u8bfb\u53d6\u6355\u83b7\u6570\u636e\u5305\u6587\u4ef6\u7684\u5185\u5bb9\ntcpdump -n -i eth0 # \u5355\u4e2a n \u8868\u793a\u4e0d\u89e3\u6790\u57df\u540d\uff0c\u76f4\u63a5\u663e\u793a IP\ntcpdump -i eth0 tcp #\u6355\u83b7TCP\u7c7b\u578b\u7684\u6570\u636e\u5305\ntcpdump -i eth0 port 22 #\u6355\u83b7\u6307\u5b9a\u7aef\u53e3\uff08\u8fd9\u91cc\u662f22\uff09\u7684\u6570\u636e\u5305\ntcpdump -i eth0 src \u6e90ip\u5730\u5740 #\u6355\u83b7\u8bf7\u6c42\u6e90\u662f 192.169.12.101 \u7684\u6570\u636e\u5305\ntcpdump -i eth0 dst \u76ee\u6807ip\u5730\u5740 #\u6355\u83b7\u6307\u5b9a\u76ee\u7684IP\u7684\u6570\u636e\u5305\ntcpdump -i eth6 dst host \u76ee\u6807ip\u5730\u5740 and port 8800 -w data.pcap #\u6293\u53d6\u6307\u5b9a\u7f51\u5361\uff0c\u6307\u5b9aIP\u548c\u7aef\u53e3\u7684\u6570\u636e\u5305 \u5e76\u5199\u5165\u5230data.pcap\u6587\u4ef6\u4e2d\ntcpdump host 192.168.12.101 and 192.168.1.201 -w out & #\u540e\u53f0\u6293\u53d6\u4e24\u4e3b\u673a\u4e4b\u95f4\u7684\u6570\u636e\ntcpdump -nn #\u5355\u4e2a n \u8868\u793a\u4e0d\u89e3\u6790\u57df\u540d\uff0c\u76f4\u63a5\u663e\u793a IP\uff1b\u4e24\u4e2a n \u8868\u793a\u4e0d\u89e3\u6790\u57df\u540d\u548c\u7aef\u53e3\u3002\u8fd9\u6837\u4e0d\u4ec5\u65b9\u4fbf\u67e5\u770b IP \u548c\u7aef\u53e3\u53f7\uff0c\u800c\u4e14\u5728\u6293\u53d6\u5927\u91cf\u6570\u636e\u65f6\u975e\u5e38\u9ad8\u6548\uff0c\u56e0\u4e3a\u57df\u540d\u89e3\u6790\u4f1a\u964d\u4f4e\u6293\u53d6\u901f\u5ea6\n")),(0,p.yg)("ul",null,(0,p.yg)("li",{parentName:"ul"},(0,p.yg)("a",{parentName:"li",href:"https://zhuanlan.zhihu.com/p/611443192"},"\u77e5\u4e4e\uff1atcpdump \u8be6\u89e3&\u5b9e\u6218"))),(0,p.yg)("h3",{id:"netstat"},"netstat"),(0,p.yg)("p",null,"netstat \u662f\u4e00\u4e2a\u76d1\u63a7 TCP/IP \u7f51\u7edc\u7684\u975e\u5e38\u6709\u7528\u7684\u5de5\u5177\uff0c\u5b83\u53ef\u4ee5\u663e\u793a\u8def\u7531\u8868\u3001\u7f51\u7edc\u8fde\u63a5\u4ee5\u53ca\u6bcf\u4e00\u4e2a\u7f51\u7edc\u63a5\u53e3\u8bbe\u5907\u7684\u72b6\u6001\u4fe1\u606f\u3002netstat \u7528\u4e8e\u663e\u793a\u4e0e IP\u3001TCP\u3001UDP \u548c ICMP \u534f\u8bae\u76f8\u5173\u7684\u7edf\u8ba1\u6570\u636e\uff0c\u4e00\u822c\u7528\u4e8e\u68c0\u9a8c\u672c\u673a\u5404\u7aef\u53e3\u7684\u7f51\u7edc\u8fde\u63a5\u60c5\u51b5\u3002"),(0,p.yg)("pre",null,(0,p.yg)("code",{parentName:"pre",className:"language-shell"},"netstat -at #\u67e5\u770b\u5f53\u524d\u5df2\u7ecf\u5efa\u7acb\u7684tcp\u8fde\u63a5\nnetstat -au #\u5217\u51fa\u6240\u6709 udp \u7aef\u53e3\nnetstat -lt #\u53ea\u5217\u51fa\u6240\u6709\u76d1\u542c\u4e2d\u7684 tcp\u7c7b\u578b\u7684 \u7aef\u53e3\nnetstat -lu #\u53ea\u5217\u51fa\u6240\u6709\u76d1\u542c\u4e2d\u7684 udp\u7c7b\u578b\u7684\u7aef\u53e3\nnetstat -antp #\u67e5\u770b\u6240\u6709\u5df2\u7ecf\u5efa\u7acb\u7684tcp\u8fde\u63a5\uff0c\u5e76\u4e14\u57df\u540d\u4ee5\u6570\u5b57\u5f62\u5f0f\u663e\u793a\nnetstat -tupl #\u67e5\u770b\u6240\u6709\u76d1\u542c\u7684tcp\u548cudp\u53ca\u8fdb\u7a0b\u540d\u4fe1\u606f\uff08udp\u4e0d\u80fd\u76d1\u542c\uff0c\u4f46\u53ef\u4ee5\u67e5\u770b\u662f\u5426\u5728\u5360\u7528\uff09\nnetstat -s #\u663e\u793a\u6240\u6709\u7aef\u53e3\u7684\u7edf\u8ba1\u4fe1\u606f\nnetstat -st \u6216 -su #\u663e\u793a TCP \u6216 UDP \u7aef\u53e3\u7684\u7edf\u8ba1\u4fe1\u606f\nnetstat -i #\u67e5\u770b\u7f51\u5361\u63a5\u53e3\u4fe1\u606f\nnetstat -tulnp |grep nginx #\u67e5\u770bnginx\u670d\u52a1\u7684\u7f51\u7edc\u4fe1\u606f\n")))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8351],{5680:(t,e,n)=>{n.d(e,{xA:()=>s,yg:()=>y});var r=n(6540);function p(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function a(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function c(t){for(var e=1;e=0||(p[n]=t[n]);return p}(t,e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(p[n]=t[n])}return p}var o=r.createContext({}),i=function(t){var e=r.useContext(o),n=e;return t&&(n="function"==typeof t?t(e):c(c({},e),t)),n},s=function(t){var e=i(t.components);return r.createElement(o.Provider,{value:e},t.children)},l="mdxType",d={inlineCode:"code",wrapper:function(t){var e=t.children;return r.createElement(r.Fragment,{},e)}},m=r.forwardRef((function(t,e){var n=t.components,p=t.mdxType,a=t.originalType,o=t.parentName,s=u(t,["components","mdxType","originalType","parentName"]),l=i(n),m=p,y=l["".concat(o,".").concat(m)]||l[m]||d[m]||a;return n?r.createElement(y,c(c({ref:e},s),{},{components:n})):r.createElement(y,c({ref:e},s))}));function y(t,e){var n=arguments,p=e&&e.mdxType;if("string"==typeof t||p){var a=n.length,c=new Array(a);c[0]=m;var u={};for(var o in e)hasOwnProperty.call(e,o)&&(u[o]=e[o]);u.originalType=t,u[l]="string"==typeof t?t:p,c[1]=u;for(var i=2;i{n.r(e),n.d(e,{assets:()=>o,contentTitle:()=>c,default:()=>d,frontMatter:()=>a,metadata:()=>u,toc:()=>i});var r=n(8168),p=(n(6540),n(5680));const a={},c=void 0,u={unversionedId:"study/net/\u6293\u5305\u5de5\u5177",id:"study/net/\u6293\u5305\u5de5\u5177",title:"\u6293\u5305\u5de5\u5177",description:"tcpdump",source:"@site/docs/study/net/\u6293\u5305\u5de5\u5177.md",sourceDirName:"study/net",slug:"/study/net/\u6293\u5305\u5de5\u5177",permalink:"/docs/study/net/\u6293\u5305\u5de5\u5177",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u5f02\u5730\u7ec4\u7f51",permalink:"/docs/study/net/\u5f02\u5730\u7ec4\u7f51"},next:{title:"\u7f51\u7edc\u541e\u5410\u91cf\u6d4b\u91cf\u5de5\u5177",permalink:"/docs/study/net/\u7f51\u7edc\u541e\u5410\u91cf\u6d4b\u91cf\u5de5\u5177"}},o={},i=[{value:"tcpdump",id:"tcpdump",level:3},{value:"netstat",id:"netstat",level:3}],s={toc:i},l="wrapper";function d(t){let{components:e,...n}=t;return(0,p.yg)(l,(0,r.A)({},s,n,{components:e,mdxType:"MDXLayout"}),(0,p.yg)("h3",{id:"tcpdump"},"tcpdump"),(0,p.yg)("p",null,"tcpdump \u662f\u4e00\u4e2a\u5f88\u5e38\u7528\u7684\u7f51\u7edc\u5305\u5206\u6790\u5de5\u5177\uff0c\u53ef\u4ee5\u7528\u6765\u663e\u793a\u901a\u8fc7\u7f51\u7edc\u4f20\u8f93\u5230\u672c\u7cfb\u7edf\u7684 TCP/IP \u4ee5\u53ca\u5176\u4ed6\u7f51\u7edc\u7684\u6570\u636e\u5305\u3002tcpdump \u4f7f\u7528 libpcap \u5e93\u6765\u6293\u53d6\u7f51\u7edc\u62a5\uff0c\u8fd9\u4e2a\u5e93\u5728\u51e0\u4e4e\u5728\u6240\u6709\u7684 Linux/Unix \u4e2d\u90fd\u6709\u3002"),(0,p.yg)("pre",null,(0,p.yg)("code",{parentName:"pre",className:"language-shell"},"tcpdump -i eth0 #\u6355\u83b7\u6307\u5b9a\u63a5\u53e3(\u7f51\u5361)\u7684\u6570\u636e\u5305 \u53ef\u901a\u8fc7 netstat -i\u67e5\u770b\u7f51\u5361\u8bbe\u5907\ntcpdump -i eth0 -c 3 #\u6355\u83b7\u6307\u5b9a\u4e2a\u6570\u7684\u6570\u636e\u5305\uff083\u4e2a\u6570\u636e\u5305\uff09\ntcpdump -A -i eth0 #\u7528ASCII\u7801\u683c\u5f0f\u8f93\u51fa\u6355\u83b7\u7684\u6570\u636e\u5305\ntcpdump -D #\u663e\u793a\u53ef\u7528\u7684\u7cfb\u7edf\u63a5\u53e3\ntcpdump -XX -i eth0 #\u7528\u5341\u516d\u8fdb\u5236\u548cASCII\u7801\u683c\u5f0f\u663e\u793a\u6355\u83b7\u7684\u6570\u636e\u5305\ntcpdump -w tempDump.pcap -i eth0 #\u628a\u6355\u83b7\u7684\u6570\u636e\u5305\u5199\u5165\u5230\u4e00\u4e2a.pcap\u540e\u7f00\u7684\u6587\u4ef6\u4e2d\ntcpdump -r tempDump.pcap #\u8bfb\u53d6\u6355\u83b7\u6570\u636e\u5305\u6587\u4ef6\u7684\u5185\u5bb9\ntcpdump -n -i eth0 # \u5355\u4e2a n \u8868\u793a\u4e0d\u89e3\u6790\u57df\u540d\uff0c\u76f4\u63a5\u663e\u793a IP\ntcpdump -i eth0 tcp #\u6355\u83b7TCP\u7c7b\u578b\u7684\u6570\u636e\u5305\ntcpdump -i eth0 port 22 #\u6355\u83b7\u6307\u5b9a\u7aef\u53e3\uff08\u8fd9\u91cc\u662f22\uff09\u7684\u6570\u636e\u5305\ntcpdump -i eth0 src \u6e90ip\u5730\u5740 #\u6355\u83b7\u8bf7\u6c42\u6e90\u662f 192.169.12.101 \u7684\u6570\u636e\u5305\ntcpdump -i eth0 dst \u76ee\u6807ip\u5730\u5740 #\u6355\u83b7\u6307\u5b9a\u76ee\u7684IP\u7684\u6570\u636e\u5305\ntcpdump -i eth6 dst host \u76ee\u6807ip\u5730\u5740 and port 8800 -w data.pcap #\u6293\u53d6\u6307\u5b9a\u7f51\u5361\uff0c\u6307\u5b9aIP\u548c\u7aef\u53e3\u7684\u6570\u636e\u5305 \u5e76\u5199\u5165\u5230data.pcap\u6587\u4ef6\u4e2d\ntcpdump host 192.168.12.101 and 192.168.1.201 -w out & #\u540e\u53f0\u6293\u53d6\u4e24\u4e3b\u673a\u4e4b\u95f4\u7684\u6570\u636e\ntcpdump -nn #\u5355\u4e2a n \u8868\u793a\u4e0d\u89e3\u6790\u57df\u540d\uff0c\u76f4\u63a5\u663e\u793a IP\uff1b\u4e24\u4e2a n \u8868\u793a\u4e0d\u89e3\u6790\u57df\u540d\u548c\u7aef\u53e3\u3002\u8fd9\u6837\u4e0d\u4ec5\u65b9\u4fbf\u67e5\u770b IP \u548c\u7aef\u53e3\u53f7\uff0c\u800c\u4e14\u5728\u6293\u53d6\u5927\u91cf\u6570\u636e\u65f6\u975e\u5e38\u9ad8\u6548\uff0c\u56e0\u4e3a\u57df\u540d\u89e3\u6790\u4f1a\u964d\u4f4e\u6293\u53d6\u901f\u5ea6\n")),(0,p.yg)("ul",null,(0,p.yg)("li",{parentName:"ul"},(0,p.yg)("a",{parentName:"li",href:"https://zhuanlan.zhihu.com/p/611443192"},"\u77e5\u4e4e\uff1atcpdump \u8be6\u89e3&\u5b9e\u6218"))),(0,p.yg)("h3",{id:"netstat"},"netstat"),(0,p.yg)("p",null,"netstat \u662f\u4e00\u4e2a\u76d1\u63a7 TCP/IP \u7f51\u7edc\u7684\u975e\u5e38\u6709\u7528\u7684\u5de5\u5177\uff0c\u5b83\u53ef\u4ee5\u663e\u793a\u8def\u7531\u8868\u3001\u7f51\u7edc\u8fde\u63a5\u4ee5\u53ca\u6bcf\u4e00\u4e2a\u7f51\u7edc\u63a5\u53e3\u8bbe\u5907\u7684\u72b6\u6001\u4fe1\u606f\u3002netstat \u7528\u4e8e\u663e\u793a\u4e0e IP\u3001TCP\u3001UDP \u548c ICMP \u534f\u8bae\u76f8\u5173\u7684\u7edf\u8ba1\u6570\u636e\uff0c\u4e00\u822c\u7528\u4e8e\u68c0\u9a8c\u672c\u673a\u5404\u7aef\u53e3\u7684\u7f51\u7edc\u8fde\u63a5\u60c5\u51b5\u3002"),(0,p.yg)("pre",null,(0,p.yg)("code",{parentName:"pre",className:"language-shell"},"netstat -at #\u67e5\u770b\u5f53\u524d\u5df2\u7ecf\u5efa\u7acb\u7684tcp\u8fde\u63a5\nnetstat -au #\u5217\u51fa\u6240\u6709 udp \u7aef\u53e3\nnetstat -lt #\u53ea\u5217\u51fa\u6240\u6709\u76d1\u542c\u4e2d\u7684 tcp\u7c7b\u578b\u7684 \u7aef\u53e3\nnetstat -lu #\u53ea\u5217\u51fa\u6240\u6709\u76d1\u542c\u4e2d\u7684 udp\u7c7b\u578b\u7684\u7aef\u53e3\nnetstat -antp #\u67e5\u770b\u6240\u6709\u5df2\u7ecf\u5efa\u7acb\u7684tcp\u8fde\u63a5\uff0c\u5e76\u4e14\u57df\u540d\u4ee5\u6570\u5b57\u5f62\u5f0f\u663e\u793a\nnetstat -tupl #\u67e5\u770b\u6240\u6709\u76d1\u542c\u7684tcp\u548cudp\u53ca\u8fdb\u7a0b\u540d\u4fe1\u606f\uff08udp\u4e0d\u80fd\u76d1\u542c\uff0c\u4f46\u53ef\u4ee5\u67e5\u770b\u662f\u5426\u5728\u5360\u7528\uff09\nnetstat -s #\u663e\u793a\u6240\u6709\u7aef\u53e3\u7684\u7edf\u8ba1\u4fe1\u606f\nnetstat -st \u6216 -su #\u663e\u793a TCP \u6216 UDP \u7aef\u53e3\u7684\u7edf\u8ba1\u4fe1\u606f\nnetstat -i #\u67e5\u770b\u7f51\u5361\u63a5\u53e3\u4fe1\u606f\nnetstat -tulnp |grep nginx #\u67e5\u770bnginx\u670d\u52a1\u7684\u7f51\u7edc\u4fe1\u606f\n")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/9801fcb7.441b0a06.js b/assets/js/9801fcb7.ad37f014.js similarity index 99% rename from assets/js/9801fcb7.441b0a06.js rename to assets/js/9801fcb7.ad37f014.js index c5db3ea87..55864c16f 100644 --- a/assets/js/9801fcb7.441b0a06.js +++ b/assets/js/9801fcb7.ad37f014.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7401],{5680:(e,n,l)=>{l.d(n,{xA:()=>y,yg:()=>d});var t=l(6540);function r(e,n,l){return n in e?Object.defineProperty(e,n,{value:l,enumerable:!0,configurable:!0,writable:!0}):e[n]=l,e}function i(e,n){var l=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);n&&(t=t.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),l.push.apply(l,t)}return l}function a(e){for(var n=1;n=0||(r[l]=e[l]);return r}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(e,l)&&(r[l]=e[l])}return r}var o=t.createContext({}),p=function(e){var n=t.useContext(o),l=n;return e&&(l="function"==typeof e?e(n):a(a({},n),e)),l},y=function(e){var n=p(e.components);return t.createElement(o.Provider,{value:n},e.children)},c="mdxType",s={inlineCode:"code",wrapper:function(e){var n=e.children;return t.createElement(t.Fragment,{},n)}},P=t.forwardRef((function(e,n){var l=e.components,r=e.mdxType,i=e.originalType,o=e.parentName,y=u(e,["components","mdxType","originalType","parentName"]),c=p(l),P=r,d=c["".concat(o,".").concat(P)]||c[P]||s[P]||i;return l?t.createElement(d,a(a({ref:n},y),{},{components:l})):t.createElement(d,a({ref:n},y))}));function d(e,n){var l=arguments,r=n&&n.mdxType;if("string"==typeof e||r){var i=l.length,a=new Array(i);a[0]=P;var u={};for(var o in n)hasOwnProperty.call(n,o)&&(u[o]=n[o]);u.originalType=e,u[c]="string"==typeof e?e:r,a[1]=u;for(var p=2;p{l.r(n),l.d(n,{assets:()=>o,contentTitle:()=>a,default:()=>s,frontMatter:()=>i,metadata:()=>u,toc:()=>p});var t=l(8168),r=(l(6540),l(5680));const i={},a="\u53ef\u6267\u884c\u7a0b\u5e8f\u5728\u64cd\u4f5c\u7cfb\u7edf\u4e0b\u7684\u8fd0\u884c\u539f\u7406\u5206\u6790",u={unversionedId:"study/system/\u53ef\u6267\u884c\u7a0b\u5e8f\u8fd0\u884c\u539f\u7406\u5206\u6790",id:"study/system/\u53ef\u6267\u884c\u7a0b\u5e8f\u8fd0\u884c\u539f\u7406\u5206\u6790",title:"\u53ef\u6267\u884c\u7a0b\u5e8f\u5728\u64cd\u4f5c\u7cfb\u7edf\u4e0b\u7684\u8fd0\u884c\u539f\u7406\u5206\u6790",description:"\u67b6\u6784\uff0c\u4ece\u4e0b\u5f80\u4e0a\u5206\u6790",source:"@site/docs/study/system/\u53ef\u6267\u884c\u7a0b\u5e8f\u8fd0\u884c\u539f\u7406\u5206\u6790.md",sourceDirName:"study/system",slug:"/study/system/\u53ef\u6267\u884c\u7a0b\u5e8f\u8fd0\u884c\u539f\u7406\u5206\u6790",permalink:"/docs/study/system/\u53ef\u6267\u884c\u7a0b\u5e8f\u8fd0\u884c\u539f\u7406\u5206\u6790",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u5185\u5b58\u7ba1\u7406",permalink:"/docs/study/system/\u5185\u5b58\u7ba1\u7406"},next:{title:"\u64cd\u4f5c\u7cfb\u7edf\u5185\u6838",permalink:"/docs/study/system/\u64cd\u4f5c\u7cfb\u7edf\u5185\u6838"}},o={},p=[{value:"\u67b6\u6784\uff0c\u4ece\u4e0b\u5f80\u4e0a\u5206\u6790",id:"\u67b6\u6784\u4ece\u4e0b\u5f80\u4e0a\u5206\u6790",level:3},{value:"\u88f8\u673a",id:"\u88f8\u673a",level:3},{value:"x86 \u6307\u4ee4\u96c6\u53d1\u5c55",id:"x86-\u6307\u4ee4\u96c6\u53d1\u5c55",level:4},{value:"ARM \u67b6\u6784",id:"arm-\u67b6\u6784",level:4},{value:"MPIS \u67b6\u6784",id:"mpis-\u67b6\u6784",level:4},{value:"PowerPC \u7cfb\u5217",id:"powerpc-\u7cfb\u5217",level:4},{value:"SPARC \u67b6\u6784",id:"sparc-\u67b6\u6784",level:4},{value:"Alpha \u67b6\u6784",id:"alpha-\u67b6\u6784",level:4},{value:"CPU \u67b6\u6784\u4e4b\u95f4\u7684\u7ade\u4e89",id:"cpu-\u67b6\u6784\u4e4b\u95f4\u7684\u7ade\u4e89",level:3},{value:"PC \u548c\u670d\u52a1\u5668\u7ade\u4e89",id:"pc-\u548c\u670d\u52a1\u5668\u7ade\u4e89",level:4},{value:"\u79fb\u52a8\u7aef\u7ade\u4e89",id:"\u79fb\u52a8\u7aef\u7ade\u4e89",level:4},{value:"\u64cd\u4f5c\u7cfb\u7edf",id:"\u64cd\u4f5c\u7cfb\u7edf",level:3},{value:"\u684c\u9762\u64cd\u4f5c\u7cfb\u7edf",id:"\u684c\u9762\u64cd\u4f5c\u7cfb\u7edf",level:4},{value:"\u670d\u52a1\u5668\u64cd\u4f5c\u7cfb\u7edf",id:"\u670d\u52a1\u5668\u64cd\u4f5c\u7cfb\u7edf",level:4},{value:"\u5d4c\u5165\u5f0f\u64cd\u4f5c\u7cfb\u7edf",id:"\u5d4c\u5165\u5f0f\u64cd\u4f5c\u7cfb\u7edf",level:4},{value:"\u53ef\u6267\u884c\u7a0b\u5e8f\u6267\u884c\u7684\u539f\u7406\u5206\u6790",id:"\u53ef\u6267\u884c\u7a0b\u5e8f\u6267\u884c\u7684\u539f\u7406\u5206\u6790",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],y={toc:p},c="wrapper";function s(e){let{components:n,...l}=e;return(0,r.yg)(c,(0,t.A)({},y,l,{components:n,mdxType:"MDXLayout"}),(0,r.yg)("h1",{id:"\u53ef\u6267\u884c\u7a0b\u5e8f\u5728\u64cd\u4f5c\u7cfb\u7edf\u4e0b\u7684\u8fd0\u884c\u539f\u7406\u5206\u6790"},"\u53ef\u6267\u884c\u7a0b\u5e8f\u5728\u64cd\u4f5c\u7cfb\u7edf\u4e0b\u7684\u8fd0\u884c\u539f\u7406\u5206\u6790"),(0,r.yg)("h3",{id:"\u67b6\u6784\u4ece\u4e0b\u5f80\u4e0a\u5206\u6790"},"\u67b6\u6784\uff0c\u4ece\u4e0b\u5f80\u4e0a\u5206\u6790"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"\u88f8\u673a\uff08\u7eaf\u786c\u4ef6\uff09"),(0,r.yg)("li",{parentName:"ul"},"\u64cd\u4f5c\u7cfb\u7edf\uff08Windows/Linux\uff09"),(0,r.yg)("li",{parentName:"ul"},"\u53ef\u6267\u884c\u7a0b\u5e8f")),(0,r.yg)("h3",{id:"\u88f8\u673a"},"\u88f8\u673a"),(0,r.yg)("p",null,"\u5176\u5b9e\u4e3b\u8981\u5c31\u662f CPU \u67b6\u6784\u7684\u4e0d\u540c\uff0cCPU \u67b6\u6784\u662f CPU \u5546\u7ed9 CPU \u4ea7\u54c1\u5b9a\u7684\u4e00\u4e2a\u89c4\u8303\uff0c\u4e3b\u8981\u76ee\u7684\u662f\u4e3a\u4e86\u533a\u5206\u4e0d\u540c\u7c7b\u578b\u7684 CPU\u3002\u76ee\u524d\u5e02\u573a\u4e0a\u7684 CPU \u5206\u7c7b\u4e3b\u8981\u5206\u6709\u4e24\u5927\u9635\u8425\uff0c\u4e00\u4e2a\u662f Intel\u3001AMD \u4e3a\u9996\u7684\u590d\u6742\u6307\u4ee4\u96c6 CPU\uff0c\u53e6\u4e00\u4e2a\u662f\u4ee5 IBM\u3001ARM \u4e3a\u9996\u7684\u7cbe\u7b80\u6307\u4ee4\u96c6 CPU\u3002\u4e0d\u540c\u54c1\u724c\u7684 CPU\uff0c\u5176\u4ea7\u54c1\u7684\u67b6\u6784\u4e5f\u4e0d\u76f8\u540c\uff0cIntel\u3001AMD \u7684 CPU \u662f X86 \u67b6\u6784\uff0cIBM \u516c\u53f8\u7684 CPU \u662f PowerPC \u67b6\u6784\uff0cARM \u516c\u53f8\u7684 CPU \u662f ARM \u67b6\u6784\uff0c\u56fd\u5185\u7684\u98de\u817e CPU \u4e5f\u662f ARM \u67b6\u6784\u3002\u6b64\u5916\u8fd8\u6709 MPIS \u67b6\u6784\u3001SPARC \u67b6\u6784\u3001Alpha \u67b6\u6784\u3002"),(0,r.yg)("h4",{id:"x86-\u6307\u4ee4\u96c6\u53d1\u5c55"},"x86 \u6307\u4ee4\u96c6\u53d1\u5c55"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"IA\uff1aIntel\uff08\u82f1\u7279\u5c14\uff09\u5904\u7406\u5668\u7684\u670d\u52a1\u5668\u79f0\u4e4b\u4e3a IA\uff08Intel Architecture\uff09\u67b6\u6784\u670d\u52a1\u5668"),(0,r.yg)("li",{parentName:"ul"},"IA-32\uff1a\u82f1\u7279\u5c14 32 \u4f4d\u4f53\u7cfb\u67b6\u6784\uff0cX86 \u4ece 16 \u4f4d\u5230 32 \u4f4d\u662f\u5728\u539f\u6709\u7684\u67b6\u6784\u57fa\u7840\u4e0a\u8fdb\u884c\u4fee\u6539\uff08Intel \u79f0\u4e4b\u4e3a IA-32\uff09"),(0,r.yg)("li",{parentName:"ul"},"x86-32\uff1a\u73b0\u5982\u4eca Intel \u628a x86-32 \u79f0\u4e3a IA-32"),(0,r.yg)("li",{parentName:"ul"},"x86-64 \u5206\u4e3a intel \u548c AMD"),(0,r.yg)("li",{parentName:"ul"},"AMD64\uff1ax86 \u67b6\u6784\u7684 64 \u4f4d\u62d3\u5c55\uff0c\u5411\u540e\u517c\u5bb9\u4e8e 16 \u4f4d\u53ca 32 \u4f4d\u7684 x86 \u67b6\u6784\u3002x64 \u4e8e 1999 \u5e74\u7531 AMD \u8bbe\u8ba1\uff0cAMD \u9996\u6b21\u516c\u5f00 64 \u4f4d\u96c6\u4ee5\u6269\u5c55\u7ed9 x86\uff0c\u79f0\u4e3a\u201cAMD64\u201d\uff0cAMD64 \u548c Intel64 \u57fa\u672c\u4e0a\u4e00\u81f4"),(0,r.yg)("li",{parentName:"ul"},"Intel64\uff1aEM64T\uff08Extended Memory 64 Technology\uff09\u6269\u5c55 64bit \u5185\u5b58\u6280\u672f\uff0c\u672c\u8d28\u4e0a\u548c AMD64 \u4e00\u6837\u90fd\u662f IA-32 \u7684\u589e\u5f3a\u7248\u672c\u3002"),(0,r.yg)("li",{parentName:"ul"},"IA-64\uff1a64 \u4f4d\u7684\u82f1\u7279\u5c14\u67b6\u6784\uff0c\u82f1\u7279\u5c14\u5b89\u817e\u67b6\u6784\uff08Intel Itanium architecture\uff09\uff0c\u4f7f\u7528\u5728 Itanium \u5904\u7406\u5668\u5bb6\u65cf\u4e0a\u7684 64 \u4f4d\u6307\u4ee4\u96c6\u67b6\u6784\uff0c\u7531\u82f1\u7279\u5c14\u516c\u53f8\u4e0e\u60e0\u666e\u516c\u53f8\u5171\u540c\u5f00\u53d1\u3002IA \u662f Intel Architecture\uff08\u82f1\u7279\u5c14\u67b6\u6784\uff09\u7684\u7f29\u5199\uff0c64 \u6307 64 \u4f4d\u7cfb\u7edf\u3002\u4f7f\u7528\u8fd9\u79cd\u67b6\u6784\u7684 CPU\uff0c\u5305\u62ec Itanium \u548c Itanium 2\u3002\u6b64\u67b6\u6784\u4e0e x86 \u53ca x86-64 \u5e76\u4e0d\u76f8\u5bb9\uff0c\u64cd\u4f5c\u7cfb\u7edf\u4e0e\u8f6f\u4ef6\u9700\u4f7f\u7528 IA-64 \u4e13\u7528\u7248\u672c\u3002")),(0,r.yg)("h4",{id:"arm-\u67b6\u6784"},"ARM \u67b6\u6784"),(0,r.yg)("p",null,"ARM \u67b6\u6784\uff0c\u4e5f\u79f0\u4f5c\u8fdb\u9636\u7cbe\u7b80\u6307\u4ee4\u96c6\u673a\u5668\uff08Advanced RISC Machine\uff0c\u66f4\u65e9\u79f0\u4f5c\uff1aAcorn RISC Machine\uff09\uff0c\u662f\u4e00\u4e2a 32 \u4f4d\u7cbe\u7b80\u6307\u4ee4\u96c6\uff08RISC\uff09\u5904\u7406\u5668\u67b6\u6784\uff0c\u5176\u5e7f\u6cdb\u5730\u4f7f\u7528\u5728\u8bb8\u591a\u5d4c\u5165\u5f0f\u7cfb\u7edf\u8bbe\u8ba1\u3002\u7531\u4e8e\u8282\u80fd\u7684\u7279\u70b9\uff0cARM \u5904\u7406\u5668\u975e\u5e38\u9002\u7528\u4e8e\u884c\u52a8\u901a\u8baf\u9886\u57df\uff0c\u7b26\u5408\u5176\u4e3b\u8981\u8bbe\u8ba1\u76ee\u6807\u4e3a\u4f4e\u8017\u7535\u7684\u7279\u6027\u3002"),(0,r.yg)("p",null,"ARM \u6388\u6743\u65b9\u5f0f\uff1aARM \u516c\u53f8\u672c\u8eab\u5e76\u4e0d\u9760\u81ea\u6709\u7684\u8bbe\u8ba1\u6765\u5236\u9020\u6216\u51fa\u552e CPU \uff0c\u800c\u662f\u5c06\u5904\u7406\u5668\u67b6\u6784\u6388\u6743\u7ed9\u6709\u5174\u8da3\u7684\u5382\u5bb6\u3002"),(0,r.yg)("p",null,"\u56fd\u5916\u751f\u4ea7\u5382\u5546\uff1aTI \uff08\u5fb7\u5dde\u4eea\u5668\uff09\u3001Samsung\uff08\u4e09\u661f\uff09\u3001Freescale\uff08\u98de\u601d\u5361\u5c14\uff09\u3001Marvell\uff08\u9a6c\u7ef4\u5c14\uff09\u3001Nvidia\uff08\u82f1\u4f1f\u8fbe\uff09\u3001Qualcomm(\u9ad8\u901a\uff09\u3001STMicroelectronics(\u610f\u6cd5\u534a\u5bfc\u4f53\uff09\u3002"),(0,r.yg)("p",null,"\u56fd\u5185\u751f\u4ea7\u5382\u5546\uff1a\u534e\u4e3a\uff08\u6d77\u601d\u82af\u7247\uff09\u3001\u98de\u817e\uff08FT-1500\u3001FT2000-4 \u7b49 CPU \u82af\u7247\uff09\u3001\u5146\u6613\u521b\u65b0\uff08GD32 \u7cfb\u5217 MCU\uff0c\u53c2\u8003 STM32 \u7cfb\u5217\uff09\u3001\u745e\u82af\u5fae\uff08RK \u7cfb\u5217\u82af\u7247\uff09\u3001\u8054\u53d1\u79d1\uff08\u53f0\u6e7e\uff0c\u5929\u7391\u7cfb\u5217\uff09\u3002"),(0,r.yg)("h4",{id:"mpis-\u67b6\u6784"},"MPIS \u67b6\u6784"),(0,r.yg)("p",null,"MIPS \u662f\u4e16\u754c\u4e0a\u5f88\u6d41\u884c\u7684\u4e00\u79cd RISC \u5904\u7406\u5668\u3002MIPS \u6280\u672f\u516c\u53f8\u662f\u7f8e\u56fd\u8457\u540d\u7684\u82af\u7247\u8bbe\u8ba1\u516c\u53f8\uff0c\u5b83\u91c7\u7528\u7cbe\u7b80\u6307\u4ee4\u7cfb\u7edf\u8ba1\u7b97\u7ed3\u6784(RISC)\u6765\u8bbe\u8ba1\u82af\u7247\u3002"),(0,r.yg)("p",null,"MPIS \u67b6\u6784\u6388\u6743\u548c ARM \u67b6\u6784\u6388\u6743\u4e0d\u4e00\u6837\uff0cARM \u67b6\u6784\u6388\u6743\u7528\u6237\u57fa\u672c\u4e0d\u80fd\u81ea\u884c\u4fee\u6539\uff0c\u800c MPIS \u67b6\u6784\u6388\u6743\u540e\uff0c\u53ef\u4ee5\u81ea\u5df1\u4fee\u6539\u3002\u76ee\u524d MPIS \u53d1\u626c\u5149\u5927\u5bc4\u5e0c\u671b\u4e2d\u79d1\u9f99\u82af\u516c\u53f8\uff0c\u9f99\u82af\u5904\u7406\u5668\u4ece\u9f99\u82af 1 \u53f7\uff0c\u5230\u73b0\u5728\u7684\u9f99\u82af 3 \u53f7\u7cfb\u5217\u7684 3A4000\uff0cCPU \u7684\u6027\u80fd\u5df2\u7ecf\u5927\u5e45\u5ea6\u63d0\u9ad8\uff0c\u5728\u5b8c\u5168\u53ef\u4ee5\u80dc\u4efb\u65e5\u5e38\u529e\u516c\u6216\u8005\u4f5c\u4e3a\u7279\u6b8a\u7528\u9014\u7684\u670d\u52a1\u5668\u3002\u9f99\u82af CPU \u548c\u56fd\u4ea7\u7684\u98de\u817e\uff08FT\uff09\u5904\u7406\u5668\u5e76\u9a7e\u9f50\u9a71\uff0c\u53d1\u5c55\u6211\u56fd\u81ea\u4e3b\u53ef\u63a7 CPU\u3002"),(0,r.yg)("h4",{id:"powerpc-\u7cfb\u5217"},"PowerPC \u7cfb\u5217"),(0,r.yg)("p",null,"PowerPC \u662f\u4e00\u79cd\u7cbe\u7b80\u6307\u4ee4\u96c6\uff08RISC\uff09\u67b6\u6784\u7684\u4e2d\u592e\u5904\u7406\u5668\uff08CPU\uff09\uff0c\u5176\u57fa\u672c\u7684\u8bbe\u8ba1\u6e90\u81ea IBM\uff08\u56fd\u9645\u5546\u7528\u673a\u5668\u516c\u53f8\uff09\u7684 IBMPowerPC 601 \u5fae\u5904\u7406\u5668 POWER\uff08PerformanceOptimized With Enhanced RISC\uff1b\u300aIBM Connect \u7535\u5b50\u62a5\u300b2007 \u5e74 8 \u6708\u53f7\u8bd1\u4e3a\u201c\u589e\u5f3a RISC \u6027\u80fd\u4f18\u5316\u201d\uff09\u67b6\u6784\u3002\u4e8c\u5341\u4e16\u7eaa\u4e5d\u5341\u5e74\u4ee3\uff0cIBM(\u56fd\u9645\u5546\u7528\u673a\u5668\u516c\u53f8)\u3001Apple\uff08\u82f9\u679c\u516c\u53f8\uff09\u548c Motorola\uff08\u6469\u6258\u7f57\u62c9\uff09\u516c\u53f8\u5f00\u53d1 PowerPC \u82af\u7247\u6210\u529f\uff0c\u5e76\u5236\u9020\u51fa\u57fa\u4e8e PowerPC \u7684\u591a\u5904\u7406\u5668\u8ba1\u7b97\u673a\u3002PowerPC \u67b6\u6784\u7684\u7279\u70b9\u662f\u53ef\u4f38\u7f29\u6027\u597d\u3001\u65b9\u4fbf\u7075\u6d3b\u3002"),(0,r.yg)("p",null,"PowerPC \u5904\u7406\u5668\u6709\u5e7f\u6cdb\u7684\u5b9e\u73b0\u8303\u56f4\uff0c\u5305\u62ec\u4ece\u8bf8\u5982 Power4 \u90a3\u6837\u7684\u9ad8\u7aef\u670d\u52a1\u5668 CPU \u5230\u5d4c\u5165\u5f0f CPU \u5e02\u573a\uff08\u4efb\u5929\u5802 Gamecube \u4f7f\u7528\u4e86 PowerPC\uff09\u3002PowerPC \u5904\u7406\u5668\u6709\u975e\u5e38\u5f3a\u7684\u5d4c\u5165\u5f0f\u8868\u73b0\uff0c\u56e0\u4e3a\u5b83\u5177\u6709\u4f18\u5f02\u7684\u6027\u80fd\u3001\u8f83\u4f4e\u7684\u80fd\u91cf\u635f\u8017\u4ee5\u53ca\u8f83\u4f4e\u7684\u6563\u70ed\u91cf\u3002\u9664\u4e86\u8c61\u4e32\u884c\u548c\u4ee5\u592a\u7f51\u63a7\u5236\u5668\u90a3\u6837\u7684\u96c6\u6210 I/O\uff0c\u8be5\u5d4c\u5165\u5f0f\u5904\u7406\u5668\u4e0e\u201c\u53f0\u5f0f\u673a\u201dCPU \u5b58\u5728\u975e\u5e38\u663e\u8457\u7684\u533a\u522b\u3002"),(0,r.yg)("h4",{id:"sparc-\u67b6\u6784"},"SPARC \u67b6\u6784"),(0,r.yg)("p",null,"SPARC \u67b6\u6784\uff08Scalable Processor ARChitecture\uff0c\u53ef\u6269\u5c55\u5904\u7406\u5668\u67b6\u6784\uff09\u662f\u56fd\u9645\u4e0a\u6d41\u884c\u7684 RISC \u5904\u7406\u5668\u4f53\u7cfb\u67b6\u6784\u4e4b\u4e00\uff0cSPRAC \u5982\u4eca\u5df2\u53d1\u5c55\u6210\u4e3a\u4e00\u4e2a\u5f00\u653e\u7684\u6807\u51c6\uff0c\u4efb\u4f55\u673a\u6784\u6216\u4e2a\u4eba\u5747\u53ef\u7814\u7a76\u6216\u5f00\u53d1\u57fa\u4e8e SPRAC \u67b6\u6784\u7684\u4ea7\u54c1\uff0c\u800c\u65e0\u9700\u4ea4\u7eb3\u7248\u6743\u8d39\u3002SPARC \u5904\u7406\u5668\u67b6\u6784\u5177\u5907\u7cbe\u7b80\u6307\u4ee4\u96c6\uff08RISC\uff09\u3001\u652f\u6301 32 \u4f4d/64 \u4f4d\u6307\u4ee4\u7cbe\u5ea6\uff0c\u67b6\u6784\u8fd0\u884c\u7a33\u5b9a\u3001\u53ef\u6269\u5c55\u6027\u4f18\u826f\u3001\u4f53\u7cfb\u6807\u51c6\u5f00\u653e\u7b49\u7279\u70b9\u3002SPARC \u56e0\u6b64\u5f97\u4ee5\u8fc5\u901f\u53d1\u5c55\u58ee\u5927\uff0c\u5728\u73b0\u5728\u5df2\u7ecf\u6709\u5927\u7ea6 3 \u4e07\u591a\u4e2a\u6210\u529f\u7684\u5e94\u7528\u6848\u4f8b\u3002"),(0,r.yg)("p",null,"SPARCV7/V8 \u662f\u76ee\u524d\u5d4c\u5165\u5f0f\u63a7\u5236\u7cfb\u7edf\u5e38\u7528\u7684\u5904\u7406\u5668\u6807\u51c6\u7248\u672c\uff0c\u5e76\u5728\u822a\u5929\u8bbe\u5907\u7684\u7535\u5b50\u7cfb\u7edf\u4e2d\u5f97\u5230\u5e7f\u6cdb\u5e94\u7528\u3002\u7136\u800c\uff0cSPARC \u53ea\u662f\u4e00\u4e2a\u5904\u7406\u5668\u7684\u67b6\u6784\u6807\u51c6\uff0c\u5e76\u4e0d\u63d0\u4f9b\u73b0\u6210\u7684\u6e90\u7801\u6216 IP \u6838\uff0c\u5177\u4f53\u7684\u82af\u7247\u5b9e\u73b0\u8981\u7531\u5f00\u53d1\u8005\u53bb\u5b8c\u6210\u3002"),(0,r.yg)("h4",{id:"alpha-\u67b6\u6784"},"Alpha \u67b6\u6784"),(0,r.yg)("p",null,"\u76ee\u524d\u56fd\u5185\u91c7\u7528\u6b64\u67b6\u6784\u7684\u662f\u7533\u5fae\u8d85\u7b97\u5904\u7406\u5668\uff0c\u5f97\u76ca\u4e8e\u56fd\u5bb6\u7684\u652f\u6301\uff0c\u7533\u5a01\u5904\u7406\u5668\u5728\u519b\u961f\u5e94\u7528\u5e7f\u6cdb\u3002"),(0,r.yg)("h3",{id:"cpu-\u67b6\u6784\u4e4b\u95f4\u7684\u7ade\u4e89"},"CPU \u67b6\u6784\u4e4b\u95f4\u7684\u7ade\u4e89"),(0,r.yg)("h4",{id:"pc-\u548c\u670d\u52a1\u5668\u7ade\u4e89"},"PC \u548c\u670d\u52a1\u5668\u7ade\u4e89"),(0,r.yg)("p",null,"PC \u7aef\u548c\u670d\u52a1\u5668\u7aef\u662f X86 \u67b6\u6784\u7684\u5929\u4e0b\uff0c\u800c X86 \u67b6\u6784\u57fa\u672c\u662f\u4ee5 Intel \u4e3a\u9996\uff0cAMD \u4e3a\u8f85\u4e8c\u5206\u5929\u4e0b\u4e4b\u52bf\u3002\u56fd\u4ea7 CPU \u57fa\u672c\u53ea\u80fd\u7528\u5728\u519b\u5de5\u884c\u4e1a\u6216\u8005\u4e8b\u4e1a\u5355\u4f4d\u7b49\u3002\u5176\u5b9e\u8bf4\u6027\u80fd\uff0cpowerpc\uff0c\u53ef\u8c13\u662f\u9ad8\u51fa\u4e0d\u80dc\u5bd2\u3002\u786c\u4ef6\u65b9\u9762\uff0cPower \u7cfb\u7edf\u5728\u53ef\u9760\u6027\u3001\u53ef\u7528\u6027\u548c\u53ef\u7ef4\u62a4\u6027\u7684\u65b9\u9762\u7684\u51fa\u8272\u8868\u73b0\u4f7f\u5f97 IBM \u4ece\u82af\u7247\u5230\u7cfb\u7edf\u6240\u8bbe\u8ba1\u7684\u6574\u673a\u65b9\u6848\u6709\u7740\u72ec\u6709\u7684\u4f18\u52bf\u3002Power \u67b6\u6784\u7684\u5904\u7406\u5668\u5728\u8d85\u7b97\u3001\u5927\u578b\u4f01\u4e1a\u7684 UNIX \u670d\u52a1\u5668\u7b49\u591a\u4e2a\u65b9\u9762\u5e94\u7528\u4e5f\u5341\u5206\u6210\u529f\u3002\u5728\u8f6f\u4ef6\u65b9\u9762\uff0c\u5176\u4e13\u7528\u7684 AIX \u7cfb\u7edf\u5728\u7a33\u5b9a\u6027\u3001\u8f6f\u4ef6\u65b9\u6848\u96c6\u6210\u5ea6\u548c\u5382\u5546\u6280\u672f\u652f\u6301\u80fd\u529b\u65b9\u9762\u90fd\u8981\u66f4\u5f3a\u3002\u7531\u4e8e\u7528\u6237\u9009\u4e00\u5e73\u53f0\u4e3b\u8981\u770b\u8f6f\u4ef6\u9700\u6c42\uff0c\u4e00\u822c\u5bf9\u6570\u636e\u4fdd\u62a4\u548c 7","*","24 \u5c0f\u65f6\u4e0d\u5b95\u673a\u7b49\u6709\u6240\u8981\u6c42\uff0cpower \u67b6\u6784\u7684\u7a33\u5b9a\u6027\u548c\u8fd0\u7ef4\u7b49\u65b9\u9762\u76f8\u5bf9\u66f4\u4f18\u3002\u4f46\u662f\uff0c\u7531\u4e8e IBM \u7684\u6280\u672f\u628a\u63a7\uff0c\u4f7f\u5f97\u5176\u4ef7\u683c\u592a\u4e0d\u53cb\u597d\uff0c\u540c\u65f6\u6280\u672f\u4e5f\u8d76\u4e0d\u4e0a\u73af\u5883\u7684\u53d8\u5316\uff0c\u5728\u4e91\u8ba1\u7b97\u5174\u8d77\u540e\uff0c\u968f\u7740\u5206\u5e03\u5f0f\u7cfb\u7edf\u9010\u6e10\u6210\u719f\uff0c\u7cfb\u7edf\u5bf9\u5c0f\u578b\u673a\u7684\u4f9d\u8d56\u5f00\u59cb\u964d\u4f4e\uff0c\u6539\u4e3a\u4f9d\u9760\u96c6\u7fa4\u63d0\u4f9b\uff0c\u6027\u80fd\u4e5f\u53ef\u5b9e\u73b0\u5206\u5e03\u5f0f\u5904\u7406\u3002\u800c\u66f4\u4e3a\u5173\u952e\u7684\u662f\uff0cIBM \u7684\u5168\u5957\u670d\u52a1\u5c3d\u7ba1\u7a33\u5b9a\u6027\u4f18\u79c0\uff0c\u4f46\u5374\u5f71\u54cd\u4e86 Power \u67b6\u6784\u5bf9\u5176\u4ed6\u5546\u5bb6\u7684\u5438\u5f15\u529b\u3002"),(0,r.yg)("p",null,"\u800c Sparc \u67b6\u6784\u548c Power \u67b6\u6784\u57fa\u672c\u72af\u4e86\u540c\u6837\u7684\u9519\u8bef\uff1a\u4ef7\u683c\u4e0d\u53cb\u597d\u3002SPARC \u67b6\u6784\u6d4b\u6210\u529f\u548c Sun \u65d7\u4e0b\u7684 Solaris \u7cfb\u7edf\u6709\u7740\u5bc6\u4e0d\u53ef\u5206\u7684\u5173\u7cfb\u3002\u5f53\u8ba1\u7b97\u673a\u7cfb\u7edf\u5e9e\u5927\u3001\u7528\u6237\u6570\u91cf\u5de8\u5927\u589e\u52a0\u65f6\uff0c\u57fa\u4e8e Unix \u64cd\u4f5c\u7cfb\u7edf\u6253\u9020\u7684 Solaris \u80fd\u66f4\u597d\u5730\u5229\u7528\u8ba1\u7b97\u673a\u8d44\u6e90\uff0c\u662f\u6240\u6709\u5546\u4e1a\u7248\u4e2d\u6700\u53ef\u9760\u6700\u5b8c\u5584\u7684\u7248\u672c\u3002\u800c\u4f9d\u8d56 SPARC \u67b6\u6784\u548c Solaris \u7cfb\u7edf\u7684\u6027\u80fd\u548c\u53ef\u9760\u6027\uff0c\u5176\u5360\u9886\u4e86\u670d\u52a1\u5668\u9ad8\u7aef\u5e02\u573a\u3002Sun \u7684\u53e6\u4e00\u4e2a\u66f4\u4e3a\u77e5\u540d\u7684\u4ea7\u54c1\u662f Java\uff0c\u867d\u7136\u5728\u4e0a\u4e16\u7eaa 90 \u5e74\u4ee3\u4e3a\u667a\u80fd\u5bb6\u7535\u5f00\u53d1\u7684 Java \u5e76\u6ca1\u6709\u4e3a\u5176\u5e26\u6765\u76f8\u5e94\u7684\u56de\u62a5\uff0c\u4f46\u5df2\u6210\u4e3a\u4eca\u5929\u79fb\u52a8\u65f6\u4ee3\u6700\u91cd\u8981\u7684\u5f00\u53d1\u8bed\u8a00\u3002\u5982\u6b64\u5f3a\u5927\u7684\u5b9e\u529b\u672c\u5e94\u7edf\u9886\u670d\u52a1\u5668\u5e02\u573a\uff0c\u4f46\u9057\u61be\u7684\u662f\uff0c\u5728 windows \u548c\u82f1\u7279\u5c14\u7ec4\u6210 Wintel \u8054\u76df\u4e4b\u540e\uff0c\u4e24\u8005\u51ed\u501f\u81ea\u8eab\u5728\u5404\u81ea\u5e02\u573a\u7684\u89c4\u6a21\u6548\u5e94\uff0c\u4f7f\u5f97\u91c7\u7528 Wintel \u4ea7\u54c1\u7684\u670d\u52a1\u5668\u5382\u5546\u53ef\u4ee5\u901a\u8fc7\u4f4e\u5ec9\u7684\u4ef7\u683c\u5927\u8086\u62a2\u5360\u4e2d\u4f4e\u7aef\u5e02\u573a\u3002\u800c\u5f53 Sun \u9192\u609f\u8fc7\u6765\uff0c\u901a\u8fc7\u5f00\u6e90\u7b49\u65b9\u5f0f\u60f3\u8981\u633d\u56de\u8d25\u5c40\u65f6\u4e3a\u65f6\u5df2\u665a\u3002"),(0,r.yg)("p",null,"X86 \u67b6\u6784\u4e0e Power \u548c SPARC \u5728\u9ad8\u6027\u80fd\u9886\u57df\u7684\u98ce\u751f\u6c34\u8d77\u4e0d\u540c\uff0cx86 \u67b6\u6784\u662f\u5929\u751f\u7684\u5c0f\u5c4c\u4e1d\u30021978 \u5e74\u4ed6\u51fa\u751f\u7684\u90a3\u5e74\uff0c\u82f1\u7279\u5c14\u8fd8\u53ea\u662f\u4e00\u4e2a\u666e\u901a\u7684\u79d1\u6280\u516c\u53f8\u3002\u53ef\u662f x86 \u67b6\u6784\u968f\u540c\u5176 cisc \u6307\u4ee4\u96c6\u5374\u5f00\u542f\u4e86\u4e00\u4e2a\u65b0\u7684\u65f6\u4ee3\u3002x86 \u4e4b\u6240\u4ee5\u53ef\u4ee5\u8d62\u5f97\u5e02\u573a\u4e3b\u8981\u539f\u56e0\u5728\u4e8e\u5176\u662f\u4e00\u4e2a\u5341\u5206\u5f00\u653e\u7684\u67b6\u6784\u3002IBM \u548c SUN \u5f53\u5e74\u90fd\u662f\u4ece\u82af\u7247\u5230\u670d\u52a1\u5668\u5230\u7cfb\u7edf\u4e00\u624b\u5305\u529e\u7684\u516c\u53f8\u3002\u800c\u82f1\u7279\u5c14\u5219\u662f\u4e00\u4e2a\u5341\u5206\u7eaf\u7cb9\u7684\u82af\u7247\u5382\u5546\uff0c\u5176\u4e1a\u52a1\u4ec5\u4e0e AMD \u7b49\u5c11\u6570\u82af\u7247\u751f\u4ea7\u8005\u5b58\u5728\u7ade\u4e89\uff0c\u8fd9\u5c31\u4f7f\u5f97\u670d\u52a1\u5668\u5382\u5546\u4e0d\u7528\u5fcc\u60ee\u4e0e\u4e4b\u53d1\u751f\u7ade\u4e89\u5173\u7cfb\u3002"),(0,r.yg)("p",null,'\u5355\u4ece\u6027\u80fd\u6765\u770b\uff0c\u65e0\u8bba Power \u8fd8\u662f SPARC \u67b6\u6784\u90fd\u53ef\u4ee5\u51fb\u6e83 x86\uff0c\u53ef\u662f\u6700\u7ec8\u80fd\u591f\u8d62\u4e0b\u6765\u7684\u5374\u504f\u504f\u662f"\u6700\u5f31"\u7684 x86 \u67b6\u6784\u3002\u8fd9\u5e76\u975e\u52a3\u5e01\u6dd8\u6c70\u826f\u5e01\uff0c\u800c\u662f\u5e02\u573a\u7ade\u4e89\u7684\u9009\u62e9\uff0c\u6839\u6e90\u4e0a\u8bb2\uff0cx86 \u7684\u6210\u529f\u5728\u4e8e\u82f1\u7279\u5c14\u6839\u672c\u4e0d\u78b0\u670d\u52a1\u5668\u3002\u56e0\u6b64\u4e0d\u8bba\u8bbe\u5907\u751f\u4ea7\u5546\u3001\u8f6f\u4ef6\u5f00\u53d1\u8005\u6216\u8005\u7cfb\u7edf\u5f00\u53d1\u8005\u90fd\u53ef\u4ee5\u4e0e\u4e0d\u5b58\u5728\u5229\u76ca\u7ade\u4e89\u5173\u7cfb\u7684\u82f1\u7279\u5c14\u5408\u4f5c\u3002\u53d7\u76ca\u4e8e\u6b64\uff0cx86 \u67b6\u6784\u7684\u517c\u5bb9\u6027\u4e5f\u8d8a\u53d1\u5f3a\u5927\uff0c\u751f\u6001\u4f53\u7cfb\u8d8a\u53d1\u5b8c\u5584\uff0c\u8fd9\u624d\u6210\u5c31\u4e86\u73b0\u5982\u4eca\u5e02\u573a\u5360\u6709\u7387\u8d85\u8fc7 90%\u7684\u4e00\u5bb6\u72ec\u5927\u5c40\u9762\uff0c\u82f1\u7279\u5c14\u4e5f\u501f\u52a9 x86 \u67b6\u6784\u4e00\u8dc3\u6210\u4e3a\u5168\u7403\u9876\u7ea7\u7684\u82af\u7247\u63d0\u4f9b\u5546\u3002'),(0,r.yg)("h4",{id:"\u79fb\u52a8\u7aef\u7ade\u4e89"},"\u79fb\u52a8\u7aef\u7ade\u4e89"),(0,r.yg)("p",null,"\u6b63\u5982 PC \u548c\u670d\u52a1\u5668\u7aef\u662f X86 \u7684\u5929\u4e0b\u4e00\u6837\uff0c\u79fb\u52a8\u7aef\u662f ARM \u7684\u5929\u4e0b\u3002Intel \u5728 CPU \u754c\u7684\u5927\u540d\uff0c\u53ef\u8c13\u5bb6\u55bb\u6237\u6653\uff0c\u4f46\u662f\u5728\u624b\u673a\u767b\u79fb\u52a8\u7aef\u5374\u96be\u4ee5\u770b\u5230\u82f1\u56fd ARM \u516c\u53f8\u80cc\u5f71\u3002\u5728 2006 \u5e74\uff0c\u81ea\u4ece AMD \u7684 64 \u4f4d\u5904\u7406\u5668\u53d1\u5e03\u4ee5\u6765\uff0cAMD \u6210\u529f\u9006\u88ad\u4e86 Intel\uff0c\u5e02\u573a\u5360\u6709\u7387\u5927\u5e45\u4e0a\u5347\uff0c\u800c Intel \u8001\u8fc8\u7684 P4 \u5904\u7406\u5668\u5219\u662f\u8179\u80cc\u53d7\u654c\uff0c\u5c3d\u5931\u6614\u65e5\u9738\u6c14\uff0c\u5e02\u573a\u8868\u73b0\u4e00\u8def\u8d70\u4f4e\u3002\u4e3a\u4e86\u7a33\u4f4f\u6295\u8d44\u4eba\u7684\u4fe1\u5fc3\uff0c\u6700\u597d\u7684\u505a\u6cd5\u81ea\u7136\u662f\u8ba9\u516c\u53f8\u6301\u7eed\u76c8\u5229\uff0c\u4e3a\u6b64 Intel \u8fdb\u884c\u5927\u89c4\u6a21\u7684\u91cd\u6574\uff0c\u5305\u62ec\u4e0a\u4efb\u65b0 CEO \u6b27\u5fb7\u5b81\u3001\u5927\u89c4\u6a21\u88c1\u5458\u3001\u4ee5\u53ca\u51fa\u552e XScale \u624b\u673a\u5904\u7406\u5668\u4e1a\u52a1\u3002\u6b63\u56e0\u4e3a\u8fd9\u4e2a\u4e3e\u63aa\uff0c\u4f7f\u5f97 Intel \u5230\u8fbe\u4e86\u4eba\u751f\u5dc5\u5cf0\uff0c\u4ece PC \u5e02\u573a\u6709\u8d5a\u7684\u94b5\u6ee1\u76c6\u6ee1\uff0c\u7136\u800c\u4e5f\u662f\u56e0\u4e3a\u6b64\uff0cIntel \u5ffd\u89c6\u4e86\u79fb\u52a8\u9886\u57df\u7684\u8fc5\u731b\u53d1\u5c55\u3002\uff08\u5f53\u5e74\uff0cIntel \u62d2\u7edd\u4e86\u4e54\u5e2e\u4e3b\u8fd8\u662f PPT \u7684 Iphone \u624b\u673a\uff0c\u4e0d\u7136\u662f\u5426\u5c31\u4f1a\u4e0d\u4e00\u6837\uff1f\u4f46\u662f\u60f3\u4e00\u4e0b Iphone X \u4f7f\u7528 Intel \u57fa\u5e26\uff0c\u4fe1\u53f7\u5dee\u7684\u8bdf\u75c5\uff0cIntel \u505a\u624b\u673a\u82af\u662f\u5426\u4f1a\u81ed\u540d\u662d\u8457\u4e5f\u672a\u53ef\u77e5\uff09"),(0,r.yg)("p",null,"\u548c Intel \u516c\u53f8\u4e0d\u540c\uff0c ARM \u516c\u53f8\u4e0d\u5236\u9020\uff0c\u4e0d\u9500\u552e\u82af\u7247\uff0c\u800c\u662f\u53ea\u81ea\u5df1\u8bbe\u8ba1 IP \u6838\uff0c\u5305\u62ec\u6307\u4ee4\u96c6\u67b6\u6784\u3001\u5fae\u5904\u7406\u5668\u3001GPU\u3001\u4e92\u8fde\u67b6\u6784\u7b49\uff0c\u7136\u540e\u8c01\u60f3\u7528\u5c31\u6388\u6743\u5356\u7ed9\u8c01\uff0c\u518d\u4ece\u6bcf\u9897\u5b9e\u9645\u9020\u51fa\u6765\u7684\u4ea7\u54c1\u4e2d\u6536\u53d6\u7248\u7a0e\u3002ARM \u6709\u4e09\u79cd\u6388\u6743\u6a21\u5f0f\uff0c\u5206\u522b\u662f\u67b6\u6784\u6388\u6743\u3001\u5185\u6838\u6388\u6743\u3001\u4f7f\u7528\u6388\u6743\uff0c\u5206\u522b\u5bf9\u5e94\u5927\u4e2d\u5c0f\u516c\u53f8\uff0c\u975e\u5e38\u8ba8\u559c\uff0c\u8d34\u4e2a\u724c\u5b50\u5c31\u80fd\u8bf4\u662f\u81ea\u5df1\u7684 CPU\uff0c\u4e3a ARM \u5904\u7406\u5668\u7684\u5e7f\u6cdb\u4f7f\u7528\u6253\u4e0b\u575a\u5b9e\u57fa\u7840\u3002"),(0,r.yg)("p",null,"ARM \u7684\u6210\u529f\u9664\u4e86\u5546\u4e1a\u6a21\u5f0f\u7684\u72ec\u7279\u4e4b\u5916\u8fd8\u5c11\u4e0d\u5f97\u81ea\u8eab\u7d20\u8d28\u7684\u4f18\u79c0\uff0cIntel \u6280\u672f\u6beb\u65e0\u7591\u95ee\u662f\u9876\u5c16\u7684\uff0c\u4f46\u5e94\u7528\u573a\u666f\u5728\u4f20\u7edf PC \u4e0a\uff0c\u6362\u6210\u79fb\u52a8\u8bbe\u5907\u5c31\u884c\u4e0d\u901a\u4e86\uff0c\u79fb\u52a8\u8bbe\u5907\u6bd4\u8d77\u6027\u80fd\u9996\u5148\u8981\u8003\u8651\u529f\u8017\u548c\u7eed\u822a\uff0cIntel \u5c31\u5403\u4e86\u8fd9\u4e2a\u5927\u4e8f\uff0cX86 \u67b6\u6784\u72ec\u6b65\u5929\u4e0b\u80af\u5b9a\u662f\u4e0d\u80fd\u968f\u610f\u53d8\u6539\u7684\uff0c\u79fb\u52a8\u8bbe\u5907\u5f53\u7136\u7ee7\u7eed\u6cbf\u7528 X86 \u67b6\u6784\uff0c\u7136\u800c\u6362\u6765\u5374\u662f\u9ad8\u529f\u8017\u548c\u5feb\u901f\u6389\u7535\uff0c\u6362\u8c01\u90fd\u770b\u4e0d\u4e0a\u3002\u53cd\u4e4b\u529f\u8017\u63a7\u5236\u5219\u662f ARM \u7684\u5f3a\u9879\uff0c\u4f7f\u7528\u7cbe\u7b80\u6307\u4ee4\u96c6\uff08RISC\uff09\u548c\u521b\u65b0\u7684 big.LITTLE \u67b6\u6784\uff0c\u4f7f ARM \u5904\u7406\u5668\u80fd\u8017\u6bd4\u4e00\u76f4\u9886\u5148\u4e8e Intel\u3002"),(0,r.yg)("p",null,"Intel \u6b63\u5728\u79ef\u6781\u5e03\u5c40\uff0c\u63a8\u51fa\u5e94\u7528\u4e8e IoT \u7269\u8054\u7f51\u7684 Atom E3900 \u53ca\u8f66\u8f7d\u7535\u5b50\u7684 Atom A3900 \u7cfb\u5217\uff0c\u53f7\u79f0 CPU \u6027\u80fd\u63d0\u5347 70%\uff0cGPU \u6027\u80fd\u63d0\u5347 190%\uff0c\u5176\u4e2d Atom A3900 \u7279\u522b\u9488\u5bf9\u9ad8\u6e29\u73af\u5883\u8bbe\u8ba1\uff0c\u53ef\u5728 110\xb0C \u9ad8\u6e29\u4e0b\u4f7f\u7528 15 \u5e74\u3002Intel \u662f\u4e00\u5bb6\u4f1f\u5927\u7684\u4f01\u4e1a\uff0c\u4f46\u4e5f\u662f\u4f1a\u72af\u9519\u8bef\u7684\uff0c\u65e2\u7136\u5df2\u7ecf\u9519\u5931\u79fb\u52a8\u5e02\u573a\uff0c\u4e0d\u59a8\u6682\u65f6\u8131\u79bb\uff0c\u63d0\u524d\u505a\u597d\u4e0b\u4e00\u9636\u6bb5\u7684\u6280\u672f\u7814\u53d1\uff085G\uff09\uff0c\u4e5f\u6709\u53ef\u80fd\u5b9e\u73b0\u5f2f\u9053\u8d85\u8f66\u3002"),(0,r.yg)("h3",{id:"\u64cd\u4f5c\u7cfb\u7edf"},"\u64cd\u4f5c\u7cfb\u7edf"),(0,r.yg)("p",null,"\u64cd\u4f5c\u7cfb\u7edf\uff08Operating System\uff0cOS\uff09\u662f\u4e00\u7ec4\u4e3b\u7ba1\u5e76\u63a7\u5236\u8ba1\u7b97\u673a\u64cd\u4f5c\u3001\u8fd0\u7528\u548c\u8fd0\u884c\u786c\u4ef6\u3001\u8f6f\u4ef6\u8d44\u6e90\u548c\u63d0\u4f9b\u516c\u5171\u670d\u52a1\u6765\u7ec4\u7ec7\u7528\u6237\u4ea4\u4e92\u7684\u76f8\u4e92\u5173\u8054\u7684\u7cfb\u7edf\u8f6f\u4ef6\u7a0b\u5e8f\u3002\u6839\u636e\u8fd0\u884c\u7684\u73af\u5883\uff0c\u64cd\u4f5c\u7cfb\u7edf\u53ef\u4ee5\u5206\u4e3a\u684c\u9762\u64cd\u4f5c\u7cfb\u7edf\uff0c\u624b\u673a\u64cd\u4f5c\u7cfb\u7edf\uff0c\u670d\u52a1\u5668\u64cd\u4f5c\u7cfb\u7edf\uff0c\u5d4c\u5165\u5f0f\u64cd\u4f5c\u7cfb\u7edf\u7b49\u3002"),(0,r.yg)("p",null,"\u64cd\u4f5c\u7cfb\u7edf\u80fd\u7ba1\u7406\u8ba1\u7b97\u673a\u7cfb\u7edf\u7684\u786c\u4ef6\u3001\u8f6f\u4ef6\u53ca\u6570\u636e\u8d44\u6e90\uff0c\u63a7\u5236\u7a0b\u5e8f\u8fd0\u884c\uff0c\u6539\u5584\u4eba\u673a\u754c\u9762\uff0c\u4e3a\u5176\u5b83\u5e94\u7528\u8f6f\u4ef6\u63d0\u4f9b\u652f\u6301\uff0c\u5e76\u4f7f\u8ba1\u7b97\u673a\u7cfb\u7edf\u6240\u6709\u8d44\u6e90\u6700\u5927\u9650\u5ea6\u5730\u53d1\u6325\u4f5c\u7528\u3002\u64cd\u4f5c\u7cfb\u7edf\u4e3b\u8981\u529f\u80fd\u5305\u62ec\uff1a\u8fdb\u7a0b\u7ba1\u7406\u3001\u5b58\u50a8\u7ba1\u7406\u3001\u8bbe\u5907\u7ba1\u7406\u3001\u6587\u4ef6\u7ba1\u7406\u3001\u4f5c\u4e1a\u7ba1\u7406\u7b49\u3002"),(0,r.yg)("h4",{id:"\u684c\u9762\u64cd\u4f5c\u7cfb\u7edf"},"\u684c\u9762\u64cd\u4f5c\u7cfb\u7edf"),(0,r.yg)("p",null,"\u684c\u9762\u64cd\u4f5c\u7cfb\u7edf\u4e3b\u8981\u7528\u4e8e\u4e2a\u4eba\u8ba1\u7b97\u673a\u4e0a\u3002\u4e2a\u4eba\u8ba1\u7b97\u673a\u5e02\u573a\u4ece\u786c\u4ef6\u67b6\u6784\u4e0a\u6765\u8bf4\u4e3b\u8981\u5206\u4e3a\u4e24\u5927\u9635\u8425\uff0cPC \u673a\u4e0e Mac \u673a\uff0c\u4ece\u8f6f\u4ef6\u4e0a\u53ef\u4e3b\u8981\u5206\u4e3a\u4e24\u5927\u7c7b\uff0c\u5206\u522b\u4e3a\u7c7b Unix \u64cd\u4f5c\u7cfb\u7edf\u548c Windows \u64cd\u4f5c\u7cfb\u7edf\uff1a"),(0,r.yg)("p",null,"1\u3001Unix \u548c\u7c7b Unix \u64cd\u4f5c\u7cfb\u7edf\uff1aMac OS X\uff0cLinux \u53d1\u884c\u7248\uff08\u5982 Debian\uff0cUbuntu\uff0cLinux Mint\uff0copenSUSE\uff0cFedora \u7b49\uff09\uff1b"),(0,r.yg)("p",null,"2\u3001\u5fae\u8f6f\u516c\u53f8 Windows \u64cd\u4f5c\u7cfb\u7edf \uff1aWindows XP\uff0cWindows Vista\uff0cWindows 7\uff0cWindows 8\uff0cWindows 8.1\uff0cWindows 10\uff0cWindows 11 \u7b49\u3002"),(0,r.yg)("h4",{id:"\u670d\u52a1\u5668\u64cd\u4f5c\u7cfb\u7edf"},"\u670d\u52a1\u5668\u64cd\u4f5c\u7cfb\u7edf"),(0,r.yg)("p",null,"\u670d\u52a1\u5668\u64cd\u4f5c\u7cfb\u7edf\u4e00\u822c\u6307\u7684\u662f\u5b89\u88c5\u5728\u5927\u578b\u8ba1\u7b97\u673a\u4e0a\u7684\u64cd\u4f5c\u7cfb\u7edf\uff0c\u6bd4\u5982 Web \u670d\u52a1\u5668\u3001\u5e94\u7528\u670d\u52a1\u5668\u548c\u6570\u636e\u5e93\u670d\u52a1\u5668\u7b49\u3002\u670d\u52a1\u5668\u64cd\u4f5c\u7cfb\u7edf\u4e3b\u8981\u96c6\u4e2d\u5728\u4e09\u5927\u7c7b\uff1a"),(0,r.yg)("p",null,"1\u3001Unix \u7cfb\u5217\uff1aSUNSolaris\uff0cIBM-AIX\uff0cHP-UX\uff0cFreeBSD \u7b49\uff1b"),(0,r.yg)("p",null,"2\u3001Linux \u7cfb\u5217\uff1aRed Hat Linux\uff0cCentOS\uff0cDebian\uff0cUbuntu \u7b49\uff1b"),(0,r.yg)("p",null,"3\u3001Windows \u7cfb\u5217\uff1aWindows Server 2003\uff0cWindows Server 2008\uff0cWindows Server 2008 R2 \u7b49\u3002"),(0,r.yg)("h4",{id:"\u5d4c\u5165\u5f0f\u64cd\u4f5c\u7cfb\u7edf"},"\u5d4c\u5165\u5f0f\u64cd\u4f5c\u7cfb\u7edf"),(0,r.yg)("p",null,"\u5d4c\u5165\u5f0f\u64cd\u4f5c\u7cfb\u7edf\u662f\u5e94\u7528\u5728\u5d4c\u5165\u5f0f\u7cfb\u7edf\u7684\u64cd\u4f5c\u7cfb\u7edf\u3002\u5d4c\u5165\u5f0f\u7cfb\u7edf\u5e7f\u6cdb\u5e94\u7528\u5728\u751f\u6d3b\u7684\u5404\u4e2a\u65b9\u9762\uff0c\u6db5\u76d6\u8303\u56f4\u4ece\u4fbf\u643a\u8bbe\u5907\u5230\u5927\u578b\u56fa\u5b9a\u8bbe\u65bd\uff0c\u5982\u6570\u7801\u76f8\u673a\u3001\u624b\u673a\u3001\u5e73\u677f\u7535\u8111\u3001\u5bb6\u7528\u7535\u5668\u3001\u533b\u7597\u8bbe\u5907\u3001\u4ea4\u901a\u706f\u3001\u822a\u7a7a\u7535\u5b50\u8bbe\u5907\u548c\u5de5\u5382\u63a7\u5236\u8bbe\u5907\u7b49\uff0c\u8d8a\u6765\u8d8a\u591a\u5d4c\u5165\u5f0f\u7cfb\u7edf\u5b89\u88c5\u6709\u5b9e\u65f6\u64cd\u4f5c\u7cfb\u7edf\u3002"),(0,r.yg)("p",null,"\u5728\u5d4c\u5165\u5f0f\u9886\u57df\u5e38\u7528\u7684\u64cd\u4f5c\u7cfb\u7edf\u6709\u5d4c\u5165\u5f0f Linux\u3001Windows Embedded\u3001VxWorks \u7b49\uff0c\u4ee5\u53ca\u5e7f\u6cdb\u4f7f\u7528\u5728\u667a\u80fd\u624b\u673a\u6216\u5e73\u677f\u7535\u8111\u7b49\u6d88\u8d39\u7535\u5b50\u4ea7\u54c1\u7684\u64cd\u4f5c\u7cfb\u7edf\uff0c\u5982 Android\u3001iOS\u3001Symbian\u3001Windows Phone \u548c BlackBerry OS \u7b49\u3002"),(0,r.yg)("h3",{id:"\u53ef\u6267\u884c\u7a0b\u5e8f\u6267\u884c\u7684\u539f\u7406\u5206\u6790"},"\u53ef\u6267\u884c\u7a0b\u5e8f\u6267\u884c\u7684\u539f\u7406\u5206\u6790"),(0,r.yg)("p",null,"\u53ef\u6267\u884c\u7a0b\u5e8f\u6267\u884c\u5185\u5bb9\u53ef\u4ee5\u5206\u4e24\u7c7b\uff0c\u4e00\u662f CPU \u7684\u6307\u4ee4\uff0c\u4e8c\u662f\u64cd\u4f5c\u7cfb\u7edf\u7684\u7cfb\u7edf\u8c03\u7528\uff0c\u51e0\u4e4e\u6240\u6709\u7684\u53ef\u6267\u884c\u7a0b\u5e8f\u90fd\u662f\u8fd0\u884c\u5728\u64cd\u4f5c\u7cfb\u7edf\u4e4b\u4e0a\u7684\uff0c\u7531\u64cd\u4f5c\u7cfb\u7edf\u6765\u7edf\u4e00\u8c03\u5ea6\u53ef\u6267\u884c\u7a0b\u5e8f\u7684\u6267\u884c\u5185\u5bb9\u3002"),(0,r.yg)("p",null,"\u8bf4\u5230\u53ef\u6267\u884c\u7a0b\u5e8f\uff0c\u5fc5\u987b\u5f97\u8bf4\u4e00\u4e0b\uff0c\u5e94\u7528\u7a0b\u5e8f\u4e8c\u8fdb\u5236\u63a5\u53e3 ABI\uff0c\uff08Application Binary Interface\uff09\uff0cABI \u662f\u7f16\u8bd1\u5668\u548c\u94fe\u63a5\u5668\u9075\u5b88\u7684\u4e00\u7ec4\u89c4\u5219\uff0c\u4ee5\u8ba9\u7f16\u8bd1\u540e\u7684\u7a0b\u5e8f\u53ef\u4ee5\u6b63\u5e38\u5de5\u4f5c\u3002"),(0,r.yg)("p",null,"\u4e0d\u540c\u7684\u64cd\u4f5c\u7cfb\u7edf\u5bf9 ABI \u7684\u8981\u6c42\u4e0d\u4e00\u6837\uff0c\u4f8b\u5982 Linux \u8981\u6c42 ELF \u683c\u5f0f\uff0cWindows \u8981\u6c42 PE \u683c\u5f0f\u3002"),(0,r.yg)("p",null,"\u7b80\u5355\u6765\u8bf4\uff0cABI \u5c31\u662f\u63cf\u8ff0\u51fd\u6570\u540d\u5982\u4f55\u5b58\u50a8\uff0c\u51fd\u6570\u53c2\u6570\u7c7b\u578b\u5982\u4f55\u5b58\u50a8\u7684\u63a5\u53e3\u3002"),(0,r.yg)("p",null,"\u4e00\u4e2a\u7a0b\u5e8f\u8981\u60f3\u8c03\u7528\u5176\u5b83\u7a0b\u5e8f\u7f16\u8bd1\u51fa\u6765\u7684\u51fd\u6570\uff0c\u90a3\u4e48\u5c31\u5fc5\u987b\u77e5\u9053\u5176 ABI \u63a5\u53e3\u3002"),(0,r.yg)("p",null,"C \u8bed\u8a00\u5177\u6709\u4f18\u79c0\u7684 ABI \u517c\u5bb9\uff0c\u56e0\u4e3a\u4e3b\u6d41 C \u7f16\u8bd1\u5668\u7f16\u8bd1\u51fa\u6765\u7684\u51fd\u6570\uff0cABI \u63a5\u53e3\u5927\u90fd\u76f8\u540c\uff0c\u6240\u4ee5\u7528 C \u8bed\u8a00\u5199\u7684\u5e93\u80fd\u65b9\u4fbf\u7684\u88ab\u5176\u5b83\u7a0b\u5e8f\u8c03\u7528\u3002"),(0,r.yg)("p",null,"C++\u4e00\u822c\u4e0d\u5177\u6709\u5f88\u597d\u7684 ABI \u517c\u5bb9\uff0c\u56e0\u4e3a\u6bcf\u4e2a C++\u7f16\u8bd1\u5668\u7f16\u8bd1\u51fa\u6765\u7684\u63a5\u53e3\u53ef\u80fd\u4e0d\u540c\uff0c\u5bfc\u81f4\u4e86\u4f60\u65e0\u6cd5\u8c03\u7528\u5176\u5b83\u4eba\u7528 C++\u63a5\u53e3\u63d0\u4f9b\u7684\u5e93\u51fd\u6570\u3002\u6240\u4ee5 C++\u51fd\u6570\u5f80\u5f80\u5f3a\u5236\u4f7f\u7528 C \u7684 ABI \u7528\u4e8e\u7ed9\u5176\u5b83\u7a0b\u5e8f\u8c03\u7528\u3002"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"\u628a\u7b26\u53f7\u6807\u51c6\u3001\u53d8\u91cf\u5185\u5b58\u5e03\u5c40\u3001\u51fd\u6570\u8c03\u7528\u65b9\u5f0f\u7b49\u8ddf\u53ef\u6267\u884c\u4ee3\u7801\u4e8c\u8fdb\u5236\u517c\u5bb9\u6027\u76f8\u5173\u7684\u5185\u5bb9\u79f0\u4e3a ABI Application Binary Interface"),(0,r.yg)("li",{parentName:"ul"},"\u5e94\u7528\u7a0b\u5e8f\u4e8c\u8fdb\u5236\u63a5\u53e3\uff0c\u63cf\u8ff0\u4e86\u5e94\u7528\u7a0b\u5e8f\u548c\u64cd\u4f5c\u7cfb\u7edf\u4e4b\u95f4\uff0c\u4e00\u4e2a\u5e94\u7528\u548c\u5b83\u7684\u5e93\u4e4b\u95f4\uff0c\u6216\u8005\u5e94\u7528\u7684\u7ec4\u6210\u90e8\u5206\u4e4b\u95f4\u7684\u4f4e\u63a5\u53e3\u3002"),(0,r.yg)("li",{parentName:"ul"},"\u7f16\u7a0b\u8bed\u8a00\u5b9e\u73b0\u7684 ABI \u662f\u4e00\u79cd\u53ef\u4ee5\u4f7f\u5355\u72ec\u7f16\u8bd1\u7684\u6a21\u5757\u534f\u540c\u5de5\u4f5c\u7684\u4f4e\u7ea7\u7ec6\u8282\u7684\u89c4\u8303\u3002\u5982\u679c\u6ca1\u6709\u4e00\u4e2a\u7a33\u5b9a\u7684 ABI\uff0c\u5c31\u5fc5\u987b\u4f7f\u7528\u540c\u4e00\u7f16\u8bd1\u5668\u7684\u540c\u4e00\u7248\u672c\u7f16\u8bd1\u7a0b\u5e8f\u7684\u6240\u6709\u90e8\u5206\u3002"),(0,r.yg)("li",{parentName:"ul"},"API \u662f\u6e90\u4ee3\u7801\u7ea7\u522b\u7684\u63a5\u53e3\uff0cABI \u662f\u4e8c\u8fdb\u5236\u5c42\u9762\u7684\u63a5\u53e3\uff0cABI \u7684\u517c\u5bb9\u7a0b\u5ea6\u6bd4 API \u66f4\u52a0\u4e25\u683c")),(0,r.yg)("p",null,"\u64cd\u4f5c\u7cfb\u7edf\u90fd\u89c4\u5b9a\u4e86\u652f\u6301\u7684\u53ef\u6267\u884c\u6587\u4ef6\uff08\u7a0b\u5e8f\uff09\u7684\u683c\u5f0f\u3002Windows \u4e0b\u6709 PE \u6587\u4ef6\u683c\u5f0f\uff0cLinux \u4e0b\u6709 ELF \u683c\u5f0f,Mac OS \u4e0b\u6709 Mach-O \u683c\u5f0f\u3002"),(0,r.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("a",{parentName:"li",href:"ttps://www.zhihu.com/question/320884011/answer/2763905623"},"\u77e5\u4e4e-\u4e3a\u4ec0\u4e48 Linux \u539f\u751f\u4e0d\u80fd\u8fd0\u884c exe \u683c\u5f0f\u7684\u6587\u4ef6\uff1f"))))}s.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7401],{5680:(e,n,l)=>{l.d(n,{xA:()=>y,yg:()=>d});var t=l(6540);function r(e,n,l){return n in e?Object.defineProperty(e,n,{value:l,enumerable:!0,configurable:!0,writable:!0}):e[n]=l,e}function i(e,n){var l=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);n&&(t=t.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),l.push.apply(l,t)}return l}function a(e){for(var n=1;n=0||(r[l]=e[l]);return r}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(e,l)&&(r[l]=e[l])}return r}var o=t.createContext({}),p=function(e){var n=t.useContext(o),l=n;return e&&(l="function"==typeof e?e(n):a(a({},n),e)),l},y=function(e){var n=p(e.components);return t.createElement(o.Provider,{value:n},e.children)},c="mdxType",s={inlineCode:"code",wrapper:function(e){var n=e.children;return t.createElement(t.Fragment,{},n)}},P=t.forwardRef((function(e,n){var l=e.components,r=e.mdxType,i=e.originalType,o=e.parentName,y=u(e,["components","mdxType","originalType","parentName"]),c=p(l),P=r,d=c["".concat(o,".").concat(P)]||c[P]||s[P]||i;return l?t.createElement(d,a(a({ref:n},y),{},{components:l})):t.createElement(d,a({ref:n},y))}));function d(e,n){var l=arguments,r=n&&n.mdxType;if("string"==typeof e||r){var i=l.length,a=new Array(i);a[0]=P;var u={};for(var o in n)hasOwnProperty.call(n,o)&&(u[o]=n[o]);u.originalType=e,u[c]="string"==typeof e?e:r,a[1]=u;for(var p=2;p{l.r(n),l.d(n,{assets:()=>o,contentTitle:()=>a,default:()=>s,frontMatter:()=>i,metadata:()=>u,toc:()=>p});var t=l(8168),r=(l(6540),l(5680));const i={},a="\u53ef\u6267\u884c\u7a0b\u5e8f\u5728\u64cd\u4f5c\u7cfb\u7edf\u4e0b\u7684\u8fd0\u884c\u539f\u7406\u5206\u6790",u={unversionedId:"study/system/\u53ef\u6267\u884c\u7a0b\u5e8f\u8fd0\u884c\u539f\u7406\u5206\u6790",id:"study/system/\u53ef\u6267\u884c\u7a0b\u5e8f\u8fd0\u884c\u539f\u7406\u5206\u6790",title:"\u53ef\u6267\u884c\u7a0b\u5e8f\u5728\u64cd\u4f5c\u7cfb\u7edf\u4e0b\u7684\u8fd0\u884c\u539f\u7406\u5206\u6790",description:"\u67b6\u6784\uff0c\u4ece\u4e0b\u5f80\u4e0a\u5206\u6790",source:"@site/docs/study/system/\u53ef\u6267\u884c\u7a0b\u5e8f\u8fd0\u884c\u539f\u7406\u5206\u6790.md",sourceDirName:"study/system",slug:"/study/system/\u53ef\u6267\u884c\u7a0b\u5e8f\u8fd0\u884c\u539f\u7406\u5206\u6790",permalink:"/docs/study/system/\u53ef\u6267\u884c\u7a0b\u5e8f\u8fd0\u884c\u539f\u7406\u5206\u6790",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u5185\u5b58\u7ba1\u7406",permalink:"/docs/study/system/\u5185\u5b58\u7ba1\u7406"},next:{title:"\u64cd\u4f5c\u7cfb\u7edf\u5185\u6838",permalink:"/docs/study/system/\u64cd\u4f5c\u7cfb\u7edf\u5185\u6838"}},o={},p=[{value:"\u67b6\u6784\uff0c\u4ece\u4e0b\u5f80\u4e0a\u5206\u6790",id:"\u67b6\u6784\u4ece\u4e0b\u5f80\u4e0a\u5206\u6790",level:3},{value:"\u88f8\u673a",id:"\u88f8\u673a",level:3},{value:"x86 \u6307\u4ee4\u96c6\u53d1\u5c55",id:"x86-\u6307\u4ee4\u96c6\u53d1\u5c55",level:4},{value:"ARM \u67b6\u6784",id:"arm-\u67b6\u6784",level:4},{value:"MPIS \u67b6\u6784",id:"mpis-\u67b6\u6784",level:4},{value:"PowerPC \u7cfb\u5217",id:"powerpc-\u7cfb\u5217",level:4},{value:"SPARC \u67b6\u6784",id:"sparc-\u67b6\u6784",level:4},{value:"Alpha \u67b6\u6784",id:"alpha-\u67b6\u6784",level:4},{value:"CPU \u67b6\u6784\u4e4b\u95f4\u7684\u7ade\u4e89",id:"cpu-\u67b6\u6784\u4e4b\u95f4\u7684\u7ade\u4e89",level:3},{value:"PC \u548c\u670d\u52a1\u5668\u7ade\u4e89",id:"pc-\u548c\u670d\u52a1\u5668\u7ade\u4e89",level:4},{value:"\u79fb\u52a8\u7aef\u7ade\u4e89",id:"\u79fb\u52a8\u7aef\u7ade\u4e89",level:4},{value:"\u64cd\u4f5c\u7cfb\u7edf",id:"\u64cd\u4f5c\u7cfb\u7edf",level:3},{value:"\u684c\u9762\u64cd\u4f5c\u7cfb\u7edf",id:"\u684c\u9762\u64cd\u4f5c\u7cfb\u7edf",level:4},{value:"\u670d\u52a1\u5668\u64cd\u4f5c\u7cfb\u7edf",id:"\u670d\u52a1\u5668\u64cd\u4f5c\u7cfb\u7edf",level:4},{value:"\u5d4c\u5165\u5f0f\u64cd\u4f5c\u7cfb\u7edf",id:"\u5d4c\u5165\u5f0f\u64cd\u4f5c\u7cfb\u7edf",level:4},{value:"\u53ef\u6267\u884c\u7a0b\u5e8f\u6267\u884c\u7684\u539f\u7406\u5206\u6790",id:"\u53ef\u6267\u884c\u7a0b\u5e8f\u6267\u884c\u7684\u539f\u7406\u5206\u6790",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],y={toc:p},c="wrapper";function s(e){let{components:n,...l}=e;return(0,r.yg)(c,(0,t.A)({},y,l,{components:n,mdxType:"MDXLayout"}),(0,r.yg)("h1",{id:"\u53ef\u6267\u884c\u7a0b\u5e8f\u5728\u64cd\u4f5c\u7cfb\u7edf\u4e0b\u7684\u8fd0\u884c\u539f\u7406\u5206\u6790"},"\u53ef\u6267\u884c\u7a0b\u5e8f\u5728\u64cd\u4f5c\u7cfb\u7edf\u4e0b\u7684\u8fd0\u884c\u539f\u7406\u5206\u6790"),(0,r.yg)("h3",{id:"\u67b6\u6784\u4ece\u4e0b\u5f80\u4e0a\u5206\u6790"},"\u67b6\u6784\uff0c\u4ece\u4e0b\u5f80\u4e0a\u5206\u6790"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"\u88f8\u673a\uff08\u7eaf\u786c\u4ef6\uff09"),(0,r.yg)("li",{parentName:"ul"},"\u64cd\u4f5c\u7cfb\u7edf\uff08Windows/Linux\uff09"),(0,r.yg)("li",{parentName:"ul"},"\u53ef\u6267\u884c\u7a0b\u5e8f")),(0,r.yg)("h3",{id:"\u88f8\u673a"},"\u88f8\u673a"),(0,r.yg)("p",null,"\u5176\u5b9e\u4e3b\u8981\u5c31\u662f CPU \u67b6\u6784\u7684\u4e0d\u540c\uff0cCPU \u67b6\u6784\u662f CPU \u5546\u7ed9 CPU \u4ea7\u54c1\u5b9a\u7684\u4e00\u4e2a\u89c4\u8303\uff0c\u4e3b\u8981\u76ee\u7684\u662f\u4e3a\u4e86\u533a\u5206\u4e0d\u540c\u7c7b\u578b\u7684 CPU\u3002\u76ee\u524d\u5e02\u573a\u4e0a\u7684 CPU \u5206\u7c7b\u4e3b\u8981\u5206\u6709\u4e24\u5927\u9635\u8425\uff0c\u4e00\u4e2a\u662f Intel\u3001AMD \u4e3a\u9996\u7684\u590d\u6742\u6307\u4ee4\u96c6 CPU\uff0c\u53e6\u4e00\u4e2a\u662f\u4ee5 IBM\u3001ARM \u4e3a\u9996\u7684\u7cbe\u7b80\u6307\u4ee4\u96c6 CPU\u3002\u4e0d\u540c\u54c1\u724c\u7684 CPU\uff0c\u5176\u4ea7\u54c1\u7684\u67b6\u6784\u4e5f\u4e0d\u76f8\u540c\uff0cIntel\u3001AMD \u7684 CPU \u662f X86 \u67b6\u6784\uff0cIBM \u516c\u53f8\u7684 CPU \u662f PowerPC \u67b6\u6784\uff0cARM \u516c\u53f8\u7684 CPU \u662f ARM \u67b6\u6784\uff0c\u56fd\u5185\u7684\u98de\u817e CPU \u4e5f\u662f ARM \u67b6\u6784\u3002\u6b64\u5916\u8fd8\u6709 MPIS \u67b6\u6784\u3001SPARC \u67b6\u6784\u3001Alpha \u67b6\u6784\u3002"),(0,r.yg)("h4",{id:"x86-\u6307\u4ee4\u96c6\u53d1\u5c55"},"x86 \u6307\u4ee4\u96c6\u53d1\u5c55"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"IA\uff1aIntel\uff08\u82f1\u7279\u5c14\uff09\u5904\u7406\u5668\u7684\u670d\u52a1\u5668\u79f0\u4e4b\u4e3a IA\uff08Intel Architecture\uff09\u67b6\u6784\u670d\u52a1\u5668"),(0,r.yg)("li",{parentName:"ul"},"IA-32\uff1a\u82f1\u7279\u5c14 32 \u4f4d\u4f53\u7cfb\u67b6\u6784\uff0cX86 \u4ece 16 \u4f4d\u5230 32 \u4f4d\u662f\u5728\u539f\u6709\u7684\u67b6\u6784\u57fa\u7840\u4e0a\u8fdb\u884c\u4fee\u6539\uff08Intel \u79f0\u4e4b\u4e3a IA-32\uff09"),(0,r.yg)("li",{parentName:"ul"},"x86-32\uff1a\u73b0\u5982\u4eca Intel \u628a x86-32 \u79f0\u4e3a IA-32"),(0,r.yg)("li",{parentName:"ul"},"x86-64 \u5206\u4e3a intel \u548c AMD"),(0,r.yg)("li",{parentName:"ul"},"AMD64\uff1ax86 \u67b6\u6784\u7684 64 \u4f4d\u62d3\u5c55\uff0c\u5411\u540e\u517c\u5bb9\u4e8e 16 \u4f4d\u53ca 32 \u4f4d\u7684 x86 \u67b6\u6784\u3002x64 \u4e8e 1999 \u5e74\u7531 AMD \u8bbe\u8ba1\uff0cAMD \u9996\u6b21\u516c\u5f00 64 \u4f4d\u96c6\u4ee5\u6269\u5c55\u7ed9 x86\uff0c\u79f0\u4e3a\u201cAMD64\u201d\uff0cAMD64 \u548c Intel64 \u57fa\u672c\u4e0a\u4e00\u81f4"),(0,r.yg)("li",{parentName:"ul"},"Intel64\uff1aEM64T\uff08Extended Memory 64 Technology\uff09\u6269\u5c55 64bit \u5185\u5b58\u6280\u672f\uff0c\u672c\u8d28\u4e0a\u548c AMD64 \u4e00\u6837\u90fd\u662f IA-32 \u7684\u589e\u5f3a\u7248\u672c\u3002"),(0,r.yg)("li",{parentName:"ul"},"IA-64\uff1a64 \u4f4d\u7684\u82f1\u7279\u5c14\u67b6\u6784\uff0c\u82f1\u7279\u5c14\u5b89\u817e\u67b6\u6784\uff08Intel Itanium architecture\uff09\uff0c\u4f7f\u7528\u5728 Itanium \u5904\u7406\u5668\u5bb6\u65cf\u4e0a\u7684 64 \u4f4d\u6307\u4ee4\u96c6\u67b6\u6784\uff0c\u7531\u82f1\u7279\u5c14\u516c\u53f8\u4e0e\u60e0\u666e\u516c\u53f8\u5171\u540c\u5f00\u53d1\u3002IA \u662f Intel Architecture\uff08\u82f1\u7279\u5c14\u67b6\u6784\uff09\u7684\u7f29\u5199\uff0c64 \u6307 64 \u4f4d\u7cfb\u7edf\u3002\u4f7f\u7528\u8fd9\u79cd\u67b6\u6784\u7684 CPU\uff0c\u5305\u62ec Itanium \u548c Itanium 2\u3002\u6b64\u67b6\u6784\u4e0e x86 \u53ca x86-64 \u5e76\u4e0d\u76f8\u5bb9\uff0c\u64cd\u4f5c\u7cfb\u7edf\u4e0e\u8f6f\u4ef6\u9700\u4f7f\u7528 IA-64 \u4e13\u7528\u7248\u672c\u3002")),(0,r.yg)("h4",{id:"arm-\u67b6\u6784"},"ARM \u67b6\u6784"),(0,r.yg)("p",null,"ARM \u67b6\u6784\uff0c\u4e5f\u79f0\u4f5c\u8fdb\u9636\u7cbe\u7b80\u6307\u4ee4\u96c6\u673a\u5668\uff08Advanced RISC Machine\uff0c\u66f4\u65e9\u79f0\u4f5c\uff1aAcorn RISC Machine\uff09\uff0c\u662f\u4e00\u4e2a 32 \u4f4d\u7cbe\u7b80\u6307\u4ee4\u96c6\uff08RISC\uff09\u5904\u7406\u5668\u67b6\u6784\uff0c\u5176\u5e7f\u6cdb\u5730\u4f7f\u7528\u5728\u8bb8\u591a\u5d4c\u5165\u5f0f\u7cfb\u7edf\u8bbe\u8ba1\u3002\u7531\u4e8e\u8282\u80fd\u7684\u7279\u70b9\uff0cARM \u5904\u7406\u5668\u975e\u5e38\u9002\u7528\u4e8e\u884c\u52a8\u901a\u8baf\u9886\u57df\uff0c\u7b26\u5408\u5176\u4e3b\u8981\u8bbe\u8ba1\u76ee\u6807\u4e3a\u4f4e\u8017\u7535\u7684\u7279\u6027\u3002"),(0,r.yg)("p",null,"ARM \u6388\u6743\u65b9\u5f0f\uff1aARM \u516c\u53f8\u672c\u8eab\u5e76\u4e0d\u9760\u81ea\u6709\u7684\u8bbe\u8ba1\u6765\u5236\u9020\u6216\u51fa\u552e CPU \uff0c\u800c\u662f\u5c06\u5904\u7406\u5668\u67b6\u6784\u6388\u6743\u7ed9\u6709\u5174\u8da3\u7684\u5382\u5bb6\u3002"),(0,r.yg)("p",null,"\u56fd\u5916\u751f\u4ea7\u5382\u5546\uff1aTI \uff08\u5fb7\u5dde\u4eea\u5668\uff09\u3001Samsung\uff08\u4e09\u661f\uff09\u3001Freescale\uff08\u98de\u601d\u5361\u5c14\uff09\u3001Marvell\uff08\u9a6c\u7ef4\u5c14\uff09\u3001Nvidia\uff08\u82f1\u4f1f\u8fbe\uff09\u3001Qualcomm(\u9ad8\u901a\uff09\u3001STMicroelectronics(\u610f\u6cd5\u534a\u5bfc\u4f53\uff09\u3002"),(0,r.yg)("p",null,"\u56fd\u5185\u751f\u4ea7\u5382\u5546\uff1a\u534e\u4e3a\uff08\u6d77\u601d\u82af\u7247\uff09\u3001\u98de\u817e\uff08FT-1500\u3001FT2000-4 \u7b49 CPU \u82af\u7247\uff09\u3001\u5146\u6613\u521b\u65b0\uff08GD32 \u7cfb\u5217 MCU\uff0c\u53c2\u8003 STM32 \u7cfb\u5217\uff09\u3001\u745e\u82af\u5fae\uff08RK \u7cfb\u5217\u82af\u7247\uff09\u3001\u8054\u53d1\u79d1\uff08\u53f0\u6e7e\uff0c\u5929\u7391\u7cfb\u5217\uff09\u3002"),(0,r.yg)("h4",{id:"mpis-\u67b6\u6784"},"MPIS \u67b6\u6784"),(0,r.yg)("p",null,"MIPS \u662f\u4e16\u754c\u4e0a\u5f88\u6d41\u884c\u7684\u4e00\u79cd RISC \u5904\u7406\u5668\u3002MIPS \u6280\u672f\u516c\u53f8\u662f\u7f8e\u56fd\u8457\u540d\u7684\u82af\u7247\u8bbe\u8ba1\u516c\u53f8\uff0c\u5b83\u91c7\u7528\u7cbe\u7b80\u6307\u4ee4\u7cfb\u7edf\u8ba1\u7b97\u7ed3\u6784(RISC)\u6765\u8bbe\u8ba1\u82af\u7247\u3002"),(0,r.yg)("p",null,"MPIS \u67b6\u6784\u6388\u6743\u548c ARM \u67b6\u6784\u6388\u6743\u4e0d\u4e00\u6837\uff0cARM \u67b6\u6784\u6388\u6743\u7528\u6237\u57fa\u672c\u4e0d\u80fd\u81ea\u884c\u4fee\u6539\uff0c\u800c MPIS \u67b6\u6784\u6388\u6743\u540e\uff0c\u53ef\u4ee5\u81ea\u5df1\u4fee\u6539\u3002\u76ee\u524d MPIS \u53d1\u626c\u5149\u5927\u5bc4\u5e0c\u671b\u4e2d\u79d1\u9f99\u82af\u516c\u53f8\uff0c\u9f99\u82af\u5904\u7406\u5668\u4ece\u9f99\u82af 1 \u53f7\uff0c\u5230\u73b0\u5728\u7684\u9f99\u82af 3 \u53f7\u7cfb\u5217\u7684 3A4000\uff0cCPU \u7684\u6027\u80fd\u5df2\u7ecf\u5927\u5e45\u5ea6\u63d0\u9ad8\uff0c\u5728\u5b8c\u5168\u53ef\u4ee5\u80dc\u4efb\u65e5\u5e38\u529e\u516c\u6216\u8005\u4f5c\u4e3a\u7279\u6b8a\u7528\u9014\u7684\u670d\u52a1\u5668\u3002\u9f99\u82af CPU \u548c\u56fd\u4ea7\u7684\u98de\u817e\uff08FT\uff09\u5904\u7406\u5668\u5e76\u9a7e\u9f50\u9a71\uff0c\u53d1\u5c55\u6211\u56fd\u81ea\u4e3b\u53ef\u63a7 CPU\u3002"),(0,r.yg)("h4",{id:"powerpc-\u7cfb\u5217"},"PowerPC \u7cfb\u5217"),(0,r.yg)("p",null,"PowerPC \u662f\u4e00\u79cd\u7cbe\u7b80\u6307\u4ee4\u96c6\uff08RISC\uff09\u67b6\u6784\u7684\u4e2d\u592e\u5904\u7406\u5668\uff08CPU\uff09\uff0c\u5176\u57fa\u672c\u7684\u8bbe\u8ba1\u6e90\u81ea IBM\uff08\u56fd\u9645\u5546\u7528\u673a\u5668\u516c\u53f8\uff09\u7684 IBMPowerPC 601 \u5fae\u5904\u7406\u5668 POWER\uff08PerformanceOptimized With Enhanced RISC\uff1b\u300aIBM Connect \u7535\u5b50\u62a5\u300b2007 \u5e74 8 \u6708\u53f7\u8bd1\u4e3a\u201c\u589e\u5f3a RISC \u6027\u80fd\u4f18\u5316\u201d\uff09\u67b6\u6784\u3002\u4e8c\u5341\u4e16\u7eaa\u4e5d\u5341\u5e74\u4ee3\uff0cIBM(\u56fd\u9645\u5546\u7528\u673a\u5668\u516c\u53f8)\u3001Apple\uff08\u82f9\u679c\u516c\u53f8\uff09\u548c Motorola\uff08\u6469\u6258\u7f57\u62c9\uff09\u516c\u53f8\u5f00\u53d1 PowerPC \u82af\u7247\u6210\u529f\uff0c\u5e76\u5236\u9020\u51fa\u57fa\u4e8e PowerPC \u7684\u591a\u5904\u7406\u5668\u8ba1\u7b97\u673a\u3002PowerPC \u67b6\u6784\u7684\u7279\u70b9\u662f\u53ef\u4f38\u7f29\u6027\u597d\u3001\u65b9\u4fbf\u7075\u6d3b\u3002"),(0,r.yg)("p",null,"PowerPC \u5904\u7406\u5668\u6709\u5e7f\u6cdb\u7684\u5b9e\u73b0\u8303\u56f4\uff0c\u5305\u62ec\u4ece\u8bf8\u5982 Power4 \u90a3\u6837\u7684\u9ad8\u7aef\u670d\u52a1\u5668 CPU \u5230\u5d4c\u5165\u5f0f CPU \u5e02\u573a\uff08\u4efb\u5929\u5802 Gamecube \u4f7f\u7528\u4e86 PowerPC\uff09\u3002PowerPC \u5904\u7406\u5668\u6709\u975e\u5e38\u5f3a\u7684\u5d4c\u5165\u5f0f\u8868\u73b0\uff0c\u56e0\u4e3a\u5b83\u5177\u6709\u4f18\u5f02\u7684\u6027\u80fd\u3001\u8f83\u4f4e\u7684\u80fd\u91cf\u635f\u8017\u4ee5\u53ca\u8f83\u4f4e\u7684\u6563\u70ed\u91cf\u3002\u9664\u4e86\u8c61\u4e32\u884c\u548c\u4ee5\u592a\u7f51\u63a7\u5236\u5668\u90a3\u6837\u7684\u96c6\u6210 I/O\uff0c\u8be5\u5d4c\u5165\u5f0f\u5904\u7406\u5668\u4e0e\u201c\u53f0\u5f0f\u673a\u201dCPU \u5b58\u5728\u975e\u5e38\u663e\u8457\u7684\u533a\u522b\u3002"),(0,r.yg)("h4",{id:"sparc-\u67b6\u6784"},"SPARC \u67b6\u6784"),(0,r.yg)("p",null,"SPARC \u67b6\u6784\uff08Scalable Processor ARChitecture\uff0c\u53ef\u6269\u5c55\u5904\u7406\u5668\u67b6\u6784\uff09\u662f\u56fd\u9645\u4e0a\u6d41\u884c\u7684 RISC \u5904\u7406\u5668\u4f53\u7cfb\u67b6\u6784\u4e4b\u4e00\uff0cSPRAC \u5982\u4eca\u5df2\u53d1\u5c55\u6210\u4e3a\u4e00\u4e2a\u5f00\u653e\u7684\u6807\u51c6\uff0c\u4efb\u4f55\u673a\u6784\u6216\u4e2a\u4eba\u5747\u53ef\u7814\u7a76\u6216\u5f00\u53d1\u57fa\u4e8e SPRAC \u67b6\u6784\u7684\u4ea7\u54c1\uff0c\u800c\u65e0\u9700\u4ea4\u7eb3\u7248\u6743\u8d39\u3002SPARC \u5904\u7406\u5668\u67b6\u6784\u5177\u5907\u7cbe\u7b80\u6307\u4ee4\u96c6\uff08RISC\uff09\u3001\u652f\u6301 32 \u4f4d/64 \u4f4d\u6307\u4ee4\u7cbe\u5ea6\uff0c\u67b6\u6784\u8fd0\u884c\u7a33\u5b9a\u3001\u53ef\u6269\u5c55\u6027\u4f18\u826f\u3001\u4f53\u7cfb\u6807\u51c6\u5f00\u653e\u7b49\u7279\u70b9\u3002SPARC \u56e0\u6b64\u5f97\u4ee5\u8fc5\u901f\u53d1\u5c55\u58ee\u5927\uff0c\u5728\u73b0\u5728\u5df2\u7ecf\u6709\u5927\u7ea6 3 \u4e07\u591a\u4e2a\u6210\u529f\u7684\u5e94\u7528\u6848\u4f8b\u3002"),(0,r.yg)("p",null,"SPARCV7/V8 \u662f\u76ee\u524d\u5d4c\u5165\u5f0f\u63a7\u5236\u7cfb\u7edf\u5e38\u7528\u7684\u5904\u7406\u5668\u6807\u51c6\u7248\u672c\uff0c\u5e76\u5728\u822a\u5929\u8bbe\u5907\u7684\u7535\u5b50\u7cfb\u7edf\u4e2d\u5f97\u5230\u5e7f\u6cdb\u5e94\u7528\u3002\u7136\u800c\uff0cSPARC \u53ea\u662f\u4e00\u4e2a\u5904\u7406\u5668\u7684\u67b6\u6784\u6807\u51c6\uff0c\u5e76\u4e0d\u63d0\u4f9b\u73b0\u6210\u7684\u6e90\u7801\u6216 IP \u6838\uff0c\u5177\u4f53\u7684\u82af\u7247\u5b9e\u73b0\u8981\u7531\u5f00\u53d1\u8005\u53bb\u5b8c\u6210\u3002"),(0,r.yg)("h4",{id:"alpha-\u67b6\u6784"},"Alpha \u67b6\u6784"),(0,r.yg)("p",null,"\u76ee\u524d\u56fd\u5185\u91c7\u7528\u6b64\u67b6\u6784\u7684\u662f\u7533\u5fae\u8d85\u7b97\u5904\u7406\u5668\uff0c\u5f97\u76ca\u4e8e\u56fd\u5bb6\u7684\u652f\u6301\uff0c\u7533\u5a01\u5904\u7406\u5668\u5728\u519b\u961f\u5e94\u7528\u5e7f\u6cdb\u3002"),(0,r.yg)("h3",{id:"cpu-\u67b6\u6784\u4e4b\u95f4\u7684\u7ade\u4e89"},"CPU \u67b6\u6784\u4e4b\u95f4\u7684\u7ade\u4e89"),(0,r.yg)("h4",{id:"pc-\u548c\u670d\u52a1\u5668\u7ade\u4e89"},"PC \u548c\u670d\u52a1\u5668\u7ade\u4e89"),(0,r.yg)("p",null,"PC \u7aef\u548c\u670d\u52a1\u5668\u7aef\u662f X86 \u67b6\u6784\u7684\u5929\u4e0b\uff0c\u800c X86 \u67b6\u6784\u57fa\u672c\u662f\u4ee5 Intel \u4e3a\u9996\uff0cAMD \u4e3a\u8f85\u4e8c\u5206\u5929\u4e0b\u4e4b\u52bf\u3002\u56fd\u4ea7 CPU \u57fa\u672c\u53ea\u80fd\u7528\u5728\u519b\u5de5\u884c\u4e1a\u6216\u8005\u4e8b\u4e1a\u5355\u4f4d\u7b49\u3002\u5176\u5b9e\u8bf4\u6027\u80fd\uff0cpowerpc\uff0c\u53ef\u8c13\u662f\u9ad8\u51fa\u4e0d\u80dc\u5bd2\u3002\u786c\u4ef6\u65b9\u9762\uff0cPower \u7cfb\u7edf\u5728\u53ef\u9760\u6027\u3001\u53ef\u7528\u6027\u548c\u53ef\u7ef4\u62a4\u6027\u7684\u65b9\u9762\u7684\u51fa\u8272\u8868\u73b0\u4f7f\u5f97 IBM \u4ece\u82af\u7247\u5230\u7cfb\u7edf\u6240\u8bbe\u8ba1\u7684\u6574\u673a\u65b9\u6848\u6709\u7740\u72ec\u6709\u7684\u4f18\u52bf\u3002Power \u67b6\u6784\u7684\u5904\u7406\u5668\u5728\u8d85\u7b97\u3001\u5927\u578b\u4f01\u4e1a\u7684 UNIX \u670d\u52a1\u5668\u7b49\u591a\u4e2a\u65b9\u9762\u5e94\u7528\u4e5f\u5341\u5206\u6210\u529f\u3002\u5728\u8f6f\u4ef6\u65b9\u9762\uff0c\u5176\u4e13\u7528\u7684 AIX \u7cfb\u7edf\u5728\u7a33\u5b9a\u6027\u3001\u8f6f\u4ef6\u65b9\u6848\u96c6\u6210\u5ea6\u548c\u5382\u5546\u6280\u672f\u652f\u6301\u80fd\u529b\u65b9\u9762\u90fd\u8981\u66f4\u5f3a\u3002\u7531\u4e8e\u7528\u6237\u9009\u4e00\u5e73\u53f0\u4e3b\u8981\u770b\u8f6f\u4ef6\u9700\u6c42\uff0c\u4e00\u822c\u5bf9\u6570\u636e\u4fdd\u62a4\u548c 7","*","24 \u5c0f\u65f6\u4e0d\u5b95\u673a\u7b49\u6709\u6240\u8981\u6c42\uff0cpower \u67b6\u6784\u7684\u7a33\u5b9a\u6027\u548c\u8fd0\u7ef4\u7b49\u65b9\u9762\u76f8\u5bf9\u66f4\u4f18\u3002\u4f46\u662f\uff0c\u7531\u4e8e IBM \u7684\u6280\u672f\u628a\u63a7\uff0c\u4f7f\u5f97\u5176\u4ef7\u683c\u592a\u4e0d\u53cb\u597d\uff0c\u540c\u65f6\u6280\u672f\u4e5f\u8d76\u4e0d\u4e0a\u73af\u5883\u7684\u53d8\u5316\uff0c\u5728\u4e91\u8ba1\u7b97\u5174\u8d77\u540e\uff0c\u968f\u7740\u5206\u5e03\u5f0f\u7cfb\u7edf\u9010\u6e10\u6210\u719f\uff0c\u7cfb\u7edf\u5bf9\u5c0f\u578b\u673a\u7684\u4f9d\u8d56\u5f00\u59cb\u964d\u4f4e\uff0c\u6539\u4e3a\u4f9d\u9760\u96c6\u7fa4\u63d0\u4f9b\uff0c\u6027\u80fd\u4e5f\u53ef\u5b9e\u73b0\u5206\u5e03\u5f0f\u5904\u7406\u3002\u800c\u66f4\u4e3a\u5173\u952e\u7684\u662f\uff0cIBM \u7684\u5168\u5957\u670d\u52a1\u5c3d\u7ba1\u7a33\u5b9a\u6027\u4f18\u79c0\uff0c\u4f46\u5374\u5f71\u54cd\u4e86 Power \u67b6\u6784\u5bf9\u5176\u4ed6\u5546\u5bb6\u7684\u5438\u5f15\u529b\u3002"),(0,r.yg)("p",null,"\u800c Sparc \u67b6\u6784\u548c Power \u67b6\u6784\u57fa\u672c\u72af\u4e86\u540c\u6837\u7684\u9519\u8bef\uff1a\u4ef7\u683c\u4e0d\u53cb\u597d\u3002SPARC \u67b6\u6784\u6d4b\u6210\u529f\u548c Sun \u65d7\u4e0b\u7684 Solaris \u7cfb\u7edf\u6709\u7740\u5bc6\u4e0d\u53ef\u5206\u7684\u5173\u7cfb\u3002\u5f53\u8ba1\u7b97\u673a\u7cfb\u7edf\u5e9e\u5927\u3001\u7528\u6237\u6570\u91cf\u5de8\u5927\u589e\u52a0\u65f6\uff0c\u57fa\u4e8e Unix \u64cd\u4f5c\u7cfb\u7edf\u6253\u9020\u7684 Solaris \u80fd\u66f4\u597d\u5730\u5229\u7528\u8ba1\u7b97\u673a\u8d44\u6e90\uff0c\u662f\u6240\u6709\u5546\u4e1a\u7248\u4e2d\u6700\u53ef\u9760\u6700\u5b8c\u5584\u7684\u7248\u672c\u3002\u800c\u4f9d\u8d56 SPARC \u67b6\u6784\u548c Solaris \u7cfb\u7edf\u7684\u6027\u80fd\u548c\u53ef\u9760\u6027\uff0c\u5176\u5360\u9886\u4e86\u670d\u52a1\u5668\u9ad8\u7aef\u5e02\u573a\u3002Sun \u7684\u53e6\u4e00\u4e2a\u66f4\u4e3a\u77e5\u540d\u7684\u4ea7\u54c1\u662f Java\uff0c\u867d\u7136\u5728\u4e0a\u4e16\u7eaa 90 \u5e74\u4ee3\u4e3a\u667a\u80fd\u5bb6\u7535\u5f00\u53d1\u7684 Java \u5e76\u6ca1\u6709\u4e3a\u5176\u5e26\u6765\u76f8\u5e94\u7684\u56de\u62a5\uff0c\u4f46\u5df2\u6210\u4e3a\u4eca\u5929\u79fb\u52a8\u65f6\u4ee3\u6700\u91cd\u8981\u7684\u5f00\u53d1\u8bed\u8a00\u3002\u5982\u6b64\u5f3a\u5927\u7684\u5b9e\u529b\u672c\u5e94\u7edf\u9886\u670d\u52a1\u5668\u5e02\u573a\uff0c\u4f46\u9057\u61be\u7684\u662f\uff0c\u5728 windows \u548c\u82f1\u7279\u5c14\u7ec4\u6210 Wintel \u8054\u76df\u4e4b\u540e\uff0c\u4e24\u8005\u51ed\u501f\u81ea\u8eab\u5728\u5404\u81ea\u5e02\u573a\u7684\u89c4\u6a21\u6548\u5e94\uff0c\u4f7f\u5f97\u91c7\u7528 Wintel \u4ea7\u54c1\u7684\u670d\u52a1\u5668\u5382\u5546\u53ef\u4ee5\u901a\u8fc7\u4f4e\u5ec9\u7684\u4ef7\u683c\u5927\u8086\u62a2\u5360\u4e2d\u4f4e\u7aef\u5e02\u573a\u3002\u800c\u5f53 Sun \u9192\u609f\u8fc7\u6765\uff0c\u901a\u8fc7\u5f00\u6e90\u7b49\u65b9\u5f0f\u60f3\u8981\u633d\u56de\u8d25\u5c40\u65f6\u4e3a\u65f6\u5df2\u665a\u3002"),(0,r.yg)("p",null,"X86 \u67b6\u6784\u4e0e Power \u548c SPARC \u5728\u9ad8\u6027\u80fd\u9886\u57df\u7684\u98ce\u751f\u6c34\u8d77\u4e0d\u540c\uff0cx86 \u67b6\u6784\u662f\u5929\u751f\u7684\u5c0f\u5c4c\u4e1d\u30021978 \u5e74\u4ed6\u51fa\u751f\u7684\u90a3\u5e74\uff0c\u82f1\u7279\u5c14\u8fd8\u53ea\u662f\u4e00\u4e2a\u666e\u901a\u7684\u79d1\u6280\u516c\u53f8\u3002\u53ef\u662f x86 \u67b6\u6784\u968f\u540c\u5176 cisc \u6307\u4ee4\u96c6\u5374\u5f00\u542f\u4e86\u4e00\u4e2a\u65b0\u7684\u65f6\u4ee3\u3002x86 \u4e4b\u6240\u4ee5\u53ef\u4ee5\u8d62\u5f97\u5e02\u573a\u4e3b\u8981\u539f\u56e0\u5728\u4e8e\u5176\u662f\u4e00\u4e2a\u5341\u5206\u5f00\u653e\u7684\u67b6\u6784\u3002IBM \u548c SUN \u5f53\u5e74\u90fd\u662f\u4ece\u82af\u7247\u5230\u670d\u52a1\u5668\u5230\u7cfb\u7edf\u4e00\u624b\u5305\u529e\u7684\u516c\u53f8\u3002\u800c\u82f1\u7279\u5c14\u5219\u662f\u4e00\u4e2a\u5341\u5206\u7eaf\u7cb9\u7684\u82af\u7247\u5382\u5546\uff0c\u5176\u4e1a\u52a1\u4ec5\u4e0e AMD \u7b49\u5c11\u6570\u82af\u7247\u751f\u4ea7\u8005\u5b58\u5728\u7ade\u4e89\uff0c\u8fd9\u5c31\u4f7f\u5f97\u670d\u52a1\u5668\u5382\u5546\u4e0d\u7528\u5fcc\u60ee\u4e0e\u4e4b\u53d1\u751f\u7ade\u4e89\u5173\u7cfb\u3002"),(0,r.yg)("p",null,'\u5355\u4ece\u6027\u80fd\u6765\u770b\uff0c\u65e0\u8bba Power \u8fd8\u662f SPARC \u67b6\u6784\u90fd\u53ef\u4ee5\u51fb\u6e83 x86\uff0c\u53ef\u662f\u6700\u7ec8\u80fd\u591f\u8d62\u4e0b\u6765\u7684\u5374\u504f\u504f\u662f"\u6700\u5f31"\u7684 x86 \u67b6\u6784\u3002\u8fd9\u5e76\u975e\u52a3\u5e01\u6dd8\u6c70\u826f\u5e01\uff0c\u800c\u662f\u5e02\u573a\u7ade\u4e89\u7684\u9009\u62e9\uff0c\u6839\u6e90\u4e0a\u8bb2\uff0cx86 \u7684\u6210\u529f\u5728\u4e8e\u82f1\u7279\u5c14\u6839\u672c\u4e0d\u78b0\u670d\u52a1\u5668\u3002\u56e0\u6b64\u4e0d\u8bba\u8bbe\u5907\u751f\u4ea7\u5546\u3001\u8f6f\u4ef6\u5f00\u53d1\u8005\u6216\u8005\u7cfb\u7edf\u5f00\u53d1\u8005\u90fd\u53ef\u4ee5\u4e0e\u4e0d\u5b58\u5728\u5229\u76ca\u7ade\u4e89\u5173\u7cfb\u7684\u82f1\u7279\u5c14\u5408\u4f5c\u3002\u53d7\u76ca\u4e8e\u6b64\uff0cx86 \u67b6\u6784\u7684\u517c\u5bb9\u6027\u4e5f\u8d8a\u53d1\u5f3a\u5927\uff0c\u751f\u6001\u4f53\u7cfb\u8d8a\u53d1\u5b8c\u5584\uff0c\u8fd9\u624d\u6210\u5c31\u4e86\u73b0\u5982\u4eca\u5e02\u573a\u5360\u6709\u7387\u8d85\u8fc7 90%\u7684\u4e00\u5bb6\u72ec\u5927\u5c40\u9762\uff0c\u82f1\u7279\u5c14\u4e5f\u501f\u52a9 x86 \u67b6\u6784\u4e00\u8dc3\u6210\u4e3a\u5168\u7403\u9876\u7ea7\u7684\u82af\u7247\u63d0\u4f9b\u5546\u3002'),(0,r.yg)("h4",{id:"\u79fb\u52a8\u7aef\u7ade\u4e89"},"\u79fb\u52a8\u7aef\u7ade\u4e89"),(0,r.yg)("p",null,"\u6b63\u5982 PC \u548c\u670d\u52a1\u5668\u7aef\u662f X86 \u7684\u5929\u4e0b\u4e00\u6837\uff0c\u79fb\u52a8\u7aef\u662f ARM \u7684\u5929\u4e0b\u3002Intel \u5728 CPU \u754c\u7684\u5927\u540d\uff0c\u53ef\u8c13\u5bb6\u55bb\u6237\u6653\uff0c\u4f46\u662f\u5728\u624b\u673a\u767b\u79fb\u52a8\u7aef\u5374\u96be\u4ee5\u770b\u5230\u82f1\u56fd ARM \u516c\u53f8\u80cc\u5f71\u3002\u5728 2006 \u5e74\uff0c\u81ea\u4ece AMD \u7684 64 \u4f4d\u5904\u7406\u5668\u53d1\u5e03\u4ee5\u6765\uff0cAMD \u6210\u529f\u9006\u88ad\u4e86 Intel\uff0c\u5e02\u573a\u5360\u6709\u7387\u5927\u5e45\u4e0a\u5347\uff0c\u800c Intel \u8001\u8fc8\u7684 P4 \u5904\u7406\u5668\u5219\u662f\u8179\u80cc\u53d7\u654c\uff0c\u5c3d\u5931\u6614\u65e5\u9738\u6c14\uff0c\u5e02\u573a\u8868\u73b0\u4e00\u8def\u8d70\u4f4e\u3002\u4e3a\u4e86\u7a33\u4f4f\u6295\u8d44\u4eba\u7684\u4fe1\u5fc3\uff0c\u6700\u597d\u7684\u505a\u6cd5\u81ea\u7136\u662f\u8ba9\u516c\u53f8\u6301\u7eed\u76c8\u5229\uff0c\u4e3a\u6b64 Intel \u8fdb\u884c\u5927\u89c4\u6a21\u7684\u91cd\u6574\uff0c\u5305\u62ec\u4e0a\u4efb\u65b0 CEO \u6b27\u5fb7\u5b81\u3001\u5927\u89c4\u6a21\u88c1\u5458\u3001\u4ee5\u53ca\u51fa\u552e XScale \u624b\u673a\u5904\u7406\u5668\u4e1a\u52a1\u3002\u6b63\u56e0\u4e3a\u8fd9\u4e2a\u4e3e\u63aa\uff0c\u4f7f\u5f97 Intel \u5230\u8fbe\u4e86\u4eba\u751f\u5dc5\u5cf0\uff0c\u4ece PC \u5e02\u573a\u6709\u8d5a\u7684\u94b5\u6ee1\u76c6\u6ee1\uff0c\u7136\u800c\u4e5f\u662f\u56e0\u4e3a\u6b64\uff0cIntel \u5ffd\u89c6\u4e86\u79fb\u52a8\u9886\u57df\u7684\u8fc5\u731b\u53d1\u5c55\u3002\uff08\u5f53\u5e74\uff0cIntel \u62d2\u7edd\u4e86\u4e54\u5e2e\u4e3b\u8fd8\u662f PPT \u7684 Iphone \u624b\u673a\uff0c\u4e0d\u7136\u662f\u5426\u5c31\u4f1a\u4e0d\u4e00\u6837\uff1f\u4f46\u662f\u60f3\u4e00\u4e0b Iphone X \u4f7f\u7528 Intel \u57fa\u5e26\uff0c\u4fe1\u53f7\u5dee\u7684\u8bdf\u75c5\uff0cIntel \u505a\u624b\u673a\u82af\u662f\u5426\u4f1a\u81ed\u540d\u662d\u8457\u4e5f\u672a\u53ef\u77e5\uff09"),(0,r.yg)("p",null,"\u548c Intel \u516c\u53f8\u4e0d\u540c\uff0c ARM \u516c\u53f8\u4e0d\u5236\u9020\uff0c\u4e0d\u9500\u552e\u82af\u7247\uff0c\u800c\u662f\u53ea\u81ea\u5df1\u8bbe\u8ba1 IP \u6838\uff0c\u5305\u62ec\u6307\u4ee4\u96c6\u67b6\u6784\u3001\u5fae\u5904\u7406\u5668\u3001GPU\u3001\u4e92\u8fde\u67b6\u6784\u7b49\uff0c\u7136\u540e\u8c01\u60f3\u7528\u5c31\u6388\u6743\u5356\u7ed9\u8c01\uff0c\u518d\u4ece\u6bcf\u9897\u5b9e\u9645\u9020\u51fa\u6765\u7684\u4ea7\u54c1\u4e2d\u6536\u53d6\u7248\u7a0e\u3002ARM \u6709\u4e09\u79cd\u6388\u6743\u6a21\u5f0f\uff0c\u5206\u522b\u662f\u67b6\u6784\u6388\u6743\u3001\u5185\u6838\u6388\u6743\u3001\u4f7f\u7528\u6388\u6743\uff0c\u5206\u522b\u5bf9\u5e94\u5927\u4e2d\u5c0f\u516c\u53f8\uff0c\u975e\u5e38\u8ba8\u559c\uff0c\u8d34\u4e2a\u724c\u5b50\u5c31\u80fd\u8bf4\u662f\u81ea\u5df1\u7684 CPU\uff0c\u4e3a ARM \u5904\u7406\u5668\u7684\u5e7f\u6cdb\u4f7f\u7528\u6253\u4e0b\u575a\u5b9e\u57fa\u7840\u3002"),(0,r.yg)("p",null,"ARM \u7684\u6210\u529f\u9664\u4e86\u5546\u4e1a\u6a21\u5f0f\u7684\u72ec\u7279\u4e4b\u5916\u8fd8\u5c11\u4e0d\u5f97\u81ea\u8eab\u7d20\u8d28\u7684\u4f18\u79c0\uff0cIntel \u6280\u672f\u6beb\u65e0\u7591\u95ee\u662f\u9876\u5c16\u7684\uff0c\u4f46\u5e94\u7528\u573a\u666f\u5728\u4f20\u7edf PC \u4e0a\uff0c\u6362\u6210\u79fb\u52a8\u8bbe\u5907\u5c31\u884c\u4e0d\u901a\u4e86\uff0c\u79fb\u52a8\u8bbe\u5907\u6bd4\u8d77\u6027\u80fd\u9996\u5148\u8981\u8003\u8651\u529f\u8017\u548c\u7eed\u822a\uff0cIntel \u5c31\u5403\u4e86\u8fd9\u4e2a\u5927\u4e8f\uff0cX86 \u67b6\u6784\u72ec\u6b65\u5929\u4e0b\u80af\u5b9a\u662f\u4e0d\u80fd\u968f\u610f\u53d8\u6539\u7684\uff0c\u79fb\u52a8\u8bbe\u5907\u5f53\u7136\u7ee7\u7eed\u6cbf\u7528 X86 \u67b6\u6784\uff0c\u7136\u800c\u6362\u6765\u5374\u662f\u9ad8\u529f\u8017\u548c\u5feb\u901f\u6389\u7535\uff0c\u6362\u8c01\u90fd\u770b\u4e0d\u4e0a\u3002\u53cd\u4e4b\u529f\u8017\u63a7\u5236\u5219\u662f ARM \u7684\u5f3a\u9879\uff0c\u4f7f\u7528\u7cbe\u7b80\u6307\u4ee4\u96c6\uff08RISC\uff09\u548c\u521b\u65b0\u7684 big.LITTLE \u67b6\u6784\uff0c\u4f7f ARM \u5904\u7406\u5668\u80fd\u8017\u6bd4\u4e00\u76f4\u9886\u5148\u4e8e Intel\u3002"),(0,r.yg)("p",null,"Intel \u6b63\u5728\u79ef\u6781\u5e03\u5c40\uff0c\u63a8\u51fa\u5e94\u7528\u4e8e IoT \u7269\u8054\u7f51\u7684 Atom E3900 \u53ca\u8f66\u8f7d\u7535\u5b50\u7684 Atom A3900 \u7cfb\u5217\uff0c\u53f7\u79f0 CPU \u6027\u80fd\u63d0\u5347 70%\uff0cGPU \u6027\u80fd\u63d0\u5347 190%\uff0c\u5176\u4e2d Atom A3900 \u7279\u522b\u9488\u5bf9\u9ad8\u6e29\u73af\u5883\u8bbe\u8ba1\uff0c\u53ef\u5728 110\xb0C \u9ad8\u6e29\u4e0b\u4f7f\u7528 15 \u5e74\u3002Intel \u662f\u4e00\u5bb6\u4f1f\u5927\u7684\u4f01\u4e1a\uff0c\u4f46\u4e5f\u662f\u4f1a\u72af\u9519\u8bef\u7684\uff0c\u65e2\u7136\u5df2\u7ecf\u9519\u5931\u79fb\u52a8\u5e02\u573a\uff0c\u4e0d\u59a8\u6682\u65f6\u8131\u79bb\uff0c\u63d0\u524d\u505a\u597d\u4e0b\u4e00\u9636\u6bb5\u7684\u6280\u672f\u7814\u53d1\uff085G\uff09\uff0c\u4e5f\u6709\u53ef\u80fd\u5b9e\u73b0\u5f2f\u9053\u8d85\u8f66\u3002"),(0,r.yg)("h3",{id:"\u64cd\u4f5c\u7cfb\u7edf"},"\u64cd\u4f5c\u7cfb\u7edf"),(0,r.yg)("p",null,"\u64cd\u4f5c\u7cfb\u7edf\uff08Operating System\uff0cOS\uff09\u662f\u4e00\u7ec4\u4e3b\u7ba1\u5e76\u63a7\u5236\u8ba1\u7b97\u673a\u64cd\u4f5c\u3001\u8fd0\u7528\u548c\u8fd0\u884c\u786c\u4ef6\u3001\u8f6f\u4ef6\u8d44\u6e90\u548c\u63d0\u4f9b\u516c\u5171\u670d\u52a1\u6765\u7ec4\u7ec7\u7528\u6237\u4ea4\u4e92\u7684\u76f8\u4e92\u5173\u8054\u7684\u7cfb\u7edf\u8f6f\u4ef6\u7a0b\u5e8f\u3002\u6839\u636e\u8fd0\u884c\u7684\u73af\u5883\uff0c\u64cd\u4f5c\u7cfb\u7edf\u53ef\u4ee5\u5206\u4e3a\u684c\u9762\u64cd\u4f5c\u7cfb\u7edf\uff0c\u624b\u673a\u64cd\u4f5c\u7cfb\u7edf\uff0c\u670d\u52a1\u5668\u64cd\u4f5c\u7cfb\u7edf\uff0c\u5d4c\u5165\u5f0f\u64cd\u4f5c\u7cfb\u7edf\u7b49\u3002"),(0,r.yg)("p",null,"\u64cd\u4f5c\u7cfb\u7edf\u80fd\u7ba1\u7406\u8ba1\u7b97\u673a\u7cfb\u7edf\u7684\u786c\u4ef6\u3001\u8f6f\u4ef6\u53ca\u6570\u636e\u8d44\u6e90\uff0c\u63a7\u5236\u7a0b\u5e8f\u8fd0\u884c\uff0c\u6539\u5584\u4eba\u673a\u754c\u9762\uff0c\u4e3a\u5176\u5b83\u5e94\u7528\u8f6f\u4ef6\u63d0\u4f9b\u652f\u6301\uff0c\u5e76\u4f7f\u8ba1\u7b97\u673a\u7cfb\u7edf\u6240\u6709\u8d44\u6e90\u6700\u5927\u9650\u5ea6\u5730\u53d1\u6325\u4f5c\u7528\u3002\u64cd\u4f5c\u7cfb\u7edf\u4e3b\u8981\u529f\u80fd\u5305\u62ec\uff1a\u8fdb\u7a0b\u7ba1\u7406\u3001\u5b58\u50a8\u7ba1\u7406\u3001\u8bbe\u5907\u7ba1\u7406\u3001\u6587\u4ef6\u7ba1\u7406\u3001\u4f5c\u4e1a\u7ba1\u7406\u7b49\u3002"),(0,r.yg)("h4",{id:"\u684c\u9762\u64cd\u4f5c\u7cfb\u7edf"},"\u684c\u9762\u64cd\u4f5c\u7cfb\u7edf"),(0,r.yg)("p",null,"\u684c\u9762\u64cd\u4f5c\u7cfb\u7edf\u4e3b\u8981\u7528\u4e8e\u4e2a\u4eba\u8ba1\u7b97\u673a\u4e0a\u3002\u4e2a\u4eba\u8ba1\u7b97\u673a\u5e02\u573a\u4ece\u786c\u4ef6\u67b6\u6784\u4e0a\u6765\u8bf4\u4e3b\u8981\u5206\u4e3a\u4e24\u5927\u9635\u8425\uff0cPC \u673a\u4e0e Mac \u673a\uff0c\u4ece\u8f6f\u4ef6\u4e0a\u53ef\u4e3b\u8981\u5206\u4e3a\u4e24\u5927\u7c7b\uff0c\u5206\u522b\u4e3a\u7c7b Unix \u64cd\u4f5c\u7cfb\u7edf\u548c Windows \u64cd\u4f5c\u7cfb\u7edf\uff1a"),(0,r.yg)("p",null,"1\u3001Unix \u548c\u7c7b Unix \u64cd\u4f5c\u7cfb\u7edf\uff1aMac OS X\uff0cLinux \u53d1\u884c\u7248\uff08\u5982 Debian\uff0cUbuntu\uff0cLinux Mint\uff0copenSUSE\uff0cFedora \u7b49\uff09\uff1b"),(0,r.yg)("p",null,"2\u3001\u5fae\u8f6f\u516c\u53f8 Windows \u64cd\u4f5c\u7cfb\u7edf \uff1aWindows XP\uff0cWindows Vista\uff0cWindows 7\uff0cWindows 8\uff0cWindows 8.1\uff0cWindows 10\uff0cWindows 11 \u7b49\u3002"),(0,r.yg)("h4",{id:"\u670d\u52a1\u5668\u64cd\u4f5c\u7cfb\u7edf"},"\u670d\u52a1\u5668\u64cd\u4f5c\u7cfb\u7edf"),(0,r.yg)("p",null,"\u670d\u52a1\u5668\u64cd\u4f5c\u7cfb\u7edf\u4e00\u822c\u6307\u7684\u662f\u5b89\u88c5\u5728\u5927\u578b\u8ba1\u7b97\u673a\u4e0a\u7684\u64cd\u4f5c\u7cfb\u7edf\uff0c\u6bd4\u5982 Web \u670d\u52a1\u5668\u3001\u5e94\u7528\u670d\u52a1\u5668\u548c\u6570\u636e\u5e93\u670d\u52a1\u5668\u7b49\u3002\u670d\u52a1\u5668\u64cd\u4f5c\u7cfb\u7edf\u4e3b\u8981\u96c6\u4e2d\u5728\u4e09\u5927\u7c7b\uff1a"),(0,r.yg)("p",null,"1\u3001Unix \u7cfb\u5217\uff1aSUNSolaris\uff0cIBM-AIX\uff0cHP-UX\uff0cFreeBSD \u7b49\uff1b"),(0,r.yg)("p",null,"2\u3001Linux \u7cfb\u5217\uff1aRed Hat Linux\uff0cCentOS\uff0cDebian\uff0cUbuntu \u7b49\uff1b"),(0,r.yg)("p",null,"3\u3001Windows \u7cfb\u5217\uff1aWindows Server 2003\uff0cWindows Server 2008\uff0cWindows Server 2008 R2 \u7b49\u3002"),(0,r.yg)("h4",{id:"\u5d4c\u5165\u5f0f\u64cd\u4f5c\u7cfb\u7edf"},"\u5d4c\u5165\u5f0f\u64cd\u4f5c\u7cfb\u7edf"),(0,r.yg)("p",null,"\u5d4c\u5165\u5f0f\u64cd\u4f5c\u7cfb\u7edf\u662f\u5e94\u7528\u5728\u5d4c\u5165\u5f0f\u7cfb\u7edf\u7684\u64cd\u4f5c\u7cfb\u7edf\u3002\u5d4c\u5165\u5f0f\u7cfb\u7edf\u5e7f\u6cdb\u5e94\u7528\u5728\u751f\u6d3b\u7684\u5404\u4e2a\u65b9\u9762\uff0c\u6db5\u76d6\u8303\u56f4\u4ece\u4fbf\u643a\u8bbe\u5907\u5230\u5927\u578b\u56fa\u5b9a\u8bbe\u65bd\uff0c\u5982\u6570\u7801\u76f8\u673a\u3001\u624b\u673a\u3001\u5e73\u677f\u7535\u8111\u3001\u5bb6\u7528\u7535\u5668\u3001\u533b\u7597\u8bbe\u5907\u3001\u4ea4\u901a\u706f\u3001\u822a\u7a7a\u7535\u5b50\u8bbe\u5907\u548c\u5de5\u5382\u63a7\u5236\u8bbe\u5907\u7b49\uff0c\u8d8a\u6765\u8d8a\u591a\u5d4c\u5165\u5f0f\u7cfb\u7edf\u5b89\u88c5\u6709\u5b9e\u65f6\u64cd\u4f5c\u7cfb\u7edf\u3002"),(0,r.yg)("p",null,"\u5728\u5d4c\u5165\u5f0f\u9886\u57df\u5e38\u7528\u7684\u64cd\u4f5c\u7cfb\u7edf\u6709\u5d4c\u5165\u5f0f Linux\u3001Windows Embedded\u3001VxWorks \u7b49\uff0c\u4ee5\u53ca\u5e7f\u6cdb\u4f7f\u7528\u5728\u667a\u80fd\u624b\u673a\u6216\u5e73\u677f\u7535\u8111\u7b49\u6d88\u8d39\u7535\u5b50\u4ea7\u54c1\u7684\u64cd\u4f5c\u7cfb\u7edf\uff0c\u5982 Android\u3001iOS\u3001Symbian\u3001Windows Phone \u548c BlackBerry OS \u7b49\u3002"),(0,r.yg)("h3",{id:"\u53ef\u6267\u884c\u7a0b\u5e8f\u6267\u884c\u7684\u539f\u7406\u5206\u6790"},"\u53ef\u6267\u884c\u7a0b\u5e8f\u6267\u884c\u7684\u539f\u7406\u5206\u6790"),(0,r.yg)("p",null,"\u53ef\u6267\u884c\u7a0b\u5e8f\u6267\u884c\u5185\u5bb9\u53ef\u4ee5\u5206\u4e24\u7c7b\uff0c\u4e00\u662f CPU \u7684\u6307\u4ee4\uff0c\u4e8c\u662f\u64cd\u4f5c\u7cfb\u7edf\u7684\u7cfb\u7edf\u8c03\u7528\uff0c\u51e0\u4e4e\u6240\u6709\u7684\u53ef\u6267\u884c\u7a0b\u5e8f\u90fd\u662f\u8fd0\u884c\u5728\u64cd\u4f5c\u7cfb\u7edf\u4e4b\u4e0a\u7684\uff0c\u7531\u64cd\u4f5c\u7cfb\u7edf\u6765\u7edf\u4e00\u8c03\u5ea6\u53ef\u6267\u884c\u7a0b\u5e8f\u7684\u6267\u884c\u5185\u5bb9\u3002"),(0,r.yg)("p",null,"\u8bf4\u5230\u53ef\u6267\u884c\u7a0b\u5e8f\uff0c\u5fc5\u987b\u5f97\u8bf4\u4e00\u4e0b\uff0c\u5e94\u7528\u7a0b\u5e8f\u4e8c\u8fdb\u5236\u63a5\u53e3 ABI\uff0c\uff08Application Binary Interface\uff09\uff0cABI \u662f\u7f16\u8bd1\u5668\u548c\u94fe\u63a5\u5668\u9075\u5b88\u7684\u4e00\u7ec4\u89c4\u5219\uff0c\u4ee5\u8ba9\u7f16\u8bd1\u540e\u7684\u7a0b\u5e8f\u53ef\u4ee5\u6b63\u5e38\u5de5\u4f5c\u3002"),(0,r.yg)("p",null,"\u4e0d\u540c\u7684\u64cd\u4f5c\u7cfb\u7edf\u5bf9 ABI \u7684\u8981\u6c42\u4e0d\u4e00\u6837\uff0c\u4f8b\u5982 Linux \u8981\u6c42 ELF \u683c\u5f0f\uff0cWindows \u8981\u6c42 PE \u683c\u5f0f\u3002"),(0,r.yg)("p",null,"\u7b80\u5355\u6765\u8bf4\uff0cABI \u5c31\u662f\u63cf\u8ff0\u51fd\u6570\u540d\u5982\u4f55\u5b58\u50a8\uff0c\u51fd\u6570\u53c2\u6570\u7c7b\u578b\u5982\u4f55\u5b58\u50a8\u7684\u63a5\u53e3\u3002"),(0,r.yg)("p",null,"\u4e00\u4e2a\u7a0b\u5e8f\u8981\u60f3\u8c03\u7528\u5176\u5b83\u7a0b\u5e8f\u7f16\u8bd1\u51fa\u6765\u7684\u51fd\u6570\uff0c\u90a3\u4e48\u5c31\u5fc5\u987b\u77e5\u9053\u5176 ABI \u63a5\u53e3\u3002"),(0,r.yg)("p",null,"C \u8bed\u8a00\u5177\u6709\u4f18\u79c0\u7684 ABI \u517c\u5bb9\uff0c\u56e0\u4e3a\u4e3b\u6d41 C \u7f16\u8bd1\u5668\u7f16\u8bd1\u51fa\u6765\u7684\u51fd\u6570\uff0cABI \u63a5\u53e3\u5927\u90fd\u76f8\u540c\uff0c\u6240\u4ee5\u7528 C \u8bed\u8a00\u5199\u7684\u5e93\u80fd\u65b9\u4fbf\u7684\u88ab\u5176\u5b83\u7a0b\u5e8f\u8c03\u7528\u3002"),(0,r.yg)("p",null,"C++\u4e00\u822c\u4e0d\u5177\u6709\u5f88\u597d\u7684 ABI \u517c\u5bb9\uff0c\u56e0\u4e3a\u6bcf\u4e2a C++\u7f16\u8bd1\u5668\u7f16\u8bd1\u51fa\u6765\u7684\u63a5\u53e3\u53ef\u80fd\u4e0d\u540c\uff0c\u5bfc\u81f4\u4e86\u4f60\u65e0\u6cd5\u8c03\u7528\u5176\u5b83\u4eba\u7528 C++\u63a5\u53e3\u63d0\u4f9b\u7684\u5e93\u51fd\u6570\u3002\u6240\u4ee5 C++\u51fd\u6570\u5f80\u5f80\u5f3a\u5236\u4f7f\u7528 C \u7684 ABI \u7528\u4e8e\u7ed9\u5176\u5b83\u7a0b\u5e8f\u8c03\u7528\u3002"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},"\u628a\u7b26\u53f7\u6807\u51c6\u3001\u53d8\u91cf\u5185\u5b58\u5e03\u5c40\u3001\u51fd\u6570\u8c03\u7528\u65b9\u5f0f\u7b49\u8ddf\u53ef\u6267\u884c\u4ee3\u7801\u4e8c\u8fdb\u5236\u517c\u5bb9\u6027\u76f8\u5173\u7684\u5185\u5bb9\u79f0\u4e3a ABI Application Binary Interface"),(0,r.yg)("li",{parentName:"ul"},"\u5e94\u7528\u7a0b\u5e8f\u4e8c\u8fdb\u5236\u63a5\u53e3\uff0c\u63cf\u8ff0\u4e86\u5e94\u7528\u7a0b\u5e8f\u548c\u64cd\u4f5c\u7cfb\u7edf\u4e4b\u95f4\uff0c\u4e00\u4e2a\u5e94\u7528\u548c\u5b83\u7684\u5e93\u4e4b\u95f4\uff0c\u6216\u8005\u5e94\u7528\u7684\u7ec4\u6210\u90e8\u5206\u4e4b\u95f4\u7684\u4f4e\u63a5\u53e3\u3002"),(0,r.yg)("li",{parentName:"ul"},"\u7f16\u7a0b\u8bed\u8a00\u5b9e\u73b0\u7684 ABI \u662f\u4e00\u79cd\u53ef\u4ee5\u4f7f\u5355\u72ec\u7f16\u8bd1\u7684\u6a21\u5757\u534f\u540c\u5de5\u4f5c\u7684\u4f4e\u7ea7\u7ec6\u8282\u7684\u89c4\u8303\u3002\u5982\u679c\u6ca1\u6709\u4e00\u4e2a\u7a33\u5b9a\u7684 ABI\uff0c\u5c31\u5fc5\u987b\u4f7f\u7528\u540c\u4e00\u7f16\u8bd1\u5668\u7684\u540c\u4e00\u7248\u672c\u7f16\u8bd1\u7a0b\u5e8f\u7684\u6240\u6709\u90e8\u5206\u3002"),(0,r.yg)("li",{parentName:"ul"},"API \u662f\u6e90\u4ee3\u7801\u7ea7\u522b\u7684\u63a5\u53e3\uff0cABI \u662f\u4e8c\u8fdb\u5236\u5c42\u9762\u7684\u63a5\u53e3\uff0cABI \u7684\u517c\u5bb9\u7a0b\u5ea6\u6bd4 API \u66f4\u52a0\u4e25\u683c")),(0,r.yg)("p",null,"\u64cd\u4f5c\u7cfb\u7edf\u90fd\u89c4\u5b9a\u4e86\u652f\u6301\u7684\u53ef\u6267\u884c\u6587\u4ef6\uff08\u7a0b\u5e8f\uff09\u7684\u683c\u5f0f\u3002Windows \u4e0b\u6709 PE \u6587\u4ef6\u683c\u5f0f\uff0cLinux \u4e0b\u6709 ELF \u683c\u5f0f,Mac OS \u4e0b\u6709 Mach-O \u683c\u5f0f\u3002"),(0,r.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("a",{parentName:"li",href:"ttps://www.zhihu.com/question/320884011/answer/2763905623"},"\u77e5\u4e4e-\u4e3a\u4ec0\u4e48 Linux \u539f\u751f\u4e0d\u80fd\u8fd0\u884c exe \u683c\u5f0f\u7684\u6587\u4ef6\uff1f"))))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/9a914db6.d653c4c9.js b/assets/js/9a914db6.c94890fb.js similarity index 98% rename from assets/js/9a914db6.d653c4c9.js rename to assets/js/9a914db6.c94890fb.js index c7a8b0ee6..ed3f7604e 100644 --- a/assets/js/9a914db6.d653c4c9.js +++ b/assets/js/9a914db6.c94890fb.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5631],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function a(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var c=n.createContext({}),u=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},p=function(e){var t=u(e.components);return n.createElement(c.Provider,{value:t},e.children)},s="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,i=e.originalType,c=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),s=u(r),d=o,f=s["".concat(c,".").concat(d)]||s[d]||y[d]||i;return r?n.createElement(f,a(a({ref:t},p),{},{components:r})):n.createElement(f,a({ref:t},p))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=r.length,a=new Array(i);a[0]=d;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[s]="string"==typeof e?e:o,a[1]=l;for(var u=2;u{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>a,default:()=>y,frontMatter:()=>i,metadata:()=>l,toc:()=>u});var n=r(8168),o=(r(6540),r(5680));const i={},a="\u5e76\u53d1\u6a21\u578b",l={unversionedId:"study/think/\u5e76\u53d1\u6a21\u578b",id:"study/think/\u5e76\u53d1\u6a21\u578b",title:"\u5e76\u53d1\u6a21\u578b",description:"\u4e1a\u754c\u5c06\u5982\u4f55\u5b9e\u73b0\u5e76\u53d1\u7f16\u7a0b\u603b\u7ed3\u5f52\u7eb3\u4e3a\u5404\u5f0f\u5404\u6837\u7684\u5e76\u53d1\u6a21\u578b\uff0c\u5e38\u89c1\u7684\u5e76\u53d1\u6a21\u578b\u6709\u4ee5\u4e0b\u51e0\u79cd\uff1a",source:"@site/docs/study/think/\u5e76\u53d1\u6a21\u578b.md",sourceDirName:"study/think",slug:"/study/think/\u5e76\u53d1\u6a21\u578b",permalink:"/docs/study/think/\u5e76\u53d1\u6a21\u578b",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u5b9e\u65f6\u8ba1\u7b97Storm+Flink",permalink:"/docs/study/think/\u5b9e\u65f6\u8ba1\u7b97Storm+Flink"},next:{title:"\u67b6\u6784",permalink:"/docs/study/think/\u67b6\u6784/"}},c={},u=[{value:"\u7ebf\u7a0b & \u9501\u6a21\u578b",id:"\u7ebf\u7a0b--\u9501\u6a21\u578b",level:3},{value:"Actor \u6a21\u578b",id:"actor-\u6a21\u578b",level:3},{value:"CSP \u6a21\u578b",id:"csp-\u6a21\u578b",level:3},{value:"Fork&Join \u6a21\u578b",id:"forkjoin-\u6a21\u578b",level:3}],p={toc:u},s="wrapper";function y(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"\u5e76\u53d1\u6a21\u578b"},"\u5e76\u53d1\u6a21\u578b"),(0,o.yg)("p",null,"\u4e1a\u754c\u5c06\u5982\u4f55\u5b9e\u73b0\u5e76\u53d1\u7f16\u7a0b\u603b\u7ed3\u5f52\u7eb3\u4e3a\u5404\u5f0f\u5404\u6837\u7684\u5e76\u53d1\u6a21\u578b\uff0c\u5e38\u89c1\u7684\u5e76\u53d1\u6a21\u578b\u6709\u4ee5\u4e0b\u51e0\u79cd\uff1a"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"\u7ebf\u7a0b & \u9501\u6a21\u578b"),(0,o.yg)("li",{parentName:"ul"},"Actor \u6a21\u578b"),(0,o.yg)("li",{parentName:"ul"},"CSP \u6a21\u578b"),(0,o.yg)("li",{parentName:"ul"},"Fork&Join \u6a21\u578b")),(0,o.yg)("h3",{id:"\u7ebf\u7a0b--\u9501\u6a21\u578b"},"\u7ebf\u7a0b & \u9501\u6a21\u578b"),(0,o.yg)("h3",{id:"actor-\u6a21\u578b"},"Actor \u6a21\u578b"),(0,o.yg)("h3",{id:"csp-\u6a21\u578b"},"CSP \u6a21\u578b"),(0,o.yg)("p",null,"CSP\uff08communicating sequential processes\uff09"),(0,o.yg)("p",null,"Go \u8bed\u8a00\u4e2d\u7684\u5e76\u53d1\u7a0b\u5e8f\u4e3b\u8981\u662f\u901a\u8fc7\u57fa\u4e8e CSP\uff08communicating sequential processes\uff09\u7684 goroutine \u548c channel \u6765\u5b9e\u73b0\uff0c\u5f53\u7136\u4e5f\u652f\u6301\u4f7f\u7528\u4f20\u7edf\u7684\u591a\u7ebf\u7a0b\u5171\u4eab\u5185\u5b58\u7684\u5e76\u53d1\u65b9\u5f0f\u3002"),(0,o.yg)("h3",{id:"forkjoin-\u6a21\u578b"},"Fork&Join \u6a21\u578b"))}y.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5631],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function a(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var c=n.createContext({}),u=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},p=function(e){var t=u(e.components);return n.createElement(c.Provider,{value:t},e.children)},s="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,i=e.originalType,c=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),s=u(r),d=o,f=s["".concat(c,".").concat(d)]||s[d]||y[d]||i;return r?n.createElement(f,a(a({ref:t},p),{},{components:r})):n.createElement(f,a({ref:t},p))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=r.length,a=new Array(i);a[0]=d;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[s]="string"==typeof e?e:o,a[1]=l;for(var u=2;u{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>a,default:()=>y,frontMatter:()=>i,metadata:()=>l,toc:()=>u});var n=r(8168),o=(r(6540),r(5680));const i={},a="\u5e76\u53d1\u6a21\u578b",l={unversionedId:"study/think/\u5e76\u53d1\u6a21\u578b",id:"study/think/\u5e76\u53d1\u6a21\u578b",title:"\u5e76\u53d1\u6a21\u578b",description:"\u4e1a\u754c\u5c06\u5982\u4f55\u5b9e\u73b0\u5e76\u53d1\u7f16\u7a0b\u603b\u7ed3\u5f52\u7eb3\u4e3a\u5404\u5f0f\u5404\u6837\u7684\u5e76\u53d1\u6a21\u578b\uff0c\u5e38\u89c1\u7684\u5e76\u53d1\u6a21\u578b\u6709\u4ee5\u4e0b\u51e0\u79cd\uff1a",source:"@site/docs/study/think/\u5e76\u53d1\u6a21\u578b.md",sourceDirName:"study/think",slug:"/study/think/\u5e76\u53d1\u6a21\u578b",permalink:"/docs/study/think/\u5e76\u53d1\u6a21\u578b",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u5b9e\u65f6\u8ba1\u7b97Storm+Flink",permalink:"/docs/study/think/\u5b9e\u65f6\u8ba1\u7b97Storm+Flink"},next:{title:"\u67b6\u6784",permalink:"/docs/study/think/\u67b6\u6784/"}},c={},u=[{value:"\u7ebf\u7a0b & \u9501\u6a21\u578b",id:"\u7ebf\u7a0b--\u9501\u6a21\u578b",level:3},{value:"Actor \u6a21\u578b",id:"actor-\u6a21\u578b",level:3},{value:"CSP \u6a21\u578b",id:"csp-\u6a21\u578b",level:3},{value:"Fork&Join \u6a21\u578b",id:"forkjoin-\u6a21\u578b",level:3}],p={toc:u},s="wrapper";function y(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"\u5e76\u53d1\u6a21\u578b"},"\u5e76\u53d1\u6a21\u578b"),(0,o.yg)("p",null,"\u4e1a\u754c\u5c06\u5982\u4f55\u5b9e\u73b0\u5e76\u53d1\u7f16\u7a0b\u603b\u7ed3\u5f52\u7eb3\u4e3a\u5404\u5f0f\u5404\u6837\u7684\u5e76\u53d1\u6a21\u578b\uff0c\u5e38\u89c1\u7684\u5e76\u53d1\u6a21\u578b\u6709\u4ee5\u4e0b\u51e0\u79cd\uff1a"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"\u7ebf\u7a0b & \u9501\u6a21\u578b"),(0,o.yg)("li",{parentName:"ul"},"Actor \u6a21\u578b"),(0,o.yg)("li",{parentName:"ul"},"CSP \u6a21\u578b"),(0,o.yg)("li",{parentName:"ul"},"Fork&Join \u6a21\u578b")),(0,o.yg)("h3",{id:"\u7ebf\u7a0b--\u9501\u6a21\u578b"},"\u7ebf\u7a0b & \u9501\u6a21\u578b"),(0,o.yg)("h3",{id:"actor-\u6a21\u578b"},"Actor \u6a21\u578b"),(0,o.yg)("h3",{id:"csp-\u6a21\u578b"},"CSP \u6a21\u578b"),(0,o.yg)("p",null,"CSP\uff08communicating sequential processes\uff09"),(0,o.yg)("p",null,"Go \u8bed\u8a00\u4e2d\u7684\u5e76\u53d1\u7a0b\u5e8f\u4e3b\u8981\u662f\u901a\u8fc7\u57fa\u4e8e CSP\uff08communicating sequential processes\uff09\u7684 goroutine \u548c channel \u6765\u5b9e\u73b0\uff0c\u5f53\u7136\u4e5f\u652f\u6301\u4f7f\u7528\u4f20\u7edf\u7684\u591a\u7ebf\u7a0b\u5171\u4eab\u5185\u5b58\u7684\u5e76\u53d1\u65b9\u5f0f\u3002"),(0,o.yg)("h3",{id:"forkjoin-\u6a21\u578b"},"Fork&Join \u6a21\u578b"))}y.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/9ad28e53.524dfd11.js b/assets/js/9ad28e53.0f4e39b9.js similarity index 98% rename from assets/js/9ad28e53.524dfd11.js rename to assets/js/9ad28e53.0f4e39b9.js index e5badbd7d..be1924261 100644 --- a/assets/js/9ad28e53.524dfd11.js +++ b/assets/js/9ad28e53.0f4e39b9.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4630],{5680:(e,r,t)=>{t.d(r,{xA:()=>u,yg:()=>f});var n=t(6540);function a(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function o(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function p(e){for(var r=1;r=0||(a[t]=e[t]);return a}(e,r);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var i=n.createContext({}),l=function(e){var r=n.useContext(i),t=r;return e&&(t="function"==typeof e?e(r):p(p({},r),e)),t},u=function(e){var r=l(e.components);return n.createElement(i.Provider,{value:r},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},y=n.forwardRef((function(e,r){var t=e.components,a=e.mdxType,o=e.originalType,i=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),s=l(t),y=a,f=s["".concat(i,".").concat(y)]||s[y]||d[y]||o;return t?n.createElement(f,p(p({ref:r},u),{},{components:t})):n.createElement(f,p({ref:r},u))}));function f(e,r){var t=arguments,a=r&&r.mdxType;if("string"==typeof e||a){var o=t.length,p=new Array(o);p[0]=y;var c={};for(var i in r)hasOwnProperty.call(r,i)&&(c[i]=r[i]);c.originalType=e,c[s]="string"==typeof e?e:a,p[1]=c;for(var l=2;l{t.r(r),t.d(r,{assets:()=>i,contentTitle:()=>p,default:()=>d,frontMatter:()=>o,metadata:()=>c,toc:()=>l});var n=t(8168),a=(t(6540),t(5680));const o={},p="CSharp",c={unversionedId:"study/program/CSharp/index",id:"study/program/CSharp/index",title:"CSharp",description:"C#\u662f\u5fae\u8f6f\u63a8\u51fa\u7684\u4e00\u79cd\u57fa\u4e8e.NET \u6846\u67b6\u7684\u3001\u9762\u5411\u5bf9\u8c61\u7684\u9ad8\u7ea7\u7f16\u7a0b\u8bed\u8a00\u3002",source:"@site/docs/study/program/CSharp/index.md",sourceDirName:"study/program/CSharp",slug:"/study/program/CSharp/",permalink:"/docs/study/program/CSharp/",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"C++\u8fdb\u7a0b\u95f4\u901a\u4fe1",permalink:"/docs/study/program/CPP/CPP\u8fdb\u7a0b\u95f4\u901a\u4fe1"},next:{title:"Flutter",permalink:"/docs/study/program/Dart/Flutter"}},i={},l=[{value:".Net \u6846\u67b6\uff08.Net Framework\uff09",id:"net-\u6846\u67b6net-framework",level:3}],u={toc:l},s="wrapper";function d(e){let{components:r,...t}=e;return(0,a.yg)(s,(0,n.A)({},u,t,{components:r,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"csharp"},"CSharp"),(0,a.yg)("p",null,"C#\u662f\u5fae\u8f6f\u63a8\u51fa\u7684\u4e00\u79cd\u57fa\u4e8e.NET \u6846\u67b6\u7684\u3001\u9762\u5411\u5bf9\u8c61\u7684\u9ad8\u7ea7\u7f16\u7a0b\u8bed\u8a00\u3002"),(0,a.yg)("p",null,"\u867d\u7136 C# \u7684\u6784\u60f3\u5341\u5206\u63a5\u8fd1\u4e8e\u4f20\u7edf\u9ad8\u7ea7\u8bed\u8a00 C \u548c C++\uff0c\u662f\u4e00\u95e8\u9762\u5411\u5bf9\u8c61\u7684\u7f16\u7a0b\u8bed\u8a00\uff0c\u4f46\u662f\u5b83\u4e0e Java \u975e\u5e38\u76f8\u4f3c\uff0c\u6709\u8bb8\u591a\u5f3a\u5927\u7684\u7f16\u7a0b\u529f\u80fd\uff0c\u56e0\u6b64\u5f97\u5230\u5e7f\u5927\u7a0b\u5e8f\u5458\u7684\u4eb2\u7750\u3002"),(0,a.yg)("h3",{id:"net-\u6846\u67b6net-framework"},".Net \u6846\u67b6\uff08.Net Framework\uff09"),(0,a.yg)("p",null,".Net \u6846\u67b6\u5e94\u7528\u7a0b\u5e8f\u662f\u591a\u5e73\u53f0\u7684\u5e94\u7528\u7a0b\u5e8f\u3002\u6846\u67b6\u7684\u8bbe\u8ba1\u65b9\u5f0f\u4f7f\u5b83\u9002\u7528\u4e8e\u4e0b\u5217\u5404\u79cd\u8bed\u8a00\uff1aC#\u3001C++\u3001Visual Basic\u3001Jscript\u3001COBOL \u7b49\u7b49\u3002\u6240\u6709\u8fd9\u4e9b\u8bed\u8a00\u53ef\u4ee5\u8bbf\u95ee\u6846\u67b6\uff0c\u5f7c\u6b64\u4e4b\u95f4\u4e5f\u53ef\u4ee5\u4e92\u76f8\u4ea4\u4e92\u3002"),(0,a.yg)("p",null,"\u867d\u7136 .NET \u6846\u67b6\u662f\u8fd0\u884c\u5728 Windows \u64cd\u4f5c\u7cfb\u7edf\u4e0a\uff0c\u4f46\u662f\u4e5f\u6709\u4e00\u4e9b\u8fd0\u884c\u4e8e\u5176\u5b83\u64cd\u4f5c\u7cfb\u7edf\u4e0a\u7684\u7248\u672c\u53ef\u4f9b\u9009\u62e9\u3002Mono \u662f .NET \u6846\u67b6\u7684\u4e00\u4e2a\u5f00\u6e90\u7248\u672c\uff0c\u5b83\u5305\u542b\u4e86\u4e00\u4e2a C# \u7f16\u8bd1\u5668\uff0c\u4e14\u53ef\u8fd0\u884c\u4e8e\u591a\u79cd\u64cd\u4f5c\u7cfb\u7edf\u4e0a\uff0c\u6bd4\u5982\u5404\u79cd\u7248\u672c\u7684 Linux \u548c Mac OS\u3002"))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4630],{5680:(e,r,t)=>{t.d(r,{xA:()=>u,yg:()=>f});var n=t(6540);function a(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function o(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function p(e){for(var r=1;r=0||(a[t]=e[t]);return a}(e,r);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var i=n.createContext({}),l=function(e){var r=n.useContext(i),t=r;return e&&(t="function"==typeof e?e(r):p(p({},r),e)),t},u=function(e){var r=l(e.components);return n.createElement(i.Provider,{value:r},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},y=n.forwardRef((function(e,r){var t=e.components,a=e.mdxType,o=e.originalType,i=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),s=l(t),y=a,f=s["".concat(i,".").concat(y)]||s[y]||d[y]||o;return t?n.createElement(f,p(p({ref:r},u),{},{components:t})):n.createElement(f,p({ref:r},u))}));function f(e,r){var t=arguments,a=r&&r.mdxType;if("string"==typeof e||a){var o=t.length,p=new Array(o);p[0]=y;var c={};for(var i in r)hasOwnProperty.call(r,i)&&(c[i]=r[i]);c.originalType=e,c[s]="string"==typeof e?e:a,p[1]=c;for(var l=2;l{t.r(r),t.d(r,{assets:()=>i,contentTitle:()=>p,default:()=>d,frontMatter:()=>o,metadata:()=>c,toc:()=>l});var n=t(8168),a=(t(6540),t(5680));const o={},p="CSharp",c={unversionedId:"study/program/CSharp/index",id:"study/program/CSharp/index",title:"CSharp",description:"C#\u662f\u5fae\u8f6f\u63a8\u51fa\u7684\u4e00\u79cd\u57fa\u4e8e.NET \u6846\u67b6\u7684\u3001\u9762\u5411\u5bf9\u8c61\u7684\u9ad8\u7ea7\u7f16\u7a0b\u8bed\u8a00\u3002",source:"@site/docs/study/program/CSharp/index.md",sourceDirName:"study/program/CSharp",slug:"/study/program/CSharp/",permalink:"/docs/study/program/CSharp/",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"C++\u8fdb\u7a0b\u95f4\u901a\u4fe1",permalink:"/docs/study/program/CPP/CPP\u8fdb\u7a0b\u95f4\u901a\u4fe1"},next:{title:"Flutter",permalink:"/docs/study/program/Dart/Flutter"}},i={},l=[{value:".Net \u6846\u67b6\uff08.Net Framework\uff09",id:"net-\u6846\u67b6net-framework",level:3}],u={toc:l},s="wrapper";function d(e){let{components:r,...t}=e;return(0,a.yg)(s,(0,n.A)({},u,t,{components:r,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"csharp"},"CSharp"),(0,a.yg)("p",null,"C#\u662f\u5fae\u8f6f\u63a8\u51fa\u7684\u4e00\u79cd\u57fa\u4e8e.NET \u6846\u67b6\u7684\u3001\u9762\u5411\u5bf9\u8c61\u7684\u9ad8\u7ea7\u7f16\u7a0b\u8bed\u8a00\u3002"),(0,a.yg)("p",null,"\u867d\u7136 C# \u7684\u6784\u60f3\u5341\u5206\u63a5\u8fd1\u4e8e\u4f20\u7edf\u9ad8\u7ea7\u8bed\u8a00 C \u548c C++\uff0c\u662f\u4e00\u95e8\u9762\u5411\u5bf9\u8c61\u7684\u7f16\u7a0b\u8bed\u8a00\uff0c\u4f46\u662f\u5b83\u4e0e Java \u975e\u5e38\u76f8\u4f3c\uff0c\u6709\u8bb8\u591a\u5f3a\u5927\u7684\u7f16\u7a0b\u529f\u80fd\uff0c\u56e0\u6b64\u5f97\u5230\u5e7f\u5927\u7a0b\u5e8f\u5458\u7684\u4eb2\u7750\u3002"),(0,a.yg)("h3",{id:"net-\u6846\u67b6net-framework"},".Net \u6846\u67b6\uff08.Net Framework\uff09"),(0,a.yg)("p",null,".Net \u6846\u67b6\u5e94\u7528\u7a0b\u5e8f\u662f\u591a\u5e73\u53f0\u7684\u5e94\u7528\u7a0b\u5e8f\u3002\u6846\u67b6\u7684\u8bbe\u8ba1\u65b9\u5f0f\u4f7f\u5b83\u9002\u7528\u4e8e\u4e0b\u5217\u5404\u79cd\u8bed\u8a00\uff1aC#\u3001C++\u3001Visual Basic\u3001Jscript\u3001COBOL \u7b49\u7b49\u3002\u6240\u6709\u8fd9\u4e9b\u8bed\u8a00\u53ef\u4ee5\u8bbf\u95ee\u6846\u67b6\uff0c\u5f7c\u6b64\u4e4b\u95f4\u4e5f\u53ef\u4ee5\u4e92\u76f8\u4ea4\u4e92\u3002"),(0,a.yg)("p",null,"\u867d\u7136 .NET \u6846\u67b6\u662f\u8fd0\u884c\u5728 Windows \u64cd\u4f5c\u7cfb\u7edf\u4e0a\uff0c\u4f46\u662f\u4e5f\u6709\u4e00\u4e9b\u8fd0\u884c\u4e8e\u5176\u5b83\u64cd\u4f5c\u7cfb\u7edf\u4e0a\u7684\u7248\u672c\u53ef\u4f9b\u9009\u62e9\u3002Mono \u662f .NET \u6846\u67b6\u7684\u4e00\u4e2a\u5f00\u6e90\u7248\u672c\uff0c\u5b83\u5305\u542b\u4e86\u4e00\u4e2a C# \u7f16\u8bd1\u5668\uff0c\u4e14\u53ef\u8fd0\u884c\u4e8e\u591a\u79cd\u64cd\u4f5c\u7cfb\u7edf\u4e0a\uff0c\u6bd4\u5982\u5404\u79cd\u7248\u672c\u7684 Linux \u548c Mac OS\u3002"))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/9d0163be.4e89dd22.js b/assets/js/9d0163be.0e03bd44.js similarity index 98% rename from assets/js/9d0163be.4e89dd22.js rename to assets/js/9d0163be.0e03bd44.js index 3fa624aa3..418de14c9 100644 --- a/assets/js/9d0163be.4e89dd22.js +++ b/assets/js/9d0163be.0e03bd44.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[927],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var u=n.createContext({}),l=function(e){var t=n.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=l(e.components);return n.createElement(u.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,u=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),s=l(r),y=o,f=s["".concat(u,".").concat(y)]||s[y]||d[y]||a;return r?n.createElement(f,i(i({ref:t},p),{},{components:r})):n.createElement(f,i({ref:t},p))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=y;var c={};for(var u in t)hasOwnProperty.call(t,u)&&(c[u]=t[u]);c.originalType=e,c[s]="string"==typeof e?e:o,i[1]=c;for(var l=2;l{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>l});var n=r(8168),o=(r(6540),r(5680));const a={},i=void 0,c={unversionedId:"study/db/\u65f6\u5e8f\u6570\u636e\u5e93/Druid",id:"study/db/\u65f6\u5e8f\u6570\u636e\u5e93/Druid",title:"Druid",description:"\u57fa\u672c\u4fe1\u606f",source:"@site/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/Druid.md",sourceDirName:"study/db/\u65f6\u5e8f\u6570\u636e\u5e93",slug:"/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/Druid",permalink:"/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/Druid",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Apache IoTDB",permalink:"/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/Apache IoTDB"},next:{title:"KairosDB",permalink:"/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/KairosDB"}},u={},l=[],p={toc:l},s="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("p",null,(0,o.yg)("strong",{parentName:"p"},"\u57fa\u672c\u4fe1\u606f")),(0,o.yg)("ol",null,(0,o.yg)("li",{parentName:"ol"},"\u7f16\u7a0b\u8bed\u8a00\uff1aJava"),(0,o.yg)("li",{parentName:"ol"},"\u5f00\u6e90\uff1a\u662f"),(0,o.yg)("li",{parentName:"ol"},"\u5907\u6ce8\uff1aDruid\u4e25\u683c\u4e0a\u4e0d\u80fd\u7b97\u65f6\u5e8f\u6570\u636e\u5e93\uff0c\u5e94\u8be5\u7b97\u4e00\u4e2aOLAP\u6570\u636e\u5e93\uff0c\u5b9a\u4f4d\u8fd8\u662f\u4e0d\u592a\u4e00\u6837\u7684"),(0,o.yg)("li",{parentName:"ol"},"Prometheus \u548c Druid \u4e5f\u56e0\u4e3a\u65f6\u95f4\u5e8f\u5217\u6570\u636e\u7ba1\u7406\u800c\u95fb\u540d\uff0c\u4f46\u662f Prometheus \u805a\u7126\u5728\u6570\u636e\u91c7\u96c6\u3001\u53ef\u89c6\u5316\u548c\u62a5\u8b66\uff0cDruid \u805a\u7126\u5728 OLAP \u8d1f\u8f7d\u7684\u6570\u636e\u5206\u6790\uff0c\u56e0\u6b64\u672c\u6587\u7701\u7565\u4e86 Prometheus \u548c Druid\u3002")))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[927],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var u=n.createContext({}),l=function(e){var t=n.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=l(e.components);return n.createElement(u.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,u=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),s=l(r),y=o,f=s["".concat(u,".").concat(y)]||s[y]||d[y]||a;return r?n.createElement(f,i(i({ref:t},p),{},{components:r})):n.createElement(f,i({ref:t},p))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=y;var c={};for(var u in t)hasOwnProperty.call(t,u)&&(c[u]=t[u]);c.originalType=e,c[s]="string"==typeof e?e:o,i[1]=c;for(var l=2;l{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>l});var n=r(8168),o=(r(6540),r(5680));const a={},i=void 0,c={unversionedId:"study/db/\u65f6\u5e8f\u6570\u636e\u5e93/Druid",id:"study/db/\u65f6\u5e8f\u6570\u636e\u5e93/Druid",title:"Druid",description:"\u57fa\u672c\u4fe1\u606f",source:"@site/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/Druid.md",sourceDirName:"study/db/\u65f6\u5e8f\u6570\u636e\u5e93",slug:"/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/Druid",permalink:"/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/Druid",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Apache IoTDB",permalink:"/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/Apache IoTDB"},next:{title:"KairosDB",permalink:"/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/KairosDB"}},u={},l=[],p={toc:l},s="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("p",null,(0,o.yg)("strong",{parentName:"p"},"\u57fa\u672c\u4fe1\u606f")),(0,o.yg)("ol",null,(0,o.yg)("li",{parentName:"ol"},"\u7f16\u7a0b\u8bed\u8a00\uff1aJava"),(0,o.yg)("li",{parentName:"ol"},"\u5f00\u6e90\uff1a\u662f"),(0,o.yg)("li",{parentName:"ol"},"\u5907\u6ce8\uff1aDruid\u4e25\u683c\u4e0a\u4e0d\u80fd\u7b97\u65f6\u5e8f\u6570\u636e\u5e93\uff0c\u5e94\u8be5\u7b97\u4e00\u4e2aOLAP\u6570\u636e\u5e93\uff0c\u5b9a\u4f4d\u8fd8\u662f\u4e0d\u592a\u4e00\u6837\u7684"),(0,o.yg)("li",{parentName:"ol"},"Prometheus \u548c Druid \u4e5f\u56e0\u4e3a\u65f6\u95f4\u5e8f\u5217\u6570\u636e\u7ba1\u7406\u800c\u95fb\u540d\uff0c\u4f46\u662f Prometheus \u805a\u7126\u5728\u6570\u636e\u91c7\u96c6\u3001\u53ef\u89c6\u5316\u548c\u62a5\u8b66\uff0cDruid \u805a\u7126\u5728 OLAP \u8d1f\u8f7d\u7684\u6570\u636e\u5206\u6790\uff0c\u56e0\u6b64\u672c\u6587\u7701\u7565\u4e86 Prometheus \u548c Druid\u3002")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/9f5c6157.db94c52c.js b/assets/js/9f5c6157.4052c851.js similarity index 98% rename from assets/js/9f5c6157.db94c52c.js rename to assets/js/9f5c6157.4052c851.js index be868b9fc..a6f456e97 100644 --- a/assets/js/9f5c6157.db94c52c.js +++ b/assets/js/9f5c6157.4052c851.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3125],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>m});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var i=n.createContext({}),p=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(i.Provider,{value:t},e.children)},y="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},s=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,i=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),y=p(r),s=a,m=y["".concat(i,".").concat(s)]||y[s]||d[s]||o;return r?n.createElement(m,l(l({ref:t},u),{},{components:r})):n.createElement(m,l({ref:t},u))}));function m(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,l=new Array(o);l[0]=s;var c={};for(var i in t)hasOwnProperty.call(t,i)&&(c[i]=t[i]);c.originalType=e,c[y]="string"==typeof e?e:a,l[1]=c;for(var p=2;p{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>l,default:()=>d,frontMatter:()=>o,metadata:()=>c,toc:()=>p});var n=r(8168),a=(r(6540),r(5680));const o={},l=void 0,c={unversionedId:"study/think/\u7f13\u5b58/\u7f13\u5b58",id:"study/think/\u7f13\u5b58/\u7f13\u5b58",title:"\u7f13\u5b58",description:"| | Ehcache | Redis |",source:"@site/docs/study/think/\u7f13\u5b58/\u7f13\u5b58.md",sourceDirName:"study/think/\u7f13\u5b58",slug:"/study/think/\u7f13\u5b58/",permalink:"/docs/study/think/\u7f13\u5b58/",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Reactor\u6a21\u5f0f\u53cd\u5e94\u5806\u6a21\u5f0f",permalink:"/docs/study/think/\u6982\u5ff5\u6a21\u578b/Reactor\u6a21\u5f0f\u53cd\u5e94\u5806\u6a21\u5f0f"},next:{title:"\u5206\u5e03\u5f0f\u7f13\u5b58",permalink:"/docs/study/think/\u7f13\u5b58/\u5206\u5e03\u5f0f\u7f13\u5b58"}},i={},p=[],u={toc:p},y="wrapper";function d(e){let{components:t,...r}=e;return(0,a.yg)(y,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("table",null,(0,a.yg)("thead",{parentName:"table"},(0,a.yg)("tr",{parentName:"thead"},(0,a.yg)("th",{parentName:"tr",align:null}),(0,a.yg)("th",{parentName:"tr",align:null},"Ehcache"),(0,a.yg)("th",{parentName:"tr",align:null},"Redis"))),(0,a.yg)("tbody",{parentName:"table"},(0,a.yg)("tr",{parentName:"tbody"},(0,a.yg)("td",{parentName:"tr",align:null},"\u5b58\u53d6\u901f\u5ea6"),(0,a.yg)("td",{parentName:"tr",align:null},"Ehcache\u76f4\u63a5\u5728jvm\u865a\u62df\u673a\u4e2d\u7f13\u5b58\uff0c\u901f\u5ea6\u5feb\uff0c\u6548\u7387\u9ad8"),(0,a.yg)("td",{parentName:"tr",align:null},"Redis\u662f\u901a\u8fc7socket\u8bbf\u95ee\u5230\u7f13\u5b58\u670d\u52a1\uff0c\u6548\u7387\u6bd4ecache\u4f4e")),(0,a.yg)("tr",{parentName:"tbody"},(0,a.yg)("td",{parentName:"tr",align:null},"\u96c6\u7fa4"),(0,a.yg)("td",{parentName:"tr",align:null},"Ehcache\u6709\u7f13\u5b58\u5171\u4eab\u65b9\u6848\uff0c\u4e0d\u8fc7\u662f\u901a\u8fc7RMI\u6216\u8005Jgroup\u591a\u64ad\u65b9\u5f0f\u8fdb\u884c\u5e7f\u64ad\u7f13\u5b58\u901a\u77e5\u66f4\u65b0\uff0c\u7f13\u5b58\u5171\u4eab\u590d\u6742\uff0c\u7ef4\u62a4\u4e0d\u65b9\u4fbf\uff1b\u7b80\u5355\u7684\u5171\u4eab\u53ef\u4ee5\uff0c\u4f46\u662f\u6d89\u53ca\u5230\u7f13\u5b58\u6062\u590d\uff0c\u5927\u6570\u636e\u7f13\u5b58\uff0c\u5219\u4e0d\u5408\u9002\u3002"),(0,a.yg)("td",{parentName:"tr",align:null},"Redis\u6709\u6210\u719f\u7684\u5206\u5e03\u5f0f\u89e3\u51b3\u65b9\u6848\u3002\u9002\u5408\u5927\u89c4\u6a21\u5206\u5e03\u5f0f\u96c6\u7fa4\u90e8\u7f72\u3002")),(0,a.yg)("tr",{parentName:"tbody"},(0,a.yg)("td",{parentName:"tr",align:null},"\u64cd\u4f5c\u590d\u6742\u5ea6"),(0,a.yg)("td",{parentName:"tr",align:null},"Ehcache\u63d0\u4f9b\u7684\u63a5\u53e3\u975e\u5e38\u7b80\u5355\u660e\u4e86\uff0c\u4eceEhcache\u7684\u642d\u5efa\u5230\u8fd0\u7528\u8fd0\u884c\u4ec5\u4ec5\u9700\u8981\u7684\u662f\u4f60\u5b9d\u8d35\u7684\u51e0\u5206\u949f\u3002\u5176\u5b9e\u5f88\u591a\u5f00\u53d1\u8005\u90fd\u4e0d\u77e5\u9053\u81ea\u5df1\u7528\u5728\u7528Ehcache\uff0cEhcache\u88ab\u5e7f\u6cdb\u7684\u8fd0\u7528\u4e8e\u5176\u4ed6\u7684\u5f00\u6e90\u9879\u76ee\u3002\u6bd4\u5982\uff1aHibernate"),(0,a.yg)("td",{parentName:"tr",align:null},"\u81f3\u5c11\u9700\u8981\u5b89\u88c5\u670d\u52a1\u7aef\u548c\u5ba2\u6237\u7aef\u624d\u80fd\u4f7f\u7528\u3002\u64cd\u4f5c\u7565\u6bd4Ehcache\u590d\u6742\u4e00\u4e9b\u3002")))))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3125],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>m});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var i=n.createContext({}),p=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(i.Provider,{value:t},e.children)},y="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},s=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,i=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),y=p(r),s=a,m=y["".concat(i,".").concat(s)]||y[s]||d[s]||o;return r?n.createElement(m,l(l({ref:t},u),{},{components:r})):n.createElement(m,l({ref:t},u))}));function m(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,l=new Array(o);l[0]=s;var c={};for(var i in t)hasOwnProperty.call(t,i)&&(c[i]=t[i]);c.originalType=e,c[y]="string"==typeof e?e:a,l[1]=c;for(var p=2;p{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>l,default:()=>d,frontMatter:()=>o,metadata:()=>c,toc:()=>p});var n=r(8168),a=(r(6540),r(5680));const o={},l=void 0,c={unversionedId:"study/think/\u7f13\u5b58/\u7f13\u5b58",id:"study/think/\u7f13\u5b58/\u7f13\u5b58",title:"\u7f13\u5b58",description:"| | Ehcache | Redis |",source:"@site/docs/study/think/\u7f13\u5b58/\u7f13\u5b58.md",sourceDirName:"study/think/\u7f13\u5b58",slug:"/study/think/\u7f13\u5b58/",permalink:"/docs/study/think/\u7f13\u5b58/",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Reactor\u6a21\u5f0f\u53cd\u5e94\u5806\u6a21\u5f0f",permalink:"/docs/study/think/\u6982\u5ff5\u6a21\u578b/Reactor\u6a21\u5f0f\u53cd\u5e94\u5806\u6a21\u5f0f"},next:{title:"\u5206\u5e03\u5f0f\u7f13\u5b58",permalink:"/docs/study/think/\u7f13\u5b58/\u5206\u5e03\u5f0f\u7f13\u5b58"}},i={},p=[],u={toc:p},y="wrapper";function d(e){let{components:t,...r}=e;return(0,a.yg)(y,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("table",null,(0,a.yg)("thead",{parentName:"table"},(0,a.yg)("tr",{parentName:"thead"},(0,a.yg)("th",{parentName:"tr",align:null}),(0,a.yg)("th",{parentName:"tr",align:null},"Ehcache"),(0,a.yg)("th",{parentName:"tr",align:null},"Redis"))),(0,a.yg)("tbody",{parentName:"table"},(0,a.yg)("tr",{parentName:"tbody"},(0,a.yg)("td",{parentName:"tr",align:null},"\u5b58\u53d6\u901f\u5ea6"),(0,a.yg)("td",{parentName:"tr",align:null},"Ehcache\u76f4\u63a5\u5728jvm\u865a\u62df\u673a\u4e2d\u7f13\u5b58\uff0c\u901f\u5ea6\u5feb\uff0c\u6548\u7387\u9ad8"),(0,a.yg)("td",{parentName:"tr",align:null},"Redis\u662f\u901a\u8fc7socket\u8bbf\u95ee\u5230\u7f13\u5b58\u670d\u52a1\uff0c\u6548\u7387\u6bd4ecache\u4f4e")),(0,a.yg)("tr",{parentName:"tbody"},(0,a.yg)("td",{parentName:"tr",align:null},"\u96c6\u7fa4"),(0,a.yg)("td",{parentName:"tr",align:null},"Ehcache\u6709\u7f13\u5b58\u5171\u4eab\u65b9\u6848\uff0c\u4e0d\u8fc7\u662f\u901a\u8fc7RMI\u6216\u8005Jgroup\u591a\u64ad\u65b9\u5f0f\u8fdb\u884c\u5e7f\u64ad\u7f13\u5b58\u901a\u77e5\u66f4\u65b0\uff0c\u7f13\u5b58\u5171\u4eab\u590d\u6742\uff0c\u7ef4\u62a4\u4e0d\u65b9\u4fbf\uff1b\u7b80\u5355\u7684\u5171\u4eab\u53ef\u4ee5\uff0c\u4f46\u662f\u6d89\u53ca\u5230\u7f13\u5b58\u6062\u590d\uff0c\u5927\u6570\u636e\u7f13\u5b58\uff0c\u5219\u4e0d\u5408\u9002\u3002"),(0,a.yg)("td",{parentName:"tr",align:null},"Redis\u6709\u6210\u719f\u7684\u5206\u5e03\u5f0f\u89e3\u51b3\u65b9\u6848\u3002\u9002\u5408\u5927\u89c4\u6a21\u5206\u5e03\u5f0f\u96c6\u7fa4\u90e8\u7f72\u3002")),(0,a.yg)("tr",{parentName:"tbody"},(0,a.yg)("td",{parentName:"tr",align:null},"\u64cd\u4f5c\u590d\u6742\u5ea6"),(0,a.yg)("td",{parentName:"tr",align:null},"Ehcache\u63d0\u4f9b\u7684\u63a5\u53e3\u975e\u5e38\u7b80\u5355\u660e\u4e86\uff0c\u4eceEhcache\u7684\u642d\u5efa\u5230\u8fd0\u7528\u8fd0\u884c\u4ec5\u4ec5\u9700\u8981\u7684\u662f\u4f60\u5b9d\u8d35\u7684\u51e0\u5206\u949f\u3002\u5176\u5b9e\u5f88\u591a\u5f00\u53d1\u8005\u90fd\u4e0d\u77e5\u9053\u81ea\u5df1\u7528\u5728\u7528Ehcache\uff0cEhcache\u88ab\u5e7f\u6cdb\u7684\u8fd0\u7528\u4e8e\u5176\u4ed6\u7684\u5f00\u6e90\u9879\u76ee\u3002\u6bd4\u5982\uff1aHibernate"),(0,a.yg)("td",{parentName:"tr",align:null},"\u81f3\u5c11\u9700\u8981\u5b89\u88c5\u670d\u52a1\u7aef\u548c\u5ba2\u6237\u7aef\u624d\u80fd\u4f7f\u7528\u3002\u64cd\u4f5c\u7565\u6bd4Ehcache\u590d\u6742\u4e00\u4e9b\u3002")))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/a3633e48.c9991aa0.js b/assets/js/a3633e48.8993b397.js similarity index 98% rename from assets/js/a3633e48.c9991aa0.js rename to assets/js/a3633e48.8993b397.js index b2b023f17..905fffbf7 100644 --- a/assets/js/a3633e48.c9991aa0.js +++ b/assets/js/a3633e48.8993b397.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9878],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>y});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),u=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=u(e.components);return n.createElement(l.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),s=u(r),f=o,y=s["".concat(l,".").concat(f)]||s[f]||d[f]||a;return r?n.createElement(y,i(i({ref:t},p),{},{components:r})):n.createElement(y,i({ref:t},p))}));function y(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=f;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[s]="string"==typeof e?e:o,i[1]=c;for(var u=2;u{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>u});var n=r(8168),o=(r(6540),r(5680));const a={sidebar_position:1},i="\u6982\u8ff0",c={unversionedId:"study/fe/index",id:"study/fe/index",title:"\u6982\u8ff0",description:"\u6240\u6709\u7528\u6237\u770b\u5230\u7684\u754c\u9762\uff0c\u7edf\u4e00\u6210\u4e3a\u524d\u7aef\uff0c\u5305\u62ec\u4f46\u4e0d\u9650\u4e8e\uff1a",source:"@site/docs/study/fe/index.md",sourceDirName:"study/fe",slug:"/study/fe/",permalink:"/docs/study/fe/",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"studySidebar",previous:{title:"\u5b66\u65e0\u6b62\u5883",permalink:"/docs/study/"},next:{title:"\u524d\u7aef\u6a21\u5757\u5316",permalink:"/docs/study/fe/\u524d\u7aef\u6a21\u5757\u5316"}},l={},u=[],p={toc:u},s="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"\u6982\u8ff0"},"\u6982\u8ff0"),(0,o.yg)("p",null,"\u6240\u6709\u7528\u6237\u770b\u5230\u7684\u754c\u9762\uff0c\u7edf\u4e00\u6210\u4e3a\u524d\u7aef\uff0c\u5305\u62ec\u4f46\u4e0d\u9650\u4e8e\uff1a"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"PC WEB"),(0,o.yg)("li",{parentName:"ul"},"\u79fb\u52a8\u7aef WEB"),(0,o.yg)("li",{parentName:"ul"},"\u5c0f\u7a0b\u5e8f"),(0,o.yg)("li",{parentName:"ul"},"\u684c\u9762\u7a0b\u5e8f")))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9878],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>y});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),u=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=u(e.components);return n.createElement(l.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),s=u(r),f=o,y=s["".concat(l,".").concat(f)]||s[f]||d[f]||a;return r?n.createElement(y,i(i({ref:t},p),{},{components:r})):n.createElement(y,i({ref:t},p))}));function y(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=f;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[s]="string"==typeof e?e:o,i[1]=c;for(var u=2;u{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>u});var n=r(8168),o=(r(6540),r(5680));const a={sidebar_position:1},i="\u6982\u8ff0",c={unversionedId:"study/fe/index",id:"study/fe/index",title:"\u6982\u8ff0",description:"\u6240\u6709\u7528\u6237\u770b\u5230\u7684\u754c\u9762\uff0c\u7edf\u4e00\u6210\u4e3a\u524d\u7aef\uff0c\u5305\u62ec\u4f46\u4e0d\u9650\u4e8e\uff1a",source:"@site/docs/study/fe/index.md",sourceDirName:"study/fe",slug:"/study/fe/",permalink:"/docs/study/fe/",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"studySidebar",previous:{title:"\u5b66\u65e0\u6b62\u5883",permalink:"/docs/study/"},next:{title:"\u524d\u7aef\u6a21\u5757\u5316",permalink:"/docs/study/fe/\u524d\u7aef\u6a21\u5757\u5316"}},l={},u=[],p={toc:u},s="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"\u6982\u8ff0"},"\u6982\u8ff0"),(0,o.yg)("p",null,"\u6240\u6709\u7528\u6237\u770b\u5230\u7684\u754c\u9762\uff0c\u7edf\u4e00\u6210\u4e3a\u524d\u7aef\uff0c\u5305\u62ec\u4f46\u4e0d\u9650\u4e8e\uff1a"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"PC WEB"),(0,o.yg)("li",{parentName:"ul"},"\u79fb\u52a8\u7aef WEB"),(0,o.yg)("li",{parentName:"ul"},"\u5c0f\u7a0b\u5e8f"),(0,o.yg)("li",{parentName:"ul"},"\u684c\u9762\u7a0b\u5e8f")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/a47a01cb.0acd47ef.js b/assets/js/a47a01cb.1ac3c226.js similarity index 98% rename from assets/js/a47a01cb.0acd47ef.js rename to assets/js/a47a01cb.1ac3c226.js index cd7e2d624..079b6ca01 100644 --- a/assets/js/a47a01cb.0acd47ef.js +++ b/assets/js/a47a01cb.1ac3c226.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2190],{5680:(e,t,r)=>{r.d(t,{xA:()=>d,yg:()=>y});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var c=n.createContext({}),u=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},d=function(e){var t=u(e.components);return n.createElement(c.Provider,{value:t},e.children)},p="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,c=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),p=u(r),f=o,y=p["".concat(c,".").concat(f)]||p[f]||s[f]||a;return r?n.createElement(y,i(i({ref:t},d),{},{components:r})):n.createElement(y,i({ref:t},d))}));function y(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=f;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[p]="string"==typeof e?e:o,i[1]=l;for(var u=2;u{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>s,frontMatter:()=>a,metadata:()=>l,toc:()=>u});var n=r(8168),o=(r(6540),r(5680));const a={},i=void 0,l={unversionedId:"study/fe/Flutter\u5f00\u53d1\u95ee\u9898\u8bb0\u5f55",id:"study/fe/Flutter\u5f00\u53d1\u95ee\u9898\u8bb0\u5f55",title:"Flutter\u5f00\u53d1\u95ee\u9898\u8bb0\u5f55",description:"\u8bb0\u5f55 Flutter \u5f00\u53d1\u7684\u4e00\u4e9b\u95ee\u9898\u3001\u7ecf\u9a8c",source:"@site/docs/study/fe/Flutter\u5f00\u53d1\u95ee\u9898\u8bb0\u5f55.md",sourceDirName:"study/fe",slug:"/study/fe/Flutter\u5f00\u53d1\u95ee\u9898\u8bb0\u5f55",permalink:"/docs/study/fe/Flutter\u5f00\u53d1\u95ee\u9898\u8bb0\u5f55",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"ARMS\u524d\u7aef\u76d1\u63a7",permalink:"/docs/study/fe/ARMS\u524d\u7aef\u76d1\u63a7"},next:{title:"TypeScript\u8bed\u6cd5\u56fe",permalink:"/docs/study/fe/TypeScript\u8bed\u6cd5\u56fe"}},c={},u=[{value:"Mac \u5982\u4f55\u5b89\u88c5\u8001\u7248\u672c\u7684 Android \u6a21\u62df\u5668",id:"mac-\u5982\u4f55\u5b89\u88c5\u8001\u7248\u672c\u7684-android-\u6a21\u62df\u5668",level:3},{value:"flutter windows",id:"flutter-windows",level:3},{value:"ffi\u63d2\u4ef6",id:"ffi\u63d2\u4ef6",level:3}],d={toc:u},p="wrapper";function s(e){let{components:t,...r}=e;return(0,o.yg)(p,(0,n.A)({},d,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("p",null,"\u8bb0\u5f55 Flutter \u5f00\u53d1\u7684\u4e00\u4e9b\u95ee\u9898\u3001\u7ecf\u9a8c"),(0,o.yg)("h3",{id:"mac-\u5982\u4f55\u5b89\u88c5\u8001\u7248\u672c\u7684-android-\u6a21\u62df\u5668"},"Mac \u5982\u4f55\u5b89\u88c5\u8001\u7248\u672c\u7684 Android \u6a21\u62df\u5668"),(0,o.yg)("p",null,"\u56e0\u4e3a\u7279\u6b8a\u539f\u56e0\uff0c\u6211\u7684\u8001 Mac \u7535\u8111\u65e0\u6cd5\u5347\u7ea7\uff0c\u6700\u65b0\u7684\u5b89\u5353\u6a21\u62df\u5668\u542f\u52a8\u4e0d\u8d77\u6765\uff0c\u53ef\u4ee5\u5230\u8fd9\u91cc\u4e0b\u8f7d\u8001\u7684\u6a21\u62df\u5668\uff0c\u5e76\u624b\u52a8\u5b89\u88c5",(0,o.yg)("a",{parentName:"p",href:"https://developer.android.com/studio/emulator_archive?hl=zh-cn"},"\u6a21\u62df\u5668\u4e0b\u8f7d\u5f52\u6863")),(0,o.yg)("h3",{id:"flutter-windows"},"flutter windows"),(0,o.yg)("p",null,(0,o.yg)("a",{parentName:"p",href:"https://xie.infoq.cn/article/a0b086b20aabd229e57a9811f"},"\u57fa\u4e8e Flutter \u5b9e\u73b0 Windows \u5e73\u53f0\u79bb\u7ebf\u5927\u6a21\u578b\u5bf9\u8bdd\u5e94\u7528\u5b9e\u6218")),(0,o.yg)("h3",{id:"ffi\u63d2\u4ef6"},"ffi\u63d2\u4ef6"),(0,o.yg)("p",null,"flutter create -t plugin_ffi --platforms macos,windows,android,ios p2psdk"),(0,o.yg)("p",null,"android\u4f7f\u7528gradle\u6784\u5efa\nios\u548cmacos\u4f7f\u7528xcode\u901a\u8fc7CocoaPods\u6784\u5efa\nlinux\u548cwindows\u901a\u8fc7cmake\u6784\u5efa"),(0,o.yg)("p",null,"\u7ed1\u5b9a\u672c\u5730\u539f\u751f\u4ee3\u7801"))}s.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2190],{5680:(e,t,r)=>{r.d(t,{xA:()=>d,yg:()=>y});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var c=n.createContext({}),u=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},d=function(e){var t=u(e.components);return n.createElement(c.Provider,{value:t},e.children)},p="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,c=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),p=u(r),f=o,y=p["".concat(c,".").concat(f)]||p[f]||s[f]||a;return r?n.createElement(y,i(i({ref:t},d),{},{components:r})):n.createElement(y,i({ref:t},d))}));function y(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=f;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[p]="string"==typeof e?e:o,i[1]=l;for(var u=2;u{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>s,frontMatter:()=>a,metadata:()=>l,toc:()=>u});var n=r(8168),o=(r(6540),r(5680));const a={},i=void 0,l={unversionedId:"study/fe/Flutter\u5f00\u53d1\u95ee\u9898\u8bb0\u5f55",id:"study/fe/Flutter\u5f00\u53d1\u95ee\u9898\u8bb0\u5f55",title:"Flutter\u5f00\u53d1\u95ee\u9898\u8bb0\u5f55",description:"\u8bb0\u5f55 Flutter \u5f00\u53d1\u7684\u4e00\u4e9b\u95ee\u9898\u3001\u7ecf\u9a8c",source:"@site/docs/study/fe/Flutter\u5f00\u53d1\u95ee\u9898\u8bb0\u5f55.md",sourceDirName:"study/fe",slug:"/study/fe/Flutter\u5f00\u53d1\u95ee\u9898\u8bb0\u5f55",permalink:"/docs/study/fe/Flutter\u5f00\u53d1\u95ee\u9898\u8bb0\u5f55",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"ARMS\u524d\u7aef\u76d1\u63a7",permalink:"/docs/study/fe/ARMS\u524d\u7aef\u76d1\u63a7"},next:{title:"TypeScript\u8bed\u6cd5\u56fe",permalink:"/docs/study/fe/TypeScript\u8bed\u6cd5\u56fe"}},c={},u=[{value:"Mac \u5982\u4f55\u5b89\u88c5\u8001\u7248\u672c\u7684 Android \u6a21\u62df\u5668",id:"mac-\u5982\u4f55\u5b89\u88c5\u8001\u7248\u672c\u7684-android-\u6a21\u62df\u5668",level:3},{value:"flutter windows",id:"flutter-windows",level:3},{value:"ffi\u63d2\u4ef6",id:"ffi\u63d2\u4ef6",level:3}],d={toc:u},p="wrapper";function s(e){let{components:t,...r}=e;return(0,o.yg)(p,(0,n.A)({},d,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("p",null,"\u8bb0\u5f55 Flutter \u5f00\u53d1\u7684\u4e00\u4e9b\u95ee\u9898\u3001\u7ecf\u9a8c"),(0,o.yg)("h3",{id:"mac-\u5982\u4f55\u5b89\u88c5\u8001\u7248\u672c\u7684-android-\u6a21\u62df\u5668"},"Mac \u5982\u4f55\u5b89\u88c5\u8001\u7248\u672c\u7684 Android \u6a21\u62df\u5668"),(0,o.yg)("p",null,"\u56e0\u4e3a\u7279\u6b8a\u539f\u56e0\uff0c\u6211\u7684\u8001 Mac \u7535\u8111\u65e0\u6cd5\u5347\u7ea7\uff0c\u6700\u65b0\u7684\u5b89\u5353\u6a21\u62df\u5668\u542f\u52a8\u4e0d\u8d77\u6765\uff0c\u53ef\u4ee5\u5230\u8fd9\u91cc\u4e0b\u8f7d\u8001\u7684\u6a21\u62df\u5668\uff0c\u5e76\u624b\u52a8\u5b89\u88c5",(0,o.yg)("a",{parentName:"p",href:"https://developer.android.com/studio/emulator_archive?hl=zh-cn"},"\u6a21\u62df\u5668\u4e0b\u8f7d\u5f52\u6863")),(0,o.yg)("h3",{id:"flutter-windows"},"flutter windows"),(0,o.yg)("p",null,(0,o.yg)("a",{parentName:"p",href:"https://xie.infoq.cn/article/a0b086b20aabd229e57a9811f"},"\u57fa\u4e8e Flutter \u5b9e\u73b0 Windows \u5e73\u53f0\u79bb\u7ebf\u5927\u6a21\u578b\u5bf9\u8bdd\u5e94\u7528\u5b9e\u6218")),(0,o.yg)("h3",{id:"ffi\u63d2\u4ef6"},"ffi\u63d2\u4ef6"),(0,o.yg)("p",null,"flutter create -t plugin_ffi --platforms macos,windows,android,ios p2psdk"),(0,o.yg)("p",null,"android\u4f7f\u7528gradle\u6784\u5efa\nios\u548cmacos\u4f7f\u7528xcode\u901a\u8fc7CocoaPods\u6784\u5efa\nlinux\u548cwindows\u901a\u8fc7cmake\u6784\u5efa"),(0,o.yg)("p",null,"\u7ed1\u5b9a\u672c\u5730\u539f\u751f\u4ee3\u7801"))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/a4c44b85.f3b634f2.js b/assets/js/a4c44b85.95a4427a.js similarity index 99% rename from assets/js/a4c44b85.f3b634f2.js rename to assets/js/a4c44b85.95a4427a.js index 1770d4db0..9813a3026 100644 --- a/assets/js/a4c44b85.f3b634f2.js +++ b/assets/js/a4c44b85.95a4427a.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5878],{5680:(e,t,n)=>{n.d(t,{xA:()=>y,yg:()=>g});var r=n(6540);function l(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e){for(var t=1;t=0||(l[n]=e[n]);return l}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(l[n]=e[n])}return l}var p=r.createContext({}),c=function(e){var t=r.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},y=function(e){var t=c(e.components);return r.createElement(p.Provider,{value:t},e.children)},u="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,l=e.mdxType,o=e.originalType,p=e.parentName,y=i(e,["components","mdxType","originalType","parentName"]),u=c(n),d=l,g=u["".concat(p,".").concat(d)]||u[d]||s[d]||o;return n?r.createElement(g,a(a({ref:t},y),{},{components:n})):r.createElement(g,a({ref:t},y))}));function g(e,t){var n=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var o=n.length,a=new Array(o);a[0]=d;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[u]="string"==typeof e?e:l,a[1]=i;for(var c=2;c{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>a,default:()=>s,frontMatter:()=>o,metadata:()=>i,toc:()=>c});var r=n(8168),l=(n(6540),n(5680));const o={},a=void 0,i={unversionedId:"study/think/\u67b6\u6784/\u9ad8\u6027\u80fd\u67b6\u6784\u6a21\u5f0f",id:"study/think/\u67b6\u6784/\u9ad8\u6027\u80fd\u67b6\u6784\u6a21\u5f0f",title:"\u9ad8\u6027\u80fd\u67b6\u6784\u6a21\u5f0f",description:"\u867d\u7136\u8fd1\u5341\u5e74\u6765\u5404\u79cd\u5b58\u50a8\u6280\u672f\u98de\u901f\u53d1\u5c55\uff0c\u4f46\u5173\u7cfb\u6570\u636e\u5e93\u7531\u4e8e\u5176 ACID \u7684\u7279\u6027\u548c\u529f\u80fd\u5f3a\u5927\u7684 SQL \u67e5\u8be2\uff0c\u76ee\u524d\u8fd8\u662f\u5404\u79cd\u4e1a\u52a1\u7cfb\u7edf\u4e2d\u5173\u952e\u548c\u6838\u5fc3\u7684\u5b58\u50a8\u7cfb\u7edf\uff0c\u5f88\u591a\u573a\u666f\u4e0b\u9ad8\u6027\u80fd\u7684\u8bbe\u8ba1\u6700\u6838\u5fc3\u7684\u90e8\u5206\u5c31\u662f\u5173\u7cfb\u6570\u636e\u5e93\u7684\u8bbe\u8ba1\u3002",source:"@site/docs/study/think/\u67b6\u6784/\u9ad8\u6027\u80fd\u67b6\u6784\u6a21\u5f0f.md",sourceDirName:"study/think/\u67b6\u6784",slug:"/study/think/\u67b6\u6784/\u9ad8\u6027\u80fd\u67b6\u6784\u6a21\u5f0f",permalink:"/docs/study/think/\u67b6\u6784/\u9ad8\u6027\u80fd\u67b6\u6784\u6a21\u5f0f",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u8d1f\u8f7d\u5747\u8861",permalink:"/docs/study/think/\u67b6\u6784/\u8d1f\u8f7d\u5747\u8861"},next:{title:"Actor Model",permalink:"/docs/study/think/\u6982\u5ff5\u6a21\u578b/Actor Model"}},p={},c=[{value:"\u8bfb\u5199\u5206\u79bb\u539f\u7406",id:"\u8bfb\u5199\u5206\u79bb\u539f\u7406",level:3},{value:"\u5206\u5e93\u5206\u8868",id:"\u5206\u5e93\u5206\u8868",level:3}],y={toc:c},u="wrapper";function s(e){let{components:t,...o}=e;return(0,l.yg)(u,(0,r.A)({},y,o,{components:t,mdxType:"MDXLayout"}),(0,l.yg)("p",null,"\u867d\u7136\u8fd1\u5341\u5e74\u6765\u5404\u79cd\u5b58\u50a8\u6280\u672f\u98de\u901f\u53d1\u5c55\uff0c\u4f46\u5173\u7cfb\u6570\u636e\u5e93\u7531\u4e8e\u5176 ACID \u7684\u7279\u6027\u548c\u529f\u80fd\u5f3a\u5927\u7684 SQL \u67e5\u8be2\uff0c\u76ee\u524d\u8fd8\u662f\u5404\u79cd\u4e1a\u52a1\u7cfb\u7edf\u4e2d\u5173\u952e\u548c\u6838\u5fc3\u7684\u5b58\u50a8\u7cfb\u7edf\uff0c\u5f88\u591a\u573a\u666f\u4e0b\u9ad8\u6027\u80fd\u7684\u8bbe\u8ba1\u6700\u6838\u5fc3\u7684\u90e8\u5206\u5c31\u662f\u5173\u7cfb\u6570\u636e\u5e93\u7684\u8bbe\u8ba1\u3002"),(0,l.yg)("p",null,"\u4e0d\u7ba1\u662f\u4e3a\u4e86\u6ee1\u8db3\u4e1a\u52a1\u53d1\u5c55\u7684\u9700\u8981\uff0c\u8fd8\u662f\u4e3a\u4e86\u63d0\u5347\u81ea\u5df1\u7684\u7ade\u4e89\u529b\uff0c\u5173\u7cfb\u6570\u636e\u5e93\u5382\u5546\uff08Oracle\u3001DB2\u3001MySQL \u7b49\uff09\u5728\u4f18\u5316\u548c\u63d0\u5347\u5355\u4e2a\u6570\u636e\u5e93\u670d\u52a1\u5668\u7684\u6027\u80fd\u65b9\u9762\u4e5f\u505a\u4e86\u975e\u5e38\u591a\u7684\u6280\u672f\u4f18\u5316\u548c\u6539\u8fdb\u3002\u4f46\u4e1a\u52a1\u53d1\u5c55\u901f\u5ea6\u548c\u6570\u636e\u589e\u957f\u901f\u5ea6\uff0c\u8fdc\u8fdc\u8d85\u51fa\u6570\u636e\u5e93\u5382\u5546\u7684\u4f18\u5316\u901f\u5ea6\uff0c\u5c24\u5176\u662f\u4e92\u8054\u7f51\u4e1a\u52a1\u5174\u8d77\u4e4b\u540e\uff0c\u6d77\u91cf\u7528\u6237\u52a0\u4e0a\u6d77\u91cf\u6570\u636e\u7684\u7279\u70b9\uff0c\u5355\u4e2a\u6570\u636e\u5e93\u670d\u52a1\u5668\u5df2\u7ecf\u96be\u4ee5\u6ee1\u8db3\u4e1a\u52a1\u9700\u8981\uff0c\u5fc5\u987b\u8003\u8651\u6570\u636e\u5e93\u96c6\u7fa4\u7684\u65b9\u5f0f\u6765\u63d0\u5347\u6027\u80fd\u3002"),(0,l.yg)("p",null,"\u9ad8\u6027\u80fd\u6570\u636e\u5e93\u96c6\u7fa4\u7684\u7b2c\u4e00\u79cd\u65b9\u5f0f\u662f\u201c\u8bfb\u5199\u5206\u79bb\u201d\uff0c\u5176\u672c\u8d28\u662f\u5c06\u8bbf\u95ee\u538b\u529b\u5206\u6563\u5230\u96c6\u7fa4\u4e2d\u7684\u591a\u4e2a\u8282\u70b9\uff0c\u4f46\u662f\u6ca1\u6709\u5206\u6563\u5b58\u50a8\u538b\u529b\uff1b\u7b2c\u4e8c\u79cd\u65b9\u5f0f\u662f\u201c\u5206\u5e93\u5206\u8868\u201d\uff0c\u65e2\u53ef\u4ee5\u5206\u6563\u8bbf\u95ee\u538b\u529b\uff0c\u53c8\u53ef\u4ee5\u5206\u6563\u5b58\u50a8\u538b\u529b\u3002"),(0,l.yg)("h3",{id:"\u8bfb\u5199\u5206\u79bb\u539f\u7406"},"\u8bfb\u5199\u5206\u79bb\u539f\u7406"),(0,l.yg)("p",null,"\u8bfb\u5199\u5206\u79bb\u7684\u57fa\u672c\u539f\u7406\u662f\u5c06\u6570\u636e\u5e93\u8bfb\u5199\u64cd\u4f5c\u5206\u6563\u5230\u4e0d\u540c\u7684\u8282\u70b9\u4e0a\uff0c\u4e0b\u9762\u662f\u5176\u57fa\u672c\u67b6\u6784\u56fe\u3002"),(0,l.yg)("p",null,(0,l.yg)("img",{alt:"image.png",src:n(6215).A,width:"914",height:"647"})),(0,l.yg)("p",null,"\u8bfb\u5199\u5206\u79bb\u7684\u5b9e\u73b0\u903b\u8f91\u5e76\u4e0d\u590d\u6742\uff0c\u4f46\u6709\u4e24\u4e2a\u7ec6\u8282\u70b9\u5c06\u5f15\u5165\u8bbe\u8ba1\u590d\u6742\u5ea6\uff1a\u4e3b\u4ece\u590d\u5236\u5ef6\u8fdf\u548c\u5206\u914d\u673a\u5236\u3002"),(0,l.yg)("p",null,"\u89e3\u51b3\u4e3b\u4ece\u590d\u5236\u5ef6\u8fdf\u6709\u51e0\u79cd\u5e38\u89c1\u7684\u65b9\u6cd5\uff1a"),(0,l.yg)("ol",null,(0,l.yg)("li",{parentName:"ol"},"\u5199\u64cd\u4f5c\u540e\u7684\u8bfb\u64cd\u4f5c\u6307\u5b9a\u53d1\u7ed9\u6570\u636e\u5e93\u4e3b\u670d\u52a1\u5668"),(0,l.yg)("li",{parentName:"ol"},"\u8bfb\u4ece\u673a\u5931\u8d25\u540e\u518d\u8bfb\u4e00\u6b21\u4e3b\u673a"),(0,l.yg)("li",{parentName:"ol"},"\u5173\u952e\u4e1a\u52a1\u8bfb\u5199\u64cd\u4f5c\u5168\u90e8\u6307\u5411\u4e3b\u673a\uff0c\u975e\u5173\u952e\u4e1a\u52a1\u91c7\u7528\u8bfb\u5199\u5206\u79bb")),(0,l.yg)("p",null,"\u5c06\u8bfb\u5199\u64cd\u4f5c\u533a\u5206\u5f00\u6765\uff0c\u7136\u540e\u8bbf\u95ee\u4e0d\u540c\u7684\u6570\u636e\u5e93\u670d\u52a1\u5668\uff0c\u4e00\u822c\u6709\u4e24\u79cd\u65b9\u5f0f\uff1a\u7a0b\u5e8f\u4ee3\u7801\u5c01\u88c5\u548c\u4e2d\u95f4\u4ef6\u5c01\u88c5\u3002"),(0,l.yg)("p",null,"\u7a0b\u5e8f\u4ee3\u7801\u5c01\u88c5\u7684\u65b9\u5f0f\uff0c\u5728\u76ee\u524d\u5f00\u6e90\u7684\u5b9e\u73b0\u65b9\u6848\u4e2d\uff0c\u6dd8\u5b9d\u7684 TDDL\uff08Taobao Distributed Data Layer\uff0c\u5916\u53f7: \u5934\u90fd\u5927\u4e86\uff09\u662f\u6bd4\u8f83\u6709\u540d\u7684\u3002\u5b83\u662f\u4e00\u4e2a\u901a\u7528\u6570\u636e\u8bbf\u95ee\u5c42\uff0c\u6240\u6709\u529f\u80fd\u5c01\u88c5\u5728 jar \u5305\u4e2d\u63d0\u4f9b\u7ed9\u4e1a\u52a1\u4ee3\u7801\u8c03\u7528\u3002"),(0,l.yg)("p",null,"\u4e2d\u95f4\u4ef6\u5c01\u88c5\u6307\u7684\u662f\u72ec\u7acb\u4e00\u5957\u7cfb\u7edf\u51fa\u6765\uff0c\u5b9e\u73b0\u8bfb\u5199\u64cd\u4f5c\u5206\u79bb\u548c\u6570\u636e\u5e93\u670d\u52a1\u5668\u8fde\u63a5\u7684\u7ba1\u7406\u3002\u4e2d\u95f4\u4ef6\u5bf9\u4e1a\u52a1\u670d\u52a1\u5668\u63d0\u4f9b SQL \u517c\u5bb9\u7684\u534f\u8bae\uff0c\u4e1a\u52a1\u670d\u52a1\u5668\u65e0\u987b\u81ea\u5df1\u8fdb\u884c\u8bfb\u5199\u5206\u79bb\u3002\u5bf9\u4e8e\u4e1a\u52a1\u670d\u52a1\u5668\u6765\u8bf4\uff0c\u8bbf\u95ee\u4e2d\u95f4\u4ef6\u548c\u8bbf\u95ee\u6570\u636e\u5e93\u6ca1\u6709\u533a\u522b\uff0c\u4e8b\u5b9e\u4e0a\u5728\u4e1a\u52a1\u670d\u52a1\u5668\u770b\u6765\uff0c\u4e2d\u95f4\u4ef6\u5c31\u662f\u4e00\u4e2a\u6570\u636e\u5e93\u670d\u52a1\u5668\u3002"),(0,l.yg)("p",null,"\u76ee\u524d\u7684\u5f00\u6e90\u6570\u636e\u5e93\u4e2d\u95f4\u4ef6\u65b9\u6848\u4e2d\uff0cMySQL \u5b98\u65b9\u5148\u662f\u63d0\u4f9b\u4e86 MySQL Proxy\uff0c\u4f46 MySQL Proxy \u4e00\u76f4\u6ca1\u6709\u6b63\u5f0f GA\uff0c\u73b0\u5728 MySQL \u5b98\u65b9\u63a8\u8350 MySQL Router\u3002\u5947\u864e 360 \u516c\u53f8\u4e5f\u5f00\u6e90\u4e86\u81ea\u5df1\u7684\u6570\u636e\u5e93\u4e2d\u95f4\u4ef6 Atlas\uff0cAtlas \u662f\u57fa\u4e8e MySQL Proxy \u5b9e\u73b0\u7684\u3002"),(0,l.yg)("h3",{id:"\u5206\u5e93\u5206\u8868"},"\u5206\u5e93\u5206\u8868"),(0,l.yg)("p",null,"\u4e1a\u52a1\u5206\u5e93\u6307\u7684\u662f\u6309\u7167\u4e1a\u52a1\u6a21\u5757\u5c06\u6570\u636e\u5206\u6563\u5230\u4e0d\u540c\u7684\u6570\u636e\u5e93\u670d\u52a1\u5668\u3002\u867d\u7136\u4e1a\u52a1\u5206\u5e93\u80fd\u591f\u5206\u6563\u5b58\u50a8\u548c\u8bbf\u95ee\u538b\u529b\uff0c\u4f46\u540c\u65f6\u4e5f\u5e26\u6765\u4e86\u65b0\u7684\u95ee\u9898\uff0c\u63a5\u4e0b\u6765\u6211\u8fdb\u884c\u8be6\u7ec6\u5206\u6790\u3002"),(0,l.yg)("ol",null,(0,l.yg)("li",{parentName:"ol"},"join \u64cd\u4f5c\u95ee\u9898\uff0c\u4e1a\u52a1\u5206\u5e93\u540e\uff0c\u539f\u672c\u5728\u540c\u4e00\u4e2a\u6570\u636e\u5e93\u4e2d\u7684\u8868\u5206\u6563\u5230\u4e0d\u540c\u6570\u636e\u5e93\u4e2d\uff0c\u5bfc\u81f4\u65e0\u6cd5\u4f7f\u7528 SQL \u7684 join \u67e5\u8be2\u3002"),(0,l.yg)("li",{parentName:"ol"},"\u4e8b\u52a1\u95ee\u9898\uff0c\u539f\u672c\u5728\u540c\u4e00\u4e2a\u6570\u636e\u5e93\u4e2d\u4e0d\u540c\u7684\u8868\u53ef\u4ee5\u5728\u540c\u4e00\u4e2a\u4e8b\u52a1\u4e2d\u4fee\u6539\uff0c\u4e1a\u52a1\u5206\u5e93\u540e\uff0c\u8868\u5206\u6563\u5230\u4e0d\u540c\u7684\u6570\u636e\u5e93\u4e2d\uff0c\u65e0\u6cd5\u901a\u8fc7\u4e8b\u52a1\u7edf\u4e00\u4fee\u6539\u3002\u867d\u7136\u6570\u636e\u5e93\u5382\u5546\u63d0\u4f9b\u4e86\u4e00\u4e9b\u5206\u5e03\u5f0f\u4e8b\u52a1\u7684\u89e3\u51b3\u65b9\u6848\uff08\u4f8b\u5982\uff0cMySQL \u7684 XA\uff09\uff0c\u4f46\u6027\u80fd\u5b9e\u5728\u592a\u4f4e\uff0c\u4e0e\u9ad8\u6027\u80fd\u5b58\u50a8\u7684\u76ee\u6807\u662f\u76f8\u8fdd\u80cc\u7684\u3002"),(0,l.yg)("li",{parentName:"ol"},"\u6210\u672c\u95ee\u9898")),(0,l.yg)("p",null,"\u5c06\u4e0d\u540c\u4e1a\u52a1\u6570\u636e\u5206\u6563\u5b58\u50a8\u5230\u4e0d\u540c\u7684\u6570\u636e\u5e93\u670d\u52a1\u5668\uff0c\u80fd\u591f\u652f\u6491\u767e\u4e07\u751a\u81f3\u5343\u4e07\u7528\u6237\u89c4\u6a21\u7684\u4e1a\u52a1\uff0c\u4f46\u5982\u679c\u4e1a\u52a1\u7ee7\u7eed\u53d1\u5c55\uff0c\u540c\u4e00\u4e1a\u52a1\u7684\u5355\u8868\u6570\u636e\u4e5f\u4f1a\u8fbe\u5230\u5355\u53f0\u6570\u636e\u5e93\u670d\u52a1\u5668\u7684\u5904\u7406\u74f6\u9888\u3002\u4f8b\u5982\uff0c\u6dd8\u5b9d\u7684\u51e0\u4ebf\u7528\u6237\u6570\u636e\uff0c\u5982\u679c\u5168\u90e8\u5b58\u653e\u5728\u4e00\u53f0\u6570\u636e\u5e93\u670d\u52a1\u5668\u7684\u4e00\u5f20\u8868\u4e2d\uff0c\u80af\u5b9a\u662f\u65e0\u6cd5\u6ee1\u8db3\u6027\u80fd\u8981\u6c42\u7684\uff0c\u6b64\u65f6\u5c31\u9700\u8981\u5bf9\u5355\u8868\u6570\u636e\u8fdb\u884c\u62c6\u5206\u3002"),(0,l.yg)("p",null,"\u5355\u8868\u6570\u636e\u62c6\u5206\u6709\u4e24\u79cd\u65b9\u5f0f\uff1a\u5782\u76f4\u5206\u8868\u548c\u6c34\u5e73\u5206\u8868\u3002\u793a\u610f\u56fe\u5982\u4e0b\uff1a\n",(0,l.yg)("img",{alt:"image.png",src:n(430).A,width:"1534",height:"804"})))}s.isMDXComponent=!0},6215:(e,t,n)=>{n.d(t,{A:()=>r});const r=n.p+"assets/images/2-4e7ea6ea9e8204899e24d4788b873bce.png"},430:(e,t,n)=>{n.d(t,{A:()=>r});const r=n.p+"assets/images/3-20a57e605dc69d5091de2bbfb0461e46.png"}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5878],{5680:(e,t,n)=>{n.d(t,{xA:()=>y,yg:()=>g});var r=n(6540);function l(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e){for(var t=1;t=0||(l[n]=e[n]);return l}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(l[n]=e[n])}return l}var p=r.createContext({}),c=function(e){var t=r.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},y=function(e){var t=c(e.components);return r.createElement(p.Provider,{value:t},e.children)},u="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,l=e.mdxType,o=e.originalType,p=e.parentName,y=i(e,["components","mdxType","originalType","parentName"]),u=c(n),d=l,g=u["".concat(p,".").concat(d)]||u[d]||s[d]||o;return n?r.createElement(g,a(a({ref:t},y),{},{components:n})):r.createElement(g,a({ref:t},y))}));function g(e,t){var n=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var o=n.length,a=new Array(o);a[0]=d;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[u]="string"==typeof e?e:l,a[1]=i;for(var c=2;c{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>a,default:()=>s,frontMatter:()=>o,metadata:()=>i,toc:()=>c});var r=n(8168),l=(n(6540),n(5680));const o={},a=void 0,i={unversionedId:"study/think/\u67b6\u6784/\u9ad8\u6027\u80fd\u67b6\u6784\u6a21\u5f0f",id:"study/think/\u67b6\u6784/\u9ad8\u6027\u80fd\u67b6\u6784\u6a21\u5f0f",title:"\u9ad8\u6027\u80fd\u67b6\u6784\u6a21\u5f0f",description:"\u867d\u7136\u8fd1\u5341\u5e74\u6765\u5404\u79cd\u5b58\u50a8\u6280\u672f\u98de\u901f\u53d1\u5c55\uff0c\u4f46\u5173\u7cfb\u6570\u636e\u5e93\u7531\u4e8e\u5176 ACID \u7684\u7279\u6027\u548c\u529f\u80fd\u5f3a\u5927\u7684 SQL \u67e5\u8be2\uff0c\u76ee\u524d\u8fd8\u662f\u5404\u79cd\u4e1a\u52a1\u7cfb\u7edf\u4e2d\u5173\u952e\u548c\u6838\u5fc3\u7684\u5b58\u50a8\u7cfb\u7edf\uff0c\u5f88\u591a\u573a\u666f\u4e0b\u9ad8\u6027\u80fd\u7684\u8bbe\u8ba1\u6700\u6838\u5fc3\u7684\u90e8\u5206\u5c31\u662f\u5173\u7cfb\u6570\u636e\u5e93\u7684\u8bbe\u8ba1\u3002",source:"@site/docs/study/think/\u67b6\u6784/\u9ad8\u6027\u80fd\u67b6\u6784\u6a21\u5f0f.md",sourceDirName:"study/think/\u67b6\u6784",slug:"/study/think/\u67b6\u6784/\u9ad8\u6027\u80fd\u67b6\u6784\u6a21\u5f0f",permalink:"/docs/study/think/\u67b6\u6784/\u9ad8\u6027\u80fd\u67b6\u6784\u6a21\u5f0f",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u8d1f\u8f7d\u5747\u8861",permalink:"/docs/study/think/\u67b6\u6784/\u8d1f\u8f7d\u5747\u8861"},next:{title:"Actor Model",permalink:"/docs/study/think/\u6982\u5ff5\u6a21\u578b/Actor Model"}},p={},c=[{value:"\u8bfb\u5199\u5206\u79bb\u539f\u7406",id:"\u8bfb\u5199\u5206\u79bb\u539f\u7406",level:3},{value:"\u5206\u5e93\u5206\u8868",id:"\u5206\u5e93\u5206\u8868",level:3}],y={toc:c},u="wrapper";function s(e){let{components:t,...o}=e;return(0,l.yg)(u,(0,r.A)({},y,o,{components:t,mdxType:"MDXLayout"}),(0,l.yg)("p",null,"\u867d\u7136\u8fd1\u5341\u5e74\u6765\u5404\u79cd\u5b58\u50a8\u6280\u672f\u98de\u901f\u53d1\u5c55\uff0c\u4f46\u5173\u7cfb\u6570\u636e\u5e93\u7531\u4e8e\u5176 ACID \u7684\u7279\u6027\u548c\u529f\u80fd\u5f3a\u5927\u7684 SQL \u67e5\u8be2\uff0c\u76ee\u524d\u8fd8\u662f\u5404\u79cd\u4e1a\u52a1\u7cfb\u7edf\u4e2d\u5173\u952e\u548c\u6838\u5fc3\u7684\u5b58\u50a8\u7cfb\u7edf\uff0c\u5f88\u591a\u573a\u666f\u4e0b\u9ad8\u6027\u80fd\u7684\u8bbe\u8ba1\u6700\u6838\u5fc3\u7684\u90e8\u5206\u5c31\u662f\u5173\u7cfb\u6570\u636e\u5e93\u7684\u8bbe\u8ba1\u3002"),(0,l.yg)("p",null,"\u4e0d\u7ba1\u662f\u4e3a\u4e86\u6ee1\u8db3\u4e1a\u52a1\u53d1\u5c55\u7684\u9700\u8981\uff0c\u8fd8\u662f\u4e3a\u4e86\u63d0\u5347\u81ea\u5df1\u7684\u7ade\u4e89\u529b\uff0c\u5173\u7cfb\u6570\u636e\u5e93\u5382\u5546\uff08Oracle\u3001DB2\u3001MySQL \u7b49\uff09\u5728\u4f18\u5316\u548c\u63d0\u5347\u5355\u4e2a\u6570\u636e\u5e93\u670d\u52a1\u5668\u7684\u6027\u80fd\u65b9\u9762\u4e5f\u505a\u4e86\u975e\u5e38\u591a\u7684\u6280\u672f\u4f18\u5316\u548c\u6539\u8fdb\u3002\u4f46\u4e1a\u52a1\u53d1\u5c55\u901f\u5ea6\u548c\u6570\u636e\u589e\u957f\u901f\u5ea6\uff0c\u8fdc\u8fdc\u8d85\u51fa\u6570\u636e\u5e93\u5382\u5546\u7684\u4f18\u5316\u901f\u5ea6\uff0c\u5c24\u5176\u662f\u4e92\u8054\u7f51\u4e1a\u52a1\u5174\u8d77\u4e4b\u540e\uff0c\u6d77\u91cf\u7528\u6237\u52a0\u4e0a\u6d77\u91cf\u6570\u636e\u7684\u7279\u70b9\uff0c\u5355\u4e2a\u6570\u636e\u5e93\u670d\u52a1\u5668\u5df2\u7ecf\u96be\u4ee5\u6ee1\u8db3\u4e1a\u52a1\u9700\u8981\uff0c\u5fc5\u987b\u8003\u8651\u6570\u636e\u5e93\u96c6\u7fa4\u7684\u65b9\u5f0f\u6765\u63d0\u5347\u6027\u80fd\u3002"),(0,l.yg)("p",null,"\u9ad8\u6027\u80fd\u6570\u636e\u5e93\u96c6\u7fa4\u7684\u7b2c\u4e00\u79cd\u65b9\u5f0f\u662f\u201c\u8bfb\u5199\u5206\u79bb\u201d\uff0c\u5176\u672c\u8d28\u662f\u5c06\u8bbf\u95ee\u538b\u529b\u5206\u6563\u5230\u96c6\u7fa4\u4e2d\u7684\u591a\u4e2a\u8282\u70b9\uff0c\u4f46\u662f\u6ca1\u6709\u5206\u6563\u5b58\u50a8\u538b\u529b\uff1b\u7b2c\u4e8c\u79cd\u65b9\u5f0f\u662f\u201c\u5206\u5e93\u5206\u8868\u201d\uff0c\u65e2\u53ef\u4ee5\u5206\u6563\u8bbf\u95ee\u538b\u529b\uff0c\u53c8\u53ef\u4ee5\u5206\u6563\u5b58\u50a8\u538b\u529b\u3002"),(0,l.yg)("h3",{id:"\u8bfb\u5199\u5206\u79bb\u539f\u7406"},"\u8bfb\u5199\u5206\u79bb\u539f\u7406"),(0,l.yg)("p",null,"\u8bfb\u5199\u5206\u79bb\u7684\u57fa\u672c\u539f\u7406\u662f\u5c06\u6570\u636e\u5e93\u8bfb\u5199\u64cd\u4f5c\u5206\u6563\u5230\u4e0d\u540c\u7684\u8282\u70b9\u4e0a\uff0c\u4e0b\u9762\u662f\u5176\u57fa\u672c\u67b6\u6784\u56fe\u3002"),(0,l.yg)("p",null,(0,l.yg)("img",{alt:"image.png",src:n(6215).A,width:"914",height:"647"})),(0,l.yg)("p",null,"\u8bfb\u5199\u5206\u79bb\u7684\u5b9e\u73b0\u903b\u8f91\u5e76\u4e0d\u590d\u6742\uff0c\u4f46\u6709\u4e24\u4e2a\u7ec6\u8282\u70b9\u5c06\u5f15\u5165\u8bbe\u8ba1\u590d\u6742\u5ea6\uff1a\u4e3b\u4ece\u590d\u5236\u5ef6\u8fdf\u548c\u5206\u914d\u673a\u5236\u3002"),(0,l.yg)("p",null,"\u89e3\u51b3\u4e3b\u4ece\u590d\u5236\u5ef6\u8fdf\u6709\u51e0\u79cd\u5e38\u89c1\u7684\u65b9\u6cd5\uff1a"),(0,l.yg)("ol",null,(0,l.yg)("li",{parentName:"ol"},"\u5199\u64cd\u4f5c\u540e\u7684\u8bfb\u64cd\u4f5c\u6307\u5b9a\u53d1\u7ed9\u6570\u636e\u5e93\u4e3b\u670d\u52a1\u5668"),(0,l.yg)("li",{parentName:"ol"},"\u8bfb\u4ece\u673a\u5931\u8d25\u540e\u518d\u8bfb\u4e00\u6b21\u4e3b\u673a"),(0,l.yg)("li",{parentName:"ol"},"\u5173\u952e\u4e1a\u52a1\u8bfb\u5199\u64cd\u4f5c\u5168\u90e8\u6307\u5411\u4e3b\u673a\uff0c\u975e\u5173\u952e\u4e1a\u52a1\u91c7\u7528\u8bfb\u5199\u5206\u79bb")),(0,l.yg)("p",null,"\u5c06\u8bfb\u5199\u64cd\u4f5c\u533a\u5206\u5f00\u6765\uff0c\u7136\u540e\u8bbf\u95ee\u4e0d\u540c\u7684\u6570\u636e\u5e93\u670d\u52a1\u5668\uff0c\u4e00\u822c\u6709\u4e24\u79cd\u65b9\u5f0f\uff1a\u7a0b\u5e8f\u4ee3\u7801\u5c01\u88c5\u548c\u4e2d\u95f4\u4ef6\u5c01\u88c5\u3002"),(0,l.yg)("p",null,"\u7a0b\u5e8f\u4ee3\u7801\u5c01\u88c5\u7684\u65b9\u5f0f\uff0c\u5728\u76ee\u524d\u5f00\u6e90\u7684\u5b9e\u73b0\u65b9\u6848\u4e2d\uff0c\u6dd8\u5b9d\u7684 TDDL\uff08Taobao Distributed Data Layer\uff0c\u5916\u53f7: \u5934\u90fd\u5927\u4e86\uff09\u662f\u6bd4\u8f83\u6709\u540d\u7684\u3002\u5b83\u662f\u4e00\u4e2a\u901a\u7528\u6570\u636e\u8bbf\u95ee\u5c42\uff0c\u6240\u6709\u529f\u80fd\u5c01\u88c5\u5728 jar \u5305\u4e2d\u63d0\u4f9b\u7ed9\u4e1a\u52a1\u4ee3\u7801\u8c03\u7528\u3002"),(0,l.yg)("p",null,"\u4e2d\u95f4\u4ef6\u5c01\u88c5\u6307\u7684\u662f\u72ec\u7acb\u4e00\u5957\u7cfb\u7edf\u51fa\u6765\uff0c\u5b9e\u73b0\u8bfb\u5199\u64cd\u4f5c\u5206\u79bb\u548c\u6570\u636e\u5e93\u670d\u52a1\u5668\u8fde\u63a5\u7684\u7ba1\u7406\u3002\u4e2d\u95f4\u4ef6\u5bf9\u4e1a\u52a1\u670d\u52a1\u5668\u63d0\u4f9b SQL \u517c\u5bb9\u7684\u534f\u8bae\uff0c\u4e1a\u52a1\u670d\u52a1\u5668\u65e0\u987b\u81ea\u5df1\u8fdb\u884c\u8bfb\u5199\u5206\u79bb\u3002\u5bf9\u4e8e\u4e1a\u52a1\u670d\u52a1\u5668\u6765\u8bf4\uff0c\u8bbf\u95ee\u4e2d\u95f4\u4ef6\u548c\u8bbf\u95ee\u6570\u636e\u5e93\u6ca1\u6709\u533a\u522b\uff0c\u4e8b\u5b9e\u4e0a\u5728\u4e1a\u52a1\u670d\u52a1\u5668\u770b\u6765\uff0c\u4e2d\u95f4\u4ef6\u5c31\u662f\u4e00\u4e2a\u6570\u636e\u5e93\u670d\u52a1\u5668\u3002"),(0,l.yg)("p",null,"\u76ee\u524d\u7684\u5f00\u6e90\u6570\u636e\u5e93\u4e2d\u95f4\u4ef6\u65b9\u6848\u4e2d\uff0cMySQL \u5b98\u65b9\u5148\u662f\u63d0\u4f9b\u4e86 MySQL Proxy\uff0c\u4f46 MySQL Proxy \u4e00\u76f4\u6ca1\u6709\u6b63\u5f0f GA\uff0c\u73b0\u5728 MySQL \u5b98\u65b9\u63a8\u8350 MySQL Router\u3002\u5947\u864e 360 \u516c\u53f8\u4e5f\u5f00\u6e90\u4e86\u81ea\u5df1\u7684\u6570\u636e\u5e93\u4e2d\u95f4\u4ef6 Atlas\uff0cAtlas \u662f\u57fa\u4e8e MySQL Proxy \u5b9e\u73b0\u7684\u3002"),(0,l.yg)("h3",{id:"\u5206\u5e93\u5206\u8868"},"\u5206\u5e93\u5206\u8868"),(0,l.yg)("p",null,"\u4e1a\u52a1\u5206\u5e93\u6307\u7684\u662f\u6309\u7167\u4e1a\u52a1\u6a21\u5757\u5c06\u6570\u636e\u5206\u6563\u5230\u4e0d\u540c\u7684\u6570\u636e\u5e93\u670d\u52a1\u5668\u3002\u867d\u7136\u4e1a\u52a1\u5206\u5e93\u80fd\u591f\u5206\u6563\u5b58\u50a8\u548c\u8bbf\u95ee\u538b\u529b\uff0c\u4f46\u540c\u65f6\u4e5f\u5e26\u6765\u4e86\u65b0\u7684\u95ee\u9898\uff0c\u63a5\u4e0b\u6765\u6211\u8fdb\u884c\u8be6\u7ec6\u5206\u6790\u3002"),(0,l.yg)("ol",null,(0,l.yg)("li",{parentName:"ol"},"join \u64cd\u4f5c\u95ee\u9898\uff0c\u4e1a\u52a1\u5206\u5e93\u540e\uff0c\u539f\u672c\u5728\u540c\u4e00\u4e2a\u6570\u636e\u5e93\u4e2d\u7684\u8868\u5206\u6563\u5230\u4e0d\u540c\u6570\u636e\u5e93\u4e2d\uff0c\u5bfc\u81f4\u65e0\u6cd5\u4f7f\u7528 SQL \u7684 join \u67e5\u8be2\u3002"),(0,l.yg)("li",{parentName:"ol"},"\u4e8b\u52a1\u95ee\u9898\uff0c\u539f\u672c\u5728\u540c\u4e00\u4e2a\u6570\u636e\u5e93\u4e2d\u4e0d\u540c\u7684\u8868\u53ef\u4ee5\u5728\u540c\u4e00\u4e2a\u4e8b\u52a1\u4e2d\u4fee\u6539\uff0c\u4e1a\u52a1\u5206\u5e93\u540e\uff0c\u8868\u5206\u6563\u5230\u4e0d\u540c\u7684\u6570\u636e\u5e93\u4e2d\uff0c\u65e0\u6cd5\u901a\u8fc7\u4e8b\u52a1\u7edf\u4e00\u4fee\u6539\u3002\u867d\u7136\u6570\u636e\u5e93\u5382\u5546\u63d0\u4f9b\u4e86\u4e00\u4e9b\u5206\u5e03\u5f0f\u4e8b\u52a1\u7684\u89e3\u51b3\u65b9\u6848\uff08\u4f8b\u5982\uff0cMySQL \u7684 XA\uff09\uff0c\u4f46\u6027\u80fd\u5b9e\u5728\u592a\u4f4e\uff0c\u4e0e\u9ad8\u6027\u80fd\u5b58\u50a8\u7684\u76ee\u6807\u662f\u76f8\u8fdd\u80cc\u7684\u3002"),(0,l.yg)("li",{parentName:"ol"},"\u6210\u672c\u95ee\u9898")),(0,l.yg)("p",null,"\u5c06\u4e0d\u540c\u4e1a\u52a1\u6570\u636e\u5206\u6563\u5b58\u50a8\u5230\u4e0d\u540c\u7684\u6570\u636e\u5e93\u670d\u52a1\u5668\uff0c\u80fd\u591f\u652f\u6491\u767e\u4e07\u751a\u81f3\u5343\u4e07\u7528\u6237\u89c4\u6a21\u7684\u4e1a\u52a1\uff0c\u4f46\u5982\u679c\u4e1a\u52a1\u7ee7\u7eed\u53d1\u5c55\uff0c\u540c\u4e00\u4e1a\u52a1\u7684\u5355\u8868\u6570\u636e\u4e5f\u4f1a\u8fbe\u5230\u5355\u53f0\u6570\u636e\u5e93\u670d\u52a1\u5668\u7684\u5904\u7406\u74f6\u9888\u3002\u4f8b\u5982\uff0c\u6dd8\u5b9d\u7684\u51e0\u4ebf\u7528\u6237\u6570\u636e\uff0c\u5982\u679c\u5168\u90e8\u5b58\u653e\u5728\u4e00\u53f0\u6570\u636e\u5e93\u670d\u52a1\u5668\u7684\u4e00\u5f20\u8868\u4e2d\uff0c\u80af\u5b9a\u662f\u65e0\u6cd5\u6ee1\u8db3\u6027\u80fd\u8981\u6c42\u7684\uff0c\u6b64\u65f6\u5c31\u9700\u8981\u5bf9\u5355\u8868\u6570\u636e\u8fdb\u884c\u62c6\u5206\u3002"),(0,l.yg)("p",null,"\u5355\u8868\u6570\u636e\u62c6\u5206\u6709\u4e24\u79cd\u65b9\u5f0f\uff1a\u5782\u76f4\u5206\u8868\u548c\u6c34\u5e73\u5206\u8868\u3002\u793a\u610f\u56fe\u5982\u4e0b\uff1a\n",(0,l.yg)("img",{alt:"image.png",src:n(430).A,width:"1534",height:"804"})))}s.isMDXComponent=!0},6215:(e,t,n)=>{n.d(t,{A:()=>r});const r=n.p+"assets/images/2-4e7ea6ea9e8204899e24d4788b873bce.png"},430:(e,t,n)=>{n.d(t,{A:()=>r});const r=n.p+"assets/images/3-20a57e605dc69d5091de2bbfb0461e46.png"}}]); \ No newline at end of file diff --git a/assets/js/a6c94d4c.c25241f2.js b/assets/js/a6c94d4c.34e5bbeb.js similarity index 98% rename from assets/js/a6c94d4c.c25241f2.js rename to assets/js/a6c94d4c.34e5bbeb.js index 527ffed78..d3e6e38af 100644 --- a/assets/js/a6c94d4c.c25241f2.js +++ b/assets/js/a6c94d4c.34e5bbeb.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7649],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var c=n.createContext({}),u=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},p=function(e){var t=u(e.components);return n.createElement(c.Provider,{value:t},e.children)},s="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,c=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),s=u(r),d=o,f=s["".concat(c,".").concat(d)]||s[d]||y[d]||a;return r?n.createElement(f,l(l({ref:t},p),{},{components:r})):n.createElement(f,l({ref:t},p))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,l=new Array(a);l[0]=d;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[s]="string"==typeof e?e:o,l[1]=i;for(var u=2;u{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>y,frontMatter:()=>a,metadata:()=>i,toc:()=>u});var n=r(8168),o=(r(6540),r(5680));const a={sidebar_position:1},l="\u6982\u8ff0",i={unversionedId:"iotcloud/index",id:"iotcloud/index",title:"\u6982\u8ff0",description:"\u6240\u6709\u7a0b\u5e8f\u7684\u4ee3\u7801\u5168\u90e8\u5f00\u6e90\uff0c\u514d\u8d39\u5546\u7528\uff0c\u4e0d\u53d7\u4efb\u4f55\u9650\u5236\uff0c\u81f4\u529b\u4e8e\u6253\u9020\u514d\u8d39\u3001\u5f00\u6e90\u3001\u6027\u80fd\u4f18\u5f02\u7684\u7269\u8054\u7f51\u4e91\u5e73\u53f0\u751f\u6001\u3002",source:"@site/docs/iotcloud/index.md",sourceDirName:"iotcloud",slug:"/iotcloud/",permalink:"/docs/iotcloud/",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"iotCloudSidebar",next:{title:"\u6982\u8ff0",permalink:"/docs/iotcloud/connect/"}},c={},u=[],p={toc:u},s="wrapper";function y(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"\u6982\u8ff0"},"\u6982\u8ff0"),(0,o.yg)("p",null,"\u6240\u6709\u7a0b\u5e8f\u7684\u4ee3\u7801\u5168\u90e8\u5f00\u6e90\uff0c\u514d\u8d39\u5546\u7528\uff0c\u4e0d\u53d7\u4efb\u4f55\u9650\u5236\uff0c\u81f4\u529b\u4e8e\u6253\u9020\u514d\u8d39\u3001\u5f00\u6e90\u3001\u6027\u80fd\u4f18\u5f02\u7684\u7269\u8054\u7f51\u4e91\u5e73\u53f0\u751f\u6001\u3002"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"\u4e91\u5e73\u53f0-\u540e\u7aef\u6e90\u7801"),(0,o.yg)("li",{parentName:"ul"},"\u4e91\u5e73\u53f0-\u524d\u7aef\u6e90\u7801"),(0,o.yg)("li",{parentName:"ul"},"\u4e91\u5e73\u53f0-\u5fae\u4fe1\u5c0f\u7a0b\u5e8f\u6e90\u7801"),(0,o.yg)("li",{parentName:"ul"},"\u4e91\u5e73\u53f0-\u79fb\u52a8\u7aef APP \u6e90\u7801")),(0,o.yg)("p",null,"\u867d\u7136\u672c\u5e73\u53f0\u7684\u5168\u90e8\u6e90\u7801\u516c\u5f00\u4e14\u514d\u8d39\u5546\u7528\uff0c\u4f46\u662f\u6211\u4e2a\u4eba\u8fd8\u662f\u9700\u8981\u751f\u5b58\uff0c\u53ef\u63d0\u4f9b\u5982\u4e0b\u4ed8\u8d39\u670d\u52a1\uff1a"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"\u6280\u672f\u652f\u6301\uff0c\u53ef\u8fdb VIP \u5fae\u4fe1\u7fa4\uff0c\u63d0\u4f9b\u6280\u672f\u65b9\u6848\u6307\u5bfc\uff1b"),(0,o.yg)("li",{parentName:"ul"},"\u6570\u636e\u5e93\u8bf4\u660e\u6587\u6863\uff0c\u4e3b\u8981\u662f\u8868\u540d\u3001\u5b57\u6bb5\u540d\u542b\u4e49\u89e3\u91ca\uff0c\u5bf9\u4e8e\u8981\u4e8c\u5f00\u975e\u5e38\u6709\u5e2e\u52a9\uff1b"),(0,o.yg)("li",{parentName:"ul"},"\u540e\u7aef\u6e90\u7801\u8bf4\u660e\u6587\u6863\uff0c\u4e3b\u8981\u662f\u548c\u7528\u6237\u7684\u534f\u8bae\u6587\u6863\u3001\u548c\u8bbe\u5907\u7684\u534f\u8bae\u6587\u6863\u3001\u540e\u7aef\u6570\u636e\u5185\u90e8\u6570\u636e\u6d41\u8f6c\u3001\u540e\u7aef\u67b6\u6784\u56fe\u3001\u63d0\u4f9b\u7ed9\u524d\u7aef\u7684\u63a5\u53e3\u6587\u6863\u7b49\uff0c\u5bf9\u4e8e\u4e8c\u5f00\u975e\u5e38\u6709\u5e2e\u52a9\uff1b"),(0,o.yg)("li",{parentName:"ul"},"\u524d\u7aef\u6e90\u7801\u8bf4\u660e\u6587\u6863\uff0c\u4e3b\u8981\u662f\u67b6\u6784\u56fe\u3001\u524d\u7aef\u7f16\u7801\u89c4\u8303\u3001\u524d\u7aef\u624b\u673a\u7ec4\u6001\u7f16\u8f91\u5668\u4e8c\u5f00\u6587\u6863\u7b49\uff0c\u5bf9\u4e8e\u4e8c\u5f00\u975e\u5e38\u6709\u5e2e\u52a9\uff1b"),(0,o.yg)("li",{parentName:"ul"},"\u5fae\u4fe1\u5c0f\u7a0b\u5e8f\u6e90\u7801\u8bf4\u660e\u6587\u6863\uff0c\u4e3b\u8981\u662f\u67b6\u6784\u56fe\u3001\u7f16\u7801\u89c4\u8303\u3001\u624b\u673a\u7ec4\u6001\u6e32\u67d3\u903b\u8f91\u7b49\uff0c\u5bf9\u4e8e\u4e8c\u5f00\u975e\u5e38\u6709\u5e2e\u52a9\uff1b"),(0,o.yg)("li",{parentName:"ul"},"\u79fb\u52a8\u7aef APP \u6e90\u7801\u8bf4\u660e\u6587\u6863\uff0c\u5305\u62ec\u67b6\u6784\u56fe\u3001\u7f16\u7801\u89c4\u8303\u3001\u4e0a\u7ebf APP \u5546\u5e97\u6d41\u7a0b\u8bf4\u660e\u7b49\uff1b"),(0,o.yg)("li",{parentName:"ul"},"\u79c1\u6709\u90e8\u7f72\uff1b"),(0,o.yg)("li",{parentName:"ul"},"\u529f\u80fd\u5b9a\u5236\uff1b")))}y.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7649],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var c=n.createContext({}),u=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},p=function(e){var t=u(e.components);return n.createElement(c.Provider,{value:t},e.children)},s="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,c=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),s=u(r),d=o,f=s["".concat(c,".").concat(d)]||s[d]||y[d]||a;return r?n.createElement(f,l(l({ref:t},p),{},{components:r})):n.createElement(f,l({ref:t},p))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,l=new Array(a);l[0]=d;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[s]="string"==typeof e?e:o,l[1]=i;for(var u=2;u{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>y,frontMatter:()=>a,metadata:()=>i,toc:()=>u});var n=r(8168),o=(r(6540),r(5680));const a={sidebar_position:1},l="\u6982\u8ff0",i={unversionedId:"iotcloud/index",id:"iotcloud/index",title:"\u6982\u8ff0",description:"\u6240\u6709\u7a0b\u5e8f\u7684\u4ee3\u7801\u5168\u90e8\u5f00\u6e90\uff0c\u514d\u8d39\u5546\u7528\uff0c\u4e0d\u53d7\u4efb\u4f55\u9650\u5236\uff0c\u81f4\u529b\u4e8e\u6253\u9020\u514d\u8d39\u3001\u5f00\u6e90\u3001\u6027\u80fd\u4f18\u5f02\u7684\u7269\u8054\u7f51\u4e91\u5e73\u53f0\u751f\u6001\u3002",source:"@site/docs/iotcloud/index.md",sourceDirName:"iotcloud",slug:"/iotcloud/",permalink:"/docs/iotcloud/",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"iotCloudSidebar",next:{title:"\u6982\u8ff0",permalink:"/docs/iotcloud/connect/"}},c={},u=[],p={toc:u},s="wrapper";function y(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"\u6982\u8ff0"},"\u6982\u8ff0"),(0,o.yg)("p",null,"\u6240\u6709\u7a0b\u5e8f\u7684\u4ee3\u7801\u5168\u90e8\u5f00\u6e90\uff0c\u514d\u8d39\u5546\u7528\uff0c\u4e0d\u53d7\u4efb\u4f55\u9650\u5236\uff0c\u81f4\u529b\u4e8e\u6253\u9020\u514d\u8d39\u3001\u5f00\u6e90\u3001\u6027\u80fd\u4f18\u5f02\u7684\u7269\u8054\u7f51\u4e91\u5e73\u53f0\u751f\u6001\u3002"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"\u4e91\u5e73\u53f0-\u540e\u7aef\u6e90\u7801"),(0,o.yg)("li",{parentName:"ul"},"\u4e91\u5e73\u53f0-\u524d\u7aef\u6e90\u7801"),(0,o.yg)("li",{parentName:"ul"},"\u4e91\u5e73\u53f0-\u5fae\u4fe1\u5c0f\u7a0b\u5e8f\u6e90\u7801"),(0,o.yg)("li",{parentName:"ul"},"\u4e91\u5e73\u53f0-\u79fb\u52a8\u7aef APP \u6e90\u7801")),(0,o.yg)("p",null,"\u867d\u7136\u672c\u5e73\u53f0\u7684\u5168\u90e8\u6e90\u7801\u516c\u5f00\u4e14\u514d\u8d39\u5546\u7528\uff0c\u4f46\u662f\u6211\u4e2a\u4eba\u8fd8\u662f\u9700\u8981\u751f\u5b58\uff0c\u53ef\u63d0\u4f9b\u5982\u4e0b\u4ed8\u8d39\u670d\u52a1\uff1a"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"\u6280\u672f\u652f\u6301\uff0c\u53ef\u8fdb VIP \u5fae\u4fe1\u7fa4\uff0c\u63d0\u4f9b\u6280\u672f\u65b9\u6848\u6307\u5bfc\uff1b"),(0,o.yg)("li",{parentName:"ul"},"\u6570\u636e\u5e93\u8bf4\u660e\u6587\u6863\uff0c\u4e3b\u8981\u662f\u8868\u540d\u3001\u5b57\u6bb5\u540d\u542b\u4e49\u89e3\u91ca\uff0c\u5bf9\u4e8e\u8981\u4e8c\u5f00\u975e\u5e38\u6709\u5e2e\u52a9\uff1b"),(0,o.yg)("li",{parentName:"ul"},"\u540e\u7aef\u6e90\u7801\u8bf4\u660e\u6587\u6863\uff0c\u4e3b\u8981\u662f\u548c\u7528\u6237\u7684\u534f\u8bae\u6587\u6863\u3001\u548c\u8bbe\u5907\u7684\u534f\u8bae\u6587\u6863\u3001\u540e\u7aef\u6570\u636e\u5185\u90e8\u6570\u636e\u6d41\u8f6c\u3001\u540e\u7aef\u67b6\u6784\u56fe\u3001\u63d0\u4f9b\u7ed9\u524d\u7aef\u7684\u63a5\u53e3\u6587\u6863\u7b49\uff0c\u5bf9\u4e8e\u4e8c\u5f00\u975e\u5e38\u6709\u5e2e\u52a9\uff1b"),(0,o.yg)("li",{parentName:"ul"},"\u524d\u7aef\u6e90\u7801\u8bf4\u660e\u6587\u6863\uff0c\u4e3b\u8981\u662f\u67b6\u6784\u56fe\u3001\u524d\u7aef\u7f16\u7801\u89c4\u8303\u3001\u524d\u7aef\u624b\u673a\u7ec4\u6001\u7f16\u8f91\u5668\u4e8c\u5f00\u6587\u6863\u7b49\uff0c\u5bf9\u4e8e\u4e8c\u5f00\u975e\u5e38\u6709\u5e2e\u52a9\uff1b"),(0,o.yg)("li",{parentName:"ul"},"\u5fae\u4fe1\u5c0f\u7a0b\u5e8f\u6e90\u7801\u8bf4\u660e\u6587\u6863\uff0c\u4e3b\u8981\u662f\u67b6\u6784\u56fe\u3001\u7f16\u7801\u89c4\u8303\u3001\u624b\u673a\u7ec4\u6001\u6e32\u67d3\u903b\u8f91\u7b49\uff0c\u5bf9\u4e8e\u4e8c\u5f00\u975e\u5e38\u6709\u5e2e\u52a9\uff1b"),(0,o.yg)("li",{parentName:"ul"},"\u79fb\u52a8\u7aef APP \u6e90\u7801\u8bf4\u660e\u6587\u6863\uff0c\u5305\u62ec\u67b6\u6784\u56fe\u3001\u7f16\u7801\u89c4\u8303\u3001\u4e0a\u7ebf APP \u5546\u5e97\u6d41\u7a0b\u8bf4\u660e\u7b49\uff1b"),(0,o.yg)("li",{parentName:"ul"},"\u79c1\u6709\u90e8\u7f72\uff1b"),(0,o.yg)("li",{parentName:"ul"},"\u529f\u80fd\u5b9a\u5236\uff1b")))}y.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/a7f1c1ae.b3b5163f.js b/assets/js/a7f1c1ae.85ef83c7.js similarity index 99% rename from assets/js/a7f1c1ae.b3b5163f.js rename to assets/js/a7f1c1ae.85ef83c7.js index 9981ad2a0..cc67646aa 100644 --- a/assets/js/a7f1c1ae.b3b5163f.js +++ b/assets/js/a7f1c1ae.85ef83c7.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8922],{5680:(e,t,r)=>{r.d(t,{xA:()=>s,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var i=n.createContext({}),u=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},s=function(e){var t=u(e.components);return n.createElement(i.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,i=e.parentName,s=c(e,["components","mdxType","originalType","parentName"]),p=u(r),y=o,f=p["".concat(i,".").concat(y)]||p[y]||d[y]||a;return r?n.createElement(f,l(l({ref:t},s),{},{components:r})):n.createElement(f,l({ref:t},s))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,l=new Array(a);l[0]=y;var c={};for(var i in t)hasOwnProperty.call(t,i)&&(c[i]=t[i]);c.originalType=e,c[p]="string"==typeof e?e:o,l[1]=c;for(var u=2;u{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>l,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>u});var n=r(8168),o=(r(6540),r(5680));const a={},l=void 0,c={unversionedId:"study/db/NoSQL/Hbase",id:"study/db/NoSQL/Hbase",title:"Hbase",description:"\u5217\u5f0f\u6570\u636e\u5e93",source:"@site/docs/study/db/NoSQL/Hbase.md",sourceDirName:"study/db/NoSQL",slug:"/study/db/NoSQL/Hbase",permalink:"/docs/study/db/NoSQL/Hbase",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Cassandra",permalink:"/docs/study/db/NoSQL/Cassandra"},next:{title:"Ignite",permalink:"/docs/study/db/NoSQL/Ignite"}},i={},u=[{value:"\u5217\u5f0f\u6570\u636e\u5e93",id:"\u5217\u5f0f\u6570\u636e\u5e93",level:3}],s={toc:u},p="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(p,(0,n.A)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"\u5217\u5f0f\u6570\u636e\u5e93"},"\u5217\u5f0f\u6570\u636e\u5e93"),(0,o.yg)("p",null,"\u987e\u540d\u601d\u4e49\uff0c\u5217\u5f0f\u6570\u636e\u5e93\u5c31\u662f\u6309\u7167\u5217\u6765\u5b58\u50a8\u6570\u636e\u7684\u6570\u636e\u5e93\uff0c\u4e0e\u4e4b\u5bf9\u5e94\u7684\u4f20\u7edf\u5173\u7cfb\u6570\u636e\u5e93\u88ab\u79f0\u4e3a\u201c\u884c\u5f0f\u6570\u636e\u5e93\u201d\uff0c\u56e0\u4e3a\u5173\u7cfb\u6570\u636e\u5e93\u662f\u6309\u7167\u884c\u6765\u5b58\u50a8\u6570\u636e\u7684\u3002"),(0,o.yg)("p",null,"\u5173\u7cfb\u6570\u636e\u5e93\u6309\u7167\u884c\u5f0f\u6765\u5b58\u50a8\u6570\u636e\uff0c\u4e3b\u8981\u6709\u4ee5\u4e0b\u51e0\u4e2a\u4f18\u52bf\uff1a"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"\u4e1a\u52a1\u540c\u65f6\u8bfb\u53d6\u591a\u4e2a\u5217\u65f6\u6548\u7387\u9ad8\uff0c\u56e0\u4e3a\u8fd9\u4e9b\u5217\u90fd\u662f\u6309\u884c\u5b58\u50a8\u5728\u4e00\u8d77\u7684\uff0c\u4e00\u6b21\u78c1\u76d8\u64cd\u4f5c\u5c31\u80fd\u591f\u628a\u4e00\u884c\u6570\u636e\u4e2d\u7684\u5404\u4e2a\u5217\u90fd\u8bfb\u53d6\u5230\u5185\u5b58\u4e2d\u3002"),(0,o.yg)("li",{parentName:"ul"},"\u80fd\u591f\u4e00\u6b21\u6027\u5b8c\u6210\u5bf9\u4e00\u884c\u4e2d\u7684\u591a\u4e2a\u5217\u7684\u5199\u64cd\u4f5c\uff0c\u4fdd\u8bc1\u4e86\u9488\u5bf9\u884c\u6570\u636e\u5199\u64cd\u4f5c\u7684\u539f\u5b50\u6027\u548c\u4e00\u81f4\u6027\uff1b\u5426\u5219\u5982\u679c\u91c7\u7528\u5217\u5b58\u50a8\uff0c\u53ef\u80fd\u4f1a\u51fa\u73b0\u67d0\u6b21\u5199\u64cd\u4f5c\uff0c\u6709\u7684\u5217\u6210\u529f\u4e86\uff0c\u6709\u7684\u5217\u5931\u8d25\u4e86\uff0c\u5bfc\u81f4\u6570\u636e\u4e0d\u4e00\u81f4\u3002")),(0,o.yg)("p",null,"\u6211\u4eec\u53ef\u4ee5\u770b\u5230\uff0c\u884c\u5f0f\u5b58\u50a8\u7684\u4f18\u52bf\u662f\u5728\u7279\u5b9a\u7684\u4e1a\u52a1\u573a\u666f\u4e0b\u624d\u80fd\u4f53\u73b0\uff0c\u5982\u679c\u4e0d\u5b58\u5728\u8fd9\u6837\u7684\u4e1a\u52a1\u573a\u666f\uff0c\u90a3\u4e48\u884c\u5f0f\u5b58\u50a8\u7684\u4f18\u52bf\u4e5f\u5c06\u4e0d\u590d\u5b58\u5728\uff0c\u751a\u81f3\u6210\u4e3a\u52a3\u52bf\uff0c\u5178\u578b\u7684\u573a\u666f\u5c31\u662f\u6d77\u91cf\u6570\u636e\u8fdb\u884c\u7edf\u8ba1\u3002\u4f8b\u5982\uff0c\u8ba1\u7b97\u67d0\u4e2a\u57ce\u5e02\u4f53\u91cd\u8d85\u91cd\u7684\u4eba\u5458\u6570\u636e\uff0c\u5b9e\u9645\u4e0a\u53ea\u9700\u8981\u8bfb\u53d6\u6bcf\u4e2a\u4eba\u7684\u4f53\u91cd\u8fd9\u4e00\u5217\u5e76\u8fdb\u884c\u7edf\u8ba1\u5373\u53ef\uff0c\u800c\u884c\u5f0f\u5b58\u50a8\u5373\u4f7f\u6700\u7ec8\u53ea\u4f7f\u7528\u4e00\u5217\uff0c\u4e5f\u4f1a\u5c06\u6240\u6709\u884c\u6570\u636e\u90fd\u8bfb\u53d6\u51fa\u6765\u3002\u5982\u679c\u5355\u884c\u7528\u6237\u4fe1\u606f\u6709 1KB\uff0c\u5176\u4e2d\u4f53\u91cd\u53ea\u6709 4 \u4e2a\u5b57\u8282\uff0c\u884c\u5f0f\u5b58\u50a8\u8fd8\u662f\u4f1a\u5c06\u6574\u884c 1KB \u6570\u636e\u5168\u90e8\u8bfb\u53d6\u5230\u5185\u5b58\u4e2d\uff0c\u8fd9\u662f\u660e\u663e\u7684\u6d6a\u8d39\u3002\u800c\u5982\u679c\u91c7\u7528\u5217\u5f0f\u5b58\u50a8\uff0c\u6bcf\u4e2a\u7528\u6237\u53ea\u9700\u8981\u8bfb\u53d6 4 \u5b57\u8282\u7684\u4f53\u91cd\u6570\u636e\u5373\u53ef\uff0cI/O \u5c06\u5927\u5927\u51cf\u5c11\u3002"),(0,o.yg)("p",null,"\u9664\u4e86\u8282\u7701 I/O\uff0c\u5217\u5f0f\u5b58\u50a8\u8fd8\u5177\u5907\u66f4\u9ad8\u7684\u5b58\u50a8\u538b\u7f29\u6bd4\uff0c\u80fd\u591f\u8282\u7701\u66f4\u591a\u7684\u5b58\u50a8\u7a7a\u95f4\u3002\u666e\u901a\u7684\u884c\u5f0f\u6570\u636e\u5e93\u4e00\u822c\u538b\u7f29\u7387\u5728 3:1 \u5230 5:1 \u5de6\u53f3\uff0c\u800c\u5217\u5f0f\u6570\u636e\u5e93\u7684\u538b\u7f29\u7387\u4e00\u822c\u5728 8:1 \u5230 30:1 \u5de6\u53f3\uff0c\u56e0\u4e3a\u5355\u4e2a\u5217\u7684\u6570\u636e\u76f8\u4f3c\u5ea6\u76f8\u6bd4\u884c\u6765\u8bf4\u66f4\u9ad8\uff0c\u80fd\u591f\u8fbe\u5230\u66f4\u9ad8\u7684\u538b\u7f29\u7387\u3002"),(0,o.yg)("p",null,"\u540c\u6837\uff0c\u5982\u679c\u573a\u666f\u53d1\u751f\u53d8\u5316\uff0c\u5217\u5f0f\u5b58\u50a8\u7684\u4f18\u52bf\u53c8\u4f1a\u53d8\u6210\u52a3\u52bf\u3002\u5178\u578b\u7684\u573a\u666f\u662f\u9700\u8981\u9891\u7e41\u5730\u66f4\u65b0\u591a\u4e2a\u5217\u3002\u56e0\u4e3a\u5217\u5f0f\u5b58\u50a8\u5c06\u4e0d\u540c\u5217\u5b58\u50a8\u5728\u78c1\u76d8\u4e0a\u4e0d\u8fde\u7eed\u7684\u7a7a\u95f4\uff0c\u5bfc\u81f4\u66f4\u65b0\u591a\u4e2a\u5217\u65f6\u78c1\u76d8\u662f\u968f\u673a\u5199\u64cd\u4f5c\uff1b\u800c\u884c\u5f0f\u5b58\u50a8\u65f6\u540c\u4e00\u884c\u591a\u4e2a\u5217\u90fd\u5b58\u50a8\u5728\u8fde\u7eed\u7684\u7a7a\u95f4\uff0c\u4e00\u6b21\u78c1\u76d8\u5199\u64cd\u4f5c\u5c31\u53ef\u4ee5\u5b8c\u6210\uff0c\u5217\u5f0f\u5b58\u50a8\u7684\u968f\u673a\u5199\u6548\u7387\u8981\u8fdc\u8fdc\u4f4e\u4e8e\u884c\u5f0f\u5b58\u50a8\u7684\u5199\u6548\u7387\u3002\u6b64\u5916\uff0c\u5217\u5f0f\u5b58\u50a8\u9ad8\u538b\u7f29\u7387\u5728\u66f4\u65b0\u573a\u666f\u4e0b\u4e5f\u4f1a\u6210\u4e3a\u52a3\u52bf\uff0c\u56e0\u4e3a\u66f4\u65b0\u65f6\u9700\u8981\u5c06\u5b58\u50a8\u6570\u636e\u89e3\u538b\u540e\u66f4\u65b0\uff0c\u7136\u540e\u518d\u538b\u7f29\uff0c\u6700\u540e\u5199\u5165\u78c1\u76d8\u3002"),(0,o.yg)("p",null,"\u57fa\u4e8e\u4e0a\u8ff0\u5217\u5f0f\u5b58\u50a8\u7684\u4f18\u7f3a\u70b9\uff0c\u4e00\u822c\u5c06\u5217\u5f0f\u5b58\u50a8\u5e94\u7528\u5728\u79bb\u7ebf\u7684\u5927\u6570\u636e\u5206\u6790\u548c\u7edf\u8ba1\u573a\u666f\u4e2d\uff0c\u56e0\u4e3a\u8fd9\u79cd\u573a\u666f\u4e3b\u8981\u662f\u9488\u5bf9\u90e8\u5206\u5217\u5355\u5217\u8fdb\u884c\u64cd\u4f5c\uff0c\u4e14\u6570\u636e\u5199\u5165\u540e\u5c31\u65e0\u987b\u518d\u66f4\u65b0\u5220\u9664\u3002"))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8922],{5680:(e,t,r)=>{r.d(t,{xA:()=>s,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var i=n.createContext({}),u=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},s=function(e){var t=u(e.components);return n.createElement(i.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,i=e.parentName,s=c(e,["components","mdxType","originalType","parentName"]),p=u(r),y=o,f=p["".concat(i,".").concat(y)]||p[y]||d[y]||a;return r?n.createElement(f,l(l({ref:t},s),{},{components:r})):n.createElement(f,l({ref:t},s))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,l=new Array(a);l[0]=y;var c={};for(var i in t)hasOwnProperty.call(t,i)&&(c[i]=t[i]);c.originalType=e,c[p]="string"==typeof e?e:o,l[1]=c;for(var u=2;u{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>l,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>u});var n=r(8168),o=(r(6540),r(5680));const a={},l=void 0,c={unversionedId:"study/db/NoSQL/Hbase",id:"study/db/NoSQL/Hbase",title:"Hbase",description:"\u5217\u5f0f\u6570\u636e\u5e93",source:"@site/docs/study/db/NoSQL/Hbase.md",sourceDirName:"study/db/NoSQL",slug:"/study/db/NoSQL/Hbase",permalink:"/docs/study/db/NoSQL/Hbase",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Cassandra",permalink:"/docs/study/db/NoSQL/Cassandra"},next:{title:"Ignite",permalink:"/docs/study/db/NoSQL/Ignite"}},i={},u=[{value:"\u5217\u5f0f\u6570\u636e\u5e93",id:"\u5217\u5f0f\u6570\u636e\u5e93",level:3}],s={toc:u},p="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(p,(0,n.A)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"\u5217\u5f0f\u6570\u636e\u5e93"},"\u5217\u5f0f\u6570\u636e\u5e93"),(0,o.yg)("p",null,"\u987e\u540d\u601d\u4e49\uff0c\u5217\u5f0f\u6570\u636e\u5e93\u5c31\u662f\u6309\u7167\u5217\u6765\u5b58\u50a8\u6570\u636e\u7684\u6570\u636e\u5e93\uff0c\u4e0e\u4e4b\u5bf9\u5e94\u7684\u4f20\u7edf\u5173\u7cfb\u6570\u636e\u5e93\u88ab\u79f0\u4e3a\u201c\u884c\u5f0f\u6570\u636e\u5e93\u201d\uff0c\u56e0\u4e3a\u5173\u7cfb\u6570\u636e\u5e93\u662f\u6309\u7167\u884c\u6765\u5b58\u50a8\u6570\u636e\u7684\u3002"),(0,o.yg)("p",null,"\u5173\u7cfb\u6570\u636e\u5e93\u6309\u7167\u884c\u5f0f\u6765\u5b58\u50a8\u6570\u636e\uff0c\u4e3b\u8981\u6709\u4ee5\u4e0b\u51e0\u4e2a\u4f18\u52bf\uff1a"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"\u4e1a\u52a1\u540c\u65f6\u8bfb\u53d6\u591a\u4e2a\u5217\u65f6\u6548\u7387\u9ad8\uff0c\u56e0\u4e3a\u8fd9\u4e9b\u5217\u90fd\u662f\u6309\u884c\u5b58\u50a8\u5728\u4e00\u8d77\u7684\uff0c\u4e00\u6b21\u78c1\u76d8\u64cd\u4f5c\u5c31\u80fd\u591f\u628a\u4e00\u884c\u6570\u636e\u4e2d\u7684\u5404\u4e2a\u5217\u90fd\u8bfb\u53d6\u5230\u5185\u5b58\u4e2d\u3002"),(0,o.yg)("li",{parentName:"ul"},"\u80fd\u591f\u4e00\u6b21\u6027\u5b8c\u6210\u5bf9\u4e00\u884c\u4e2d\u7684\u591a\u4e2a\u5217\u7684\u5199\u64cd\u4f5c\uff0c\u4fdd\u8bc1\u4e86\u9488\u5bf9\u884c\u6570\u636e\u5199\u64cd\u4f5c\u7684\u539f\u5b50\u6027\u548c\u4e00\u81f4\u6027\uff1b\u5426\u5219\u5982\u679c\u91c7\u7528\u5217\u5b58\u50a8\uff0c\u53ef\u80fd\u4f1a\u51fa\u73b0\u67d0\u6b21\u5199\u64cd\u4f5c\uff0c\u6709\u7684\u5217\u6210\u529f\u4e86\uff0c\u6709\u7684\u5217\u5931\u8d25\u4e86\uff0c\u5bfc\u81f4\u6570\u636e\u4e0d\u4e00\u81f4\u3002")),(0,o.yg)("p",null,"\u6211\u4eec\u53ef\u4ee5\u770b\u5230\uff0c\u884c\u5f0f\u5b58\u50a8\u7684\u4f18\u52bf\u662f\u5728\u7279\u5b9a\u7684\u4e1a\u52a1\u573a\u666f\u4e0b\u624d\u80fd\u4f53\u73b0\uff0c\u5982\u679c\u4e0d\u5b58\u5728\u8fd9\u6837\u7684\u4e1a\u52a1\u573a\u666f\uff0c\u90a3\u4e48\u884c\u5f0f\u5b58\u50a8\u7684\u4f18\u52bf\u4e5f\u5c06\u4e0d\u590d\u5b58\u5728\uff0c\u751a\u81f3\u6210\u4e3a\u52a3\u52bf\uff0c\u5178\u578b\u7684\u573a\u666f\u5c31\u662f\u6d77\u91cf\u6570\u636e\u8fdb\u884c\u7edf\u8ba1\u3002\u4f8b\u5982\uff0c\u8ba1\u7b97\u67d0\u4e2a\u57ce\u5e02\u4f53\u91cd\u8d85\u91cd\u7684\u4eba\u5458\u6570\u636e\uff0c\u5b9e\u9645\u4e0a\u53ea\u9700\u8981\u8bfb\u53d6\u6bcf\u4e2a\u4eba\u7684\u4f53\u91cd\u8fd9\u4e00\u5217\u5e76\u8fdb\u884c\u7edf\u8ba1\u5373\u53ef\uff0c\u800c\u884c\u5f0f\u5b58\u50a8\u5373\u4f7f\u6700\u7ec8\u53ea\u4f7f\u7528\u4e00\u5217\uff0c\u4e5f\u4f1a\u5c06\u6240\u6709\u884c\u6570\u636e\u90fd\u8bfb\u53d6\u51fa\u6765\u3002\u5982\u679c\u5355\u884c\u7528\u6237\u4fe1\u606f\u6709 1KB\uff0c\u5176\u4e2d\u4f53\u91cd\u53ea\u6709 4 \u4e2a\u5b57\u8282\uff0c\u884c\u5f0f\u5b58\u50a8\u8fd8\u662f\u4f1a\u5c06\u6574\u884c 1KB \u6570\u636e\u5168\u90e8\u8bfb\u53d6\u5230\u5185\u5b58\u4e2d\uff0c\u8fd9\u662f\u660e\u663e\u7684\u6d6a\u8d39\u3002\u800c\u5982\u679c\u91c7\u7528\u5217\u5f0f\u5b58\u50a8\uff0c\u6bcf\u4e2a\u7528\u6237\u53ea\u9700\u8981\u8bfb\u53d6 4 \u5b57\u8282\u7684\u4f53\u91cd\u6570\u636e\u5373\u53ef\uff0cI/O \u5c06\u5927\u5927\u51cf\u5c11\u3002"),(0,o.yg)("p",null,"\u9664\u4e86\u8282\u7701 I/O\uff0c\u5217\u5f0f\u5b58\u50a8\u8fd8\u5177\u5907\u66f4\u9ad8\u7684\u5b58\u50a8\u538b\u7f29\u6bd4\uff0c\u80fd\u591f\u8282\u7701\u66f4\u591a\u7684\u5b58\u50a8\u7a7a\u95f4\u3002\u666e\u901a\u7684\u884c\u5f0f\u6570\u636e\u5e93\u4e00\u822c\u538b\u7f29\u7387\u5728 3:1 \u5230 5:1 \u5de6\u53f3\uff0c\u800c\u5217\u5f0f\u6570\u636e\u5e93\u7684\u538b\u7f29\u7387\u4e00\u822c\u5728 8:1 \u5230 30:1 \u5de6\u53f3\uff0c\u56e0\u4e3a\u5355\u4e2a\u5217\u7684\u6570\u636e\u76f8\u4f3c\u5ea6\u76f8\u6bd4\u884c\u6765\u8bf4\u66f4\u9ad8\uff0c\u80fd\u591f\u8fbe\u5230\u66f4\u9ad8\u7684\u538b\u7f29\u7387\u3002"),(0,o.yg)("p",null,"\u540c\u6837\uff0c\u5982\u679c\u573a\u666f\u53d1\u751f\u53d8\u5316\uff0c\u5217\u5f0f\u5b58\u50a8\u7684\u4f18\u52bf\u53c8\u4f1a\u53d8\u6210\u52a3\u52bf\u3002\u5178\u578b\u7684\u573a\u666f\u662f\u9700\u8981\u9891\u7e41\u5730\u66f4\u65b0\u591a\u4e2a\u5217\u3002\u56e0\u4e3a\u5217\u5f0f\u5b58\u50a8\u5c06\u4e0d\u540c\u5217\u5b58\u50a8\u5728\u78c1\u76d8\u4e0a\u4e0d\u8fde\u7eed\u7684\u7a7a\u95f4\uff0c\u5bfc\u81f4\u66f4\u65b0\u591a\u4e2a\u5217\u65f6\u78c1\u76d8\u662f\u968f\u673a\u5199\u64cd\u4f5c\uff1b\u800c\u884c\u5f0f\u5b58\u50a8\u65f6\u540c\u4e00\u884c\u591a\u4e2a\u5217\u90fd\u5b58\u50a8\u5728\u8fde\u7eed\u7684\u7a7a\u95f4\uff0c\u4e00\u6b21\u78c1\u76d8\u5199\u64cd\u4f5c\u5c31\u53ef\u4ee5\u5b8c\u6210\uff0c\u5217\u5f0f\u5b58\u50a8\u7684\u968f\u673a\u5199\u6548\u7387\u8981\u8fdc\u8fdc\u4f4e\u4e8e\u884c\u5f0f\u5b58\u50a8\u7684\u5199\u6548\u7387\u3002\u6b64\u5916\uff0c\u5217\u5f0f\u5b58\u50a8\u9ad8\u538b\u7f29\u7387\u5728\u66f4\u65b0\u573a\u666f\u4e0b\u4e5f\u4f1a\u6210\u4e3a\u52a3\u52bf\uff0c\u56e0\u4e3a\u66f4\u65b0\u65f6\u9700\u8981\u5c06\u5b58\u50a8\u6570\u636e\u89e3\u538b\u540e\u66f4\u65b0\uff0c\u7136\u540e\u518d\u538b\u7f29\uff0c\u6700\u540e\u5199\u5165\u78c1\u76d8\u3002"),(0,o.yg)("p",null,"\u57fa\u4e8e\u4e0a\u8ff0\u5217\u5f0f\u5b58\u50a8\u7684\u4f18\u7f3a\u70b9\uff0c\u4e00\u822c\u5c06\u5217\u5f0f\u5b58\u50a8\u5e94\u7528\u5728\u79bb\u7ebf\u7684\u5927\u6570\u636e\u5206\u6790\u548c\u7edf\u8ba1\u573a\u666f\u4e2d\uff0c\u56e0\u4e3a\u8fd9\u79cd\u573a\u666f\u4e3b\u8981\u662f\u9488\u5bf9\u90e8\u5206\u5217\u5355\u5217\u8fdb\u884c\u64cd\u4f5c\uff0c\u4e14\u6570\u636e\u5199\u5165\u540e\u5c31\u65e0\u987b\u518d\u66f4\u65b0\u5220\u9664\u3002"))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/aae926f6.766afc48.js b/assets/js/aae926f6.5a0873af.js similarity index 99% rename from assets/js/aae926f6.766afc48.js rename to assets/js/aae926f6.5a0873af.js index e8f8f734c..8250fff53 100644 --- a/assets/js/aae926f6.766afc48.js +++ b/assets/js/aae926f6.5a0873af.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1995],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>T});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function S(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),i=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):S(S({},t),e)),r},p=function(e){var t=i(e.components);return n.createElement(l.Provider,{value:t},e.children)},u="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),u=i(r),y=o,T=u["".concat(l,".").concat(y)]||u[y]||s[y]||a;return r?n.createElement(T,S(S({ref:t},p),{},{components:r})):n.createElement(T,S({ref:t},p))}));function T(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,S=new Array(a);S[0]=y;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[u]="string"==typeof e?e:o,S[1]=c;for(var i=2;i{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>S,default:()=>s,frontMatter:()=>a,metadata:()=>c,toc:()=>i});var n=r(8168),o=(r(6540),r(5680));const a={},S="SSL TLS HTTPS",c={unversionedId:"study/encryption/SSL_TLS",id:"study/encryption/SSL_TLS",title:"SSL TLS HTTPS",description:"\u4e3a\u4e86\u4fdd\u8bc1\u7f51\u7edc\u901a\u4fe1\u7684\u5b89\u5168\u6027\uff0c\u9700\u8981\u5bf9\u7f51\u7edc\u4e0a\u4f20\u9012\u7684\u6570\u636e\u8fdb\u884c\u52a0\u5bc6\u3002\u73b0\u5728\u4e3b\u6d41\u7684\u52a0\u5bc6\u65b9\u6cd5\u5c31\u662f SSL (Secure Socket Layer)\uff0cTLS (Transport Layer Security)\u3002\u540e\u8005\u6bd4\u524d\u8005\u8981\u65b0\u4e00\u4e9b\uff0c\u4e0d\u8fc7\u5728\u5f88\u591a\u573a\u5408\u8fd8\u662f\u7528 SSL \u6307\u4ee3 SSL \u548c TLS\u3002",source:"@site/docs/study/encryption/SSL_TLS.md",sourceDirName:"study/encryption",slug:"/study/encryption/SSL_TLS",permalink:"/docs/study/encryption/SSL_TLS",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u7f51\u7edc\u541e\u5410\u91cf\u6d4b\u91cf\u5de5\u5177",permalink:"/docs/study/net/\u7f51\u7edc\u541e\u5410\u91cf\u6d4b\u91cf\u5de5\u5177"},next:{title:"\u52a0\u89e3\u5bc6",permalink:"/docs/study/encryption/"}},l={},i=[{value:"SSL/TLS",id:"ssltls",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],p={toc:i},u="wrapper";function s(e){let{components:t,...r}=e;return(0,o.yg)(u,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"ssl-tls-https"},"SSL TLS HTTPS"),(0,o.yg)("p",null,"\u4e3a\u4e86\u4fdd\u8bc1\u7f51\u7edc\u901a\u4fe1\u7684\u5b89\u5168\u6027\uff0c\u9700\u8981\u5bf9\u7f51\u7edc\u4e0a\u4f20\u9012\u7684\u6570\u636e\u8fdb\u884c\u52a0\u5bc6\u3002\u73b0\u5728\u4e3b\u6d41\u7684\u52a0\u5bc6\u65b9\u6cd5\u5c31\u662f SSL (Secure Socket Layer)\uff0cTLS (Transport Layer Security)\u3002\u540e\u8005\u6bd4\u524d\u8005\u8981\u65b0\u4e00\u4e9b\uff0c\u4e0d\u8fc7\u5728\u5f88\u591a\u573a\u5408\u8fd8\u662f\u7528 SSL \u6307\u4ee3 SSL \u548c TLS\u3002"),(0,o.yg)("h3",{id:"ssltls"},"SSL/TLS"),(0,o.yg)("p",null,"SSL\uff08Secure Socket Layer\uff09\u662f\u6307\u5b89\u5168\u5957\u63a5\u5b57\u5c42\uff0c\u7b80\u800c\u8a00\u4e4b\uff0c\u5b83\u662f\u4e00\u9879\u6807\u51c6\u6280\u672f\uff0c\u53ef\u786e\u4fdd\u4e92\u8054\u7f51\u8fde\u63a5\u5b89\u5168\uff0c\u4fdd\u62a4\u4e24\u4e2a\u7cfb\u7edf\u4e4b\u95f4\u53d1\u9001\u7684\u4efb\u4f55\u654f\u611f\u6570\u636e\uff0c\u9632\u6b62\u7f51\u7edc\u72af\u7f6a\u5206\u5b50\u8bfb\u53d6\u548c\u4fee\u6539\u4efb\u4f55\u4f20\u8f93\u4fe1\u606f\uff0c\u5305\u62ec\u4e2a\u4eba\u8d44\u6599\u3002TLS\uff08Transport Layer Security\uff0c\u4f20\u8f93\u5c42\u5b89\u5168\uff09\u662f\u66f4\u4e3a\u5b89\u5168\u7684\u5347\u7ea7\u7248 SSL\u3002"),(0,o.yg)("p",null,"TLS 1.0 \u7248\u5b9e\u9645\u4e0a\u6700\u521d\u4f5c\u4e3a SSL 3.1 \u7248\u5f00\u53d1\uff0cHTTPS \u662f\u5728 HTTP \u534f\u8bae\u57fa\u7840\u4e0a\u5b9e\u65bd TLS \u52a0\u5bc6\uff0c\u6240\u6709\u7f51\u7ad9\u4ee5\u53ca\u5176\u4ed6\u90e8\u5206 web \u670d\u52a1\u90fd\u4f7f\u7528\u8be5\u534f\u8bae\u3002\u56e0\u6b64\uff0c\u4efb\u4f55\u4f7f\u7528 HTTPS \u7684\u7f51\u7ad9\u90fd\u4f7f\u7528 TLS \u52a0\u5bc6\u3002\u4e0d\u540c\u7248\u672c\u7684 TLS \u534f\u8bae\u5185\u5bb9\u7ea6\u5b9a\u4e0d\u4e00\u6837\uff0c\u8fd9\u4e5f\u4f1a\u7ed9 HTTPS \u5efa\u7acb\u8fde\u63a5\u65f6\u9700\u8981\u63e1\u624b\u534f\u5546\u7684\u4fe1\u606f\u9020\u6210\u5dee\u5f02\u3002"),(0,o.yg)("p",null,"TLS \u5df2\u7ecf\u5b8c\u5168\u7684\u4ee3\u66ff\u6389 SSL \u4e86\uff0c\u6240\u4ee5\u53ea\u63a8\u8350 TLS\uff1b\u76ee\u524d\u7684 SSL \u8bc1\u4e66\u8bb8\u53ef\uff0c\u4e0b\u53d1\u7684\u5176\u5b9e\u90fd\u662f SSL/TLS \u8bc1\u4e66\u3002"),(0,o.yg)("p",null,"HTTP \u662f\u8d85\u6587\u672c\u4f20\u8f93\u534f\u8bae\uff0c\u4fe1\u606f\u662f\u660e\u6587\u4f20\u8f93\uff1bHTTPS\uff0c\u4e5f\u79f0\u4f5c HTTP over TLS\uff0c\u5219\u662f\u5177\u6709\u5b89\u5168\u6027\u7684 SSL \u52a0\u5bc6\u4f20\u8f93\u534f\u8bae\u3002"),(0,o.yg)("p",null,"HTTPS \u534f\u8bae\u9700\u8981\u5230\u8bc1\u4e66\u9881\u53d1\u673a\u6784 (Certificate Authority\uff0c\u7b80\u79f0 CA)\u7533\u8bf7\u8bc1\u4e66\uff0c\u901a\u8fc7\u6570\u5b57\u8bc1\u4e66\u7ba1\u7406\u670d\u52a1\u5b8c\u6210\u8bc1\u4e66\u8d2d\u4e70\u3001\u7533\u8bf7\uff0c\u5e76\u5c06\u8bc1\u4e66\u90e8\u7f72\u5230\u60a8\u7684 Web \u670d\u52a1\u5668\u540e\uff0cWeb \u670d\u52a1\u5c06\u4f1a\u901a\u8fc7 HTTPS \u52a0\u5bc6\u534f\u8bae\u6765\u4f20\u8f93\u6570\u636e\u3002"),(0,o.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://zhuanlan.zhihu.com/p/36981565"},"\u6d45\u8c08 SSL/TLS \u5de5\u4f5c\u539f\u7406")),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://zhuanlan.zhihu.com/p/416587205"},"SSL/TLS \u4e0e IPSec \u5bf9\u6bd4"))))}s.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1995],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>T});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function S(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),i=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):S(S({},t),e)),r},p=function(e){var t=i(e.components);return n.createElement(l.Provider,{value:t},e.children)},u="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),u=i(r),y=o,T=u["".concat(l,".").concat(y)]||u[y]||s[y]||a;return r?n.createElement(T,S(S({ref:t},p),{},{components:r})):n.createElement(T,S({ref:t},p))}));function T(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,S=new Array(a);S[0]=y;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[u]="string"==typeof e?e:o,S[1]=c;for(var i=2;i{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>S,default:()=>s,frontMatter:()=>a,metadata:()=>c,toc:()=>i});var n=r(8168),o=(r(6540),r(5680));const a={},S="SSL TLS HTTPS",c={unversionedId:"study/encryption/SSL_TLS",id:"study/encryption/SSL_TLS",title:"SSL TLS HTTPS",description:"\u4e3a\u4e86\u4fdd\u8bc1\u7f51\u7edc\u901a\u4fe1\u7684\u5b89\u5168\u6027\uff0c\u9700\u8981\u5bf9\u7f51\u7edc\u4e0a\u4f20\u9012\u7684\u6570\u636e\u8fdb\u884c\u52a0\u5bc6\u3002\u73b0\u5728\u4e3b\u6d41\u7684\u52a0\u5bc6\u65b9\u6cd5\u5c31\u662f SSL (Secure Socket Layer)\uff0cTLS (Transport Layer Security)\u3002\u540e\u8005\u6bd4\u524d\u8005\u8981\u65b0\u4e00\u4e9b\uff0c\u4e0d\u8fc7\u5728\u5f88\u591a\u573a\u5408\u8fd8\u662f\u7528 SSL \u6307\u4ee3 SSL \u548c TLS\u3002",source:"@site/docs/study/encryption/SSL_TLS.md",sourceDirName:"study/encryption",slug:"/study/encryption/SSL_TLS",permalink:"/docs/study/encryption/SSL_TLS",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u7f51\u7edc\u541e\u5410\u91cf\u6d4b\u91cf\u5de5\u5177",permalink:"/docs/study/net/\u7f51\u7edc\u541e\u5410\u91cf\u6d4b\u91cf\u5de5\u5177"},next:{title:"\u52a0\u89e3\u5bc6",permalink:"/docs/study/encryption/"}},l={},i=[{value:"SSL/TLS",id:"ssltls",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],p={toc:i},u="wrapper";function s(e){let{components:t,...r}=e;return(0,o.yg)(u,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"ssl-tls-https"},"SSL TLS HTTPS"),(0,o.yg)("p",null,"\u4e3a\u4e86\u4fdd\u8bc1\u7f51\u7edc\u901a\u4fe1\u7684\u5b89\u5168\u6027\uff0c\u9700\u8981\u5bf9\u7f51\u7edc\u4e0a\u4f20\u9012\u7684\u6570\u636e\u8fdb\u884c\u52a0\u5bc6\u3002\u73b0\u5728\u4e3b\u6d41\u7684\u52a0\u5bc6\u65b9\u6cd5\u5c31\u662f SSL (Secure Socket Layer)\uff0cTLS (Transport Layer Security)\u3002\u540e\u8005\u6bd4\u524d\u8005\u8981\u65b0\u4e00\u4e9b\uff0c\u4e0d\u8fc7\u5728\u5f88\u591a\u573a\u5408\u8fd8\u662f\u7528 SSL \u6307\u4ee3 SSL \u548c TLS\u3002"),(0,o.yg)("h3",{id:"ssltls"},"SSL/TLS"),(0,o.yg)("p",null,"SSL\uff08Secure Socket Layer\uff09\u662f\u6307\u5b89\u5168\u5957\u63a5\u5b57\u5c42\uff0c\u7b80\u800c\u8a00\u4e4b\uff0c\u5b83\u662f\u4e00\u9879\u6807\u51c6\u6280\u672f\uff0c\u53ef\u786e\u4fdd\u4e92\u8054\u7f51\u8fde\u63a5\u5b89\u5168\uff0c\u4fdd\u62a4\u4e24\u4e2a\u7cfb\u7edf\u4e4b\u95f4\u53d1\u9001\u7684\u4efb\u4f55\u654f\u611f\u6570\u636e\uff0c\u9632\u6b62\u7f51\u7edc\u72af\u7f6a\u5206\u5b50\u8bfb\u53d6\u548c\u4fee\u6539\u4efb\u4f55\u4f20\u8f93\u4fe1\u606f\uff0c\u5305\u62ec\u4e2a\u4eba\u8d44\u6599\u3002TLS\uff08Transport Layer Security\uff0c\u4f20\u8f93\u5c42\u5b89\u5168\uff09\u662f\u66f4\u4e3a\u5b89\u5168\u7684\u5347\u7ea7\u7248 SSL\u3002"),(0,o.yg)("p",null,"TLS 1.0 \u7248\u5b9e\u9645\u4e0a\u6700\u521d\u4f5c\u4e3a SSL 3.1 \u7248\u5f00\u53d1\uff0cHTTPS \u662f\u5728 HTTP \u534f\u8bae\u57fa\u7840\u4e0a\u5b9e\u65bd TLS \u52a0\u5bc6\uff0c\u6240\u6709\u7f51\u7ad9\u4ee5\u53ca\u5176\u4ed6\u90e8\u5206 web \u670d\u52a1\u90fd\u4f7f\u7528\u8be5\u534f\u8bae\u3002\u56e0\u6b64\uff0c\u4efb\u4f55\u4f7f\u7528 HTTPS \u7684\u7f51\u7ad9\u90fd\u4f7f\u7528 TLS \u52a0\u5bc6\u3002\u4e0d\u540c\u7248\u672c\u7684 TLS \u534f\u8bae\u5185\u5bb9\u7ea6\u5b9a\u4e0d\u4e00\u6837\uff0c\u8fd9\u4e5f\u4f1a\u7ed9 HTTPS \u5efa\u7acb\u8fde\u63a5\u65f6\u9700\u8981\u63e1\u624b\u534f\u5546\u7684\u4fe1\u606f\u9020\u6210\u5dee\u5f02\u3002"),(0,o.yg)("p",null,"TLS \u5df2\u7ecf\u5b8c\u5168\u7684\u4ee3\u66ff\u6389 SSL \u4e86\uff0c\u6240\u4ee5\u53ea\u63a8\u8350 TLS\uff1b\u76ee\u524d\u7684 SSL \u8bc1\u4e66\u8bb8\u53ef\uff0c\u4e0b\u53d1\u7684\u5176\u5b9e\u90fd\u662f SSL/TLS \u8bc1\u4e66\u3002"),(0,o.yg)("p",null,"HTTP \u662f\u8d85\u6587\u672c\u4f20\u8f93\u534f\u8bae\uff0c\u4fe1\u606f\u662f\u660e\u6587\u4f20\u8f93\uff1bHTTPS\uff0c\u4e5f\u79f0\u4f5c HTTP over TLS\uff0c\u5219\u662f\u5177\u6709\u5b89\u5168\u6027\u7684 SSL \u52a0\u5bc6\u4f20\u8f93\u534f\u8bae\u3002"),(0,o.yg)("p",null,"HTTPS \u534f\u8bae\u9700\u8981\u5230\u8bc1\u4e66\u9881\u53d1\u673a\u6784 (Certificate Authority\uff0c\u7b80\u79f0 CA)\u7533\u8bf7\u8bc1\u4e66\uff0c\u901a\u8fc7\u6570\u5b57\u8bc1\u4e66\u7ba1\u7406\u670d\u52a1\u5b8c\u6210\u8bc1\u4e66\u8d2d\u4e70\u3001\u7533\u8bf7\uff0c\u5e76\u5c06\u8bc1\u4e66\u90e8\u7f72\u5230\u60a8\u7684 Web \u670d\u52a1\u5668\u540e\uff0cWeb \u670d\u52a1\u5c06\u4f1a\u901a\u8fc7 HTTPS \u52a0\u5bc6\u534f\u8bae\u6765\u4f20\u8f93\u6570\u636e\u3002"),(0,o.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://zhuanlan.zhihu.com/p/36981565"},"\u6d45\u8c08 SSL/TLS \u5de5\u4f5c\u539f\u7406")),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://zhuanlan.zhihu.com/p/416587205"},"SSL/TLS \u4e0e IPSec \u5bf9\u6bd4"))))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/ac6e53b7.257bead9.js b/assets/js/ac6e53b7.159daac7.js similarity index 98% rename from assets/js/ac6e53b7.257bead9.js rename to assets/js/ac6e53b7.159daac7.js index 20f07b829..3b05f0ee1 100644 --- a/assets/js/ac6e53b7.257bead9.js +++ b/assets/js/ac6e53b7.159daac7.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2961],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),u=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},p=function(e){var t=u(e.components);return n.createElement(l.Provider,{value:t},e.children)},s="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),s=u(r),d=o,f=s["".concat(l,".").concat(d)]||s[d]||y[d]||a;return r?n.createElement(f,c(c({ref:t},p),{},{components:r})):n.createElement(f,c({ref:t},p))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=d;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[s]="string"==typeof e?e:o,c[1]=i;for(var u=2;u{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>c,default:()=>y,frontMatter:()=>a,metadata:()=>i,toc:()=>u});var n=r(8168),o=(r(6540),r(5680));const a={},c=void 0,i={unversionedId:"study/program/\u7f16\u8bd1\u5668",id:"study/program/\u7f16\u8bd1\u5668",title:"\u7f16\u8bd1\u5668",description:"C/C++/Objective-C \u7b49\u7c7b C \u7f16\u8bd1\u5668",source:"@site/docs/study/program/\u7f16\u8bd1\u5668.md",sourceDirName:"study/program",slug:"/study/program/\u7f16\u8bd1\u5668",permalink:"/docs/study/program/\u7f16\u8bd1\u5668",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u6280\u672f\u6587\u6863",permalink:"/docs/study/program/\u6280\u672f\u6587\u6863"},next:{title:"\u8de8\u5e73\u53f0\u5e94\u7528\u7a0b\u5e8f\u5f00\u53d1\u6846\u67b6",permalink:"/docs/study/program/\u8de8\u5e73\u53f0\u5e94\u7528\u7a0b\u5e8f\u5f00\u53d1\u6846\u67b6"}},l={},u=[{value:"C/C++/Objective-C \u7b49\u7c7b C \u7f16\u8bd1\u5668",id:"ccobjective-c-\u7b49\u7c7b-c-\u7f16\u8bd1\u5668",level:3}],p={toc:u},s="wrapper";function y(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"ccobjective-c-\u7b49\u7c7b-c-\u7f16\u8bd1\u5668"},"C/C++/Objective-C \u7b49\u7c7b C \u7f16\u8bd1\u5668"),(0,o.yg)("p",null,"\u4e3b\u8981\u5206\u4e09\u79cd\uff1a"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"GCC/GNU/Linux"),(0,o.yg)("li",{parentName:"ul"},"LLVM/CLang"),(0,o.yg)("li",{parentName:"ul"},"Microsoft Visual C++\uff0c\u7b80\u79f0 Visual C++/VC++/MSVC/VS/VC\uff0c\u5f00\u53d1\u73af\u5883 Visual Studio")),(0,o.yg)("p",null,"GCC \u662f\u8001\u724c\u7684 C/C++\u7f16\u8bd1\u5668\uff0c\u4e3b\u8981\u7531 GNU \u7ef4\u62a4\uff0cLinux \u7cfb\u7edf\u9ed8\u8ba4\u7684\u7f16\u8bd1\u5668\u3002"),(0,o.yg)("p",null,"LLVM \u662f\u6bd4\u8f83\u65b0\u7684\u7f16\u8bd1\u5668\u67b6\u6784\u7cfb\u7edf\uff0cCLang \u662f\u57fa\u4e8e LLVM \u7684 C/C++/CLang \u7f16\u8bd1\u5668\uff0c\u4ea7\u751f CLang \u7684\u539f\u56e0\u662f Apple \u516c\u53f8\u60f3\u5f00\u53d1\u65b0\u7684\u8bed\u8a00 CLang\uff0c\u4ee5\u53ca\u5bf9 GCC \u6709\u5176\u4ed6\u7279\u6b8a\u9700\u6c42\uff0c\u4f46\u662f GCC \u914d\u5408\u7684\u5e76\u4e0d\u662f\u5f88\u597d\uff0c\u6240\u4ee5\u624d\u9020\u4e86\u4e2a\u65b0\u8f6e\u5b50\u3002"),(0,o.yg)("p",null,"Microsoft Visual C++\u662f Windows \u7cfb\u7edf\u7684\u7f16\u8bd1\u5668\u3002"))}y.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2961],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),u=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},p=function(e){var t=u(e.components);return n.createElement(l.Provider,{value:t},e.children)},s="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),s=u(r),d=o,f=s["".concat(l,".").concat(d)]||s[d]||y[d]||a;return r?n.createElement(f,c(c({ref:t},p),{},{components:r})):n.createElement(f,c({ref:t},p))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=d;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[s]="string"==typeof e?e:o,c[1]=i;for(var u=2;u{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>c,default:()=>y,frontMatter:()=>a,metadata:()=>i,toc:()=>u});var n=r(8168),o=(r(6540),r(5680));const a={},c=void 0,i={unversionedId:"study/program/\u7f16\u8bd1\u5668",id:"study/program/\u7f16\u8bd1\u5668",title:"\u7f16\u8bd1\u5668",description:"C/C++/Objective-C \u7b49\u7c7b C \u7f16\u8bd1\u5668",source:"@site/docs/study/program/\u7f16\u8bd1\u5668.md",sourceDirName:"study/program",slug:"/study/program/\u7f16\u8bd1\u5668",permalink:"/docs/study/program/\u7f16\u8bd1\u5668",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u6280\u672f\u6587\u6863",permalink:"/docs/study/program/\u6280\u672f\u6587\u6863"},next:{title:"\u8de8\u5e73\u53f0\u5e94\u7528\u7a0b\u5e8f\u5f00\u53d1\u6846\u67b6",permalink:"/docs/study/program/\u8de8\u5e73\u53f0\u5e94\u7528\u7a0b\u5e8f\u5f00\u53d1\u6846\u67b6"}},l={},u=[{value:"C/C++/Objective-C \u7b49\u7c7b C \u7f16\u8bd1\u5668",id:"ccobjective-c-\u7b49\u7c7b-c-\u7f16\u8bd1\u5668",level:3}],p={toc:u},s="wrapper";function y(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"ccobjective-c-\u7b49\u7c7b-c-\u7f16\u8bd1\u5668"},"C/C++/Objective-C \u7b49\u7c7b C \u7f16\u8bd1\u5668"),(0,o.yg)("p",null,"\u4e3b\u8981\u5206\u4e09\u79cd\uff1a"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"GCC/GNU/Linux"),(0,o.yg)("li",{parentName:"ul"},"LLVM/CLang"),(0,o.yg)("li",{parentName:"ul"},"Microsoft Visual C++\uff0c\u7b80\u79f0 Visual C++/VC++/MSVC/VS/VC\uff0c\u5f00\u53d1\u73af\u5883 Visual Studio")),(0,o.yg)("p",null,"GCC \u662f\u8001\u724c\u7684 C/C++\u7f16\u8bd1\u5668\uff0c\u4e3b\u8981\u7531 GNU \u7ef4\u62a4\uff0cLinux \u7cfb\u7edf\u9ed8\u8ba4\u7684\u7f16\u8bd1\u5668\u3002"),(0,o.yg)("p",null,"LLVM \u662f\u6bd4\u8f83\u65b0\u7684\u7f16\u8bd1\u5668\u67b6\u6784\u7cfb\u7edf\uff0cCLang \u662f\u57fa\u4e8e LLVM \u7684 C/C++/CLang \u7f16\u8bd1\u5668\uff0c\u4ea7\u751f CLang \u7684\u539f\u56e0\u662f Apple \u516c\u53f8\u60f3\u5f00\u53d1\u65b0\u7684\u8bed\u8a00 CLang\uff0c\u4ee5\u53ca\u5bf9 GCC \u6709\u5176\u4ed6\u7279\u6b8a\u9700\u6c42\uff0c\u4f46\u662f GCC \u914d\u5408\u7684\u5e76\u4e0d\u662f\u5f88\u597d\uff0c\u6240\u4ee5\u624d\u9020\u4e86\u4e2a\u65b0\u8f6e\u5b50\u3002"),(0,o.yg)("p",null,"Microsoft Visual C++\u662f Windows \u7cfb\u7edf\u7684\u7f16\u8bd1\u5668\u3002"))}y.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/aef8cf14.93a6f9d2.js b/assets/js/aef8cf14.9e1c1d83.js similarity index 98% rename from assets/js/aef8cf14.93a6f9d2.js rename to assets/js/aef8cf14.9e1c1d83.js index e3a3536d9..ffee38685 100644 --- a/assets/js/aef8cf14.93a6f9d2.js +++ b/assets/js/aef8cf14.9e1c1d83.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3971],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>y});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function c(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var p=n.createContext({}),l=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=l(e.components);return n.createElement(p.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,c=e.originalType,p=e.parentName,u=a(e,["components","mdxType","originalType","parentName"]),s=l(r),f=o,y=s["".concat(p,".").concat(f)]||s[f]||d[f]||c;return r?n.createElement(y,i(i({ref:t},u),{},{components:r})):n.createElement(y,i({ref:t},u))}));function y(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var c=r.length,i=new Array(c);i[0]=f;var a={};for(var p in t)hasOwnProperty.call(t,p)&&(a[p]=t[p]);a.originalType=e,a[s]="string"==typeof e?e:o,i[1]=a;for(var l=2;l{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>d,frontMatter:()=>c,metadata:()=>a,toc:()=>l});var n=r(8168),o=(r(6540),r(5680));const c={sidebar_position:5},i="HTTP \u8bbe\u5907\u63a5\u5165",a={unversionedId:"iotcloud/connect/http",id:"iotcloud/connect/http",title:"HTTP \u8bbe\u5907\u63a5\u5165",description:"",source:"@site/docs/iotcloud/connect/http.md",sourceDirName:"iotcloud/connect",slug:"/iotcloud/connect/http",permalink:"/docs/iotcloud/connect/http",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",sidebarPosition:5,frontMatter:{sidebar_position:5},sidebar:"iotCloudSidebar",previous:{title:"TCP \u8bbe\u5907\u63a5\u5165",permalink:"/docs/iotcloud/connect/tcp"},next:{title:"\u6982\u8ff0",permalink:"/docs/iotcloud/devicemanager/"}},p={},l=[],u={toc:l},s="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"http-\u8bbe\u5907\u63a5\u5165"},"HTTP \u8bbe\u5907\u63a5\u5165"))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3971],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>y});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function c(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var p=n.createContext({}),l=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=l(e.components);return n.createElement(p.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,c=e.originalType,p=e.parentName,u=a(e,["components","mdxType","originalType","parentName"]),s=l(r),f=o,y=s["".concat(p,".").concat(f)]||s[f]||d[f]||c;return r?n.createElement(y,i(i({ref:t},u),{},{components:r})):n.createElement(y,i({ref:t},u))}));function y(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var c=r.length,i=new Array(c);i[0]=f;var a={};for(var p in t)hasOwnProperty.call(t,p)&&(a[p]=t[p]);a.originalType=e,a[s]="string"==typeof e?e:o,i[1]=a;for(var l=2;l{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>d,frontMatter:()=>c,metadata:()=>a,toc:()=>l});var n=r(8168),o=(r(6540),r(5680));const c={sidebar_position:5},i="HTTP \u8bbe\u5907\u63a5\u5165",a={unversionedId:"iotcloud/connect/http",id:"iotcloud/connect/http",title:"HTTP \u8bbe\u5907\u63a5\u5165",description:"",source:"@site/docs/iotcloud/connect/http.md",sourceDirName:"iotcloud/connect",slug:"/iotcloud/connect/http",permalink:"/docs/iotcloud/connect/http",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",sidebarPosition:5,frontMatter:{sidebar_position:5},sidebar:"iotCloudSidebar",previous:{title:"TCP \u8bbe\u5907\u63a5\u5165",permalink:"/docs/iotcloud/connect/tcp"},next:{title:"\u6982\u8ff0",permalink:"/docs/iotcloud/devicemanager/"}},p={},l=[],u={toc:l},s="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"http-\u8bbe\u5907\u63a5\u5165"},"HTTP \u8bbe\u5907\u63a5\u5165"))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/afde6f8f.a196d949.js b/assets/js/afde6f8f.9420cd38.js similarity index 99% rename from assets/js/afde6f8f.a196d949.js rename to assets/js/afde6f8f.9420cd38.js index f1ac39fda..f7a511266 100644 --- a/assets/js/afde6f8f.a196d949.js +++ b/assets/js/afde6f8f.9420cd38.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7133],{5680:(e,t,r)=>{r.d(t,{xA:()=>s,yg:()=>d});var a=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function n(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var i=a.createContext({}),p=function(e){var t=a.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},s=function(e){var t=p(e.components);return a.createElement(i.Provider,{value:t},e.children)},y="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},g=a.forwardRef((function(e,t){var r=e.components,o=e.mdxType,n=e.originalType,i=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),y=p(r),g=o,d=y["".concat(i,".").concat(g)]||y[g]||u[g]||n;return r?a.createElement(d,c(c({ref:t},s),{},{components:r})):a.createElement(d,c({ref:t},s))}));function d(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var n=r.length,c=new Array(n);c[0]=g;var l={};for(var i in t)hasOwnProperty.call(t,i)&&(l[i]=t[i]);l.originalType=e,l[y]="string"==typeof e?e:o,c[1]=l;for(var p=2;p{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>c,default:()=>u,frontMatter:()=>n,metadata:()=>l,toc:()=>p});var a=r(8168),o=(r(6540),r(5680));const n={},c=void 0,l={unversionedId:"study/think/\u6982\u5ff5\u6a21\u578b/Reactor\u6a21\u5f0f\u53cd\u5e94\u5806\u6a21\u5f0f",id:"study/think/\u6982\u5ff5\u6a21\u578b/Reactor\u6a21\u5f0f\u53cd\u5e94\u5806\u6a21\u5f0f",title:"Reactor\u6a21\u5f0f\u53cd\u5e94\u5806\u6a21\u5f0f",description:"5\u79cdI/O\u6a21\u578b\u6bd4\u8f83",source:"@site/docs/study/think/\u6982\u5ff5\u6a21\u578b/Reactor\u6a21\u5f0f\u53cd\u5e94\u5806\u6a21\u5f0f.md",sourceDirName:"study/think/\u6982\u5ff5\u6a21\u578b",slug:"/study/think/\u6982\u5ff5\u6a21\u578b/Reactor\u6a21\u5f0f\u53cd\u5e94\u5806\u6a21\u5f0f",permalink:"/docs/study/think/\u6982\u5ff5\u6a21\u578b/Reactor\u6a21\u5f0f\u53cd\u5e94\u5806\u6a21\u5f0f",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Proactor",permalink:"/docs/study/think/\u6982\u5ff5\u6a21\u578b/Proactor"},next:{title:"\u7f13\u5b58",permalink:"/docs/study/think/\u7f13\u5b58/"}},i={},p=[{value:"5\u79cdI/O\u6a21\u578b\u6bd4\u8f83",id:"5\u79cdio\u6a21\u578b\u6bd4\u8f83",level:3},{value:"\u7b80\u4ecb",id:"\u7b80\u4ecb",level:3},{value:"Reactor\u6a21\u5f0f\u7ed3\u6784",id:"reactor\u6a21\u5f0f\u7ed3\u6784",level:3},{value:"Reactor \u5904\u7406\u6b65\u9aa4",id:"reactor-\u5904\u7406\u6b65\u9aa4",level:3},{value:"\u4f18\u70b9",id:"\u4f18\u70b9",level:3}],s={toc:p},y="wrapper";function u(e){let{components:t,...n}=e;return(0,o.yg)(y,(0,a.A)({},s,n,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"5\u79cdio\u6a21\u578b\u6bd4\u8f83"},"5\u79cdI/O\u6a21\u578b\u6bd4\u8f83"),(0,o.yg)("p",null,(0,o.yg)("img",{alt:"image.png",src:r(312).A,width:"750",height:"394"})),(0,o.yg)("h3",{id:"\u7b80\u4ecb"},"\u7b80\u4ecb"),(0,o.yg)("p",null,"Reactor(\u53cd\u5e94\u5806\u6a21\u5f0f)\u662flibevent\u7684\u4e2d\u5fc3\u601d\u60f3\uff0c\u5e38\u89c4\u7684I/O\u591a\u8def\u590d\u7528\u4e2d\u91c7\u7528select\u548cpoll\u3001epoll\u7b49\u6765\u5b9e\u73b0\u3002\u800cReactor\u662f\u5c06\u4e0a\u8ff0\u673a\u5236\u8fdb\u4e00\u6b65\u5c01\u88c5\uff0c\u901a\u4fd7\u7684\u6765\u8bb2\uff0c\u5c31\u662f\u901a\u8fc7\u56de\u8c03\u673a\u5236\u5b9e\u73b0\u3002\u6211\u4eec\u53ea\u9700\u5c06\u4e8b\u4ef6\u7684\u63a5\u53e3\u6ce8\u518c\u5230Reactor\u4e0a\uff0c\u5f53\u4e8b\u4ef6\u53d1\u751f\u4e4b\u540e\uff0c\u4f1a\u56de\u8c03\u6ce8\u518c\u7684\u63a5\u53e3\u3002"),(0,o.yg)("p",null,"Reactor\u662f\u4e00\u79cd\u4e8b\u4ef6\u9a71\u52a8\u673a\u5236\u3002\u548c\u666e\u901a\u51fd\u6570\u8c03\u7528\u7684\u4e0d\u540c\u4e4b\u5904\u5728\u4e8e\uff1a\u5e94\u7528\u7a0b\u5e8f\u4e0d\u662f\u4e3b\u52a8\u7684\u8c03\u7528\u67d0\u4e2aAPI\u5b8c\u6210\u5904\u7406\uff0c\u800c\u662f\u6070\u6070\u76f8\u53cd\uff0cReactor\u9006\u7f6e\u4e86\u4e8b\u4ef6\u5904\u7406\u6d41\u7a0b\uff0c\u5e94\u7528\u7a0b\u5e8f\u9700\u8981\u63d0\u4f9b\u76f8\u5e94\u7684\u63a5\u53e3\u5e76\u6ce8\u518c\u5230Reactor\u4e0a\uff0c\u5982\u679c\u76f8\u5e94\u7684\u4e8b\u4ef6\u53d1\u751f\uff0cReactor\u5c06\u4e3b\u52a8\u8c03\u7528\u5e94\u7528\u7a0b\u5e8f\u6ce8\u518c\u7684\u63a5\u53e3\uff0c\u8fd9\u4e9b\u63a5\u53e3\u53c8\u79f0\u4e3a\u201c\u56de\u8c03\u51fd\u6570\u201d\u3002"),(0,o.yg)("p",null,"Reactor \u6a21\u5f0f\u4e5f\u53eb Dispatcher \u6a21\u5f0f\uff08\u5728\u5f88\u591a\u5f00\u6e90\u7684\u7cfb\u7edf\u91cc\u9762\u4f1a\u770b\u5230\u8fd9\u4e2a\u540d\u79f0\u7684\u7c7b\uff0c\u5176\u5b9e\u5c31\u662f\u5b9e\u73b0 Reactor \u6a21\u5f0f\u7684\uff09\uff0c\u66f4\u52a0\u8d34\u8fd1\u6a21\u5f0f\u672c\u8eab\u7684\u542b\u4e49\uff0c\u5373 I/O \u591a\u8def\u590d\u7528\u7edf\u4e00\u76d1\u542c\u4e8b\u4ef6\uff0c\u6536\u5230\u4e8b\u4ef6\u540e\u5206\u914d\uff08Dispatch\uff09\u7ed9\u67d0\u4e2a\u8fdb\u7a0b\u3002"),(0,o.yg)("p",null,"Reactor \u6a21\u5f0f\u7684\u6838\u5fc3\u7ec4\u6210\u90e8\u5206\u5305\u62ec Reactor \u548c\u5904\u7406\u8d44\u6e90\u6c60\uff08\u8fdb\u7a0b\u6c60\u6216\u7ebf\u7a0b\u6c60\uff09\uff0c\u5176\u4e2d Reactor \u8d1f\u8d23\u76d1\u542c\u548c\u5206\u914d\u4e8b\u4ef6\uff0c\u5904\u7406\u8d44\u6e90\u6c60\u8d1f\u8d23\u5904\u7406\u4e8b\u4ef6\u3002\u521d\u770b Reactor \u7684\u5b9e\u73b0\u662f\u6bd4\u8f83\u7b80\u5355\u7684\uff0c\u4f46\u5b9e\u9645\u4e0a\u7ed3\u5408\u4e0d\u540c\u7684\u4e1a\u52a1\u573a\u666f\uff0cReactor \u6a21\u5f0f\u7684\u5177\u4f53\u5b9e\u73b0\u65b9\u6848\u7075\u6d3b\u591a\u53d8\uff0c\u4e3b\u8981\u4f53\u73b0\u5728\uff1aReactor \u7684\u6570\u91cf\u53ef\u4ee5\u53d8\u5316\uff1a\u53ef\u4ee5\u662f\u4e00\u4e2a Reactor\uff0c\u4e5f\u53ef\u4ee5\u662f\u591a\u4e2a Reactor\u3002\u8d44\u6e90\u6c60\u7684\u6570\u91cf\u53ef\u4ee5\u53d8\u5316\uff1a\u4ee5\u8fdb\u7a0b\u4e3a\u4f8b\uff0c\u53ef\u4ee5\u662f\u5355\u4e2a\u8fdb\u7a0b\uff0c\u4e5f\u53ef\u4ee5\u662f\u591a\u4e2a\u8fdb\u7a0b\uff08\u7ebf\u7a0b\u7c7b\u4f3c\uff09\u3002\u5c06\u4e0a\u9762\u4e24\u4e2a\u56e0\u7d20\u6392\u5217\u7ec4\u5408\u4e00\u4e0b\uff0c\u7406\u8bba\u4e0a\u53ef\u4ee5\u6709 4 \u79cd\u9009\u62e9\uff0c\u4f46\u7531\u4e8e\u201c\u591a Reactor \u5355\u8fdb\u7a0b\u201d\u5b9e\u73b0\u65b9\u6848\u76f8\u6bd4\u201c\u5355 Reactor \u5355\u8fdb\u7a0b\u201d\u65b9\u6848\uff0c\u65e2\u590d\u6742\u53c8\u6ca1\u6709\u6027\u80fd\u4f18\u52bf\uff0c\u56e0\u6b64\u201c\u591a Reactor \u5355\u8fdb\u7a0b\u201d\u65b9\u6848\u4ec5\u4ec5\u662f\u4e00\u4e2a\u7406\u8bba\u4e0a\u7684\u65b9\u6848\uff0c\u5b9e\u9645\u6ca1\u6709\u5e94\u7528\u3002\u6700\u7ec8 Reactor \u6a21\u5f0f\u6709\u8fd9\u4e09\u79cd\u5178\u578b\u7684\u5b9e\u73b0\u65b9\u6848\uff1a\u5355 Reactor \u5355\u8fdb\u7a0b / \u7ebf\u7a0b\u3002\u5355 Reactor \u591a\u7ebf\u7a0b\u3002\u591a Reactor \u591a\u8fdb\u7a0b / \u7ebf\u7a0b\u3002\u4ee5\u4e0a\u65b9\u6848\u5177\u4f53\u9009\u62e9\u8fdb\u7a0b\u8fd8\u662f\u7ebf\u7a0b\uff0c\u66f4\u591a\u5730\u662f\u548c\u7f16\u7a0b\u8bed\u8a00\u53ca\u5e73\u53f0\u76f8\u5173\u3002\u4f8b\u5982\uff0cJava \u8bed\u8a00\u4e00\u822c\u4f7f\u7528\u7ebf\u7a0b\uff08\u4f8b\u5982\uff0cNetty\uff09\uff0cC \u8bed\u8a00\u4f7f\u7528\u8fdb\u7a0b\u548c\u7ebf\u7a0b\u90fd\u53ef\u4ee5\u3002\u4f8b\u5982\uff0cNginx \u4f7f\u7528\u8fdb\u7a0b\uff0cMemcache \u4f7f\u7528\u7ebf\u7a0b\u3002"),(0,o.yg)("p",null,"\u5355 Reactor \u5355\u8fdb\u7a0b\u7684\u65b9\u6848\u5728\u5b9e\u8df5\u4e2d\u5e94\u7528\u573a\u666f\u4e0d\u591a\uff0c\u53ea\u9002\u7528\u4e8e\u4e1a\u52a1\u5904\u7406\u975e\u5e38\u5feb\u901f\u7684\u573a\u666f\uff0c\u76ee\u524d\u6bd4\u8f83\u8457\u540d\u7684\u5f00\u6e90\u8f6f\u4ef6\u4e2d\u4f7f\u7528\u5355 Reactor \u5355\u8fdb\u7a0b\u7684\u662f Redis\u3002\u9700\u8981\u6ce8\u610f\u7684\u662f\uff0cC \u8bed\u8a00\u7f16\u5199\u7cfb\u7edf\u7684\u4e00\u822c\u4f7f\u7528\u5355 Reactor \u5355\u8fdb\u7a0b\uff0c\u56e0\u4e3a\u6ca1\u6709\u5fc5\u8981\u5728\u8fdb\u7a0b\u4e2d\u518d\u521b\u5efa\u7ebf\u7a0b\uff1b\u800c Java \u8bed\u8a00\u7f16\u5199\u7684\u4e00\u822c\u4f7f\u7528\u5355 Reactor \u5355\u7ebf\u7a0b\uff0c\u56e0\u4e3a Java \u865a\u62df\u673a\u662f\u4e00\u4e2a\u8fdb\u7a0b\uff0c\u865a\u62df\u673a\u4e2d\u6709\u5f88\u591a\u7ebf\u7a0b\uff0c\u4e1a\u52a1\u7ebf\u7a0b\u53ea\u662f\u5176\u4e2d\u7684\u4e00\u4e2a\u7ebf\u7a0b\u800c\u5df2\u3002"),(0,o.yg)("p",null,"\u76ee\u524d\u8457\u540d\u7684\u5f00\u6e90\u7cfb\u7edf Nginx \u91c7\u7528\u7684\u662f\u591a Reactor \u591a\u8fdb\u7a0b\uff0c\u91c7\u7528\u591a Reactor \u591a\u7ebf\u7a0b\u7684\u5b9e\u73b0\u6709 Memcache \u548c Netty\u3002"),(0,o.yg)("h3",{id:"reactor\u6a21\u5f0f\u7ed3\u6784"},"Reactor\u6a21\u5f0f\u7ed3\u6784"),(0,o.yg)("p",null,"\u5728Reactor\u6a21\u5f0f\u4e2d\uff0c\u6709\u4ee5\u4e0b\u51e0\u4e2a\u5173\u952e\u7684\u53c2\u4e0e\u8005\u3002"),(0,o.yg)("ol",null,(0,o.yg)("li",{parentName:"ol"},"\u63cf\u8ff0\u7b26\uff08handle\uff09\u7531\u64cd\u4f5c\u7cfb\u7edf\u63d0\u4f9b\uff0c\u7528\u4e8e\u8bc6\u522b\u6bcf\u4e00\u4e2a\u4e8b\u4ef6\uff0c\u5982Socket\u63cf\u8ff0\u7b26\u3001\u6587\u4ef6\u63cf\u8ff0\u7b26\u7b49\u3002\u5728Linux\u4e2d\uff0c\u5b83\u7528\u4e00\u4e2a\u6574\u6570\u6765\u8868\u793a\u3002\u4e8b\u4ef6\u53ef\u4ee5\u6765\u81ea\u5916\u90e8\uff0c\u5982\u6765\u81ea\u5ba2\u6237\u7aef\u7684\u8fde\u63a5\u8bf7\u6c42\u3001\u6570\u636e\u7b49\u3002\u4e8b\u4ef6\u4e5f\u53ef\u4ee5\u6765\u81ea\u5185\u90e8\uff0c\u5982\u5b9a\u65f6\u5668\u4e8b\u4ef6\u3002"),(0,o.yg)("li",{parentName:"ol"},"\u540c\u6b65\u4e8b\u4ef6\u5206\u79bb\u5668\uff08demultiplexer\uff09\u662f\u4e00\u4e2a\u51fd\u6570\uff0c\u7528\u6765\u7b49\u5f85\u4e00\u4e2a\u6216\u591a\u4e2a\u4e8b\u4ef6\u7684\u53d1\u751f\u3002\u8c03\u7528\u8005\u4f1a\u88ab\u963b\u585e\uff0c\u76f4\u5230\u5206\u79bb\u5668\u5206\u79bb\u7684\u63cf\u8ff0\u7b26\u96c6\u4e0a\u6709\u4e8b\u4ef6\u53d1\u751f\u3002Linux\u7684select\u51fd\u6570\u662f\u4e00\u4e2a\u7ecf\u5e38\u88ab\u4f7f\u7528\u7684\u5206\u79bb\u5668\u3002"),(0,o.yg)("li",{parentName:"ol"},"\u4e8b\u4ef6\u5904\u7406\u5668\u63a5\u53e3\uff08event handler\uff09\u662f\u7531\u4e00\u4e2a\u6216\u591a\u4e2a\u6a21\u677f\u51fd\u6570\u7ec4\u6210\u7684\u63a5\u53e3\u3002\u8fd9\u4e9b\u6a21\u677f\u51fd\u6570\u63cf\u8ff0\u4e86\u548c\u5e94\u7528\u7a0b\u5e8f\u76f8\u5173\u7684\u5bf9\u67d0\u4e2a\u4e8b\u4ef6\u7684\u64cd\u4f5c\u3002 \u5177\u4f53\u7684\u4e8b\u4ef6\u5904\u7406\u5668\uff1a\u662f\u4e8b\u4ef6\u5904\u7406\u5668\u63a5\u53e3\u7684\u5b9e\u73b0\u3002\u5b83\u5b9e\u73b0\u4e86\u5e94\u7528\u7a0b\u5e8f\u63d0\u4f9b\u7684\u67d0\u4e2a\u670d\u52a1\u3002\u6bcf\u4e2a\u5177\u4f53\u7684\u4e8b\u4ef6\u5904\u7406\u5668\u603b\u548c\u4e00\u4e2a\u63cf\u8ff0\u7b26\u76f8\u5173\u3002\u5b83\u4f7f\u7528\u63cf\u8ff0\u7b26\u6765\u8bc6\u522b\u4e8b\u4ef6\u3001\u8bc6\u522b\u5e94\u7528\u7a0b\u5e8f\u63d0\u4f9b\u7684\u670d\u52a1\u3002"),(0,o.yg)("li",{parentName:"ol"},"Reactor \u7ba1\u7406\u5668\uff08reactor\uff09\uff1a\u5b9a\u4e49\u4e86\u4e00\u4e9b\u63a5\u53e3\uff0c\u7528\u4e8e\u5e94\u7528\u7a0b\u5e8f\u63a7\u5236\u4e8b\u4ef6\u8c03\u5ea6\uff0c\u4ee5\u53ca\u5e94\u7528\u7a0b\u5e8f\u6ce8\u518c\u3001\u5220\u9664\u4e8b\u4ef6\u5904\u7406\u5668\u548c\u76f8\u5173\u7684\u63cf\u8ff0\u7b26\u3002\u5b83\u662f\u4e8b\u4ef6\u5904\u7406\u5668\u7684\u8c03\u5ea6\u6838\u5fc3\u3002 Reactor\u7ba1\u7406\u5668\u4f7f\u7528\u540c\u6b65\u4e8b\u4ef6\u5206\u79bb\u5668\u6765\u7b49\u5f85\u4e8b\u4ef6\u7684\u53d1\u751f\u3002\u4e00\u65e6\u4e8b\u4ef6\u53d1\u751f\uff0cReactor\u7ba1\u7406\u5668\u5148\u662f\u5206\u79bb\u6bcf\u4e2a\u4e8b\u4ef6\uff0c\u7136\u540e\u8c03\u5ea6\u4e8b\u4ef6\u5904\u7406\u5668\uff0c\u6700\u540e\u8c03\u7528\u76f8\u5173\u7684\u6a21 \u677f\u51fd\u6570\u6765\u5904\u7406\u8fd9\u4e2a\u4e8b\u4ef6\u3002"),(0,o.yg)("li",{parentName:"ol"},"\u901a\u8fc7\u4e0a\u8ff0\u5206\u6790\uff0c\u6211\u4eec\u6ce8\u610f\u5230\uff0c\u662fReactor\u7ba1\u7406\u5668\u800c\u4e0d\u662f\u5e94\u7528\u7a0b\u5e8f\u8d1f\u8d23\u7b49\u5f85\u4e8b\u4ef6\u3001\u5206\u79bb\u4e8b\u4ef6\u548c\u8c03\u5ea6\u4e8b\u4ef6\u3002\u5b9e\u9645\u4e0a\uff0cReactor\u7ba1\u7406\u5668\u5e76\u6ca1\u6709\u88ab\u5177\u4f53\u7684 \u4e8b\u4ef6\u5904\u7406\u5668\u8c03\u7528\uff0c\u800c\u662f\u7ba1\u7406\u5668\u8c03\u5ea6\u5177\u4f53\u7684\u4e8b\u4ef6\u5904\u7406\u5668\uff0c\u7531\u4e8b\u4ef6\u5904\u7406\u5668\u5bf9\u53d1\u751f\u7684\u4e8b\u4ef6\u505a\u51fa\u5904\u7406\u3002\u8fd9\u5c31\u662f\u7c7b\u4f3cHollywood\u539f\u5219\u7684\u201c\u53cd\u5411\u63a7\u5236\u201d\u3002\u5e94\u7528\u7a0b\u5e8f\u8981\u505a\u7684 \u4ec5\u4ec5\u662f\u5b9e\u73b0\u4e00\u4e2a\u5177\u4f53\u7684\u4e8b\u4ef6\u5904\u7406\u5668\uff0c\u7136\u540e\u628a\u5b83\u6ce8\u518c\u5230Reactor\u7ba1\u7406\u5668\u4e2d\u3002\u63a5\u4e0b\u6765\u7684\u5de5\u4f5c\u7531\u7ba1\u7406\u5668\u6765\u5b8c\u6210\u3002\u8fd9\u4e9b\u53c2\u4e0e\u8005\u7684\u76f8\u4e92\u5173\u7cfb\u5982\u4e0b\u56fe\u6240\u793a\u3002")),(0,o.yg)("p",null,(0,o.yg)("img",{alt:"image.png",src:r(7171).A,width:"750",height:"282"})),(0,o.yg)("h3",{id:"reactor-\u5904\u7406\u6b65\u9aa4"},"Reactor \u5904\u7406\u6b65\u9aa4"),(0,o.yg)("ol",null,(0,o.yg)("li",{parentName:"ol"},"\u521d\u59cb\u5316\u4e00\u4e2aReactor\u7ba1\u7406\u5668"),(0,o.yg)("li",{parentName:"ol"},"\u521d\u59cb\u5316\u4e8b\u4ef6\u5904\u7406\u5668,\u8bbe\u7f6e\u4e8b\u4ef6\u6e90\u53ca\u56de\u8c03\u51fd\u6570"),(0,o.yg)("li",{parentName:"ol"},"\u5c06\u4e8b\u4ef6\u5904\u7406\u5668\u6ce8\u518c\u5230Reactor\u7ba1\u7406\u5668\u4e0a"),(0,o.yg)("li",{parentName:"ol"},"\u6ce8\u518c\u8be5\u4e8b\u4ef6"),(0,o.yg)("li",{parentName:"ol"},"\u8fdb\u5165\u5faa\u73af\u7b49\u5f85\u4e8b\u4ef6\u53d1\u751f\u5e76\u5904\u7406")),(0,o.yg)("h3",{id:"\u4f18\u70b9"},"\u4f18\u70b9"),(0,o.yg)("ol",null,(0,o.yg)("li",{parentName:"ol"},"\u54cd\u5e94\u5feb\uff0c\u4e0d\u5fc5\u4e3a\u5355\u4e2a\u540c\u6b65\u65f6\u95f4\u6240\u963b\u585e\uff0c\u867d\u7136Reactor\u672c\u8eab\u4f9d\u7136\u662f\u540c\u6b65\u7684\uff1b"),(0,o.yg)("li",{parentName:"ol"},"\u7f16\u7a0b\u76f8\u5bf9\u7b80\u5355\uff0c\u53ef\u4ee5\u6700\u5927\u7a0b\u5ea6\u7684\u907f\u514d\u590d\u6742\u7684\u591a\u7ebf\u7a0b\u53ca\u540c\u6b65\u95ee\u9898\uff0c\u5e76\u4e14\u907f\u514d\u4e86\u591a\u7ebf\u7a0b/\u8fdb\u7a0b\u7684\u5207\u6362\u5f00\u9500\uff1b"),(0,o.yg)("li",{parentName:"ol"},"\u53ef\u6269\u5c55\u6027\uff0c\u53ef\u4ee5\u65b9\u4fbf\u7684\u901a\u8fc7\u589e\u52a0Reactor\u5b9e\u4f8b\u4e2a\u6570\u6765\u5145\u5206\u5229\u7528CPU\u8d44\u6e90\uff1b"),(0,o.yg)("li",{parentName:"ol"},"\u53ef\u590d\u7528\u6027\uff0creactor\u6846\u67b6\u672c\u8eab\u4e0e\u5177\u4f53\u4e8b\u4ef6\u5904\u7406\u903b\u8f91\u65e0\u5173\uff0c\u5177\u6709\u5f88\u9ad8\u7684\u590d\u7528\u6027\uff1b")),(0,o.yg)("p",null,(0,o.yg)("a",{parentName:"p",href:"https://blog.csdn.net/qq_35551407/article/details/107141036"}),"\n",(0,o.yg)("a",{parentName:"p",href:"https://blog.csdn.net/qq_35551407/article/details/107141036"})))}u.isMDXComponent=!0},312:(e,t,r)=>{r.d(t,{A:()=>a});const a=r.p+"assets/images/image1-edea0978619ca45e5aaa9c2240cde67f.png"},7171:(e,t,r)=>{r.d(t,{A:()=>a});const a=r.p+"assets/images/image2-d4b1ab3e24170354fa291fe102361811.png"}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7133],{5680:(e,t,r)=>{r.d(t,{xA:()=>s,yg:()=>d});var a=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function n(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var i=a.createContext({}),p=function(e){var t=a.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},s=function(e){var t=p(e.components);return a.createElement(i.Provider,{value:t},e.children)},y="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},g=a.forwardRef((function(e,t){var r=e.components,o=e.mdxType,n=e.originalType,i=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),y=p(r),g=o,d=y["".concat(i,".").concat(g)]||y[g]||u[g]||n;return r?a.createElement(d,c(c({ref:t},s),{},{components:r})):a.createElement(d,c({ref:t},s))}));function d(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var n=r.length,c=new Array(n);c[0]=g;var l={};for(var i in t)hasOwnProperty.call(t,i)&&(l[i]=t[i]);l.originalType=e,l[y]="string"==typeof e?e:o,c[1]=l;for(var p=2;p{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>c,default:()=>u,frontMatter:()=>n,metadata:()=>l,toc:()=>p});var a=r(8168),o=(r(6540),r(5680));const n={},c=void 0,l={unversionedId:"study/think/\u6982\u5ff5\u6a21\u578b/Reactor\u6a21\u5f0f\u53cd\u5e94\u5806\u6a21\u5f0f",id:"study/think/\u6982\u5ff5\u6a21\u578b/Reactor\u6a21\u5f0f\u53cd\u5e94\u5806\u6a21\u5f0f",title:"Reactor\u6a21\u5f0f\u53cd\u5e94\u5806\u6a21\u5f0f",description:"5\u79cdI/O\u6a21\u578b\u6bd4\u8f83",source:"@site/docs/study/think/\u6982\u5ff5\u6a21\u578b/Reactor\u6a21\u5f0f\u53cd\u5e94\u5806\u6a21\u5f0f.md",sourceDirName:"study/think/\u6982\u5ff5\u6a21\u578b",slug:"/study/think/\u6982\u5ff5\u6a21\u578b/Reactor\u6a21\u5f0f\u53cd\u5e94\u5806\u6a21\u5f0f",permalink:"/docs/study/think/\u6982\u5ff5\u6a21\u578b/Reactor\u6a21\u5f0f\u53cd\u5e94\u5806\u6a21\u5f0f",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Proactor",permalink:"/docs/study/think/\u6982\u5ff5\u6a21\u578b/Proactor"},next:{title:"\u7f13\u5b58",permalink:"/docs/study/think/\u7f13\u5b58/"}},i={},p=[{value:"5\u79cdI/O\u6a21\u578b\u6bd4\u8f83",id:"5\u79cdio\u6a21\u578b\u6bd4\u8f83",level:3},{value:"\u7b80\u4ecb",id:"\u7b80\u4ecb",level:3},{value:"Reactor\u6a21\u5f0f\u7ed3\u6784",id:"reactor\u6a21\u5f0f\u7ed3\u6784",level:3},{value:"Reactor \u5904\u7406\u6b65\u9aa4",id:"reactor-\u5904\u7406\u6b65\u9aa4",level:3},{value:"\u4f18\u70b9",id:"\u4f18\u70b9",level:3}],s={toc:p},y="wrapper";function u(e){let{components:t,...n}=e;return(0,o.yg)(y,(0,a.A)({},s,n,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"5\u79cdio\u6a21\u578b\u6bd4\u8f83"},"5\u79cdI/O\u6a21\u578b\u6bd4\u8f83"),(0,o.yg)("p",null,(0,o.yg)("img",{alt:"image.png",src:r(312).A,width:"750",height:"394"})),(0,o.yg)("h3",{id:"\u7b80\u4ecb"},"\u7b80\u4ecb"),(0,o.yg)("p",null,"Reactor(\u53cd\u5e94\u5806\u6a21\u5f0f)\u662flibevent\u7684\u4e2d\u5fc3\u601d\u60f3\uff0c\u5e38\u89c4\u7684I/O\u591a\u8def\u590d\u7528\u4e2d\u91c7\u7528select\u548cpoll\u3001epoll\u7b49\u6765\u5b9e\u73b0\u3002\u800cReactor\u662f\u5c06\u4e0a\u8ff0\u673a\u5236\u8fdb\u4e00\u6b65\u5c01\u88c5\uff0c\u901a\u4fd7\u7684\u6765\u8bb2\uff0c\u5c31\u662f\u901a\u8fc7\u56de\u8c03\u673a\u5236\u5b9e\u73b0\u3002\u6211\u4eec\u53ea\u9700\u5c06\u4e8b\u4ef6\u7684\u63a5\u53e3\u6ce8\u518c\u5230Reactor\u4e0a\uff0c\u5f53\u4e8b\u4ef6\u53d1\u751f\u4e4b\u540e\uff0c\u4f1a\u56de\u8c03\u6ce8\u518c\u7684\u63a5\u53e3\u3002"),(0,o.yg)("p",null,"Reactor\u662f\u4e00\u79cd\u4e8b\u4ef6\u9a71\u52a8\u673a\u5236\u3002\u548c\u666e\u901a\u51fd\u6570\u8c03\u7528\u7684\u4e0d\u540c\u4e4b\u5904\u5728\u4e8e\uff1a\u5e94\u7528\u7a0b\u5e8f\u4e0d\u662f\u4e3b\u52a8\u7684\u8c03\u7528\u67d0\u4e2aAPI\u5b8c\u6210\u5904\u7406\uff0c\u800c\u662f\u6070\u6070\u76f8\u53cd\uff0cReactor\u9006\u7f6e\u4e86\u4e8b\u4ef6\u5904\u7406\u6d41\u7a0b\uff0c\u5e94\u7528\u7a0b\u5e8f\u9700\u8981\u63d0\u4f9b\u76f8\u5e94\u7684\u63a5\u53e3\u5e76\u6ce8\u518c\u5230Reactor\u4e0a\uff0c\u5982\u679c\u76f8\u5e94\u7684\u4e8b\u4ef6\u53d1\u751f\uff0cReactor\u5c06\u4e3b\u52a8\u8c03\u7528\u5e94\u7528\u7a0b\u5e8f\u6ce8\u518c\u7684\u63a5\u53e3\uff0c\u8fd9\u4e9b\u63a5\u53e3\u53c8\u79f0\u4e3a\u201c\u56de\u8c03\u51fd\u6570\u201d\u3002"),(0,o.yg)("p",null,"Reactor \u6a21\u5f0f\u4e5f\u53eb Dispatcher \u6a21\u5f0f\uff08\u5728\u5f88\u591a\u5f00\u6e90\u7684\u7cfb\u7edf\u91cc\u9762\u4f1a\u770b\u5230\u8fd9\u4e2a\u540d\u79f0\u7684\u7c7b\uff0c\u5176\u5b9e\u5c31\u662f\u5b9e\u73b0 Reactor \u6a21\u5f0f\u7684\uff09\uff0c\u66f4\u52a0\u8d34\u8fd1\u6a21\u5f0f\u672c\u8eab\u7684\u542b\u4e49\uff0c\u5373 I/O \u591a\u8def\u590d\u7528\u7edf\u4e00\u76d1\u542c\u4e8b\u4ef6\uff0c\u6536\u5230\u4e8b\u4ef6\u540e\u5206\u914d\uff08Dispatch\uff09\u7ed9\u67d0\u4e2a\u8fdb\u7a0b\u3002"),(0,o.yg)("p",null,"Reactor \u6a21\u5f0f\u7684\u6838\u5fc3\u7ec4\u6210\u90e8\u5206\u5305\u62ec Reactor \u548c\u5904\u7406\u8d44\u6e90\u6c60\uff08\u8fdb\u7a0b\u6c60\u6216\u7ebf\u7a0b\u6c60\uff09\uff0c\u5176\u4e2d Reactor \u8d1f\u8d23\u76d1\u542c\u548c\u5206\u914d\u4e8b\u4ef6\uff0c\u5904\u7406\u8d44\u6e90\u6c60\u8d1f\u8d23\u5904\u7406\u4e8b\u4ef6\u3002\u521d\u770b Reactor \u7684\u5b9e\u73b0\u662f\u6bd4\u8f83\u7b80\u5355\u7684\uff0c\u4f46\u5b9e\u9645\u4e0a\u7ed3\u5408\u4e0d\u540c\u7684\u4e1a\u52a1\u573a\u666f\uff0cReactor \u6a21\u5f0f\u7684\u5177\u4f53\u5b9e\u73b0\u65b9\u6848\u7075\u6d3b\u591a\u53d8\uff0c\u4e3b\u8981\u4f53\u73b0\u5728\uff1aReactor \u7684\u6570\u91cf\u53ef\u4ee5\u53d8\u5316\uff1a\u53ef\u4ee5\u662f\u4e00\u4e2a Reactor\uff0c\u4e5f\u53ef\u4ee5\u662f\u591a\u4e2a Reactor\u3002\u8d44\u6e90\u6c60\u7684\u6570\u91cf\u53ef\u4ee5\u53d8\u5316\uff1a\u4ee5\u8fdb\u7a0b\u4e3a\u4f8b\uff0c\u53ef\u4ee5\u662f\u5355\u4e2a\u8fdb\u7a0b\uff0c\u4e5f\u53ef\u4ee5\u662f\u591a\u4e2a\u8fdb\u7a0b\uff08\u7ebf\u7a0b\u7c7b\u4f3c\uff09\u3002\u5c06\u4e0a\u9762\u4e24\u4e2a\u56e0\u7d20\u6392\u5217\u7ec4\u5408\u4e00\u4e0b\uff0c\u7406\u8bba\u4e0a\u53ef\u4ee5\u6709 4 \u79cd\u9009\u62e9\uff0c\u4f46\u7531\u4e8e\u201c\u591a Reactor \u5355\u8fdb\u7a0b\u201d\u5b9e\u73b0\u65b9\u6848\u76f8\u6bd4\u201c\u5355 Reactor \u5355\u8fdb\u7a0b\u201d\u65b9\u6848\uff0c\u65e2\u590d\u6742\u53c8\u6ca1\u6709\u6027\u80fd\u4f18\u52bf\uff0c\u56e0\u6b64\u201c\u591a Reactor \u5355\u8fdb\u7a0b\u201d\u65b9\u6848\u4ec5\u4ec5\u662f\u4e00\u4e2a\u7406\u8bba\u4e0a\u7684\u65b9\u6848\uff0c\u5b9e\u9645\u6ca1\u6709\u5e94\u7528\u3002\u6700\u7ec8 Reactor \u6a21\u5f0f\u6709\u8fd9\u4e09\u79cd\u5178\u578b\u7684\u5b9e\u73b0\u65b9\u6848\uff1a\u5355 Reactor \u5355\u8fdb\u7a0b / \u7ebf\u7a0b\u3002\u5355 Reactor \u591a\u7ebf\u7a0b\u3002\u591a Reactor \u591a\u8fdb\u7a0b / \u7ebf\u7a0b\u3002\u4ee5\u4e0a\u65b9\u6848\u5177\u4f53\u9009\u62e9\u8fdb\u7a0b\u8fd8\u662f\u7ebf\u7a0b\uff0c\u66f4\u591a\u5730\u662f\u548c\u7f16\u7a0b\u8bed\u8a00\u53ca\u5e73\u53f0\u76f8\u5173\u3002\u4f8b\u5982\uff0cJava \u8bed\u8a00\u4e00\u822c\u4f7f\u7528\u7ebf\u7a0b\uff08\u4f8b\u5982\uff0cNetty\uff09\uff0cC \u8bed\u8a00\u4f7f\u7528\u8fdb\u7a0b\u548c\u7ebf\u7a0b\u90fd\u53ef\u4ee5\u3002\u4f8b\u5982\uff0cNginx \u4f7f\u7528\u8fdb\u7a0b\uff0cMemcache \u4f7f\u7528\u7ebf\u7a0b\u3002"),(0,o.yg)("p",null,"\u5355 Reactor \u5355\u8fdb\u7a0b\u7684\u65b9\u6848\u5728\u5b9e\u8df5\u4e2d\u5e94\u7528\u573a\u666f\u4e0d\u591a\uff0c\u53ea\u9002\u7528\u4e8e\u4e1a\u52a1\u5904\u7406\u975e\u5e38\u5feb\u901f\u7684\u573a\u666f\uff0c\u76ee\u524d\u6bd4\u8f83\u8457\u540d\u7684\u5f00\u6e90\u8f6f\u4ef6\u4e2d\u4f7f\u7528\u5355 Reactor \u5355\u8fdb\u7a0b\u7684\u662f Redis\u3002\u9700\u8981\u6ce8\u610f\u7684\u662f\uff0cC \u8bed\u8a00\u7f16\u5199\u7cfb\u7edf\u7684\u4e00\u822c\u4f7f\u7528\u5355 Reactor \u5355\u8fdb\u7a0b\uff0c\u56e0\u4e3a\u6ca1\u6709\u5fc5\u8981\u5728\u8fdb\u7a0b\u4e2d\u518d\u521b\u5efa\u7ebf\u7a0b\uff1b\u800c Java \u8bed\u8a00\u7f16\u5199\u7684\u4e00\u822c\u4f7f\u7528\u5355 Reactor \u5355\u7ebf\u7a0b\uff0c\u56e0\u4e3a Java \u865a\u62df\u673a\u662f\u4e00\u4e2a\u8fdb\u7a0b\uff0c\u865a\u62df\u673a\u4e2d\u6709\u5f88\u591a\u7ebf\u7a0b\uff0c\u4e1a\u52a1\u7ebf\u7a0b\u53ea\u662f\u5176\u4e2d\u7684\u4e00\u4e2a\u7ebf\u7a0b\u800c\u5df2\u3002"),(0,o.yg)("p",null,"\u76ee\u524d\u8457\u540d\u7684\u5f00\u6e90\u7cfb\u7edf Nginx \u91c7\u7528\u7684\u662f\u591a Reactor \u591a\u8fdb\u7a0b\uff0c\u91c7\u7528\u591a Reactor \u591a\u7ebf\u7a0b\u7684\u5b9e\u73b0\u6709 Memcache \u548c Netty\u3002"),(0,o.yg)("h3",{id:"reactor\u6a21\u5f0f\u7ed3\u6784"},"Reactor\u6a21\u5f0f\u7ed3\u6784"),(0,o.yg)("p",null,"\u5728Reactor\u6a21\u5f0f\u4e2d\uff0c\u6709\u4ee5\u4e0b\u51e0\u4e2a\u5173\u952e\u7684\u53c2\u4e0e\u8005\u3002"),(0,o.yg)("ol",null,(0,o.yg)("li",{parentName:"ol"},"\u63cf\u8ff0\u7b26\uff08handle\uff09\u7531\u64cd\u4f5c\u7cfb\u7edf\u63d0\u4f9b\uff0c\u7528\u4e8e\u8bc6\u522b\u6bcf\u4e00\u4e2a\u4e8b\u4ef6\uff0c\u5982Socket\u63cf\u8ff0\u7b26\u3001\u6587\u4ef6\u63cf\u8ff0\u7b26\u7b49\u3002\u5728Linux\u4e2d\uff0c\u5b83\u7528\u4e00\u4e2a\u6574\u6570\u6765\u8868\u793a\u3002\u4e8b\u4ef6\u53ef\u4ee5\u6765\u81ea\u5916\u90e8\uff0c\u5982\u6765\u81ea\u5ba2\u6237\u7aef\u7684\u8fde\u63a5\u8bf7\u6c42\u3001\u6570\u636e\u7b49\u3002\u4e8b\u4ef6\u4e5f\u53ef\u4ee5\u6765\u81ea\u5185\u90e8\uff0c\u5982\u5b9a\u65f6\u5668\u4e8b\u4ef6\u3002"),(0,o.yg)("li",{parentName:"ol"},"\u540c\u6b65\u4e8b\u4ef6\u5206\u79bb\u5668\uff08demultiplexer\uff09\u662f\u4e00\u4e2a\u51fd\u6570\uff0c\u7528\u6765\u7b49\u5f85\u4e00\u4e2a\u6216\u591a\u4e2a\u4e8b\u4ef6\u7684\u53d1\u751f\u3002\u8c03\u7528\u8005\u4f1a\u88ab\u963b\u585e\uff0c\u76f4\u5230\u5206\u79bb\u5668\u5206\u79bb\u7684\u63cf\u8ff0\u7b26\u96c6\u4e0a\u6709\u4e8b\u4ef6\u53d1\u751f\u3002Linux\u7684select\u51fd\u6570\u662f\u4e00\u4e2a\u7ecf\u5e38\u88ab\u4f7f\u7528\u7684\u5206\u79bb\u5668\u3002"),(0,o.yg)("li",{parentName:"ol"},"\u4e8b\u4ef6\u5904\u7406\u5668\u63a5\u53e3\uff08event handler\uff09\u662f\u7531\u4e00\u4e2a\u6216\u591a\u4e2a\u6a21\u677f\u51fd\u6570\u7ec4\u6210\u7684\u63a5\u53e3\u3002\u8fd9\u4e9b\u6a21\u677f\u51fd\u6570\u63cf\u8ff0\u4e86\u548c\u5e94\u7528\u7a0b\u5e8f\u76f8\u5173\u7684\u5bf9\u67d0\u4e2a\u4e8b\u4ef6\u7684\u64cd\u4f5c\u3002 \u5177\u4f53\u7684\u4e8b\u4ef6\u5904\u7406\u5668\uff1a\u662f\u4e8b\u4ef6\u5904\u7406\u5668\u63a5\u53e3\u7684\u5b9e\u73b0\u3002\u5b83\u5b9e\u73b0\u4e86\u5e94\u7528\u7a0b\u5e8f\u63d0\u4f9b\u7684\u67d0\u4e2a\u670d\u52a1\u3002\u6bcf\u4e2a\u5177\u4f53\u7684\u4e8b\u4ef6\u5904\u7406\u5668\u603b\u548c\u4e00\u4e2a\u63cf\u8ff0\u7b26\u76f8\u5173\u3002\u5b83\u4f7f\u7528\u63cf\u8ff0\u7b26\u6765\u8bc6\u522b\u4e8b\u4ef6\u3001\u8bc6\u522b\u5e94\u7528\u7a0b\u5e8f\u63d0\u4f9b\u7684\u670d\u52a1\u3002"),(0,o.yg)("li",{parentName:"ol"},"Reactor \u7ba1\u7406\u5668\uff08reactor\uff09\uff1a\u5b9a\u4e49\u4e86\u4e00\u4e9b\u63a5\u53e3\uff0c\u7528\u4e8e\u5e94\u7528\u7a0b\u5e8f\u63a7\u5236\u4e8b\u4ef6\u8c03\u5ea6\uff0c\u4ee5\u53ca\u5e94\u7528\u7a0b\u5e8f\u6ce8\u518c\u3001\u5220\u9664\u4e8b\u4ef6\u5904\u7406\u5668\u548c\u76f8\u5173\u7684\u63cf\u8ff0\u7b26\u3002\u5b83\u662f\u4e8b\u4ef6\u5904\u7406\u5668\u7684\u8c03\u5ea6\u6838\u5fc3\u3002 Reactor\u7ba1\u7406\u5668\u4f7f\u7528\u540c\u6b65\u4e8b\u4ef6\u5206\u79bb\u5668\u6765\u7b49\u5f85\u4e8b\u4ef6\u7684\u53d1\u751f\u3002\u4e00\u65e6\u4e8b\u4ef6\u53d1\u751f\uff0cReactor\u7ba1\u7406\u5668\u5148\u662f\u5206\u79bb\u6bcf\u4e2a\u4e8b\u4ef6\uff0c\u7136\u540e\u8c03\u5ea6\u4e8b\u4ef6\u5904\u7406\u5668\uff0c\u6700\u540e\u8c03\u7528\u76f8\u5173\u7684\u6a21 \u677f\u51fd\u6570\u6765\u5904\u7406\u8fd9\u4e2a\u4e8b\u4ef6\u3002"),(0,o.yg)("li",{parentName:"ol"},"\u901a\u8fc7\u4e0a\u8ff0\u5206\u6790\uff0c\u6211\u4eec\u6ce8\u610f\u5230\uff0c\u662fReactor\u7ba1\u7406\u5668\u800c\u4e0d\u662f\u5e94\u7528\u7a0b\u5e8f\u8d1f\u8d23\u7b49\u5f85\u4e8b\u4ef6\u3001\u5206\u79bb\u4e8b\u4ef6\u548c\u8c03\u5ea6\u4e8b\u4ef6\u3002\u5b9e\u9645\u4e0a\uff0cReactor\u7ba1\u7406\u5668\u5e76\u6ca1\u6709\u88ab\u5177\u4f53\u7684 \u4e8b\u4ef6\u5904\u7406\u5668\u8c03\u7528\uff0c\u800c\u662f\u7ba1\u7406\u5668\u8c03\u5ea6\u5177\u4f53\u7684\u4e8b\u4ef6\u5904\u7406\u5668\uff0c\u7531\u4e8b\u4ef6\u5904\u7406\u5668\u5bf9\u53d1\u751f\u7684\u4e8b\u4ef6\u505a\u51fa\u5904\u7406\u3002\u8fd9\u5c31\u662f\u7c7b\u4f3cHollywood\u539f\u5219\u7684\u201c\u53cd\u5411\u63a7\u5236\u201d\u3002\u5e94\u7528\u7a0b\u5e8f\u8981\u505a\u7684 \u4ec5\u4ec5\u662f\u5b9e\u73b0\u4e00\u4e2a\u5177\u4f53\u7684\u4e8b\u4ef6\u5904\u7406\u5668\uff0c\u7136\u540e\u628a\u5b83\u6ce8\u518c\u5230Reactor\u7ba1\u7406\u5668\u4e2d\u3002\u63a5\u4e0b\u6765\u7684\u5de5\u4f5c\u7531\u7ba1\u7406\u5668\u6765\u5b8c\u6210\u3002\u8fd9\u4e9b\u53c2\u4e0e\u8005\u7684\u76f8\u4e92\u5173\u7cfb\u5982\u4e0b\u56fe\u6240\u793a\u3002")),(0,o.yg)("p",null,(0,o.yg)("img",{alt:"image.png",src:r(7171).A,width:"750",height:"282"})),(0,o.yg)("h3",{id:"reactor-\u5904\u7406\u6b65\u9aa4"},"Reactor \u5904\u7406\u6b65\u9aa4"),(0,o.yg)("ol",null,(0,o.yg)("li",{parentName:"ol"},"\u521d\u59cb\u5316\u4e00\u4e2aReactor\u7ba1\u7406\u5668"),(0,o.yg)("li",{parentName:"ol"},"\u521d\u59cb\u5316\u4e8b\u4ef6\u5904\u7406\u5668,\u8bbe\u7f6e\u4e8b\u4ef6\u6e90\u53ca\u56de\u8c03\u51fd\u6570"),(0,o.yg)("li",{parentName:"ol"},"\u5c06\u4e8b\u4ef6\u5904\u7406\u5668\u6ce8\u518c\u5230Reactor\u7ba1\u7406\u5668\u4e0a"),(0,o.yg)("li",{parentName:"ol"},"\u6ce8\u518c\u8be5\u4e8b\u4ef6"),(0,o.yg)("li",{parentName:"ol"},"\u8fdb\u5165\u5faa\u73af\u7b49\u5f85\u4e8b\u4ef6\u53d1\u751f\u5e76\u5904\u7406")),(0,o.yg)("h3",{id:"\u4f18\u70b9"},"\u4f18\u70b9"),(0,o.yg)("ol",null,(0,o.yg)("li",{parentName:"ol"},"\u54cd\u5e94\u5feb\uff0c\u4e0d\u5fc5\u4e3a\u5355\u4e2a\u540c\u6b65\u65f6\u95f4\u6240\u963b\u585e\uff0c\u867d\u7136Reactor\u672c\u8eab\u4f9d\u7136\u662f\u540c\u6b65\u7684\uff1b"),(0,o.yg)("li",{parentName:"ol"},"\u7f16\u7a0b\u76f8\u5bf9\u7b80\u5355\uff0c\u53ef\u4ee5\u6700\u5927\u7a0b\u5ea6\u7684\u907f\u514d\u590d\u6742\u7684\u591a\u7ebf\u7a0b\u53ca\u540c\u6b65\u95ee\u9898\uff0c\u5e76\u4e14\u907f\u514d\u4e86\u591a\u7ebf\u7a0b/\u8fdb\u7a0b\u7684\u5207\u6362\u5f00\u9500\uff1b"),(0,o.yg)("li",{parentName:"ol"},"\u53ef\u6269\u5c55\u6027\uff0c\u53ef\u4ee5\u65b9\u4fbf\u7684\u901a\u8fc7\u589e\u52a0Reactor\u5b9e\u4f8b\u4e2a\u6570\u6765\u5145\u5206\u5229\u7528CPU\u8d44\u6e90\uff1b"),(0,o.yg)("li",{parentName:"ol"},"\u53ef\u590d\u7528\u6027\uff0creactor\u6846\u67b6\u672c\u8eab\u4e0e\u5177\u4f53\u4e8b\u4ef6\u5904\u7406\u903b\u8f91\u65e0\u5173\uff0c\u5177\u6709\u5f88\u9ad8\u7684\u590d\u7528\u6027\uff1b")),(0,o.yg)("p",null,(0,o.yg)("a",{parentName:"p",href:"https://blog.csdn.net/qq_35551407/article/details/107141036"}),"\n",(0,o.yg)("a",{parentName:"p",href:"https://blog.csdn.net/qq_35551407/article/details/107141036"})))}u.isMDXComponent=!0},312:(e,t,r)=>{r.d(t,{A:()=>a});const a=r.p+"assets/images/image1-edea0978619ca45e5aaa9c2240cde67f.png"},7171:(e,t,r)=>{r.d(t,{A:()=>a});const a=r.p+"assets/images/image2-d4b1ab3e24170354fa291fe102361811.png"}}]); \ No newline at end of file diff --git a/assets/js/b14b689b.79d6cf97.js b/assets/js/b14b689b.bf5fcaab.js similarity index 99% rename from assets/js/b14b689b.79d6cf97.js rename to assets/js/b14b689b.bf5fcaab.js index d97c01c7e..f670a3b3b 100644 --- a/assets/js/b14b689b.79d6cf97.js +++ b/assets/js/b14b689b.bf5fcaab.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[225],{5680:(n,e,t)=>{t.d(e,{xA:()=>c,yg:()=>d});var s=t(6540);function r(n,e,t){return e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function a(n,e){var t=Object.keys(n);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(n);e&&(s=s.filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),t.push.apply(t,s)}return t}function l(n){for(var e=1;e=0||(r[t]=n[t]);return r}(n,e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(n);for(s=0;s=0||Object.prototype.propertyIsEnumerable.call(n,t)&&(r[t]=n[t])}return r}var i=s.createContext({}),p=function(n){var e=s.useContext(i),t=e;return n&&(t="function"==typeof n?n(e):l(l({},e),n)),t},c=function(n){var e=p(n.components);return s.createElement(i.Provider,{value:e},n.children)},u="mdxType",y={inlineCode:"code",wrapper:function(n){var e=n.children;return s.createElement(s.Fragment,{},e)}},g=s.forwardRef((function(n,e){var t=n.components,r=n.mdxType,a=n.originalType,i=n.parentName,c=o(n,["components","mdxType","originalType","parentName"]),u=p(t),g=r,d=u["".concat(i,".").concat(g)]||u[g]||y[g]||a;return t?s.createElement(d,l(l({ref:e},c),{},{components:t})):s.createElement(d,l({ref:e},c))}));function d(n,e){var t=arguments,r=e&&e.mdxType;if("string"==typeof n||r){var a=t.length,l=new Array(a);l[0]=g;var o={};for(var i in e)hasOwnProperty.call(e,i)&&(o[i]=e[i]);o.originalType=n,o[u]="string"==typeof n?n:r,l[1]=o;for(var p=2;p{t.r(e),t.d(e,{assets:()=>i,contentTitle:()=>l,default:()=>y,frontMatter:()=>a,metadata:()=>o,toc:()=>p});var s=t(8168),r=(t(6540),t(5680));const a={sidebar_position:2},l=void 0,o={unversionedId:"study/devops/API\u7684\u8bf7\u6c42\u91cf\u5206\u6790",id:"study/devops/API\u7684\u8bf7\u6c42\u91cf\u5206\u6790",title:"API\u7684\u8bf7\u6c42\u91cf\u5206\u6790",description:"\u6570\u636e\u6d41\u5411",source:"@site/docs/study/devops/API\u7684\u8bf7\u6c42\u91cf\u5206\u6790.md",sourceDirName:"study/devops",slug:"/study/devops/API\u7684\u8bf7\u6c42\u91cf\u5206\u6790",permalink:"/docs/study/devops/API\u7684\u8bf7\u6c42\u91cf\u5206\u6790",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"studySidebar",previous:{title:"\u6982\u8ff0",permalink:"/docs/study/devops/"},next:{title:"Linux\u8fd0\u7ef4-\u5e38\u7528",permalink:"/docs/study/devops/Linux\u8fd0\u7ef4-\u5e38\u7528"}},i={},p=[{value:"\u6570\u636e\u6d41\u5411",id:"\u6570\u636e\u6d41\u5411",level:3},{value:"\u5206\u6790\u70b9",id:"\u5206\u6790\u70b9",level:3},{value:"\u63a5\u53e3\u8bbf\u95ee\u91cf",id:"\u63a5\u53e3\u8bbf\u95ee\u91cf",level:4},{value:"\u8bbf\u95ee\u6700\u591a\u7684\u63a5\u53e3\u6392\u540d",id:"\u8bbf\u95ee\u6700\u591a\u7684\u63a5\u53e3\u6392\u540d",level:4},{value:"\u8bbf\u95ee\u6700\u591a\u7684IP\u6392\u540d",id:"\u8bbf\u95ee\u6700\u591a\u7684ip\u6392\u540d",level:4},{value:"\u8bbf\u95ee\u6700\u591a\u7684URL\u6392\u540d",id:"\u8bbf\u95ee\u6700\u591a\u7684url\u6392\u540d",level:4},{value:"ip\u548curl\u67e5\u8be2\u5217\u8868",id:"ip\u548curl\u67e5\u8be2\u5217\u8868",level:4},{value:"\u8bbf\u95ee\u6d4f\u89c8\u5668\u7c7b\u578b\u5206\u7c7b\u53ca\u6570\u91cf",id:"\u8bbf\u95ee\u6d4f\u89c8\u5668\u7c7b\u578b\u5206\u7c7b\u53ca\u6570\u91cf",level:4},{value:"\u8bbf\u95ee\u6d4f\u89c8\u5668Chrome\u7248\u672c\u53ca\u6570\u91cf",id:"\u8bbf\u95ee\u6d4f\u89c8\u5668chrome\u7248\u672c\u53ca\u6570\u91cf",level:4},{value:"\u8bbf\u95ee\u64cd\u4f5c\u7cfb\u7edf\u7c7b\u578b\u5206\u7c7b\u53ca\u6570\u91cf",id:"\u8bbf\u95ee\u64cd\u4f5c\u7cfb\u7edf\u7c7b\u578b\u5206\u7c7b\u53ca\u6570\u91cf",level:4},{value:"\u8bbf\u95ee\u6700\u591a\u7684\u56fd\u5bb6\u6392\u540d",id:"\u8bbf\u95ee\u6700\u591a\u7684\u56fd\u5bb6\u6392\u540d",level:4},{value:"\u8bbf\u95ee\u6700\u591a\u7684\u7701\u4efd\u6392\u540d",id:"\u8bbf\u95ee\u6700\u591a\u7684\u7701\u4efd\u6392\u540d",level:4},{value:"\u8bbf\u95ee\u6700\u591a\u7684\u57ce\u5e02\u6392\u540d",id:"\u8bbf\u95ee\u6700\u591a\u7684\u57ce\u5e02\u6392\u540d",level:4},{value:"HTTP\u54cd\u5e94\u7801\u975e200\u6570\u91cf\u53ca\u5217\u8868",id:"http\u54cd\u5e94\u7801\u975e200\u6570\u91cf\u53ca\u5217\u8868",level:4},{value:"HTTP method\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570",id:"http-method\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570",level:4},{value:"site\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570",id:"site\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570",level:4},{value:"httpv\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570",id:"httpv\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570",level:4},{value:"URL\u8bbf\u95eeIP\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570",id:"url\u8bbf\u95eeip\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570",level:4},{value:"\u6700\u6d3b\u8dc3\u7684\u67d0\u7c7bsite",id:"\u6700\u6d3b\u8dc3\u7684\u67d0\u7c7bsite",level:4}],c={toc:p},u="wrapper";function y(n){let{components:e,...t}=n;return(0,r.yg)(u,(0,s.A)({},c,t,{components:e,mdxType:"MDXLayout"}),(0,r.yg)("h3",{id:"\u6570\u636e\u6d41\u5411"},"\u6570\u636e\u6d41\u5411"),(0,r.yg)("p",null,"\u6d4f\u89c8\u5668 \u300bNginx \u300bAPI \u300b\u4ea7\u751fNginx log\u65e5\u5fd7 \u300bFilebeat \u300bLogstash \u300bElasticSearch"),(0,r.yg)("h3",{id:"\u5206\u6790\u70b9"},"\u5206\u6790\u70b9"),(0,r.yg)("h4",{id:"\u63a5\u53e3\u8bbf\u95ee\u91cf"},"\u63a5\u53e3\u8bbf\u95ee\u91cf"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'#\u8bbf\u95ee\u603b\u91cf\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \'{"size" : 0 }\'\n\n#\u6628\u65e5\u8bbf\u95ee\u603b\u91cf\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"sort": [{"ts": {"order": "desc"}}], \n "size" : 0,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"24/May/2020:00:00:00 +0800",\n "lte":"25/May/2020:00:00:00 +0800"\n }}}}}\n}\'\n\n#\u6628\u65e5\u8bbf\u95ee\u603b\u91cf--\u6309\u7167\u5c0f\u65f6\u805a\u5408--\u6309\u7167\u65f6\u95f4\u6392\u5e8f\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"sort": [{"ts": {"order": "desc"}}], \n "size" : 0,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"16/Jun/2020:00:00:00 +0800",\n "lte":"17/Jun/2020:00:00:00 +0800"\n }}}}},\n "aggs": {\n "groupby_hour_reqs":{\n "date_histogram":{\n "field":"ts",\n "interval":"1h",\n "format":"yyyy-MM-dd:HH",\n "time_zone":"+08:00",\n "min_doc_count": 0\n }\n }\n }\n}\'\n\n#\u6628\u65e5\u8bbf\u95ee\u603b\u91cf--\u6309\u7167\u5c0f\u65f6\u805a\u5408--\u6309\u7167\u8bbf\u95ee\u91cf\u6392\u5e8f\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"sort": [{"ts": {"order": "desc"}}], \n "size" : 0,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"25/May/2020:00:00:00 +0800",\n "lte":"26/May/2020:00:00:00 +0800"\n }}}}},\n "aggs": {\n "groupby_hour_reqs":{\n "date_histogram":{\n "field":"ts",\n "interval":"1h",\n "format":"yyyy-MM-dd:HH",\n "time_zone":"+08:00",\n "min_doc_count": 0,\n "order" : {\n "_count" : "desc"\n }\n }\n }\n }\n}\'\n#100s\u5185\u8bbf\u95ee\u603b\u91cf--\u6309\u7167\u79d2\u805a\u5408--\u6309\u7167\u8bbf\u95ee\u91cf\u6392\u5e8f==QPS###################\n#########\u6240\u6709\u8bbf\u95ee\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"sort": [{"ts": {"order": "desc"}}], \n "size" : 0,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"now-100s"\n }}}}},\n "aggs": {\n "groupby_hour_reqs":{\n "date_histogram":{\n "field":"ts",\n "interval":"1s",\n "format":"yyyy-MM-dd:HH:mm:ss",\n "time_zone":"+08:00",\n "min_doc_count": 20,\n "order" : {\n "_count" : "desc"\n }\n }\n }\n }\n}\'\n#########\u67d0\u4e2aIP\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"sort": [{"ts": {"order": "desc"}}], \n "size" : 0,\n "query":{"constant_score":{\n "filter":{\n "bool":{\n "must":[{"term":{"ip":"101.132.122.94"}},\n {"range":{"ts":{\n "gte":"now-600s"\n }}}\n ]\n }\n }\n }},\n "aggs": {\n "groupby_hour_reqs":{\n "date_histogram":{\n "field":"ts",\n "interval":"1s",\n "format":"yyyy-MM-dd:HH:mm:ss",\n "time_zone":"+08:00",\n "min_doc_count": 1,\n "order" : {\n "_count" : "desc"\n }\n }\n }\n }\n}\'\n\n#\u4eca\u65e5\u8bbf\u95ee\u603b\u91cf\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"sort": [{"ts": {"order": "desc"}}], \n "size" : 0,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"23/May/2020:00:00:00 +0800"\n }}}}}\n}\'\n\n#\u5f53\u524d\u5c0f\u65f6\u8bbf\u95ee\u603b\u91cf\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"sort": [{"ts": {"order": "asc"}}], \n "size" : 1,\n "query":{"constant_score":{"filter":{"range":{"ts":{"gte":"now/h"}}}}}\n}\'\n\n#\u8fd1\u4e00\u4e2a\u6708\u8bbf\u95ee\u603b\u91cf--\u6309\u7167\u5929\u805a\u5408--\u6309\u7167\u65f6\u95f4\u6392\u5e8f --\u975e\u4e8c\u5f00\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"sort": [{"ts": {"order": "desc"}}], \n "size" : 0,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"now-1M"\n }}}}},\n "aggs": {\n "groupby_hour_reqs":{\n "date_histogram":{\n "field":"ts",\n "interval":"1d",\n "format":"yyyy-MM-dd",\n "time_zone":"+08:00",\n "min_doc_count": 0\n }\n }\n }\n}\'\n#\u8fd1\u4e00\u4e2a\u6708\u8bbf\u95ee\u603b\u91cf--\u6309\u7167\u5929\u805a\u5408--\u6309\u7167\u65f6\u95f4\u6392\u5e8f --\u4e8c\u5f00\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"sort": [{"ts": {"order": "desc"}}], \n "size" : 0,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"now-1M"\n }}}}},\n "aggs": {\n "groupby_hour_reqs":{\n "date_histogram":{\n "field":"ts",\n "interval":"1d",\n "format":"yyyy-MM-dd",\n "time_zone":"+08:00",\n "min_doc_count": 0\n }\n }\n }\n}\'\n')),(0,r.yg)("h4",{id:"\u8bbf\u95ee\u6700\u591a\u7684\u63a5\u53e3\u6392\u540d"},"\u8bbf\u95ee\u6700\u591a\u7684\u63a5\u53e3\u6392\u540d"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'# \u6240\u6709\u63a5\u53e3\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 0,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"22/May/2018:00:00:00 +0800"\n }}}}},\n "aggs": {"all_urls": {"terms": { "field": "url" }}}\n}\'\n\n# \u6628\u65e5\u63a5\u53e3\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 10,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"17/Dec/2020:00:00:00 +0800",\n "lte":"18/Dec/2020:00:00:00 +0800"\n }}}}},\n "aggs": {"all_urls": {"terms": { "field": "url" }}}\n}\'\n# \u4eca\u65e5\u63a5\u53e3\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 0,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"23/May/2020:00:00:00 +0800",\n "lte":"24/May/2020:00:00:00 +0800"\n }}}}},\n "aggs": {"all_urls": {"terms": { "field": "url" }}}\n }\'\n')),(0,r.yg)("h4",{id:"\u8bbf\u95ee\u6700\u591a\u7684ip\u6392\u540d"},"\u8bbf\u95ee\u6700\u591a\u7684IP\u6392\u540d"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'# \u6240\u6709IP\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 0,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"23/May/2018:00:00:00 +0800"\n }}}}},\n "aggs": {"all_ips": {"terms": { "field": "ip" , "size":10 }}}\n}\'\n \n# \u6628\u65e5IP\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 0,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"25/May/2020:00:00:00 +0800",\n "lte":"26/May/2020:00:00:00 +0800"\n }}}}},\n "aggs": {"all_ips": {"terms": { "field": "ip" , "size":10 }}}\n}\'\n \n# \u4eca\u65e5IP\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 0,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"7/Sep/2020:00:00:00 +0800",\n "lte":"8/Sep/2020:00:00:00 +0800"\n }}}}},\n "aggs": {"all_ips": {"terms": { "field": "ip" , "size":10 }}}\n}\'\n\n')),(0,r.yg)("ol",null,(0,r.yg)("li",{parentName:"ol"},"doc_count_error_upper_bound\u8868\u793a\u7684\u662f\u6bcf\u4e2a\u5206\u7247\u8fd4\u56de\u7684\u6700\u5c0f\u7684\u6570\u91cf\u603b\u548c\uff0c\u6bd4\u5982\u8fd9\u91cc\u76846\u5c31\u662f\u7b2c\u4e00\u4e2a\u5206\u7247\u4e2d\u7684d\u4e2d\u76844\u52a0\u4e0a\u7b2c\u4e8c\u5206\u7247\u4e2d\u7684b\u4e2d\u76842\u3002\u4e5f\u5c31\u662f\u8bf4ES\u8ba4\u4e3a\u90a3\u4e9b\u672c\u5e94\u8be5\u8fd4\u56de\u56de\u6765\u7684\u6587\u6863\u5047\u8bbe\u5b83\u5728\u6bcf\u4e2a\u5206\u7247\u4e0a\u7684\u6700\u5927\u503c\u5c31\u662f\u8fd4\u56de\u7684\u6700\u5c0f\u503c\u3002"),(0,r.yg)("li",{parentName:"ol"},"sum_other_doc_count\u5c31\u662f\u603b\u6587\u6863\u6570\u91cf\u51cf\u53bb\u8fd4\u56de\u7684\u6587\u6863\u603b\u6570\u91cf\u3002")),(0,r.yg)("h4",{id:"\u8bbf\u95ee\u6700\u591a\u7684url\u6392\u540d"},"\u8bbf\u95ee\u6700\u591a\u7684URL\u6392\u540d"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'# \u6240\u6709URL\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 0,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"23/May/2018:00:00:00 +0800"\n }}}}},\n "aggs": {"all_ips": {"terms": { "field": "url" , "size":10 }}}\n}\'\n \n# \u6628\u65e5URL\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 0,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"25/May/2020:00:00:00 +0800",\n "lte":"26/May/2020:00:00:00 +0800"\n }}}}},\n "aggs": {"all_ips": {"terms": { "field": "url" , "size":10 }}}\n}\'\n \n# \u4eca\u65e5URL\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 0,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"8/Jun/2020:00:00:00 +0800",\n "lte":"9/Jun/2020:00:00:00 +0800"\n }}}}},\n "aggs": {"all_ips": {"terms": { "field": "url" , "size":10 }}}\n}\'\n#########################################################\n# \u67d0\u4e2aIP\u6240\u6709URL\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 0,\n "query":{"constant_score":{\n "filter":{\n "bool":{\n "must":[{"term":{"ip":"101.132.122.94"}},\n {"range":{"ts":{\n "gte":"23/May/2018:00:00:00 +0800"\n }}}\n ]\n }\n }\n }},\n "aggs": {"all_ips": {"terms": { "field": "url" , "size":10 }}}\n}\'\n# \u67d0\u4e2aIP\u4eca\u65e5URL\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 1,\n "query":{"constant_score":{\n "filter":{\n "bool":{\n "must":[{"term":{"ip":"114.115.190.201"}},\n {"range":{"ts":{\n "gte":"7/Sep/2020:00:00:00 +0800",\n "lte":"8/Sep/2020:00:00:00 +0800"\n }}}\n ]\n }\n }\n }},\n "aggs": {"all_ips": {"terms": { "field": "url" , "size":10 }}}\n}\'\n\n\n')),(0,r.yg)("h4",{id:"ip\u548curl\u67e5\u8be2\u5217\u8868"},"ip\u548curl\u67e5\u8be2\u5217\u8868"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'# \ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 10,"sort": [{"ts": {"order": "desc"}}], \n "query":{"constant_score":{\n "filter":{\n "bool":{\n "must":[{"term":{"ip":"113.110.165.243"}},\n {"term":{"url":"/xxx/xxx"}},\n {"range":{"ts":{\n "gte":"11/Jun/2020:00:00:00 +0800",\n "lte":"12/Jun/2020:00:00:00 +0800"\n }}}\n ]\n }\n }\n }}\n}\'\n')),(0,r.yg)("h4",{id:"\u8bbf\u95ee\u6d4f\u89c8\u5668\u7c7b\u578b\u5206\u7c7b\u53ca\u6570\u91cf"},"\u8bbf\u95ee\u6d4f\u89c8\u5668\u7c7b\u578b\u5206\u7c7b\u53ca\u6570\u91cf"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'# \u6240\u6709\u6d4f\u89c8\u5668\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570\ncurl -XGET \'http://127.0.0.1:9200/rc_nginx_api/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 0,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"22/May/2018:00:00:00 +0800"\n }}}}},\n "aggs": {"all_uajnames": {"terms": { "field": "uaj.name" , "size":100 }}}\n }\'\n# \u6628\u65e5\u6d4f\u89c8\u5668\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 1,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"22/May/2020:00:00:00 +0800",\n "lte":"23/May/2020:00:00:00 +0800"\n }}}}},\n "aggs": {"all_uajnames": {"terms": { "field": "uaj.name" , "size":10 }}}\n }\'\n')),(0,r.yg)("h4",{id:"\u8bbf\u95ee\u6d4f\u89c8\u5668chrome\u7248\u672c\u53ca\u6570\u91cf"},"\u8bbf\u95ee\u6d4f\u89c8\u5668Chrome\u7248\u672c\u53ca\u6570\u91cf"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'# \u6240\u6709\u6d4f\u89c8\u5668\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570\ncurl -XGET \'http://127.0.0.1:9200/rc_nginx_api/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 1,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"22/May/2018:00:00:00 +0800"\n }}}}},\n "aggs": {"all_uajoss": {"terms": { "field": "uaj.major" , "size":10 }}}\n }\'\n# \u6628\u65e5\u6d4f\u89c8\u5668\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 1,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"22/May/2020:00:00:00 +0800",\n "lte":"23/May/2020:00:00:00 +0800"\n }}}}},\n "aggs": {"all_uajoss": {"terms": { "field": "uaj.major" , "size":10 }}}\n }\'\n')),(0,r.yg)("h4",{id:"\u8bbf\u95ee\u64cd\u4f5c\u7cfb\u7edf\u7c7b\u578b\u5206\u7c7b\u53ca\u6570\u91cf"},"\u8bbf\u95ee\u64cd\u4f5c\u7cfb\u7edf\u7c7b\u578b\u5206\u7c7b\u53ca\u6570\u91cf"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'# \u6240\u6709\u64cd\u4f5c\u7cfb\u7edf\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 1,\n "query":{\n "constant_score":{\n "filter":{\n "bool":{\n "must":[\n {"range":{"ts":{\n "gte":"22/May/2018:00:00:00 +0800"\n }}}\n ]\n }\n }\n }},\n "aggs": {"all_uajoss": {"terms": { "field": "uaj.os" , "size":100 }}}\n }\'\n')),(0,r.yg)("h4",{id:"\u8bbf\u95ee\u6700\u591a\u7684\u56fd\u5bb6\u6392\u540d"},"\u8bbf\u95ee\u6700\u591a\u7684\u56fd\u5bb6\u6392\u540d"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'# \u6240\u6709\u8bbf\u95ee\u56fd\u5bb6\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 0,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"22/May/2018:00:00:00 +0800"\n }}}}},\n "aggs": {"all_uajoss": {"terms": { "field": "ipj.country_name" , "size":10 }}}\n}\'\n# \u6628\u65e5\u8bbf\u95ee\u56fd\u5bb6\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 1,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"1/Jun/2020:00:00:00 +0800",\n "lte":"2/Jun/2020:00:00:00 +0800"\n }}}}},\n "aggs": {"all_uajoss": {"terms": { "field": "ipj.country_name" , "size":10 }}}\n}\'\n')),(0,r.yg)("h4",{id:"\u8bbf\u95ee\u6700\u591a\u7684\u7701\u4efd\u6392\u540d"},"\u8bbf\u95ee\u6700\u591a\u7684\u7701\u4efd\u6392\u540d"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'# \u6240\u6709\u8bbf\u95ee\u7701\u4efd\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 10,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"22/May/2018:00:00:00 +0800"\n }}}}},\n "aggs": {"all_uajoss": {"terms": { "field": "ipj.region_name" , "size":10 }}}\n}\'\n# \u6628\u65e5\u8bbf\u95ee\u7701\u4efd\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 1,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"31/May/2020:00:00:00 +0800",\n "lte":"2/Jun/2020:00:00:00 +0800"\n }}}}},\n "aggs": {"all_uajoss": {"terms": { "field": "ipj.region_name" , "size":10 }}}\n}\'\n')),(0,r.yg)("h4",{id:"\u8bbf\u95ee\u6700\u591a\u7684\u57ce\u5e02\u6392\u540d"},"\u8bbf\u95ee\u6700\u591a\u7684\u57ce\u5e02\u6392\u540d"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'# \u6240\u6709\u8bbf\u95ee\u57ce\u5e02\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 0,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"22/May/2018:00:00:00 +0800"\n }}}}},\n "aggs": {"all_uajoss": {"terms": { "field": "ipj.city_name" , "size":10 }}}\n}\'\n# \u6628\u65e5\u8bbf\u95ee\u57ce\u5e02\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 0,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"1/Jun/2020:00:00:00 +0800",\n "lte":"2/Jun/2020:00:00:00 +0800"\n }}}}},\n "aggs": {"all_uajoss": {"terms": { "field": "ipj.city_name" , "size":10 }}}\n}\'\n')),(0,r.yg)("h4",{id:"http\u54cd\u5e94\u7801\u975e200\u6570\u91cf\u53ca\u5217\u8868"},"HTTP\u54cd\u5e94\u7801\u975e200\u6570\u91cf\u53ca\u5217\u8868"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'# \u6240\u6709HTTP\u54cd\u5e94\u7801\u975e200\u5217\u8868\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 100,\n "query":{\n "constant_score":{\n "filter":{\n "bool":{\n "must_not":[\n {"term":{"code":"200"}}\n ],\n "must":[\n {"range":{"ts":{\n "gte":"22/May/2018:00:00:00 +0800"\n }}}\n ]\n }\n }\n }}\n }\'\n \n \n# \u6628\u65e5HTTP\u54cd\u5e94\u7801\u975e200\u5217\u8868\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 10,\n "query":{\n "constant_score":{\n "filter":{\n "bool":{\n "must_not":[\n {"term":{"code":"200"}}\n ],\n "must":[\n {"range":{"ts":{\n "gte":"25/May/2020:00:00:00 +0800",\n "lte":"26/May/2020:00:00:00 +0800"\n }}}\n ]\n }\n }\n }}\n }\'\n \n\n# \u6240\u6709HTTP\u54cd\u5e94\u7801\u975e200\u5206\u7c7b\u53ca\u8c03\u7528\u6570\u91cf\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 1,\n "query":{\n "constant_score":{\n "filter":{\n "bool":{\n "must_not":[\n {"term":{"code":"200"}}\n ],\n "must":[\n {"range":{"ts":{\n "gte":"22/May/2018:00:00:00 +0800"\n }}}\n ]\n }\n }\n }},\n "aggs": {"all_uajoss": {"terms": { "field": "code" , "size":100 }}}\n }\'\n\n\n# \u6628\u65e5HTTP\u54cd\u5e94\u7801\u975e200\u5206\u7c7b\u53ca\u8c03\u7528\u6570\u91cf\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 1,\n "query":{\n "constant_score":{\n "filter":{\n "bool":{\n "must_not":[\n {"term":{"code":"200"}}\n ],\n "must":[\n {"range":{"ts":{\n "gte":"22/May/2020:00:00:00 +0800",\n "lte":"23/May/2020:00:00:00 +0800"\n }}}\n ]\n }\n }\n }},\n "aggs": {"all_uajoss": {"terms": { "field": "code" , "size":100 }}}\n }\'\n\n\n# \u6240\u6709HTTP\u54cd\u5e94\u7801\u975e200(499)url\u5206\u7c7b\u53ca\u8c03\u7528\u6570\u91cf\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 1,\n "query":{\n "constant_score":{\n "filter":{\n "bool":{\n "must":[{"term":{"code":"499"}},\n {"range":{"ts":{\n "gte":"22/May/2018:00:00:00 +0800"\n }}}\n ]\n }\n }\n }},\n "aggs": {"all_uajoss": {"terms": { "field": "url" , "size":10 }}}\n }\'\n \n# \u6628\u65e5HTTP\u54cd\u5e94\u7801\u975e200(499)url\u5206\u7c7b\u53ca\u8c03\u7528\u6570\u91cf\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 1,\n "query":{\n "constant_score":{\n "filter":{\n "bool":{\n "must":[{"term":{"code":"499"}},\n {"range":{"ts":{\n "gte":"22/May/2020:00:00:00 +0800",\n "lte":"23/May/2020:00:00:00 +0800"\n }}}\n ]\n }\n }\n }},\n "aggs": {"all_uajoss": {"terms": { "field": "url" , "size":10 }}}\n }\'\n\n\n# \u6240\u6709HTTP\u54cd\u5e94\u7801\u975e200(404)url\u5206\u7c7b\u53ca\u8c03\u7528\u6570\u91cf\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 1,\n "query":{\n "constant_score":{\n "filter":{\n "bool":{\n "must":[{"term":{"code":"404"}},\n {"range":{"ts":{\n "gte":"22/May/2018:00:00:00 +0800"\n }}}\n ]\n }\n }\n }},\n "aggs": {"all_uajoss": {"terms": { "field": "url" , "size":10 }}}\n }\'\n\n# \u6628\u65e5HTTP\u54cd\u5e94\u7801\u975e200(404)url\u5206\u7c7b\u53ca\u8c03\u7528\u6570\u91cf\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 1,\n "query":{\n "constant_score":{\n "filter":{\n "bool":{\n "must":[{"term":{"code":"404"}},\n {"range":{"ts":{\n "gte":"22/May/2020:00:00:00 +0800",\n "lte":"23/May/2020:00:00:00 +0800"\n }}}\n ]\n }\n }\n }},\n "aggs": {"all_uajoss": {"terms": { "field": "url" , "size":10 }}}\n }\'\n')),(0,r.yg)("h4",{id:"http-method\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570"},"HTTP method\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'# \u6240\u6709HTTP method\u5206\u7c7b\u53ca\u6570\u91cf\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 1,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"22/May/2018:00:00:00 +0800"\n }}}}},\n "aggs": {"all_uajnames": {"terms": { "field": "method" , "size":10 }}}\n }\'\n')),(0,r.yg)("h4",{id:"site\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570"},"site\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'# \u6240\u6709site\u5206\u7c7b\u53ca\u6570\u91cf\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 0,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"22/May/2018:00:00:00 +0800"\n }}}}},\n "aggs": {"all_uajnames": {"terms": { "field": "site" , "size":100 }}}\n}\'\n# \u67d0\u4e2aIP\u4eca\u65e5site\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 0,"sort": [{"ts": {"order": "desc"}}], \n "query":{"constant_score":{\n "filter":{\n "bool":{\n "must":[{"term":{"ip":"114.115.190.196"}},\n {"range":{"ts":{\n "gte":"8/Jun/2020:00:00:00 +0800",\n "lte":"9/Jun/2020:00:00:00 +0800"\n }}}\n ]\n }\n }\n }},\n "aggs": {"all_ips": {"terms": { "field": "site" , "size":10 }}}\n}\' \n')),(0,r.yg)("h4",{id:"httpv\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570"},"httpv\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'# \u6240\u6709HTTP method\u5206\u7c7b\u53ca\u6570\u91cf\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 1,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"22/May/2018:00:00:00 +0800"\n }}}}},\n "aggs": {"all_uajnames": {"terms": { "field": "httpv" , "size":10 }}}\n }\'\n')),(0,r.yg)("h4",{id:"url\u8bbf\u95eeip\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570"},"URL\u8bbf\u95eeIP\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'# URL\u8bbf\u95eeIP\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570--\u67e5\u8be2\u5386\u53f2\u8bb0\u5f55\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 0,\n "query":{"constant_score":{\n "filter":{\n "bool":{\n "must":[{"term":{"url":"/xxx/xx/xx"}},\n {"range":{"ts":{\n "gte":"8/Jun/2020:00:00:00 +0800",\n "lte":"9/Jun/2020:00:00:00 +0800"\n }}}\n ]\n }\n }\n }},\n "aggs": {"all_urls": {"terms": { "field": "ip" }}}\n}\'\n\n# URL\u8bbf\u95eeIP\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570--\u767b\u5f55\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 0,\n "query":{"constant_score":{\n "filter":{\n "bool":{\n "must":[{"term":{"url":"/xx/xx/xx"}},\n {"range":{"ts":{\n "gte":"8/Jun/2020:00:00:00 +0800",\n "lte":"9/Jun/2020:00:00:00 +0800"\n }}}\n ]\n }\n }\n }},\n "aggs": {"all_urls": {"terms": { "field": "ip" }}}\n}\'\n')),(0,r.yg)("h4",{id:"\u6700\u6d3b\u8dc3\u7684\u67d0\u7c7bsite"},"\u6700\u6d3b\u8dc3\u7684\u67d0\u7c7bsite"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'#10\u5927\u6700\u6d3b\u8dc3\u7684\u5206\u4eab\u7ec4\u6001\ncurl -XPOST \'http://127.0.0.1:9200/{\u5177\u4f53\u7684e\'s}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 0,\n "query":{\n "wildcard": {\n "site": "*show.html*share*"\n }\n },\n "aggs": {"all_ips": {"terms": { "field": "site" , "size":100 }}}\n}\'\n')))}y.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[225],{5680:(n,e,t)=>{t.d(e,{xA:()=>c,yg:()=>d});var s=t(6540);function r(n,e,t){return e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function a(n,e){var t=Object.keys(n);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(n);e&&(s=s.filter((function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),t.push.apply(t,s)}return t}function l(n){for(var e=1;e=0||(r[t]=n[t]);return r}(n,e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(n);for(s=0;s=0||Object.prototype.propertyIsEnumerable.call(n,t)&&(r[t]=n[t])}return r}var i=s.createContext({}),p=function(n){var e=s.useContext(i),t=e;return n&&(t="function"==typeof n?n(e):l(l({},e),n)),t},c=function(n){var e=p(n.components);return s.createElement(i.Provider,{value:e},n.children)},u="mdxType",y={inlineCode:"code",wrapper:function(n){var e=n.children;return s.createElement(s.Fragment,{},e)}},g=s.forwardRef((function(n,e){var t=n.components,r=n.mdxType,a=n.originalType,i=n.parentName,c=o(n,["components","mdxType","originalType","parentName"]),u=p(t),g=r,d=u["".concat(i,".").concat(g)]||u[g]||y[g]||a;return t?s.createElement(d,l(l({ref:e},c),{},{components:t})):s.createElement(d,l({ref:e},c))}));function d(n,e){var t=arguments,r=e&&e.mdxType;if("string"==typeof n||r){var a=t.length,l=new Array(a);l[0]=g;var o={};for(var i in e)hasOwnProperty.call(e,i)&&(o[i]=e[i]);o.originalType=n,o[u]="string"==typeof n?n:r,l[1]=o;for(var p=2;p{t.r(e),t.d(e,{assets:()=>i,contentTitle:()=>l,default:()=>y,frontMatter:()=>a,metadata:()=>o,toc:()=>p});var s=t(8168),r=(t(6540),t(5680));const a={sidebar_position:2},l=void 0,o={unversionedId:"study/devops/API\u7684\u8bf7\u6c42\u91cf\u5206\u6790",id:"study/devops/API\u7684\u8bf7\u6c42\u91cf\u5206\u6790",title:"API\u7684\u8bf7\u6c42\u91cf\u5206\u6790",description:"\u6570\u636e\u6d41\u5411",source:"@site/docs/study/devops/API\u7684\u8bf7\u6c42\u91cf\u5206\u6790.md",sourceDirName:"study/devops",slug:"/study/devops/API\u7684\u8bf7\u6c42\u91cf\u5206\u6790",permalink:"/docs/study/devops/API\u7684\u8bf7\u6c42\u91cf\u5206\u6790",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"studySidebar",previous:{title:"\u6982\u8ff0",permalink:"/docs/study/devops/"},next:{title:"Linux\u8fd0\u7ef4-\u5e38\u7528",permalink:"/docs/study/devops/Linux\u8fd0\u7ef4-\u5e38\u7528"}},i={},p=[{value:"\u6570\u636e\u6d41\u5411",id:"\u6570\u636e\u6d41\u5411",level:3},{value:"\u5206\u6790\u70b9",id:"\u5206\u6790\u70b9",level:3},{value:"\u63a5\u53e3\u8bbf\u95ee\u91cf",id:"\u63a5\u53e3\u8bbf\u95ee\u91cf",level:4},{value:"\u8bbf\u95ee\u6700\u591a\u7684\u63a5\u53e3\u6392\u540d",id:"\u8bbf\u95ee\u6700\u591a\u7684\u63a5\u53e3\u6392\u540d",level:4},{value:"\u8bbf\u95ee\u6700\u591a\u7684IP\u6392\u540d",id:"\u8bbf\u95ee\u6700\u591a\u7684ip\u6392\u540d",level:4},{value:"\u8bbf\u95ee\u6700\u591a\u7684URL\u6392\u540d",id:"\u8bbf\u95ee\u6700\u591a\u7684url\u6392\u540d",level:4},{value:"ip\u548curl\u67e5\u8be2\u5217\u8868",id:"ip\u548curl\u67e5\u8be2\u5217\u8868",level:4},{value:"\u8bbf\u95ee\u6d4f\u89c8\u5668\u7c7b\u578b\u5206\u7c7b\u53ca\u6570\u91cf",id:"\u8bbf\u95ee\u6d4f\u89c8\u5668\u7c7b\u578b\u5206\u7c7b\u53ca\u6570\u91cf",level:4},{value:"\u8bbf\u95ee\u6d4f\u89c8\u5668Chrome\u7248\u672c\u53ca\u6570\u91cf",id:"\u8bbf\u95ee\u6d4f\u89c8\u5668chrome\u7248\u672c\u53ca\u6570\u91cf",level:4},{value:"\u8bbf\u95ee\u64cd\u4f5c\u7cfb\u7edf\u7c7b\u578b\u5206\u7c7b\u53ca\u6570\u91cf",id:"\u8bbf\u95ee\u64cd\u4f5c\u7cfb\u7edf\u7c7b\u578b\u5206\u7c7b\u53ca\u6570\u91cf",level:4},{value:"\u8bbf\u95ee\u6700\u591a\u7684\u56fd\u5bb6\u6392\u540d",id:"\u8bbf\u95ee\u6700\u591a\u7684\u56fd\u5bb6\u6392\u540d",level:4},{value:"\u8bbf\u95ee\u6700\u591a\u7684\u7701\u4efd\u6392\u540d",id:"\u8bbf\u95ee\u6700\u591a\u7684\u7701\u4efd\u6392\u540d",level:4},{value:"\u8bbf\u95ee\u6700\u591a\u7684\u57ce\u5e02\u6392\u540d",id:"\u8bbf\u95ee\u6700\u591a\u7684\u57ce\u5e02\u6392\u540d",level:4},{value:"HTTP\u54cd\u5e94\u7801\u975e200\u6570\u91cf\u53ca\u5217\u8868",id:"http\u54cd\u5e94\u7801\u975e200\u6570\u91cf\u53ca\u5217\u8868",level:4},{value:"HTTP method\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570",id:"http-method\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570",level:4},{value:"site\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570",id:"site\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570",level:4},{value:"httpv\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570",id:"httpv\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570",level:4},{value:"URL\u8bbf\u95eeIP\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570",id:"url\u8bbf\u95eeip\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570",level:4},{value:"\u6700\u6d3b\u8dc3\u7684\u67d0\u7c7bsite",id:"\u6700\u6d3b\u8dc3\u7684\u67d0\u7c7bsite",level:4}],c={toc:p},u="wrapper";function y(n){let{components:e,...t}=n;return(0,r.yg)(u,(0,s.A)({},c,t,{components:e,mdxType:"MDXLayout"}),(0,r.yg)("h3",{id:"\u6570\u636e\u6d41\u5411"},"\u6570\u636e\u6d41\u5411"),(0,r.yg)("p",null,"\u6d4f\u89c8\u5668 \u300bNginx \u300bAPI \u300b\u4ea7\u751fNginx log\u65e5\u5fd7 \u300bFilebeat \u300bLogstash \u300bElasticSearch"),(0,r.yg)("h3",{id:"\u5206\u6790\u70b9"},"\u5206\u6790\u70b9"),(0,r.yg)("h4",{id:"\u63a5\u53e3\u8bbf\u95ee\u91cf"},"\u63a5\u53e3\u8bbf\u95ee\u91cf"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'#\u8bbf\u95ee\u603b\u91cf\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \'{"size" : 0 }\'\n\n#\u6628\u65e5\u8bbf\u95ee\u603b\u91cf\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"sort": [{"ts": {"order": "desc"}}], \n "size" : 0,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"24/May/2020:00:00:00 +0800",\n "lte":"25/May/2020:00:00:00 +0800"\n }}}}}\n}\'\n\n#\u6628\u65e5\u8bbf\u95ee\u603b\u91cf--\u6309\u7167\u5c0f\u65f6\u805a\u5408--\u6309\u7167\u65f6\u95f4\u6392\u5e8f\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"sort": [{"ts": {"order": "desc"}}], \n "size" : 0,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"16/Jun/2020:00:00:00 +0800",\n "lte":"17/Jun/2020:00:00:00 +0800"\n }}}}},\n "aggs": {\n "groupby_hour_reqs":{\n "date_histogram":{\n "field":"ts",\n "interval":"1h",\n "format":"yyyy-MM-dd:HH",\n "time_zone":"+08:00",\n "min_doc_count": 0\n }\n }\n }\n}\'\n\n#\u6628\u65e5\u8bbf\u95ee\u603b\u91cf--\u6309\u7167\u5c0f\u65f6\u805a\u5408--\u6309\u7167\u8bbf\u95ee\u91cf\u6392\u5e8f\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"sort": [{"ts": {"order": "desc"}}], \n "size" : 0,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"25/May/2020:00:00:00 +0800",\n "lte":"26/May/2020:00:00:00 +0800"\n }}}}},\n "aggs": {\n "groupby_hour_reqs":{\n "date_histogram":{\n "field":"ts",\n "interval":"1h",\n "format":"yyyy-MM-dd:HH",\n "time_zone":"+08:00",\n "min_doc_count": 0,\n "order" : {\n "_count" : "desc"\n }\n }\n }\n }\n}\'\n#100s\u5185\u8bbf\u95ee\u603b\u91cf--\u6309\u7167\u79d2\u805a\u5408--\u6309\u7167\u8bbf\u95ee\u91cf\u6392\u5e8f==QPS###################\n#########\u6240\u6709\u8bbf\u95ee\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"sort": [{"ts": {"order": "desc"}}], \n "size" : 0,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"now-100s"\n }}}}},\n "aggs": {\n "groupby_hour_reqs":{\n "date_histogram":{\n "field":"ts",\n "interval":"1s",\n "format":"yyyy-MM-dd:HH:mm:ss",\n "time_zone":"+08:00",\n "min_doc_count": 20,\n "order" : {\n "_count" : "desc"\n }\n }\n }\n }\n}\'\n#########\u67d0\u4e2aIP\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"sort": [{"ts": {"order": "desc"}}], \n "size" : 0,\n "query":{"constant_score":{\n "filter":{\n "bool":{\n "must":[{"term":{"ip":"101.132.122.94"}},\n {"range":{"ts":{\n "gte":"now-600s"\n }}}\n ]\n }\n }\n }},\n "aggs": {\n "groupby_hour_reqs":{\n "date_histogram":{\n "field":"ts",\n "interval":"1s",\n "format":"yyyy-MM-dd:HH:mm:ss",\n "time_zone":"+08:00",\n "min_doc_count": 1,\n "order" : {\n "_count" : "desc"\n }\n }\n }\n }\n}\'\n\n#\u4eca\u65e5\u8bbf\u95ee\u603b\u91cf\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"sort": [{"ts": {"order": "desc"}}], \n "size" : 0,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"23/May/2020:00:00:00 +0800"\n }}}}}\n}\'\n\n#\u5f53\u524d\u5c0f\u65f6\u8bbf\u95ee\u603b\u91cf\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"sort": [{"ts": {"order": "asc"}}], \n "size" : 1,\n "query":{"constant_score":{"filter":{"range":{"ts":{"gte":"now/h"}}}}}\n}\'\n\n#\u8fd1\u4e00\u4e2a\u6708\u8bbf\u95ee\u603b\u91cf--\u6309\u7167\u5929\u805a\u5408--\u6309\u7167\u65f6\u95f4\u6392\u5e8f --\u975e\u4e8c\u5f00\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"sort": [{"ts": {"order": "desc"}}], \n "size" : 0,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"now-1M"\n }}}}},\n "aggs": {\n "groupby_hour_reqs":{\n "date_histogram":{\n "field":"ts",\n "interval":"1d",\n "format":"yyyy-MM-dd",\n "time_zone":"+08:00",\n "min_doc_count": 0\n }\n }\n }\n}\'\n#\u8fd1\u4e00\u4e2a\u6708\u8bbf\u95ee\u603b\u91cf--\u6309\u7167\u5929\u805a\u5408--\u6309\u7167\u65f6\u95f4\u6392\u5e8f --\u4e8c\u5f00\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"sort": [{"ts": {"order": "desc"}}], \n "size" : 0,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"now-1M"\n }}}}},\n "aggs": {\n "groupby_hour_reqs":{\n "date_histogram":{\n "field":"ts",\n "interval":"1d",\n "format":"yyyy-MM-dd",\n "time_zone":"+08:00",\n "min_doc_count": 0\n }\n }\n }\n}\'\n')),(0,r.yg)("h4",{id:"\u8bbf\u95ee\u6700\u591a\u7684\u63a5\u53e3\u6392\u540d"},"\u8bbf\u95ee\u6700\u591a\u7684\u63a5\u53e3\u6392\u540d"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'# \u6240\u6709\u63a5\u53e3\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 0,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"22/May/2018:00:00:00 +0800"\n }}}}},\n "aggs": {"all_urls": {"terms": { "field": "url" }}}\n}\'\n\n# \u6628\u65e5\u63a5\u53e3\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 10,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"17/Dec/2020:00:00:00 +0800",\n "lte":"18/Dec/2020:00:00:00 +0800"\n }}}}},\n "aggs": {"all_urls": {"terms": { "field": "url" }}}\n}\'\n# \u4eca\u65e5\u63a5\u53e3\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 0,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"23/May/2020:00:00:00 +0800",\n "lte":"24/May/2020:00:00:00 +0800"\n }}}}},\n "aggs": {"all_urls": {"terms": { "field": "url" }}}\n }\'\n')),(0,r.yg)("h4",{id:"\u8bbf\u95ee\u6700\u591a\u7684ip\u6392\u540d"},"\u8bbf\u95ee\u6700\u591a\u7684IP\u6392\u540d"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'# \u6240\u6709IP\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 0,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"23/May/2018:00:00:00 +0800"\n }}}}},\n "aggs": {"all_ips": {"terms": { "field": "ip" , "size":10 }}}\n}\'\n \n# \u6628\u65e5IP\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 0,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"25/May/2020:00:00:00 +0800",\n "lte":"26/May/2020:00:00:00 +0800"\n }}}}},\n "aggs": {"all_ips": {"terms": { "field": "ip" , "size":10 }}}\n}\'\n \n# \u4eca\u65e5IP\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 0,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"7/Sep/2020:00:00:00 +0800",\n "lte":"8/Sep/2020:00:00:00 +0800"\n }}}}},\n "aggs": {"all_ips": {"terms": { "field": "ip" , "size":10 }}}\n}\'\n\n')),(0,r.yg)("ol",null,(0,r.yg)("li",{parentName:"ol"},"doc_count_error_upper_bound\u8868\u793a\u7684\u662f\u6bcf\u4e2a\u5206\u7247\u8fd4\u56de\u7684\u6700\u5c0f\u7684\u6570\u91cf\u603b\u548c\uff0c\u6bd4\u5982\u8fd9\u91cc\u76846\u5c31\u662f\u7b2c\u4e00\u4e2a\u5206\u7247\u4e2d\u7684d\u4e2d\u76844\u52a0\u4e0a\u7b2c\u4e8c\u5206\u7247\u4e2d\u7684b\u4e2d\u76842\u3002\u4e5f\u5c31\u662f\u8bf4ES\u8ba4\u4e3a\u90a3\u4e9b\u672c\u5e94\u8be5\u8fd4\u56de\u56de\u6765\u7684\u6587\u6863\u5047\u8bbe\u5b83\u5728\u6bcf\u4e2a\u5206\u7247\u4e0a\u7684\u6700\u5927\u503c\u5c31\u662f\u8fd4\u56de\u7684\u6700\u5c0f\u503c\u3002"),(0,r.yg)("li",{parentName:"ol"},"sum_other_doc_count\u5c31\u662f\u603b\u6587\u6863\u6570\u91cf\u51cf\u53bb\u8fd4\u56de\u7684\u6587\u6863\u603b\u6570\u91cf\u3002")),(0,r.yg)("h4",{id:"\u8bbf\u95ee\u6700\u591a\u7684url\u6392\u540d"},"\u8bbf\u95ee\u6700\u591a\u7684URL\u6392\u540d"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'# \u6240\u6709URL\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 0,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"23/May/2018:00:00:00 +0800"\n }}}}},\n "aggs": {"all_ips": {"terms": { "field": "url" , "size":10 }}}\n}\'\n \n# \u6628\u65e5URL\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 0,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"25/May/2020:00:00:00 +0800",\n "lte":"26/May/2020:00:00:00 +0800"\n }}}}},\n "aggs": {"all_ips": {"terms": { "field": "url" , "size":10 }}}\n}\'\n \n# \u4eca\u65e5URL\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 0,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"8/Jun/2020:00:00:00 +0800",\n "lte":"9/Jun/2020:00:00:00 +0800"\n }}}}},\n "aggs": {"all_ips": {"terms": { "field": "url" , "size":10 }}}\n}\'\n#########################################################\n# \u67d0\u4e2aIP\u6240\u6709URL\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 0,\n "query":{"constant_score":{\n "filter":{\n "bool":{\n "must":[{"term":{"ip":"101.132.122.94"}},\n {"range":{"ts":{\n "gte":"23/May/2018:00:00:00 +0800"\n }}}\n ]\n }\n }\n }},\n "aggs": {"all_ips": {"terms": { "field": "url" , "size":10 }}}\n}\'\n# \u67d0\u4e2aIP\u4eca\u65e5URL\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 1,\n "query":{"constant_score":{\n "filter":{\n "bool":{\n "must":[{"term":{"ip":"114.115.190.201"}},\n {"range":{"ts":{\n "gte":"7/Sep/2020:00:00:00 +0800",\n "lte":"8/Sep/2020:00:00:00 +0800"\n }}}\n ]\n }\n }\n }},\n "aggs": {"all_ips": {"terms": { "field": "url" , "size":10 }}}\n}\'\n\n\n')),(0,r.yg)("h4",{id:"ip\u548curl\u67e5\u8be2\u5217\u8868"},"ip\u548curl\u67e5\u8be2\u5217\u8868"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'# \ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 10,"sort": [{"ts": {"order": "desc"}}], \n "query":{"constant_score":{\n "filter":{\n "bool":{\n "must":[{"term":{"ip":"113.110.165.243"}},\n {"term":{"url":"/xxx/xxx"}},\n {"range":{"ts":{\n "gte":"11/Jun/2020:00:00:00 +0800",\n "lte":"12/Jun/2020:00:00:00 +0800"\n }}}\n ]\n }\n }\n }}\n}\'\n')),(0,r.yg)("h4",{id:"\u8bbf\u95ee\u6d4f\u89c8\u5668\u7c7b\u578b\u5206\u7c7b\u53ca\u6570\u91cf"},"\u8bbf\u95ee\u6d4f\u89c8\u5668\u7c7b\u578b\u5206\u7c7b\u53ca\u6570\u91cf"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'# \u6240\u6709\u6d4f\u89c8\u5668\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570\ncurl -XGET \'http://127.0.0.1:9200/rc_nginx_api/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 0,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"22/May/2018:00:00:00 +0800"\n }}}}},\n "aggs": {"all_uajnames": {"terms": { "field": "uaj.name" , "size":100 }}}\n }\'\n# \u6628\u65e5\u6d4f\u89c8\u5668\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 1,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"22/May/2020:00:00:00 +0800",\n "lte":"23/May/2020:00:00:00 +0800"\n }}}}},\n "aggs": {"all_uajnames": {"terms": { "field": "uaj.name" , "size":10 }}}\n }\'\n')),(0,r.yg)("h4",{id:"\u8bbf\u95ee\u6d4f\u89c8\u5668chrome\u7248\u672c\u53ca\u6570\u91cf"},"\u8bbf\u95ee\u6d4f\u89c8\u5668Chrome\u7248\u672c\u53ca\u6570\u91cf"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'# \u6240\u6709\u6d4f\u89c8\u5668\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570\ncurl -XGET \'http://127.0.0.1:9200/rc_nginx_api/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 1,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"22/May/2018:00:00:00 +0800"\n }}}}},\n "aggs": {"all_uajoss": {"terms": { "field": "uaj.major" , "size":10 }}}\n }\'\n# \u6628\u65e5\u6d4f\u89c8\u5668\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 1,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"22/May/2020:00:00:00 +0800",\n "lte":"23/May/2020:00:00:00 +0800"\n }}}}},\n "aggs": {"all_uajoss": {"terms": { "field": "uaj.major" , "size":10 }}}\n }\'\n')),(0,r.yg)("h4",{id:"\u8bbf\u95ee\u64cd\u4f5c\u7cfb\u7edf\u7c7b\u578b\u5206\u7c7b\u53ca\u6570\u91cf"},"\u8bbf\u95ee\u64cd\u4f5c\u7cfb\u7edf\u7c7b\u578b\u5206\u7c7b\u53ca\u6570\u91cf"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'# \u6240\u6709\u64cd\u4f5c\u7cfb\u7edf\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 1,\n "query":{\n "constant_score":{\n "filter":{\n "bool":{\n "must":[\n {"range":{"ts":{\n "gte":"22/May/2018:00:00:00 +0800"\n }}}\n ]\n }\n }\n }},\n "aggs": {"all_uajoss": {"terms": { "field": "uaj.os" , "size":100 }}}\n }\'\n')),(0,r.yg)("h4",{id:"\u8bbf\u95ee\u6700\u591a\u7684\u56fd\u5bb6\u6392\u540d"},"\u8bbf\u95ee\u6700\u591a\u7684\u56fd\u5bb6\u6392\u540d"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'# \u6240\u6709\u8bbf\u95ee\u56fd\u5bb6\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 0,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"22/May/2018:00:00:00 +0800"\n }}}}},\n "aggs": {"all_uajoss": {"terms": { "field": "ipj.country_name" , "size":10 }}}\n}\'\n# \u6628\u65e5\u8bbf\u95ee\u56fd\u5bb6\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 1,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"1/Jun/2020:00:00:00 +0800",\n "lte":"2/Jun/2020:00:00:00 +0800"\n }}}}},\n "aggs": {"all_uajoss": {"terms": { "field": "ipj.country_name" , "size":10 }}}\n}\'\n')),(0,r.yg)("h4",{id:"\u8bbf\u95ee\u6700\u591a\u7684\u7701\u4efd\u6392\u540d"},"\u8bbf\u95ee\u6700\u591a\u7684\u7701\u4efd\u6392\u540d"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'# \u6240\u6709\u8bbf\u95ee\u7701\u4efd\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 10,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"22/May/2018:00:00:00 +0800"\n }}}}},\n "aggs": {"all_uajoss": {"terms": { "field": "ipj.region_name" , "size":10 }}}\n}\'\n# \u6628\u65e5\u8bbf\u95ee\u7701\u4efd\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 1,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"31/May/2020:00:00:00 +0800",\n "lte":"2/Jun/2020:00:00:00 +0800"\n }}}}},\n "aggs": {"all_uajoss": {"terms": { "field": "ipj.region_name" , "size":10 }}}\n}\'\n')),(0,r.yg)("h4",{id:"\u8bbf\u95ee\u6700\u591a\u7684\u57ce\u5e02\u6392\u540d"},"\u8bbf\u95ee\u6700\u591a\u7684\u57ce\u5e02\u6392\u540d"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'# \u6240\u6709\u8bbf\u95ee\u57ce\u5e02\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 0,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"22/May/2018:00:00:00 +0800"\n }}}}},\n "aggs": {"all_uajoss": {"terms": { "field": "ipj.city_name" , "size":10 }}}\n}\'\n# \u6628\u65e5\u8bbf\u95ee\u57ce\u5e02\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 0,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"1/Jun/2020:00:00:00 +0800",\n "lte":"2/Jun/2020:00:00:00 +0800"\n }}}}},\n "aggs": {"all_uajoss": {"terms": { "field": "ipj.city_name" , "size":10 }}}\n}\'\n')),(0,r.yg)("h4",{id:"http\u54cd\u5e94\u7801\u975e200\u6570\u91cf\u53ca\u5217\u8868"},"HTTP\u54cd\u5e94\u7801\u975e200\u6570\u91cf\u53ca\u5217\u8868"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'# \u6240\u6709HTTP\u54cd\u5e94\u7801\u975e200\u5217\u8868\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 100,\n "query":{\n "constant_score":{\n "filter":{\n "bool":{\n "must_not":[\n {"term":{"code":"200"}}\n ],\n "must":[\n {"range":{"ts":{\n "gte":"22/May/2018:00:00:00 +0800"\n }}}\n ]\n }\n }\n }}\n }\'\n \n \n# \u6628\u65e5HTTP\u54cd\u5e94\u7801\u975e200\u5217\u8868\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 10,\n "query":{\n "constant_score":{\n "filter":{\n "bool":{\n "must_not":[\n {"term":{"code":"200"}}\n ],\n "must":[\n {"range":{"ts":{\n "gte":"25/May/2020:00:00:00 +0800",\n "lte":"26/May/2020:00:00:00 +0800"\n }}}\n ]\n }\n }\n }}\n }\'\n \n\n# \u6240\u6709HTTP\u54cd\u5e94\u7801\u975e200\u5206\u7c7b\u53ca\u8c03\u7528\u6570\u91cf\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 1,\n "query":{\n "constant_score":{\n "filter":{\n "bool":{\n "must_not":[\n {"term":{"code":"200"}}\n ],\n "must":[\n {"range":{"ts":{\n "gte":"22/May/2018:00:00:00 +0800"\n }}}\n ]\n }\n }\n }},\n "aggs": {"all_uajoss": {"terms": { "field": "code" , "size":100 }}}\n }\'\n\n\n# \u6628\u65e5HTTP\u54cd\u5e94\u7801\u975e200\u5206\u7c7b\u53ca\u8c03\u7528\u6570\u91cf\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 1,\n "query":{\n "constant_score":{\n "filter":{\n "bool":{\n "must_not":[\n {"term":{"code":"200"}}\n ],\n "must":[\n {"range":{"ts":{\n "gte":"22/May/2020:00:00:00 +0800",\n "lte":"23/May/2020:00:00:00 +0800"\n }}}\n ]\n }\n }\n }},\n "aggs": {"all_uajoss": {"terms": { "field": "code" , "size":100 }}}\n }\'\n\n\n# \u6240\u6709HTTP\u54cd\u5e94\u7801\u975e200(499)url\u5206\u7c7b\u53ca\u8c03\u7528\u6570\u91cf\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 1,\n "query":{\n "constant_score":{\n "filter":{\n "bool":{\n "must":[{"term":{"code":"499"}},\n {"range":{"ts":{\n "gte":"22/May/2018:00:00:00 +0800"\n }}}\n ]\n }\n }\n }},\n "aggs": {"all_uajoss": {"terms": { "field": "url" , "size":10 }}}\n }\'\n \n# \u6628\u65e5HTTP\u54cd\u5e94\u7801\u975e200(499)url\u5206\u7c7b\u53ca\u8c03\u7528\u6570\u91cf\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 1,\n "query":{\n "constant_score":{\n "filter":{\n "bool":{\n "must":[{"term":{"code":"499"}},\n {"range":{"ts":{\n "gte":"22/May/2020:00:00:00 +0800",\n "lte":"23/May/2020:00:00:00 +0800"\n }}}\n ]\n }\n }\n }},\n "aggs": {"all_uajoss": {"terms": { "field": "url" , "size":10 }}}\n }\'\n\n\n# \u6240\u6709HTTP\u54cd\u5e94\u7801\u975e200(404)url\u5206\u7c7b\u53ca\u8c03\u7528\u6570\u91cf\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 1,\n "query":{\n "constant_score":{\n "filter":{\n "bool":{\n "must":[{"term":{"code":"404"}},\n {"range":{"ts":{\n "gte":"22/May/2018:00:00:00 +0800"\n }}}\n ]\n }\n }\n }},\n "aggs": {"all_uajoss": {"terms": { "field": "url" , "size":10 }}}\n }\'\n\n# \u6628\u65e5HTTP\u54cd\u5e94\u7801\u975e200(404)url\u5206\u7c7b\u53ca\u8c03\u7528\u6570\u91cf\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 1,\n "query":{\n "constant_score":{\n "filter":{\n "bool":{\n "must":[{"term":{"code":"404"}},\n {"range":{"ts":{\n "gte":"22/May/2020:00:00:00 +0800",\n "lte":"23/May/2020:00:00:00 +0800"\n }}}\n ]\n }\n }\n }},\n "aggs": {"all_uajoss": {"terms": { "field": "url" , "size":10 }}}\n }\'\n')),(0,r.yg)("h4",{id:"http-method\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570"},"HTTP method\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'# \u6240\u6709HTTP method\u5206\u7c7b\u53ca\u6570\u91cf\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 1,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"22/May/2018:00:00:00 +0800"\n }}}}},\n "aggs": {"all_uajnames": {"terms": { "field": "method" , "size":10 }}}\n }\'\n')),(0,r.yg)("h4",{id:"site\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570"},"site\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'# \u6240\u6709site\u5206\u7c7b\u53ca\u6570\u91cf\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 0,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"22/May/2018:00:00:00 +0800"\n }}}}},\n "aggs": {"all_uajnames": {"terms": { "field": "site" , "size":100 }}}\n}\'\n# \u67d0\u4e2aIP\u4eca\u65e5site\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 0,"sort": [{"ts": {"order": "desc"}}], \n "query":{"constant_score":{\n "filter":{\n "bool":{\n "must":[{"term":{"ip":"114.115.190.196"}},\n {"range":{"ts":{\n "gte":"8/Jun/2020:00:00:00 +0800",\n "lte":"9/Jun/2020:00:00:00 +0800"\n }}}\n ]\n }\n }\n }},\n "aggs": {"all_ips": {"terms": { "field": "site" , "size":10 }}}\n}\' \n')),(0,r.yg)("h4",{id:"httpv\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570"},"httpv\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'# \u6240\u6709HTTP method\u5206\u7c7b\u53ca\u6570\u91cf\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 1,\n "query":{"constant_score":{"filter":{"range":{"ts":{\n "gte":"22/May/2018:00:00:00 +0800"\n }}}}},\n "aggs": {"all_uajnames": {"terms": { "field": "httpv" , "size":10 }}}\n }\'\n')),(0,r.yg)("h4",{id:"url\u8bbf\u95eeip\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570"},"URL\u8bbf\u95eeIP\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'# URL\u8bbf\u95eeIP\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570--\u67e5\u8be2\u5386\u53f2\u8bb0\u5f55\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 0,\n "query":{"constant_score":{\n "filter":{\n "bool":{\n "must":[{"term":{"url":"/xxx/xx/xx"}},\n {"range":{"ts":{\n "gte":"8/Jun/2020:00:00:00 +0800",\n "lte":"9/Jun/2020:00:00:00 +0800"\n }}}\n ]\n }\n }\n }},\n "aggs": {"all_urls": {"terms": { "field": "ip" }}}\n}\'\n\n# URL\u8bbf\u95eeIP\u5206\u7c7b\u53ca\u8c03\u7528\u6b21\u6570--\u767b\u5f55\ncurl -XGET \'http://127.0.0.1:9200/{\u5177\u4f53\u7684es\u5e93}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 0,\n "query":{"constant_score":{\n "filter":{\n "bool":{\n "must":[{"term":{"url":"/xx/xx/xx"}},\n {"range":{"ts":{\n "gte":"8/Jun/2020:00:00:00 +0800",\n "lte":"9/Jun/2020:00:00:00 +0800"\n }}}\n ]\n }\n }\n }},\n "aggs": {"all_urls": {"terms": { "field": "ip" }}}\n}\'\n')),(0,r.yg)("h4",{id:"\u6700\u6d3b\u8dc3\u7684\u67d0\u7c7bsite"},"\u6700\u6d3b\u8dc3\u7684\u67d0\u7c7bsite"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},'#10\u5927\u6700\u6d3b\u8dc3\u7684\u5206\u4eab\u7ec4\u6001\ncurl -XPOST \'http://127.0.0.1:9200/{\u5177\u4f53\u7684e\'s}/_search?pretty\' \\\n-H "Content-Type: application/json" \\\n-d \\\n\'{"size" : 0,\n "query":{\n "wildcard": {\n "site": "*show.html*share*"\n }\n },\n "aggs": {"all_ips": {"terms": { "field": "site" , "size":100 }}}\n}\'\n')))}y.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/b153ec3c.e1b94bc2.js b/assets/js/b153ec3c.e7a4203f.js similarity index 99% rename from assets/js/b153ec3c.e1b94bc2.js rename to assets/js/b153ec3c.e7a4203f.js index 544427b2a..025ff0952 100644 --- a/assets/js/b153ec3c.e1b94bc2.js +++ b/assets/js/b153ec3c.e7a4203f.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9390],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>f});var n=r(6540);function l(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(l[r]=e[r]);return l}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(l[r]=e[r])}return l}var u=n.createContext({}),s=function(e){var t=n.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=s(e.components);return n.createElement(u.Provider,{value:t},e.children)},c="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,l=e.mdxType,a=e.originalType,u=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),c=s(r),d=l,f=c["".concat(u,".").concat(d)]||c[d]||y[d]||a;return r?n.createElement(f,i(i({ref:t},p),{},{components:r})):n.createElement(f,i({ref:t},p))}));function f(e,t){var r=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var a=r.length,i=new Array(a);i[0]=d;var o={};for(var u in t)hasOwnProperty.call(t,u)&&(o[u]=t[u]);o.originalType=e,o[c]="string"==typeof e?e:l,i[1]=o;for(var s=2;s{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>i,default:()=>y,frontMatter:()=>a,metadata:()=>o,toc:()=>s});var n=r(8168),l=(r(6540),r(5680));const a={},i=void 0,o={unversionedId:"study/system/\u64cd\u4f5c\u7cfb\u7edf\u5185\u6838",id:"study/system/\u64cd\u4f5c\u7cfb\u7edf\u5185\u6838",title:"\u64cd\u4f5c\u7cfb\u7edf\u5185\u6838",description:"\u4ec0\u4e48\u662f\u5185\u6838",source:"@site/docs/study/system/\u64cd\u4f5c\u7cfb\u7edf\u5185\u6838.md",sourceDirName:"study/system",slug:"/study/system/\u64cd\u4f5c\u7cfb\u7edf\u5185\u6838",permalink:"/docs/study/system/\u64cd\u4f5c\u7cfb\u7edf\u5185\u6838",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u53ef\u6267\u884c\u7a0b\u5e8f\u5728\u64cd\u4f5c\u7cfb\u7edf\u4e0b\u7684\u8fd0\u884c\u539f\u7406\u5206\u6790",permalink:"/docs/study/system/\u53ef\u6267\u884c\u7a0b\u5e8f\u8fd0\u884c\u539f\u7406\u5206\u6790"},next:{title:"\u7a0b\u5e8f\u8c03\u8bd5",permalink:"/docs/study/system/\u7a0b\u5e8f\u8c03\u8bd5"}},u={},s=[{value:"\u4ec0\u4e48\u662f\u5185\u6838",id:"\u4ec0\u4e48\u662f\u5185\u6838",level:3},{value:"Linux \u5185\u6838\u8c03\u4f18",id:"linux-\u5185\u6838\u8c03\u4f18",level:3},{value:"ip_forward",id:"ip_forward",level:4},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],p={toc:s},c="wrapper";function y(e){let{components:t,...a}=e;return(0,l.yg)(c,(0,n.A)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,l.yg)("h3",{id:"\u4ec0\u4e48\u662f\u5185\u6838"},"\u4ec0\u4e48\u662f\u5185\u6838"),(0,l.yg)("p",null,"\u8bf4\u5230\u64cd\u4f5c\u7cfb\u7edf\uff0c\u5c31\u5fc5\u987b\u8bf4\u5185\u6838\u3002\u5185\u6838\u662f\u64cd\u4f5c\u7cfb\u7edf\u4e2d\u5e94\u7528\u8fde\u63a5\u786c\u4ef6\u8bbe\u5907\u7684\u6865\u6881\u3002"),(0,l.yg)("p",null,"\u5185\u6838\u4ec5\u4ec5\u662f\u64cd\u4f5c\u7cfb\u7edf\u7684\u4e00\u90e8\u5206\uff0c\u662f\u771f\u6b63\u4e0e\u786c\u4ef6\u4ea4\u4e92\u7684\u90a3\u90e8\u5206\u8f6f\u4ef6\uff0c\u4e0e\u786c\u4ef6\u4ea4\u4e92\u5305\u62ec\u8bfb\u5199\u786c\u76d8\u3001\u8bfb\u5199\u7f51\u76d8\u3001\u8bfb\u5199\u5185\u5b58\u4ee5\u53ca\u4efb\u4f55\u8fde\u63a5\u5230\u7cfb\u7edf\u4e2d\u7684\u786c\u4ef6\u3002"),(0,l.yg)("p",null,"\u9664\u4e86\u4e0e\u786c\u4ef6\u4ea4\u4e92\u5916\uff0c\u5185\u6838\u8fd8\u8d1f\u8d23\u5206\u914d\u8d44\u6e90\uff0c\u5206\u914d\u4ec0\u4e48\u8d44\u6e90\u5462\uff1f\u6240\u8c13\u8d44\u6e90\u5c31\u662f\u786c\u4ef6\uff0c\u6bd4\u5982 CPU \u65f6\u95f4\u3001\u5185\u5b58\u3001IO \u7b49\u7b49\uff0c\u8fd9\u4e9b\u90fd\u662f\u8d44\u6e90\u3002"),(0,l.yg)("p",null,(0,l.yg)("img",{alt:"\u64cd\u4f5c\u7cfb\u7edf\u5206\u5c42",src:r(4597).A,width:"720",height:"441"})),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"https://zhuanlan.zhihu.com/p/608739855"},"\u77e5\u4e4e-\u8ba1\u7b97\u673a\u7cfb\u7edf\uff1a\u64cd\u4f5c\u7cfb\u7edf\u5185\u6838"))),(0,l.yg)("h3",{id:"linux-\u5185\u6838\u8c03\u4f18"},"Linux \u5185\u6838\u8c03\u4f18"),(0,l.yg)("h4",{id:"ip_forward"},"ip_forward"),(0,l.yg)("p",null,"IP forward \u662f\u4e00\u79cd\u5185\u6838\u6001\u8bbe\u7f6e\uff0c\u5141\u8bb8\u5c06\u4e00\u4e2a\u63a5\u53e3\u7684\u6d41\u91cf\u8f6c\u53d1\u5230\u53e6\u5916\u4e00\u4e2a\u63a5\u53e3\u3002"),(0,l.yg)("p",null,"\u51fa\u4e8e\u5b89\u5168\u8003\u8651\uff0cLinux \u7cfb\u7edf\u9ed8\u8ba4\u662f\u7981\u6b62\u6570\u636e\u5305\u8f6c\u53d1\u7684\u3002\u6240\u8c13\u8f6c\u53d1\u5373\u5f53\u4e3b\u673a\u62e5\u6709\u591a\u4e8e\u4e00\u5757\u7684\u7f51\u5361\u65f6\uff0c\u5176\u4e2d\u4e00\u5757\u6536\u5230\u6570\u636e\u5305\uff0c\u6839\u636e\u6570\u636e\u5305\u7684\u76ee\u7684 ip \u5730\u5740\u5c06\u6570\u636e\u5305\u53d1\u5f80\u672c\u673a\u53e6\u4e00\u5757\u7f51\u5361\uff0c\u8be5\u7f51\u5361\u6839\u636e\u8def\u7531\u8868\u7ee7\u7eed\u53d1\u9001\u6570\u636e\u5305\u3002\u8fd9\u901a\u5e38\u662f\u8def\u7531\u5668\u6240\u8981\u5b9e\u73b0\u7684\u529f\u80fd\u3002"),(0,l.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"https://www.lxlinux.net/311.html"},"lxlinux-Linux \u5185\u6838\u8c03\u4f18")),(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"https://www.lxlinux.net/307.html"},"lxlinux-Linux \u5e38\u7528\u5185\u6838\u7f51\u7edc\u53c2\u6570\u53ca\u4fee\u6539\u65b9\u6cd5")),(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"https://www.lxlinux.net/305.html"},"lxlinux-\u9ad8\u5e76\u53d1\u573a\u666f\u4e0b\u7684 Linux \u7cfb\u7edf\u8c03\u4f18"))))}y.isMDXComponent=!0},4597:(e,t,r)=>{r.d(t,{A:()=>n});const n=r.p+"assets/images/1-55ae3f50467f5d22c9fed1f9cba2bc1e.webp"}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9390],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>f});var n=r(6540);function l(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(l[r]=e[r]);return l}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(l[r]=e[r])}return l}var u=n.createContext({}),s=function(e){var t=n.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=s(e.components);return n.createElement(u.Provider,{value:t},e.children)},c="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,l=e.mdxType,a=e.originalType,u=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),c=s(r),d=l,f=c["".concat(u,".").concat(d)]||c[d]||y[d]||a;return r?n.createElement(f,i(i({ref:t},p),{},{components:r})):n.createElement(f,i({ref:t},p))}));function f(e,t){var r=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var a=r.length,i=new Array(a);i[0]=d;var o={};for(var u in t)hasOwnProperty.call(t,u)&&(o[u]=t[u]);o.originalType=e,o[c]="string"==typeof e?e:l,i[1]=o;for(var s=2;s{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>i,default:()=>y,frontMatter:()=>a,metadata:()=>o,toc:()=>s});var n=r(8168),l=(r(6540),r(5680));const a={},i=void 0,o={unversionedId:"study/system/\u64cd\u4f5c\u7cfb\u7edf\u5185\u6838",id:"study/system/\u64cd\u4f5c\u7cfb\u7edf\u5185\u6838",title:"\u64cd\u4f5c\u7cfb\u7edf\u5185\u6838",description:"\u4ec0\u4e48\u662f\u5185\u6838",source:"@site/docs/study/system/\u64cd\u4f5c\u7cfb\u7edf\u5185\u6838.md",sourceDirName:"study/system",slug:"/study/system/\u64cd\u4f5c\u7cfb\u7edf\u5185\u6838",permalink:"/docs/study/system/\u64cd\u4f5c\u7cfb\u7edf\u5185\u6838",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u53ef\u6267\u884c\u7a0b\u5e8f\u5728\u64cd\u4f5c\u7cfb\u7edf\u4e0b\u7684\u8fd0\u884c\u539f\u7406\u5206\u6790",permalink:"/docs/study/system/\u53ef\u6267\u884c\u7a0b\u5e8f\u8fd0\u884c\u539f\u7406\u5206\u6790"},next:{title:"\u7a0b\u5e8f\u8c03\u8bd5",permalink:"/docs/study/system/\u7a0b\u5e8f\u8c03\u8bd5"}},u={},s=[{value:"\u4ec0\u4e48\u662f\u5185\u6838",id:"\u4ec0\u4e48\u662f\u5185\u6838",level:3},{value:"Linux \u5185\u6838\u8c03\u4f18",id:"linux-\u5185\u6838\u8c03\u4f18",level:3},{value:"ip_forward",id:"ip_forward",level:4},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],p={toc:s},c="wrapper";function y(e){let{components:t,...a}=e;return(0,l.yg)(c,(0,n.A)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,l.yg)("h3",{id:"\u4ec0\u4e48\u662f\u5185\u6838"},"\u4ec0\u4e48\u662f\u5185\u6838"),(0,l.yg)("p",null,"\u8bf4\u5230\u64cd\u4f5c\u7cfb\u7edf\uff0c\u5c31\u5fc5\u987b\u8bf4\u5185\u6838\u3002\u5185\u6838\u662f\u64cd\u4f5c\u7cfb\u7edf\u4e2d\u5e94\u7528\u8fde\u63a5\u786c\u4ef6\u8bbe\u5907\u7684\u6865\u6881\u3002"),(0,l.yg)("p",null,"\u5185\u6838\u4ec5\u4ec5\u662f\u64cd\u4f5c\u7cfb\u7edf\u7684\u4e00\u90e8\u5206\uff0c\u662f\u771f\u6b63\u4e0e\u786c\u4ef6\u4ea4\u4e92\u7684\u90a3\u90e8\u5206\u8f6f\u4ef6\uff0c\u4e0e\u786c\u4ef6\u4ea4\u4e92\u5305\u62ec\u8bfb\u5199\u786c\u76d8\u3001\u8bfb\u5199\u7f51\u76d8\u3001\u8bfb\u5199\u5185\u5b58\u4ee5\u53ca\u4efb\u4f55\u8fde\u63a5\u5230\u7cfb\u7edf\u4e2d\u7684\u786c\u4ef6\u3002"),(0,l.yg)("p",null,"\u9664\u4e86\u4e0e\u786c\u4ef6\u4ea4\u4e92\u5916\uff0c\u5185\u6838\u8fd8\u8d1f\u8d23\u5206\u914d\u8d44\u6e90\uff0c\u5206\u914d\u4ec0\u4e48\u8d44\u6e90\u5462\uff1f\u6240\u8c13\u8d44\u6e90\u5c31\u662f\u786c\u4ef6\uff0c\u6bd4\u5982 CPU \u65f6\u95f4\u3001\u5185\u5b58\u3001IO \u7b49\u7b49\uff0c\u8fd9\u4e9b\u90fd\u662f\u8d44\u6e90\u3002"),(0,l.yg)("p",null,(0,l.yg)("img",{alt:"\u64cd\u4f5c\u7cfb\u7edf\u5206\u5c42",src:r(4597).A,width:"720",height:"441"})),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"https://zhuanlan.zhihu.com/p/608739855"},"\u77e5\u4e4e-\u8ba1\u7b97\u673a\u7cfb\u7edf\uff1a\u64cd\u4f5c\u7cfb\u7edf\u5185\u6838"))),(0,l.yg)("h3",{id:"linux-\u5185\u6838\u8c03\u4f18"},"Linux \u5185\u6838\u8c03\u4f18"),(0,l.yg)("h4",{id:"ip_forward"},"ip_forward"),(0,l.yg)("p",null,"IP forward \u662f\u4e00\u79cd\u5185\u6838\u6001\u8bbe\u7f6e\uff0c\u5141\u8bb8\u5c06\u4e00\u4e2a\u63a5\u53e3\u7684\u6d41\u91cf\u8f6c\u53d1\u5230\u53e6\u5916\u4e00\u4e2a\u63a5\u53e3\u3002"),(0,l.yg)("p",null,"\u51fa\u4e8e\u5b89\u5168\u8003\u8651\uff0cLinux \u7cfb\u7edf\u9ed8\u8ba4\u662f\u7981\u6b62\u6570\u636e\u5305\u8f6c\u53d1\u7684\u3002\u6240\u8c13\u8f6c\u53d1\u5373\u5f53\u4e3b\u673a\u62e5\u6709\u591a\u4e8e\u4e00\u5757\u7684\u7f51\u5361\u65f6\uff0c\u5176\u4e2d\u4e00\u5757\u6536\u5230\u6570\u636e\u5305\uff0c\u6839\u636e\u6570\u636e\u5305\u7684\u76ee\u7684 ip \u5730\u5740\u5c06\u6570\u636e\u5305\u53d1\u5f80\u672c\u673a\u53e6\u4e00\u5757\u7f51\u5361\uff0c\u8be5\u7f51\u5361\u6839\u636e\u8def\u7531\u8868\u7ee7\u7eed\u53d1\u9001\u6570\u636e\u5305\u3002\u8fd9\u901a\u5e38\u662f\u8def\u7531\u5668\u6240\u8981\u5b9e\u73b0\u7684\u529f\u80fd\u3002"),(0,l.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"https://www.lxlinux.net/311.html"},"lxlinux-Linux \u5185\u6838\u8c03\u4f18")),(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"https://www.lxlinux.net/307.html"},"lxlinux-Linux \u5e38\u7528\u5185\u6838\u7f51\u7edc\u53c2\u6570\u53ca\u4fee\u6539\u65b9\u6cd5")),(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"https://www.lxlinux.net/305.html"},"lxlinux-\u9ad8\u5e76\u53d1\u573a\u666f\u4e0b\u7684 Linux \u7cfb\u7edf\u8c03\u4f18"))))}y.isMDXComponent=!0},4597:(e,t,r)=>{r.d(t,{A:()=>n});const n=r.p+"assets/images/1-55ae3f50467f5d22c9fed1f9cba2bc1e.webp"}}]); \ No newline at end of file diff --git a/assets/js/b2645d4e.6c22e9de.js b/assets/js/b2645d4e.9c5dba94.js similarity index 98% rename from assets/js/b2645d4e.6c22e9de.js rename to assets/js/b2645d4e.9c5dba94.js index 8ecd5d01e..d5b0de1e1 100644 --- a/assets/js/b2645d4e.6c22e9de.js +++ b/assets/js/b2645d4e.9c5dba94.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[379],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),u=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=u(e.components);return n.createElement(l.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),s=u(r),y=o,f=s["".concat(l,".").concat(y)]||s[y]||d[y]||a;return r?n.createElement(f,i(i({ref:t},p),{},{components:r})):n.createElement(f,i({ref:t},p))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=y;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[s]="string"==typeof e?e:o,i[1]=c;for(var u=2;u{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>u});var n=r(8168),o=(r(6540),r(5680));const a={},i=void 0,c={unversionedId:"study/db/NoSQL/Ignite",id:"study/db/NoSQL/Ignite",title:"Ignite",description:"\u5b9a\u4e49",source:"@site/docs/study/db/NoSQL/Ignite.md",sourceDirName:"study/db/NoSQL",slug:"/study/db/NoSQL/Ignite",permalink:"/docs/study/db/NoSQL/Ignite",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Hbase",permalink:"/docs/study/db/NoSQL/Hbase"},next:{title:"MongoDB",permalink:"/docs/study/db/NoSQL/MongoDB"}},l={},u=[{value:"\u5b9a\u4e49",id:"\u5b9a\u4e49",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],p={toc:u},s="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"\u5b9a\u4e49"},"\u5b9a\u4e49"),(0,o.yg)("p",null,"\u4e00\u4e2a\u4ee5\u5185\u5b58\u4e3a\u4e2d\u5fc3\u7684\u5206\u5e03\u5f0f\u6570\u636e\u5e93\u3001\u7f13\u5b58\u548c\u5904\u7406\u5e73\u53f0\uff0c\u53ef\u4ee5\u5728PB\u7ea7\u6570\u636e\u4e2d\uff0c\u4ee5\u5185\u5b58\u7ea7\u7684\u901f\u5ea6\u8fdb\u884c\u4e8b\u52a1\u6027\u3001\u5206\u6790\u6027\u4ee5\u53ca\u6d41\u5f0f\u8d1f\u8f7d\u7684\u5904\u7406\u3002"),(0,o.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,o.yg)("ol",null,(0,o.yg)("li",{parentName:"ol"},(0,o.yg)("a",{parentName:"li",href:"https://liyuj.gitee.io/doc/java/#_1-ignite%E6%98%AF%E4%BB%80%E4%B9%88%EF%BC%9F"},"Apache Ignite\u4e2d\u6587\u7f51"))))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[379],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),u=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=u(e.components);return n.createElement(l.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),s=u(r),y=o,f=s["".concat(l,".").concat(y)]||s[y]||d[y]||a;return r?n.createElement(f,i(i({ref:t},p),{},{components:r})):n.createElement(f,i({ref:t},p))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=y;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[s]="string"==typeof e?e:o,i[1]=c;for(var u=2;u{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>u});var n=r(8168),o=(r(6540),r(5680));const a={},i=void 0,c={unversionedId:"study/db/NoSQL/Ignite",id:"study/db/NoSQL/Ignite",title:"Ignite",description:"\u5b9a\u4e49",source:"@site/docs/study/db/NoSQL/Ignite.md",sourceDirName:"study/db/NoSQL",slug:"/study/db/NoSQL/Ignite",permalink:"/docs/study/db/NoSQL/Ignite",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Hbase",permalink:"/docs/study/db/NoSQL/Hbase"},next:{title:"MongoDB",permalink:"/docs/study/db/NoSQL/MongoDB"}},l={},u=[{value:"\u5b9a\u4e49",id:"\u5b9a\u4e49",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],p={toc:u},s="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"\u5b9a\u4e49"},"\u5b9a\u4e49"),(0,o.yg)("p",null,"\u4e00\u4e2a\u4ee5\u5185\u5b58\u4e3a\u4e2d\u5fc3\u7684\u5206\u5e03\u5f0f\u6570\u636e\u5e93\u3001\u7f13\u5b58\u548c\u5904\u7406\u5e73\u53f0\uff0c\u53ef\u4ee5\u5728PB\u7ea7\u6570\u636e\u4e2d\uff0c\u4ee5\u5185\u5b58\u7ea7\u7684\u901f\u5ea6\u8fdb\u884c\u4e8b\u52a1\u6027\u3001\u5206\u6790\u6027\u4ee5\u53ca\u6d41\u5f0f\u8d1f\u8f7d\u7684\u5904\u7406\u3002"),(0,o.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,o.yg)("ol",null,(0,o.yg)("li",{parentName:"ol"},(0,o.yg)("a",{parentName:"li",href:"https://liyuj.gitee.io/doc/java/#_1-ignite%E6%98%AF%E4%BB%80%E4%B9%88%EF%BC%9F"},"Apache Ignite\u4e2d\u6587\u7f51"))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/b34206f0.498701a3.js b/assets/js/b34206f0.bddb5c8c.js similarity index 99% rename from assets/js/b34206f0.498701a3.js rename to assets/js/b34206f0.bddb5c8c.js index df7d24384..6f547e82d 100644 --- a/assets/js/b34206f0.498701a3.js +++ b/assets/js/b34206f0.bddb5c8c.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3228],{5680:(e,t,r)=>{r.d(t,{xA:()=>c,yg:()=>m});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var u=n.createContext({}),p=function(e){var t=n.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},c=function(e){var t=p(e.components);return n.createElement(u.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,u=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),s=p(r),y=a,m=s["".concat(u,".").concat(y)]||s[y]||d[y]||o;return r?n.createElement(m,i(i({ref:t},c),{},{components:r})):n.createElement(m,i({ref:t},c))}));function m(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=y;var l={};for(var u in t)hasOwnProperty.call(t,u)&&(l[u]=t[u]);l.originalType=e,l[s]="string"==typeof e?e:a,i[1]=l;for(var p=2;p{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>l,toc:()=>p});var n=r(8168),a=(r(6540),r(5680));const o={},i=void 0,l={unversionedId:"study/program/C/\u865a\u62df\u7f51\u5361",id:"study/program/C/\u865a\u62df\u7f51\u5361",title:"\u865a\u62df\u7f51\u5361",description:"TUN/TAP\uff08Linux\uff09",source:"@site/docs/study/program/C/\u865a\u62df\u7f51\u5361.md",sourceDirName:"study/program/C",slug:"/study/program/C/\u865a\u62df\u7f51\u5361",permalink:"/docs/study/program/C/\u865a\u62df\u7f51\u5361",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u6784\u5efa\u5de5\u5177",permalink:"/docs/study/program/C/\u6784\u5efa\u5de5\u5177"},next:{title:"C++",permalink:"/docs/study/program/CPP/"}},u={},p=[{value:"TUN/TAP\uff08Linux\uff09",id:"tuntaplinux",level:3},{value:"WinTun",id:"wintun",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],c={toc:p},s="wrapper";function d(e){let{components:t,...r}=e;return(0,a.yg)(s,(0,n.A)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"tuntaplinux"},"TUN/TAP\uff08Linux\uff09"),(0,a.yg)("p",null,"\u5728\u8ba1\u7b97\u673a\u7f51\u7edc\u4e2d\uff0cTUN \u4e0e TAP \u662f\u64cd\u4f5c\u7cfb\u7edf\u5185\u6838\u4e2d\u7684\u865a\u62df\u7f51\u7edc\u8bbe\u5907\u3002\u4e0d\u540c\u4e8e\u666e\u901a\u9760\u786c\u4ef6\u7f51\u8def\u677f\u5361\u5b9e\u73b0\u7684\u8bbe\u5907\uff0c\u8fd9\u4e9b\u865a\u62df\u7684\u7f51\u7edc\u8bbe\u5907\u5168\u90e8\u7528\u8f6f\u4ef6\u5b9e\u73b0\uff0c\u5e76\u5411\u8fd0\u884c\u4e8e\u64cd\u4f5c\u7cfb\u7edf\u4e0a\u7684\u8f6f\u4ef6\u63d0\u4f9b\u4e0e\u786c\u4ef6\u7684\u7f51\u7edc\u8bbe\u5907\u5b8c\u5168\u76f8\u540c\u7684\u529f\u80fd\u3002"),(0,a.yg)("p",null,"TAP \u7b49\u540c\u4e8e\u4e00\u4e2a\u4ee5\u592a\u7f51\u8bbe\u5907\uff0c\u5b83\u64cd\u4f5c\u7b2c\u4e8c\u5c42\u6570\u636e\u5305\u5982\u4ee5\u592a\u7f51\u6570\u636e\u5e27\u3002TUN \u6a21\u62df\u4e86\u7f51\u7edc\u5c42\u8bbe\u5907\uff0c\u64cd\u4f5c\u7b2c\u4e09\u5c42\u6570\u636e\u5305\u6bd4\u5982 IP \u6570\u636e\u5c01\u5305\u3002"),(0,a.yg)("p",null,"\u64cd\u4f5c\u7cfb\u7edf\u901a\u8fc7 TUN/TAP \u8bbe\u5907\u5411\u7ed1\u5b9a\u8be5\u8bbe\u5907\u7684\u7528\u6237\u7a7a\u95f4\u7684\u7a0b\u5e8f\u53d1\u9001\u6570\u636e\uff0c\u53cd\u4e4b\uff0c\u7528\u6237\u7a7a\u95f4\u7684\u7a0b\u5e8f\u4e5f\u53ef\u4ee5\u50cf\u64cd\u4f5c\u786c\u4ef6\u7f51\u7edc\u8bbe\u5907\u90a3\u6837\uff0c\u901a\u8fc7 TUN/TAP \u8bbe\u5907\u53d1\u9001\u6570\u636e\u3002\u5728\u540e\u79cd\u60c5\u51b5\u4e0b\uff0cTUN/TAP \u8bbe\u5907\u5411\u64cd\u4f5c\u7cfb\u7edf\u7684\u7f51\u7edc\u6808\u6295\u9012\uff08\u6216\u201c\u6ce8\u5165\u201d\uff09\u6570\u636e\u5305\uff0c\u4ece\u800c\u6a21\u62df\u4ece\u5916\u90e8\u63a5\u53d7\u6570\u636e\u7684\u8fc7\u7a0b\u3002"),(0,a.yg)("p",null,"\u670d\u52a1\u5668\u5982\u679c\u62e5\u6709 TUN/TAP \u6a21\u5757\uff0c\u5c31\u53ef\u4ee5\u5f00\u542f VPN \u4ee3\u7406\u529f\u80fd\u3002"),(0,a.yg)("h3",{id:"wintun"},"WinTun"),(0,a.yg)("p",null,(0,a.yg)("a",{parentName:"p",href:"https://www.wintun.net/"},"https://www.wintun.net/")),(0,a.yg)("p",null,"WinTun \u662f Windows \u5185\u6838\u7684\u4e00\u4e2a\u975e\u5e38\u7b80\u5355\u548c\u6700\u5c0f\u7684 TUN \u9a71\u52a8\u7a0b\u5e8f\uff0c\u5b83\u4e3a\u7528\u6237\u7a7a\u95f4\u7a0b\u5e8f\u63d0\u4f9b\u4e86\u4e00\u4e2a\u7b80\u5355\u7684\u7f51\u7edc\u9002\u914d\u5668\uff0c\u7528\u4e8e\u8bfb\u53d6\u548c\u5199\u5165\u6570\u636e\u5305\u3002"),(0,a.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://blog.csdn.net/q1009020096/article/details/123842293"},"CSDN-Golang Window TUN \u865a\u62df\u7f51\u5361")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://www.wireguard.com/"},"\u5b98\u7f51-WireGrard"),(0,a.yg)("ul",{parentName:"li"},(0,a.yg)("li",{parentName:"ul"},"WireGuard \u662f\u4e00\u6b3e\u6781\u5176\u7b80\u5355\u4f46\u5feb\u901f\u7684\u73b0\u4ee3 VPN\uff0c\u91c7\u7528\u6700\u5148\u8fdb\u7684\u52a0\u5bc6\u6280\u672f\u3002"))),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://huaweicloud.csdn.net/63566923d3efff3090b5e317.html"},"\u534e\u4e3a\u4e91-Wintun\uff1a\u4e00\u6b3e\u60ca\u8273\u7684 WireGuard \u865a\u62df\u7f51\u5361\u63a5\u53e3\u9a71\u52a8"))))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3228],{5680:(e,t,r)=>{r.d(t,{xA:()=>c,yg:()=>m});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var u=n.createContext({}),p=function(e){var t=n.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},c=function(e){var t=p(e.components);return n.createElement(u.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,u=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),s=p(r),y=a,m=s["".concat(u,".").concat(y)]||s[y]||d[y]||o;return r?n.createElement(m,i(i({ref:t},c),{},{components:r})):n.createElement(m,i({ref:t},c))}));function m(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=y;var l={};for(var u in t)hasOwnProperty.call(t,u)&&(l[u]=t[u]);l.originalType=e,l[s]="string"==typeof e?e:a,i[1]=l;for(var p=2;p{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>l,toc:()=>p});var n=r(8168),a=(r(6540),r(5680));const o={},i=void 0,l={unversionedId:"study/program/C/\u865a\u62df\u7f51\u5361",id:"study/program/C/\u865a\u62df\u7f51\u5361",title:"\u865a\u62df\u7f51\u5361",description:"TUN/TAP\uff08Linux\uff09",source:"@site/docs/study/program/C/\u865a\u62df\u7f51\u5361.md",sourceDirName:"study/program/C",slug:"/study/program/C/\u865a\u62df\u7f51\u5361",permalink:"/docs/study/program/C/\u865a\u62df\u7f51\u5361",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u6784\u5efa\u5de5\u5177",permalink:"/docs/study/program/C/\u6784\u5efa\u5de5\u5177"},next:{title:"C++",permalink:"/docs/study/program/CPP/"}},u={},p=[{value:"TUN/TAP\uff08Linux\uff09",id:"tuntaplinux",level:3},{value:"WinTun",id:"wintun",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],c={toc:p},s="wrapper";function d(e){let{components:t,...r}=e;return(0,a.yg)(s,(0,n.A)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"tuntaplinux"},"TUN/TAP\uff08Linux\uff09"),(0,a.yg)("p",null,"\u5728\u8ba1\u7b97\u673a\u7f51\u7edc\u4e2d\uff0cTUN \u4e0e TAP \u662f\u64cd\u4f5c\u7cfb\u7edf\u5185\u6838\u4e2d\u7684\u865a\u62df\u7f51\u7edc\u8bbe\u5907\u3002\u4e0d\u540c\u4e8e\u666e\u901a\u9760\u786c\u4ef6\u7f51\u8def\u677f\u5361\u5b9e\u73b0\u7684\u8bbe\u5907\uff0c\u8fd9\u4e9b\u865a\u62df\u7684\u7f51\u7edc\u8bbe\u5907\u5168\u90e8\u7528\u8f6f\u4ef6\u5b9e\u73b0\uff0c\u5e76\u5411\u8fd0\u884c\u4e8e\u64cd\u4f5c\u7cfb\u7edf\u4e0a\u7684\u8f6f\u4ef6\u63d0\u4f9b\u4e0e\u786c\u4ef6\u7684\u7f51\u7edc\u8bbe\u5907\u5b8c\u5168\u76f8\u540c\u7684\u529f\u80fd\u3002"),(0,a.yg)("p",null,"TAP \u7b49\u540c\u4e8e\u4e00\u4e2a\u4ee5\u592a\u7f51\u8bbe\u5907\uff0c\u5b83\u64cd\u4f5c\u7b2c\u4e8c\u5c42\u6570\u636e\u5305\u5982\u4ee5\u592a\u7f51\u6570\u636e\u5e27\u3002TUN \u6a21\u62df\u4e86\u7f51\u7edc\u5c42\u8bbe\u5907\uff0c\u64cd\u4f5c\u7b2c\u4e09\u5c42\u6570\u636e\u5305\u6bd4\u5982 IP \u6570\u636e\u5c01\u5305\u3002"),(0,a.yg)("p",null,"\u64cd\u4f5c\u7cfb\u7edf\u901a\u8fc7 TUN/TAP \u8bbe\u5907\u5411\u7ed1\u5b9a\u8be5\u8bbe\u5907\u7684\u7528\u6237\u7a7a\u95f4\u7684\u7a0b\u5e8f\u53d1\u9001\u6570\u636e\uff0c\u53cd\u4e4b\uff0c\u7528\u6237\u7a7a\u95f4\u7684\u7a0b\u5e8f\u4e5f\u53ef\u4ee5\u50cf\u64cd\u4f5c\u786c\u4ef6\u7f51\u7edc\u8bbe\u5907\u90a3\u6837\uff0c\u901a\u8fc7 TUN/TAP \u8bbe\u5907\u53d1\u9001\u6570\u636e\u3002\u5728\u540e\u79cd\u60c5\u51b5\u4e0b\uff0cTUN/TAP \u8bbe\u5907\u5411\u64cd\u4f5c\u7cfb\u7edf\u7684\u7f51\u7edc\u6808\u6295\u9012\uff08\u6216\u201c\u6ce8\u5165\u201d\uff09\u6570\u636e\u5305\uff0c\u4ece\u800c\u6a21\u62df\u4ece\u5916\u90e8\u63a5\u53d7\u6570\u636e\u7684\u8fc7\u7a0b\u3002"),(0,a.yg)("p",null,"\u670d\u52a1\u5668\u5982\u679c\u62e5\u6709 TUN/TAP \u6a21\u5757\uff0c\u5c31\u53ef\u4ee5\u5f00\u542f VPN \u4ee3\u7406\u529f\u80fd\u3002"),(0,a.yg)("h3",{id:"wintun"},"WinTun"),(0,a.yg)("p",null,(0,a.yg)("a",{parentName:"p",href:"https://www.wintun.net/"},"https://www.wintun.net/")),(0,a.yg)("p",null,"WinTun \u662f Windows \u5185\u6838\u7684\u4e00\u4e2a\u975e\u5e38\u7b80\u5355\u548c\u6700\u5c0f\u7684 TUN \u9a71\u52a8\u7a0b\u5e8f\uff0c\u5b83\u4e3a\u7528\u6237\u7a7a\u95f4\u7a0b\u5e8f\u63d0\u4f9b\u4e86\u4e00\u4e2a\u7b80\u5355\u7684\u7f51\u7edc\u9002\u914d\u5668\uff0c\u7528\u4e8e\u8bfb\u53d6\u548c\u5199\u5165\u6570\u636e\u5305\u3002"),(0,a.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://blog.csdn.net/q1009020096/article/details/123842293"},"CSDN-Golang Window TUN \u865a\u62df\u7f51\u5361")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://www.wireguard.com/"},"\u5b98\u7f51-WireGrard"),(0,a.yg)("ul",{parentName:"li"},(0,a.yg)("li",{parentName:"ul"},"WireGuard \u662f\u4e00\u6b3e\u6781\u5176\u7b80\u5355\u4f46\u5feb\u901f\u7684\u73b0\u4ee3 VPN\uff0c\u91c7\u7528\u6700\u5148\u8fdb\u7684\u52a0\u5bc6\u6280\u672f\u3002"))),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://huaweicloud.csdn.net/63566923d3efff3090b5e317.html"},"\u534e\u4e3a\u4e91-Wintun\uff1a\u4e00\u6b3e\u60ca\u8273\u7684 WireGuard \u865a\u62df\u7f51\u5361\u63a5\u53e3\u9a71\u52a8"))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/b38419a7.f2534b7f.js b/assets/js/b38419a7.dded40a4.js similarity index 99% rename from assets/js/b38419a7.f2534b7f.js rename to assets/js/b38419a7.dded40a4.js index 02f167cc6..4a7681ce2 100644 --- a/assets/js/b38419a7.f2534b7f.js +++ b/assets/js/b38419a7.dded40a4.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2320],{5680:(e,r,n)=>{n.d(r,{xA:()=>c,yg:()=>g});var t=n(6540);function o(e,r,n){return r in e?Object.defineProperty(e,r,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[r]=n,e}function a(e,r){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);r&&(t=t.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),n.push.apply(n,t)}return n}function l(e){for(var r=1;r=0||(o[n]=e[n]);return o}(e,r);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=t.createContext({}),p=function(e){var r=t.useContext(s),n=r;return e&&(n="function"==typeof e?e(r):l(l({},r),e)),n},c=function(e){var r=p(e.components);return t.createElement(s.Provider,{value:r},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var r=e.children;return t.createElement(t.Fragment,{},r)}},y=t.forwardRef((function(e,r){var n=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),u=p(n),y=o,g=u["".concat(s,".").concat(y)]||u[y]||d[y]||a;return n?t.createElement(g,l(l({ref:r},c),{},{components:n})):t.createElement(g,l({ref:r},c))}));function g(e,r){var n=arguments,o=r&&r.mdxType;if("string"==typeof e||o){var a=n.length,l=new Array(a);l[0]=y;var i={};for(var s in r)hasOwnProperty.call(r,s)&&(i[s]=r[s]);i.originalType=e,i[u]="string"==typeof e?e:o,l[1]=i;for(var p=2;p{n.r(r),n.d(r,{assets:()=>s,contentTitle:()=>l,default:()=>d,frontMatter:()=>a,metadata:()=>i,toc:()=>p});var t=n(8168),o=(n(6540),n(5680));const a={sidebar_position:1},l=void 0,i={unversionedId:"study/db/SQL/\u7efc\u5408\u6982\u8ff0",id:"study/db/SQL/\u7efc\u5408\u6982\u8ff0",title:"\u7efc\u5408\u6982\u8ff0",description:"\u80cc\u666f",source:"@site/docs/study/db/SQL/\u7efc\u5408\u6982\u8ff0.md",sourceDirName:"study/db/SQL",slug:"/study/db/SQL/\u7efc\u5408\u6982\u8ff0",permalink:"/docs/study/db/SQL/\u7efc\u5408\u6982\u8ff0",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"studySidebar",previous:{title:"StarRocks",permalink:"/docs/study/db/OLAP/StarRocks"},next:{title:"MariaDB",permalink:"/docs/study/db/SQL/MariaDB"}},s={},p=[{value:"\u80cc\u666f",id:"\u80cc\u666f",level:3},{value:"\u5206\u5e03\u5f0f\u6570\u636e\u5e93",id:"\u5206\u5e03\u5f0f\u6570\u636e\u5e93",level:3},{value:"NoSQL\u7684\u8fdb\u51fb",id:"nosql\u7684\u8fdb\u51fb",level:4},{value:"RDMS \u7684\u6551\u8d4e",id:"rdms-\u7684\u6551\u8d4e",level:4},{value:"\u5173\u7cfb\u578b\u6570\u636e\u5e93\u4e2d\u95f4\u4ef6",id:"\u5173\u7cfb\u578b\u6570\u636e\u5e93\u4e2d\u95f4\u4ef6",level:3},{value:"NewSQL\u7684\u53d1\u5c55",id:"newsql\u7684\u53d1\u5c55",level:3}],c={toc:p},u="wrapper";function d(e){let{components:r,...n}=e;return(0,o.yg)(u,(0,t.A)({},c,n,{components:r,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"\u80cc\u666f"},"\u80cc\u666f"),(0,o.yg)("p",null,"\u968f\u7740\u4e92\u8054\u7f51\u7684\u4e0d\u65ad\u666e\u53ca\u7279\u522b\u662f\u79fb\u52a8\u4e92\u8054\u7f51\u7684\u5174\u8d77\uff0c\u6570\u636e\u89c4\u6a21\u7206\u70b8\u5f0f\u589e\u957f\uff0c\u800c\u786c\u4ef6\u8fd9\u4e9b\u5e74\u7684\u8fdb\u6b65\u901f\u5ea6\u5374\u5728\u9010\u6e10\u51cf\u6162\uff0c\u4eba\u4eec\u4e5f\u5728\u62c5\u5fc3\u6469\u5c14\u5b9a\u5f8b\u4f1a\u5931\u6548\u3002\u5728\u6b64\u6d88\u5f7c\u957f\u7684\u60c5\u51b5\u4e0b\uff0c\u5355\u673a\u6570\u636e\u5e93\u8d8a\u6765\u8d8a\u96be\u4ee5\u6ee1\u8db3\u7528\u6237\u9700\u6c42\uff0c\u5373\u4f7f\u662f\u5c06\u6570\u636e\u4fdd\u5b58\u4e0b\u6765\u8fd9\u4e2a\u6700\u57fa\u672c\u7684\u9700\u6c42\u3002"),(0,o.yg)("h3",{id:"\u5206\u5e03\u5f0f\u6570\u636e\u5e93"},"\u5206\u5e03\u5f0f\u6570\u636e\u5e93"),(0,o.yg)("p",null,"\u6240\u4ee5 2005 \u5e74\u5de6\u53f3\uff0c\u4eba\u4eec\u5f00\u59cb\u63a2\u7d22\u5206\u5e03\u5f0f\u6570\u636e\u5e93\uff0c\u5e26\u8d77\u4e86 NoSQL \u8fd9\u6ce2\u6d6a\u6f6e\u3002\u8fd9\u4e9b\u6570\u636e\u5e93\u89e3\u51b3\u7684\u9996\u8981\u95ee\u9898\u662f\u5355\u673a\u4e0a\u65e0\u6cd5\u4fdd\u5b58\u5168\u90e8\u6570\u636e\uff0c\u5176\u4e2d\u4ee5 HBase/Cassadra/MongoDB \u4e3a\u4ee3\u8868\u3002\u4e3a\u4e86\u5b9e\u73b0\u5bb9\u91cf\u7684\u6c34\u5e73\u6269\u5c55\uff0c\u8fd9\u4e9b\u6570\u636e\u5e93\u5f80\u5f80\u8981\u653e\u5f03\u4e8b\u52a1\uff0c\u6216\u8005\u662f\u53ea\u63d0\u4f9b\u7b80\u5355\u7684 KV \u63a5\u53e3\u3002\u5b58\u50a8\u6a21\u578b\u7684\u7b80\u5316\u4e3a\u5b58\u50a8\u7cfb\u7edf\u7684\u5f00\u53d1\u5e26\u6765\u4e86\u4fbf\u5229\uff0c\u4f46\u662f\u964d\u4f4e\u4e86\u5bf9\u4e1a\u52a1\u7684\u652f\u6491\u3002"),(0,o.yg)("h4",{id:"nosql\u7684\u8fdb\u51fb"},"NoSQL\u7684\u8fdb\u51fb"),(0,o.yg)("p",null,"HBase \u662f\u5176\u4e2d\u7684\u5178\u578b\u4ee3\u8868\u3002 HBase \u662f Hadoop \u751f\u6001\u4e2d\u7684\u91cd\u8981\u4ea7\u54c1\uff0cGoogle BigTable \u7684\u5f00\u6e90\u5b9e\u73b0\uff0c\u6240\u4ee5\u8fd9\u91cc\u5148\u8bf4\u4e00\u4e0b BigTable \u3002"),(0,o.yg)("p",null,"BigTable \u662f Google \u5185\u90e8\u4f7f\u7528\u7684\u5206\u5e03\u5f0f\u6570\u636e\u5e93\uff0c\u6784\u5efa\u5728 GFS \u7684\u57fa\u7840\u4e0a\uff0c\u5f25\u8865\u4e86\u5206\u5e03\u5f0f\u6587\u4ef6\u7cfb\u7edf\u5bf9\u4e8e\u5c0f\u5bf9\u8c61\u7684\u63d2\u5165\u3001\u66f4\u65b0\u3001\u968f\u673a\u8bfb\u8bf7\u6c42\u7684\u7f3a\u9677\u3002HBase \u4e5f\u6309\u7167\u8fd9\u4e2a\u67b6\u6784\u5b9e\u73b0\uff0c\u5e95\u5c42\u57fa\u4e8eHDFS \u3002 HBase \u672c\u8eab\u5e76\u4e0d\u5b9e\u9645\u5b58\u50a8\u6570\u636e\uff0c\u6301\u4e45\u5316\u7684\u65e5\u5fd7\u548c SST file \u5b58\u50a8\u5728 HDFS \u4e0a\uff0cRegion Server \u901a\u8fc7 MemTable \u63d0\u4f9b\u5feb\u901f\u7684\u67e5\u8be2\uff0c\u5199\u5165\u90fd\u662f\u5148\u5199\u65e5\u5fd7\uff0c\u540e\u53f0\u8fdb\u884cCompact \uff0c\u5c06\u968f\u673a\u5199\u8f6c\u6362\u4e3a\u987a\u5e8f\u5199\u3002\u6570\u636e\u901a\u8fc7 Region \u5728\u903b\u8f91\u4e0a\u8fdb\u884c\u5206\u5272\uff0c\u8d1f\u8f7d\u5747\u8861\u901a\u8fc7\u8c03\u8282\u5404\u4e2a Region Server \u8d1f\u8d23\u7684Region\u533a\u95f4\u5b9e\u73b0\uff0cRegion\u5728 \u6301\u7eed\u5199\u5165\u540e\uff0c\u4f1a\u8fdb\u884c\u5206\u88c2\uff0c\u7136\u540e\u88ab\u8d1f\u8f7d\u5747\u8861\u7b56\u7565\u8c03\u5ea6\u5230\u591a\u4e2a Region Server \u4e0a\u3002"),(0,o.yg)("p",null,"\u524d\u9762\u63d0\u5230\u4e86\uff0c HBase \u672c\u8eab\u5e76\u4e0d\u5b58\u50a8\u6570\u636e\uff0c\u8fd9\u91cc\u7684 Region \u4ec5\u662f\u903b\u8f91\u4e0a\u7684\u6982\u5ff5\uff0c\u6570\u636e\u8fd8\u662f\u4ee5\u6587\u4ef6\u7684\u5f62\u5f0f\u5b58\u50a8\u5728 HDFS \u4e0a\uff0cHBase \u5e76\u4e0d\u5173\u5fc3\u526f\u672c\u4e2a\u6570\u3001\u4f4d\u7f6e\u4ee5\u53ca\u6c34\u5e73\u6269\u5c55\u95ee\u9898\uff0c\u8fd9\u4e9b\u90fd\u4f9d\u8d56\u4e8e HDFS \u5b9e\u73b0\u3002\u548c BigTable \u4e00\u6837\uff0c HBase \u63d0\u4f9b\u884c\u7ea7\u7684\u4e00\u81f4\u6027\uff0c\u4ece CAP \u7406\u8bba\u7684\u89d2\u5ea6\u6765\u770b\uff0c\u5b83\u662f\u4e00\u4e2a CP \u7684\u7cfb\u7edf\uff0c\u5e76\u4e14\u6ca1\u6709\u66f4\u8fdb\u4e00\u6b65\u63d0\u4f9b ACID \u7684\u8de8\u884c\u4e8b\u52a1\uff0c\u4e5f\u662f\u5f88\u9057\u61be\u3002"),(0,o.yg)("p",null,"HBase \u7684\u4f18\u52bf\u5728\u4e8e\u901a\u8fc7\u6269\u5c55 Region Server \u53ef\u4ee5\u51e0\u4e4e\u7ebf\u6027\u63d0\u5347\u7cfb\u7edf\u7684\u541e\u5410\uff0c\u53ca HDFS \u672c\u8eab\u5c31\u5177\u6709\u7684\u6c34\u5e73\u6269\u5c55\u80fd\u529b\uff0c\u4e14\u6574\u4e2a\u7cfb\u7edf\u6210\u719f\u7a33\u5b9a\u3002\u4f46 HBase \u4f9d\u7136\u6709\u4e00\u4e9b\u4e0d\u8db3\u3002\u9996\u5148\uff0c Hadoop \u4f7f\u7528 Java \u5f00\u53d1\uff0c GC \u5ef6\u8fdf\u662f\u4e00\u4e2a\u65e0\u6cd5\u907f\u514d\u95ee\u9898\uff0c\u8fd9\u5bf9\u7cfb\u7edf\u7684\u5ef6\u8fdf\u9020\u6210\u4e00\u4e9b\u5f71\u54cd\u3002\u53e6\u5916\uff0c\u7531\u4e8eHBase \u672c\u8eab\u5e76\u4e0d\u5b58\u50a8\u6570\u636e\uff0c\u548c HDFS \u4e4b\u95f4\u7684\u4ea4\u4e92\u4f1a\u591a\u4e00\u5c42\u6027\u80fd\u635f\u8017\u3002\u7b2c\u4e09\uff0c HBase \u548cBigTable \u4e00\u6837\uff0c\u5e76\u4e0d\u652f\u6301\u8de8\u884c\u4e8b\u52a1\uff0c\u6240\u4ee5\u5728 Google \u5185\u90e8\u6709\u56e2\u961f\u5f00\u53d1\u4e86 MegaStore \u3001 Percolator \u8fd9\u4e9b\u57fa\u4e8e BigTable \u7684\u4e8b\u52a1\u5c42\u3002 Jeff Dean \u627f\u8ba4\u5f88\u540e\u6094\u6ca1\u6709\u5728 BigTable \u4e2d\u52a0\u5165\u8de8\u884c\u4e8b\u52a1\uff0c\u8fd9\u4e5f\u662f Spanner \u51fa\u73b0\u7684\u4e00\u4e2a\u539f\u56e0\u3002"),(0,o.yg)("h4",{id:"rdms-\u7684\u6551\u8d4e"},"RDMS \u7684\u6551\u8d4e"),(0,o.yg)("p",null,"\u9664\u4e86 NoSQL \u4e4b\u5916\uff0c RDMS \u7cfb\u7edf\u4e5f\u505a\u4e86\u4e0d\u5c11\u52aa\u529b\u6765\u9002\u5e94\u4e1a\u52a1\u7684\u53d8\u5316\uff0c\u4e5f\u5c31\u662f\u5173\u7cfb\u578b\u6570\u636e\u5e93\u7684\u4e2d\u95f4\u4ef6\u548c\u5206\u5e93\u5206\u8868\u65b9\u6848\u3002\u505a\u4e00\u6b3e\u4e2d\u95f4\u4ef6\u9700\u8981\u8003\u8651\u5f88\u591a\uff0c\u6bd4\u5982\u89e3\u6790 SQL \uff0c\u89e3\u6790\u51fa ShardKey \uff0c\u7136\u540e\u6839\u636e ShardKey \u5206\u53d1\u8bf7\u6c42\uff0c\u518d\u5408\u5e76\u7ed3\u679c\u3002\u53e6\u5916\u5728\u4e2d\u95f4\u4ef6\u8fd9\u5c42\u8fd8\u9700\u8981\u7ef4\u62a4 Session \u53ca\u4e8b\u52a1\u72b6\u6001\uff0c\u800c\u4e14\u5927\u591a\u6570\u65b9\u6848\u5e76\u4e0d\u652f\u6301\u8de8 shard \u7684\u4e8b\u52a1\uff0c\u8fd9\u5c31\u4e0d\u53ef\u907f\u514d\u5730\u5bfc\u81f4\u4e86\u4e1a\u52a1\u4f7f\u7528\u8d77\u6765\u4f1a\u6bd4\u8f83\u9ebb\u70e6\uff0c\u9700\u8981\u81ea\u5df1\u7ef4\u62a4\u4e8b\u52a1\u72b6\u6001\u3002\u6b64\u5916\uff0c\u8fd8\u6709\u52a8\u6001\u7684\u6269\u5bb9\u7f29\u5bb9\u548c\u81ea\u52a8\u7684\u6545\u969c\u6062\u590d\uff0c\u5728\u96c6\u7fa4\u89c4\u6a21\u8d8a\u6765\u8d8a\u5927\u7684\u60c5\u51b5\u4e0b\uff0c\u8fd0\u7ef4\u548c DDL \u7684\u590d\u6742\u5ea6\u662f\u6307\u6570\u7ea7\u4e0a\u5347\u3002"),(0,o.yg)("p",null,"\u56fd\u5185\u5f00\u53d1\u8005\u5728\u8fd9\u4e2a\u9886\u57df\u6709\u8fc7\u5f88\u591a\u7684\u8457\u540d\u7684\u9879\u76ee\uff0c\u6bd4\u5982\u963f\u91cc\u7684 Cobar \u3001 TDDL \uff0c\u540e\u6765\u793e\u533a\u57fa\u4e8eCobar \u6539\u8fdb\u7684 MyCAT \uff0c 360 \u5f00\u6e90\u7684 Atlas \u7b49\uff0c\u90fd\u5c5e\u4e8e\u8fd9\u4e00\u7c7b\u4e2d\u95f4\u4ef6\u4ea7\u54c1\u3002\u5728\u4e2d\u95f4\u4ef6\u8fd9\u4e2a\u65b9\u6848\u4e0a\u6709\u4e00\u4e2a\u77e5\u540d\u7684\u5f00\u6e90\u9879\u76ee\u662f Youtube \u7684 Vitess \uff0c\u8fd9\u662f\u4e00\u4e2a\u96c6\u5927\u6210\u7684\u4e2d\u95f4\u4ef6\u4ea7\u54c1\uff0c\u5185\u7f6e\u4e86\u70ed\u6570\u636e\u7f13\u5b58\u3001\u6c34\u5e73\u52a8\u6001\u5206\u7247\u3001\u8bfb\u5199\u5206\u79bb\u7b49\uff0c\u4f46\u8fd9\u4e5f\u9020\u6210\u4e86\u6574\u4e2a\u9879\u76ee\u975e\u5e38\u590d\u6742\u3002"),(0,o.yg)("p",null,"\u53e6\u5916\u4e00\u4e2a\u503c\u5f97\u4e00\u63d0\u7684\u662f PostgreSQL XC \u8fd9\u4e2a\u9879\u76ee\uff0c\u5176\u6574\u4f53\u7684\u67b6\u6784\u6709\u70b9\u50cf\u65e9\u671f\u7248\u672c\u7684OceanBase \uff0c\u7531\u4e00\u4e2a\u4e2d\u592e\u8282\u70b9\u6765\u5904\u7406\u534f\u8c03\u5206\u5e03\u5f0f\u4e8b\u52a1\uff0c\u6570\u636e\u5206\u6563\u5728\u5404\u4e2a\u5b58\u50a8\u8282\u70b9\u4e0a\uff0c\u5e94\u8be5\u662f\u76ee\u524d PG \u793e\u533a\u6700\u597d\u7684\u5206\u5e03\u5f0f\u6269\u5c55\u65b9\u6848\uff0c\u4e0d\u5c11\u4eba\u5728\u57fa\u4e8e\u8fd9\u4e2a\u9879\u76ee\u505a\u81ea\u5df1\u7684\u7cfb\u7edf\u3002"),(0,o.yg)("h3",{id:"\u5173\u7cfb\u578b\u6570\u636e\u5e93\u4e2d\u95f4\u4ef6"},"\u5173\u7cfb\u578b\u6570\u636e\u5e93\u4e2d\u95f4\u4ef6"),(0,o.yg)("p",null,"RDMS\u7684\u6551\u8d4e\u5c31\u662f\u5173\u7cfb\u578b\u6570\u636e\u5e93\u4e2d\u95f4\u4ef6\u4ea7\u751f\u7684\u539f\u56e0\u3002"),(0,o.yg)("h3",{id:"newsql\u7684\u53d1\u5c55"},"NewSQL\u7684\u53d1\u5c55"),(0,o.yg)("p",null,"2012 ~ 2013 \u5e74 Google \u76f8\u7ee7\u53d1\u8868\u4e86 Spanner \u548c F1 \u4e24\u5957\u7cfb\u7edf\u7684\u8bba\u6587\uff0c\u8ba9\u4e1a\u754c\u7b2c\u4e00\u6b21\u770b\u5230\u4e86\u5173\u7cfb\u6a21\u578b\u548c NoSQL \u7684\u6269\u5c55\u6027\u5728\u4e00\u4e2a\u5927\u89c4\u6a21\u751f\u4ea7\u7cfb\u7edf\u4e0a\u878d\u5408\u7684\u53ef\u80fd\u6027\u3002 Spanner \u901a\u8fc7\u4f7f\u7528\u786c\u4ef6\u8bbe\u5907\uff08 GPS \u65f6\u949f+\u539f\u5b50\u949f\uff09\u5de7\u5999\u5730\u89e3\u51b3\u65f6\u949f\u540c\u6b65\u7684\u95ee\u9898\uff0c\u800c\u5728\u5206\u5e03\u5f0f\u7cfb\u7edf\u91cc\uff0c\u65f6\u949f\u6b63\u662f\u6700\u8ba9\u4eba\u5934\u75db\u7684\u95ee\u9898\u3002Spanner \u7684\u5f3a\u5927\u4e4b\u5904\u5728\u4e8e\u5373\u4f7f\u4e24\u4e2a\u6570\u636e\u4e2d\u5fc3\u9694\u5f97\u975e\u5e38\u8fdc\uff0c\u4e5f\u80fd\u4fdd\u8bc1\u901a\u8fc7TrueTime API \u83b7\u53d6\u7684\u65f6\u95f4\u8bef\u5dee\u5728\u4e00\u4e2a\u5f88\u5c0f\u7684\u8303\u56f4\u5185\uff08 10ms \uff09\uff0c\u5e76\u4e14\u4e0d\u9700\u8981\u901a\u8baf\u3002 Spanner \u7684\u5e95\u5c42\u4ecd\u7136\u57fa\u4e8e\u5206\u5e03\u5f0f\u6587\u4ef6\u7cfb\u7edf\uff0c\u4e0d\u8fc7\u8bba\u6587\u91cc\u4e5f\u8bf4\u662f\u53ef\u4ee5\u672a\u6765\u4f18\u5316\u7684\u70b9\u3002"),(0,o.yg)("p",null,"Google \u7684\u5185\u90e8\u7684\u6570\u636e\u5e93\u5b58\u50a8\u4e1a\u52a1\uff0c\u5927\u591a\u662f 3 ~ 5 \u526f\u672c\uff0c\u91cd\u8981\u7684\u6570\u636e\u9700\u8981 7 \u526f\u672c\uff0c\u4e14\u8fd9\u4e9b\u526f\u672c\u904d\u5e03\u5168\u7403\u5404\u5927\u6d32\u7684\u6570\u636e\u4e2d\u5fc3\uff0c\u7531\u4e8e\u666e\u904d\u4f7f\u7528\u4e86Paxos \uff0c\u5ef6\u8fdf\u662f\u53ef\u4ee5\u7f29\u77ed\u5230\u4e00\u4e2a\u53ef\u4ee5\u63a5\u53d7\u7684\u8303\u56f4(\u5199\u5165\u5ef6\u8fdf 100 ms\u4ee5\u4e0a)\uff0c\u53e6\u5916\u7531 Paxos \u5e26\u6765\u7684 Auto-Failover \u80fd\u529b\uff0c\u66f4\u662f\u8ba9\u6574\u4e2a\u96c6\u7fa4\u5373\u4f7f\u6570\u636e\u4e2d\u5fc3\u762b\u75ea\uff0c\u4e1a\u52a1\u5c42\u90fd\u662f\u900f\u660e\u65e0\u611f\u77e5\u7684\u3002 F1 \u662f\u6784\u5efa\u5728 Spanner \u4e4b\u4e0a\uff0c\u5bf9\u5916\u63d0\u4f9b\u4e86 SQL \u63a5\u53e3\uff0c F1 \u662f\u4e00\u4e2a\u5206\u5e03\u5f0f MPP SQL \u5c42\uff0c\u5176\u672c\u8eab\u5e76\u4e0d\u5b58\u50a8\u6570\u636e\uff0c\u800c\u662f\u5c06\u5ba2\u6237\u7aef\u7684 SQL \u7ffb\u8bd1\u6210\u5bf9KV \u7684\u64cd\u4f5c\uff0c\u8c03\u7528 Spanner \u6765\u5b8c\u6210\u8bf7\u6c42\u3002"),(0,o.yg)("p",null,"Spanner \u548c F1 \u7684\u51fa\u73b0\u6807\u5fd7\u7740\u7b2c\u4e00\u4e2a NewSQL \u5728\u751f\u4ea7\u73af\u5883\u4e2d\u63d0\u4f9b\u670d\u52a1\uff0c\u5c06\u4e0b\u9762\u51e0\u4e2a\u529f\u80fd\u5728\u4e00\u5957\u7cfb\u7edf\u4e2d\u63d0\u4f9b\uff1a"),(0,o.yg)("ol",null,(0,o.yg)("li",{parentName:"ol"},"SQL \u652f\u6301"),(0,o.yg)("li",{parentName:"ol"},"ACID \u4e8b\u52a1"),(0,o.yg)("li",{parentName:"ol"},"\u6c34\u5e73\u6269\u5c55"),(0,o.yg)("li",{parentName:"ol"},"Auto Failover"),(0,o.yg)("li",{parentName:"ol"},"\u591a\u673a\u623f\u5f02\u5730\u5bb9\u707e")),(0,o.yg)("p",null,"\u6b63\u56e0\u4e3a\u5177\u5907\u5982\u6b64\u591a\u7684\u8bf1\u4eba\u7279\u6027\uff0c\u5728 Google \u5185\u90e8\uff0c\u5927\u91cf\u7684\u4e1a\u52a1\u5df2\u7ecf\u4ece\u539f\u6765\u7684 BigTable \u5207\u6362\u5230Spanner \u4e4b\u4e0a\u3002\u76f8\u4fe1\u8fd9\u5bf9\u4e1a\u754c\u7684\u601d\u8def\u4f1a\u6709\u5de8\u5927\u7684\u5f71\u54cd\uff0c\u5c31\u50cf\u5f53\u5e74\u7684 Hadoop \u4e00\u6837\uff0c Google \u7684\u57fa\u7840\u8f6f\u4ef6\u7684\u6280\u672f\u8d8b\u52bf\u662f\u8d70\u5728\u793e\u533a\u524d\u9762\u7684\u3002\nSpanner/F1 \u8bba\u6587\u5f15\u8d77\u4e86\u793e\u533a\u7684\u5e7f\u6cdb\u7684\u5173\u6ce8\uff0c\u5f88\u5feb\u5f00\u59cb\u51fa\u73b0\u4e86\u8ffd\u968f\u8005\u3002\u7b2c\u4e00\u4e2a\u56e2\u961f\u662fCockroachLabs \u505a\u7684 CockroachDB \u3002 CockroachDB \u7684\u8bbe\u8ba1\u548c Spanner \u5f88\u50cf\uff0c\u4f46\u662f\u6ca1\u6709\u9009\u62e9 TrueTime API \uff0c\u800c\u662f\u4f7f\u7528 HLC\uff08 Hybrid logical clock \uff09\uff0c\u4e5f\u5c31\u662f NTP +\u903b\u8f91\u65f6\u949f\u6765\u4ee3\u66ff TrueTime \u65f6\u95f4\u6233\uff0c\u53e6\u5916 CockroachDB \u9009\u7528 Raft \u505a\u6570\u636e\u590d\u5236\u534f\u8bae\uff0c\u5e95\u5c42\u5b58\u50a8\u843d\u5730\u5728RocksDB \u4e2d\uff0c\u5bf9\u5916\u7684\u63a5\u53e3\u9009\u62e9\u4e86 PG \u534f\u8bae\u3002"),(0,o.yg)("p",null,"CockroachDB \u7684\u6280\u672f\u9009\u578b\u6bd4\u8f83\u6fc0\u8fdb\uff0c\u6bd4\u5982\u4f9d\u8d56\u4e86 HLC \u6765\u505a\u4e8b\u52a1\uff0c\u65f6\u95f4\u6233\u7684\u7cbe\u786e\u5ea6\u5e76\u6ca1\u6709\u529e\u6cd5\u505a\u5230 10 ms\u5185\u7684\u5ef6\u8fdf\uff0c\u6240\u4ee5 Commit Wait \u9700\u8981\u7528\u6237\u81ea\u5df1\u6307\u5b9a\uff0c\u5176\u9009\u62e9\u53d6\u51b3\u4e8e\u7528\u6237\u7684 NTP \u670d\u52a1\u65f6\u949f\u8bef\u5dee\uff0c\u8fd9\u70b9\u5bf9\u4e8e\u7528\u6237\u6765\u8bf4\u975e\u5e38\u4e0d\u53cb\u597d\u3002\u5f53\u7136 CockroachDB \u7684\u8fd9\u4e9b\u6280\u672f\u9009\u62e9\u4e5f\u5e26\u6765\u4e86\u5f88\u597d\u7684\u6613\u7528\u6027\uff0c\u6240\u6709\u903b\u8f91\u90fd\u5728\u4e00\u4e2a\u7ec4\u4ef6\u4e2d\uff0c\u90e8\u7f72\u975e\u5e38\u7b80\u5355\uff0c\u8fd9\u4e2a\u662f\u975e\u5e38\u5927\u7684\u4f18\u70b9\u3002"))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2320],{5680:(e,r,n)=>{n.d(r,{xA:()=>c,yg:()=>g});var t=n(6540);function o(e,r,n){return r in e?Object.defineProperty(e,r,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[r]=n,e}function a(e,r){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);r&&(t=t.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),n.push.apply(n,t)}return n}function l(e){for(var r=1;r=0||(o[n]=e[n]);return o}(e,r);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(t=0;t=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=t.createContext({}),p=function(e){var r=t.useContext(s),n=r;return e&&(n="function"==typeof e?e(r):l(l({},r),e)),n},c=function(e){var r=p(e.components);return t.createElement(s.Provider,{value:r},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var r=e.children;return t.createElement(t.Fragment,{},r)}},y=t.forwardRef((function(e,r){var n=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),u=p(n),y=o,g=u["".concat(s,".").concat(y)]||u[y]||d[y]||a;return n?t.createElement(g,l(l({ref:r},c),{},{components:n})):t.createElement(g,l({ref:r},c))}));function g(e,r){var n=arguments,o=r&&r.mdxType;if("string"==typeof e||o){var a=n.length,l=new Array(a);l[0]=y;var i={};for(var s in r)hasOwnProperty.call(r,s)&&(i[s]=r[s]);i.originalType=e,i[u]="string"==typeof e?e:o,l[1]=i;for(var p=2;p{n.r(r),n.d(r,{assets:()=>s,contentTitle:()=>l,default:()=>d,frontMatter:()=>a,metadata:()=>i,toc:()=>p});var t=n(8168),o=(n(6540),n(5680));const a={sidebar_position:1},l=void 0,i={unversionedId:"study/db/SQL/\u7efc\u5408\u6982\u8ff0",id:"study/db/SQL/\u7efc\u5408\u6982\u8ff0",title:"\u7efc\u5408\u6982\u8ff0",description:"\u80cc\u666f",source:"@site/docs/study/db/SQL/\u7efc\u5408\u6982\u8ff0.md",sourceDirName:"study/db/SQL",slug:"/study/db/SQL/\u7efc\u5408\u6982\u8ff0",permalink:"/docs/study/db/SQL/\u7efc\u5408\u6982\u8ff0",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"studySidebar",previous:{title:"StarRocks",permalink:"/docs/study/db/OLAP/StarRocks"},next:{title:"MariaDB",permalink:"/docs/study/db/SQL/MariaDB"}},s={},p=[{value:"\u80cc\u666f",id:"\u80cc\u666f",level:3},{value:"\u5206\u5e03\u5f0f\u6570\u636e\u5e93",id:"\u5206\u5e03\u5f0f\u6570\u636e\u5e93",level:3},{value:"NoSQL\u7684\u8fdb\u51fb",id:"nosql\u7684\u8fdb\u51fb",level:4},{value:"RDMS \u7684\u6551\u8d4e",id:"rdms-\u7684\u6551\u8d4e",level:4},{value:"\u5173\u7cfb\u578b\u6570\u636e\u5e93\u4e2d\u95f4\u4ef6",id:"\u5173\u7cfb\u578b\u6570\u636e\u5e93\u4e2d\u95f4\u4ef6",level:3},{value:"NewSQL\u7684\u53d1\u5c55",id:"newsql\u7684\u53d1\u5c55",level:3}],c={toc:p},u="wrapper";function d(e){let{components:r,...n}=e;return(0,o.yg)(u,(0,t.A)({},c,n,{components:r,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"\u80cc\u666f"},"\u80cc\u666f"),(0,o.yg)("p",null,"\u968f\u7740\u4e92\u8054\u7f51\u7684\u4e0d\u65ad\u666e\u53ca\u7279\u522b\u662f\u79fb\u52a8\u4e92\u8054\u7f51\u7684\u5174\u8d77\uff0c\u6570\u636e\u89c4\u6a21\u7206\u70b8\u5f0f\u589e\u957f\uff0c\u800c\u786c\u4ef6\u8fd9\u4e9b\u5e74\u7684\u8fdb\u6b65\u901f\u5ea6\u5374\u5728\u9010\u6e10\u51cf\u6162\uff0c\u4eba\u4eec\u4e5f\u5728\u62c5\u5fc3\u6469\u5c14\u5b9a\u5f8b\u4f1a\u5931\u6548\u3002\u5728\u6b64\u6d88\u5f7c\u957f\u7684\u60c5\u51b5\u4e0b\uff0c\u5355\u673a\u6570\u636e\u5e93\u8d8a\u6765\u8d8a\u96be\u4ee5\u6ee1\u8db3\u7528\u6237\u9700\u6c42\uff0c\u5373\u4f7f\u662f\u5c06\u6570\u636e\u4fdd\u5b58\u4e0b\u6765\u8fd9\u4e2a\u6700\u57fa\u672c\u7684\u9700\u6c42\u3002"),(0,o.yg)("h3",{id:"\u5206\u5e03\u5f0f\u6570\u636e\u5e93"},"\u5206\u5e03\u5f0f\u6570\u636e\u5e93"),(0,o.yg)("p",null,"\u6240\u4ee5 2005 \u5e74\u5de6\u53f3\uff0c\u4eba\u4eec\u5f00\u59cb\u63a2\u7d22\u5206\u5e03\u5f0f\u6570\u636e\u5e93\uff0c\u5e26\u8d77\u4e86 NoSQL \u8fd9\u6ce2\u6d6a\u6f6e\u3002\u8fd9\u4e9b\u6570\u636e\u5e93\u89e3\u51b3\u7684\u9996\u8981\u95ee\u9898\u662f\u5355\u673a\u4e0a\u65e0\u6cd5\u4fdd\u5b58\u5168\u90e8\u6570\u636e\uff0c\u5176\u4e2d\u4ee5 HBase/Cassadra/MongoDB \u4e3a\u4ee3\u8868\u3002\u4e3a\u4e86\u5b9e\u73b0\u5bb9\u91cf\u7684\u6c34\u5e73\u6269\u5c55\uff0c\u8fd9\u4e9b\u6570\u636e\u5e93\u5f80\u5f80\u8981\u653e\u5f03\u4e8b\u52a1\uff0c\u6216\u8005\u662f\u53ea\u63d0\u4f9b\u7b80\u5355\u7684 KV \u63a5\u53e3\u3002\u5b58\u50a8\u6a21\u578b\u7684\u7b80\u5316\u4e3a\u5b58\u50a8\u7cfb\u7edf\u7684\u5f00\u53d1\u5e26\u6765\u4e86\u4fbf\u5229\uff0c\u4f46\u662f\u964d\u4f4e\u4e86\u5bf9\u4e1a\u52a1\u7684\u652f\u6491\u3002"),(0,o.yg)("h4",{id:"nosql\u7684\u8fdb\u51fb"},"NoSQL\u7684\u8fdb\u51fb"),(0,o.yg)("p",null,"HBase \u662f\u5176\u4e2d\u7684\u5178\u578b\u4ee3\u8868\u3002 HBase \u662f Hadoop \u751f\u6001\u4e2d\u7684\u91cd\u8981\u4ea7\u54c1\uff0cGoogle BigTable \u7684\u5f00\u6e90\u5b9e\u73b0\uff0c\u6240\u4ee5\u8fd9\u91cc\u5148\u8bf4\u4e00\u4e0b BigTable \u3002"),(0,o.yg)("p",null,"BigTable \u662f Google \u5185\u90e8\u4f7f\u7528\u7684\u5206\u5e03\u5f0f\u6570\u636e\u5e93\uff0c\u6784\u5efa\u5728 GFS \u7684\u57fa\u7840\u4e0a\uff0c\u5f25\u8865\u4e86\u5206\u5e03\u5f0f\u6587\u4ef6\u7cfb\u7edf\u5bf9\u4e8e\u5c0f\u5bf9\u8c61\u7684\u63d2\u5165\u3001\u66f4\u65b0\u3001\u968f\u673a\u8bfb\u8bf7\u6c42\u7684\u7f3a\u9677\u3002HBase \u4e5f\u6309\u7167\u8fd9\u4e2a\u67b6\u6784\u5b9e\u73b0\uff0c\u5e95\u5c42\u57fa\u4e8eHDFS \u3002 HBase \u672c\u8eab\u5e76\u4e0d\u5b9e\u9645\u5b58\u50a8\u6570\u636e\uff0c\u6301\u4e45\u5316\u7684\u65e5\u5fd7\u548c SST file \u5b58\u50a8\u5728 HDFS \u4e0a\uff0cRegion Server \u901a\u8fc7 MemTable \u63d0\u4f9b\u5feb\u901f\u7684\u67e5\u8be2\uff0c\u5199\u5165\u90fd\u662f\u5148\u5199\u65e5\u5fd7\uff0c\u540e\u53f0\u8fdb\u884cCompact \uff0c\u5c06\u968f\u673a\u5199\u8f6c\u6362\u4e3a\u987a\u5e8f\u5199\u3002\u6570\u636e\u901a\u8fc7 Region \u5728\u903b\u8f91\u4e0a\u8fdb\u884c\u5206\u5272\uff0c\u8d1f\u8f7d\u5747\u8861\u901a\u8fc7\u8c03\u8282\u5404\u4e2a Region Server \u8d1f\u8d23\u7684Region\u533a\u95f4\u5b9e\u73b0\uff0cRegion\u5728 \u6301\u7eed\u5199\u5165\u540e\uff0c\u4f1a\u8fdb\u884c\u5206\u88c2\uff0c\u7136\u540e\u88ab\u8d1f\u8f7d\u5747\u8861\u7b56\u7565\u8c03\u5ea6\u5230\u591a\u4e2a Region Server \u4e0a\u3002"),(0,o.yg)("p",null,"\u524d\u9762\u63d0\u5230\u4e86\uff0c HBase \u672c\u8eab\u5e76\u4e0d\u5b58\u50a8\u6570\u636e\uff0c\u8fd9\u91cc\u7684 Region \u4ec5\u662f\u903b\u8f91\u4e0a\u7684\u6982\u5ff5\uff0c\u6570\u636e\u8fd8\u662f\u4ee5\u6587\u4ef6\u7684\u5f62\u5f0f\u5b58\u50a8\u5728 HDFS \u4e0a\uff0cHBase \u5e76\u4e0d\u5173\u5fc3\u526f\u672c\u4e2a\u6570\u3001\u4f4d\u7f6e\u4ee5\u53ca\u6c34\u5e73\u6269\u5c55\u95ee\u9898\uff0c\u8fd9\u4e9b\u90fd\u4f9d\u8d56\u4e8e HDFS \u5b9e\u73b0\u3002\u548c BigTable \u4e00\u6837\uff0c HBase \u63d0\u4f9b\u884c\u7ea7\u7684\u4e00\u81f4\u6027\uff0c\u4ece CAP \u7406\u8bba\u7684\u89d2\u5ea6\u6765\u770b\uff0c\u5b83\u662f\u4e00\u4e2a CP \u7684\u7cfb\u7edf\uff0c\u5e76\u4e14\u6ca1\u6709\u66f4\u8fdb\u4e00\u6b65\u63d0\u4f9b ACID \u7684\u8de8\u884c\u4e8b\u52a1\uff0c\u4e5f\u662f\u5f88\u9057\u61be\u3002"),(0,o.yg)("p",null,"HBase \u7684\u4f18\u52bf\u5728\u4e8e\u901a\u8fc7\u6269\u5c55 Region Server \u53ef\u4ee5\u51e0\u4e4e\u7ebf\u6027\u63d0\u5347\u7cfb\u7edf\u7684\u541e\u5410\uff0c\u53ca HDFS \u672c\u8eab\u5c31\u5177\u6709\u7684\u6c34\u5e73\u6269\u5c55\u80fd\u529b\uff0c\u4e14\u6574\u4e2a\u7cfb\u7edf\u6210\u719f\u7a33\u5b9a\u3002\u4f46 HBase \u4f9d\u7136\u6709\u4e00\u4e9b\u4e0d\u8db3\u3002\u9996\u5148\uff0c Hadoop \u4f7f\u7528 Java \u5f00\u53d1\uff0c GC \u5ef6\u8fdf\u662f\u4e00\u4e2a\u65e0\u6cd5\u907f\u514d\u95ee\u9898\uff0c\u8fd9\u5bf9\u7cfb\u7edf\u7684\u5ef6\u8fdf\u9020\u6210\u4e00\u4e9b\u5f71\u54cd\u3002\u53e6\u5916\uff0c\u7531\u4e8eHBase \u672c\u8eab\u5e76\u4e0d\u5b58\u50a8\u6570\u636e\uff0c\u548c HDFS \u4e4b\u95f4\u7684\u4ea4\u4e92\u4f1a\u591a\u4e00\u5c42\u6027\u80fd\u635f\u8017\u3002\u7b2c\u4e09\uff0c HBase \u548cBigTable \u4e00\u6837\uff0c\u5e76\u4e0d\u652f\u6301\u8de8\u884c\u4e8b\u52a1\uff0c\u6240\u4ee5\u5728 Google \u5185\u90e8\u6709\u56e2\u961f\u5f00\u53d1\u4e86 MegaStore \u3001 Percolator \u8fd9\u4e9b\u57fa\u4e8e BigTable \u7684\u4e8b\u52a1\u5c42\u3002 Jeff Dean \u627f\u8ba4\u5f88\u540e\u6094\u6ca1\u6709\u5728 BigTable \u4e2d\u52a0\u5165\u8de8\u884c\u4e8b\u52a1\uff0c\u8fd9\u4e5f\u662f Spanner \u51fa\u73b0\u7684\u4e00\u4e2a\u539f\u56e0\u3002"),(0,o.yg)("h4",{id:"rdms-\u7684\u6551\u8d4e"},"RDMS \u7684\u6551\u8d4e"),(0,o.yg)("p",null,"\u9664\u4e86 NoSQL \u4e4b\u5916\uff0c RDMS \u7cfb\u7edf\u4e5f\u505a\u4e86\u4e0d\u5c11\u52aa\u529b\u6765\u9002\u5e94\u4e1a\u52a1\u7684\u53d8\u5316\uff0c\u4e5f\u5c31\u662f\u5173\u7cfb\u578b\u6570\u636e\u5e93\u7684\u4e2d\u95f4\u4ef6\u548c\u5206\u5e93\u5206\u8868\u65b9\u6848\u3002\u505a\u4e00\u6b3e\u4e2d\u95f4\u4ef6\u9700\u8981\u8003\u8651\u5f88\u591a\uff0c\u6bd4\u5982\u89e3\u6790 SQL \uff0c\u89e3\u6790\u51fa ShardKey \uff0c\u7136\u540e\u6839\u636e ShardKey \u5206\u53d1\u8bf7\u6c42\uff0c\u518d\u5408\u5e76\u7ed3\u679c\u3002\u53e6\u5916\u5728\u4e2d\u95f4\u4ef6\u8fd9\u5c42\u8fd8\u9700\u8981\u7ef4\u62a4 Session \u53ca\u4e8b\u52a1\u72b6\u6001\uff0c\u800c\u4e14\u5927\u591a\u6570\u65b9\u6848\u5e76\u4e0d\u652f\u6301\u8de8 shard \u7684\u4e8b\u52a1\uff0c\u8fd9\u5c31\u4e0d\u53ef\u907f\u514d\u5730\u5bfc\u81f4\u4e86\u4e1a\u52a1\u4f7f\u7528\u8d77\u6765\u4f1a\u6bd4\u8f83\u9ebb\u70e6\uff0c\u9700\u8981\u81ea\u5df1\u7ef4\u62a4\u4e8b\u52a1\u72b6\u6001\u3002\u6b64\u5916\uff0c\u8fd8\u6709\u52a8\u6001\u7684\u6269\u5bb9\u7f29\u5bb9\u548c\u81ea\u52a8\u7684\u6545\u969c\u6062\u590d\uff0c\u5728\u96c6\u7fa4\u89c4\u6a21\u8d8a\u6765\u8d8a\u5927\u7684\u60c5\u51b5\u4e0b\uff0c\u8fd0\u7ef4\u548c DDL \u7684\u590d\u6742\u5ea6\u662f\u6307\u6570\u7ea7\u4e0a\u5347\u3002"),(0,o.yg)("p",null,"\u56fd\u5185\u5f00\u53d1\u8005\u5728\u8fd9\u4e2a\u9886\u57df\u6709\u8fc7\u5f88\u591a\u7684\u8457\u540d\u7684\u9879\u76ee\uff0c\u6bd4\u5982\u963f\u91cc\u7684 Cobar \u3001 TDDL \uff0c\u540e\u6765\u793e\u533a\u57fa\u4e8eCobar \u6539\u8fdb\u7684 MyCAT \uff0c 360 \u5f00\u6e90\u7684 Atlas \u7b49\uff0c\u90fd\u5c5e\u4e8e\u8fd9\u4e00\u7c7b\u4e2d\u95f4\u4ef6\u4ea7\u54c1\u3002\u5728\u4e2d\u95f4\u4ef6\u8fd9\u4e2a\u65b9\u6848\u4e0a\u6709\u4e00\u4e2a\u77e5\u540d\u7684\u5f00\u6e90\u9879\u76ee\u662f Youtube \u7684 Vitess \uff0c\u8fd9\u662f\u4e00\u4e2a\u96c6\u5927\u6210\u7684\u4e2d\u95f4\u4ef6\u4ea7\u54c1\uff0c\u5185\u7f6e\u4e86\u70ed\u6570\u636e\u7f13\u5b58\u3001\u6c34\u5e73\u52a8\u6001\u5206\u7247\u3001\u8bfb\u5199\u5206\u79bb\u7b49\uff0c\u4f46\u8fd9\u4e5f\u9020\u6210\u4e86\u6574\u4e2a\u9879\u76ee\u975e\u5e38\u590d\u6742\u3002"),(0,o.yg)("p",null,"\u53e6\u5916\u4e00\u4e2a\u503c\u5f97\u4e00\u63d0\u7684\u662f PostgreSQL XC \u8fd9\u4e2a\u9879\u76ee\uff0c\u5176\u6574\u4f53\u7684\u67b6\u6784\u6709\u70b9\u50cf\u65e9\u671f\u7248\u672c\u7684OceanBase \uff0c\u7531\u4e00\u4e2a\u4e2d\u592e\u8282\u70b9\u6765\u5904\u7406\u534f\u8c03\u5206\u5e03\u5f0f\u4e8b\u52a1\uff0c\u6570\u636e\u5206\u6563\u5728\u5404\u4e2a\u5b58\u50a8\u8282\u70b9\u4e0a\uff0c\u5e94\u8be5\u662f\u76ee\u524d PG \u793e\u533a\u6700\u597d\u7684\u5206\u5e03\u5f0f\u6269\u5c55\u65b9\u6848\uff0c\u4e0d\u5c11\u4eba\u5728\u57fa\u4e8e\u8fd9\u4e2a\u9879\u76ee\u505a\u81ea\u5df1\u7684\u7cfb\u7edf\u3002"),(0,o.yg)("h3",{id:"\u5173\u7cfb\u578b\u6570\u636e\u5e93\u4e2d\u95f4\u4ef6"},"\u5173\u7cfb\u578b\u6570\u636e\u5e93\u4e2d\u95f4\u4ef6"),(0,o.yg)("p",null,"RDMS\u7684\u6551\u8d4e\u5c31\u662f\u5173\u7cfb\u578b\u6570\u636e\u5e93\u4e2d\u95f4\u4ef6\u4ea7\u751f\u7684\u539f\u56e0\u3002"),(0,o.yg)("h3",{id:"newsql\u7684\u53d1\u5c55"},"NewSQL\u7684\u53d1\u5c55"),(0,o.yg)("p",null,"2012 ~ 2013 \u5e74 Google \u76f8\u7ee7\u53d1\u8868\u4e86 Spanner \u548c F1 \u4e24\u5957\u7cfb\u7edf\u7684\u8bba\u6587\uff0c\u8ba9\u4e1a\u754c\u7b2c\u4e00\u6b21\u770b\u5230\u4e86\u5173\u7cfb\u6a21\u578b\u548c NoSQL \u7684\u6269\u5c55\u6027\u5728\u4e00\u4e2a\u5927\u89c4\u6a21\u751f\u4ea7\u7cfb\u7edf\u4e0a\u878d\u5408\u7684\u53ef\u80fd\u6027\u3002 Spanner \u901a\u8fc7\u4f7f\u7528\u786c\u4ef6\u8bbe\u5907\uff08 GPS \u65f6\u949f+\u539f\u5b50\u949f\uff09\u5de7\u5999\u5730\u89e3\u51b3\u65f6\u949f\u540c\u6b65\u7684\u95ee\u9898\uff0c\u800c\u5728\u5206\u5e03\u5f0f\u7cfb\u7edf\u91cc\uff0c\u65f6\u949f\u6b63\u662f\u6700\u8ba9\u4eba\u5934\u75db\u7684\u95ee\u9898\u3002Spanner \u7684\u5f3a\u5927\u4e4b\u5904\u5728\u4e8e\u5373\u4f7f\u4e24\u4e2a\u6570\u636e\u4e2d\u5fc3\u9694\u5f97\u975e\u5e38\u8fdc\uff0c\u4e5f\u80fd\u4fdd\u8bc1\u901a\u8fc7TrueTime API \u83b7\u53d6\u7684\u65f6\u95f4\u8bef\u5dee\u5728\u4e00\u4e2a\u5f88\u5c0f\u7684\u8303\u56f4\u5185\uff08 10ms \uff09\uff0c\u5e76\u4e14\u4e0d\u9700\u8981\u901a\u8baf\u3002 Spanner \u7684\u5e95\u5c42\u4ecd\u7136\u57fa\u4e8e\u5206\u5e03\u5f0f\u6587\u4ef6\u7cfb\u7edf\uff0c\u4e0d\u8fc7\u8bba\u6587\u91cc\u4e5f\u8bf4\u662f\u53ef\u4ee5\u672a\u6765\u4f18\u5316\u7684\u70b9\u3002"),(0,o.yg)("p",null,"Google \u7684\u5185\u90e8\u7684\u6570\u636e\u5e93\u5b58\u50a8\u4e1a\u52a1\uff0c\u5927\u591a\u662f 3 ~ 5 \u526f\u672c\uff0c\u91cd\u8981\u7684\u6570\u636e\u9700\u8981 7 \u526f\u672c\uff0c\u4e14\u8fd9\u4e9b\u526f\u672c\u904d\u5e03\u5168\u7403\u5404\u5927\u6d32\u7684\u6570\u636e\u4e2d\u5fc3\uff0c\u7531\u4e8e\u666e\u904d\u4f7f\u7528\u4e86Paxos \uff0c\u5ef6\u8fdf\u662f\u53ef\u4ee5\u7f29\u77ed\u5230\u4e00\u4e2a\u53ef\u4ee5\u63a5\u53d7\u7684\u8303\u56f4(\u5199\u5165\u5ef6\u8fdf 100 ms\u4ee5\u4e0a)\uff0c\u53e6\u5916\u7531 Paxos \u5e26\u6765\u7684 Auto-Failover \u80fd\u529b\uff0c\u66f4\u662f\u8ba9\u6574\u4e2a\u96c6\u7fa4\u5373\u4f7f\u6570\u636e\u4e2d\u5fc3\u762b\u75ea\uff0c\u4e1a\u52a1\u5c42\u90fd\u662f\u900f\u660e\u65e0\u611f\u77e5\u7684\u3002 F1 \u662f\u6784\u5efa\u5728 Spanner \u4e4b\u4e0a\uff0c\u5bf9\u5916\u63d0\u4f9b\u4e86 SQL \u63a5\u53e3\uff0c F1 \u662f\u4e00\u4e2a\u5206\u5e03\u5f0f MPP SQL \u5c42\uff0c\u5176\u672c\u8eab\u5e76\u4e0d\u5b58\u50a8\u6570\u636e\uff0c\u800c\u662f\u5c06\u5ba2\u6237\u7aef\u7684 SQL \u7ffb\u8bd1\u6210\u5bf9KV \u7684\u64cd\u4f5c\uff0c\u8c03\u7528 Spanner \u6765\u5b8c\u6210\u8bf7\u6c42\u3002"),(0,o.yg)("p",null,"Spanner \u548c F1 \u7684\u51fa\u73b0\u6807\u5fd7\u7740\u7b2c\u4e00\u4e2a NewSQL \u5728\u751f\u4ea7\u73af\u5883\u4e2d\u63d0\u4f9b\u670d\u52a1\uff0c\u5c06\u4e0b\u9762\u51e0\u4e2a\u529f\u80fd\u5728\u4e00\u5957\u7cfb\u7edf\u4e2d\u63d0\u4f9b\uff1a"),(0,o.yg)("ol",null,(0,o.yg)("li",{parentName:"ol"},"SQL \u652f\u6301"),(0,o.yg)("li",{parentName:"ol"},"ACID \u4e8b\u52a1"),(0,o.yg)("li",{parentName:"ol"},"\u6c34\u5e73\u6269\u5c55"),(0,o.yg)("li",{parentName:"ol"},"Auto Failover"),(0,o.yg)("li",{parentName:"ol"},"\u591a\u673a\u623f\u5f02\u5730\u5bb9\u707e")),(0,o.yg)("p",null,"\u6b63\u56e0\u4e3a\u5177\u5907\u5982\u6b64\u591a\u7684\u8bf1\u4eba\u7279\u6027\uff0c\u5728 Google \u5185\u90e8\uff0c\u5927\u91cf\u7684\u4e1a\u52a1\u5df2\u7ecf\u4ece\u539f\u6765\u7684 BigTable \u5207\u6362\u5230Spanner \u4e4b\u4e0a\u3002\u76f8\u4fe1\u8fd9\u5bf9\u4e1a\u754c\u7684\u601d\u8def\u4f1a\u6709\u5de8\u5927\u7684\u5f71\u54cd\uff0c\u5c31\u50cf\u5f53\u5e74\u7684 Hadoop \u4e00\u6837\uff0c Google \u7684\u57fa\u7840\u8f6f\u4ef6\u7684\u6280\u672f\u8d8b\u52bf\u662f\u8d70\u5728\u793e\u533a\u524d\u9762\u7684\u3002\nSpanner/F1 \u8bba\u6587\u5f15\u8d77\u4e86\u793e\u533a\u7684\u5e7f\u6cdb\u7684\u5173\u6ce8\uff0c\u5f88\u5feb\u5f00\u59cb\u51fa\u73b0\u4e86\u8ffd\u968f\u8005\u3002\u7b2c\u4e00\u4e2a\u56e2\u961f\u662fCockroachLabs \u505a\u7684 CockroachDB \u3002 CockroachDB \u7684\u8bbe\u8ba1\u548c Spanner \u5f88\u50cf\uff0c\u4f46\u662f\u6ca1\u6709\u9009\u62e9 TrueTime API \uff0c\u800c\u662f\u4f7f\u7528 HLC\uff08 Hybrid logical clock \uff09\uff0c\u4e5f\u5c31\u662f NTP +\u903b\u8f91\u65f6\u949f\u6765\u4ee3\u66ff TrueTime \u65f6\u95f4\u6233\uff0c\u53e6\u5916 CockroachDB \u9009\u7528 Raft \u505a\u6570\u636e\u590d\u5236\u534f\u8bae\uff0c\u5e95\u5c42\u5b58\u50a8\u843d\u5730\u5728RocksDB \u4e2d\uff0c\u5bf9\u5916\u7684\u63a5\u53e3\u9009\u62e9\u4e86 PG \u534f\u8bae\u3002"),(0,o.yg)("p",null,"CockroachDB \u7684\u6280\u672f\u9009\u578b\u6bd4\u8f83\u6fc0\u8fdb\uff0c\u6bd4\u5982\u4f9d\u8d56\u4e86 HLC \u6765\u505a\u4e8b\u52a1\uff0c\u65f6\u95f4\u6233\u7684\u7cbe\u786e\u5ea6\u5e76\u6ca1\u6709\u529e\u6cd5\u505a\u5230 10 ms\u5185\u7684\u5ef6\u8fdf\uff0c\u6240\u4ee5 Commit Wait \u9700\u8981\u7528\u6237\u81ea\u5df1\u6307\u5b9a\uff0c\u5176\u9009\u62e9\u53d6\u51b3\u4e8e\u7528\u6237\u7684 NTP \u670d\u52a1\u65f6\u949f\u8bef\u5dee\uff0c\u8fd9\u70b9\u5bf9\u4e8e\u7528\u6237\u6765\u8bf4\u975e\u5e38\u4e0d\u53cb\u597d\u3002\u5f53\u7136 CockroachDB \u7684\u8fd9\u4e9b\u6280\u672f\u9009\u62e9\u4e5f\u5e26\u6765\u4e86\u5f88\u597d\u7684\u6613\u7528\u6027\uff0c\u6240\u6709\u903b\u8f91\u90fd\u5728\u4e00\u4e2a\u7ec4\u4ef6\u4e2d\uff0c\u90e8\u7f72\u975e\u5e38\u7b80\u5355\uff0c\u8fd9\u4e2a\u662f\u975e\u5e38\u5927\u7684\u4f18\u70b9\u3002"))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/b39354b4.f471c090.js b/assets/js/b39354b4.5073f236.js similarity index 98% rename from assets/js/b39354b4.f471c090.js rename to assets/js/b39354b4.5073f236.js index 760fd80d7..33d9ff53d 100644 --- a/assets/js/b39354b4.f471c090.js +++ b/assets/js/b39354b4.5073f236.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3011],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>g});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var u=n.createContext({}),i=function(e){var t=n.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},p=function(e){var t=i(e.components);return n.createElement(u.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,u=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),s=i(r),y=o,g=s["".concat(u,".").concat(y)]||s[y]||d[y]||a;return r?n.createElement(g,l(l({ref:t},p),{},{components:r})):n.createElement(g,l({ref:t},p))}));function g(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,l=new Array(a);l[0]=y;var c={};for(var u in t)hasOwnProperty.call(t,u)&&(c[u]=t[u]);c.originalType=e,c[s]="string"==typeof e?e:o,l[1]=c;for(var i=2;i{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>l,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>i});var n=r(8168),o=(r(6540),r(5680));const a={},l="\u5fae\u670d\u52a1",c={unversionedId:"study/back/springcloud/\u5fae\u670d\u52a1",id:"study/back/springcloud/\u5fae\u670d\u52a1",title:"\u5fae\u670d\u52a1",description:"\u5fae\u670d\u52a1\u662f\u5206\u5e03\u5f0f\u67b6\u6784\u7684\u4e00\u79cd\uff1b",source:"@site/docs/study/back/springcloud/\u5fae\u670d\u52a1.md",sourceDirName:"study/back/springcloud",slug:"/study/back/springcloud/\u5fae\u670d\u52a1",permalink:"/docs/study/back/springcloud/\u5fae\u670d\u52a1",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"SpringCloud\u4e94\u5927\u7ec4\u4ef6",permalink:"/docs/study/back/springcloud/SpringCloud\u4e94\u5927\u7ec4\u4ef6"},next:{title:"\u6982\u8ff0",permalink:"/docs/study/db/"}},u={},i=[],p={toc:i},s="wrapper";function d(e){let{components:t,...a}=e;return(0,o.yg)(s,(0,n.A)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"\u5fae\u670d\u52a1"},"\u5fae\u670d\u52a1"),(0,o.yg)("p",null,"\u5fae\u670d\u52a1\u662f\u5206\u5e03\u5f0f\u67b6\u6784\u7684\u4e00\u79cd\uff1b"),(0,o.yg)("p",null,"\u5206\u5e03\u5f0f\u67b6\u6784\u662f\u76f8\u5bf9\u5355\u4f53\u67b6\u6784\u6765\u8bf4\u7684\u3002"),(0,o.yg)("p",null,"\u5206\u5e03\u5f0f\u67b6\u6784\u76f8\u5bf9\u4e8e\u5355\u4f53\u67b6\u6784\u662f\u590d\u6742\u7684\uff0c\u5355\u4f53\u67b6\u6784\u8026\u5408\u591a\u5f88\u9ad8\uff0c\u9002\u7528\u4e8e\u7cfb\u7edf\u76f8\u5bf9\u7b80\u5355\uff0c\u4e1a\u52a1\u76f8\u5bf9\u5355\u4e00\u7684\u573a\u666f\u3002"),(0,o.yg)("p",null,"\u5206\u5e03\u5f0f\u67b6\u6784\u76f8\u5bf9\u4e8e\u5206\u5e03\u5f0f\u67b6\u6784\u6765\u8bf4\uff0c\u8026\u5408\u6027\u4f4e\uff0c\u76f8\u5bf9\u72ec\u7acb\uff0c\u9002\u7528\u4e8e\u7cfb\u7edf\u76f8\u5bf9\u590d\u6742\uff0c\u4e1a\u52a1\u76f8\u5bf9\u591a\u5143\u7684\u573a\u666f\u3002"),(0,o.yg)("p",null,"\u5206\u5e03\u5f0f\u67b6\u6784\u9700\u8981\u8003\u8651\u7684\u95ee\u9898\uff1a"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"\u670d\u52a1\u62c6\u5206\u7684\u7c92\u5ea6\u5982\u4f55\uff1f\u4e0d\u80fd\u592a\u5c0f\uff0c\u4e5f\u4e0d\u80fd\u592a\u5927\uff0c\u603b\u4f53\u6765\u8bf4\uff0c\u5148\u5927\u540e\u5c0f\uff1b"),(0,o.yg)("li",{parentName:"ul"},"\u670d\u52a1\u96c6\u7fa4\u7684\u5730\u5740\u5982\u4f55\u7ef4\u62a4\uff1f\u5c31\u662f\u4e0a\u6ce8\u518c\u4e2d\u5fc3\u4e86\uff1b"),(0,o.yg)("li",{parentName:"ul"},"\u670d\u52a1\u4e4b\u95f4\u5982\u4f55\u901a\u4fe1\uff1fHTTP\u3001RPC\u3001\u6d88\u606f\u961f\u5217\u7b49\uff1b"),(0,o.yg)("li",{parentName:"ul"},"\u670d\u52a1\u4e4b\u95f4\u5982\u4f55\u5bb9\u9519\uff1f\u670d\u52a1\u964d\u7ea7\u3001\u670d\u52a1\u7194\u65ad\u3001\u670d\u52a1\u9650\u6d41\u7b49\uff1b"),(0,o.yg)("li",{parentName:"ul"},"\u670d\u52a1\u5065\u5eb7\u72b6\u6001\u5982\u4f55\u611f\u77e5\uff1f")),(0,o.yg)("p",null,"\u5206\u5e03\u5f0f\u67b6\u6784\u6709\u5f88\u591a\uff0c\u5176\u4e2d\u5305\u62ec WebService\u3001ESB\u3001Hession\u3001Dubbo\u3001SpringCloud\u3001gRPC \u7b49\uff1b"),(0,o.yg)("p",null,(0,o.yg)("img",{alt:"dubbo-springcloud",src:r(2553).A,width:"1658",height:"760"})))}d.isMDXComponent=!0},2553:(e,t,r)=>{r.d(t,{A:()=>n});const n=r.p+"assets/images/dubbo-springcloud-cf680105829f6856647fe66b35a848f6.png"}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3011],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>g});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var u=n.createContext({}),i=function(e){var t=n.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},p=function(e){var t=i(e.components);return n.createElement(u.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,u=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),s=i(r),y=o,g=s["".concat(u,".").concat(y)]||s[y]||d[y]||a;return r?n.createElement(g,l(l({ref:t},p),{},{components:r})):n.createElement(g,l({ref:t},p))}));function g(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,l=new Array(a);l[0]=y;var c={};for(var u in t)hasOwnProperty.call(t,u)&&(c[u]=t[u]);c.originalType=e,c[s]="string"==typeof e?e:o,l[1]=c;for(var i=2;i{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>l,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>i});var n=r(8168),o=(r(6540),r(5680));const a={},l="\u5fae\u670d\u52a1",c={unversionedId:"study/back/springcloud/\u5fae\u670d\u52a1",id:"study/back/springcloud/\u5fae\u670d\u52a1",title:"\u5fae\u670d\u52a1",description:"\u5fae\u670d\u52a1\u662f\u5206\u5e03\u5f0f\u67b6\u6784\u7684\u4e00\u79cd\uff1b",source:"@site/docs/study/back/springcloud/\u5fae\u670d\u52a1.md",sourceDirName:"study/back/springcloud",slug:"/study/back/springcloud/\u5fae\u670d\u52a1",permalink:"/docs/study/back/springcloud/\u5fae\u670d\u52a1",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"SpringCloud\u4e94\u5927\u7ec4\u4ef6",permalink:"/docs/study/back/springcloud/SpringCloud\u4e94\u5927\u7ec4\u4ef6"},next:{title:"\u6982\u8ff0",permalink:"/docs/study/db/"}},u={},i=[],p={toc:i},s="wrapper";function d(e){let{components:t,...a}=e;return(0,o.yg)(s,(0,n.A)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"\u5fae\u670d\u52a1"},"\u5fae\u670d\u52a1"),(0,o.yg)("p",null,"\u5fae\u670d\u52a1\u662f\u5206\u5e03\u5f0f\u67b6\u6784\u7684\u4e00\u79cd\uff1b"),(0,o.yg)("p",null,"\u5206\u5e03\u5f0f\u67b6\u6784\u662f\u76f8\u5bf9\u5355\u4f53\u67b6\u6784\u6765\u8bf4\u7684\u3002"),(0,o.yg)("p",null,"\u5206\u5e03\u5f0f\u67b6\u6784\u76f8\u5bf9\u4e8e\u5355\u4f53\u67b6\u6784\u662f\u590d\u6742\u7684\uff0c\u5355\u4f53\u67b6\u6784\u8026\u5408\u591a\u5f88\u9ad8\uff0c\u9002\u7528\u4e8e\u7cfb\u7edf\u76f8\u5bf9\u7b80\u5355\uff0c\u4e1a\u52a1\u76f8\u5bf9\u5355\u4e00\u7684\u573a\u666f\u3002"),(0,o.yg)("p",null,"\u5206\u5e03\u5f0f\u67b6\u6784\u76f8\u5bf9\u4e8e\u5206\u5e03\u5f0f\u67b6\u6784\u6765\u8bf4\uff0c\u8026\u5408\u6027\u4f4e\uff0c\u76f8\u5bf9\u72ec\u7acb\uff0c\u9002\u7528\u4e8e\u7cfb\u7edf\u76f8\u5bf9\u590d\u6742\uff0c\u4e1a\u52a1\u76f8\u5bf9\u591a\u5143\u7684\u573a\u666f\u3002"),(0,o.yg)("p",null,"\u5206\u5e03\u5f0f\u67b6\u6784\u9700\u8981\u8003\u8651\u7684\u95ee\u9898\uff1a"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"\u670d\u52a1\u62c6\u5206\u7684\u7c92\u5ea6\u5982\u4f55\uff1f\u4e0d\u80fd\u592a\u5c0f\uff0c\u4e5f\u4e0d\u80fd\u592a\u5927\uff0c\u603b\u4f53\u6765\u8bf4\uff0c\u5148\u5927\u540e\u5c0f\uff1b"),(0,o.yg)("li",{parentName:"ul"},"\u670d\u52a1\u96c6\u7fa4\u7684\u5730\u5740\u5982\u4f55\u7ef4\u62a4\uff1f\u5c31\u662f\u4e0a\u6ce8\u518c\u4e2d\u5fc3\u4e86\uff1b"),(0,o.yg)("li",{parentName:"ul"},"\u670d\u52a1\u4e4b\u95f4\u5982\u4f55\u901a\u4fe1\uff1fHTTP\u3001RPC\u3001\u6d88\u606f\u961f\u5217\u7b49\uff1b"),(0,o.yg)("li",{parentName:"ul"},"\u670d\u52a1\u4e4b\u95f4\u5982\u4f55\u5bb9\u9519\uff1f\u670d\u52a1\u964d\u7ea7\u3001\u670d\u52a1\u7194\u65ad\u3001\u670d\u52a1\u9650\u6d41\u7b49\uff1b"),(0,o.yg)("li",{parentName:"ul"},"\u670d\u52a1\u5065\u5eb7\u72b6\u6001\u5982\u4f55\u611f\u77e5\uff1f")),(0,o.yg)("p",null,"\u5206\u5e03\u5f0f\u67b6\u6784\u6709\u5f88\u591a\uff0c\u5176\u4e2d\u5305\u62ec WebService\u3001ESB\u3001Hession\u3001Dubbo\u3001SpringCloud\u3001gRPC \u7b49\uff1b"),(0,o.yg)("p",null,(0,o.yg)("img",{alt:"dubbo-springcloud",src:r(2553).A,width:"1658",height:"760"})))}d.isMDXComponent=!0},2553:(e,t,r)=>{r.d(t,{A:()=>n});const n=r.p+"assets/images/dubbo-springcloud-cf680105829f6856647fe66b35a848f6.png"}}]); \ No newline at end of file diff --git a/assets/js/b4a7dd16.3fc127a8.js b/assets/js/b4a7dd16.7ee594cd.js similarity index 98% rename from assets/js/b4a7dd16.3fc127a8.js rename to assets/js/b4a7dd16.7ee594cd.js index 738a11616..bd95ff8a6 100644 --- a/assets/js/b4a7dd16.3fc127a8.js +++ b/assets/js/b4a7dd16.7ee594cd.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[720],{5680:(e,r,t)=>{t.d(r,{xA:()=>s,yg:()=>g});var n=t(6540);function a(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function o(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function l(e){for(var r=1;r=0||(a[t]=e[t]);return a}(e,r);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var i=n.createContext({}),c=function(e){var r=n.useContext(i),t=r;return e&&(t="function"==typeof e?e(r):l(l({},r),e)),t},s=function(e){var r=c(e.components);return n.createElement(i.Provider,{value:r},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},y=n.forwardRef((function(e,r){var t=e.components,a=e.mdxType,o=e.originalType,i=e.parentName,s=p(e,["components","mdxType","originalType","parentName"]),u=c(t),y=a,g=u["".concat(i,".").concat(y)]||u[y]||d[y]||o;return t?n.createElement(g,l(l({ref:r},s),{},{components:t})):n.createElement(g,l({ref:r},s))}));function g(e,r){var t=arguments,a=r&&r.mdxType;if("string"==typeof e||a){var o=t.length,l=new Array(o);l[0]=y;var p={};for(var i in r)hasOwnProperty.call(r,i)&&(p[i]=r[i]);p.originalType=e,p[u]="string"==typeof e?e:a,l[1]=p;for(var c=2;c{t.r(r),t.d(r,{assets:()=>i,contentTitle:()=>l,default:()=>d,frontMatter:()=>o,metadata:()=>p,toc:()=>c});var n=t(8168),a=(t(6540),t(5680));const o={},l="Erlang",p={unversionedId:"study/program/Erlang/index",id:"study/program/Erlang/index",title:"Erlang",description:"\u7b80\u4ecb",source:"@site/docs/study/program/Erlang/index.md",sourceDirName:"study/program/Erlang",slug:"/study/program/Erlang/",permalink:"/docs/study/program/Erlang/",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"sqoop",permalink:"/docs/study/program/ETL/sqoop"},next:{title:"GIT-\u5e38\u7528\u547d\u4ee4",permalink:"/docs/study/program/GIT/GIT-\u5e38\u7528\u547d\u4ee4"}},i={},c=[{value:"\u7b80\u4ecb",id:"\u7b80\u4ecb",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],s={toc:c},u="wrapper";function d(e){let{components:r,...t}=e;return(0,a.yg)(u,(0,n.A)({},s,t,{components:r,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"erlang"},"Erlang"),(0,a.yg)("h3",{id:"\u7b80\u4ecb"},"\u7b80\u4ecb"),(0,a.yg)("p",null,"Erlang \u7684\u8bbe\u8ba1\u76ee\u6807\u975e\u5e38\u660e\u786e\uff0c\u5c31\u662f\u4e13\u95e8\u4e3a\u5927\u578b\u7684\u7535\u4fe1\u7cfb\u7edf\u8bbe\u8ba1\u3002\n\u6240\u4ee5\u5b83\u7684\u5e94\u7528\u573a\u666f\u548c\u8bbe\u8ba1\u9700\u6c42\u5c31\u662f\u7535\u4fe1\u9886\u57df\u91cc\u9700\u8981\u89e3\u51b3\u7684\u95ee\u9898\u3002\n\u4e3b\u8981\u662f\u4e09\u4e2a\uff1a ",(0,a.yg)("strong",{parentName:"p"},"\u9ad8\u5e76\u53d1"),"\u3001",(0,a.yg)("strong",{parentName:"p"},"\u9ad8\u5bb9\u9519"),"\u3001",(0,a.yg)("strong",{parentName:"p"},"\u8f6f\u5b9e\u65f6"),"\u3002\u7535\u4fe1\u7cfb\u7edf\u8d1f\u8f7d\u975e\u5e38\u5927\uff0c\u9700\u8981\u540c\u65f6\u670d\u52a1\u5927\u91cf\u7528\u6237\u7684\u80fd\u529b\uff1b\u540c\u65f6\u4e0d\u5141\u8bb8\u51fa\u9519\uff0c\u7535\u8bdd\u9891\u7e41\u6389\u7ebf\u4f1a\u5f88\u5feb\u628a\u5ba2\u6237\u8d76\u5230\u7ade\u4e89\u5bf9\u624b\u90a3\u8fb9\uff1b\u518d\u8005\uff0c\u5373\u4fbf\u67d0\u4e2a\u901a\u8bdd\u518d\u7e41\u5fd9\u4e5f\u4e0d\u80fd\u5f71\u54cd\u5176\u4ed6\u901a\u8bdd\u7684\u6b63\u5e38\u8fdb\u884c\uff0c\u5230\u6280\u672f\u5c42\u9762\u5c31\u662f\uff0c\u4e0d\u80fd\u56e0\u4e3a\u67d0\u4e2a\u4efb\u52a1\u5f88\u91cd\uff0c\u5c31\u628a\u5176\u4ed6\u7684\u4efb\u52a1\u7684\u8d44\u6e90\u90fd\u5360\u7528\u4e86\uff0cwhile loop \u5360\u7528 100% CPU \u662f\u7edd\u5bf9\u4e0d\u5141\u8bb8\u7684\u3002"),(0,a.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("a",{parentName:"li",href:"https://www.jianshu.com/p/b45eb9314d1e"},"30 \u5206\u949f\u5b66 Erlang (\u4e00)"))))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[720],{5680:(e,r,t)=>{t.d(r,{xA:()=>s,yg:()=>g});var n=t(6540);function a(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function o(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function l(e){for(var r=1;r=0||(a[t]=e[t]);return a}(e,r);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var i=n.createContext({}),c=function(e){var r=n.useContext(i),t=r;return e&&(t="function"==typeof e?e(r):l(l({},r),e)),t},s=function(e){var r=c(e.components);return n.createElement(i.Provider,{value:r},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},y=n.forwardRef((function(e,r){var t=e.components,a=e.mdxType,o=e.originalType,i=e.parentName,s=p(e,["components","mdxType","originalType","parentName"]),u=c(t),y=a,g=u["".concat(i,".").concat(y)]||u[y]||d[y]||o;return t?n.createElement(g,l(l({ref:r},s),{},{components:t})):n.createElement(g,l({ref:r},s))}));function g(e,r){var t=arguments,a=r&&r.mdxType;if("string"==typeof e||a){var o=t.length,l=new Array(o);l[0]=y;var p={};for(var i in r)hasOwnProperty.call(r,i)&&(p[i]=r[i]);p.originalType=e,p[u]="string"==typeof e?e:a,l[1]=p;for(var c=2;c{t.r(r),t.d(r,{assets:()=>i,contentTitle:()=>l,default:()=>d,frontMatter:()=>o,metadata:()=>p,toc:()=>c});var n=t(8168),a=(t(6540),t(5680));const o={},l="Erlang",p={unversionedId:"study/program/Erlang/index",id:"study/program/Erlang/index",title:"Erlang",description:"\u7b80\u4ecb",source:"@site/docs/study/program/Erlang/index.md",sourceDirName:"study/program/Erlang",slug:"/study/program/Erlang/",permalink:"/docs/study/program/Erlang/",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"sqoop",permalink:"/docs/study/program/ETL/sqoop"},next:{title:"GIT-\u5e38\u7528\u547d\u4ee4",permalink:"/docs/study/program/GIT/GIT-\u5e38\u7528\u547d\u4ee4"}},i={},c=[{value:"\u7b80\u4ecb",id:"\u7b80\u4ecb",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],s={toc:c},u="wrapper";function d(e){let{components:r,...t}=e;return(0,a.yg)(u,(0,n.A)({},s,t,{components:r,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"erlang"},"Erlang"),(0,a.yg)("h3",{id:"\u7b80\u4ecb"},"\u7b80\u4ecb"),(0,a.yg)("p",null,"Erlang \u7684\u8bbe\u8ba1\u76ee\u6807\u975e\u5e38\u660e\u786e\uff0c\u5c31\u662f\u4e13\u95e8\u4e3a\u5927\u578b\u7684\u7535\u4fe1\u7cfb\u7edf\u8bbe\u8ba1\u3002\n\u6240\u4ee5\u5b83\u7684\u5e94\u7528\u573a\u666f\u548c\u8bbe\u8ba1\u9700\u6c42\u5c31\u662f\u7535\u4fe1\u9886\u57df\u91cc\u9700\u8981\u89e3\u51b3\u7684\u95ee\u9898\u3002\n\u4e3b\u8981\u662f\u4e09\u4e2a\uff1a ",(0,a.yg)("strong",{parentName:"p"},"\u9ad8\u5e76\u53d1"),"\u3001",(0,a.yg)("strong",{parentName:"p"},"\u9ad8\u5bb9\u9519"),"\u3001",(0,a.yg)("strong",{parentName:"p"},"\u8f6f\u5b9e\u65f6"),"\u3002\u7535\u4fe1\u7cfb\u7edf\u8d1f\u8f7d\u975e\u5e38\u5927\uff0c\u9700\u8981\u540c\u65f6\u670d\u52a1\u5927\u91cf\u7528\u6237\u7684\u80fd\u529b\uff1b\u540c\u65f6\u4e0d\u5141\u8bb8\u51fa\u9519\uff0c\u7535\u8bdd\u9891\u7e41\u6389\u7ebf\u4f1a\u5f88\u5feb\u628a\u5ba2\u6237\u8d76\u5230\u7ade\u4e89\u5bf9\u624b\u90a3\u8fb9\uff1b\u518d\u8005\uff0c\u5373\u4fbf\u67d0\u4e2a\u901a\u8bdd\u518d\u7e41\u5fd9\u4e5f\u4e0d\u80fd\u5f71\u54cd\u5176\u4ed6\u901a\u8bdd\u7684\u6b63\u5e38\u8fdb\u884c\uff0c\u5230\u6280\u672f\u5c42\u9762\u5c31\u662f\uff0c\u4e0d\u80fd\u56e0\u4e3a\u67d0\u4e2a\u4efb\u52a1\u5f88\u91cd\uff0c\u5c31\u628a\u5176\u4ed6\u7684\u4efb\u52a1\u7684\u8d44\u6e90\u90fd\u5360\u7528\u4e86\uff0cwhile loop \u5360\u7528 100% CPU \u662f\u7edd\u5bf9\u4e0d\u5141\u8bb8\u7684\u3002"),(0,a.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("a",{parentName:"li",href:"https://www.jianshu.com/p/b45eb9314d1e"},"30 \u5206\u949f\u5b66 Erlang (\u4e00)"))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/b6694e92.f696aa7e.js b/assets/js/b6694e92.616b2b45.js similarity index 98% rename from assets/js/b6694e92.f696aa7e.js rename to assets/js/b6694e92.616b2b45.js index 768bcce8c..b803a64db 100644 --- a/assets/js/b6694e92.f696aa7e.js +++ b/assets/js/b6694e92.616b2b45.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9624],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>d});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var l=n.createContext({}),p=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(l.Provider,{value:t},e.children)},s="mdxType",f={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),s=p(r),y=a,d=s["".concat(l,".").concat(y)]||s[y]||f[y]||o;return r?n.createElement(d,i(i({ref:t},u),{},{components:r})):n.createElement(d,i({ref:t},u))}));function d(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=y;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[s]="string"==typeof e?e:a,i[1]=c;for(var p=2;p{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>f,frontMatter:()=>o,metadata:()=>c,toc:()=>p});var n=r(8168),a=(r(6540),r(5680));const o={},i=void 0,c={unversionedId:"study/fe/\u4f4e\u4ee3\u7801\u53ef\u89c6\u5316\u5e73\u53f0",id:"study/fe/\u4f4e\u4ee3\u7801\u53ef\u89c6\u5316\u5e73\u53f0",title:"\u4f4e\u4ee3\u7801\u53ef\u89c6\u5316\u5e73\u53f0",description:"\u5f00\u6e90\u9879\u76ee",source:"@site/docs/study/fe/\u4f4e\u4ee3\u7801\u53ef\u89c6\u5316\u5e73\u53f0.md",sourceDirName:"study/fe",slug:"/study/fe/\u4f4e\u4ee3\u7801\u53ef\u89c6\u5316\u5e73\u53f0",permalink:"/docs/study/fe/\u4f4e\u4ee3\u7801\u53ef\u89c6\u5316\u5e73\u53f0",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u4e0b\u8f7d\u56fe\u7247",permalink:"/docs/study/fe/\u4e0b\u8f7d\u56fe\u7247"},next:{title:"\u6982\u8ff0",permalink:"/docs/study/back/"}},l={},p=[{value:"\u5f00\u6e90\u9879\u76ee",id:"\u5f00\u6e90\u9879\u76ee",level:3}],u={toc:p},s="wrapper";function f(e){let{components:t,...r}=e;return(0,a.yg)(s,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"\u5f00\u6e90\u9879\u76ee"},"\u5f00\u6e90\u9879\u76ee"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://gitee.com/xiaopujun/light-chaser"},"light-chaser")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://gitee.com/anji-plus/report"},"AJ-Report")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://gitee.com/dromara/go-view"},"go-view"))))}f.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9624],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>d});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var l=n.createContext({}),p=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(l.Provider,{value:t},e.children)},s="mdxType",f={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),s=p(r),y=a,d=s["".concat(l,".").concat(y)]||s[y]||f[y]||o;return r?n.createElement(d,i(i({ref:t},u),{},{components:r})):n.createElement(d,i({ref:t},u))}));function d(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=y;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[s]="string"==typeof e?e:a,i[1]=c;for(var p=2;p{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>f,frontMatter:()=>o,metadata:()=>c,toc:()=>p});var n=r(8168),a=(r(6540),r(5680));const o={},i=void 0,c={unversionedId:"study/fe/\u4f4e\u4ee3\u7801\u53ef\u89c6\u5316\u5e73\u53f0",id:"study/fe/\u4f4e\u4ee3\u7801\u53ef\u89c6\u5316\u5e73\u53f0",title:"\u4f4e\u4ee3\u7801\u53ef\u89c6\u5316\u5e73\u53f0",description:"\u5f00\u6e90\u9879\u76ee",source:"@site/docs/study/fe/\u4f4e\u4ee3\u7801\u53ef\u89c6\u5316\u5e73\u53f0.md",sourceDirName:"study/fe",slug:"/study/fe/\u4f4e\u4ee3\u7801\u53ef\u89c6\u5316\u5e73\u53f0",permalink:"/docs/study/fe/\u4f4e\u4ee3\u7801\u53ef\u89c6\u5316\u5e73\u53f0",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u4e0b\u8f7d\u56fe\u7247",permalink:"/docs/study/fe/\u4e0b\u8f7d\u56fe\u7247"},next:{title:"\u6982\u8ff0",permalink:"/docs/study/back/"}},l={},p=[{value:"\u5f00\u6e90\u9879\u76ee",id:"\u5f00\u6e90\u9879\u76ee",level:3}],u={toc:p},s="wrapper";function f(e){let{components:t,...r}=e;return(0,a.yg)(s,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"\u5f00\u6e90\u9879\u76ee"},"\u5f00\u6e90\u9879\u76ee"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://gitee.com/xiaopujun/light-chaser"},"light-chaser")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://gitee.com/anji-plus/report"},"AJ-Report")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://gitee.com/dromara/go-view"},"go-view"))))}f.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/be2a55e4.ae7d1181.js b/assets/js/be2a55e4.7228a742.js similarity index 98% rename from assets/js/be2a55e4.ae7d1181.js rename to assets/js/be2a55e4.7228a742.js index 85141eb59..f85823be5 100644 --- a/assets/js/be2a55e4.ae7d1181.js +++ b/assets/js/be2a55e4.7228a742.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9450],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>d});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var i=n.createContext({}),c=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},p=function(e){var t=c(e.components);return n.createElement(i.Provider,{value:t},e.children)},s="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},g=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,l=e.originalType,i=e.parentName,p=u(e,["components","mdxType","originalType","parentName"]),s=c(r),g=a,d=s["".concat(i,".").concat(g)]||s[g]||y[g]||l;return r?n.createElement(d,o(o({ref:t},p),{},{components:r})):n.createElement(d,o({ref:t},p))}));function d(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=r.length,o=new Array(l);o[0]=g;var u={};for(var i in t)hasOwnProperty.call(t,i)&&(u[i]=t[i]);u.originalType=e,u[s]="string"==typeof e?e:a,o[1]=u;for(var c=2;c{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>o,default:()=>y,frontMatter:()=>l,metadata:()=>u,toc:()=>c});var n=r(8168),a=(r(6540),r(5680));const l={},o="Flutter",u={unversionedId:"study/program/Dart/Flutter",id:"study/program/Dart/Flutter",title:"Flutter",description:"\u5e94\u7528\u56fe\u6807",source:"@site/docs/study/program/Dart/Flutter.md",sourceDirName:"study/program/Dart",slug:"/study/program/Dart/Flutter",permalink:"/docs/study/program/Dart/Flutter",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"CSharp",permalink:"/docs/study/program/CSharp/"},next:{title:"Dart \u5b66\u4e60\u8d44\u6599",permalink:"/docs/study/program/Dart/\u5b66\u4e60\u8d44\u6599"}},i={},c=[{value:"\u5e94\u7528\u56fe\u6807",id:"\u5e94\u7528\u56fe\u6807",level:3},{value:"\u95ea\u5c4f \u542f\u52a8\u9875",id:"\u95ea\u5c4f-\u542f\u52a8\u9875",level:3},{value:"icons",id:"icons",level:3},{value:"getx",id:"getx",level:3},{value:"chart",id:"chart",level:3},{value:"\u4f9d\u8d56\u5e93\u67e5\u8be2",id:"\u4f9d\u8d56\u5e93\u67e5\u8be2",level:3}],p={toc:c},s="wrapper";function y(e){let{components:t,...r}=e;return(0,a.yg)(s,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"flutter"},"Flutter"),(0,a.yg)("h3",{id:"\u5e94\u7528\u56fe\u6807"},"\u5e94\u7528\u56fe\u6807"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://pub-web.flutter-io.cn/packages/flutter_launcher_icons"},"Flutter Launcher Icons"))),(0,a.yg)("h3",{id:"\u95ea\u5c4f-\u542f\u52a8\u9875"},"\u95ea\u5c4f \u542f\u52a8\u9875"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://pub-web.flutter-io.cn/packages/flutter_native_splash"},"flutter_native_splash"))),(0,a.yg)("h3",{id:"icons"},"icons"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://fonts.google.com/icons"},"Google Fonts"))),(0,a.yg)("h3",{id:"getx"},"getx"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://github.com/jonataslaw/getx/blob/master/documentation/zh_CN/state_management.md"},"getx"))),(0,a.yg)("h3",{id:"chart"},"chart"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://flchart.dev/"},"flchart"))),(0,a.yg)("h3",{id:"\u4f9d\u8d56\u5e93\u67e5\u8be2"},"\u4f9d\u8d56\u5e93\u67e5\u8be2"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://pub-web.flutter-io.cn/"},"pub get"))))}y.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9450],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>d});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var i=n.createContext({}),c=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},p=function(e){var t=c(e.components);return n.createElement(i.Provider,{value:t},e.children)},s="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},g=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,l=e.originalType,i=e.parentName,p=u(e,["components","mdxType","originalType","parentName"]),s=c(r),g=a,d=s["".concat(i,".").concat(g)]||s[g]||y[g]||l;return r?n.createElement(d,o(o({ref:t},p),{},{components:r})):n.createElement(d,o({ref:t},p))}));function d(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=r.length,o=new Array(l);o[0]=g;var u={};for(var i in t)hasOwnProperty.call(t,i)&&(u[i]=t[i]);u.originalType=e,u[s]="string"==typeof e?e:a,o[1]=u;for(var c=2;c{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>o,default:()=>y,frontMatter:()=>l,metadata:()=>u,toc:()=>c});var n=r(8168),a=(r(6540),r(5680));const l={},o="Flutter",u={unversionedId:"study/program/Dart/Flutter",id:"study/program/Dart/Flutter",title:"Flutter",description:"\u5e94\u7528\u56fe\u6807",source:"@site/docs/study/program/Dart/Flutter.md",sourceDirName:"study/program/Dart",slug:"/study/program/Dart/Flutter",permalink:"/docs/study/program/Dart/Flutter",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"CSharp",permalink:"/docs/study/program/CSharp/"},next:{title:"Dart \u5b66\u4e60\u8d44\u6599",permalink:"/docs/study/program/Dart/\u5b66\u4e60\u8d44\u6599"}},i={},c=[{value:"\u5e94\u7528\u56fe\u6807",id:"\u5e94\u7528\u56fe\u6807",level:3},{value:"\u95ea\u5c4f \u542f\u52a8\u9875",id:"\u95ea\u5c4f-\u542f\u52a8\u9875",level:3},{value:"icons",id:"icons",level:3},{value:"getx",id:"getx",level:3},{value:"chart",id:"chart",level:3},{value:"\u4f9d\u8d56\u5e93\u67e5\u8be2",id:"\u4f9d\u8d56\u5e93\u67e5\u8be2",level:3}],p={toc:c},s="wrapper";function y(e){let{components:t,...r}=e;return(0,a.yg)(s,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"flutter"},"Flutter"),(0,a.yg)("h3",{id:"\u5e94\u7528\u56fe\u6807"},"\u5e94\u7528\u56fe\u6807"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://pub-web.flutter-io.cn/packages/flutter_launcher_icons"},"Flutter Launcher Icons"))),(0,a.yg)("h3",{id:"\u95ea\u5c4f-\u542f\u52a8\u9875"},"\u95ea\u5c4f \u542f\u52a8\u9875"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://pub-web.flutter-io.cn/packages/flutter_native_splash"},"flutter_native_splash"))),(0,a.yg)("h3",{id:"icons"},"icons"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://fonts.google.com/icons"},"Google Fonts"))),(0,a.yg)("h3",{id:"getx"},"getx"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://github.com/jonataslaw/getx/blob/master/documentation/zh_CN/state_management.md"},"getx"))),(0,a.yg)("h3",{id:"chart"},"chart"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://flchart.dev/"},"flchart"))),(0,a.yg)("h3",{id:"\u4f9d\u8d56\u5e93\u67e5\u8be2"},"\u4f9d\u8d56\u5e93\u67e5\u8be2"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://pub-web.flutter-io.cn/"},"pub get"))))}y.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/c06ef779.7253016b.js b/assets/js/c06ef779.20b8c523.js similarity index 99% rename from assets/js/c06ef779.7253016b.js rename to assets/js/c06ef779.20b8c523.js index faf4b7e5f..59f9d3bb1 100644 --- a/assets/js/c06ef779.7253016b.js +++ b/assets/js/c06ef779.20b8c523.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2368],{5680:(e,t,n)=>{n.d(t,{xA:()=>d,yg:()=>f});var a=n(6540);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var u=a.createContext({}),s=function(e){var t=a.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},d=function(e){var t=s(e.components);return a.createElement(u.Provider,{value:t},e.children)},p="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,l=e.originalType,u=e.parentName,d=o(e,["components","mdxType","originalType","parentName"]),p=s(n),m=r,f=p["".concat(u,".").concat(m)]||p[m]||c[m]||l;return n?a.createElement(f,i(i({ref:t},d),{},{components:n})):a.createElement(f,i({ref:t},d))}));function f(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var l=n.length,i=new Array(l);i[0]=m;var o={};for(var u in t)hasOwnProperty.call(t,u)&&(o[u]=t[u]);o.originalType=e,o[p]="string"==typeof e?e:r,i[1]=o;for(var s=2;s{n.r(t),n.d(t,{assets:()=>u,contentTitle:()=>i,default:()=>c,frontMatter:()=>l,metadata:()=>o,toc:()=>s});var a=n(8168),r=(n(6540),n(5680));const l={sidebar_position:1},i=void 0,o={unversionedId:"study/db/\u65f6\u5e8f\u6570\u636e\u5e93/InfluxDB",id:"study/db/\u65f6\u5e8f\u6570\u636e\u5e93/InfluxDB",title:"InfluxDB",description:"\u5b98\u65b9\u6587\u6863",source:"@site/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/InfluxDB.md",sourceDirName:"study/db/\u65f6\u5e8f\u6570\u636e\u5e93",slug:"/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/InfluxDB",permalink:"/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/InfluxDB",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"studySidebar",previous:{title:"Elasticsearch",permalink:"/docs/study/db/\u5168\u6587\u641c\u7d22\u5f15\u64ce/Elasticsearch"},next:{title:"TDengine",permalink:"/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/TDengine"}},u={},s=[{value:"\u5b98\u65b9\u6587\u6863",id:"\u5b98\u65b9\u6587\u6863",level:3},{value:"\u57fa\u7840\u4fe1\u606f",id:"\u57fa\u7840\u4fe1\u606f",level:3},{value:"\u8bc4\u4ef7",id:"\u8bc4\u4ef7",level:3},{value:"\u5e38\u7528\u6982\u5ff5",id:"\u5e38\u7528\u6982\u5ff5",level:3},{value:"\u5feb\u901f\u5165\u95e8",id:"\u5feb\u901f\u5165\u95e8",level:3},{value:"\u5176\u4ed6",id:"\u5176\u4ed6",level:3}],d={toc:s},p="wrapper";function c(e){let{components:t,...n}=e;return(0,r.yg)(p,(0,a.A)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,r.yg)("h3",{id:"\u5b98\u65b9\u6587\u6863"},"\u5b98\u65b9\u6587\u6863"),(0,r.yg)("p",null,(0,r.yg)("a",{parentName:"p",href:"https://www.influxdata.com/"},"\u5b98\u7f51"),"\n",(0,r.yg)("a",{parentName:"p",href:"https://blog.csdn.net/vtnews/article/details/80197045"},"\u5b66\u4e60\u7b14\u8bb0")),(0,r.yg)("h3",{id:"\u57fa\u7840\u4fe1\u606f"},"\u57fa\u7840\u4fe1\u606f"),(0,r.yg)("ol",null,(0,r.yg)("li",{parentName:"ol"},"\u7f16\u7a0b\u8bed\u8a00\uff1aRust"),(0,r.yg)("li",{parentName:"ol"},"\u96c6\u7fa4\u65b9\u6848\uff1a\u975e\u96c6\u7fa4\u5f00\u6e90\uff0c\u96c6\u7fa4\u6536\u8d39"),(0,r.yg)("li",{parentName:"ol"},"\u5f71\u54cd\u529b\uff1a\u5f71\u54cd\u529b\u5f88\u5927\uff0c\u793e\u533a\u4e5f\u6bd4\u8f83\u6d3b\u8dc3\uff0c\u5982\u679c\u6570\u636e\u91cf\u6ca1\u8fd9\u4e48\u5927\uff0c\u5176\u5b9e\u8fd8\u53ef\u4ee5\u7684\uff0c\u6700\u597d\u4e0d\u8981\u505a\u516c\u6709\u4e91\u7528\u8fd9\u4e2a\u6570\u636e\u5e93\uff0c\u56e0\u4e3a\u6570\u636e\u91cf\u5927\u4e86\u4e4b\u540e\uff0c\u5f88\u96be\u53d7\uff0c\u5fc5\u987b\u7684\u4e0a\u96c6\u7fa4\uff0c\u4f46\u662f\u96c6\u7fa4\u662f\u6536\u8d39\u7684\u3002\u9700\u8981\u82b1\u5927\u7cbe\u529b\u53bb\u5904\u7406\u96c6\u7fa4\u95ee\u9898\u3002"),(0,r.yg)("li",{parentName:"ol"},"\u8fd0\u7ef4\u96be\u5ea6\uff1a\u975e\u96c6\u7fa4\u5f00\u6e90\u7248\u672c\u8fd0\u7ef4\u96be\u5ea6\u8fd8\u662f\u7b80\u5355\u7684\u3002"),(0,r.yg)("li",{parentName:"ol"},"\u63a5\u53e3\uff1aInfluxQL and HTTP API"),(0,r.yg)("li",{parentName:"ol"},"\u5f00\u6e90\u534f\u8bae\uff1aMIT")),(0,r.yg)("h3",{id:"\u8bc4\u4ef7"},"\u8bc4\u4ef7"),(0,r.yg)("ol",null,(0,r.yg)("li",{parentName:"ol"},"InfluxDB \u5355\u673a\u7248\u672c\u5b89\u88c5\u7b80\u5355\uff0c\u7ef4\u62a4\u4e5f\u65b9\u4fbf\uff1b\u8fd0\u7ef4\u4eba\u5458\u5c11\uff081-3 \u4e2a\uff09\u6570\u91cf\u5c11\uff081T \u4ee5\u4e0b\uff09\u7684\u60c5\u51b5\u4e0b\u662f\u6700\u5408\u9002\u7684\u9009\u62e9\uff1b"),(0,r.yg)("li",{parentName:"ol"},"InfluxDB \u5355\u673a\u7248\u672c\u6027\u80fd\u5e76\u4e0d\u591f\u5353\u8d8a\uff0c\u6570\u636e\u91cf\u8d85\u8fc7 1T \u5b58\u5728\u6027\u80fd\u74f6\u9888\uff0cQPS \u8d85\u8fc7 1K \u540e\u8d1f\u8f7d\u6781\u9ad8\uff1b"),(0,r.yg)("li",{parentName:"ol"},"\u5f00\u6e90\u7248\u672c\u4e0d\u652f\u6301\u96c6\u7fa4\uff0c\u62d3\u5c55\u6027\u4e0d\u884c\uff1b")),(0,r.yg)("h3",{id:"\u5e38\u7528\u6982\u5ff5"},"\u5e38\u7528\u6982\u5ff5"),(0,r.yg)("ol",null,(0,r.yg)("li",{parentName:"ol"},"database\uff0c\u6570\u636e\u5e93"),(0,r.yg)("li",{parentName:"ol"},"measurement\uff0c\u8868"),(0,r.yg)("li",{parentName:"ol"},"field\uff0c\u5b57\u6bb5\uff0cfield set\uff0ca=1\uff0cfield \u6ca1\u6709\u7d22\u5f15"),(0,r.yg)("li",{parentName:"ol"},"tag\uff0c\u6807\u7b7e\uff0ctag set\uff0cb=1\uff0ctag \u6709\u7d22\u5f15"),(0,r.yg)("li",{parentName:"ol"},"rp\uff0cretention policy\uff0c\u6570\u636e\u4fdd\u7559\u7b56\u7565\uff0c\u6eda\u52a8\u5f0f\uff0c\u65e7\u6570\u636e\u4f1a\u5220\u9664\uff0c\u9ed8\u8ba4 autogen\uff0c\u6c38\u4e0d\u5220\u9664"),(0,r.yg)("li",{parentName:"ol"},"cq\uff0ccontinuous query\uff0c\u8fde\u7eed\u67e5\u8be2\uff0c\u7c7b\u4f3c\u5b58\u50a8\u8fc7\u7a0b\uff0c\u81ea\u52a8\u91c7\u6837"),(0,r.yg)("li",{parentName:"ol"},"series\uff1aseries \u662f\u5171\u540c retention policy\uff0cmeasurement \u548c tag set \u7684\u96c6\u5408\u3002"),(0,r.yg)("li",{parentName:"ol"},"point\uff1apoint \u662f\u5177\u6709\u76f8\u540c timestamp\u3001\u76f8\u540c series\uff08measurement\uff0crp\uff0ctag set \u76f8\u540c\uff09\u7684 field\u3002\u8fd9\u4e2a\u70b9\u5728\u6b64\u65f6\u523b\u662f\u552f\u4e00\u5b58\u5728\u7684\u3002"),(0,r.yg)("li",{parentName:"ol"},"wal(Write Ahead Log) \uff0c\u6700\u8fd1\u5199\u7684\u70b9\u6570\u7684\u4e34\u65f6\u7f13\u5b58\u3002\u4e3a\u4e86\u51cf\u5c11\u8bbf\u95ee\u6c38\u4e45\u5b58\u50a8\u6587\u4ef6\u7684\u9891\u7387\uff0cInfluxDB \u5c06\u6700\u65b0\u7684\u6570\u636e\u70b9\u7f13\u51b2\u8fdb WAL \u4e2d\uff0c\u76f4\u5230\u5176\u603b\u5927\u5c0f\u6216\u65f6\u95f4\u89e6\u53d1\u7136\u540e flush \u5230\u957f\u4e45\u7684\u5b58\u50a8\u7a7a\u95f4\u3002\u8fd9\u6837\u53ef\u4ee5\u6709\u6548\u5730\u5c06\u5199\u5165 batch \u5904\u7406\u5230 TSM \u4e2d\u3002")),(0,r.yg)("h3",{id:"\u5feb\u901f\u5165\u95e8"},"\u5feb\u901f\u5165\u95e8"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"# v2\nwget https://dl.influxdata.com/influxdb/releases/influxdb2-2.7.5-1.x86_64.rpm\nsudo yum localinstall influxdb2-2.7.5-1.x86_64.rpm\nsudo service influxdb start\nsudo service influxdb status\n# influx\nwget https://dl.influxdata.com/influxdb/releases/influxdb2-client-2.7.3-linux-arm64.tar.gz\ntar xvzf ./influxdb2-client-2.7.3-linux-arm64.tar.gz\nsudo cp ./influx /usr/local/bin/\n\n\n> create database mydb\n> use mydb\n> show measurements\n> insert mymeasurement,tag1=value1 field1=value2\n> select * from mymeasurement where tag1='value1'\n> select * from mymeasurement\n> select * from mymeasurement where tag1='value1' and field1 > 10 order by time desc limit 1\n")),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("a",{parentName:"li",href:"https://docs.influxdata.com/influxdb/v1/tools/api/"},"HTTP V1 API")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("a",{parentName:"li",href:"https://docs.influxdata.com/influxdb/v2/api/"},"HTTP V2 API")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("a",{parentName:"li",href:"https://github.com/influxdata/influxdb-java?tab=readme-ov-file"},"V1 client java")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("a",{parentName:"li",href:"https://github.com/influxdata/influxdb-client-java"},"V2 client java"))),(0,r.yg)("h3",{id:"\u5176\u4ed6"},"\u5176\u4ed6"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("a",{parentName:"li",href:"https://old.reddit.com/r/rust/comments/16v13l5/influxdb_officially_made_the_switch_from_go_rust/"},"InfluxDB CTO \u5173\u4e8e\u7f16\u7a0b\u8bed\u8a00 Go \u5207\u6362\u5230 RUST \u7684\u89e3\u91ca"))))}c.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2368],{5680:(e,t,n)=>{n.d(t,{xA:()=>d,yg:()=>f});var a=n(6540);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var u=a.createContext({}),s=function(e){var t=a.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},d=function(e){var t=s(e.components);return a.createElement(u.Provider,{value:t},e.children)},p="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,l=e.originalType,u=e.parentName,d=o(e,["components","mdxType","originalType","parentName"]),p=s(n),m=r,f=p["".concat(u,".").concat(m)]||p[m]||c[m]||l;return n?a.createElement(f,i(i({ref:t},d),{},{components:n})):a.createElement(f,i({ref:t},d))}));function f(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var l=n.length,i=new Array(l);i[0]=m;var o={};for(var u in t)hasOwnProperty.call(t,u)&&(o[u]=t[u]);o.originalType=e,o[p]="string"==typeof e?e:r,i[1]=o;for(var s=2;s{n.r(t),n.d(t,{assets:()=>u,contentTitle:()=>i,default:()=>c,frontMatter:()=>l,metadata:()=>o,toc:()=>s});var a=n(8168),r=(n(6540),n(5680));const l={sidebar_position:1},i=void 0,o={unversionedId:"study/db/\u65f6\u5e8f\u6570\u636e\u5e93/InfluxDB",id:"study/db/\u65f6\u5e8f\u6570\u636e\u5e93/InfluxDB",title:"InfluxDB",description:"\u5b98\u65b9\u6587\u6863",source:"@site/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/InfluxDB.md",sourceDirName:"study/db/\u65f6\u5e8f\u6570\u636e\u5e93",slug:"/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/InfluxDB",permalink:"/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/InfluxDB",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"studySidebar",previous:{title:"Elasticsearch",permalink:"/docs/study/db/\u5168\u6587\u641c\u7d22\u5f15\u64ce/Elasticsearch"},next:{title:"TDengine",permalink:"/docs/study/db/\u65f6\u5e8f\u6570\u636e\u5e93/TDengine"}},u={},s=[{value:"\u5b98\u65b9\u6587\u6863",id:"\u5b98\u65b9\u6587\u6863",level:3},{value:"\u57fa\u7840\u4fe1\u606f",id:"\u57fa\u7840\u4fe1\u606f",level:3},{value:"\u8bc4\u4ef7",id:"\u8bc4\u4ef7",level:3},{value:"\u5e38\u7528\u6982\u5ff5",id:"\u5e38\u7528\u6982\u5ff5",level:3},{value:"\u5feb\u901f\u5165\u95e8",id:"\u5feb\u901f\u5165\u95e8",level:3},{value:"\u5176\u4ed6",id:"\u5176\u4ed6",level:3}],d={toc:s},p="wrapper";function c(e){let{components:t,...n}=e;return(0,r.yg)(p,(0,a.A)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,r.yg)("h3",{id:"\u5b98\u65b9\u6587\u6863"},"\u5b98\u65b9\u6587\u6863"),(0,r.yg)("p",null,(0,r.yg)("a",{parentName:"p",href:"https://www.influxdata.com/"},"\u5b98\u7f51"),"\n",(0,r.yg)("a",{parentName:"p",href:"https://blog.csdn.net/vtnews/article/details/80197045"},"\u5b66\u4e60\u7b14\u8bb0")),(0,r.yg)("h3",{id:"\u57fa\u7840\u4fe1\u606f"},"\u57fa\u7840\u4fe1\u606f"),(0,r.yg)("ol",null,(0,r.yg)("li",{parentName:"ol"},"\u7f16\u7a0b\u8bed\u8a00\uff1aRust"),(0,r.yg)("li",{parentName:"ol"},"\u96c6\u7fa4\u65b9\u6848\uff1a\u975e\u96c6\u7fa4\u5f00\u6e90\uff0c\u96c6\u7fa4\u6536\u8d39"),(0,r.yg)("li",{parentName:"ol"},"\u5f71\u54cd\u529b\uff1a\u5f71\u54cd\u529b\u5f88\u5927\uff0c\u793e\u533a\u4e5f\u6bd4\u8f83\u6d3b\u8dc3\uff0c\u5982\u679c\u6570\u636e\u91cf\u6ca1\u8fd9\u4e48\u5927\uff0c\u5176\u5b9e\u8fd8\u53ef\u4ee5\u7684\uff0c\u6700\u597d\u4e0d\u8981\u505a\u516c\u6709\u4e91\u7528\u8fd9\u4e2a\u6570\u636e\u5e93\uff0c\u56e0\u4e3a\u6570\u636e\u91cf\u5927\u4e86\u4e4b\u540e\uff0c\u5f88\u96be\u53d7\uff0c\u5fc5\u987b\u7684\u4e0a\u96c6\u7fa4\uff0c\u4f46\u662f\u96c6\u7fa4\u662f\u6536\u8d39\u7684\u3002\u9700\u8981\u82b1\u5927\u7cbe\u529b\u53bb\u5904\u7406\u96c6\u7fa4\u95ee\u9898\u3002"),(0,r.yg)("li",{parentName:"ol"},"\u8fd0\u7ef4\u96be\u5ea6\uff1a\u975e\u96c6\u7fa4\u5f00\u6e90\u7248\u672c\u8fd0\u7ef4\u96be\u5ea6\u8fd8\u662f\u7b80\u5355\u7684\u3002"),(0,r.yg)("li",{parentName:"ol"},"\u63a5\u53e3\uff1aInfluxQL and HTTP API"),(0,r.yg)("li",{parentName:"ol"},"\u5f00\u6e90\u534f\u8bae\uff1aMIT")),(0,r.yg)("h3",{id:"\u8bc4\u4ef7"},"\u8bc4\u4ef7"),(0,r.yg)("ol",null,(0,r.yg)("li",{parentName:"ol"},"InfluxDB \u5355\u673a\u7248\u672c\u5b89\u88c5\u7b80\u5355\uff0c\u7ef4\u62a4\u4e5f\u65b9\u4fbf\uff1b\u8fd0\u7ef4\u4eba\u5458\u5c11\uff081-3 \u4e2a\uff09\u6570\u91cf\u5c11\uff081T \u4ee5\u4e0b\uff09\u7684\u60c5\u51b5\u4e0b\u662f\u6700\u5408\u9002\u7684\u9009\u62e9\uff1b"),(0,r.yg)("li",{parentName:"ol"},"InfluxDB \u5355\u673a\u7248\u672c\u6027\u80fd\u5e76\u4e0d\u591f\u5353\u8d8a\uff0c\u6570\u636e\u91cf\u8d85\u8fc7 1T \u5b58\u5728\u6027\u80fd\u74f6\u9888\uff0cQPS \u8d85\u8fc7 1K \u540e\u8d1f\u8f7d\u6781\u9ad8\uff1b"),(0,r.yg)("li",{parentName:"ol"},"\u5f00\u6e90\u7248\u672c\u4e0d\u652f\u6301\u96c6\u7fa4\uff0c\u62d3\u5c55\u6027\u4e0d\u884c\uff1b")),(0,r.yg)("h3",{id:"\u5e38\u7528\u6982\u5ff5"},"\u5e38\u7528\u6982\u5ff5"),(0,r.yg)("ol",null,(0,r.yg)("li",{parentName:"ol"},"database\uff0c\u6570\u636e\u5e93"),(0,r.yg)("li",{parentName:"ol"},"measurement\uff0c\u8868"),(0,r.yg)("li",{parentName:"ol"},"field\uff0c\u5b57\u6bb5\uff0cfield set\uff0ca=1\uff0cfield \u6ca1\u6709\u7d22\u5f15"),(0,r.yg)("li",{parentName:"ol"},"tag\uff0c\u6807\u7b7e\uff0ctag set\uff0cb=1\uff0ctag \u6709\u7d22\u5f15"),(0,r.yg)("li",{parentName:"ol"},"rp\uff0cretention policy\uff0c\u6570\u636e\u4fdd\u7559\u7b56\u7565\uff0c\u6eda\u52a8\u5f0f\uff0c\u65e7\u6570\u636e\u4f1a\u5220\u9664\uff0c\u9ed8\u8ba4 autogen\uff0c\u6c38\u4e0d\u5220\u9664"),(0,r.yg)("li",{parentName:"ol"},"cq\uff0ccontinuous query\uff0c\u8fde\u7eed\u67e5\u8be2\uff0c\u7c7b\u4f3c\u5b58\u50a8\u8fc7\u7a0b\uff0c\u81ea\u52a8\u91c7\u6837"),(0,r.yg)("li",{parentName:"ol"},"series\uff1aseries \u662f\u5171\u540c retention policy\uff0cmeasurement \u548c tag set \u7684\u96c6\u5408\u3002"),(0,r.yg)("li",{parentName:"ol"},"point\uff1apoint \u662f\u5177\u6709\u76f8\u540c timestamp\u3001\u76f8\u540c series\uff08measurement\uff0crp\uff0ctag set \u76f8\u540c\uff09\u7684 field\u3002\u8fd9\u4e2a\u70b9\u5728\u6b64\u65f6\u523b\u662f\u552f\u4e00\u5b58\u5728\u7684\u3002"),(0,r.yg)("li",{parentName:"ol"},"wal(Write Ahead Log) \uff0c\u6700\u8fd1\u5199\u7684\u70b9\u6570\u7684\u4e34\u65f6\u7f13\u5b58\u3002\u4e3a\u4e86\u51cf\u5c11\u8bbf\u95ee\u6c38\u4e45\u5b58\u50a8\u6587\u4ef6\u7684\u9891\u7387\uff0cInfluxDB \u5c06\u6700\u65b0\u7684\u6570\u636e\u70b9\u7f13\u51b2\u8fdb WAL \u4e2d\uff0c\u76f4\u5230\u5176\u603b\u5927\u5c0f\u6216\u65f6\u95f4\u89e6\u53d1\u7136\u540e flush \u5230\u957f\u4e45\u7684\u5b58\u50a8\u7a7a\u95f4\u3002\u8fd9\u6837\u53ef\u4ee5\u6709\u6548\u5730\u5c06\u5199\u5165 batch \u5904\u7406\u5230 TSM \u4e2d\u3002")),(0,r.yg)("h3",{id:"\u5feb\u901f\u5165\u95e8"},"\u5feb\u901f\u5165\u95e8"),(0,r.yg)("pre",null,(0,r.yg)("code",{parentName:"pre",className:"language-shell"},"# v2\nwget https://dl.influxdata.com/influxdb/releases/influxdb2-2.7.5-1.x86_64.rpm\nsudo yum localinstall influxdb2-2.7.5-1.x86_64.rpm\nsudo service influxdb start\nsudo service influxdb status\n# influx\nwget https://dl.influxdata.com/influxdb/releases/influxdb2-client-2.7.3-linux-arm64.tar.gz\ntar xvzf ./influxdb2-client-2.7.3-linux-arm64.tar.gz\nsudo cp ./influx /usr/local/bin/\n\n\n> create database mydb\n> use mydb\n> show measurements\n> insert mymeasurement,tag1=value1 field1=value2\n> select * from mymeasurement where tag1='value1'\n> select * from mymeasurement\n> select * from mymeasurement where tag1='value1' and field1 > 10 order by time desc limit 1\n")),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("a",{parentName:"li",href:"https://docs.influxdata.com/influxdb/v1/tools/api/"},"HTTP V1 API")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("a",{parentName:"li",href:"https://docs.influxdata.com/influxdb/v2/api/"},"HTTP V2 API")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("a",{parentName:"li",href:"https://github.com/influxdata/influxdb-java?tab=readme-ov-file"},"V1 client java")),(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("a",{parentName:"li",href:"https://github.com/influxdata/influxdb-client-java"},"V2 client java"))),(0,r.yg)("h3",{id:"\u5176\u4ed6"},"\u5176\u4ed6"),(0,r.yg)("ul",null,(0,r.yg)("li",{parentName:"ul"},(0,r.yg)("a",{parentName:"li",href:"https://old.reddit.com/r/rust/comments/16v13l5/influxdb_officially_made_the_switch_from_go_rust/"},"InfluxDB CTO \u5173\u4e8e\u7f16\u7a0b\u8bed\u8a00 Go \u5207\u6362\u5230 RUST \u7684\u89e3\u91ca"))))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/c348e262.092f88f5.js b/assets/js/c348e262.b3d70ea8.js similarity index 98% rename from assets/js/c348e262.092f88f5.js rename to assets/js/c348e262.b3d70ea8.js index 3f53400de..c63d3bd80 100644 --- a/assets/js/c348e262.092f88f5.js +++ b/assets/js/c348e262.b3d70ea8.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6316],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>f});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function s(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var i=n.createContext({}),l=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):s(s({},t),e)),r},u=function(e){var t=l(e.components);return n.createElement(i.Provider,{value:t},e.children)},p="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,i=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),p=l(r),d=a,f=p["".concat(i,".").concat(d)]||p[d]||y[d]||o;return r?n.createElement(f,s(s({ref:t},u),{},{components:r})):n.createElement(f,s({ref:t},u))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,s=new Array(o);s[0]=d;var c={};for(var i in t)hasOwnProperty.call(t,i)&&(c[i]=t[i]);c.originalType=e,c[p]="string"==typeof e?e:a,s[1]=c;for(var l=2;l{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>s,default:()=>y,frontMatter:()=>o,metadata:()=>c,toc:()=>l});var n=r(8168),a=(r(6540),r(5680));const o={},s=void 0,c={unversionedId:"study/system/\u7a0b\u5e8f\u8c03\u8bd5",id:"study/system/\u7a0b\u5e8f\u8c03\u8bd5",title:"\u7a0b\u5e8f\u8c03\u8bd5",description:"strace",source:"@site/docs/study/system/\u7a0b\u5e8f\u8c03\u8bd5.md",sourceDirName:"study/system",slug:"/study/system/\u7a0b\u5e8f\u8c03\u8bd5",permalink:"/docs/study/system/\u7a0b\u5e8f\u8c03\u8bd5",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u64cd\u4f5c\u7cfb\u7edf\u5185\u6838",permalink:"/docs/study/system/\u64cd\u4f5c\u7cfb\u7edf\u5185\u6838"},next:{title:"IPV6",permalink:"/docs/study/net/IPV6"}},i={},l=[{value:"strace",id:"strace",level:3}],u={toc:l},p="wrapper";function y(e){let{components:t,...r}=e;return(0,a.yg)(p,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"strace"},"strace"),(0,a.yg)("p",null,"strace \u662f\u4e2a\u529f\u80fd\u5f3a\u5927\u7684 Linux \u8c03\u8bd5\u5206\u6790\u8bca\u65ad\u5de5\u5177\uff0c\u53ef\u7528\u4e8e\u8ddf\u8e2a\u7a0b\u5e8f\u6267\u884c\u65f6\u8fdb\u7a0b\u7cfb\u7edf\u8c03\u7528(system call)\u548c\u6240\u63a5\u6536\u7684\u4fe1\u53f7\uff0c\u5c24\u5176\u662f\u9488\u5bf9\u6e90\u7801\u4e0d\u53ef\u8bfb\u6216\u6e90\u7801\u65e0\u6cd5\u518d\u7f16\u8bd1\u7684\u7a0b\u5e8f\u3002\u5728 Linux \u7cfb\u7edf\u4e2d\uff0c\u7528\u6237\u8fdb\u7a0b\u4e0d\u80fd\u76f4\u63a5\u8bbf\u95ee\u8ba1\u7b97\u673a\u786c\u4ef6\u8bbe\u5907\u3002\u5f53\u8fdb\u7a0b\u9700\u8981\u8bbf\u95ee\u786c\u4ef6\u8bbe\u5907(\u5982\u8bfb\u53d6\u78c1\u76d8\u6587\u4ef6\u6216\u63a5\u6536\u7f51\u7edc\u6570\u636e\u7b49)\u65f6\uff0c\u5fc5\u987b\u7531\u7528\u6237\u6001\u6a21\u5f0f\u5207\u6362\u81f3\u5185\u6838\u6001\u6a21\u5f0f\uff0c\u901a\u8fc7\u7cfb\u7edf\u8c03\u7528\u8bbf\u95ee\u786c\u4ef6\u8bbe\u5907\u3002strace \u53ef\u8ddf\u8e2a\u8fdb\u7a0b\u4ea7\u751f\u7684\u7cfb\u7edf\u8c03\u7528\uff0c\u5305\u62ec\u53c2\u6570\u3001\u8fd4\u56de\u503c\u548c\u6267\u884c\u6240\u6d88\u8017\u7684\u65f6\u95f4\u3002\u82e5 strace \u6ca1\u6709\u4efb\u4f55\u8f93\u51fa\uff0c\u5e76\u4e0d\u4ee3\u8868\u6b64\u65f6\u8fdb\u7a0b\u53d1\u751f\u963b\u585e\uff1b\u4e5f\u53ef\u80fd\u7a0b\u5e8f\u8fdb\u7a0b\u6b63\u5728\u6267\u884c\u67d0\u4e9b\u4e0d\u9700\u8981\u4e0e\u7cfb\u7edf\u5176\u5b83\u90e8\u5206\u53d1\u751f\u901a\u4fe1\u7684\u4e8b\u60c5\u3002strace \u4ece\u5185\u6838\u63a5\u6536\u4fe1\u606f\uff0c\u4e14\u65e0\u9700\u4ee5\u4efb\u4f55\u7279\u6b8a\u65b9\u5f0f\u6765\u6784\u5efa\u5185\u6838\u3002"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://www.lxlinux.net/8079.html"},"\u4f7f\u7528 strace \u5bf9\u7a0b\u5e8f\u8fdb\u884c\u8c03\u8bd5\u5206\u6790"))))}y.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6316],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>f});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function s(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var i=n.createContext({}),l=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):s(s({},t),e)),r},u=function(e){var t=l(e.components);return n.createElement(i.Provider,{value:t},e.children)},p="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,i=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),p=l(r),d=a,f=p["".concat(i,".").concat(d)]||p[d]||y[d]||o;return r?n.createElement(f,s(s({ref:t},u),{},{components:r})):n.createElement(f,s({ref:t},u))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,s=new Array(o);s[0]=d;var c={};for(var i in t)hasOwnProperty.call(t,i)&&(c[i]=t[i]);c.originalType=e,c[p]="string"==typeof e?e:a,s[1]=c;for(var l=2;l{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>s,default:()=>y,frontMatter:()=>o,metadata:()=>c,toc:()=>l});var n=r(8168),a=(r(6540),r(5680));const o={},s=void 0,c={unversionedId:"study/system/\u7a0b\u5e8f\u8c03\u8bd5",id:"study/system/\u7a0b\u5e8f\u8c03\u8bd5",title:"\u7a0b\u5e8f\u8c03\u8bd5",description:"strace",source:"@site/docs/study/system/\u7a0b\u5e8f\u8c03\u8bd5.md",sourceDirName:"study/system",slug:"/study/system/\u7a0b\u5e8f\u8c03\u8bd5",permalink:"/docs/study/system/\u7a0b\u5e8f\u8c03\u8bd5",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u64cd\u4f5c\u7cfb\u7edf\u5185\u6838",permalink:"/docs/study/system/\u64cd\u4f5c\u7cfb\u7edf\u5185\u6838"},next:{title:"IPV6",permalink:"/docs/study/net/IPV6"}},i={},l=[{value:"strace",id:"strace",level:3}],u={toc:l},p="wrapper";function y(e){let{components:t,...r}=e;return(0,a.yg)(p,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"strace"},"strace"),(0,a.yg)("p",null,"strace \u662f\u4e2a\u529f\u80fd\u5f3a\u5927\u7684 Linux \u8c03\u8bd5\u5206\u6790\u8bca\u65ad\u5de5\u5177\uff0c\u53ef\u7528\u4e8e\u8ddf\u8e2a\u7a0b\u5e8f\u6267\u884c\u65f6\u8fdb\u7a0b\u7cfb\u7edf\u8c03\u7528(system call)\u548c\u6240\u63a5\u6536\u7684\u4fe1\u53f7\uff0c\u5c24\u5176\u662f\u9488\u5bf9\u6e90\u7801\u4e0d\u53ef\u8bfb\u6216\u6e90\u7801\u65e0\u6cd5\u518d\u7f16\u8bd1\u7684\u7a0b\u5e8f\u3002\u5728 Linux \u7cfb\u7edf\u4e2d\uff0c\u7528\u6237\u8fdb\u7a0b\u4e0d\u80fd\u76f4\u63a5\u8bbf\u95ee\u8ba1\u7b97\u673a\u786c\u4ef6\u8bbe\u5907\u3002\u5f53\u8fdb\u7a0b\u9700\u8981\u8bbf\u95ee\u786c\u4ef6\u8bbe\u5907(\u5982\u8bfb\u53d6\u78c1\u76d8\u6587\u4ef6\u6216\u63a5\u6536\u7f51\u7edc\u6570\u636e\u7b49)\u65f6\uff0c\u5fc5\u987b\u7531\u7528\u6237\u6001\u6a21\u5f0f\u5207\u6362\u81f3\u5185\u6838\u6001\u6a21\u5f0f\uff0c\u901a\u8fc7\u7cfb\u7edf\u8c03\u7528\u8bbf\u95ee\u786c\u4ef6\u8bbe\u5907\u3002strace \u53ef\u8ddf\u8e2a\u8fdb\u7a0b\u4ea7\u751f\u7684\u7cfb\u7edf\u8c03\u7528\uff0c\u5305\u62ec\u53c2\u6570\u3001\u8fd4\u56de\u503c\u548c\u6267\u884c\u6240\u6d88\u8017\u7684\u65f6\u95f4\u3002\u82e5 strace \u6ca1\u6709\u4efb\u4f55\u8f93\u51fa\uff0c\u5e76\u4e0d\u4ee3\u8868\u6b64\u65f6\u8fdb\u7a0b\u53d1\u751f\u963b\u585e\uff1b\u4e5f\u53ef\u80fd\u7a0b\u5e8f\u8fdb\u7a0b\u6b63\u5728\u6267\u884c\u67d0\u4e9b\u4e0d\u9700\u8981\u4e0e\u7cfb\u7edf\u5176\u5b83\u90e8\u5206\u53d1\u751f\u901a\u4fe1\u7684\u4e8b\u60c5\u3002strace \u4ece\u5185\u6838\u63a5\u6536\u4fe1\u606f\uff0c\u4e14\u65e0\u9700\u4ee5\u4efb\u4f55\u7279\u6b8a\u65b9\u5f0f\u6765\u6784\u5efa\u5185\u6838\u3002"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://www.lxlinux.net/8079.html"},"\u4f7f\u7528 strace \u5bf9\u7a0b\u5e8f\u8fdb\u884c\u8c03\u8bd5\u5206\u6790"))))}y.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/c3633f34.c3f8767a.js b/assets/js/c3633f34.bc9b15bf.js similarity index 99% rename from assets/js/c3633f34.c3f8767a.js rename to assets/js/c3633f34.bc9b15bf.js index 52bbaf446..5acb069b3 100644 --- a/assets/js/c3633f34.c3f8767a.js +++ b/assets/js/c3633f34.bc9b15bf.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5290],{5680:(e,t,n)=>{n.d(t,{xA:()=>p,yg:()=>d});var r=n(6540);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var T=r.createContext({}),l=function(e){var t=r.useContext(T),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=l(e.components);return r.createElement(T.Provider,{value:t},e.children)},u="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},y=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,T=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),u=l(n),y=o,d=u["".concat(T,".").concat(y)]||u[y]||s[y]||a;return n?r.createElement(d,i(i({ref:t},p),{},{components:n})):r.createElement(d,i({ref:t},p))}));function d(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=y;var c={};for(var T in t)hasOwnProperty.call(t,T)&&(c[T]=t[T]);c.originalType=e,c[u]="string"==typeof e?e:o,i[1]=c;for(var l=2;l{n.r(t),n.d(t,{assets:()=>T,contentTitle:()=>i,default:()=>s,frontMatter:()=>a,metadata:()=>c,toc:()=>l});var r=n(8168),o=(n(6540),n(5680));const a={},i=void 0,c={unversionedId:"study/think/IT_CT_OT",id:"study/think/IT_CT_OT",title:"IT_CT_OT",description:"IT",source:"@site/docs/study/think/IT_CT_OT.md",sourceDirName:"study/think",slug:"/study/think/IT_CT_OT",permalink:"/docs/study/think/IT_CT_OT",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u8bbe\u8ba1\u6a21\u5f0f",permalink:"/docs/study/think/\u8bbe\u8ba1\u6a21\u5f0f"},next:{title:"Gerrit\u4ee3\u7801\u8bc4\u5ba1\u5de5\u5177",permalink:"/docs/study/think/\u4ee3\u7801\u8bc4\u5ba1/Gerrit\u4ee3\u7801\u8bc4\u5ba1\u5de5\u5177"}},T={},l=[{value:"IT",id:"it",level:3},{value:"CT",id:"ct",level:3},{value:"ICT",id:"ict",level:3},{value:"OT",id:"ot",level:3}],p={toc:l},u="wrapper";function s(e){let{components:t,...n}=e;return(0,o.yg)(u,(0,r.A)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"it"},"IT"),(0,o.yg)("p",null,(0,o.yg)("strong",{parentName:"p"},"Internet Technology\uff0c"),"\u5728IT\u3001CT\u5927\u878d\u5408\u4e4b\u524d\uff0cIT\u5e76\u4e0d\u662fInformation Technology(\u4fe1\u606f\u6280\u672f),IT\u6700\u521d\u662f\u6307\u4e92\u8054\u7f51\u6280\u672f\uff0c\u8fd9\u4e5f\u662f\u4e3a\u4ec0\u4e48BAT\u8fd9\u4e9b\u5de8\u5934\u88ab\u79f0\u4e3a\u4e92\u8054\u7f51\u4e09\u5de8\u5934\u7684\u539f\u56e0\u3002\u5728\u5f00\u59cb\u7684\u65f6\u5019\uff0cIT\u548cCT\u8fd8\u662f\u6cfe\u6e2d\u5206\u660e\u7684\u4e24\u79cd\u6280\u672f\uff0cIT\u4e1a\u4e5f\u4e5f\u53ef\u4ee5\u8bf4\u662f\u4ee3\u8868\u4e86\u8ba1\u7b97\u673a\u4e1a\uff0c\u4e00\u4e9b\u6d89\u53ca\u5230\u8ba1\u7b97\u673a\u7684\u8f6f\u786c\u4ef6\u4f01\u4e1a\u4e5f\u88ab\u79f0\u4e3a\u662fIT\u4e1a\u4f01\u4e1a\u3002"),(0,o.yg)("h3",{id:"ct"},"CT"),(0,o.yg)("p",null,(0,o.yg)("strong",{parentName:"p"},"Communication Technology\uff0c"),"\u6700\u65e9\u7684CT\u4e1a\u88ab\u4e5f\u6210\u4e3a\u7535\u4fe1\u4e1a\uff0cTelecommunication\uff0c\u90a3\u662f\u56e0\u4e3a\u6700\u65e9\u671f\u7684\u901a\u4fe1\u90fd\u662f\u7535\u62a5\u3001\u7535\u8bdd\u4e4b\u7c7b\u7684\u6280\u672f\uff0c\u6240\u4ee5\u4e5f\u88ab\u79f0\u4e3a\u7535\u4fe1\u6280\u672f\u3002\u901a\u4fe1\u4e1a\u7684\u4f01\u4e1a\u53c8\u5206\u4e3a\u8fd0\u8425\u5546\u3001\u901a\u4fe1\u5236\u9020\u4e1a\u3001\u901a\u4fe1\u670d\u52a1\u652f\u6301\uff0c\u4e00\u4e9b\u901a\u4fe1\u4e1a\u7684\u65bd\u5de5\u5355\u4f4d\u7b49\uff0c\u901a\u4fe1\u4e1a\u7684\u8fd0\u8425\u5546\u5728\u56fd\u5185\u6211\u4eec\u6bd4\u8f83\u719f\u6089\u7684\u662f\u4e2d\u56fd\u79fb\u52a8\u3001\u4e2d\u56fd\u8054\u901a\u3001\u4e2d\u56fd\u7535\u4fe1\uff0c\u73b0\u5728\u53c8\u591a\u4e86\u4e00\u4e2a\u4e2d\u56fd\u5e7f\u7535\uff0c\u901a\u4fe1\u5236\u9020\u4e1a\u4e2d\u56fd\u6bd4\u8f83\u6709\u540d\u6c14\u7684\u662f\u4e09\u4e2a\uff1a\u534e\u4e3a\u3001\u4e2d\u5174\u3001\u4fe1\u79d1\u3002\n\u5168\u7403\u8303\u56f4\u5185\uff0c\u901a\u4fe1\u4e1a\u5236\u9020\u4e1a\u8fd8\u5269\u7684\u6bd4\u8f83\u5f3a\u5927\u7684\u4e5f\u5c31\u662f\u8bfa\u57fa\u4e9a\u3001\u7231\u7acb\u4fe1\u3001\u534e\u4e3a\u3001\u4e2d\u5174\u8fd9\u56db\u5bb6\u4e86\u3002"),(0,o.yg)("h3",{id:"ict"},"ICT"),(0,o.yg)("p",null,(0,o.yg)("strong",{parentName:"p"},"\u76ee\u524dIT\u4e1a\u548cCT\u4e1a\u7ecf\u8fc7\u4e92\u76f8\u878d\u5408\uff0c\u76ee\u524d\u4e5f\u88ab\u5408\u5e76\u79f0\u4e3aICT\u4e1a\u3002"),"IT\u4e1a\u548cCT\u4e1a\u7684\u878d\u5408\uff0c\u5f00\u59cb\u662fIT\u4e1a\u5411CT\u4e1a\u7684\u5165\u4fb5\uff0cIP\u6280\u672f\u5c31\u662fIT\u4e1a\u7684\u6280\u672f\uff0cIP\u6253\u8d25\u4e86ATM\u6280\u672f\u4e4b\u540e\uff0cICT\u4e1a\u5c31\u5f00\u59cb\u4e86\u5927\u878d\u5408\u3002IT\u4e1a\u7684\u8f6f\u786c\u4ef6\u516c\u53f8\u5f00\u59cb\u5927\u89c4\u6a21\u7684\u5411CT\u4e1a\u8fdb\u519b\uff0c\u540c\u65f6CT\u4e1a\u7684\u516c\u53f8\u4e5f\u5f00\u59cb\u7814\u53d1IT\u6280\u672f\uff0c\u53cc\u5411\u878d\u5408\u5f00\u59cb\u4e4b\u540e\uff0cIT\u4e1a\u548cCT\u4e1a\u7684\u58c1\u5792\u8d8a\u6765\u8d8a\u4e0d\u660e\u663e\uff0c\u73b0\u5728\u5df2\u7ecf\u5f62\u6210\u4e86\u4e00\u4e2a\u65b0\u7684\u884c\u4e1a--ICT\u4e1a\uff0cInformation Communication Technology(\u4fe1\u606f\u3001\u901a\u4fe1\u6280\u672f)\u3002"),(0,o.yg)("h3",{id:"ot"},"OT"),(0,o.yg)("p",null,(0,o.yg)("strong",{parentName:"p"},"Operational Technology,\u8fd0\u8425\u6280\u672f\u3002"),"\u53ef\u80fdOT\u8fd8\u6709\u522b\u7684\u7f29\u5199\u7684\u610f\u601d\uff0c\u4f46\u662f\u5982\u679cOT IT CT\u8fd9\u4e09\u4e2a\u540d\u8bcd\u4e00\u8d77\u51fa\u73b0\u7684\u8bdd\uff0c\u4ed6\u6307\u7684\u5c31\u662f\u8fd0\u8425\u6280\u672f\u3002\nOT\u66f4\u57fa\u672c\u7684\u4e5f\u53ef\u4ee5\u8ba4\u4e3a\u662f\u64cd\u4f5c\u6280\u672f\uff0c\u6bd4\u5982\u5de5\u4eba\u64cd\u4f5c\u4e00\u53f0\u673a\u5e8a\u3002\u4f46\u662f\u5982\u679c\u653e\u5927\u4e00\u4e9b\uff0c\u4e00\u6761\u751f\u4ea7\u7ebf\u4e5f\u662fOT,\u4e00\u4e2a\u5de5\u5382\u7684\u6574\u4f53\u8fd0\u8425\u4e5f\u662fOT\u3002\n\u4e0d\u7ba1\u5982\u4f55\u7406\u89e3\uff0cOT\u672c\u8eab\u90fd\u662f\u548c\u4e00\u4e9b\u8f6f\u786c\u4ef6\u662f\u65e0\u6cd5\u5206\u5f00\u7684\u3002\nOT\u5f00\u59cb\u62e5\u62b1IT\uff0c\u662f\u6280\u672f\u66f4\u65b0\u7684\u7ed3\u679c\uff0c\u968f\u7740\u5de5\u4e1a\u5316\u7684\u4e0d\u65ad\u63a8\u8fdb\uff0c\u8d8a\u6765\u8d8a\u591a\u7684\u5de5\u4eba\u88ab\u673a\u5668\u66ff\u4ee3\uff0c\u8d8a\u6765\u8d8a\u591a\u7684\u4eba\u5de5\u64cd\u4f5c\u88ab\u8f6f\u4ef6\u81ea\u52a8\u5316\u6240\u53d6\u4ee3\uff0c\u4f34\u968f\u7740OT\u6280\u672f\u7684\u4e0d\u65ad\u7684\u53d1\u5c55\uff0cIT\u6280\u672f\u88ab\u8d8a\u6765\u8d8a\u591a\u7684\u878d\u5408\u5230\u4e86OT\u6280\u672f\u4e4b\u4e2d\u3002\n\u800c\u968f\u7740\u5de5\u4e1a4.0\u7684\u6765\u4e34\uff0c\u8d8a\u6765\u8d8a\u591a\u7684ICT\u6280\u672f\u5219\u9700\u8981\u88ab\u5f15\u5165\u5230OT\u6280\u672f\u4e4b\u4e2d\uff0cIT\u3001OT\u3001CT\u5c06\u5728\u672a\u6765\u7d27\u5bc6\u7684\u878d\u5408\u5728\u4e00\u8d77\uff0c\u6210\u4e3a\u4e00\u4e2a\u6574\u4f53\u3002\n\u672a\u6765\u57285G\u4e4b\u4e2d\uff0c\u4e09\u5927\u5e94\u7528\u573a\u666f\u4e4b\u4e2d\u7684URLLC(\u8d85\u9ad8\u53ef\u9760\u4f4e\u65f6\u5ef6)\u5c31\u662f\u4e3b\u8981\u652f\u6301\u5de5\u4e1a4.0\u7684\u573a\u666f\u3002\n\u5de5\u4e1a\u81ea\u52a8\u5316\u4e5f\u88ab\u8ba4\u4e3a\u662f5G\u6700\u91cd\u8981\u7684\u4e00\u79cd\u5782\u76f4\u884c\u4e1a\u5e94\u7528\u4e86\uff0c\u91cd\u8981\u6027\u751a\u81f3\u8981\u8d85\u8fc7\u66f4\u79d1\u5e7b\u4e00\u4e9b\u7684\u81ea\u52a8\u9a7e\u9a76\u5e94\u7528\u3002\n\u603b\u800c\u8a00\u4e4b\uff0c\u5982\u679c\u5355\u5355\u62ff\u51fa\u6765\uff0cIT CT OT\u90fd\u53ef\u80fd\u662f\u522b\u7684\u7f29\u5199\uff0c\u4f46\u662f\u4e09\u4e2a\u5728\u4e00\u8d77\u51fa\u73b0\u7684\u8bdd\uff0c\u4f60\u770b\u5230\u7684\u6587\u6863\uff0c\u901a\u5e38\u90fd\u662f\u63cf\u7ed8\u5de5\u4e1a4.0\u7684\u8d44\u6599\u4e86\uff0c\u73b0\u5728\u4e5f\u6709\u5f88\u591a\u8fd9\u6837\u7684\u8d44\u6599\u3002"))}s.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5290],{5680:(e,t,n)=>{n.d(t,{xA:()=>p,yg:()=>d});var r=n(6540);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var T=r.createContext({}),l=function(e){var t=r.useContext(T),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=l(e.components);return r.createElement(T.Provider,{value:t},e.children)},u="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},y=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,T=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),u=l(n),y=o,d=u["".concat(T,".").concat(y)]||u[y]||s[y]||a;return n?r.createElement(d,i(i({ref:t},p),{},{components:n})):r.createElement(d,i({ref:t},p))}));function d(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=y;var c={};for(var T in t)hasOwnProperty.call(t,T)&&(c[T]=t[T]);c.originalType=e,c[u]="string"==typeof e?e:o,i[1]=c;for(var l=2;l{n.r(t),n.d(t,{assets:()=>T,contentTitle:()=>i,default:()=>s,frontMatter:()=>a,metadata:()=>c,toc:()=>l});var r=n(8168),o=(n(6540),n(5680));const a={},i=void 0,c={unversionedId:"study/think/IT_CT_OT",id:"study/think/IT_CT_OT",title:"IT_CT_OT",description:"IT",source:"@site/docs/study/think/IT_CT_OT.md",sourceDirName:"study/think",slug:"/study/think/IT_CT_OT",permalink:"/docs/study/think/IT_CT_OT",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u8bbe\u8ba1\u6a21\u5f0f",permalink:"/docs/study/think/\u8bbe\u8ba1\u6a21\u5f0f"},next:{title:"Gerrit\u4ee3\u7801\u8bc4\u5ba1\u5de5\u5177",permalink:"/docs/study/think/\u4ee3\u7801\u8bc4\u5ba1/Gerrit\u4ee3\u7801\u8bc4\u5ba1\u5de5\u5177"}},T={},l=[{value:"IT",id:"it",level:3},{value:"CT",id:"ct",level:3},{value:"ICT",id:"ict",level:3},{value:"OT",id:"ot",level:3}],p={toc:l},u="wrapper";function s(e){let{components:t,...n}=e;return(0,o.yg)(u,(0,r.A)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"it"},"IT"),(0,o.yg)("p",null,(0,o.yg)("strong",{parentName:"p"},"Internet Technology\uff0c"),"\u5728IT\u3001CT\u5927\u878d\u5408\u4e4b\u524d\uff0cIT\u5e76\u4e0d\u662fInformation Technology(\u4fe1\u606f\u6280\u672f),IT\u6700\u521d\u662f\u6307\u4e92\u8054\u7f51\u6280\u672f\uff0c\u8fd9\u4e5f\u662f\u4e3a\u4ec0\u4e48BAT\u8fd9\u4e9b\u5de8\u5934\u88ab\u79f0\u4e3a\u4e92\u8054\u7f51\u4e09\u5de8\u5934\u7684\u539f\u56e0\u3002\u5728\u5f00\u59cb\u7684\u65f6\u5019\uff0cIT\u548cCT\u8fd8\u662f\u6cfe\u6e2d\u5206\u660e\u7684\u4e24\u79cd\u6280\u672f\uff0cIT\u4e1a\u4e5f\u4e5f\u53ef\u4ee5\u8bf4\u662f\u4ee3\u8868\u4e86\u8ba1\u7b97\u673a\u4e1a\uff0c\u4e00\u4e9b\u6d89\u53ca\u5230\u8ba1\u7b97\u673a\u7684\u8f6f\u786c\u4ef6\u4f01\u4e1a\u4e5f\u88ab\u79f0\u4e3a\u662fIT\u4e1a\u4f01\u4e1a\u3002"),(0,o.yg)("h3",{id:"ct"},"CT"),(0,o.yg)("p",null,(0,o.yg)("strong",{parentName:"p"},"Communication Technology\uff0c"),"\u6700\u65e9\u7684CT\u4e1a\u88ab\u4e5f\u6210\u4e3a\u7535\u4fe1\u4e1a\uff0cTelecommunication\uff0c\u90a3\u662f\u56e0\u4e3a\u6700\u65e9\u671f\u7684\u901a\u4fe1\u90fd\u662f\u7535\u62a5\u3001\u7535\u8bdd\u4e4b\u7c7b\u7684\u6280\u672f\uff0c\u6240\u4ee5\u4e5f\u88ab\u79f0\u4e3a\u7535\u4fe1\u6280\u672f\u3002\u901a\u4fe1\u4e1a\u7684\u4f01\u4e1a\u53c8\u5206\u4e3a\u8fd0\u8425\u5546\u3001\u901a\u4fe1\u5236\u9020\u4e1a\u3001\u901a\u4fe1\u670d\u52a1\u652f\u6301\uff0c\u4e00\u4e9b\u901a\u4fe1\u4e1a\u7684\u65bd\u5de5\u5355\u4f4d\u7b49\uff0c\u901a\u4fe1\u4e1a\u7684\u8fd0\u8425\u5546\u5728\u56fd\u5185\u6211\u4eec\u6bd4\u8f83\u719f\u6089\u7684\u662f\u4e2d\u56fd\u79fb\u52a8\u3001\u4e2d\u56fd\u8054\u901a\u3001\u4e2d\u56fd\u7535\u4fe1\uff0c\u73b0\u5728\u53c8\u591a\u4e86\u4e00\u4e2a\u4e2d\u56fd\u5e7f\u7535\uff0c\u901a\u4fe1\u5236\u9020\u4e1a\u4e2d\u56fd\u6bd4\u8f83\u6709\u540d\u6c14\u7684\u662f\u4e09\u4e2a\uff1a\u534e\u4e3a\u3001\u4e2d\u5174\u3001\u4fe1\u79d1\u3002\n\u5168\u7403\u8303\u56f4\u5185\uff0c\u901a\u4fe1\u4e1a\u5236\u9020\u4e1a\u8fd8\u5269\u7684\u6bd4\u8f83\u5f3a\u5927\u7684\u4e5f\u5c31\u662f\u8bfa\u57fa\u4e9a\u3001\u7231\u7acb\u4fe1\u3001\u534e\u4e3a\u3001\u4e2d\u5174\u8fd9\u56db\u5bb6\u4e86\u3002"),(0,o.yg)("h3",{id:"ict"},"ICT"),(0,o.yg)("p",null,(0,o.yg)("strong",{parentName:"p"},"\u76ee\u524dIT\u4e1a\u548cCT\u4e1a\u7ecf\u8fc7\u4e92\u76f8\u878d\u5408\uff0c\u76ee\u524d\u4e5f\u88ab\u5408\u5e76\u79f0\u4e3aICT\u4e1a\u3002"),"IT\u4e1a\u548cCT\u4e1a\u7684\u878d\u5408\uff0c\u5f00\u59cb\u662fIT\u4e1a\u5411CT\u4e1a\u7684\u5165\u4fb5\uff0cIP\u6280\u672f\u5c31\u662fIT\u4e1a\u7684\u6280\u672f\uff0cIP\u6253\u8d25\u4e86ATM\u6280\u672f\u4e4b\u540e\uff0cICT\u4e1a\u5c31\u5f00\u59cb\u4e86\u5927\u878d\u5408\u3002IT\u4e1a\u7684\u8f6f\u786c\u4ef6\u516c\u53f8\u5f00\u59cb\u5927\u89c4\u6a21\u7684\u5411CT\u4e1a\u8fdb\u519b\uff0c\u540c\u65f6CT\u4e1a\u7684\u516c\u53f8\u4e5f\u5f00\u59cb\u7814\u53d1IT\u6280\u672f\uff0c\u53cc\u5411\u878d\u5408\u5f00\u59cb\u4e4b\u540e\uff0cIT\u4e1a\u548cCT\u4e1a\u7684\u58c1\u5792\u8d8a\u6765\u8d8a\u4e0d\u660e\u663e\uff0c\u73b0\u5728\u5df2\u7ecf\u5f62\u6210\u4e86\u4e00\u4e2a\u65b0\u7684\u884c\u4e1a--ICT\u4e1a\uff0cInformation Communication Technology(\u4fe1\u606f\u3001\u901a\u4fe1\u6280\u672f)\u3002"),(0,o.yg)("h3",{id:"ot"},"OT"),(0,o.yg)("p",null,(0,o.yg)("strong",{parentName:"p"},"Operational Technology,\u8fd0\u8425\u6280\u672f\u3002"),"\u53ef\u80fdOT\u8fd8\u6709\u522b\u7684\u7f29\u5199\u7684\u610f\u601d\uff0c\u4f46\u662f\u5982\u679cOT IT CT\u8fd9\u4e09\u4e2a\u540d\u8bcd\u4e00\u8d77\u51fa\u73b0\u7684\u8bdd\uff0c\u4ed6\u6307\u7684\u5c31\u662f\u8fd0\u8425\u6280\u672f\u3002\nOT\u66f4\u57fa\u672c\u7684\u4e5f\u53ef\u4ee5\u8ba4\u4e3a\u662f\u64cd\u4f5c\u6280\u672f\uff0c\u6bd4\u5982\u5de5\u4eba\u64cd\u4f5c\u4e00\u53f0\u673a\u5e8a\u3002\u4f46\u662f\u5982\u679c\u653e\u5927\u4e00\u4e9b\uff0c\u4e00\u6761\u751f\u4ea7\u7ebf\u4e5f\u662fOT,\u4e00\u4e2a\u5de5\u5382\u7684\u6574\u4f53\u8fd0\u8425\u4e5f\u662fOT\u3002\n\u4e0d\u7ba1\u5982\u4f55\u7406\u89e3\uff0cOT\u672c\u8eab\u90fd\u662f\u548c\u4e00\u4e9b\u8f6f\u786c\u4ef6\u662f\u65e0\u6cd5\u5206\u5f00\u7684\u3002\nOT\u5f00\u59cb\u62e5\u62b1IT\uff0c\u662f\u6280\u672f\u66f4\u65b0\u7684\u7ed3\u679c\uff0c\u968f\u7740\u5de5\u4e1a\u5316\u7684\u4e0d\u65ad\u63a8\u8fdb\uff0c\u8d8a\u6765\u8d8a\u591a\u7684\u5de5\u4eba\u88ab\u673a\u5668\u66ff\u4ee3\uff0c\u8d8a\u6765\u8d8a\u591a\u7684\u4eba\u5de5\u64cd\u4f5c\u88ab\u8f6f\u4ef6\u81ea\u52a8\u5316\u6240\u53d6\u4ee3\uff0c\u4f34\u968f\u7740OT\u6280\u672f\u7684\u4e0d\u65ad\u7684\u53d1\u5c55\uff0cIT\u6280\u672f\u88ab\u8d8a\u6765\u8d8a\u591a\u7684\u878d\u5408\u5230\u4e86OT\u6280\u672f\u4e4b\u4e2d\u3002\n\u800c\u968f\u7740\u5de5\u4e1a4.0\u7684\u6765\u4e34\uff0c\u8d8a\u6765\u8d8a\u591a\u7684ICT\u6280\u672f\u5219\u9700\u8981\u88ab\u5f15\u5165\u5230OT\u6280\u672f\u4e4b\u4e2d\uff0cIT\u3001OT\u3001CT\u5c06\u5728\u672a\u6765\u7d27\u5bc6\u7684\u878d\u5408\u5728\u4e00\u8d77\uff0c\u6210\u4e3a\u4e00\u4e2a\u6574\u4f53\u3002\n\u672a\u6765\u57285G\u4e4b\u4e2d\uff0c\u4e09\u5927\u5e94\u7528\u573a\u666f\u4e4b\u4e2d\u7684URLLC(\u8d85\u9ad8\u53ef\u9760\u4f4e\u65f6\u5ef6)\u5c31\u662f\u4e3b\u8981\u652f\u6301\u5de5\u4e1a4.0\u7684\u573a\u666f\u3002\n\u5de5\u4e1a\u81ea\u52a8\u5316\u4e5f\u88ab\u8ba4\u4e3a\u662f5G\u6700\u91cd\u8981\u7684\u4e00\u79cd\u5782\u76f4\u884c\u4e1a\u5e94\u7528\u4e86\uff0c\u91cd\u8981\u6027\u751a\u81f3\u8981\u8d85\u8fc7\u66f4\u79d1\u5e7b\u4e00\u4e9b\u7684\u81ea\u52a8\u9a7e\u9a76\u5e94\u7528\u3002\n\u603b\u800c\u8a00\u4e4b\uff0c\u5982\u679c\u5355\u5355\u62ff\u51fa\u6765\uff0cIT CT OT\u90fd\u53ef\u80fd\u662f\u522b\u7684\u7f29\u5199\uff0c\u4f46\u662f\u4e09\u4e2a\u5728\u4e00\u8d77\u51fa\u73b0\u7684\u8bdd\uff0c\u4f60\u770b\u5230\u7684\u6587\u6863\uff0c\u901a\u5e38\u90fd\u662f\u63cf\u7ed8\u5de5\u4e1a4.0\u7684\u8d44\u6599\u4e86\uff0c\u73b0\u5728\u4e5f\u6709\u5f88\u591a\u8fd9\u6837\u7684\u8d44\u6599\u3002"))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/c38cd4f0.07757f92.js b/assets/js/c38cd4f0.17a22abf.js similarity index 99% rename from assets/js/c38cd4f0.07757f92.js rename to assets/js/c38cd4f0.17a22abf.js index d5c5c6fdf..129393c5a 100644 --- a/assets/js/c38cd4f0.07757f92.js +++ b/assets/js/c38cd4f0.17a22abf.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8816],{5680:(e,t,n)=>{n.d(t,{xA:()=>P,yg:()=>d});var r=n(6540);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var p=r.createContext({}),c=function(e){var t=r.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},P=function(e){var t=c(e.components);return r.createElement(p.Provider,{value:t},e.children)},u="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},y=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,l=e.originalType,p=e.parentName,P=i(e,["components","mdxType","originalType","parentName"]),u=c(n),y=a,d=u["".concat(p,".").concat(y)]||u[y]||s[y]||l;return n?r.createElement(d,o(o({ref:t},P),{},{components:n})):r.createElement(d,o({ref:t},P))}));function d(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=n.length,o=new Array(l);o[0]=y;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[u]="string"==typeof e?e:a,o[1]=i;for(var c=2;c{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>s,frontMatter:()=>l,metadata:()=>i,toc:()=>c});var r=n(8168),a=(n(6540),n(5680));const l={},o=void 0,i={unversionedId:"study/competitive/CMP-DMP-AEP-BAP",id:"study/competitive/CMP-DMP-AEP-BAP",title:"CMP-DMP-AEP-BAP",description:"\u7b80\u8ff0",source:"@site/docs/study/competitive/CMP-DMP-AEP-BAP.md",sourceDirName:"study/competitive",slug:"/study/competitive/CMP-DMP-AEP-BAP",permalink:"/docs/study/competitive/CMP-DMP-AEP-BAP",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u5de5\u4e1a\u4e92\u8054\u7f51\u63a2\u7a76",permalink:"/docs/study/competitive/\u5de5\u4e1a\u4e92\u8054\u7f51\u63a2\u7a76"},next:{title:"TP-LINK",permalink:"/docs/study/competitive/TP-LINK"}},p={},c=[{value:"\u7b80\u8ff0",id:"\u7b80\u8ff0",level:4},{value:"\u4e00\u3001\u8fde\u63a5\u7ba1\u7406\u5e73\u53f0CMP",id:"\u4e00\u8fde\u63a5\u7ba1\u7406\u5e73\u53f0cmp",level:4},{value:"\u4e8c\u3001\u8bbe\u5907\u7ba1\u7406\u5e73\u53f0DMP",id:"\u4e8c\u8bbe\u5907\u7ba1\u7406\u5e73\u53f0dmp",level:4},{value:"\u4e09\u3001\u5e94\u7528\u4f7f\u80fd\u5e73\u53f0AEP",id:"\u4e09\u5e94\u7528\u4f7f\u80fd\u5e73\u53f0aep",level:4},{value:"\u56db\u3001\u4e1a\u52a1\u5206\u6790\u5e73\u53f0BAP",id:"\u56db\u4e1a\u52a1\u5206\u6790\u5e73\u53f0bap",level:4}],P={toc:c},u="wrapper";function s(e){let{components:t,...l}=e;return(0,a.yg)(u,(0,r.A)({},P,l,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h4",{id:"\u7b80\u8ff0"},"\u7b80\u8ff0"),(0,a.yg)("p",null,"\u7269\u8054\u7f51\u4e91\u5e73\u53f0\u5904\u4e8e\u7269\u8054\u7f51\u56db\u4e2a\u903b\u8f91\u5c42\uff08\u611f\u77e5\u5c42\u3001\u7f51\u7edc\u5c42\u3001\u5e73\u53f0\u5c42\u3001\u5e94\u7528\u5c42\uff09\u4e2d\u5904\u4e8e\u5e73\u53f0\u5c42\u8fd9\u4e00\u73af\uff0c\u5e73\u53f0\u5c42\u4e8e\u7269\u8054\u7f51\u7684\u4f5c\u7528\u5728\u4e8e\u6536\u96c6\u3001\u5904\u7406\u6570\u636e\u7b49\u3002\u6211\u4eec\u53ef\u6839\u636e\u4e91\u5e73\u53f0\u7684\u529f\u80fd\u5c06\u5176\u5206\u4e3aCMP\u3001DMP\u3001AEP\u548cBAP\u7b49\u56db\u4e2a\u5e73\u53f0\u3002\u5230\u76ee\u524d\u4e3a\u6b62\u8fd8\u6ca1\u6709\u4e00\u5bb6\u516c\u53f8\u53ef\u5728\u4e1a\u52a1\u4e0a\u6db5\u76d6\u56db\u4e2a\u5b50\u5e73\u53f0\uff0c\u6bcf\u4e2a\u516c\u53f8\u6709\u5404\u81ea\u64c5\u957f\u9886\u57df \u548c\u72ec\u7279\u4f18\u52bf\u3002"),(0,a.yg)("p",null,"\u6839\u636e\u5404\u7c7b\u53c2\u4e0e\u8005\u6240\u63d0\u4f9b\u7684\u670d\u52a1\u7c7b\u578b\uff0c\u6309\u7167Machina Research\u7684\u5206\u7c7b\u65b9\u6cd5\uff0c\u7269\u8054\u7f51\u5e73\u53f0\u53ef\u5206\u4e3a\u8fde\u63a5\u7ba1\u7406\u5e73\u53f0CMP\uff08Connectivity Management Platform\uff09\u3001\u8bbe\u5907\u7ba1\u7406\u5e73\u53f0DMP\uff08Device Management Platform\uff09\u3001\u5e94\u7528\u4f7f\u80fd\u5e73\u53f0AEP\uff08Application Enablement Platform\uff09\u548c\u4e1a\u52a1\u5206\u6790\u5e73\u53f0BAP\uff08Business Analytics Platform\uff09\u3002"),(0,a.yg)("p",null,(0,a.yg)("img",{alt:"image.png",src:n(934).A,width:"746",height:"452"})),(0,a.yg)("h4",{id:"\u4e00\u8fde\u63a5\u7ba1\u7406\u5e73\u53f0cmp"},"\u4e00\u3001\u8fde\u63a5\u7ba1\u7406\u5e73\u53f0CMP"),(0,a.yg)("p",null,"CMP\uff08Connectivity Management Platform\uff09\u4e3a\u8fde\u63a5\u7ba1\u7406\u5e73\u53f0\u3002\u4e00\u822c\u8fd0\u7528\u4e8e\u8fd0\u8425\u5546\u7f51\u7edc\u4e0a\uff0c\u5177\u4f53\u6765\u8bf4\u8fde\u63a5\u7684\u7269\u8054\u7f51SIM\u5361\u3002\u8be5\u5e73\u53f0\u53ef\u4ee5\u5b9e\u73b0\u5bf9\u7269\u8054\u7f51\u8fde\u63a5\u914d\u7f6e\u548c\u6545\u969c\u7ba1\u7406\u3001\u4fdd\u8bc1\u7ec8\u7aef\u8054\u7f51\u901a\u9053\u7a33\u5b9a\u3001\u7f51\u7edc\u8d44\u6e90\u7528\u91cf\u7ba1\u7406\u3001\u8fde\u63a5\u8d44\u8d39\u7ba1\u7406\u3001\u8d26\u5355\u7ba1\u7406\u3001\u5957\u9910\u53d8\u66f4\u7b49\u3002"),(0,a.yg)("p",null,"\u8fde\u63a5\u7ba1\u7406\u5e73\u53f0\u901a\u5e38\u6307\u57fa\u4e8e\u7535\u4fe1\u8fd0\u8425\u5546\u7f51\u7edc\uff08\u8702\u7a9d\uff0cLTE\u7b49\uff09\u63d0\u4f9b\u53ef\u8fde\u63a5\u6027\u7ba1\u7406\u3001\u4f18\u5316\u4ee5\u53ca\u7ec8\u7aef\u7ba1\u7406\uff0c\u7ef4\u62a4\u7b49\u65b9\u9762\u7684\u529f\u80fd\u7684\u5e73\u53f0\u3002\u5176\u529f\u80fd\u901a\u5e38\u5305\u62ec\u53f7\u7801/IP\u5730\u5740/Mac\u8d44\u6e90\u7ba1\u7406\u3001SIM\u5361\u7ba1\u63a7\u3001\u8fde\u63a5\u8d44\u8d39\u7ba1\u7406\u3001\u5957\u9910\u7ba1\u7406\u3001\u7f51\u7edc\u8d44\u6e90\u7528\u91cf\u7ba1\u7406\u3001\u8d26\u5355\u7ba1\u7406\u3001\u6545\u969c\u7ba1\u7406\u7b49\u3002\u7269\u8054\u7f51\u8fde\u63a5\u5177\u5907M2M\u8fde\u63a5\u6570\u5927\u3001\u5355\u4e2a\u7269\u54c1\u8fde\u63a5ARPU\u503c\u4f4e\uff08\u4eba\u7c7b\u8fde\u63a5\u5ba2\u6237ARPU\u503c\u76843%-5%\uff09\u7684\u7279\u70b9\uff0c\u76f4\u63a5\u7ed3\u679c\u5c31\u662f\u591a\u6570\u8fd0\u8425\u5546\u5c06\u653e\u5f03\u81ea\u5efaCMP\u5e73\u53f0\uff0c\u8f6c\u4e0e\u4e13\u95e8\u5316\u7684CMP\u5e73\u53f0\u4f9b\u5e94\u5546\u5408\u4f5c\u3002\u6839\u636e\u7269\u8054\u7f51\u667a\u5e93\u7684\u5206\u6790\uff0c\u5bf9\u4e8e\u62e5\u6709\u8d85\u8fc71000\u4e2a\u8fde\u63a5\u7684\u4f01\u4e1a\uff0c\u957f\u671f\u6765\u770b\uff0c\u4f7f\u7528\u4e91\u5e73\u53f0\u6bd4\u81ea\u5efaIT\u8bbe\u65bd\u5c06\u8282\u770190%\u7684\u6210\u672c\u3002\u53e6\u5916\uff0c\u5f88\u591a\u7269\u8054\u7f51\u5ba2\u6237\u90fd\u662f\u8de8\u56fd\u4f01\u4e1a\uff0c\u9009\u62e9\u8fd0\u8425\u5546\u65f6\u66f4\u9752\u7750\u4e00\u70b9\u63a5\u5165\u5168\u7403\u901a\u7528\uff0c\u56e0\u6b64\u5168\u7403\u5316\u7684\u9f99\u5934CMP\u4f01\u4e1a\u4f18\u52bf\u663e\u8457\u3002"),(0,a.yg)("p",null,"\u5178\u578b\u7684\u8fde\u63a5\u7ba1\u7406\u5e73\u53f0\u5305\u62ec\u601d\u79d1\u7684Jasper\u5e73\u53f0\u3001\u7231\u7acb\u4fe1\u7684DCP\u3001\u6c83\u8fbe\u4e30\u7684GDSP\uff0cTelit\u7684M2M\u5e73\u53f0\u3001PTC\u7684Thingworx\u548cAxeda\u3002\u76ee\u524d\u5168\u7403\u5316\u7684CMP\u4e3b\u8981\u6709\u4e09\u5bb6\uff1aJasper\u5e73\u53f0\u3001\u7231\u7acb\u4fe1DCP\u5e73\u53f0\u548c\u6c83\u8fbe\u4e30GDSP\u5e73\u53f0\uff0c\u5176\u4e2dJasper\u6700\u5927\uff0c\u4e0e\u5168\u7403\u8d85\u8fc7100\u5bb6\u8fd0\u8425\u5546\u30013500\u5bb6\u4f01\u4e1a\u5ba2\u6237\u5c55\u5f00\u5408\u4f5c\uff0c\u56fd\u5185\u7684\u4e2d\u56fd\u8054\u901a\u4e5f\u901a\u8fc7\u5b9c\u901a\u4e16\u7eaa\u4e0eJasper\u5e73\u53f0\u8fdb\u884c\u5408\u4f5c\u3002"),(0,a.yg)("p",null,"\u5728\u56fd\u5185\u4e09\u5927\u8fd0\u8425\u5546\u4e2d\uff0c\u4e2d\u56fd\u79fb\u52a8\u9009\u62e9\u81ea\u7814One NET\u8fde\u63a5\u7ba1\u7406\u5e73\u53f0\uff0c\u4e2d\u56fd\u8054\u901a\u4e0eJasper\u6218\u7565\u5408\u4f5c\uff0c\u9009\u62e9\u5176Control\u5e73\u53f0\u63d0\u4f9b\u7269\u8054\u7f51\u8fde\u63a5\u670d\u52a1\uff1b\u4e2d\u56fd\u7535\u4fe1\u4e5f\u5148\u540e\u81ea\u7814\u53ca\u4e0e\u7231\u7acb\u4fe1\u5408\u4f5c\u5efa\u7acb\u4e24\u5957\u8fde\u63a5\u7ba1\u7406\u5e73\u53f0\u3002"),(0,a.yg)("h4",{id:"\u4e8c\u8bbe\u5907\u7ba1\u7406\u5e73\u53f0dmp"},"\u4e8c\u3001\u8bbe\u5907\u7ba1\u7406\u5e73\u53f0DMP"),(0,a.yg)("p",null,"DMP\uff08Device Management Platform\uff09\u662f\u8bbe\u5907\u7ba1\u7406\u5e73\u53f0\u3002\u4e3b\u8981\u5bf9\u7269\u8054\u7f51\u7ec8\u7aef\u8fdb\u884c\u8fdc\u7a0b\u76d1\u63a7\u3001\u8bbe\u7f6e\u8c03\u6574 \u3001\u8f6f\u4ef6\u5347\u7ea7\u3001\u6545\u969c\u6392\u67e5\u7b49\u4e00\u7cfb\u5217\u7b49\u529f\u80fd\u3002\u5e76\u901a\u8fc7\u63d0\u4f9b\u5f00\u653e\u7684API\u8c03\u7528\u63a5\u53e3\u5e2e\u52a9\u5ba2\u6237\u8fdb\u884c\u7cfb\u7edf\u7684\u96c6\u6210\u5728\u6574\u5957\u7aef\u5230\u7aefM2M\u8bbe\u5907\u7ba1\u7406\u89e3\u51b3\u65b9\u6848\u4e2d\uff0c\u6574\u4f53\u62a5\u4ef7\u6536\u8d39\u3002\u53ef\u4ee5\u8ba4\u4e3aDMP\u4e3b\u8981\u9762\u5411\u8bbe\u5907\u7684\u5f00\u3001\u5173\u3001\u505c\u7b49\u57fa\u672c\u72b6\u6001\u7684\u63a7\u5236\uff0c\u6216\u5b9e\u65f6\u7684\u7269\u8054\u7f51\u8bbe\u5907\u8b66\u544a\u7b49\u4e0d\u6d89\u53ca\u7269\u8054\u7f51\u4e0a\u5c42\u5e94\u7528\u573a\u666f\u7684\u8bbe\u5907\u7ba1\u7406\u3002 "),(0,a.yg)("p",null,"\u7269\u8054\u7f51\u8bbe\u5907\u7ba1\u7406\u5e73\u53f0DMP\u5f80\u5f80\u96c6\u6210\u5728\u7aef\u5230\u7aef\u7684\u5168\u5957\u8bbe\u5907\u7ba1\u7406\u89e3\u51b3\u65b9\u6848\u4e2d\uff0c\u8fdb\u884c\u6574\u4f53\u62a5\u4ef7\u6536\u8d39\u3002DMP\u529f\u80fd\u5305\u62ec\u7528\u6237\u7ba1\u7406\u4ee5\u53ca\u7269\u8054\u7f51\u8bbe\u5907\u7ba1\u7406\uff0c\u4f8b\u5982\u914d\u7f6e\u3001\u91cd\u542f\u3001\u5173\u95ed\u3001\u6062\u590d\u51fa\u5382\u3001\u5347\u7ea7/\u56de\u9000\u7b49\uff0c\u8bbe\u5907\u73b0\u573a\u4ea7\u751f\u7684\u6570\u636e\u7684\u67e5\u8be2\uff0c\u4ee5\u53ca\u57fa\u4e8e\u73b0\u573a\u6570\u636e\u7684\u62a5\u8b66\u529f\u80fd\uff0c\u8bbe\u5907\u751f\u547d\u5468\u671f\u7ba1\u7406\u7b49\u3002\u636eIDC\u6570\u636e\u663e\u793a\uff0c2020\u5e74\u5168\u7403\u5c06\u8d85\u8fc7250\u4ebf\u53f0\u8bbe\u5907\u8054\u7f51\u3002"),(0,a.yg)("p",null,"\u8bbe\u5907\u7ba1\u7406\u7684\u6838\u5fc3\u4e0d\u5728\u57fa\u7840\u7684\u8fde\u63a5\u548c\u7684\u7ba1\u7406\u804c\u80fd\uff0c\u800c\u5728\u589e\u503c\u6027\u7684\u7ecf\u8425\u548c\u7ef4\u62a4\u4e1a\u52a1\u4e0a\u3002\u901a\u8fc7\u5927\u91cf\u8bbe\u5907\u7684\u63a5\u5165\u6570\u636e\uff0c\u8bc6\u522b\u51fa\u4e1a\u52a1\u6d41\u7a0b\u7684\u4f18\u5316\u751a\u81f3\u65b0\u7684\u5546\u4e1a\u6a21\u5f0f\uff0c\u5bf9\u8bbe\u5907\u8fdb\u884c\u751f\u547d\u5468\u671f\u7ba1\u7406\u548c\u8fd0\u7ef4\uff0c\u80fd\u591f\u5bf9\u5ba2\u6237\u8d77\u5230\u964d\u672c\u589e\u6548\u7684\u4f5c\u7528\u3002"),(0,a.yg)("p",null,"\u5178\u578b\u7684DMP\u5e73\u53f0\u5305\u62ecBOSCHIoTSuite\u3001IBMWatson\u3001DiGi\u3001\u767e\u5ea6\u4e91\u7269\u63a5\u5165IoTHub\u3001\u4e09\u4e00\u91cd\u5de5\u6839\u4e91\u3001GEPredix\u7b49\u3002\u4ee5\u767e\u5ea6\u4e91\u4e3a\u4f8b\uff0c\u767e\u5ea6\u4e91\u7269\u63a5\u5165IoTHub\u662f\u5efa\u7acb\u5728IaaS\u4e0a\u7684PaaS\u5e73\u53f0\uff0c\u63d0\u4f9b\u5168\u6258\u7ba1\u7684\u4e91\u670d\u52a1\uff0c\u5e2e\u52a9\u5efa\u7acb\u8bbe\u5907\u4e0e\u4e91\u7aef\u4e4b\u95f4\u7684\u53cc\u5411\u8fde\u63a5\uff0c\u652f\u6491\u6d77\u91cf\u8bbe\u5907\u7684\u6570\u636e\u6536\u96c6\u3001\u76d1\u63a7\u3001\u6545\u969c\u9884\u6d4b\u7b49\u5404\u79cd\u7269\u8054\u7f51\u573a\u666f\u3002\u4e00\u4e9b\u5782\u76f4\u9886\u57df\u5de8\u5934\u672c\u8eab\u5c31\u662f\u8bbe\u5907\u63d0\u4f9b\u5546\uff0c\u4e1a\u52a1\u5916\u5ef6\u81f3\u5e73\u53f0\u5c42\u9762\uff0c\u901a\u5e38\u80fd\u591f\u63d0\u4f9b\u6574\u4f53\u89e3\u51b3\u65b9\u6848\uff0c\u90e8\u5206\u80fd\u591f\u96c6\u6210CRM\u3001ERP\u3001MES\u7b49\u4fe1\u606f\u7cfb\u7edf\u3002"),(0,a.yg)("h4",{id:"\u4e09\u5e94\u7528\u4f7f\u80fd\u5e73\u53f0aep"},"\u4e09\u3001\u5e94\u7528\u4f7f\u80fd\u5e73\u53f0AEP"),(0,a.yg)("p",null,"AEP\uff08Application Enablement Platform\uff09\u662f\u4e0a\u5c42\u7684\u4e1a\u52a1\u4f7f\u80fd\u5e73\u53f0\uff0c\u8be5\u903b\u8f91\u5c42\u662f\u7ed3\u5408\u4e86\u4e0a\u5c42\u7684\u5e94\u7528\u573a\u666f\uff0c\u4e3a\u5f00\u53d1\u8005\u63d0\u4f9b\u6210\u5957\u5e94\u7528\u5f00\u53d1\u5de5\u5177\uff08SDK\uff09\u3001\u4e2d\u95f4\u4ef6\u3001\u6570\u636e\u5b58\u50a8\u3001\u4e1a\u52a1\u903b\u8f91\u5f15\u64ce\u3001\u7b2c\u4e09\u65b9API\u63a5\u53e3\u7b49\u529f\u80fd\u3002\u6211\u4eec\u53ef\u5c06\u5176\u7406\u89e3\u4e3a\u7ed3\u5408\u5e94\u7528\u573a\u666f\u7684\u7cfb\u7edf\u5f00\u53d1\u5e73\u53f0\u3002\u968f\u7740\u4f01\u4e1a\u5728\u884c\u4e1a\u4e2d\u5bf9\u4e1a\u52a1\u7ecf\u9a8c\u3001\u6240\u6d89\u53ca\u6280\u672f\u7684\u6301\u7eed\u79ef\u7d2f\uff0c\u5e73\u53f0\u7684\u7ade\u4e89\u529b\u5c06\u9010\u6e10\u4ece\u8fde\u63a5\u80fd\u529b\u8f6c\u79fb\u5230\u5e73\u53f0\u7684\u591a\u573a\u666f\u5316\u7684\u4e1a\u52a1\u80fd\u529b\u3002 "),(0,a.yg)("p",null,"\u5e94\u7528\u4f7f\u80fd\u5e73\u53f0AEP\u662f\u63d0\u4f9b\u5feb\u901f\u5f00\u53d1\u90e8\u7f72\u7269\u8054\u7f51\u5e94\u7528\u670d\u52a1\u7684PaaS\u5e73\u53f0\u3002AEP\u4e3a\u5f00\u53d1\u8005\u63d0\u4f9b\u4e86\u6210\u5957\u5e94\u7528\u5f00\u53d1\u5de5\u5177\u3001\u4e2d\u95f4\u4ef6\u3001\u4e1a\u52a1\u903b\u8f91\u5f15\u64ce\u3001API\u63a5\u53e3\u3001\u5e94\u7528\u670d\u52a1\u5668\u7b49\u5de5\u5177\uff0c\u4ee5\u8282\u7701\u5927\u91cf\u5f00\u53d1\u65f6\u95f4\u548c\u9884\u7b97\u3002"),(0,a.yg)("p",null,"\u7269\u8054\u7f51\u5e02\u573a\u5929\u7136\u788e\u7247\u5316\uff0cAEP\u5e73\u53f0\u5546\u901a\u8fc7\u63d0\u4f9b\u5b8c\u5584\u7684\u5f00\u53d1\u8d44\u6599\u5e93\u3001\u591a\u6837\u5316\u7684\u90e8\u7f72\u65b9\u5f0f\u3001\u4f01\u4e1a\u7ea7SDK\u53ca\u53ef\u62d3\u5c55\u7684\u901a\u7528\u4e2d\u95f4\u4ef6\uff0c\u5927\u5927\u964d\u4f4e\u5f00\u53d1\u95e8\u69db\u3002\u5e94\u7528AEP\u5e73\u53f0\u80fd\u591f\u4f7f\u5e94\u7528\u7684\u5f00\u53d1\u6210\u672c\u5927\u5e45\u964d\u4f4e\uff0c\u5e76\u53ca\u65f6\u63a8\u5411\u5e02\u573a\u62a2\u5360\u5148\u673a\u3002"),(0,a.yg)("p",null,"\u5178\u578b\u7684AEP\u5e73\u53f0\u63d0\u4f9b\u5546\u5305\u62ecPTCThing worx\uff0c\u827e\u62c9\u7269\u8054\uff0c\u673a\u667a\u4e91\uff0cComulo city\uff0cAWS\nIoT\uff0cWatson IoT Platform\u7b49\u3002"),(0,a.yg)("p",null,"\u4ee5\u673a\u667a\u4e91\u4e3a\u4f8b\uff0c\u4e2d\u56fd\u7535\u4fe1\u7684\u767d\u8272\u5bb6\u7535\u884c\u4e1a\u4f7f\u80fd\u5957\u4ef6\u662f\u4e0e\u65e5\u6d77\u7269\u8054\u53ca\u673a\u667a\u4e91\u5408\u4f5c\u5b8c\u6210\u7684\uff0c\u4e3b\u8981\u670d\u52a1\u4e8e\u667a\u80fd\u5bb6\u7535\u884c\u4e1a\uff0c\u5e2e\u52a9\u5ba2\u6237\u8fdb\u884c\u4ea7\u54c1\u5f00\u53d1\u3002\u5957\u4ef6\u63d0\u4f9b\u6570\u636e\u7684\u7ba1\u7406\u3001\u5206\u6790\u3001\u8c03\u53d6\u7684\u6807\u51c6\u5316\u63a5\u53e3\uff0c\u5e94\u7528\u5f00\u53d1\u8005\u53ea\u9700\u8981\u8c03\u7528\u63a5\u53e3\uff0c\u5c31\u80fd\u591f\u5feb\u901f\u8fdb\u884c\u624b\u673aAPP\u6216\u8005\u5e94\u7528\u8f6f\u4ef6\u5e73\u53f0\u7684\u642d\u5efa\u3002\u6700\u7ec8\u7528\u6237\u901a\u8fc7\u624b\u673a\u6216\u8005\u7535\u8111\uff0c\u5c31\u53ef\u4ee5\u8f7b\u677e\u63a7\u5236\u63a7\u5236\u667a\u80fd\u5bb6\u7535\u3002"),(0,a.yg)("h4",{id:"\u56db\u4e1a\u52a1\u5206\u6790\u5e73\u53f0bap"},"\u56db\u3001\u4e1a\u52a1\u5206\u6790\u5e73\u53f0BAP"),(0,a.yg)("p",null,"BAP\uff08Business Analytics Platform\uff09\u53ef\u88ab\u79f0\u4e3a\u4e1a\u52a1\u5206\u6790\u5e73\u53f0\uff0c\u8be5\u903b\u8f91\u5c42\u5305\u542b\u5927\u6570\u636e\u670d\u52a1\u548c\u673a\u5668\u5b66\u4e60\u4e24\u4e2a\u4e3b\u8981\u529f\u80fd\u3002\u5c06\u6c47\u96c6\u5728\u4e91\u5e73\u53f0\u7684\u6570\u636e\u8fdb\u884c\u5206\u6790\u3001\u5904\u7406\uff0c\u5e76\u5c06\u5176\u53ef\u89c6\u5316\u3002\u800c\u673a\u5668\u5b66\u4e60\u662f\u5c06\u6c89\u6dc0\u5728\u5e73\u53f0\u4e0a\u7ed3\u6784\u5316\u548c\u975e\u7ed3\u6784\u5316\u6570\u636e\u8fdb\u884c\u8bad\u7ec3\uff0c\u5f62\u6210\u5177\u6709\u9884\u6d4b\u6027\u7684\u3001\u8ba4\u77e5\u7684\u3001\u6216\u590d\u6742\u7684\u4e1a\u52a1\u5206\u6790\u903b\u8f91\u3002\u800c\u672a\u6765\uff0c\u673a\u5668\u5b66\u4e60\u5fc5\u7136\u5c06\u5411\u4eba\u5de5\u667a\u80fd\u8fc7\u5ea6\u3002\u4ece\u6570\u636e\u7d2f\u8ba1\u91cf\u3001\u4eba\u5de5\u667a\u80fd\u6280\u672f\u7684\u53d1\u5c55\u7a0b\u5ea6\u7b49\u89d2\u5ea6\u8003\u8651\uff0c\u76ee\u524d\u8fd8\u6ca1\u6709\u4f01\u4e1a\u7684\u4e1a\u52a1\u53ef\u4ee5\u8fbe\u5230\u8fd9\u4e00\u5c42\u7ea7\u3002 "),(0,a.yg)("p",null,"\u4e1a\u52a1\u5206\u6790\u5e73\u53f0BAP\u4e3b\u8981\u901a\u8fc7\u5927\u6570\u636e\u5206\u6790\u548c\u673a\u5668\u5b66\u4e60\u7b49\u65b9\u6cd5\uff0c\u5bf9\u6570\u636e\u8fdb\u884c\u6df1\u5ea6\u89e3\u6790\uff0c\u4ee5\u56fe\u8868\u3001\u6570\u636e\u62a5\u544a\u7b49\u65b9\u5f0f\u8fdb\u884c\u53ef\u89c6\u5316\u5c55\u793a\uff0c\u5e76\u5e94\u7528\u4e8e\u5782\u76f4\u884c\u4e1a\u3002\u7269\u8054\u7f51\u5e94\u7528\u53ef\u4ee5\u901a\u8fc7\u5bf9BAP\u6a21\u5757\u7684\u8c03\u7528\u6765\u5efa\u7acb\u6a21\u578b\uff0c\u8fdb\u884c\u4e1a\u52a1\u53d1\u5c55\u9884\u6d4b\u5206\u6790\u53ca\u8bbe\u5907\u7684\u9884\u9632\u6027\u7ef4\u62a4\u7b49\u3002\u7531\u4e8e\u4eba\u5de5\u667a\u80fd\u6280\u672f\u53ca\u6570\u636e\u611f\u77e5\u5c42\u642d\u5efa\u7684\u8fdb\u5ea6\u9650\u5236\uff0c\u76ee\u524dBAP\u5e73\u53f0\u53d1\u5c55\u4ecd\u672a\u6210\u719f\u3002"))}s.isMDXComponent=!0},934:(e,t,n)=>{n.d(t,{A:()=>r});const r=n.p+"assets/images/1-4f28922b895ce23e1002dcd20b1e670f.png"}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8816],{5680:(e,t,n)=>{n.d(t,{xA:()=>P,yg:()=>d});var r=n(6540);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var p=r.createContext({}),c=function(e){var t=r.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},P=function(e){var t=c(e.components);return r.createElement(p.Provider,{value:t},e.children)},u="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},y=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,l=e.originalType,p=e.parentName,P=i(e,["components","mdxType","originalType","parentName"]),u=c(n),y=a,d=u["".concat(p,".").concat(y)]||u[y]||s[y]||l;return n?r.createElement(d,o(o({ref:t},P),{},{components:n})):r.createElement(d,o({ref:t},P))}));function d(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=n.length,o=new Array(l);o[0]=y;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[u]="string"==typeof e?e:a,o[1]=i;for(var c=2;c{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>s,frontMatter:()=>l,metadata:()=>i,toc:()=>c});var r=n(8168),a=(n(6540),n(5680));const l={},o=void 0,i={unversionedId:"study/competitive/CMP-DMP-AEP-BAP",id:"study/competitive/CMP-DMP-AEP-BAP",title:"CMP-DMP-AEP-BAP",description:"\u7b80\u8ff0",source:"@site/docs/study/competitive/CMP-DMP-AEP-BAP.md",sourceDirName:"study/competitive",slug:"/study/competitive/CMP-DMP-AEP-BAP",permalink:"/docs/study/competitive/CMP-DMP-AEP-BAP",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u5de5\u4e1a\u4e92\u8054\u7f51\u63a2\u7a76",permalink:"/docs/study/competitive/\u5de5\u4e1a\u4e92\u8054\u7f51\u63a2\u7a76"},next:{title:"TP-LINK",permalink:"/docs/study/competitive/TP-LINK"}},p={},c=[{value:"\u7b80\u8ff0",id:"\u7b80\u8ff0",level:4},{value:"\u4e00\u3001\u8fde\u63a5\u7ba1\u7406\u5e73\u53f0CMP",id:"\u4e00\u8fde\u63a5\u7ba1\u7406\u5e73\u53f0cmp",level:4},{value:"\u4e8c\u3001\u8bbe\u5907\u7ba1\u7406\u5e73\u53f0DMP",id:"\u4e8c\u8bbe\u5907\u7ba1\u7406\u5e73\u53f0dmp",level:4},{value:"\u4e09\u3001\u5e94\u7528\u4f7f\u80fd\u5e73\u53f0AEP",id:"\u4e09\u5e94\u7528\u4f7f\u80fd\u5e73\u53f0aep",level:4},{value:"\u56db\u3001\u4e1a\u52a1\u5206\u6790\u5e73\u53f0BAP",id:"\u56db\u4e1a\u52a1\u5206\u6790\u5e73\u53f0bap",level:4}],P={toc:c},u="wrapper";function s(e){let{components:t,...l}=e;return(0,a.yg)(u,(0,r.A)({},P,l,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h4",{id:"\u7b80\u8ff0"},"\u7b80\u8ff0"),(0,a.yg)("p",null,"\u7269\u8054\u7f51\u4e91\u5e73\u53f0\u5904\u4e8e\u7269\u8054\u7f51\u56db\u4e2a\u903b\u8f91\u5c42\uff08\u611f\u77e5\u5c42\u3001\u7f51\u7edc\u5c42\u3001\u5e73\u53f0\u5c42\u3001\u5e94\u7528\u5c42\uff09\u4e2d\u5904\u4e8e\u5e73\u53f0\u5c42\u8fd9\u4e00\u73af\uff0c\u5e73\u53f0\u5c42\u4e8e\u7269\u8054\u7f51\u7684\u4f5c\u7528\u5728\u4e8e\u6536\u96c6\u3001\u5904\u7406\u6570\u636e\u7b49\u3002\u6211\u4eec\u53ef\u6839\u636e\u4e91\u5e73\u53f0\u7684\u529f\u80fd\u5c06\u5176\u5206\u4e3aCMP\u3001DMP\u3001AEP\u548cBAP\u7b49\u56db\u4e2a\u5e73\u53f0\u3002\u5230\u76ee\u524d\u4e3a\u6b62\u8fd8\u6ca1\u6709\u4e00\u5bb6\u516c\u53f8\u53ef\u5728\u4e1a\u52a1\u4e0a\u6db5\u76d6\u56db\u4e2a\u5b50\u5e73\u53f0\uff0c\u6bcf\u4e2a\u516c\u53f8\u6709\u5404\u81ea\u64c5\u957f\u9886\u57df \u548c\u72ec\u7279\u4f18\u52bf\u3002"),(0,a.yg)("p",null,"\u6839\u636e\u5404\u7c7b\u53c2\u4e0e\u8005\u6240\u63d0\u4f9b\u7684\u670d\u52a1\u7c7b\u578b\uff0c\u6309\u7167Machina Research\u7684\u5206\u7c7b\u65b9\u6cd5\uff0c\u7269\u8054\u7f51\u5e73\u53f0\u53ef\u5206\u4e3a\u8fde\u63a5\u7ba1\u7406\u5e73\u53f0CMP\uff08Connectivity Management Platform\uff09\u3001\u8bbe\u5907\u7ba1\u7406\u5e73\u53f0DMP\uff08Device Management Platform\uff09\u3001\u5e94\u7528\u4f7f\u80fd\u5e73\u53f0AEP\uff08Application Enablement Platform\uff09\u548c\u4e1a\u52a1\u5206\u6790\u5e73\u53f0BAP\uff08Business Analytics Platform\uff09\u3002"),(0,a.yg)("p",null,(0,a.yg)("img",{alt:"image.png",src:n(934).A,width:"746",height:"452"})),(0,a.yg)("h4",{id:"\u4e00\u8fde\u63a5\u7ba1\u7406\u5e73\u53f0cmp"},"\u4e00\u3001\u8fde\u63a5\u7ba1\u7406\u5e73\u53f0CMP"),(0,a.yg)("p",null,"CMP\uff08Connectivity Management Platform\uff09\u4e3a\u8fde\u63a5\u7ba1\u7406\u5e73\u53f0\u3002\u4e00\u822c\u8fd0\u7528\u4e8e\u8fd0\u8425\u5546\u7f51\u7edc\u4e0a\uff0c\u5177\u4f53\u6765\u8bf4\u8fde\u63a5\u7684\u7269\u8054\u7f51SIM\u5361\u3002\u8be5\u5e73\u53f0\u53ef\u4ee5\u5b9e\u73b0\u5bf9\u7269\u8054\u7f51\u8fde\u63a5\u914d\u7f6e\u548c\u6545\u969c\u7ba1\u7406\u3001\u4fdd\u8bc1\u7ec8\u7aef\u8054\u7f51\u901a\u9053\u7a33\u5b9a\u3001\u7f51\u7edc\u8d44\u6e90\u7528\u91cf\u7ba1\u7406\u3001\u8fde\u63a5\u8d44\u8d39\u7ba1\u7406\u3001\u8d26\u5355\u7ba1\u7406\u3001\u5957\u9910\u53d8\u66f4\u7b49\u3002"),(0,a.yg)("p",null,"\u8fde\u63a5\u7ba1\u7406\u5e73\u53f0\u901a\u5e38\u6307\u57fa\u4e8e\u7535\u4fe1\u8fd0\u8425\u5546\u7f51\u7edc\uff08\u8702\u7a9d\uff0cLTE\u7b49\uff09\u63d0\u4f9b\u53ef\u8fde\u63a5\u6027\u7ba1\u7406\u3001\u4f18\u5316\u4ee5\u53ca\u7ec8\u7aef\u7ba1\u7406\uff0c\u7ef4\u62a4\u7b49\u65b9\u9762\u7684\u529f\u80fd\u7684\u5e73\u53f0\u3002\u5176\u529f\u80fd\u901a\u5e38\u5305\u62ec\u53f7\u7801/IP\u5730\u5740/Mac\u8d44\u6e90\u7ba1\u7406\u3001SIM\u5361\u7ba1\u63a7\u3001\u8fde\u63a5\u8d44\u8d39\u7ba1\u7406\u3001\u5957\u9910\u7ba1\u7406\u3001\u7f51\u7edc\u8d44\u6e90\u7528\u91cf\u7ba1\u7406\u3001\u8d26\u5355\u7ba1\u7406\u3001\u6545\u969c\u7ba1\u7406\u7b49\u3002\u7269\u8054\u7f51\u8fde\u63a5\u5177\u5907M2M\u8fde\u63a5\u6570\u5927\u3001\u5355\u4e2a\u7269\u54c1\u8fde\u63a5ARPU\u503c\u4f4e\uff08\u4eba\u7c7b\u8fde\u63a5\u5ba2\u6237ARPU\u503c\u76843%-5%\uff09\u7684\u7279\u70b9\uff0c\u76f4\u63a5\u7ed3\u679c\u5c31\u662f\u591a\u6570\u8fd0\u8425\u5546\u5c06\u653e\u5f03\u81ea\u5efaCMP\u5e73\u53f0\uff0c\u8f6c\u4e0e\u4e13\u95e8\u5316\u7684CMP\u5e73\u53f0\u4f9b\u5e94\u5546\u5408\u4f5c\u3002\u6839\u636e\u7269\u8054\u7f51\u667a\u5e93\u7684\u5206\u6790\uff0c\u5bf9\u4e8e\u62e5\u6709\u8d85\u8fc71000\u4e2a\u8fde\u63a5\u7684\u4f01\u4e1a\uff0c\u957f\u671f\u6765\u770b\uff0c\u4f7f\u7528\u4e91\u5e73\u53f0\u6bd4\u81ea\u5efaIT\u8bbe\u65bd\u5c06\u8282\u770190%\u7684\u6210\u672c\u3002\u53e6\u5916\uff0c\u5f88\u591a\u7269\u8054\u7f51\u5ba2\u6237\u90fd\u662f\u8de8\u56fd\u4f01\u4e1a\uff0c\u9009\u62e9\u8fd0\u8425\u5546\u65f6\u66f4\u9752\u7750\u4e00\u70b9\u63a5\u5165\u5168\u7403\u901a\u7528\uff0c\u56e0\u6b64\u5168\u7403\u5316\u7684\u9f99\u5934CMP\u4f01\u4e1a\u4f18\u52bf\u663e\u8457\u3002"),(0,a.yg)("p",null,"\u5178\u578b\u7684\u8fde\u63a5\u7ba1\u7406\u5e73\u53f0\u5305\u62ec\u601d\u79d1\u7684Jasper\u5e73\u53f0\u3001\u7231\u7acb\u4fe1\u7684DCP\u3001\u6c83\u8fbe\u4e30\u7684GDSP\uff0cTelit\u7684M2M\u5e73\u53f0\u3001PTC\u7684Thingworx\u548cAxeda\u3002\u76ee\u524d\u5168\u7403\u5316\u7684CMP\u4e3b\u8981\u6709\u4e09\u5bb6\uff1aJasper\u5e73\u53f0\u3001\u7231\u7acb\u4fe1DCP\u5e73\u53f0\u548c\u6c83\u8fbe\u4e30GDSP\u5e73\u53f0\uff0c\u5176\u4e2dJasper\u6700\u5927\uff0c\u4e0e\u5168\u7403\u8d85\u8fc7100\u5bb6\u8fd0\u8425\u5546\u30013500\u5bb6\u4f01\u4e1a\u5ba2\u6237\u5c55\u5f00\u5408\u4f5c\uff0c\u56fd\u5185\u7684\u4e2d\u56fd\u8054\u901a\u4e5f\u901a\u8fc7\u5b9c\u901a\u4e16\u7eaa\u4e0eJasper\u5e73\u53f0\u8fdb\u884c\u5408\u4f5c\u3002"),(0,a.yg)("p",null,"\u5728\u56fd\u5185\u4e09\u5927\u8fd0\u8425\u5546\u4e2d\uff0c\u4e2d\u56fd\u79fb\u52a8\u9009\u62e9\u81ea\u7814One NET\u8fde\u63a5\u7ba1\u7406\u5e73\u53f0\uff0c\u4e2d\u56fd\u8054\u901a\u4e0eJasper\u6218\u7565\u5408\u4f5c\uff0c\u9009\u62e9\u5176Control\u5e73\u53f0\u63d0\u4f9b\u7269\u8054\u7f51\u8fde\u63a5\u670d\u52a1\uff1b\u4e2d\u56fd\u7535\u4fe1\u4e5f\u5148\u540e\u81ea\u7814\u53ca\u4e0e\u7231\u7acb\u4fe1\u5408\u4f5c\u5efa\u7acb\u4e24\u5957\u8fde\u63a5\u7ba1\u7406\u5e73\u53f0\u3002"),(0,a.yg)("h4",{id:"\u4e8c\u8bbe\u5907\u7ba1\u7406\u5e73\u53f0dmp"},"\u4e8c\u3001\u8bbe\u5907\u7ba1\u7406\u5e73\u53f0DMP"),(0,a.yg)("p",null,"DMP\uff08Device Management Platform\uff09\u662f\u8bbe\u5907\u7ba1\u7406\u5e73\u53f0\u3002\u4e3b\u8981\u5bf9\u7269\u8054\u7f51\u7ec8\u7aef\u8fdb\u884c\u8fdc\u7a0b\u76d1\u63a7\u3001\u8bbe\u7f6e\u8c03\u6574 \u3001\u8f6f\u4ef6\u5347\u7ea7\u3001\u6545\u969c\u6392\u67e5\u7b49\u4e00\u7cfb\u5217\u7b49\u529f\u80fd\u3002\u5e76\u901a\u8fc7\u63d0\u4f9b\u5f00\u653e\u7684API\u8c03\u7528\u63a5\u53e3\u5e2e\u52a9\u5ba2\u6237\u8fdb\u884c\u7cfb\u7edf\u7684\u96c6\u6210\u5728\u6574\u5957\u7aef\u5230\u7aefM2M\u8bbe\u5907\u7ba1\u7406\u89e3\u51b3\u65b9\u6848\u4e2d\uff0c\u6574\u4f53\u62a5\u4ef7\u6536\u8d39\u3002\u53ef\u4ee5\u8ba4\u4e3aDMP\u4e3b\u8981\u9762\u5411\u8bbe\u5907\u7684\u5f00\u3001\u5173\u3001\u505c\u7b49\u57fa\u672c\u72b6\u6001\u7684\u63a7\u5236\uff0c\u6216\u5b9e\u65f6\u7684\u7269\u8054\u7f51\u8bbe\u5907\u8b66\u544a\u7b49\u4e0d\u6d89\u53ca\u7269\u8054\u7f51\u4e0a\u5c42\u5e94\u7528\u573a\u666f\u7684\u8bbe\u5907\u7ba1\u7406\u3002 "),(0,a.yg)("p",null,"\u7269\u8054\u7f51\u8bbe\u5907\u7ba1\u7406\u5e73\u53f0DMP\u5f80\u5f80\u96c6\u6210\u5728\u7aef\u5230\u7aef\u7684\u5168\u5957\u8bbe\u5907\u7ba1\u7406\u89e3\u51b3\u65b9\u6848\u4e2d\uff0c\u8fdb\u884c\u6574\u4f53\u62a5\u4ef7\u6536\u8d39\u3002DMP\u529f\u80fd\u5305\u62ec\u7528\u6237\u7ba1\u7406\u4ee5\u53ca\u7269\u8054\u7f51\u8bbe\u5907\u7ba1\u7406\uff0c\u4f8b\u5982\u914d\u7f6e\u3001\u91cd\u542f\u3001\u5173\u95ed\u3001\u6062\u590d\u51fa\u5382\u3001\u5347\u7ea7/\u56de\u9000\u7b49\uff0c\u8bbe\u5907\u73b0\u573a\u4ea7\u751f\u7684\u6570\u636e\u7684\u67e5\u8be2\uff0c\u4ee5\u53ca\u57fa\u4e8e\u73b0\u573a\u6570\u636e\u7684\u62a5\u8b66\u529f\u80fd\uff0c\u8bbe\u5907\u751f\u547d\u5468\u671f\u7ba1\u7406\u7b49\u3002\u636eIDC\u6570\u636e\u663e\u793a\uff0c2020\u5e74\u5168\u7403\u5c06\u8d85\u8fc7250\u4ebf\u53f0\u8bbe\u5907\u8054\u7f51\u3002"),(0,a.yg)("p",null,"\u8bbe\u5907\u7ba1\u7406\u7684\u6838\u5fc3\u4e0d\u5728\u57fa\u7840\u7684\u8fde\u63a5\u548c\u7684\u7ba1\u7406\u804c\u80fd\uff0c\u800c\u5728\u589e\u503c\u6027\u7684\u7ecf\u8425\u548c\u7ef4\u62a4\u4e1a\u52a1\u4e0a\u3002\u901a\u8fc7\u5927\u91cf\u8bbe\u5907\u7684\u63a5\u5165\u6570\u636e\uff0c\u8bc6\u522b\u51fa\u4e1a\u52a1\u6d41\u7a0b\u7684\u4f18\u5316\u751a\u81f3\u65b0\u7684\u5546\u4e1a\u6a21\u5f0f\uff0c\u5bf9\u8bbe\u5907\u8fdb\u884c\u751f\u547d\u5468\u671f\u7ba1\u7406\u548c\u8fd0\u7ef4\uff0c\u80fd\u591f\u5bf9\u5ba2\u6237\u8d77\u5230\u964d\u672c\u589e\u6548\u7684\u4f5c\u7528\u3002"),(0,a.yg)("p",null,"\u5178\u578b\u7684DMP\u5e73\u53f0\u5305\u62ecBOSCHIoTSuite\u3001IBMWatson\u3001DiGi\u3001\u767e\u5ea6\u4e91\u7269\u63a5\u5165IoTHub\u3001\u4e09\u4e00\u91cd\u5de5\u6839\u4e91\u3001GEPredix\u7b49\u3002\u4ee5\u767e\u5ea6\u4e91\u4e3a\u4f8b\uff0c\u767e\u5ea6\u4e91\u7269\u63a5\u5165IoTHub\u662f\u5efa\u7acb\u5728IaaS\u4e0a\u7684PaaS\u5e73\u53f0\uff0c\u63d0\u4f9b\u5168\u6258\u7ba1\u7684\u4e91\u670d\u52a1\uff0c\u5e2e\u52a9\u5efa\u7acb\u8bbe\u5907\u4e0e\u4e91\u7aef\u4e4b\u95f4\u7684\u53cc\u5411\u8fde\u63a5\uff0c\u652f\u6491\u6d77\u91cf\u8bbe\u5907\u7684\u6570\u636e\u6536\u96c6\u3001\u76d1\u63a7\u3001\u6545\u969c\u9884\u6d4b\u7b49\u5404\u79cd\u7269\u8054\u7f51\u573a\u666f\u3002\u4e00\u4e9b\u5782\u76f4\u9886\u57df\u5de8\u5934\u672c\u8eab\u5c31\u662f\u8bbe\u5907\u63d0\u4f9b\u5546\uff0c\u4e1a\u52a1\u5916\u5ef6\u81f3\u5e73\u53f0\u5c42\u9762\uff0c\u901a\u5e38\u80fd\u591f\u63d0\u4f9b\u6574\u4f53\u89e3\u51b3\u65b9\u6848\uff0c\u90e8\u5206\u80fd\u591f\u96c6\u6210CRM\u3001ERP\u3001MES\u7b49\u4fe1\u606f\u7cfb\u7edf\u3002"),(0,a.yg)("h4",{id:"\u4e09\u5e94\u7528\u4f7f\u80fd\u5e73\u53f0aep"},"\u4e09\u3001\u5e94\u7528\u4f7f\u80fd\u5e73\u53f0AEP"),(0,a.yg)("p",null,"AEP\uff08Application Enablement Platform\uff09\u662f\u4e0a\u5c42\u7684\u4e1a\u52a1\u4f7f\u80fd\u5e73\u53f0\uff0c\u8be5\u903b\u8f91\u5c42\u662f\u7ed3\u5408\u4e86\u4e0a\u5c42\u7684\u5e94\u7528\u573a\u666f\uff0c\u4e3a\u5f00\u53d1\u8005\u63d0\u4f9b\u6210\u5957\u5e94\u7528\u5f00\u53d1\u5de5\u5177\uff08SDK\uff09\u3001\u4e2d\u95f4\u4ef6\u3001\u6570\u636e\u5b58\u50a8\u3001\u4e1a\u52a1\u903b\u8f91\u5f15\u64ce\u3001\u7b2c\u4e09\u65b9API\u63a5\u53e3\u7b49\u529f\u80fd\u3002\u6211\u4eec\u53ef\u5c06\u5176\u7406\u89e3\u4e3a\u7ed3\u5408\u5e94\u7528\u573a\u666f\u7684\u7cfb\u7edf\u5f00\u53d1\u5e73\u53f0\u3002\u968f\u7740\u4f01\u4e1a\u5728\u884c\u4e1a\u4e2d\u5bf9\u4e1a\u52a1\u7ecf\u9a8c\u3001\u6240\u6d89\u53ca\u6280\u672f\u7684\u6301\u7eed\u79ef\u7d2f\uff0c\u5e73\u53f0\u7684\u7ade\u4e89\u529b\u5c06\u9010\u6e10\u4ece\u8fde\u63a5\u80fd\u529b\u8f6c\u79fb\u5230\u5e73\u53f0\u7684\u591a\u573a\u666f\u5316\u7684\u4e1a\u52a1\u80fd\u529b\u3002 "),(0,a.yg)("p",null,"\u5e94\u7528\u4f7f\u80fd\u5e73\u53f0AEP\u662f\u63d0\u4f9b\u5feb\u901f\u5f00\u53d1\u90e8\u7f72\u7269\u8054\u7f51\u5e94\u7528\u670d\u52a1\u7684PaaS\u5e73\u53f0\u3002AEP\u4e3a\u5f00\u53d1\u8005\u63d0\u4f9b\u4e86\u6210\u5957\u5e94\u7528\u5f00\u53d1\u5de5\u5177\u3001\u4e2d\u95f4\u4ef6\u3001\u4e1a\u52a1\u903b\u8f91\u5f15\u64ce\u3001API\u63a5\u53e3\u3001\u5e94\u7528\u670d\u52a1\u5668\u7b49\u5de5\u5177\uff0c\u4ee5\u8282\u7701\u5927\u91cf\u5f00\u53d1\u65f6\u95f4\u548c\u9884\u7b97\u3002"),(0,a.yg)("p",null,"\u7269\u8054\u7f51\u5e02\u573a\u5929\u7136\u788e\u7247\u5316\uff0cAEP\u5e73\u53f0\u5546\u901a\u8fc7\u63d0\u4f9b\u5b8c\u5584\u7684\u5f00\u53d1\u8d44\u6599\u5e93\u3001\u591a\u6837\u5316\u7684\u90e8\u7f72\u65b9\u5f0f\u3001\u4f01\u4e1a\u7ea7SDK\u53ca\u53ef\u62d3\u5c55\u7684\u901a\u7528\u4e2d\u95f4\u4ef6\uff0c\u5927\u5927\u964d\u4f4e\u5f00\u53d1\u95e8\u69db\u3002\u5e94\u7528AEP\u5e73\u53f0\u80fd\u591f\u4f7f\u5e94\u7528\u7684\u5f00\u53d1\u6210\u672c\u5927\u5e45\u964d\u4f4e\uff0c\u5e76\u53ca\u65f6\u63a8\u5411\u5e02\u573a\u62a2\u5360\u5148\u673a\u3002"),(0,a.yg)("p",null,"\u5178\u578b\u7684AEP\u5e73\u53f0\u63d0\u4f9b\u5546\u5305\u62ecPTCThing worx\uff0c\u827e\u62c9\u7269\u8054\uff0c\u673a\u667a\u4e91\uff0cComulo city\uff0cAWS\nIoT\uff0cWatson IoT Platform\u7b49\u3002"),(0,a.yg)("p",null,"\u4ee5\u673a\u667a\u4e91\u4e3a\u4f8b\uff0c\u4e2d\u56fd\u7535\u4fe1\u7684\u767d\u8272\u5bb6\u7535\u884c\u4e1a\u4f7f\u80fd\u5957\u4ef6\u662f\u4e0e\u65e5\u6d77\u7269\u8054\u53ca\u673a\u667a\u4e91\u5408\u4f5c\u5b8c\u6210\u7684\uff0c\u4e3b\u8981\u670d\u52a1\u4e8e\u667a\u80fd\u5bb6\u7535\u884c\u4e1a\uff0c\u5e2e\u52a9\u5ba2\u6237\u8fdb\u884c\u4ea7\u54c1\u5f00\u53d1\u3002\u5957\u4ef6\u63d0\u4f9b\u6570\u636e\u7684\u7ba1\u7406\u3001\u5206\u6790\u3001\u8c03\u53d6\u7684\u6807\u51c6\u5316\u63a5\u53e3\uff0c\u5e94\u7528\u5f00\u53d1\u8005\u53ea\u9700\u8981\u8c03\u7528\u63a5\u53e3\uff0c\u5c31\u80fd\u591f\u5feb\u901f\u8fdb\u884c\u624b\u673aAPP\u6216\u8005\u5e94\u7528\u8f6f\u4ef6\u5e73\u53f0\u7684\u642d\u5efa\u3002\u6700\u7ec8\u7528\u6237\u901a\u8fc7\u624b\u673a\u6216\u8005\u7535\u8111\uff0c\u5c31\u53ef\u4ee5\u8f7b\u677e\u63a7\u5236\u63a7\u5236\u667a\u80fd\u5bb6\u7535\u3002"),(0,a.yg)("h4",{id:"\u56db\u4e1a\u52a1\u5206\u6790\u5e73\u53f0bap"},"\u56db\u3001\u4e1a\u52a1\u5206\u6790\u5e73\u53f0BAP"),(0,a.yg)("p",null,"BAP\uff08Business Analytics Platform\uff09\u53ef\u88ab\u79f0\u4e3a\u4e1a\u52a1\u5206\u6790\u5e73\u53f0\uff0c\u8be5\u903b\u8f91\u5c42\u5305\u542b\u5927\u6570\u636e\u670d\u52a1\u548c\u673a\u5668\u5b66\u4e60\u4e24\u4e2a\u4e3b\u8981\u529f\u80fd\u3002\u5c06\u6c47\u96c6\u5728\u4e91\u5e73\u53f0\u7684\u6570\u636e\u8fdb\u884c\u5206\u6790\u3001\u5904\u7406\uff0c\u5e76\u5c06\u5176\u53ef\u89c6\u5316\u3002\u800c\u673a\u5668\u5b66\u4e60\u662f\u5c06\u6c89\u6dc0\u5728\u5e73\u53f0\u4e0a\u7ed3\u6784\u5316\u548c\u975e\u7ed3\u6784\u5316\u6570\u636e\u8fdb\u884c\u8bad\u7ec3\uff0c\u5f62\u6210\u5177\u6709\u9884\u6d4b\u6027\u7684\u3001\u8ba4\u77e5\u7684\u3001\u6216\u590d\u6742\u7684\u4e1a\u52a1\u5206\u6790\u903b\u8f91\u3002\u800c\u672a\u6765\uff0c\u673a\u5668\u5b66\u4e60\u5fc5\u7136\u5c06\u5411\u4eba\u5de5\u667a\u80fd\u8fc7\u5ea6\u3002\u4ece\u6570\u636e\u7d2f\u8ba1\u91cf\u3001\u4eba\u5de5\u667a\u80fd\u6280\u672f\u7684\u53d1\u5c55\u7a0b\u5ea6\u7b49\u89d2\u5ea6\u8003\u8651\uff0c\u76ee\u524d\u8fd8\u6ca1\u6709\u4f01\u4e1a\u7684\u4e1a\u52a1\u53ef\u4ee5\u8fbe\u5230\u8fd9\u4e00\u5c42\u7ea7\u3002 "),(0,a.yg)("p",null,"\u4e1a\u52a1\u5206\u6790\u5e73\u53f0BAP\u4e3b\u8981\u901a\u8fc7\u5927\u6570\u636e\u5206\u6790\u548c\u673a\u5668\u5b66\u4e60\u7b49\u65b9\u6cd5\uff0c\u5bf9\u6570\u636e\u8fdb\u884c\u6df1\u5ea6\u89e3\u6790\uff0c\u4ee5\u56fe\u8868\u3001\u6570\u636e\u62a5\u544a\u7b49\u65b9\u5f0f\u8fdb\u884c\u53ef\u89c6\u5316\u5c55\u793a\uff0c\u5e76\u5e94\u7528\u4e8e\u5782\u76f4\u884c\u4e1a\u3002\u7269\u8054\u7f51\u5e94\u7528\u53ef\u4ee5\u901a\u8fc7\u5bf9BAP\u6a21\u5757\u7684\u8c03\u7528\u6765\u5efa\u7acb\u6a21\u578b\uff0c\u8fdb\u884c\u4e1a\u52a1\u53d1\u5c55\u9884\u6d4b\u5206\u6790\u53ca\u8bbe\u5907\u7684\u9884\u9632\u6027\u7ef4\u62a4\u7b49\u3002\u7531\u4e8e\u4eba\u5de5\u667a\u80fd\u6280\u672f\u53ca\u6570\u636e\u611f\u77e5\u5c42\u642d\u5efa\u7684\u8fdb\u5ea6\u9650\u5236\uff0c\u76ee\u524dBAP\u5e73\u53f0\u53d1\u5c55\u4ecd\u672a\u6210\u719f\u3002"))}s.isMDXComponent=!0},934:(e,t,n)=>{n.d(t,{A:()=>r});const r=n.p+"assets/images/1-4f28922b895ce23e1002dcd20b1e670f.png"}}]); \ No newline at end of file diff --git a/assets/js/c50996a1.00449fb4.js b/assets/js/c50996a1.0e175621.js similarity index 98% rename from assets/js/c50996a1.00449fb4.js rename to assets/js/c50996a1.0e175621.js index c02451575..bbf66ad0d 100644 --- a/assets/js/c50996a1.00449fb4.js +++ b/assets/js/c50996a1.0e175621.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9826],{5680:(e,t,r)=>{r.d(t,{xA:()=>i,yg:()=>y});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),p=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},i=function(e){var t=p(e.components);return n.createElement(l.Provider,{value:t},e.children)},d="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,i=u(e,["components","mdxType","originalType","parentName"]),d=p(r),f=o,y=d["".concat(l,".").concat(f)]||d[f]||s[f]||a;return r?n.createElement(y,c(c({ref:t},i),{},{components:r})):n.createElement(y,c({ref:t},i))}));function y(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=f;var u={};for(var l in t)hasOwnProperty.call(t,l)&&(u[l]=t[l]);u.originalType=e,u[d]="string"==typeof e?e:o,c[1]=u;for(var p=2;p{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>c,default:()=>s,frontMatter:()=>a,metadata:()=>u,toc:()=>p});var n=r(8168),o=(r(6540),r(5680));const a={},c=void 0,u={unversionedId:"study/net/MacOS\u7f16\u8bd1OpenVPN",id:"study/net/MacOS\u7f16\u8bd1OpenVPN",title:"MacOS\u7f16\u8bd1OpenVPN",description:"cmake -DUNSUPPORTED_BUILDS=true ./",source:"@site/docs/study/net/MacOS\u7f16\u8bd1OpenVPN.md",sourceDirName:"study/net",slug:"/study/net/MacOS\u7f16\u8bd1OpenVPN",permalink:"/docs/study/net/MacOS\u7f16\u8bd1OpenVPN",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"IPV6",permalink:"/docs/study/net/IPV6"},next:{title:"OpenVPN",permalink:"/docs/study/net/OpenVPN"}},l={},p=[{value:"cmake -DUNSUPPORTED_BUILDS=true ./",id:"cmake--dunsupported_buildstrue-",level:3},{value:"\u62a5\u9519\uff1aNone of the required 'cmocka' found",id:"\u62a5\u9519none-of-the-required-cmocka-found",level:3},{value:"\u62a5\u9519\uff1aNone of the required 'libpkcs11-helper-1' found",id:"\u62a5\u9519none-of-the-required-libpkcs11-helper-1-found",level:3}],i={toc:p},d="wrapper";function s(e){let{components:t,...r}=e;return(0,o.yg)(d,(0,n.A)({},i,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"cmake--dunsupported_buildstrue-"},"cmake -DUNSUPPORTED_BUILDS=true ./"),(0,o.yg)("p",null,"\u6267\u884c cmake"),(0,o.yg)("h3",{id:"\u62a5\u9519none-of-the-required-cmocka-found"},"\u62a5\u9519\uff1aNone of the required 'cmocka' found"),(0,o.yg)("p",null,"\u89e3\u51b3\uff1a"),(0,o.yg)("p",null,(0,o.yg)("a",{parentName:"p",href:"https://cmocka.org/"},"https://cmocka.org/")),(0,o.yg)("p",null,"brew install cmocka"),(0,o.yg)("h3",{id:"\u62a5\u9519none-of-the-required-libpkcs11-helper-1-found"},"\u62a5\u9519\uff1aNone of the required 'libpkcs11-helper-1' found"),(0,o.yg)("p",null,"\u89e3\u51b3\uff1a"),(0,o.yg)("p",null,"brew install pkcs11-helper"))}s.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9826],{5680:(e,t,r)=>{r.d(t,{xA:()=>i,yg:()=>y});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),p=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},i=function(e){var t=p(e.components);return n.createElement(l.Provider,{value:t},e.children)},d="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,i=u(e,["components","mdxType","originalType","parentName"]),d=p(r),f=o,y=d["".concat(l,".").concat(f)]||d[f]||s[f]||a;return r?n.createElement(y,c(c({ref:t},i),{},{components:r})):n.createElement(y,c({ref:t},i))}));function y(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=f;var u={};for(var l in t)hasOwnProperty.call(t,l)&&(u[l]=t[l]);u.originalType=e,u[d]="string"==typeof e?e:o,c[1]=u;for(var p=2;p{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>c,default:()=>s,frontMatter:()=>a,metadata:()=>u,toc:()=>p});var n=r(8168),o=(r(6540),r(5680));const a={},c=void 0,u={unversionedId:"study/net/MacOS\u7f16\u8bd1OpenVPN",id:"study/net/MacOS\u7f16\u8bd1OpenVPN",title:"MacOS\u7f16\u8bd1OpenVPN",description:"cmake -DUNSUPPORTED_BUILDS=true ./",source:"@site/docs/study/net/MacOS\u7f16\u8bd1OpenVPN.md",sourceDirName:"study/net",slug:"/study/net/MacOS\u7f16\u8bd1OpenVPN",permalink:"/docs/study/net/MacOS\u7f16\u8bd1OpenVPN",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"IPV6",permalink:"/docs/study/net/IPV6"},next:{title:"OpenVPN",permalink:"/docs/study/net/OpenVPN"}},l={},p=[{value:"cmake -DUNSUPPORTED_BUILDS=true ./",id:"cmake--dunsupported_buildstrue-",level:3},{value:"\u62a5\u9519\uff1aNone of the required 'cmocka' found",id:"\u62a5\u9519none-of-the-required-cmocka-found",level:3},{value:"\u62a5\u9519\uff1aNone of the required 'libpkcs11-helper-1' found",id:"\u62a5\u9519none-of-the-required-libpkcs11-helper-1-found",level:3}],i={toc:p},d="wrapper";function s(e){let{components:t,...r}=e;return(0,o.yg)(d,(0,n.A)({},i,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"cmake--dunsupported_buildstrue-"},"cmake -DUNSUPPORTED_BUILDS=true ./"),(0,o.yg)("p",null,"\u6267\u884c cmake"),(0,o.yg)("h3",{id:"\u62a5\u9519none-of-the-required-cmocka-found"},"\u62a5\u9519\uff1aNone of the required 'cmocka' found"),(0,o.yg)("p",null,"\u89e3\u51b3\uff1a"),(0,o.yg)("p",null,(0,o.yg)("a",{parentName:"p",href:"https://cmocka.org/"},"https://cmocka.org/")),(0,o.yg)("p",null,"brew install cmocka"),(0,o.yg)("h3",{id:"\u62a5\u9519none-of-the-required-libpkcs11-helper-1-found"},"\u62a5\u9519\uff1aNone of the required 'libpkcs11-helper-1' found"),(0,o.yg)("p",null,"\u89e3\u51b3\uff1a"),(0,o.yg)("p",null,"brew install pkcs11-helper"))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/c7df6888.9c1b95c9.js b/assets/js/c7df6888.532d5cc7.js similarity index 98% rename from assets/js/c7df6888.9c1b95c9.js rename to assets/js/c7df6888.532d5cc7.js index 070b93803..96926bb02 100644 --- a/assets/js/c7df6888.9c1b95c9.js +++ b/assets/js/c7df6888.532d5cc7.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9089],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>d});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function p(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var l=n.createContext({}),c=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):p(p({},t),e)),r},u=function(e){var t=c(e.components);return n.createElement(l.Provider,{value:t},e.children)},s="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),s=c(r),m=a,d=s["".concat(l,".").concat(m)]||s[m]||y[m]||o;return r?n.createElement(d,p(p({ref:t},u),{},{components:r})):n.createElement(d,p({ref:t},u))}));function d(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,p=new Array(o);p[0]=m;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[s]="string"==typeof e?e:a,p[1]=i;for(var c=2;c{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>p,default:()=>y,frontMatter:()=>o,metadata:()=>i,toc:()=>c});var n=r(8168),a=(r(6540),r(5680));const o={},p=void 0,i={unversionedId:"study/program/C/\u65b9\u6cd5\u5e93-\u9759\u6001\u5e93-\u52a8\u6001\u5e93-\u5171\u4eab\u5e93",id:"study/program/C/\u65b9\u6cd5\u5e93-\u9759\u6001\u5e93-\u52a8\u6001\u5e93-\u5171\u4eab\u5e93",title:"\u65b9\u6cd5\u5e93-\u9759\u6001\u5e93-\u52a8\u6001\u5e93-\u5171\u4eab\u5e93",description:"\u65b9\u6cd5\u5e93\u53ef\u4ee5\u5206\u4e3a\u4e24\u7c7b\uff1a",source:"@site/docs/study/program/C/\u65b9\u6cd5\u5e93-\u9759\u6001\u5e93-\u52a8\u6001\u5e93-\u5171\u4eab\u5e93.md",sourceDirName:"study/program/C",slug:"/study/program/C/\u65b9\u6cd5\u5e93-\u9759\u6001\u5e93-\u52a8\u6001\u5e93-\u5171\u4eab\u5e93",permalink:"/docs/study/program/C/\u65b9\u6cd5\u5e93-\u9759\u6001\u5e93-\u52a8\u6001\u5e93-\u5171\u4eab\u5e93",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"size_t-ptrdiff_t-intptr_t-uintptr_t",permalink:"/docs/study/program/C/size_t-ptrdiff_t-intptr_t-uintptr_t"},next:{title:"\u6784\u5efa\u5de5\u5177",permalink:"/docs/study/program/C/\u6784\u5efa\u5de5\u5177"}},l={},c=[],u={toc:c},s="wrapper";function y(e){let{components:t,...r}=e;return(0,a.yg)(s,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("p",null,"\u65b9\u6cd5\u5e93\u53ef\u4ee5\u5206\u4e3a\u4e24\u7c7b\uff1a"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"\u9759\u6001\u5e93")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"\u52a8\u6001\u5e93\uff08\u4e5f\u53ef\u4ee5\u79f0\u4e3a\u5171\u4eab\u5e93\uff09")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"windows \u4e0b\u9759\u6001\u5e93\u4ee5.lib \u4e3a\u540e\u7f00\uff0c\u52a8\u6001\u5e93\u4ee5.dll \u4e3a\u540e\u7f00")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"linux \u4e0b\u9759\u6001\u5e93\u4ee5.a \u4e3a\u540e\u7f00\uff0c\u52a8\u6001\u5e93\u4ee5.so \u4e3a\u540e\u7f00")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"mac \u4e0b\u9759\u6001\u5e93\u4ee5.a \u4e3a\u540e\u7f00\uff0c\u52a8\u6001\u5e93\u4ee5.dylib \u4e3a\u540e\u7f00;\u540c\u65f6.framework \u4e3a\u540e\u7f00\u7684\u6587\u4ef6\uff0c\u6709\u53ef\u80fd\u662f\u9759\u6001\u5e93\uff0c\u4e5f\u6709\u53ef\u80fd\u662f\u52a8\u6001\u5e93"))),(0,a.yg)("p",null,"\u56e0\u4e3a\u5728\u64cd\u4f5c\u7cfb\u7edf\u4e2d\u8fd0\u884c\u7684\u662f\u53ef\u6267\u884c\u7a0b\u5e8f\uff0c\u9759\u6001\u5e93\u4f1a copy \u5230\u53ef\u6267\u884c\u7a0b\u5e8f\u4e2d\uff0c\u800c\u52a8\u6001\u5e93\u53ea\u662f\u88ab\u53ef\u6267\u884c\u7a0b\u5e8f\u5f15\u7528\uff1b"),(0,a.yg)("p",null,"\u4e00\u4e2a\u5728\u91cc\u9762\uff0c\u4e00\u4e2a\u5728\u5916\u9762\uff0c\u4e24\u8005\u662f\u6709\u533a\u522b\u7684\u3002"))}y.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9089],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>d});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function p(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var l=n.createContext({}),c=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):p(p({},t),e)),r},u=function(e){var t=c(e.components);return n.createElement(l.Provider,{value:t},e.children)},s="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),s=c(r),m=a,d=s["".concat(l,".").concat(m)]||s[m]||y[m]||o;return r?n.createElement(d,p(p({ref:t},u),{},{components:r})):n.createElement(d,p({ref:t},u))}));function d(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,p=new Array(o);p[0]=m;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[s]="string"==typeof e?e:a,p[1]=i;for(var c=2;c{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>p,default:()=>y,frontMatter:()=>o,metadata:()=>i,toc:()=>c});var n=r(8168),a=(r(6540),r(5680));const o={},p=void 0,i={unversionedId:"study/program/C/\u65b9\u6cd5\u5e93-\u9759\u6001\u5e93-\u52a8\u6001\u5e93-\u5171\u4eab\u5e93",id:"study/program/C/\u65b9\u6cd5\u5e93-\u9759\u6001\u5e93-\u52a8\u6001\u5e93-\u5171\u4eab\u5e93",title:"\u65b9\u6cd5\u5e93-\u9759\u6001\u5e93-\u52a8\u6001\u5e93-\u5171\u4eab\u5e93",description:"\u65b9\u6cd5\u5e93\u53ef\u4ee5\u5206\u4e3a\u4e24\u7c7b\uff1a",source:"@site/docs/study/program/C/\u65b9\u6cd5\u5e93-\u9759\u6001\u5e93-\u52a8\u6001\u5e93-\u5171\u4eab\u5e93.md",sourceDirName:"study/program/C",slug:"/study/program/C/\u65b9\u6cd5\u5e93-\u9759\u6001\u5e93-\u52a8\u6001\u5e93-\u5171\u4eab\u5e93",permalink:"/docs/study/program/C/\u65b9\u6cd5\u5e93-\u9759\u6001\u5e93-\u52a8\u6001\u5e93-\u5171\u4eab\u5e93",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"size_t-ptrdiff_t-intptr_t-uintptr_t",permalink:"/docs/study/program/C/size_t-ptrdiff_t-intptr_t-uintptr_t"},next:{title:"\u6784\u5efa\u5de5\u5177",permalink:"/docs/study/program/C/\u6784\u5efa\u5de5\u5177"}},l={},c=[],u={toc:c},s="wrapper";function y(e){let{components:t,...r}=e;return(0,a.yg)(s,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("p",null,"\u65b9\u6cd5\u5e93\u53ef\u4ee5\u5206\u4e3a\u4e24\u7c7b\uff1a"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"\u9759\u6001\u5e93")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"\u52a8\u6001\u5e93\uff08\u4e5f\u53ef\u4ee5\u79f0\u4e3a\u5171\u4eab\u5e93\uff09")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"windows \u4e0b\u9759\u6001\u5e93\u4ee5.lib \u4e3a\u540e\u7f00\uff0c\u52a8\u6001\u5e93\u4ee5.dll \u4e3a\u540e\u7f00")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"linux \u4e0b\u9759\u6001\u5e93\u4ee5.a \u4e3a\u540e\u7f00\uff0c\u52a8\u6001\u5e93\u4ee5.so \u4e3a\u540e\u7f00")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"mac \u4e0b\u9759\u6001\u5e93\u4ee5.a \u4e3a\u540e\u7f00\uff0c\u52a8\u6001\u5e93\u4ee5.dylib \u4e3a\u540e\u7f00;\u540c\u65f6.framework \u4e3a\u540e\u7f00\u7684\u6587\u4ef6\uff0c\u6709\u53ef\u80fd\u662f\u9759\u6001\u5e93\uff0c\u4e5f\u6709\u53ef\u80fd\u662f\u52a8\u6001\u5e93"))),(0,a.yg)("p",null,"\u56e0\u4e3a\u5728\u64cd\u4f5c\u7cfb\u7edf\u4e2d\u8fd0\u884c\u7684\u662f\u53ef\u6267\u884c\u7a0b\u5e8f\uff0c\u9759\u6001\u5e93\u4f1a copy \u5230\u53ef\u6267\u884c\u7a0b\u5e8f\u4e2d\uff0c\u800c\u52a8\u6001\u5e93\u53ea\u662f\u88ab\u53ef\u6267\u884c\u7a0b\u5e8f\u5f15\u7528\uff1b"),(0,a.yg)("p",null,"\u4e00\u4e2a\u5728\u91cc\u9762\uff0c\u4e00\u4e2a\u5728\u5916\u9762\uff0c\u4e24\u8005\u662f\u6709\u533a\u522b\u7684\u3002"))}y.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/c7fe4f6d.e7ce3410.js b/assets/js/c7fe4f6d.80235699.js similarity index 98% rename from assets/js/c7fe4f6d.e7ce3410.js rename to assets/js/c7fe4f6d.80235699.js index 3f6bf5b43..f231158f8 100644 --- a/assets/js/c7fe4f6d.e7ce3410.js +++ b/assets/js/c7fe4f6d.80235699.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1522],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var i=n.createContext({}),u=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},p=function(e){var t=u(e.components);return n.createElement(i.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,i=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),s=u(r),y=o,f=s["".concat(i,".").concat(y)]||s[y]||d[y]||a;return r?n.createElement(f,c(c({ref:t},p),{},{components:r})):n.createElement(f,c({ref:t},p))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=y;var l={};for(var i in t)hasOwnProperty.call(t,i)&&(l[i]=t[i]);l.originalType=e,l[s]="string"==typeof e?e:o,c[1]=l;for(var u=2;u{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>c,default:()=>d,frontMatter:()=>a,metadata:()=>l,toc:()=>u});var n=r(8168),o=(r(6540),r(5680));const a={},c=void 0,l={unversionedId:"study/net/\u5c40\u57df\u7f51IP\u5730\u5740\u8303\u56f4",id:"study/net/\u5c40\u57df\u7f51IP\u5730\u5740\u8303\u56f4",title:"\u5c40\u57df\u7f51IP\u5730\u5740\u8303\u56f4",description:"A \u7c7b\u5730\u5740",source:"@site/docs/study/net/\u5c40\u57df\u7f51IP\u5730\u5740\u8303\u56f4.md",sourceDirName:"study/net",slug:"/study/net/\u5c40\u57df\u7f51IP\u5730\u5740\u8303\u56f4",permalink:"/docs/study/net/\u5c40\u57df\u7f51IP\u5730\u5740\u8303\u56f4",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u5185\u7f51\u7a7f\u900f",permalink:"/docs/study/net/\u5185\u7f51\u7a7f\u900f"},next:{title:"\u5f02\u5730\u7ec4\u7f51",permalink:"/docs/study/net/\u5f02\u5730\u7ec4\u7f51"}},i={},u=[{value:"A \u7c7b\u5730\u5740",id:"a-\u7c7b\u5730\u5740",level:3},{value:"B \u7c7b\u5730\u5740",id:"b-\u7c7b\u5730\u5740",level:3},{value:"C \u7c7b\u5730\u5740",id:"c-\u7c7b\u5730\u5740",level:3}],p={toc:u},s="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"a-\u7c7b\u5730\u5740"},"A \u7c7b\u5730\u5740"),(0,o.yg)("p",null,"10\uff0e0\uff0e0\uff0e0\uff0f8"),(0,o.yg)("p",null,"-- 10\uff0e0\uff0e0\uff0e0 \uff5e 10\uff0e255\uff0e255\uff0e255"),(0,o.yg)("h3",{id:"b-\u7c7b\u5730\u5740"},"B \u7c7b\u5730\u5740"),(0,o.yg)("p",null,"172\uff0e16\uff0e0\uff0e0\uff0f12"),(0,o.yg)("p",null,"-- 172\uff0e16\uff0e0\uff0e0 \uff5e 172\uff0e31\uff0e255\uff0e255"),(0,o.yg)("h3",{id:"c-\u7c7b\u5730\u5740"},"C \u7c7b\u5730\u5740"),(0,o.yg)("p",null,"192\uff0e168\uff0e0\uff0e0\uff0f16\n-- 192\uff0e168\uff0e0\uff0e0 \uff5e 192\uff0e168\uff0e255\uff0e255"))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1522],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var i=n.createContext({}),u=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},p=function(e){var t=u(e.components);return n.createElement(i.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,i=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),s=u(r),y=o,f=s["".concat(i,".").concat(y)]||s[y]||d[y]||a;return r?n.createElement(f,c(c({ref:t},p),{},{components:r})):n.createElement(f,c({ref:t},p))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=y;var l={};for(var i in t)hasOwnProperty.call(t,i)&&(l[i]=t[i]);l.originalType=e,l[s]="string"==typeof e?e:o,c[1]=l;for(var u=2;u{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>c,default:()=>d,frontMatter:()=>a,metadata:()=>l,toc:()=>u});var n=r(8168),o=(r(6540),r(5680));const a={},c=void 0,l={unversionedId:"study/net/\u5c40\u57df\u7f51IP\u5730\u5740\u8303\u56f4",id:"study/net/\u5c40\u57df\u7f51IP\u5730\u5740\u8303\u56f4",title:"\u5c40\u57df\u7f51IP\u5730\u5740\u8303\u56f4",description:"A \u7c7b\u5730\u5740",source:"@site/docs/study/net/\u5c40\u57df\u7f51IP\u5730\u5740\u8303\u56f4.md",sourceDirName:"study/net",slug:"/study/net/\u5c40\u57df\u7f51IP\u5730\u5740\u8303\u56f4",permalink:"/docs/study/net/\u5c40\u57df\u7f51IP\u5730\u5740\u8303\u56f4",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u5185\u7f51\u7a7f\u900f",permalink:"/docs/study/net/\u5185\u7f51\u7a7f\u900f"},next:{title:"\u5f02\u5730\u7ec4\u7f51",permalink:"/docs/study/net/\u5f02\u5730\u7ec4\u7f51"}},i={},u=[{value:"A \u7c7b\u5730\u5740",id:"a-\u7c7b\u5730\u5740",level:3},{value:"B \u7c7b\u5730\u5740",id:"b-\u7c7b\u5730\u5740",level:3},{value:"C \u7c7b\u5730\u5740",id:"c-\u7c7b\u5730\u5740",level:3}],p={toc:u},s="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"a-\u7c7b\u5730\u5740"},"A \u7c7b\u5730\u5740"),(0,o.yg)("p",null,"10\uff0e0\uff0e0\uff0e0\uff0f8"),(0,o.yg)("p",null,"-- 10\uff0e0\uff0e0\uff0e0 \uff5e 10\uff0e255\uff0e255\uff0e255"),(0,o.yg)("h3",{id:"b-\u7c7b\u5730\u5740"},"B \u7c7b\u5730\u5740"),(0,o.yg)("p",null,"172\uff0e16\uff0e0\uff0e0\uff0f12"),(0,o.yg)("p",null,"-- 172\uff0e16\uff0e0\uff0e0 \uff5e 172\uff0e31\uff0e255\uff0e255"),(0,o.yg)("h3",{id:"c-\u7c7b\u5730\u5740"},"C \u7c7b\u5730\u5740"),(0,o.yg)("p",null,"192\uff0e168\uff0e0\uff0e0\uff0f16\n-- 192\uff0e168\uff0e0\uff0e0 \uff5e 192\uff0e168\uff0e255\uff0e255"))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/c86c7bbe.2ed2bea6.js b/assets/js/c86c7bbe.38e8d216.js similarity index 99% rename from assets/js/c86c7bbe.2ed2bea6.js rename to assets/js/c86c7bbe.38e8d216.js index ae10e731b..3e5d4c41c 100644 --- a/assets/js/c86c7bbe.2ed2bea6.js +++ b/assets/js/c86c7bbe.38e8d216.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2923],{5680:(e,t,r)=>{r.d(t,{xA:()=>y,yg:()=>m});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var u=n.createContext({}),p=function(e){var t=n.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},y=function(e){var t=p(e.components);return n.createElement(u.Provider,{value:t},e.children)},c="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,l=e.originalType,u=e.parentName,y=i(e,["components","mdxType","originalType","parentName"]),c=p(r),d=a,m=c["".concat(u,".").concat(d)]||c[d]||s[d]||l;return r?n.createElement(m,o(o({ref:t},y),{},{components:r})):n.createElement(m,o({ref:t},y))}));function m(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=r.length,o=new Array(l);o[0]=d;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i[c]="string"==typeof e?e:a,o[1]=i;for(var p=2;p{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>o,default:()=>s,frontMatter:()=>l,metadata:()=>i,toc:()=>p});var n=r(8168),a=(r(6540),r(5680));const l={sidebar_position:2},o=void 0,i={unversionedId:"study/db/\u7efc\u5408",id:"study/db/\u7efc\u5408",title:"\u7efc\u5408",description:"\u8f6f\u4ef6\u7cfb\u7edf\u6839\u636e\u5b58\u50a8\u7ed3\u6784\u7684\u5206\u7c7b",source:"@site/docs/study/db/\u7efc\u5408.md",sourceDirName:"study/db",slug:"/study/db/\u7efc\u5408",permalink:"/docs/study/db/\u7efc\u5408",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"studySidebar",previous:{title:"\u6982\u8ff0",permalink:"/docs/study/db/"},next:{title:"TiDB",permalink:"/docs/study/db/NewSQL/TiDB"}},u={},p=[{value:"\u8f6f\u4ef6\u7cfb\u7edf\u6839\u636e\u5b58\u50a8\u7ed3\u6784\u7684\u5206\u7c7b",id:"\u8f6f\u4ef6\u7cfb\u7edf\u6839\u636e\u5b58\u50a8\u7ed3\u6784\u7684\u5206\u7c7b",level:3},{value:"NOSQL\u51fa\u73b0\u7684\u5386\u53f2\u539f\u56e0",id:"nosql\u51fa\u73b0\u7684\u5386\u53f2\u539f\u56e0",level:3}],y={toc:p},c="wrapper";function s(e){let{components:t,...r}=e;return(0,a.yg)(c,(0,n.A)({},y,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"\u8f6f\u4ef6\u7cfb\u7edf\u6839\u636e\u5b58\u50a8\u7ed3\u6784\u7684\u5206\u7c7b"},"\u8f6f\u4ef6\u7cfb\u7edf\u6839\u636e\u5b58\u50a8\u7ed3\u6784\u7684\u5206\u7c7b"),(0,a.yg)("p",null,"\u5173\u4e8eNoSQL\uff0c\u770b\u8fc7\u4e00\u5f20\u56fe\uff0c\u633a\u5f62\u8c61\uff1a\u201c1970\uff0cWe have no SQL\u201d->\u201c1980\uff0cKnow SQL\u201d->\u201c2000\uff0cNoSQL\u201d->\u201c2005\uff0cNot only SQL\u201d->\u201c2015\uff0cNo\uff0cSQL\u201d\u3002\u76ee\u524d\uff0c\u4e00\u4e9b\u65b0\u578b\u6570\u636e\u5e93\uff0c\u540c\u65f6\u5177\u5907\u4e86NoSQL\u7684\u6269\u5c55\u6027\u548c\u5173\u7cfb\u578b\u6570\u636e\u5e93\u7684\u5f88\u591a\u7279\u6027\u3002 "),(0,a.yg)("p",null,"\u5173\u7cfb\u578b\u548cNoSQL\u6570\u636e\u5e93\u7684\u9009\u578b\u3002\u8003\u8651\u51e0\u4e2a\u6307\u6807\uff0c\u6570\u636e\u91cf\u3001\u5e76\u53d1\u91cf\u3001\u5b9e\u65f6\u6027\u3001\u4e00\u81f4\u6027\u8981\u6c42\u3001\u8bfb\u5199\u5206\u5e03\u548c\u7c7b\u578b\u3001\u5b89\u5168\u6027\u3001\u8fd0\u7ef4\u6027\u7b49\u3002\u6839\u636e\u8fd9\u4e9b\u6307\u6807\uff0c\u8f6f\u4ef6\u7cfb\u7edf\u53ef\u5206\u6210\u51e0\u7c7b\u3002 "),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},"\u7ba1\u7406\u578b\u7cfb\u7edf\uff0c\u5982\u8fd0\u8425\u7c7b\u7cfb\u7edf\uff0c\u9996\u9009\u5173\u7cfb\u578b\u3002 "),(0,a.yg)("li",{parentName:"ol"},"\u5927\u6d41\u91cf\u7cfb\u7edf\uff0c\u5982\u7535\u5546\u5355\u54c1\u9875\u7684\u67d0\u4e2a\u670d\u52a1\uff0c\u540e\u53f0\u9009\u5173\u7cfb\u578b\uff0c\u524d\u53f0\u9009\u5185\u5b58\u578b\u3002 "),(0,a.yg)("li",{parentName:"ol"},"\u65e5\u5fd7\u578b\u7cfb\u7edf\uff0c\u539f\u59cb\u6570\u636e\u9009\u5217\u5f0f\uff0c\u65e5\u5fd7\u641c\u7d22\u9009\u5012\u6392\u7d22\u5f15\u3002 "),(0,a.yg)("li",{parentName:"ol"},"\u641c\u7d22\u578b\u7cfb\u7edf\uff0c\u6307\u7ad9\u5185\u641c\u7d22\uff0c\u975e\u901a\u7528\u641c\u7d22\uff0c\u5982\u5546\u54c1\u641c\u7d22\uff0c\u540e\u53f0\u9009\u5173\u7cfb\u578b\uff0c\u524d\u53f0\u9009\u5012\u6392\u7d22\u5f15\u3002 "),(0,a.yg)("li",{parentName:"ol"},"\u4e8b\u52a1\u578b\u7cfb\u7edf\uff0c\u5982\u5e93\u5b58\u3001\u4ea4\u6613\u3001\u8bb0\u8d26\uff0c\u9009\u5173\u7cfb\u578b+\u7f13\u5b58+\u4e00\u81f4\u6027\u534f\u8bae\uff0c\u6216\u65b0\u578b\u5173\u7cfb\u6570\u636e\u5e93\u3002 "),(0,a.yg)("li",{parentName:"ol"},"\u79bb\u7ebf\u8ba1\u7b97\uff0c\u5982\u5927\u91cf\u6570\u636e\u5206\u6790\uff0c\u9996\u9009\u5217\u5f0f\uff0c\u5173\u7cfb\u578b\u4e5f\u53ef\u4ee5\u3002 "),(0,a.yg)("li",{parentName:"ol"},"\u5b9e\u65f6\u8ba1\u7b97\uff0c\u5982\u5b9e\u65f6\u76d1\u63a7\uff0c\u53ef\u4ee5\u9009\u65f6\u5e8f\u6570\u636e\u5e93\uff0c\u6216\u5217\u5f0f\u6570\u636e\u5e93\u3002")),(0,a.yg)("h3",{id:"nosql\u51fa\u73b0\u7684\u5386\u53f2\u539f\u56e0"},"NOSQL\u51fa\u73b0\u7684\u5386\u53f2\u539f\u56e0"),(0,a.yg)("p",null,"\u5173\u7cfb\u6570\u636e\u5e93\u7ecf\u8fc7\u51e0\u5341\u5e74\u7684\u53d1\u5c55\u540e\u5df2\u7ecf\u975e\u5e38\u6210\u719f\uff0c\u5f3a\u5927\u7684 SQL \u529f\u80fd\u548c ACID \u7684\u5c5e\u6027\uff0c\u4f7f\u5f97\u5173\u7cfb\u6570\u636e\u5e93\u5e7f\u6cdb\u5e94\u7528\u4e8e\u5404\u5f0f\u5404\u6837\u7684\u7cfb\u7edf\u4e2d\uff0c\u4f46\u8fd9\u5e76\u4e0d\u610f\u5473\u7740\u5173\u7cfb\u6570\u636e\u5e93\u662f\u5b8c\u7f8e\u7684\uff0c\u5173\u7cfb\u6570\u636e\u5e93\u5b58\u5728\u5982\u4e0b\u7f3a\u70b9\u3002"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u5173\u7cfb\u6570\u636e\u5e93\u5b58\u50a8\u7684\u662f\u884c\u8bb0\u5f55\uff0c\u65e0\u6cd5\u5b58\u50a8\u6570\u636e\u7ed3\u6784",(0,a.yg)("ul",{parentName:"li"},(0,a.yg)("li",{parentName:"ul"},"\u4ee5\u5fae\u535a\u7684\u5173\u6ce8\u5173\u7cfb\u4e3a\u4f8b\uff0c\u201c\u6211\u5173\u6ce8\u7684\u4eba\u201d\u662f\u4e00\u4e2a\u7528\u6237 ID \u5217\u8868\uff0c\u4f7f\u7528\u5173\u7cfb\u6570\u636e\u5e93\u5b58\u50a8\u53ea\u80fd\u5c06\u5217\u8868\u62c6\u6210\u591a\u884c\uff0c\u7136\u540e\u518d\u67e5\u8be2\u51fa\u6765\u7ec4\u88c5\uff0c\u65e0\u6cd5\u76f4\u63a5\u5b58\u50a8\u4e00\u4e2a\u5217\u8868\u3002"))),(0,a.yg)("li",{parentName:"ul"},"\u5173\u7cfb\u6570\u636e\u5e93\u7684 schema \u6269\u5c55\u5f88\u4e0d\u65b9\u4fbf",(0,a.yg)("ul",{parentName:"li"},(0,a.yg)("li",{parentName:"ul"},"\u5173\u7cfb\u6570\u636e\u5e93\u7684\u8868\u7ed3\u6784 schema \u662f\u5f3a\u7ea6\u675f\uff0c\u64cd\u4f5c\u4e0d\u5b58\u5728\u7684\u5217\u4f1a\u62a5\u9519\uff0c\u4e1a\u52a1\u53d8\u5316\u65f6\u6269\u5145\u5217\u4e5f\u6bd4\u8f83\u9ebb\u70e6\uff0c\u9700\u8981\u6267\u884c DDL\uff08data definition language\uff0c\u5982 CREATE\u3001ALTER\u3001DROP \u7b49\uff09\u8bed\u53e5\u4fee\u6539\uff0c\u800c\u4e14\u4fee\u6539\u65f6\u53ef\u80fd\u4f1a\u957f\u65f6\u95f4\u9501\u8868\uff08\u4f8b\u5982\uff0cMySQL \u53ef\u80fd\u5c06\u8868\u9501\u4f4f 1 \u4e2a\u5c0f\u65f6\uff09\u3002"))),(0,a.yg)("li",{parentName:"ul"},"\u5173\u7cfb\u6570\u636e\u5e93\u5728\u5927\u6570\u636e\u573a\u666f\u4e0b I/O \u8f83\u9ad8",(0,a.yg)("ul",{parentName:"li"},(0,a.yg)("li",{parentName:"ul"},"\u5982\u679c\u5bf9\u4e00\u4e9b\u5927\u91cf\u6570\u636e\u7684\u8868\u8fdb\u884c\u7edf\u8ba1\u4e4b\u7c7b\u7684\u8fd0\u7b97\uff0c\u5173\u7cfb\u6570\u636e\u5e93\u7684 I/O \u4f1a\u5f88\u9ad8\uff0c\u56e0\u4e3a\u5373\u4f7f\u53ea\u9488\u5bf9\u5176\u4e2d\u67d0\u4e00\u5217\u8fdb\u884c\u8fd0\u7b97\uff0c\u5173\u7cfb\u6570\u636e\u5e93\u4e5f\u4f1a\u5c06\u6574\u884c\u6570\u636e\u4ece\u5b58\u50a8\u8bbe\u5907\u8bfb\u5165\u5185\u5b58\u3002"))),(0,a.yg)("li",{parentName:"ul"},"\u5173\u7cfb\u6570\u636e\u5e93\u7684\u5168\u6587\u641c\u7d22\u529f\u80fd\u6bd4\u8f83\u5f31",(0,a.yg)("ul",{parentName:"li"},(0,a.yg)("li",{parentName:"ul"},"\u5173\u7cfb\u6570\u636e\u5e93\u7684\u5168\u6587\u641c\u7d22\u53ea\u80fd\u4f7f\u7528 like \u8fdb\u884c\u6574\u8868\u626b\u63cf\u5339\u914d\uff0c\u6027\u80fd\u975e\u5e38\u4f4e\uff0c\u5728\u4e92\u8054\u7f51\u8fd9\u79cd\u641c\u7d22\u590d\u6742\u7684\u573a\u666f\u4e0b\u65e0\u6cd5\u6ee1\u8db3\u4e1a\u52a1\u8981\u6c42\u3002")))),(0,a.yg)("p",null,"\u9488\u5bf9\u4e0a\u8ff0\u95ee\u9898\uff0c\u5206\u522b\u8bde\u751f\u4e86\u4e0d\u540c\u7684 NoSQL \u89e3\u51b3\u65b9\u6848\uff0c\u8fd9\u4e9b\u65b9\u6848\u4e0e\u5173\u7cfb\u6570\u636e\u5e93\u76f8\u6bd4\uff0c\u5728\u67d0\u4e9b\u5e94\u7528\u573a\u666f\u4e0b\u8868\u73b0\u66f4\u597d\u3002\u4f46\u4e16\u4e0a\u6ca1\u6709\u514d\u8d39\u7684\u5348\u9910\uff0cNoSQL \u65b9\u6848\u5e26\u6765\u7684\u4f18\u52bf\uff0c\u672c\u8d28\u4e0a\u662f\u727a\u7272 ACID \u4e2d\u7684\u67d0\u4e2a\u6216\u8005\u67d0\u51e0\u4e2a\u7279\u6027\uff0c\u56e0\u6b64\u6211\u4eec\u4e0d\u80fd\u76f2\u76ee\u5730\u8ff7\u4fe1 NoSQL \u662f\u94f6\u5f39\uff0c\u800c\u5e94\u8be5\u5c06 NoSQL \u4f5c\u4e3a SQL \u7684\u4e00\u4e2a\u6709\u529b\u8865\u5145\uff0cNoSQL != No SQL\uff0c\u800c\u662f NoSQL = Not Only SQL\u3002"),(0,a.yg)("p",null,"\u5e38\u89c1\u7684 NoSQL \u65b9\u6848\u5206\u4e3a 4 \u7c7b\u3002"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"K-V \u5b58\u50a8\uff1a\u89e3\u51b3\u5173\u7cfb\u6570\u636e\u5e93\u65e0\u6cd5\u5b58\u50a8\u6570\u636e\u7ed3\u6784\u7684\u95ee\u9898\uff0c\u4ee5 Redis \u4e3a\u4ee3\u8868\u3002"),(0,a.yg)("li",{parentName:"ul"},"\u6587\u6863\u6570\u636e\u5e93\uff1a\u89e3\u51b3\u5173\u7cfb\u6570\u636e\u5e93\u5f3a schema \u7ea6\u675f\u7684\u95ee\u9898\uff0c\u4ee5 MongoDB \u4e3a\u4ee3\u8868\u3002"),(0,a.yg)("li",{parentName:"ul"},"\u5217\u5f0f\u6570\u636e\u5e93\uff1a\u89e3\u51b3\u5173\u7cfb\u6570\u636e\u5e93\u5927\u6570\u636e\u573a\u666f\u4e0b\u7684 I/O \u95ee\u9898\uff0c\u4ee5 HBase \u4e3a\u4ee3\u8868\u3002"),(0,a.yg)("li",{parentName:"ul"},"\u5168\u6587\u641c\u7d22\u5f15\u64ce\uff1a\u89e3\u51b3\u5173\u7cfb\u6570\u636e\u5e93\u7684\u5168\u6587\u641c\u7d22\u6027\u80fd\u95ee\u9898\uff0c\u4ee5 Elasticsearch \u4e3a\u4ee3\u8868\u3002")))}s.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2923],{5680:(e,t,r)=>{r.d(t,{xA:()=>y,yg:()=>m});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var u=n.createContext({}),p=function(e){var t=n.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},y=function(e){var t=p(e.components);return n.createElement(u.Provider,{value:t},e.children)},c="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,l=e.originalType,u=e.parentName,y=i(e,["components","mdxType","originalType","parentName"]),c=p(r),d=a,m=c["".concat(u,".").concat(d)]||c[d]||s[d]||l;return r?n.createElement(m,o(o({ref:t},y),{},{components:r})):n.createElement(m,o({ref:t},y))}));function m(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=r.length,o=new Array(l);o[0]=d;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i[c]="string"==typeof e?e:a,o[1]=i;for(var p=2;p{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>o,default:()=>s,frontMatter:()=>l,metadata:()=>i,toc:()=>p});var n=r(8168),a=(r(6540),r(5680));const l={sidebar_position:2},o=void 0,i={unversionedId:"study/db/\u7efc\u5408",id:"study/db/\u7efc\u5408",title:"\u7efc\u5408",description:"\u8f6f\u4ef6\u7cfb\u7edf\u6839\u636e\u5b58\u50a8\u7ed3\u6784\u7684\u5206\u7c7b",source:"@site/docs/study/db/\u7efc\u5408.md",sourceDirName:"study/db",slug:"/study/db/\u7efc\u5408",permalink:"/docs/study/db/\u7efc\u5408",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"studySidebar",previous:{title:"\u6982\u8ff0",permalink:"/docs/study/db/"},next:{title:"TiDB",permalink:"/docs/study/db/NewSQL/TiDB"}},u={},p=[{value:"\u8f6f\u4ef6\u7cfb\u7edf\u6839\u636e\u5b58\u50a8\u7ed3\u6784\u7684\u5206\u7c7b",id:"\u8f6f\u4ef6\u7cfb\u7edf\u6839\u636e\u5b58\u50a8\u7ed3\u6784\u7684\u5206\u7c7b",level:3},{value:"NOSQL\u51fa\u73b0\u7684\u5386\u53f2\u539f\u56e0",id:"nosql\u51fa\u73b0\u7684\u5386\u53f2\u539f\u56e0",level:3}],y={toc:p},c="wrapper";function s(e){let{components:t,...r}=e;return(0,a.yg)(c,(0,n.A)({},y,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"\u8f6f\u4ef6\u7cfb\u7edf\u6839\u636e\u5b58\u50a8\u7ed3\u6784\u7684\u5206\u7c7b"},"\u8f6f\u4ef6\u7cfb\u7edf\u6839\u636e\u5b58\u50a8\u7ed3\u6784\u7684\u5206\u7c7b"),(0,a.yg)("p",null,"\u5173\u4e8eNoSQL\uff0c\u770b\u8fc7\u4e00\u5f20\u56fe\uff0c\u633a\u5f62\u8c61\uff1a\u201c1970\uff0cWe have no SQL\u201d->\u201c1980\uff0cKnow SQL\u201d->\u201c2000\uff0cNoSQL\u201d->\u201c2005\uff0cNot only SQL\u201d->\u201c2015\uff0cNo\uff0cSQL\u201d\u3002\u76ee\u524d\uff0c\u4e00\u4e9b\u65b0\u578b\u6570\u636e\u5e93\uff0c\u540c\u65f6\u5177\u5907\u4e86NoSQL\u7684\u6269\u5c55\u6027\u548c\u5173\u7cfb\u578b\u6570\u636e\u5e93\u7684\u5f88\u591a\u7279\u6027\u3002 "),(0,a.yg)("p",null,"\u5173\u7cfb\u578b\u548cNoSQL\u6570\u636e\u5e93\u7684\u9009\u578b\u3002\u8003\u8651\u51e0\u4e2a\u6307\u6807\uff0c\u6570\u636e\u91cf\u3001\u5e76\u53d1\u91cf\u3001\u5b9e\u65f6\u6027\u3001\u4e00\u81f4\u6027\u8981\u6c42\u3001\u8bfb\u5199\u5206\u5e03\u548c\u7c7b\u578b\u3001\u5b89\u5168\u6027\u3001\u8fd0\u7ef4\u6027\u7b49\u3002\u6839\u636e\u8fd9\u4e9b\u6307\u6807\uff0c\u8f6f\u4ef6\u7cfb\u7edf\u53ef\u5206\u6210\u51e0\u7c7b\u3002 "),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},"\u7ba1\u7406\u578b\u7cfb\u7edf\uff0c\u5982\u8fd0\u8425\u7c7b\u7cfb\u7edf\uff0c\u9996\u9009\u5173\u7cfb\u578b\u3002 "),(0,a.yg)("li",{parentName:"ol"},"\u5927\u6d41\u91cf\u7cfb\u7edf\uff0c\u5982\u7535\u5546\u5355\u54c1\u9875\u7684\u67d0\u4e2a\u670d\u52a1\uff0c\u540e\u53f0\u9009\u5173\u7cfb\u578b\uff0c\u524d\u53f0\u9009\u5185\u5b58\u578b\u3002 "),(0,a.yg)("li",{parentName:"ol"},"\u65e5\u5fd7\u578b\u7cfb\u7edf\uff0c\u539f\u59cb\u6570\u636e\u9009\u5217\u5f0f\uff0c\u65e5\u5fd7\u641c\u7d22\u9009\u5012\u6392\u7d22\u5f15\u3002 "),(0,a.yg)("li",{parentName:"ol"},"\u641c\u7d22\u578b\u7cfb\u7edf\uff0c\u6307\u7ad9\u5185\u641c\u7d22\uff0c\u975e\u901a\u7528\u641c\u7d22\uff0c\u5982\u5546\u54c1\u641c\u7d22\uff0c\u540e\u53f0\u9009\u5173\u7cfb\u578b\uff0c\u524d\u53f0\u9009\u5012\u6392\u7d22\u5f15\u3002 "),(0,a.yg)("li",{parentName:"ol"},"\u4e8b\u52a1\u578b\u7cfb\u7edf\uff0c\u5982\u5e93\u5b58\u3001\u4ea4\u6613\u3001\u8bb0\u8d26\uff0c\u9009\u5173\u7cfb\u578b+\u7f13\u5b58+\u4e00\u81f4\u6027\u534f\u8bae\uff0c\u6216\u65b0\u578b\u5173\u7cfb\u6570\u636e\u5e93\u3002 "),(0,a.yg)("li",{parentName:"ol"},"\u79bb\u7ebf\u8ba1\u7b97\uff0c\u5982\u5927\u91cf\u6570\u636e\u5206\u6790\uff0c\u9996\u9009\u5217\u5f0f\uff0c\u5173\u7cfb\u578b\u4e5f\u53ef\u4ee5\u3002 "),(0,a.yg)("li",{parentName:"ol"},"\u5b9e\u65f6\u8ba1\u7b97\uff0c\u5982\u5b9e\u65f6\u76d1\u63a7\uff0c\u53ef\u4ee5\u9009\u65f6\u5e8f\u6570\u636e\u5e93\uff0c\u6216\u5217\u5f0f\u6570\u636e\u5e93\u3002")),(0,a.yg)("h3",{id:"nosql\u51fa\u73b0\u7684\u5386\u53f2\u539f\u56e0"},"NOSQL\u51fa\u73b0\u7684\u5386\u53f2\u539f\u56e0"),(0,a.yg)("p",null,"\u5173\u7cfb\u6570\u636e\u5e93\u7ecf\u8fc7\u51e0\u5341\u5e74\u7684\u53d1\u5c55\u540e\u5df2\u7ecf\u975e\u5e38\u6210\u719f\uff0c\u5f3a\u5927\u7684 SQL \u529f\u80fd\u548c ACID \u7684\u5c5e\u6027\uff0c\u4f7f\u5f97\u5173\u7cfb\u6570\u636e\u5e93\u5e7f\u6cdb\u5e94\u7528\u4e8e\u5404\u5f0f\u5404\u6837\u7684\u7cfb\u7edf\u4e2d\uff0c\u4f46\u8fd9\u5e76\u4e0d\u610f\u5473\u7740\u5173\u7cfb\u6570\u636e\u5e93\u662f\u5b8c\u7f8e\u7684\uff0c\u5173\u7cfb\u6570\u636e\u5e93\u5b58\u5728\u5982\u4e0b\u7f3a\u70b9\u3002"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u5173\u7cfb\u6570\u636e\u5e93\u5b58\u50a8\u7684\u662f\u884c\u8bb0\u5f55\uff0c\u65e0\u6cd5\u5b58\u50a8\u6570\u636e\u7ed3\u6784",(0,a.yg)("ul",{parentName:"li"},(0,a.yg)("li",{parentName:"ul"},"\u4ee5\u5fae\u535a\u7684\u5173\u6ce8\u5173\u7cfb\u4e3a\u4f8b\uff0c\u201c\u6211\u5173\u6ce8\u7684\u4eba\u201d\u662f\u4e00\u4e2a\u7528\u6237 ID \u5217\u8868\uff0c\u4f7f\u7528\u5173\u7cfb\u6570\u636e\u5e93\u5b58\u50a8\u53ea\u80fd\u5c06\u5217\u8868\u62c6\u6210\u591a\u884c\uff0c\u7136\u540e\u518d\u67e5\u8be2\u51fa\u6765\u7ec4\u88c5\uff0c\u65e0\u6cd5\u76f4\u63a5\u5b58\u50a8\u4e00\u4e2a\u5217\u8868\u3002"))),(0,a.yg)("li",{parentName:"ul"},"\u5173\u7cfb\u6570\u636e\u5e93\u7684 schema \u6269\u5c55\u5f88\u4e0d\u65b9\u4fbf",(0,a.yg)("ul",{parentName:"li"},(0,a.yg)("li",{parentName:"ul"},"\u5173\u7cfb\u6570\u636e\u5e93\u7684\u8868\u7ed3\u6784 schema \u662f\u5f3a\u7ea6\u675f\uff0c\u64cd\u4f5c\u4e0d\u5b58\u5728\u7684\u5217\u4f1a\u62a5\u9519\uff0c\u4e1a\u52a1\u53d8\u5316\u65f6\u6269\u5145\u5217\u4e5f\u6bd4\u8f83\u9ebb\u70e6\uff0c\u9700\u8981\u6267\u884c DDL\uff08data definition language\uff0c\u5982 CREATE\u3001ALTER\u3001DROP \u7b49\uff09\u8bed\u53e5\u4fee\u6539\uff0c\u800c\u4e14\u4fee\u6539\u65f6\u53ef\u80fd\u4f1a\u957f\u65f6\u95f4\u9501\u8868\uff08\u4f8b\u5982\uff0cMySQL \u53ef\u80fd\u5c06\u8868\u9501\u4f4f 1 \u4e2a\u5c0f\u65f6\uff09\u3002"))),(0,a.yg)("li",{parentName:"ul"},"\u5173\u7cfb\u6570\u636e\u5e93\u5728\u5927\u6570\u636e\u573a\u666f\u4e0b I/O \u8f83\u9ad8",(0,a.yg)("ul",{parentName:"li"},(0,a.yg)("li",{parentName:"ul"},"\u5982\u679c\u5bf9\u4e00\u4e9b\u5927\u91cf\u6570\u636e\u7684\u8868\u8fdb\u884c\u7edf\u8ba1\u4e4b\u7c7b\u7684\u8fd0\u7b97\uff0c\u5173\u7cfb\u6570\u636e\u5e93\u7684 I/O \u4f1a\u5f88\u9ad8\uff0c\u56e0\u4e3a\u5373\u4f7f\u53ea\u9488\u5bf9\u5176\u4e2d\u67d0\u4e00\u5217\u8fdb\u884c\u8fd0\u7b97\uff0c\u5173\u7cfb\u6570\u636e\u5e93\u4e5f\u4f1a\u5c06\u6574\u884c\u6570\u636e\u4ece\u5b58\u50a8\u8bbe\u5907\u8bfb\u5165\u5185\u5b58\u3002"))),(0,a.yg)("li",{parentName:"ul"},"\u5173\u7cfb\u6570\u636e\u5e93\u7684\u5168\u6587\u641c\u7d22\u529f\u80fd\u6bd4\u8f83\u5f31",(0,a.yg)("ul",{parentName:"li"},(0,a.yg)("li",{parentName:"ul"},"\u5173\u7cfb\u6570\u636e\u5e93\u7684\u5168\u6587\u641c\u7d22\u53ea\u80fd\u4f7f\u7528 like \u8fdb\u884c\u6574\u8868\u626b\u63cf\u5339\u914d\uff0c\u6027\u80fd\u975e\u5e38\u4f4e\uff0c\u5728\u4e92\u8054\u7f51\u8fd9\u79cd\u641c\u7d22\u590d\u6742\u7684\u573a\u666f\u4e0b\u65e0\u6cd5\u6ee1\u8db3\u4e1a\u52a1\u8981\u6c42\u3002")))),(0,a.yg)("p",null,"\u9488\u5bf9\u4e0a\u8ff0\u95ee\u9898\uff0c\u5206\u522b\u8bde\u751f\u4e86\u4e0d\u540c\u7684 NoSQL \u89e3\u51b3\u65b9\u6848\uff0c\u8fd9\u4e9b\u65b9\u6848\u4e0e\u5173\u7cfb\u6570\u636e\u5e93\u76f8\u6bd4\uff0c\u5728\u67d0\u4e9b\u5e94\u7528\u573a\u666f\u4e0b\u8868\u73b0\u66f4\u597d\u3002\u4f46\u4e16\u4e0a\u6ca1\u6709\u514d\u8d39\u7684\u5348\u9910\uff0cNoSQL \u65b9\u6848\u5e26\u6765\u7684\u4f18\u52bf\uff0c\u672c\u8d28\u4e0a\u662f\u727a\u7272 ACID \u4e2d\u7684\u67d0\u4e2a\u6216\u8005\u67d0\u51e0\u4e2a\u7279\u6027\uff0c\u56e0\u6b64\u6211\u4eec\u4e0d\u80fd\u76f2\u76ee\u5730\u8ff7\u4fe1 NoSQL \u662f\u94f6\u5f39\uff0c\u800c\u5e94\u8be5\u5c06 NoSQL \u4f5c\u4e3a SQL \u7684\u4e00\u4e2a\u6709\u529b\u8865\u5145\uff0cNoSQL != No SQL\uff0c\u800c\u662f NoSQL = Not Only SQL\u3002"),(0,a.yg)("p",null,"\u5e38\u89c1\u7684 NoSQL \u65b9\u6848\u5206\u4e3a 4 \u7c7b\u3002"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"K-V \u5b58\u50a8\uff1a\u89e3\u51b3\u5173\u7cfb\u6570\u636e\u5e93\u65e0\u6cd5\u5b58\u50a8\u6570\u636e\u7ed3\u6784\u7684\u95ee\u9898\uff0c\u4ee5 Redis \u4e3a\u4ee3\u8868\u3002"),(0,a.yg)("li",{parentName:"ul"},"\u6587\u6863\u6570\u636e\u5e93\uff1a\u89e3\u51b3\u5173\u7cfb\u6570\u636e\u5e93\u5f3a schema \u7ea6\u675f\u7684\u95ee\u9898\uff0c\u4ee5 MongoDB \u4e3a\u4ee3\u8868\u3002"),(0,a.yg)("li",{parentName:"ul"},"\u5217\u5f0f\u6570\u636e\u5e93\uff1a\u89e3\u51b3\u5173\u7cfb\u6570\u636e\u5e93\u5927\u6570\u636e\u573a\u666f\u4e0b\u7684 I/O \u95ee\u9898\uff0c\u4ee5 HBase \u4e3a\u4ee3\u8868\u3002"),(0,a.yg)("li",{parentName:"ul"},"\u5168\u6587\u641c\u7d22\u5f15\u64ce\uff1a\u89e3\u51b3\u5173\u7cfb\u6570\u636e\u5e93\u7684\u5168\u6587\u641c\u7d22\u6027\u80fd\u95ee\u9898\uff0c\u4ee5 Elasticsearch \u4e3a\u4ee3\u8868\u3002")))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/c9e57e8c.351655b5.js b/assets/js/c9e57e8c.a6386b9f.js similarity index 99% rename from assets/js/c9e57e8c.351655b5.js rename to assets/js/c9e57e8c.a6386b9f.js index c3bb86cdf..a14caf4d2 100644 --- a/assets/js/c9e57e8c.351655b5.js +++ b/assets/js/c9e57e8c.a6386b9f.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8194],{5680:(e,t,n)=>{n.d(t,{xA:()=>y,yg:()=>g});var r=n(6540);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var p=r.createContext({}),c=function(e){var t=r.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},y=function(e){var t=c(e.components);return r.createElement(p.Provider,{value:t},e.children)},u="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,i=e.mdxType,a=e.originalType,p=e.parentName,y=o(e,["components","mdxType","originalType","parentName"]),u=c(n),d=i,g=u["".concat(p,".").concat(d)]||u[d]||s[d]||a;return n?r.createElement(g,l(l({ref:t},y),{},{components:n})):r.createElement(g,l({ref:t},y))}));function g(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var a=n.length,l=new Array(a);l[0]=d;var o={};for(var p in t)hasOwnProperty.call(t,p)&&(o[p]=t[p]);o.originalType=e,o[u]="string"==typeof e?e:i,l[1]=o;for(var c=2;c{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>s,frontMatter:()=>a,metadata:()=>o,toc:()=>c});var r=n(8168),i=(n(6540),n(5680));const a={},l=void 0,o={unversionedId:"study/db/NewSQL/TiDB",id:"study/db/NewSQL/TiDB",title:"TiDB",description:"\u80cc\u666f",source:"@site/docs/study/db/NewSQL/TiDB.md",sourceDirName:"study/db/NewSQL",slug:"/study/db/NewSQL/TiDB",permalink:"/docs/study/db/NewSQL/TiDB",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u7efc\u5408",permalink:"/docs/study/db/\u7efc\u5408"},next:{title:"Cassandra",permalink:"/docs/study/db/NoSQL/Cassandra"}},p={},c=[{value:"\u80cc\u666f",id:"\u80cc\u666f",level:3},{value:"\u66ff\u6362 MySQL Sharding(\u5206\u7247) \u4f5c\u4e3a\u4e3b\u751f\u4ea7\u6570\u636e\u5e93",id:"\u66ff\u6362-mysql-sharding\u5206\u7247-\u4f5c\u4e3a\u4e3b\u751f\u4ea7\u6570\u636e\u5e93",level:4},{value:"\u66ff\u6362 HBase/C*/ES \u7b49 NoSQL \u6570\u636e\u5e93",id:"\u66ff\u6362-hbaseces-\u7b49-nosql-\u6570\u636e\u5e93",level:4},{value:"\u4f7f\u7528 TiDB \u4f5c\u4e3a HTAP \u6570\u636e\u5e93\uff08\u5b9e\u65f6\u4e8b\u52a1+\u5b9e\u65f6\u5206\u6790\uff09",id:"\u4f7f\u7528-tidb-\u4f5c\u4e3a-htap-\u6570\u636e\u5e93\u5b9e\u65f6\u4e8b\u52a1\u5b9e\u65f6\u5206\u6790",level:4},{value:"\u7b80\u4ecb",id:"\u7b80\u4ecb",level:3},{value:"\u76ee\u524d\u72b6\u51b5(V3.0)",id:"\u76ee\u524d\u72b6\u51b5v30",level:3}],y={toc:c},u="wrapper";function s(e){let{components:t,...n}=e;return(0,i.yg)(u,(0,r.A)({},y,n,{components:t,mdxType:"MDXLayout"}),(0,i.yg)("h3",{id:"\u80cc\u666f"},"\u80cc\u666f"),(0,i.yg)("h4",{id:"\u66ff\u6362-mysql-sharding\u5206\u7247-\u4f5c\u4e3a\u4e3b\u751f\u4ea7\u6570\u636e\u5e93"},"\u66ff\u6362 MySQL Sharding(\u5206\u7247) \u4f5c\u4e3a\u4e3b\u751f\u4ea7\u6570\u636e\u5e93"),(0,i.yg)("p",null,"\u8fd9\u4e2a\u573a\u666f\u5176\u5b9e\u662f TiDB \u8bbe\u8ba1\u7684\u521d\u8877\uff0c\u5728\u5355\u673a MySQL \u6570\u636e\u91cf\u592a\u5927\u540e\uff0c\u8fc7\u53bb\u80fd\u9009\u7684\u57fa\u672c\u5c31\u662f\u5206\u5e93\u5206\u8868\uff0c\u518d\u5206\u4e0d\u5f00\u7684\u8bdd\u5c31\u53ea\u80fd Sharding\uff0c\u4f46\u662f\u5206\u5e93\u5206\u8868\u3001Sharding\uff0c\u5176\u5b9e\u4e0d\u7ba1\u662f\u7ef4\u62a4\u6210\u672c\u548c\u5f00\u53d1\u6539\u9020\u6210\u672c\u90fd\u5f88\u9ad8\uff0c\u6240\u4ee5 TiDB \u7ed9\u8fd9\u4e9b\u7528\u6237\u63d0\u4f9b\u4e86\u4e00\u4e2a\u53ef\u4ee5\u5f39\u6027\u6269\u5c55\u7684\uff0c\u7528\u8d77\u6765\u5c31\u50cf\u5355\u673a MySQL \u4e00\u6837\u7684\uff0c\u652f\u6301\u4e8b\u52a1\u548c\u590d\u6742\u67e5\u8be2\u7684\u5206\u5e03\u5f0f\u6570\u636e\u5e93\uff0c\u540c\u65f6\u8fd8\u652f\u6301\u591a\u526f\u672c\u81ea\u52a8\u7684\u9ad8\u53ef\u7528\uff0c\u5f53\u7136\u5f88\u723d\u3002"),(0,i.yg)("p",null,"\u8fd9\u90e8\u5206\u7528\u6237\u4e00\u822c\u4e00\u5f00\u59cb\u4e0a\u7ebf\u524d\u90fd\u4f1a\u7528 TiDB \u7684 ",(0,i.yg)("a",{parentName:"p",href:"https://link.zhihu.com/?target=https%3A//github.com/pingcap/docs-cn/blob/master/tools/syncer.md"},"Syncer"),"\uff0c \u5c06 TiDB \u96c6\u7fa4\u4f5c\u4e3a\u7ebf\u4e0a MySQL \u7684\u4ece\u5e93\uff0c\u5b9e\u65f6\u540c\u6b65\u7ebf\u4e0a\u7684 MySQL \u4e3b\u5e93\uff0c\u89c2\u5bdf\u4e00\u6bb5\u65f6\u95f4\u7a33\u5b9a\u6027\u517c\u5bb9\u6027\u3001\u8fdb\u884c\u538b\u529b\u6d4b\u8bd5\u540e\uff0c\u76f4\u63a5\u5c06\u7ebf\u4e0a\u5e93\u6307\u5411 TiDB\uff0c\u4e0d\u7528\u4fee\u6539\u4e00\u884c\u4ee3\u7801\u3002"),(0,i.yg)("h4",{id:"\u66ff\u6362-hbaseces-\u7b49-nosql-\u6570\u636e\u5e93"},"\u66ff\u6362 HBase/C*/ES \u7b49 NoSQL \u6570\u636e\u5e93"),(0,i.yg)("p",null,"\u8fd9\u7c7b\u7528\u6237\u4e3b\u8981\u662f\u8fc7\u53bb\u7528\u7740 NoSQL\uff0c\u5e0c\u671b\u5728\u62e5\u6709\u5f39\u6027\u4f38\u7f29\u80fd\u529b\uff0c\u53ef\u4ee5\u7ebf\u6027\u6269\u5c55\u7684\u5b9e\u65f6\u5e76\u53d1\u5199\u5165\u80fd\u529b\uff0c\u518d\u80fd\u62e5\u6709\u66f4\u5f3a\u5927\u7684\u67e5\u8be2\u80fd\u529b\uff0c\u6bd4\u5982\u4e8c\u7ea7\u7d22\u5f15\u70b9\u67e5\uff0c\u6bd4\u5982\u590d\u6742\u7684 Join \u652f\u6301\u3002\u5178\u578b\u7684\u5e94\u7528\u573a\u666f\u662f\u5ba2\u670d\u67e5\u8be2\uff0cUser profile \u7cfb\u7edf\u7b49\u7b49\u3002\n\u901a\u5e38\u8fd9\u7c7b\u7528\u6237\u7684\u6570\u636e\u91cf\u5de8\u5927\uff0c\u53ef\u80fd\u5355\u5e93\u90fd\u6709\u4e0a\u767e T\uff0cTiDB \u80fd\u5f88\u597d\u7684\u6ee1\u8db3\uff1a"),(0,i.yg)("ol",null,(0,i.yg)("li",{parentName:"ol"},"\u5927\u6d77\u635e\u9488\u5f0f\u7684\u7cbe\u51c6\u67e5\u8be2"),(0,i.yg)("li",{parentName:"ol"},"Ad-hoc \u5206\u6790")),(0,i.yg)("p",null,"\u8fd9\u4e00\u5207\u90fd\u662f\u5728\u4e0d\u727a\u7272\u5b9e\u65f6\u5199\u5165\u80fd\u529b\u7684\u540c\u65f6\u62e5\u6709\u7684\u3002"),(0,i.yg)("h4",{id:"\u4f7f\u7528-tidb-\u4f5c\u4e3a-htap-\u6570\u636e\u5e93\u5b9e\u65f6\u4e8b\u52a1\u5b9e\u65f6\u5206\u6790"},"\u4f7f\u7528 TiDB \u4f5c\u4e3a HTAP \u6570\u636e\u5e93\uff08\u5b9e\u65f6\u4e8b\u52a1+\u5b9e\u65f6\u5206\u6790\uff09"),(0,i.yg)("p",null,"\u8fd9\u7c7b\u7528\u6237\u662f\u5728\u521a\u5f00\u59cb\u505a TiDB \u7684\u65f6\u5019\u5b8c\u5168\u6ca1\u60f3\u5230\u7684\uff0c\u968f\u7740 TiDB \u7684 SQL \u80fd\u529b\u8d8a\u6765\u8d8a\u5f3a\uff0c\u5e76\u4e14\u968f\u7740 TiDB \u7684\u5b50\u9879\u76ee TiSpark \u7684\u53d1\u5e03\uff0c\u8ba9\u7528\u6237\u5728\u62e5\u6709\u5173\u7cfb\u6570\u636e\u5e93\u7684\u4e8b\u52a1\u5199\u5165\u80fd\u529b\u540c\u65f6\u53ef\u4ee5\u5728\u540c\u4e00\u4efd\u6570\u636e\u4e0a\u8fdb\u884c\u590d\u6742\u7684\u5206\u6790\uff1b\u8fd9\u7c7b\u7528\u6237\u4e00\u822c\u7528 Syncer \u5c06\u6240\u6709\u7ebf\u4e0a\u751f\u4ea7\u6570\u636e\u5e93\u540c\u6b65\u5230\u4e00\u4e2a\u5927\u7684 TiDB \u96c6\u7fa4\u4e0a\uff08Syncer \u652f\u6301\u591a\u6e90\u540c\u6b65\uff0c\u5408\u5e76\u5206\u5e93\u5206\u8868\u7b49\u529f\u80fd\uff09\uff0c\u7136\u540e\u76f4\u63a5\u5728\u8fd9\u4e2a TiDB Cluster \u4e0a\u901a\u8fc7 TiDB \u6216\u8005 TiSpark \u8fdb\u884c\u5206\u6790\u3002"),(0,i.yg)("h3",{id:"\u7b80\u4ecb"},"\u7b80\u4ecb"),(0,i.yg)("p",null,"TiDB \u662f PingCAP \u516c\u53f8\u8bbe\u8ba1\u7684\u5f00\u6e90\u5206\u5e03\u5f0f HTAP (Hybrid Transactional and Analytical Processing) \u6570\u636e\u5e93\uff0c\u7ed3\u5408\u4e86\u4f20\u7edf\u7684 RDBMS \u548c NoSQL \u7684\u6700\u4f73\u7279\u6027\u3002TiDB \u517c\u5bb9 MySQL\uff0c\u652f\u6301\u65e0\u9650\u7684\u6c34\u5e73\u6269\u5c55\uff0c\u5177\u5907\u5f3a\u4e00\u81f4\u6027\u548c\u9ad8\u53ef\u7528\u6027\u3002TiDB \u7684\u76ee\u6807\u662f\u4e3a OLTP (Online Transactional Processing) \u548c OLAP (Online Analytical Processing) \u573a\u666f\u63d0\u4f9b\u4e00\u7ad9\u5f0f\u7684\u89e3\u51b3\u65b9\u6848\u3002"),(0,i.yg)("p",null,"TiDB \u5177\u5907\u5982\u4e0b\u7279\u6027\uff1a"),(0,i.yg)("ul",null,(0,i.yg)("li",{parentName:"ul"},"\u9ad8\u5ea6\u517c\u5bb9 MySQL\n\u5927\u591a\u6570\u60c5\u51b5\u4e0b\uff0c\u65e0\u9700\u4fee\u6539\u4ee3\u7801\u5373\u53ef\u4ece MySQL \u8f7b\u677e\u8fc1\u79fb\u81f3 TiDB\uff0c\u5206\u5e93\u5206\u8868\u540e\u7684 MySQL \u96c6\u7fa4\u4ea6\u53ef\u901a\u8fc7 TiDB \u5de5\u5177\u8fdb\u884c\u5b9e\u65f6\u8fc1\u79fb\u3002"),(0,i.yg)("li",{parentName:"ul"},"\u6c34\u5e73\u5f39\u6027\u6269\u5c55\n\u901a\u8fc7\u7b80\u5355\u5730\u589e\u52a0\u65b0\u8282\u70b9\u5373\u53ef\u5b9e\u73b0 TiDB \u7684\u6c34\u5e73\u6269\u5c55\uff0c\u6309\u9700\u6269\u5c55\u541e\u5410\u6216\u5b58\u50a8\uff0c\u8f7b\u677e\u5e94\u5bf9\u9ad8\u5e76\u53d1\u3001\u6d77\u91cf\u6570\u636e\u573a\u666f\u3002"),(0,i.yg)("li",{parentName:"ul"},"\u5206\u5e03\u5f0f\u4e8b\u52a1\nTiDB 100% \u652f\u6301\u6807\u51c6\u7684 ACID \u4e8b\u52a1\u3002"),(0,i.yg)("li",{parentName:"ul"},"\u771f\u6b63\u91d1\u878d\u7ea7\u9ad8\u53ef\u7528\n\u76f8\u6bd4\u4e8e\u4f20\u7edf\u4e3b\u4ece (M-S) \u590d\u5236\u65b9\u6848\uff0c\u57fa\u4e8e Raft \u7684\u591a\u6570\u6d3e\u9009\u4e3e\u534f\u8bae\u53ef\u4ee5\u63d0\u4f9b\u91d1\u878d\u7ea7\u7684 100% \u6570\u636e\u5f3a\u4e00\u81f4\u6027\u4fdd\u8bc1\uff0c\u4e14\u5728\u4e0d\u4e22\u5931\u5927\u591a\u6570\u526f\u672c\u7684\u524d\u63d0\u4e0b\uff0c\u53ef\u4ee5\u5b9e\u73b0\u6545\u969c\u7684\u81ea\u52a8\u6062\u590d (auto-failover)\uff0c\u65e0\u9700\u4eba\u5de5\u4ecb\u5165\u3002"),(0,i.yg)("li",{parentName:"ul"},"\u4e00\u7ad9\u5f0f HTAP \u89e3\u51b3\u65b9\u6848\nTiDB \u4f5c\u4e3a\u5178\u578b\u7684 OLTP \u884c\u5b58\u6570\u636e\u5e93\uff0c\u540c\u65f6\u517c\u5177\u5f3a\u5927\u7684 OLAP \u6027\u80fd\uff0c\u914d\u5408 TiSpark\uff0c\u53ef\u63d0\u4f9b\u4e00\u7ad9\u5f0f HTAP \u89e3\u51b3\u65b9\u6848\uff0c\u4e00\u4efd\u5b58\u50a8\u540c\u65f6\u5904\u7406 OLTP & OLAP\uff0c\u65e0\u9700\u4f20\u7edf\u7e41\u7410\u7684 ETL \u8fc7\u7a0b\u3002"),(0,i.yg)("li",{parentName:"ul"},"\u4e91\u539f\u751f SQL \u6570\u636e\u5e93\nTiDB \u662f\u4e3a\u4e91\u800c\u8bbe\u8ba1\u7684\u6570\u636e\u5e93\uff0c\u652f\u6301\u516c\u6709\u4e91\u3001\u79c1\u6709\u4e91\u548c\u6df7\u5408\u4e91\uff0c\u4f7f\u90e8\u7f72\u3001\u914d\u7f6e\u548c\u7ef4\u62a4\u53d8\u5f97\u5341\u5206\u7b80\u5355\u3002")),(0,i.yg)("p",null,"TiDB \u7684\u8bbe\u8ba1\u76ee\u6807\u662f 100% \u7684 OLTP \u573a\u666f\u548c 80% \u7684 OLAP \u573a\u666f\uff0c\u66f4\u590d\u6742\u7684 OLAP \u5206\u6790\u53ef\u4ee5\u901a\u8fc7 TiSpark \u9879\u76ee\u6765\u5b8c\u6210\u3002"),(0,i.yg)("p",null,"TiDB \u5bf9\u4e1a\u52a1\u6ca1\u6709\u4efb\u4f55\u4fb5\u5165\u6027\uff0c\u80fd\u4f18\u96c5\u7684\u66ff\u6362\u4f20\u7edf\u7684\u6570\u636e\u5e93\u4e2d\u95f4\u4ef6\u3001\u6570\u636e\u5e93\u5206\u5e93\u5206\u8868\u7b49 Sharding \u65b9\u6848\u3002\u540c\u65f6\u5b83\u4e5f\u8ba9\u5f00\u53d1\u8fd0\u7ef4\u4eba\u5458\u4e0d\u7528\u5173\u6ce8\u6570\u636e\u5e93 Scale \u7684\u7ec6\u8282\u95ee\u9898\uff0c\u4e13\u6ce8\u4e8e\u4e1a\u52a1\u5f00\u53d1\uff0c\u6781\u5927\u7684\u63d0\u5347\u7814\u53d1\u7684\u751f\u4ea7\u529b\u3002"),(0,i.yg)("p",null,"\u4e09\u7bc7\u6587\u7ae0\u4e86\u89e3 TiDB \u6280\u672f\u5185\u5e55\uff1a"),(0,i.yg)("ul",null,(0,i.yg)("li",{parentName:"ul"},(0,i.yg)("a",{parentName:"li",href:"https://pingcap.com/blog-cn/tidb-internal-1/"},"\u8bf4\u5b58\u50a8")),(0,i.yg)("li",{parentName:"ul"},(0,i.yg)("a",{parentName:"li",href:"https://pingcap.com/blog-cn/tidb-internal-2/"},"\u8bf4\u8ba1\u7b97")),(0,i.yg)("li",{parentName:"ul"},(0,i.yg)("a",{parentName:"li",href:"https://pingcap.com/blog-cn/tidb-internal-3/"},"\u8c08\u8c03\u5ea6"))),(0,i.yg)("h3",{id:"\u76ee\u524d\u72b6\u51b5v30"},"\u76ee\u524d\u72b6\u51b5(V3.0)"),(0,i.yg)("p",null,"TiDB \u76ee\u524d\u8fd8\u4e0d\u652f\u6301\u89e6\u53d1\u5668\u3001\u5b58\u50a8\u8fc7\u7a0b\u3001\u81ea\u5b9a\u4e49\u51fd\u6570\u3001\u5916\u952e\uff0c\u9664\u6b64\u4e4b\u5916\uff0cTiDB \u652f\u6301\u7edd\u5927\u90e8\u5206 MySQL 5.7 \u7684\u8bed\u6cd5\u3002"))}s.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8194],{5680:(e,t,n)=>{n.d(t,{xA:()=>y,yg:()=>g});var r=n(6540);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var p=r.createContext({}),c=function(e){var t=r.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},y=function(e){var t=c(e.components);return r.createElement(p.Provider,{value:t},e.children)},u="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,i=e.mdxType,a=e.originalType,p=e.parentName,y=o(e,["components","mdxType","originalType","parentName"]),u=c(n),d=i,g=u["".concat(p,".").concat(d)]||u[d]||s[d]||a;return n?r.createElement(g,l(l({ref:t},y),{},{components:n})):r.createElement(g,l({ref:t},y))}));function g(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var a=n.length,l=new Array(a);l[0]=d;var o={};for(var p in t)hasOwnProperty.call(t,p)&&(o[p]=t[p]);o.originalType=e,o[u]="string"==typeof e?e:i,l[1]=o;for(var c=2;c{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>s,frontMatter:()=>a,metadata:()=>o,toc:()=>c});var r=n(8168),i=(n(6540),n(5680));const a={},l=void 0,o={unversionedId:"study/db/NewSQL/TiDB",id:"study/db/NewSQL/TiDB",title:"TiDB",description:"\u80cc\u666f",source:"@site/docs/study/db/NewSQL/TiDB.md",sourceDirName:"study/db/NewSQL",slug:"/study/db/NewSQL/TiDB",permalink:"/docs/study/db/NewSQL/TiDB",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u7efc\u5408",permalink:"/docs/study/db/\u7efc\u5408"},next:{title:"Cassandra",permalink:"/docs/study/db/NoSQL/Cassandra"}},p={},c=[{value:"\u80cc\u666f",id:"\u80cc\u666f",level:3},{value:"\u66ff\u6362 MySQL Sharding(\u5206\u7247) \u4f5c\u4e3a\u4e3b\u751f\u4ea7\u6570\u636e\u5e93",id:"\u66ff\u6362-mysql-sharding\u5206\u7247-\u4f5c\u4e3a\u4e3b\u751f\u4ea7\u6570\u636e\u5e93",level:4},{value:"\u66ff\u6362 HBase/C*/ES \u7b49 NoSQL \u6570\u636e\u5e93",id:"\u66ff\u6362-hbaseces-\u7b49-nosql-\u6570\u636e\u5e93",level:4},{value:"\u4f7f\u7528 TiDB \u4f5c\u4e3a HTAP \u6570\u636e\u5e93\uff08\u5b9e\u65f6\u4e8b\u52a1+\u5b9e\u65f6\u5206\u6790\uff09",id:"\u4f7f\u7528-tidb-\u4f5c\u4e3a-htap-\u6570\u636e\u5e93\u5b9e\u65f6\u4e8b\u52a1\u5b9e\u65f6\u5206\u6790",level:4},{value:"\u7b80\u4ecb",id:"\u7b80\u4ecb",level:3},{value:"\u76ee\u524d\u72b6\u51b5(V3.0)",id:"\u76ee\u524d\u72b6\u51b5v30",level:3}],y={toc:c},u="wrapper";function s(e){let{components:t,...n}=e;return(0,i.yg)(u,(0,r.A)({},y,n,{components:t,mdxType:"MDXLayout"}),(0,i.yg)("h3",{id:"\u80cc\u666f"},"\u80cc\u666f"),(0,i.yg)("h4",{id:"\u66ff\u6362-mysql-sharding\u5206\u7247-\u4f5c\u4e3a\u4e3b\u751f\u4ea7\u6570\u636e\u5e93"},"\u66ff\u6362 MySQL Sharding(\u5206\u7247) \u4f5c\u4e3a\u4e3b\u751f\u4ea7\u6570\u636e\u5e93"),(0,i.yg)("p",null,"\u8fd9\u4e2a\u573a\u666f\u5176\u5b9e\u662f TiDB \u8bbe\u8ba1\u7684\u521d\u8877\uff0c\u5728\u5355\u673a MySQL \u6570\u636e\u91cf\u592a\u5927\u540e\uff0c\u8fc7\u53bb\u80fd\u9009\u7684\u57fa\u672c\u5c31\u662f\u5206\u5e93\u5206\u8868\uff0c\u518d\u5206\u4e0d\u5f00\u7684\u8bdd\u5c31\u53ea\u80fd Sharding\uff0c\u4f46\u662f\u5206\u5e93\u5206\u8868\u3001Sharding\uff0c\u5176\u5b9e\u4e0d\u7ba1\u662f\u7ef4\u62a4\u6210\u672c\u548c\u5f00\u53d1\u6539\u9020\u6210\u672c\u90fd\u5f88\u9ad8\uff0c\u6240\u4ee5 TiDB \u7ed9\u8fd9\u4e9b\u7528\u6237\u63d0\u4f9b\u4e86\u4e00\u4e2a\u53ef\u4ee5\u5f39\u6027\u6269\u5c55\u7684\uff0c\u7528\u8d77\u6765\u5c31\u50cf\u5355\u673a MySQL \u4e00\u6837\u7684\uff0c\u652f\u6301\u4e8b\u52a1\u548c\u590d\u6742\u67e5\u8be2\u7684\u5206\u5e03\u5f0f\u6570\u636e\u5e93\uff0c\u540c\u65f6\u8fd8\u652f\u6301\u591a\u526f\u672c\u81ea\u52a8\u7684\u9ad8\u53ef\u7528\uff0c\u5f53\u7136\u5f88\u723d\u3002"),(0,i.yg)("p",null,"\u8fd9\u90e8\u5206\u7528\u6237\u4e00\u822c\u4e00\u5f00\u59cb\u4e0a\u7ebf\u524d\u90fd\u4f1a\u7528 TiDB \u7684 ",(0,i.yg)("a",{parentName:"p",href:"https://link.zhihu.com/?target=https%3A//github.com/pingcap/docs-cn/blob/master/tools/syncer.md"},"Syncer"),"\uff0c \u5c06 TiDB \u96c6\u7fa4\u4f5c\u4e3a\u7ebf\u4e0a MySQL \u7684\u4ece\u5e93\uff0c\u5b9e\u65f6\u540c\u6b65\u7ebf\u4e0a\u7684 MySQL \u4e3b\u5e93\uff0c\u89c2\u5bdf\u4e00\u6bb5\u65f6\u95f4\u7a33\u5b9a\u6027\u517c\u5bb9\u6027\u3001\u8fdb\u884c\u538b\u529b\u6d4b\u8bd5\u540e\uff0c\u76f4\u63a5\u5c06\u7ebf\u4e0a\u5e93\u6307\u5411 TiDB\uff0c\u4e0d\u7528\u4fee\u6539\u4e00\u884c\u4ee3\u7801\u3002"),(0,i.yg)("h4",{id:"\u66ff\u6362-hbaseces-\u7b49-nosql-\u6570\u636e\u5e93"},"\u66ff\u6362 HBase/C*/ES \u7b49 NoSQL \u6570\u636e\u5e93"),(0,i.yg)("p",null,"\u8fd9\u7c7b\u7528\u6237\u4e3b\u8981\u662f\u8fc7\u53bb\u7528\u7740 NoSQL\uff0c\u5e0c\u671b\u5728\u62e5\u6709\u5f39\u6027\u4f38\u7f29\u80fd\u529b\uff0c\u53ef\u4ee5\u7ebf\u6027\u6269\u5c55\u7684\u5b9e\u65f6\u5e76\u53d1\u5199\u5165\u80fd\u529b\uff0c\u518d\u80fd\u62e5\u6709\u66f4\u5f3a\u5927\u7684\u67e5\u8be2\u80fd\u529b\uff0c\u6bd4\u5982\u4e8c\u7ea7\u7d22\u5f15\u70b9\u67e5\uff0c\u6bd4\u5982\u590d\u6742\u7684 Join \u652f\u6301\u3002\u5178\u578b\u7684\u5e94\u7528\u573a\u666f\u662f\u5ba2\u670d\u67e5\u8be2\uff0cUser profile \u7cfb\u7edf\u7b49\u7b49\u3002\n\u901a\u5e38\u8fd9\u7c7b\u7528\u6237\u7684\u6570\u636e\u91cf\u5de8\u5927\uff0c\u53ef\u80fd\u5355\u5e93\u90fd\u6709\u4e0a\u767e T\uff0cTiDB \u80fd\u5f88\u597d\u7684\u6ee1\u8db3\uff1a"),(0,i.yg)("ol",null,(0,i.yg)("li",{parentName:"ol"},"\u5927\u6d77\u635e\u9488\u5f0f\u7684\u7cbe\u51c6\u67e5\u8be2"),(0,i.yg)("li",{parentName:"ol"},"Ad-hoc \u5206\u6790")),(0,i.yg)("p",null,"\u8fd9\u4e00\u5207\u90fd\u662f\u5728\u4e0d\u727a\u7272\u5b9e\u65f6\u5199\u5165\u80fd\u529b\u7684\u540c\u65f6\u62e5\u6709\u7684\u3002"),(0,i.yg)("h4",{id:"\u4f7f\u7528-tidb-\u4f5c\u4e3a-htap-\u6570\u636e\u5e93\u5b9e\u65f6\u4e8b\u52a1\u5b9e\u65f6\u5206\u6790"},"\u4f7f\u7528 TiDB \u4f5c\u4e3a HTAP \u6570\u636e\u5e93\uff08\u5b9e\u65f6\u4e8b\u52a1+\u5b9e\u65f6\u5206\u6790\uff09"),(0,i.yg)("p",null,"\u8fd9\u7c7b\u7528\u6237\u662f\u5728\u521a\u5f00\u59cb\u505a TiDB \u7684\u65f6\u5019\u5b8c\u5168\u6ca1\u60f3\u5230\u7684\uff0c\u968f\u7740 TiDB \u7684 SQL \u80fd\u529b\u8d8a\u6765\u8d8a\u5f3a\uff0c\u5e76\u4e14\u968f\u7740 TiDB \u7684\u5b50\u9879\u76ee TiSpark \u7684\u53d1\u5e03\uff0c\u8ba9\u7528\u6237\u5728\u62e5\u6709\u5173\u7cfb\u6570\u636e\u5e93\u7684\u4e8b\u52a1\u5199\u5165\u80fd\u529b\u540c\u65f6\u53ef\u4ee5\u5728\u540c\u4e00\u4efd\u6570\u636e\u4e0a\u8fdb\u884c\u590d\u6742\u7684\u5206\u6790\uff1b\u8fd9\u7c7b\u7528\u6237\u4e00\u822c\u7528 Syncer \u5c06\u6240\u6709\u7ebf\u4e0a\u751f\u4ea7\u6570\u636e\u5e93\u540c\u6b65\u5230\u4e00\u4e2a\u5927\u7684 TiDB \u96c6\u7fa4\u4e0a\uff08Syncer \u652f\u6301\u591a\u6e90\u540c\u6b65\uff0c\u5408\u5e76\u5206\u5e93\u5206\u8868\u7b49\u529f\u80fd\uff09\uff0c\u7136\u540e\u76f4\u63a5\u5728\u8fd9\u4e2a TiDB Cluster \u4e0a\u901a\u8fc7 TiDB \u6216\u8005 TiSpark \u8fdb\u884c\u5206\u6790\u3002"),(0,i.yg)("h3",{id:"\u7b80\u4ecb"},"\u7b80\u4ecb"),(0,i.yg)("p",null,"TiDB \u662f PingCAP \u516c\u53f8\u8bbe\u8ba1\u7684\u5f00\u6e90\u5206\u5e03\u5f0f HTAP (Hybrid Transactional and Analytical Processing) \u6570\u636e\u5e93\uff0c\u7ed3\u5408\u4e86\u4f20\u7edf\u7684 RDBMS \u548c NoSQL \u7684\u6700\u4f73\u7279\u6027\u3002TiDB \u517c\u5bb9 MySQL\uff0c\u652f\u6301\u65e0\u9650\u7684\u6c34\u5e73\u6269\u5c55\uff0c\u5177\u5907\u5f3a\u4e00\u81f4\u6027\u548c\u9ad8\u53ef\u7528\u6027\u3002TiDB \u7684\u76ee\u6807\u662f\u4e3a OLTP (Online Transactional Processing) \u548c OLAP (Online Analytical Processing) \u573a\u666f\u63d0\u4f9b\u4e00\u7ad9\u5f0f\u7684\u89e3\u51b3\u65b9\u6848\u3002"),(0,i.yg)("p",null,"TiDB \u5177\u5907\u5982\u4e0b\u7279\u6027\uff1a"),(0,i.yg)("ul",null,(0,i.yg)("li",{parentName:"ul"},"\u9ad8\u5ea6\u517c\u5bb9 MySQL\n\u5927\u591a\u6570\u60c5\u51b5\u4e0b\uff0c\u65e0\u9700\u4fee\u6539\u4ee3\u7801\u5373\u53ef\u4ece MySQL \u8f7b\u677e\u8fc1\u79fb\u81f3 TiDB\uff0c\u5206\u5e93\u5206\u8868\u540e\u7684 MySQL \u96c6\u7fa4\u4ea6\u53ef\u901a\u8fc7 TiDB \u5de5\u5177\u8fdb\u884c\u5b9e\u65f6\u8fc1\u79fb\u3002"),(0,i.yg)("li",{parentName:"ul"},"\u6c34\u5e73\u5f39\u6027\u6269\u5c55\n\u901a\u8fc7\u7b80\u5355\u5730\u589e\u52a0\u65b0\u8282\u70b9\u5373\u53ef\u5b9e\u73b0 TiDB \u7684\u6c34\u5e73\u6269\u5c55\uff0c\u6309\u9700\u6269\u5c55\u541e\u5410\u6216\u5b58\u50a8\uff0c\u8f7b\u677e\u5e94\u5bf9\u9ad8\u5e76\u53d1\u3001\u6d77\u91cf\u6570\u636e\u573a\u666f\u3002"),(0,i.yg)("li",{parentName:"ul"},"\u5206\u5e03\u5f0f\u4e8b\u52a1\nTiDB 100% \u652f\u6301\u6807\u51c6\u7684 ACID \u4e8b\u52a1\u3002"),(0,i.yg)("li",{parentName:"ul"},"\u771f\u6b63\u91d1\u878d\u7ea7\u9ad8\u53ef\u7528\n\u76f8\u6bd4\u4e8e\u4f20\u7edf\u4e3b\u4ece (M-S) \u590d\u5236\u65b9\u6848\uff0c\u57fa\u4e8e Raft \u7684\u591a\u6570\u6d3e\u9009\u4e3e\u534f\u8bae\u53ef\u4ee5\u63d0\u4f9b\u91d1\u878d\u7ea7\u7684 100% \u6570\u636e\u5f3a\u4e00\u81f4\u6027\u4fdd\u8bc1\uff0c\u4e14\u5728\u4e0d\u4e22\u5931\u5927\u591a\u6570\u526f\u672c\u7684\u524d\u63d0\u4e0b\uff0c\u53ef\u4ee5\u5b9e\u73b0\u6545\u969c\u7684\u81ea\u52a8\u6062\u590d (auto-failover)\uff0c\u65e0\u9700\u4eba\u5de5\u4ecb\u5165\u3002"),(0,i.yg)("li",{parentName:"ul"},"\u4e00\u7ad9\u5f0f HTAP \u89e3\u51b3\u65b9\u6848\nTiDB \u4f5c\u4e3a\u5178\u578b\u7684 OLTP \u884c\u5b58\u6570\u636e\u5e93\uff0c\u540c\u65f6\u517c\u5177\u5f3a\u5927\u7684 OLAP \u6027\u80fd\uff0c\u914d\u5408 TiSpark\uff0c\u53ef\u63d0\u4f9b\u4e00\u7ad9\u5f0f HTAP \u89e3\u51b3\u65b9\u6848\uff0c\u4e00\u4efd\u5b58\u50a8\u540c\u65f6\u5904\u7406 OLTP & OLAP\uff0c\u65e0\u9700\u4f20\u7edf\u7e41\u7410\u7684 ETL \u8fc7\u7a0b\u3002"),(0,i.yg)("li",{parentName:"ul"},"\u4e91\u539f\u751f SQL \u6570\u636e\u5e93\nTiDB \u662f\u4e3a\u4e91\u800c\u8bbe\u8ba1\u7684\u6570\u636e\u5e93\uff0c\u652f\u6301\u516c\u6709\u4e91\u3001\u79c1\u6709\u4e91\u548c\u6df7\u5408\u4e91\uff0c\u4f7f\u90e8\u7f72\u3001\u914d\u7f6e\u548c\u7ef4\u62a4\u53d8\u5f97\u5341\u5206\u7b80\u5355\u3002")),(0,i.yg)("p",null,"TiDB \u7684\u8bbe\u8ba1\u76ee\u6807\u662f 100% \u7684 OLTP \u573a\u666f\u548c 80% \u7684 OLAP \u573a\u666f\uff0c\u66f4\u590d\u6742\u7684 OLAP \u5206\u6790\u53ef\u4ee5\u901a\u8fc7 TiSpark \u9879\u76ee\u6765\u5b8c\u6210\u3002"),(0,i.yg)("p",null,"TiDB \u5bf9\u4e1a\u52a1\u6ca1\u6709\u4efb\u4f55\u4fb5\u5165\u6027\uff0c\u80fd\u4f18\u96c5\u7684\u66ff\u6362\u4f20\u7edf\u7684\u6570\u636e\u5e93\u4e2d\u95f4\u4ef6\u3001\u6570\u636e\u5e93\u5206\u5e93\u5206\u8868\u7b49 Sharding \u65b9\u6848\u3002\u540c\u65f6\u5b83\u4e5f\u8ba9\u5f00\u53d1\u8fd0\u7ef4\u4eba\u5458\u4e0d\u7528\u5173\u6ce8\u6570\u636e\u5e93 Scale \u7684\u7ec6\u8282\u95ee\u9898\uff0c\u4e13\u6ce8\u4e8e\u4e1a\u52a1\u5f00\u53d1\uff0c\u6781\u5927\u7684\u63d0\u5347\u7814\u53d1\u7684\u751f\u4ea7\u529b\u3002"),(0,i.yg)("p",null,"\u4e09\u7bc7\u6587\u7ae0\u4e86\u89e3 TiDB \u6280\u672f\u5185\u5e55\uff1a"),(0,i.yg)("ul",null,(0,i.yg)("li",{parentName:"ul"},(0,i.yg)("a",{parentName:"li",href:"https://pingcap.com/blog-cn/tidb-internal-1/"},"\u8bf4\u5b58\u50a8")),(0,i.yg)("li",{parentName:"ul"},(0,i.yg)("a",{parentName:"li",href:"https://pingcap.com/blog-cn/tidb-internal-2/"},"\u8bf4\u8ba1\u7b97")),(0,i.yg)("li",{parentName:"ul"},(0,i.yg)("a",{parentName:"li",href:"https://pingcap.com/blog-cn/tidb-internal-3/"},"\u8c08\u8c03\u5ea6"))),(0,i.yg)("h3",{id:"\u76ee\u524d\u72b6\u51b5v30"},"\u76ee\u524d\u72b6\u51b5(V3.0)"),(0,i.yg)("p",null,"TiDB \u76ee\u524d\u8fd8\u4e0d\u652f\u6301\u89e6\u53d1\u5668\u3001\u5b58\u50a8\u8fc7\u7a0b\u3001\u81ea\u5b9a\u4e49\u51fd\u6570\u3001\u5916\u952e\uff0c\u9664\u6b64\u4e4b\u5916\uff0cTiDB \u652f\u6301\u7edd\u5927\u90e8\u5206 MySQL 5.7 \u7684\u8bed\u6cd5\u3002"))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/cadc4043.23bdc47b.js b/assets/js/cadc4043.81c184c7.js similarity index 99% rename from assets/js/cadc4043.23bdc47b.js rename to assets/js/cadc4043.81c184c7.js index 5b36887a0..aac4b12c9 100644 --- a/assets/js/cadc4043.23bdc47b.js +++ b/assets/js/cadc4043.81c184c7.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8399],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>g});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function u(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var i=n.createContext({}),s=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):u(u({},t),e)),r},p=function(e){var t=s(e.components);return n.createElement(i.Provider,{value:t},e.children)},c="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,l=e.originalType,i=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),c=s(r),y=a,g=c["".concat(i,".").concat(y)]||c[y]||d[y]||l;return r?n.createElement(g,u(u({ref:t},p),{},{components:r})):n.createElement(g,u({ref:t},p))}));function g(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=r.length,u=new Array(l);u[0]=y;var o={};for(var i in t)hasOwnProperty.call(t,i)&&(o[i]=t[i]);o.originalType=e,o[c]="string"==typeof e?e:a,u[1]=o;for(var s=2;s{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>u,default:()=>d,frontMatter:()=>l,metadata:()=>o,toc:()=>s});var n=r(8168),a=(r(6540),r(5680));const l={},u="Rust",o={unversionedId:"study/program/Rust/index",id:"study/program/Rust/index",title:"Rust",description:"\u4e00\u95e8\u8d4b\u4e88\u6bcf\u4e2a\u4eba\u6784\u5efa\u53ef\u9760\u4e14\u9ad8\u6548\u8f6f\u4ef6\u80fd\u529b\u7684\u8bed\u8a00\u3002",source:"@site/docs/study/program/Rust/index.md",sourceDirName:"study/program/Rust",slug:"/study/program/Rust/",permalink:"/docs/study/program/Rust/",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"index",permalink:"/docs/study/program/Lua/"},next:{title:"\u6280\u672f\u6587\u6863",permalink:"/docs/study/program/\u6280\u672f\u6587\u6863"}},i={},s=[{value:"\u4e3a\u4ec0\u4e48\u9009\u62e9 Rust",id:"\u4e3a\u4ec0\u4e48\u9009\u62e9-rust",level:3},{value:"\u9ad8\u6027\u80fd",id:"\u9ad8\u6027\u80fd",level:4},{value:"\u53ef\u9760\u6027",id:"\u53ef\u9760\u6027",level:4},{value:"\u751f\u4ea7\u529b",id:"\u751f\u4ea7\u529b",level:4},{value:"\u5185\u5b58\u7ba1\u7406",id:"\u5185\u5b58\u7ba1\u7406",level:3},{value:"\u6807\u51c6\u5e93",id:"\u6807\u51c6\u5e93",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],p={toc:s},c="wrapper";function d(e){let{components:t,...r}=e;return(0,a.yg)(c,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"rust"},"Rust"),(0,a.yg)("p",null,"\u4e00\u95e8\u8d4b\u4e88\u6bcf\u4e2a\u4eba\u6784\u5efa\u53ef\u9760\u4e14\u9ad8\u6548\u8f6f\u4ef6\u80fd\u529b\u7684\u8bed\u8a00\u3002"),(0,a.yg)("p",null,"\u521b\u5efa\u8fd9\u4e2a\u65b0\u8bed\u8a00\u7684\u76ee\u7684\u662f\u4e3a\u4e86\u89e3\u51b3\u4e00\u4e2a\u987d\u75be\uff1a\u8f6f\u4ef6\u7684\u6f14\u8fdb\u901f\u5ea6\u5927\u5927\u4f4e\u4e8e\u786c\u4ef6\u7684\u6f14\u8fdb\uff0c\u8f6f\u4ef6\u5728\u8bed\u8a00\u7ea7\u522b\u4e0a\u65e0\u6cd5\u771f\u6b63\u5229\u7528\u591a\u6838\u8ba1\u7b97\u5e26\u6765\u7684\u6027\u80fd\u63d0\u5347\u3002Rust \u662f\u9488\u5bf9\u591a\u6838\u4f53\u7cfb\u63d0\u51fa\u7684\u8bed\u8a00\uff0c\u5e76\u4e14\u5438\u6536\u4e00\u4e9b\u5176\u4ed6\u52a8\u6001\u8bed\u8a00\u7684\u91cd\u8981\u7279\u6027\uff0c\u6bd4\u5982\u4e0d\u9700\u8981\u7ba1\u7406\u5185\u5b58\uff0c\u6bd4\u5982\u4e0d\u4f1a\u51fa\u73b0 Null \u6307\u9488\u7b49\u7b49\u3002"),(0,a.yg)("p",null,"Rust \u81f4\u529b\u4e8e\u6210\u4e3a\u4f18\u96c5\u89e3\u51b3\u9ad8\u5e76\u53d1\u548c\u9ad8\u5b89\u5168\u6027\u7cfb\u7edf\u95ee\u9898\u7684\u7f16\u7a0b\u8bed\u8a00 \uff0c\u9002\u7528\u4e8e\u5927\u578b\u573a\u666f\uff0c\u5373\u521b\u9020\u7ef4\u62a4\u80fd\u591f\u4fdd\u6301\u5927\u578b\u7cfb\u7edf\u5b8c\u6574\u7684\u8fb9\u754c\u3002\u8fd9\u5c31\u5bfc\u81f4\u4e86\u5b83\u5f3a\u8c03\u5b89\u5168\uff0c\u5185\u5b58\u5e03\u5c40\u63a7\u5236\u548c\u5e76\u53d1\u7684\u7279\u70b9\u3002\u6807\u51c6 Rust \u6027\u80fd\u4e0e\u6807\u51c6 C++\u6027\u80fd\u4e0d\u76f8\u4e0a\u4e0b\u3002"),(0,a.yg)("p",null,"\u636e\u8bf4\uff0c\u6b64\u7f16\u7a0b\u8bed\u8a00\uff0c\u5165\u95e8\u8f83\u96be\uff0c\u6666\u6da9\u96be\u61c2\u3002"),(0,a.yg)("h3",{id:"\u4e3a\u4ec0\u4e48\u9009\u62e9-rust"},"\u4e3a\u4ec0\u4e48\u9009\u62e9 Rust"),(0,a.yg)("h4",{id:"\u9ad8\u6027\u80fd"},"\u9ad8\u6027\u80fd"),(0,a.yg)("p",null,"Rust \u901f\u5ea6\u60ca\u4eba\u4e14\u5185\u5b58\u5229\u7528\u7387\u6781\u9ad8\u3002\u7531\u4e8e\u6ca1\u6709\u8fd0\u884c\u65f6\u548c\u5783\u573e\u56de\u6536\uff0c\u5b83\u80fd\u591f\u80dc\u4efb\u5bf9\u6027\u80fd\u8981\u6c42\u7279\u522b\u9ad8\u7684\u670d\u52a1\uff0c\u53ef\u4ee5\u5728\u5d4c\u5165\u5f0f\u8bbe\u5907\u4e0a\u8fd0\u884c\uff0c\u8fd8\u80fd\u8f7b\u677e\u548c\u5176\u4ed6\u8bed\u8a00\u96c6\u6210\u3002"),(0,a.yg)("h4",{id:"\u53ef\u9760\u6027"},"\u53ef\u9760\u6027"),(0,a.yg)("p",null,"Rust \u4e30\u5bcc\u7684\u7c7b\u578b\u7cfb\u7edf\u548c\u6240\u6709\u6743\u6a21\u578b\u4fdd\u8bc1\u4e86\u5185\u5b58\u5b89\u5168\u548c\u7ebf\u7a0b\u5b89\u5168\uff0c\u8ba9\u60a8\u5728\u7f16\u8bd1\u671f\u5c31\u80fd\u591f\u6d88\u9664\u5404\u79cd\u5404\u6837\u7684\u9519\u8bef\u3002"),(0,a.yg)("h4",{id:"\u751f\u4ea7\u529b"},"\u751f\u4ea7\u529b"),(0,a.yg)("p",null,"Rust \u62e5\u6709\u51fa\u8272\u7684\u6587\u6863\u3001\u53cb\u597d\u7684\u7f16\u8bd1\u5668\u548c\u6e05\u6670\u7684\u9519\u8bef\u63d0\u793a\u4fe1\u606f\uff0c \u8fd8\u96c6\u6210\u4e86\u4e00\u6d41\u7684\u5de5\u5177\u2014\u2014\u5305\u7ba1\u7406\u5668\u548c\u6784\u5efa\u5de5\u5177\uff0c \u667a\u80fd\u5730\u81ea\u52a8\u8865\u5168\u548c\u7c7b\u578b\u68c0\u9a8c\u7684\u591a\u7f16\u8f91\u5668\u652f\u6301\uff0c \u4ee5\u53ca\u81ea\u52a8\u683c\u5f0f\u5316\u4ee3\u7801\u7b49\u7b49\u3002"),(0,a.yg)("h3",{id:"\u5185\u5b58\u7ba1\u7406"},"\u5185\u5b58\u7ba1\u7406"),(0,a.yg)("p",null,"Rust \u4e0d\u50cf Go,Java \u4ee5\u53ca.NET Framework \u90a3\u6837\u4f7f\u7528\u81ea\u52a8\u5783\u573e\u56de\u6536\u7cfb\u7edf\u3002\u4e0d\u540c\u7684\u662f Rust \u901a\u8fc7 RAII \u6765\u7ba1\u7406\u5185\u5b58\u548c\u8d44\u6e90\uff0c\u8fd8\u53ef\u9009\u5f15\u7528\u8ba1\u6570\u3002Rust \u4ee5\u4f4e\u5f00\u9500\u63d0\u4f9b\u8d44\u6e90\u786e\u5b9a\u6027\u7ba1\u7406\u3002Rust \u4e5f\u652f\u6301\u503c\u7684\u6808\u5206\u914d\u5e76\u4e0d\u8868\u73b0\u6697\u7bb1\u3002"),(0,a.yg)("h3",{id:"\u6807\u51c6\u5e93"},"\u6807\u51c6\u5e93"),(0,a.yg)("p",null,(0,a.yg)("a",{parentName:"p",href:"https://doc.rust-lang.org/std/index.html"},"https://doc.rust-lang.org/std/index.html")),(0,a.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://www.rust-lang.org/zh-CN"},"\u5b98\u65b9\u7f51\u7ad9")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://baike.baidu.com/item/Rust%E8%AF%AD%E8%A8%80/9502634"},"\u767e\u5ea6\u767e\u79d1-Rust \u8bed\u8a00")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://kaisery.github.io/trpl-zh-cn/title-page.html"},"Rust \u7a0b\u5e8f\u8bbe\u8ba1\u9884\u7814 \u7b80\u4f53\u4e2d\u6587\u7248 \u975e\u5b98\u65b9")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://rust-book.junmajinlong.com/"},"\u9a8f\u9a6c\u91d1\u9f99-Rust \u7684\u5165\u95e8\u4e66\u7c4d"))))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8399],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>g});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function u(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var i=n.createContext({}),s=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):u(u({},t),e)),r},p=function(e){var t=s(e.components);return n.createElement(i.Provider,{value:t},e.children)},c="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,l=e.originalType,i=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),c=s(r),y=a,g=c["".concat(i,".").concat(y)]||c[y]||d[y]||l;return r?n.createElement(g,u(u({ref:t},p),{},{components:r})):n.createElement(g,u({ref:t},p))}));function g(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=r.length,u=new Array(l);u[0]=y;var o={};for(var i in t)hasOwnProperty.call(t,i)&&(o[i]=t[i]);o.originalType=e,o[c]="string"==typeof e?e:a,u[1]=o;for(var s=2;s{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>u,default:()=>d,frontMatter:()=>l,metadata:()=>o,toc:()=>s});var n=r(8168),a=(r(6540),r(5680));const l={},u="Rust",o={unversionedId:"study/program/Rust/index",id:"study/program/Rust/index",title:"Rust",description:"\u4e00\u95e8\u8d4b\u4e88\u6bcf\u4e2a\u4eba\u6784\u5efa\u53ef\u9760\u4e14\u9ad8\u6548\u8f6f\u4ef6\u80fd\u529b\u7684\u8bed\u8a00\u3002",source:"@site/docs/study/program/Rust/index.md",sourceDirName:"study/program/Rust",slug:"/study/program/Rust/",permalink:"/docs/study/program/Rust/",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"index",permalink:"/docs/study/program/Lua/"},next:{title:"\u6280\u672f\u6587\u6863",permalink:"/docs/study/program/\u6280\u672f\u6587\u6863"}},i={},s=[{value:"\u4e3a\u4ec0\u4e48\u9009\u62e9 Rust",id:"\u4e3a\u4ec0\u4e48\u9009\u62e9-rust",level:3},{value:"\u9ad8\u6027\u80fd",id:"\u9ad8\u6027\u80fd",level:4},{value:"\u53ef\u9760\u6027",id:"\u53ef\u9760\u6027",level:4},{value:"\u751f\u4ea7\u529b",id:"\u751f\u4ea7\u529b",level:4},{value:"\u5185\u5b58\u7ba1\u7406",id:"\u5185\u5b58\u7ba1\u7406",level:3},{value:"\u6807\u51c6\u5e93",id:"\u6807\u51c6\u5e93",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],p={toc:s},c="wrapper";function d(e){let{components:t,...r}=e;return(0,a.yg)(c,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"rust"},"Rust"),(0,a.yg)("p",null,"\u4e00\u95e8\u8d4b\u4e88\u6bcf\u4e2a\u4eba\u6784\u5efa\u53ef\u9760\u4e14\u9ad8\u6548\u8f6f\u4ef6\u80fd\u529b\u7684\u8bed\u8a00\u3002"),(0,a.yg)("p",null,"\u521b\u5efa\u8fd9\u4e2a\u65b0\u8bed\u8a00\u7684\u76ee\u7684\u662f\u4e3a\u4e86\u89e3\u51b3\u4e00\u4e2a\u987d\u75be\uff1a\u8f6f\u4ef6\u7684\u6f14\u8fdb\u901f\u5ea6\u5927\u5927\u4f4e\u4e8e\u786c\u4ef6\u7684\u6f14\u8fdb\uff0c\u8f6f\u4ef6\u5728\u8bed\u8a00\u7ea7\u522b\u4e0a\u65e0\u6cd5\u771f\u6b63\u5229\u7528\u591a\u6838\u8ba1\u7b97\u5e26\u6765\u7684\u6027\u80fd\u63d0\u5347\u3002Rust \u662f\u9488\u5bf9\u591a\u6838\u4f53\u7cfb\u63d0\u51fa\u7684\u8bed\u8a00\uff0c\u5e76\u4e14\u5438\u6536\u4e00\u4e9b\u5176\u4ed6\u52a8\u6001\u8bed\u8a00\u7684\u91cd\u8981\u7279\u6027\uff0c\u6bd4\u5982\u4e0d\u9700\u8981\u7ba1\u7406\u5185\u5b58\uff0c\u6bd4\u5982\u4e0d\u4f1a\u51fa\u73b0 Null \u6307\u9488\u7b49\u7b49\u3002"),(0,a.yg)("p",null,"Rust \u81f4\u529b\u4e8e\u6210\u4e3a\u4f18\u96c5\u89e3\u51b3\u9ad8\u5e76\u53d1\u548c\u9ad8\u5b89\u5168\u6027\u7cfb\u7edf\u95ee\u9898\u7684\u7f16\u7a0b\u8bed\u8a00 \uff0c\u9002\u7528\u4e8e\u5927\u578b\u573a\u666f\uff0c\u5373\u521b\u9020\u7ef4\u62a4\u80fd\u591f\u4fdd\u6301\u5927\u578b\u7cfb\u7edf\u5b8c\u6574\u7684\u8fb9\u754c\u3002\u8fd9\u5c31\u5bfc\u81f4\u4e86\u5b83\u5f3a\u8c03\u5b89\u5168\uff0c\u5185\u5b58\u5e03\u5c40\u63a7\u5236\u548c\u5e76\u53d1\u7684\u7279\u70b9\u3002\u6807\u51c6 Rust \u6027\u80fd\u4e0e\u6807\u51c6 C++\u6027\u80fd\u4e0d\u76f8\u4e0a\u4e0b\u3002"),(0,a.yg)("p",null,"\u636e\u8bf4\uff0c\u6b64\u7f16\u7a0b\u8bed\u8a00\uff0c\u5165\u95e8\u8f83\u96be\uff0c\u6666\u6da9\u96be\u61c2\u3002"),(0,a.yg)("h3",{id:"\u4e3a\u4ec0\u4e48\u9009\u62e9-rust"},"\u4e3a\u4ec0\u4e48\u9009\u62e9 Rust"),(0,a.yg)("h4",{id:"\u9ad8\u6027\u80fd"},"\u9ad8\u6027\u80fd"),(0,a.yg)("p",null,"Rust \u901f\u5ea6\u60ca\u4eba\u4e14\u5185\u5b58\u5229\u7528\u7387\u6781\u9ad8\u3002\u7531\u4e8e\u6ca1\u6709\u8fd0\u884c\u65f6\u548c\u5783\u573e\u56de\u6536\uff0c\u5b83\u80fd\u591f\u80dc\u4efb\u5bf9\u6027\u80fd\u8981\u6c42\u7279\u522b\u9ad8\u7684\u670d\u52a1\uff0c\u53ef\u4ee5\u5728\u5d4c\u5165\u5f0f\u8bbe\u5907\u4e0a\u8fd0\u884c\uff0c\u8fd8\u80fd\u8f7b\u677e\u548c\u5176\u4ed6\u8bed\u8a00\u96c6\u6210\u3002"),(0,a.yg)("h4",{id:"\u53ef\u9760\u6027"},"\u53ef\u9760\u6027"),(0,a.yg)("p",null,"Rust \u4e30\u5bcc\u7684\u7c7b\u578b\u7cfb\u7edf\u548c\u6240\u6709\u6743\u6a21\u578b\u4fdd\u8bc1\u4e86\u5185\u5b58\u5b89\u5168\u548c\u7ebf\u7a0b\u5b89\u5168\uff0c\u8ba9\u60a8\u5728\u7f16\u8bd1\u671f\u5c31\u80fd\u591f\u6d88\u9664\u5404\u79cd\u5404\u6837\u7684\u9519\u8bef\u3002"),(0,a.yg)("h4",{id:"\u751f\u4ea7\u529b"},"\u751f\u4ea7\u529b"),(0,a.yg)("p",null,"Rust \u62e5\u6709\u51fa\u8272\u7684\u6587\u6863\u3001\u53cb\u597d\u7684\u7f16\u8bd1\u5668\u548c\u6e05\u6670\u7684\u9519\u8bef\u63d0\u793a\u4fe1\u606f\uff0c \u8fd8\u96c6\u6210\u4e86\u4e00\u6d41\u7684\u5de5\u5177\u2014\u2014\u5305\u7ba1\u7406\u5668\u548c\u6784\u5efa\u5de5\u5177\uff0c \u667a\u80fd\u5730\u81ea\u52a8\u8865\u5168\u548c\u7c7b\u578b\u68c0\u9a8c\u7684\u591a\u7f16\u8f91\u5668\u652f\u6301\uff0c \u4ee5\u53ca\u81ea\u52a8\u683c\u5f0f\u5316\u4ee3\u7801\u7b49\u7b49\u3002"),(0,a.yg)("h3",{id:"\u5185\u5b58\u7ba1\u7406"},"\u5185\u5b58\u7ba1\u7406"),(0,a.yg)("p",null,"Rust \u4e0d\u50cf Go,Java \u4ee5\u53ca.NET Framework \u90a3\u6837\u4f7f\u7528\u81ea\u52a8\u5783\u573e\u56de\u6536\u7cfb\u7edf\u3002\u4e0d\u540c\u7684\u662f Rust \u901a\u8fc7 RAII \u6765\u7ba1\u7406\u5185\u5b58\u548c\u8d44\u6e90\uff0c\u8fd8\u53ef\u9009\u5f15\u7528\u8ba1\u6570\u3002Rust \u4ee5\u4f4e\u5f00\u9500\u63d0\u4f9b\u8d44\u6e90\u786e\u5b9a\u6027\u7ba1\u7406\u3002Rust \u4e5f\u652f\u6301\u503c\u7684\u6808\u5206\u914d\u5e76\u4e0d\u8868\u73b0\u6697\u7bb1\u3002"),(0,a.yg)("h3",{id:"\u6807\u51c6\u5e93"},"\u6807\u51c6\u5e93"),(0,a.yg)("p",null,(0,a.yg)("a",{parentName:"p",href:"https://doc.rust-lang.org/std/index.html"},"https://doc.rust-lang.org/std/index.html")),(0,a.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://www.rust-lang.org/zh-CN"},"\u5b98\u65b9\u7f51\u7ad9")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://baike.baidu.com/item/Rust%E8%AF%AD%E8%A8%80/9502634"},"\u767e\u5ea6\u767e\u79d1-Rust \u8bed\u8a00")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://kaisery.github.io/trpl-zh-cn/title-page.html"},"Rust \u7a0b\u5e8f\u8bbe\u8ba1\u9884\u7814 \u7b80\u4f53\u4e2d\u6587\u7248 \u975e\u5b98\u65b9")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://rust-book.junmajinlong.com/"},"\u9a8f\u9a6c\u91d1\u9f99-Rust \u7684\u5165\u95e8\u4e66\u7c4d"))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/cd56b708.e75fe779.js b/assets/js/cd56b708.6efc9777.js similarity index 98% rename from assets/js/cd56b708.e75fe779.js rename to assets/js/cd56b708.6efc9777.js index 6649a7823..d5f2a2d99 100644 --- a/assets/js/cd56b708.e75fe779.js +++ b/assets/js/cd56b708.6efc9777.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[590],{5680:(e,r,t)=>{t.d(r,{xA:()=>s,yg:()=>m});var n=t(6540);function o(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function a(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function l(e){for(var r=1;r=0||(o[t]=e[t]);return o}(e,r);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var i=n.createContext({}),c=function(e){var r=n.useContext(i),t=r;return e&&(t="function"==typeof e?e(r):l(l({},r),e)),t},s=function(e){var r=c(e.components);return n.createElement(i.Provider,{value:r},e.children)},u="mdxType",g={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},y=n.forwardRef((function(e,r){var t=e.components,o=e.mdxType,a=e.originalType,i=e.parentName,s=p(e,["components","mdxType","originalType","parentName"]),u=c(t),y=o,m=u["".concat(i,".").concat(y)]||u[y]||g[y]||a;return t?n.createElement(m,l(l({ref:r},s),{},{components:t})):n.createElement(m,l({ref:r},s))}));function m(e,r){var t=arguments,o=r&&r.mdxType;if("string"==typeof e||o){var a=t.length,l=new Array(a);l[0]=y;var p={};for(var i in r)hasOwnProperty.call(r,i)&&(p[i]=r[i]);p.originalType=e,p[u]="string"==typeof e?e:o,l[1]=p;for(var c=2;c{t.r(r),t.d(r,{assets:()=>i,contentTitle:()=>l,default:()=>g,frontMatter:()=>a,metadata:()=>p,toc:()=>c});var n=t(8168),o=(t(6540),t(5680));const a={},l=void 0,p={unversionedId:"study/program/Golang/Golang\u4f9d\u8d56\u5e93\u4ee3\u7406",id:"study/program/Golang/Golang\u4f9d\u8d56\u5e93\u4ee3\u7406",title:"Golang\u4f9d\u8d56\u5e93\u4ee3\u7406",description:"\u811a\u672c",source:"@site/docs/study/program/Golang/Golang\u4f9d\u8d56\u5e93\u4ee3\u7406.md",sourceDirName:"study/program/Golang",slug:"/study/program/Golang/Golang\u4f9d\u8d56\u5e93\u4ee3\u7406",permalink:"/docs/study/program/Golang/Golang\u4f9d\u8d56\u5e93\u4ee3\u7406",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Golang",permalink:"/docs/study/program/Golang/"},next:{title:"GC",permalink:"/docs/study/program/JAVA/GC"}},i={},c=[{value:"\u811a\u672c",id:"\u811a\u672c",level:3},{value:"\u5e38\u7528\u4ee3\u7406\u5730\u5740",id:"\u5e38\u7528\u4ee3\u7406\u5730\u5740",level:3}],s={toc:c},u="wrapper";function g(e){let{components:r,...t}=e;return(0,o.yg)(u,(0,n.A)({},s,t,{components:r,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"\u811a\u672c"},"\u811a\u672c"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-shell"},"go env -w GOPROXY=https://goproxy.cn\n")),(0,o.yg)("h3",{id:"\u5e38\u7528\u4ee3\u7406\u5730\u5740"},"\u5e38\u7528\u4ee3\u7406\u5730\u5740"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://goproxy.cn"},"https://goproxy.cn"),"\uff1a\u7531 Go \u793e\u533a\u63d0\u4f9b\u7684\u4e2d\u56fd\u5883\u5185\u7684\u4ee3\u7406\u670d\u52a1\u5668\uff0c\u652f\u6301 Go 1.13 \u53ca\u4ee5\u4e0a\u7248\u672c\u3002"),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://mirrors.aliyun.com/goproxy/"},"https://mirrors.aliyun.com/goproxy/"),"\uff1a\u963f\u91cc\u4e91\u63d0\u4f9b\u7684\u4ee3\u7406\u670d\u52a1\u5668\uff0c\u901f\u5ea6\u8f83\u5feb\uff0c\u652f\u6301 Go 1.13 \u53ca\u4ee5\u4e0a\u7248\u672c\u3002"),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://goproxy.io"},"https://goproxy.io"),"\uff1a\u7531 GOPROXY.IO \u63d0\u4f9b\u7684\u5168\u7403\u52a0\u901f\u7684\u4ee3\u7406\u670d\u52a1\u5668\uff0c\u652f\u6301 Go 1.13 \u53ca\u4ee5\u4e0a\u7248\u672c\u3002"),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://proxy.golang.org"},"https://proxy.golang.org"),"\uff1a\u7531 Google \u63d0\u4f9b\u7684\u5b98\u65b9\u4ee3\u7406\u670d\u52a1\u5668\uff0c\u652f\u6301 Go 1.11 \u53ca\u4ee5\u4e0a\u7248\u672c\u3002")))}g.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[590],{5680:(e,r,t)=>{t.d(r,{xA:()=>s,yg:()=>m});var n=t(6540);function o(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function a(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function l(e){for(var r=1;r=0||(o[t]=e[t]);return o}(e,r);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var i=n.createContext({}),c=function(e){var r=n.useContext(i),t=r;return e&&(t="function"==typeof e?e(r):l(l({},r),e)),t},s=function(e){var r=c(e.components);return n.createElement(i.Provider,{value:r},e.children)},u="mdxType",g={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},y=n.forwardRef((function(e,r){var t=e.components,o=e.mdxType,a=e.originalType,i=e.parentName,s=p(e,["components","mdxType","originalType","parentName"]),u=c(t),y=o,m=u["".concat(i,".").concat(y)]||u[y]||g[y]||a;return t?n.createElement(m,l(l({ref:r},s),{},{components:t})):n.createElement(m,l({ref:r},s))}));function m(e,r){var t=arguments,o=r&&r.mdxType;if("string"==typeof e||o){var a=t.length,l=new Array(a);l[0]=y;var p={};for(var i in r)hasOwnProperty.call(r,i)&&(p[i]=r[i]);p.originalType=e,p[u]="string"==typeof e?e:o,l[1]=p;for(var c=2;c{t.r(r),t.d(r,{assets:()=>i,contentTitle:()=>l,default:()=>g,frontMatter:()=>a,metadata:()=>p,toc:()=>c});var n=t(8168),o=(t(6540),t(5680));const a={},l=void 0,p={unversionedId:"study/program/Golang/Golang\u4f9d\u8d56\u5e93\u4ee3\u7406",id:"study/program/Golang/Golang\u4f9d\u8d56\u5e93\u4ee3\u7406",title:"Golang\u4f9d\u8d56\u5e93\u4ee3\u7406",description:"\u811a\u672c",source:"@site/docs/study/program/Golang/Golang\u4f9d\u8d56\u5e93\u4ee3\u7406.md",sourceDirName:"study/program/Golang",slug:"/study/program/Golang/Golang\u4f9d\u8d56\u5e93\u4ee3\u7406",permalink:"/docs/study/program/Golang/Golang\u4f9d\u8d56\u5e93\u4ee3\u7406",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Golang",permalink:"/docs/study/program/Golang/"},next:{title:"GC",permalink:"/docs/study/program/JAVA/GC"}},i={},c=[{value:"\u811a\u672c",id:"\u811a\u672c",level:3},{value:"\u5e38\u7528\u4ee3\u7406\u5730\u5740",id:"\u5e38\u7528\u4ee3\u7406\u5730\u5740",level:3}],s={toc:c},u="wrapper";function g(e){let{components:r,...t}=e;return(0,o.yg)(u,(0,n.A)({},s,t,{components:r,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"\u811a\u672c"},"\u811a\u672c"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-shell"},"go env -w GOPROXY=https://goproxy.cn\n")),(0,o.yg)("h3",{id:"\u5e38\u7528\u4ee3\u7406\u5730\u5740"},"\u5e38\u7528\u4ee3\u7406\u5730\u5740"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://goproxy.cn"},"https://goproxy.cn"),"\uff1a\u7531 Go \u793e\u533a\u63d0\u4f9b\u7684\u4e2d\u56fd\u5883\u5185\u7684\u4ee3\u7406\u670d\u52a1\u5668\uff0c\u652f\u6301 Go 1.13 \u53ca\u4ee5\u4e0a\u7248\u672c\u3002"),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://mirrors.aliyun.com/goproxy/"},"https://mirrors.aliyun.com/goproxy/"),"\uff1a\u963f\u91cc\u4e91\u63d0\u4f9b\u7684\u4ee3\u7406\u670d\u52a1\u5668\uff0c\u901f\u5ea6\u8f83\u5feb\uff0c\u652f\u6301 Go 1.13 \u53ca\u4ee5\u4e0a\u7248\u672c\u3002"),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://goproxy.io"},"https://goproxy.io"),"\uff1a\u7531 GOPROXY.IO \u63d0\u4f9b\u7684\u5168\u7403\u52a0\u901f\u7684\u4ee3\u7406\u670d\u52a1\u5668\uff0c\u652f\u6301 Go 1.13 \u53ca\u4ee5\u4e0a\u7248\u672c\u3002"),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://proxy.golang.org"},"https://proxy.golang.org"),"\uff1a\u7531 Google \u63d0\u4f9b\u7684\u5b98\u65b9\u4ee3\u7406\u670d\u52a1\u5668\uff0c\u652f\u6301 Go 1.11 \u53ca\u4ee5\u4e0a\u7248\u672c\u3002")))}g.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/ce0c2574.94f421ea.js b/assets/js/ce0c2574.91500f2f.js similarity index 98% rename from assets/js/ce0c2574.94f421ea.js rename to assets/js/ce0c2574.91500f2f.js index 2f4c3680a..815ad16ce 100644 --- a/assets/js/ce0c2574.94f421ea.js +++ b/assets/js/ce0c2574.91500f2f.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5074],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var p=n.createContext({}),l=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},u=function(e){var t=l(e.components);return n.createElement(p.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,p=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),s=l(r),y=o,f=s["".concat(p,".").concat(y)]||s[y]||d[y]||a;return r?n.createElement(f,c(c({ref:t},u),{},{components:r})):n.createElement(f,c({ref:t},u))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=y;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[s]="string"==typeof e?e:o,c[1]=i;for(var l=2;l{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>c,default:()=>d,frontMatter:()=>a,metadata:()=>i,toc:()=>l});var n=r(8168),o=(r(6540),r(5680));const a={},c=void 0,i={unversionedId:"study/program/CPP/CGI",id:"study/program/CPP/CGI",title:"CGI",description:"\u53c2\u8003",source:"@site/docs/study/program/CPP/CGI.md",sourceDirName:"study/program/CPP",slug:"/study/program/CPP/CGI",permalink:"/docs/study/program/CPP/CGI",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"C++",permalink:"/docs/study/program/CPP/"},next:{title:"C++\u8fdb\u7a0b\u95f4\u901a\u4fe1",permalink:"/docs/study/program/CPP/CPP\u8fdb\u7a0b\u95f4\u901a\u4fe1"}},p={},l=[{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],u={toc:l},s="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://blog.csdn.net/zhizhengguan/article/details/118519124"},"CSDN-C/C++\u7f16\u7a0b\uff1aCGI \u4e0e fastCGI"))))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5074],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var p=n.createContext({}),l=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},u=function(e){var t=l(e.components);return n.createElement(p.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,p=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),s=l(r),y=o,f=s["".concat(p,".").concat(y)]||s[y]||d[y]||a;return r?n.createElement(f,c(c({ref:t},u),{},{components:r})):n.createElement(f,c({ref:t},u))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=y;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[s]="string"==typeof e?e:o,c[1]=i;for(var l=2;l{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>c,default:()=>d,frontMatter:()=>a,metadata:()=>i,toc:()=>l});var n=r(8168),o=(r(6540),r(5680));const a={},c=void 0,i={unversionedId:"study/program/CPP/CGI",id:"study/program/CPP/CGI",title:"CGI",description:"\u53c2\u8003",source:"@site/docs/study/program/CPP/CGI.md",sourceDirName:"study/program/CPP",slug:"/study/program/CPP/CGI",permalink:"/docs/study/program/CPP/CGI",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"C++",permalink:"/docs/study/program/CPP/"},next:{title:"C++\u8fdb\u7a0b\u95f4\u901a\u4fe1",permalink:"/docs/study/program/CPP/CPP\u8fdb\u7a0b\u95f4\u901a\u4fe1"}},p={},l=[{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],u={toc:l},s="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://blog.csdn.net/zhizhengguan/article/details/118519124"},"CSDN-C/C++\u7f16\u7a0b\uff1aCGI \u4e0e fastCGI"))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/d188aee2.d995120d.js b/assets/js/d188aee2.26aa90e9.js similarity index 99% rename from assets/js/d188aee2.d995120d.js rename to assets/js/d188aee2.26aa90e9.js index fd5ed83a3..9402e0a9d 100644 --- a/assets/js/d188aee2.d995120d.js +++ b/assets/js/d188aee2.26aa90e9.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2709],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),l=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},u=function(e){var t=l(e.components);return n.createElement(s.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),p=l(r),y=o,f=p["".concat(s,".").concat(y)]||p[y]||d[y]||a;return r?n.createElement(f,c(c({ref:t},u),{},{components:r})):n.createElement(f,c({ref:t},u))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=y;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[p]="string"==typeof e?e:o,c[1]=i;for(var l=2;l{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>c,default:()=>d,frontMatter:()=>a,metadata:()=>i,toc:()=>l});var n=r(8168),o=(r(6540),r(5680));const a={},c=void 0,i={unversionedId:"study/think/\u6982\u5ff5\u6a21\u578b/Proactor",id:"study/think/\u6982\u5ff5\u6a21\u578b/Proactor",title:"Proactor",description:"Reactor \u662f\u975e\u963b\u585e\u540c\u6b65\u7f51\u7edc\u6a21\u578b\uff0c\u56e0\u4e3a\u771f\u6b63\u7684 read \u548c send \u64cd\u4f5c\u90fd\u9700\u8981\u7528\u6237\u8fdb\u7a0b\u540c\u6b65\u64cd\u4f5c\u3002\u8fd9\u91cc\u7684\u201c\u540c\u6b65\u201d\u6307\u7528\u6237\u8fdb\u7a0b\u5728\u6267\u884c read \u548c send \u8fd9\u7c7b I/O \u64cd\u4f5c\u7684\u65f6\u5019\u662f\u540c\u6b65\u7684\uff0c\u5982\u679c\u628a I/O \u64cd\u4f5c\u6539\u4e3a\u5f02\u6b65\u5c31\u80fd\u591f\u8fdb\u4e00\u6b65\u63d0\u5347\u6027\u80fd\uff0c\u8fd9\u5c31\u662f\u5f02\u6b65\u7f51\u7edc\u6a21\u578b Proactor\u3002",source:"@site/docs/study/think/\u6982\u5ff5\u6a21\u578b/Proactor.md",sourceDirName:"study/think/\u6982\u5ff5\u6a21\u578b",slug:"/study/think/\u6982\u5ff5\u6a21\u578b/Proactor",permalink:"/docs/study/think/\u6982\u5ff5\u6a21\u578b/Proactor",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Actor Model",permalink:"/docs/study/think/\u6982\u5ff5\u6a21\u578b/Actor Model"},next:{title:"Reactor\u6a21\u5f0f\u53cd\u5e94\u5806\u6a21\u5f0f",permalink:"/docs/study/think/\u6982\u5ff5\u6a21\u578b/Reactor\u6a21\u5f0f\u53cd\u5e94\u5806\u6a21\u5f0f"}},s={},l=[],u={toc:l},p="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(p,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("p",null,"Reactor \u662f\u975e\u963b\u585e\u540c\u6b65\u7f51\u7edc\u6a21\u578b\uff0c\u56e0\u4e3a\u771f\u6b63\u7684 read \u548c send \u64cd\u4f5c\u90fd\u9700\u8981\u7528\u6237\u8fdb\u7a0b\u540c\u6b65\u64cd\u4f5c\u3002\u8fd9\u91cc\u7684\u201c\u540c\u6b65\u201d\u6307\u7528\u6237\u8fdb\u7a0b\u5728\u6267\u884c read \u548c send \u8fd9\u7c7b I/O \u64cd\u4f5c\u7684\u65f6\u5019\u662f\u540c\u6b65\u7684\uff0c\u5982\u679c\u628a I/O \u64cd\u4f5c\u6539\u4e3a\u5f02\u6b65\u5c31\u80fd\u591f\u8fdb\u4e00\u6b65\u63d0\u5347\u6027\u80fd\uff0c\u8fd9\u5c31\u662f\u5f02\u6b65\u7f51\u7edc\u6a21\u578b Proactor\u3002"),(0,o.yg)("p",null,"Proactor \u4e2d\u6587\u7ffb\u8bd1\u4e3a\u201c\u524d\u6444\u5668\u201d\u6bd4\u8f83\u96be\u7406\u89e3\uff0c\u4e0e\u5176\u7c7b\u4f3c\u7684\u5355\u8bcd\u662f proactive\uff0c\u542b\u4e49\u4e3a\u201c\u4e3b\u52a8\u7684\u201d\uff0c\u56e0\u6b64\u6211\u4eec\u7167\u732b\u753b\u864e\u7ffb\u8bd1\u4e3a\u201c\u4e3b\u52a8\u5668\u201d\u53cd\u800c\u66f4\u597d\u7406\u89e3\u3002Reactor \u53ef\u4ee5\u7406\u89e3\u4e3a\u201c\u6765\u4e86\u4e8b\u4ef6\u6211\u901a\u77e5\u4f60\uff0c\u4f60\u6765\u5904\u7406\u201d\uff0c\u800c Proactor \u53ef\u4ee5\u7406\u89e3\u4e3a\u201c\u6765\u4e86\u4e8b\u4ef6\u6211\u6765\u5904\u7406\uff0c\u5904\u7406\u5b8c\u4e86\u6211\u901a\u77e5\u4f60\u201d\u3002\u8fd9\u91cc\u7684\u201c\u6211\u201d\u5c31\u662f\u64cd\u4f5c\u7cfb\u7edf\u5185\u6838\uff0c\u201c\u4e8b\u4ef6\u201d\u5c31\u662f\u6709\u65b0\u8fde\u63a5\u3001\u6709\u6570\u636e\u53ef\u8bfb\u3001\u6709\u6570\u636e\u53ef\u5199\u7684\u8fd9\u4e9b I/O \u4e8b\u4ef6\uff0c\u201c\u4f60\u201d\u5c31\u662f\u6211\u4eec\u7684\u7a0b\u5e8f\u4ee3\u7801\u3002"),(0,o.yg)("p",null,"\u7406\u8bba\u4e0a Proactor \u6bd4 Reactor \u6548\u7387\u8981\u9ad8\u4e00\u4e9b\uff0c\u5f02\u6b65 I/O \u80fd\u591f\u5145\u5206\u5229\u7528 DMA \u7279\u6027\uff0c\u8ba9 I/O \u64cd\u4f5c\u4e0e\u8ba1\u7b97\u91cd\u53e0\uff0c\u4f46\u8981\u5b9e\u73b0\u771f\u6b63\u7684\u5f02\u6b65 I/O\uff0c\u64cd\u4f5c\u7cfb\u7edf\u9700\u8981\u505a\u5927\u91cf\u7684\u5de5\u4f5c\u3002\u76ee\u524d Windows \u4e0b\u901a\u8fc7 IOCP \u5b9e\u73b0\u4e86\u771f\u6b63\u7684\u5f02\u6b65 I/O\uff0c\u800c\u5728 Linux \u7cfb\u7edf\u4e0b\u7684 AIO \u5e76\u4e0d\u5b8c\u5584\uff0c\u56e0\u6b64\u5728 Linux \u4e0b\u5b9e\u73b0\u9ad8\u5e76\u53d1\u7f51\u7edc\u7f16\u7a0b\u65f6\u90fd\u662f\u4ee5 Reactor \u6a21\u5f0f\u4e3a\u4e3b\u3002\u6240\u4ee5\u5373\u4f7f Boost.Asio \u53f7\u79f0\u5b9e\u73b0\u4e86 Proactor \u6a21\u578b\uff0c\u5176\u5b9e\u5b83\u5728 Windows \u4e0b\u91c7\u7528 IOCP\uff0c\u800c\u5728 Linux \u4e0b\u662f\u7528 Reactor \u6a21\u5f0f\uff08\u91c7\u7528 epoll\uff09\u6a21\u62df\u51fa\u6765\u7684\u5f02\u6b65\u6a21\u578b\u3002"))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2709],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),l=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},u=function(e){var t=l(e.components);return n.createElement(s.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),p=l(r),y=o,f=p["".concat(s,".").concat(y)]||p[y]||d[y]||a;return r?n.createElement(f,c(c({ref:t},u),{},{components:r})):n.createElement(f,c({ref:t},u))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=y;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[p]="string"==typeof e?e:o,c[1]=i;for(var l=2;l{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>c,default:()=>d,frontMatter:()=>a,metadata:()=>i,toc:()=>l});var n=r(8168),o=(r(6540),r(5680));const a={},c=void 0,i={unversionedId:"study/think/\u6982\u5ff5\u6a21\u578b/Proactor",id:"study/think/\u6982\u5ff5\u6a21\u578b/Proactor",title:"Proactor",description:"Reactor \u662f\u975e\u963b\u585e\u540c\u6b65\u7f51\u7edc\u6a21\u578b\uff0c\u56e0\u4e3a\u771f\u6b63\u7684 read \u548c send \u64cd\u4f5c\u90fd\u9700\u8981\u7528\u6237\u8fdb\u7a0b\u540c\u6b65\u64cd\u4f5c\u3002\u8fd9\u91cc\u7684\u201c\u540c\u6b65\u201d\u6307\u7528\u6237\u8fdb\u7a0b\u5728\u6267\u884c read \u548c send \u8fd9\u7c7b I/O \u64cd\u4f5c\u7684\u65f6\u5019\u662f\u540c\u6b65\u7684\uff0c\u5982\u679c\u628a I/O \u64cd\u4f5c\u6539\u4e3a\u5f02\u6b65\u5c31\u80fd\u591f\u8fdb\u4e00\u6b65\u63d0\u5347\u6027\u80fd\uff0c\u8fd9\u5c31\u662f\u5f02\u6b65\u7f51\u7edc\u6a21\u578b Proactor\u3002",source:"@site/docs/study/think/\u6982\u5ff5\u6a21\u578b/Proactor.md",sourceDirName:"study/think/\u6982\u5ff5\u6a21\u578b",slug:"/study/think/\u6982\u5ff5\u6a21\u578b/Proactor",permalink:"/docs/study/think/\u6982\u5ff5\u6a21\u578b/Proactor",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Actor Model",permalink:"/docs/study/think/\u6982\u5ff5\u6a21\u578b/Actor Model"},next:{title:"Reactor\u6a21\u5f0f\u53cd\u5e94\u5806\u6a21\u5f0f",permalink:"/docs/study/think/\u6982\u5ff5\u6a21\u578b/Reactor\u6a21\u5f0f\u53cd\u5e94\u5806\u6a21\u5f0f"}},s={},l=[],u={toc:l},p="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(p,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("p",null,"Reactor \u662f\u975e\u963b\u585e\u540c\u6b65\u7f51\u7edc\u6a21\u578b\uff0c\u56e0\u4e3a\u771f\u6b63\u7684 read \u548c send \u64cd\u4f5c\u90fd\u9700\u8981\u7528\u6237\u8fdb\u7a0b\u540c\u6b65\u64cd\u4f5c\u3002\u8fd9\u91cc\u7684\u201c\u540c\u6b65\u201d\u6307\u7528\u6237\u8fdb\u7a0b\u5728\u6267\u884c read \u548c send \u8fd9\u7c7b I/O \u64cd\u4f5c\u7684\u65f6\u5019\u662f\u540c\u6b65\u7684\uff0c\u5982\u679c\u628a I/O \u64cd\u4f5c\u6539\u4e3a\u5f02\u6b65\u5c31\u80fd\u591f\u8fdb\u4e00\u6b65\u63d0\u5347\u6027\u80fd\uff0c\u8fd9\u5c31\u662f\u5f02\u6b65\u7f51\u7edc\u6a21\u578b Proactor\u3002"),(0,o.yg)("p",null,"Proactor \u4e2d\u6587\u7ffb\u8bd1\u4e3a\u201c\u524d\u6444\u5668\u201d\u6bd4\u8f83\u96be\u7406\u89e3\uff0c\u4e0e\u5176\u7c7b\u4f3c\u7684\u5355\u8bcd\u662f proactive\uff0c\u542b\u4e49\u4e3a\u201c\u4e3b\u52a8\u7684\u201d\uff0c\u56e0\u6b64\u6211\u4eec\u7167\u732b\u753b\u864e\u7ffb\u8bd1\u4e3a\u201c\u4e3b\u52a8\u5668\u201d\u53cd\u800c\u66f4\u597d\u7406\u89e3\u3002Reactor \u53ef\u4ee5\u7406\u89e3\u4e3a\u201c\u6765\u4e86\u4e8b\u4ef6\u6211\u901a\u77e5\u4f60\uff0c\u4f60\u6765\u5904\u7406\u201d\uff0c\u800c Proactor \u53ef\u4ee5\u7406\u89e3\u4e3a\u201c\u6765\u4e86\u4e8b\u4ef6\u6211\u6765\u5904\u7406\uff0c\u5904\u7406\u5b8c\u4e86\u6211\u901a\u77e5\u4f60\u201d\u3002\u8fd9\u91cc\u7684\u201c\u6211\u201d\u5c31\u662f\u64cd\u4f5c\u7cfb\u7edf\u5185\u6838\uff0c\u201c\u4e8b\u4ef6\u201d\u5c31\u662f\u6709\u65b0\u8fde\u63a5\u3001\u6709\u6570\u636e\u53ef\u8bfb\u3001\u6709\u6570\u636e\u53ef\u5199\u7684\u8fd9\u4e9b I/O \u4e8b\u4ef6\uff0c\u201c\u4f60\u201d\u5c31\u662f\u6211\u4eec\u7684\u7a0b\u5e8f\u4ee3\u7801\u3002"),(0,o.yg)("p",null,"\u7406\u8bba\u4e0a Proactor \u6bd4 Reactor \u6548\u7387\u8981\u9ad8\u4e00\u4e9b\uff0c\u5f02\u6b65 I/O \u80fd\u591f\u5145\u5206\u5229\u7528 DMA \u7279\u6027\uff0c\u8ba9 I/O \u64cd\u4f5c\u4e0e\u8ba1\u7b97\u91cd\u53e0\uff0c\u4f46\u8981\u5b9e\u73b0\u771f\u6b63\u7684\u5f02\u6b65 I/O\uff0c\u64cd\u4f5c\u7cfb\u7edf\u9700\u8981\u505a\u5927\u91cf\u7684\u5de5\u4f5c\u3002\u76ee\u524d Windows \u4e0b\u901a\u8fc7 IOCP \u5b9e\u73b0\u4e86\u771f\u6b63\u7684\u5f02\u6b65 I/O\uff0c\u800c\u5728 Linux \u7cfb\u7edf\u4e0b\u7684 AIO \u5e76\u4e0d\u5b8c\u5584\uff0c\u56e0\u6b64\u5728 Linux \u4e0b\u5b9e\u73b0\u9ad8\u5e76\u53d1\u7f51\u7edc\u7f16\u7a0b\u65f6\u90fd\u662f\u4ee5 Reactor \u6a21\u5f0f\u4e3a\u4e3b\u3002\u6240\u4ee5\u5373\u4f7f Boost.Asio \u53f7\u79f0\u5b9e\u73b0\u4e86 Proactor \u6a21\u578b\uff0c\u5176\u5b9e\u5b83\u5728 Windows \u4e0b\u91c7\u7528 IOCP\uff0c\u800c\u5728 Linux \u4e0b\u662f\u7528 Reactor \u6a21\u5f0f\uff08\u91c7\u7528 epoll\uff09\u6a21\u62df\u51fa\u6765\u7684\u5f02\u6b65\u6a21\u578b\u3002"))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/d29ac9c5.95702c50.js b/assets/js/d29ac9c5.95946b2d.js similarity index 98% rename from assets/js/d29ac9c5.95702c50.js rename to assets/js/d29ac9c5.95946b2d.js index 7109901a7..fe9964e73 100644 --- a/assets/js/d29ac9c5.95702c50.js +++ b/assets/js/d29ac9c5.95946b2d.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1648],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>f});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var i=n.createContext({}),p=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(i.Provider,{value:t},e.children)},s="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,i=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),s=p(r),m=a,f=s["".concat(i,".").concat(m)]||s[m]||y[m]||o;return r?n.createElement(f,c(c({ref:t},u),{},{components:r})):n.createElement(f,c({ref:t},u))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,c=new Array(o);c[0]=m;var l={};for(var i in t)hasOwnProperty.call(t,i)&&(l[i]=t[i]);l.originalType=e,l[s]="string"==typeof e?e:a,c[1]=l;for(var p=2;p{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>c,default:()=>y,frontMatter:()=>o,metadata:()=>l,toc:()=>p});var n=r(8168),a=(r(6540),r(5680));const o={},c=void 0,l={unversionedId:"study/back/mq/RocketMQ",id:"study/back/mq/RocketMQ",title:"RocketMQ",description:"RocketMQ \u548c Kafka \u6709\u4ec0\u4e48\u533a\u522b\uff1f",source:"@site/docs/study/back/mq/RocketMQ.md",sourceDirName:"study/back/mq",slug:"/study/back/mq/RocketMQ",permalink:"/docs/study/back/mq/RocketMQ",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"MQ\u5b9e\u73b0\u5bf9\u6bd4",permalink:"/docs/study/back/mq/MQ\u5b9e\u73b0\u5bf9\u6bd4"},next:{title:"SpringCloud\u4e94\u5927\u7ec4\u4ef6",permalink:"/docs/study/back/springcloud/SpringCloud\u4e94\u5927\u7ec4\u4ef6"}},i={},p=[{value:"RocketMQ \u548c Kafka \u6709\u4ec0\u4e48\u533a\u522b\uff1f",id:"rocketmq-\u548c-kafka-\u6709\u4ec0\u4e48\u533a\u522b",level:3},{value:"\u4e3a\u4ec0\u4e48\u963f\u91cc\u4f1a\u81ea\u7814RocketMQ\uff1f",id:"\u4e3a\u4ec0\u4e48\u963f\u91cc\u4f1a\u81ea\u7814rocketmq",level:3}],u={toc:p},s="wrapper";function y(e){let{components:t,...r}=e;return(0,a.yg)(s,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"rocketmq-\u548c-kafka-\u6709\u4ec0\u4e48\u533a\u522b"},"RocketMQ \u548c Kafka \u6709\u4ec0\u4e48\u533a\u522b\uff1f"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("strong",{parentName:"li"},"\u9002\u7528\u573a\u666f"),"\uff1aKafka\u9002\u5408\u65e5\u5fd7\u5904\u7406\uff1bRocketMQ\u9002\u5408\u4e1a\u52a1\u5904\u7406\u3002 "),(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("strong",{parentName:"li"},"\u6027\u80fd"),"\uff1aKafka\u5355\u673a\u5199\u5165TPS\u53f7\u79f0\u5728\u767e\u4e07\u6761/\u79d2\uff1bRocketMQ\u5927\u7ea6\u572810\u4e07\u6761/\u79d2\u3002Kafka\u5355\u673a\u6027\u80fd\u66f4\u9ad8\u3002 "),(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("strong",{parentName:"li"},"\u53ef\u9760\u6027"),"\uff1aRocketMQ\u652f\u6301\u5f02\u6b65/\u540c\u6b65\u5237\u76d8;\u5f02\u6b65/\u540c\u6b65Replication\uff1bKafka\u4f7f\u7528\u5f02\u6b65\u5237\u76d8\u65b9\u5f0f\uff0c\u5f02\u6b65Replication\u3002RocketMQ\u6240\u652f\u6301\u7684\u540c\u6b65\u65b9\u5f0f\u63d0\u5347\u4e86\u6570\u636e\u7684\u53ef\u9760\u6027\u3002 "),(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("strong",{parentName:"li"},"\u5b9e\u65f6\u6027"),"\uff1a\u5747\u652f\u6301pull\u957f\u8f6e\u8be2\uff0cRocketMQ\u6d88\u606f\u5b9e\u65f6\u6027\u66f4\u597d "),(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("strong",{parentName:"li"},"\u652f\u6301\u7684\u961f\u5217\u6570"),"\uff1aKafka\u5355\u673a\u8d85\u8fc764\u4e2a\u961f\u5217/\u5206\u533a\uff0c\u6d88\u606f\u53d1\u9001\u6027\u80fd\u964d\u4f4e\u4e25\u91cd\uff1bRocketMQ\u5355\u673a\u652f\u6301\u6700\u9ad85\u4e07\u4e2a\u961f\u5217\uff0c\u6027\u80fd\u7a33\u5b9a\uff08\u8fd9\u4e5f\u662f\u9002\u5408\u4e1a\u52a1\u5904\u7406\u7684\u539f\u56e0\u4e4b\u4e00\uff09")),(0,a.yg)("h3",{id:"\u4e3a\u4ec0\u4e48\u963f\u91cc\u4f1a\u81ea\u7814rocketmq"},"\u4e3a\u4ec0\u4e48\u963f\u91cc\u4f1a\u81ea\u7814RocketMQ\uff1f"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},"Kafka\u7684\u4e1a\u52a1\u5e94\u7528\u573a\u666f\u4e3b\u8981\u5b9a\u4f4d\u4e8e\u65e5\u5fd7\u4f20\u8f93\uff1b\u5bf9\u4e8e\u590d\u6742\u4e1a\u52a1\u652f\u6301\u4e0d\u591f "),(0,a.yg)("li",{parentName:"ol"},"\u963f\u91cc\u5f88\u591a\u4e1a\u52a1\u573a\u666f\u5bf9\u6570\u636e\u53ef\u9760\u6027\u3001\u6570\u636e\u5b9e\u65f6\u6027\u3001\u6d88\u606f\u961f\u5217\u7684\u4e2a\u6570\u7b49\u65b9\u9762\u7684\u8981\u6c42\u5f88\u9ad8 "),(0,a.yg)("li",{parentName:"ol"},"\u5f53\u4e1a\u52a1\u6210\u957f\u5230\u4e00\u5b9a\u89c4\u6a21\uff0c\u91c7\u7528\u5f00\u6e90\u65b9\u6848\u7684\u6280\u672f\u6210\u672c\u4f1a\u53d8\u9ad8\uff08\u5f00\u6e90\u65b9\u6848\u65e0\u6cd5\u6ee1\u8db3\u4e1a\u52a1\u7684\u9700\u8981\uff1b\u65e7\u7248\u672c\u3001\u81ea\u5f00\u53d1\u4ee3\u7801\u4e0e\u65b0\u7248\u672c\u7684\u517c\u5bb9\u7b49\uff09 "),(0,a.yg)("li",{parentName:"ol"},"\u963f\u91cc\u5728\u56e2\u961f\u3001\u6210\u672c\u3001\u8d44\u6e90\u6295\u5165\u7b49\u65b9\u9762\u7ea6\u675f\u6027\u6761\u4ef6\u51e0\u4e4e\u6ca1\u6709")))}y.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1648],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>f});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var i=n.createContext({}),p=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(i.Provider,{value:t},e.children)},s="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,i=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),s=p(r),m=a,f=s["".concat(i,".").concat(m)]||s[m]||y[m]||o;return r?n.createElement(f,c(c({ref:t},u),{},{components:r})):n.createElement(f,c({ref:t},u))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,c=new Array(o);c[0]=m;var l={};for(var i in t)hasOwnProperty.call(t,i)&&(l[i]=t[i]);l.originalType=e,l[s]="string"==typeof e?e:a,c[1]=l;for(var p=2;p{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>c,default:()=>y,frontMatter:()=>o,metadata:()=>l,toc:()=>p});var n=r(8168),a=(r(6540),r(5680));const o={},c=void 0,l={unversionedId:"study/back/mq/RocketMQ",id:"study/back/mq/RocketMQ",title:"RocketMQ",description:"RocketMQ \u548c Kafka \u6709\u4ec0\u4e48\u533a\u522b\uff1f",source:"@site/docs/study/back/mq/RocketMQ.md",sourceDirName:"study/back/mq",slug:"/study/back/mq/RocketMQ",permalink:"/docs/study/back/mq/RocketMQ",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"MQ\u5b9e\u73b0\u5bf9\u6bd4",permalink:"/docs/study/back/mq/MQ\u5b9e\u73b0\u5bf9\u6bd4"},next:{title:"SpringCloud\u4e94\u5927\u7ec4\u4ef6",permalink:"/docs/study/back/springcloud/SpringCloud\u4e94\u5927\u7ec4\u4ef6"}},i={},p=[{value:"RocketMQ \u548c Kafka \u6709\u4ec0\u4e48\u533a\u522b\uff1f",id:"rocketmq-\u548c-kafka-\u6709\u4ec0\u4e48\u533a\u522b",level:3},{value:"\u4e3a\u4ec0\u4e48\u963f\u91cc\u4f1a\u81ea\u7814RocketMQ\uff1f",id:"\u4e3a\u4ec0\u4e48\u963f\u91cc\u4f1a\u81ea\u7814rocketmq",level:3}],u={toc:p},s="wrapper";function y(e){let{components:t,...r}=e;return(0,a.yg)(s,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"rocketmq-\u548c-kafka-\u6709\u4ec0\u4e48\u533a\u522b"},"RocketMQ \u548c Kafka \u6709\u4ec0\u4e48\u533a\u522b\uff1f"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("strong",{parentName:"li"},"\u9002\u7528\u573a\u666f"),"\uff1aKafka\u9002\u5408\u65e5\u5fd7\u5904\u7406\uff1bRocketMQ\u9002\u5408\u4e1a\u52a1\u5904\u7406\u3002 "),(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("strong",{parentName:"li"},"\u6027\u80fd"),"\uff1aKafka\u5355\u673a\u5199\u5165TPS\u53f7\u79f0\u5728\u767e\u4e07\u6761/\u79d2\uff1bRocketMQ\u5927\u7ea6\u572810\u4e07\u6761/\u79d2\u3002Kafka\u5355\u673a\u6027\u80fd\u66f4\u9ad8\u3002 "),(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("strong",{parentName:"li"},"\u53ef\u9760\u6027"),"\uff1aRocketMQ\u652f\u6301\u5f02\u6b65/\u540c\u6b65\u5237\u76d8;\u5f02\u6b65/\u540c\u6b65Replication\uff1bKafka\u4f7f\u7528\u5f02\u6b65\u5237\u76d8\u65b9\u5f0f\uff0c\u5f02\u6b65Replication\u3002RocketMQ\u6240\u652f\u6301\u7684\u540c\u6b65\u65b9\u5f0f\u63d0\u5347\u4e86\u6570\u636e\u7684\u53ef\u9760\u6027\u3002 "),(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("strong",{parentName:"li"},"\u5b9e\u65f6\u6027"),"\uff1a\u5747\u652f\u6301pull\u957f\u8f6e\u8be2\uff0cRocketMQ\u6d88\u606f\u5b9e\u65f6\u6027\u66f4\u597d "),(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("strong",{parentName:"li"},"\u652f\u6301\u7684\u961f\u5217\u6570"),"\uff1aKafka\u5355\u673a\u8d85\u8fc764\u4e2a\u961f\u5217/\u5206\u533a\uff0c\u6d88\u606f\u53d1\u9001\u6027\u80fd\u964d\u4f4e\u4e25\u91cd\uff1bRocketMQ\u5355\u673a\u652f\u6301\u6700\u9ad85\u4e07\u4e2a\u961f\u5217\uff0c\u6027\u80fd\u7a33\u5b9a\uff08\u8fd9\u4e5f\u662f\u9002\u5408\u4e1a\u52a1\u5904\u7406\u7684\u539f\u56e0\u4e4b\u4e00\uff09")),(0,a.yg)("h3",{id:"\u4e3a\u4ec0\u4e48\u963f\u91cc\u4f1a\u81ea\u7814rocketmq"},"\u4e3a\u4ec0\u4e48\u963f\u91cc\u4f1a\u81ea\u7814RocketMQ\uff1f"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},"Kafka\u7684\u4e1a\u52a1\u5e94\u7528\u573a\u666f\u4e3b\u8981\u5b9a\u4f4d\u4e8e\u65e5\u5fd7\u4f20\u8f93\uff1b\u5bf9\u4e8e\u590d\u6742\u4e1a\u52a1\u652f\u6301\u4e0d\u591f "),(0,a.yg)("li",{parentName:"ol"},"\u963f\u91cc\u5f88\u591a\u4e1a\u52a1\u573a\u666f\u5bf9\u6570\u636e\u53ef\u9760\u6027\u3001\u6570\u636e\u5b9e\u65f6\u6027\u3001\u6d88\u606f\u961f\u5217\u7684\u4e2a\u6570\u7b49\u65b9\u9762\u7684\u8981\u6c42\u5f88\u9ad8 "),(0,a.yg)("li",{parentName:"ol"},"\u5f53\u4e1a\u52a1\u6210\u957f\u5230\u4e00\u5b9a\u89c4\u6a21\uff0c\u91c7\u7528\u5f00\u6e90\u65b9\u6848\u7684\u6280\u672f\u6210\u672c\u4f1a\u53d8\u9ad8\uff08\u5f00\u6e90\u65b9\u6848\u65e0\u6cd5\u6ee1\u8db3\u4e1a\u52a1\u7684\u9700\u8981\uff1b\u65e7\u7248\u672c\u3001\u81ea\u5f00\u53d1\u4ee3\u7801\u4e0e\u65b0\u7248\u672c\u7684\u517c\u5bb9\u7b49\uff09 "),(0,a.yg)("li",{parentName:"ol"},"\u963f\u91cc\u5728\u56e2\u961f\u3001\u6210\u672c\u3001\u8d44\u6e90\u6295\u5165\u7b49\u65b9\u9762\u7ea6\u675f\u6027\u6761\u4ef6\u51e0\u4e4e\u6ca1\u6709")))}y.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/d864a059.df457785.js b/assets/js/d864a059.a44bf9d8.js similarity index 98% rename from assets/js/d864a059.df457785.js rename to assets/js/d864a059.a44bf9d8.js index d7c5bf50d..bde72b7ec 100644 --- a/assets/js/d864a059.df457785.js +++ b/assets/js/d864a059.a44bf9d8.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6172],{5680:(e,t,r)=>{r.d(t,{xA:()=>s,yg:()=>f});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function p(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var l=n.createContext({}),i=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):p(p({},t),e)),r},s=function(e){var t=i(e.components);return n.createElement(l.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,s=c(e,["components","mdxType","originalType","parentName"]),u=i(r),y=a,f=u["".concat(l,".").concat(y)]||u[y]||d[y]||o;return r?n.createElement(f,p(p({ref:t},s),{},{components:r})):n.createElement(f,p({ref:t},s))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,p=new Array(o);p[0]=y;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[u]="string"==typeof e?e:a,p[1]=c;for(var i=2;i{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>p,default:()=>d,frontMatter:()=>o,metadata:()=>c,toc:()=>i});var n=r(8168),a=(r(6540),r(5680));const o={},p="P2P \u7f51\u7edc NAT \u7a7f\u900f\u539f\u7406(\u6253\u6d1e\u65b9\u6848)",c={unversionedId:"study/net/p2p",id:"study/net/p2p",title:"P2P \u7f51\u7edc NAT \u7a7f\u900f\u539f\u7406(\u6253\u6d1e\u65b9\u6848)",description:"\u53c2\u8003",source:"@site/docs/study/net/p2p.md",sourceDirName:"study/net",slug:"/study/net/p2p",permalink:"/docs/study/net/p2p",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Linux netns",permalink:"/docs/study/net/netns"},next:{title:"unix pfctl \u9632\u706b\u5899",permalink:"/docs/study/net/pfctl\u9632\u706b\u5899"}},l={},i=[{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],s={toc:i},u="wrapper";function d(e){let{components:t,...r}=e;return(0,a.yg)(u,(0,n.A)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"p2p-\u7f51\u7edc-nat-\u7a7f\u900f\u539f\u7406\u6253\u6d1e\u65b9\u6848"},"P2P \u7f51\u7edc NAT \u7a7f\u900f\u539f\u7406(\u6253\u6d1e\u65b9\u6848)"),(0,a.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://blog.csdn.net/yangowen/article/details/125787199"},"P2P \u7f51\u7edc NAT \u7a7f\u900f\u539f\u7406(\u6253\u6d1e\u65b9\u6848)")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://blog.csdn.net/u013051748/article/details/115413454"},"P2P \u6253\u6d1e\u6280\u672f\u8be6\u89e3")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://post.smzdm.com/p/allr4ngp/"},"\u5185\u7f51\u7a7f\u900f-nConnect \u4e0e zerotier \u5982\u4f55\u642d\u5efa\u6211\u7684\u8fdc\u7a0b\u79c1\u4eba\u670d\u52a1\u5668"))))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6172],{5680:(e,t,r)=>{r.d(t,{xA:()=>s,yg:()=>f});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function p(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var l=n.createContext({}),i=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):p(p({},t),e)),r},s=function(e){var t=i(e.components);return n.createElement(l.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,s=c(e,["components","mdxType","originalType","parentName"]),u=i(r),y=a,f=u["".concat(l,".").concat(y)]||u[y]||d[y]||o;return r?n.createElement(f,p(p({ref:t},s),{},{components:r})):n.createElement(f,p({ref:t},s))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,p=new Array(o);p[0]=y;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[u]="string"==typeof e?e:a,p[1]=c;for(var i=2;i{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>p,default:()=>d,frontMatter:()=>o,metadata:()=>c,toc:()=>i});var n=r(8168),a=(r(6540),r(5680));const o={},p="P2P \u7f51\u7edc NAT \u7a7f\u900f\u539f\u7406(\u6253\u6d1e\u65b9\u6848)",c={unversionedId:"study/net/p2p",id:"study/net/p2p",title:"P2P \u7f51\u7edc NAT \u7a7f\u900f\u539f\u7406(\u6253\u6d1e\u65b9\u6848)",description:"\u53c2\u8003",source:"@site/docs/study/net/p2p.md",sourceDirName:"study/net",slug:"/study/net/p2p",permalink:"/docs/study/net/p2p",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Linux netns",permalink:"/docs/study/net/netns"},next:{title:"unix pfctl \u9632\u706b\u5899",permalink:"/docs/study/net/pfctl\u9632\u706b\u5899"}},l={},i=[{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],s={toc:i},u="wrapper";function d(e){let{components:t,...r}=e;return(0,a.yg)(u,(0,n.A)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"p2p-\u7f51\u7edc-nat-\u7a7f\u900f\u539f\u7406\u6253\u6d1e\u65b9\u6848"},"P2P \u7f51\u7edc NAT \u7a7f\u900f\u539f\u7406(\u6253\u6d1e\u65b9\u6848)"),(0,a.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://blog.csdn.net/yangowen/article/details/125787199"},"P2P \u7f51\u7edc NAT \u7a7f\u900f\u539f\u7406(\u6253\u6d1e\u65b9\u6848)")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://blog.csdn.net/u013051748/article/details/115413454"},"P2P \u6253\u6d1e\u6280\u672f\u8be6\u89e3")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://post.smzdm.com/p/allr4ngp/"},"\u5185\u7f51\u7a7f\u900f-nConnect \u4e0e zerotier \u5982\u4f55\u642d\u5efa\u6211\u7684\u8fdc\u7a0b\u79c1\u4eba\u670d\u52a1\u5668"))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/d8a12065.26687301.js b/assets/js/d8a12065.7110c8c5.js similarity index 98% rename from assets/js/d8a12065.26687301.js rename to assets/js/d8a12065.7110c8c5.js index b9e8ccf60..60ec831f0 100644 --- a/assets/js/d8a12065.26687301.js +++ b/assets/js/d8a12065.7110c8c5.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[664],{5680:(e,t,r)=>{r.d(t,{xA:()=>l,yg:()=>f});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function c(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var p=n.createContext({}),o=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},l=function(e){var t=o(e.components);return n.createElement(p.Provider,{value:t},e.children)},y="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,c=e.originalType,p=e.parentName,l=s(e,["components","mdxType","originalType","parentName"]),y=o(r),u=a,f=y["".concat(p,".").concat(u)]||y[u]||d[u]||c;return r?n.createElement(f,i(i({ref:t},l),{},{components:r})):n.createElement(f,i({ref:t},l))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var c=r.length,i=new Array(c);i[0]=u;var s={};for(var p in t)hasOwnProperty.call(t,p)&&(s[p]=t[p]);s.originalType=e,s[y]="string"==typeof e?e:a,i[1]=s;for(var o=2;o{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>d,frontMatter:()=>c,metadata:()=>s,toc:()=>o});var n=r(8168),a=(r(6540),r(5680));const c={},i=void 0,s={unversionedId:"study/fe/TypeScript\u8bed\u6cd5\u56fe",id:"study/fe/TypeScript\u8bed\u6cd5\u56fe",title:"TypeScript\u8bed\u6cd5\u56fe",description:"\u8bed\u6cd5\u56fe",source:"@site/docs/study/fe/TypeScript\u8bed\u6cd5\u56fe.md",sourceDirName:"study/fe",slug:"/study/fe/TypeScript\u8bed\u6cd5\u56fe",permalink:"/docs/study/fe/TypeScript\u8bed\u6cd5\u56fe",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Flutter\u5f00\u53d1\u95ee\u9898\u8bb0\u5f55",permalink:"/docs/study/fe/Flutter\u5f00\u53d1\u95ee\u9898\u8bb0\u5f55"},next:{title:"WebGL",permalink:"/docs/study/fe/WebGL"}},p={},o=[{value:"\u8bed\u6cd5\u56fe",id:"\u8bed\u6cd5\u56fe",level:3},{value:"class",id:"class",level:4},{value:"\u63a7\u5236\u6d41\u7a0b",id:"\u63a7\u5236\u6d41\u7a0b",level:4},{value:"interface",id:"interface",level:4},{value:"type",id:"type",level:4}],l={toc:o},y="wrapper";function d(e){let{components:t,...c}=e;return(0,a.yg)(y,(0,n.A)({},l,c,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"\u8bed\u6cd5\u56fe"},"\u8bed\u6cd5\u56fe"),(0,a.yg)("h4",{id:"class"},"class"),(0,a.yg)("p",null,(0,a.yg)("img",{alt:"TypeScript Classes",src:r(5243).A,width:"1330",height:"940"})),(0,a.yg)("h4",{id:"\u63a7\u5236\u6d41\u7a0b"},"\u63a7\u5236\u6d41\u7a0b"),(0,a.yg)("p",null,(0,a.yg)("img",{alt:"TypeScript Control Flow Analysis",src:r(5090).A,width:"1330",height:"940"})),(0,a.yg)("h4",{id:"interface"},"interface"),(0,a.yg)("p",null,(0,a.yg)("img",{alt:"TypeScript Interfaces",src:r(1311).A,width:"1330",height:"940"})),(0,a.yg)("h4",{id:"type"},"type"),(0,a.yg)("p",null,(0,a.yg)("img",{alt:"TypeScript Types",src:r(9116).A,width:"5542",height:"3917"})))}d.isMDXComponent=!0},5243:(e,t,r)=>{r.d(t,{A:()=>n});const n=r.p+"assets/images/TypeScript Classes-83cc6f8e42ba2002d5e2c04221fa78f9.png"},5090:(e,t,r)=>{r.d(t,{A:()=>n});const n=r.p+"assets/images/TypeScript Control Flow Analysis-8a549253ad8470850b77c4c5c351d457.png"},1311:(e,t,r)=>{r.d(t,{A:()=>n});const n=r.p+"assets/images/TypeScript Interfaces-34f1ad12132fb463bd1dfe5b85c5b2e6.png"},9116:(e,t,r)=>{r.d(t,{A:()=>n});const n=r.p+"assets/images/TypeScript Types-ae199d69aeecf7d4a2704a528d0fd3f9.png"}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[664],{5680:(e,t,r)=>{r.d(t,{xA:()=>l,yg:()=>f});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function c(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var p=n.createContext({}),o=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},l=function(e){var t=o(e.components);return n.createElement(p.Provider,{value:t},e.children)},y="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,c=e.originalType,p=e.parentName,l=s(e,["components","mdxType","originalType","parentName"]),y=o(r),u=a,f=y["".concat(p,".").concat(u)]||y[u]||d[u]||c;return r?n.createElement(f,i(i({ref:t},l),{},{components:r})):n.createElement(f,i({ref:t},l))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var c=r.length,i=new Array(c);i[0]=u;var s={};for(var p in t)hasOwnProperty.call(t,p)&&(s[p]=t[p]);s.originalType=e,s[y]="string"==typeof e?e:a,i[1]=s;for(var o=2;o{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>d,frontMatter:()=>c,metadata:()=>s,toc:()=>o});var n=r(8168),a=(r(6540),r(5680));const c={},i=void 0,s={unversionedId:"study/fe/TypeScript\u8bed\u6cd5\u56fe",id:"study/fe/TypeScript\u8bed\u6cd5\u56fe",title:"TypeScript\u8bed\u6cd5\u56fe",description:"\u8bed\u6cd5\u56fe",source:"@site/docs/study/fe/TypeScript\u8bed\u6cd5\u56fe.md",sourceDirName:"study/fe",slug:"/study/fe/TypeScript\u8bed\u6cd5\u56fe",permalink:"/docs/study/fe/TypeScript\u8bed\u6cd5\u56fe",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Flutter\u5f00\u53d1\u95ee\u9898\u8bb0\u5f55",permalink:"/docs/study/fe/Flutter\u5f00\u53d1\u95ee\u9898\u8bb0\u5f55"},next:{title:"WebGL",permalink:"/docs/study/fe/WebGL"}},p={},o=[{value:"\u8bed\u6cd5\u56fe",id:"\u8bed\u6cd5\u56fe",level:3},{value:"class",id:"class",level:4},{value:"\u63a7\u5236\u6d41\u7a0b",id:"\u63a7\u5236\u6d41\u7a0b",level:4},{value:"interface",id:"interface",level:4},{value:"type",id:"type",level:4}],l={toc:o},y="wrapper";function d(e){let{components:t,...c}=e;return(0,a.yg)(y,(0,n.A)({},l,c,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"\u8bed\u6cd5\u56fe"},"\u8bed\u6cd5\u56fe"),(0,a.yg)("h4",{id:"class"},"class"),(0,a.yg)("p",null,(0,a.yg)("img",{alt:"TypeScript Classes",src:r(5243).A,width:"1330",height:"940"})),(0,a.yg)("h4",{id:"\u63a7\u5236\u6d41\u7a0b"},"\u63a7\u5236\u6d41\u7a0b"),(0,a.yg)("p",null,(0,a.yg)("img",{alt:"TypeScript Control Flow Analysis",src:r(5090).A,width:"1330",height:"940"})),(0,a.yg)("h4",{id:"interface"},"interface"),(0,a.yg)("p",null,(0,a.yg)("img",{alt:"TypeScript Interfaces",src:r(1311).A,width:"1330",height:"940"})),(0,a.yg)("h4",{id:"type"},"type"),(0,a.yg)("p",null,(0,a.yg)("img",{alt:"TypeScript Types",src:r(9116).A,width:"5542",height:"3917"})))}d.isMDXComponent=!0},5243:(e,t,r)=>{r.d(t,{A:()=>n});const n=r.p+"assets/images/TypeScript Classes-83cc6f8e42ba2002d5e2c04221fa78f9.png"},5090:(e,t,r)=>{r.d(t,{A:()=>n});const n=r.p+"assets/images/TypeScript Control Flow Analysis-8a549253ad8470850b77c4c5c351d457.png"},1311:(e,t,r)=>{r.d(t,{A:()=>n});const n=r.p+"assets/images/TypeScript Interfaces-34f1ad12132fb463bd1dfe5b85c5b2e6.png"},9116:(e,t,r)=>{r.d(t,{A:()=>n});const n=r.p+"assets/images/TypeScript Types-ae199d69aeecf7d4a2704a528d0fd3f9.png"}}]); \ No newline at end of file diff --git a/assets/js/d924bf19.57e82e3f.js b/assets/js/d924bf19.d3aaaa35.js similarity index 99% rename from assets/js/d924bf19.57e82e3f.js rename to assets/js/d924bf19.d3aaaa35.js index 209757327..e53e73610 100644 --- a/assets/js/d924bf19.57e82e3f.js +++ b/assets/js/d924bf19.d3aaaa35.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1226],{5680:(e,t,n)=>{n.d(t,{xA:()=>c,yg:()=>y});var r=n(6540);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=r.createContext({}),u=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},c=function(e){var t=u(e.components);return r.createElement(s.Provider,{value:t},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,l=e.originalType,s=e.parentName,c=a(e,["components","mdxType","originalType","parentName"]),d=u(n),m=o,y=d["".concat(s,".").concat(m)]||d[m]||p[m]||l;return n?r.createElement(y,i(i({ref:t},c),{},{components:n})):r.createElement(y,i({ref:t},c))}));function y(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var l=n.length,i=new Array(l);i[0]=m;var a={};for(var s in t)hasOwnProperty.call(t,s)&&(a[s]=t[s]);a.originalType=e,a[d]="string"==typeof e?e:o,i[1]=a;for(var u=2;u{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>p,frontMatter:()=>l,metadata:()=>a,toc:()=>u});var r=n(8168),o=(n(6540),n(5680));const l={sidebar_position:2},i=void 0,a={unversionedId:"study/fe/\u524d\u7aef\u6a21\u5757\u5316",id:"study/fe/\u524d\u7aef\u6a21\u5757\u5316",title:"\u524d\u7aef\u6a21\u5757\u5316",description:"\u80cc\u666f",source:"@site/docs/study/fe/\u524d\u7aef\u6a21\u5757\u5316.md",sourceDirName:"study/fe",slug:"/study/fe/\u524d\u7aef\u6a21\u5757\u5316",permalink:"/docs/study/fe/\u524d\u7aef\u6a21\u5757\u5316",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"studySidebar",previous:{title:"\u6982\u8ff0",permalink:"/docs/study/fe/"},next:{title:"ARMS\u524d\u7aef\u76d1\u63a7",permalink:"/docs/study/fe/ARMS\u524d\u7aef\u76d1\u63a7"}},s={},u=[{value:"\u80cc\u666f",id:"\u80cc\u666f",level:3},{value:"IIFE",id:"iife",level:3},{value:"CommonJSCJS",id:"commonjscjs",level:3},{value:"AMD",id:"amd",level:3},{value:"CMD",id:"cmd",level:3},{value:"UMD",id:"umd",level:3},{value:"ES6 Modules\u3010ESM\u3011\u3010ES6M\u3011",id:"es6-modulesesmes6m",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],c={toc:u},d="wrapper";function p(e){let{components:t,...l}=e;return(0,o.yg)(d,(0,r.A)({},c,l,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"\u80cc\u666f"},"\u80cc\u666f"),(0,o.yg)("p",null,"\u4e3a\u4ec0\u4e48\u524d\u7aef\u4f1a\u6709\u8fd9\u4e48\u591a\u6a21\u5757\u5316\u65b9\u6848\uff1f\u4e3b\u8981\u539f\u56e0\u5c31\u662fES5\u53ca\u4e4b\u524d\u662f\u4e0d\u652f\u6301\u6a21\u5757\u5316\u7684\u3002"),(0,o.yg)("p",null,(0,o.yg)("img",{alt:"\u6a21\u5757\u5316\u65b9\u6848",src:n(3206).A,width:"750",height:"541"})),(0,o.yg)("h3",{id:"iife"},"IIFE"),(0,o.yg)("p",null,"IIFE\uff0c\u5168\u79f0\u662f Immediately Invoked Function Expression\uff0c\u201c\u7acb\u5373\u6267\u884c\u51fd\u6570\u201d\u7684\u610f\u601d\u3002\u5982\u679c\u8981\u5b9e\u73b0\u6a21\u5757\u5316\uff0c\u5c31\u9700\u8981\u5728 IIFE \u4e2d\uff0c\u628a\u4ee3\u7801\u6302\u8f7d\u5728\u5168\u5c40\u53d8\u91cf\u4e0a\u3002"),(0,o.yg)("p",null,"\u8fd9\u4e5f\u662f\u65e9\u671f JavaScript \u7684\u6a21\u5757\u5316\u65b9\u6848\uff0c\u6839\u636e\u4e0d\u540c\u73af\u5883\uff0c\u628a\u6a21\u5757\u5168\u90e8\u6302\u8f7d\u5728\u5bf9\u5e94\u73af\u5883\u7684\u5168\u5c40\u53d8\u91cf\u4e0a\uff0c\u6d4f\u89c8\u5668\u5c31\u6302\u8f7d\u5728\u201cwindow\u201d\u5bf9\u8c61\u4e0a\uff0cNode.js \u5c31\u6302\u8f7d\u5728 global \u5168\u5c40\u53d8\u91cf\u4e0a\u3002"),(0,o.yg)("h3",{id:"commonjscjs"},"CommonJS","[CJS]"),(0,o.yg)("p",null,"CJS\uff0c\u5168\u79f0\u662f CommonJS \u6a21\u5757\u5316\u89c4\u8303\uff0c\u76ee\u524d\u7528\u7684\u6bd4\u8f83\u5e7f\u6cdb\u662f\u5728 Node.js \u73af\u5883\u91cc\uff0c\u56e0\u4e3a Node.js \u521a\u8bde\u751f\u7684\u65f6\u5019\uff0c\u6a21\u5757\u5316\u65b9\u6848\u662f\u57fa\u4e8e CommonJS \u89c4\u8303\u6765\u5b9e\u73b0\u7684\uff0c\u800c\u4e14\uff0cCJS \u89c4\u8303\u4e5f\u662f\u5728 ES6 \u8349\u6848\u786e\u5b9a\u4e4b\u524d\u8bde\u751f\u7684\u3001\u517c\u5bb9 ES5 \u7684\u73af\u5883\u3002"),(0,o.yg)("h3",{id:"amd"},"AMD"),(0,o.yg)("p",null,"AMD\uff0c\u5168\u79f0\u662f Asynchronous Module Definition\uff0c\u201c\u5f02\u6b65\u6a21\u5757\u5b9a\u4e49\u201d\uff0c\u662f\u4e00\u79cd\u9762\u5411\u6d4f\u89c8\u5668\u8fd0\u884c\u7684\u6a21\u5757\u5316\u65b9\u6848\u3002"),(0,o.yg)("p",null,"AMD \u5728 ES6 \u8fd8\u6ca1\u51fa\u73b0\u4e4b\u524d\uff0c\u662f ES5 \u73af\u5883\u4e0b\u5e38\u89c1\u7528\u7684\u6a21\u5757\u5316\u65b9\u6848\u3002\u8fd9\u91cc\u63d0\u5230\u7684\u201c\u5f02\u6b65\u6a21\u5757\u201d\uff0c\u662f\u6307\u6309\u6a21\u5757\u7684\u4f9d\u8d56\u6765\u5f02\u6b65\u52a0\u8f7d AMD \u6a21\u5757\uff0c\u7b49\u5f85\u4f9d\u8d56\u6a21\u5757\u5f02\u6b65\u52a0\u8f7d\u5b8c\uff0c\u5c31\u5f00\u59cb\u6267\u884c\u4e3b\u4f53\u4ee3\u7801\u3002\u5168\u7a0b\u7684\u8fd0\u884c\u65f6\u6267\u884c\u8fc7\u7a0b\uff0c\u90fd\u662f\u57fa\u4e8e ES5 \u7684\u8bed\u6cd5\u80fd\u529b\u6765\u5b9e\u73b0\u7684\u3002\u4f46\u662f\uff0cAMD \u53ea\u662f\u4e00\u79cd\u6280\u672f\u65b9\u6848\uff0c\u4e5f\u5c31\u662f\u89c4\u8303\uff0c\u5177\u4f53\u6280\u672f\u5b9e\u73b0\u9700\u8981\u6839\u636e\u89c4\u8303\uff0c\u5b9e\u73b0\u5176\u8fd0\u884c\u65f6\u3002\u76ee\u524d\u4e3b\u6d41\u7684 AMD \u6280\u672f\u6846\u67b6\u6709 RequireJS\u3002"),(0,o.yg)("h3",{id:"cmd"},"CMD"),(0,o.yg)("h3",{id:"umd"},"UMD"),(0,o.yg)("h3",{id:"es6-modulesesmes6m"},"ES6 Modules\u3010ESM\u3011\u3010ES6M\u3011"),(0,o.yg)("p",null,"export\u9700\u8981\u6ce8\u610fES6 module\u662f\u5411\u5916\u629b\u7684\u503c\u7684\u5f15\u7528\uff0c\u662f\u5f15\u7528\u3002\uff08\u8fd9\u548cCommonJS\u6a21\u5757\u4e0d\u4e00\u6837\uff0cCommonJS\u662f\u5411\u5916\u629b\u7684\u503c\u7684\u62f7\u8d1d\uff09"),(0,o.yg)("p",null,"export\u8bed\u53e5\u8f93\u51fa\u7684\u63a5\u53e3\uff0c\u4e0e\u5176\u5bf9\u5e94\u7684\u503c\u662f\u52a8\u6001\u7ed1\u5b9a\u5173\u7cfb\uff0c\u5373\u901a\u8fc7\u8be5\u63a5\u53e3\uff0c\u53ef\u4ee5\u53d6\u5230\u6a21\u5757\u5185\u90e8\u5b9e\u65f6\u7684\u503c\u3002\u8fd9\u4e00\u70b9\u4e0e CommonJS \u89c4\u8303\u5b8c\u5168\u4e0d\u540c\u3002CommonJS \u6a21\u5757\u8f93\u51fa\u7684\u662f\u503c\u7684\u7f13\u5b58\uff0c\u4e0d\u5b58\u5728\u52a8\u6001\u66f4\u65b0\u3002"),(0,o.yg)("p",null,"export\u547d\u4ee4\u53ef\u4ee5\u51fa\u73b0\u5728\u6a21\u5757\u7684\u4efb\u4f55\u4f4d\u7f6e\uff0c\u53ea\u8981\u5904\u4e8e\u6a21\u5757\u9876\u5c42\u5c31\u53ef\u4ee5\u3002\u5982\u679c\u5904\u4e8e\u5757\u7ea7\u4f5c\u7528\u57df\u5185\uff0c\u5c31\u4f1a\u62a5\u9519\uff0cimport\u547d\u4ee4\u4e5f\u662f\u5982\u6b64\u3002\u8fd9\u662f\u56e0\u4e3a\u5904\u4e8e\u6761\u4ef6\u4ee3\u7801\u5757\u4e4b\u4e2d\uff0c\u5c31\u6ca1\u6cd5\u505a\u9759\u6001\u4f18\u5316\u4e86\uff0c\u8fdd\u80cc\u4e86 ES6 \u6a21\u5757\u7684\u8bbe\u8ba1\u521d\u8877\u3010\u9759\u6001\u7f16\u8bd1\u3011\u3002"),(0,o.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,o.yg)("ol",null,(0,o.yg)("li",{parentName:"ol"},(0,o.yg)("a",{parentName:"li",href:"https://blog.csdn.net/leelxp/article/details/108101442"},"\u524d\u7aef\u5de5\u7a0b\u5316\uff1aCommonJS\u3001AMD\u3001CMD\u3001UMD\u548cES Modules\u7684\u533a\u522b"))))}p.isMDXComponent=!0},3206:(e,t,n)=>{n.d(t,{A:()=>r});const r=n.p+"assets/images/mo-kuai-hua-cced05ee2f85ff5f8102bec470c479ae.png"}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1226],{5680:(e,t,n)=>{n.d(t,{xA:()=>c,yg:()=>y});var r=n(6540);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=r.createContext({}),u=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},c=function(e){var t=u(e.components);return r.createElement(s.Provider,{value:t},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,l=e.originalType,s=e.parentName,c=a(e,["components","mdxType","originalType","parentName"]),d=u(n),m=o,y=d["".concat(s,".").concat(m)]||d[m]||p[m]||l;return n?r.createElement(y,i(i({ref:t},c),{},{components:n})):r.createElement(y,i({ref:t},c))}));function y(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var l=n.length,i=new Array(l);i[0]=m;var a={};for(var s in t)hasOwnProperty.call(t,s)&&(a[s]=t[s]);a.originalType=e,a[d]="string"==typeof e?e:o,i[1]=a;for(var u=2;u{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>p,frontMatter:()=>l,metadata:()=>a,toc:()=>u});var r=n(8168),o=(n(6540),n(5680));const l={sidebar_position:2},i=void 0,a={unversionedId:"study/fe/\u524d\u7aef\u6a21\u5757\u5316",id:"study/fe/\u524d\u7aef\u6a21\u5757\u5316",title:"\u524d\u7aef\u6a21\u5757\u5316",description:"\u80cc\u666f",source:"@site/docs/study/fe/\u524d\u7aef\u6a21\u5757\u5316.md",sourceDirName:"study/fe",slug:"/study/fe/\u524d\u7aef\u6a21\u5757\u5316",permalink:"/docs/study/fe/\u524d\u7aef\u6a21\u5757\u5316",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"studySidebar",previous:{title:"\u6982\u8ff0",permalink:"/docs/study/fe/"},next:{title:"ARMS\u524d\u7aef\u76d1\u63a7",permalink:"/docs/study/fe/ARMS\u524d\u7aef\u76d1\u63a7"}},s={},u=[{value:"\u80cc\u666f",id:"\u80cc\u666f",level:3},{value:"IIFE",id:"iife",level:3},{value:"CommonJSCJS",id:"commonjscjs",level:3},{value:"AMD",id:"amd",level:3},{value:"CMD",id:"cmd",level:3},{value:"UMD",id:"umd",level:3},{value:"ES6 Modules\u3010ESM\u3011\u3010ES6M\u3011",id:"es6-modulesesmes6m",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],c={toc:u},d="wrapper";function p(e){let{components:t,...l}=e;return(0,o.yg)(d,(0,r.A)({},c,l,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"\u80cc\u666f"},"\u80cc\u666f"),(0,o.yg)("p",null,"\u4e3a\u4ec0\u4e48\u524d\u7aef\u4f1a\u6709\u8fd9\u4e48\u591a\u6a21\u5757\u5316\u65b9\u6848\uff1f\u4e3b\u8981\u539f\u56e0\u5c31\u662fES5\u53ca\u4e4b\u524d\u662f\u4e0d\u652f\u6301\u6a21\u5757\u5316\u7684\u3002"),(0,o.yg)("p",null,(0,o.yg)("img",{alt:"\u6a21\u5757\u5316\u65b9\u6848",src:n(3206).A,width:"750",height:"541"})),(0,o.yg)("h3",{id:"iife"},"IIFE"),(0,o.yg)("p",null,"IIFE\uff0c\u5168\u79f0\u662f Immediately Invoked Function Expression\uff0c\u201c\u7acb\u5373\u6267\u884c\u51fd\u6570\u201d\u7684\u610f\u601d\u3002\u5982\u679c\u8981\u5b9e\u73b0\u6a21\u5757\u5316\uff0c\u5c31\u9700\u8981\u5728 IIFE \u4e2d\uff0c\u628a\u4ee3\u7801\u6302\u8f7d\u5728\u5168\u5c40\u53d8\u91cf\u4e0a\u3002"),(0,o.yg)("p",null,"\u8fd9\u4e5f\u662f\u65e9\u671f JavaScript \u7684\u6a21\u5757\u5316\u65b9\u6848\uff0c\u6839\u636e\u4e0d\u540c\u73af\u5883\uff0c\u628a\u6a21\u5757\u5168\u90e8\u6302\u8f7d\u5728\u5bf9\u5e94\u73af\u5883\u7684\u5168\u5c40\u53d8\u91cf\u4e0a\uff0c\u6d4f\u89c8\u5668\u5c31\u6302\u8f7d\u5728\u201cwindow\u201d\u5bf9\u8c61\u4e0a\uff0cNode.js \u5c31\u6302\u8f7d\u5728 global \u5168\u5c40\u53d8\u91cf\u4e0a\u3002"),(0,o.yg)("h3",{id:"commonjscjs"},"CommonJS","[CJS]"),(0,o.yg)("p",null,"CJS\uff0c\u5168\u79f0\u662f CommonJS \u6a21\u5757\u5316\u89c4\u8303\uff0c\u76ee\u524d\u7528\u7684\u6bd4\u8f83\u5e7f\u6cdb\u662f\u5728 Node.js \u73af\u5883\u91cc\uff0c\u56e0\u4e3a Node.js \u521a\u8bde\u751f\u7684\u65f6\u5019\uff0c\u6a21\u5757\u5316\u65b9\u6848\u662f\u57fa\u4e8e CommonJS \u89c4\u8303\u6765\u5b9e\u73b0\u7684\uff0c\u800c\u4e14\uff0cCJS \u89c4\u8303\u4e5f\u662f\u5728 ES6 \u8349\u6848\u786e\u5b9a\u4e4b\u524d\u8bde\u751f\u7684\u3001\u517c\u5bb9 ES5 \u7684\u73af\u5883\u3002"),(0,o.yg)("h3",{id:"amd"},"AMD"),(0,o.yg)("p",null,"AMD\uff0c\u5168\u79f0\u662f Asynchronous Module Definition\uff0c\u201c\u5f02\u6b65\u6a21\u5757\u5b9a\u4e49\u201d\uff0c\u662f\u4e00\u79cd\u9762\u5411\u6d4f\u89c8\u5668\u8fd0\u884c\u7684\u6a21\u5757\u5316\u65b9\u6848\u3002"),(0,o.yg)("p",null,"AMD \u5728 ES6 \u8fd8\u6ca1\u51fa\u73b0\u4e4b\u524d\uff0c\u662f ES5 \u73af\u5883\u4e0b\u5e38\u89c1\u7528\u7684\u6a21\u5757\u5316\u65b9\u6848\u3002\u8fd9\u91cc\u63d0\u5230\u7684\u201c\u5f02\u6b65\u6a21\u5757\u201d\uff0c\u662f\u6307\u6309\u6a21\u5757\u7684\u4f9d\u8d56\u6765\u5f02\u6b65\u52a0\u8f7d AMD \u6a21\u5757\uff0c\u7b49\u5f85\u4f9d\u8d56\u6a21\u5757\u5f02\u6b65\u52a0\u8f7d\u5b8c\uff0c\u5c31\u5f00\u59cb\u6267\u884c\u4e3b\u4f53\u4ee3\u7801\u3002\u5168\u7a0b\u7684\u8fd0\u884c\u65f6\u6267\u884c\u8fc7\u7a0b\uff0c\u90fd\u662f\u57fa\u4e8e ES5 \u7684\u8bed\u6cd5\u80fd\u529b\u6765\u5b9e\u73b0\u7684\u3002\u4f46\u662f\uff0cAMD \u53ea\u662f\u4e00\u79cd\u6280\u672f\u65b9\u6848\uff0c\u4e5f\u5c31\u662f\u89c4\u8303\uff0c\u5177\u4f53\u6280\u672f\u5b9e\u73b0\u9700\u8981\u6839\u636e\u89c4\u8303\uff0c\u5b9e\u73b0\u5176\u8fd0\u884c\u65f6\u3002\u76ee\u524d\u4e3b\u6d41\u7684 AMD \u6280\u672f\u6846\u67b6\u6709 RequireJS\u3002"),(0,o.yg)("h3",{id:"cmd"},"CMD"),(0,o.yg)("h3",{id:"umd"},"UMD"),(0,o.yg)("h3",{id:"es6-modulesesmes6m"},"ES6 Modules\u3010ESM\u3011\u3010ES6M\u3011"),(0,o.yg)("p",null,"export\u9700\u8981\u6ce8\u610fES6 module\u662f\u5411\u5916\u629b\u7684\u503c\u7684\u5f15\u7528\uff0c\u662f\u5f15\u7528\u3002\uff08\u8fd9\u548cCommonJS\u6a21\u5757\u4e0d\u4e00\u6837\uff0cCommonJS\u662f\u5411\u5916\u629b\u7684\u503c\u7684\u62f7\u8d1d\uff09"),(0,o.yg)("p",null,"export\u8bed\u53e5\u8f93\u51fa\u7684\u63a5\u53e3\uff0c\u4e0e\u5176\u5bf9\u5e94\u7684\u503c\u662f\u52a8\u6001\u7ed1\u5b9a\u5173\u7cfb\uff0c\u5373\u901a\u8fc7\u8be5\u63a5\u53e3\uff0c\u53ef\u4ee5\u53d6\u5230\u6a21\u5757\u5185\u90e8\u5b9e\u65f6\u7684\u503c\u3002\u8fd9\u4e00\u70b9\u4e0e CommonJS \u89c4\u8303\u5b8c\u5168\u4e0d\u540c\u3002CommonJS \u6a21\u5757\u8f93\u51fa\u7684\u662f\u503c\u7684\u7f13\u5b58\uff0c\u4e0d\u5b58\u5728\u52a8\u6001\u66f4\u65b0\u3002"),(0,o.yg)("p",null,"export\u547d\u4ee4\u53ef\u4ee5\u51fa\u73b0\u5728\u6a21\u5757\u7684\u4efb\u4f55\u4f4d\u7f6e\uff0c\u53ea\u8981\u5904\u4e8e\u6a21\u5757\u9876\u5c42\u5c31\u53ef\u4ee5\u3002\u5982\u679c\u5904\u4e8e\u5757\u7ea7\u4f5c\u7528\u57df\u5185\uff0c\u5c31\u4f1a\u62a5\u9519\uff0cimport\u547d\u4ee4\u4e5f\u662f\u5982\u6b64\u3002\u8fd9\u662f\u56e0\u4e3a\u5904\u4e8e\u6761\u4ef6\u4ee3\u7801\u5757\u4e4b\u4e2d\uff0c\u5c31\u6ca1\u6cd5\u505a\u9759\u6001\u4f18\u5316\u4e86\uff0c\u8fdd\u80cc\u4e86 ES6 \u6a21\u5757\u7684\u8bbe\u8ba1\u521d\u8877\u3010\u9759\u6001\u7f16\u8bd1\u3011\u3002"),(0,o.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,o.yg)("ol",null,(0,o.yg)("li",{parentName:"ol"},(0,o.yg)("a",{parentName:"li",href:"https://blog.csdn.net/leelxp/article/details/108101442"},"\u524d\u7aef\u5de5\u7a0b\u5316\uff1aCommonJS\u3001AMD\u3001CMD\u3001UMD\u548cES Modules\u7684\u533a\u522b"))))}p.isMDXComponent=!0},3206:(e,t,n)=>{n.d(t,{A:()=>r});const r=n.p+"assets/images/mo-kuai-hua-cced05ee2f85ff5f8102bec470c479ae.png"}}]); \ No newline at end of file diff --git a/assets/js/d92575b7.6b15b1df.js b/assets/js/d92575b7.dc06a0a5.js similarity index 98% rename from assets/js/d92575b7.6b15b1df.js rename to assets/js/d92575b7.dc06a0a5.js index c5f954e87..bb71fd86b 100644 --- a/assets/js/d92575b7.6b15b1df.js +++ b/assets/js/d92575b7.dc06a0a5.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[700],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),s=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=s(e.components);return n.createElement(l.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),p=s(r),y=o,f=p["".concat(l,".").concat(y)]||p[y]||d[y]||a;return r?n.createElement(f,i(i({ref:t},u),{},{components:r})):n.createElement(f,i({ref:t},u))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=y;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[p]="string"==typeof e?e:o,i[1]=c;for(var s=2;s{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>s});var n=r(8168),o=(r(6540),r(5680));const a={sidebar_position:1},i="\u6982\u8ff0",c={unversionedId:"study/db/index",id:"study/db/index",title:"\u6982\u8ff0",description:"\u5b58\u50a8\u6570\u636e\u7684\u670d\u52a1\u7edf\u4e00\u6210\u4e3a\u6570\u636e\u5e93\uff0c\u5305\u62ec\u4f46\u4e0d\u9650\u4e8e\uff1a",source:"@site/docs/study/db/index.md",sourceDirName:"study/db",slug:"/study/db/",permalink:"/docs/study/db/",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"studySidebar",previous:{title:"\u5fae\u670d\u52a1",permalink:"/docs/study/back/springcloud/\u5fae\u670d\u52a1"},next:{title:"\u7efc\u5408",permalink:"/docs/study/db/\u7efc\u5408"}},l={},s=[],u={toc:s},p="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(p,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"\u6982\u8ff0"},"\u6982\u8ff0"),(0,o.yg)("p",null,"\u5b58\u50a8\u6570\u636e\u7684\u670d\u52a1\u7edf\u4e00\u6210\u4e3a\u6570\u636e\u5e93\uff0c\u5305\u62ec\u4f46\u4e0d\u9650\u4e8e\uff1a"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"\u5173\u7cfb\u6570\u636e\u5e93 msyql\u3001oracle \u7b49"),(0,o.yg)("li",{parentName:"ul"},"\u975e\u5173\u7cfb\u6570\u636e\u5e93 redis\u3001MongoDB \u7b49")))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[700],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),s=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=s(e.components);return n.createElement(l.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),p=s(r),y=o,f=p["".concat(l,".").concat(y)]||p[y]||d[y]||a;return r?n.createElement(f,i(i({ref:t},u),{},{components:r})):n.createElement(f,i({ref:t},u))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=y;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[p]="string"==typeof e?e:o,i[1]=c;for(var s=2;s{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>s});var n=r(8168),o=(r(6540),r(5680));const a={sidebar_position:1},i="\u6982\u8ff0",c={unversionedId:"study/db/index",id:"study/db/index",title:"\u6982\u8ff0",description:"\u5b58\u50a8\u6570\u636e\u7684\u670d\u52a1\u7edf\u4e00\u6210\u4e3a\u6570\u636e\u5e93\uff0c\u5305\u62ec\u4f46\u4e0d\u9650\u4e8e\uff1a",source:"@site/docs/study/db/index.md",sourceDirName:"study/db",slug:"/study/db/",permalink:"/docs/study/db/",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"studySidebar",previous:{title:"\u5fae\u670d\u52a1",permalink:"/docs/study/back/springcloud/\u5fae\u670d\u52a1"},next:{title:"\u7efc\u5408",permalink:"/docs/study/db/\u7efc\u5408"}},l={},s=[],u={toc:s},p="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(p,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"\u6982\u8ff0"},"\u6982\u8ff0"),(0,o.yg)("p",null,"\u5b58\u50a8\u6570\u636e\u7684\u670d\u52a1\u7edf\u4e00\u6210\u4e3a\u6570\u636e\u5e93\uff0c\u5305\u62ec\u4f46\u4e0d\u9650\u4e8e\uff1a"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},"\u5173\u7cfb\u6570\u636e\u5e93 msyql\u3001oracle \u7b49"),(0,o.yg)("li",{parentName:"ul"},"\u975e\u5173\u7cfb\u6570\u636e\u5e93 redis\u3001MongoDB \u7b49")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/da59034b.e7215ca1.js b/assets/js/da59034b.2d4ea727.js similarity index 98% rename from assets/js/da59034b.e7215ca1.js rename to assets/js/da59034b.2d4ea727.js index 7a6f29f06..27d8451b9 100644 --- a/assets/js/da59034b.e7215ca1.js +++ b/assets/js/da59034b.2d4ea727.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1053],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>m});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var i=n.createContext({}),p=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(i.Provider,{value:t},e.children)},s="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,i=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),s=p(r),d=a,m=s["".concat(i,".").concat(d)]||s[d]||y[d]||o;return r?n.createElement(m,l(l({ref:t},u),{},{components:r})):n.createElement(m,l({ref:t},u))}));function m(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,l=new Array(o);l[0]=d;var c={};for(var i in t)hasOwnProperty.call(t,i)&&(c[i]=t[i]);c.originalType=e,c[s]="string"==typeof e?e:a,l[1]=c;for(var p=2;p{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>l,default:()=>y,frontMatter:()=>o,metadata:()=>c,toc:()=>p});var n=r(8168),a=(r(6540),r(5680));const o={},l="C++",c={unversionedId:"study/program/CPP/index",id:"study/program/CPP/index",title:"C++",description:"C++\u6807\u51c6",source:"@site/docs/study/program/CPP/index.md",sourceDirName:"study/program/CPP",slug:"/study/program/CPP/",permalink:"/docs/study/program/CPP/",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u865a\u62df\u7f51\u5361",permalink:"/docs/study/program/C/\u865a\u62df\u7f51\u5361"},next:{title:"CGI",permalink:"/docs/study/program/CPP/CGI"}},i={},p=[{value:"C++\u6807\u51c6",id:"c\u6807\u51c6",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],u={toc:p},s="wrapper";function y(e){let{components:t,...r}=e;return(0,a.yg)(s,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"c"},"C++"),(0,a.yg)("h3",{id:"c\u6807\u51c6"},"C++\u6807\u51c6"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"C++98 1998 \u5e74 \u7b2c\u4e00\u4e2a\u6807\u51c6"),(0,a.yg)("li",{parentName:"ul"},"C++03 2003 \u5e74 \u7b2c\u4e8c\u4e2a\u6807\u51c6"),(0,a.yg)("li",{parentName:"ul"},"C++11 2011 \u5e74 \u7b2c\u4e09\u4e2a\u6807\u51c6"),(0,a.yg)("li",{parentName:"ul"},"C++14 2014 \u5e74 \u7b2c\u56db\u4e2a\u6807\u51c6"),(0,a.yg)("li",{parentName:"ul"},"C++17 2017 \u5e74 \u7b2c\u4e94\u4e2a\u6807\u51c6"),(0,a.yg)("li",{parentName:"ul"},"C++20 2020 \u5e74 \u7b2c\u516d\u4e2a\u6807\u51c6")),(0,a.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://www.w3cschool.cn/cpp/cpp-intro.html"},"W3Cshool-C++"))))}y.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1053],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>m});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var i=n.createContext({}),p=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(i.Provider,{value:t},e.children)},s="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,i=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),s=p(r),d=a,m=s["".concat(i,".").concat(d)]||s[d]||y[d]||o;return r?n.createElement(m,l(l({ref:t},u),{},{components:r})):n.createElement(m,l({ref:t},u))}));function m(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,l=new Array(o);l[0]=d;var c={};for(var i in t)hasOwnProperty.call(t,i)&&(c[i]=t[i]);c.originalType=e,c[s]="string"==typeof e?e:a,l[1]=c;for(var p=2;p{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>l,default:()=>y,frontMatter:()=>o,metadata:()=>c,toc:()=>p});var n=r(8168),a=(r(6540),r(5680));const o={},l="C++",c={unversionedId:"study/program/CPP/index",id:"study/program/CPP/index",title:"C++",description:"C++\u6807\u51c6",source:"@site/docs/study/program/CPP/index.md",sourceDirName:"study/program/CPP",slug:"/study/program/CPP/",permalink:"/docs/study/program/CPP/",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u865a\u62df\u7f51\u5361",permalink:"/docs/study/program/C/\u865a\u62df\u7f51\u5361"},next:{title:"CGI",permalink:"/docs/study/program/CPP/CGI"}},i={},p=[{value:"C++\u6807\u51c6",id:"c\u6807\u51c6",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],u={toc:p},s="wrapper";function y(e){let{components:t,...r}=e;return(0,a.yg)(s,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"c"},"C++"),(0,a.yg)("h3",{id:"c\u6807\u51c6"},"C++\u6807\u51c6"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"C++98 1998 \u5e74 \u7b2c\u4e00\u4e2a\u6807\u51c6"),(0,a.yg)("li",{parentName:"ul"},"C++03 2003 \u5e74 \u7b2c\u4e8c\u4e2a\u6807\u51c6"),(0,a.yg)("li",{parentName:"ul"},"C++11 2011 \u5e74 \u7b2c\u4e09\u4e2a\u6807\u51c6"),(0,a.yg)("li",{parentName:"ul"},"C++14 2014 \u5e74 \u7b2c\u56db\u4e2a\u6807\u51c6"),(0,a.yg)("li",{parentName:"ul"},"C++17 2017 \u5e74 \u7b2c\u4e94\u4e2a\u6807\u51c6"),(0,a.yg)("li",{parentName:"ul"},"C++20 2020 \u5e74 \u7b2c\u516d\u4e2a\u6807\u51c6")),(0,a.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://www.w3cschool.cn/cpp/cpp-intro.html"},"W3Cshool-C++"))))}y.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/de78196c.e4a74141.js b/assets/js/de78196c.abc0e5ea.js similarity index 98% rename from assets/js/de78196c.e4a74141.js rename to assets/js/de78196c.abc0e5ea.js index b1509262d..b48314456 100644 --- a/assets/js/de78196c.e4a74141.js +++ b/assets/js/de78196c.abc0e5ea.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7816],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),s=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},u=function(e){var t=s(e.components);return n.createElement(l.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),p=s(r),y=o,f=p["".concat(l,".").concat(y)]||p[y]||d[y]||a;return r?n.createElement(f,c(c({ref:t},u),{},{components:r})):n.createElement(f,c({ref:t},u))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=y;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[p]="string"==typeof e?e:o,c[1]=i;for(var s=2;s{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>c,default:()=>d,frontMatter:()=>a,metadata:()=>i,toc:()=>s});var n=r(8168),o=(r(6540),r(5680));const a={},c=void 0,i={unversionedId:"study/think/\u7f13\u5b58/\u5206\u5e03\u5f0f\u7f13\u5b58",id:"study/think/\u7f13\u5b58/\u5206\u5e03\u5f0f\u7f13\u5b58",title:"\u5206\u5e03\u5f0f\u7f13\u5b58",description:"\u7f13\u5b58\u4f5c\u4e3a\u78c1\u76d8\u4ee5\u5916\u7684\u4e00\u79cd\u5b58\u50a8\u6570\u636e\u7684\u65b9\u5f0f\uff0c\u5b83\u6709\u7740\u6bd4\u78c1\u76d8\u66f4\u5feb\u7684\u5b58\u53d6\u6548\u7387\uff0c\u56e0\u6b64\uff0c\u53ef\u4ee5\u6709\u6548\u63d0\u9ad8\u7cfb\u7edf\u7684\u6027\u80fd\u3002\u5728\u5355\u4f53\u7cfb\u7edf\u4e2d\uff0c\u4e00\u822c\u4f1a\u7528\u5230\u672c\u5730\u7f13\u5b58\u3002\u4f46\u5728\u5206\u5e03\u5f0f\u7cfb\u7edf\u4e2d\uff0c\u672c\u5730\u7f13\u5b58\u5c31\u663e\u5f97\u4e0d\u591f\u7528\u4e86\uff0c\u8fd9\u65f6\u5f80\u5f80\u8981\u7528\u5230\u5206\u5e03\u5f0f\u7f13\u5b58\u3002",source:"@site/docs/study/think/\u7f13\u5b58/\u5206\u5e03\u5f0f\u7f13\u5b58.md",sourceDirName:"study/think/\u7f13\u5b58",slug:"/study/think/\u7f13\u5b58/\u5206\u5e03\u5f0f\u7f13\u5b58",permalink:"/docs/study/think/\u7f13\u5b58/\u5206\u5e03\u5f0f\u7f13\u5b58",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u7f13\u5b58",permalink:"/docs/study/think/\u7f13\u5b58/"},next:{title:"\u8c08\u5de5\u4f5c\u5fc3\u5f97",permalink:"/docs/study/think/\u8c08\u5de5\u4f5c\u5fc3\u5f97"}},l={},s=[{value:"Jboss Cache",id:"jboss-cache",level:4},{value:"Memcache",id:"memcache",level:4},{value:"Redis",id:"redis",level:4},{value:"\u53c2\u8003\u8d44\u6599",id:"\u53c2\u8003\u8d44\u6599",level:4}],u={toc:s},p="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(p,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("p",null,"\u7f13\u5b58\u4f5c\u4e3a\u78c1\u76d8\u4ee5\u5916\u7684\u4e00\u79cd\u5b58\u50a8\u6570\u636e\u7684\u65b9\u5f0f\uff0c\u5b83\u6709\u7740\u6bd4\u78c1\u76d8\u66f4\u5feb\u7684\u5b58\u53d6\u6548\u7387\uff0c\u56e0\u6b64\uff0c\u53ef\u4ee5\u6709\u6548\u63d0\u9ad8\u7cfb\u7edf\u7684\u6027\u80fd\u3002\u5728\u5355\u4f53\u7cfb\u7edf\u4e2d\uff0c\u4e00\u822c\u4f1a\u7528\u5230\u672c\u5730\u7f13\u5b58\u3002\u4f46\u5728\u5206\u5e03\u5f0f\u7cfb\u7edf\u4e2d\uff0c\u672c\u5730\u7f13\u5b58\u5c31\u663e\u5f97\u4e0d\u591f\u7528\u4e86\uff0c\u8fd9\u65f6\u5f80\u5f80\u8981\u7528\u5230\u5206\u5e03\u5f0f\u7f13\u5b58\u3002"),(0,o.yg)("h4",{id:"jboss-cache"},"Jboss Cache"),(0,o.yg)("h4",{id:"memcache"},"Memcache"),(0,o.yg)("h4",{id:"redis"},"Redis"),(0,o.yg)("h4",{id:"\u53c2\u8003\u8d44\u6599"},"\u53c2\u8003\u8d44\u6599"),(0,o.yg)("ol",null,(0,o.yg)("li",{parentName:"ol"},(0,o.yg)("a",{parentName:"li",href:"https://www.cnblogs.com/ayic/p/17054981.html"},"\u804a\u804a\u5206\u5e03\u5f0f\u7f13\u5b58"))))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7816],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),s=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},u=function(e){var t=s(e.components);return n.createElement(l.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),p=s(r),y=o,f=p["".concat(l,".").concat(y)]||p[y]||d[y]||a;return r?n.createElement(f,c(c({ref:t},u),{},{components:r})):n.createElement(f,c({ref:t},u))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=y;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[p]="string"==typeof e?e:o,c[1]=i;for(var s=2;s{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>c,default:()=>d,frontMatter:()=>a,metadata:()=>i,toc:()=>s});var n=r(8168),o=(r(6540),r(5680));const a={},c=void 0,i={unversionedId:"study/think/\u7f13\u5b58/\u5206\u5e03\u5f0f\u7f13\u5b58",id:"study/think/\u7f13\u5b58/\u5206\u5e03\u5f0f\u7f13\u5b58",title:"\u5206\u5e03\u5f0f\u7f13\u5b58",description:"\u7f13\u5b58\u4f5c\u4e3a\u78c1\u76d8\u4ee5\u5916\u7684\u4e00\u79cd\u5b58\u50a8\u6570\u636e\u7684\u65b9\u5f0f\uff0c\u5b83\u6709\u7740\u6bd4\u78c1\u76d8\u66f4\u5feb\u7684\u5b58\u53d6\u6548\u7387\uff0c\u56e0\u6b64\uff0c\u53ef\u4ee5\u6709\u6548\u63d0\u9ad8\u7cfb\u7edf\u7684\u6027\u80fd\u3002\u5728\u5355\u4f53\u7cfb\u7edf\u4e2d\uff0c\u4e00\u822c\u4f1a\u7528\u5230\u672c\u5730\u7f13\u5b58\u3002\u4f46\u5728\u5206\u5e03\u5f0f\u7cfb\u7edf\u4e2d\uff0c\u672c\u5730\u7f13\u5b58\u5c31\u663e\u5f97\u4e0d\u591f\u7528\u4e86\uff0c\u8fd9\u65f6\u5f80\u5f80\u8981\u7528\u5230\u5206\u5e03\u5f0f\u7f13\u5b58\u3002",source:"@site/docs/study/think/\u7f13\u5b58/\u5206\u5e03\u5f0f\u7f13\u5b58.md",sourceDirName:"study/think/\u7f13\u5b58",slug:"/study/think/\u7f13\u5b58/\u5206\u5e03\u5f0f\u7f13\u5b58",permalink:"/docs/study/think/\u7f13\u5b58/\u5206\u5e03\u5f0f\u7f13\u5b58",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u7f13\u5b58",permalink:"/docs/study/think/\u7f13\u5b58/"},next:{title:"\u8c08\u5de5\u4f5c\u5fc3\u5f97",permalink:"/docs/study/think/\u8c08\u5de5\u4f5c\u5fc3\u5f97"}},l={},s=[{value:"Jboss Cache",id:"jboss-cache",level:4},{value:"Memcache",id:"memcache",level:4},{value:"Redis",id:"redis",level:4},{value:"\u53c2\u8003\u8d44\u6599",id:"\u53c2\u8003\u8d44\u6599",level:4}],u={toc:s},p="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(p,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("p",null,"\u7f13\u5b58\u4f5c\u4e3a\u78c1\u76d8\u4ee5\u5916\u7684\u4e00\u79cd\u5b58\u50a8\u6570\u636e\u7684\u65b9\u5f0f\uff0c\u5b83\u6709\u7740\u6bd4\u78c1\u76d8\u66f4\u5feb\u7684\u5b58\u53d6\u6548\u7387\uff0c\u56e0\u6b64\uff0c\u53ef\u4ee5\u6709\u6548\u63d0\u9ad8\u7cfb\u7edf\u7684\u6027\u80fd\u3002\u5728\u5355\u4f53\u7cfb\u7edf\u4e2d\uff0c\u4e00\u822c\u4f1a\u7528\u5230\u672c\u5730\u7f13\u5b58\u3002\u4f46\u5728\u5206\u5e03\u5f0f\u7cfb\u7edf\u4e2d\uff0c\u672c\u5730\u7f13\u5b58\u5c31\u663e\u5f97\u4e0d\u591f\u7528\u4e86\uff0c\u8fd9\u65f6\u5f80\u5f80\u8981\u7528\u5230\u5206\u5e03\u5f0f\u7f13\u5b58\u3002"),(0,o.yg)("h4",{id:"jboss-cache"},"Jboss Cache"),(0,o.yg)("h4",{id:"memcache"},"Memcache"),(0,o.yg)("h4",{id:"redis"},"Redis"),(0,o.yg)("h4",{id:"\u53c2\u8003\u8d44\u6599"},"\u53c2\u8003\u8d44\u6599"),(0,o.yg)("ol",null,(0,o.yg)("li",{parentName:"ol"},(0,o.yg)("a",{parentName:"li",href:"https://www.cnblogs.com/ayic/p/17054981.html"},"\u804a\u804a\u5206\u5e03\u5f0f\u7f13\u5b58"))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/e0041558.c6e82de2.js b/assets/js/e0041558.87cee600.js similarity index 98% rename from assets/js/e0041558.c6e82de2.js rename to assets/js/e0041558.87cee600.js index 5afdc99a3..c89173fc4 100644 --- a/assets/js/e0041558.c6e82de2.js +++ b/assets/js/e0041558.87cee600.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6473],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>m});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function a(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var p=n.createContext({}),l=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},u=function(e){var t=l(e.components);return n.createElement(p.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,i=e.originalType,p=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),s=l(r),y=o,m=s["".concat(p,".").concat(y)]||s[y]||d[y]||i;return r?n.createElement(m,a(a({ref:t},u),{},{components:r})):n.createElement(m,a({ref:t},u))}));function m(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=r.length,a=new Array(i);a[0]=y;var c={};for(var p in t)hasOwnProperty.call(t,p)&&(c[p]=t[p]);c.originalType=e,c[s]="string"==typeof e?e:o,a[1]=c;for(var l=2;l{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>a,default:()=>d,frontMatter:()=>i,metadata:()=>c,toc:()=>l});var n=r(8168),o=(r(6540),r(5680));const i={sidebar_position:1},a="\u6982\u8ff0",c={unversionedId:"study/competitive/index",id:"study/competitive/index",title:"\u6982\u8ff0",description:"\u7269\u8054\u7f51\u884c\u4e1a\u7684\u4e00\u4e9b\u4e1a\u52a1\u5206\u6790\u3001\u516c\u53f8\u5206\u6790\u3001\u884c\u4e1a\u5206\u6790\u3002",source:"@site/docs/study/competitive/index.md",sourceDirName:"study/competitive",slug:"/study/competitive/",permalink:"/docs/study/competitive/",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"studySidebar",previous:{title:"docker-nginx",permalink:"/docs/study/docker/docker-nginx"},next:{title:"\u5de5\u4e1a\u4e92\u8054\u7f51\u63a2\u7a76",permalink:"/docs/study/competitive/\u5de5\u4e1a\u4e92\u8054\u7f51\u63a2\u7a76"}},p={},l=[{value:"\u963f\u91cc\u4e91\u7269\u8054\u7f51\u5e73\u53f0",id:"\u963f\u91cc\u4e91\u7269\u8054\u7f51\u5e73\u53f0",level:3}],u={toc:l},s="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"\u6982\u8ff0"},"\u6982\u8ff0"),(0,o.yg)("p",null,"\u7269\u8054\u7f51\u884c\u4e1a\u7684\u4e00\u4e9b\u4e1a\u52a1\u5206\u6790\u3001\u516c\u53f8\u5206\u6790\u3001\u884c\u4e1a\u5206\u6790\u3002"),(0,o.yg)("h3",{id:"\u963f\u91cc\u4e91\u7269\u8054\u7f51\u5e73\u53f0"},"\u963f\u91cc\u4e91\u7269\u8054\u7f51\u5e73\u53f0"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://help.aliyun.com/zh/iot"},"\u6587\u6863\u5730\u5740\u9996\u9875")),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://help.aliyun.com/zh/iot/product-overview/terms/"},"\u57fa\u672c\u6982\u5ff5"),(0,o.yg)("ul",{parentName:"li"},(0,o.yg)("li",{parentName:"ul"},"\u7269\u6a21\u578b\uff1a\u5c5e\u6027\u3001\u670d\u52a1\u3001\u4e8b\u4ef6")))))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6473],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>m});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function a(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var p=n.createContext({}),l=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},u=function(e){var t=l(e.components);return n.createElement(p.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,i=e.originalType,p=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),s=l(r),y=o,m=s["".concat(p,".").concat(y)]||s[y]||d[y]||i;return r?n.createElement(m,a(a({ref:t},u),{},{components:r})):n.createElement(m,a({ref:t},u))}));function m(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=r.length,a=new Array(i);a[0]=y;var c={};for(var p in t)hasOwnProperty.call(t,p)&&(c[p]=t[p]);c.originalType=e,c[s]="string"==typeof e?e:o,a[1]=c;for(var l=2;l{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>a,default:()=>d,frontMatter:()=>i,metadata:()=>c,toc:()=>l});var n=r(8168),o=(r(6540),r(5680));const i={sidebar_position:1},a="\u6982\u8ff0",c={unversionedId:"study/competitive/index",id:"study/competitive/index",title:"\u6982\u8ff0",description:"\u7269\u8054\u7f51\u884c\u4e1a\u7684\u4e00\u4e9b\u4e1a\u52a1\u5206\u6790\u3001\u516c\u53f8\u5206\u6790\u3001\u884c\u4e1a\u5206\u6790\u3002",source:"@site/docs/study/competitive/index.md",sourceDirName:"study/competitive",slug:"/study/competitive/",permalink:"/docs/study/competitive/",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"studySidebar",previous:{title:"docker-nginx",permalink:"/docs/study/docker/docker-nginx"},next:{title:"\u5de5\u4e1a\u4e92\u8054\u7f51\u63a2\u7a76",permalink:"/docs/study/competitive/\u5de5\u4e1a\u4e92\u8054\u7f51\u63a2\u7a76"}},p={},l=[{value:"\u963f\u91cc\u4e91\u7269\u8054\u7f51\u5e73\u53f0",id:"\u963f\u91cc\u4e91\u7269\u8054\u7f51\u5e73\u53f0",level:3}],u={toc:l},s="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"\u6982\u8ff0"},"\u6982\u8ff0"),(0,o.yg)("p",null,"\u7269\u8054\u7f51\u884c\u4e1a\u7684\u4e00\u4e9b\u4e1a\u52a1\u5206\u6790\u3001\u516c\u53f8\u5206\u6790\u3001\u884c\u4e1a\u5206\u6790\u3002"),(0,o.yg)("h3",{id:"\u963f\u91cc\u4e91\u7269\u8054\u7f51\u5e73\u53f0"},"\u963f\u91cc\u4e91\u7269\u8054\u7f51\u5e73\u53f0"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://help.aliyun.com/zh/iot"},"\u6587\u6863\u5730\u5740\u9996\u9875")),(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://help.aliyun.com/zh/iot/product-overview/terms/"},"\u57fa\u672c\u6982\u5ff5"),(0,o.yg)("ul",{parentName:"li"},(0,o.yg)("li",{parentName:"ul"},"\u7269\u6a21\u578b\uff1a\u5c5e\u6027\u3001\u670d\u52a1\u3001\u4e8b\u4ef6")))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/e17376a0.9803abdf.js b/assets/js/e17376a0.e0a50227.js similarity index 98% rename from assets/js/e17376a0.9803abdf.js rename to assets/js/e17376a0.e0a50227.js index 74cf27fb0..649d4c1e3 100644 --- a/assets/js/e17376a0.9803abdf.js +++ b/assets/js/e17376a0.e0a50227.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7171],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),u=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},p=function(e){var t=u(e.components);return n.createElement(l.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),s=u(r),y=o,f=s["".concat(l,".").concat(y)]||s[y]||d[y]||a;return r?n.createElement(f,c(c({ref:t},p),{},{components:r})):n.createElement(f,c({ref:t},p))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=y;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[s]="string"==typeof e?e:o,c[1]=i;for(var u=2;u{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>c,default:()=>d,frontMatter:()=>a,metadata:()=>i,toc:()=>u});var n=r(8168),o=(r(6540),r(5680));const a={},c=void 0,i={unversionedId:"study/net/TCP",id:"study/net/TCP",title:"TCP",description:"\u4e09\u6b21\u63e1\u624b\u56db\u6b21\u6325\u624b",source:"@site/docs/study/net/TCP.md",sourceDirName:"study/net",slug:"/study/net/TCP",permalink:"/docs/study/net/TCP",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"OpenVPN",permalink:"/docs/study/net/OpenVPN"},next:{title:"UDP",permalink:"/docs/study/net/UDP"}},l={},u=[{value:"\u4e09\u6b21\u63e1\u624b\u56db\u6b21\u6325\u624b",id:"\u4e09\u6b21\u63e1\u624b\u56db\u6b21\u6325\u624b",level:3}],p={toc:u},s="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"\u4e09\u6b21\u63e1\u624b\u56db\u6b21\u6325\u624b"},"\u4e09\u6b21\u63e1\u624b\u56db\u6b21\u6325\u624b"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://zhuanlan.zhihu.com/p/591865232"},"\u77e5\u4e4e-\u8d85\u8d85\u8d85\u8be6\u7ec6\u8bb2\u89e3 TCP \u4e09\u6b21\u63e1\u624b\u4e0e\u56db\u6b21\u6325\u624b\uff08\u5927\u56fe\u89e3\uff09"))))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7171],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),u=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},p=function(e){var t=u(e.components);return n.createElement(l.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),s=u(r),y=o,f=s["".concat(l,".").concat(y)]||s[y]||d[y]||a;return r?n.createElement(f,c(c({ref:t},p),{},{components:r})):n.createElement(f,c({ref:t},p))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=y;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[s]="string"==typeof e?e:o,c[1]=i;for(var u=2;u{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>c,default:()=>d,frontMatter:()=>a,metadata:()=>i,toc:()=>u});var n=r(8168),o=(r(6540),r(5680));const a={},c=void 0,i={unversionedId:"study/net/TCP",id:"study/net/TCP",title:"TCP",description:"\u4e09\u6b21\u63e1\u624b\u56db\u6b21\u6325\u624b",source:"@site/docs/study/net/TCP.md",sourceDirName:"study/net",slug:"/study/net/TCP",permalink:"/docs/study/net/TCP",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"OpenVPN",permalink:"/docs/study/net/OpenVPN"},next:{title:"UDP",permalink:"/docs/study/net/UDP"}},l={},u=[{value:"\u4e09\u6b21\u63e1\u624b\u56db\u6b21\u6325\u624b",id:"\u4e09\u6b21\u63e1\u624b\u56db\u6b21\u6325\u624b",level:3}],p={toc:u},s="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"\u4e09\u6b21\u63e1\u624b\u56db\u6b21\u6325\u624b"},"\u4e09\u6b21\u63e1\u624b\u56db\u6b21\u6325\u624b"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://zhuanlan.zhihu.com/p/591865232"},"\u77e5\u4e4e-\u8d85\u8d85\u8d85\u8be6\u7ec6\u8bb2\u89e3 TCP \u4e09\u6b21\u63e1\u624b\u4e0e\u56db\u6b21\u6325\u624b\uff08\u5927\u56fe\u89e3\uff09"))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/e2835ef4.75f40bf5.js b/assets/js/e2835ef4.53c537f8.js similarity index 99% rename from assets/js/e2835ef4.75f40bf5.js rename to assets/js/e2835ef4.53c537f8.js index 57916004f..6e4906573 100644 --- a/assets/js/e2835ef4.75f40bf5.js +++ b/assets/js/e2835ef4.53c537f8.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8173],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>d});var n=r(6540);function l(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t=0||(l[r]=e[r]);return l}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(l[r]=e[r])}return l}var p=n.createContext({}),c=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},u=function(e){var t=c(e.components);return n.createElement(p.Provider,{value:t},e.children)},y="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},s=n.forwardRef((function(e,t){var r=e.components,l=e.mdxType,a=e.originalType,p=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),y=c(r),s=l,d=y["".concat(p,".").concat(s)]||y[s]||m[s]||a;return r?n.createElement(d,o(o({ref:t},u),{},{components:r})):n.createElement(d,o({ref:t},u))}));function d(e,t){var r=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var a=r.length,o=new Array(a);o[0]=s;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[y]="string"==typeof e?e:l,o[1]=i;for(var c=2;c{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>m,frontMatter:()=>a,metadata:()=>i,toc:()=>c});var n=r(8168),l=(r(6540),r(5680));const a={},o=void 0,i={unversionedId:"study/think/\u5b9e\u65f6\u8ba1\u7b97Storm+Flink",id:"study/think/\u5b9e\u65f6\u8ba1\u7b97Storm+Flink",title:"\u5b9e\u65f6\u8ba1\u7b97Storm+Flink",description:"\u5b9e\u65f6\u8ba1\u7b97",source:"@site/docs/study/think/\u5b9e\u65f6\u8ba1\u7b97Storm+Flink.md",sourceDirName:"study/think",slug:"/study/think/\u5b9e\u65f6\u8ba1\u7b97Storm+Flink",permalink:"/docs/study/think/\u5b9e\u65f6\u8ba1\u7b97Storm+Flink",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u4ee3\u7801\u5ba1\u67e5\u95ee\u9898\u624b\u518c",permalink:"/docs/study/think/\u4ee3\u7801\u8bc4\u5ba1/\u4ee3\u7801\u5ba1\u67e5\u95ee\u9898\u624b\u518c"},next:{title:"\u5e76\u53d1\u6a21\u578b",permalink:"/docs/study/think/\u5e76\u53d1\u6a21\u578b"}},p={},c=[{value:"\u5b9e\u65f6\u8ba1\u7b97",id:"\u5b9e\u65f6\u8ba1\u7b97",level:3},{value:"\u4e3b\u8981\u5e94\u7528",id:"\u4e3b\u8981\u5e94\u7528",level:3},{value:"Storm",id:"storm",level:3},{value:"Flink",id:"flink",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],u={toc:c},y="wrapper";function m(e){let{components:t,...r}=e;return(0,l.yg)(y,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,l.yg)("h3",{id:"\u5b9e\u65f6\u8ba1\u7b97"},"\u5b9e\u65f6\u8ba1\u7b97"),(0,l.yg)("p",null,"\u4e00\u79cd\u8003\u8651\u4e86\u65e0\u7ebf\u6570\u636e\u96c6\u7684\u6570\u636e\u5904\u7406\u5f15\u64ce\u3002\u53c8\u79f0\u5b9e\u65f6\u6d41\u5f0f\u8ba1\u7b97\u3001\u6d41\u5f0f\u8ba1\u7b97\uff0c\u90fd\u662f\u5dee\u4e0d\u591a\u7684\u6982\u5ff5\uff1b"),(0,l.yg)("p",null,"\u4e09\u4e2a\u7279\u5f81\uff1a"),(0,l.yg)("ol",null,(0,l.yg)("li",{parentName:"ol"},"\u65e0\u9650\u6570\u636e\uff0c\u662f\u6307\u4e00\u79cd\u4e0d\u65ad\u589e\u957f\uff0c\u57fa\u672c\u4e0a\u65e0\u9650\u7684\u6570\u636e\u96c6\uff0c\u4e5f\u53ef\u4ee5\u79f0\u4f5c\u6d41\u6570\u636e\uff0c\u4e0e\u4e4b\u5bf9\u5e94\u7684\u662f\u6709\u9650\u7684\u6570\u636e\u96c6\uff1b"),(0,l.yg)("li",{parentName:"ol"},"\u65e0\u754c\u6570\u636e\u5904\u7406\uff0c\u4e00\u79cd\u6301\u7eed\u7684\u6570\u636e\u5904\u7406\u6a21\u5f0f\uff0c\u80fd\u591f\u901a\u8fc7\u5904\u7406\u5f15\u64ce\u91cd\u590d\u7684\u53bb\u5904\u7406\u4e0a\u9762\u7684\u65e0\u9650\u6570\u636e\uff0c\u662f\u80fd\u591f\u7a81\u7834\u6709\u9650\u6570\u636e\u5904\u7406\u5f15\u64ce\u7684\u74f6\u9888\u7684\u3002"),(0,l.yg)("li",{parentName:"ol"},"\u4f4e\u5ef6\u8fdf\uff0c\u5ef6\u8fdf\u662f\u591a\u5c11\u5e76\u6ca1\u6709\u660e\u786e\u7684\u5b9a\u4e49\u3002\u4f46\u6211\u4eec\u90fd\u77e5\u9053\u6570\u636e\u7684\u4ef7\u503c\u5c06\u968f\u7740\u65f6\u95f4\u7684\u6d41\u901d\u964d\u4f4e\uff0c\u65f6\u6548\u6027\u5c06\u662f\u9700\u8981\u6301\u7eed\u89e3\u51b3\u7684\u95ee\u9898\u3002")),(0,l.yg)("p",null,"\u5b9e\u65f6\u8ba1\u7b97\u5176\u5b9e\u662f\u4e00\u4e2a\u76f8\u5bf9\u7684\u6982\u5ff5\uff0c\u5bf9\u4e8e\u6279\u5904\u7406\u3001\u8fd1\u5b9e\u65f6\u3001\u5fae\u6279\uff0c\u4e0d\u591a\u662f\u65f6\u95f4\u7684\u95ee\u9898\uff1b\n\u5b9e\u65f6\u6846\u67b6\u6709\u5f88\u591a\uff0c\u4f8b\u5982Storm\u3001Fink\u3001Kafka Streaming\u3001Spark Streaming\uff1b\n\u540c\u65f6\u652f\u6301\u6d41\u5904\u7406\u548c\u6279\u5904\u7406\u7684\u8ba1\u7b97\u5f15\u64ce\uff0c\u6709\u4e24\u79cd\u9009\u62e9\uff1a\u4e00\u4e2a\u662fApache Spark\uff0c\u4e00\u4e2a\u662fApache Flink\u3002\u4ece\u6280\u672f\uff0c\u751f\u6001\u7b49\u5404\u65b9\u9762\u7684\u7efc\u5408\u8003\u8651\uff0c\u9996\u5148\uff0cSpark\u7684\u6280\u672f\u7406\u5ff5\u662f\u57fa\u4e8e\u6279\u6765\u6a21\u62df\u6d41\u7684\u8ba1\u7b97\u3002\u800cFlink\u5219\u5b8c\u5168\u76f8\u53cd\uff0c\u5b83\u91c7\u7528\u7684\u662f\u57fa\u4e8e\u6d41\u8ba1\u7b97\u6765\u6a21\u62df\u6279\u8ba1\u7b97\u3002\u4ece\u6280\u672f\u53d1\u5c55\u65b9\u5411\u770b\uff0c\u7528\u6279\u6765\u6a21\u62df\u6d41\u6709\u4e00\u5b9a\u7684\u6280\u672f\u5c40\u9650\u6027\uff0c\u5e76\u4e14\u8fd9\u4e2a\u5c40\u9650\u6027\u53ef\u80fd\u5f88\u96be\u7a81\u7834\u3002\u800cFlink\u57fa\u4e8e\u6d41\u6765\u6a21\u62df\u6279\uff0c\u5728\u6280\u672f\u4e0a\u6709\u66f4\u597d\u7684\u6269\u5c55\u6027\u3002"),(0,l.yg)("h3",{id:"\u4e3b\u8981\u5e94\u7528"},"\u4e3b\u8981\u5e94\u7528"),(0,l.yg)("ol",null,(0,l.yg)("li",{parentName:"ol"},"\u65e5\u5fd7\u5206\u6790\uff0c\u6bd4\u5982\u5bf9\u7f51\u7ad9\u7684\u7528\u6237\u8bbf\u95ee\u65e5\u5fd7\u8fdb\u884c\u5b9e\u65f6\u7684\u5206\u6790\uff0c\u8ba1\u7b97\u8bbf\u95ee\u91cf\uff0c\u7528\u6237\u753b\u50cf\uff0c\u7559\u5b58\u7387\u7b49\u7b49\uff0c\u5b9e\u65f6\u7684\u8fdb\u884c\u6570\u636e\u5206\u6790\uff0c\u5e2e\u52a9\u4f01\u4e1a\u8fdb\u884c\u51b3\u7b56\u3002"),(0,l.yg)("li",{parentName:"ol"},"\u7269\u8054\u7f51\uff0c\u6bd4\u5982\u5bf9\u7535\u529b\u7cfb\u7edf\u8fdb\u884c\u5b9e\u65f6\u7684\u6570\u636e\u68c0\u6d4b\uff0c\u8fdb\u884c\u62a5\u8b66\uff0c\u5b9e\u65f6\u7684\u663e\u793a\uff0c\u6216\u8005\u6839\u636e\u5386\u53f2\u6570\u636e\u8fdb\u884c\u5b9e\u65f6\u7684\u5206\u6790\uff0c\u9884\u6d4b\u3002"),(0,l.yg)("li",{parentName:"ol"},"\u8f66\u8054\u7f51\uff0c\u5982\u4eca\u7684\u8f66\u8054\u7f51\u5df2\u7ecf\u4e0d\u9650\u4e8e\u7269\u8054\u7f51\uff0c\u8fd8\u5305\u62ec\u5bf9\u7528\u6237\uff0c\u4ea4\u901a\u7b49\u7b49\u8fdb\u884c\u5206\u6790\u7684\u4e00\u4e2a\u5e9e\u5927\u7684\u7cfb\u7edf\uff0c\u6539\u5584\u7528\u6237\u51fa\u884c\u3002"),(0,l.yg)("li",{parentName:"ol"},"\u91d1\u878d\u5206\u63a7\uff0c\u901a\u8fc7\u5bf9\u4ea4\u6613\u7b49\u91d1\u878d\u884c\u4e3a\u5b9e\u65f6\u5206\u6790\uff0c\u9884\u6d4b\u51fa\u672a\u77e5\u98ce\u9669\u3002")),(0,l.yg)("h3",{id:"storm"},"Storm"),(0,l.yg)("p",null,"Twitter\u5f00\u6e90\u7684Storm\u6846\u67b6\u98ce\u9761\u4e00\u65f6\uff0c\u5728Hadoop\u8bde\u751f\u521d\u671f\uff0cStorm\u5f25\u8865\u4e86Hadoop\u4e0d\u80fd\u505a\u5b9e\u65f6\u6570\u636e\u5904\u7406\u7f3a\u9677\uff0c\u88ab\u5e7f\u6cdb\u4f7f\u7528\uff0c\u73b0\u5728\u7684\u5f88\u591a\u516c\u53f8\u4f9d\u7136\u5728\u4f7f\u7528\uff0cStorm\u5ef6\u8fdf\u662f\u6beb\u79d2\u7ea7\u7684\uff0c\u4f46\u662f\u5b83\u5f88\u96be\u5b9e\u73b0\u9ad8\u541e\u5410\uff0c\u4e0d\u80fd\u4fdd\u8bc1\u6d88\u606f\u6070\u597d\u4e00\u6b21\u7684\u4f20\u9012\u3002\u6211\u4eec\u53ef\u4ee5\u901a\u8fc7ack\u673a\u5236\u4fdd\u8bc1\uff0c\u4f46\u5f00\u9500\u6781\u5927\uff0c\u73b0\u5728\u5f88\u591a\u4f7f\u7528Storm\u7684\u516c\u53f8\u90fd\u51fa\u73b0\u4e86\u6d88\u606f\u79ef\u538b\u7684\u95ee\u9898\uff0c\u8fd9\u5176\u5b9e\u662f\u5f88\u96be\u907f\u514d\u7684\u3002"),(0,l.yg)("h3",{id:"flink"},"Flink"),(0,l.yg)("ol",null,(0,l.yg)("li",{parentName:"ol"},(0,l.yg)("a",{parentName:"li",href:"http://www.54tianzhisheng.cn/2018/10/13/flink-introduction/"},"Flink \u4ece 0 \u5230 1 \u5b66\u4e60"))),(0,l.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,l.yg)("ol",null,(0,l.yg)("li",{parentName:"ol"},(0,l.yg)("a",{parentName:"li",href:"https://mp.weixin.qq.com/s/p7PzA9qfDGKKLzmh5qM_Gg"},"Streaming-\u5927\u6570\u636e\u7684\u672a\u6765")),(0,l.yg)("li",{parentName:"ol"},(0,l.yg)("a",{parentName:"li",href:"https://www.jianshu.com/p/6c3210eaed57"},"\u963f\u91cc\u5df4\u5df4\u4e3a\u4ec0\u4e48\u9009\u62e9Apache Flink\uff1f"))))}m.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8173],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>d});var n=r(6540);function l(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t=0||(l[r]=e[r]);return l}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(l[r]=e[r])}return l}var p=n.createContext({}),c=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},u=function(e){var t=c(e.components);return n.createElement(p.Provider,{value:t},e.children)},y="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},s=n.forwardRef((function(e,t){var r=e.components,l=e.mdxType,a=e.originalType,p=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),y=c(r),s=l,d=y["".concat(p,".").concat(s)]||y[s]||m[s]||a;return r?n.createElement(d,o(o({ref:t},u),{},{components:r})):n.createElement(d,o({ref:t},u))}));function d(e,t){var r=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var a=r.length,o=new Array(a);o[0]=s;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[y]="string"==typeof e?e:l,o[1]=i;for(var c=2;c{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>m,frontMatter:()=>a,metadata:()=>i,toc:()=>c});var n=r(8168),l=(r(6540),r(5680));const a={},o=void 0,i={unversionedId:"study/think/\u5b9e\u65f6\u8ba1\u7b97Storm+Flink",id:"study/think/\u5b9e\u65f6\u8ba1\u7b97Storm+Flink",title:"\u5b9e\u65f6\u8ba1\u7b97Storm+Flink",description:"\u5b9e\u65f6\u8ba1\u7b97",source:"@site/docs/study/think/\u5b9e\u65f6\u8ba1\u7b97Storm+Flink.md",sourceDirName:"study/think",slug:"/study/think/\u5b9e\u65f6\u8ba1\u7b97Storm+Flink",permalink:"/docs/study/think/\u5b9e\u65f6\u8ba1\u7b97Storm+Flink",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u4ee3\u7801\u5ba1\u67e5\u95ee\u9898\u624b\u518c",permalink:"/docs/study/think/\u4ee3\u7801\u8bc4\u5ba1/\u4ee3\u7801\u5ba1\u67e5\u95ee\u9898\u624b\u518c"},next:{title:"\u5e76\u53d1\u6a21\u578b",permalink:"/docs/study/think/\u5e76\u53d1\u6a21\u578b"}},p={},c=[{value:"\u5b9e\u65f6\u8ba1\u7b97",id:"\u5b9e\u65f6\u8ba1\u7b97",level:3},{value:"\u4e3b\u8981\u5e94\u7528",id:"\u4e3b\u8981\u5e94\u7528",level:3},{value:"Storm",id:"storm",level:3},{value:"Flink",id:"flink",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],u={toc:c},y="wrapper";function m(e){let{components:t,...r}=e;return(0,l.yg)(y,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,l.yg)("h3",{id:"\u5b9e\u65f6\u8ba1\u7b97"},"\u5b9e\u65f6\u8ba1\u7b97"),(0,l.yg)("p",null,"\u4e00\u79cd\u8003\u8651\u4e86\u65e0\u7ebf\u6570\u636e\u96c6\u7684\u6570\u636e\u5904\u7406\u5f15\u64ce\u3002\u53c8\u79f0\u5b9e\u65f6\u6d41\u5f0f\u8ba1\u7b97\u3001\u6d41\u5f0f\u8ba1\u7b97\uff0c\u90fd\u662f\u5dee\u4e0d\u591a\u7684\u6982\u5ff5\uff1b"),(0,l.yg)("p",null,"\u4e09\u4e2a\u7279\u5f81\uff1a"),(0,l.yg)("ol",null,(0,l.yg)("li",{parentName:"ol"},"\u65e0\u9650\u6570\u636e\uff0c\u662f\u6307\u4e00\u79cd\u4e0d\u65ad\u589e\u957f\uff0c\u57fa\u672c\u4e0a\u65e0\u9650\u7684\u6570\u636e\u96c6\uff0c\u4e5f\u53ef\u4ee5\u79f0\u4f5c\u6d41\u6570\u636e\uff0c\u4e0e\u4e4b\u5bf9\u5e94\u7684\u662f\u6709\u9650\u7684\u6570\u636e\u96c6\uff1b"),(0,l.yg)("li",{parentName:"ol"},"\u65e0\u754c\u6570\u636e\u5904\u7406\uff0c\u4e00\u79cd\u6301\u7eed\u7684\u6570\u636e\u5904\u7406\u6a21\u5f0f\uff0c\u80fd\u591f\u901a\u8fc7\u5904\u7406\u5f15\u64ce\u91cd\u590d\u7684\u53bb\u5904\u7406\u4e0a\u9762\u7684\u65e0\u9650\u6570\u636e\uff0c\u662f\u80fd\u591f\u7a81\u7834\u6709\u9650\u6570\u636e\u5904\u7406\u5f15\u64ce\u7684\u74f6\u9888\u7684\u3002"),(0,l.yg)("li",{parentName:"ol"},"\u4f4e\u5ef6\u8fdf\uff0c\u5ef6\u8fdf\u662f\u591a\u5c11\u5e76\u6ca1\u6709\u660e\u786e\u7684\u5b9a\u4e49\u3002\u4f46\u6211\u4eec\u90fd\u77e5\u9053\u6570\u636e\u7684\u4ef7\u503c\u5c06\u968f\u7740\u65f6\u95f4\u7684\u6d41\u901d\u964d\u4f4e\uff0c\u65f6\u6548\u6027\u5c06\u662f\u9700\u8981\u6301\u7eed\u89e3\u51b3\u7684\u95ee\u9898\u3002")),(0,l.yg)("p",null,"\u5b9e\u65f6\u8ba1\u7b97\u5176\u5b9e\u662f\u4e00\u4e2a\u76f8\u5bf9\u7684\u6982\u5ff5\uff0c\u5bf9\u4e8e\u6279\u5904\u7406\u3001\u8fd1\u5b9e\u65f6\u3001\u5fae\u6279\uff0c\u4e0d\u591a\u662f\u65f6\u95f4\u7684\u95ee\u9898\uff1b\n\u5b9e\u65f6\u6846\u67b6\u6709\u5f88\u591a\uff0c\u4f8b\u5982Storm\u3001Fink\u3001Kafka Streaming\u3001Spark Streaming\uff1b\n\u540c\u65f6\u652f\u6301\u6d41\u5904\u7406\u548c\u6279\u5904\u7406\u7684\u8ba1\u7b97\u5f15\u64ce\uff0c\u6709\u4e24\u79cd\u9009\u62e9\uff1a\u4e00\u4e2a\u662fApache Spark\uff0c\u4e00\u4e2a\u662fApache Flink\u3002\u4ece\u6280\u672f\uff0c\u751f\u6001\u7b49\u5404\u65b9\u9762\u7684\u7efc\u5408\u8003\u8651\uff0c\u9996\u5148\uff0cSpark\u7684\u6280\u672f\u7406\u5ff5\u662f\u57fa\u4e8e\u6279\u6765\u6a21\u62df\u6d41\u7684\u8ba1\u7b97\u3002\u800cFlink\u5219\u5b8c\u5168\u76f8\u53cd\uff0c\u5b83\u91c7\u7528\u7684\u662f\u57fa\u4e8e\u6d41\u8ba1\u7b97\u6765\u6a21\u62df\u6279\u8ba1\u7b97\u3002\u4ece\u6280\u672f\u53d1\u5c55\u65b9\u5411\u770b\uff0c\u7528\u6279\u6765\u6a21\u62df\u6d41\u6709\u4e00\u5b9a\u7684\u6280\u672f\u5c40\u9650\u6027\uff0c\u5e76\u4e14\u8fd9\u4e2a\u5c40\u9650\u6027\u53ef\u80fd\u5f88\u96be\u7a81\u7834\u3002\u800cFlink\u57fa\u4e8e\u6d41\u6765\u6a21\u62df\u6279\uff0c\u5728\u6280\u672f\u4e0a\u6709\u66f4\u597d\u7684\u6269\u5c55\u6027\u3002"),(0,l.yg)("h3",{id:"\u4e3b\u8981\u5e94\u7528"},"\u4e3b\u8981\u5e94\u7528"),(0,l.yg)("ol",null,(0,l.yg)("li",{parentName:"ol"},"\u65e5\u5fd7\u5206\u6790\uff0c\u6bd4\u5982\u5bf9\u7f51\u7ad9\u7684\u7528\u6237\u8bbf\u95ee\u65e5\u5fd7\u8fdb\u884c\u5b9e\u65f6\u7684\u5206\u6790\uff0c\u8ba1\u7b97\u8bbf\u95ee\u91cf\uff0c\u7528\u6237\u753b\u50cf\uff0c\u7559\u5b58\u7387\u7b49\u7b49\uff0c\u5b9e\u65f6\u7684\u8fdb\u884c\u6570\u636e\u5206\u6790\uff0c\u5e2e\u52a9\u4f01\u4e1a\u8fdb\u884c\u51b3\u7b56\u3002"),(0,l.yg)("li",{parentName:"ol"},"\u7269\u8054\u7f51\uff0c\u6bd4\u5982\u5bf9\u7535\u529b\u7cfb\u7edf\u8fdb\u884c\u5b9e\u65f6\u7684\u6570\u636e\u68c0\u6d4b\uff0c\u8fdb\u884c\u62a5\u8b66\uff0c\u5b9e\u65f6\u7684\u663e\u793a\uff0c\u6216\u8005\u6839\u636e\u5386\u53f2\u6570\u636e\u8fdb\u884c\u5b9e\u65f6\u7684\u5206\u6790\uff0c\u9884\u6d4b\u3002"),(0,l.yg)("li",{parentName:"ol"},"\u8f66\u8054\u7f51\uff0c\u5982\u4eca\u7684\u8f66\u8054\u7f51\u5df2\u7ecf\u4e0d\u9650\u4e8e\u7269\u8054\u7f51\uff0c\u8fd8\u5305\u62ec\u5bf9\u7528\u6237\uff0c\u4ea4\u901a\u7b49\u7b49\u8fdb\u884c\u5206\u6790\u7684\u4e00\u4e2a\u5e9e\u5927\u7684\u7cfb\u7edf\uff0c\u6539\u5584\u7528\u6237\u51fa\u884c\u3002"),(0,l.yg)("li",{parentName:"ol"},"\u91d1\u878d\u5206\u63a7\uff0c\u901a\u8fc7\u5bf9\u4ea4\u6613\u7b49\u91d1\u878d\u884c\u4e3a\u5b9e\u65f6\u5206\u6790\uff0c\u9884\u6d4b\u51fa\u672a\u77e5\u98ce\u9669\u3002")),(0,l.yg)("h3",{id:"storm"},"Storm"),(0,l.yg)("p",null,"Twitter\u5f00\u6e90\u7684Storm\u6846\u67b6\u98ce\u9761\u4e00\u65f6\uff0c\u5728Hadoop\u8bde\u751f\u521d\u671f\uff0cStorm\u5f25\u8865\u4e86Hadoop\u4e0d\u80fd\u505a\u5b9e\u65f6\u6570\u636e\u5904\u7406\u7f3a\u9677\uff0c\u88ab\u5e7f\u6cdb\u4f7f\u7528\uff0c\u73b0\u5728\u7684\u5f88\u591a\u516c\u53f8\u4f9d\u7136\u5728\u4f7f\u7528\uff0cStorm\u5ef6\u8fdf\u662f\u6beb\u79d2\u7ea7\u7684\uff0c\u4f46\u662f\u5b83\u5f88\u96be\u5b9e\u73b0\u9ad8\u541e\u5410\uff0c\u4e0d\u80fd\u4fdd\u8bc1\u6d88\u606f\u6070\u597d\u4e00\u6b21\u7684\u4f20\u9012\u3002\u6211\u4eec\u53ef\u4ee5\u901a\u8fc7ack\u673a\u5236\u4fdd\u8bc1\uff0c\u4f46\u5f00\u9500\u6781\u5927\uff0c\u73b0\u5728\u5f88\u591a\u4f7f\u7528Storm\u7684\u516c\u53f8\u90fd\u51fa\u73b0\u4e86\u6d88\u606f\u79ef\u538b\u7684\u95ee\u9898\uff0c\u8fd9\u5176\u5b9e\u662f\u5f88\u96be\u907f\u514d\u7684\u3002"),(0,l.yg)("h3",{id:"flink"},"Flink"),(0,l.yg)("ol",null,(0,l.yg)("li",{parentName:"ol"},(0,l.yg)("a",{parentName:"li",href:"http://www.54tianzhisheng.cn/2018/10/13/flink-introduction/"},"Flink \u4ece 0 \u5230 1 \u5b66\u4e60"))),(0,l.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,l.yg)("ol",null,(0,l.yg)("li",{parentName:"ol"},(0,l.yg)("a",{parentName:"li",href:"https://mp.weixin.qq.com/s/p7PzA9qfDGKKLzmh5qM_Gg"},"Streaming-\u5927\u6570\u636e\u7684\u672a\u6765")),(0,l.yg)("li",{parentName:"ol"},(0,l.yg)("a",{parentName:"li",href:"https://www.jianshu.com/p/6c3210eaed57"},"\u963f\u91cc\u5df4\u5df4\u4e3a\u4ec0\u4e48\u9009\u62e9Apache Flink\uff1f"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/e36fd319.11e2cea4.js b/assets/js/e36fd319.c6e7470f.js similarity index 98% rename from assets/js/e36fd319.11e2cea4.js rename to assets/js/e36fd319.c6e7470f.js index 1f9ed5d8f..3650fb3ec 100644 --- a/assets/js/e36fd319.11e2cea4.js +++ b/assets/js/e36fd319.c6e7470f.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5382],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>y});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),p=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},l="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),l=p(r),f=o,y=l["".concat(s,".").concat(f)]||l[f]||d[f]||a;return r?n.createElement(y,i(i({ref:t},u),{},{components:r})):n.createElement(y,i({ref:t},u))}));function y(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=f;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[l]="string"==typeof e?e:o,i[1]=c;for(var p=2;p{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>p});var n=r(8168),o=(r(6540),r(5680));const a={},i=void 0,c={unversionedId:"study/think/\u67b6\u6784/\u67b6\u6784\u56fe\u793a\u4f8b",id:"study/think/\u67b6\u6784/\u67b6\u6784\u56fe\u793a\u4f8b",title:"\u67b6\u6784\u56fe\u793a\u4f8b",description:"image.png",source:"@site/docs/study/think/\u67b6\u6784/\u67b6\u6784\u56fe\u793a\u4f8b.md",sourceDirName:"study/think/\u67b6\u6784",slug:"/study/think/\u67b6\u6784/\u67b6\u6784\u56fe\u793a\u4f8b",permalink:"/docs/study/think/\u67b6\u6784/\u67b6\u6784\u56fe\u793a\u4f8b",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u6280\u672f\u4e2d\u53f0",permalink:"/docs/study/think/\u67b6\u6784/\u6280\u672f\u4e2d\u53f0"},next:{title:"\u8d1f\u8f7d\u5747\u8861",permalink:"/docs/study/think/\u67b6\u6784/\u8d1f\u8f7d\u5747\u8861"}},s={},p=[],u={toc:p},l="wrapper";function d(e){let{components:t,...a}=e;return(0,o.yg)(l,(0,n.A)({},u,a,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("p",null,(0,o.yg)("img",{alt:"image.png",src:r(4934).A,width:"1061",height:"618"})))}d.isMDXComponent=!0},4934:(e,t,r)=>{r.d(t,{A:()=>n});const n=r.p+"assets/images/j1-795b3e3fa724f515965c72d16df4052b.png"}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5382],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>y});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),p=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},u=function(e){var t=p(e.components);return n.createElement(s.Provider,{value:t},e.children)},l="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),l=p(r),f=o,y=l["".concat(s,".").concat(f)]||l[f]||d[f]||a;return r?n.createElement(y,i(i({ref:t},u),{},{components:r})):n.createElement(y,i({ref:t},u))}));function y(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=f;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[l]="string"==typeof e?e:o,i[1]=c;for(var p=2;p{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>c,toc:()=>p});var n=r(8168),o=(r(6540),r(5680));const a={},i=void 0,c={unversionedId:"study/think/\u67b6\u6784/\u67b6\u6784\u56fe\u793a\u4f8b",id:"study/think/\u67b6\u6784/\u67b6\u6784\u56fe\u793a\u4f8b",title:"\u67b6\u6784\u56fe\u793a\u4f8b",description:"image.png",source:"@site/docs/study/think/\u67b6\u6784/\u67b6\u6784\u56fe\u793a\u4f8b.md",sourceDirName:"study/think/\u67b6\u6784",slug:"/study/think/\u67b6\u6784/\u67b6\u6784\u56fe\u793a\u4f8b",permalink:"/docs/study/think/\u67b6\u6784/\u67b6\u6784\u56fe\u793a\u4f8b",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u6280\u672f\u4e2d\u53f0",permalink:"/docs/study/think/\u67b6\u6784/\u6280\u672f\u4e2d\u53f0"},next:{title:"\u8d1f\u8f7d\u5747\u8861",permalink:"/docs/study/think/\u67b6\u6784/\u8d1f\u8f7d\u5747\u8861"}},s={},p=[],u={toc:p},l="wrapper";function d(e){let{components:t,...a}=e;return(0,o.yg)(l,(0,n.A)({},u,a,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("p",null,(0,o.yg)("img",{alt:"image.png",src:r(4934).A,width:"1061",height:"618"})))}d.isMDXComponent=!0},4934:(e,t,r)=>{r.d(t,{A:()=>n});const n=r.p+"assets/images/j1-795b3e3fa724f515965c72d16df4052b.png"}}]); \ No newline at end of file diff --git a/assets/js/e3905ad3.730c5b9f.js b/assets/js/e3905ad3.47f1c1d3.js similarity index 98% rename from assets/js/e3905ad3.730c5b9f.js rename to assets/js/e3905ad3.47f1c1d3.js index 080a9991a..14a47f055 100644 --- a/assets/js/e3905ad3.730c5b9f.js +++ b/assets/js/e3905ad3.47f1c1d3.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9841],{5680:(e,t,r)=>{r.d(t,{xA:()=>d,yg:()=>m});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function a(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),p=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},d=function(e){var t=p(e.components);return n.createElement(l.Provider,{value:t},e.children)},u="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,i=e.originalType,l=e.parentName,d=c(e,["components","mdxType","originalType","parentName"]),u=p(r),f=o,m=u["".concat(l,".").concat(f)]||u[f]||s[f]||i;return r?n.createElement(m,a(a({ref:t},d),{},{components:r})):n.createElement(m,a({ref:t},d))}));function m(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=r.length,a=new Array(i);a[0]=f;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[u]="string"==typeof e?e:o,a[1]=c;for(var p=2;p{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>a,default:()=>s,frontMatter:()=>i,metadata:()=>c,toc:()=>p});var n=r(8168),o=(r(6540),r(5680));const i={sidebar_position:3},a="\u8bbe\u5907\u7c7b\u578b\u7ba1\u7406",c={unversionedId:"iotcloud/devicemanager/device-type",id:"iotcloud/devicemanager/device-type",title:"\u8bbe\u5907\u7c7b\u578b\u7ba1\u7406",description:"",source:"@site/docs/iotcloud/devicemanager/device-type.md",sourceDirName:"iotcloud/devicemanager",slug:"/iotcloud/devicemanager/device-type",permalink:"/docs/iotcloud/devicemanager/device-type",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",sidebarPosition:3,frontMatter:{sidebar_position:3},sidebar:"iotCloudSidebar",previous:{title:"\u6982\u8ff0",permalink:"/docs/iotcloud/devicemanager/"},next:{title:"\u8bbe\u5907\u4fe1\u606f\u7ba1\u7406",permalink:"/docs/iotcloud/devicemanager/device-info"}},l={},p=[],d={toc:p},u="wrapper";function s(e){let{components:t,...r}=e;return(0,o.yg)(u,(0,n.A)({},d,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"\u8bbe\u5907\u7c7b\u578b\u7ba1\u7406"},"\u8bbe\u5907\u7c7b\u578b\u7ba1\u7406"))}s.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9841],{5680:(e,t,r)=>{r.d(t,{xA:()=>d,yg:()=>m});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function a(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),p=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},d=function(e){var t=p(e.components);return n.createElement(l.Provider,{value:t},e.children)},u="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,i=e.originalType,l=e.parentName,d=c(e,["components","mdxType","originalType","parentName"]),u=p(r),f=o,m=u["".concat(l,".").concat(f)]||u[f]||s[f]||i;return r?n.createElement(m,a(a({ref:t},d),{},{components:r})):n.createElement(m,a({ref:t},d))}));function m(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=r.length,a=new Array(i);a[0]=f;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[u]="string"==typeof e?e:o,a[1]=c;for(var p=2;p{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>a,default:()=>s,frontMatter:()=>i,metadata:()=>c,toc:()=>p});var n=r(8168),o=(r(6540),r(5680));const i={sidebar_position:3},a="\u8bbe\u5907\u7c7b\u578b\u7ba1\u7406",c={unversionedId:"iotcloud/devicemanager/device-type",id:"iotcloud/devicemanager/device-type",title:"\u8bbe\u5907\u7c7b\u578b\u7ba1\u7406",description:"",source:"@site/docs/iotcloud/devicemanager/device-type.md",sourceDirName:"iotcloud/devicemanager",slug:"/iotcloud/devicemanager/device-type",permalink:"/docs/iotcloud/devicemanager/device-type",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",sidebarPosition:3,frontMatter:{sidebar_position:3},sidebar:"iotCloudSidebar",previous:{title:"\u6982\u8ff0",permalink:"/docs/iotcloud/devicemanager/"},next:{title:"\u8bbe\u5907\u4fe1\u606f\u7ba1\u7406",permalink:"/docs/iotcloud/devicemanager/device-info"}},l={},p=[],d={toc:p},u="wrapper";function s(e){let{components:t,...r}=e;return(0,o.yg)(u,(0,n.A)({},d,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"\u8bbe\u5907\u7c7b\u578b\u7ba1\u7406"},"\u8bbe\u5907\u7c7b\u578b\u7ba1\u7406"))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/e4e6cea9.7bda6399.js b/assets/js/e4e6cea9.d9a89c4c.js similarity index 98% rename from assets/js/e4e6cea9.7bda6399.js rename to assets/js/e4e6cea9.d9a89c4c.js index b836d98b6..38a680fe2 100644 --- a/assets/js/e4e6cea9.7bda6399.js +++ b/assets/js/e4e6cea9.d9a89c4c.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2863],{5680:(e,t,r)=>{r.d(t,{xA:()=>s,yg:()=>y});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var a=n.createContext({}),u=function(e){var t=n.useContext(a),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},s=function(e){var t=u(e.components);return n.createElement(a.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,i=e.originalType,a=e.parentName,s=c(e,["components","mdxType","originalType","parentName"]),p=u(r),f=o,y=p["".concat(a,".").concat(f)]||p[f]||d[f]||i;return r?n.createElement(y,l(l({ref:t},s),{},{components:r})):n.createElement(y,l({ref:t},s))}));function y(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=r.length,l=new Array(i);l[0]=f;var c={};for(var a in t)hasOwnProperty.call(t,a)&&(c[a]=t[a]);c.originalType=e,c[p]="string"==typeof e?e:o,l[1]=c;for(var u=2;u{r.r(t),r.d(t,{assets:()=>a,contentTitle:()=>l,default:()=>d,frontMatter:()=>i,metadata:()=>c,toc:()=>u});var n=r(8168),o=(r(6540),r(5680));const i={sidebar_position:3},l="\u7528\u6237\u65e5\u5fd7",c={unversionedId:"iotcloud/usercenter/user-log",id:"iotcloud/usercenter/user-log",title:"\u7528\u6237\u65e5\u5fd7",description:"\u672c\u6587\u4e3a\u60a8\u4ecb\u7ecd \u7528\u6237\u65e5\u5fd7 \u7684\u57fa\u672c\u6982\u5ff5\u3001\u4f7f\u7528\u6d41\u7a0b\u3001\u6700\u4f73\u5b9e\u8df5\u548c\u4f7f\u7528\u9650\u5236\u3002",source:"@site/docs/iotcloud/usercenter/user-log.md",sourceDirName:"iotcloud/usercenter",slug:"/iotcloud/usercenter/user-log",permalink:"/docs/iotcloud/usercenter/user-log",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",sidebarPosition:3,frontMatter:{sidebar_position:3},sidebar:"iotCloudSidebar",previous:{title:"\u6982\u8ff0",permalink:"/docs/iotcloud/usercenter/"},next:{title:"\u7528\u6237\u8bbe\u7f6e",permalink:"/docs/iotcloud/usercenter/user-settings"}},a={},u=[{value:"\u4ec0\u4e48\u662f\u7528\u6237\u65e5\u5fd7",id:"\u4ec0\u4e48\u662f\u7528\u6237\u65e5\u5fd7",level:3},{value:"\u4f7f\u7528\u6d41\u7a0b",id:"\u4f7f\u7528\u6d41\u7a0b",level:3},{value:"\u6700\u4f73\u5b9e\u8df5",id:"\u6700\u4f73\u5b9e\u8df5",level:3},{value:"\u4f7f\u7528\u9650\u5236",id:"\u4f7f\u7528\u9650\u5236",level:3}],s={toc:u},p="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(p,(0,n.A)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"\u7528\u6237\u65e5\u5fd7"},"\u7528\u6237\u65e5\u5fd7"),(0,o.yg)("p",null,"\u672c\u6587\u4e3a\u60a8\u4ecb\u7ecd \u7528\u6237\u65e5\u5fd7 \u7684\u57fa\u672c\u6982\u5ff5\u3001\u4f7f\u7528\u6d41\u7a0b\u3001\u6700\u4f73\u5b9e\u8df5\u548c\u4f7f\u7528\u9650\u5236\u3002"),(0,o.yg)("h3",{id:"\u4ec0\u4e48\u662f\u7528\u6237\u65e5\u5fd7"},"\u4ec0\u4e48\u662f\u7528\u6237\u65e5\u5fd7"),(0,o.yg)("p",null,"\u7528\u6237\u65e5\u5fd7\u6307\u7684\u662f\u7528\u6237\u64cd\u4f5c\u7684\u5173\u952e\u4fe1\u606f\u8bb0\u5f55\u3002"),(0,o.yg)("h3",{id:"\u4f7f\u7528\u6d41\u7a0b"},"\u4f7f\u7528\u6d41\u7a0b"),(0,o.yg)("p",null,"GIF \u56fe"),(0,o.yg)("h3",{id:"\u6700\u4f73\u5b9e\u8df5"},"\u6700\u4f73\u5b9e\u8df5"),(0,o.yg)("p",null,"GIF \u56fe"),(0,o.yg)("h3",{id:"\u4f7f\u7528\u9650\u5236"},"\u4f7f\u7528\u9650\u5236"))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2863],{5680:(e,t,r)=>{r.d(t,{xA:()=>s,yg:()=>y});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var a=n.createContext({}),u=function(e){var t=n.useContext(a),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},s=function(e){var t=u(e.components);return n.createElement(a.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,i=e.originalType,a=e.parentName,s=c(e,["components","mdxType","originalType","parentName"]),p=u(r),f=o,y=p["".concat(a,".").concat(f)]||p[f]||d[f]||i;return r?n.createElement(y,l(l({ref:t},s),{},{components:r})):n.createElement(y,l({ref:t},s))}));function y(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=r.length,l=new Array(i);l[0]=f;var c={};for(var a in t)hasOwnProperty.call(t,a)&&(c[a]=t[a]);c.originalType=e,c[p]="string"==typeof e?e:o,l[1]=c;for(var u=2;u{r.r(t),r.d(t,{assets:()=>a,contentTitle:()=>l,default:()=>d,frontMatter:()=>i,metadata:()=>c,toc:()=>u});var n=r(8168),o=(r(6540),r(5680));const i={sidebar_position:3},l="\u7528\u6237\u65e5\u5fd7",c={unversionedId:"iotcloud/usercenter/user-log",id:"iotcloud/usercenter/user-log",title:"\u7528\u6237\u65e5\u5fd7",description:"\u672c\u6587\u4e3a\u60a8\u4ecb\u7ecd \u7528\u6237\u65e5\u5fd7 \u7684\u57fa\u672c\u6982\u5ff5\u3001\u4f7f\u7528\u6d41\u7a0b\u3001\u6700\u4f73\u5b9e\u8df5\u548c\u4f7f\u7528\u9650\u5236\u3002",source:"@site/docs/iotcloud/usercenter/user-log.md",sourceDirName:"iotcloud/usercenter",slug:"/iotcloud/usercenter/user-log",permalink:"/docs/iotcloud/usercenter/user-log",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",sidebarPosition:3,frontMatter:{sidebar_position:3},sidebar:"iotCloudSidebar",previous:{title:"\u6982\u8ff0",permalink:"/docs/iotcloud/usercenter/"},next:{title:"\u7528\u6237\u8bbe\u7f6e",permalink:"/docs/iotcloud/usercenter/user-settings"}},a={},u=[{value:"\u4ec0\u4e48\u662f\u7528\u6237\u65e5\u5fd7",id:"\u4ec0\u4e48\u662f\u7528\u6237\u65e5\u5fd7",level:3},{value:"\u4f7f\u7528\u6d41\u7a0b",id:"\u4f7f\u7528\u6d41\u7a0b",level:3},{value:"\u6700\u4f73\u5b9e\u8df5",id:"\u6700\u4f73\u5b9e\u8df5",level:3},{value:"\u4f7f\u7528\u9650\u5236",id:"\u4f7f\u7528\u9650\u5236",level:3}],s={toc:u},p="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(p,(0,n.A)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"\u7528\u6237\u65e5\u5fd7"},"\u7528\u6237\u65e5\u5fd7"),(0,o.yg)("p",null,"\u672c\u6587\u4e3a\u60a8\u4ecb\u7ecd \u7528\u6237\u65e5\u5fd7 \u7684\u57fa\u672c\u6982\u5ff5\u3001\u4f7f\u7528\u6d41\u7a0b\u3001\u6700\u4f73\u5b9e\u8df5\u548c\u4f7f\u7528\u9650\u5236\u3002"),(0,o.yg)("h3",{id:"\u4ec0\u4e48\u662f\u7528\u6237\u65e5\u5fd7"},"\u4ec0\u4e48\u662f\u7528\u6237\u65e5\u5fd7"),(0,o.yg)("p",null,"\u7528\u6237\u65e5\u5fd7\u6307\u7684\u662f\u7528\u6237\u64cd\u4f5c\u7684\u5173\u952e\u4fe1\u606f\u8bb0\u5f55\u3002"),(0,o.yg)("h3",{id:"\u4f7f\u7528\u6d41\u7a0b"},"\u4f7f\u7528\u6d41\u7a0b"),(0,o.yg)("p",null,"GIF \u56fe"),(0,o.yg)("h3",{id:"\u6700\u4f73\u5b9e\u8df5"},"\u6700\u4f73\u5b9e\u8df5"),(0,o.yg)("p",null,"GIF \u56fe"),(0,o.yg)("h3",{id:"\u4f7f\u7528\u9650\u5236"},"\u4f7f\u7528\u9650\u5236"))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/e7da4cec.3b602e0a.js b/assets/js/e7da4cec.8825c4f4.js similarity index 98% rename from assets/js/e7da4cec.3b602e0a.js rename to assets/js/e7da4cec.8825c4f4.js index 5f22adfae..a9289a429 100644 --- a/assets/js/e7da4cec.3b602e0a.js +++ b/assets/js/e7da4cec.8825c4f4.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9989],{5680:(e,r,t)=>{t.d(r,{xA:()=>u,yg:()=>f});var n=t(6540);function a(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function o(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function p(e){for(var r=1;r=0||(a[t]=e[t]);return a}(e,r);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var c=n.createContext({}),l=function(e){var r=n.useContext(c),t=r;return e&&(t="function"==typeof e?e(r):p(p({},r),e)),t},u=function(e){var r=l(e.components);return n.createElement(c.Provider,{value:r},e.children)},s="mdxType",m={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},d=n.forwardRef((function(e,r){var t=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),s=l(t),d=a,f=s["".concat(c,".").concat(d)]||s[d]||m[d]||o;return t?n.createElement(f,p(p({ref:r},u),{},{components:t})):n.createElement(f,p({ref:r},u))}));function f(e,r){var t=arguments,a=r&&r.mdxType;if("string"==typeof e||a){var o=t.length,p=new Array(o);p[0]=d;var i={};for(var c in r)hasOwnProperty.call(r,c)&&(i[c]=r[c]);i.originalType=e,i[s]="string"==typeof e?e:a,p[1]=i;for(var l=2;l{t.r(r),t.d(r,{assets:()=>c,contentTitle:()=>p,default:()=>m,frontMatter:()=>o,metadata:()=>i,toc:()=>l});var n=t(8168),a=(t(6540),t(5680));const o={},p=void 0,i={unversionedId:"study/program/C/pragma",id:"study/program/C/pragma",title:"pragma",description:"pragma",source:"@site/docs/study/program/C/pragma.md",sourceDirName:"study/program/C",slug:"/study/program/C/pragma",permalink:"/docs/study/program/C/pragma",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"make",permalink:"/docs/study/program/C/make"},next:{title:"size_t-ptrdiff_t-intptr_t-uintptr_t",permalink:"/docs/study/program/C/size_t-ptrdiff_t-intptr_t-uintptr_t"}},c={},l=[{value:"#pragma",id:"pragma",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],u={toc:l},s="wrapper";function m(e){let{components:r,...t}=e;return(0,a.yg)(s,(0,n.A)({},u,t,{components:r,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"pragma"},"#pragma"),(0,a.yg)("p",null,"\u7f16\u8bd1\u5668\u6307\u4ee4"),(0,a.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://blog.csdn.net/primeprime/article/details/105110827"},"#pragma \u7f16\u8bd1\u5668\u6307\u4ee4\u8be6\u89e3"))))}m.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9989],{5680:(e,r,t)=>{t.d(r,{xA:()=>u,yg:()=>f});var n=t(6540);function a(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function o(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function p(e){for(var r=1;r=0||(a[t]=e[t]);return a}(e,r);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var c=n.createContext({}),l=function(e){var r=n.useContext(c),t=r;return e&&(t="function"==typeof e?e(r):p(p({},r),e)),t},u=function(e){var r=l(e.components);return n.createElement(c.Provider,{value:r},e.children)},s="mdxType",m={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},d=n.forwardRef((function(e,r){var t=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),s=l(t),d=a,f=s["".concat(c,".").concat(d)]||s[d]||m[d]||o;return t?n.createElement(f,p(p({ref:r},u),{},{components:t})):n.createElement(f,p({ref:r},u))}));function f(e,r){var t=arguments,a=r&&r.mdxType;if("string"==typeof e||a){var o=t.length,p=new Array(o);p[0]=d;var i={};for(var c in r)hasOwnProperty.call(r,c)&&(i[c]=r[c]);i.originalType=e,i[s]="string"==typeof e?e:a,p[1]=i;for(var l=2;l{t.r(r),t.d(r,{assets:()=>c,contentTitle:()=>p,default:()=>m,frontMatter:()=>o,metadata:()=>i,toc:()=>l});var n=t(8168),a=(t(6540),t(5680));const o={},p=void 0,i={unversionedId:"study/program/C/pragma",id:"study/program/C/pragma",title:"pragma",description:"pragma",source:"@site/docs/study/program/C/pragma.md",sourceDirName:"study/program/C",slug:"/study/program/C/pragma",permalink:"/docs/study/program/C/pragma",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"make",permalink:"/docs/study/program/C/make"},next:{title:"size_t-ptrdiff_t-intptr_t-uintptr_t",permalink:"/docs/study/program/C/size_t-ptrdiff_t-intptr_t-uintptr_t"}},c={},l=[{value:"#pragma",id:"pragma",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],u={toc:l},s="wrapper";function m(e){let{components:r,...t}=e;return(0,a.yg)(s,(0,n.A)({},u,t,{components:r,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"pragma"},"#pragma"),(0,a.yg)("p",null,"\u7f16\u8bd1\u5668\u6307\u4ee4"),(0,a.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("a",{parentName:"li",href:"https://blog.csdn.net/primeprime/article/details/105110827"},"#pragma \u7f16\u8bd1\u5668\u6307\u4ee4\u8be6\u89e3"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/e8f70b20.3c7c0943.js b/assets/js/e8f70b20.a3763d90.js similarity index 98% rename from assets/js/e8f70b20.3c7c0943.js rename to assets/js/e8f70b20.a3763d90.js index 481de074c..13601838d 100644 --- a/assets/js/e8f70b20.3c7c0943.js +++ b/assets/js/e8f70b20.a3763d90.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6861],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function a(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),c=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},u=function(e){var t=c(e.components);return n.createElement(s.Provider,{value:t},e.children)},p="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,l=e.originalType,s=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),p=c(r),d=o,f=p["".concat(s,".").concat(d)]||p[d]||y[d]||l;return r?n.createElement(f,a(a({ref:t},u),{},{components:r})):n.createElement(f,a({ref:t},u))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var l=r.length,a=new Array(l);a[0]=d;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[p]="string"==typeof e?e:o,a[1]=i;for(var c=2;c{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>a,default:()=>y,frontMatter:()=>l,metadata:()=>i,toc:()=>c});var n=r(8168),o=(r(6540),r(5680));const l={},a=void 0,i={unversionedId:"study/system/IO\u5835\u8def\u590d\u7528\u884c\u6570Linux",id:"study/system/IO\u5835\u8def\u590d\u7528\u884c\u6570Linux",title:"IO\u5835\u8def\u590d\u7528\u884c\u6570Linux",description:"IO \u591a\u8def\u590d\u7528\u51fd\u6570",source:"@site/docs/study/system/IO\u5835\u8def\u590d\u7528\u884c\u6570Linux.md",sourceDirName:"study/system",slug:"/study/system/IO\u5835\u8def\u590d\u7528\u884c\u6570Linux",permalink:"/docs/study/system/IO\u5835\u8def\u590d\u7528\u884c\u6570Linux",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"CPU\u7ebf\u7a0b\u5e76\u53d1",permalink:"/docs/study/system/CPU\u7ebf\u7a0b\u5e76\u53d1"},next:{title:"openWRT",permalink:"/docs/study/system/openWRT"}},s={},c=[{value:"IO \u591a\u8def\u590d\u7528\u51fd\u6570",id:"io-\u591a\u8def\u590d\u7528\u51fd\u6570",level:3},{value:"select",id:"select",level:4},{value:"poll",id:"poll",level:4},{value:"epoll",id:"epoll",level:4}],u={toc:c},p="wrapper";function y(e){let{components:t,...r}=e;return(0,o.yg)(p,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"io-\u591a\u8def\u590d\u7528\u51fd\u6570"},"IO \u591a\u8def\u590d\u7528\u51fd\u6570"),(0,o.yg)("h4",{id:"select"},"select"),(0,o.yg)("h4",{id:"poll"},"poll"),(0,o.yg)("h4",{id:"epoll"},"epoll"))}y.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6861],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function a(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var s=n.createContext({}),c=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},u=function(e){var t=c(e.components);return n.createElement(s.Provider,{value:t},e.children)},p="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,l=e.originalType,s=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),p=c(r),d=o,f=p["".concat(s,".").concat(d)]||p[d]||y[d]||l;return r?n.createElement(f,a(a({ref:t},u),{},{components:r})):n.createElement(f,a({ref:t},u))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var l=r.length,a=new Array(l);a[0]=d;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[p]="string"==typeof e?e:o,a[1]=i;for(var c=2;c{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>a,default:()=>y,frontMatter:()=>l,metadata:()=>i,toc:()=>c});var n=r(8168),o=(r(6540),r(5680));const l={},a=void 0,i={unversionedId:"study/system/IO\u5835\u8def\u590d\u7528\u884c\u6570Linux",id:"study/system/IO\u5835\u8def\u590d\u7528\u884c\u6570Linux",title:"IO\u5835\u8def\u590d\u7528\u884c\u6570Linux",description:"IO \u591a\u8def\u590d\u7528\u51fd\u6570",source:"@site/docs/study/system/IO\u5835\u8def\u590d\u7528\u884c\u6570Linux.md",sourceDirName:"study/system",slug:"/study/system/IO\u5835\u8def\u590d\u7528\u884c\u6570Linux",permalink:"/docs/study/system/IO\u5835\u8def\u590d\u7528\u884c\u6570Linux",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"CPU\u7ebf\u7a0b\u5e76\u53d1",permalink:"/docs/study/system/CPU\u7ebf\u7a0b\u5e76\u53d1"},next:{title:"openWRT",permalink:"/docs/study/system/openWRT"}},s={},c=[{value:"IO \u591a\u8def\u590d\u7528\u51fd\u6570",id:"io-\u591a\u8def\u590d\u7528\u51fd\u6570",level:3},{value:"select",id:"select",level:4},{value:"poll",id:"poll",level:4},{value:"epoll",id:"epoll",level:4}],u={toc:c},p="wrapper";function y(e){let{components:t,...r}=e;return(0,o.yg)(p,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"io-\u591a\u8def\u590d\u7528\u51fd\u6570"},"IO \u591a\u8def\u590d\u7528\u51fd\u6570"),(0,o.yg)("h4",{id:"select"},"select"),(0,o.yg)("h4",{id:"poll"},"poll"),(0,o.yg)("h4",{id:"epoll"},"epoll"))}y.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/e907057a.b528855c.js b/assets/js/e907057a.e549ecee.js similarity index 98% rename from assets/js/e907057a.b528855c.js rename to assets/js/e907057a.e549ecee.js index cd306e179..526ca45b5 100644 --- a/assets/js/e907057a.b528855c.js +++ b/assets/js/e907057a.e549ecee.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2243],{5680:(e,t,n)=>{n.d(t,{xA:()=>s,yg:()=>g});var r=n(6540);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var i=r.createContext({}),p=function(e){var t=r.useContext(i),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},s=function(e){var t=p(e.components);return r.createElement(i.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},y=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,i=e.parentName,s=c(e,["components","mdxType","originalType","parentName"]),u=p(n),y=a,g=u["".concat(i,".").concat(y)]||u[y]||d[y]||o;return n?r.createElement(g,l(l({ref:t},s),{},{components:n})):r.createElement(g,l({ref:t},s))}));function g(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,l=new Array(o);l[0]=y;var c={};for(var i in t)hasOwnProperty.call(t,i)&&(c[i]=t[i]);c.originalType=e,c[u]="string"==typeof e?e:a,l[1]=c;for(var p=2;p{n.r(t),n.d(t,{assets:()=>i,contentTitle:()=>l,default:()=>d,frontMatter:()=>o,metadata:()=>c,toc:()=>p});var r=n(8168),a=(n(6540),n(5680));const o={},l=void 0,c={unversionedId:"study/devops/jar\u8fd0\u7ef4-\u76d1\u63a7",id:"study/devops/jar\u8fd0\u7ef4-\u76d1\u63a7",title:"jar\u8fd0\u7ef4-\u76d1\u63a7",description:"jstat",source:"@site/docs/study/devops/jar\u8fd0\u7ef4-\u76d1\u63a7.md",sourceDirName:"study/devops",slug:"/study/devops/jar\u8fd0\u7ef4-\u76d1\u63a7",permalink:"/docs/study/devops/jar\u8fd0\u7ef4-\u76d1\u63a7",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"centos-jdk17-app",permalink:"/docs/study/devops/centos-jdk17-app"},next:{title:"\u94fe\u8def\u8ffd\u8e2a\u76d1\u63a7",permalink:"/docs/study/devops/\u94fe\u8def\u8ffd\u8e2a\u76d1\u63a7"}},i={},p=[{value:"jstat",id:"jstat",level:3},{value:"about",id:"about",level:4},{value:"options",id:"options",level:4},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],s={toc:p},u="wrapper";function d(e){let{components:t,...n}=e;return(0,a.yg)(u,(0,r.A)({},s,n,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"jstat"},"jstat"),(0,a.yg)("h4",{id:"about"},"about"),(0,a.yg)("p",null,"jstat ","[Options]"," pid ","[interval][count]","\npid\uff0c\u5f53\u524d\u8fd0\u884c\u7684 java\u8fdb\u7a0b\u53f7 "),(0,a.yg)("p",null,"interval\uff0c\u95f4\u9694\u65f6\u95f4\uff0c\u5355\u4f4d\u4e3a\u79d2\u6216\u8005\u6beb\u79d2 "),(0,a.yg)("p",null,"count\uff0c\u6253\u5370\u6b21\u6570\uff0c\u5982\u679c\u7f3a\u7701\u5219\u6253\u5370\u65e0\u6570\u6b21"),(0,a.yg)("h4",{id:"options"},"options"),(0,a.yg)("p",null,"l class (\u7c7b\u52a0\u8f7d\u5668)\nl compiler (JIT)\nl gc (GC\u5806\u72b6\u6001)\nl gccapacity (\u5404\u533a\u5927\u5c0f)\nl gccause (\u6700\u8fd1\u4e00\u6b21GC\u7edf\u8ba1\u548c\u539f\u56e0)\nl gcnew (\u65b0\u533a\u7edf\u8ba1)\nl gcnewcapacity (\u65b0\u533a\u5927\u5c0f)\nl gcold (\u8001\u533a\u7edf\u8ba1)\nl gcoldcapacity (\u8001\u533a\u5927\u5c0f)\nl gcpermcapacity (\u6c38\u4e45\u533a\u5927\u5c0f)\nl gcutil (GC\u7edf\u8ba1\u6c47\u603b)\nl printcompilation (HotSpot\u7f16\u8bd1\u7edf\u8ba1)"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},"#\njstat -gcutil 22573 5000\n")),(0,a.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("a",{parentName:"li",href:"https://blog.csdn.net/zhaozheng7758/article/details/8623549"},"jstat\u547d\u4ee4\u8be6\u89e3"))))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2243],{5680:(e,t,n)=>{n.d(t,{xA:()=>s,yg:()=>g});var r=n(6540);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var i=r.createContext({}),p=function(e){var t=r.useContext(i),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},s=function(e){var t=p(e.components);return r.createElement(i.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},y=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,i=e.parentName,s=c(e,["components","mdxType","originalType","parentName"]),u=p(n),y=a,g=u["".concat(i,".").concat(y)]||u[y]||d[y]||o;return n?r.createElement(g,l(l({ref:t},s),{},{components:n})):r.createElement(g,l({ref:t},s))}));function g(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,l=new Array(o);l[0]=y;var c={};for(var i in t)hasOwnProperty.call(t,i)&&(c[i]=t[i]);c.originalType=e,c[u]="string"==typeof e?e:a,l[1]=c;for(var p=2;p{n.r(t),n.d(t,{assets:()=>i,contentTitle:()=>l,default:()=>d,frontMatter:()=>o,metadata:()=>c,toc:()=>p});var r=n(8168),a=(n(6540),n(5680));const o={},l=void 0,c={unversionedId:"study/devops/jar\u8fd0\u7ef4-\u76d1\u63a7",id:"study/devops/jar\u8fd0\u7ef4-\u76d1\u63a7",title:"jar\u8fd0\u7ef4-\u76d1\u63a7",description:"jstat",source:"@site/docs/study/devops/jar\u8fd0\u7ef4-\u76d1\u63a7.md",sourceDirName:"study/devops",slug:"/study/devops/jar\u8fd0\u7ef4-\u76d1\u63a7",permalink:"/docs/study/devops/jar\u8fd0\u7ef4-\u76d1\u63a7",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"centos-jdk17-app",permalink:"/docs/study/devops/centos-jdk17-app"},next:{title:"\u94fe\u8def\u8ffd\u8e2a\u76d1\u63a7",permalink:"/docs/study/devops/\u94fe\u8def\u8ffd\u8e2a\u76d1\u63a7"}},i={},p=[{value:"jstat",id:"jstat",level:3},{value:"about",id:"about",level:4},{value:"options",id:"options",level:4},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],s={toc:p},u="wrapper";function d(e){let{components:t,...n}=e;return(0,a.yg)(u,(0,r.A)({},s,n,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"jstat"},"jstat"),(0,a.yg)("h4",{id:"about"},"about"),(0,a.yg)("p",null,"jstat ","[Options]"," pid ","[interval][count]","\npid\uff0c\u5f53\u524d\u8fd0\u884c\u7684 java\u8fdb\u7a0b\u53f7 "),(0,a.yg)("p",null,"interval\uff0c\u95f4\u9694\u65f6\u95f4\uff0c\u5355\u4f4d\u4e3a\u79d2\u6216\u8005\u6beb\u79d2 "),(0,a.yg)("p",null,"count\uff0c\u6253\u5370\u6b21\u6570\uff0c\u5982\u679c\u7f3a\u7701\u5219\u6253\u5370\u65e0\u6570\u6b21"),(0,a.yg)("h4",{id:"options"},"options"),(0,a.yg)("p",null,"l class (\u7c7b\u52a0\u8f7d\u5668)\nl compiler (JIT)\nl gc (GC\u5806\u72b6\u6001)\nl gccapacity (\u5404\u533a\u5927\u5c0f)\nl gccause (\u6700\u8fd1\u4e00\u6b21GC\u7edf\u8ba1\u548c\u539f\u56e0)\nl gcnew (\u65b0\u533a\u7edf\u8ba1)\nl gcnewcapacity (\u65b0\u533a\u5927\u5c0f)\nl gcold (\u8001\u533a\u7edf\u8ba1)\nl gcoldcapacity (\u8001\u533a\u5927\u5c0f)\nl gcpermcapacity (\u6c38\u4e45\u533a\u5927\u5c0f)\nl gcutil (GC\u7edf\u8ba1\u6c47\u603b)\nl printcompilation (HotSpot\u7f16\u8bd1\u7edf\u8ba1)"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},"#\njstat -gcutil 22573 5000\n")),(0,a.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("a",{parentName:"li",href:"https://blog.csdn.net/zhaozheng7758/article/details/8623549"},"jstat\u547d\u4ee4\u8be6\u89e3"))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/e983cebe.f0e65e1a.js b/assets/js/e983cebe.6f128b70.js similarity index 99% rename from assets/js/e983cebe.f0e65e1a.js rename to assets/js/e983cebe.6f128b70.js index 121d219ea..3e142f230 100644 --- a/assets/js/e983cebe.f0e65e1a.js +++ b/assets/js/e983cebe.6f128b70.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9665],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var i=n.createContext({}),u=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},p=function(e){var t=u(e.components);return n.createElement(i.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,i=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),s=u(r),y=o,f=s["".concat(i,".").concat(y)]||s[y]||d[y]||a;return r?n.createElement(f,c(c({ref:t},p),{},{components:r})):n.createElement(f,c({ref:t},p))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=y;var l={};for(var i in t)hasOwnProperty.call(t,i)&&(l[i]=t[i]);l.originalType=e,l[s]="string"==typeof e?e:o,c[1]=l;for(var u=2;u{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>c,default:()=>d,frontMatter:()=>a,metadata:()=>l,toc:()=>u});var n=r(8168),o=(r(6540),r(5680));const a={},c=void 0,l={unversionedId:"study/think/\u6982\u5ff5\u6a21\u578b/Actor Model",id:"study/think/\u6982\u5ff5\u6a21\u578b/Actor Model",title:"Actor Model",description:"Actor\u6a21\u578b\u662f\u4e00\u4e2a\u6982\u5ff5\u6a21\u578b\uff0c\u7528\u4e8e\u5904\u7406\u5e76\u53d1\u8ba1\u7b97\u3002\u5b83\u5b9a\u4e49\u4e86\u4e00\u7cfb\u5217\u7cfb\u7edf\u7ec4\u4ef6\u5e94\u8be5\u5982\u4f55\u52a8\u4f5c\u548c\u4ea4\u4e92\u7684\u901a\u7528\u89c4\u5219\uff0c\u6700\u8457\u540d\u7684\u4f7f\u7528\u8fd9\u5957\u89c4\u5219\u7684\u7f16\u7a0b\u8bed\u8a00\u662fErlang\u3002",source:"@site/docs/study/think/\u6982\u5ff5\u6a21\u578b/Actor Model.md",sourceDirName:"study/think/\u6982\u5ff5\u6a21\u578b",slug:"/study/think/\u6982\u5ff5\u6a21\u578b/Actor Model",permalink:"/docs/study/think/\u6982\u5ff5\u6a21\u578b/Actor Model",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u9ad8\u6027\u80fd\u67b6\u6784\u6a21\u5f0f",permalink:"/docs/study/think/\u67b6\u6784/\u9ad8\u6027\u80fd\u67b6\u6784\u6a21\u5f0f"},next:{title:"Proactor",permalink:"/docs/study/think/\u6982\u5ff5\u6a21\u578b/Proactor"}},i={},u=[{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],p={toc:u},s="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("p",null,"Actor\u6a21\u578b\u662f\u4e00\u4e2a\u6982\u5ff5\u6a21\u578b\uff0c\u7528\u4e8e\u5904\u7406\u5e76\u53d1\u8ba1\u7b97\u3002\u5b83\u5b9a\u4e49\u4e86\u4e00\u7cfb\u5217\u7cfb\u7edf\u7ec4\u4ef6\u5e94\u8be5\u5982\u4f55\u52a8\u4f5c\u548c\u4ea4\u4e92\u7684\u901a\u7528\u89c4\u5219\uff0c\u6700\u8457\u540d\u7684\u4f7f\u7528\u8fd9\u5957\u89c4\u5219\u7684\u7f16\u7a0b\u8bed\u8a00\u662fErlang\u3002"),(0,o.yg)("p",null,"\u5728\u8ba1\u7b97\u673a\u79d1\u5b66\u4e2d\uff0c\u53c2\u4e0e\u8005\u6a21\u5f0f\uff08\u82f1\u8bed\uff1aActor model\uff09\u662f\u4e00\u79cd\u5e76\u884c\u8fd0\u7b97\u4e0a\u7684\u6a21\u578b\u3002\u201c\u53c2\u4e0e\u8005\u201d\u662f\u4e00\u79cd\u7a0b\u5e8f\u4e0a\u7684\u62bd\u8c61\u6982\u5ff5\uff0c\u88ab\u89c6\u4e3a\u5e76\u884c\u8fd0\u7b97\u7684\u57fa\u672c\u5355\u5143\uff1a\u5f53\u4e00\u4e2a\u53c2\u4e0e\u8005\u63a5\u6536\u5230\u4e00\u5219\u8baf\u606f\uff0c\u5b83\u53ef\u4ee5\u505a\u51fa\u4e00\u4e9b\u51b3\u7b56\u3001\u5efa\u7acb\u66f4\u591a\u7684\u53c2\u4e0e\u8005\u3001\u4f20\u9001\u66f4\u591a\u7684\u8baf\u606f\u3001\u51b3\u5b9a\u8981\u5982\u4f55\u56de\u7b54\u63a5\u4e0b\u6765\u7684\u8baf\u606f\u3002"),(0,o.yg)("p",null,"\u53d1\u9001\u8005\u4e0e\u5df2\u7ecf\u53d1\u9001\u7684\u6d88\u606f\u89e3\u8026\uff0c\u662f\u53c2\u4e0e\u8005\u6a21\u578b\u7684\u6839\u672c\u4f18\u52bf\u3002\u8fd9\u5141\u8bb8\u8fdb\u884c\u5f02\u6b65\u901a\u4fe1\uff0c\u540c\u65f6\u6ee1\u8db3\u6d88\u606f\u4f20\u9012\u7684\u63a7\u5236\u7ed3\u6784\u3002"),(0,o.yg)("p",null,"\u6d88\u606f\u63a5\u6536\u8005\u662f\u901a\u8fc7\u5730\u5740\u533a\u5206\u7684\uff0c\u6709\u65f6\u4e5f\u88ab\u79f0\u4f5c\u201c\u90ae\u4ef6\u5730\u5740\u201d\u3002\u56e0\u6b64\u53c2\u4e0e\u8005\u53ea\u80fd\u548c\u5b83\u62e5\u6709\u5730\u5740\u7684\u53c2\u4e0e\u8005\u901a\u4fe1\u3002\u5b83\u53ef\u4ee5\u901a\u8fc7\u63a5\u53d7\u5230\u7684\u4fe1\u606f\u83b7\u53d6\u5730\u5740\uff0c\u6216\u8005\u83b7\u53d6\u5b83\u521b\u5efa\u7684\u53c2\u4e0e\u8005\u7684\u5730\u5740\u3002"),(0,o.yg)("p",null,"\u53c2\u4e0e\u8005\u6a21\u578b\u7684\u7279\u5f81\u662f\uff0c\u53c2\u4e0e\u8005\u5185\u90e8\u6216\u4e4b\u95f4\u8fdb\u884c\u5e76\u884c\u8ba1\u7b97\uff0c\u53c2\u4e0e\u8005\u53ef\u4ee5\u52a8\u6001\u521b\u5efa\uff0c\u53c2\u4e0e\u8005\u5730\u5740\u5305\u542b\u5728\u6d88\u606f\u4e2d\uff0c\u4ea4\u4e92\u53ea\u6709\u901a\u8fc7\u76f4\u63a5\u7684\u5f02\u6b65\u6d88\u606f\u901a\u4fe1\uff0c\u4e0d\u9650\u5236\u6d88\u606f\u5230\u8fbe\u7684\u987a\u5e8f\u3002"),(0,o.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://blog.csdn.net/weixin_42644249/article/details/114035587"},"java actor_\u5341\u5206\u949f\u7406\u89e3Actor\u6a21\u5f0f"))))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9665],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var i=n.createContext({}),u=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},p=function(e){var t=u(e.components);return n.createElement(i.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,i=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),s=u(r),y=o,f=s["".concat(i,".").concat(y)]||s[y]||d[y]||a;return r?n.createElement(f,c(c({ref:t},p),{},{components:r})):n.createElement(f,c({ref:t},p))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=y;var l={};for(var i in t)hasOwnProperty.call(t,i)&&(l[i]=t[i]);l.originalType=e,l[s]="string"==typeof e?e:o,c[1]=l;for(var u=2;u{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>c,default:()=>d,frontMatter:()=>a,metadata:()=>l,toc:()=>u});var n=r(8168),o=(r(6540),r(5680));const a={},c=void 0,l={unversionedId:"study/think/\u6982\u5ff5\u6a21\u578b/Actor Model",id:"study/think/\u6982\u5ff5\u6a21\u578b/Actor Model",title:"Actor Model",description:"Actor\u6a21\u578b\u662f\u4e00\u4e2a\u6982\u5ff5\u6a21\u578b\uff0c\u7528\u4e8e\u5904\u7406\u5e76\u53d1\u8ba1\u7b97\u3002\u5b83\u5b9a\u4e49\u4e86\u4e00\u7cfb\u5217\u7cfb\u7edf\u7ec4\u4ef6\u5e94\u8be5\u5982\u4f55\u52a8\u4f5c\u548c\u4ea4\u4e92\u7684\u901a\u7528\u89c4\u5219\uff0c\u6700\u8457\u540d\u7684\u4f7f\u7528\u8fd9\u5957\u89c4\u5219\u7684\u7f16\u7a0b\u8bed\u8a00\u662fErlang\u3002",source:"@site/docs/study/think/\u6982\u5ff5\u6a21\u578b/Actor Model.md",sourceDirName:"study/think/\u6982\u5ff5\u6a21\u578b",slug:"/study/think/\u6982\u5ff5\u6a21\u578b/Actor Model",permalink:"/docs/study/think/\u6982\u5ff5\u6a21\u578b/Actor Model",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u9ad8\u6027\u80fd\u67b6\u6784\u6a21\u5f0f",permalink:"/docs/study/think/\u67b6\u6784/\u9ad8\u6027\u80fd\u67b6\u6784\u6a21\u5f0f"},next:{title:"Proactor",permalink:"/docs/study/think/\u6982\u5ff5\u6a21\u578b/Proactor"}},i={},u=[{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],p={toc:u},s="wrapper";function d(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("p",null,"Actor\u6a21\u578b\u662f\u4e00\u4e2a\u6982\u5ff5\u6a21\u578b\uff0c\u7528\u4e8e\u5904\u7406\u5e76\u53d1\u8ba1\u7b97\u3002\u5b83\u5b9a\u4e49\u4e86\u4e00\u7cfb\u5217\u7cfb\u7edf\u7ec4\u4ef6\u5e94\u8be5\u5982\u4f55\u52a8\u4f5c\u548c\u4ea4\u4e92\u7684\u901a\u7528\u89c4\u5219\uff0c\u6700\u8457\u540d\u7684\u4f7f\u7528\u8fd9\u5957\u89c4\u5219\u7684\u7f16\u7a0b\u8bed\u8a00\u662fErlang\u3002"),(0,o.yg)("p",null,"\u5728\u8ba1\u7b97\u673a\u79d1\u5b66\u4e2d\uff0c\u53c2\u4e0e\u8005\u6a21\u5f0f\uff08\u82f1\u8bed\uff1aActor model\uff09\u662f\u4e00\u79cd\u5e76\u884c\u8fd0\u7b97\u4e0a\u7684\u6a21\u578b\u3002\u201c\u53c2\u4e0e\u8005\u201d\u662f\u4e00\u79cd\u7a0b\u5e8f\u4e0a\u7684\u62bd\u8c61\u6982\u5ff5\uff0c\u88ab\u89c6\u4e3a\u5e76\u884c\u8fd0\u7b97\u7684\u57fa\u672c\u5355\u5143\uff1a\u5f53\u4e00\u4e2a\u53c2\u4e0e\u8005\u63a5\u6536\u5230\u4e00\u5219\u8baf\u606f\uff0c\u5b83\u53ef\u4ee5\u505a\u51fa\u4e00\u4e9b\u51b3\u7b56\u3001\u5efa\u7acb\u66f4\u591a\u7684\u53c2\u4e0e\u8005\u3001\u4f20\u9001\u66f4\u591a\u7684\u8baf\u606f\u3001\u51b3\u5b9a\u8981\u5982\u4f55\u56de\u7b54\u63a5\u4e0b\u6765\u7684\u8baf\u606f\u3002"),(0,o.yg)("p",null,"\u53d1\u9001\u8005\u4e0e\u5df2\u7ecf\u53d1\u9001\u7684\u6d88\u606f\u89e3\u8026\uff0c\u662f\u53c2\u4e0e\u8005\u6a21\u578b\u7684\u6839\u672c\u4f18\u52bf\u3002\u8fd9\u5141\u8bb8\u8fdb\u884c\u5f02\u6b65\u901a\u4fe1\uff0c\u540c\u65f6\u6ee1\u8db3\u6d88\u606f\u4f20\u9012\u7684\u63a7\u5236\u7ed3\u6784\u3002"),(0,o.yg)("p",null,"\u6d88\u606f\u63a5\u6536\u8005\u662f\u901a\u8fc7\u5730\u5740\u533a\u5206\u7684\uff0c\u6709\u65f6\u4e5f\u88ab\u79f0\u4f5c\u201c\u90ae\u4ef6\u5730\u5740\u201d\u3002\u56e0\u6b64\u53c2\u4e0e\u8005\u53ea\u80fd\u548c\u5b83\u62e5\u6709\u5730\u5740\u7684\u53c2\u4e0e\u8005\u901a\u4fe1\u3002\u5b83\u53ef\u4ee5\u901a\u8fc7\u63a5\u53d7\u5230\u7684\u4fe1\u606f\u83b7\u53d6\u5730\u5740\uff0c\u6216\u8005\u83b7\u53d6\u5b83\u521b\u5efa\u7684\u53c2\u4e0e\u8005\u7684\u5730\u5740\u3002"),(0,o.yg)("p",null,"\u53c2\u4e0e\u8005\u6a21\u578b\u7684\u7279\u5f81\u662f\uff0c\u53c2\u4e0e\u8005\u5185\u90e8\u6216\u4e4b\u95f4\u8fdb\u884c\u5e76\u884c\u8ba1\u7b97\uff0c\u53c2\u4e0e\u8005\u53ef\u4ee5\u52a8\u6001\u521b\u5efa\uff0c\u53c2\u4e0e\u8005\u5730\u5740\u5305\u542b\u5728\u6d88\u606f\u4e2d\uff0c\u4ea4\u4e92\u53ea\u6709\u901a\u8fc7\u76f4\u63a5\u7684\u5f02\u6b65\u6d88\u606f\u901a\u4fe1\uff0c\u4e0d\u9650\u5236\u6d88\u606f\u5230\u8fbe\u7684\u987a\u5e8f\u3002"),(0,o.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,o.yg)("ul",null,(0,o.yg)("li",{parentName:"ul"},(0,o.yg)("a",{parentName:"li",href:"https://blog.csdn.net/weixin_42644249/article/details/114035587"},"java actor_\u5341\u5206\u949f\u7406\u89e3Actor\u6a21\u5f0f"))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/eb846286.5a41526a.js b/assets/js/eb846286.10935fc1.js similarity index 98% rename from assets/js/eb846286.5a41526a.js rename to assets/js/eb846286.10935fc1.js index b4146acae..02f20ea06 100644 --- a/assets/js/eb846286.5a41526a.js +++ b/assets/js/eb846286.10935fc1.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7368],{5680:(e,t,n)=>{n.d(t,{xA:()=>l,yg:()=>f});var r=n(6540);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function c(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var i=r.createContext({}),p=function(e){var t=r.useContext(i),n=t;return e&&(n="function"==typeof e?e(t):c(c({},t),e)),n},l=function(e){var t=p(e.components);return r.createElement(i.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},y=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,i=e.parentName,l=s(e,["components","mdxType","originalType","parentName"]),u=p(n),y=o,f=u["".concat(i,".").concat(y)]||u[y]||d[y]||a;return n?r.createElement(f,c(c({ref:t},l),{},{components:n})):r.createElement(f,c({ref:t},l))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,c=new Array(a);c[0]=y;var s={};for(var i in t)hasOwnProperty.call(t,i)&&(s[i]=t[i]);s.originalType=e,s[u]="string"==typeof e?e:o,c[1]=s;for(var p=2;p{n.r(t),n.d(t,{assets:()=>i,contentTitle:()=>c,default:()=>d,frontMatter:()=>a,metadata:()=>s,toc:()=>p});var r=n(8168),o=(n(6540),n(5680));const a={},c="centos-nginx",s={unversionedId:"study/devops/centos-gninx-app",id:"study/devops/centos-gninx-app",title:"centos-nginx",description:"",source:"@site/docs/study/devops/centos-gninx-app.md",sourceDirName:"study/devops",slug:"/study/devops/centos-gninx-app",permalink:"/docs/study/devops/centos-gninx-app",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Linux\u8fd0\u7ef4-\u9ad8\u5e76\u53d1",permalink:"/docs/study/devops/Linux\u8fd0\u7ef4-\u9ad8\u5e76\u53d1"},next:{title:"centos-jdk17-app",permalink:"/docs/study/devops/centos-jdk17-app"}},i={},p=[],l={toc:p},u="wrapper";function d(e){let{components:t,...n}=e;return(0,o.yg)(u,(0,r.A)({},l,n,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"centos-nginx"},"centos-nginx"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-shell"},"\nmkdir -p /root/iot-cloud-frontend/html\n\nyum install nginx\nsystemctl start nginx\n# \u914d\u7f6e\u6587\u4ef6\u76ee\u5f55 /etc/nginx\n# \u9ed8\u8ba4 root /usr/share/nginx/html;\n# \u4fee\u6539\u6210 root /root/iot-cloud-frontend/html;\nnginx -s reload\n\n# \u5982\u679c\u62a5\u9519403 \u8bf4\u660e\u542f\u52a8nginx\u7684\u7528\u6237\u548c\u6587\u4ef6\u4e0d\u4e00\u81f4 \u9700\u8981\u4fee\u6539\n")))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7368],{5680:(e,t,n)=>{n.d(t,{xA:()=>l,yg:()=>f});var r=n(6540);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function c(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var i=r.createContext({}),p=function(e){var t=r.useContext(i),n=t;return e&&(n="function"==typeof e?e(t):c(c({},t),e)),n},l=function(e){var t=p(e.components);return r.createElement(i.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},y=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,i=e.parentName,l=s(e,["components","mdxType","originalType","parentName"]),u=p(n),y=o,f=u["".concat(i,".").concat(y)]||u[y]||d[y]||a;return n?r.createElement(f,c(c({ref:t},l),{},{components:n})):r.createElement(f,c({ref:t},l))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,c=new Array(a);c[0]=y;var s={};for(var i in t)hasOwnProperty.call(t,i)&&(s[i]=t[i]);s.originalType=e,s[u]="string"==typeof e?e:o,c[1]=s;for(var p=2;p{n.r(t),n.d(t,{assets:()=>i,contentTitle:()=>c,default:()=>d,frontMatter:()=>a,metadata:()=>s,toc:()=>p});var r=n(8168),o=(n(6540),n(5680));const a={},c="centos-nginx",s={unversionedId:"study/devops/centos-gninx-app",id:"study/devops/centos-gninx-app",title:"centos-nginx",description:"",source:"@site/docs/study/devops/centos-gninx-app.md",sourceDirName:"study/devops",slug:"/study/devops/centos-gninx-app",permalink:"/docs/study/devops/centos-gninx-app",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Linux\u8fd0\u7ef4-\u9ad8\u5e76\u53d1",permalink:"/docs/study/devops/Linux\u8fd0\u7ef4-\u9ad8\u5e76\u53d1"},next:{title:"centos-jdk17-app",permalink:"/docs/study/devops/centos-jdk17-app"}},i={},p=[],l={toc:p},u="wrapper";function d(e){let{components:t,...n}=e;return(0,o.yg)(u,(0,r.A)({},l,n,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"centos-nginx"},"centos-nginx"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-shell"},"\nmkdir -p /root/iot-cloud-frontend/html\n\nyum install nginx\nsystemctl start nginx\n# \u914d\u7f6e\u6587\u4ef6\u76ee\u5f55 /etc/nginx\n# \u9ed8\u8ba4 root /usr/share/nginx/html;\n# \u4fee\u6539\u6210 root /root/iot-cloud-frontend/html;\nnginx -s reload\n\n# \u5982\u679c\u62a5\u9519403 \u8bf4\u660e\u542f\u52a8nginx\u7684\u7528\u6237\u548c\u6587\u4ef6\u4e0d\u4e00\u81f4 \u9700\u8981\u4fee\u6539\n")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/ecff2ea2.a0c845fb.js b/assets/js/ecff2ea2.1de70fe1.js similarity index 98% rename from assets/js/ecff2ea2.a0c845fb.js rename to assets/js/ecff2ea2.1de70fe1.js index b6f1c1306..d0ba2b417 100644 --- a/assets/js/ecff2ea2.a0c845fb.js +++ b/assets/js/ecff2ea2.1de70fe1.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2389],{5680:(e,n,t)=>{t.d(n,{xA:()=>p,yg:()=>f});var r=t(6540);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function l(e){for(var n=1;n=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var u=r.createContext({}),c=function(e){var n=r.useContext(u),t=n;return e&&(t="function"==typeof e?e(n):l(l({},n),e)),t},p=function(e){var n=c(e.components);return r.createElement(u.Provider,{value:n},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},y=r.forwardRef((function(e,n){var t=e.components,a=e.mdxType,i=e.originalType,u=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),s=c(t),y=a,f=s["".concat(u,".").concat(y)]||s[y]||d[y]||i;return t?r.createElement(f,l(l({ref:n},p),{},{components:t})):r.createElement(f,l({ref:n},p))}));function f(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var i=t.length,l=new Array(i);l[0]=y;var o={};for(var u in n)hasOwnProperty.call(n,u)&&(o[u]=n[u]);o.originalType=e,o[s]="string"==typeof e?e:a,l[1]=o;for(var c=2;c{t.r(n),t.d(n,{assets:()=>u,contentTitle:()=>l,default:()=>d,frontMatter:()=>i,metadata:()=>o,toc:()=>c});var r=t(8168),a=(t(6540),t(5680));const i={sidebar_position:1},l="\u6982\u8ff0",o={unversionedId:"xuanxing/fe/index",id:"xuanxing/fe/index",title:"\u6982\u8ff0",description:"\u524d\u7aef\u5927\u6982\u5305\u542b\u4ee5\u4e0b\u51e0\u4e2a\u65b9\u9762\uff1a",source:"@site/docs/xuanxing/fe/index.md",sourceDirName:"xuanxing/fe",slug:"/xuanxing/fe/",permalink:"/docs/xuanxing/fe/",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"xuanxingSidebar",previous:{title:"\u7efc\u8ff0",permalink:"/docs/xuanxing/"},next:{title:"\u5b98\u7f51",permalink:"/docs/xuanxing/fe/\u5b98\u7f51"}},u={},c=[{value:"\u5b98\u7f51",id:"\u5b98\u7f51",level:3},{value:"\u7528\u6237\u7aef\u3001\u7ba1\u7406\u7aef",id:"\u7528\u6237\u7aef\u7ba1\u7406\u7aef",level:3},{value:"\u79fb\u52a8\u7aef",id:"\u79fb\u52a8\u7aef",level:3},{value:"\u7ec4\u6001\u7f16\u8f91\u5668",id:"\u7ec4\u6001\u7f16\u8f91\u5668",level:3},{value:"\u5927\u5c4f\u7f16\u8f91\u5668",id:"\u5927\u5c4f\u7f16\u8f91\u5668",level:3}],p={toc:c},s="wrapper";function d(e){let{components:n,...t}=e;return(0,a.yg)(s,(0,r.A)({},p,t,{components:n,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"\u6982\u8ff0"},"\u6982\u8ff0"),(0,a.yg)("p",null,"\u524d\u7aef\u5927\u6982\u5305\u542b\u4ee5\u4e0b\u51e0\u4e2a\u65b9\u9762\uff1a"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u5b98\u7f51"),(0,a.yg)("li",{parentName:"ul"},"\u7528\u6237\u7aef\u3010PC WEB\u3011"),(0,a.yg)("li",{parentName:"ul"},"\u7ba1\u7406\u7aef\u3010PC WEB\u3011"),(0,a.yg)("li",{parentName:"ul"},"\u79fb\u52a8\u7aef\u3010\u5fae\u4fe1\u5c0f\u7a0b\u5e8f\u3001APP\u3001Mobile WEB\u3011"),(0,a.yg)("li",{parentName:"ul"},"\u7ec4\u6001\u7f16\u8f91\u5668\u3010PC WEB\u7f16\u8f91\u53ca\u8fd0\u884c\u3011\u3010Mobile WEB\u8fd0\u884c\u3011"),(0,a.yg)("li",{parentName:"ul"},"\u5927\u5c4f\u7f16\u8f91\u5668\u3010PC WEB\u7f16\u8f91\u53ca\u8fd0\u884c\u3011")),(0,a.yg)("h3",{id:"\u5b98\u7f51"},"\u5b98\u7f51"),(0,a.yg)("p",null,"\u5b98\u7f51\u6bd4\u8f83\u504f\u7eaf\u5c55\u793a\uff0c\u5bf9SEO\u6709\u8981\u6c42\uff0c\u5bf9CMS\u6709\u8981\u6c42\uff0c\u5bf9\u90e8\u5206\u8fd0\u8425\u6709\u9700\u6c42\uff1b"),(0,a.yg)("h3",{id:"\u7528\u6237\u7aef\u7ba1\u7406\u7aef"},"\u7528\u6237\u7aef\u3001\u7ba1\u7406\u7aef"),(0,a.yg)("p",null,"\u5728\u7269\u8054\u7f51\u4e91\u5e73\u53f0\u4e0a\uff0c\u7528\u6237\u7aef\u548c\u7ba1\u7406\u7aef\u90fd\u662f\u504f\u4e2d\u540e\u53f0\u7684\u7ba1\u7406\u7cfb\u7edf\uff0c\u6240\u4ee5\u4ed6\u4eec\u4e24\u4e2a\u524d\u7aef\u7684\u6280\u672f\u9009\u578b\u4e0a\u5e94\u8be5\u662f\u7edf\u4e00\u7684\uff1b"),(0,a.yg)("h3",{id:"\u79fb\u52a8\u7aef"},"\u79fb\u52a8\u7aef"),(0,a.yg)("p",null,"\u5c0f\u7a0b\u5e8f\u7684\u8bdd\uff0c\u53ea\u8003\u8651\u5fae\u4fe1\u5e94\u8be5\u5c31\u53ef\u4ee5\u4e86\u3002\u56fd\u5185\u7684\u8bdd\uff0c\u53ef\u4ee5\u53ea\u8003\u8651\u5c0f\u7a0b\u5e8f\uff0cAPP\u548cMobile WEB\u53ef\u4ee5\u4e0d\u7528\u8003\u8651\uff1b"),(0,a.yg)("h3",{id:"\u7ec4\u6001\u7f16\u8f91\u5668"},"\u7ec4\u6001\u7f16\u8f91\u5668"),(0,a.yg)("p",null,"WEB\u7ec4\u6001\u5176\u5b9e\u662f\u5de5\u4e1a\u7ec4\u6001\u8f6f\u4ef6\u642c\u5230\u4e86\u4e91\u5e73\u53f0\u4e0a\uff0c\u6240\u4ee5\u7ec4\u6001\u7f16\u8f91\u5668\u5176\u5b9e\u504f\u5de5\u827a\u6d41\u7a0b\uff0c\u867d\u7136\u4ed6\u548c\u5927\u5c4f\u7f16\u8f91\u5668\u90fd\u662f\u6258\u62c9\u62fd\u7684\u53ef\u89c6\u5316\u8bbe\u8ba1\u65b9\u5f0f\uff0c\u4f46\u662f\u8fd8\u662f\u6709\u5f88\u5927\u7684\u533a\u522b\u7684\u3002"),(0,a.yg)("h3",{id:"\u5927\u5c4f\u7f16\u8f91\u5668"},"\u5927\u5c4f\u7f16\u8f91\u5668"),(0,a.yg)("p",null,"\u5728\u6570\u636e\u5c55\u793a\u65b9\u9762\uff0c\u5927\u5c4f\u7f16\u8f91\u5668\u53ef\u4ee5\u6258\u62c9\u62fd\u7684\u65b9\u5f0f\u6765\u8bbe\u8ba1\uff1b"))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[2389],{5680:(e,n,t)=>{t.d(n,{xA:()=>p,yg:()=>f});var r=t(6540);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function l(e){for(var n=1;n=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var u=r.createContext({}),c=function(e){var n=r.useContext(u),t=n;return e&&(t="function"==typeof e?e(n):l(l({},n),e)),t},p=function(e){var n=c(e.components);return r.createElement(u.Provider,{value:n},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},y=r.forwardRef((function(e,n){var t=e.components,a=e.mdxType,i=e.originalType,u=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),s=c(t),y=a,f=s["".concat(u,".").concat(y)]||s[y]||d[y]||i;return t?r.createElement(f,l(l({ref:n},p),{},{components:t})):r.createElement(f,l({ref:n},p))}));function f(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var i=t.length,l=new Array(i);l[0]=y;var o={};for(var u in n)hasOwnProperty.call(n,u)&&(o[u]=n[u]);o.originalType=e,o[s]="string"==typeof e?e:a,l[1]=o;for(var c=2;c{t.r(n),t.d(n,{assets:()=>u,contentTitle:()=>l,default:()=>d,frontMatter:()=>i,metadata:()=>o,toc:()=>c});var r=t(8168),a=(t(6540),t(5680));const i={sidebar_position:1},l="\u6982\u8ff0",o={unversionedId:"xuanxing/fe/index",id:"xuanxing/fe/index",title:"\u6982\u8ff0",description:"\u524d\u7aef\u5927\u6982\u5305\u542b\u4ee5\u4e0b\u51e0\u4e2a\u65b9\u9762\uff1a",source:"@site/docs/xuanxing/fe/index.md",sourceDirName:"xuanxing/fe",slug:"/xuanxing/fe/",permalink:"/docs/xuanxing/fe/",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"xuanxingSidebar",previous:{title:"\u7efc\u8ff0",permalink:"/docs/xuanxing/"},next:{title:"\u5b98\u7f51",permalink:"/docs/xuanxing/fe/\u5b98\u7f51"}},u={},c=[{value:"\u5b98\u7f51",id:"\u5b98\u7f51",level:3},{value:"\u7528\u6237\u7aef\u3001\u7ba1\u7406\u7aef",id:"\u7528\u6237\u7aef\u7ba1\u7406\u7aef",level:3},{value:"\u79fb\u52a8\u7aef",id:"\u79fb\u52a8\u7aef",level:3},{value:"\u7ec4\u6001\u7f16\u8f91\u5668",id:"\u7ec4\u6001\u7f16\u8f91\u5668",level:3},{value:"\u5927\u5c4f\u7f16\u8f91\u5668",id:"\u5927\u5c4f\u7f16\u8f91\u5668",level:3}],p={toc:c},s="wrapper";function d(e){let{components:n,...t}=e;return(0,a.yg)(s,(0,r.A)({},p,t,{components:n,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"\u6982\u8ff0"},"\u6982\u8ff0"),(0,a.yg)("p",null,"\u524d\u7aef\u5927\u6982\u5305\u542b\u4ee5\u4e0b\u51e0\u4e2a\u65b9\u9762\uff1a"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u5b98\u7f51"),(0,a.yg)("li",{parentName:"ul"},"\u7528\u6237\u7aef\u3010PC WEB\u3011"),(0,a.yg)("li",{parentName:"ul"},"\u7ba1\u7406\u7aef\u3010PC WEB\u3011"),(0,a.yg)("li",{parentName:"ul"},"\u79fb\u52a8\u7aef\u3010\u5fae\u4fe1\u5c0f\u7a0b\u5e8f\u3001APP\u3001Mobile WEB\u3011"),(0,a.yg)("li",{parentName:"ul"},"\u7ec4\u6001\u7f16\u8f91\u5668\u3010PC WEB\u7f16\u8f91\u53ca\u8fd0\u884c\u3011\u3010Mobile WEB\u8fd0\u884c\u3011"),(0,a.yg)("li",{parentName:"ul"},"\u5927\u5c4f\u7f16\u8f91\u5668\u3010PC WEB\u7f16\u8f91\u53ca\u8fd0\u884c\u3011")),(0,a.yg)("h3",{id:"\u5b98\u7f51"},"\u5b98\u7f51"),(0,a.yg)("p",null,"\u5b98\u7f51\u6bd4\u8f83\u504f\u7eaf\u5c55\u793a\uff0c\u5bf9SEO\u6709\u8981\u6c42\uff0c\u5bf9CMS\u6709\u8981\u6c42\uff0c\u5bf9\u90e8\u5206\u8fd0\u8425\u6709\u9700\u6c42\uff1b"),(0,a.yg)("h3",{id:"\u7528\u6237\u7aef\u7ba1\u7406\u7aef"},"\u7528\u6237\u7aef\u3001\u7ba1\u7406\u7aef"),(0,a.yg)("p",null,"\u5728\u7269\u8054\u7f51\u4e91\u5e73\u53f0\u4e0a\uff0c\u7528\u6237\u7aef\u548c\u7ba1\u7406\u7aef\u90fd\u662f\u504f\u4e2d\u540e\u53f0\u7684\u7ba1\u7406\u7cfb\u7edf\uff0c\u6240\u4ee5\u4ed6\u4eec\u4e24\u4e2a\u524d\u7aef\u7684\u6280\u672f\u9009\u578b\u4e0a\u5e94\u8be5\u662f\u7edf\u4e00\u7684\uff1b"),(0,a.yg)("h3",{id:"\u79fb\u52a8\u7aef"},"\u79fb\u52a8\u7aef"),(0,a.yg)("p",null,"\u5c0f\u7a0b\u5e8f\u7684\u8bdd\uff0c\u53ea\u8003\u8651\u5fae\u4fe1\u5e94\u8be5\u5c31\u53ef\u4ee5\u4e86\u3002\u56fd\u5185\u7684\u8bdd\uff0c\u53ef\u4ee5\u53ea\u8003\u8651\u5c0f\u7a0b\u5e8f\uff0cAPP\u548cMobile WEB\u53ef\u4ee5\u4e0d\u7528\u8003\u8651\uff1b"),(0,a.yg)("h3",{id:"\u7ec4\u6001\u7f16\u8f91\u5668"},"\u7ec4\u6001\u7f16\u8f91\u5668"),(0,a.yg)("p",null,"WEB\u7ec4\u6001\u5176\u5b9e\u662f\u5de5\u4e1a\u7ec4\u6001\u8f6f\u4ef6\u642c\u5230\u4e86\u4e91\u5e73\u53f0\u4e0a\uff0c\u6240\u4ee5\u7ec4\u6001\u7f16\u8f91\u5668\u5176\u5b9e\u504f\u5de5\u827a\u6d41\u7a0b\uff0c\u867d\u7136\u4ed6\u548c\u5927\u5c4f\u7f16\u8f91\u5668\u90fd\u662f\u6258\u62c9\u62fd\u7684\u53ef\u89c6\u5316\u8bbe\u8ba1\u65b9\u5f0f\uff0c\u4f46\u662f\u8fd8\u662f\u6709\u5f88\u5927\u7684\u533a\u522b\u7684\u3002"),(0,a.yg)("h3",{id:"\u5927\u5c4f\u7f16\u8f91\u5668"},"\u5927\u5c4f\u7f16\u8f91\u5668"),(0,a.yg)("p",null,"\u5728\u6570\u636e\u5c55\u793a\u65b9\u9762\uff0c\u5927\u5c4f\u7f16\u8f91\u5668\u53ef\u4ee5\u6258\u62c9\u62fd\u7684\u65b9\u5f0f\u6765\u8bbe\u8ba1\uff1b"))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/ed01863f.723475e8.js b/assets/js/ed01863f.8ea22d0d.js similarity index 99% rename from assets/js/ed01863f.723475e8.js rename to assets/js/ed01863f.8ea22d0d.js index e972f5e7a..652d52edb 100644 --- a/assets/js/ed01863f.723475e8.js +++ b/assets/js/ed01863f.8ea22d0d.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7144],{5680:(e,t,a)=>{a.d(t,{xA:()=>m,yg:()=>s});var r=a(6540);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function i(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var o=r.createContext({}),u=function(e){var t=r.useContext(o),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},m=function(e){var t=u(e.components);return r.createElement(o.Provider,{value:t},e.children)},c="mdxType",g={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},y=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,l=e.originalType,o=e.parentName,m=p(e,["components","mdxType","originalType","parentName"]),c=u(a),y=n,s=c["".concat(o,".").concat(y)]||c[y]||g[y]||l;return a?r.createElement(s,i(i({ref:t},m),{},{components:a})):r.createElement(s,i({ref:t},m))}));function s(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var l=a.length,i=new Array(l);i[0]=y;var p={};for(var o in t)hasOwnProperty.call(t,o)&&(p[o]=t[o]);p.originalType=e,p[c]="string"==typeof e?e:n,i[1]=p;for(var u=2;u{a.r(t),a.d(t,{assets:()=>o,contentTitle:()=>i,default:()=>g,frontMatter:()=>l,metadata:()=>p,toc:()=>u});var r=a(8168),n=(a(6540),a(5680));const l={},i=void 0,p={unversionedId:"xuanxing/thingsboard/\u6e90\u7801\u7ed3\u6784",id:"xuanxing/thingsboard/\u6e90\u7801\u7ed3\u6784",title:"\u6e90\u7801\u7ed3\u6784",description:"swagger",source:"@site/docs/xuanxing/thingsboard/\u6e90\u7801\u7ed3\u6784.md",sourceDirName:"xuanxing/thingsboard",slug:"/xuanxing/thingsboard/\u6e90\u7801\u7ed3\u6784",permalink:"/docs/xuanxing/thingsboard/\u6e90\u7801\u7ed3\u6784",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"xuanxingSidebar",previous:{title:"\u5982\u4f55\u4f7f\u7528",permalink:"/docs/xuanxing/thingsboard/\u5982\u4f55\u4f7f\u7528"}},o={},u=[{value:"swagger",id:"swagger",level:3},{value:"\u6e90\u7801\u7ed3\u6784",id:"\u6e90\u7801\u7ed3\u6784",level:3}],m={toc:u},c="wrapper";function g(e){let{components:t,...a}=e;return(0,n.yg)(c,(0,r.A)({},m,a,{components:t,mdxType:"MDXLayout"}),(0,n.yg)("h3",{id:"swagger"},"swagger"),(0,n.yg)("p",null,"http://localhost:8080/swagger-ui.html"),(0,n.yg)("h3",{id:"\u6e90\u7801\u7ed3\u6784"},"\u6e90\u7801\u7ed3\u6784"),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},"application \u4e3b\u7a0b\u5e8f\u5165\u53e3\u6a21\u5757\uff0c\u91cd\u70b9\u5173\u6ce8ThingsboardServerApplication\u542f\u52a8\u7c7b"),(0,n.yg)("li",{parentName:"ul"},"common \u516c\u5171\u6a21\u5757\u7ec4",(0,n.yg)("ul",{parentName:"li"},(0,n.yg)("li",{parentName:"ul"},"actor actor\u5f00\u53d1\u6a21\u578b\u63a5\u53e3\u6a21\u5757 \u5b9e\u73b0\u5728application\u6a21\u5757"),(0,n.yg)("li",{parentName:"ul"},"cache Redis/Caffeine\u7f13\u5b58\u6a21\u5757"),(0,n.yg)("li",{parentName:"ul"},"cluster-api \u96c6\u7fa4\u529f\u80fd\u63a5\u53e3\u6a21\u5757\uff0c\u961f\u5217\u3001\u6d88\u606f\u901a\u77e5\u7b49"),(0,n.yg)("li",{parentName:"ul"},"coap-server coap\u534f\u8bae\u5b9e\u73b0\u6a21\u5757"),(0,n.yg)("li",{parentName:"ul"},"dao-api dao\u5c42\u63a5\u53e3\u6a21\u5757\uff0c\u5168\u662f\u63a5\u53e3\uff0c\u6ca1\u6709\u5b9e\u73b0"),(0,n.yg)("li",{parentName:"ul"},"data \u5b9e\u4f53\u6a21\u5757\uff0c\u5168\u662f\u4e00\u4e9bDTO\u3001entity\u3001pojo\u7b49\uff0c\u6700\u57fa\u7840\u7684\u6e90\u7801\u5305\uff0c\u4e0d\u4f9d\u8d56\u4efb\u4f55\u5176\u4ed6\u6e90\u7801\u6a21\u5757"),(0,n.yg)("li",{parentName:"ul"},"edge-api \u8fb9\u7f18\u7aefapi\uff0c\u4e3b\u8981\u662f\u8c03\u7528\u7f51\u5173\u7aef\u7684rpc\u8c03\u7528\uff0c\u76ee\u524d\u4ee3\u7801\u6ca1\u6709\u7528\u5230\u6b64\u5305\u7684\u5185\u5bb9"),(0,n.yg)("li",{parentName:"ul"},"message \u6d88\u606f\u901a\u7528\u6a21\u5757\uff0c\u4e2d\u95f4\u4ef6\u6d88\u606f\u3001\u89c4\u5219\u94fe\u6d88\u606f\u7b49\uff0c\u504f\u63a5\u53e3\u3001\u5b9e\u4f53\u3001\u5f02\u5e38\u7c7b"),(0,n.yg)("li",{parentName:"ul"},"queue \u6d88\u606f\u4e2d\u95f4\u4ef6\u3001\u6d88\u606f\u961f\u5217"),(0,n.yg)("li",{parentName:"ul"},"script",(0,n.yg)("ul",{parentName:"li"},(0,n.yg)("li",{parentName:"ul"},"remote-js-client \u8fdc\u7a0b\u6267\u884cjs\u5ba2\u6237\u7aef\uff0c\u6e90\u7801\u6ca1\u6709\u7528\u5230"),(0,n.yg)("li",{parentName:"ul"},"script-api js\u811a\u672c\u6267\u884c\u6a21\u5757\uff0c\u6e90\u7801\u6ca1\u6709\u7528\u5230"))),(0,n.yg)("li",{parentName:"ul"},"stats \u72b6\u6001\u7edf\u8ba1\u3001\u6d88\u606f\u7edf\u8ba1"),(0,n.yg)("li",{parentName:"ul"},"transport \u4f20\u8f93\u6a21\u5757\u7ec4",(0,n.yg)("ul",{parentName:"li"},(0,n.yg)("li",{parentName:"ul"},"coap coap\u534f\u8bae\u4f20\u8f93\u6a21\u5757"),(0,n.yg)("li",{parentName:"ul"},"http http\u534f\u8bae\u4f20\u8f93\u6a21\u5757"),(0,n.yg)("li",{parentName:"ul"},"lwm2m lwm2m\u534f\u8bae\u4f20\u8f93\u6a21\u5757"),(0,n.yg)("li",{parentName:"ul"},"mqtt mqtt\u534f\u8bae\u4f20\u8f93\u6a21\u5757"),(0,n.yg)("li",{parentName:"ul"},"snmp snmp\u534f\u8bae\u4f20\u8f93\u6a21\u5757"),(0,n.yg)("li",{parentName:"ul"},"transport-api \u57fa\u7840\u4f20\u8f93\u6a21\u5757 \u4e0a\u9762\u7684\u4f20\u8f93\u6a21\u5757\u90fd\u9700\u8981\u4f9d\u8d56\u4ed6\uff0c\u4ed6\u7b97\u662f\u6bd4\u8f83\u57fa\u7840\u7684\u6a21\u5757\u4e86"))),(0,n.yg)("li",{parentName:"ul"},"util \u5de5\u5177\u7c7b\u6a21\u5757\uff0c\u53ea\u4f9d\u8d56common/data\u6a21\u5757"),(0,n.yg)("li",{parentName:"ul"},"version-control TODO \u7248\u672c\u63a7\u5236\uff0c\u5177\u4f53\u4e1a\u52a1\u8fd8\u6ca1\u641e\u61c2"))),(0,n.yg)("li",{parentName:"ul"},"dao \u5177\u4f53\u7684dao\u5b9e\u73b0\u6a21\u5757"),(0,n.yg)("li",{parentName:"ul"},"docker \u542f\u7528\u5fae\u670d\u52a1\u7684docker\u914d\u7f6e\u76ee\u5f55\uff0c\u811a\u672c\u3001docker\u914d\u7f6e\u6587\u4ef6\u7b49"),(0,n.yg)("li",{parentName:"ul"},"msa microservices aplication\u5fae\u670d\u52a1\u6a21\u5757\u7ec4",(0,n.yg)("ul",{parentName:"li"},(0,n.yg)("li",{parentName:"ul"},"black-box-tests"),(0,n.yg)("li",{parentName:"ul"},"js-executor"),(0,n.yg)("li",{parentName:"ul"},"tb \u5355docker\u955c\u50cf"),(0,n.yg)("li",{parentName:"ul"},"tb-node"),(0,n.yg)("li",{parentName:"ul"},"transport \u534f\u8bae\u4f20\u8f93\u914d\u7f6edocker\u5fae\u670d\u52a1\u6a21\u5757\u7ec4",(0,n.yg)("ul",{parentName:"li"},(0,n.yg)("li",{parentName:"ul"},"coap coap\u534f\u8bae\u4f20\u8f93\u914d\u7f6edocker\u5fae\u670d\u52a1\u6a21\u5757"),(0,n.yg)("li",{parentName:"ul"},"http http\u534f\u8bae\u4f20\u8f93\u914d\u7f6edocker\u5fae\u670d\u52a1\u6a21\u5757"),(0,n.yg)("li",{parentName:"ul"},"lwm2m lwm2m\u534f\u8bae\u4f20\u8f93\u914d\u7f6edocker\u5fae\u670d\u52a1\u6a21\u5757"),(0,n.yg)("li",{parentName:"ul"},"mqtt mqtt\u534f\u8bae\u4f20\u8f93\u914d\u7f6edocker\u5fae\u670d\u52a1\u6a21\u5757"),(0,n.yg)("li",{parentName:"ul"},"snmp snmp\u534f\u8bae\u4f20\u8f93\u914d\u7f6edocker\u5fae\u670d\u52a1\u6a21\u5757"))),(0,n.yg)("li",{parentName:"ul"},"vc-executor TODO \u4f9d\u8d56common/version-control"),(0,n.yg)("li",{parentName:"ul"},"vc-executor-docker vc-executor\u7684docker\u914d\u7f6e\u6a21\u5757"),(0,n.yg)("li",{parentName:"ul"},"web-ui \u524d\u7aef\u7684docker\u914d\u7f6e\u6a21\u5757"))),(0,n.yg)("li",{parentName:"ul"},"netty-mqtt mqtt-broker\u534f\u8bae\u5b9e\u73b0\u6a21\u5757"),(0,n.yg)("li",{parentName:"ul"},"packing \u6253\u5305\u5de5\u5177\u76ee\u5f55\uff0c\u6253rpm\u3001deb\u5305"),(0,n.yg)("li",{parentName:"ul"},"rest-client \u4e8c\u5f00SDK\u6a21\u5757\uff0c\u4e8c\u5f00\u8bf7\u6c42\u5de5\u5177"),(0,n.yg)("li",{parentName:"ul"},"rule-engine \u89c4\u5219\u5f15\u64ce",(0,n.yg)("ul",{parentName:"li"},(0,n.yg)("li",{parentName:"ul"},"rule-engine-api \u89c4\u5219\u5f15\u64ce\u63a5\u53e3\u6a21\u5757\uff0c\u5168\u662f\u63a5\u53e3\uff0capplication\u4f1a\u5b9e\u73b0"),(0,n.yg)("li",{parentName:"ul"},"rule-engine-components \u89c4\u5219\u5f15\u64ce\u6240\u6709\u5143\u4ef6\u6a21\u5757"))),(0,n.yg)("li",{parentName:"ul"},"tools \u5404\u79cd\u5de5\u5177\u6a21\u5757\uff0c\u6570\u636e\u8fc1\u79fb\u5de5\u5177\u3001Python\u53d1\u9001\u6d88\u606f\u5de5\u5177\u3001shell\u5de5\u5177\u7b49\u7b49"),(0,n.yg)("li",{parentName:"ul"},"transport \u534f\u8bae\u4f20\u8f93\u914d\u7f6e\u542f\u52a8\u7c7b\u6a21\u5757",(0,n.yg)("ul",{parentName:"li"},(0,n.yg)("li",{parentName:"ul"},"coap coap\u534f\u8bae\u4f20\u8f93\u914d\u7f6e\u542f\u52a8\u7c7b\u6a21\u5757"),(0,n.yg)("li",{parentName:"ul"},"http http\u534f\u8bae\u4f20\u8f93\u914d\u7f6e\u542f\u52a8\u7c7b\u6a21\u5757"),(0,n.yg)("li",{parentName:"ul"},"lwm2m lwm2m\u534f\u8bae\u4f20\u8f93\u914d\u7f6e\u542f\u52a8\u7c7b\u6a21\u5757"),(0,n.yg)("li",{parentName:"ul"},"mqtt mqtt\u534f\u8bae\u4f20\u8f93\u914d\u7f6e\u542f\u52a8\u7c7b\u6a21\u5757"),(0,n.yg)("li",{parentName:"ul"},"snmp snmp\u534f\u8bae\u4f20\u8f93\u914d\u7f6e\u542f\u52a8\u7c7b\u6a21\u5757"))),(0,n.yg)("li",{parentName:"ul"},"ui-ngx \u524d\u7aef\u5de5\u7a0b\u6a21\u5757")))}g.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[7144],{5680:(e,t,a)=>{a.d(t,{xA:()=>m,yg:()=>s});var r=a(6540);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function i(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var o=r.createContext({}),u=function(e){var t=r.useContext(o),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},m=function(e){var t=u(e.components);return r.createElement(o.Provider,{value:t},e.children)},c="mdxType",g={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},y=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,l=e.originalType,o=e.parentName,m=p(e,["components","mdxType","originalType","parentName"]),c=u(a),y=n,s=c["".concat(o,".").concat(y)]||c[y]||g[y]||l;return a?r.createElement(s,i(i({ref:t},m),{},{components:a})):r.createElement(s,i({ref:t},m))}));function s(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var l=a.length,i=new Array(l);i[0]=y;var p={};for(var o in t)hasOwnProperty.call(t,o)&&(p[o]=t[o]);p.originalType=e,p[c]="string"==typeof e?e:n,i[1]=p;for(var u=2;u{a.r(t),a.d(t,{assets:()=>o,contentTitle:()=>i,default:()=>g,frontMatter:()=>l,metadata:()=>p,toc:()=>u});var r=a(8168),n=(a(6540),a(5680));const l={},i=void 0,p={unversionedId:"xuanxing/thingsboard/\u6e90\u7801\u7ed3\u6784",id:"xuanxing/thingsboard/\u6e90\u7801\u7ed3\u6784",title:"\u6e90\u7801\u7ed3\u6784",description:"swagger",source:"@site/docs/xuanxing/thingsboard/\u6e90\u7801\u7ed3\u6784.md",sourceDirName:"xuanxing/thingsboard",slug:"/xuanxing/thingsboard/\u6e90\u7801\u7ed3\u6784",permalink:"/docs/xuanxing/thingsboard/\u6e90\u7801\u7ed3\u6784",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"xuanxingSidebar",previous:{title:"\u5982\u4f55\u4f7f\u7528",permalink:"/docs/xuanxing/thingsboard/\u5982\u4f55\u4f7f\u7528"}},o={},u=[{value:"swagger",id:"swagger",level:3},{value:"\u6e90\u7801\u7ed3\u6784",id:"\u6e90\u7801\u7ed3\u6784",level:3}],m={toc:u},c="wrapper";function g(e){let{components:t,...a}=e;return(0,n.yg)(c,(0,r.A)({},m,a,{components:t,mdxType:"MDXLayout"}),(0,n.yg)("h3",{id:"swagger"},"swagger"),(0,n.yg)("p",null,"http://localhost:8080/swagger-ui.html"),(0,n.yg)("h3",{id:"\u6e90\u7801\u7ed3\u6784"},"\u6e90\u7801\u7ed3\u6784"),(0,n.yg)("ul",null,(0,n.yg)("li",{parentName:"ul"},"application \u4e3b\u7a0b\u5e8f\u5165\u53e3\u6a21\u5757\uff0c\u91cd\u70b9\u5173\u6ce8ThingsboardServerApplication\u542f\u52a8\u7c7b"),(0,n.yg)("li",{parentName:"ul"},"common \u516c\u5171\u6a21\u5757\u7ec4",(0,n.yg)("ul",{parentName:"li"},(0,n.yg)("li",{parentName:"ul"},"actor actor\u5f00\u53d1\u6a21\u578b\u63a5\u53e3\u6a21\u5757 \u5b9e\u73b0\u5728application\u6a21\u5757"),(0,n.yg)("li",{parentName:"ul"},"cache Redis/Caffeine\u7f13\u5b58\u6a21\u5757"),(0,n.yg)("li",{parentName:"ul"},"cluster-api \u96c6\u7fa4\u529f\u80fd\u63a5\u53e3\u6a21\u5757\uff0c\u961f\u5217\u3001\u6d88\u606f\u901a\u77e5\u7b49"),(0,n.yg)("li",{parentName:"ul"},"coap-server coap\u534f\u8bae\u5b9e\u73b0\u6a21\u5757"),(0,n.yg)("li",{parentName:"ul"},"dao-api dao\u5c42\u63a5\u53e3\u6a21\u5757\uff0c\u5168\u662f\u63a5\u53e3\uff0c\u6ca1\u6709\u5b9e\u73b0"),(0,n.yg)("li",{parentName:"ul"},"data \u5b9e\u4f53\u6a21\u5757\uff0c\u5168\u662f\u4e00\u4e9bDTO\u3001entity\u3001pojo\u7b49\uff0c\u6700\u57fa\u7840\u7684\u6e90\u7801\u5305\uff0c\u4e0d\u4f9d\u8d56\u4efb\u4f55\u5176\u4ed6\u6e90\u7801\u6a21\u5757"),(0,n.yg)("li",{parentName:"ul"},"edge-api \u8fb9\u7f18\u7aefapi\uff0c\u4e3b\u8981\u662f\u8c03\u7528\u7f51\u5173\u7aef\u7684rpc\u8c03\u7528\uff0c\u76ee\u524d\u4ee3\u7801\u6ca1\u6709\u7528\u5230\u6b64\u5305\u7684\u5185\u5bb9"),(0,n.yg)("li",{parentName:"ul"},"message \u6d88\u606f\u901a\u7528\u6a21\u5757\uff0c\u4e2d\u95f4\u4ef6\u6d88\u606f\u3001\u89c4\u5219\u94fe\u6d88\u606f\u7b49\uff0c\u504f\u63a5\u53e3\u3001\u5b9e\u4f53\u3001\u5f02\u5e38\u7c7b"),(0,n.yg)("li",{parentName:"ul"},"queue \u6d88\u606f\u4e2d\u95f4\u4ef6\u3001\u6d88\u606f\u961f\u5217"),(0,n.yg)("li",{parentName:"ul"},"script",(0,n.yg)("ul",{parentName:"li"},(0,n.yg)("li",{parentName:"ul"},"remote-js-client \u8fdc\u7a0b\u6267\u884cjs\u5ba2\u6237\u7aef\uff0c\u6e90\u7801\u6ca1\u6709\u7528\u5230"),(0,n.yg)("li",{parentName:"ul"},"script-api js\u811a\u672c\u6267\u884c\u6a21\u5757\uff0c\u6e90\u7801\u6ca1\u6709\u7528\u5230"))),(0,n.yg)("li",{parentName:"ul"},"stats \u72b6\u6001\u7edf\u8ba1\u3001\u6d88\u606f\u7edf\u8ba1"),(0,n.yg)("li",{parentName:"ul"},"transport \u4f20\u8f93\u6a21\u5757\u7ec4",(0,n.yg)("ul",{parentName:"li"},(0,n.yg)("li",{parentName:"ul"},"coap coap\u534f\u8bae\u4f20\u8f93\u6a21\u5757"),(0,n.yg)("li",{parentName:"ul"},"http http\u534f\u8bae\u4f20\u8f93\u6a21\u5757"),(0,n.yg)("li",{parentName:"ul"},"lwm2m lwm2m\u534f\u8bae\u4f20\u8f93\u6a21\u5757"),(0,n.yg)("li",{parentName:"ul"},"mqtt mqtt\u534f\u8bae\u4f20\u8f93\u6a21\u5757"),(0,n.yg)("li",{parentName:"ul"},"snmp snmp\u534f\u8bae\u4f20\u8f93\u6a21\u5757"),(0,n.yg)("li",{parentName:"ul"},"transport-api \u57fa\u7840\u4f20\u8f93\u6a21\u5757 \u4e0a\u9762\u7684\u4f20\u8f93\u6a21\u5757\u90fd\u9700\u8981\u4f9d\u8d56\u4ed6\uff0c\u4ed6\u7b97\u662f\u6bd4\u8f83\u57fa\u7840\u7684\u6a21\u5757\u4e86"))),(0,n.yg)("li",{parentName:"ul"},"util \u5de5\u5177\u7c7b\u6a21\u5757\uff0c\u53ea\u4f9d\u8d56common/data\u6a21\u5757"),(0,n.yg)("li",{parentName:"ul"},"version-control TODO \u7248\u672c\u63a7\u5236\uff0c\u5177\u4f53\u4e1a\u52a1\u8fd8\u6ca1\u641e\u61c2"))),(0,n.yg)("li",{parentName:"ul"},"dao \u5177\u4f53\u7684dao\u5b9e\u73b0\u6a21\u5757"),(0,n.yg)("li",{parentName:"ul"},"docker \u542f\u7528\u5fae\u670d\u52a1\u7684docker\u914d\u7f6e\u76ee\u5f55\uff0c\u811a\u672c\u3001docker\u914d\u7f6e\u6587\u4ef6\u7b49"),(0,n.yg)("li",{parentName:"ul"},"msa microservices aplication\u5fae\u670d\u52a1\u6a21\u5757\u7ec4",(0,n.yg)("ul",{parentName:"li"},(0,n.yg)("li",{parentName:"ul"},"black-box-tests"),(0,n.yg)("li",{parentName:"ul"},"js-executor"),(0,n.yg)("li",{parentName:"ul"},"tb \u5355docker\u955c\u50cf"),(0,n.yg)("li",{parentName:"ul"},"tb-node"),(0,n.yg)("li",{parentName:"ul"},"transport \u534f\u8bae\u4f20\u8f93\u914d\u7f6edocker\u5fae\u670d\u52a1\u6a21\u5757\u7ec4",(0,n.yg)("ul",{parentName:"li"},(0,n.yg)("li",{parentName:"ul"},"coap coap\u534f\u8bae\u4f20\u8f93\u914d\u7f6edocker\u5fae\u670d\u52a1\u6a21\u5757"),(0,n.yg)("li",{parentName:"ul"},"http http\u534f\u8bae\u4f20\u8f93\u914d\u7f6edocker\u5fae\u670d\u52a1\u6a21\u5757"),(0,n.yg)("li",{parentName:"ul"},"lwm2m lwm2m\u534f\u8bae\u4f20\u8f93\u914d\u7f6edocker\u5fae\u670d\u52a1\u6a21\u5757"),(0,n.yg)("li",{parentName:"ul"},"mqtt mqtt\u534f\u8bae\u4f20\u8f93\u914d\u7f6edocker\u5fae\u670d\u52a1\u6a21\u5757"),(0,n.yg)("li",{parentName:"ul"},"snmp snmp\u534f\u8bae\u4f20\u8f93\u914d\u7f6edocker\u5fae\u670d\u52a1\u6a21\u5757"))),(0,n.yg)("li",{parentName:"ul"},"vc-executor TODO \u4f9d\u8d56common/version-control"),(0,n.yg)("li",{parentName:"ul"},"vc-executor-docker vc-executor\u7684docker\u914d\u7f6e\u6a21\u5757"),(0,n.yg)("li",{parentName:"ul"},"web-ui \u524d\u7aef\u7684docker\u914d\u7f6e\u6a21\u5757"))),(0,n.yg)("li",{parentName:"ul"},"netty-mqtt mqtt-broker\u534f\u8bae\u5b9e\u73b0\u6a21\u5757"),(0,n.yg)("li",{parentName:"ul"},"packing \u6253\u5305\u5de5\u5177\u76ee\u5f55\uff0c\u6253rpm\u3001deb\u5305"),(0,n.yg)("li",{parentName:"ul"},"rest-client \u4e8c\u5f00SDK\u6a21\u5757\uff0c\u4e8c\u5f00\u8bf7\u6c42\u5de5\u5177"),(0,n.yg)("li",{parentName:"ul"},"rule-engine \u89c4\u5219\u5f15\u64ce",(0,n.yg)("ul",{parentName:"li"},(0,n.yg)("li",{parentName:"ul"},"rule-engine-api \u89c4\u5219\u5f15\u64ce\u63a5\u53e3\u6a21\u5757\uff0c\u5168\u662f\u63a5\u53e3\uff0capplication\u4f1a\u5b9e\u73b0"),(0,n.yg)("li",{parentName:"ul"},"rule-engine-components \u89c4\u5219\u5f15\u64ce\u6240\u6709\u5143\u4ef6\u6a21\u5757"))),(0,n.yg)("li",{parentName:"ul"},"tools \u5404\u79cd\u5de5\u5177\u6a21\u5757\uff0c\u6570\u636e\u8fc1\u79fb\u5de5\u5177\u3001Python\u53d1\u9001\u6d88\u606f\u5de5\u5177\u3001shell\u5de5\u5177\u7b49\u7b49"),(0,n.yg)("li",{parentName:"ul"},"transport \u534f\u8bae\u4f20\u8f93\u914d\u7f6e\u542f\u52a8\u7c7b\u6a21\u5757",(0,n.yg)("ul",{parentName:"li"},(0,n.yg)("li",{parentName:"ul"},"coap coap\u534f\u8bae\u4f20\u8f93\u914d\u7f6e\u542f\u52a8\u7c7b\u6a21\u5757"),(0,n.yg)("li",{parentName:"ul"},"http http\u534f\u8bae\u4f20\u8f93\u914d\u7f6e\u542f\u52a8\u7c7b\u6a21\u5757"),(0,n.yg)("li",{parentName:"ul"},"lwm2m lwm2m\u534f\u8bae\u4f20\u8f93\u914d\u7f6e\u542f\u52a8\u7c7b\u6a21\u5757"),(0,n.yg)("li",{parentName:"ul"},"mqtt mqtt\u534f\u8bae\u4f20\u8f93\u914d\u7f6e\u542f\u52a8\u7c7b\u6a21\u5757"),(0,n.yg)("li",{parentName:"ul"},"snmp snmp\u534f\u8bae\u4f20\u8f93\u914d\u7f6e\u542f\u52a8\u7c7b\u6a21\u5757"))),(0,n.yg)("li",{parentName:"ul"},"ui-ngx \u524d\u7aef\u5de5\u7a0b\u6a21\u5757")))}g.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/ed9ae553.bce505a4.js b/assets/js/ed9ae553.5227068e.js similarity index 99% rename from assets/js/ed9ae553.bce505a4.js rename to assets/js/ed9ae553.5227068e.js index 26e957d01..38a550a51 100644 --- a/assets/js/ed9ae553.bce505a4.js +++ b/assets/js/ed9ae553.5227068e.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5476],{5680:(e,t,a)=>{a.d(t,{xA:()=>y,yg:()=>s});var r=a(6540);function l(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function n(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t=0||(l[a]=e[a]);return l}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(l[a]=e[a])}return l}var i=r.createContext({}),p=function(e){var t=r.useContext(i),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},y=function(e){var t=p(e.components);return r.createElement(i.Provider,{value:t},e.children)},u="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},c=r.forwardRef((function(e,t){var a=e.components,l=e.mdxType,n=e.originalType,i=e.parentName,y=g(e,["components","mdxType","originalType","parentName"]),u=p(a),c=l,s=u["".concat(i,".").concat(c)]||u[c]||m[c]||n;return a?r.createElement(s,o(o({ref:t},y),{},{components:a})):r.createElement(s,o({ref:t},y))}));function s(e,t){var a=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var n=a.length,o=new Array(n);o[0]=c;var g={};for(var i in t)hasOwnProperty.call(t,i)&&(g[i]=t[i]);g.originalType=e,g[u]="string"==typeof e?e:l,o[1]=g;for(var p=2;p{a.r(t),a.d(t,{assets:()=>i,contentTitle:()=>o,default:()=>m,frontMatter:()=>n,metadata:()=>g,toc:()=>p});var r=a(8168),l=(a(6540),a(5680));const n={},o="Golang",g={unversionedId:"study/program/Golang/index",id:"study/program/Golang/index",title:"Golang",description:"Go \u8bed\u8a00\u8bbe\u8ba1\u521d\u8877",source:"@site/docs/study/program/Golang/index.md",sourceDirName:"study/program/Golang",slug:"/study/program/Golang/",permalink:"/docs/study/program/Golang/",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"PR\u548cMR",permalink:"/docs/study/program/GIT/PR\u548cMR"},next:{title:"Golang\u4f9d\u8d56\u5e93\u4ee3\u7406",permalink:"/docs/study/program/Golang/Golang\u4f9d\u8d56\u5e93\u4ee3\u7406"}},i={},p=[{value:"Go \u8bed\u8a00\u8bbe\u8ba1\u521d\u8877",id:"go-\u8bed\u8a00\u8bbe\u8ba1\u521d\u8877",level:3},{value:"Go \u8bed\u8a00\u7684\u7279\u8272",id:"go-\u8bed\u8a00\u7684\u7279\u8272",level:3},{value:"Go \u8bed\u8a00\u7684\u4f18\u52bf",id:"go-\u8bed\u8a00\u7684\u4f18\u52bf",level:3},{value:"\u6211\u4eec\u4e3a\u4ec0\u4e48\u9009\u62e9 Go \u8bed\u8a00",id:"\u6211\u4eec\u4e3a\u4ec0\u4e48\u9009\u62e9-go-\u8bed\u8a00",level:3},{value:"Go \u8bed\u8a00\u80fd\u505a\u4ec0\u4e48",id:"go-\u8bed\u8a00\u80fd\u505a\u4ec0\u4e48",level:3},{value:"\u4fe1\u606f",id:"\u4fe1\u606f",level:3},{value:"GC",id:"gc",level:3}],y={toc:p},u="wrapper";function m(e){let{components:t,...a}=e;return(0,l.yg)(u,(0,r.A)({},y,a,{components:t,mdxType:"MDXLayout"}),(0,l.yg)("h1",{id:"golang"},"Golang"),(0,l.yg)("h3",{id:"go-\u8bed\u8a00\u8bbe\u8ba1\u521d\u8877"},"Go \u8bed\u8a00\u8bbe\u8ba1\u521d\u8877"),(0,l.yg)("p",null,"\u4e3a\u4e86\u89e3\u51b3\u5f53\u65f6 Google \u5f00\u53d1\u9047\u5230\u7684\u95ee\u9898\uff1a"),(0,l.yg)("ol",null,(0,l.yg)("li",{parentName:"ol"},"\u7f16\u8bd1\u6162\uff1b"),(0,l.yg)("li",{parentName:"ol"},"\u5927\u91cf\u7684 C++\u4ee3\u7801\uff0c\u540c\u65f6\u53c8\u5f15\u5165\u4e86 Java \u548c Python\uff1b"),(0,l.yg)("li",{parentName:"ol"},"\u66f4\u65b0\u7684\u82b1\u8d39\u8d8a\u6765\u8d8a\u957f\uff1b"),(0,l.yg)("li",{parentName:"ol"},"\u5206\u5e03\u5f0f\u7684\u7f16\u8bd1\u7cfb\u7edf\uff1b"),(0,l.yg)("li",{parentName:"ol"},"\u6570\u767e\u4e07\u7684\u670d\u52a1\u5668\uff1b")),(0,l.yg)("h3",{id:"go-\u8bed\u8a00\u7684\u7279\u8272"},"Go \u8bed\u8a00\u7684\u7279\u8272"),(0,l.yg)("ol",null,(0,l.yg)("li",{parentName:"ol"},"\u9ad8\u6548\u7684\u5e76\u53d1\u7f16\u7a0b\uff08",(0,l.yg)("a",{parentName:"li",href:"https://zh.wikipedia.org/wiki/%E9%80%9A%E4%BF%A1%E9%A1%BA%E5%BA%8F%E8%BF%9B%E7%A8%8B"},"\u57fa\u4e8e CSP"),"\uff09\uff1b"),(0,l.yg)("li",{parentName:"ol"},"\u5185\u5b58\u56de\u6536(GC)\uff1b"),(0,l.yg)("li",{parentName:"ol"},"\u7f16\u8bd1\u901f\u5ea6\u5feb\uff1b"),(0,l.yg)("li",{parentName:"ol"},"\u51fd\u6570\u591a\u8fd4\u56de\u503c\uff1b"),(0,l.yg)("li",{parentName:"ol"},"\u8bed\u8a00\u4ea4\u4e92\u6027\uff1b"),(0,l.yg)("li",{parentName:"ol"},"\u6ca1\u6709\u5f02\u5e38\u5904\u7406(Error is value)\uff1b")),(0,l.yg)("h3",{id:"go-\u8bed\u8a00\u7684\u4f18\u52bf"},"Go \u8bed\u8a00\u7684\u4f18\u52bf"),(0,l.yg)("ol",null,(0,l.yg)("li",{parentName:"ol"},"\u5b66\u4e60\u66f2\u7ebf\u5bb9\u6613\uff1b"),(0,l.yg)("li",{parentName:"ol"},"\u6548\u7387\uff1a\u5feb\u901f\u7684\u7f16\u8bd1\u65f6\u95f4\uff0c\u5f00\u53d1\u6548\u7387\u548c\u8fd0\u884c\u6548\u7387\u9ad8\uff1b"),(0,l.yg)("li",{parentName:"ol"},"\u51fa\u8eab\u540d\u95e8\uff0c\u8840\u7edf\u7eaf\u6b63\uff1b"),(0,l.yg)("li",{parentName:"ol"},"\u5e76\u884c\u548c\u5f02\u6b65\u7f16\u7a0b\u51e0\u4e4e\u6ca1\u6709\u75db\u70b9\uff1b"),(0,l.yg)("li",{parentName:"ol"},"\u81ea\u7531\u9ad8\u6548\uff1a\u7ec4\u5408\u7684\u601d\u60f3\u3001\u65e0\u4fb5\u5165\u5f0f\u7684\u63a5\u53e3\u3001\u5f3a\u5927\u7684\u6807\u51c6\u5e93\u3001\u90e8\u7f72\u65b9\u4fbf\u3001\u7a33\u5b9a\u6027\uff1b")),(0,l.yg)("h3",{id:"\u6211\u4eec\u4e3a\u4ec0\u4e48\u9009\u62e9-go-\u8bed\u8a00"},"\u6211\u4eec\u4e3a\u4ec0\u4e48\u9009\u62e9 Go \u8bed\u8a00"),(0,l.yg)("ol",null,(0,l.yg)("li",{parentName:"ol"},"\u6267\u884c\u6027\u80fd"),(0,l.yg)("li",{parentName:"ol"},"\u5f00\u53d1\u6548\u7387")),(0,l.yg)("h3",{id:"go-\u8bed\u8a00\u80fd\u505a\u4ec0\u4e48"},"Go \u8bed\u8a00\u80fd\u505a\u4ec0\u4e48"),(0,l.yg)("ol",null,(0,l.yg)("li",{parentName:"ol"},"\u670d\u52a1\u5668\u7f16\u7a0b\uff1b"),(0,l.yg)("li",{parentName:"ol"},"\u5206\u5e03\u5f0f\u7cfb\u7edf\u3001\u6570\u636e\u5e93\u4ee3\u7406\u5668\u3001\u4e2d\u95f4\u4ef6\u7b49\uff1b"),(0,l.yg)("li",{parentName:"ol"},"\u7f51\u7edc\u7f16\u7a0b\uff1b"),(0,l.yg)("li",{parentName:"ol"},"\u6570\u636e\u5e93\u64cd\u4f5c\uff1b"),(0,l.yg)("li",{parentName:"ol"},"\u5f00\u53d1\u4e91\u5e73\u53f0\uff1b")),(0,l.yg)("h3",{id:"\u4fe1\u606f"},"\u4fe1\u606f"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"\u5b98\u7f51:",(0,l.yg)("a",{parentName:"li",href:"https://golang.google.cn/"},"https://golang.google.cn/")),(0,l.yg)("li",{parentName:"ul"},"API \u6587\u6863:",(0,l.yg)("a",{parentName:"li",href:"https://golang.google.cn/doc/"},"https://golang.google.cn/doc/")),(0,l.yg)("li",{parentName:"ul"},"\u6559\u7a0b:",(0,l.yg)("a",{parentName:"li",href:"http://www.w3cschool.cn/go/go-tutorial.html"},"http://www.w3cschool.cn/go/go-tutorial.html")),(0,l.yg)("li",{parentName:"ul"},"\u4e0b\u8f7d:",(0,l.yg)("a",{parentName:"li",href:"https://golang.google.cn/dl/"},"https://golang.google.cn/dl/")),(0,l.yg)("li",{parentName:"ul"},"\u6807\u51c6\u5e93\uff1a",(0,l.yg)("a",{parentName:"li",href:"https://pkg.go.dev/std"},"https://pkg.go.dev/std")),(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"https://draveness.me/golang/"},"Go \u8bed\u8a00\u8bbe\u8ba1\u4e0e\u5b9e\u73b0"),(0,l.yg)("ul",{parentName:"li"},(0,l.yg)("li",{parentName:"ul"},"\u91cd\u70b9\u662f\u8bbe\u8ba1\u539f\u7406 \u633a\u5e95\u5c42\u7684"))),(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"https://www.liwenzhou.com/posts/Go/golang-menu/"},"\u674e\u6587\u5468-Go \u8bed\u8a00\u5b66\u4e60\u4e4b\u8def/Go \u8bed\u8a00\u6559\u7a0b"),(0,l.yg)("ul",{parentName:"li"},(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"https://www.liwenzhou.com/posts/Go/fmt/"},"fmt \u683c\u5f0f\u5316\u8bed\u6cd5"))))),(0,l.yg)("h3",{id:"gc"},"GC"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"https://zhuanlan.zhihu.com/p/593008674?utm_id=0"},"\u77e5\u4e4e-Golang \u5185\u5b58\u7ba1\u7406\u4e4b GC"))))}m.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[5476],{5680:(e,t,a)=>{a.d(t,{xA:()=>y,yg:()=>s});var r=a(6540);function l(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function n(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function o(e){for(var t=1;t=0||(l[a]=e[a]);return l}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(l[a]=e[a])}return l}var i=r.createContext({}),p=function(e){var t=r.useContext(i),a=t;return e&&(a="function"==typeof e?e(t):o(o({},t),e)),a},y=function(e){var t=p(e.components);return r.createElement(i.Provider,{value:t},e.children)},u="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},c=r.forwardRef((function(e,t){var a=e.components,l=e.mdxType,n=e.originalType,i=e.parentName,y=g(e,["components","mdxType","originalType","parentName"]),u=p(a),c=l,s=u["".concat(i,".").concat(c)]||u[c]||m[c]||n;return a?r.createElement(s,o(o({ref:t},y),{},{components:a})):r.createElement(s,o({ref:t},y))}));function s(e,t){var a=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var n=a.length,o=new Array(n);o[0]=c;var g={};for(var i in t)hasOwnProperty.call(t,i)&&(g[i]=t[i]);g.originalType=e,g[u]="string"==typeof e?e:l,o[1]=g;for(var p=2;p{a.r(t),a.d(t,{assets:()=>i,contentTitle:()=>o,default:()=>m,frontMatter:()=>n,metadata:()=>g,toc:()=>p});var r=a(8168),l=(a(6540),a(5680));const n={},o="Golang",g={unversionedId:"study/program/Golang/index",id:"study/program/Golang/index",title:"Golang",description:"Go \u8bed\u8a00\u8bbe\u8ba1\u521d\u8877",source:"@site/docs/study/program/Golang/index.md",sourceDirName:"study/program/Golang",slug:"/study/program/Golang/",permalink:"/docs/study/program/Golang/",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"PR\u548cMR",permalink:"/docs/study/program/GIT/PR\u548cMR"},next:{title:"Golang\u4f9d\u8d56\u5e93\u4ee3\u7406",permalink:"/docs/study/program/Golang/Golang\u4f9d\u8d56\u5e93\u4ee3\u7406"}},i={},p=[{value:"Go \u8bed\u8a00\u8bbe\u8ba1\u521d\u8877",id:"go-\u8bed\u8a00\u8bbe\u8ba1\u521d\u8877",level:3},{value:"Go \u8bed\u8a00\u7684\u7279\u8272",id:"go-\u8bed\u8a00\u7684\u7279\u8272",level:3},{value:"Go \u8bed\u8a00\u7684\u4f18\u52bf",id:"go-\u8bed\u8a00\u7684\u4f18\u52bf",level:3},{value:"\u6211\u4eec\u4e3a\u4ec0\u4e48\u9009\u62e9 Go \u8bed\u8a00",id:"\u6211\u4eec\u4e3a\u4ec0\u4e48\u9009\u62e9-go-\u8bed\u8a00",level:3},{value:"Go \u8bed\u8a00\u80fd\u505a\u4ec0\u4e48",id:"go-\u8bed\u8a00\u80fd\u505a\u4ec0\u4e48",level:3},{value:"\u4fe1\u606f",id:"\u4fe1\u606f",level:3},{value:"GC",id:"gc",level:3}],y={toc:p},u="wrapper";function m(e){let{components:t,...a}=e;return(0,l.yg)(u,(0,r.A)({},y,a,{components:t,mdxType:"MDXLayout"}),(0,l.yg)("h1",{id:"golang"},"Golang"),(0,l.yg)("h3",{id:"go-\u8bed\u8a00\u8bbe\u8ba1\u521d\u8877"},"Go \u8bed\u8a00\u8bbe\u8ba1\u521d\u8877"),(0,l.yg)("p",null,"\u4e3a\u4e86\u89e3\u51b3\u5f53\u65f6 Google \u5f00\u53d1\u9047\u5230\u7684\u95ee\u9898\uff1a"),(0,l.yg)("ol",null,(0,l.yg)("li",{parentName:"ol"},"\u7f16\u8bd1\u6162\uff1b"),(0,l.yg)("li",{parentName:"ol"},"\u5927\u91cf\u7684 C++\u4ee3\u7801\uff0c\u540c\u65f6\u53c8\u5f15\u5165\u4e86 Java \u548c Python\uff1b"),(0,l.yg)("li",{parentName:"ol"},"\u66f4\u65b0\u7684\u82b1\u8d39\u8d8a\u6765\u8d8a\u957f\uff1b"),(0,l.yg)("li",{parentName:"ol"},"\u5206\u5e03\u5f0f\u7684\u7f16\u8bd1\u7cfb\u7edf\uff1b"),(0,l.yg)("li",{parentName:"ol"},"\u6570\u767e\u4e07\u7684\u670d\u52a1\u5668\uff1b")),(0,l.yg)("h3",{id:"go-\u8bed\u8a00\u7684\u7279\u8272"},"Go \u8bed\u8a00\u7684\u7279\u8272"),(0,l.yg)("ol",null,(0,l.yg)("li",{parentName:"ol"},"\u9ad8\u6548\u7684\u5e76\u53d1\u7f16\u7a0b\uff08",(0,l.yg)("a",{parentName:"li",href:"https://zh.wikipedia.org/wiki/%E9%80%9A%E4%BF%A1%E9%A1%BA%E5%BA%8F%E8%BF%9B%E7%A8%8B"},"\u57fa\u4e8e CSP"),"\uff09\uff1b"),(0,l.yg)("li",{parentName:"ol"},"\u5185\u5b58\u56de\u6536(GC)\uff1b"),(0,l.yg)("li",{parentName:"ol"},"\u7f16\u8bd1\u901f\u5ea6\u5feb\uff1b"),(0,l.yg)("li",{parentName:"ol"},"\u51fd\u6570\u591a\u8fd4\u56de\u503c\uff1b"),(0,l.yg)("li",{parentName:"ol"},"\u8bed\u8a00\u4ea4\u4e92\u6027\uff1b"),(0,l.yg)("li",{parentName:"ol"},"\u6ca1\u6709\u5f02\u5e38\u5904\u7406(Error is value)\uff1b")),(0,l.yg)("h3",{id:"go-\u8bed\u8a00\u7684\u4f18\u52bf"},"Go \u8bed\u8a00\u7684\u4f18\u52bf"),(0,l.yg)("ol",null,(0,l.yg)("li",{parentName:"ol"},"\u5b66\u4e60\u66f2\u7ebf\u5bb9\u6613\uff1b"),(0,l.yg)("li",{parentName:"ol"},"\u6548\u7387\uff1a\u5feb\u901f\u7684\u7f16\u8bd1\u65f6\u95f4\uff0c\u5f00\u53d1\u6548\u7387\u548c\u8fd0\u884c\u6548\u7387\u9ad8\uff1b"),(0,l.yg)("li",{parentName:"ol"},"\u51fa\u8eab\u540d\u95e8\uff0c\u8840\u7edf\u7eaf\u6b63\uff1b"),(0,l.yg)("li",{parentName:"ol"},"\u5e76\u884c\u548c\u5f02\u6b65\u7f16\u7a0b\u51e0\u4e4e\u6ca1\u6709\u75db\u70b9\uff1b"),(0,l.yg)("li",{parentName:"ol"},"\u81ea\u7531\u9ad8\u6548\uff1a\u7ec4\u5408\u7684\u601d\u60f3\u3001\u65e0\u4fb5\u5165\u5f0f\u7684\u63a5\u53e3\u3001\u5f3a\u5927\u7684\u6807\u51c6\u5e93\u3001\u90e8\u7f72\u65b9\u4fbf\u3001\u7a33\u5b9a\u6027\uff1b")),(0,l.yg)("h3",{id:"\u6211\u4eec\u4e3a\u4ec0\u4e48\u9009\u62e9-go-\u8bed\u8a00"},"\u6211\u4eec\u4e3a\u4ec0\u4e48\u9009\u62e9 Go \u8bed\u8a00"),(0,l.yg)("ol",null,(0,l.yg)("li",{parentName:"ol"},"\u6267\u884c\u6027\u80fd"),(0,l.yg)("li",{parentName:"ol"},"\u5f00\u53d1\u6548\u7387")),(0,l.yg)("h3",{id:"go-\u8bed\u8a00\u80fd\u505a\u4ec0\u4e48"},"Go \u8bed\u8a00\u80fd\u505a\u4ec0\u4e48"),(0,l.yg)("ol",null,(0,l.yg)("li",{parentName:"ol"},"\u670d\u52a1\u5668\u7f16\u7a0b\uff1b"),(0,l.yg)("li",{parentName:"ol"},"\u5206\u5e03\u5f0f\u7cfb\u7edf\u3001\u6570\u636e\u5e93\u4ee3\u7406\u5668\u3001\u4e2d\u95f4\u4ef6\u7b49\uff1b"),(0,l.yg)("li",{parentName:"ol"},"\u7f51\u7edc\u7f16\u7a0b\uff1b"),(0,l.yg)("li",{parentName:"ol"},"\u6570\u636e\u5e93\u64cd\u4f5c\uff1b"),(0,l.yg)("li",{parentName:"ol"},"\u5f00\u53d1\u4e91\u5e73\u53f0\uff1b")),(0,l.yg)("h3",{id:"\u4fe1\u606f"},"\u4fe1\u606f"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"\u5b98\u7f51:",(0,l.yg)("a",{parentName:"li",href:"https://golang.google.cn/"},"https://golang.google.cn/")),(0,l.yg)("li",{parentName:"ul"},"API \u6587\u6863:",(0,l.yg)("a",{parentName:"li",href:"https://golang.google.cn/doc/"},"https://golang.google.cn/doc/")),(0,l.yg)("li",{parentName:"ul"},"\u6559\u7a0b:",(0,l.yg)("a",{parentName:"li",href:"http://www.w3cschool.cn/go/go-tutorial.html"},"http://www.w3cschool.cn/go/go-tutorial.html")),(0,l.yg)("li",{parentName:"ul"},"\u4e0b\u8f7d:",(0,l.yg)("a",{parentName:"li",href:"https://golang.google.cn/dl/"},"https://golang.google.cn/dl/")),(0,l.yg)("li",{parentName:"ul"},"\u6807\u51c6\u5e93\uff1a",(0,l.yg)("a",{parentName:"li",href:"https://pkg.go.dev/std"},"https://pkg.go.dev/std")),(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"https://draveness.me/golang/"},"Go \u8bed\u8a00\u8bbe\u8ba1\u4e0e\u5b9e\u73b0"),(0,l.yg)("ul",{parentName:"li"},(0,l.yg)("li",{parentName:"ul"},"\u91cd\u70b9\u662f\u8bbe\u8ba1\u539f\u7406 \u633a\u5e95\u5c42\u7684"))),(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"https://www.liwenzhou.com/posts/Go/golang-menu/"},"\u674e\u6587\u5468-Go \u8bed\u8a00\u5b66\u4e60\u4e4b\u8def/Go \u8bed\u8a00\u6559\u7a0b"),(0,l.yg)("ul",{parentName:"li"},(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"https://www.liwenzhou.com/posts/Go/fmt/"},"fmt \u683c\u5f0f\u5316\u8bed\u6cd5"))))),(0,l.yg)("h3",{id:"gc"},"GC"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},(0,l.yg)("a",{parentName:"li",href:"https://zhuanlan.zhihu.com/p/593008674?utm_id=0"},"\u77e5\u4e4e-Golang \u5185\u5b58\u7ba1\u7406\u4e4b GC"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/ee028c53.81eee407.js b/assets/js/ee028c53.750bb918.js similarity index 98% rename from assets/js/ee028c53.81eee407.js rename to assets/js/ee028c53.750bb918.js index 6b3d6a066..8218c372f 100644 --- a/assets/js/ee028c53.81eee407.js +++ b/assets/js/ee028c53.750bb918.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6240],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),s=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=s(e.components);return n.createElement(l.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),d=s(r),y=o,f=d["".concat(l,".").concat(y)]||d[y]||u[y]||a;return r?n.createElement(f,i(i({ref:t},p),{},{components:r})):n.createElement(f,i({ref:t},p))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=y;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[d]="string"==typeof e?e:o,i[1]=c;for(var s=2;s{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>u,frontMatter:()=>a,metadata:()=>c,toc:()=>s});var n=r(8168),o=(r(6540),r(5680));const a={},i=void 0,c={unversionedId:"study/think/\u9886\u57df\u9a71\u52a8\u8bbe\u8ba1DDD",id:"study/think/\u9886\u57df\u9a71\u52a8\u8bbe\u8ba1DDD",title:"\u9886\u57df\u9a71\u52a8\u8bbe\u8ba1DDD",description:"\u4ec0\u4e48\u662fDDD",source:"@site/docs/study/think/\u9886\u57df\u9a71\u52a8\u8bbe\u8ba1DDD.md",sourceDirName:"study/think",slug:"/study/think/\u9886\u57df\u9a71\u52a8\u8bbe\u8ba1DDD",permalink:"/docs/study/think/\u9886\u57df\u9a71\u52a8\u8bbe\u8ba1DDD",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u9650\u6d41",permalink:"/docs/study/think/\u9650\u6d41"},next:{title:"\u6982\u8ff0",permalink:"/docs/study/docker/"}},l={},s=[{value:"\u4ec0\u4e48\u662fDDD",id:"\u4ec0\u4e48\u662fddd",level:3},{value:"\u67b6\u6784\u56fe",id:"\u67b6\u6784\u56fe",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],p={toc:s},d="wrapper";function u(e){let{components:t,...a}=e;return(0,o.yg)(d,(0,n.A)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"\u4ec0\u4e48\u662fddd"},"\u4ec0\u4e48\u662fDDD"),(0,o.yg)("h3",{id:"\u67b6\u6784\u56fe"},"\u67b6\u6784\u56fe"),(0,o.yg)("p",null,(0,o.yg)("img",{alt:"image.png",src:r(819).A,width:"750",height:"559"})),(0,o.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,o.yg)("ol",null,(0,o.yg)("li",{parentName:"ol"},(0,o.yg)("a",{parentName:"li",href:"https://blog.csdn.net/ityouknow/article/details/81572072"},"\u53ef\u4ee5\u843d\u5730\u7684DDD\u5230\u5e95\u957f\u4ec0\u4e48\u6837\uff1f")),(0,o.yg)("li",{parentName:"ol"},(0,o.yg)("a",{parentName:"li",href:"https://www.cnblogs.com/lesofn/p/15898137.html"},"\u4eceMVC\u5230DDD\u7684\u67b6\u6784\u6f14\u8fdb"))))}u.isMDXComponent=!0},819:(e,t,r)=>{r.d(t,{A:()=>n});const n=r.p+"assets/images/image-f553779fb500c890cbd3dd9a0c3024ea.png"}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6240],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),s=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=s(e.components);return n.createElement(l.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),d=s(r),y=o,f=d["".concat(l,".").concat(y)]||d[y]||u[y]||a;return r?n.createElement(f,i(i({ref:t},p),{},{components:r})):n.createElement(f,i({ref:t},p))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=y;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[d]="string"==typeof e?e:o,i[1]=c;for(var s=2;s{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>u,frontMatter:()=>a,metadata:()=>c,toc:()=>s});var n=r(8168),o=(r(6540),r(5680));const a={},i=void 0,c={unversionedId:"study/think/\u9886\u57df\u9a71\u52a8\u8bbe\u8ba1DDD",id:"study/think/\u9886\u57df\u9a71\u52a8\u8bbe\u8ba1DDD",title:"\u9886\u57df\u9a71\u52a8\u8bbe\u8ba1DDD",description:"\u4ec0\u4e48\u662fDDD",source:"@site/docs/study/think/\u9886\u57df\u9a71\u52a8\u8bbe\u8ba1DDD.md",sourceDirName:"study/think",slug:"/study/think/\u9886\u57df\u9a71\u52a8\u8bbe\u8ba1DDD",permalink:"/docs/study/think/\u9886\u57df\u9a71\u52a8\u8bbe\u8ba1DDD",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u9650\u6d41",permalink:"/docs/study/think/\u9650\u6d41"},next:{title:"\u6982\u8ff0",permalink:"/docs/study/docker/"}},l={},s=[{value:"\u4ec0\u4e48\u662fDDD",id:"\u4ec0\u4e48\u662fddd",level:3},{value:"\u67b6\u6784\u56fe",id:"\u67b6\u6784\u56fe",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],p={toc:s},d="wrapper";function u(e){let{components:t,...a}=e;return(0,o.yg)(d,(0,n.A)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"\u4ec0\u4e48\u662fddd"},"\u4ec0\u4e48\u662fDDD"),(0,o.yg)("h3",{id:"\u67b6\u6784\u56fe"},"\u67b6\u6784\u56fe"),(0,o.yg)("p",null,(0,o.yg)("img",{alt:"image.png",src:r(819).A,width:"750",height:"559"})),(0,o.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,o.yg)("ol",null,(0,o.yg)("li",{parentName:"ol"},(0,o.yg)("a",{parentName:"li",href:"https://blog.csdn.net/ityouknow/article/details/81572072"},"\u53ef\u4ee5\u843d\u5730\u7684DDD\u5230\u5e95\u957f\u4ec0\u4e48\u6837\uff1f")),(0,o.yg)("li",{parentName:"ol"},(0,o.yg)("a",{parentName:"li",href:"https://www.cnblogs.com/lesofn/p/15898137.html"},"\u4eceMVC\u5230DDD\u7684\u67b6\u6784\u6f14\u8fdb"))))}u.isMDXComponent=!0},819:(e,t,r)=>{r.d(t,{A:()=>n});const n=r.p+"assets/images/image-f553779fb500c890cbd3dd9a0c3024ea.png"}}]); \ No newline at end of file diff --git a/assets/js/f12f9261.b4411ad0.js b/assets/js/f12f9261.a69bcf66.js similarity index 99% rename from assets/js/f12f9261.b4411ad0.js rename to assets/js/f12f9261.a69bcf66.js index 45bf13a8b..5ef6d35c7 100644 --- a/assets/js/f12f9261.b4411ad0.js +++ b/assets/js/f12f9261.a69bcf66.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[30],{5680:(e,r,t)=>{t.d(r,{xA:()=>u,yg:()=>d});var n=t(6540);function a(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function o(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function l(e){for(var r=1;r=0||(a[t]=e[t]);return a}(e,r);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var p=n.createContext({}),i=function(e){var r=n.useContext(p),t=r;return e&&(t="function"==typeof e?e(r):l(l({},r),e)),t},u=function(e){var r=i(e.components);return n.createElement(p.Provider,{value:r},e.children)},s="mdxType",y={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},m=n.forwardRef((function(e,r){var t=e.components,a=e.mdxType,o=e.originalType,p=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),s=i(t),m=a,d=s["".concat(p,".").concat(m)]||s[m]||y[m]||o;return t?n.createElement(d,l(l({ref:r},u),{},{components:t})):n.createElement(d,l({ref:r},u))}));function d(e,r){var t=arguments,a=r&&r.mdxType;if("string"==typeof e||a){var o=t.length,l=new Array(o);l[0]=m;var c={};for(var p in r)hasOwnProperty.call(r,p)&&(c[p]=r[p]);c.originalType=e,c[s]="string"==typeof e?e:a,l[1]=c;for(var i=2;i{t.r(r),t.d(r,{assets:()=>p,contentTitle:()=>l,default:()=>y,frontMatter:()=>o,metadata:()=>c,toc:()=>i});var n=t(8168),a=(t(6540),t(5680));const o={},l=void 0,c={unversionedId:"study/program/JAVA/GC",id:"study/program/JAVA/GC",title:"GC",description:"JVM \u4e2d\u5e38\u89c1\u7684\u5783\u573e\u6536\u96c6\u7b97\u6cd5",source:"@site/docs/study/program/JAVA/GC.md",sourceDirName:"study/program/JAVA",slug:"/study/program/JAVA/GC",permalink:"/docs/study/program/JAVA/GC",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Golang\u4f9d\u8d56\u5e93\u4ee3\u7406",permalink:"/docs/study/program/Golang/Golang\u4f9d\u8d56\u5e93\u4ee3\u7406"},next:{title:"GraalVM",permalink:"/docs/study/program/JAVA/GraalVM"}},p={},i=[{value:"JVM \u4e2d\u5e38\u89c1\u7684\u5783\u573e\u6536\u96c6\u7b97\u6cd5",id:"jvm-\u4e2d\u5e38\u89c1\u7684\u5783\u573e\u6536\u96c6\u7b97\u6cd5",level:3}],u={toc:i},s="wrapper";function y(e){let{components:r,...t}=e;return(0,a.yg)(s,(0,n.A)({},u,t,{components:r,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"jvm-\u4e2d\u5e38\u89c1\u7684\u5783\u573e\u6536\u96c6\u7b97\u6cd5"},"JVM \u4e2d\u5e38\u89c1\u7684\u5783\u573e\u6536\u96c6\u7b97\u6cd5"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u6807\u8bb0-\u6e05\u9664\uff08Mark-Sweep\uff09: \u8fd9\u662f\u6700\u57fa\u672c\u7684\u5783\u573e\u6536\u96c6\u7b97\u6cd5\uff0c\u5b83\u5206\u4e3a\u4e24\u4e2a\u9636\u6bb5\uff0c\u6807\u8bb0\u548c\u6e05\u9664\u3002\u9996\u5148\u6807\u8bb0\u51fa\u6240\u6709\u9700\u8981\u56de\u6536\u7684\u5bf9\u8c61\uff0c\u7136\u540e\u8fdb\u884c\u6e05\u9664\u3002\u7f3a\u70b9\u662f\u6548\u7387\u4e0d\u9ad8\uff0c\u5e76\u4e14\u4f1a\u4ea7\u751f\u5927\u91cf\u4e0d\u8fde\u7eed\u7684\u5185\u5b58\u788e\u7247\u3002"),(0,a.yg)("li",{parentName:"ul"},"\uff08Copying\uff09: \u4e3a\u4e86\u89e3\u51b3\u6807\u8bb0-\u6e05\u9664\u7b97\u6cd5\u7684\u5185\u5b58\u788e\u7247\u95ee\u9898\uff0c\u51fa\u73b0\u4e86\u590d\u5236\u7b97\u6cd5\u3002\u5b83\u5c06\u53ef\u7528\u5185\u5b58\u5206\u4e3a\u4e24\u4e2a\u533a\u57df\uff0c\u6bcf\u6b21\u53ea\u4f7f\u7528\u5176\u4e2d\u4e00\u4e2a\u533a\u57df\u3002\u5f53\u8fd9\u4e2a\u533a\u57df\u6ee1\u65f6\uff0c\u5b83\u4f1a\u628a\u5b58\u6d3b\u7684\u5bf9\u8c61\u590d\u5236\u5230\u53e6\u4e00\u4e2a\u533a\u57df\uff0c\u7136\u540e\u6e05\u9664\u6b63\u5728\u4f7f\u7528\u7684\u90a3\u4e2a\u533a\u57df\u7684\u6240\u6709\u5bf9\u8c61\u3002\u8fd9\u79cd\u7b97\u6cd5\u5b9e\u73b0\u7b80\u5355\uff0c\u8fd0\u884c\u9ad8\u6548\uff0c\u4f46\u662f\u9700\u8981\u4e24\u500d\u7684\u5185\u5b58\u7a7a\u95f4\u3002"),(0,a.yg)("li",{parentName:"ul"},"\u6807\u8bb0-\u6574\u7406\uff08Mark-Compact\uff09: \u7ed3\u5408\u4e86\u6807\u8bb0-\u6e05\u9664\u548c\u590d\u5236\u7684\u4f18\u70b9\uff0c\u5b83\u5148\u6807\u8bb0\u9700\u8981\u56de\u6536\u7684\u5bf9\u8c61\uff0c\u7136\u540e\u628a\u6240\u6709\u5b58\u6d3b\u7684\u5bf9\u8c61\u90fd\u5411\u4e00\u7aef\u79fb\u52a8\uff0c\u63a5\u7740\u6e05\u9664\u6389\u7aef\u8fb9\u754c\u4ee5\u5916\u7684\u5185\u5b58\u3002"),(0,a.yg)("li",{parentName:"ul"},"\u5206\u4ee3\u6536\u96c6\uff08Generational Collector\uff09: \u57fa\u4e8e\u5bf9\u8c61\u751f\u547d\u5468\u671f\u7684\u4e0d\u540c\uff0c\u5b83\u5c06\u5806\u5206\u4e3a\u65b0\u751f\u4ee3\u548c\u8001\u5e74\u4ee3\u3002\u65b0\u751f\u4ee3\u4e2d\uff0c\u5927\u90e8\u5206\u5bf9\u8c61\u662f\u671d\u751f\u5915\u6b7b\u7684\uff0c\u6240\u4ee5\u53ef\u4ee5\u4f7f\u7528\u590d\u5236\u7b97\u6cd5\uff1b\u8001\u5e74\u4ee3\u4e2d\u5bf9\u8c61\u5b58\u6d3b\u7387\u9ad8\uff0c\u4e00\u822c\u4f7f\u7528\u6807\u8bb0-\u6574\u7406\u6216\u6807\u8bb0-\u6e05\u9664\u7b97\u6cd5\u3002"),(0,a.yg)("li",{parentName:"ul"},"\u589e\u91cf\u6536\u96c6\uff08Incremental Collector\uff09: \u8fd9\u79cd\u7b97\u6cd5\u5141\u8bb8\u5783\u573e\u6536\u96c6\u5728\u5e94\u7528\u8fdb\u884c\u7684\u540c\u65f6\u8fdb\u884c\uff0c\u51cf\u5c11\u5e94\u7528\u7684\u6682\u505c\u65f6\u95f4\u3002"),(0,a.yg)("li",{parentName:"ul"},"\u5e76\u53d1\u6807\u8bb0-\u6e05\u9664\uff08Concurrent Mark-Sweep, CMS\uff09: \u4e3a\u4e86\u51cf\u5c11\u5783\u573e\u6536\u96c6\u5bf9\u5e94\u7528\u7684\u5f71\u54cd\uff0c\u51fa\u73b0\u4e86\u5e76\u53d1\u6536\u96c6\u7b97\u6cd5\uff0c\u5b83\u5c1d\u8bd5\u8ba9\u5783\u573e\u6536\u96c6\u7684\u8fc7\u7a0b\u5e76\u53d1\u8fdb\u884c\u3002CMS \u7b97\u6cd5\u5206\u4e3a\u56db\u4e2a\u9636\u6bb5\uff0c\u5e76\u53d1\u6807\u8bb0\u3001\u5e76\u53d1\u9884\u6e05\u7406\u3001\u91cd\u65b0\u6807\u8bb0\u3001\u5e76\u53d1\u6e05\u9664\uff0c\u5c3d\u91cf\u51cf\u5c11\u5bf9\u5e94\u7528\u7684\u5f71\u54cd\u3002"),(0,a.yg)("li",{parentName:"ul"},"\u6539\u8fdb\u7684\u5e76\u53d1\u6807\u8bb0-\u6e05\u9664\uff08G1\uff09: \u4e3a\u4e86\u8fdb\u4e00\u6b65\u51cf\u5c11\u6682\u505c\u65f6\u95f4\u548c\u63d0\u9ad8\u541e\u5410\u91cf\uff0cJVM \u5728 Java 7 Update 4 \u4e2d\u5f15\u5165\u4e86 G1 \u5783\u573e\u6536\u96c6\u5668\u3002G1 \u5c1d\u8bd5\u628a\u5806\u7a7a\u95f4\u5212\u5206\u4e3a\u591a\u4e2a\u5927\u5c0f\u76f8\u7b49\u7684\u533a\u57df\uff0c\u5e76\u4e14\u53ef\u4ee5\u5e76\u53d1\u5904\u7406\u8fd9\u4e9b\u533a\u57df\u3002")))}y.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[30],{5680:(e,r,t)=>{t.d(r,{xA:()=>u,yg:()=>d});var n=t(6540);function a(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function o(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function l(e){for(var r=1;r=0||(a[t]=e[t]);return a}(e,r);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var p=n.createContext({}),i=function(e){var r=n.useContext(p),t=r;return e&&(t="function"==typeof e?e(r):l(l({},r),e)),t},u=function(e){var r=i(e.components);return n.createElement(p.Provider,{value:r},e.children)},s="mdxType",y={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},m=n.forwardRef((function(e,r){var t=e.components,a=e.mdxType,o=e.originalType,p=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),s=i(t),m=a,d=s["".concat(p,".").concat(m)]||s[m]||y[m]||o;return t?n.createElement(d,l(l({ref:r},u),{},{components:t})):n.createElement(d,l({ref:r},u))}));function d(e,r){var t=arguments,a=r&&r.mdxType;if("string"==typeof e||a){var o=t.length,l=new Array(o);l[0]=m;var c={};for(var p in r)hasOwnProperty.call(r,p)&&(c[p]=r[p]);c.originalType=e,c[s]="string"==typeof e?e:a,l[1]=c;for(var i=2;i{t.r(r),t.d(r,{assets:()=>p,contentTitle:()=>l,default:()=>y,frontMatter:()=>o,metadata:()=>c,toc:()=>i});var n=t(8168),a=(t(6540),t(5680));const o={},l=void 0,c={unversionedId:"study/program/JAVA/GC",id:"study/program/JAVA/GC",title:"GC",description:"JVM \u4e2d\u5e38\u89c1\u7684\u5783\u573e\u6536\u96c6\u7b97\u6cd5",source:"@site/docs/study/program/JAVA/GC.md",sourceDirName:"study/program/JAVA",slug:"/study/program/JAVA/GC",permalink:"/docs/study/program/JAVA/GC",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Golang\u4f9d\u8d56\u5e93\u4ee3\u7406",permalink:"/docs/study/program/Golang/Golang\u4f9d\u8d56\u5e93\u4ee3\u7406"},next:{title:"GraalVM",permalink:"/docs/study/program/JAVA/GraalVM"}},p={},i=[{value:"JVM \u4e2d\u5e38\u89c1\u7684\u5783\u573e\u6536\u96c6\u7b97\u6cd5",id:"jvm-\u4e2d\u5e38\u89c1\u7684\u5783\u573e\u6536\u96c6\u7b97\u6cd5",level:3}],u={toc:i},s="wrapper";function y(e){let{components:r,...t}=e;return(0,a.yg)(s,(0,n.A)({},u,t,{components:r,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"jvm-\u4e2d\u5e38\u89c1\u7684\u5783\u573e\u6536\u96c6\u7b97\u6cd5"},"JVM \u4e2d\u5e38\u89c1\u7684\u5783\u573e\u6536\u96c6\u7b97\u6cd5"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u6807\u8bb0-\u6e05\u9664\uff08Mark-Sweep\uff09: \u8fd9\u662f\u6700\u57fa\u672c\u7684\u5783\u573e\u6536\u96c6\u7b97\u6cd5\uff0c\u5b83\u5206\u4e3a\u4e24\u4e2a\u9636\u6bb5\uff0c\u6807\u8bb0\u548c\u6e05\u9664\u3002\u9996\u5148\u6807\u8bb0\u51fa\u6240\u6709\u9700\u8981\u56de\u6536\u7684\u5bf9\u8c61\uff0c\u7136\u540e\u8fdb\u884c\u6e05\u9664\u3002\u7f3a\u70b9\u662f\u6548\u7387\u4e0d\u9ad8\uff0c\u5e76\u4e14\u4f1a\u4ea7\u751f\u5927\u91cf\u4e0d\u8fde\u7eed\u7684\u5185\u5b58\u788e\u7247\u3002"),(0,a.yg)("li",{parentName:"ul"},"\uff08Copying\uff09: \u4e3a\u4e86\u89e3\u51b3\u6807\u8bb0-\u6e05\u9664\u7b97\u6cd5\u7684\u5185\u5b58\u788e\u7247\u95ee\u9898\uff0c\u51fa\u73b0\u4e86\u590d\u5236\u7b97\u6cd5\u3002\u5b83\u5c06\u53ef\u7528\u5185\u5b58\u5206\u4e3a\u4e24\u4e2a\u533a\u57df\uff0c\u6bcf\u6b21\u53ea\u4f7f\u7528\u5176\u4e2d\u4e00\u4e2a\u533a\u57df\u3002\u5f53\u8fd9\u4e2a\u533a\u57df\u6ee1\u65f6\uff0c\u5b83\u4f1a\u628a\u5b58\u6d3b\u7684\u5bf9\u8c61\u590d\u5236\u5230\u53e6\u4e00\u4e2a\u533a\u57df\uff0c\u7136\u540e\u6e05\u9664\u6b63\u5728\u4f7f\u7528\u7684\u90a3\u4e2a\u533a\u57df\u7684\u6240\u6709\u5bf9\u8c61\u3002\u8fd9\u79cd\u7b97\u6cd5\u5b9e\u73b0\u7b80\u5355\uff0c\u8fd0\u884c\u9ad8\u6548\uff0c\u4f46\u662f\u9700\u8981\u4e24\u500d\u7684\u5185\u5b58\u7a7a\u95f4\u3002"),(0,a.yg)("li",{parentName:"ul"},"\u6807\u8bb0-\u6574\u7406\uff08Mark-Compact\uff09: \u7ed3\u5408\u4e86\u6807\u8bb0-\u6e05\u9664\u548c\u590d\u5236\u7684\u4f18\u70b9\uff0c\u5b83\u5148\u6807\u8bb0\u9700\u8981\u56de\u6536\u7684\u5bf9\u8c61\uff0c\u7136\u540e\u628a\u6240\u6709\u5b58\u6d3b\u7684\u5bf9\u8c61\u90fd\u5411\u4e00\u7aef\u79fb\u52a8\uff0c\u63a5\u7740\u6e05\u9664\u6389\u7aef\u8fb9\u754c\u4ee5\u5916\u7684\u5185\u5b58\u3002"),(0,a.yg)("li",{parentName:"ul"},"\u5206\u4ee3\u6536\u96c6\uff08Generational Collector\uff09: \u57fa\u4e8e\u5bf9\u8c61\u751f\u547d\u5468\u671f\u7684\u4e0d\u540c\uff0c\u5b83\u5c06\u5806\u5206\u4e3a\u65b0\u751f\u4ee3\u548c\u8001\u5e74\u4ee3\u3002\u65b0\u751f\u4ee3\u4e2d\uff0c\u5927\u90e8\u5206\u5bf9\u8c61\u662f\u671d\u751f\u5915\u6b7b\u7684\uff0c\u6240\u4ee5\u53ef\u4ee5\u4f7f\u7528\u590d\u5236\u7b97\u6cd5\uff1b\u8001\u5e74\u4ee3\u4e2d\u5bf9\u8c61\u5b58\u6d3b\u7387\u9ad8\uff0c\u4e00\u822c\u4f7f\u7528\u6807\u8bb0-\u6574\u7406\u6216\u6807\u8bb0-\u6e05\u9664\u7b97\u6cd5\u3002"),(0,a.yg)("li",{parentName:"ul"},"\u589e\u91cf\u6536\u96c6\uff08Incremental Collector\uff09: \u8fd9\u79cd\u7b97\u6cd5\u5141\u8bb8\u5783\u573e\u6536\u96c6\u5728\u5e94\u7528\u8fdb\u884c\u7684\u540c\u65f6\u8fdb\u884c\uff0c\u51cf\u5c11\u5e94\u7528\u7684\u6682\u505c\u65f6\u95f4\u3002"),(0,a.yg)("li",{parentName:"ul"},"\u5e76\u53d1\u6807\u8bb0-\u6e05\u9664\uff08Concurrent Mark-Sweep, CMS\uff09: \u4e3a\u4e86\u51cf\u5c11\u5783\u573e\u6536\u96c6\u5bf9\u5e94\u7528\u7684\u5f71\u54cd\uff0c\u51fa\u73b0\u4e86\u5e76\u53d1\u6536\u96c6\u7b97\u6cd5\uff0c\u5b83\u5c1d\u8bd5\u8ba9\u5783\u573e\u6536\u96c6\u7684\u8fc7\u7a0b\u5e76\u53d1\u8fdb\u884c\u3002CMS \u7b97\u6cd5\u5206\u4e3a\u56db\u4e2a\u9636\u6bb5\uff0c\u5e76\u53d1\u6807\u8bb0\u3001\u5e76\u53d1\u9884\u6e05\u7406\u3001\u91cd\u65b0\u6807\u8bb0\u3001\u5e76\u53d1\u6e05\u9664\uff0c\u5c3d\u91cf\u51cf\u5c11\u5bf9\u5e94\u7528\u7684\u5f71\u54cd\u3002"),(0,a.yg)("li",{parentName:"ul"},"\u6539\u8fdb\u7684\u5e76\u53d1\u6807\u8bb0-\u6e05\u9664\uff08G1\uff09: \u4e3a\u4e86\u8fdb\u4e00\u6b65\u51cf\u5c11\u6682\u505c\u65f6\u95f4\u548c\u63d0\u9ad8\u541e\u5410\u91cf\uff0cJVM \u5728 Java 7 Update 4 \u4e2d\u5f15\u5165\u4e86 G1 \u5783\u573e\u6536\u96c6\u5668\u3002G1 \u5c1d\u8bd5\u628a\u5806\u7a7a\u95f4\u5212\u5206\u4e3a\u591a\u4e2a\u5927\u5c0f\u76f8\u7b49\u7684\u533a\u57df\uff0c\u5e76\u4e14\u53ef\u4ee5\u5e76\u53d1\u5904\u7406\u8fd9\u4e9b\u533a\u57df\u3002")))}y.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/f13b6fbf.80fe4e66.js b/assets/js/f13b6fbf.6b225d98.js similarity index 98% rename from assets/js/f13b6fbf.80fe4e66.js rename to assets/js/f13b6fbf.6b225d98.js index c7c88ca7b..e1755835c 100644 --- a/assets/js/f13b6fbf.80fe4e66.js +++ b/assets/js/f13b6fbf.6b225d98.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6359],{5680:(e,r,t)=>{t.d(r,{xA:()=>s,yg:()=>f});var n=t(6540);function o(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function c(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function a(e){for(var r=1;r=0||(o[t]=e[t]);return o}(e,r);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var d=n.createContext({}),l=function(e){var r=n.useContext(d),t=r;return e&&(t="function"==typeof e?e(r):a(a({},r),e)),t},s=function(e){var r=l(e.components);return n.createElement(d.Provider,{value:r},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},y=n.forwardRef((function(e,r){var t=e.components,o=e.mdxType,c=e.originalType,d=e.parentName,s=i(e,["components","mdxType","originalType","parentName"]),p=l(t),y=o,f=p["".concat(d,".").concat(y)]||p[y]||u[y]||c;return t?n.createElement(f,a(a({ref:r},s),{},{components:t})):n.createElement(f,a({ref:r},s))}));function f(e,r){var t=arguments,o=r&&r.mdxType;if("string"==typeof e||o){var c=t.length,a=new Array(c);a[0]=y;var i={};for(var d in r)hasOwnProperty.call(r,d)&&(i[d]=r[d]);i.originalType=e,i[p]="string"==typeof e?e:o,a[1]=i;for(var l=2;l{t.r(r),t.d(r,{assets:()=>d,contentTitle:()=>a,default:()=>u,frontMatter:()=>c,metadata:()=>i,toc:()=>l});var n=t(8168),o=(t(6540),t(5680));const c={},a="docker-nginx",i={unversionedId:"study/docker/docker-nginx",id:"study/docker/docker-nginx",title:"docker-nginx",description:"",source:"@site/docs/study/docker/docker-nginx.md",sourceDirName:"study/docker",slug:"/study/docker/docker-nginx",permalink:"/docs/study/docker/docker-nginx",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"docker-mysql",permalink:"/docs/study/docker/docker-mysql"},next:{title:"\u6982\u8ff0",permalink:"/docs/study/competitive/"}},d={},l=[],s={toc:l},p="wrapper";function u(e){let{components:r,...t}=e;return(0,o.yg)(p,(0,n.A)({},s,t,{components:r,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"docker-nginx"},"docker-nginx"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-shell"},"\n\ndocker pull docker.io/nginx\n\n")))}u.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[6359],{5680:(e,r,t)=>{t.d(r,{xA:()=>s,yg:()=>f});var n=t(6540);function o(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function c(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,n)}return t}function a(e){for(var r=1;r=0||(o[t]=e[t]);return o}(e,r);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var d=n.createContext({}),l=function(e){var r=n.useContext(d),t=r;return e&&(t="function"==typeof e?e(r):a(a({},r),e)),t},s=function(e){var r=l(e.components);return n.createElement(d.Provider,{value:r},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var r=e.children;return n.createElement(n.Fragment,{},r)}},y=n.forwardRef((function(e,r){var t=e.components,o=e.mdxType,c=e.originalType,d=e.parentName,s=i(e,["components","mdxType","originalType","parentName"]),p=l(t),y=o,f=p["".concat(d,".").concat(y)]||p[y]||u[y]||c;return t?n.createElement(f,a(a({ref:r},s),{},{components:t})):n.createElement(f,a({ref:r},s))}));function f(e,r){var t=arguments,o=r&&r.mdxType;if("string"==typeof e||o){var c=t.length,a=new Array(c);a[0]=y;var i={};for(var d in r)hasOwnProperty.call(r,d)&&(i[d]=r[d]);i.originalType=e,i[p]="string"==typeof e?e:o,a[1]=i;for(var l=2;l{t.r(r),t.d(r,{assets:()=>d,contentTitle:()=>a,default:()=>u,frontMatter:()=>c,metadata:()=>i,toc:()=>l});var n=t(8168),o=(t(6540),t(5680));const c={},a="docker-nginx",i={unversionedId:"study/docker/docker-nginx",id:"study/docker/docker-nginx",title:"docker-nginx",description:"",source:"@site/docs/study/docker/docker-nginx.md",sourceDirName:"study/docker",slug:"/study/docker/docker-nginx",permalink:"/docs/study/docker/docker-nginx",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"docker-mysql",permalink:"/docs/study/docker/docker-mysql"},next:{title:"\u6982\u8ff0",permalink:"/docs/study/competitive/"}},d={},l=[],s={toc:l},p="wrapper";function u(e){let{components:r,...t}=e;return(0,o.yg)(p,(0,n.A)({},s,t,{components:r,mdxType:"MDXLayout"}),(0,o.yg)("h1",{id:"docker-nginx"},"docker-nginx"),(0,o.yg)("pre",null,(0,o.yg)("code",{parentName:"pre",className:"language-shell"},"\n\ndocker pull docker.io/nginx\n\n")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/f1999a3d.1325fa0b.js b/assets/js/f1999a3d.6b230674.js similarity index 99% rename from assets/js/f1999a3d.1325fa0b.js rename to assets/js/f1999a3d.6b230674.js index b29f87cab..e32452abe 100644 --- a/assets/js/f1999a3d.1325fa0b.js +++ b/assets/js/f1999a3d.6b230674.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3329],{5680:(e,t,r)=>{r.d(t,{xA:()=>c,yg:()=>g});var n=r(6540);function l(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t=0||(l[r]=e[r]);return l}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(l[r]=e[r])}return l}var u=n.createContext({}),p=function(e){var t=n.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},c=function(e){var t=p(e.components);return n.createElement(u.Provider,{value:t},e.children)},s="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,l=e.mdxType,a=e.originalType,u=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),s=p(r),d=l,g=s["".concat(u,".").concat(d)]||s[d]||y[d]||a;return r?n.createElement(g,o(o({ref:t},c),{},{components:r})):n.createElement(g,o({ref:t},c))}));function g(e,t){var r=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var a=r.length,o=new Array(a);o[0]=d;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i[s]="string"==typeof e?e:l,o[1]=i;for(var p=2;p{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>o,default:()=>y,frontMatter:()=>a,metadata:()=>i,toc:()=>p});var n=r(8168),l=(r(6540),r(5680));const a={},o=void 0,i={unversionedId:"study/program/JAVA/Vert.x",id:"study/program/JAVA/Vert.x",title:"Vert.x",description:"\u7b80\u4ecb",source:"@site/docs/study/program/JAVA/Vert.x.md",sourceDirName:"study/program/JAVA",slug:"/study/program/JAVA/Vert.x",permalink:"/docs/study/program/JAVA/Vert.x",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"RxJava",permalink:"/docs/study/program/JAVA/RxJava"},next:{title:"npm",permalink:"/docs/study/program/JS/npm"}},u={},p=[{value:"\u7b80\u4ecb",id:"\u7b80\u4ecb",level:3},{value:"Vert.x Core",id:"vertx-core",level:3},{value:"\u6d41\u5f0f\u4ee3\u7801\u98ce\u683c",id:"\u6d41\u5f0f\u4ee3\u7801\u98ce\u683c",level:3},{value:"Don\u2019t call us, we\u2019ll call you",id:"dont-call-us-well-call-you",level:3},{value:"Verticle",id:"verticle",level:3},{value:"Event Bus",id:"event-bus",level:3}],c={toc:p},s="wrapper";function y(e){let{components:t,...r}=e;return(0,l.yg)(s,(0,n.A)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,l.yg)("h3",{id:"\u7b80\u4ecb"},"\u7b80\u4ecb"),(0,l.yg)("p",null,(0,l.yg)("a",{parentName:"p",href:"https://github.com/eclipse-vertx/vert.x"},"GitHub\u5730\u5740"),"\n",(0,l.yg)("a",{parentName:"p",href:"https://vertx.io"},"\u5b98\u7f51"),"\n",(0,l.yg)("a",{parentName:"p",href:"http://vertxchina.github.io/vertx-translation-chinese/"},"Vert.x \u5b98\u65b9\u6587\u6863\u4e2d\u6587\u7ffb\u8bd1")),(0,l.yg)("p",null,"Vert.x is a tool-kit for building reactive applications on the JVM.\nVert.x\u662f\u5efa\u7acb\u5728JVM\u4e0a\u7528\u4e8e\u6784\u5efa\u201c\u5f02\u6b65\u975e\u963b\u585e\u5e94\u7528\u201d\u7684\u4e00\u5957\u5de5\u5177\u96c6\u5408\u3002\n\u6ce8\u610f\uff1a\u4ed6\u4e0d\u662fjava\u6846\u67b6\uff0c\u5b83\u662f\u4e00\u5957\u5de5\u5177\u96c6\uff0c\u6216\u8005\u8bf4\u53eb\u7c7b\u5e93\u3002"),(0,l.yg)("h3",{id:"vertx-core"},"Vert.x Core"),(0,l.yg)("p",null,"Vert.x \u7684\u6838\u5fc3 Java API \u88ab\u6211\u4eec\u79f0\u4e3a Vert.x Core\u3002\nVert.x Core \u63d0\u4f9b\u4e86\u4e0b\u5217\u529f\u80fd:"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"\u7f16\u5199 TCP \u5ba2\u6237\u7aef\u548c\u670d\u52a1\u7aef"),(0,l.yg)("li",{parentName:"ul"},"\u7f16\u5199\u652f\u6301 WebSocket \u7684 HTTP \u5ba2\u6237\u7aef\u548c\u670d\u52a1\u7aef"),(0,l.yg)("li",{parentName:"ul"},"\u4e8b\u4ef6\u603b\u7ebf"),(0,l.yg)("li",{parentName:"ul"},"\u5171\u4eab\u6570\u636e \u2014\u2014 \u672c\u5730\u7684Map\u548c\u5206\u5e03\u5f0f\u96c6\u7fa4Map"),(0,l.yg)("li",{parentName:"ul"},"\u5468\u671f\u6027\u3001\u5ef6\u8fdf\u6027\u52a8\u4f5c"),(0,l.yg)("li",{parentName:"ul"},"\u90e8\u7f72\u548c\u64a4\u9500 Verticle \u5b9e\u4f8b"),(0,l.yg)("li",{parentName:"ul"},"\u6570\u636e\u62a5\u5957\u63a5\u5b57"),(0,l.yg)("li",{parentName:"ul"},"DNS\u5ba2\u6237\u7aef"),(0,l.yg)("li",{parentName:"ul"},"\u6587\u4ef6\u7cfb\u7edf\u8bbf\u95ee"),(0,l.yg)("li",{parentName:"ul"},"\u9ad8\u53ef\u7528\u6027"),(0,l.yg)("li",{parentName:"ul"},"\u96c6\u7fa4")),(0,l.yg)("h3",{id:"\u6d41\u5f0f\u4ee3\u7801\u98ce\u683c"},"\u6d41\u5f0f\u4ee3\u7801\u98ce\u683c"),(0,l.yg)("p",null,"\u4e00\u4e2a\u6d41\u5f0f\u7684API\u8868\u793a\u5c06\u591a\u4e2a\u65b9\u6cd5\u7684\u8c03\u7528\u94fe\u5728\u4e00\u8d77\u3002\u4f8b\u5982\uff1a"),(0,l.yg)("pre",null,(0,l.yg)("code",{parentName:"pre",className:"language-shell"},'request.response().putHeader("Content-Type", "text/plain").write("some text").end();\n')),(0,l.yg)("p",null,"\u8fd9\u662f\u8d2f\u7a7f Vert.x API \u4e2d\u7684\u4e00\u4e2a\u901a\u7528\u6a21\u5f0f\uff0c\u6240\u4ee5\u8bf7\u9002\u5e94\u8fd9\u79cd\u4ee3\u7801\u98ce\u683c\u3002"),(0,l.yg)("h3",{id:"dont-call-us-well-call-you"},"Don\u2019t call us, we\u2019ll call you"),(0,l.yg)("p",null,"Vert.x \u7684 API \u5927\u90e8\u5206\u90fd\u662f\u4e8b\u4ef6\u9a71\u52a8\u7684\u3002\u8fd9\u610f\u5473\u7740\u5f53\u60a8\u611f\u5174\u8da3\u7684\u4e8b\u60c5\u53d1\u751f\u65f6\uff0c\u5b83\u4f1a\u4ee5\u4e8b\u4ef6\u7684\u5f62\u5f0f\u53d1\u9001\u7ed9\u60a8\u3002"),(0,l.yg)("p",null,'\u9664\u4e86\u5f88\u5c11\u7684\u7279\u4f8b\uff08\u5982\u4ee5 "Sync" \u7ed3\u5c3e\u7684\u67d0\u4e9b\u6587\u4ef6\u7cfb\u7edf\u64cd\u4f5c\uff09\uff0cVert.x\u4e2d\u7684\u6240\u6709API\u90fd\u4e0d\u4f1a\u963b\u585e\u8c03\u7528\u7ebf\u7a0b\u3002'),(0,l.yg)("p",null,"\u6211\u4eec\u524d\u8fb9\u63d0\u8fc7 Vert.x \u7684 API \u90fd\u662f\u4e8b\u4ef6\u9a71\u52a8\u7684\uff0c\u5f53\u6709\u4e8b\u4ef6\u65f6 Vert.x \u4f1a\u5c06\u4e8b\u4ef6\u4f20\u7ed9\u5904\u7406\u5668\u6765\u5904\u7406\u3002\u5728\u591a\u6570\u60c5\u51b5\u4e0b\uff0cVert.x\u4f7f\u7528\u88ab\u79f0\u4e3a Event Loop \u7684\u7ebf\u7a0b\u6765\u8c03\u7528\u60a8\u7684\u5904\u7406\u5668\u3002\u6211\u4eec\u79f0\u4e4b\u4e3a Reactor \u6a21\u5f0f\uff08\u8bd1\u8005\u6ce8\uff1aReactor Pattern \u7ffb\u8bd1\u6210\u4e86\u53cd\u5e94\u5668\u6a21\u5f0f\uff09\u3002\u60a8\u4e4b\u524d\u4e5f\u8bb8\u542c\u8bf4\u8fc7\u5b83\uff0c\u4f8b\u5982 Node.js \u5b9e\u73b0\u4e86\u8fd9\u79cd\u6a21\u5f0f\u3002\n\u5728\u4e00\u4e2a\u6807\u51c6\u7684\u53cd\u5e94\u5668\u5b9e\u73b0\u4e2d\uff0c\u6709 \u4e00\u4e2a\u72ec\u7acb\u7684 Event Loop \u4f1a\u5faa\u73af\u6267\u884c\uff0c\u5904\u7406\u6240\u6709\u5230\u8fbe\u7684\u4e8b\u4ef6\u5e76\u4f20\u9012\u7ed9\u5904\u7406\u5668\u5904\u7406\u3002\n\u5355\u4e00\u7ebf\u7a0b\u7684\u95ee\u9898\u5728\u4e8e\u5b83\u5728\u4efb\u610f\u65f6\u523b\u53ea\u80fd\u8fd0\u884c\u5728\u4e00\u4e2a\u6838\u4e0a\u3002\u5982\u679c\u60a8\u5e0c\u671b\u5355\u7ebf\u7a0b\u53cd\u5e94\u5668\u5e94\u7528\uff08\u5982\u60a8\u7684 Node.js \u5e94\u7528\uff09\u6269\u5c55\u5230\u591a\u6838\u670d\u52a1\u5668\u4e0a\uff0c\u5219\u9700\u8981\u542f\u52a8\u5e76\u4e14\u7ba1\u7406\u591a\u4e2a\u4e0d\u540c\u7684\u8fdb\u7a0b\u3002\nVert.x\u7684\u5de5\u4f5c\u65b9\u5f0f\u6709\u6240\u4e0d\u540c\u3002\u6bcf\u4e2a Vertx \u5b9e\u4f8b\u7ef4\u62a4\u7684\u662f \u591a\u4e2aEvent Loop \u7ebf\u7a0b\u3002\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0c\u6211\u4eec\u4f1a\u6839\u636e\u673a\u5668\u4e0a\u53ef\u7528\u7684\u6838\u6570\u91cf\u6765\u8bbe\u7f6e Event Loop \u7684\u6570\u91cf\uff0c\u60a8\u4ea6\u53ef\u81ea\u884c\u8bbe\u7f6e\u3002\n\u8fd9\u610f\u5473\u7740 Vertx \u8fdb\u7a0b\u80fd\u591f\u5728\u60a8\u7684\u670d\u52a1\u5668\u4e0a\u6269\u5c55\uff0c\u4e0e Node.js \u4e0d\u540c\u3002\n\u6211\u4eec\u5c06\u8fd9\u79cd\u6a21\u5f0f\u79f0\u4e3a Multi-Reactor \u6a21\u5f0f\uff08\u591a\u53cd\u5e94\u5668\u6a21\u5f0f\uff09\uff0c\u533a\u522b\u4e8e\u5355\u7ebf\u7a0b\u7684 Reactor \u6a21\u5f0f\uff08\u53cd\u5e94\u5668\u6a21\u5f0f\uff09\u3002"),(0,l.yg)("p",null,"Vert.x \u4e2d\u7684 ",(0,l.yg)("a",{parentName:"p",href:"http://vertx.io/docs/apidocs/io/vertx/core/Future.html"},"Future")," \u53ef\u4ee5\u7528\u6765\u534f\u8c03\u591a\u4e2a\u5f02\u6b65\u64cd\u4f5c\u7684\u7ed3\u679c\u3002\u5b83\u652f\u6301\u5e76\u53d1\u7ec4\u5408\uff08\u5e76\u884c\u6267\u884c\u591a\u4e2a\u5f02\u6b65\u8c03\u7528\uff09\u548c\u987a\u5e8f\u7ec4\u5408\uff08\u4f9d\u6b21\u6267\u884c\u5f02\u6b65\u8c03\u7528\uff09\u3002"),(0,l.yg)("h3",{id:"verticle"},"Verticle"),(0,l.yg)("p",null,"Verticle \u662f\u7531 Vert.x \u90e8\u7f72\u548c\u8fd0\u884c\u7684\u4ee3\u7801\u5757\u3002\u9ed8\u8ba4\u60c5\u51b5\u4e00\u4e2a Vert.x \u5b9e\u4f8b\u7ef4\u62a4\u4e86N\uff08\u9ed8\u8ba4\u60c5\u51b5\u4e0bN = CPU\u6838\u6570 x 2\uff09\u4e2a Event Loop \u7ebf\u7a0b\u3002Verticle \u5b9e\u4f8b\u53ef\u4f7f\u7528\u4efb\u610f Vert.x \u652f\u6301\u7684\u7f16\u7a0b\u8bed\u8a00\u7f16\u5199\uff0c\u800c\u4e14\u4e00\u4e2a\u7b80\u5355\u7684\u5e94\u7528\u7a0b\u5e8f\u4e5f\u53ef\u4ee5\u5305\u542b\u591a\u79cd\u8bed\u8a00\u7f16\u5199\u7684 Verticle\u3002\u60a8\u53ef\u4ee5\u5c06 Verticle \u60f3\u6210 Actor Model \u4e2d\u7684 Actor\u3002"),(0,l.yg)("p",null,"\u4e00\u4e2a\u5e94\u7528\u7a0b\u5e8f\u901a\u5e38\u662f\u7531\u5728\u540c\u4e00\u4e2a Vert.x \u5b9e\u4f8b\u4e2d\u540c\u65f6\u8fd0\u884c\u7684\u8bb8\u591a Verticle \u5b9e\u4f8b\u7ec4\u5408\u800c\u6210\u3002\u4e0d\u540c\u7684 Verticle \u5b9e\u4f8b\u901a\u8fc7\u5411 Event Bus \u4e0a\u53d1\u9001\u6d88\u606f\u6765\u76f8\u4e92\u901a\u4fe1\u3002"),(0,l.yg)("p",null,"\u8fd9\u513f\u6709\u4e09\u79cd\u4e0d\u540c\u7c7b\u578b\u7684 Verticle\uff1a"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"Stardand Verticle\uff1a\u8fd9\u662f\u6700\u5e38\u7528\u7684\u4e00\u7c7b Verticle \u2014\u2014 \u5b83\u4eec\u6c38\u8fdc\u8fd0\u884c\u5728 Event Loop \u7ebf\u7a0b\u4e0a\u3002\u7a0d\u540e\u7684\u7ae0\u8282\u6211\u4eec\u4f1a\u8ba8\u8bba\u66f4\u591a\u3002"),(0,l.yg)("li",{parentName:"ul"},"Worker Verticle\uff1a\u8fd9\u7c7b Verticle \u4f1a\u8fd0\u884c\u5728 Worker Pool \u4e2d\u7684\u7ebf\u7a0b\u4e0a\u3002\u4e00\u4e2a\u5b9e\u4f8b\u7edd\u5bf9\u4e0d\u4f1a\u88ab\u591a\u4e2a\u7ebf\u7a0b\u540c\u65f6\u6267\u884c\u3002"),(0,l.yg)("li",{parentName:"ul"},"Multi-Threaded Worker Verticle\uff1a\u8fd9\u7c7b Verticle \u4e5f\u4f1a\u8fd0\u884c\u5728 Worker Pool \u4e2d\u7684\u7ebf\u7a0b\u4e0a\u3002\u4e00\u4e2a\u5b9e\u4f8b\u53ef\u4ee5\u7531\u591a\u4e2a\u7ebf\u7a0b\u540c\u65f6\u6267\u884c\uff08\u8bd1\u8005\u6ce8\uff1a\u56e0\u6b64\u9700\u8981\u5f00\u53d1\u8005\u81ea\u5df1\u786e\u4fdd\u7ebf\u7a0b\u5b89\u5168\uff09\u3002")),(0,l.yg)("h3",{id:"event-bus"},"Event Bus"),(0,l.yg)("p",null,"Event Bus \u662f Vert.x \u7684\u795e\u7ecf\u7cfb\u7edf\u3002\n\u6bcf\u4e00\u4e2a Vert.x \u5b9e\u4f8b\u90fd\u6709\u4e00\u4e2a\u5355\u72ec\u7684 Event Bus \u5b9e\u4f8b\u3002\u60a8\u53ef\u4ee5\u901a\u8fc7 Vertx \u5b9e\u4f8b\u7684 ",(0,l.yg)("a",{parentName:"p",href:"http://vertx.io/docs/apidocs/io/vertx/core/Vertx.html#eventBus--"},"eventBus")," \u65b9\u6cd5\u6765\u83b7\u5f97\u5bf9\u5e94\u7684 EventBus \u5b9e\u4f8b\u3002\nVert.x\u4f1a\u5c3d\u5b83\u6700\u5927\u52aa\u529b\u53bb\u4f20\u9012\u6d88\u606f\uff0c\u5e76\u4e14\u4e0d\u4f1a\u4e3b\u52a8\u4e22\u5f03\u6d88\u606f\u3002\u8fd9\u79cd\u65b9\u5f0f\u79f0\u4e3a \u5c3d\u529b\u4f20\u8f93(Best-effort delivery)\u3002\n\u4f46\u662f\uff0c\u5f53 Event Bus \u4e2d\u7684\u5168\u90e8\u6216\u90e8\u5206\u53d1\u751f\u6545\u969c\u65f6\uff0c\u5219\u53ef\u80fd\u4f1a\u4e22\u5931\u6d88\u606f\u3002\n\u82e5\u60a8\u7684\u5e94\u7528\u5173\u5fc3\u4e22\u5931\u7684\u6d88\u606f\uff0c\u60a8\u5e94\u8be5\u7f16\u5199\u5177\u6709\u5e42\u7b49\u6027\u7684\u5904\u7406\u5668\uff0c\u5e76\u4e14\u60a8\u7684\u53d1\u9001\u8005\u53ef\u4ee5\u5728\u6062\u590d\u540e\u91cd\u8bd5\u3002"),(0,l.yg)("p",null,"Event Bus \u4e0d\u4ec5\u4ec5\u5b58\u5728\u4e8e\u5355\u4e2a Vert.x \u5b9e\u4f8b\u4e2d\u3002\u901a\u8fc7\u60a8\u5728\u7f51\u7edc\u4e0a\u5c06\u4e0d\u540c\u7684 Vert.x \u5b9e\u4f8b\u96c6\u7fa4\u5728\u4e00\u8d77\uff0c\u5b83\u53ef\u4ee5\u5f62\u6210\u4e00\u4e2a\u5355\u4e00\u7684\u3001\u5206\u5e03\u5f0f\u7684Event Bus\u3002"))}y.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3329],{5680:(e,t,r)=>{r.d(t,{xA:()=>c,yg:()=>g});var n=r(6540);function l(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t=0||(l[r]=e[r]);return l}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(l[r]=e[r])}return l}var u=n.createContext({}),p=function(e){var t=n.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},c=function(e){var t=p(e.components);return n.createElement(u.Provider,{value:t},e.children)},s="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,l=e.mdxType,a=e.originalType,u=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),s=p(r),d=l,g=s["".concat(u,".").concat(d)]||s[d]||y[d]||a;return r?n.createElement(g,o(o({ref:t},c),{},{components:r})):n.createElement(g,o({ref:t},c))}));function g(e,t){var r=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var a=r.length,o=new Array(a);o[0]=d;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i[s]="string"==typeof e?e:l,o[1]=i;for(var p=2;p{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>o,default:()=>y,frontMatter:()=>a,metadata:()=>i,toc:()=>p});var n=r(8168),l=(r(6540),r(5680));const a={},o=void 0,i={unversionedId:"study/program/JAVA/Vert.x",id:"study/program/JAVA/Vert.x",title:"Vert.x",description:"\u7b80\u4ecb",source:"@site/docs/study/program/JAVA/Vert.x.md",sourceDirName:"study/program/JAVA",slug:"/study/program/JAVA/Vert.x",permalink:"/docs/study/program/JAVA/Vert.x",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"RxJava",permalink:"/docs/study/program/JAVA/RxJava"},next:{title:"npm",permalink:"/docs/study/program/JS/npm"}},u={},p=[{value:"\u7b80\u4ecb",id:"\u7b80\u4ecb",level:3},{value:"Vert.x Core",id:"vertx-core",level:3},{value:"\u6d41\u5f0f\u4ee3\u7801\u98ce\u683c",id:"\u6d41\u5f0f\u4ee3\u7801\u98ce\u683c",level:3},{value:"Don\u2019t call us, we\u2019ll call you",id:"dont-call-us-well-call-you",level:3},{value:"Verticle",id:"verticle",level:3},{value:"Event Bus",id:"event-bus",level:3}],c={toc:p},s="wrapper";function y(e){let{components:t,...r}=e;return(0,l.yg)(s,(0,n.A)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,l.yg)("h3",{id:"\u7b80\u4ecb"},"\u7b80\u4ecb"),(0,l.yg)("p",null,(0,l.yg)("a",{parentName:"p",href:"https://github.com/eclipse-vertx/vert.x"},"GitHub\u5730\u5740"),"\n",(0,l.yg)("a",{parentName:"p",href:"https://vertx.io"},"\u5b98\u7f51"),"\n",(0,l.yg)("a",{parentName:"p",href:"http://vertxchina.github.io/vertx-translation-chinese/"},"Vert.x \u5b98\u65b9\u6587\u6863\u4e2d\u6587\u7ffb\u8bd1")),(0,l.yg)("p",null,"Vert.x is a tool-kit for building reactive applications on the JVM.\nVert.x\u662f\u5efa\u7acb\u5728JVM\u4e0a\u7528\u4e8e\u6784\u5efa\u201c\u5f02\u6b65\u975e\u963b\u585e\u5e94\u7528\u201d\u7684\u4e00\u5957\u5de5\u5177\u96c6\u5408\u3002\n\u6ce8\u610f\uff1a\u4ed6\u4e0d\u662fjava\u6846\u67b6\uff0c\u5b83\u662f\u4e00\u5957\u5de5\u5177\u96c6\uff0c\u6216\u8005\u8bf4\u53eb\u7c7b\u5e93\u3002"),(0,l.yg)("h3",{id:"vertx-core"},"Vert.x Core"),(0,l.yg)("p",null,"Vert.x \u7684\u6838\u5fc3 Java API \u88ab\u6211\u4eec\u79f0\u4e3a Vert.x Core\u3002\nVert.x Core \u63d0\u4f9b\u4e86\u4e0b\u5217\u529f\u80fd:"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"\u7f16\u5199 TCP \u5ba2\u6237\u7aef\u548c\u670d\u52a1\u7aef"),(0,l.yg)("li",{parentName:"ul"},"\u7f16\u5199\u652f\u6301 WebSocket \u7684 HTTP \u5ba2\u6237\u7aef\u548c\u670d\u52a1\u7aef"),(0,l.yg)("li",{parentName:"ul"},"\u4e8b\u4ef6\u603b\u7ebf"),(0,l.yg)("li",{parentName:"ul"},"\u5171\u4eab\u6570\u636e \u2014\u2014 \u672c\u5730\u7684Map\u548c\u5206\u5e03\u5f0f\u96c6\u7fa4Map"),(0,l.yg)("li",{parentName:"ul"},"\u5468\u671f\u6027\u3001\u5ef6\u8fdf\u6027\u52a8\u4f5c"),(0,l.yg)("li",{parentName:"ul"},"\u90e8\u7f72\u548c\u64a4\u9500 Verticle \u5b9e\u4f8b"),(0,l.yg)("li",{parentName:"ul"},"\u6570\u636e\u62a5\u5957\u63a5\u5b57"),(0,l.yg)("li",{parentName:"ul"},"DNS\u5ba2\u6237\u7aef"),(0,l.yg)("li",{parentName:"ul"},"\u6587\u4ef6\u7cfb\u7edf\u8bbf\u95ee"),(0,l.yg)("li",{parentName:"ul"},"\u9ad8\u53ef\u7528\u6027"),(0,l.yg)("li",{parentName:"ul"},"\u96c6\u7fa4")),(0,l.yg)("h3",{id:"\u6d41\u5f0f\u4ee3\u7801\u98ce\u683c"},"\u6d41\u5f0f\u4ee3\u7801\u98ce\u683c"),(0,l.yg)("p",null,"\u4e00\u4e2a\u6d41\u5f0f\u7684API\u8868\u793a\u5c06\u591a\u4e2a\u65b9\u6cd5\u7684\u8c03\u7528\u94fe\u5728\u4e00\u8d77\u3002\u4f8b\u5982\uff1a"),(0,l.yg)("pre",null,(0,l.yg)("code",{parentName:"pre",className:"language-shell"},'request.response().putHeader("Content-Type", "text/plain").write("some text").end();\n')),(0,l.yg)("p",null,"\u8fd9\u662f\u8d2f\u7a7f Vert.x API \u4e2d\u7684\u4e00\u4e2a\u901a\u7528\u6a21\u5f0f\uff0c\u6240\u4ee5\u8bf7\u9002\u5e94\u8fd9\u79cd\u4ee3\u7801\u98ce\u683c\u3002"),(0,l.yg)("h3",{id:"dont-call-us-well-call-you"},"Don\u2019t call us, we\u2019ll call you"),(0,l.yg)("p",null,"Vert.x \u7684 API \u5927\u90e8\u5206\u90fd\u662f\u4e8b\u4ef6\u9a71\u52a8\u7684\u3002\u8fd9\u610f\u5473\u7740\u5f53\u60a8\u611f\u5174\u8da3\u7684\u4e8b\u60c5\u53d1\u751f\u65f6\uff0c\u5b83\u4f1a\u4ee5\u4e8b\u4ef6\u7684\u5f62\u5f0f\u53d1\u9001\u7ed9\u60a8\u3002"),(0,l.yg)("p",null,'\u9664\u4e86\u5f88\u5c11\u7684\u7279\u4f8b\uff08\u5982\u4ee5 "Sync" \u7ed3\u5c3e\u7684\u67d0\u4e9b\u6587\u4ef6\u7cfb\u7edf\u64cd\u4f5c\uff09\uff0cVert.x\u4e2d\u7684\u6240\u6709API\u90fd\u4e0d\u4f1a\u963b\u585e\u8c03\u7528\u7ebf\u7a0b\u3002'),(0,l.yg)("p",null,"\u6211\u4eec\u524d\u8fb9\u63d0\u8fc7 Vert.x \u7684 API \u90fd\u662f\u4e8b\u4ef6\u9a71\u52a8\u7684\uff0c\u5f53\u6709\u4e8b\u4ef6\u65f6 Vert.x \u4f1a\u5c06\u4e8b\u4ef6\u4f20\u7ed9\u5904\u7406\u5668\u6765\u5904\u7406\u3002\u5728\u591a\u6570\u60c5\u51b5\u4e0b\uff0cVert.x\u4f7f\u7528\u88ab\u79f0\u4e3a Event Loop \u7684\u7ebf\u7a0b\u6765\u8c03\u7528\u60a8\u7684\u5904\u7406\u5668\u3002\u6211\u4eec\u79f0\u4e4b\u4e3a Reactor \u6a21\u5f0f\uff08\u8bd1\u8005\u6ce8\uff1aReactor Pattern \u7ffb\u8bd1\u6210\u4e86\u53cd\u5e94\u5668\u6a21\u5f0f\uff09\u3002\u60a8\u4e4b\u524d\u4e5f\u8bb8\u542c\u8bf4\u8fc7\u5b83\uff0c\u4f8b\u5982 Node.js \u5b9e\u73b0\u4e86\u8fd9\u79cd\u6a21\u5f0f\u3002\n\u5728\u4e00\u4e2a\u6807\u51c6\u7684\u53cd\u5e94\u5668\u5b9e\u73b0\u4e2d\uff0c\u6709 \u4e00\u4e2a\u72ec\u7acb\u7684 Event Loop \u4f1a\u5faa\u73af\u6267\u884c\uff0c\u5904\u7406\u6240\u6709\u5230\u8fbe\u7684\u4e8b\u4ef6\u5e76\u4f20\u9012\u7ed9\u5904\u7406\u5668\u5904\u7406\u3002\n\u5355\u4e00\u7ebf\u7a0b\u7684\u95ee\u9898\u5728\u4e8e\u5b83\u5728\u4efb\u610f\u65f6\u523b\u53ea\u80fd\u8fd0\u884c\u5728\u4e00\u4e2a\u6838\u4e0a\u3002\u5982\u679c\u60a8\u5e0c\u671b\u5355\u7ebf\u7a0b\u53cd\u5e94\u5668\u5e94\u7528\uff08\u5982\u60a8\u7684 Node.js \u5e94\u7528\uff09\u6269\u5c55\u5230\u591a\u6838\u670d\u52a1\u5668\u4e0a\uff0c\u5219\u9700\u8981\u542f\u52a8\u5e76\u4e14\u7ba1\u7406\u591a\u4e2a\u4e0d\u540c\u7684\u8fdb\u7a0b\u3002\nVert.x\u7684\u5de5\u4f5c\u65b9\u5f0f\u6709\u6240\u4e0d\u540c\u3002\u6bcf\u4e2a Vertx \u5b9e\u4f8b\u7ef4\u62a4\u7684\u662f \u591a\u4e2aEvent Loop \u7ebf\u7a0b\u3002\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0c\u6211\u4eec\u4f1a\u6839\u636e\u673a\u5668\u4e0a\u53ef\u7528\u7684\u6838\u6570\u91cf\u6765\u8bbe\u7f6e Event Loop \u7684\u6570\u91cf\uff0c\u60a8\u4ea6\u53ef\u81ea\u884c\u8bbe\u7f6e\u3002\n\u8fd9\u610f\u5473\u7740 Vertx \u8fdb\u7a0b\u80fd\u591f\u5728\u60a8\u7684\u670d\u52a1\u5668\u4e0a\u6269\u5c55\uff0c\u4e0e Node.js \u4e0d\u540c\u3002\n\u6211\u4eec\u5c06\u8fd9\u79cd\u6a21\u5f0f\u79f0\u4e3a Multi-Reactor \u6a21\u5f0f\uff08\u591a\u53cd\u5e94\u5668\u6a21\u5f0f\uff09\uff0c\u533a\u522b\u4e8e\u5355\u7ebf\u7a0b\u7684 Reactor \u6a21\u5f0f\uff08\u53cd\u5e94\u5668\u6a21\u5f0f\uff09\u3002"),(0,l.yg)("p",null,"Vert.x \u4e2d\u7684 ",(0,l.yg)("a",{parentName:"p",href:"http://vertx.io/docs/apidocs/io/vertx/core/Future.html"},"Future")," \u53ef\u4ee5\u7528\u6765\u534f\u8c03\u591a\u4e2a\u5f02\u6b65\u64cd\u4f5c\u7684\u7ed3\u679c\u3002\u5b83\u652f\u6301\u5e76\u53d1\u7ec4\u5408\uff08\u5e76\u884c\u6267\u884c\u591a\u4e2a\u5f02\u6b65\u8c03\u7528\uff09\u548c\u987a\u5e8f\u7ec4\u5408\uff08\u4f9d\u6b21\u6267\u884c\u5f02\u6b65\u8c03\u7528\uff09\u3002"),(0,l.yg)("h3",{id:"verticle"},"Verticle"),(0,l.yg)("p",null,"Verticle \u662f\u7531 Vert.x \u90e8\u7f72\u548c\u8fd0\u884c\u7684\u4ee3\u7801\u5757\u3002\u9ed8\u8ba4\u60c5\u51b5\u4e00\u4e2a Vert.x \u5b9e\u4f8b\u7ef4\u62a4\u4e86N\uff08\u9ed8\u8ba4\u60c5\u51b5\u4e0bN = CPU\u6838\u6570 x 2\uff09\u4e2a Event Loop \u7ebf\u7a0b\u3002Verticle \u5b9e\u4f8b\u53ef\u4f7f\u7528\u4efb\u610f Vert.x \u652f\u6301\u7684\u7f16\u7a0b\u8bed\u8a00\u7f16\u5199\uff0c\u800c\u4e14\u4e00\u4e2a\u7b80\u5355\u7684\u5e94\u7528\u7a0b\u5e8f\u4e5f\u53ef\u4ee5\u5305\u542b\u591a\u79cd\u8bed\u8a00\u7f16\u5199\u7684 Verticle\u3002\u60a8\u53ef\u4ee5\u5c06 Verticle \u60f3\u6210 Actor Model \u4e2d\u7684 Actor\u3002"),(0,l.yg)("p",null,"\u4e00\u4e2a\u5e94\u7528\u7a0b\u5e8f\u901a\u5e38\u662f\u7531\u5728\u540c\u4e00\u4e2a Vert.x \u5b9e\u4f8b\u4e2d\u540c\u65f6\u8fd0\u884c\u7684\u8bb8\u591a Verticle \u5b9e\u4f8b\u7ec4\u5408\u800c\u6210\u3002\u4e0d\u540c\u7684 Verticle \u5b9e\u4f8b\u901a\u8fc7\u5411 Event Bus \u4e0a\u53d1\u9001\u6d88\u606f\u6765\u76f8\u4e92\u901a\u4fe1\u3002"),(0,l.yg)("p",null,"\u8fd9\u513f\u6709\u4e09\u79cd\u4e0d\u540c\u7c7b\u578b\u7684 Verticle\uff1a"),(0,l.yg)("ul",null,(0,l.yg)("li",{parentName:"ul"},"Stardand Verticle\uff1a\u8fd9\u662f\u6700\u5e38\u7528\u7684\u4e00\u7c7b Verticle \u2014\u2014 \u5b83\u4eec\u6c38\u8fdc\u8fd0\u884c\u5728 Event Loop \u7ebf\u7a0b\u4e0a\u3002\u7a0d\u540e\u7684\u7ae0\u8282\u6211\u4eec\u4f1a\u8ba8\u8bba\u66f4\u591a\u3002"),(0,l.yg)("li",{parentName:"ul"},"Worker Verticle\uff1a\u8fd9\u7c7b Verticle \u4f1a\u8fd0\u884c\u5728 Worker Pool \u4e2d\u7684\u7ebf\u7a0b\u4e0a\u3002\u4e00\u4e2a\u5b9e\u4f8b\u7edd\u5bf9\u4e0d\u4f1a\u88ab\u591a\u4e2a\u7ebf\u7a0b\u540c\u65f6\u6267\u884c\u3002"),(0,l.yg)("li",{parentName:"ul"},"Multi-Threaded Worker Verticle\uff1a\u8fd9\u7c7b Verticle \u4e5f\u4f1a\u8fd0\u884c\u5728 Worker Pool \u4e2d\u7684\u7ebf\u7a0b\u4e0a\u3002\u4e00\u4e2a\u5b9e\u4f8b\u53ef\u4ee5\u7531\u591a\u4e2a\u7ebf\u7a0b\u540c\u65f6\u6267\u884c\uff08\u8bd1\u8005\u6ce8\uff1a\u56e0\u6b64\u9700\u8981\u5f00\u53d1\u8005\u81ea\u5df1\u786e\u4fdd\u7ebf\u7a0b\u5b89\u5168\uff09\u3002")),(0,l.yg)("h3",{id:"event-bus"},"Event Bus"),(0,l.yg)("p",null,"Event Bus \u662f Vert.x \u7684\u795e\u7ecf\u7cfb\u7edf\u3002\n\u6bcf\u4e00\u4e2a Vert.x \u5b9e\u4f8b\u90fd\u6709\u4e00\u4e2a\u5355\u72ec\u7684 Event Bus \u5b9e\u4f8b\u3002\u60a8\u53ef\u4ee5\u901a\u8fc7 Vertx \u5b9e\u4f8b\u7684 ",(0,l.yg)("a",{parentName:"p",href:"http://vertx.io/docs/apidocs/io/vertx/core/Vertx.html#eventBus--"},"eventBus")," \u65b9\u6cd5\u6765\u83b7\u5f97\u5bf9\u5e94\u7684 EventBus \u5b9e\u4f8b\u3002\nVert.x\u4f1a\u5c3d\u5b83\u6700\u5927\u52aa\u529b\u53bb\u4f20\u9012\u6d88\u606f\uff0c\u5e76\u4e14\u4e0d\u4f1a\u4e3b\u52a8\u4e22\u5f03\u6d88\u606f\u3002\u8fd9\u79cd\u65b9\u5f0f\u79f0\u4e3a \u5c3d\u529b\u4f20\u8f93(Best-effort delivery)\u3002\n\u4f46\u662f\uff0c\u5f53 Event Bus \u4e2d\u7684\u5168\u90e8\u6216\u90e8\u5206\u53d1\u751f\u6545\u969c\u65f6\uff0c\u5219\u53ef\u80fd\u4f1a\u4e22\u5931\u6d88\u606f\u3002\n\u82e5\u60a8\u7684\u5e94\u7528\u5173\u5fc3\u4e22\u5931\u7684\u6d88\u606f\uff0c\u60a8\u5e94\u8be5\u7f16\u5199\u5177\u6709\u5e42\u7b49\u6027\u7684\u5904\u7406\u5668\uff0c\u5e76\u4e14\u60a8\u7684\u53d1\u9001\u8005\u53ef\u4ee5\u5728\u6062\u590d\u540e\u91cd\u8bd5\u3002"),(0,l.yg)("p",null,"Event Bus \u4e0d\u4ec5\u4ec5\u5b58\u5728\u4e8e\u5355\u4e2a Vert.x \u5b9e\u4f8b\u4e2d\u3002\u901a\u8fc7\u60a8\u5728\u7f51\u7edc\u4e0a\u5c06\u4e0d\u540c\u7684 Vert.x \u5b9e\u4f8b\u96c6\u7fa4\u5728\u4e00\u8d77\uff0c\u5b83\u53ef\u4ee5\u5f62\u6210\u4e00\u4e2a\u5355\u4e00\u7684\u3001\u5206\u5e03\u5f0f\u7684Event Bus\u3002"))}y.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/f1f3474f.a052c807.js b/assets/js/f1f3474f.f7644efd.js similarity index 99% rename from assets/js/f1f3474f.a052c807.js rename to assets/js/f1f3474f.f7644efd.js index eda2ceba4..3382e371c 100644 --- a/assets/js/f1f3474f.a052c807.js +++ b/assets/js/f1f3474f.f7644efd.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[568],{5680:(e,n,t)=>{t.d(n,{xA:()=>u,yg:()=>d});var r=t(6540);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function o(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function l(e){for(var n=1;n=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var p=r.createContext({}),s=function(e){var n=r.useContext(p),t=n;return e&&(t="function"==typeof e?e(n):l(l({},n),e)),t},u=function(e){var n=s(e.components);return r.createElement(p.Provider,{value:n},e.children)},c="mdxType",g={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},y=r.forwardRef((function(e,n){var t=e.components,a=e.mdxType,o=e.originalType,p=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),c=s(t),y=a,d=c["".concat(p,".").concat(y)]||c[y]||g[y]||o;return t?r.createElement(d,l(l({ref:n},u),{},{components:t})):r.createElement(d,l({ref:n},u))}));function d(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var o=t.length,l=new Array(o);l[0]=y;var i={};for(var p in n)hasOwnProperty.call(n,p)&&(i[p]=n[p]);i.originalType=e,i[c]="string"==typeof e?e:a,l[1]=i;for(var s=2;s{t.r(n),t.d(n,{assets:()=>p,contentTitle:()=>l,default:()=>g,frontMatter:()=>o,metadata:()=>i,toc:()=>s});var r=t(8168),a=(t(6540),t(5680));const o={sidebar_position:2},l="\u5b98\u7f51",i={unversionedId:"xuanxing/fe/\u5b98\u7f51",id:"xuanxing/fe/\u5b98\u7f51",title:"\u5b98\u7f51",description:"\u5b98\u7f51\u6bd4\u8f83\u504f\u7eaf\u5c55\u793a\uff0c\u5bf9SEO\u6709\u8981\u6c42\uff0c\u5bf9CMS\u6709\u8981\u6c42\uff0c\u5bf9\u90e8\u5206\u8fd0\u8425\u6709\u9700\u6c42\uff1b",source:"@site/docs/xuanxing/fe/2-\u5b98\u7f51.md",sourceDirName:"xuanxing/fe",slug:"/xuanxing/fe/\u5b98\u7f51",permalink:"/docs/xuanxing/fe/\u5b98\u7f51",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"xuanxingSidebar",previous:{title:"\u6982\u8ff0",permalink:"/docs/xuanxing/fe/"},next:{title:"\u7528\u6237\u7aef+\u7ba1\u7406\u7aef",permalink:"/docs/xuanxing/fe/\u7528\u6237\u7aef\u7ba1\u7406\u7aef"}},p={},s=[{value:"\u9759\u6001\u9875\u9762\u5c55\u793a",id:"\u9759\u6001\u9875\u9762\u5c55\u793a",level:3},{value:"SEO",id:"seo",level:3},{value:"CMS+\u8fd0\u8425",id:"cms\u8fd0\u8425",level:3},{value:"\u6700\u7ec8",id:"\u6700\u7ec8",level:3},{value:"\u5173\u4e8e\u65b9\u68482\u7684\u540e\u7aefJS\u7684\u6280\u672f\u9009\u578b",id:"\u5173\u4e8e\u65b9\u68482\u7684\u540e\u7aefjs\u7684\u6280\u672f\u9009\u578b",level:4}],u={toc:s},c="wrapper";function g(e){let{components:n,...t}=e;return(0,a.yg)(c,(0,r.A)({},u,t,{components:n,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"\u5b98\u7f51"},"\u5b98\u7f51"),(0,a.yg)("p",null,"\u5b98\u7f51\u6bd4\u8f83\u504f\u7eaf\u5c55\u793a\uff0c\u5bf9SEO\u6709\u8981\u6c42\uff0c\u5bf9CMS\u6709\u8981\u6c42\uff0c\u5bf9\u90e8\u5206\u8fd0\u8425\u6709\u9700\u6c42\uff1b"),(0,a.yg)("h3",{id:"\u9759\u6001\u9875\u9762\u5c55\u793a"},"\u9759\u6001\u9875\u9762\u5c55\u793a"),(0,a.yg)("p",null,"\u5b98\u7f51\u5176\u5b9e\u9664\u4e86\u5927\u6539\u7248\u7684\u65f6\u5019\uff0c\u57fa\u672c\u4e0a60%\u7684\u9875\u9762\u90fd\u662f\u5e38\u5e74\u4e0d\u52a8\u7684\u3002\u800c\u4e14\u90fd\u662f\u4e00\u4e9b\u6587\u6848\u548c\u56fe\u7247\u3002\n\u8fd9\u4e2a\u7279\u70b9\u7b2c\u4e00\u4e2a\u53ef\u4ee5\u60f3\u5230\u7684\u6280\u672f\u9009\u578b\u5c31\u662f ",(0,a.yg)("strong",{parentName:"p"},(0,a.yg)("em",{parentName:"strong"},"Bootstrap")),"\uff1b"),(0,a.yg)("h3",{id:"seo"},"SEO"),(0,a.yg)("p",null,"\u5b98\u7f51\u80af\u5b9a\u5bf9SEO\u6709\u5f3a\u9700\u6c42\uff0c\u8bf4\u4ee5\uff0c\u6280\u672f\u9009\u578b\u662f\u5305\u62ec\uff1a"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"SSR"),(0,a.yg)("li",{parentName:"ul"},"\u524d\u540e\u7aef\u4e0d\u5206\u79bb\u7684\u673a\u5236\uff0c\u4f8b\u5982PHP\u3001JSP\u7b49\u52a8\u6001\u7f51\u9875\u6280\u672f")),(0,a.yg)("h3",{id:"cms\u8fd0\u8425"},"CMS+\u8fd0\u8425"),(0,a.yg)("p",null,"\u867d\u7136\u5b98\u7f51\u5347\u7ea7\u6539\u7248\u5f88\u4e0d\u9891\u7e41\uff0c\u4f46\u662f\u5bf9CMS\u8fd8\u662f\u6709\u9700\u6c42\u7684\uff0c\u4e3b\u8981\u4f53\u73b0\u5728\u8f6e\u64ad\u56fe\u7684\u66f4\u6362\uff0c\u6216\u8005\u8bf4\u660e\u6587\u6863\u7684\u65b0\u589e\u4fee\u6539\u7b49\uff0c\n\u6709\u65f6\u5019\u5b98\u7f51\u4e0a\u4e5f\u4f1a\u6709\u4e00\u4e9b\u8fd0\u8425\u6d3b\u52a8\u9875\u9762\uff1b"),(0,a.yg)("p",null,"\u6240\u4ee5\u6280\u672f\u9009\u578b\u4e0a\u4ed6\u662f\u9700\u8981\u540e\u7aef\u7684\uff0c\u5927\u6982\u7387\u4f1a\u5305\u62ecAPI\u3001\u6570\u636e\u5e93\u3001\u7f13\u5b58\u670d\u52a1\u7b49\uff1b"),(0,a.yg)("h3",{id:"\u6700\u7ec8"},"\u6700\u7ec8"),(0,a.yg)("p",null,"\u5907\u9009\u5217\u8868\u4e3a\uff1a"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u65b9\u68481\uff1aBootstrap + Java + Springboot + SpringMVC + MyBatis + MySQL"),(0,a.yg)("li",{parentName:"ul"},"\u65b9\u68482\uff1aBootstrap + midway.js + MySQL")),(0,a.yg)("p",null,"\u65b9\u68481\u662f\u524d\u540e\u7aef\u7684\u6280\u672f\u6808\u5206\u79bb\uff1b\u65b9\u68482\u662f\u524d\u540e\u7aef\u7684\u6280\u672f\u6808\u4e0d\u5206\u79bb\uff0c\u4f7f\u7528\u7684\u662f\u524d\u7aef\u6280\u672f\u6808JS\uff1b"),(0,a.yg)("p",null,"\u5982\u679c\u524d\u7aef\u56e2\u961f\u76f8\u5bf9\u5f3a\u52bf\u7684\u8bdd\uff0c\u53ef\u4ee5\u9009\u62e9 ",(0,a.yg)("strong",{parentName:"p"},(0,a.yg)("em",{parentName:"strong"},"\u65b9\u68481"))," \u5426\u5219\uff0c\u76f4\u63a5\u9009\u62e9",(0,a.yg)("strong",{parentName:"p"},(0,a.yg)("em",{parentName:"strong"},"\u65b9\u68482"))),(0,a.yg)("p",null,"\u8bf4\u660e\u6587\u6863\u5355\u72ec\u8bf4\uff0c\u63a8\u8350",(0,a.yg)("strong",{parentName:"p"},(0,a.yg)("em",{parentName:"strong"},"docusaurus"))),(0,a.yg)("h4",{id:"\u5173\u4e8e\u65b9\u68482\u7684\u540e\u7aefjs\u7684\u6280\u672f\u9009\u578b"},"\u5173\u4e8e\u65b9\u68482\u7684\u540e\u7aefJS\u7684\u6280\u672f\u9009\u578b"),(0,a.yg)("p",null,"koa.js >> egg.js >> midway.js \u8fd9\u4e48\u4e2a\u6280\u672f\u6f14\u8fdb\u548c\u5c01\u88c5\u5173\u7cfb\uff1b"),(0,a.yg)("p",null,"express.js >> nest.js \u8fd9\u4e48\u4e2a\u6280\u672f\u6f14\u8fdb\u548c\u5c01\u88c5\u5173\u7cfb\uff1b"),(0,a.yg)("p",null,"Koa.js \u662f Express.js \u539f\u73ed\u4eba\u9a6c\u7528\u65b0\u7406\u5ff5\u91cd\u65b0\u521b\u4f5c\u7684\u6846\u67b6\uff1b\n\u800c Express.js \u56e0\u4e3a\u4ea7\u751f\u5386\u53f2\u65e9\uff0c\u800c\u6709\u66f4\u597d\u7684\u751f\u6001\u57fa\u7840\uff0c\u5468\u8fb9\u7684\u63d2\u4ef6\u3001\u4e2d\u95f4\u4ef6\u4ec0\u4e48\u7684\u53ef\u80fd\u66f4\u4e30\u5bcc\uff1b"),(0,a.yg)("p",null,"Midway.js \u80cc\u540e\u662f\u963f\u91cc\u7684\u56e2\u961f\uff0c\u800c Nest.js \u80cc\u540e\u662f\u56fd\u5916\u7684 Trilon \u56e2\u961f\u3002"))}g.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[568],{5680:(e,n,t)=>{t.d(n,{xA:()=>u,yg:()=>d});var r=t(6540);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function o(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function l(e){for(var n=1;n=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var p=r.createContext({}),s=function(e){var n=r.useContext(p),t=n;return e&&(t="function"==typeof e?e(n):l(l({},n),e)),t},u=function(e){var n=s(e.components);return r.createElement(p.Provider,{value:n},e.children)},c="mdxType",g={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},y=r.forwardRef((function(e,n){var t=e.components,a=e.mdxType,o=e.originalType,p=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),c=s(t),y=a,d=c["".concat(p,".").concat(y)]||c[y]||g[y]||o;return t?r.createElement(d,l(l({ref:n},u),{},{components:t})):r.createElement(d,l({ref:n},u))}));function d(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var o=t.length,l=new Array(o);l[0]=y;var i={};for(var p in n)hasOwnProperty.call(n,p)&&(i[p]=n[p]);i.originalType=e,i[c]="string"==typeof e?e:a,l[1]=i;for(var s=2;s{t.r(n),t.d(n,{assets:()=>p,contentTitle:()=>l,default:()=>g,frontMatter:()=>o,metadata:()=>i,toc:()=>s});var r=t(8168),a=(t(6540),t(5680));const o={sidebar_position:2},l="\u5b98\u7f51",i={unversionedId:"xuanxing/fe/\u5b98\u7f51",id:"xuanxing/fe/\u5b98\u7f51",title:"\u5b98\u7f51",description:"\u5b98\u7f51\u6bd4\u8f83\u504f\u7eaf\u5c55\u793a\uff0c\u5bf9SEO\u6709\u8981\u6c42\uff0c\u5bf9CMS\u6709\u8981\u6c42\uff0c\u5bf9\u90e8\u5206\u8fd0\u8425\u6709\u9700\u6c42\uff1b",source:"@site/docs/xuanxing/fe/2-\u5b98\u7f51.md",sourceDirName:"xuanxing/fe",slug:"/xuanxing/fe/\u5b98\u7f51",permalink:"/docs/xuanxing/fe/\u5b98\u7f51",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"xuanxingSidebar",previous:{title:"\u6982\u8ff0",permalink:"/docs/xuanxing/fe/"},next:{title:"\u7528\u6237\u7aef+\u7ba1\u7406\u7aef",permalink:"/docs/xuanxing/fe/\u7528\u6237\u7aef\u7ba1\u7406\u7aef"}},p={},s=[{value:"\u9759\u6001\u9875\u9762\u5c55\u793a",id:"\u9759\u6001\u9875\u9762\u5c55\u793a",level:3},{value:"SEO",id:"seo",level:3},{value:"CMS+\u8fd0\u8425",id:"cms\u8fd0\u8425",level:3},{value:"\u6700\u7ec8",id:"\u6700\u7ec8",level:3},{value:"\u5173\u4e8e\u65b9\u68482\u7684\u540e\u7aefJS\u7684\u6280\u672f\u9009\u578b",id:"\u5173\u4e8e\u65b9\u68482\u7684\u540e\u7aefjs\u7684\u6280\u672f\u9009\u578b",level:4}],u={toc:s},c="wrapper";function g(e){let{components:n,...t}=e;return(0,a.yg)(c,(0,r.A)({},u,t,{components:n,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"\u5b98\u7f51"},"\u5b98\u7f51"),(0,a.yg)("p",null,"\u5b98\u7f51\u6bd4\u8f83\u504f\u7eaf\u5c55\u793a\uff0c\u5bf9SEO\u6709\u8981\u6c42\uff0c\u5bf9CMS\u6709\u8981\u6c42\uff0c\u5bf9\u90e8\u5206\u8fd0\u8425\u6709\u9700\u6c42\uff1b"),(0,a.yg)("h3",{id:"\u9759\u6001\u9875\u9762\u5c55\u793a"},"\u9759\u6001\u9875\u9762\u5c55\u793a"),(0,a.yg)("p",null,"\u5b98\u7f51\u5176\u5b9e\u9664\u4e86\u5927\u6539\u7248\u7684\u65f6\u5019\uff0c\u57fa\u672c\u4e0a60%\u7684\u9875\u9762\u90fd\u662f\u5e38\u5e74\u4e0d\u52a8\u7684\u3002\u800c\u4e14\u90fd\u662f\u4e00\u4e9b\u6587\u6848\u548c\u56fe\u7247\u3002\n\u8fd9\u4e2a\u7279\u70b9\u7b2c\u4e00\u4e2a\u53ef\u4ee5\u60f3\u5230\u7684\u6280\u672f\u9009\u578b\u5c31\u662f ",(0,a.yg)("strong",{parentName:"p"},(0,a.yg)("em",{parentName:"strong"},"Bootstrap")),"\uff1b"),(0,a.yg)("h3",{id:"seo"},"SEO"),(0,a.yg)("p",null,"\u5b98\u7f51\u80af\u5b9a\u5bf9SEO\u6709\u5f3a\u9700\u6c42\uff0c\u8bf4\u4ee5\uff0c\u6280\u672f\u9009\u578b\u662f\u5305\u62ec\uff1a"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"SSR"),(0,a.yg)("li",{parentName:"ul"},"\u524d\u540e\u7aef\u4e0d\u5206\u79bb\u7684\u673a\u5236\uff0c\u4f8b\u5982PHP\u3001JSP\u7b49\u52a8\u6001\u7f51\u9875\u6280\u672f")),(0,a.yg)("h3",{id:"cms\u8fd0\u8425"},"CMS+\u8fd0\u8425"),(0,a.yg)("p",null,"\u867d\u7136\u5b98\u7f51\u5347\u7ea7\u6539\u7248\u5f88\u4e0d\u9891\u7e41\uff0c\u4f46\u662f\u5bf9CMS\u8fd8\u662f\u6709\u9700\u6c42\u7684\uff0c\u4e3b\u8981\u4f53\u73b0\u5728\u8f6e\u64ad\u56fe\u7684\u66f4\u6362\uff0c\u6216\u8005\u8bf4\u660e\u6587\u6863\u7684\u65b0\u589e\u4fee\u6539\u7b49\uff0c\n\u6709\u65f6\u5019\u5b98\u7f51\u4e0a\u4e5f\u4f1a\u6709\u4e00\u4e9b\u8fd0\u8425\u6d3b\u52a8\u9875\u9762\uff1b"),(0,a.yg)("p",null,"\u6240\u4ee5\u6280\u672f\u9009\u578b\u4e0a\u4ed6\u662f\u9700\u8981\u540e\u7aef\u7684\uff0c\u5927\u6982\u7387\u4f1a\u5305\u62ecAPI\u3001\u6570\u636e\u5e93\u3001\u7f13\u5b58\u670d\u52a1\u7b49\uff1b"),(0,a.yg)("h3",{id:"\u6700\u7ec8"},"\u6700\u7ec8"),(0,a.yg)("p",null,"\u5907\u9009\u5217\u8868\u4e3a\uff1a"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u65b9\u68481\uff1aBootstrap + Java + Springboot + SpringMVC + MyBatis + MySQL"),(0,a.yg)("li",{parentName:"ul"},"\u65b9\u68482\uff1aBootstrap + midway.js + MySQL")),(0,a.yg)("p",null,"\u65b9\u68481\u662f\u524d\u540e\u7aef\u7684\u6280\u672f\u6808\u5206\u79bb\uff1b\u65b9\u68482\u662f\u524d\u540e\u7aef\u7684\u6280\u672f\u6808\u4e0d\u5206\u79bb\uff0c\u4f7f\u7528\u7684\u662f\u524d\u7aef\u6280\u672f\u6808JS\uff1b"),(0,a.yg)("p",null,"\u5982\u679c\u524d\u7aef\u56e2\u961f\u76f8\u5bf9\u5f3a\u52bf\u7684\u8bdd\uff0c\u53ef\u4ee5\u9009\u62e9 ",(0,a.yg)("strong",{parentName:"p"},(0,a.yg)("em",{parentName:"strong"},"\u65b9\u68481"))," \u5426\u5219\uff0c\u76f4\u63a5\u9009\u62e9",(0,a.yg)("strong",{parentName:"p"},(0,a.yg)("em",{parentName:"strong"},"\u65b9\u68482"))),(0,a.yg)("p",null,"\u8bf4\u660e\u6587\u6863\u5355\u72ec\u8bf4\uff0c\u63a8\u8350",(0,a.yg)("strong",{parentName:"p"},(0,a.yg)("em",{parentName:"strong"},"docusaurus"))),(0,a.yg)("h4",{id:"\u5173\u4e8e\u65b9\u68482\u7684\u540e\u7aefjs\u7684\u6280\u672f\u9009\u578b"},"\u5173\u4e8e\u65b9\u68482\u7684\u540e\u7aefJS\u7684\u6280\u672f\u9009\u578b"),(0,a.yg)("p",null,"koa.js >> egg.js >> midway.js \u8fd9\u4e48\u4e2a\u6280\u672f\u6f14\u8fdb\u548c\u5c01\u88c5\u5173\u7cfb\uff1b"),(0,a.yg)("p",null,"express.js >> nest.js \u8fd9\u4e48\u4e2a\u6280\u672f\u6f14\u8fdb\u548c\u5c01\u88c5\u5173\u7cfb\uff1b"),(0,a.yg)("p",null,"Koa.js \u662f Express.js \u539f\u73ed\u4eba\u9a6c\u7528\u65b0\u7406\u5ff5\u91cd\u65b0\u521b\u4f5c\u7684\u6846\u67b6\uff1b\n\u800c Express.js \u56e0\u4e3a\u4ea7\u751f\u5386\u53f2\u65e9\uff0c\u800c\u6709\u66f4\u597d\u7684\u751f\u6001\u57fa\u7840\uff0c\u5468\u8fb9\u7684\u63d2\u4ef6\u3001\u4e2d\u95f4\u4ef6\u4ec0\u4e48\u7684\u53ef\u80fd\u66f4\u4e30\u5bcc\uff1b"),(0,a.yg)("p",null,"Midway.js \u80cc\u540e\u662f\u963f\u91cc\u7684\u56e2\u961f\uff0c\u800c Nest.js \u80cc\u540e\u662f\u56fd\u5916\u7684 Trilon \u56e2\u961f\u3002"))}g.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/f5515f41.9f14e268.js b/assets/js/f5515f41.dd6022e0.js similarity index 98% rename from assets/js/f5515f41.9f14e268.js rename to assets/js/f5515f41.dd6022e0.js index ff768c62f..4ab3f2594 100644 --- a/assets/js/f5515f41.9f14e268.js +++ b/assets/js/f5515f41.dd6022e0.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3034],{5680:(e,t,r)=>{r.d(t,{xA:()=>s,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),p=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},s=function(e){var t=p(e.components);return n.createElement(l.Provider,{value:t},e.children)},u="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,s=i(e,["components","mdxType","originalType","parentName"]),u=p(r),d=o,f=u["".concat(l,".").concat(d)]||u[d]||y[d]||a;return r?n.createElement(f,c(c({ref:t},s),{},{components:r})):n.createElement(f,c({ref:t},s))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=d;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[u]="string"==typeof e?e:o,c[1]=i;for(var p=2;p{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>c,default:()=>y,frontMatter:()=>a,metadata:()=>i,toc:()=>p});var n=r(8168),o=(r(6540),r(5680));const a={},c=void 0,i={unversionedId:"study/db/OLAP/Kylin",id:"study/db/OLAP/Kylin",title:"Kylin",description:"Apache Kylin\u2122\u662f\u4e00\u4e2a\u5f00\u6e90\u7684\u3001\u5206\u5e03\u5f0f\u7684\u5206\u6790\u578b\u6570\u636e\u4ed3\u5e93\uff0c\u63d0\u4f9bHadoop/Spark \u4e4b\u4e0a\u7684 SQL \u67e5\u8be2\u63a5\u53e3\u53ca\u591a\u7ef4\u5206\u6790\uff08OLAP\uff09\u80fd\u529b\u4ee5\u652f\u6301\u8d85\u5927\u89c4\u6a21\u6570\u636e\uff0c\u6700\u521d\u7531 eBay \u5f00\u53d1\u5e76\u8d21\u732e\u81f3\u5f00\u6e90\u793e\u533a\u3002\u5b83\u80fd\u5728\u4e9a\u79d2\u5185\u67e5\u8be2\u5de8\u5927\u7684\u8868\u3002",source:"@site/docs/study/db/OLAP/Kylin.md",sourceDirName:"study/db/OLAP",slug:"/study/db/OLAP/Kylin",permalink:"/docs/study/db/OLAP/Kylin",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"ClickHouse",permalink:"/docs/study/db/OLAP/ClickHouse"},next:{title:"StarRocks",permalink:"/docs/study/db/OLAP/StarRocks"}},l={},p=[],s={toc:p},u="wrapper";function y(e){let{components:t,...r}=e;return(0,o.yg)(u,(0,n.A)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("p",null,"Apache Kylin\u2122\u662f\u4e00\u4e2a\u5f00\u6e90\u7684\u3001\u5206\u5e03\u5f0f\u7684\u5206\u6790\u578b\u6570\u636e\u4ed3\u5e93\uff0c\u63d0\u4f9bHadoop/Spark \u4e4b\u4e0a\u7684 SQL \u67e5\u8be2\u63a5\u53e3\u53ca\u591a\u7ef4\u5206\u6790\uff08OLAP\uff09\u80fd\u529b\u4ee5\u652f\u6301\u8d85\u5927\u89c4\u6a21\u6570\u636e\uff0c\u6700\u521d\u7531 eBay \u5f00\u53d1\u5e76\u8d21\u732e\u81f3\u5f00\u6e90\u793e\u533a\u3002\u5b83\u80fd\u5728\u4e9a\u79d2\u5185\u67e5\u8be2\u5de8\u5927\u7684\u8868\u3002"),(0,o.yg)("p",null,(0,o.yg)("a",{parentName:"p",href:"https://kylin.apache.org/cn/"},"\u5b98\u7f51")))}y.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[3034],{5680:(e,t,r)=>{r.d(t,{xA:()=>s,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),p=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):c(c({},t),e)),r},s=function(e){var t=p(e.components);return n.createElement(l.Provider,{value:t},e.children)},u="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,s=i(e,["components","mdxType","originalType","parentName"]),u=p(r),d=o,f=u["".concat(l,".").concat(d)]||u[d]||y[d]||a;return r?n.createElement(f,c(c({ref:t},s),{},{components:r})):n.createElement(f,c({ref:t},s))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,c=new Array(a);c[0]=d;var i={};for(var l in t)hasOwnProperty.call(t,l)&&(i[l]=t[l]);i.originalType=e,i[u]="string"==typeof e?e:o,c[1]=i;for(var p=2;p{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>c,default:()=>y,frontMatter:()=>a,metadata:()=>i,toc:()=>p});var n=r(8168),o=(r(6540),r(5680));const a={},c=void 0,i={unversionedId:"study/db/OLAP/Kylin",id:"study/db/OLAP/Kylin",title:"Kylin",description:"Apache Kylin\u2122\u662f\u4e00\u4e2a\u5f00\u6e90\u7684\u3001\u5206\u5e03\u5f0f\u7684\u5206\u6790\u578b\u6570\u636e\u4ed3\u5e93\uff0c\u63d0\u4f9bHadoop/Spark \u4e4b\u4e0a\u7684 SQL \u67e5\u8be2\u63a5\u53e3\u53ca\u591a\u7ef4\u5206\u6790\uff08OLAP\uff09\u80fd\u529b\u4ee5\u652f\u6301\u8d85\u5927\u89c4\u6a21\u6570\u636e\uff0c\u6700\u521d\u7531 eBay \u5f00\u53d1\u5e76\u8d21\u732e\u81f3\u5f00\u6e90\u793e\u533a\u3002\u5b83\u80fd\u5728\u4e9a\u79d2\u5185\u67e5\u8be2\u5de8\u5927\u7684\u8868\u3002",source:"@site/docs/study/db/OLAP/Kylin.md",sourceDirName:"study/db/OLAP",slug:"/study/db/OLAP/Kylin",permalink:"/docs/study/db/OLAP/Kylin",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"ClickHouse",permalink:"/docs/study/db/OLAP/ClickHouse"},next:{title:"StarRocks",permalink:"/docs/study/db/OLAP/StarRocks"}},l={},p=[],s={toc:p},u="wrapper";function y(e){let{components:t,...r}=e;return(0,o.yg)(u,(0,n.A)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("p",null,"Apache Kylin\u2122\u662f\u4e00\u4e2a\u5f00\u6e90\u7684\u3001\u5206\u5e03\u5f0f\u7684\u5206\u6790\u578b\u6570\u636e\u4ed3\u5e93\uff0c\u63d0\u4f9bHadoop/Spark \u4e4b\u4e0a\u7684 SQL \u67e5\u8be2\u63a5\u53e3\u53ca\u591a\u7ef4\u5206\u6790\uff08OLAP\uff09\u80fd\u529b\u4ee5\u652f\u6301\u8d85\u5927\u89c4\u6a21\u6570\u636e\uff0c\u6700\u521d\u7531 eBay \u5f00\u53d1\u5e76\u8d21\u732e\u81f3\u5f00\u6e90\u793e\u533a\u3002\u5b83\u80fd\u5728\u4e9a\u79d2\u5185\u67e5\u8be2\u5de8\u5927\u7684\u8868\u3002"),(0,o.yg)("p",null,(0,o.yg)("a",{parentName:"p",href:"https://kylin.apache.org/cn/"},"\u5b98\u7f51")))}y.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/f6ece308.85f724ca.js b/assets/js/f6ece308.b6217eec.js similarity index 98% rename from assets/js/f6ece308.85f724ca.js rename to assets/js/f6ece308.b6217eec.js index 8eaf75577..6fe0fcf27 100644 --- a/assets/js/f6ece308.85f724ca.js +++ b/assets/js/f6ece308.b6217eec.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8391],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var c=n.createContext({}),s=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=s(e.components);return n.createElement(c.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,c=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),u=s(r),y=o,f=u["".concat(c,".").concat(y)]||u[y]||d[y]||a;return r?n.createElement(f,i(i({ref:t},p),{},{components:r})):n.createElement(f,i({ref:t},p))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=y;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[u]="string"==typeof e?e:o,i[1]=l;for(var s=2;s{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>l,toc:()=>s});var n=r(8168),o=(r(6540),r(5680));const a={sidebar_position:1},i=void 0,l={unversionedId:"study/db/OLAP/\u7efc\u5408\u6982\u8ff0",id:"study/db/OLAP/\u7efc\u5408\u6982\u8ff0",title:"\u7efc\u5408\u6982\u8ff0",description:"1. OLAP\u4e0eOLTP\u7684\u533a\u522b\uff1f",source:"@site/docs/study/db/OLAP/\u7efc\u5408\u6982\u8ff0.md",sourceDirName:"study/db/OLAP",slug:"/study/db/OLAP/\u7efc\u5408\u6982\u8ff0",permalink:"/docs/study/db/OLAP/\u7efc\u5408\u6982\u8ff0",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"studySidebar",previous:{title:"Redis",permalink:"/docs/study/db/NoSQL/Redis"},next:{title:"ClickHouse",permalink:"/docs/study/db/OLAP/ClickHouse"}},c={},s=[{value:"1. OLAP\u4e0eOLTP\u7684\u533a\u522b\uff1f",id:"1-olap\u4e0eoltp\u7684\u533a\u522b",level:4},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:4}],p={toc:s},u="wrapper";function d(e){let{components:t,...a}=e;return(0,o.yg)(u,(0,n.A)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h4",{id:"1-olap\u4e0eoltp\u7684\u533a\u522b"},"1. OLAP\u4e0eOLTP\u7684\u533a\u522b\uff1f"),(0,o.yg)("p",null,"OLTP(Online transaction processing):\u5728\u7ebf/\u8054\u673a\u4e8b\u52a1\u5904\u7406\u3002\u5178\u578b\u7684OLTP\u7c7b\u64cd\u4f5c\u90fd\u6bd4\u8f83\u7b80\u5355\uff0c\u4e3b\u8981\u662f\u5bf9\u6570\u636e\u5e93\u4e2d\u7684\u6570\u636e\u8fdb\u884c\u589e\u5220\u6539\u67e5\uff0c\u64cd\u4f5c\u4e3b\u4f53\u4e00\u822c\u662f\u4ea7\u54c1\u7684\u7528\u6237\u3002"),(0,o.yg)("p",null,"OLAP(Online analytical processing):\u6307\u8054\u673a\u5206\u6790\u5904\u7406\u3002\u901a\u8fc7\u5206\u6790\u6570\u636e\u5e93\u4e2d\u7684\u6570\u636e\u6765\u5f97\u51fa\u4e00\u4e9b\u7ed3\u8bba\u6027\u7684\u4e1c\u897f\u3002\u6bd4\u5982\u7ed9\u8001\u603b\u4eec\u770b\u7684\u62a5\u8868\uff0c\u7528\u4e8e\u8fdb\u884c\u5e02\u573a\u5f00\u62d3\u7684\u7528\u6237\u884c\u4e3a\u7edf\u8ba1\uff0c\u4e0d\u540c\u7ef4\u5ea6\u7684\u6c47\u603b\u5206\u6790\u7ed3\u679c\u7b49\u7b49\u3002\u64cd\u4f5c\u4e3b\u4f53\u4e00\u822c\u662f\u8fd0\u8425\u3001\u9500\u552e\u548c\u5e02\u573a\u7b49\u56e2\u961f\u4eba\u5458\u3002"),(0,o.yg)("p",null,"\u5355\u6b21OLTP\u5904\u7406\u7684\u6570\u636e\u91cf\u6bd4\u8f83\u5c0f\uff0c\u6240\u6d89\u53ca\u7684\u8868\u975e\u5e38\u6709\u9650\uff0c\u4e00\u822c\u4ec5\u4e00\u4e24\u5f20\u8868\u3002\u800cOLAP\u662f\u4e3a\u4e86\u4ece\u5927\u91cf\u7684\u6570\u636e\u4e2d\u627e\u51fa\u67d0\u79cd\u89c4\u5f8b\u6027\u7684\u4e1c\u897f\uff0c\u7ecf\u5e38\u7528\u5230count()\u3001sum()\u548cavg()\u7b49\u805a\u5408\u65b9\u6cd5\uff0c\u7528\u4e8e\u4e86\u89e3\u73b0\u72b6\u5e76\u4e3a\u5c06\u6765\u7684\u8ba1\u5212/\u51b3\u7b56\u63d0\u4f9b\u6570\u636e\u652f\u6491\uff0c\u6240\u4ee5\u5bf9\u591a\u5f20\u8868\u7684\u6570\u636e\u8fdb\u884c\u8fde\u63a5\u6c47\u603b\u975e\u5e38\u666e\u904d\u3002"),(0,o.yg)("p",null,"\u4e3a\u4e86\u8868\u793a\u8ddfOLTP\u7684\u6570\u636e\u5e93\uff08database\uff09\u5728\u6570\u636e\u91cf\u548c\u590d\u6742\u5ea6\u4e0a\u7684\u4e0d\u540c\uff0c\u4e00\u822c\u79f0OLAP\u7684\u64cd\u4f5c\u5bf9\u8c61\u4e3a\u6570\u636e\u4ed3\u5e93\uff08data warehouse\uff09\uff0c\u7b80\u79f0\u6570\u4ed3\u3002\u6570\u636e\u5e93\u4ed3\u5e93\u4e2d\u7684\u6570\u636e\uff0c\u5f80\u5f80\u6765\u6e90\u4e8e\u591a\u4e2a\u6570\u636e\u5e93\uff0c\u4ee5\u53ca\u76f8\u5e94\u7684\u4e1a\u52a1\u65e5\u5fd7\u3002"),(0,o.yg)("p",null,(0,o.yg)("img",{alt:"image.png",src:r(5978).A,width:"720",height:"504"})),(0,o.yg)("h4",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,o.yg)("ol",null,(0,o.yg)("li",{parentName:"ol"},(0,o.yg)("a",{parentName:"li",href:"https://blog.csdn.net/weixin_44087159/article/details/124477313"},"OLAP\u4e0eOLTP\u7684\u533a\u522b"))))}d.isMDXComponent=!0},5978:(e,t,r)=>{r.d(t,{A:()=>n});const n=r.p+"assets/images/image-9929ccd934ed6146e051f490f500d91a.png"}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[8391],{5680:(e,t,r)=>{r.d(t,{xA:()=>p,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var c=n.createContext({}),s=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=s(e.components);return n.createElement(c.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,c=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),u=s(r),y=o,f=u["".concat(c,".").concat(y)]||u[y]||d[y]||a;return r?n.createElement(f,i(i({ref:t},p),{},{components:r})):n.createElement(f,i({ref:t},p))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,i=new Array(a);i[0]=y;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[u]="string"==typeof e?e:o,i[1]=l;for(var s=2;s{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>l,toc:()=>s});var n=r(8168),o=(r(6540),r(5680));const a={sidebar_position:1},i=void 0,l={unversionedId:"study/db/OLAP/\u7efc\u5408\u6982\u8ff0",id:"study/db/OLAP/\u7efc\u5408\u6982\u8ff0",title:"\u7efc\u5408\u6982\u8ff0",description:"1. OLAP\u4e0eOLTP\u7684\u533a\u522b\uff1f",source:"@site/docs/study/db/OLAP/\u7efc\u5408\u6982\u8ff0.md",sourceDirName:"study/db/OLAP",slug:"/study/db/OLAP/\u7efc\u5408\u6982\u8ff0",permalink:"/docs/study/db/OLAP/\u7efc\u5408\u6982\u8ff0",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"studySidebar",previous:{title:"Redis",permalink:"/docs/study/db/NoSQL/Redis"},next:{title:"ClickHouse",permalink:"/docs/study/db/OLAP/ClickHouse"}},c={},s=[{value:"1. OLAP\u4e0eOLTP\u7684\u533a\u522b\uff1f",id:"1-olap\u4e0eoltp\u7684\u533a\u522b",level:4},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:4}],p={toc:s},u="wrapper";function d(e){let{components:t,...a}=e;return(0,o.yg)(u,(0,n.A)({},p,a,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h4",{id:"1-olap\u4e0eoltp\u7684\u533a\u522b"},"1. OLAP\u4e0eOLTP\u7684\u533a\u522b\uff1f"),(0,o.yg)("p",null,"OLTP(Online transaction processing):\u5728\u7ebf/\u8054\u673a\u4e8b\u52a1\u5904\u7406\u3002\u5178\u578b\u7684OLTP\u7c7b\u64cd\u4f5c\u90fd\u6bd4\u8f83\u7b80\u5355\uff0c\u4e3b\u8981\u662f\u5bf9\u6570\u636e\u5e93\u4e2d\u7684\u6570\u636e\u8fdb\u884c\u589e\u5220\u6539\u67e5\uff0c\u64cd\u4f5c\u4e3b\u4f53\u4e00\u822c\u662f\u4ea7\u54c1\u7684\u7528\u6237\u3002"),(0,o.yg)("p",null,"OLAP(Online analytical processing):\u6307\u8054\u673a\u5206\u6790\u5904\u7406\u3002\u901a\u8fc7\u5206\u6790\u6570\u636e\u5e93\u4e2d\u7684\u6570\u636e\u6765\u5f97\u51fa\u4e00\u4e9b\u7ed3\u8bba\u6027\u7684\u4e1c\u897f\u3002\u6bd4\u5982\u7ed9\u8001\u603b\u4eec\u770b\u7684\u62a5\u8868\uff0c\u7528\u4e8e\u8fdb\u884c\u5e02\u573a\u5f00\u62d3\u7684\u7528\u6237\u884c\u4e3a\u7edf\u8ba1\uff0c\u4e0d\u540c\u7ef4\u5ea6\u7684\u6c47\u603b\u5206\u6790\u7ed3\u679c\u7b49\u7b49\u3002\u64cd\u4f5c\u4e3b\u4f53\u4e00\u822c\u662f\u8fd0\u8425\u3001\u9500\u552e\u548c\u5e02\u573a\u7b49\u56e2\u961f\u4eba\u5458\u3002"),(0,o.yg)("p",null,"\u5355\u6b21OLTP\u5904\u7406\u7684\u6570\u636e\u91cf\u6bd4\u8f83\u5c0f\uff0c\u6240\u6d89\u53ca\u7684\u8868\u975e\u5e38\u6709\u9650\uff0c\u4e00\u822c\u4ec5\u4e00\u4e24\u5f20\u8868\u3002\u800cOLAP\u662f\u4e3a\u4e86\u4ece\u5927\u91cf\u7684\u6570\u636e\u4e2d\u627e\u51fa\u67d0\u79cd\u89c4\u5f8b\u6027\u7684\u4e1c\u897f\uff0c\u7ecf\u5e38\u7528\u5230count()\u3001sum()\u548cavg()\u7b49\u805a\u5408\u65b9\u6cd5\uff0c\u7528\u4e8e\u4e86\u89e3\u73b0\u72b6\u5e76\u4e3a\u5c06\u6765\u7684\u8ba1\u5212/\u51b3\u7b56\u63d0\u4f9b\u6570\u636e\u652f\u6491\uff0c\u6240\u4ee5\u5bf9\u591a\u5f20\u8868\u7684\u6570\u636e\u8fdb\u884c\u8fde\u63a5\u6c47\u603b\u975e\u5e38\u666e\u904d\u3002"),(0,o.yg)("p",null,"\u4e3a\u4e86\u8868\u793a\u8ddfOLTP\u7684\u6570\u636e\u5e93\uff08database\uff09\u5728\u6570\u636e\u91cf\u548c\u590d\u6742\u5ea6\u4e0a\u7684\u4e0d\u540c\uff0c\u4e00\u822c\u79f0OLAP\u7684\u64cd\u4f5c\u5bf9\u8c61\u4e3a\u6570\u636e\u4ed3\u5e93\uff08data warehouse\uff09\uff0c\u7b80\u79f0\u6570\u4ed3\u3002\u6570\u636e\u5e93\u4ed3\u5e93\u4e2d\u7684\u6570\u636e\uff0c\u5f80\u5f80\u6765\u6e90\u4e8e\u591a\u4e2a\u6570\u636e\u5e93\uff0c\u4ee5\u53ca\u76f8\u5e94\u7684\u4e1a\u52a1\u65e5\u5fd7\u3002"),(0,o.yg)("p",null,(0,o.yg)("img",{alt:"image.png",src:r(5978).A,width:"720",height:"504"})),(0,o.yg)("h4",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,o.yg)("ol",null,(0,o.yg)("li",{parentName:"ol"},(0,o.yg)("a",{parentName:"li",href:"https://blog.csdn.net/weixin_44087159/article/details/124477313"},"OLAP\u4e0eOLTP\u7684\u533a\u522b"))))}d.isMDXComponent=!0},5978:(e,t,r)=>{r.d(t,{A:()=>n});const n=r.p+"assets/images/image-9929ccd934ed6146e051f490f500d91a.png"}}]); \ No newline at end of file diff --git a/assets/js/f7453080.e3ce0ebb.js b/assets/js/f7453080.ff4d0460.js similarity index 99% rename from assets/js/f7453080.e3ce0ebb.js rename to assets/js/f7453080.ff4d0460.js index f6a1b2ad5..5ea944870 100644 --- a/assets/js/f7453080.e3ce0ebb.js +++ b/assets/js/f7453080.ff4d0460.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9314],{5680:(e,n,t)=>{t.d(n,{xA:()=>g,yg:()=>m});var r=t(6540);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function l(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function o(e){for(var n=1;n=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var s=r.createContext({}),p=function(e){var n=r.useContext(s),t=n;return e&&(t="function"==typeof e?e(n):o(o({},n),e)),t},g=function(e){var n=p(e.components);return r.createElement(s.Provider,{value:n},e.children)},u="mdxType",c={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},d=r.forwardRef((function(e,n){var t=e.components,a=e.mdxType,l=e.originalType,s=e.parentName,g=i(e,["components","mdxType","originalType","parentName"]),u=p(t),d=a,m=u["".concat(s,".").concat(d)]||u[d]||c[d]||l;return t?r.createElement(m,o(o({ref:n},g),{},{components:t})):r.createElement(m,o({ref:n},g))}));function m(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var l=t.length,o=new Array(l);o[0]=d;var i={};for(var s in n)hasOwnProperty.call(n,s)&&(i[s]=n[s]);i.originalType=e,i[u]="string"==typeof e?e:a,o[1]=i;for(var p=2;p{t.r(n),t.d(n,{assets:()=>s,contentTitle:()=>o,default:()=>c,frontMatter:()=>l,metadata:()=>i,toc:()=>p});var r=t(8168),a=(t(6540),t(5680));const l={sidebar_position:1},o="\u7efc\u8ff0",i={unversionedId:"xuanxing/thingsboard/index",id:"xuanxing/thingsboard/index",title:"\u7efc\u8ff0",description:"thingsboard \u5e94\u8be5\u7b97\u662f\u9876\u7ea7\u7684\u5f00\u6e90\u7269\u8054\u7f51\u4e91\u5e73\u53f0\u4e86\u3002\u4f46\u662f\uff0c\u7ecf\u6211\u7814\u7a76\uff0c\u4e0d\u662f\u5f88\u9002\u5408\u56fd\u5185\u7528\u6237\u3002\u4f46\u662f\u5374\u6709\u5f88\u591a\u5b66\u4e60\u548c\u501f\u9274\u7684\u5730\u65b9\uff0c\u4f8b\u5982\u89c4\u5219\u5f15\u64ce\u3002",source:"@site/docs/xuanxing/thingsboard/index.md",sourceDirName:"xuanxing/thingsboard",slug:"/xuanxing/thingsboard/",permalink:"/docs/xuanxing/thingsboard/",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"xuanxingSidebar",previous:{title:"\u6982\u8ff0",permalink:"/docs/xuanxing/devops/"},next:{title:"\u5982\u4f55\u4f7f\u7528",permalink:"/docs/xuanxing/thingsboard/\u5982\u4f55\u4f7f\u7528"}},s={},p=[{value:"\u73af\u5883\u8981\u6c42",id:"\u73af\u5883\u8981\u6c42",level:3},{value:"Maven \u7248\u672c",id:"maven-\u7248\u672c",level:3},{value:"\u5b89\u88c5 postgres",id:"\u5b89\u88c5-postgres",level:3},{value:"\u521b\u5efa\u6570\u636e\u5e93",id:"\u521b\u5efa\u6570\u636e\u5e93",level:3},{value:"\u6267\u884c mvn package \u6253\u5305\u5e76\u521d\u59cb\u5316\u6570\u636e\u5e93",id:"\u6267\u884c-mvn-package-\u6253\u5305\u5e76\u521d\u59cb\u5316\u6570\u636e\u5e93",level:3},{value:"IDEA \u8fd0\u884c",id:"idea-\u8fd0\u884c",level:3}],g={toc:p},u="wrapper";function c(e){let{components:n,...t}=e;return(0,a.yg)(u,(0,r.A)({},g,t,{components:n,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"\u7efc\u8ff0"},"\u7efc\u8ff0"),(0,a.yg)("p",null,"thingsboard \u5e94\u8be5\u7b97\u662f\u9876\u7ea7\u7684\u5f00\u6e90\u7269\u8054\u7f51\u4e91\u5e73\u53f0\u4e86\u3002\u4f46\u662f\uff0c\u7ecf\u6211\u7814\u7a76\uff0c\u4e0d\u662f\u5f88\u9002\u5408\u56fd\u5185\u7528\u6237\u3002\u4f46\u662f\u5374\u6709\u5f88\u591a\u5b66\u4e60\u548c\u501f\u9274\u7684\u5730\u65b9\uff0c\u4f8b\u5982\u89c4\u5219\u5f15\u64ce\u3002"),(0,a.yg)("h3",{id:"\u73af\u5883\u8981\u6c42"},"\u73af\u5883\u8981\u6c42"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"JDK 11"),(0,a.yg)("li",{parentName:"ul"},"Maven 3.6.0+")),(0,a.yg)("h3",{id:"maven-\u7248\u672c"},"Maven \u7248\u672c"),(0,a.yg)("p",null,"\u6709\u95ee\u9898\uff0c\u81f3\u5c11\u5f97\u662f 3.6.0\uff0c\u5b98\u7f51\u6587\u6863\u6709\u8bef\uff1b"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},"[ERROR] Failed to execute goal com.github.eirslett:frontend-maven-plugin:1.12.0:install-node-and-yarn (install node and npm) on project ui-ngx: The plugin com.github.eirslett:frontend-maven-plugin:1.12.0 requires Maven version 3.6.0 -> [Help 1]\n")),(0,a.yg)("h3",{id:"\u5b89\u88c5-postgres"},"\u5b89\u88c5 postgres"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},"#\ndocker pull postgres:11.19-bullseye\n#\ndocker run \\\n--privileged=true \\\n--restart=always \\\n--name postgres \\\n-e POSTGRES_PASSWORD=Aa0123 \\\n-p 5432:5432 \\\n-v /mnt/docker/postgresql/data:/var/lib/postgresql/data \\\n-d postgres:11.19-bullseye\n# \u53d1\u73b0\u4f7f\u7528DBeaver\u8fde\u63a5\u4e0d\u4e0a\uff0c\u9700\u8981\u4fee\u6539/mnt/docker/postgresql/data/pg_hba.conf\n# \u589e\u52a0\u4e00\u884chost all all 192.168.41.69/32 trust\n# 192.168.41.69\u662f\u6211\u81ea\u5df1\u7684ip\n\n")),(0,a.yg)("h1",{id:"\u6267\u884c-mvn-compile-\u62a5\u9519"},"\u6267\u884c mvn compile \u62a5\u9519"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},"[ERROR] Failed to execute goal org.apache.maven.plugins:maven-dependency-plugin:2.8:unpack (extract-web-ui) on project web-ui: Artifact has not been packaged yet. When used on reactor artifact, unpack should be executed after packaging: see MDEP-98. -> [Help 1]\n")),(0,a.yg)("p",null,"\u78b0\u5230\u8fd9\u4e2a\u9519\u8bef\uff0c\u662f\u56e0\u4e3a ui-ngx \u6ca1\u6709 install\uff0cinstall \u4e00\u4e0b\u5373\u53ef"),(0,a.yg)("h3",{id:"\u521b\u5efa\u6570\u636e\u5e93"},"\u521b\u5efa\u6570\u636e\u5e93"),(0,a.yg)("p",null,"\u4f7f\u7528 DBeaver \u8fde\u63a5\u6570\u636e\u5e93 postgresql\uff0c\u5e76\u521b\u5efa\u6570\u636e\u5e93",(0,a.yg)("strong",{parentName:"p"},"thingsboard")),(0,a.yg)("p",null,"\u4fee\u6539",(0,a.yg)("strong",{parentName:"p"},"thingsboard/application/src/main/resources/thingsboard.yml"),"\u6587\u4ef6\u4e2d\u7684\u6570\u636e\u5e93\u914d\u7f6e\uff0c"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-yml"},'url: "${SPRING_DATASOURCE_URL:jdbc:postgresql://192.168.0.40:5432/thingsboard}"\npassword: "${SPRING_DATASOURCE_PASSWORD:Aa0123}"\n')),(0,a.yg)("h3",{id:"\u6267\u884c-mvn-package-\u6253\u5305\u5e76\u521d\u59cb\u5316\u6570\u636e\u5e93"},"\u6267\u884c mvn package \u6253\u5305\u5e76\u521d\u59cb\u5316\u6570\u636e\u5e93"),(0,a.yg)("p",null,"mvn package \u547d\u4ee4\u76f4\u63a5\u6210\u529f\u3002"),(0,a.yg)("p",null,"\u7136\u540e\u6267\u884c",(0,a.yg)("strong",{parentName:"p"},"application/target/bin/install/install_dev_db.sh"),"\u6b64\u811a\u672c\uff0c\u4e5f\u6210\u529f\u4e86"),(0,a.yg)("h3",{id:"idea-\u8fd0\u884c"},"IDEA \u8fd0\u884c"),(0,a.yg)("p",null,"\u6267\u884c",(0,a.yg)("strong",{parentName:"p"},"application/src/main/java/org/thingsboard/server/ThingsboardServerApplication.java")," debug \u6b64\u6587\u4ef6\uff0c\n\u5982\u679c\u5b58\u5728 JDK \u7248\u672c\u95ee\u9898\uff0c\u628a\u6240\u6709 JDK \u7684\u914d\u7f6e\u5207\u6362\u6210 JDK11."),(0,a.yg)("p",null,"\u7b49\u7a0b\u5e8f\u8dd1\u8d77\u6765\u6210\u529f\u540e\uff0c\u65b9\u4f4d",(0,a.yg)("strong",{parentName:"p"},"http://localhost:8080"),"\u5373\u53ef\u3002\u53ef\u4ee5\u4f7f\u7528\u4ee5\u4e0b\u4e09\u79cd\u7c7b\u578b\u7684\u8d26\u53f7\u767b\u5f55\uff1a"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u7cfb\u7edf \u7ba1\u7406\u5458: ",(0,a.yg)("a",{parentName:"li",href:"mailto:sysadmin@thingsboard.org"},"sysadmin@thingsboard.org")," / sysadmin"),(0,a.yg)("li",{parentName:"ul"},"\u79df\u6237 \u8d26\u53f7: ",(0,a.yg)("a",{parentName:"li",href:"mailto:tenant@thingsboard.org"},"tenant@thingsboard.org")," / tenant"),(0,a.yg)("li",{parentName:"ul"},"\u5ba2\u6237 \u8d26\u53f7: ",(0,a.yg)("a",{parentName:"li",href:"mailto:customer@thingsboard.org"},"customer@thingsboard.org")," / customer")),(0,a.yg)("p",null,"\u81f3\u6b64\uff0cThingsBoard \u5728\u672c\u5730\u6210\u529f\u8fd0\u884c\u3002"))}c.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[9314],{5680:(e,n,t)=>{t.d(n,{xA:()=>g,yg:()=>m});var r=t(6540);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function l(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function o(e){for(var n=1;n=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var s=r.createContext({}),p=function(e){var n=r.useContext(s),t=n;return e&&(t="function"==typeof e?e(n):o(o({},n),e)),t},g=function(e){var n=p(e.components);return r.createElement(s.Provider,{value:n},e.children)},u="mdxType",c={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},d=r.forwardRef((function(e,n){var t=e.components,a=e.mdxType,l=e.originalType,s=e.parentName,g=i(e,["components","mdxType","originalType","parentName"]),u=p(t),d=a,m=u["".concat(s,".").concat(d)]||u[d]||c[d]||l;return t?r.createElement(m,o(o({ref:n},g),{},{components:t})):r.createElement(m,o({ref:n},g))}));function m(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var l=t.length,o=new Array(l);o[0]=d;var i={};for(var s in n)hasOwnProperty.call(n,s)&&(i[s]=n[s]);i.originalType=e,i[u]="string"==typeof e?e:a,o[1]=i;for(var p=2;p{t.r(n),t.d(n,{assets:()=>s,contentTitle:()=>o,default:()=>c,frontMatter:()=>l,metadata:()=>i,toc:()=>p});var r=t(8168),a=(t(6540),t(5680));const l={sidebar_position:1},o="\u7efc\u8ff0",i={unversionedId:"xuanxing/thingsboard/index",id:"xuanxing/thingsboard/index",title:"\u7efc\u8ff0",description:"thingsboard \u5e94\u8be5\u7b97\u662f\u9876\u7ea7\u7684\u5f00\u6e90\u7269\u8054\u7f51\u4e91\u5e73\u53f0\u4e86\u3002\u4f46\u662f\uff0c\u7ecf\u6211\u7814\u7a76\uff0c\u4e0d\u662f\u5f88\u9002\u5408\u56fd\u5185\u7528\u6237\u3002\u4f46\u662f\u5374\u6709\u5f88\u591a\u5b66\u4e60\u548c\u501f\u9274\u7684\u5730\u65b9\uff0c\u4f8b\u5982\u89c4\u5219\u5f15\u64ce\u3002",source:"@site/docs/xuanxing/thingsboard/index.md",sourceDirName:"xuanxing/thingsboard",slug:"/xuanxing/thingsboard/",permalink:"/docs/xuanxing/thingsboard/",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"xuanxingSidebar",previous:{title:"\u6982\u8ff0",permalink:"/docs/xuanxing/devops/"},next:{title:"\u5982\u4f55\u4f7f\u7528",permalink:"/docs/xuanxing/thingsboard/\u5982\u4f55\u4f7f\u7528"}},s={},p=[{value:"\u73af\u5883\u8981\u6c42",id:"\u73af\u5883\u8981\u6c42",level:3},{value:"Maven \u7248\u672c",id:"maven-\u7248\u672c",level:3},{value:"\u5b89\u88c5 postgres",id:"\u5b89\u88c5-postgres",level:3},{value:"\u521b\u5efa\u6570\u636e\u5e93",id:"\u521b\u5efa\u6570\u636e\u5e93",level:3},{value:"\u6267\u884c mvn package \u6253\u5305\u5e76\u521d\u59cb\u5316\u6570\u636e\u5e93",id:"\u6267\u884c-mvn-package-\u6253\u5305\u5e76\u521d\u59cb\u5316\u6570\u636e\u5e93",level:3},{value:"IDEA \u8fd0\u884c",id:"idea-\u8fd0\u884c",level:3}],g={toc:p},u="wrapper";function c(e){let{components:n,...t}=e;return(0,a.yg)(u,(0,r.A)({},g,t,{components:n,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"\u7efc\u8ff0"},"\u7efc\u8ff0"),(0,a.yg)("p",null,"thingsboard \u5e94\u8be5\u7b97\u662f\u9876\u7ea7\u7684\u5f00\u6e90\u7269\u8054\u7f51\u4e91\u5e73\u53f0\u4e86\u3002\u4f46\u662f\uff0c\u7ecf\u6211\u7814\u7a76\uff0c\u4e0d\u662f\u5f88\u9002\u5408\u56fd\u5185\u7528\u6237\u3002\u4f46\u662f\u5374\u6709\u5f88\u591a\u5b66\u4e60\u548c\u501f\u9274\u7684\u5730\u65b9\uff0c\u4f8b\u5982\u89c4\u5219\u5f15\u64ce\u3002"),(0,a.yg)("h3",{id:"\u73af\u5883\u8981\u6c42"},"\u73af\u5883\u8981\u6c42"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"JDK 11"),(0,a.yg)("li",{parentName:"ul"},"Maven 3.6.0+")),(0,a.yg)("h3",{id:"maven-\u7248\u672c"},"Maven \u7248\u672c"),(0,a.yg)("p",null,"\u6709\u95ee\u9898\uff0c\u81f3\u5c11\u5f97\u662f 3.6.0\uff0c\u5b98\u7f51\u6587\u6863\u6709\u8bef\uff1b"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},"[ERROR] Failed to execute goal com.github.eirslett:frontend-maven-plugin:1.12.0:install-node-and-yarn (install node and npm) on project ui-ngx: The plugin com.github.eirslett:frontend-maven-plugin:1.12.0 requires Maven version 3.6.0 -> [Help 1]\n")),(0,a.yg)("h3",{id:"\u5b89\u88c5-postgres"},"\u5b89\u88c5 postgres"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},"#\ndocker pull postgres:11.19-bullseye\n#\ndocker run \\\n--privileged=true \\\n--restart=always \\\n--name postgres \\\n-e POSTGRES_PASSWORD=Aa0123 \\\n-p 5432:5432 \\\n-v /mnt/docker/postgresql/data:/var/lib/postgresql/data \\\n-d postgres:11.19-bullseye\n# \u53d1\u73b0\u4f7f\u7528DBeaver\u8fde\u63a5\u4e0d\u4e0a\uff0c\u9700\u8981\u4fee\u6539/mnt/docker/postgresql/data/pg_hba.conf\n# \u589e\u52a0\u4e00\u884chost all all 192.168.41.69/32 trust\n# 192.168.41.69\u662f\u6211\u81ea\u5df1\u7684ip\n\n")),(0,a.yg)("h1",{id:"\u6267\u884c-mvn-compile-\u62a5\u9519"},"\u6267\u884c mvn compile \u62a5\u9519"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-shell"},"[ERROR] Failed to execute goal org.apache.maven.plugins:maven-dependency-plugin:2.8:unpack (extract-web-ui) on project web-ui: Artifact has not been packaged yet. When used on reactor artifact, unpack should be executed after packaging: see MDEP-98. -> [Help 1]\n")),(0,a.yg)("p",null,"\u78b0\u5230\u8fd9\u4e2a\u9519\u8bef\uff0c\u662f\u56e0\u4e3a ui-ngx \u6ca1\u6709 install\uff0cinstall \u4e00\u4e0b\u5373\u53ef"),(0,a.yg)("h3",{id:"\u521b\u5efa\u6570\u636e\u5e93"},"\u521b\u5efa\u6570\u636e\u5e93"),(0,a.yg)("p",null,"\u4f7f\u7528 DBeaver \u8fde\u63a5\u6570\u636e\u5e93 postgresql\uff0c\u5e76\u521b\u5efa\u6570\u636e\u5e93",(0,a.yg)("strong",{parentName:"p"},"thingsboard")),(0,a.yg)("p",null,"\u4fee\u6539",(0,a.yg)("strong",{parentName:"p"},"thingsboard/application/src/main/resources/thingsboard.yml"),"\u6587\u4ef6\u4e2d\u7684\u6570\u636e\u5e93\u914d\u7f6e\uff0c"),(0,a.yg)("pre",null,(0,a.yg)("code",{parentName:"pre",className:"language-yml"},'url: "${SPRING_DATASOURCE_URL:jdbc:postgresql://192.168.0.40:5432/thingsboard}"\npassword: "${SPRING_DATASOURCE_PASSWORD:Aa0123}"\n')),(0,a.yg)("h3",{id:"\u6267\u884c-mvn-package-\u6253\u5305\u5e76\u521d\u59cb\u5316\u6570\u636e\u5e93"},"\u6267\u884c mvn package \u6253\u5305\u5e76\u521d\u59cb\u5316\u6570\u636e\u5e93"),(0,a.yg)("p",null,"mvn package \u547d\u4ee4\u76f4\u63a5\u6210\u529f\u3002"),(0,a.yg)("p",null,"\u7136\u540e\u6267\u884c",(0,a.yg)("strong",{parentName:"p"},"application/target/bin/install/install_dev_db.sh"),"\u6b64\u811a\u672c\uff0c\u4e5f\u6210\u529f\u4e86"),(0,a.yg)("h3",{id:"idea-\u8fd0\u884c"},"IDEA \u8fd0\u884c"),(0,a.yg)("p",null,"\u6267\u884c",(0,a.yg)("strong",{parentName:"p"},"application/src/main/java/org/thingsboard/server/ThingsboardServerApplication.java")," debug \u6b64\u6587\u4ef6\uff0c\n\u5982\u679c\u5b58\u5728 JDK \u7248\u672c\u95ee\u9898\uff0c\u628a\u6240\u6709 JDK \u7684\u914d\u7f6e\u5207\u6362\u6210 JDK11."),(0,a.yg)("p",null,"\u7b49\u7a0b\u5e8f\u8dd1\u8d77\u6765\u6210\u529f\u540e\uff0c\u65b9\u4f4d",(0,a.yg)("strong",{parentName:"p"},"http://localhost:8080"),"\u5373\u53ef\u3002\u53ef\u4ee5\u4f7f\u7528\u4ee5\u4e0b\u4e09\u79cd\u7c7b\u578b\u7684\u8d26\u53f7\u767b\u5f55\uff1a"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u7cfb\u7edf \u7ba1\u7406\u5458: ",(0,a.yg)("a",{parentName:"li",href:"mailto:sysadmin@thingsboard.org"},"sysadmin@thingsboard.org")," / sysadmin"),(0,a.yg)("li",{parentName:"ul"},"\u79df\u6237 \u8d26\u53f7: ",(0,a.yg)("a",{parentName:"li",href:"mailto:tenant@thingsboard.org"},"tenant@thingsboard.org")," / tenant"),(0,a.yg)("li",{parentName:"ul"},"\u5ba2\u6237 \u8d26\u53f7: ",(0,a.yg)("a",{parentName:"li",href:"mailto:customer@thingsboard.org"},"customer@thingsboard.org")," / customer")),(0,a.yg)("p",null,"\u81f3\u6b64\uff0cThingsBoard \u5728\u672c\u5730\u6210\u529f\u8fd0\u884c\u3002"))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/f7ec4137.91ca3ce8.js b/assets/js/f7ec4137.6edfd72a.js similarity index 98% rename from assets/js/f7ec4137.91ca3ce8.js rename to assets/js/f7ec4137.6edfd72a.js index 339754c18..e3b931738 100644 --- a/assets/js/f7ec4137.91ca3ce8.js +++ b/assets/js/f7ec4137.6edfd72a.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4793],{5680:(e,t,r)=>{r.d(t,{xA:()=>c,yg:()=>d});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var u=n.createContext({}),p=function(e){var t=n.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},c=function(e){var t=p(e.components);return n.createElement(u.Provider,{value:t},e.children)},s="mdxType",f={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,i=e.originalType,u=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),s=p(r),y=a,d=s["".concat(u,".").concat(y)]||s[y]||f[y]||i;return r?n.createElement(d,o(o({ref:t},c),{},{components:r})):n.createElement(d,o({ref:t},c))}));function d(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=r.length,o=new Array(i);o[0]=y;var l={};for(var u in t)hasOwnProperty.call(t,u)&&(l[u]=t[u]);l.originalType=e,l[s]="string"==typeof e?e:a,o[1]=l;for(var p=2;p{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>o,default:()=>f,frontMatter:()=>i,metadata:()=>l,toc:()=>p});var n=r(8168),a=(r(6540),r(5680));const i={sidebar_position:5},o="\u7ec4\u6001\u7f16\u8f91\u5668/\u5927\u5c4f\u7f16\u8f91\u5668",l={unversionedId:"xuanxing/fe/\u7ec4\u6001+\u5927\u5c4f\u7f16\u8f91\u5668",id:"xuanxing/fe/\u7ec4\u6001+\u5927\u5c4f\u7f16\u8f91\u5668",title:"\u7ec4\u6001\u7f16\u8f91\u5668/\u5927\u5c4f\u7f16\u8f91\u5668",description:"\u5728\u7269\u8054\u7f51\u4e91\u5e73\u53f0\u4e0a\uff0c\u7ec4\u6001\u7f16\u8f91\u5668\u548c\u5927\u5c4f\u7f16\u8f91\u5668\u90fd\u662f\u5c5e\u4e8e\u53ef\u89c6\u5316\u7f16\u8f91\u5668\u7684\u8303\u7574\u3002",source:"@site/docs/xuanxing/fe/5-\u7ec4\u6001+\u5927\u5c4f\u7f16\u8f91\u5668.md",sourceDirName:"xuanxing/fe",slug:"/xuanxing/fe/\u7ec4\u6001+\u5927\u5c4f\u7f16\u8f91\u5668",permalink:"/docs/xuanxing/fe/\u7ec4\u6001+\u5927\u5c4f\u7f16\u8f91\u5668",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",sidebarPosition:5,frontMatter:{sidebar_position:5},sidebar:"xuanxingSidebar",previous:{title:"\u79fb\u52a8\u7aef",permalink:"/docs/xuanxing/fe/\u79fb\u52a8\u7aef"},next:{title:"\u6982\u8ff0",permalink:"/docs/xuanxing/back/"}},u={},p=[{value:"\u7ec4\u6001\u7f16\u8f91\u5668",id:"\u7ec4\u6001\u7f16\u8f91\u5668",level:3},{value:"\u5927\u5c4f\u7f16\u8f91\u5668",id:"\u5927\u5c4f\u7f16\u8f91\u5668",level:3},{value:"\u6700\u7ec8\uff0c\u6280\u672f\u9009\u578b\u4e2a\u4eba\u63a8\u8350\uff1a",id:"\u6700\u7ec8\u6280\u672f\u9009\u578b\u4e2a\u4eba\u63a8\u8350",level:3}],c={toc:p},s="wrapper";function f(e){let{components:t,...r}=e;return(0,a.yg)(s,(0,n.A)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"\u7ec4\u6001\u7f16\u8f91\u5668\u5927\u5c4f\u7f16\u8f91\u5668"},"\u7ec4\u6001\u7f16\u8f91\u5668/\u5927\u5c4f\u7f16\u8f91\u5668"),(0,a.yg)("p",null,"\u5728\u7269\u8054\u7f51\u4e91\u5e73\u53f0\u4e0a\uff0c\u7ec4\u6001\u7f16\u8f91\u5668\u548c\u5927\u5c4f\u7f16\u8f91\u5668\u90fd\u662f\u5c5e\u4e8e\u53ef\u89c6\u5316\u7f16\u8f91\u5668\u7684\u8303\u7574\u3002"),(0,a.yg)("p",null,"\u7ec4\u6001\u7f16\u8f91\u5668\u6bd4\u8f83\u6ce8\u91cd\u62d3\u6251\u7ed3\u6784\u56fe\u3001\u73b0\u573a\u7684\u5de5\u827a\u6d41\u7a0b\uff0c\u4e14\u5bf9\u52a8\u753b\u6709\u8981\u6c42\uff0c\u80fd\u591f\u6a21\u62df\u5b9e\u65f6\u7684\u573a\u666f\u52a8\u753b\u3002"),(0,a.yg)("h3",{id:"\u7ec4\u6001\u7f16\u8f91\u5668"},"\u7ec4\u6001\u7f16\u8f91\u5668"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u57fa\u4e8e draw.io \u6539\u9020\uff0cdraw.io \u57fa\u4e8e mxGraph\uff0c\u4f46\u662f mxGraph \u5728 2020 \u5e74 11 \u6708\u5df2\u7ecf\u4f53\u8d28\u7ef4\u62a4\u4e86",(0,a.yg)("ul",{parentName:"li"},(0,a.yg)("li",{parentName:"ul"},"mxGraph \u63a8\u8350\u7684 fork\uff0cmaxGraph"))),(0,a.yg)("li",{parentName:"ul"},"\u57fa\u4e8e meta2d+vue3 \u81ea\u7814\uff08\u53c2\u8003\u4f18\u8bfa\u79d1\u6280\u7684\u68ee\u62d3\u6251\uff09"),(0,a.yg)("li",{parentName:"ul"},"\u7eaf\u81ea\u7814\uff08Canvas\uff09\uff08\u53c2\u8003\u4f18\u8bfa\u79d1\u6280\u7684\u68ee\u62d3\u6251\uff09"),(0,a.yg)("li",{parentName:"ul"},"\u91c7\u8d2d\uff08\u4f18\u8bfa\u79d1\u6280\u7684\u68ee\u62d3\u6251\uff09")),(0,a.yg)("h3",{id:"\u5927\u5c4f\u7f16\u8f91\u5668"},"\u5927\u5c4f\u7f16\u8f91\u5668"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u81ea\u7814(\u53c2\u8003\u4f18\u8bfa\u79d1\u6280\u7684\u68ee\u5927\u5c4f)"),(0,a.yg)("li",{parentName:"ul"},"\u91c7\u8d2d\uff08\u4f18\u8bfa\u79d1\u6280\u7684\u68ee\u5927\u5c4f\uff09")),(0,a.yg)("h3",{id:"\u6700\u7ec8\u6280\u672f\u9009\u578b\u4e2a\u4eba\u63a8\u8350"},"\u6700\u7ec8\uff0c\u6280\u672f\u9009\u578b\u4e2a\u4eba\u63a8\u8350\uff1a"),(0,a.yg)("p",null,"\u57fa\u4e8e meta2d+vue3 \u81ea\u7814\uff08\u53c2\u8003\u4f18\u8bfa\u79d1\u6280\u7684\u68ee\u62d3\u6251\uff09"))}f.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4793],{5680:(e,t,r)=>{r.d(t,{xA:()=>c,yg:()=>d});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var u=n.createContext({}),p=function(e){var t=n.useContext(u),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},c=function(e){var t=p(e.components);return n.createElement(u.Provider,{value:t},e.children)},s="mdxType",f={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,i=e.originalType,u=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),s=p(r),y=a,d=s["".concat(u,".").concat(y)]||s[y]||f[y]||i;return r?n.createElement(d,o(o({ref:t},c),{},{components:r})):n.createElement(d,o({ref:t},c))}));function d(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=r.length,o=new Array(i);o[0]=y;var l={};for(var u in t)hasOwnProperty.call(t,u)&&(l[u]=t[u]);l.originalType=e,l[s]="string"==typeof e?e:a,o[1]=l;for(var p=2;p{r.r(t),r.d(t,{assets:()=>u,contentTitle:()=>o,default:()=>f,frontMatter:()=>i,metadata:()=>l,toc:()=>p});var n=r(8168),a=(r(6540),r(5680));const i={sidebar_position:5},o="\u7ec4\u6001\u7f16\u8f91\u5668/\u5927\u5c4f\u7f16\u8f91\u5668",l={unversionedId:"xuanxing/fe/\u7ec4\u6001+\u5927\u5c4f\u7f16\u8f91\u5668",id:"xuanxing/fe/\u7ec4\u6001+\u5927\u5c4f\u7f16\u8f91\u5668",title:"\u7ec4\u6001\u7f16\u8f91\u5668/\u5927\u5c4f\u7f16\u8f91\u5668",description:"\u5728\u7269\u8054\u7f51\u4e91\u5e73\u53f0\u4e0a\uff0c\u7ec4\u6001\u7f16\u8f91\u5668\u548c\u5927\u5c4f\u7f16\u8f91\u5668\u90fd\u662f\u5c5e\u4e8e\u53ef\u89c6\u5316\u7f16\u8f91\u5668\u7684\u8303\u7574\u3002",source:"@site/docs/xuanxing/fe/5-\u7ec4\u6001+\u5927\u5c4f\u7f16\u8f91\u5668.md",sourceDirName:"xuanxing/fe",slug:"/xuanxing/fe/\u7ec4\u6001+\u5927\u5c4f\u7f16\u8f91\u5668",permalink:"/docs/xuanxing/fe/\u7ec4\u6001+\u5927\u5c4f\u7f16\u8f91\u5668",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",sidebarPosition:5,frontMatter:{sidebar_position:5},sidebar:"xuanxingSidebar",previous:{title:"\u79fb\u52a8\u7aef",permalink:"/docs/xuanxing/fe/\u79fb\u52a8\u7aef"},next:{title:"\u6982\u8ff0",permalink:"/docs/xuanxing/back/"}},u={},p=[{value:"\u7ec4\u6001\u7f16\u8f91\u5668",id:"\u7ec4\u6001\u7f16\u8f91\u5668",level:3},{value:"\u5927\u5c4f\u7f16\u8f91\u5668",id:"\u5927\u5c4f\u7f16\u8f91\u5668",level:3},{value:"\u6700\u7ec8\uff0c\u6280\u672f\u9009\u578b\u4e2a\u4eba\u63a8\u8350\uff1a",id:"\u6700\u7ec8\u6280\u672f\u9009\u578b\u4e2a\u4eba\u63a8\u8350",level:3}],c={toc:p},s="wrapper";function f(e){let{components:t,...r}=e;return(0,a.yg)(s,(0,n.A)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h1",{id:"\u7ec4\u6001\u7f16\u8f91\u5668\u5927\u5c4f\u7f16\u8f91\u5668"},"\u7ec4\u6001\u7f16\u8f91\u5668/\u5927\u5c4f\u7f16\u8f91\u5668"),(0,a.yg)("p",null,"\u5728\u7269\u8054\u7f51\u4e91\u5e73\u53f0\u4e0a\uff0c\u7ec4\u6001\u7f16\u8f91\u5668\u548c\u5927\u5c4f\u7f16\u8f91\u5668\u90fd\u662f\u5c5e\u4e8e\u53ef\u89c6\u5316\u7f16\u8f91\u5668\u7684\u8303\u7574\u3002"),(0,a.yg)("p",null,"\u7ec4\u6001\u7f16\u8f91\u5668\u6bd4\u8f83\u6ce8\u91cd\u62d3\u6251\u7ed3\u6784\u56fe\u3001\u73b0\u573a\u7684\u5de5\u827a\u6d41\u7a0b\uff0c\u4e14\u5bf9\u52a8\u753b\u6709\u8981\u6c42\uff0c\u80fd\u591f\u6a21\u62df\u5b9e\u65f6\u7684\u573a\u666f\u52a8\u753b\u3002"),(0,a.yg)("h3",{id:"\u7ec4\u6001\u7f16\u8f91\u5668"},"\u7ec4\u6001\u7f16\u8f91\u5668"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u57fa\u4e8e draw.io \u6539\u9020\uff0cdraw.io \u57fa\u4e8e mxGraph\uff0c\u4f46\u662f mxGraph \u5728 2020 \u5e74 11 \u6708\u5df2\u7ecf\u4f53\u8d28\u7ef4\u62a4\u4e86",(0,a.yg)("ul",{parentName:"li"},(0,a.yg)("li",{parentName:"ul"},"mxGraph \u63a8\u8350\u7684 fork\uff0cmaxGraph"))),(0,a.yg)("li",{parentName:"ul"},"\u57fa\u4e8e meta2d+vue3 \u81ea\u7814\uff08\u53c2\u8003\u4f18\u8bfa\u79d1\u6280\u7684\u68ee\u62d3\u6251\uff09"),(0,a.yg)("li",{parentName:"ul"},"\u7eaf\u81ea\u7814\uff08Canvas\uff09\uff08\u53c2\u8003\u4f18\u8bfa\u79d1\u6280\u7684\u68ee\u62d3\u6251\uff09"),(0,a.yg)("li",{parentName:"ul"},"\u91c7\u8d2d\uff08\u4f18\u8bfa\u79d1\u6280\u7684\u68ee\u62d3\u6251\uff09")),(0,a.yg)("h3",{id:"\u5927\u5c4f\u7f16\u8f91\u5668"},"\u5927\u5c4f\u7f16\u8f91\u5668"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},"\u81ea\u7814(\u53c2\u8003\u4f18\u8bfa\u79d1\u6280\u7684\u68ee\u5927\u5c4f)"),(0,a.yg)("li",{parentName:"ul"},"\u91c7\u8d2d\uff08\u4f18\u8bfa\u79d1\u6280\u7684\u68ee\u5927\u5c4f\uff09")),(0,a.yg)("h3",{id:"\u6700\u7ec8\u6280\u672f\u9009\u578b\u4e2a\u4eba\u63a8\u8350"},"\u6700\u7ec8\uff0c\u6280\u672f\u9009\u578b\u4e2a\u4eba\u63a8\u8350\uff1a"),(0,a.yg)("p",null,"\u57fa\u4e8e meta2d+vue3 \u81ea\u7814\uff08\u53c2\u8003\u4f18\u8bfa\u79d1\u6280\u7684\u68ee\u62d3\u6251\uff09"))}f.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/f90dc98f.a316901f.js b/assets/js/f90dc98f.954d888d.js similarity index 99% rename from assets/js/f90dc98f.a316901f.js rename to assets/js/f90dc98f.954d888d.js index 2800b4512..f55ae8124 100644 --- a/assets/js/f90dc98f.a316901f.js +++ b/assets/js/f90dc98f.954d888d.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4586],{5680:(e,t,r)=>{r.d(t,{xA:()=>c,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function p(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),i=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):p(p({},t),e)),r},c=function(e){var t=i(e.components);return n.createElement(l.Provider,{value:t},e.children)},s="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,c=u(e,["components","mdxType","originalType","parentName"]),s=i(r),d=o,f=s["".concat(l,".").concat(d)]||s[d]||y[d]||a;return r?n.createElement(f,p(p({ref:t},c),{},{components:r})):n.createElement(f,p({ref:t},c))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,p=new Array(a);p[0]=d;var u={};for(var l in t)hasOwnProperty.call(t,l)&&(u[l]=t[l]);u.originalType=e,u[s]="string"==typeof e?e:o,p[1]=u;for(var i=2;i{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>p,default:()=>y,frontMatter:()=>a,metadata:()=>u,toc:()=>i});var n=r(8168),o=(r(6540),r(5680));const a={},p=void 0,u={unversionedId:"study/devops/Linux\u8fd0\u7ef4-\u76d1\u63a7\u6570\u636e",id:"study/devops/Linux\u8fd0\u7ef4-\u76d1\u63a7\u6570\u636e",title:"Linux\u8fd0\u7ef4-\u76d1\u63a7\u6570\u636e",description:"\u7cfb\u7edf\u5e73\u5747\u8d1f\u8f7d\u548cCPU\u4f7f\u7528\u7387",source:"@site/docs/study/devops/Linux\u8fd0\u7ef4-\u76d1\u63a7\u6570\u636e.md",sourceDirName:"study/devops",slug:"/study/devops/Linux\u8fd0\u7ef4-\u76d1\u63a7\u6570\u636e",permalink:"/docs/study/devops/Linux\u8fd0\u7ef4-\u76d1\u63a7\u6570\u636e",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Linux\u8fd0\u7ef4-\u5e38\u7528",permalink:"/docs/study/devops/Linux\u8fd0\u7ef4-\u5e38\u7528"},next:{title:"Linux\u8fd0\u7ef4-\u9ad8\u5e76\u53d1",permalink:"/docs/study/devops/Linux\u8fd0\u7ef4-\u9ad8\u5e76\u53d1"}},l={},i=[{value:"\u7cfb\u7edf\u5e73\u5747\u8d1f\u8f7d\u548cCPU\u4f7f\u7528\u7387",id:"\u7cfb\u7edf\u5e73\u5747\u8d1f\u8f7d\u548ccpu\u4f7f\u7528\u7387",level:3}],c={toc:i},s="wrapper";function y(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"\u7cfb\u7edf\u5e73\u5747\u8d1f\u8f7d\u548ccpu\u4f7f\u7528\u7387"},"\u7cfb\u7edf\u5e73\u5747\u8d1f\u8f7d\u548cCPU\u4f7f\u7528\u7387"),(0,o.yg)("p",null,"\u73b0\u5b9e\u5de5\u4f5c\u4e2d\uff0c\u6211\u4eec\u7ecf\u5e38\u5bb9\u6613\u628a\u5e73\u5747\u8d1f\u8f7d\u503c\u548cCPU\u4f7f\u7528\u7387\u6df7\u6dc6\uff0c\u6240\u4ee5\u5728\u8fd9\u91cc\uff0c\u6211\u4e5f\u505a\u4e00\u4e2a\u533a\u5206\u3002"),(0,o.yg)("p",null,"\u53ef\u80fd\u4f60\u4f1a\u7591\u60d1\uff0c\u65e2\u7136\u5e73\u5747\u8d1f\u8f7d\u4ee3\u8868\u7684\u662f\u6d3b\u8dc3\u8fdb\u7a0b\u6570\uff0c\u90a3\u5e73\u5747\u8d1f\u8f7d\u9ad8\u4e86\uff0c\u4e0d\u5c31\u610f\u5473\u7740CPU\u4f7f\u7528\u7387\u9ad8\u5417\uff1f"),(0,o.yg)("p",null,"\u6211\u4eec\u8fd8\u662f\u8981\u56de\u5230\u5e73\u5747\u8d1f\u8f7d\u7684\u542b\u4e49\u4e0a\u6765\uff0c\u5e73\u5747\u8d1f\u8f7d\u662f\u6307\u5355\u4f4d\u65f6\u95f4\u5185\uff0c\u5904\u4e8e\u53ef\u8fd0\u884c\u72b6\u6001\u548c\u4e0d\u53ef\u4e2d\u65ad\u72b6\u6001\u7684\u8fdb\u7a0b\u6570\u3002\u6240\u4ee5\uff0c\u5b83\u4e0d\u4ec5\u5305\u62ec\u4e86",(0,o.yg)("strong",{parentName:"p"},"\u6b63\u5728\u4f7f\u7528CPU\u7684\u8fdb\u7a0b"),"\uff0c\u8fd8\u5305\u62ec",(0,o.yg)("strong",{parentName:"p"},"\u7b49\u5f85CPU\u548c\u7b49\u5f85I/O\u7684\u8fdb\u7a0b"),"\u3002"),(0,o.yg)("blockquote",null,(0,o.yg)("p",{parentName:"blockquote"},"\u800cCPU\u4f7f\u7528\u7387\uff0c\u662f\u5355\u4f4d\u65f6\u95f4\u5185CPU\u7e41\u5fd9\u60c5\u51b5\u7684\u7edf\u8ba1\uff0c\u8ddf\u5e73\u5747\u8d1f\u8f7d\u5e76\u4e0d\u4e00\u5b9a\u5b8c\u5168\u5bf9\u5e94\u3002\u6bd4\u5982\uff1a"),(0,o.yg)("ul",{parentName:"blockquote"},(0,o.yg)("li",{parentName:"ul"},"CPU\u5bc6\u96c6\u578b\u8fdb\u7a0b\uff0c\u4f7f\u7528\u5927\u91cfCPU\u4f1a\u5bfc\u81f4\u5e73\u5747\u8d1f\u8f7d\u5347\u9ad8\uff0c\u6b64\u65f6\u4e24\u8005\u662f\u4e00\u81f4\u7684\u3002"),(0,o.yg)("li",{parentName:"ul"},"I/O\u5bc6\u96c6\u578b\u8fdb\u7a0b\uff0c\u7b49\u5f85I/O\u4e5f\u4f1a\u5bfc\u81f4\u5e73\u5747\u8d1f\u8f7d\u5347\u9ad8\uff0c\u4f46CPU\u4f7f\u7528\u7387\u4e0d\u4e00\u5b9a\u5f88\u9ad8\u3002"),(0,o.yg)("li",{parentName:"ul"},"\u5927\u91cf\u7b49\u5f85CPU\u7684\u8fdb\u7a0b\u8c03\u5ea6\u4e5f\u4f1a\u5bfc\u81f4\u5e73\u5747\u8d1f\u8f7d\u5347\u9ad8\uff0c\u6b64\u65f6\u7684CPU\u4f7f\u7528\u7387\u4e5f\u4f1a\u6bd4\u8f83\u9ad8\u3002"))),(0,o.yg)("p",null,(0,o.yg)("strong",{parentName:"p"},"\u90a3\u4e48\uff0c\u5728\u5b9e\u9645\u751f\u4ea7\u73af\u5883\u4e2d\uff0c\u5e73\u5747\u8d1f\u8f7d\u591a\u9ad8\u65f6\uff0c\u9700\u8981\u6211\u4eec\u91cd\u70b9\u5173\u6ce8\u5462\uff1f")),(0,o.yg)("p",null,"\u5728\u6211\u770b\u6765\uff0c",(0,o.yg)("strong",{parentName:"p"},"\u5f53\u5e73\u5747\u8d1f\u8f7d\u9ad8\u4e8e\u903b\u8f91CPU\u6570\u91cf\u768470%\u7684\u65f6\u5019"),"\uff0c\u4f60\u5c31\u5e94\u8be5\u5206\u6790\u6392\u67e5\u8d1f\u8f7d\u9ad8\u7684\u95ee\u9898\u4e86\u3002\u4e00\u65e6\u8d1f\u8f7d\u8fc7\u9ad8\uff0c\u5c31\u53ef\u80fd\u5bfc\u81f4\u8fdb\u7a0b\u54cd\u5e94\u53d8\u6162\uff0c\u8fdb\u800c\u5f71\u54cd\u670d\u52a1\u7684\u6b63\u5e38\u529f\u80fd\u3002"),(0,o.yg)("p",null,"\u4f46\u662f\uff0c70%\u8fd9\u4e2a\u6570\u5b57\u5e76\u4e0d\u662f\u7edd\u5bf9\u7684\uff0c\u6700\u63a8\u8350\u7684\u65b9\u6cd5\uff0c\u8fd8\u662f\u628a\u7cfb\u7edf\u7684\u5e73\u5747\u8d1f\u8f7d\u76d1\u63a7\u8d77\u6765\uff0c\u7136\u540e\u6839\u636e\u66f4\u591a\u7684\u5386\u53f2\u6570\u636e\uff0c\u5224\u65ad\u8d1f\u8f7d\u7684\u53d8\u5316\u8d8b\u52bf\u3002\u5f53\u53d1\u73b0\u8d1f\u8f7d\u6709\u660e\u663e\u5347\u9ad8\u8d8b\u52bf\u65f6\uff0c\u6bd4\u5982\u8bf4\u8d1f\u8f7d\u7ffb\u500d\u4e86\uff0c\u4f60\u518d\u53bb\u505a\u5206\u6790\u548c\u8c03\u67e5\u3002"))}y.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[4586],{5680:(e,t,r)=>{r.d(t,{xA:()=>c,yg:()=>f});var n=r(6540);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function p(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var l=n.createContext({}),i=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):p(p({},t),e)),r},c=function(e){var t=i(e.components);return n.createElement(l.Provider,{value:t},e.children)},s="mdxType",y={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,c=u(e,["components","mdxType","originalType","parentName"]),s=i(r),d=o,f=s["".concat(l,".").concat(d)]||s[d]||y[d]||a;return r?n.createElement(f,p(p({ref:t},c),{},{components:r})):n.createElement(f,p({ref:t},c))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,p=new Array(a);p[0]=d;var u={};for(var l in t)hasOwnProperty.call(t,l)&&(u[l]=t[l]);u.originalType=e,u[s]="string"==typeof e?e:o,p[1]=u;for(var i=2;i{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>p,default:()=>y,frontMatter:()=>a,metadata:()=>u,toc:()=>i});var n=r(8168),o=(r(6540),r(5680));const a={},p=void 0,u={unversionedId:"study/devops/Linux\u8fd0\u7ef4-\u76d1\u63a7\u6570\u636e",id:"study/devops/Linux\u8fd0\u7ef4-\u76d1\u63a7\u6570\u636e",title:"Linux\u8fd0\u7ef4-\u76d1\u63a7\u6570\u636e",description:"\u7cfb\u7edf\u5e73\u5747\u8d1f\u8f7d\u548cCPU\u4f7f\u7528\u7387",source:"@site/docs/study/devops/Linux\u8fd0\u7ef4-\u76d1\u63a7\u6570\u636e.md",sourceDirName:"study/devops",slug:"/study/devops/Linux\u8fd0\u7ef4-\u76d1\u63a7\u6570\u636e",permalink:"/docs/study/devops/Linux\u8fd0\u7ef4-\u76d1\u63a7\u6570\u636e",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Linux\u8fd0\u7ef4-\u5e38\u7528",permalink:"/docs/study/devops/Linux\u8fd0\u7ef4-\u5e38\u7528"},next:{title:"Linux\u8fd0\u7ef4-\u9ad8\u5e76\u53d1",permalink:"/docs/study/devops/Linux\u8fd0\u7ef4-\u9ad8\u5e76\u53d1"}},l={},i=[{value:"\u7cfb\u7edf\u5e73\u5747\u8d1f\u8f7d\u548cCPU\u4f7f\u7528\u7387",id:"\u7cfb\u7edf\u5e73\u5747\u8d1f\u8f7d\u548ccpu\u4f7f\u7528\u7387",level:3}],c={toc:i},s="wrapper";function y(e){let{components:t,...r}=e;return(0,o.yg)(s,(0,n.A)({},c,r,{components:t,mdxType:"MDXLayout"}),(0,o.yg)("h3",{id:"\u7cfb\u7edf\u5e73\u5747\u8d1f\u8f7d\u548ccpu\u4f7f\u7528\u7387"},"\u7cfb\u7edf\u5e73\u5747\u8d1f\u8f7d\u548cCPU\u4f7f\u7528\u7387"),(0,o.yg)("p",null,"\u73b0\u5b9e\u5de5\u4f5c\u4e2d\uff0c\u6211\u4eec\u7ecf\u5e38\u5bb9\u6613\u628a\u5e73\u5747\u8d1f\u8f7d\u503c\u548cCPU\u4f7f\u7528\u7387\u6df7\u6dc6\uff0c\u6240\u4ee5\u5728\u8fd9\u91cc\uff0c\u6211\u4e5f\u505a\u4e00\u4e2a\u533a\u5206\u3002"),(0,o.yg)("p",null,"\u53ef\u80fd\u4f60\u4f1a\u7591\u60d1\uff0c\u65e2\u7136\u5e73\u5747\u8d1f\u8f7d\u4ee3\u8868\u7684\u662f\u6d3b\u8dc3\u8fdb\u7a0b\u6570\uff0c\u90a3\u5e73\u5747\u8d1f\u8f7d\u9ad8\u4e86\uff0c\u4e0d\u5c31\u610f\u5473\u7740CPU\u4f7f\u7528\u7387\u9ad8\u5417\uff1f"),(0,o.yg)("p",null,"\u6211\u4eec\u8fd8\u662f\u8981\u56de\u5230\u5e73\u5747\u8d1f\u8f7d\u7684\u542b\u4e49\u4e0a\u6765\uff0c\u5e73\u5747\u8d1f\u8f7d\u662f\u6307\u5355\u4f4d\u65f6\u95f4\u5185\uff0c\u5904\u4e8e\u53ef\u8fd0\u884c\u72b6\u6001\u548c\u4e0d\u53ef\u4e2d\u65ad\u72b6\u6001\u7684\u8fdb\u7a0b\u6570\u3002\u6240\u4ee5\uff0c\u5b83\u4e0d\u4ec5\u5305\u62ec\u4e86",(0,o.yg)("strong",{parentName:"p"},"\u6b63\u5728\u4f7f\u7528CPU\u7684\u8fdb\u7a0b"),"\uff0c\u8fd8\u5305\u62ec",(0,o.yg)("strong",{parentName:"p"},"\u7b49\u5f85CPU\u548c\u7b49\u5f85I/O\u7684\u8fdb\u7a0b"),"\u3002"),(0,o.yg)("blockquote",null,(0,o.yg)("p",{parentName:"blockquote"},"\u800cCPU\u4f7f\u7528\u7387\uff0c\u662f\u5355\u4f4d\u65f6\u95f4\u5185CPU\u7e41\u5fd9\u60c5\u51b5\u7684\u7edf\u8ba1\uff0c\u8ddf\u5e73\u5747\u8d1f\u8f7d\u5e76\u4e0d\u4e00\u5b9a\u5b8c\u5168\u5bf9\u5e94\u3002\u6bd4\u5982\uff1a"),(0,o.yg)("ul",{parentName:"blockquote"},(0,o.yg)("li",{parentName:"ul"},"CPU\u5bc6\u96c6\u578b\u8fdb\u7a0b\uff0c\u4f7f\u7528\u5927\u91cfCPU\u4f1a\u5bfc\u81f4\u5e73\u5747\u8d1f\u8f7d\u5347\u9ad8\uff0c\u6b64\u65f6\u4e24\u8005\u662f\u4e00\u81f4\u7684\u3002"),(0,o.yg)("li",{parentName:"ul"},"I/O\u5bc6\u96c6\u578b\u8fdb\u7a0b\uff0c\u7b49\u5f85I/O\u4e5f\u4f1a\u5bfc\u81f4\u5e73\u5747\u8d1f\u8f7d\u5347\u9ad8\uff0c\u4f46CPU\u4f7f\u7528\u7387\u4e0d\u4e00\u5b9a\u5f88\u9ad8\u3002"),(0,o.yg)("li",{parentName:"ul"},"\u5927\u91cf\u7b49\u5f85CPU\u7684\u8fdb\u7a0b\u8c03\u5ea6\u4e5f\u4f1a\u5bfc\u81f4\u5e73\u5747\u8d1f\u8f7d\u5347\u9ad8\uff0c\u6b64\u65f6\u7684CPU\u4f7f\u7528\u7387\u4e5f\u4f1a\u6bd4\u8f83\u9ad8\u3002"))),(0,o.yg)("p",null,(0,o.yg)("strong",{parentName:"p"},"\u90a3\u4e48\uff0c\u5728\u5b9e\u9645\u751f\u4ea7\u73af\u5883\u4e2d\uff0c\u5e73\u5747\u8d1f\u8f7d\u591a\u9ad8\u65f6\uff0c\u9700\u8981\u6211\u4eec\u91cd\u70b9\u5173\u6ce8\u5462\uff1f")),(0,o.yg)("p",null,"\u5728\u6211\u770b\u6765\uff0c",(0,o.yg)("strong",{parentName:"p"},"\u5f53\u5e73\u5747\u8d1f\u8f7d\u9ad8\u4e8e\u903b\u8f91CPU\u6570\u91cf\u768470%\u7684\u65f6\u5019"),"\uff0c\u4f60\u5c31\u5e94\u8be5\u5206\u6790\u6392\u67e5\u8d1f\u8f7d\u9ad8\u7684\u95ee\u9898\u4e86\u3002\u4e00\u65e6\u8d1f\u8f7d\u8fc7\u9ad8\uff0c\u5c31\u53ef\u80fd\u5bfc\u81f4\u8fdb\u7a0b\u54cd\u5e94\u53d8\u6162\uff0c\u8fdb\u800c\u5f71\u54cd\u670d\u52a1\u7684\u6b63\u5e38\u529f\u80fd\u3002"),(0,o.yg)("p",null,"\u4f46\u662f\uff0c70%\u8fd9\u4e2a\u6570\u5b57\u5e76\u4e0d\u662f\u7edd\u5bf9\u7684\uff0c\u6700\u63a8\u8350\u7684\u65b9\u6cd5\uff0c\u8fd8\u662f\u628a\u7cfb\u7edf\u7684\u5e73\u5747\u8d1f\u8f7d\u76d1\u63a7\u8d77\u6765\uff0c\u7136\u540e\u6839\u636e\u66f4\u591a\u7684\u5386\u53f2\u6570\u636e\uff0c\u5224\u65ad\u8d1f\u8f7d\u7684\u53d8\u5316\u8d8b\u52bf\u3002\u5f53\u53d1\u73b0\u8d1f\u8f7d\u6709\u660e\u663e\u5347\u9ad8\u8d8b\u52bf\u65f6\uff0c\u6bd4\u5982\u8bf4\u8d1f\u8f7d\u7ffb\u500d\u4e86\uff0c\u4f60\u518d\u53bb\u505a\u5206\u6790\u548c\u8c03\u67e5\u3002"))}y.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/fa157919.68e9a60d.js b/assets/js/fa157919.95b3023d.js similarity index 99% rename from assets/js/fa157919.68e9a60d.js rename to assets/js/fa157919.95b3023d.js index af6103aa3..1fac6902e 100644 --- a/assets/js/fa157919.68e9a60d.js +++ b/assets/js/fa157919.95b3023d.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1208],{5680:(e,t,r)=>{r.d(t,{xA:()=>c,yg:()=>g});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var p=n.createContext({}),u=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},c=function(e){var t=u(e.components);return n.createElement(p.Provider,{value:t},e.children)},y="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,l=e.originalType,p=e.parentName,c=o(e,["components","mdxType","originalType","parentName"]),y=u(r),d=a,g=y["".concat(p,".").concat(d)]||y[d]||s[d]||l;return r?n.createElement(g,i(i({ref:t},c),{},{components:r})):n.createElement(g,i({ref:t},c))}));function g(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=r.length,i=new Array(l);i[0]=d;var o={};for(var p in t)hasOwnProperty.call(t,p)&&(o[p]=t[p]);o.originalType=e,o[y]="string"==typeof e?e:a,i[1]=o;for(var u=2;u{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>s,frontMatter:()=>l,metadata:()=>o,toc:()=>u});var n=r(8168),a=(r(6540),r(5680));const l={},i=void 0,o={unversionedId:"study/think/\u67b6\u6784/\u67b6\u6784",id:"study/think/\u67b6\u6784/\u67b6\u6784",title:"\u67b6\u6784",description:"\u5b9a\u4e49",source:"@site/docs/study/think/\u67b6\u6784/\u67b6\u6784.md",sourceDirName:"study/think/\u67b6\u6784",slug:"/study/think/\u67b6\u6784/",permalink:"/docs/study/think/\u67b6\u6784/",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u5e76\u53d1\u6a21\u578b",permalink:"/docs/study/think/\u5e76\u53d1\u6a21\u578b"},next:{title:"CAP\u7406\u8bba",permalink:"/docs/study/think/\u67b6\u6784/CAP\u7406\u8bba"}},p={},u=[{value:"\u5b9a\u4e49",id:"\u5b9a\u4e49",level:3},{value:"\u5206\u7c7b",id:"\u5206\u7c7b",level:3},{value:"\u4ea7\u54c1\u67b6\u6784",id:"\u4ea7\u54c1\u67b6\u6784",level:4},{value:"\u8f6f\u4ef6\u67b6\u6784",id:"\u8f6f\u4ef6\u67b6\u6784",level:4},{value:"\u67b6\u6784\u5e08\u7684\u80fd\u529b",id:"\u67b6\u6784\u5e08\u7684\u80fd\u529b",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],c={toc:u},y="wrapper";function s(e){let{components:t,...l}=e;return(0,a.yg)(y,(0,n.A)({},c,l,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"\u5b9a\u4e49"},"\u5b9a\u4e49"),(0,a.yg)("p",null,"\u67b6\u6784\u8fd9\u4e2a\u8bcd\u6700\u65e9\u662f\u8ddf\u968f\u7740\u5efa\u7b51\u51fa\u73b0\u7684\uff0c\u8fdb\u5165\u5230\u8f6f\u4ef6\u884c\u4e1a\u540e\uff0c\u5b83\u7684\u542b\u4e49\u6709\u4e86\u4e00\u4e9b\u53d8\u5316\uff0c\u4f46\u6700\u57fa\u7840\u7684\u542b\u4e49\u8fd8\u662f\u6ca1\u6709\u53d8\u7684\u3002\u672c\u8d28\u4e0a\u6765\u8bf4\uff0c\u67b6\u6784\u662f\u4e00\u4e2a\u8bbe\u8ba1\u52a8\u4f5c\u548c\u5b9e\u73b0\u52a8\u4f5c\uff1b\u8bbe\u8ba1\u52a8\u4f5c\u63cf\u8ff0\u7684\u662f\u52fe\u52d2\u51fa\u6ee1\u8db3\u5ba2\u6237\u6218\u7565\u89c4\u5212\u9700\u6c42\u7684\u4ea7\u54c1\uff1b\u5b9e\u73b0\u52a8\u4f5c\u63cf\u8ff0\u7684\u662f\u5c06\u6784\u4ef6\u7ec4\u5408\u6210\u7ed3\u6784\u7684\u8fc7\u7a0b\u3002"),(0,a.yg)("h3",{id:"\u5206\u7c7b"},"\u5206\u7c7b"),(0,a.yg)("p",null,"\u4f9d\u636e\u67b6\u6784\u7684\u5b9a\u4e49\uff0c\u53ef\u4ee5\u5c06\u67b6\u6784\u5206\u7c7b\u4e3a\u4ea7\u54c1\u67b6\u6784\u548c\u8f6f\u4ef6\u67b6\u6784\u4e24\u4e2a\u5927\u7c7b\u3002\n\u5728\u8fd9\u4e24\u4e2a\u5927\u7c7b\u4e0b\uff0c\u8fd8\u53ef\u4ee5\u7ee7\u7eed\u5212\u5206\u5b50\u7c7b\uff0c\u5982\u4e0b\uff1a"),(0,a.yg)("h4",{id:"\u4ea7\u54c1\u67b6\u6784"},"\u4ea7\u54c1\u67b6\u6784"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"\u4e1a\u52a1\u67b6\u6784")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"\u5e94\u7528\u67b6\u6784")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"\u89e3\u51b3\u65b9\u6848\u67b6\u6784"))),(0,a.yg)("h4",{id:"\u8f6f\u4ef6\u67b6\u6784"},"\u8f6f\u4ef6\u67b6\u6784"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"\u6570\u636e\u67b6\u6784")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"\u57fa\u7840\u7ed3\u6784\u67b6\u6784")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"\u7279\u5b9a\u6280\u672f\u67b6\u6784"))),(0,a.yg)("p",null,"\u4e0a\u9762\u53ea\u662f\u5217\u51fa\u4e86\u4e00\u90e8\u5206\u67b6\u6784\u5b50\u5206\u7c7b\uff0c\u7406\u8bba\u4e0a\u8fd8\u53ef\u4ee5\u7ee7\u7eed\u5212\u5206\uff0c\u4f46\u5728\u5927\u591a\u6570\u7684\u5b9e\u9645\u751f\u4ea7\u4e2d\uff0c\u901a\u5e38\u4e0d\u4f1a\u6709\u8fd9\u4e48\u8be6\u7ec6\u7684\u5206\u7c7b\uff0c\u5e38\u6001\u662f\u8f6f\u4ef6\u67b6\u6784\u4e0e\u4ea7\u54c1\u67b6\u6784\u90fd\u7531\u4e00\u4e2a\u4eba\u8d1f\u8d23\u5b9e\u73b0\u3002"),(0,a.yg)("h3",{id:"\u67b6\u6784\u5e08\u7684\u80fd\u529b"},"\u67b6\u6784\u5e08\u7684\u80fd\u529b"),(0,a.yg)("p",null,(0,a.yg)("img",{alt:"1",src:r(6072).A,width:"750",height:"432"})),(0,a.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("a",{parentName:"li",href:"https://chunsoft.blog.csdn.net/article/details/112793766"},"\u67b6\u6784\u7684\u672c\u8d28"))))}s.isMDXComponent=!0},6072:(e,t,r)=>{r.d(t,{A:()=>n});const n=r.p+"assets/images/1-13c1c55dd9336f3367f2bd51a8149288.jpg"}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1208],{5680:(e,t,r)=>{r.d(t,{xA:()=>c,yg:()=>g});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var p=n.createContext({}),u=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},c=function(e){var t=u(e.components);return n.createElement(p.Provider,{value:t},e.children)},y="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,l=e.originalType,p=e.parentName,c=o(e,["components","mdxType","originalType","parentName"]),y=u(r),d=a,g=y["".concat(p,".").concat(d)]||y[d]||s[d]||l;return r?n.createElement(g,i(i({ref:t},c),{},{components:r})):n.createElement(g,i({ref:t},c))}));function g(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=r.length,i=new Array(l);i[0]=d;var o={};for(var p in t)hasOwnProperty.call(t,p)&&(o[p]=t[p]);o.originalType=e,o[y]="string"==typeof e?e:a,i[1]=o;for(var u=2;u{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>s,frontMatter:()=>l,metadata:()=>o,toc:()=>u});var n=r(8168),a=(r(6540),r(5680));const l={},i=void 0,o={unversionedId:"study/think/\u67b6\u6784/\u67b6\u6784",id:"study/think/\u67b6\u6784/\u67b6\u6784",title:"\u67b6\u6784",description:"\u5b9a\u4e49",source:"@site/docs/study/think/\u67b6\u6784/\u67b6\u6784.md",sourceDirName:"study/think/\u67b6\u6784",slug:"/study/think/\u67b6\u6784/",permalink:"/docs/study/think/\u67b6\u6784/",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"\u5e76\u53d1\u6a21\u578b",permalink:"/docs/study/think/\u5e76\u53d1\u6a21\u578b"},next:{title:"CAP\u7406\u8bba",permalink:"/docs/study/think/\u67b6\u6784/CAP\u7406\u8bba"}},p={},u=[{value:"\u5b9a\u4e49",id:"\u5b9a\u4e49",level:3},{value:"\u5206\u7c7b",id:"\u5206\u7c7b",level:3},{value:"\u4ea7\u54c1\u67b6\u6784",id:"\u4ea7\u54c1\u67b6\u6784",level:4},{value:"\u8f6f\u4ef6\u67b6\u6784",id:"\u8f6f\u4ef6\u67b6\u6784",level:4},{value:"\u67b6\u6784\u5e08\u7684\u80fd\u529b",id:"\u67b6\u6784\u5e08\u7684\u80fd\u529b",level:3},{value:"\u53c2\u8003",id:"\u53c2\u8003",level:3}],c={toc:u},y="wrapper";function s(e){let{components:t,...l}=e;return(0,a.yg)(y,(0,n.A)({},c,l,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"\u5b9a\u4e49"},"\u5b9a\u4e49"),(0,a.yg)("p",null,"\u67b6\u6784\u8fd9\u4e2a\u8bcd\u6700\u65e9\u662f\u8ddf\u968f\u7740\u5efa\u7b51\u51fa\u73b0\u7684\uff0c\u8fdb\u5165\u5230\u8f6f\u4ef6\u884c\u4e1a\u540e\uff0c\u5b83\u7684\u542b\u4e49\u6709\u4e86\u4e00\u4e9b\u53d8\u5316\uff0c\u4f46\u6700\u57fa\u7840\u7684\u542b\u4e49\u8fd8\u662f\u6ca1\u6709\u53d8\u7684\u3002\u672c\u8d28\u4e0a\u6765\u8bf4\uff0c\u67b6\u6784\u662f\u4e00\u4e2a\u8bbe\u8ba1\u52a8\u4f5c\u548c\u5b9e\u73b0\u52a8\u4f5c\uff1b\u8bbe\u8ba1\u52a8\u4f5c\u63cf\u8ff0\u7684\u662f\u52fe\u52d2\u51fa\u6ee1\u8db3\u5ba2\u6237\u6218\u7565\u89c4\u5212\u9700\u6c42\u7684\u4ea7\u54c1\uff1b\u5b9e\u73b0\u52a8\u4f5c\u63cf\u8ff0\u7684\u662f\u5c06\u6784\u4ef6\u7ec4\u5408\u6210\u7ed3\u6784\u7684\u8fc7\u7a0b\u3002"),(0,a.yg)("h3",{id:"\u5206\u7c7b"},"\u5206\u7c7b"),(0,a.yg)("p",null,"\u4f9d\u636e\u67b6\u6784\u7684\u5b9a\u4e49\uff0c\u53ef\u4ee5\u5c06\u67b6\u6784\u5206\u7c7b\u4e3a\u4ea7\u54c1\u67b6\u6784\u548c\u8f6f\u4ef6\u67b6\u6784\u4e24\u4e2a\u5927\u7c7b\u3002\n\u5728\u8fd9\u4e24\u4e2a\u5927\u7c7b\u4e0b\uff0c\u8fd8\u53ef\u4ee5\u7ee7\u7eed\u5212\u5206\u5b50\u7c7b\uff0c\u5982\u4e0b\uff1a"),(0,a.yg)("h4",{id:"\u4ea7\u54c1\u67b6\u6784"},"\u4ea7\u54c1\u67b6\u6784"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"\u4e1a\u52a1\u67b6\u6784")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"\u5e94\u7528\u67b6\u6784")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"\u89e3\u51b3\u65b9\u6848\u67b6\u6784"))),(0,a.yg)("h4",{id:"\u8f6f\u4ef6\u67b6\u6784"},"\u8f6f\u4ef6\u67b6\u6784"),(0,a.yg)("ul",null,(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"\u6570\u636e\u67b6\u6784")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"\u57fa\u7840\u7ed3\u6784\u67b6\u6784")),(0,a.yg)("li",{parentName:"ul"},(0,a.yg)("p",{parentName:"li"},"\u7279\u5b9a\u6280\u672f\u67b6\u6784"))),(0,a.yg)("p",null,"\u4e0a\u9762\u53ea\u662f\u5217\u51fa\u4e86\u4e00\u90e8\u5206\u67b6\u6784\u5b50\u5206\u7c7b\uff0c\u7406\u8bba\u4e0a\u8fd8\u53ef\u4ee5\u7ee7\u7eed\u5212\u5206\uff0c\u4f46\u5728\u5927\u591a\u6570\u7684\u5b9e\u9645\u751f\u4ea7\u4e2d\uff0c\u901a\u5e38\u4e0d\u4f1a\u6709\u8fd9\u4e48\u8be6\u7ec6\u7684\u5206\u7c7b\uff0c\u5e38\u6001\u662f\u8f6f\u4ef6\u67b6\u6784\u4e0e\u4ea7\u54c1\u67b6\u6784\u90fd\u7531\u4e00\u4e2a\u4eba\u8d1f\u8d23\u5b9e\u73b0\u3002"),(0,a.yg)("h3",{id:"\u67b6\u6784\u5e08\u7684\u80fd\u529b"},"\u67b6\u6784\u5e08\u7684\u80fd\u529b"),(0,a.yg)("p",null,(0,a.yg)("img",{alt:"1",src:r(6072).A,width:"750",height:"432"})),(0,a.yg)("h3",{id:"\u53c2\u8003"},"\u53c2\u8003"),(0,a.yg)("ol",null,(0,a.yg)("li",{parentName:"ol"},(0,a.yg)("a",{parentName:"li",href:"https://chunsoft.blog.csdn.net/article/details/112793766"},"\u67b6\u6784\u7684\u672c\u8d28"))))}s.isMDXComponent=!0},6072:(e,t,r)=>{r.d(t,{A:()=>n});const n=r.p+"assets/images/1-13c1c55dd9336f3367f2bd51a8149288.jpg"}}]); \ No newline at end of file diff --git a/assets/js/ffb15ddc.aa6e0452.js b/assets/js/ffb15ddc.3bd2e6c6.js similarity index 98% rename from assets/js/ffb15ddc.aa6e0452.js rename to assets/js/ffb15ddc.3bd2e6c6.js index 59fae6876..c8cde1755 100644 --- a/assets/js/ffb15ddc.aa6e0452.js +++ b/assets/js/ffb15ddc.3bd2e6c6.js @@ -1 +1 @@ -"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1120],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>m});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function p(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var i=n.createContext({}),l=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):p(p({},t),e)),r},u=function(e){var t=l(e.components);return n.createElement(i.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,i=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),s=l(r),y=a,m=s["".concat(i,".").concat(y)]||s[y]||d[y]||o;return r?n.createElement(m,p(p({ref:t},u),{},{components:r})):n.createElement(m,p({ref:t},u))}));function m(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,p=new Array(o);p[0]=y;var c={};for(var i in t)hasOwnProperty.call(t,i)&&(c[i]=t[i]);c.originalType=e,c[s]="string"==typeof e?e:a,p[1]=c;for(var l=2;l{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>p,default:()=>d,frontMatter:()=>o,metadata:()=>c,toc:()=>l});var n=r(8168),a=(r(6540),r(5680));const o={},p=void 0,c={unversionedId:"study/program/ETL/dataX",id:"study/program/ETL/dataX",title:"dataX",description:"\u6982\u8ff0",source:"@site/docs/study/program/ETL/dataX.md",sourceDirName:"study/program/ETL",slug:"/study/program/ETL/dataX",permalink:"/docs/study/program/ETL/dataX",draft:!1,tags:[],version:"current",lastUpdatedAt:1708412736,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Dart \u5b66\u4e60\u8d44\u6599",permalink:"/docs/study/program/Dart/\u5b66\u4e60\u8d44\u6599"},next:{title:"flume",permalink:"/docs/study/program/ETL/flume"}},i={},l=[{value:"\u6982\u8ff0",id:"\u6982\u8ff0",level:3}],u={toc:l},s="wrapper";function d(e){let{components:t,...r}=e;return(0,a.yg)(s,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"\u6982\u8ff0"},"\u6982\u8ff0"),(0,a.yg)("p",null,"DataX \u662f\u963f\u91cc\u5df4\u5df4\u96c6\u56e2\u5185\u88ab\u5e7f\u6cdb\u4f7f\u7528\u7684",(0,a.yg)("strong",{parentName:"p"},"\u79bb\u7ebf\u6570\u636e\u540c\u6b65\u5de5\u5177/\u5e73\u53f0"),"\uff0c\u5b9e\u73b0\u5305\u62ec MySQL\u3001Oracle\u3001SqlServer\u3001Postgre\u3001HDFS\u3001Hive\u3001ADS\u3001HBase\u3001TableStore(OTS)\u3001MaxCompute(ODPS)\u3001DRDS \u7b49\u5404\u79cd\u5f02\u6784\u6570\u636e\u6e90\u4e4b\u95f4\u9ad8\u6548\u7684\u6570\u636e\u540c\u6b65\u529f\u80fd\u3002"),(0,a.yg)("p",null,(0,a.yg)("strong",{parentName:"p"},"\u5f00\u6e90\u5730\u5740"),"\uff1a",(0,a.yg)("a",{parentName:"p",href:"https://github.com/alibaba/DataX"},"https://github.com/alibaba/DataX")))}d.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1120],{5680:(e,t,r)=>{r.d(t,{xA:()=>u,yg:()=>m});var n=r(6540);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function p(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var i=n.createContext({}),l=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):p(p({},t),e)),r},u=function(e){var t=l(e.components);return n.createElement(i.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},y=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,i=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),s=l(r),y=a,m=s["".concat(i,".").concat(y)]||s[y]||d[y]||o;return r?n.createElement(m,p(p({ref:t},u),{},{components:r})):n.createElement(m,p({ref:t},u))}));function m(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,p=new Array(o);p[0]=y;var c={};for(var i in t)hasOwnProperty.call(t,i)&&(c[i]=t[i]);c.originalType=e,c[s]="string"==typeof e?e:a,p[1]=c;for(var l=2;l{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>p,default:()=>d,frontMatter:()=>o,metadata:()=>c,toc:()=>l});var n=r(8168),a=(r(6540),r(5680));const o={},p=void 0,c={unversionedId:"study/program/ETL/dataX",id:"study/program/ETL/dataX",title:"dataX",description:"\u6982\u8ff0",source:"@site/docs/study/program/ETL/dataX.md",sourceDirName:"study/program/ETL",slug:"/study/program/ETL/dataX",permalink:"/docs/study/program/ETL/dataX",draft:!1,tags:[],version:"current",lastUpdatedAt:1708422386,formattedLastUpdatedAt:"2024\u5e742\u670820\u65e5",frontMatter:{},sidebar:"studySidebar",previous:{title:"Dart \u5b66\u4e60\u8d44\u6599",permalink:"/docs/study/program/Dart/\u5b66\u4e60\u8d44\u6599"},next:{title:"flume",permalink:"/docs/study/program/ETL/flume"}},i={},l=[{value:"\u6982\u8ff0",id:"\u6982\u8ff0",level:3}],u={toc:l},s="wrapper";function d(e){let{components:t,...r}=e;return(0,a.yg)(s,(0,n.A)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.yg)("h3",{id:"\u6982\u8ff0"},"\u6982\u8ff0"),(0,a.yg)("p",null,"DataX \u662f\u963f\u91cc\u5df4\u5df4\u96c6\u56e2\u5185\u88ab\u5e7f\u6cdb\u4f7f\u7528\u7684",(0,a.yg)("strong",{parentName:"p"},"\u79bb\u7ebf\u6570\u636e\u540c\u6b65\u5de5\u5177/\u5e73\u53f0"),"\uff0c\u5b9e\u73b0\u5305\u62ec MySQL\u3001Oracle\u3001SqlServer\u3001Postgre\u3001HDFS\u3001Hive\u3001ADS\u3001HBase\u3001TableStore(OTS)\u3001MaxCompute(ODPS)\u3001DRDS \u7b49\u5404\u79cd\u5f02\u6784\u6570\u636e\u6e90\u4e4b\u95f4\u9ad8\u6548\u7684\u6570\u636e\u540c\u6b65\u529f\u80fd\u3002"),(0,a.yg)("p",null,(0,a.yg)("strong",{parentName:"p"},"\u5f00\u6e90\u5730\u5740"),"\uff1a",(0,a.yg)("a",{parentName:"p",href:"https://github.com/alibaba/DataX"},"https://github.com/alibaba/DataX")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/runtime~main.79c012b1.js b/assets/js/runtime~main.abf48aae.js similarity index 62% rename from assets/js/runtime~main.79c012b1.js rename to assets/js/runtime~main.abf48aae.js index 66ccd7460..c4b676940 100644 --- a/assets/js/runtime~main.79c012b1.js +++ b/assets/js/runtime~main.abf48aae.js @@ -1 +1 @@ -(()=>{"use strict";var e,c,a,f,b,d={},t={};function r(e){var c=t[e];if(void 0!==c)return c.exports;var a=t[e]={id:e,loaded:!1,exports:{}};return d[e].call(a.exports,a,a.exports,r),a.loaded=!0,a.exports}r.m=d,r.c=t,e=[],r.O=(c,a,f,b)=>{if(!a){var d=1/0;for(i=0;i=b)&&Object.keys(r.O).every((e=>r.O[e](a[o])))?a.splice(o--,1):(t=!1,b0&&e[i-1][2]>b;i--)e[i]=e[i-1];e[i]=[a,f,b]},r.n=e=>{var c=e&&e.__esModule?()=>e.default:()=>e;return r.d(c,{a:c}),c},a=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,r.t=function(e,f){if(1&f&&(e=this(e)),8&f)return e;if("object"==typeof e&&e){if(4&f&&e.__esModule)return e;if(16&f&&"function"==typeof e.then)return e}var b=Object.create(null);r.r(b);var d={};c=c||[null,a({}),a([]),a(a)];for(var t=2&f&&e;"object"==typeof t&&!~c.indexOf(t);t=a(t))Object.getOwnPropertyNames(t).forEach((c=>d[c]=()=>e[c]));return d.default=()=>e,r.d(b,d),b},r.d=(e,c)=>{for(var a in c)r.o(c,a)&&!r.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:c[a]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce(((c,a)=>(r.f[a](e,c),c)),[])),r.u=e=>"assets/js/"+({0:"84ea7d53",15:"576ec208",30:"f12f9261",184:"5f897b5c",225:"b14b689b",256:"15ae2b3f",344:"1b135b54",379:"b2645d4e",385:"35b5dc5a",407:"2015f8aa",435:"4d3fd4b9",496:"3b2c25df",497:"a80da1cf",568:"f1f3474f",590:"cd56b708",664:"d8a12065",695:"68699a4c",700:"d92575b7",720:"b4a7dd16",767:"350be966",822:"3e116dbc",842:"1b25ada3",855:"0b24b89a",927:"9d0163be",1053:"da59034b",1056:"955edfb7",1084:"1c123384",1090:"4d86c8f8",1120:"ffb15ddc",1176:"ba902cdb",1208:"fa157919",1213:"36351059",1226:"d924bf19",1293:"12d1694e",1366:"3815e5ff",1399:"74adc76f",1521:"7c0c45cc",1522:"c7fe4f6d",1570:"01c8f07b",1648:"d29ac9c5",1746:"62465e63",1808:"2b486500",1812:"52135254",1821:"8ac6cabb",1956:"3eef7308",1991:"b2b675dd",1995:"aae926f6",1999:"086f0ef7",2039:"6cce85b2",2041:"8b59d635",2042:"399850d1",2168:"5f2eed60",2189:"5ca6a2d2",2190:"a47a01cb",2202:"5b89160d",2228:"28f5562e",2243:"e907057a",2320:"b38419a7",2347:"1d6606cd",2368:"c06ef779",2389:"ecff2ea2",2582:"3c356cd2",2613:"2a0a68ae",2634:"c4f5d8e4",2677:"04e22f3f",2709:"d188aee2",2711:"9e4087bc",2747:"35d73bf2",2750:"356a0ac6",2861:"33a0b88e",2863:"e4e6cea9",2923:"c86c7bbe",2961:"ac6e53b7",2996:"94529d15",3011:"b39354b4",3034:"f5515f41",3125:"9f5c6157",3180:"1c40b03d",3213:"75219fff",3228:"b34206f0",3249:"ccc49370",3310:"03101150",3325:"013f59b8",3329:"f1999a3d",3338:"8cc20a8d",3402:"a76cbea0",3428:"96162fed",3441:"1ea907ab",3493:"74b4aa98",3624:"4b0ccf38",3637:"f4f34a3a",3751:"1830dc74",3806:"62781bcd",3845:"3c4f1597",3971:"aef8cf14",3991:"89a98191",4003:"04cddcee",4072:"4af85ab8",4080:"5d0c646c",4134:"393be207",4243:"0eefe494",4283:"2d2ef872",4377:"319ed101",4501:"3f06bf29",4504:"22d8222a",4586:"f90dc98f",4630:"9ad28e53",4632:"817aa27b",4680:"9703c56f",4722:"608ae6a4",4793:"f7ec4137",4813:"6875c492",4908:"0dfb2733",4963:"0a1f7513",5006:"5b270517",5074:"ce0c2574",5093:"009da349",5175:"2fa90042",5218:"61127ee0",5290:"c3633f34",5350:"2b5f2f35",5382:"e36fd319",5464:"6c9e9146",5476:"ed9ae553",5537:"588433b1",5565:"2e250d6d",5631:"9a914db6",5650:"32dcf95e",5731:"5e266219",5779:"20ecba9b",5829:"231f518d",5861:"50eef34b",5878:"a4c44b85",5894:"b2f554cd",6061:"1f391b9e",6097:"455d41bc",6172:"d864a059",6215:"b3480cf8",6240:"ee028c53",6316:"c348e262",6349:"7f32d532",6359:"f13b6fbf",6407:"1e8406f2",6427:"5ae76acd",6473:"e0041558",6550:"2e955f05",6598:"1387c807",6784:"0f04c4bf",6861:"e8f70b20",6898:"73162314",6902:"6b91e1af",6923:"4f6149ca",7005:"34be6e6a",7017:"eb43d790",7055:"32ef234c",7133:"afde6f8f",7134:"3474579f",7144:"ed01863f",7145:"281494d0",7152:"228940c7",7165:"6bfc7002",7171:"e17376a0",7269:"65c56656",7368:"eb846286",7401:"9801fcb7",7420:"1c2262cb",7445:"398dd9ed",7472:"814f3328",7484:"7a58d7fa",7486:"03cd0d32",7643:"a6aa9e1f",7649:"a6c94d4c",7671:"826108d9",7686:"4d36f4bb",7748:"2c29bcc5",7782:"25692582",7816:"de78196c",7817:"0b7620c8",7840:"5886a939",7876:"489cc4f4",8173:"e2835ef4",8194:"c9e57e8c",8209:"01a85c17",8274:"42c9ab86",8351:"97b42080",8391:"f6ece308",8399:"cadc4043",8401:"17896441",8529:"0e133684",8581:"935f2afb",8714:"1be78505",8723:"8303fa10",8788:"2bc909a9",8816:"c38cd4f0",8859:"4fb554a1",8901:"0dc7fd42",8906:"2dda2596",8922:"a7f1c1ae",8985:"06a5f76a",8998:"4cf8b132",9063:"9062da7c",9089:"c7df6888",9121:"0ad179ee",9203:"947d4688",9229:"037fbca4",9253:"39e40f36",9267:"a7023ddc",9304:"397e604e",9314:"f7453080",9325:"59362658",9343:"26299e01",9376:"67e91227",9390:"b153ec3c",9450:"be2a55e4",9489:"44c08670",9624:"b6694e92",9665:"e983cebe",9684:"249c18b0",9688:"3b47b6b5",9694:"e0868071",9826:"c50996a1",9841:"e3905ad3",9878:"a3633e48",9989:"e7da4cec"}[e]||e)+"."+{0:"ab308969",15:"e4d3cb17",30:"b4411ad0",184:"f522fbe7",225:"79d6cf97",256:"5a6350ee",344:"334e23cd",379:"6c22e9de",385:"ab4f0902",407:"a32339a2",435:"32d618a8",496:"a15be0dc",497:"5dd6d1e5",568:"a052c807",590:"e75fe779",664:"26687301",695:"63676184",700:"6b15b1df",720:"3fc127a8",767:"874e2bc3",822:"db4995ab",842:"d8ff626a",855:"5f740366",927:"4e89dd22",1053:"e7215ca1",1056:"c5488e40",1084:"9b9282a2",1090:"e2121099",1120:"aa6e0452",1176:"ce0823dd",1208:"68e9a60d",1213:"554590f8",1226:"57e82e3f",1293:"d88fd38e",1366:"af887039",1399:"ede17127",1521:"16fe222f",1522:"e7ce3410",1570:"5e522c62",1648:"95702c50",1746:"77aecfb5",1774:"e76e375b",1808:"2a3495bc",1812:"236fae92",1821:"228dfcb8",1956:"b7a089a8",1991:"3faf1380",1995:"766afc48",1999:"665a26de",2039:"8cdae565",2041:"f6a7c690",2042:"31b810cd",2168:"b8e603ee",2189:"1e26a5fa",2190:"0acd47ef",2202:"366ad015",2228:"0e54e065",2243:"b528855c",2320:"f2534b7f",2347:"21759358",2368:"7253016b",2389:"a0c845fb",2582:"e194ae55",2613:"1f6557d0",2634:"c1cdf980",2677:"15fd3d22",2709:"d995120d",2711:"fd7711ba",2747:"7084f0d6",2750:"745b46da",2861:"2d8ce75c",2863:"7bda6399",2923:"2ed2bea6",2961:"257bead9",2996:"af0941ec",3011:"f471c090",3034:"9f14e268",3125:"db94c52c",3180:"8a58137d",3213:"1842f557",3228:"498701a3",3249:"db557050",3310:"2394f2a1",3325:"b5360e9d",3329:"1325fa0b",3338:"c9b72d6e",3369:"d5f1cfe4",3402:"abcf50b0",3428:"8fd01534",3441:"da6d14c7",3493:"8c07f8f9",3624:"e82e19f6",3637:"0fe4b6ce",3751:"8f99a8a3",3806:"ad05db64",3845:"d5949486",3971:"93a6f9d2",3991:"1c5150c1",4003:"1c21e147",4072:"56171a64",4080:"b0adcc1b",4134:"03b51e49",4243:"42c7720e",4283:"4dfaa285",4377:"23d9c300",4501:"e171fa6f",4504:"8c324c3b",4586:"a316901f",4630:"524dfd11",4632:"fb2f3965",4680:"f9157ed6",4722:"e70382e0",4793:"91ca3ce8",4813:"17f4aa3a",4908:"5421ba98",4963:"8420172a",5006:"ed08f3b9",5074:"94f421ea",5093:"564f24bf",5175:"620ce869",5218:"82fe81ee",5290:"c3f8767a",5350:"d4412468",5382:"11e2cea4",5464:"57305156",5476:"bce505a4",5537:"0efa5c6b",5565:"db50c638",5631:"d653c4c9",5650:"c6538a90",5731:"fab8f6cf",5779:"f64d1336",5829:"e5784f26",5861:"bdae470b",5878:"f3b634f2",5894:"1f9c36c5",6061:"7a171a68",6097:"49744cce",6172:"df457785",6215:"75e7d455",6240:"81eee407",6316:"092f88f5",6349:"bf2f17f3",6359:"80fe4e66",6407:"2ce311e1",6427:"03aeaf3e",6473:"c6e82de2",6550:"295d82ed",6598:"cd0074a2",6784:"af2c0298",6861:"3c7c0943",6898:"d84404d8",6902:"2e152451",6923:"1262502b",7005:"81c6b3c7",7017:"28621b88",7055:"87279c6e",7133:"a196d949",7134:"0747341b",7144:"723475e8",7145:"84c66515",7152:"21236534",7165:"8fa9343a",7171:"9803abdf",7269:"628f022e",7368:"5a41526a",7401:"441b0a06",7420:"31046f60",7445:"64182682",7472:"7d117c8f",7484:"8d86e70a",7486:"cb02a844",7643:"c5d6d672",7649:"c25241f2",7671:"d8186c02",7686:"ac39401b",7748:"5e71a3f5",7782:"90f77a75",7816:"e4a74141",7817:"cfaa8feb",7840:"1cab4d9c",7876:"61d45c1b",8173:"75f40bf5",8194:"351655b5",8209:"de44d5e4",8274:"7624f85d",8351:"fe62a2ed",8391:"85f724ca",8399:"23bdc47b",8401:"779b1fef",8529:"730829e4",8581:"a05356a9",8714:"1d3f5e4a",8723:"6cf5ef62",8788:"ff6c4c11",8816:"07757f92",8859:"525b0144",8901:"afd717f2",8906:"03e5aba9",8922:"b3b5163f",8985:"fa33da07",8998:"cb8aac3a",9063:"82356233",9089:"9c1b95c9",9121:"90a61ceb",9203:"a3efba27",9229:"7eb42b39",9253:"b987af38",9267:"e42af808",9304:"bdc37ed4",9314:"e3ce0ebb",9325:"263ed787",9343:"35b745ea",9376:"4a6a788a",9390:"e1b94bc2",9450:"ae7d1181",9489:"588425bc",9624:"f696aa7e",9665:"f0e65e1a",9684:"3caf7a73",9688:"21376f84",9694:"1fe16512",9717:"d49fc58b",9826:"00449fb4",9841:"730c5b9f",9878:"c9991aa0",9989:"3b602e0a"}[e]+".js",r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,c)=>Object.prototype.hasOwnProperty.call(e,c),f={},b="docs:",r.l=(e,c,a,d)=>{if(f[e])f[e].push(c);else{var t,o;if(void 0!==a)for(var n=document.getElementsByTagName("script"),i=0;i{t.onerror=t.onload=null,clearTimeout(s);var b=f[e];if(delete f[e],t.parentNode&&t.parentNode.removeChild(t),b&&b.forEach((e=>e(a))),c)return c(a)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:t}),12e4);t.onerror=l.bind(null,t.onerror),t.onload=l.bind(null,t.onload),o&&document.head.appendChild(t)}},r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.p="/",r.gca=function(e){return e={17896441:"8401",25692582:"7782",36351059:"1213",52135254:"1812",59362658:"9325",73162314:"6898","84ea7d53":"0","576ec208":"15",f12f9261:"30","5f897b5c":"184",b14b689b:"225","15ae2b3f":"256","1b135b54":"344",b2645d4e:"379","35b5dc5a":"385","2015f8aa":"407","4d3fd4b9":"435","3b2c25df":"496",a80da1cf:"497",f1f3474f:"568",cd56b708:"590",d8a12065:"664","68699a4c":"695",d92575b7:"700",b4a7dd16:"720","350be966":"767","3e116dbc":"822","1b25ada3":"842","0b24b89a":"855","9d0163be":"927",da59034b:"1053","955edfb7":"1056","1c123384":"1084","4d86c8f8":"1090",ffb15ddc:"1120",ba902cdb:"1176",fa157919:"1208",d924bf19:"1226","12d1694e":"1293","3815e5ff":"1366","74adc76f":"1399","7c0c45cc":"1521",c7fe4f6d:"1522","01c8f07b":"1570",d29ac9c5:"1648","62465e63":"1746","2b486500":"1808","8ac6cabb":"1821","3eef7308":"1956",b2b675dd:"1991",aae926f6:"1995","086f0ef7":"1999","6cce85b2":"2039","8b59d635":"2041","399850d1":"2042","5f2eed60":"2168","5ca6a2d2":"2189",a47a01cb:"2190","5b89160d":"2202","28f5562e":"2228",e907057a:"2243",b38419a7:"2320","1d6606cd":"2347",c06ef779:"2368",ecff2ea2:"2389","3c356cd2":"2582","2a0a68ae":"2613",c4f5d8e4:"2634","04e22f3f":"2677",d188aee2:"2709","9e4087bc":"2711","35d73bf2":"2747","356a0ac6":"2750","33a0b88e":"2861",e4e6cea9:"2863",c86c7bbe:"2923",ac6e53b7:"2961","94529d15":"2996",b39354b4:"3011",f5515f41:"3034","9f5c6157":"3125","1c40b03d":"3180","75219fff":"3213",b34206f0:"3228",ccc49370:"3249","03101150":"3310","013f59b8":"3325",f1999a3d:"3329","8cc20a8d":"3338",a76cbea0:"3402","96162fed":"3428","1ea907ab":"3441","74b4aa98":"3493","4b0ccf38":"3624",f4f34a3a:"3637","1830dc74":"3751","62781bcd":"3806","3c4f1597":"3845",aef8cf14:"3971","89a98191":"3991","04cddcee":"4003","4af85ab8":"4072","5d0c646c":"4080","393be207":"4134","0eefe494":"4243","2d2ef872":"4283","319ed101":"4377","3f06bf29":"4501","22d8222a":"4504",f90dc98f:"4586","9ad28e53":"4630","817aa27b":"4632","9703c56f":"4680","608ae6a4":"4722",f7ec4137:"4793","6875c492":"4813","0dfb2733":"4908","0a1f7513":"4963","5b270517":"5006",ce0c2574:"5074","009da349":"5093","2fa90042":"5175","61127ee0":"5218",c3633f34:"5290","2b5f2f35":"5350",e36fd319:"5382","6c9e9146":"5464",ed9ae553:"5476","588433b1":"5537","2e250d6d":"5565","9a914db6":"5631","32dcf95e":"5650","5e266219":"5731","20ecba9b":"5779","231f518d":"5829","50eef34b":"5861",a4c44b85:"5878",b2f554cd:"5894","1f391b9e":"6061","455d41bc":"6097",d864a059:"6172",b3480cf8:"6215",ee028c53:"6240",c348e262:"6316","7f32d532":"6349",f13b6fbf:"6359","1e8406f2":"6407","5ae76acd":"6427",e0041558:"6473","2e955f05":"6550","1387c807":"6598","0f04c4bf":"6784",e8f70b20:"6861","6b91e1af":"6902","4f6149ca":"6923","34be6e6a":"7005",eb43d790:"7017","32ef234c":"7055",afde6f8f:"7133","3474579f":"7134",ed01863f:"7144","281494d0":"7145","228940c7":"7152","6bfc7002":"7165",e17376a0:"7171","65c56656":"7269",eb846286:"7368","9801fcb7":"7401","1c2262cb":"7420","398dd9ed":"7445","814f3328":"7472","7a58d7fa":"7484","03cd0d32":"7486",a6aa9e1f:"7643",a6c94d4c:"7649","826108d9":"7671","4d36f4bb":"7686","2c29bcc5":"7748",de78196c:"7816","0b7620c8":"7817","5886a939":"7840","489cc4f4":"7876",e2835ef4:"8173",c9e57e8c:"8194","01a85c17":"8209","42c9ab86":"8274","97b42080":"8351",f6ece308:"8391",cadc4043:"8399","0e133684":"8529","935f2afb":"8581","1be78505":"8714","8303fa10":"8723","2bc909a9":"8788",c38cd4f0:"8816","4fb554a1":"8859","0dc7fd42":"8901","2dda2596":"8906",a7f1c1ae:"8922","06a5f76a":"8985","4cf8b132":"8998","9062da7c":"9063",c7df6888:"9089","0ad179ee":"9121","947d4688":"9203","037fbca4":"9229","39e40f36":"9253",a7023ddc:"9267","397e604e":"9304",f7453080:"9314","26299e01":"9343","67e91227":"9376",b153ec3c:"9390",be2a55e4:"9450","44c08670":"9489",b6694e92:"9624",e983cebe:"9665","249c18b0":"9684","3b47b6b5":"9688",e0868071:"9694",c50996a1:"9826",e3905ad3:"9841",a3633e48:"9878",e7da4cec:"9989"}[e]||e,r.p+r.u(e)},(()=>{var e={5354:0,1869:0};r.f.j=(c,a)=>{var f=r.o(e,c)?e[c]:void 0;if(0!==f)if(f)a.push(f[2]);else if(/^(1869|5354)$/.test(c))e[c]=0;else{var b=new Promise(((a,b)=>f=e[c]=[a,b]));a.push(f[2]=b);var d=r.p+r.u(c),t=new Error;r.l(d,(a=>{if(r.o(e,c)&&(0!==(f=e[c])&&(e[c]=void 0),f)){var b=a&&("load"===a.type?"missing":a.type),d=a&&a.target&&a.target.src;t.message="Loading chunk "+c+" failed.\n("+b+": "+d+")",t.name="ChunkLoadError",t.type=b,t.request=d,f[1](t)}}),"chunk-"+c,c)}},r.O.j=c=>0===e[c];var c=(c,a)=>{var f,b,d=a[0],t=a[1],o=a[2],n=0;if(d.some((c=>0!==e[c]))){for(f in t)r.o(t,f)&&(r.m[f]=t[f]);if(o)var i=o(r)}for(c&&c(a);n{"use strict";var e,c,a,f,d,b={},t={};function r(e){var c=t[e];if(void 0!==c)return c.exports;var a=t[e]={id:e,loaded:!1,exports:{}};return b[e].call(a.exports,a,a.exports,r),a.loaded=!0,a.exports}r.m=b,r.c=t,e=[],r.O=(c,a,f,d)=>{if(!a){var b=1/0;for(i=0;i=d)&&Object.keys(r.O).every((e=>r.O[e](a[o])))?a.splice(o--,1):(t=!1,d0&&e[i-1][2]>d;i--)e[i]=e[i-1];e[i]=[a,f,d]},r.n=e=>{var c=e&&e.__esModule?()=>e.default:()=>e;return r.d(c,{a:c}),c},a=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,r.t=function(e,f){if(1&f&&(e=this(e)),8&f)return e;if("object"==typeof e&&e){if(4&f&&e.__esModule)return e;if(16&f&&"function"==typeof e.then)return e}var d=Object.create(null);r.r(d);var b={};c=c||[null,a({}),a([]),a(a)];for(var t=2&f&&e;"object"==typeof t&&!~c.indexOf(t);t=a(t))Object.getOwnPropertyNames(t).forEach((c=>b[c]=()=>e[c]));return b.default=()=>e,r.d(d,b),d},r.d=(e,c)=>{for(var a in c)r.o(c,a)&&!r.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:c[a]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce(((c,a)=>(r.f[a](e,c),c)),[])),r.u=e=>"assets/js/"+({0:"84ea7d53",15:"576ec208",30:"f12f9261",184:"5f897b5c",225:"b14b689b",256:"15ae2b3f",344:"1b135b54",379:"b2645d4e",385:"35b5dc5a",407:"2015f8aa",435:"4d3fd4b9",496:"3b2c25df",497:"a80da1cf",568:"f1f3474f",590:"cd56b708",664:"d8a12065",695:"68699a4c",700:"d92575b7",720:"b4a7dd16",767:"350be966",822:"3e116dbc",842:"1b25ada3",855:"0b24b89a",927:"9d0163be",1053:"da59034b",1056:"955edfb7",1084:"1c123384",1090:"4d86c8f8",1120:"ffb15ddc",1176:"ba902cdb",1208:"fa157919",1213:"36351059",1226:"d924bf19",1293:"12d1694e",1366:"3815e5ff",1399:"74adc76f",1521:"7c0c45cc",1522:"c7fe4f6d",1570:"01c8f07b",1648:"d29ac9c5",1746:"62465e63",1808:"2b486500",1812:"52135254",1821:"8ac6cabb",1956:"3eef7308",1991:"b2b675dd",1995:"aae926f6",1999:"086f0ef7",2039:"6cce85b2",2041:"8b59d635",2042:"399850d1",2168:"5f2eed60",2189:"5ca6a2d2",2190:"a47a01cb",2202:"5b89160d",2228:"28f5562e",2243:"e907057a",2320:"b38419a7",2347:"1d6606cd",2368:"c06ef779",2389:"ecff2ea2",2582:"3c356cd2",2613:"2a0a68ae",2634:"c4f5d8e4",2677:"04e22f3f",2709:"d188aee2",2711:"9e4087bc",2747:"35d73bf2",2750:"356a0ac6",2861:"33a0b88e",2863:"e4e6cea9",2923:"c86c7bbe",2961:"ac6e53b7",2996:"94529d15",3011:"b39354b4",3034:"f5515f41",3125:"9f5c6157",3180:"1c40b03d",3213:"75219fff",3228:"b34206f0",3249:"ccc49370",3310:"03101150",3325:"013f59b8",3329:"f1999a3d",3338:"8cc20a8d",3402:"a76cbea0",3428:"96162fed",3441:"1ea907ab",3493:"74b4aa98",3624:"4b0ccf38",3637:"f4f34a3a",3751:"1830dc74",3806:"62781bcd",3845:"3c4f1597",3971:"aef8cf14",3991:"89a98191",4003:"04cddcee",4072:"4af85ab8",4080:"5d0c646c",4134:"393be207",4243:"0eefe494",4283:"2d2ef872",4377:"319ed101",4501:"3f06bf29",4504:"22d8222a",4586:"f90dc98f",4630:"9ad28e53",4632:"817aa27b",4680:"9703c56f",4722:"608ae6a4",4793:"f7ec4137",4813:"6875c492",4908:"0dfb2733",4963:"0a1f7513",5006:"5b270517",5074:"ce0c2574",5093:"009da349",5175:"2fa90042",5218:"61127ee0",5290:"c3633f34",5350:"2b5f2f35",5382:"e36fd319",5464:"6c9e9146",5476:"ed9ae553",5537:"588433b1",5565:"2e250d6d",5631:"9a914db6",5650:"32dcf95e",5731:"5e266219",5779:"20ecba9b",5829:"231f518d",5861:"50eef34b",5878:"a4c44b85",5894:"b2f554cd",6061:"1f391b9e",6097:"455d41bc",6172:"d864a059",6215:"b3480cf8",6240:"ee028c53",6316:"c348e262",6349:"7f32d532",6359:"f13b6fbf",6407:"1e8406f2",6427:"5ae76acd",6473:"e0041558",6550:"2e955f05",6598:"1387c807",6784:"0f04c4bf",6861:"e8f70b20",6898:"73162314",6902:"6b91e1af",6923:"4f6149ca",7005:"34be6e6a",7017:"eb43d790",7055:"32ef234c",7133:"afde6f8f",7134:"3474579f",7144:"ed01863f",7145:"281494d0",7152:"228940c7",7165:"6bfc7002",7171:"e17376a0",7269:"65c56656",7368:"eb846286",7401:"9801fcb7",7420:"1c2262cb",7445:"398dd9ed",7472:"814f3328",7484:"7a58d7fa",7486:"03cd0d32",7643:"a6aa9e1f",7649:"a6c94d4c",7671:"826108d9",7686:"4d36f4bb",7748:"2c29bcc5",7782:"25692582",7816:"de78196c",7817:"0b7620c8",7840:"5886a939",7876:"489cc4f4",8173:"e2835ef4",8194:"c9e57e8c",8209:"01a85c17",8274:"42c9ab86",8351:"97b42080",8391:"f6ece308",8399:"cadc4043",8401:"17896441",8529:"0e133684",8581:"935f2afb",8714:"1be78505",8723:"8303fa10",8788:"2bc909a9",8816:"c38cd4f0",8859:"4fb554a1",8901:"0dc7fd42",8906:"2dda2596",8922:"a7f1c1ae",8985:"06a5f76a",8998:"4cf8b132",9063:"9062da7c",9089:"c7df6888",9121:"0ad179ee",9203:"947d4688",9229:"037fbca4",9253:"39e40f36",9267:"a7023ddc",9304:"397e604e",9314:"f7453080",9325:"59362658",9343:"26299e01",9376:"67e91227",9390:"b153ec3c",9450:"be2a55e4",9489:"44c08670",9624:"b6694e92",9665:"e983cebe",9684:"249c18b0",9688:"3b47b6b5",9694:"e0868071",9826:"c50996a1",9841:"e3905ad3",9878:"a3633e48",9989:"e7da4cec"}[e]||e)+"."+{0:"d9cd8aeb",15:"dd3f63a9",30:"a69bcf66",184:"a4b9267a",225:"bf5fcaab",256:"e777aaf5",344:"bf80b28d",379:"9c5dba94",385:"6c2b8af1",407:"608ea198",435:"0e9dd5f5",496:"df1cf6a3",497:"5dd6d1e5",568:"f7644efd",590:"6efc9777",664:"7110c8c5",695:"1f17da0a",700:"dc06a0a5",720:"7ee594cd",767:"5d3ed9a6",822:"9c8d5de7",842:"555a84a8",855:"5f740366",927:"0e03bd44",1053:"2d4ea727",1056:"77881b3e",1084:"25e0ca6d",1090:"e66c8eb6",1120:"3bd2e6c6",1176:"ce0823dd",1208:"95b3023d",1213:"cde371b5",1226:"d3aaaa35",1293:"4e08a3bb",1366:"0f2b21ad",1399:"61a864d2",1521:"16659b78",1522:"80235699",1570:"0fbdc828",1648:"95946b2d",1746:"57295463",1774:"e76e375b",1808:"6b37cbaa",1812:"518d2dfa",1821:"6a67dbf2",1956:"1754e1a0",1991:"3faf1380",1995:"5a0873af",1999:"d0ab0f2c",2039:"3fd87235",2041:"aa74ada3",2042:"26c49233",2168:"5c6e2c63",2189:"683b4d06",2190:"1ac3c226",2202:"7573e140",2228:"8ae8cb6d",2243:"e549ecee",2320:"dded40a4",2347:"b92e6581",2368:"20b8c523",2389:"1de70fe1",2582:"03f750a8",2613:"02fee4c4",2634:"c1cdf980",2677:"e0987c40",2709:"26aa90e9",2711:"fd7711ba",2747:"81c111a2",2750:"745b46da",2861:"2d8ce75c",2863:"d9a89c4c",2923:"38e8d216",2961:"159daac7",2996:"0a2d6455",3011:"5073f236",3034:"dd6022e0",3125:"4052c851",3180:"c8cab21e",3213:"65dd6f0f",3228:"bddb5c8c",3249:"db557050",3310:"22526e99",3325:"38c4de4e",3329:"6b230674",3338:"fac1457c",3369:"d5f1cfe4",3402:"abcf50b0",3428:"af95c723",3441:"a02dc11b",3493:"8c07f8f9",3624:"7e87b164",3637:"0fe4b6ce",3751:"8517021a",3806:"3eac4696",3845:"87481e4a",3971:"9e1c1d83",3991:"f6e27916",4003:"afb9cd8b",4072:"250b0fc7",4080:"2ac18023",4134:"03b51e49",4243:"56f57e38",4283:"74cb875f",4377:"28b8c8c7",4501:"f013cf67",4504:"4c7fd1f2",4586:"954d888d",4630:"0f4e39b9",4632:"7e7e2e17",4680:"935509b5",4722:"e70382e0",4793:"6edfd72a",4813:"17f4aa3a",4908:"bbed6c20",4963:"46384cb4",5006:"2b06309a",5074:"91500f2f",5093:"e344532f",5175:"7fdacab6",5218:"24091e44",5290:"bc9b15bf",5350:"056fe490",5382:"c6e7470f",5464:"416d5ff8",5476:"5227068e",5537:"ac127622",5565:"a71601f9",5631:"c94890fb",5650:"567e4da9",5731:"12357e77",5779:"7cc5d97e",5829:"b4b23bf9",5861:"92f9c738",5878:"95a4427a",5894:"1f9c36c5",6061:"7a171a68",6097:"b93ebf21",6172:"a44bf9d8",6215:"75e7d455",6240:"750bb918",6316:"b3d70ea8",6349:"fe6a9503",6359:"6b225d98",6407:"04b5e4c4",6427:"f64578fd",6473:"87cee600",6550:"c76f0c7b",6598:"288ad048",6784:"5710a47b",6861:"a3763d90",6898:"db1c2925",6902:"2650446d",6923:"d15e5671",7005:"288028c2",7017:"28621b88",7055:"9d9266a1",7133:"9420cd38",7134:"93743f17",7144:"8ea22d0d",7145:"02d12c5f",7152:"76968ffc",7165:"2838228e",7171:"e0a50227",7269:"432a8c4e",7368:"10935fc1",7401:"ad37f014",7420:"6c5c43a9",7445:"4cced19d",7472:"7d117c8f",7484:"2bb81fbe",7486:"e6369b1c",7643:"c5d6d672",7649:"34e5bbeb",7671:"2096e4d2",7686:"24ee3df0",7748:"6d9416f4",7782:"a604f2f6",7816:"abc0e5ea",7817:"9f6e551c",7840:"a07ac421",7876:"e32d220b",8173:"53c537f8",8194:"a6386b9f",8209:"de44d5e4",8274:"ae6058ec",8351:"387ba300",8391:"b6217eec",8399:"81c184c7",8401:"779b1fef",8529:"91d74156",8581:"a05356a9",8714:"1d3f5e4a",8723:"4c6a14f1",8788:"a8a8472e",8816:"17a22abf",8859:"92902ee8",8901:"70d82475",8906:"6a107b82",8922:"85ef83c7",8985:"e6203b76",8998:"cb8aac3a",9063:"51dcb40b",9089:"532d5cc7",9121:"47840986",9203:"0d4570b5",9229:"ed8c965d",9253:"2c84fe7e",9267:"e42af808",9304:"f3275611",9314:"ff4d0460",9325:"263ed787",9343:"8ab1ca8f",9376:"a96b95d1",9390:"e7a4203f",9450:"7228a742",9489:"db8fef05",9624:"616b2b45",9665:"6f128b70",9684:"f640ca37",9688:"2bc67421",9694:"1fe16512",9717:"d49fc58b",9826:"0e175621",9841:"47f1c1d3",9878:"8993b397",9989:"8825c4f4"}[e]+".js",r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,c)=>Object.prototype.hasOwnProperty.call(e,c),f={},d="docs:",r.l=(e,c,a,b)=>{if(f[e])f[e].push(c);else{var t,o;if(void 0!==a)for(var n=document.getElementsByTagName("script"),i=0;i{t.onerror=t.onload=null,clearTimeout(s);var d=f[e];if(delete f[e],t.parentNode&&t.parentNode.removeChild(t),d&&d.forEach((e=>e(a))),c)return c(a)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:t}),12e4);t.onerror=l.bind(null,t.onerror),t.onload=l.bind(null,t.onload),o&&document.head.appendChild(t)}},r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.p="/",r.gca=function(e){return e={17896441:"8401",25692582:"7782",36351059:"1213",52135254:"1812",59362658:"9325",73162314:"6898","84ea7d53":"0","576ec208":"15",f12f9261:"30","5f897b5c":"184",b14b689b:"225","15ae2b3f":"256","1b135b54":"344",b2645d4e:"379","35b5dc5a":"385","2015f8aa":"407","4d3fd4b9":"435","3b2c25df":"496",a80da1cf:"497",f1f3474f:"568",cd56b708:"590",d8a12065:"664","68699a4c":"695",d92575b7:"700",b4a7dd16:"720","350be966":"767","3e116dbc":"822","1b25ada3":"842","0b24b89a":"855","9d0163be":"927",da59034b:"1053","955edfb7":"1056","1c123384":"1084","4d86c8f8":"1090",ffb15ddc:"1120",ba902cdb:"1176",fa157919:"1208",d924bf19:"1226","12d1694e":"1293","3815e5ff":"1366","74adc76f":"1399","7c0c45cc":"1521",c7fe4f6d:"1522","01c8f07b":"1570",d29ac9c5:"1648","62465e63":"1746","2b486500":"1808","8ac6cabb":"1821","3eef7308":"1956",b2b675dd:"1991",aae926f6:"1995","086f0ef7":"1999","6cce85b2":"2039","8b59d635":"2041","399850d1":"2042","5f2eed60":"2168","5ca6a2d2":"2189",a47a01cb:"2190","5b89160d":"2202","28f5562e":"2228",e907057a:"2243",b38419a7:"2320","1d6606cd":"2347",c06ef779:"2368",ecff2ea2:"2389","3c356cd2":"2582","2a0a68ae":"2613",c4f5d8e4:"2634","04e22f3f":"2677",d188aee2:"2709","9e4087bc":"2711","35d73bf2":"2747","356a0ac6":"2750","33a0b88e":"2861",e4e6cea9:"2863",c86c7bbe:"2923",ac6e53b7:"2961","94529d15":"2996",b39354b4:"3011",f5515f41:"3034","9f5c6157":"3125","1c40b03d":"3180","75219fff":"3213",b34206f0:"3228",ccc49370:"3249","03101150":"3310","013f59b8":"3325",f1999a3d:"3329","8cc20a8d":"3338",a76cbea0:"3402","96162fed":"3428","1ea907ab":"3441","74b4aa98":"3493","4b0ccf38":"3624",f4f34a3a:"3637","1830dc74":"3751","62781bcd":"3806","3c4f1597":"3845",aef8cf14:"3971","89a98191":"3991","04cddcee":"4003","4af85ab8":"4072","5d0c646c":"4080","393be207":"4134","0eefe494":"4243","2d2ef872":"4283","319ed101":"4377","3f06bf29":"4501","22d8222a":"4504",f90dc98f:"4586","9ad28e53":"4630","817aa27b":"4632","9703c56f":"4680","608ae6a4":"4722",f7ec4137:"4793","6875c492":"4813","0dfb2733":"4908","0a1f7513":"4963","5b270517":"5006",ce0c2574:"5074","009da349":"5093","2fa90042":"5175","61127ee0":"5218",c3633f34:"5290","2b5f2f35":"5350",e36fd319:"5382","6c9e9146":"5464",ed9ae553:"5476","588433b1":"5537","2e250d6d":"5565","9a914db6":"5631","32dcf95e":"5650","5e266219":"5731","20ecba9b":"5779","231f518d":"5829","50eef34b":"5861",a4c44b85:"5878",b2f554cd:"5894","1f391b9e":"6061","455d41bc":"6097",d864a059:"6172",b3480cf8:"6215",ee028c53:"6240",c348e262:"6316","7f32d532":"6349",f13b6fbf:"6359","1e8406f2":"6407","5ae76acd":"6427",e0041558:"6473","2e955f05":"6550","1387c807":"6598","0f04c4bf":"6784",e8f70b20:"6861","6b91e1af":"6902","4f6149ca":"6923","34be6e6a":"7005",eb43d790:"7017","32ef234c":"7055",afde6f8f:"7133","3474579f":"7134",ed01863f:"7144","281494d0":"7145","228940c7":"7152","6bfc7002":"7165",e17376a0:"7171","65c56656":"7269",eb846286:"7368","9801fcb7":"7401","1c2262cb":"7420","398dd9ed":"7445","814f3328":"7472","7a58d7fa":"7484","03cd0d32":"7486",a6aa9e1f:"7643",a6c94d4c:"7649","826108d9":"7671","4d36f4bb":"7686","2c29bcc5":"7748",de78196c:"7816","0b7620c8":"7817","5886a939":"7840","489cc4f4":"7876",e2835ef4:"8173",c9e57e8c:"8194","01a85c17":"8209","42c9ab86":"8274","97b42080":"8351",f6ece308:"8391",cadc4043:"8399","0e133684":"8529","935f2afb":"8581","1be78505":"8714","8303fa10":"8723","2bc909a9":"8788",c38cd4f0:"8816","4fb554a1":"8859","0dc7fd42":"8901","2dda2596":"8906",a7f1c1ae:"8922","06a5f76a":"8985","4cf8b132":"8998","9062da7c":"9063",c7df6888:"9089","0ad179ee":"9121","947d4688":"9203","037fbca4":"9229","39e40f36":"9253",a7023ddc:"9267","397e604e":"9304",f7453080:"9314","26299e01":"9343","67e91227":"9376",b153ec3c:"9390",be2a55e4:"9450","44c08670":"9489",b6694e92:"9624",e983cebe:"9665","249c18b0":"9684","3b47b6b5":"9688",e0868071:"9694",c50996a1:"9826",e3905ad3:"9841",a3633e48:"9878",e7da4cec:"9989"}[e]||e,r.p+r.u(e)},(()=>{var e={5354:0,1869:0};r.f.j=(c,a)=>{var f=r.o(e,c)?e[c]:void 0;if(0!==f)if(f)a.push(f[2]);else if(/^(1869|5354)$/.test(c))e[c]=0;else{var d=new Promise(((a,d)=>f=e[c]=[a,d]));a.push(f[2]=d);var b=r.p+r.u(c),t=new Error;r.l(b,(a=>{if(r.o(e,c)&&(0!==(f=e[c])&&(e[c]=void 0),f)){var d=a&&("load"===a.type?"missing":a.type),b=a&&a.target&&a.target.src;t.message="Loading chunk "+c+" failed.\n("+d+": "+b+")",t.name="ChunkLoadError",t.type=d,t.request=b,f[1](t)}}),"chunk-"+c,c)}},r.O.j=c=>0===e[c];var c=(c,a)=>{var f,d,b=a[0],t=a[1],o=a[2],n=0;if(b.some((c=>0!==e[c]))){for(f in t)r.o(t,f)&&(r.m[f]=t[f]);if(o)var i=o(r)}for(c&&c(a);n - - + +

关于如何制作此网站

· 阅读需 1 分钟
wei c

创建 docusaurus 前端工程

此网站主要使用的技术是docusaurus,创建工程参考 Docusaurus 介绍

提示

核心命令很简单

npx create-docusaurus@latest my-website classic
cd my-website
npx docusaurus start

GITHUB 的 Action 功能

使用 GITHUB 的 Action 功能,在工程内创建.github/workflows/documentation.yml 文件,内容如下:

提示

.github/workflows/documentation.yml

name: Deploy Github pages
on:
push:
branches:
- master
permissions:
contents: write
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3

- name: Install and Build 🔧
run: |
npm i
npm run build

- name: Deploy 🚀
uses: JamesIves/github-pages-deploy-action@v4
with:
folder: build # The folder the action should deploy.

Action

- + \ No newline at end of file diff --git a/blog/archive/index.html b/blog/archive/index.html index 0fb1d4938..d4b12d11d 100644 --- a/blog/archive/index.html +++ b/blog/archive/index.html @@ -10,14 +10,14 @@ - - + + - + \ No newline at end of file diff --git a/blog/index.html b/blog/index.html index 48a860e91..dbd3e84f9 100644 --- a/blog/index.html +++ b/blog/index.html @@ -10,14 +10,14 @@ - - + +

· 阅读需 1 分钟
wei c

创建 docusaurus 前端工程

此网站主要使用的技术是docusaurus,创建工程参考 Docusaurus 介绍

提示

核心命令很简单

npx create-docusaurus@latest my-website classic
cd my-website
npx docusaurus start

GITHUB 的 Action 功能

使用 GITHUB 的 Action 功能,在工程内创建.github/workflows/documentation.yml 文件,内容如下:

提示

.github/workflows/documentation.yml

name: Deploy Github pages
on:
push:
branches:
- master
permissions:
contents: write
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3

- name: Install and Build 🔧
run: |
npm i
npm run build

- name: Deploy 🚀
uses: JamesIves/github-pages-deploy-action@v4
with:
folder: build # The folder the action should deploy.

Action

· 阅读需 1 分钟
wei c

CHATGPT 就是一个全能的长者,他知道的很多,只要你能正确的表达,他几乎可以完美的回答你。

提示

Use the power of React to create interactive blog posts.

<button onClick={() => alert("button clicked!")}>Click me!</button>
- + \ No newline at end of file diff --git a/blog/mdx-blog-post/index.html b/blog/mdx-blog-post/index.html index bc14cf885..1d202c54f 100644 --- a/blog/mdx-blog-post/index.html +++ b/blog/mdx-blog-post/index.html @@ -10,14 +10,14 @@ - - + +

关于CHATGPT

· 阅读需 1 分钟
wei c

CHATGPT 就是一个全能的长者,他知道的很多,只要你能正确的表达,他几乎可以完美的回答你。

提示

Use the power of React to create interactive blog posts.

<button onClick={() => alert("button clicked!")}>Click me!</button>
- + \ No newline at end of file diff --git a/blog/tags/docusaurus/index.html b/blog/tags/docusaurus/index.html index b391b4c35..c0536a28a 100644 --- a/blog/tags/docusaurus/index.html +++ b/blog/tags/docusaurus/index.html @@ -10,14 +10,14 @@ - - + +

1 篇博文 含有标签「docusaurus」

查看所有标签

· 阅读需 1 分钟
wei c

创建 docusaurus 前端工程

此网站主要使用的技术是docusaurus,创建工程参考 Docusaurus 介绍

提示

核心命令很简单

npx create-docusaurus@latest my-website classic
cd my-website
npx docusaurus start

GITHUB 的 Action 功能

使用 GITHUB 的 Action 功能,在工程内创建.github/workflows/documentation.yml 文件,内容如下:

提示

.github/workflows/documentation.yml

name: Deploy Github pages
on:
push:
branches:
- master
permissions:
contents: write
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3

- name: Install and Build 🔧
run: |
npm i
npm run build

- name: Deploy 🚀
uses: JamesIves/github-pages-deploy-action@v4
with:
folder: build # The folder the action should deploy.

Action

- + \ No newline at end of file diff --git a/blog/tags/github-page/index.html b/blog/tags/github-page/index.html index f569d2515..1c2ad1b2a 100644 --- a/blog/tags/github-page/index.html +++ b/blog/tags/github-page/index.html @@ -10,14 +10,14 @@ - - + +

1 篇博文 含有标签「GITHUB Page」

查看所有标签

· 阅读需 1 分钟
wei c

创建 docusaurus 前端工程

此网站主要使用的技术是docusaurus,创建工程参考 Docusaurus 介绍

提示

核心命令很简单

npx create-docusaurus@latest my-website classic
cd my-website
npx docusaurus start

GITHUB 的 Action 功能

使用 GITHUB 的 Action 功能,在工程内创建.github/workflows/documentation.yml 文件,内容如下:

提示

.github/workflows/documentation.yml

name: Deploy Github pages
on:
push:
branches:
- master
permissions:
contents: write
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3

- name: Install and Build 🔧
run: |
npm i
npm run build

- name: Deploy 🚀
uses: JamesIves/github-pages-deploy-action@v4
with:
folder: build # The folder the action should deploy.

Action

- + \ No newline at end of file diff --git a/blog/tags/index.html b/blog/tags/index.html index 4cc21ba72..355dfe391 100644 --- a/blog/tags/index.html +++ b/blog/tags/index.html @@ -10,14 +10,14 @@ - - + + - + \ No newline at end of file diff --git "a/blog/tags/\347\211\251\350\201\224\347\275\221\345\271\263\345\217\260/index.html" "b/blog/tags/\347\211\251\350\201\224\347\275\221\345\271\263\345\217\260/index.html" index 604c687e4..26f1476cf 100644 --- "a/blog/tags/\347\211\251\350\201\224\347\275\221\345\271\263\345\217\260/index.html" +++ "b/blog/tags/\347\211\251\350\201\224\347\275\221\345\271\263\345\217\260/index.html" @@ -10,14 +10,14 @@ - - + +

1 篇博文 含有标签「物联网平台」

查看所有标签

· 阅读需 1 分钟
wei c

CHATGPT 就是一个全能的长者,他知道的很多,只要你能正确的表达,他几乎可以完美的回答你。

提示

Use the power of React to create interactive blog posts.

<button onClick={() => alert("button clicked!")}>Click me!</button>
- + \ No newline at end of file diff --git a/docs/iotcloud/alarmlinkage/index.html b/docs/iotcloud/alarmlinkage/index.html index a661d5580..d8733306b 100644 --- a/docs/iotcloud/alarmlinkage/index.html +++ b/docs/iotcloud/alarmlinkage/index.html @@ -10,14 +10,14 @@ - - + +
-

概述

报警联动主要是管理报警推送和报警联系人。

- +

概述

报警联动主要是管理报警推送和报警联系人。

+ \ No newline at end of file diff --git a/docs/iotcloud/connect/http/index.html b/docs/iotcloud/connect/http/index.html index 7fbf858a6..19e413933 100644 --- a/docs/iotcloud/connect/http/index.html +++ b/docs/iotcloud/connect/http/index.html @@ -10,14 +10,14 @@ - - + + - +
+ \ No newline at end of file diff --git a/docs/iotcloud/connect/index.html b/docs/iotcloud/connect/index.html index bcbf15fce..7ca59372c 100644 --- a/docs/iotcloud/connect/index.html +++ b/docs/iotcloud/connect/index.html @@ -10,14 +10,14 @@ - - + +
-

概述

设备接入云平台,最核心的点是接入协议,本平台目前支持最流行的 MQTT,传统的 TCP,以及处理异构系统或简单使用的 HTTP 协议。

- +

概述

设备接入云平台,最核心的点是接入协议,本平台目前支持最流行的 MQTT,传统的 TCP,以及处理异构系统或简单使用的 HTTP 协议。

+ \ No newline at end of file diff --git a/docs/iotcloud/connect/mqtt/index.html b/docs/iotcloud/connect/mqtt/index.html index d83c17cdb..e0169d8d6 100644 --- a/docs/iotcloud/connect/mqtt/index.html +++ b/docs/iotcloud/connect/mqtt/index.html @@ -10,15 +10,15 @@ - - + +

MQTT 设备接入

我觉得大概分两种模式:

  • 设备对接本平台的属性协议
  • 设备对接本平台的透传协议

两种模式的设备 connect 是一样的。

设备 connect


  • ClientID device:{deviceCode} 举例:device:XoVnVQ2
  • Username {deviceCode} 举例:XoVnVQ2
  • Password {devicePwd} 举例:YXOsHbV

连接成功后,默认订阅

  • /device/${device.code}/attributes/d

可根据具体应用场景,发布

  • /device/${device.code}/attributes/u
  • /device/${device.code}/attributes/req/u

可根据具体应用场景,订阅

  • /device/${device.code}/attributes/res/d

设备对接本平台的属性协议

设备上报属性


数据流向

  • 设备 >> 云端 >> 用户

允许属性类型

  • 设备上报
  • 设备云端共享

topic

  • /device/${device.code}/attributes/u
  • /account/${user.account}/${device.code}/attributes/d

plyload

  • [attributeCode:string] : [value:number|string]

用户写入属性


数据流向

  • 用户 >> 云端 >> 设备

允许属性类型

  • 云端下发
  • 设备云端共享 注:云端收到此属性后,会立即存储;设备收到此属性后,应该立即上报;
  • 云端私有 注:此类属性只会到云端,不会下发给设备

topic

  • /account/${user.account}/${device.code}/attributes/u
  • /device/${device.code}/attributes/d

plyload

  • [attributeCode:string] : [value:number|string]

设备对接本平台的透传协议

设备上报透传数据


数据流向

  • 设备 >> 云端 >> 用户

允许属性类型

  • 设备上报
  • 设备云端共享

topic

  • /device/${device.code}/t/u
  • 协议解析后模拟 /device/${device.code}/attributes/u
  • /account/${user.account}/${device.code}/attributes/d

plyload

  • [attributeCode:string] : [value:number|string]

用户写入属性


数据流向

  • 用户 >> 云端 >> 设备

允许属性类型

  • 云端下发
  • 设备云端共享 注:云端收到此属性后,会立即存储;设备收到此属性后,应该立即上报;
  • 云端私有 注:此类属性只会到云端,不会下发给设备

topic

  • /account/${user.account}/${device.code}/attributes/u
  • 协议解析后模拟 /device/${device.code}/t/d

plyload

  • [attributeCode:string] : [value:number|string]

举例说明

自行实现

有设备端研发能力的可以根据上面的协议自行研发实现。

或者设备量大的,可以让 DTU 或模组厂商根据上面的协议实现。

目前,本平台还无法做到让下面的 DTU 厂商实现属性交互协议,下面举例,只举例透传协议方式。 -相对于 MQTT 透传,100%的 DTU 厂商都实现了 TCP 协议接入,大家购买 DTU 的时候请仔细辨别,并非所有的 DTU 都支持 MQTT 透传。

塔石 DTU

有人 DTU

四信 DTU

- +相对于 MQTT 透传,100%的 DTU 厂商都实现了 TCP 协议接入,大家购买 DTU 的时候请仔细辨别,并非所有的 DTU 都支持 MQTT 透传。

塔石 DTU

有人 DTU

四信 DTU

+ \ No newline at end of file diff --git a/docs/iotcloud/connect/tcp/index.html b/docs/iotcloud/connect/tcp/index.html index 079198912..5a0eb8d0f 100644 --- a/docs/iotcloud/connect/tcp/index.html +++ b/docs/iotcloud/connect/tcp/index.html @@ -10,14 +10,14 @@ - - + +
-

TCP 设备接入

TCP 接入应该属于最为传统的接入方式,协议可以采用私有协议或通用的 Modbus 等。

本平台实现了 ModbusRTU 协议,以及支持私有协议的 TCP 二进制、TCP 文本协议。

特别说明,TCP 设备接入,云端作为 TCP 的服务端,暴漏的 15000 端口号,设备端作为 TCP 的客户端。

目前,该平台实现以下三种模式:

  • ModbusRTU 云端轮询模式
  • 二级制私有协议 云端轮询模式
  • 文本私有协议 云端轮询模式

TCP 注册包

三种模式的设备端注册到云端的方式是一样的。

设备端发起到云端的 TCP 的连接成功后,应该立即发送注册包,注册包的格式为 ${device.code}&${device.pwd}

云端验证成功后,后续设备端发送的消息才会被正常的解析,否则云端会离开断掉 TCP 连接。

ModbusRTU 云端轮询模式

选择了此种协议格式的设备,应该配置 Modbus 配置 ,让属性和寄存器建立关系,以保证云端可以根据关系去轮询设备的数据。

二级制私有协议 云端轮询模式

文本私有协议 云端轮询模式

- +

TCP 设备接入

TCP 接入应该属于最为传统的接入方式,协议可以采用私有协议或通用的 Modbus 等。

本平台实现了 ModbusRTU 协议,以及支持私有协议的 TCP 二进制、TCP 文本协议。

特别说明,TCP 设备接入,云端作为 TCP 的服务端,暴漏的 15000 端口号,设备端作为 TCP 的客户端。

目前,该平台实现以下三种模式:

  • ModbusRTU 云端轮询模式
  • 二级制私有协议 云端轮询模式
  • 文本私有协议 云端轮询模式

TCP 注册包

三种模式的设备端注册到云端的方式是一样的。

设备端发起到云端的 TCP 的连接成功后,应该立即发送注册包,注册包的格式为 ${device.code}&${device.pwd}

云端验证成功后,后续设备端发送的消息才会被正常的解析,否则云端会离开断掉 TCP 连接。

ModbusRTU 云端轮询模式

选择了此种协议格式的设备,应该配置 Modbus 配置 ,让属性和寄存器建立关系,以保证云端可以根据关系去轮询设备的数据。

二级制私有协议 云端轮询模式

文本私有协议 云端轮询模式

+ \ No newline at end of file diff --git a/docs/iotcloud/devicemanager/device-group/index.html b/docs/iotcloud/devicemanager/device-group/index.html index aceeea39c..eb8514637 100644 --- a/docs/iotcloud/devicemanager/device-group/index.html +++ b/docs/iotcloud/devicemanager/device-group/index.html @@ -10,14 +10,14 @@ - - + +
-

设备分组管理

为什么需要设计设备分组这个功能?

  • 设备太多,查询的时候很不方便,需要设备重新归纳;如果设备太少(低于 100),使用这个功能意义不大。
  • 还是设备太多,分配权限的时候,不好划分,主要是分给客户系统用户,这种情况下可以直接划分分组给他们,这样这个分组下面的设备的增删也会直接影响客户和系统用户的设备权限。
- +

设备分组管理

为什么需要设计设备分组这个功能?

  • 设备太多,查询的时候很不方便,需要设备重新归纳;如果设备太少(低于 100),使用这个功能意义不大。
  • 还是设备太多,分配权限的时候,不好划分,主要是分给客户系统用户,这种情况下可以直接划分分组给他们,这样这个分组下面的设备的增删也会直接影响客户和系统用户的设备权限。
+ \ No newline at end of file diff --git a/docs/iotcloud/devicemanager/device-info/index.html b/docs/iotcloud/devicemanager/device-info/index.html index 0642ce5f5..56a9a01e1 100644 --- a/docs/iotcloud/devicemanager/device-info/index.html +++ b/docs/iotcloud/devicemanager/device-info/index.html @@ -10,14 +10,14 @@ - - + + - +
+ \ No newline at end of file diff --git a/docs/iotcloud/devicemanager/device-type/index.html b/docs/iotcloud/devicemanager/device-type/index.html index 2c97e2bcf..18773d435 100644 --- a/docs/iotcloud/devicemanager/device-type/index.html +++ b/docs/iotcloud/devicemanager/device-type/index.html @@ -10,14 +10,14 @@ - - + + - +
+ \ No newline at end of file diff --git a/docs/iotcloud/devicemanager/index.html b/docs/iotcloud/devicemanager/index.html index a8cab8186..681531c75 100644 --- a/docs/iotcloud/devicemanager/index.html +++ b/docs/iotcloud/devicemanager/index.html @@ -10,14 +10,14 @@ - - + +
-

概述

设备管理的内容包括设备类型及其附属功能的管理、设备信息及其附属功能的管理、设备分组及其附属功能的管理。

- +

概述

设备管理的内容包括设备类型及其附属功能的管理、设备信息及其附属功能的管理、设备分组及其附属功能的管理。

+ \ No newline at end of file diff --git a/docs/iotcloud/index.html b/docs/iotcloud/index.html index 7b034fc8f..67a652374 100644 --- a/docs/iotcloud/index.html +++ b/docs/iotcloud/index.html @@ -10,14 +10,14 @@ - - + +
-

概述

所有程序的代码全部开源,免费商用,不受任何限制,致力于打造免费、开源、性能优异的物联网云平台生态。

  • 云平台-后端源码
  • 云平台-前端源码
  • 云平台-微信小程序源码
  • 云平台-移动端 APP 源码

虽然本平台的全部源码公开且免费商用,但是我个人还是需要生存,可提供如下付费服务:

  • 技术支持,可进 VIP 微信群,提供技术方案指导;
  • 数据库说明文档,主要是表名、字段名含义解释,对于要二开非常有帮助;
  • 后端源码说明文档,主要是和用户的协议文档、和设备的协议文档、后端数据内部数据流转、后端架构图、提供给前端的接口文档等,对于二开非常有帮助;
  • 前端源码说明文档,主要是架构图、前端编码规范、前端手机组态编辑器二开文档等,对于二开非常有帮助;
  • 微信小程序源码说明文档,主要是架构图、编码规范、手机组态渲染逻辑等,对于二开非常有帮助;
  • 移动端 APP 源码说明文档,包括架构图、编码规范、上线 APP 商店流程说明等;
  • 私有部署;
  • 功能定制;
- +

概述

所有程序的代码全部开源,免费商用,不受任何限制,致力于打造免费、开源、性能优异的物联网云平台生态。

  • 云平台-后端源码
  • 云平台-前端源码
  • 云平台-微信小程序源码
  • 云平台-移动端 APP 源码

虽然本平台的全部源码公开且免费商用,但是我个人还是需要生存,可提供如下付费服务:

  • 技术支持,可进 VIP 微信群,提供技术方案指导;
  • 数据库说明文档,主要是表名、字段名含义解释,对于要二开非常有帮助;
  • 后端源码说明文档,主要是和用户的协议文档、和设备的协议文档、后端数据内部数据流转、后端架构图、提供给前端的接口文档等,对于二开非常有帮助;
  • 前端源码说明文档,主要是架构图、前端编码规范、前端手机组态编辑器二开文档等,对于二开非常有帮助;
  • 微信小程序源码说明文档,主要是架构图、编码规范、手机组态渲染逻辑等,对于二开非常有帮助;
  • 移动端 APP 源码说明文档,包括架构图、编码规范、上线 APP 商店流程说明等;
  • 私有部署;
  • 功能定制;
+ \ No newline at end of file diff --git a/docs/iotcloud/usercenter/customer/index.html b/docs/iotcloud/usercenter/customer/index.html index 04a2d0a48..06384d3af 100644 --- a/docs/iotcloud/usercenter/customer/index.html +++ b/docs/iotcloud/usercenter/customer/index.html @@ -10,14 +10,14 @@ - - + +
-

客户管理

本文为您介绍 客户 的基本概念、使用流程、最佳实践和使用限制。

什么是客户

我们认为这里的客户是简单使用设备的用户,他们只需要管理几台最多几十台设备。

他们是 RAM 用户的一种简单实用的划分,只需要给他们分一下设备权限即可。

设备权限应该分两种:支持设备分组、支持单独设备,两种权限选择一种。

如果选择设备分组,后续往设备分组里面增删设备,该客户会受到影响。

如果选择单独设备,只有设备删除,该客户设备权限才会受到影响。

使用流程

GIF 图

最佳实践

GIF 图

使用限制

  • 客户不能登录 PC 控制台,可以使用小程序。
- +

客户管理

本文为您介绍 客户 的基本概念、使用流程、最佳实践和使用限制。

什么是客户

我们认为这里的客户是简单使用设备的用户,他们只需要管理几台最多几十台设备。

他们是 RAM 用户的一种简单实用的划分,只需要给他们分一下设备权限即可。

设备权限应该分两种:支持设备分组、支持单独设备,两种权限选择一种。

如果选择设备分组,后续往设备分组里面增删设备,该客户会受到影响。

如果选择单独设备,只有设备删除,该客户设备权限才会受到影响。

使用流程

GIF 图

最佳实践

GIF 图

使用限制

  • 客户不能登录 PC 控制台,可以使用小程序。
+ \ No newline at end of file diff --git a/docs/iotcloud/usercenter/index.html b/docs/iotcloud/usercenter/index.html index 8e564ea82..5a5ece283 100644 --- a/docs/iotcloud/usercenter/index.html +++ b/docs/iotcloud/usercenter/index.html @@ -10,14 +10,14 @@ - - + +
-

概述

用户中心包括:当前登录用户的用户日志,注册用户及其相关功能的信息设置,RAM 用户的管理,客户的管理。

平台用户相关的名词解释:

  • 注册用户:注册到Iot Cloud平台的用户,这些用户之间都是独立的,一般都是制造设备的企业、使用设备的企业以及设备代理/服务企业;
  • RAM 用户:由注册用户手动添加,一般是企业内部员工,配合注册用户一块管理维护平台;
  • 客户:可由注册用户或有权限的系统用户添加,一般是实际使用设备的个人或企业;如果注册用户是使用设备的企业,可能这种情况无需使用客户功能;
- +

概述

用户中心包括:当前登录用户的用户日志,注册用户及其相关功能的信息设置,RAM 用户的管理,客户的管理。

平台用户相关的名词解释:

  • 注册用户:注册到Iot Cloud平台的用户,这些用户之间都是独立的,一般都是制造设备的企业、使用设备的企业以及设备代理/服务企业;
  • RAM 用户:由注册用户手动添加,一般是企业内部员工,配合注册用户一块管理维护平台;
  • 客户:可由注册用户或有权限的系统用户添加,一般是实际使用设备的个人或企业;如果注册用户是使用设备的企业,可能这种情况无需使用客户功能;
+ \ No newline at end of file diff --git a/docs/iotcloud/usercenter/system-user/index.html b/docs/iotcloud/usercenter/system-user/index.html index 77086e5c5..13c50f263 100644 --- a/docs/iotcloud/usercenter/system-user/index.html +++ b/docs/iotcloud/usercenter/system-user/index.html @@ -10,14 +10,14 @@ - - + +
-

RAM 用户

本文为您介绍 RAM(Resource Access Management)用户的基本概念、使用流程、最佳实践和使用限制。

什么是 RAM 用户

  • RAM 用户只能由注册用户创建;
  • 他只是协助注册用户管理系统的,不具有资源的所属权限,受控于注册用户;
  • RAM 用户不拥有资源,不能独立计量计费,由所属的注册用户统一付费。

使用流程

GIF 图

最佳实践

GIF 图

使用限制

  • 不能拥有【用户中心-RAM 用户】的所有功能权限;
- +

RAM 用户

本文为您介绍 RAM(Resource Access Management)用户的基本概念、使用流程、最佳实践和使用限制。

什么是 RAM 用户

  • RAM 用户只能由注册用户创建;
  • 他只是协助注册用户管理系统的,不具有资源的所属权限,受控于注册用户;
  • RAM 用户不拥有资源,不能独立计量计费,由所属的注册用户统一付费。

使用流程

GIF 图

最佳实践

GIF 图

使用限制

  • 不能拥有【用户中心-RAM 用户】的所有功能权限;
+ \ No newline at end of file diff --git a/docs/iotcloud/usercenter/user-log/index.html b/docs/iotcloud/usercenter/user-log/index.html index 4818d2212..baff71955 100644 --- a/docs/iotcloud/usercenter/user-log/index.html +++ b/docs/iotcloud/usercenter/user-log/index.html @@ -10,14 +10,14 @@ - - + +
-

用户日志

本文为您介绍 用户日志 的基本概念、使用流程、最佳实践和使用限制。

什么是用户日志

用户日志指的是用户操作的关键信息记录。

使用流程

GIF 图

最佳实践

GIF 图

使用限制

- +

用户日志

本文为您介绍 用户日志 的基本概念、使用流程、最佳实践和使用限制。

什么是用户日志

用户日志指的是用户操作的关键信息记录。

使用流程

GIF 图

最佳实践

GIF 图

使用限制

+ \ No newline at end of file diff --git a/docs/iotcloud/usercenter/user-settings/index.html b/docs/iotcloud/usercenter/user-settings/index.html index 5731b11ab..e4dd477d5 100644 --- a/docs/iotcloud/usercenter/user-settings/index.html +++ b/docs/iotcloud/usercenter/user-settings/index.html @@ -10,14 +10,14 @@ - - + +
-

用户设置

本文为您介绍 用户设置 的基本概念、使用流程、最佳实践和使用限制。

什么是用户设置

如果是注册用户,可以管理用户信息、以及一些重要的服务信息配置;

如果是 RAM 用户,只允许管理用户信息。

使用流程

GIF 图

最佳实践

GIF 图

使用限制

- +

用户设置

本文为您介绍 用户设置 的基本概念、使用流程、最佳实践和使用限制。

什么是用户设置

如果是注册用户,可以管理用户信息、以及一些重要的服务信息配置;

如果是 RAM 用户,只允许管理用户信息。

使用流程

GIF 图

最佳实践

GIF 图

使用限制

+ \ No newline at end of file diff --git a/docs/study/ai/index.html b/docs/study/ai/index.html index 70cea6a21..d75ef1075 100644 --- a/docs/study/ai/index.html +++ b/docs/study/ai/index.html @@ -10,14 +10,14 @@ - - + +
-

人工智能

LLM

大语言模型 Large Language Models,人类要走向人工智能时代,离不开 LLM 的发展,或者说,LLM 是通往 AI 时代的核心途径。

ChatGPT 是最知名的 LLM 案例,LLM 的发展又离不开机器学习、神经网络、深度学习等技术的突破。大语言模型的关键之一是一个“大”字,训练的数据非常多,堪称海量,如 ChatGPT 就包含了 8000 亿以上的数据。

- +

人工智能

LLM

大语言模型 Large Language Models,人类要走向人工智能时代,离不开 LLM 的发展,或者说,LLM 是通往 AI 时代的核心途径。

ChatGPT 是最知名的 LLM 案例,LLM 的发展又离不开机器学习、神经网络、深度学习等技术的突破。大语言模型的关键之一是一个“大”字,训练的数据非常多,堪称海量,如 ChatGPT 就包含了 8000 亿以上的数据。

+ \ No newline at end of file diff --git a/docs/study/back/MyBatis/index.html b/docs/study/back/MyBatis/index.html index 735606ed3..15969fa80 100644 --- a/docs/study/back/MyBatis/index.html +++ b/docs/study/back/MyBatis/index.html @@ -10,14 +10,14 @@ - - + +
-

MyBatis

MyBatis 缓存

myabtis 的缓存分为一级缓存和二级缓存,默认开启一级缓存,关闭二级缓存,一级缓存时 sqlSession 级别,二级缓存是 namespace 级别。

作用范围

  • 一级缓存是会话级别的缓存,即 sqlSession 级别,会话结束,清除会话中的缓存数据,实际代码中通过通过开启事务让多个数据库操作共享一个 sqlSession。
  • 二级缓存: 全局级别,也叫 namespace 级别,会话结束,缓存依然存在,多个请求可以共享缓存数据。

缓存位置

  • 一级缓存由于是 sqlSession 级别,本质上是在 JVM 中创建一个 Map 集合对象保存缓存数据,所以缓存数据保留的地方是本地 JVM 内存中。
  • 二级缓存默认也是保存在 JVM 中,但是可以通过配置将缓存数据保存到第三方缓存中,比如 ehcache、redis。保存在 redis 这些的分布式缓存中,能提供更好的分布式场景的支持。

缓存过期

  • 一级缓存无过期时间,只有生命周期,缓存会先放在一级缓存中,当 sqlSession 会话提交或者关闭时才会将一级缓存刷新到二级缓存中;开启二级缓存后,用户查询时,会先去二级缓存中找,找不到在去一级缓存中找,然后才去数据库查询;
  • 二级缓存的过期时间默认是 1 小时,如果这个 cache 存活了一个小时,那么将整个清空一下。需要注意的是,并不是 key-value 的过期时间,而是这个 cache 的过期时间,是 flushInterval,意味着整个清空缓存 cache,所以不需要后台线程去定时检测,每当存取数据的时候,都有检测一下 cache 的生命时间。
- +

MyBatis

MyBatis 缓存

myabtis 的缓存分为一级缓存和二级缓存,默认开启一级缓存,关闭二级缓存,一级缓存时 sqlSession 级别,二级缓存是 namespace 级别。

作用范围

  • 一级缓存是会话级别的缓存,即 sqlSession 级别,会话结束,清除会话中的缓存数据,实际代码中通过通过开启事务让多个数据库操作共享一个 sqlSession。
  • 二级缓存: 全局级别,也叫 namespace 级别,会话结束,缓存依然存在,多个请求可以共享缓存数据。

缓存位置

  • 一级缓存由于是 sqlSession 级别,本质上是在 JVM 中创建一个 Map 集合对象保存缓存数据,所以缓存数据保留的地方是本地 JVM 内存中。
  • 二级缓存默认也是保存在 JVM 中,但是可以通过配置将缓存数据保存到第三方缓存中,比如 ehcache、redis。保存在 redis 这些的分布式缓存中,能提供更好的分布式场景的支持。

缓存过期

  • 一级缓存无过期时间,只有生命周期,缓存会先放在一级缓存中,当 sqlSession 会话提交或者关闭时才会将一级缓存刷新到二级缓存中;开启二级缓存后,用户查询时,会先去二级缓存中找,找不到在去一级缓存中找,然后才去数据库查询;
  • 二级缓存的过期时间默认是 1 小时,如果这个 cache 存活了一个小时,那么将整个清空一下。需要注意的是,并不是 key-value 的过期时间,而是这个 cache 的过期时间,是 flushInterval,意味着整个清空缓存 cache,所以不需要后台线程去定时检测,每当存取数据的时候,都有检测一下 cache 的生命时间。
+ \ No newline at end of file diff --git a/docs/study/back/Zookeeper/index.html b/docs/study/back/Zookeeper/index.html index e1e09b809..fa3004ee0 100644 --- a/docs/study/back/Zookeeper/index.html +++ b/docs/study/back/Zookeeper/index.html @@ -10,14 +10,14 @@ - - + +
-

Zookeeper

Zookeeper概述

Zookeeper 是一个分布式协调服务的开源框架。主要用来解决分布式集群中应用系统的一致性问题,例如怎样避免同时操作同一数据造成脏读的问题。

ZooKeeper 本质上是一个分布式的小文件存储系统。提供基于类似于文件系 统的目录树方式的数据存储,并且可以对树中的节点进行有效管理。从而用来维护和监控你存储的数据的状态变化。通过监控这些数据状态的变化,从而可以达 到基于数据的集群管理。诸如:统一命名服务分布式配置管理分布式消息队列分布式锁分布式协调等功能。

上面的解释有点抽象,简单来说zookeeper=文件系统+监听通知机制。

  1. 文件系统,Zookeeper维护一个类似文件系统的数据结构,每个子目录项如 NameService 都被称作为 znode(目录节点),和文件系统一样,我们能够自由的增加、删除znode,在一个znode下增加、删除子znode,唯一的不同在于znode是可以存储数据的。
  2. 监听通知机制,客户端注册监听它关心的目录节点,当目录节点发生变化(数据改变、被删除、子目录节点增加删除)时,zookeeper会通知客户端。

Zookeeper 特性

  1. 全局数据一致:每个 server 保存一份相同的数据副本,client 无论连 接到哪个 server,展示的数据都是一致的,这是最重要的特征;

  2. 可靠性:如果消息被其中一台服务器接受,那么将被所有的服务器接受。

  3. 顺序性:包括全局有序和偏序两种:全局有序是指如果在一台服务器上 消息 a 在消息 b 前发布,则在所有 Server 上消息 a 都将在消息 b 前被 发布;偏序是指如果一个消息 b 在消息 a 后被同一个发送者发布,a 必将排在 b 前面。

  4. 数据更新原子性:一次数据更新要么成功(半数以上节点成功),要么失 败,不存在中间状态;

  5. 实时性:Zookeeper 保证客户端将在一个时间间隔范围内获得服务器的更新信息,或者服务器失效的信息。

- +

Zookeeper

Zookeeper概述

Zookeeper 是一个分布式协调服务的开源框架。主要用来解决分布式集群中应用系统的一致性问题,例如怎样避免同时操作同一数据造成脏读的问题。

ZooKeeper 本质上是一个分布式的小文件存储系统。提供基于类似于文件系 统的目录树方式的数据存储,并且可以对树中的节点进行有效管理。从而用来维护和监控你存储的数据的状态变化。通过监控这些数据状态的变化,从而可以达 到基于数据的集群管理。诸如:统一命名服务分布式配置管理分布式消息队列分布式锁分布式协调等功能。

上面的解释有点抽象,简单来说zookeeper=文件系统+监听通知机制。

  1. 文件系统,Zookeeper维护一个类似文件系统的数据结构,每个子目录项如 NameService 都被称作为 znode(目录节点),和文件系统一样,我们能够自由的增加、删除znode,在一个znode下增加、删除子znode,唯一的不同在于znode是可以存储数据的。
  2. 监听通知机制,客户端注册监听它关心的目录节点,当目录节点发生变化(数据改变、被删除、子目录节点增加删除)时,zookeeper会通知客户端。

Zookeeper 特性

  1. 全局数据一致:每个 server 保存一份相同的数据副本,client 无论连 接到哪个 server,展示的数据都是一致的,这是最重要的特征;

  2. 可靠性:如果消息被其中一台服务器接受,那么将被所有的服务器接受。

  3. 顺序性:包括全局有序和偏序两种:全局有序是指如果在一台服务器上 消息 a 在消息 b 前发布,则在所有 Server 上消息 a 都将在消息 b 前被 发布;偏序是指如果一个消息 b 在消息 a 后被同一个发送者发布,a 必将排在 b 前面。

  4. 数据更新原子性:一次数据更新要么成功(半数以上节点成功),要么失 败,不存在中间状态;

  5. 实时性:Zookeeper 保证客户端将在一个时间间隔范围内获得服务器的更新信息,或者服务器失效的信息。

+ \ No newline at end of file diff --git a/docs/study/back/index.html b/docs/study/back/index.html index ed8705136..86112fcfc 100644 --- a/docs/study/back/index.html +++ b/docs/study/back/index.html @@ -10,14 +10,14 @@ - - + +
-
- +
+ \ No newline at end of file diff --git "a/docs/study/back/maven/pom\346\226\207\344\273\266\344\270\255\347\232\204scope\346\240\207\347\255\276/index.html" "b/docs/study/back/maven/pom\346\226\207\344\273\266\344\270\255\347\232\204scope\346\240\207\347\255\276/index.html" index 4cbb9654a..f42bf7b41 100644 --- "a/docs/study/back/maven/pom\346\226\207\344\273\266\344\270\255\347\232\204scope\346\240\207\347\255\276/index.html" +++ "b/docs/study/back/maven/pom\346\226\207\344\273\266\344\270\255\347\232\204scope\346\240\207\347\255\276/index.html" @@ -10,15 +10,15 @@ - - + +

pom文件中的scope标签

分类

compile

默认的scope,表示 dependency 都可以在生命周期中使用。而且,这些dependencies 会传递到依赖的项目中。适用于所有阶段,会随着项目一起发布。

provided

跟compile相似,但是表明了dependency 由JDK或者容器提供,例如Servlet AP和一些Java EE APIs。这个scope 只能作用在编译和测试时,同时没有传递性。

runtime

表示dependency不作用在编译时,但会作用在运行和测试时,如JDBC驱动,适用运行和测试阶段。

test

表示dependency作用在测试时,不作用在运行时。 只在测试时使用,用于编译和运行测试代码。不会随项目发布。

system

跟provided 相似,但是在系统中要以外部JAR包的形式提供,maven不会在repository查找它。

import

这个标签就是 引入该dependency的pom中定义的所有dependency定义

注意:

import标签值只能在dependencyManagement标签下使用! -并且仅用于type为"pom"的dependency,其意义为引入该dependency的pom中定义的所有dependency定义

- +并且仅用于type为"pom"的dependency,其意义为引入该dependency的pom中定义的所有dependency定义

+ \ No newline at end of file diff --git a/docs/study/back/mq/Kafka/index.html b/docs/study/back/mq/Kafka/index.html index a6393bf50..c947fcb8e 100644 --- a/docs/study/back/mq/Kafka/index.html +++ b/docs/study/back/mq/Kafka/index.html @@ -10,16 +10,16 @@ - - + +

Kafka

简介

kafka 最新定义为:分布式流式平台,而不是单纯的消息系统,更具有持久化、流处理的特点;主要处理两类应用:实时流数据管道和实时流应用程序。

实时流数据管道:举个例子 Kafka+ELK 处理日志; 实时流应用程序:举个例子 Kafka+报警模块 APP; -持久化,可以作为存储系统,每个消费者对每个 topic 都有一个 offset 来记录上次消费的位置;

常见使用场景

  1. 消息,可以媲美 ActiveMQ 和 RabbitMQ;
  2. 网站活动跟踪,数据>>Kafka>>ELK/Hbase/Hadoop;
  3. 度量,运营监控数据;
  4. 日志聚合,Kafka+ELK;
  5. 流处理,从 0.10 开始,Kafka Streams 是一个轻量级但功能强大的流处理库;

常用命令

# 查看topic列表
./kafka-topics.sh --list --bootstrap-server localhost:9092
# 创建topic
./kafka-topics.sh --create --bootstrap-server localhost:9092 --topic xxx
# 创建生产者
./kafka-console-producer.sh --bootstrap-server localhost:9092 --topic jiot.cloud
# 创建消费者
./kafka-console-consumer.sh --bootstrap-server localhost:9092 \
--topic jiot.cloud \
--from-beginning
- +持久化,可以作为存储系统,每个消费者对每个 topic 都有一个 offset 来记录上次消费的位置;

常见使用场景

  1. 消息,可以媲美 ActiveMQ 和 RabbitMQ;
  2. 网站活动跟踪,数据>>Kafka>>ELK/Hbase/Hadoop;
  3. 度量,运营监控数据;
  4. 日志聚合,Kafka+ELK;
  5. 流处理,从 0.10 开始,Kafka Streams 是一个轻量级但功能强大的流处理库;

常用命令

# 查看topic列表
./kafka-topics.sh --list --bootstrap-server localhost:9092
# 创建topic
./kafka-topics.sh --create --bootstrap-server localhost:9092 --topic xxx
# 创建生产者
./kafka-console-producer.sh --bootstrap-server localhost:9092 --topic jiot.cloud
# 创建消费者
./kafka-console-consumer.sh --bootstrap-server localhost:9092 \
--topic jiot.cloud \
--from-beginning
+ \ No newline at end of file diff --git a/docs/study/back/mq/MQTT broker/index.html b/docs/study/back/mq/MQTT broker/index.html index d4ce1fbe0..7a33207c6 100644 --- a/docs/study/back/mq/MQTT broker/index.html +++ b/docs/study/back/mq/MQTT broker/index.html @@ -10,14 +10,14 @@ - - + +
-

MQTT broker

EMQ EMQX

  1. 官网
  2. 开发语言:Erlang/OTP,一个不常见的语言;
  3. 国人开发;又称 emqttd;
  4. 开源&商业化 MQTT 鼻祖

BifroMQ

  • 百度开源的一款 MQTT 产品
  • 开发语言:JDK17 Maven3.5+
  • 开源

FluxMQ

TBMQ

  • Thingsboard 开源的⼀款 MQTT 产品
  • 开发语言:JDK17 Maven3.5+
  • 开源

Eclipse Mosquitto

  1. 官网
  2. 开发语言:C/C++

Moquette

  1. 官网
  2. 开发语言:Java
  3. 据大佬说这就是一个玩具项目,但是基于 Java 开源的并不多,且网上很多是基于他开发出来的;
  4. 0.10 支持集群;0.12 不支持集群;

总结

- +

MQTT broker

EMQ EMQX

  1. 官网
  2. 开发语言:Erlang/OTP,一个不常见的语言;
  3. 国人开发;又称 emqttd;
  4. 开源&商业化 MQTT 鼻祖

BifroMQ

  • 百度开源的一款 MQTT 产品
  • 开发语言:JDK17 Maven3.5+
  • 开源

FluxMQ

TBMQ

  • Thingsboard 开源的⼀款 MQTT 产品
  • 开发语言:JDK17 Maven3.5+
  • 开源

Eclipse Mosquitto

  1. 官网
  2. 开发语言:C/C++

Moquette

  1. 官网
  2. 开发语言:Java
  3. 据大佬说这就是一个玩具项目,但是基于 Java 开源的并不多,且网上很多是基于他开发出来的;
  4. 0.10 支持集群;0.12 不支持集群;

总结

+ \ No newline at end of file diff --git "a/docs/study/back/mq/MQ\345\256\236\347\216\260\345\257\271\346\257\224/index.html" "b/docs/study/back/mq/MQ\345\256\236\347\216\260\345\257\271\346\257\224/index.html" index cb106475a..bcc875017 100644 --- "a/docs/study/back/mq/MQ\345\256\236\347\216\260\345\257\271\346\257\224/index.html" +++ "b/docs/study/back/mq/MQ\345\256\236\347\216\260\345\257\271\346\257\224/index.html" @@ -10,14 +10,14 @@ - - + + - +
+ \ No newline at end of file diff --git a/docs/study/back/mq/RocketMQ/index.html b/docs/study/back/mq/RocketMQ/index.html index c36422a56..0a010843a 100644 --- a/docs/study/back/mq/RocketMQ/index.html +++ b/docs/study/back/mq/RocketMQ/index.html @@ -10,14 +10,14 @@ - - + +
-

RocketMQ

RocketMQ 和 Kafka 有什么区别?

  1. 适用场景:Kafka适合日志处理;RocketMQ适合业务处理。
  2. 性能:Kafka单机写入TPS号称在百万条/秒;RocketMQ大约在10万条/秒。Kafka单机性能更高。
  3. 可靠性:RocketMQ支持异步/同步刷盘;异步/同步Replication;Kafka使用异步刷盘方式,异步Replication。RocketMQ所支持的同步方式提升了数据的可靠性。
  4. 实时性:均支持pull长轮询,RocketMQ消息实时性更好
  5. 支持的队列数:Kafka单机超过64个队列/分区,消息发送性能降低严重;RocketMQ单机支持最高5万个队列,性能稳定(这也是适合业务处理的原因之一)

为什么阿里会自研RocketMQ?

  1. Kafka的业务应用场景主要定位于日志传输;对于复杂业务支持不够
  2. 阿里很多业务场景对数据可靠性、数据实时性、消息队列的个数等方面的要求很高
  3. 当业务成长到一定规模,采用开源方案的技术成本会变高(开源方案无法满足业务的需要;旧版本、自开发代码与新版本的兼容等)
  4. 阿里在团队、成本、资源投入等方面约束性条件几乎没有
- +

RocketMQ

RocketMQ 和 Kafka 有什么区别?

  1. 适用场景:Kafka适合日志处理;RocketMQ适合业务处理。
  2. 性能:Kafka单机写入TPS号称在百万条/秒;RocketMQ大约在10万条/秒。Kafka单机性能更高。
  3. 可靠性:RocketMQ支持异步/同步刷盘;异步/同步Replication;Kafka使用异步刷盘方式,异步Replication。RocketMQ所支持的同步方式提升了数据的可靠性。
  4. 实时性:均支持pull长轮询,RocketMQ消息实时性更好
  5. 支持的队列数:Kafka单机超过64个队列/分区,消息发送性能降低严重;RocketMQ单机支持最高5万个队列,性能稳定(这也是适合业务处理的原因之一)

为什么阿里会自研RocketMQ?

  1. Kafka的业务应用场景主要定位于日志传输;对于复杂业务支持不够
  2. 阿里很多业务场景对数据可靠性、数据实时性、消息队列的个数等方面的要求很高
  3. 当业务成长到一定规模,采用开源方案的技术成本会变高(开源方案无法满足业务的需要;旧版本、自开发代码与新版本的兼容等)
  4. 阿里在团队、成本、资源投入等方面约束性条件几乎没有
+ \ No newline at end of file diff --git "a/docs/study/back/springcloud/SpringCloud\344\272\224\345\244\247\347\273\204\344\273\266/index.html" "b/docs/study/back/springcloud/SpringCloud\344\272\224\345\244\247\347\273\204\344\273\266/index.html" index 2b3fa1239..119463de1 100644 --- "a/docs/study/back/springcloud/SpringCloud\344\272\224\345\244\247\347\273\204\344\273\266/index.html" +++ "b/docs/study/back/springcloud/SpringCloud\344\272\224\345\244\247\347\273\204\344\273\266/index.html" @@ -10,14 +10,14 @@ - - + + - +
+ \ No newline at end of file diff --git "a/docs/study/back/springcloud/\345\276\256\346\234\215\345\212\241/index.html" "b/docs/study/back/springcloud/\345\276\256\346\234\215\345\212\241/index.html" index b2e96bc99..ed9cb0207 100644 --- "a/docs/study/back/springcloud/\345\276\256\346\234\215\345\212\241/index.html" +++ "b/docs/study/back/springcloud/\345\276\256\346\234\215\345\212\241/index.html" @@ -10,14 +10,14 @@ - - + +
-

微服务

微服务是分布式架构的一种;

分布式架构是相对单体架构来说的。

分布式架构相对于单体架构是复杂的,单体架构耦合多很高,适用于系统相对简单,业务相对单一的场景。

分布式架构相对于分布式架构来说,耦合性低,相对独立,适用于系统相对复杂,业务相对多元的场景。

分布式架构需要考虑的问题:

  • 服务拆分的粒度如何?不能太小,也不能太大,总体来说,先大后小;
  • 服务集群的地址如何维护?就是上注册中心了;
  • 服务之间如何通信?HTTP、RPC、消息队列等;
  • 服务之间如何容错?服务降级、服务熔断、服务限流等;
  • 服务健康状态如何感知?

分布式架构有很多,其中包括 WebService、ESB、Hession、Dubbo、SpringCloud、gRPC 等;

dubbo-springcloud

- +

微服务

微服务是分布式架构的一种;

分布式架构是相对单体架构来说的。

分布式架构相对于单体架构是复杂的,单体架构耦合多很高,适用于系统相对简单,业务相对单一的场景。

分布式架构相对于分布式架构来说,耦合性低,相对独立,适用于系统相对复杂,业务相对多元的场景。

分布式架构需要考虑的问题:

  • 服务拆分的粒度如何?不能太小,也不能太大,总体来说,先大后小;
  • 服务集群的地址如何维护?就是上注册中心了;
  • 服务之间如何通信?HTTP、RPC、消息队列等;
  • 服务之间如何容错?服务降级、服务熔断、服务限流等;
  • 服务健康状态如何感知?

分布式架构有很多,其中包括 WebService、ESB、Hession、Dubbo、SpringCloud、gRPC 等;

dubbo-springcloud

+ \ No newline at end of file diff --git "a/docs/study/back/\351\253\230\345\271\266\345\217\221API/index.html" "b/docs/study/back/\351\253\230\345\271\266\345\217\221API/index.html" index 7d1d4d620..35e3e6008 100644 --- "a/docs/study/back/\351\253\230\345\271\266\345\217\221API/index.html" +++ "b/docs/study/back/\351\253\230\345\271\266\345\217\221API/index.html" @@ -10,14 +10,14 @@ - - + +
-

高并发API

总结

  1. 单机百万QPS的Nginx是没有问题的,具体能到多少,受限于:
    1. 服务器的CPU数量、内存大小、磁盘性能;
    2. 服务器Linux的配置
    3. Nginx的参数配置
    4. 网卡的配置、路由器的配置、交换机的配置
  2. 单机Tomcat受限于JVM和web框架等原因,也就最多1万左右的QPS;
    1. 如果需要简单查询数据库的,也就2~3K的QPS;
    2. 如果需要数据库事务操作的,也就100~150的QPS;
  3. 什么时候需要水平拓展QPS
  4. HTTP压测工具之wrk;
    1. HTTP压测工具之wrk
    2. 性能测试工具wrk使用教程
  5. 一般来说,不一定很准确,参考:
    1. 2C4G机器单机一般1000QPS。
    2. 8C8G机器单机可承受7000QPS。

wrk操作

#scripts/post.lua
vim post.lua
#
wrk.method = "POST"
wrk.body = '{"domain":"xxx.xxx.xxx"}'
wrk.headers["Content-Type"] = "application/json"
#
./wrk -t4 -c1000 -d5s -s /root/code/wrk/scripts/post.lua {具体的URL}

Nginx统计访问量

根据访问IP统计UV

# 根据访问IP统计UV
cat /mnt/docker/tomcat/logs/{具体的nginx log} \
| grep "21/May/2020" | awk '{print $1}' \
|sort | uniq -c |wc -l

根据访问URL统计PV

# 根据访问URL统计PV
cat /mnt/docker/tomcat/logs/{具体的nginx log文件} \
| grep "21/May/2020" \
| awk '{print $7}' |wc -l

根据访问URL统计QPS

# 根据访问URL统计QPS
cat /mnt/docker/tomcat/logs/{具体的nginx log文件} \
| grep "21/May/2020:16:39:" \
| awk '{print $7}' |wc -l

查询访问最频繁的URL

# 查询访问最频繁的URL
cat /usr/local/nginx/logs/access.log \
| grep "29/Feb/2020" | awk '{print $7}' \
|sort | uniq -c |sort -n -k 1 -r|more

查询访问最频繁的IP

# 查询访问最频繁的IP
cat /mnt/docker/tomcat/logs/{具体的nginx log文件} \
| grep "12/May/2020" | awk '{print $1}' \
|sort | uniq -c |sort -n -k 1 -r|more

根据时间段统计查看日志

# 根据时间段统计查看日志
cat /usr/local/nginx/logs/access.log \
| sed -n '/14\/Mar\/2015/,/14\/Mar\/2020/p'|more

某个时间段访问总次数

# 某个时间段访问总次数
cat /usr/local/nginx/logs/access.log \
| grep -E '16\/Feb\/2020:1[2-9]|29\/Feb\/2020:2[0-3]'| wc -

查看访问最频繁的前5个IP,并列出访问次数

#查看访问最频繁的前5个IP,并列出访问次数
cat /usr/local/nginx/logs/access.log \
| grep "29/Feb/2020" | awk '{print $1}'|sort -n|uniq -c| sort -rn| head -5

统计状态码为200次数

# 统计状态码为200次数
cat /usr/local/nginx/logs/access.log \
| grep "29/Feb/2020" | awk '{if($9 == 200) print $9}'|wc -l

统计状态码不是200的次数

#统计状态码不是200的次数
cat /usr/local/nginx/logs/access.log \
| grep "29/Feb/2020" | awk '{if($9 != 200) print }'|less

查看404错误码的请求

#查看404错误码的请求
cat /usr/local/nginx/logs/access.log \
| grep "29/Feb/2020" | grep "404"|less

每隔5分钟访问次数列表

#每隔5分钟访问次数列表
cat /usr/local/nginx/logs/access.log \
| grep "29/Feb/2020" \
| awk -F: '{a[$2":"($3-$3%5)]++}END\
{for(i in a){split(i,t);print i" 至",t[1]":"t[2]+4," \
访问 "a[i] " 次" | "sort -t: -k1n -k2n"}}'

查询某个IP的详细访问情况,按访问频率排序

#查询某个IP的详细访问情况,按访问频率排序
cat /usr/local/nginx/logs/access.log \
| grep "29/Feb/2020" | grep '122.4.22.242' \
| awk '{print $7}'|sort |uniq -c |sort -rn |head -n 100

统计每秒的请求数,top100的时间点(精确到秒)

#统计每秒的请求数,top100的时间点(精确到秒)
cat /usr/local/nginx/logs/access.log \
| grep "29/Feb/2020" | awk '{print $4}' \
|cut -c 14-21|sort|uniq -c|sort -nr|head -n 100

统计每分钟的请求数,top100的时间点(精确到分钟)

#统计每分钟的请求数,top100的时间点(精确到分钟)
cat /usr/local/nginx/logs/access.log \
| grep "29/Feb/2020" | awk '{print $4}' \
|cut -c 14-18|sort|uniq -c|sort -nr|head -n 100

统计每小时的请求数,top100的时间点(精确到小时)

#统计每小时的请求数,top100的时间点(精确到小时)
cat /mnt/docker/tomcat/logs/{具体的nginx log文件} \
| grep "21/May/2020" | awk '{print $4}' \
|cut -c 14-15|sort|uniq -c|sort -nr|head -n 100

其他,未分类


##性能分析
#在nginx log中最后一个字段加入$request_time
#列出传输时间超过 3 秒的页面,显示前20条
cat /usr/local/nginx/logs/access.log | grep "29/Feb/2020" \
| awk '($NF > 3){print $7}'|sort -n|uniq -c|sort -nr|head -20

##TCP连接统计
#查看当前TCP连接数
netstat -tan | grep "ESTABLISHED" | grep ":80" | wc -l
#用tcpdump嗅探80端口的访问看看谁最高
tcpdump -i eth0 -tnn dst port 80 -c 1000 \
| awk -F"." '{print $1"."$2"."$3"."$4}' | sort | uniq -c | sort -nr

名词解释

  1. PV(Page View)访问量, 即页面浏览量或点击量,衡量网站用户访问的网页数量;在一定统计周期内用户每打开或刷新一个页面就记录1次,多次打开或刷新同一页面则浏览量累计。
  2. UV(Unique Visitor)独立访客,统计1天内访问某站点的用户数(以cookie为依据);访问网站的一台电脑客户端为一个访客。可以理解成访问某网站的电脑的数量。网站判断来访电脑的身份是通过来访电脑的cookies实现的。如果更换了IP后但不清除cookies,再访问相同网站,该网站的统计中UV数是不变的。如果用户不保存cookies访问、清除了cookies或者更换设备访问,计数会加1。00:00-24:00内相同的客户端多次访问只计为1个访客。
  3. IP(Internet Protocol)独立IP数,是指1天内多少个独立的IP浏览了页面,即统计不同的IP浏览用户数量。同一IP不管访问了几个页面,独立IP数均为1;不同的IP浏览页面,计数会加1。 IP是基于用户广域网IP地址来区分不同的访问者的,所以,多个用户(多个局域网IP)在同一个路由器(同一个广域网IP)内上网,可能被记录为一个独立IP访问者。如果用户不断更换IP,则有可能被多次统计。
  4. 会话次数(网站访问量)Session,会话是指在指定的时间段内在您的网站上发生的一系列互动,所以会话次数是一段时间内用户向您的网站发起的会话(Session)总数量。一次会话会浏览一个或多个页面

参考

  1. Nginx 单机百万QPS环境搭建
- +

高并发API

总结

  1. 单机百万QPS的Nginx是没有问题的,具体能到多少,受限于:
    1. 服务器的CPU数量、内存大小、磁盘性能;
    2. 服务器Linux的配置
    3. Nginx的参数配置
    4. 网卡的配置、路由器的配置、交换机的配置
  2. 单机Tomcat受限于JVM和web框架等原因,也就最多1万左右的QPS;
    1. 如果需要简单查询数据库的,也就2~3K的QPS;
    2. 如果需要数据库事务操作的,也就100~150的QPS;
  3. 什么时候需要水平拓展QPS
  4. HTTP压测工具之wrk;
    1. HTTP压测工具之wrk
    2. 性能测试工具wrk使用教程
  5. 一般来说,不一定很准确,参考:
    1. 2C4G机器单机一般1000QPS。
    2. 8C8G机器单机可承受7000QPS。

wrk操作

#scripts/post.lua
vim post.lua
#
wrk.method = "POST"
wrk.body = '{"domain":"xxx.xxx.xxx"}'
wrk.headers["Content-Type"] = "application/json"
#
./wrk -t4 -c1000 -d5s -s /root/code/wrk/scripts/post.lua {具体的URL}

Nginx统计访问量

根据访问IP统计UV

# 根据访问IP统计UV
cat /mnt/docker/tomcat/logs/{具体的nginx log} \
| grep "21/May/2020" | awk '{print $1}' \
|sort | uniq -c |wc -l

根据访问URL统计PV

# 根据访问URL统计PV
cat /mnt/docker/tomcat/logs/{具体的nginx log文件} \
| grep "21/May/2020" \
| awk '{print $7}' |wc -l

根据访问URL统计QPS

# 根据访问URL统计QPS
cat /mnt/docker/tomcat/logs/{具体的nginx log文件} \
| grep "21/May/2020:16:39:" \
| awk '{print $7}' |wc -l

查询访问最频繁的URL

# 查询访问最频繁的URL
cat /usr/local/nginx/logs/access.log \
| grep "29/Feb/2020" | awk '{print $7}' \
|sort | uniq -c |sort -n -k 1 -r|more

查询访问最频繁的IP

# 查询访问最频繁的IP
cat /mnt/docker/tomcat/logs/{具体的nginx log文件} \
| grep "12/May/2020" | awk '{print $1}' \
|sort | uniq -c |sort -n -k 1 -r|more

根据时间段统计查看日志

# 根据时间段统计查看日志
cat /usr/local/nginx/logs/access.log \
| sed -n '/14\/Mar\/2015/,/14\/Mar\/2020/p'|more

某个时间段访问总次数

# 某个时间段访问总次数
cat /usr/local/nginx/logs/access.log \
| grep -E '16\/Feb\/2020:1[2-9]|29\/Feb\/2020:2[0-3]'| wc -

查看访问最频繁的前5个IP,并列出访问次数

#查看访问最频繁的前5个IP,并列出访问次数
cat /usr/local/nginx/logs/access.log \
| grep "29/Feb/2020" | awk '{print $1}'|sort -n|uniq -c| sort -rn| head -5

统计状态码为200次数

# 统计状态码为200次数
cat /usr/local/nginx/logs/access.log \
| grep "29/Feb/2020" | awk '{if($9 == 200) print $9}'|wc -l

统计状态码不是200的次数

#统计状态码不是200的次数
cat /usr/local/nginx/logs/access.log \
| grep "29/Feb/2020" | awk '{if($9 != 200) print }'|less

查看404错误码的请求

#查看404错误码的请求
cat /usr/local/nginx/logs/access.log \
| grep "29/Feb/2020" | grep "404"|less

每隔5分钟访问次数列表

#每隔5分钟访问次数列表
cat /usr/local/nginx/logs/access.log \
| grep "29/Feb/2020" \
| awk -F: '{a[$2":"($3-$3%5)]++}END\
{for(i in a){split(i,t);print i" 至",t[1]":"t[2]+4," \
访问 "a[i] " 次" | "sort -t: -k1n -k2n"}}'

查询某个IP的详细访问情况,按访问频率排序

#查询某个IP的详细访问情况,按访问频率排序
cat /usr/local/nginx/logs/access.log \
| grep "29/Feb/2020" | grep '122.4.22.242' \
| awk '{print $7}'|sort |uniq -c |sort -rn |head -n 100

统计每秒的请求数,top100的时间点(精确到秒)

#统计每秒的请求数,top100的时间点(精确到秒)
cat /usr/local/nginx/logs/access.log \
| grep "29/Feb/2020" | awk '{print $4}' \
|cut -c 14-21|sort|uniq -c|sort -nr|head -n 100

统计每分钟的请求数,top100的时间点(精确到分钟)

#统计每分钟的请求数,top100的时间点(精确到分钟)
cat /usr/local/nginx/logs/access.log \
| grep "29/Feb/2020" | awk '{print $4}' \
|cut -c 14-18|sort|uniq -c|sort -nr|head -n 100

统计每小时的请求数,top100的时间点(精确到小时)

#统计每小时的请求数,top100的时间点(精确到小时)
cat /mnt/docker/tomcat/logs/{具体的nginx log文件} \
| grep "21/May/2020" | awk '{print $4}' \
|cut -c 14-15|sort|uniq -c|sort -nr|head -n 100

其他,未分类


##性能分析
#在nginx log中最后一个字段加入$request_time
#列出传输时间超过 3 秒的页面,显示前20条
cat /usr/local/nginx/logs/access.log | grep "29/Feb/2020" \
| awk '($NF > 3){print $7}'|sort -n|uniq -c|sort -nr|head -20

##TCP连接统计
#查看当前TCP连接数
netstat -tan | grep "ESTABLISHED" | grep ":80" | wc -l
#用tcpdump嗅探80端口的访问看看谁最高
tcpdump -i eth0 -tnn dst port 80 -c 1000 \
| awk -F"." '{print $1"."$2"."$3"."$4}' | sort | uniq -c | sort -nr

名词解释

  1. PV(Page View)访问量, 即页面浏览量或点击量,衡量网站用户访问的网页数量;在一定统计周期内用户每打开或刷新一个页面就记录1次,多次打开或刷新同一页面则浏览量累计。
  2. UV(Unique Visitor)独立访客,统计1天内访问某站点的用户数(以cookie为依据);访问网站的一台电脑客户端为一个访客。可以理解成访问某网站的电脑的数量。网站判断来访电脑的身份是通过来访电脑的cookies实现的。如果更换了IP后但不清除cookies,再访问相同网站,该网站的统计中UV数是不变的。如果用户不保存cookies访问、清除了cookies或者更换设备访问,计数会加1。00:00-24:00内相同的客户端多次访问只计为1个访客。
  3. IP(Internet Protocol)独立IP数,是指1天内多少个独立的IP浏览了页面,即统计不同的IP浏览用户数量。同一IP不管访问了几个页面,独立IP数均为1;不同的IP浏览页面,计数会加1。 IP是基于用户广域网IP地址来区分不同的访问者的,所以,多个用户(多个局域网IP)在同一个路由器(同一个广域网IP)内上网,可能被记录为一个独立IP访问者。如果用户不断更换IP,则有可能被多次统计。
  4. 会话次数(网站访问量)Session,会话是指在指定的时间段内在您的网站上发生的一系列互动,所以会话次数是一段时间内用户向您的网站发起的会话(Session)总数量。一次会话会浏览一个或多个页面

参考

  1. Nginx 单机百万QPS环境搭建
+ \ No newline at end of file diff --git a/docs/study/competitive/CMP-DMP-AEP-BAP/index.html b/docs/study/competitive/CMP-DMP-AEP-BAP/index.html index 39378f970..005355bea 100644 --- a/docs/study/competitive/CMP-DMP-AEP-BAP/index.html +++ b/docs/study/competitive/CMP-DMP-AEP-BAP/index.html @@ -10,15 +10,15 @@ - - + +

CMP-DMP-AEP-BAP

简述

物联网云平台处于物联网四个逻辑层(感知层、网络层、平台层、应用层)中处于平台层这一环,平台层于物联网的作用在于收集、处理数据等。我们可根据云平台的功能将其分为CMP、DMP、AEP和BAP等四个平台。到目前为止还没有一家公司可在业务上涵盖四个子平台,每个公司有各自擅长领域 和独特优势。

根据各类参与者所提供的服务类型,按照Machina Research的分类方法,物联网平台可分为连接管理平台CMP(Connectivity Management Platform)、设备管理平台DMP(Device Management Platform)、应用使能平台AEP(Application Enablement Platform)和业务分析平台BAP(Business Analytics Platform)。

image.png

一、连接管理平台CMP

CMP(Connectivity Management Platform)为连接管理平台。一般运用于运营商网络上,具体来说连接的物联网SIM卡。该平台可以实现对物联网连接配置和故障管理、保证终端联网通道稳定、网络资源用量管理、连接资费管理、账单管理、套餐变更等。

连接管理平台通常指基于电信运营商网络(蜂窝,LTE等)提供可连接性管理、优化以及终端管理,维护等方面的功能的平台。其功能通常包括号码/IP地址/Mac资源管理、SIM卡管控、连接资费管理、套餐管理、网络资源用量管理、账单管理、故障管理等。物联网连接具备M2M连接数大、单个物品连接ARPU值低(人类连接客户ARPU值的3%-5%)的特点,直接结果就是多数运营商将放弃自建CMP平台,转与专门化的CMP平台供应商合作。根据物联网智库的分析,对于拥有超过1000个连接的企业,长期来看,使用云平台比自建IT设施将节省90%的成本。另外,很多物联网客户都是跨国企业,选择运营商时更青睐一点接入全球通用,因此全球化的龙头CMP企业优势显著。

典型的连接管理平台包括思科的Jasper平台、爱立信的DCP、沃达丰的GDSP,Telit的M2M平台、PTC的Thingworx和Axeda。目前全球化的CMP主要有三家:Jasper平台、爱立信DCP平台和沃达丰GDSP平台,其中Jasper最大,与全球超过100家运营商、3500家企业客户展开合作,国内的中国联通也通过宜通世纪与Jasper平台进行合作。

在国内三大运营商中,中国移动选择自研One NET连接管理平台,中国联通与Jasper战略合作,选择其Control平台提供物联网连接服务;中国电信也先后自研及与爱立信合作建立两套连接管理平台。

二、设备管理平台DMP

DMP(Device Management Platform)是设备管理平台。主要对物联网终端进行远程监控、设置调整 、软件升级、故障排查等一系列等功能。并通过提供开放的API调用接口帮助客户进行系统的集成在整套端到端M2M设备管理解决方案中,整体报价收费。可以认为DMP主要面向设备的开、关、停等基本状态的控制,或实时的物联网设备警告等不涉及物联网上层应用场景的设备管理。

物联网设备管理平台DMP往往集成在端到端的全套设备管理解决方案中,进行整体报价收费。DMP功能包括用户管理以及物联网设备管理,例如配置、重启、关闭、恢复出厂、升级/回退等,设备现场产生的数据的查询,以及基于现场数据的报警功能,设备生命周期管理等。据IDC数据显示,2020年全球将超过250亿台设备联网。

设备管理的核心不在基础的连接和的管理职能,而在增值性的经营和维护业务上。通过大量设备的接入数据,识别出业务流程的优化甚至新的商业模式,对设备进行生命周期管理和运维,能够对客户起到降本增效的作用。

典型的DMP平台包括BOSCHIoTSuite、IBMWatson、DiGi、百度云物接入IoTHub、三一重工根云、GEPredix等。以百度云为例,百度云物接入IoTHub是建立在IaaS上的PaaS平台,提供全托管的云服务,帮助建立设备与云端之间的双向连接,支撑海量设备的数据收集、监控、故障预测等各种物联网场景。一些垂直领域巨头本身就是设备提供商,业务外延至平台层面,通常能够提供整体解决方案,部分能够集成CRM、ERP、MES等信息系统。

三、应用使能平台AEP

AEP(Application Enablement Platform)是上层的业务使能平台,该逻辑层是结合了上层的应用场景,为开发者提供成套应用开发工具(SDK)、中间件、数据存储、业务逻辑引擎、第三方API接口等功能。我们可将其理解为结合应用场景的系统开发平台。随着企业在行业中对业务经验、所涉及技术的持续积累,平台的竞争力将逐渐从连接能力转移到平台的多场景化的业务能力。

应用使能平台AEP是提供快速开发部署物联网应用服务的PaaS平台。AEP为开发者提供了成套应用开发工具、中间件、业务逻辑引擎、API接口、应用服务器等工具,以节省大量开发时间和预算。

物联网市场天然碎片化,AEP平台商通过提供完善的开发资料库、多样化的部署方式、企业级SDK及可拓展的通用中间件,大大降低开发门槛。应用AEP平台能够使应用的开发成本大幅降低,并及时推向市场抢占先机。

典型的AEP平台提供商包括PTCThing worx,艾拉物联,机智云,Comulo city,AWS -IoT,Watson IoT Platform等。

以机智云为例,中国电信的白色家电行业使能套件是与日海物联及机智云合作完成的,主要服务于智能家电行业,帮助客户进行产品开发。套件提供数据的管理、分析、调取的标准化接口,应用开发者只需要调用接口,就能够快速进行手机APP或者应用软件平台的搭建。最终用户通过手机或者电脑,就可以轻松控制控制智能家电。

四、业务分析平台BAP

BAP(Business Analytics Platform)可被称为业务分析平台,该逻辑层包含大数据服务和机器学习两个主要功能。将汇集在云平台的数据进行分析、处理,并将其可视化。而机器学习是将沉淀在平台上结构化和非结构化数据进行训练,形成具有预测性的、认知的、或复杂的业务分析逻辑。而未来,机器学习必然将向人工智能过度。从数据累计量、人工智能技术的发展程度等角度考虑,目前还没有企业的业务可以达到这一层级。

业务分析平台BAP主要通过大数据分析和机器学习等方法,对数据进行深度解析,以图表、数据报告等方式进行可视化展示,并应用于垂直行业。物联网应用可以通过对BAP模块的调用来建立模型,进行业务发展预测分析及设备的预防性维护等。由于人工智能技术及数据感知层搭建的进度限制,目前BAP平台发展仍未成熟。

- +IoT,Watson IoT Platform等。

以机智云为例,中国电信的白色家电行业使能套件是与日海物联及机智云合作完成的,主要服务于智能家电行业,帮助客户进行产品开发。套件提供数据的管理、分析、调取的标准化接口,应用开发者只需要调用接口,就能够快速进行手机APP或者应用软件平台的搭建。最终用户通过手机或者电脑,就可以轻松控制控制智能家电。

四、业务分析平台BAP

BAP(Business Analytics Platform)可被称为业务分析平台,该逻辑层包含大数据服务和机器学习两个主要功能。将汇集在云平台的数据进行分析、处理,并将其可视化。而机器学习是将沉淀在平台上结构化和非结构化数据进行训练,形成具有预测性的、认知的、或复杂的业务分析逻辑。而未来,机器学习必然将向人工智能过度。从数据累计量、人工智能技术的发展程度等角度考虑,目前还没有企业的业务可以达到这一层级。

业务分析平台BAP主要通过大数据分析和机器学习等方法,对数据进行深度解析,以图表、数据报告等方式进行可视化展示,并应用于垂直行业。物联网应用可以通过对BAP模块的调用来建立模型,进行业务发展预测分析及设备的预防性维护等。由于人工智能技术及数据感知层搭建的进度限制,目前BAP平台发展仍未成熟。

+ \ No newline at end of file diff --git a/docs/study/competitive/TP-LINK/index.html b/docs/study/competitive/TP-LINK/index.html index 4c152b720..5e9b495c7 100644 --- a/docs/study/competitive/TP-LINK/index.html +++ b/docs/study/competitive/TP-LINK/index.html @@ -10,14 +10,14 @@ - - + + - +
+ \ No newline at end of file diff --git a/docs/study/competitive/ThingsCloud/index.html b/docs/study/competitive/ThingsCloud/index.html index 996ed60ff..1a17bdb9f 100644 --- a/docs/study/competitive/ThingsCloud/index.html +++ b/docs/study/competitive/ThingsCloud/index.html @@ -10,14 +10,14 @@ - - + + - +
+ \ No newline at end of file diff --git a/docs/study/competitive/index.html b/docs/study/competitive/index.html index f3adab686..9f73049b2 100644 --- a/docs/study/competitive/index.html +++ b/docs/study/competitive/index.html @@ -10,14 +10,14 @@ - - + + - +
+ \ No newline at end of file diff --git "a/docs/study/competitive/\345\267\245\344\270\232\344\272\222\350\201\224\347\275\221\346\216\242\347\251\266/index.html" "b/docs/study/competitive/\345\267\245\344\270\232\344\272\222\350\201\224\347\275\221\346\216\242\347\251\266/index.html" index eb4a2b447..24febaa90 100644 --- "a/docs/study/competitive/\345\267\245\344\270\232\344\272\222\350\201\224\347\275\221\346\216\242\347\251\266/index.html" +++ "b/docs/study/competitive/\345\267\245\344\270\232\344\272\222\350\201\224\347\275\221\346\216\242\347\251\266/index.html" @@ -10,14 +10,14 @@ - - + +
-

工业互联网探究

分类:行业+场景+模式

  1. “场景”指设备资产管理、业务运营优化和产业生态创新三种;
  2. “模式”则包括通用型平台、垂直行业平台、平台解决方案、工业App/细分解决方案以及IAAS层(主要提供云服务,基本就是阿里云、华为云、腾讯云、AWS等,不在本文讨论范围)五类

通用型工业互联网平台

通用型工业互联网平台跨多行业多领域,往往会基于自身PaaS层与生态伙伴合作推动在各行业、领域的工业互联网建设。也正是因为其跨行业跨领域特性,工业互联网通用型平台建设难度大,属于资源和资金密集型的机会。

2019年8月26日,工信部公布2019年十大跨行业跨领域工业互联网平台清单,入选平台分别是:海尔COSMOPlat工业互联网平台东方国信Cloudiip工业互联网平台用友精智工业互联网平台树根互联根云工业互联网平台航天云网INDICS工业互联网平台浪潮云In-Cloud工业互联网平台华为FusionPlant工业互联网平台富士康BEACON工业互联网平台阿里supET工业互联网平台徐工信息汉云工业互联网平台,这十家工业互联网平台即是通用型平台的典型案例。

  1. 树根互联(三一重工)
  2. 汉云工业物联网平台(徐工信息)

垂直工业互联网平台及解决方案

通用型平台“一个平台包打天下”的模式比较难在行业内深耕,不同行业生产场景的巨大差别也给了垂直领域互联网平台及解决方案发展的机会。下面从工业互联网三大应用场景设备资产管理、业务运营优化、产业生态创新出发,列举垂直行业平台、平台解决方案以及工业App等细分解决方案三类国内工业互联网公司。其中,垂直行业平台只聚焦于某一个领域或行业;平台解决方案除了平台,还会提供整体解决方案,模式更“重”。除了以上端到端的平台模式,还有一类公司是针对工业场景中的某一个痛点提供细分解决方案,这种就是工业APP/细分应用。 

  1. 蘑菇互联(垂直行业平台)
    1. 设备产业链三大主题:设备制造企业、设备代理/服务企业、设备用户企业;
    2. 蘑菇云盒+蘑菇云+蘑菇圈;
    3. 为设备制造商定制"物联网集成管理系统";
    4. 为设备代理/服务商提供"一站式物联网管理工具";
    5. 为设备用户企业打造"数字智能管理车间系";
  2. 智能云科(垂直行业平台)
  3. 普奥云科技(平台解决方案)
  4. 寄云科技(平台解决方案)
  5. 湃方科技(平台解决方案)
  6. 天泽智云(平台解决方案)

参考

  1. 近万亿工业互联网赛道有哪些玩家?这里有一份行业图谱
- +

工业互联网探究

分类:行业+场景+模式

  1. “场景”指设备资产管理、业务运营优化和产业生态创新三种;
  2. “模式”则包括通用型平台、垂直行业平台、平台解决方案、工业App/细分解决方案以及IAAS层(主要提供云服务,基本就是阿里云、华为云、腾讯云、AWS等,不在本文讨论范围)五类

通用型工业互联网平台

通用型工业互联网平台跨多行业多领域,往往会基于自身PaaS层与生态伙伴合作推动在各行业、领域的工业互联网建设。也正是因为其跨行业跨领域特性,工业互联网通用型平台建设难度大,属于资源和资金密集型的机会。

2019年8月26日,工信部公布2019年十大跨行业跨领域工业互联网平台清单,入选平台分别是:海尔COSMOPlat工业互联网平台东方国信Cloudiip工业互联网平台用友精智工业互联网平台树根互联根云工业互联网平台航天云网INDICS工业互联网平台浪潮云In-Cloud工业互联网平台华为FusionPlant工业互联网平台富士康BEACON工业互联网平台阿里supET工业互联网平台徐工信息汉云工业互联网平台,这十家工业互联网平台即是通用型平台的典型案例。

  1. 树根互联(三一重工)
  2. 汉云工业物联网平台(徐工信息)

垂直工业互联网平台及解决方案

通用型平台“一个平台包打天下”的模式比较难在行业内深耕,不同行业生产场景的巨大差别也给了垂直领域互联网平台及解决方案发展的机会。下面从工业互联网三大应用场景设备资产管理、业务运营优化、产业生态创新出发,列举垂直行业平台、平台解决方案以及工业App等细分解决方案三类国内工业互联网公司。其中,垂直行业平台只聚焦于某一个领域或行业;平台解决方案除了平台,还会提供整体解决方案,模式更“重”。除了以上端到端的平台模式,还有一类公司是针对工业场景中的某一个痛点提供细分解决方案,这种就是工业APP/细分应用。 

  1. 蘑菇互联(垂直行业平台)
    1. 设备产业链三大主题:设备制造企业、设备代理/服务企业、设备用户企业;
    2. 蘑菇云盒+蘑菇云+蘑菇圈;
    3. 为设备制造商定制"物联网集成管理系统";
    4. 为设备代理/服务商提供"一站式物联网管理工具";
    5. 为设备用户企业打造"数字智能管理车间系";
  2. 智能云科(垂直行业平台)
  3. 普奥云科技(平台解决方案)
  4. 寄云科技(平台解决方案)
  5. 湃方科技(平台解决方案)
  6. 天泽智云(平台解决方案)

参考

  1. 近万亿工业互联网赛道有哪些玩家?这里有一份行业图谱
+ \ No newline at end of file diff --git "a/docs/study/competitive/\347\211\251\350\201\224\347\275\221\345\271\263\345\217\260\345\261\202\346\246\202\350\277\260/index.html" "b/docs/study/competitive/\347\211\251\350\201\224\347\275\221\345\271\263\345\217\260\345\261\202\346\246\202\350\277\260/index.html" index 5cdf203a5..149b6cd80 100644 --- "a/docs/study/competitive/\347\211\251\350\201\224\347\275\221\345\271\263\345\217\260\345\261\202\346\246\202\350\277\260/index.html" +++ "b/docs/study/competitive/\347\211\251\350\201\224\347\275\221\345\271\263\345\217\260\345\261\202\346\246\202\350\277\260/index.html" @@ -10,14 +10,14 @@ - - + +
-

物联网平台层概述

在大众熟知的物联网感知层、网络层、平台层、应用层四大层次里,平台层将作为物联网从设备连接到场景应用的关键“桥梁”而发挥作用。

物联网平台是一款提供丰富功能组合的商业软件产品,主要体现在:

  1. 负责物联网设备的连接与管理;
  2. 负责物联网数据的访问、摄取与存储;
  3. 对数据的可视化与分析;
  4. 作为物联网应用程序开发和集成的工具。

甚至还有观点认为,物联网未来一定是平台为王。尤其随着数据量剧增、用户对计算能力的需求越来越大,具有强大接入与运维管理能力的云平台将是企业打造品牌的重要关键。

物联网平台被认为是推动物联网大规模连接的基础软件,是促进 IoT 项目规模落地的关键基础设施,是全球物联网企业争夺发力的战略高地。

物联网平台属于云计算三种服务模型(IaaS、PaaS、SaaS)中 PaaS 层的一部分,起源于物联网中间件的形式,其目的是在硬件层和应用层之间起到中介作用,管理二者之间的所有交互。

物联网平台企业较高频地提到 4 大功能,分别是连接管理设备管理应用开发数据分析

连接管理是基础、设备管理是核心、应用开发是价值体现、数据分析是应用潜能、安全是重要保障。

从根本上理解,物联网平台玩家的经营策略主要可分为两点:

  • 一种是横向的,专门做泛行业的连接;
  • 另一种是纵向的,持续在垂直领域挖掘深耕。

构筑芯端边网云全栈物联网产品和解决方案。在网络侧,除了大家比较熟悉的 2、3、4G、5G 外,华为还在推进 NB-IoT、eLTE 等物联网网络的建设,为产业领域万物互联准备好网络。

设备接入服务实现多(亿级联接、百万并发)、快(小时级接入、分钟级安装部署)、好(高安全高可靠)、省(低功耗、低成本)的设备上云接入;数据分析服务实现开箱即用的一站式数据处理 & 分析,为开发者提供物联网实时分析、时需分析、离线分析,快速挖掘物联网数据的价值。

物联网平台层主要有三种客户:设备生产厂家、工业现场(设备用户)、垂直行业物联网解决方案商。

物联网云平台处于物联网四个逻辑层(感知层、网络层、平台层、应用层)中处于平台层这一环,平台层于物联网的作用在于收集、处理数据等。我们可根据云平台的功能将其分为CMP、DMP、AEP和BAP等四个平台。到目前为止还没有一家公司可在业务上涵盖四个子平台,每个公司有各自擅长领域 和独特优势。

- +

物联网平台层概述

在大众熟知的物联网感知层、网络层、平台层、应用层四大层次里,平台层将作为物联网从设备连接到场景应用的关键“桥梁”而发挥作用。

物联网平台是一款提供丰富功能组合的商业软件产品,主要体现在:

  1. 负责物联网设备的连接与管理;
  2. 负责物联网数据的访问、摄取与存储;
  3. 对数据的可视化与分析;
  4. 作为物联网应用程序开发和集成的工具。

甚至还有观点认为,物联网未来一定是平台为王。尤其随着数据量剧增、用户对计算能力的需求越来越大,具有强大接入与运维管理能力的云平台将是企业打造品牌的重要关键。

物联网平台被认为是推动物联网大规模连接的基础软件,是促进 IoT 项目规模落地的关键基础设施,是全球物联网企业争夺发力的战略高地。

物联网平台属于云计算三种服务模型(IaaS、PaaS、SaaS)中 PaaS 层的一部分,起源于物联网中间件的形式,其目的是在硬件层和应用层之间起到中介作用,管理二者之间的所有交互。

物联网平台企业较高频地提到 4 大功能,分别是连接管理设备管理应用开发数据分析

连接管理是基础、设备管理是核心、应用开发是价值体现、数据分析是应用潜能、安全是重要保障。

从根本上理解,物联网平台玩家的经营策略主要可分为两点:

  • 一种是横向的,专门做泛行业的连接;
  • 另一种是纵向的,持续在垂直领域挖掘深耕。

构筑芯端边网云全栈物联网产品和解决方案。在网络侧,除了大家比较熟悉的 2、3、4G、5G 外,华为还在推进 NB-IoT、eLTE 等物联网网络的建设,为产业领域万物互联准备好网络。

设备接入服务实现多(亿级联接、百万并发)、快(小时级接入、分钟级安装部署)、好(高安全高可靠)、省(低功耗、低成本)的设备上云接入;数据分析服务实现开箱即用的一站式数据处理 & 分析,为开发者提供物联网实时分析、时需分析、离线分析,快速挖掘物联网数据的价值。

物联网平台层主要有三种客户:设备生产厂家、工业现场(设备用户)、垂直行业物联网解决方案商。

物联网云平台处于物联网四个逻辑层(感知层、网络层、平台层、应用层)中处于平台层这一环,平台层于物联网的作用在于收集、处理数据等。我们可根据云平台的功能将其分为CMP、DMP、AEP和BAP等四个平台。到目前为止还没有一家公司可在业务上涵盖四个子平台,每个公司有各自擅长领域 和独特优势。

+ \ No newline at end of file diff --git a/docs/study/db/NewSQL/TiDB/index.html b/docs/study/db/NewSQL/TiDB/index.html index 9ddabe905..8c46d6c26 100644 --- a/docs/study/db/NewSQL/TiDB/index.html +++ b/docs/study/db/NewSQL/TiDB/index.html @@ -10,8 +10,8 @@ - - + + @@ -23,8 +23,8 @@ TiDB 100% 支持标准的 ACID 事务。
  • 真正金融级高可用 相比于传统主从 (M-S) 复制方案,基于 Raft 的多数派选举协议可以提供金融级的 100% 数据强一致性保证,且在不丢失大多数副本的前提下,可以实现故障的自动恢复 (auto-failover),无需人工介入。
  • 一站式 HTAP 解决方案 TiDB 作为典型的 OLTP 行存数据库,同时兼具强大的 OLAP 性能,配合 TiSpark,可提供一站式 HTAP 解决方案,一份存储同时处理 OLTP & OLAP,无需传统繁琐的 ETL 过程。
  • 云原生 SQL 数据库 -TiDB 是为云而设计的数据库,支持公有云、私有云和混合云,使部署、配置和维护变得十分简单。
  • TiDB 的设计目标是 100% 的 OLTP 场景和 80% 的 OLAP 场景,更复杂的 OLAP 分析可以通过 TiSpark 项目来完成。

    TiDB 对业务没有任何侵入性,能优雅的替换传统的数据库中间件、数据库分库分表等 Sharding 方案。同时它也让开发运维人员不用关注数据库 Scale 的细节问题,专注于业务开发,极大的提升研发的生产力。

    三篇文章了解 TiDB 技术内幕:

    目前状况(V3.0)

    TiDB 目前还不支持触发器、存储过程、自定义函数、外键,除此之外,TiDB 支持绝大部分 MySQL 5.7 的语法。

    - +TiDB 是为云而设计的数据库,支持公有云、私有云和混合云,使部署、配置和维护变得十分简单。

    TiDB 的设计目标是 100% 的 OLTP 场景和 80% 的 OLAP 场景,更复杂的 OLAP 分析可以通过 TiSpark 项目来完成。

    TiDB 对业务没有任何侵入性,能优雅的替换传统的数据库中间件、数据库分库分表等 Sharding 方案。同时它也让开发运维人员不用关注数据库 Scale 的细节问题,专注于业务开发,极大的提升研发的生产力。

    三篇文章了解 TiDB 技术内幕:

    目前状况(V3.0)

    TiDB 目前还不支持触发器、存储过程、自定义函数、外键,除此之外,TiDB 支持绝大部分 MySQL 5.7 的语法。

    + \ No newline at end of file diff --git a/docs/study/db/NoSQL/Cassandra/index.html b/docs/study/db/NoSQL/Cassandra/index.html index 1f1c35536..51570e62d 100644 --- a/docs/study/db/NoSQL/Cassandra/index.html +++ b/docs/study/db/NoSQL/Cassandra/index.html @@ -10,14 +10,14 @@ - - + +
    -

    Cassandra

    简介

    Apache Cassandra 是一套开源分布式 Key-Value 存储系统。它最初由 Facebook 开发,用于储存特别大的数据。

    主要特性:

    • 分布式
    • 基于column的结构化
    • 高伸缩性

    Cassandra 的主要特点就是它不是一个数据库,而是由一堆数据库节点共同构成的一个分布式网络服务,对 Cassandra 的一个写操作,会被复制到其他节点上去,对 Cassandra 的读操作,也会被路由到某个节点上面去读取。对于一个 Cassandra 群集来说,扩展性能 是比较简单的事情,只管在群集里面添加节点就可以了。

    Cassandra 是一个混合型的非关系的数据库,类似于 Google 的 BigTable。其主要功能比 Dynomite(分布式的 Key-Value 存 储系统)更丰富,但支持度却不如文档存储 MongoDB(介于关系数据库和非关系数据库之间的开源产品,是非关系数据库当中功能最丰富,最像关系数据库 的。支持的数据结构非常松散,是类似 json 的 bjson 格式,因此可以存储比较复杂的数据类型。)Cassandra 最初由 Facebook 开发,后转变成了开源项目。它是一个网络社交云计算方面理想的数据库。以 Amazon 专有的完全分布式的 Dynamo 为基础,结合了 Google BigTable 基于列族(Column Family)的数据模型。P2P 去中心化的存储。很多方面都可以称之为 Dynamo 2.0。

    中文官网地址

    - +

    Cassandra

    简介

    Apache Cassandra 是一套开源分布式 Key-Value 存储系统。它最初由 Facebook 开发,用于储存特别大的数据。

    主要特性:

    • 分布式
    • 基于column的结构化
    • 高伸缩性

    Cassandra 的主要特点就是它不是一个数据库,而是由一堆数据库节点共同构成的一个分布式网络服务,对 Cassandra 的一个写操作,会被复制到其他节点上去,对 Cassandra 的读操作,也会被路由到某个节点上面去读取。对于一个 Cassandra 群集来说,扩展性能 是比较简单的事情,只管在群集里面添加节点就可以了。

    Cassandra 是一个混合型的非关系的数据库,类似于 Google 的 BigTable。其主要功能比 Dynomite(分布式的 Key-Value 存 储系统)更丰富,但支持度却不如文档存储 MongoDB(介于关系数据库和非关系数据库之间的开源产品,是非关系数据库当中功能最丰富,最像关系数据库 的。支持的数据结构非常松散,是类似 json 的 bjson 格式,因此可以存储比较复杂的数据类型。)Cassandra 最初由 Facebook 开发,后转变成了开源项目。它是一个网络社交云计算方面理想的数据库。以 Amazon 专有的完全分布式的 Dynamo 为基础,结合了 Google BigTable 基于列族(Column Family)的数据模型。P2P 去中心化的存储。很多方面都可以称之为 Dynamo 2.0。

    中文官网地址

    + \ No newline at end of file diff --git a/docs/study/db/NoSQL/Hbase/index.html b/docs/study/db/NoSQL/Hbase/index.html index dbd9db1a0..429069b7e 100644 --- a/docs/study/db/NoSQL/Hbase/index.html +++ b/docs/study/db/NoSQL/Hbase/index.html @@ -10,14 +10,14 @@ - - + +
    -

    Hbase

    列式数据库

    顾名思义,列式数据库就是按照列来存储数据的数据库,与之对应的传统关系数据库被称为“行式数据库”,因为关系数据库是按照行来存储数据的。

    关系数据库按照行式来存储数据,主要有以下几个优势:

    • 业务同时读取多个列时效率高,因为这些列都是按行存储在一起的,一次磁盘操作就能够把一行数据中的各个列都读取到内存中。
    • 能够一次性完成对一行中的多个列的写操作,保证了针对行数据写操作的原子性和一致性;否则如果采用列存储,可能会出现某次写操作,有的列成功了,有的列失败了,导致数据不一致。

    我们可以看到,行式存储的优势是在特定的业务场景下才能体现,如果不存在这样的业务场景,那么行式存储的优势也将不复存在,甚至成为劣势,典型的场景就是海量数据进行统计。例如,计算某个城市体重超重的人员数据,实际上只需要读取每个人的体重这一列并进行统计即可,而行式存储即使最终只使用一列,也会将所有行数据都读取出来。如果单行用户信息有 1KB,其中体重只有 4 个字节,行式存储还是会将整行 1KB 数据全部读取到内存中,这是明显的浪费。而如果采用列式存储,每个用户只需要读取 4 字节的体重数据即可,I/O 将大大减少。

    除了节省 I/O,列式存储还具备更高的存储压缩比,能够节省更多的存储空间。普通的行式数据库一般压缩率在 3:1 到 5:1 左右,而列式数据库的压缩率一般在 8:1 到 30:1 左右,因为单个列的数据相似度相比行来说更高,能够达到更高的压缩率。

    同样,如果场景发生变化,列式存储的优势又会变成劣势。典型的场景是需要频繁地更新多个列。因为列式存储将不同列存储在磁盘上不连续的空间,导致更新多个列时磁盘是随机写操作;而行式存储时同一行多个列都存储在连续的空间,一次磁盘写操作就可以完成,列式存储的随机写效率要远远低于行式存储的写效率。此外,列式存储高压缩率在更新场景下也会成为劣势,因为更新时需要将存储数据解压后更新,然后再压缩,最后写入磁盘。

    基于上述列式存储的优缺点,一般将列式存储应用在离线的大数据分析和统计场景中,因为这种场景主要是针对部分列单列进行操作,且数据写入后就无须再更新删除。

    - +

    Hbase

    列式数据库

    顾名思义,列式数据库就是按照列来存储数据的数据库,与之对应的传统关系数据库被称为“行式数据库”,因为关系数据库是按照行来存储数据的。

    关系数据库按照行式来存储数据,主要有以下几个优势:

    • 业务同时读取多个列时效率高,因为这些列都是按行存储在一起的,一次磁盘操作就能够把一行数据中的各个列都读取到内存中。
    • 能够一次性完成对一行中的多个列的写操作,保证了针对行数据写操作的原子性和一致性;否则如果采用列存储,可能会出现某次写操作,有的列成功了,有的列失败了,导致数据不一致。

    我们可以看到,行式存储的优势是在特定的业务场景下才能体现,如果不存在这样的业务场景,那么行式存储的优势也将不复存在,甚至成为劣势,典型的场景就是海量数据进行统计。例如,计算某个城市体重超重的人员数据,实际上只需要读取每个人的体重这一列并进行统计即可,而行式存储即使最终只使用一列,也会将所有行数据都读取出来。如果单行用户信息有 1KB,其中体重只有 4 个字节,行式存储还是会将整行 1KB 数据全部读取到内存中,这是明显的浪费。而如果采用列式存储,每个用户只需要读取 4 字节的体重数据即可,I/O 将大大减少。

    除了节省 I/O,列式存储还具备更高的存储压缩比,能够节省更多的存储空间。普通的行式数据库一般压缩率在 3:1 到 5:1 左右,而列式数据库的压缩率一般在 8:1 到 30:1 左右,因为单个列的数据相似度相比行来说更高,能够达到更高的压缩率。

    同样,如果场景发生变化,列式存储的优势又会变成劣势。典型的场景是需要频繁地更新多个列。因为列式存储将不同列存储在磁盘上不连续的空间,导致更新多个列时磁盘是随机写操作;而行式存储时同一行多个列都存储在连续的空间,一次磁盘写操作就可以完成,列式存储的随机写效率要远远低于行式存储的写效率。此外,列式存储高压缩率在更新场景下也会成为劣势,因为更新时需要将存储数据解压后更新,然后再压缩,最后写入磁盘。

    基于上述列式存储的优缺点,一般将列式存储应用在离线的大数据分析和统计场景中,因为这种场景主要是针对部分列单列进行操作,且数据写入后就无须再更新删除。

    + \ No newline at end of file diff --git a/docs/study/db/NoSQL/Ignite/index.html b/docs/study/db/NoSQL/Ignite/index.html index b0f62717e..aded021e3 100644 --- a/docs/study/db/NoSQL/Ignite/index.html +++ b/docs/study/db/NoSQL/Ignite/index.html @@ -10,14 +10,14 @@ - - + +
    -

    Ignite

    定义

    一个以内存为中心的分布式数据库、缓存和处理平台,可以在PB级数据中,以内存级的速度进行事务性、分析性以及流式负载的处理。

    参考

    1. Apache Ignite中文网
    - +

    Ignite

    定义

    一个以内存为中心的分布式数据库、缓存和处理平台,可以在PB级数据中,以内存级的速度进行事务性、分析性以及流式负载的处理。

    参考

    1. Apache Ignite中文网
    + \ No newline at end of file diff --git a/docs/study/db/NoSQL/MongoDB/index.html b/docs/study/db/NoSQL/MongoDB/index.html index 2cfd6e508..614e83ace 100644 --- a/docs/study/db/NoSQL/MongoDB/index.html +++ b/docs/study/db/NoSQL/MongoDB/index.html @@ -10,8 +10,8 @@ - - + + @@ -20,8 +20,8 @@ 集合就是 MongoDB 文档组,类似于 RDBMS (关系数据库管理系统:Relational Database Management System)中的表格。 集合存在于数据库中,集合没有固定的结构,这意味着你在对集合可以插入不同格式和类型的数据,但通常情况下我们插入集合的数据都会有一定的关联性。

    document

    数据记录行/文档 文档是一组键值(key-value)对(即 BSON)。MongoDB 的文档不需要设置相同的字段,并且相同的字段不需要相同的数据类型,这与关系型数据库有很大的区别,也是 MongoDB 非常突出的特点。

    集群概念

    mongodb集群有三种模式,主从模式,副本集模式、sharding分片模式。主从模式官网也不再推荐上生产环境,主要是安全性太低。副本集和sharding模式目前是用的最广的方案,通常这2种方案的选择通过数据量和并发数来权衡。在GB级别的基本上副本集方案可满足,TB级别或以上采用sharding模式,解决单机容量和单机并发能力。 -这两种既有自己的优势也有自己的缺点,比如sharding模式分片越多,性能自然下降越多。

    不是所用的使用场景都必须上集群,要因地制宜。

    mongostat

    #
    mongostat -u admin -p Aa0123 --authenticationDatabase=admin

    mongotop

    #
    mongotop -u admin -p Aa0123 --authenticationDatabase=admin

    备份/恢复

    #备份所有表
    mongodump -h 172.18.92.170 --port 27017 -u 用户名 -p 密码 -o /usr/local/mongodb/bak/

    #恢复所有表
    mongorestore --port 27017 -u 用户名 -p 密码 --authenticationDatabase admin /usr/local/mongodb/bak/

    分页查询

    mongo的分页相关功能性能较差,针对这个问题经过研究发现在分页中skip数值越大性能就越低,符合条件的数据越多count性能就越低。针对这2个问题我们进行了详细的测试,共总结出2种效果不错的方案。

    方案一

    使用Top N的方式限制检索数量最大5000条,例如统计符合条件的报警记录条数:

    db.AlarmHistory.find({
    "did": {$in: [
    "10000000000000001000"
    ]},
    "createTime":{ "$gte":1636949672, "$lt":1637381672}
    }).limit(5000).count(true);

    通过limit(5000)限制统计最大值即为5000,从而提高了count效率,但也有一些局限性就是只能统计符合条件的最后5000条数据,而不是符合条件的全部数据。

    方案二

    通过加载更多的方式分页,即查询下一页时需要传递当前页的最后一条数据的序号,这样就绕过count统计,但这种方式的弊端在于页面不会显示总共多少条数据、共分多少页等数据。

    参考

    1. MongoDB教程
    - +这两种既有自己的优势也有自己的缺点,比如sharding模式分片越多,性能自然下降越多。

    不是所用的使用场景都必须上集群,要因地制宜。

    mongostat

    #
    mongostat -u admin -p Aa0123 --authenticationDatabase=admin

    mongotop

    #
    mongotop -u admin -p Aa0123 --authenticationDatabase=admin

    备份/恢复

    #备份所有表
    mongodump -h 172.18.92.170 --port 27017 -u 用户名 -p 密码 -o /usr/local/mongodb/bak/

    #恢复所有表
    mongorestore --port 27017 -u 用户名 -p 密码 --authenticationDatabase admin /usr/local/mongodb/bak/

    分页查询

    mongo的分页相关功能性能较差,针对这个问题经过研究发现在分页中skip数值越大性能就越低,符合条件的数据越多count性能就越低。针对这2个问题我们进行了详细的测试,共总结出2种效果不错的方案。

    方案一

    使用Top N的方式限制检索数量最大5000条,例如统计符合条件的报警记录条数:

    db.AlarmHistory.find({
    "did": {$in: [
    "10000000000000001000"
    ]},
    "createTime":{ "$gte":1636949672, "$lt":1637381672}
    }).limit(5000).count(true);

    通过limit(5000)限制统计最大值即为5000,从而提高了count效率,但也有一些局限性就是只能统计符合条件的最后5000条数据,而不是符合条件的全部数据。

    方案二

    通过加载更多的方式分页,即查询下一页时需要传递当前页的最后一条数据的序号,这样就绕过count统计,但这种方式的弊端在于页面不会显示总共多少条数据、共分多少页等数据。

    参考

    1. MongoDB教程
    + \ No newline at end of file diff --git a/docs/study/db/NoSQL/Redis/index.html b/docs/study/db/NoSQL/Redis/index.html index ac48a825a..30d298201 100644 --- a/docs/study/db/NoSQL/Redis/index.html +++ b/docs/study/db/NoSQL/Redis/index.html @@ -10,15 +10,15 @@ - - + +

    Redis

    Redis 是什么

    redis 是一个开源的、使用 C 语言编写的、支持网络交互的、可基于内存也可持久化的 Key-Value 数据库。官网

    目前,Vmware 在资助着 redis 项目的开发和维护。

    redis 的作者,他叫 Salvatore Sanfilippo,网名是 antirez,去他的博客逛逛,地址是 antirez.com,当然也可以去 follow 他的 github,地址是http://github.com/antirez

    Redis 是 K-V 存储的典型代表,它是一款开源(基于 BSD 许可)的高性能 K-V 缓存和存储系统。Redis 的 Value 是具体的数据结构,包括 string、hash、list、set、sorted set、bitmap 和 hyperloglog,所以常常被称为数据结构服务器。

    Redis 数据结构

    redis 是一种高级的 key:value 存储系统,其中 value 支持五种数据类型:

    1. 字符串(strings)
    2. 字符串列表(lists)
    3. 字符串集合(sets)
    4. 有序字符串集合(sorted sets)
    5. 哈希(hashes)
      1. hashes 存的是字符串和字符串值之间的映射,比如一个用户要存储其全名、姓氏、年龄等等,就很适合使用哈希。

    key 的命名规则:

    1. key 不要太长,尽量不要超过 1024 字节,这不仅消耗内存,而且会降低查找的效率;
    2. key 也不要太短,太短的话,key 的可读性会降低;
    3. 在一个项目中,key 最好使用统一的命名模式,例如 user:10000:passwd。

    Redis 持久化

    redis 提供了两种持久化的方式,分别是 RDB(Redis DataBase)和 AOF(Append Only File)。

    RDB,简而言之,就是在不同的时间点,将 redis 存储的数据生成快照并存储到磁盘等介质上; -AOF,则是换了一个角度来实现持久化,那就是将 redis 执行过的所有写指令记录下来,在下次 redis 重新启动时,只要把这些写指令从前到后再重复执行一遍,就可以实现数据恢复了。

    其实 RDB 和 AOF 两种方式也可以同时使用,在这种情况下,如果 redis 重启的话,则会优先采用 AOF 方式来进行数据恢复,这是因为 AOF 方式的数据恢复完整度更高。

    如果你没有数据持久化的需求,也完全可以关闭 RDB 和 AOF 方式,这样的话,redis 将变成一个纯内存数据库,就像 memcache 一样。

    Redis 主从

    像 MySQL 一样,redis 是支持主从同步的,而且也支持一主多从以及多级从结构。

    主从结构,一是为了纯粹的冗余备份,二是为了提升读性能,比如很消耗性能的 SORT 就可以由从服务器来承担。

    redis 的主从同步是异步进行的,这意味着主从同步不会影响主逻辑,也不会降低 redis 的处理性能。

    主从架构中,可以考虑关闭主服务器的数据持久化功能,只让从服务器进行持久化,这样可以提高主服务器的处理性能。

    在主从架构中,从服务器通常被设置为只读模式,这样可以避免从服务器的数据被误修改。但是从服务器仍然可以接受 CONFIG 等指令,所以还是不应该将从服务器直接暴露到不安全的网络环境中。如果必须如此,那可以考虑给重要指令进行重命名,来避免命令被外人误执行。

    参考资料

    - +AOF,则是换了一个角度来实现持久化,那就是将 redis 执行过的所有写指令记录下来,在下次 redis 重新启动时,只要把这些写指令从前到后再重复执行一遍,就可以实现数据恢复了。

    其实 RDB 和 AOF 两种方式也可以同时使用,在这种情况下,如果 redis 重启的话,则会优先采用 AOF 方式来进行数据恢复,这是因为 AOF 方式的数据恢复完整度更高。

    如果你没有数据持久化的需求,也完全可以关闭 RDB 和 AOF 方式,这样的话,redis 将变成一个纯内存数据库,就像 memcache 一样。

    Redis 主从

    像 MySQL 一样,redis 是支持主从同步的,而且也支持一主多从以及多级从结构。

    主从结构,一是为了纯粹的冗余备份,二是为了提升读性能,比如很消耗性能的 SORT 就可以由从服务器来承担。

    redis 的主从同步是异步进行的,这意味着主从同步不会影响主逻辑,也不会降低 redis 的处理性能。

    主从架构中,可以考虑关闭主服务器的数据持久化功能,只让从服务器进行持久化,这样可以提高主服务器的处理性能。

    在主从架构中,从服务器通常被设置为只读模式,这样可以避免从服务器的数据被误修改。但是从服务器仍然可以接受 CONFIG 等指令,所以还是不应该将从服务器直接暴露到不安全的网络环境中。如果必须如此,那可以考虑给重要指令进行重命名,来避免命令被外人误执行。

    参考资料

    + \ No newline at end of file diff --git a/docs/study/db/OLAP/ClickHouse/index.html b/docs/study/db/OLAP/ClickHouse/index.html index 6de312ca8..a5cd2453b 100644 --- a/docs/study/db/OLAP/ClickHouse/index.html +++ b/docs/study/db/OLAP/ClickHouse/index.html @@ -10,14 +10,14 @@ - - + +
    -

    ClickHouse

    Clickhouse是Yandex开源的一个用于实时数据分析的数据库,一开始就用在yandex内部的多个数据分析业务上。要介绍clickhouse,还是需要先介绍一下yandex。Clickhouse为什么会出现,其实和yandex的业务关系非常大。Yandex是俄罗斯最大的搜索引擎,会有很多数据分析的业务,其中数据量最大的业务,就是Yandex.Metrica,这是一个和百度统计类似的网站数据分析服务,数据量也仅次于google analysis。自从Clickhouse开源后,在国内外的很多公司的线上业务都已经开始使用。

    概述

    Clickhouse是极其适合OLAP(联机分析处理)问题的一个数据库。这类问题有如下一些特点:

    • 请求以读为主,数据添加、更新一般以批量的形式进行;
    • 表可以很宽,但是实际查询时只会用到有限的几列;
    • 列值较小,一般是数字或者短字符串;
    • 查询结果集的大小显著小于源数据;
    • 事务处理需求较弱
    - +

    ClickHouse

    Clickhouse是Yandex开源的一个用于实时数据分析的数据库,一开始就用在yandex内部的多个数据分析业务上。要介绍clickhouse,还是需要先介绍一下yandex。Clickhouse为什么会出现,其实和yandex的业务关系非常大。Yandex是俄罗斯最大的搜索引擎,会有很多数据分析的业务,其中数据量最大的业务,就是Yandex.Metrica,这是一个和百度统计类似的网站数据分析服务,数据量也仅次于google analysis。自从Clickhouse开源后,在国内外的很多公司的线上业务都已经开始使用。

    概述

    Clickhouse是极其适合OLAP(联机分析处理)问题的一个数据库。这类问题有如下一些特点:

    • 请求以读为主,数据添加、更新一般以批量的形式进行;
    • 表可以很宽,但是实际查询时只会用到有限的几列;
    • 列值较小,一般是数字或者短字符串;
    • 查询结果集的大小显著小于源数据;
    • 事务处理需求较弱
    + \ No newline at end of file diff --git a/docs/study/db/OLAP/Kylin/index.html b/docs/study/db/OLAP/Kylin/index.html index 004da173e..a14e0719a 100644 --- a/docs/study/db/OLAP/Kylin/index.html +++ b/docs/study/db/OLAP/Kylin/index.html @@ -10,14 +10,14 @@ - - + +
    -

    Kylin

    Apache Kylin™是一个开源的、分布式的分析型数据仓库,提供Hadoop/Spark 之上的 SQL 查询接口及多维分析(OLAP)能力以支持超大规模数据,最初由 eBay 开发并贡献至开源社区。它能在亚秒内查询巨大的表。

    官网

    - +

    Kylin

    Apache Kylin™是一个开源的、分布式的分析型数据仓库,提供Hadoop/Spark 之上的 SQL 查询接口及多维分析(OLAP)能力以支持超大规模数据,最初由 eBay 开发并贡献至开源社区。它能在亚秒内查询巨大的表。

    官网

    + \ No newline at end of file diff --git a/docs/study/db/OLAP/StarRocks/index.html b/docs/study/db/OLAP/StarRocks/index.html index a10cb0668..bc6664c51 100644 --- a/docs/study/db/OLAP/StarRocks/index.html +++ b/docs/study/db/OLAP/StarRocks/index.html @@ -10,14 +10,14 @@ - - + +
    -

    StarRocks

    背景信息

    Doris 最早是解决百度凤巢统计报表的专用系统,随着百度业务的飞速发展对系统进行了多次迭代,逐渐承担起百度内部业务的统计报表和多维分析需求。2013 年,我们把 Doris 进行了 MPP 框架的升级,并将新系统命名为 Palo ,2017 年我们以百度 Palo 的名字在 GitHub 上进行了开源,2018 年贡献给 Apache 基金会时,由于与国外数据库厂商重名,因此选择用回最初的名字,这就是 Apache Doris 的由来。

    2020 年 2 月,百度 Doris 团队的个别同学离职创业,基于 Apache Doris做了自己的商业化闭源产品 DorisDB ,这就是 StarRocks 的前身。

    【总结】Doris属于百度的,Apache Doris是有百度贡献给Apache 的,DorisDB是百度前员工基于Apache Doris做的商业版本属于另外的公司,后面因为版权的问题,将DorisDB改名为StarRocks,所以StarRocks和DorisDB是属于一个产品,一个公司的。不知道小伙伴,还记不记得另外一个产品的经历跟Doris的经历非常的相似,那就是presto。这里主要讲StarRocks,因为StarRocks更新迭代很快,活跃度也高。

    Apache Doris GitHub地址:https://github.com/apache/doris

    Apache Doris 官网文档:https://doris.apache.org/docs/get-starting/get-starting.html

    StarRocks GitHub地址:https://github.com/StarRocks/starrocks

    StarRocks官方文档:https://docs.starrocks.com/zh-cn/main/introduction/StarRocks_intro

    概述

    StarRocks 是一款高性能分析型数据仓库,使用向量化、MPP(Massively Parallel Processing:大规模并行处理) 架构、可实时更新的列式存储引擎等技术实现多维、实时、高并发的数据分析。StarRocks 既支持从各类实时和离线的数据源高效导入数据,也支持直接分析数据湖上各种格式的数据。StarRocks 兼容 MySQL 协议,可使用 MySQL 客户端和常用 BI 工具对接。同时 StarRocks 具备水平扩展,高可用,高可靠,易运维等特性。广泛应用于实时数仓、OLAP 报表、数据湖分析等场景。

    - +

    StarRocks

    背景信息

    Doris 最早是解决百度凤巢统计报表的专用系统,随着百度业务的飞速发展对系统进行了多次迭代,逐渐承担起百度内部业务的统计报表和多维分析需求。2013 年,我们把 Doris 进行了 MPP 框架的升级,并将新系统命名为 Palo ,2017 年我们以百度 Palo 的名字在 GitHub 上进行了开源,2018 年贡献给 Apache 基金会时,由于与国外数据库厂商重名,因此选择用回最初的名字,这就是 Apache Doris 的由来。

    2020 年 2 月,百度 Doris 团队的个别同学离职创业,基于 Apache Doris做了自己的商业化闭源产品 DorisDB ,这就是 StarRocks 的前身。

    【总结】Doris属于百度的,Apache Doris是有百度贡献给Apache 的,DorisDB是百度前员工基于Apache Doris做的商业版本属于另外的公司,后面因为版权的问题,将DorisDB改名为StarRocks,所以StarRocks和DorisDB是属于一个产品,一个公司的。不知道小伙伴,还记不记得另外一个产品的经历跟Doris的经历非常的相似,那就是presto。这里主要讲StarRocks,因为StarRocks更新迭代很快,活跃度也高。

    Apache Doris GitHub地址:https://github.com/apache/doris

    Apache Doris 官网文档:https://doris.apache.org/docs/get-starting/get-starting.html

    StarRocks GitHub地址:https://github.com/StarRocks/starrocks

    StarRocks官方文档:https://docs.starrocks.com/zh-cn/main/introduction/StarRocks_intro

    概述

    StarRocks 是一款高性能分析型数据仓库,使用向量化、MPP(Massively Parallel Processing:大规模并行处理) 架构、可实时更新的列式存储引擎等技术实现多维、实时、高并发的数据分析。StarRocks 既支持从各类实时和离线的数据源高效导入数据,也支持直接分析数据湖上各种格式的数据。StarRocks 兼容 MySQL 协议,可使用 MySQL 客户端和常用 BI 工具对接。同时 StarRocks 具备水平扩展,高可用,高可靠,易运维等特性。广泛应用于实时数仓、OLAP 报表、数据湖分析等场景。

    + \ No newline at end of file diff --git "a/docs/study/db/OLAP/\347\273\274\345\220\210\346\246\202\350\277\260/index.html" "b/docs/study/db/OLAP/\347\273\274\345\220\210\346\246\202\350\277\260/index.html" index 839859913..e752b8012 100644 --- "a/docs/study/db/OLAP/\347\273\274\345\220\210\346\246\202\350\277\260/index.html" +++ "b/docs/study/db/OLAP/\347\273\274\345\220\210\346\246\202\350\277\260/index.html" @@ -10,14 +10,14 @@ - - + +
    -

    综合概述

    1. OLAP与OLTP的区别?

    OLTP(Online transaction processing):在线/联机事务处理。典型的OLTP类操作都比较简单,主要是对数据库中的数据进行增删改查,操作主体一般是产品的用户。

    OLAP(Online analytical processing):指联机分析处理。通过分析数据库中的数据来得出一些结论性的东西。比如给老总们看的报表,用于进行市场开拓的用户行为统计,不同维度的汇总分析结果等等。操作主体一般是运营、销售和市场等团队人员。

    单次OLTP处理的数据量比较小,所涉及的表非常有限,一般仅一两张表。而OLAP是为了从大量的数据中找出某种规律性的东西,经常用到count()、sum()和avg()等聚合方法,用于了解现状并为将来的计划/决策提供数据支撑,所以对多张表的数据进行连接汇总非常普遍。

    为了表示跟OLTP的数据库(database)在数据量和复杂度上的不同,一般称OLAP的操作对象为数据仓库(data warehouse),简称数仓。数据库仓库中的数据,往往来源于多个数据库,以及相应的业务日志。

    image.png

    参考

    1. OLAP与OLTP的区别
    - +

    综合概述

    1. OLAP与OLTP的区别?

    OLTP(Online transaction processing):在线/联机事务处理。典型的OLTP类操作都比较简单,主要是对数据库中的数据进行增删改查,操作主体一般是产品的用户。

    OLAP(Online analytical processing):指联机分析处理。通过分析数据库中的数据来得出一些结论性的东西。比如给老总们看的报表,用于进行市场开拓的用户行为统计,不同维度的汇总分析结果等等。操作主体一般是运营、销售和市场等团队人员。

    单次OLTP处理的数据量比较小,所涉及的表非常有限,一般仅一两张表。而OLAP是为了从大量的数据中找出某种规律性的东西,经常用到count()、sum()和avg()等聚合方法,用于了解现状并为将来的计划/决策提供数据支撑,所以对多张表的数据进行连接汇总非常普遍。

    为了表示跟OLTP的数据库(database)在数据量和复杂度上的不同,一般称OLAP的操作对象为数据仓库(data warehouse),简称数仓。数据库仓库中的数据,往往来源于多个数据库,以及相应的业务日志。

    image.png

    参考

    1. OLAP与OLTP的区别
    + \ No newline at end of file diff --git a/docs/study/db/SQL/MariaDB/index.html b/docs/study/db/SQL/MariaDB/index.html index 63a8cc3c3..aad5facd9 100644 --- a/docs/study/db/SQL/MariaDB/index.html +++ b/docs/study/db/SQL/MariaDB/index.html @@ -10,14 +10,14 @@ - - + +
    -

    MariaDB

    MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可。开发这个分支的原因之一是:甲骨文公司收购了MySQL后,有将MySQL闭源的潜在风险,因此社区采用分支的方式来避开这个风险。

    - +

    MariaDB

    MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可。开发这个分支的原因之一是:甲骨文公司收购了MySQL后,有将MySQL闭源的潜在风险,因此社区采用分支的方式来避开这个风险。

    + \ No newline at end of file diff --git "a/docs/study/db/SQL/MySQL-\347\254\224\350\256\260/index.html" "b/docs/study/db/SQL/MySQL-\347\254\224\350\256\260/index.html" index 5061b3bef..b90d6fbda 100644 --- "a/docs/study/db/SQL/MySQL-\347\254\224\350\256\260/index.html" +++ "b/docs/study/db/SQL/MySQL-\347\254\224\350\256\260/index.html" @@ -10,14 +10,14 @@ - - + +
    -

    MySQL 笔记

    WITH 查询

    MySQL 语句 WITH 是 MySQL 8.0 中的一个新特性,用于帮助简化复杂查询以及提高查询效率。在大多数情况下,查询都需要多次嵌套使用,这导致查询语句写得很长且难以维护。WITH 语句就是用来解决这个问题的,它是一种临时表的方式,得到的结果集可以作为查询的结果集。在 WITH 语句中,可以定义多个别名,然后嵌套使用。

    WITH t1 AS (
    SELECT col1 FROM table1
    ),
    t2 as (
    SELECT col1 FROM table2
    )
    --使用
    SELECT * FROM t1 INNER JOIN t2 ON t1.col1 = t2.col1;

    在这个例子中,我们定义了两张表,t1 和 t2,然后使用了这两张表来进行查询,这样我们就可以避免在查询语句中多次嵌套使用相同的子查询,并且也不需要为每个查询定义一个临时表。

    with 特性:

    • with 其实就是一个子查询抽取出来,换了一个别名
    • 和视图的区别:with as 等同于一次性视图,只会持续到下一个查询。在之后就不能再被引用
    • 主要用于简化复杂的 数据集 和 递归

    其实 WITH 表达式除了和 SELECT 一起用, 还可以有下面的组合:

    insert with 、with update、with delete、with with、with recursive(可以模拟数字、日期等序列)、WITH 可以定义多张表

    with_clause:
    WITH [RECURSIVE]
    cte_name [(col_name [, col_name] ...)] AS (subquery)
    [, cte_name [(col_name [, col_name] ...)] AS (subquery)] ...

    递归共用表达式 with recursive

    WITH RECURSIVE cte (n) AS
    (
    SELECT 1
    UNION ALL
    SELECT n + 1 FROM cte WHERE n < 5
    )
    SELECT * FROM cte;

    参考文档

    - +

    MySQL 笔记

    WITH 查询

    MySQL 语句 WITH 是 MySQL 8.0 中的一个新特性,用于帮助简化复杂查询以及提高查询效率。在大多数情况下,查询都需要多次嵌套使用,这导致查询语句写得很长且难以维护。WITH 语句就是用来解决这个问题的,它是一种临时表的方式,得到的结果集可以作为查询的结果集。在 WITH 语句中,可以定义多个别名,然后嵌套使用。

    WITH t1 AS (
    SELECT col1 FROM table1
    ),
    t2 as (
    SELECT col1 FROM table2
    )
    --使用
    SELECT * FROM t1 INNER JOIN t2 ON t1.col1 = t2.col1;

    在这个例子中,我们定义了两张表,t1 和 t2,然后使用了这两张表来进行查询,这样我们就可以避免在查询语句中多次嵌套使用相同的子查询,并且也不需要为每个查询定义一个临时表。

    with 特性:

    • with 其实就是一个子查询抽取出来,换了一个别名
    • 和视图的区别:with as 等同于一次性视图,只会持续到下一个查询。在之后就不能再被引用
    • 主要用于简化复杂的 数据集 和 递归

    其实 WITH 表达式除了和 SELECT 一起用, 还可以有下面的组合:

    insert with 、with update、with delete、with with、with recursive(可以模拟数字、日期等序列)、WITH 可以定义多张表

    with_clause:
    WITH [RECURSIVE]
    cte_name [(col_name [, col_name] ...)] AS (subquery)
    [, cte_name [(col_name [, col_name] ...)] AS (subquery)] ...

    递归共用表达式 with recursive

    WITH RECURSIVE cte (n) AS
    (
    SELECT 1
    UNION ALL
    SELECT n + 1 FROM cte WHERE n < 5
    )
    SELECT * FROM cte;

    参考文档

    + \ No newline at end of file diff --git a/docs/study/db/SQL/MySQL/index.html b/docs/study/db/SQL/MySQL/index.html index 1f40c274f..beab5e455 100644 --- a/docs/study/db/SQL/MySQL/index.html +++ b/docs/study/db/SQL/MySQL/index.html @@ -10,8 +10,8 @@ - - + + @@ -29,8 +29,8 @@ 不同于上面各个 session 层次的 buffer,这个参数可以在控制台上修改。该参数是指用户内存临时表的大小,如果该 thread 创建的临时表超过它设置的大小会把临时表转换为磁盘上的一张 MyISAM 临时表。如果用户在执行事务时遇到类似如下这样的错误,可以考虑增大 tmp_table 的值。

    如何设置

    针对当前MySQL企业用户的实际环境(大内存):

    1. 在专用数据库服务器上,可以将innodb_buffer_pool_size设置为计算机物理内存大小的80%;
    2. 在innodb_buffer_pool_size设置比较大的情况下,可以将innodb_buffer_pool_instances的值设置为8-16,保证一个pool 10G以上。

    (注意innodb_buffer_pool_size必须为 innodb_buffer_pool_instances 的倍数)

    #通过SQL修改 重启后失效 2G
    set global innodb_buffer_pool_size = 2147483648

    #修改my.cnf配置 需要重启
    innodb_buffer_pool_size = 2147483648
    innodb_buffer_pool_size = 2G
    innodb_buffer_pool_size = 2048M

    查询优化

    #
    -- 查询缓存
    show variables where variable_name in (
    'have_query_cache','query_cache_limit','query_cache_min_res_unit','query_cache_size','query_cache_type','query_cache_wlock_invalidate'
    );
    1. have_query_cache:当前的MYSQL版本是否支持“查询缓存”功能。
    2. query_cache_min_res_unit:查询缓存分配的最小块(字节)。默认值是4096(4KB)。当查询进行时,MySQL把查询结果保存在query cache,但是如果保存的结果比较大,超过了query_cache_min_res_unit的值,这时候MySQL将一边检索结果,一边进行保存结果。他保存结果也是按默认大小先分配一块空间,如果不够,又要申请新的空间给他。如果查询结果比较小,默认的query_cache_min_res_unit可能造成大量的内存碎片,如果查询结果比较大,默认的query_cache_min_res_unit又不够,导致一直分配块空间,所以可以根据实际需求,调节query_cache_min_res_unit的大小。注:如果上面说的内容有点弯弯绕,那举个现实生活中的例子,比如咱现在要给运动员送水,默认的是500ml的瓶子,如果过来的是少年运动员,可能500ml太大了,他们喝不完,造成了浪费,那我们就可以选择300ml的瓶子,如果过来的是成年运动员,可能500ml不够,那他们一瓶喝完了,又开一瓶,直接不渴为止。那么那样开瓶子也要时间,我们就可以选择1000ml的瓶子。
    3. query_cache_size:为缓存查询结果分配的总内存。
    4. query_cache_type:默认为on。
    5. query_cache_wlock_invalidate:如果该表被锁住,是否返回缓存中的数据,默认是关闭的。

    MYSQL的查询缓存实质上是缓存SQL的hash值和该SQL的查询结果,如果运行相同的SQL,服务器直接从缓存中去掉结果,而不再去解析,优化,寻找最低成本的执行计划等一系列操作,大大提升了查询速度。 但是万事有利也有弊。

    • 第一个弊端就是如果表的数据有一条发生变化,那么缓存好的结果将全部不再有效。这对于频繁更新的表,查询缓存是不适合的。
    • 第二个弊端就是缓存机制是通过对SQL的hash,得出的值为key,查询结果为value来存放的,那么就意味着SQL必须完完全全一模一样,否则就命不中缓存。

    默认query_cache_type设置为OFF,其实网上资料和各大云厂商提供的云服务器都是将这个功能关闭的,从上面的原理来看,在一般情况下,他的弊端大于优点。

    冗余索引

    冗余索引指的是索引的功能相同,能够命中就肯定能命中 ,那么就是冗余索引如(name,city )和(name )这两个索引就是冗余索引,能够命中后者的查询肯定是能够命中前者的 在大多数情况下,都应该尽量扩展已有的索引而不是创建新索引。 MySQLS.7 版本后,可以通过查询 sys 库的 schema_redundant_indexes 表来查看冗余索引。

    存储引擎

    -- 查询当前数据库服务器支持的存储引擎列表
    show engines;
    -- 查看默认的存储引擎
    show variables like '%storage_engine%';
    -- 查看表的存储引擎及其他相关信息
    show table status like "table_name";

    MyISAM和InnoDB区别

    MyISAM是MySQL的默认数据库引擎(5.5版之前)。虽然性能极佳,而且提供了大量的特性,包括全文索引、压缩、空间函数等,但MyISAM不支持事务和行级锁,而且最大的缺陷就是崩溃后无法安全恢复。不过,5.5版本之后,MySQL引入了InnoDB(事务性数据库引擎),MySQL 5.5版本后默认的存储引擎为InnoDB。 -大多数时候我们使用的都是 InnoDB 存储引擎,但是在某些情况下使用 MyISAM 也是合适的比如读密集的情况下。(如果你不介意 MyISAM 崩溃回复问题的话)。

    两者的对比:

    1. 是否支持行级锁: MyISAM 只有表级锁(table-level locking),而InnoDB 支持行级锁(row-level locking)和表级锁,默认为行级锁。
    2. 是否支持事务和崩溃后的安全恢复:MyISAM强调的是性能,每次查询具有原子性,其执行比InnoDB类型更快,但是不提供事务支持。但是InnoDB提供事务支持事务,外部键等高级数据库功能。具有事务(commit)、回滚(rollback)和崩溃修复能力(crash recovery capabilities)的事务安全(transaction-safe (ACID compliant))型表。
    3. 是否支持外键:MyISAM不支持,而InnoDB支持。
    4. 是否支持MVCC:仅 InnoDB 支持。应对高并发事务, MVCC比单纯的加锁更高效;MVCC只在 READ COMMITTED和 REPEATABLE READ两个隔离级别下工作;MVCC可以使用 乐观(optimistic)锁 和 悲观(pessimistic)锁来实现;各数据库中MVCC实现并不统一。
    5. ......

    《MySQL高性能》上面有一句话这样写到:

    不要轻易相信“MyISAM比InnoDB快”之类的经验之谈,这个结论往往不是绝对的。在很多我们已知场景中,InnoDB的速度都可以让MyISAM望尘莫及,尤其是用到了聚簇索引,或者需要访问的数据都可以放入内存的应用。

    一般情况下我们选择 InnoDB 都是没有问题的,但是某事情况下你并不在乎可扩展能力和并发能力,也不需要事务支持,也不在乎崩溃后的安全恢复问题的话,选择MyISAM也是一个不错的选择。但是一般情况下,我们都是需要考虑到这些问题的。

    乐观锁与悲观锁的区别

    悲观锁

    总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁(共享资源每次只给一个线程使用,其它线程阻塞,用完后再把资源转让给其它线程)。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。Java中synchronized和ReentrantLock等独占锁就是悲观锁思想的实现。

    乐观锁

    总是假设最好的情况,每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在更新的时候会判断一下在此期间别人有没有去更新这个数据,可以使用版本号机制和CAS算法实现。乐观锁适用于多读的应用类型,这样可以提高吞吐量,像数据库提供的类似于write_condition机制,其实都是提供的乐观锁。在Java中java.util.concurrent.atomic包下面的原子变量类就是使用了乐观锁的一种实现方式CAS实现的。

    两种锁的使用场景

    从上面对两种锁的介绍,我们知道两种锁各有优缺点,不可认为一种好于另一种,像乐观锁适用于写比较少的情况下(多读场景),即冲突真的很少发生的时候,这样可以省去了锁的开销,加大了系统的整个吞吐量。但如果是多写的情况,一般会经常产生冲突,这就会导致上层应用会不断的进行retry,这样反倒是降低了性能,所以一般多写的场景下用悲观锁就比较合适。

    日志相关/Binlog等

    Binlog录入格式

    • 有三种格式,statement,row和mixed。
      • statement模式下,每一条会修改数据的sql都会记录在binlog中。不需要记录每一行的变化,减少了binlog日志量,节约了IO,提高性能。由于sql的执行是有上下文的,因此在保存的时候需要保存相关的信息,同时还有一些使用了函数之类的语句无法被记录复制。
      • row级别下,不记录sql语句上下文相关信息,仅保存哪条记录被修改。记录单元为每一行的改动,基本是可以全部记下来但是由于很多操作,会导致大量行的改动(比如alter table),因此这种模式的文件保存的信息太多,日志量太大。
      • mixed,一种折中的方案,普通操作使用statement记录,当无法使用statement的时候使用row。
    • 此外,新版的MySQL中对row级别也做了一些优化,当表结构发生变化的时候,会记录语句而不是逐行记录。

    参考

    1. MySQL 服务器中的 6 种日志类型

    占用磁盘大小/数据大小/索引大小

    -- 查看所有数据库数据大小和索引大小
    select TABLE_SCHEMA,
    concat(truncate(sum(data_length)/1024/1024,2),' MB') as data_size,
    sum(data_length) as data_size_B,
    concat(truncate(sum(index_length)/1024/1024,2),'MB') as index_size,
    sum(index_length) as index_size_B
    from information_schema.tables
    group by TABLE_SCHEMA
    order by data_size_B desc;

    -- 查看某个数据库所有数据表数据大小和索引大小
    select TABLE_NAME,
    concat(truncate(sum(data_length)/1024/1024,2),' MB') as data_size,
    sum(data_length) as data_size_B,
    concat(truncate(sum(index_length)/1024/1024,2),'MB') as index_size,
    sum(index_length) as index_size_B
    from information_schema.tables
    where TABLE_SCHEMA = 'newcloud'
    group by TABLE_NAME
    order by data_size_B desc;

    -- 查看某个数据库某个数据表数据大小和索引大小
    select TABLE_NAME,
    concat(truncate(sum(data_length)/1024/1024,2),' MB') as data_size,
    sum(data_length) as data_size_B,
    concat(truncate(sum(index_length)/1024/1024,2),'MB') as index_size,
    sum(index_length) as index_size_B
    from information_schema.tables
    where TABLE_SCHEMA = 'newcloud'
    and table_name='log_err_flow'
    group by TABLE_NAME
    order by data_size_B desc;

    优化

    1. 程序员进阶必读,万字总结Mysql优化精华篇
    - +大多数时候我们使用的都是 InnoDB 存储引擎,但是在某些情况下使用 MyISAM 也是合适的比如读密集的情况下。(如果你不介意 MyISAM 崩溃回复问题的话)。

    两者的对比:

    1. 是否支持行级锁: MyISAM 只有表级锁(table-level locking),而InnoDB 支持行级锁(row-level locking)和表级锁,默认为行级锁。
    2. 是否支持事务和崩溃后的安全恢复:MyISAM强调的是性能,每次查询具有原子性,其执行比InnoDB类型更快,但是不提供事务支持。但是InnoDB提供事务支持事务,外部键等高级数据库功能。具有事务(commit)、回滚(rollback)和崩溃修复能力(crash recovery capabilities)的事务安全(transaction-safe (ACID compliant))型表。
    3. 是否支持外键:MyISAM不支持,而InnoDB支持。
    4. 是否支持MVCC:仅 InnoDB 支持。应对高并发事务, MVCC比单纯的加锁更高效;MVCC只在 READ COMMITTED和 REPEATABLE READ两个隔离级别下工作;MVCC可以使用 乐观(optimistic)锁 和 悲观(pessimistic)锁来实现;各数据库中MVCC实现并不统一。
    5. ......

    《MySQL高性能》上面有一句话这样写到:

    不要轻易相信“MyISAM比InnoDB快”之类的经验之谈,这个结论往往不是绝对的。在很多我们已知场景中,InnoDB的速度都可以让MyISAM望尘莫及,尤其是用到了聚簇索引,或者需要访问的数据都可以放入内存的应用。

    一般情况下我们选择 InnoDB 都是没有问题的,但是某事情况下你并不在乎可扩展能力和并发能力,也不需要事务支持,也不在乎崩溃后的安全恢复问题的话,选择MyISAM也是一个不错的选择。但是一般情况下,我们都是需要考虑到这些问题的。

    乐观锁与悲观锁的区别

    悲观锁

    总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁(共享资源每次只给一个线程使用,其它线程阻塞,用完后再把资源转让给其它线程)。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。Java中synchronized和ReentrantLock等独占锁就是悲观锁思想的实现。

    乐观锁

    总是假设最好的情况,每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在更新的时候会判断一下在此期间别人有没有去更新这个数据,可以使用版本号机制和CAS算法实现。乐观锁适用于多读的应用类型,这样可以提高吞吐量,像数据库提供的类似于write_condition机制,其实都是提供的乐观锁。在Java中java.util.concurrent.atomic包下面的原子变量类就是使用了乐观锁的一种实现方式CAS实现的。

    两种锁的使用场景

    从上面对两种锁的介绍,我们知道两种锁各有优缺点,不可认为一种好于另一种,像乐观锁适用于写比较少的情况下(多读场景),即冲突真的很少发生的时候,这样可以省去了锁的开销,加大了系统的整个吞吐量。但如果是多写的情况,一般会经常产生冲突,这就会导致上层应用会不断的进行retry,这样反倒是降低了性能,所以一般多写的场景下用悲观锁就比较合适。

    日志相关/Binlog等

    Binlog录入格式

    • 有三种格式,statement,row和mixed。
      • statement模式下,每一条会修改数据的sql都会记录在binlog中。不需要记录每一行的变化,减少了binlog日志量,节约了IO,提高性能。由于sql的执行是有上下文的,因此在保存的时候需要保存相关的信息,同时还有一些使用了函数之类的语句无法被记录复制。
      • row级别下,不记录sql语句上下文相关信息,仅保存哪条记录被修改。记录单元为每一行的改动,基本是可以全部记下来但是由于很多操作,会导致大量行的改动(比如alter table),因此这种模式的文件保存的信息太多,日志量太大。
      • mixed,一种折中的方案,普通操作使用statement记录,当无法使用statement的时候使用row。
    • 此外,新版的MySQL中对row级别也做了一些优化,当表结构发生变化的时候,会记录语句而不是逐行记录。

    参考

    1. MySQL 服务器中的 6 种日志类型

    占用磁盘大小/数据大小/索引大小

    -- 查看所有数据库数据大小和索引大小
    select TABLE_SCHEMA,
    concat(truncate(sum(data_length)/1024/1024,2),' MB') as data_size,
    sum(data_length) as data_size_B,
    concat(truncate(sum(index_length)/1024/1024,2),'MB') as index_size,
    sum(index_length) as index_size_B
    from information_schema.tables
    group by TABLE_SCHEMA
    order by data_size_B desc;

    -- 查看某个数据库所有数据表数据大小和索引大小
    select TABLE_NAME,
    concat(truncate(sum(data_length)/1024/1024,2),' MB') as data_size,
    sum(data_length) as data_size_B,
    concat(truncate(sum(index_length)/1024/1024,2),'MB') as index_size,
    sum(index_length) as index_size_B
    from information_schema.tables
    where TABLE_SCHEMA = 'newcloud'
    group by TABLE_NAME
    order by data_size_B desc;

    -- 查看某个数据库某个数据表数据大小和索引大小
    select TABLE_NAME,
    concat(truncate(sum(data_length)/1024/1024,2),' MB') as data_size,
    sum(data_length) as data_size_B,
    concat(truncate(sum(index_length)/1024/1024,2),'MB') as index_size,
    sum(index_length) as index_size_B
    from information_schema.tables
    where TABLE_SCHEMA = 'newcloud'
    and table_name='log_err_flow'
    group by TABLE_NAME
    order by data_size_B desc;

    优化

    1. 程序员进阶必读,万字总结Mysql优化精华篇
    + \ No newline at end of file diff --git a/docs/study/db/SQL/PostgreSQL/index.html b/docs/study/db/SQL/PostgreSQL/index.html index 1b644f979..04482dea1 100644 --- a/docs/study/db/SQL/PostgreSQL/index.html +++ b/docs/study/db/SQL/PostgreSQL/index.html @@ -10,14 +10,14 @@ - - + +
    -

    PostgreSQL

    简介

    PostgreSQL (也叫 Postgres)是一个自由的对象-关系数据库服务器(数据库管理系统),它在灵活的 BSD-风格许可证下发行。它提供了相对其他开放源代码数据库系统(比如 MySQL 和 Firebird),和对专有系统比如 Oracle、Sybase、IBM 的 DB2 和 Microsoft SQL Server的一种选择。

    PostgreSQL 的 Slogan(口号) 是 "世界上最先进的开源关系型数据库"。

    PostGIS

    PostGIS在对象关系型数据库PostgreSQL上增加了存储管理空间数据的能力,相当于Oracle的spatial部分。PostGIS最大的特点是符合并且实现了OpenGIS的一些规范,是最著名的开源GIS数据库。

    PostGIS通过向PostgreSQL添加对空间数据类型、空间索引和空间函数的支持,将PostgreSQL数据库管理系统转换为空间数据库。

    因为PostGIS是建立在PostgreSQL之上的,所以PostGIS自动继承了重要的"企业级"特性以及开放源代码的标准。

    可以说PostGIS仅仅只是PostgreSQL的一个插件,但是它将PostgreSQL变成了一个强大的空间数据库!

    问题描述:

    对车辆的位置信息进行存储,查询车辆的行驶轨迹和里程。

    安装postgres

    #
    docker pull postgres:11.19-bullseye
    #
    docker run \
    --privileged=true \
    --restart=always \
    --name postgres \
    -e POSTGRES_PASSWORD=Aa0123 \
    -p 5432:5432 \
    -v /mnt/docker/postgresql/data:/var/lib/postgresql/data \
    -d postgres:11.19-bullseye
    # 发现使用DBeaver连接不上,需要修改/mnt/docker/postgresql/data/pg_hba.conf
    # 增加一行host all all 192.168.41.69/32 trust
    # 192.168.41.69是我自己的ip

    - +

    PostgreSQL

    简介

    PostgreSQL (也叫 Postgres)是一个自由的对象-关系数据库服务器(数据库管理系统),它在灵活的 BSD-风格许可证下发行。它提供了相对其他开放源代码数据库系统(比如 MySQL 和 Firebird),和对专有系统比如 Oracle、Sybase、IBM 的 DB2 和 Microsoft SQL Server的一种选择。

    PostgreSQL 的 Slogan(口号) 是 "世界上最先进的开源关系型数据库"。

    PostGIS

    PostGIS在对象关系型数据库PostgreSQL上增加了存储管理空间数据的能力,相当于Oracle的spatial部分。PostGIS最大的特点是符合并且实现了OpenGIS的一些规范,是最著名的开源GIS数据库。

    PostGIS通过向PostgreSQL添加对空间数据类型、空间索引和空间函数的支持,将PostgreSQL数据库管理系统转换为空间数据库。

    因为PostGIS是建立在PostgreSQL之上的,所以PostGIS自动继承了重要的"企业级"特性以及开放源代码的标准。

    可以说PostGIS仅仅只是PostgreSQL的一个插件,但是它将PostgreSQL变成了一个强大的空间数据库!

    问题描述:

    对车辆的位置信息进行存储,查询车辆的行驶轨迹和里程。

    安装postgres

    #
    docker pull postgres:11.19-bullseye
    #
    docker run \
    --privileged=true \
    --restart=always \
    --name postgres \
    -e POSTGRES_PASSWORD=Aa0123 \
    -p 5432:5432 \
    -v /mnt/docker/postgresql/data:/var/lib/postgresql/data \
    -d postgres:11.19-bullseye
    # 发现使用DBeaver连接不上,需要修改/mnt/docker/postgresql/data/pg_hba.conf
    # 增加一行host all all 192.168.41.69/32 trust
    # 192.168.41.69是我自己的ip

    + \ No newline at end of file diff --git "a/docs/study/db/SQL/\347\273\274\345\220\210\346\246\202\350\277\260/index.html" "b/docs/study/db/SQL/\347\273\274\345\220\210\346\246\202\350\277\260/index.html" index 463b42a22..d3264eac5 100644 --- "a/docs/study/db/SQL/\347\273\274\345\220\210\346\246\202\350\277\260/index.html" +++ "b/docs/study/db/SQL/\347\273\274\345\220\210\346\246\202\350\277\260/index.html" @@ -10,15 +10,15 @@ - - + +

    综合概述

    背景

    随着互联网的不断普及特别是移动互联网的兴起,数据规模爆炸式增长,而硬件这些年的进步速度却在逐渐减慢,人们也在担心摩尔定律会失效。在此消彼长的情况下,单机数据库越来越难以满足用户需求,即使是将数据保存下来这个最基本的需求。

    分布式数据库

    所以 2005 年左右,人们开始探索分布式数据库,带起了 NoSQL 这波浪潮。这些数据库解决的首要问题是单机上无法保存全部数据,其中以 HBase/Cassadra/MongoDB 为代表。为了实现容量的水平扩展,这些数据库往往要放弃事务,或者是只提供简单的 KV 接口。存储模型的简化为存储系统的开发带来了便利,但是降低了对业务的支撑。

    NoSQL的进击

    HBase 是其中的典型代表。 HBase 是 Hadoop 生态中的重要产品,Google BigTable 的开源实现,所以这里先说一下 BigTable 。

    BigTable 是 Google 内部使用的分布式数据库,构建在 GFS 的基础上,弥补了分布式文件系统对于小对象的插入、更新、随机读请求的缺陷。HBase 也按照这个架构实现,底层基于HDFS 。 HBase 本身并不实际存储数据,持久化的日志和 SST file 存储在 HDFS 上,Region Server 通过 MemTable 提供快速的查询,写入都是先写日志,后台进行Compact ,将随机写转换为顺序写。数据通过 Region 在逻辑上进行分割,负载均衡通过调节各个 Region Server 负责的Region区间实现,Region在 持续写入后,会进行分裂,然后被负载均衡策略调度到多个 Region Server 上。

    前面提到了, HBase 本身并不存储数据,这里的 Region 仅是逻辑上的概念,数据还是以文件的形式存储在 HDFS 上,HBase 并不关心副本个数、位置以及水平扩展问题,这些都依赖于 HDFS 实现。和 BigTable 一样, HBase 提供行级的一致性,从 CAP 理论的角度来看,它是一个 CP 的系统,并且没有更进一步提供 ACID 的跨行事务,也是很遗憾。

    HBase 的优势在于通过扩展 Region Server 可以几乎线性提升系统的吞吐,及 HDFS 本身就具有的水平扩展能力,且整个系统成熟稳定。但 HBase 依然有一些不足。首先, Hadoop 使用 Java 开发, GC 延迟是一个无法避免问题,这对系统的延迟造成一些影响。另外,由于HBase 本身并不存储数据,和 HDFS 之间的交互会多一层性能损耗。第三, HBase 和BigTable 一样,并不支持跨行事务,所以在 Google 内部有团队开发了 MegaStore 、 Percolator 这些基于 BigTable 的事务层。 Jeff Dean 承认很后悔没有在 BigTable 中加入跨行事务,这也是 Spanner 出现的一个原因。

    RDMS 的救赎

    除了 NoSQL 之外, RDMS 系统也做了不少努力来适应业务的变化,也就是关系型数据库的中间件和分库分表方案。做一款中间件需要考虑很多,比如解析 SQL ,解析出 ShardKey ,然后根据 ShardKey 分发请求,再合并结果。另外在中间件这层还需要维护 Session 及事务状态,而且大多数方案并不支持跨 shard 的事务,这就不可避免地导致了业务使用起来会比较麻烦,需要自己维护事务状态。此外,还有动态的扩容缩容和自动的故障恢复,在集群规模越来越大的情况下,运维和 DDL 的复杂度是指数级上升。

    国内开发者在这个领域有过很多的著名的项目,比如阿里的 Cobar 、 TDDL ,后来社区基于Cobar 改进的 MyCAT , 360 开源的 Atlas 等,都属于这一类中间件产品。在中间件这个方案上有一个知名的开源项目是 Youtube 的 Vitess ,这是一个集大成的中间件产品,内置了热数据缓存、水平动态分片、读写分离等,但这也造成了整个项目非常复杂。

    另外一个值得一提的是 PostgreSQL XC 这个项目,其整体的架构有点像早期版本的OceanBase ,由一个中央节点来处理协调分布式事务,数据分散在各个存储节点上,应该是目前 PG 社区最好的分布式扩展方案,不少人在基于这个项目做自己的系统。

    关系型数据库中间件

    RDMS的救赎就是关系型数据库中间件产生的原因。

    NewSQL的发展

    2012 ~ 2013 年 Google 相继发表了 Spanner 和 F1 两套系统的论文,让业界第一次看到了关系模型和 NoSQL 的扩展性在一个大规模生产系统上融合的可能性。 Spanner 通过使用硬件设备( GPS 时钟+原子钟)巧妙地解决时钟同步的问题,而在分布式系统里,时钟正是最让人头痛的问题。Spanner 的强大之处在于即使两个数据中心隔得非常远,也能保证通过TrueTime API 获取的时间误差在一个很小的范围内( 10ms ),并且不需要通讯。 Spanner 的底层仍然基于分布式文件系统,不过论文里也说是可以未来优化的点。

    Google 的内部的数据库存储业务,大多是 3 ~ 5 副本,重要的数据需要 7 副本,且这些副本遍布全球各大洲的数据中心,由于普遍使用了Paxos ,延迟是可以缩短到一个可以接受的范围(写入延迟 100 ms以上),另外由 Paxos 带来的 Auto-Failover 能力,更是让整个集群即使数据中心瘫痪,业务层都是透明无感知的。 F1 是构建在 Spanner 之上,对外提供了 SQL 接口, F1 是一个分布式 MPP SQL 层,其本身并不存储数据,而是将客户端的 SQL 翻译成对KV 的操作,调用 Spanner 来完成请求。

    Spanner 和 F1 的出现标志着第一个 NewSQL 在生产环境中提供服务,将下面几个功能在一套系统中提供:

    1. SQL 支持
    2. ACID 事务
    3. 水平扩展
    4. Auto Failover
    5. 多机房异地容灾

    正因为具备如此多的诱人特性,在 Google 内部,大量的业务已经从原来的 BigTable 切换到Spanner 之上。相信这对业界的思路会有巨大的影响,就像当年的 Hadoop 一样, Google 的基础软件的技术趋势是走在社区前面的。 -Spanner/F1 论文引起了社区的广泛的关注,很快开始出现了追随者。第一个团队是CockroachLabs 做的 CockroachDB 。 CockroachDB 的设计和 Spanner 很像,但是没有选择 TrueTime API ,而是使用 HLC( Hybrid logical clock ),也就是 NTP +逻辑时钟来代替 TrueTime 时间戳,另外 CockroachDB 选用 Raft 做数据复制协议,底层存储落地在RocksDB 中,对外的接口选择了 PG 协议。

    CockroachDB 的技术选型比较激进,比如依赖了 HLC 来做事务,时间戳的精确度并没有办法做到 10 ms内的延迟,所以 Commit Wait 需要用户自己指定,其选择取决于用户的 NTP 服务时钟误差,这点对于用户来说非常不友好。当然 CockroachDB 的这些技术选择也带来了很好的易用性,所有逻辑都在一个组件中,部署非常简单,这个是非常大的优点。

    - +Spanner/F1 论文引起了社区的广泛的关注,很快开始出现了追随者。第一个团队是CockroachLabs 做的 CockroachDB 。 CockroachDB 的设计和 Spanner 很像,但是没有选择 TrueTime API ,而是使用 HLC( Hybrid logical clock ),也就是 NTP +逻辑时钟来代替 TrueTime 时间戳,另外 CockroachDB 选用 Raft 做数据复制协议,底层存储落地在RocksDB 中,对外的接口选择了 PG 协议。

    CockroachDB 的技术选型比较激进,比如依赖了 HLC 来做事务,时间戳的精确度并没有办法做到 10 ms内的延迟,所以 Commit Wait 需要用户自己指定,其选择取决于用户的 NTP 服务时钟误差,这点对于用户来说非常不友好。当然 CockroachDB 的这些技术选择也带来了很好的易用性,所有逻辑都在一个组件中,部署非常简单,这个是非常大的优点。

    + \ No newline at end of file diff --git a/docs/study/db/index.html b/docs/study/db/index.html index f9be82ee5..d5a98565b 100644 --- a/docs/study/db/index.html +++ b/docs/study/db/index.html @@ -10,14 +10,14 @@ - - + +
    -

    概述

    存储数据的服务统一成为数据库,包括但不限于:

    • 关系数据库 msyql、oracle 等
    • 非关系数据库 redis、MongoDB 等
    - +

    概述

    存储数据的服务统一成为数据库,包括但不限于:

    • 关系数据库 msyql、oracle 等
    • 非关系数据库 redis、MongoDB 等
    + \ No newline at end of file diff --git "a/docs/study/db/\345\205\250\346\226\207\346\220\234\347\264\242\345\274\225\346\223\216/Elasticsearch/index.html" "b/docs/study/db/\345\205\250\346\226\207\346\220\234\347\264\242\345\274\225\346\223\216/Elasticsearch/index.html" index 0a362e185..d271bea53 100644 --- "a/docs/study/db/\345\205\250\346\226\207\346\220\234\347\264\242\345\274\225\346\223\216/Elasticsearch/index.html" +++ "b/docs/study/db/\345\205\250\346\226\207\346\220\234\347\264\242\345\274\225\346\223\216/Elasticsearch/index.html" @@ -10,8 +10,8 @@ - - + + @@ -23,8 +23,8 @@ http://127.0.0.1:9200/{具体的索引库}/_forcemerge?only_expunge_deletes=true \ -H "Content-Type: application/json" \ -d '{}'


    ## 近实时搜索/refresh

    在 Elasticsearch 中,写入和打开一个新段的轻量的过程叫做 refresh 。 默认情况下每个分片会每秒自动刷新一次。这就是为什么我们说 Elasticsearch 是 近 实时搜索: 文档的变化并不是立即对搜索可见,但会在一秒之内变为可见。

    这些行为可能会对新用户造成困惑: 他们索引了一个文档然后尝试搜索它,但却没有搜到。这个问题的解决办法是用 refresh API 执行一次手动刷新:
    ```shell
    POST /_refresh
    POST /blogs/_refresh

    es访问权限

    因为开源的es是不带访问权限控制的,并不能用于生产环境;商业版插件x-pack是支持用户权限的,但是收费。 -可以使用nginx增加访问权限来方向代理es,但是es的9200/9300端口不能外网开放;

    #安装httpd-tools
    yum install httpd-tools
    mkdir /usr/local/nginx/conf/passwd
    htpasswd -c /usr/local/nginx/conf/passwd/es admin
    #nginx配置反向代理增加
    server
    {
    listen 8443;
    location / {
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-For $remote_addr;
    proxy_pass http://172.17.0.1:9200;
    proxy_connect_timeout 18000;
    proxy_send_timeout 18000;
    proxy_read_timeout 18000;
    #
    auth_basic "Please input password";
    auth_basic_user_file /usr/local/nginx/conf/passwd/es;
    }
    }

    GEOIP

    #
    yum install GeoIP-data -y

    相关资料

    1. 从零学Elasticsearch系列——JAVA API操作
    2. 如何把Elasticsearch发挥到极致?
    3. ebatis【ebatis 是一个简单方便上手的 Elasticsearch ORM 框架】
    - +可以使用nginx增加访问权限来方向代理es,但是es的9200/9300端口不能外网开放;

    #安装httpd-tools
    yum install httpd-tools
    mkdir /usr/local/nginx/conf/passwd
    htpasswd -c /usr/local/nginx/conf/passwd/es admin
    #nginx配置反向代理增加
    server
    {
    listen 8443;
    location / {
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-For $remote_addr;
    proxy_pass http://172.17.0.1:9200;
    proxy_connect_timeout 18000;
    proxy_send_timeout 18000;
    proxy_read_timeout 18000;
    #
    auth_basic "Please input password";
    auth_basic_user_file /usr/local/nginx/conf/passwd/es;
    }
    }

    GEOIP

    #
    yum install GeoIP-data -y

    相关资料

    1. 从零学Elasticsearch系列——JAVA API操作
    2. 如何把Elasticsearch发挥到极致?
    3. ebatis【ebatis 是一个简单方便上手的 Elasticsearch ORM 框架】
    + \ No newline at end of file diff --git "a/docs/study/db/\345\205\250\346\226\207\346\220\234\347\264\242\345\274\225\346\223\216/\347\273\274\345\220\210\346\246\202\350\277\260/index.html" "b/docs/study/db/\345\205\250\346\226\207\346\220\234\347\264\242\345\274\225\346\223\216/\347\273\274\345\220\210\346\246\202\350\277\260/index.html" index 81c35a788..5ed51bf22 100644 --- "a/docs/study/db/\345\205\250\346\226\207\346\220\234\347\264\242\345\274\225\346\223\216/\347\273\274\345\220\210\346\246\202\350\277\260/index.html" +++ "b/docs/study/db/\345\205\250\346\226\207\346\220\234\347\264\242\345\274\225\346\223\216/\347\273\274\345\220\210\346\246\202\350\277\260/index.html" @@ -10,14 +10,14 @@ - - + +
    -

    综合概述

    传统的关系型数据库通过索引来达到快速查询的目的,但是在全文搜索的业务场景下,索引也无能为力,主要体现在:

    • 全文搜索的条件可以随意排列组合,如果通过索引来满足,则索引的数量会非常多。
    • 全文搜索的模糊匹配方式,索引无法满足,只能用 like 查询,而 like 查询是整表扫描,效率非常低。

    全文搜索基本原理

    全文搜索引擎的技术原理被称为“倒排索引”(Inverted index),也常被称为反向索引、置入档案或反向档案,是一种索引方法,其基本原理是建立单词到文档的索引。之所以被称为“倒排”索引,是和“正排“索引相对的,“正排索引”的基本原理是建立文档到单词的索引。我们通过一个简单的样例来说明这两种索引的差异。

    全文搜索引擎的索引对象是单词和文档,而关系数据库的索引对象是键和行,两者的术语差异很大,不能简单地等同起来。因此,为了让全文搜索引擎支持关系型数据的全文搜索,需要做一些转换操作,即将关系型数据转换为文档数据。

    - +

    综合概述

    传统的关系型数据库通过索引来达到快速查询的目的,但是在全文搜索的业务场景下,索引也无能为力,主要体现在:

    • 全文搜索的条件可以随意排列组合,如果通过索引来满足,则索引的数量会非常多。
    • 全文搜索的模糊匹配方式,索引无法满足,只能用 like 查询,而 like 查询是整表扫描,效率非常低。

    全文搜索基本原理

    全文搜索引擎的技术原理被称为“倒排索引”(Inverted index),也常被称为反向索引、置入档案或反向档案,是一种索引方法,其基本原理是建立单词到文档的索引。之所以被称为“倒排”索引,是和“正排“索引相对的,“正排索引”的基本原理是建立文档到单词的索引。我们通过一个简单的样例来说明这两种索引的差异。

    全文搜索引擎的索引对象是单词和文档,而关系数据库的索引对象是键和行,两者的术语差异很大,不能简单地等同起来。因此,为了让全文搜索引擎支持关系型数据的全文搜索,需要做一些转换操作,即将关系型数据转换为文档数据。

    + \ No newline at end of file diff --git "a/docs/study/db/\346\227\266\345\272\217\346\225\260\346\215\256\345\272\223/Apache IoTDB/index.html" "b/docs/study/db/\346\227\266\345\272\217\346\225\260\346\215\256\345\272\223/Apache IoTDB/index.html" index f4ce2da81..e37d50d45 100644 --- "a/docs/study/db/\346\227\266\345\272\217\346\225\260\346\215\256\345\272\223/Apache IoTDB/index.html" +++ "b/docs/study/db/\346\227\266\345\272\217\346\225\260\346\215\256\345\272\223/Apache IoTDB/index.html" @@ -10,14 +10,14 @@ - - + +
    -

    Apache IoTDB

    官方文档

    官网

    基本信息

    1. 编程语言:Java
    2. 开源地址:https://github.com/apache/iotdb
    3. 集群模式:支持
    4. 开发人员:最早始于清华大学软件学院,后贡献给了apache
    5. 定位:IoTDB 是针对时间序列数据收集、存储与分析一体化的数据管理引擎。
    6. 目标需求:高速写入、复杂分析查询

    实际使用

    1. 据官网说明,IoTDB是专门为“物联网(IoT)或者工业物联网(Industrial IoT,缩写 IIoT)场景开发”

    源码编译

    - +

    Apache IoTDB

    官方文档

    官网

    基本信息

    1. 编程语言:Java
    2. 开源地址:https://github.com/apache/iotdb
    3. 集群模式:支持
    4. 开发人员:最早始于清华大学软件学院,后贡献给了apache
    5. 定位:IoTDB 是针对时间序列数据收集、存储与分析一体化的数据管理引擎。
    6. 目标需求:高速写入、复杂分析查询

    实际使用

    1. 据官网说明,IoTDB是专门为“物联网(IoT)或者工业物联网(Industrial IoT,缩写 IIoT)场景开发”

    源码编译

    + \ No newline at end of file diff --git "a/docs/study/db/\346\227\266\345\272\217\346\225\260\346\215\256\345\272\223/Druid/index.html" "b/docs/study/db/\346\227\266\345\272\217\346\225\260\346\215\256\345\272\223/Druid/index.html" index 115199f79..e417ea37f 100644 --- "a/docs/study/db/\346\227\266\345\272\217\346\225\260\346\215\256\345\272\223/Druid/index.html" +++ "b/docs/study/db/\346\227\266\345\272\217\346\225\260\346\215\256\345\272\223/Druid/index.html" @@ -10,14 +10,14 @@ - - + +
    -

    Druid

    基本信息

    1. 编程语言:Java
    2. 开源:是
    3. 备注:Druid严格上不能算时序数据库,应该算一个OLAP数据库,定位还是不太一样的
    4. Prometheus 和 Druid 也因为时间序列数据管理而闻名,但是 Prometheus 聚焦在数据采集、可视化和报警,Druid 聚焦在 OLAP 负载的数据分析,因此本文省略了 Prometheus 和 Druid。
    - +

    Druid

    基本信息

    1. 编程语言:Java
    2. 开源:是
    3. 备注:Druid严格上不能算时序数据库,应该算一个OLAP数据库,定位还是不太一样的
    4. Prometheus 和 Druid 也因为时间序列数据管理而闻名,但是 Prometheus 聚焦在数据采集、可视化和报警,Druid 聚焦在 OLAP 负载的数据分析,因此本文省略了 Prometheus 和 Druid。
    + \ No newline at end of file diff --git "a/docs/study/db/\346\227\266\345\272\217\346\225\260\346\215\256\345\272\223/InfluxDB/index.html" "b/docs/study/db/\346\227\266\345\272\217\346\225\260\346\215\256\345\272\223/InfluxDB/index.html" index dbc48cb3b..17b637333 100644 --- "a/docs/study/db/\346\227\266\345\272\217\346\225\260\346\215\256\345\272\223/InfluxDB/index.html" +++ "b/docs/study/db/\346\227\266\345\272\217\346\225\260\346\215\256\345\272\223/InfluxDB/index.html" @@ -10,15 +10,15 @@ - - + +

    InfluxDB

    官方文档

    官网 -学习笔记

    基础信息

    1. 编程语言:Rust
    2. 集群方案:非集群开源,集群收费
    3. 影响力:影响力很大,社区也比较活跃,如果数据量没这么大,其实还可以的,最好不要做公有云用这个数据库,因为数据量大了之后,很难受,必须的上集群,但是集群是收费的。需要花大精力去处理集群问题。
    4. 运维难度:非集群开源版本运维难度还是简单的。
    5. 接口:InfluxQL and HTTP API
    6. 开源协议:MIT

    评价

    1. InfluxDB 单机版本安装简单,维护也方便;运维人员少(1-3 个)数量少(1T 以下)的情况下是最合适的选择;
    2. InfluxDB 单机版本性能并不够卓越,数据量超过 1T 存在性能瓶颈,QPS 超过 1K 后负载极高;
    3. 开源版本不支持集群,拓展性不行;

    常用概念

    1. database,数据库
    2. measurement,表
    3. field,字段,field set,a=1,field 没有索引
    4. tag,标签,tag set,b=1,tag 有索引
    5. rp,retention policy,数据保留策略,滚动式,旧数据会删除,默认 autogen,永不删除
    6. cq,continuous query,连续查询,类似存储过程,自动采样
    7. series:series 是共同 retention policy,measurement 和 tag set 的集合。
    8. point:point 是具有相同 timestamp、相同 series(measurement,rp,tag set 相同)的 field。这个点在此时刻是唯一存在的。
    9. wal(Write Ahead Log) ,最近写的点数的临时缓存。为了减少访问永久存储文件的频率,InfluxDB 将最新的数据点缓冲进 WAL 中,直到其总大小或时间触发然后 flush 到长久的存储空间。这样可以有效地将写入 batch 处理到 TSM 中。

    快速入门

    # v2
    wget https://dl.influxdata.com/influxdb/releases/influxdb2-2.7.5-1.x86_64.rpm
    sudo yum localinstall influxdb2-2.7.5-1.x86_64.rpm
    sudo service influxdb start
    sudo service influxdb status
    # influx
    wget https://dl.influxdata.com/influxdb/releases/influxdb2-client-2.7.3-linux-arm64.tar.gz
    tar xvzf ./influxdb2-client-2.7.3-linux-arm64.tar.gz
    sudo cp ./influx /usr/local/bin/


    > create database mydb
    > use mydb
    > show measurements
    > insert mymeasurement,tag1=value1 field1=value2
    > select * from mymeasurement where tag1='value1'
    > select * from mymeasurement
    > select * from mymeasurement where tag1='value1' and field1 > 10 order by time desc limit 1

    其他

    - +学习笔记

    基础信息

    1. 编程语言:Rust
    2. 集群方案:非集群开源,集群收费
    3. 影响力:影响力很大,社区也比较活跃,如果数据量没这么大,其实还可以的,最好不要做公有云用这个数据库,因为数据量大了之后,很难受,必须的上集群,但是集群是收费的。需要花大精力去处理集群问题。
    4. 运维难度:非集群开源版本运维难度还是简单的。
    5. 接口:InfluxQL and HTTP API
    6. 开源协议:MIT

    评价

    1. InfluxDB 单机版本安装简单,维护也方便;运维人员少(1-3 个)数量少(1T 以下)的情况下是最合适的选择;
    2. InfluxDB 单机版本性能并不够卓越,数据量超过 1T 存在性能瓶颈,QPS 超过 1K 后负载极高;
    3. 开源版本不支持集群,拓展性不行;

    常用概念

    1. database,数据库
    2. measurement,表
    3. field,字段,field set,a=1,field 没有索引
    4. tag,标签,tag set,b=1,tag 有索引
    5. rp,retention policy,数据保留策略,滚动式,旧数据会删除,默认 autogen,永不删除
    6. cq,continuous query,连续查询,类似存储过程,自动采样
    7. series:series 是共同 retention policy,measurement 和 tag set 的集合。
    8. point:point 是具有相同 timestamp、相同 series(measurement,rp,tag set 相同)的 field。这个点在此时刻是唯一存在的。
    9. wal(Write Ahead Log) ,最近写的点数的临时缓存。为了减少访问永久存储文件的频率,InfluxDB 将最新的数据点缓冲进 WAL 中,直到其总大小或时间触发然后 flush 到长久的存储空间。这样可以有效地将写入 batch 处理到 TSM 中。

    快速入门

    # v2
    wget https://dl.influxdata.com/influxdb/releases/influxdb2-2.7.5-1.x86_64.rpm
    sudo yum localinstall influxdb2-2.7.5-1.x86_64.rpm
    sudo service influxdb start
    sudo service influxdb status
    # influx
    wget https://dl.influxdata.com/influxdb/releases/influxdb2-client-2.7.3-linux-arm64.tar.gz
    tar xvzf ./influxdb2-client-2.7.3-linux-arm64.tar.gz
    sudo cp ./influx /usr/local/bin/


    > create database mydb
    > use mydb
    > show measurements
    > insert mymeasurement,tag1=value1 field1=value2
    > select * from mymeasurement where tag1='value1'
    > select * from mymeasurement
    > select * from mymeasurement where tag1='value1' and field1 > 10 order by time desc limit 1

    其他

    + \ No newline at end of file diff --git "a/docs/study/db/\346\227\266\345\272\217\346\225\260\346\215\256\345\272\223/KairosDB/index.html" "b/docs/study/db/\346\227\266\345\272\217\346\225\260\346\215\256\345\272\223/KairosDB/index.html" index 3d764d329..fff43da16 100644 --- "a/docs/study/db/\346\227\266\345\272\217\346\225\260\346\215\256\345\272\223/KairosDB/index.html" +++ "b/docs/study/db/\346\227\266\345\272\217\346\225\260\346\215\256\345\272\223/KairosDB/index.html" @@ -10,14 +10,14 @@ - - + +
    -

    KairosDB

    基本信息

    1. 编程语言:Java
    2. 开源:是,他是OpenTSDB的fork,不过存储系统用的是Cassandra
    3. 存储方案:Cassandra,Cassandra 是一个比较流行的NoSQL数据库,很多开源软件基于此数据库。
    4. 接口:Restful API
    - +

    KairosDB

    基本信息

    1. 编程语言:Java
    2. 开源:是,他是OpenTSDB的fork,不过存储系统用的是Cassandra
    3. 存储方案:Cassandra,Cassandra 是一个比较流行的NoSQL数据库,很多开源软件基于此数据库。
    4. 接口:Restful API
    + \ No newline at end of file diff --git "a/docs/study/db/\346\227\266\345\272\217\346\225\260\346\215\256\345\272\223/OpenTSDB/index.html" "b/docs/study/db/\346\227\266\345\272\217\346\225\260\346\215\256\345\272\223/OpenTSDB/index.html" index 420390239..346680ccb 100644 --- "a/docs/study/db/\346\227\266\345\272\217\346\225\260\346\215\256\345\272\223/OpenTSDB/index.html" +++ "b/docs/study/db/\346\227\266\345\272\217\346\225\260\346\215\256\345\272\223/OpenTSDB/index.html" @@ -10,14 +10,14 @@ - - + +
    -

    OpenTSDB

    基本信息

    1. 编程语言:Java
    2. 集群模式:支持集群,开源
    3. 存储系统:HBase
    4. 运维难度:复杂
    5. 接口:Restful API

    评价

    1. 因存储系统使用的hbase,hbase存在性能和压缩率的问题,并没有被解决;
    2. hbase本身对非结构化的数据支持很好,如果存的是结构化数据,有些不合适;
    - +

    OpenTSDB

    基本信息

    1. 编程语言:Java
    2. 集群模式:支持集群,开源
    3. 存储系统:HBase
    4. 运维难度:复杂
    5. 接口:Restful API

    评价

    1. 因存储系统使用的hbase,hbase存在性能和压缩率的问题,并没有被解决;
    2. hbase本身对非结构化的数据支持很好,如果存的是结构化数据,有些不合适;
    + \ No newline at end of file diff --git "a/docs/study/db/\346\227\266\345\272\217\346\225\260\346\215\256\345\272\223/TDengine/index.html" "b/docs/study/db/\346\227\266\345\272\217\346\225\260\346\215\256\345\272\223/TDengine/index.html" index 5110d22a8..d59f2b2ae 100644 --- "a/docs/study/db/\346\227\266\345\272\217\346\225\260\346\215\256\345\272\223/TDengine/index.html" +++ "b/docs/study/db/\346\227\266\345\272\217\346\225\260\346\215\256\345\272\223/TDengine/index.html" @@ -10,8 +10,8 @@ - - + + @@ -43,8 +43,8 @@ 在 TDengine 的设计里,表用来代表一个具体的数据采集点,超级表用来代表一组相同类型的数据采集点集合

    这里的超级表、子表的设计很有意思,子表就是某个设备(虚拟的,其他也行),这个是数据放到一块的最小单位,这里和其他时序数据库的很大区别,可有有效处理“设备删了,数据还存在的问题”。

    子表 (Subtable)

    当为某个具体数据采集点创建表时,用户可以使用超级表的定义做模板,同时指定该具体采集点(表)的具体标签值来创建该表。通过超级表创建的表称之为子表。正常的表与子表的差异在于:

    1. 子表就是表,因此所有正常表的 SQL 操作都可以在子表上执行。
    2. 子表在正常表的基础上有扩展,它是带有静态标签的,而且这些标签可以事后增加、删除、修改,而正常的表没有。
    3. 子表一定属于一张超级表,但普通表不属于任何超级表
    4. 普通表无法转为子表,子表也无法转为普通表。

    超级表与与基于超级表建立的子表之间的关系表现在:

    1. 一张超级表包含有多张子表,这些子表具有相同的采集量 schema,但带有不同的标签值。
    2. 不能通过子表调整数据或标签的模式,对于超级表的数据模式修改立即对所有的子表生效。
    3. 超级表只定义一个模板,自身不存储任何数据或标签信息。因此,不能向一个超级表写入数据,只能将数据写入子表中。

    查询既可以在表上进行,也可以在超级表上进行。针对超级表的查询,TDengine 将把所有子表中的数据视为一个整体数据集进行处理,会先把满足标签过滤条件的表从超级表中找出来,然后再扫描这些表的时序数据,进行聚合操作,这样需要扫描的数据集会大幅减少,从而显著提高查询的性能。本质上,TDengine 通过对超级表查询的支持,实现了多个同类数据采集点的高效聚合。 TDengine 系统建议给一个数据采集点建表,需要通过超级表建表,而不是建普通表。

    库 (database)

    库是指一组表的集合。TDengine 容许一个运行实例有多个库,而且每个库可以配置不同的存储策略。不同类型的数据采集点往往具有不同的数据特征,包括数据采集频率的高低,数据保留时间的长短,副本的数目,数据块的大小,是否允许更新数据等等。为了在各种场景下 TDengine 都能最大效率的工作,TDengine 建议将不同数据特征的超级表创建在不同的库里。

    一个库里,可以有一到多个超级表,但一个超级表只属于一个库。一个超级表所拥有的子表全部存在一个库里。

    这里一定要注意,我们在设计库的时候,一定要根据数据的情况来,例如上下线消息和设备历史数据应该分两个库,因为他们的数据保留时间不同,设备上下线消息存 1 年就很多了,设备历史数据可能需要存 5 年以上。

    准备数据

    结合上面的概念以及 SQL 语法可以创建表做压测了,SQL 是参考目前 influxdb 存储的历史数据来的。

    # 保存10年 1个副本
    create database ucloud keep 3650 REPLICA 2;
    use ucloud;

    #创建超级表
    create stable datapoint_record(ts timestamp,value double,StringValue NCHAR(128),DataType NCHAR(10),StorageFlag int)
    tags(DeviceId NCHAR(32),DataPointId int,SlaveIndex int);
    #插入测试数据
    insert into D00500221122700004100_1_1 using datapoint_record
    tags(00500221122700004100,1,1)
    values(now(),1,"1","ushort",1);
    insert into D00500221122700004100_1_2 using datapoint_record
    tags(00500221122700004100,1,2)
    values(now(),1,"1","ushort",1);
    #查询
    select * from datapoint_record;

    最重点的其实是表结构的设计了,结合我们的业务,我们平台的“采集量”是配置出来,所以采集量是不固定的,用户会根据自己的事情情况动态的增删。所以我们的子表只能有一个采集量,这个是关键。

    我们目前用的时序数据库是 InfluxDB,所以需要有个中间件,软实时同步到 TDengine。实现思路为:

    1. 定时每分钟;
    2. 导出 InfluxDB 数据,一分钟的;
    3. 读取这个导出文件,并插入到 TDengine 中;

    压测

    自带 taosBenchmark 性能测试工具,可以使用。

    无命令行参数直接运行 taosBenchmark,回车直接执行,默认在 TDengine 中创建一个名为 test 的数据库,test 数据库下创建名为 meters 的一张超级表,超级表下创建 10000 张表,每张表中写入 10000 条记录。

    image.png 1w 张表用了接近 4 分钟创建完成,当然了和测试服务器的机械硬盘应该有很大关系;

    image.png -插入 1 亿调数据用了 18 秒,当然了和测试服务器的机械硬盘应该有很大关系;

    坑点汇总

    1. 社区版本不支持“删除指定时间范围的数据”的功能,企业版才支持,但是有些特殊情况还是需要删除数据的,可以通过增加“删除标记字段”来迂回处理这个问题。
    2. 社区版本不支持“UAF”,也就是用户自定义函数,某些特殊聚合或计算算法无法做到,不过社区版本提供的已经是绝对部分了。
    3. java client 使用 RS 怎么也连接不上,后来发现是服务端没有启动 taosadapter,使用命令 systemctl start taosadapter 启动后,java client 就可以正常连接了。

    附录

    开源协议说明

    image.png

    - +插入 1 亿调数据用了 18 秒,当然了和测试服务器的机械硬盘应该有很大关系;

    坑点汇总

    1. 社区版本不支持“删除指定时间范围的数据”的功能,企业版才支持,但是有些特殊情况还是需要删除数据的,可以通过增加“删除标记字段”来迂回处理这个问题。
    2. 社区版本不支持“UAF”,也就是用户自定义函数,某些特殊聚合或计算算法无法做到,不过社区版本提供的已经是绝对部分了。
    3. java client 使用 RS 怎么也连接不上,后来发现是服务端没有启动 taosadapter,使用命令 systemctl start taosadapter 启动后,java client 就可以正常连接了。

    附录

    开源协议说明

    image.png

    + \ No newline at end of file diff --git "a/docs/study/db/\346\227\266\345\272\217\346\225\260\346\215\256\345\272\223/TimescaleDB/index.html" "b/docs/study/db/\346\227\266\345\272\217\346\225\260\346\215\256\345\272\223/TimescaleDB/index.html" index b83539fbd..4adf2d2f5 100644 --- "a/docs/study/db/\346\227\266\345\272\217\346\225\260\346\215\256\345\272\223/TimescaleDB/index.html" +++ "b/docs/study/db/\346\227\266\345\272\217\346\225\260\346\215\256\345\272\223/TimescaleDB/index.html" @@ -10,14 +10,14 @@ - - + + - +
    + \ No newline at end of file diff --git "a/docs/study/db/\347\273\274\345\220\210/index.html" "b/docs/study/db/\347\273\274\345\220\210/index.html" index 6760ad3cf..adea63ce0 100644 --- "a/docs/study/db/\347\273\274\345\220\210/index.html" +++ "b/docs/study/db/\347\273\274\345\220\210/index.html" @@ -10,14 +10,14 @@ - - + +
    -

    综合

    软件系统根据存储结构的分类

    关于NoSQL,看过一张图,挺形象:“1970,We have no SQL”->“1980,Know SQL”->“2000,NoSQL”->“2005,Not only SQL”->“2015,No,SQL”。目前,一些新型数据库,同时具备了NoSQL的扩展性和关系型数据库的很多特性。

    关系型和NoSQL数据库的选型。考虑几个指标,数据量、并发量、实时性、一致性要求、读写分布和类型、安全性、运维性等。根据这些指标,软件系统可分成几类。

    1. 管理型系统,如运营类系统,首选关系型。
    2. 大流量系统,如电商单品页的某个服务,后台选关系型,前台选内存型。
    3. 日志型系统,原始数据选列式,日志搜索选倒排索引。
    4. 搜索型系统,指站内搜索,非通用搜索,如商品搜索,后台选关系型,前台选倒排索引。
    5. 事务型系统,如库存、交易、记账,选关系型+缓存+一致性协议,或新型关系数据库。
    6. 离线计算,如大量数据分析,首选列式,关系型也可以。
    7. 实时计算,如实时监控,可以选时序数据库,或列式数据库。

    NOSQL出现的历史原因

    关系数据库经过几十年的发展后已经非常成熟,强大的 SQL 功能和 ACID 的属性,使得关系数据库广泛应用于各式各样的系统中,但这并不意味着关系数据库是完美的,关系数据库存在如下缺点。

    • 关系数据库存储的是行记录,无法存储数据结构
      • 以微博的关注关系为例,“我关注的人”是一个用户 ID 列表,使用关系数据库存储只能将列表拆成多行,然后再查询出来组装,无法直接存储一个列表。
    • 关系数据库的 schema 扩展很不方便
      • 关系数据库的表结构 schema 是强约束,操作不存在的列会报错,业务变化时扩充列也比较麻烦,需要执行 DDL(data definition language,如 CREATE、ALTER、DROP 等)语句修改,而且修改时可能会长时间锁表(例如,MySQL 可能将表锁住 1 个小时)。
    • 关系数据库在大数据场景下 I/O 较高
      • 如果对一些大量数据的表进行统计之类的运算,关系数据库的 I/O 会很高,因为即使只针对其中某一列进行运算,关系数据库也会将整行数据从存储设备读入内存。
    • 关系数据库的全文搜索功能比较弱
      • 关系数据库的全文搜索只能使用 like 进行整表扫描匹配,性能非常低,在互联网这种搜索复杂的场景下无法满足业务要求。

    针对上述问题,分别诞生了不同的 NoSQL 解决方案,这些方案与关系数据库相比,在某些应用场景下表现更好。但世上没有免费的午餐,NoSQL 方案带来的优势,本质上是牺牲 ACID 中的某个或者某几个特性,因此我们不能盲目地迷信 NoSQL 是银弹,而应该将 NoSQL 作为 SQL 的一个有力补充,NoSQL != No SQL,而是 NoSQL = Not Only SQL。

    常见的 NoSQL 方案分为 4 类。

    • K-V 存储:解决关系数据库无法存储数据结构的问题,以 Redis 为代表。
    • 文档数据库:解决关系数据库强 schema 约束的问题,以 MongoDB 为代表。
    • 列式数据库:解决关系数据库大数据场景下的 I/O 问题,以 HBase 为代表。
    • 全文搜索引擎:解决关系数据库的全文搜索性能问题,以 Elasticsearch 为代表。
    - +

    综合

    软件系统根据存储结构的分类

    关于NoSQL,看过一张图,挺形象:“1970,We have no SQL”->“1980,Know SQL”->“2000,NoSQL”->“2005,Not only SQL”->“2015,No,SQL”。目前,一些新型数据库,同时具备了NoSQL的扩展性和关系型数据库的很多特性。

    关系型和NoSQL数据库的选型。考虑几个指标,数据量、并发量、实时性、一致性要求、读写分布和类型、安全性、运维性等。根据这些指标,软件系统可分成几类。

    1. 管理型系统,如运营类系统,首选关系型。
    2. 大流量系统,如电商单品页的某个服务,后台选关系型,前台选内存型。
    3. 日志型系统,原始数据选列式,日志搜索选倒排索引。
    4. 搜索型系统,指站内搜索,非通用搜索,如商品搜索,后台选关系型,前台选倒排索引。
    5. 事务型系统,如库存、交易、记账,选关系型+缓存+一致性协议,或新型关系数据库。
    6. 离线计算,如大量数据分析,首选列式,关系型也可以。
    7. 实时计算,如实时监控,可以选时序数据库,或列式数据库。

    NOSQL出现的历史原因

    关系数据库经过几十年的发展后已经非常成熟,强大的 SQL 功能和 ACID 的属性,使得关系数据库广泛应用于各式各样的系统中,但这并不意味着关系数据库是完美的,关系数据库存在如下缺点。

    • 关系数据库存储的是行记录,无法存储数据结构
      • 以微博的关注关系为例,“我关注的人”是一个用户 ID 列表,使用关系数据库存储只能将列表拆成多行,然后再查询出来组装,无法直接存储一个列表。
    • 关系数据库的 schema 扩展很不方便
      • 关系数据库的表结构 schema 是强约束,操作不存在的列会报错,业务变化时扩充列也比较麻烦,需要执行 DDL(data definition language,如 CREATE、ALTER、DROP 等)语句修改,而且修改时可能会长时间锁表(例如,MySQL 可能将表锁住 1 个小时)。
    • 关系数据库在大数据场景下 I/O 较高
      • 如果对一些大量数据的表进行统计之类的运算,关系数据库的 I/O 会很高,因为即使只针对其中某一列进行运算,关系数据库也会将整行数据从存储设备读入内存。
    • 关系数据库的全文搜索功能比较弱
      • 关系数据库的全文搜索只能使用 like 进行整表扫描匹配,性能非常低,在互联网这种搜索复杂的场景下无法满足业务要求。

    针对上述问题,分别诞生了不同的 NoSQL 解决方案,这些方案与关系数据库相比,在某些应用场景下表现更好。但世上没有免费的午餐,NoSQL 方案带来的优势,本质上是牺牲 ACID 中的某个或者某几个特性,因此我们不能盲目地迷信 NoSQL 是银弹,而应该将 NoSQL 作为 SQL 的一个有力补充,NoSQL != No SQL,而是 NoSQL = Not Only SQL。

    常见的 NoSQL 方案分为 4 类。

    • K-V 存储:解决关系数据库无法存储数据结构的问题,以 Redis 为代表。
    • 文档数据库:解决关系数据库强 schema 约束的问题,以 MongoDB 为代表。
    • 列式数据库:解决关系数据库大数据场景下的 I/O 问题,以 HBase 为代表。
    • 全文搜索引擎:解决关系数据库的全文搜索性能问题,以 Elasticsearch 为代表。
    + \ No newline at end of file diff --git "a/docs/study/devops/API\347\232\204\350\257\267\346\261\202\351\207\217\345\210\206\346\236\220/index.html" "b/docs/study/devops/API\347\232\204\350\257\267\346\261\202\351\207\217\345\210\206\346\236\220/index.html" index 0ac8c22ae..add0cd615 100644 --- "a/docs/study/devops/API\347\232\204\350\257\267\346\261\202\351\207\217\345\210\206\346\236\220/index.html" +++ "b/docs/study/devops/API\347\232\204\350\257\267\346\261\202\351\207\217\345\210\206\346\236\220/index.html" @@ -10,14 +10,14 @@ - - + +
    -

    API的请求量分析

    数据流向

    浏览器 》Nginx 》API 》产生Nginx log日志 》Filebeat 》Logstash 》ElasticSearch

    分析点

    接口访问量

    #访问总量
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d '{"size" : 0 }'

    #昨日访问总量
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"sort": [{"ts": {"order": "desc"}}],
    "size" : 0,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"24/May/2020:00:00:00 +0800",
    "lte":"25/May/2020:00:00:00 +0800"
    }}}}}
    }'

    #昨日访问总量--按照小时聚合--按照时间排序
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"sort": [{"ts": {"order": "desc"}}],
    "size" : 0,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"16/Jun/2020:00:00:00 +0800",
    "lte":"17/Jun/2020:00:00:00 +0800"
    }}}}},
    "aggs": {
    "groupby_hour_reqs":{
    "date_histogram":{
    "field":"ts",
    "interval":"1h",
    "format":"yyyy-MM-dd:HH",
    "time_zone":"+08:00",
    "min_doc_count": 0
    }
    }
    }
    }'

    #昨日访问总量--按照小时聚合--按照访问量排序
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"sort": [{"ts": {"order": "desc"}}],
    "size" : 0,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"25/May/2020:00:00:00 +0800",
    "lte":"26/May/2020:00:00:00 +0800"
    }}}}},
    "aggs": {
    "groupby_hour_reqs":{
    "date_histogram":{
    "field":"ts",
    "interval":"1h",
    "format":"yyyy-MM-dd:HH",
    "time_zone":"+08:00",
    "min_doc_count": 0,
    "order" : {
    "_count" : "desc"
    }
    }
    }
    }
    }'
    #100s内访问总量--按照秒聚合--按照访问量排序==QPS###################
    #########所有访问
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"sort": [{"ts": {"order": "desc"}}],
    "size" : 0,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"now-100s"
    }}}}},
    "aggs": {
    "groupby_hour_reqs":{
    "date_histogram":{
    "field":"ts",
    "interval":"1s",
    "format":"yyyy-MM-dd:HH:mm:ss",
    "time_zone":"+08:00",
    "min_doc_count": 20,
    "order" : {
    "_count" : "desc"
    }
    }
    }
    }
    }'
    #########某个IP
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"sort": [{"ts": {"order": "desc"}}],
    "size" : 0,
    "query":{"constant_score":{
    "filter":{
    "bool":{
    "must":[{"term":{"ip":"101.132.122.94"}},
    {"range":{"ts":{
    "gte":"now-600s"
    }}}
    ]
    }
    }
    }},
    "aggs": {
    "groupby_hour_reqs":{
    "date_histogram":{
    "field":"ts",
    "interval":"1s",
    "format":"yyyy-MM-dd:HH:mm:ss",
    "time_zone":"+08:00",
    "min_doc_count": 1,
    "order" : {
    "_count" : "desc"
    }
    }
    }
    }
    }'

    #今日访问总量
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"sort": [{"ts": {"order": "desc"}}],
    "size" : 0,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"23/May/2020:00:00:00 +0800"
    }}}}}
    }'

    #当前小时访问总量
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"sort": [{"ts": {"order": "asc"}}],
    "size" : 1,
    "query":{"constant_score":{"filter":{"range":{"ts":{"gte":"now/h"}}}}}
    }'

    #近一个月访问总量--按照天聚合--按照时间排序 --非二开
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"sort": [{"ts": {"order": "desc"}}],
    "size" : 0,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"now-1M"
    }}}}},
    "aggs": {
    "groupby_hour_reqs":{
    "date_histogram":{
    "field":"ts",
    "interval":"1d",
    "format":"yyyy-MM-dd",
    "time_zone":"+08:00",
    "min_doc_count": 0
    }
    }
    }
    }'
    #近一个月访问总量--按照天聚合--按照时间排序 --二开
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"sort": [{"ts": {"order": "desc"}}],
    "size" : 0,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"now-1M"
    }}}}},
    "aggs": {
    "groupby_hour_reqs":{
    "date_histogram":{
    "field":"ts",
    "interval":"1d",
    "format":"yyyy-MM-dd",
    "time_zone":"+08:00",
    "min_doc_count": 0
    }
    }
    }
    }'

    访问最多的接口排名

    # 所有接口分类及调用次数
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 0,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"22/May/2018:00:00:00 +0800"
    }}}}},
    "aggs": {"all_urls": {"terms": { "field": "url" }}}
    }'

    # 昨日接口分类及调用次数
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 10,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"17/Dec/2020:00:00:00 +0800",
    "lte":"18/Dec/2020:00:00:00 +0800"
    }}}}},
    "aggs": {"all_urls": {"terms": { "field": "url" }}}
    }'
    # 今日接口分类及调用次数
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 0,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"23/May/2020:00:00:00 +0800",
    "lte":"24/May/2020:00:00:00 +0800"
    }}}}},
    "aggs": {"all_urls": {"terms": { "field": "url" }}}
    }'

    访问最多的IP排名

    # 所有IP分类及调用次数
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 0,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"23/May/2018:00:00:00 +0800"
    }}}}},
    "aggs": {"all_ips": {"terms": { "field": "ip" , "size":10 }}}
    }'

    # 昨日IP分类及调用次数
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 0,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"25/May/2020:00:00:00 +0800",
    "lte":"26/May/2020:00:00:00 +0800"
    }}}}},
    "aggs": {"all_ips": {"terms": { "field": "ip" , "size":10 }}}
    }'

    # 今日IP分类及调用次数
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 0,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"7/Sep/2020:00:00:00 +0800",
    "lte":"8/Sep/2020:00:00:00 +0800"
    }}}}},
    "aggs": {"all_ips": {"terms": { "field": "ip" , "size":10 }}}
    }'

    1. doc_count_error_upper_bound表示的是每个分片返回的最小的数量总和,比如这里的6就是第一个分片中的d中的4加上第二分片中的b中的2。也就是说ES认为那些本应该返回回来的文档假设它在每个分片上的最大值就是返回的最小值。
    2. sum_other_doc_count就是总文档数量减去返回的文档总数量。

    访问最多的URL排名

    # 所有URL分类及调用次数
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 0,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"23/May/2018:00:00:00 +0800"
    }}}}},
    "aggs": {"all_ips": {"terms": { "field": "url" , "size":10 }}}
    }'

    # 昨日URL分类及调用次数
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 0,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"25/May/2020:00:00:00 +0800",
    "lte":"26/May/2020:00:00:00 +0800"
    }}}}},
    "aggs": {"all_ips": {"terms": { "field": "url" , "size":10 }}}
    }'

    # 今日URL分类及调用次数
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 0,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"8/Jun/2020:00:00:00 +0800",
    "lte":"9/Jun/2020:00:00:00 +0800"
    }}}}},
    "aggs": {"all_ips": {"terms": { "field": "url" , "size":10 }}}
    }'
    #########################################################
    # 某个IP所有URL分类及调用次数
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 0,
    "query":{"constant_score":{
    "filter":{
    "bool":{
    "must":[{"term":{"ip":"101.132.122.94"}},
    {"range":{"ts":{
    "gte":"23/May/2018:00:00:00 +0800"
    }}}
    ]
    }
    }
    }},
    "aggs": {"all_ips": {"terms": { "field": "url" , "size":10 }}}
    }'
    # 某个IP今日URL分类及调用次数
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 1,
    "query":{"constant_score":{
    "filter":{
    "bool":{
    "must":[{"term":{"ip":"114.115.190.201"}},
    {"range":{"ts":{
    "gte":"7/Sep/2020:00:00:00 +0800",
    "lte":"8/Sep/2020:00:00:00 +0800"
    }}}
    ]
    }
    }
    }},
    "aggs": {"all_ips": {"terms": { "field": "url" , "size":10 }}}
    }'


    ip和url查询列表

    # 
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 10,"sort": [{"ts": {"order": "desc"}}],
    "query":{"constant_score":{
    "filter":{
    "bool":{
    "must":[{"term":{"ip":"113.110.165.243"}},
    {"term":{"url":"/xxx/xxx"}},
    {"range":{"ts":{
    "gte":"11/Jun/2020:00:00:00 +0800",
    "lte":"12/Jun/2020:00:00:00 +0800"
    }}}
    ]
    }
    }
    }}
    }'

    访问浏览器类型分类及数量

    # 所有浏览器分类及调用次数
    curl -XGET 'http://127.0.0.1:9200/rc_nginx_api/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 0,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"22/May/2018:00:00:00 +0800"
    }}}}},
    "aggs": {"all_uajnames": {"terms": { "field": "uaj.name" , "size":100 }}}
    }'
    # 昨日浏览器分类及调用次数
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 1,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"22/May/2020:00:00:00 +0800",
    "lte":"23/May/2020:00:00:00 +0800"
    }}}}},
    "aggs": {"all_uajnames": {"terms": { "field": "uaj.name" , "size":10 }}}
    }'

    访问浏览器Chrome版本及数量

    # 所有浏览器分类及调用次数
    curl -XGET 'http://127.0.0.1:9200/rc_nginx_api/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 1,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"22/May/2018:00:00:00 +0800"
    }}}}},
    "aggs": {"all_uajoss": {"terms": { "field": "uaj.major" , "size":10 }}}
    }'
    # 昨日浏览器分类及调用次数
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 1,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"22/May/2020:00:00:00 +0800",
    "lte":"23/May/2020:00:00:00 +0800"
    }}}}},
    "aggs": {"all_uajoss": {"terms": { "field": "uaj.major" , "size":10 }}}
    }'

    访问操作系统类型分类及数量

    # 所有操作系统分类及调用次数
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 1,
    "query":{
    "constant_score":{
    "filter":{
    "bool":{
    "must":[
    {"range":{"ts":{
    "gte":"22/May/2018:00:00:00 +0800"
    }}}
    ]
    }
    }
    }},
    "aggs": {"all_uajoss": {"terms": { "field": "uaj.os" , "size":100 }}}
    }'

    访问最多的国家排名

    # 所有访问国家分类及调用次数
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 0,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"22/May/2018:00:00:00 +0800"
    }}}}},
    "aggs": {"all_uajoss": {"terms": { "field": "ipj.country_name" , "size":10 }}}
    }'
    # 昨日访问国家分类及调用次数
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 1,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"1/Jun/2020:00:00:00 +0800",
    "lte":"2/Jun/2020:00:00:00 +0800"
    }}}}},
    "aggs": {"all_uajoss": {"terms": { "field": "ipj.country_name" , "size":10 }}}
    }'

    访问最多的省份排名

    # 所有访问省份分类及调用次数
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 10,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"22/May/2018:00:00:00 +0800"
    }}}}},
    "aggs": {"all_uajoss": {"terms": { "field": "ipj.region_name" , "size":10 }}}
    }'
    # 昨日访问省份分类及调用次数
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 1,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"31/May/2020:00:00:00 +0800",
    "lte":"2/Jun/2020:00:00:00 +0800"
    }}}}},
    "aggs": {"all_uajoss": {"terms": { "field": "ipj.region_name" , "size":10 }}}
    }'

    访问最多的城市排名

    # 所有访问城市分类及调用次数
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 0,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"22/May/2018:00:00:00 +0800"
    }}}}},
    "aggs": {"all_uajoss": {"terms": { "field": "ipj.city_name" , "size":10 }}}
    }'
    # 昨日访问城市分类及调用次数
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 0,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"1/Jun/2020:00:00:00 +0800",
    "lte":"2/Jun/2020:00:00:00 +0800"
    }}}}},
    "aggs": {"all_uajoss": {"terms": { "field": "ipj.city_name" , "size":10 }}}
    }'

    HTTP响应码非200数量及列表

    # 所有HTTP响应码非200列表
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 100,
    "query":{
    "constant_score":{
    "filter":{
    "bool":{
    "must_not":[
    {"term":{"code":"200"}}
    ],
    "must":[
    {"range":{"ts":{
    "gte":"22/May/2018:00:00:00 +0800"
    }}}
    ]
    }
    }
    }}
    }'


    # 昨日HTTP响应码非200列表
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 10,
    "query":{
    "constant_score":{
    "filter":{
    "bool":{
    "must_not":[
    {"term":{"code":"200"}}
    ],
    "must":[
    {"range":{"ts":{
    "gte":"25/May/2020:00:00:00 +0800",
    "lte":"26/May/2020:00:00:00 +0800"
    }}}
    ]
    }
    }
    }}
    }'


    # 所有HTTP响应码非200分类及调用数量
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 1,
    "query":{
    "constant_score":{
    "filter":{
    "bool":{
    "must_not":[
    {"term":{"code":"200"}}
    ],
    "must":[
    {"range":{"ts":{
    "gte":"22/May/2018:00:00:00 +0800"
    }}}
    ]
    }
    }
    }},
    "aggs": {"all_uajoss": {"terms": { "field": "code" , "size":100 }}}
    }'


    # 昨日HTTP响应码非200分类及调用数量
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 1,
    "query":{
    "constant_score":{
    "filter":{
    "bool":{
    "must_not":[
    {"term":{"code":"200"}}
    ],
    "must":[
    {"range":{"ts":{
    "gte":"22/May/2020:00:00:00 +0800",
    "lte":"23/May/2020:00:00:00 +0800"
    }}}
    ]
    }
    }
    }},
    "aggs": {"all_uajoss": {"terms": { "field": "code" , "size":100 }}}
    }'


    # 所有HTTP响应码非200(499)url分类及调用数量
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 1,
    "query":{
    "constant_score":{
    "filter":{
    "bool":{
    "must":[{"term":{"code":"499"}},
    {"range":{"ts":{
    "gte":"22/May/2018:00:00:00 +0800"
    }}}
    ]
    }
    }
    }},
    "aggs": {"all_uajoss": {"terms": { "field": "url" , "size":10 }}}
    }'

    # 昨日HTTP响应码非200(499)url分类及调用数量
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 1,
    "query":{
    "constant_score":{
    "filter":{
    "bool":{
    "must":[{"term":{"code":"499"}},
    {"range":{"ts":{
    "gte":"22/May/2020:00:00:00 +0800",
    "lte":"23/May/2020:00:00:00 +0800"
    }}}
    ]
    }
    }
    }},
    "aggs": {"all_uajoss": {"terms": { "field": "url" , "size":10 }}}
    }'


    # 所有HTTP响应码非200(404)url分类及调用数量
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 1,
    "query":{
    "constant_score":{
    "filter":{
    "bool":{
    "must":[{"term":{"code":"404"}},
    {"range":{"ts":{
    "gte":"22/May/2018:00:00:00 +0800"
    }}}
    ]
    }
    }
    }},
    "aggs": {"all_uajoss": {"terms": { "field": "url" , "size":10 }}}
    }'

    # 昨日HTTP响应码非200(404)url分类及调用数量
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 1,
    "query":{
    "constant_score":{
    "filter":{
    "bool":{
    "must":[{"term":{"code":"404"}},
    {"range":{"ts":{
    "gte":"22/May/2020:00:00:00 +0800",
    "lte":"23/May/2020:00:00:00 +0800"
    }}}
    ]
    }
    }
    }},
    "aggs": {"all_uajoss": {"terms": { "field": "url" , "size":10 }}}
    }'

    HTTP method分类及调用次数

    # 所有HTTP method分类及数量
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 1,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"22/May/2018:00:00:00 +0800"
    }}}}},
    "aggs": {"all_uajnames": {"terms": { "field": "method" , "size":10 }}}
    }'

    site分类及调用次数

    # 所有site分类及数量
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 0,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"22/May/2018:00:00:00 +0800"
    }}}}},
    "aggs": {"all_uajnames": {"terms": { "field": "site" , "size":100 }}}
    }'
    # 某个IP今日site分类及调用次数
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 0,"sort": [{"ts": {"order": "desc"}}],
    "query":{"constant_score":{
    "filter":{
    "bool":{
    "must":[{"term":{"ip":"114.115.190.196"}},
    {"range":{"ts":{
    "gte":"8/Jun/2020:00:00:00 +0800",
    "lte":"9/Jun/2020:00:00:00 +0800"
    }}}
    ]
    }
    }
    }},
    "aggs": {"all_ips": {"terms": { "field": "site" , "size":10 }}}
    }'

    httpv分类及调用次数

    # 所有HTTP method分类及数量
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 1,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"22/May/2018:00:00:00 +0800"
    }}}}},
    "aggs": {"all_uajnames": {"terms": { "field": "httpv" , "size":10 }}}
    }'

    URL访问IP分类及调用次数

    # URL访问IP分类及调用次数--查询历史记录
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 0,
    "query":{"constant_score":{
    "filter":{
    "bool":{
    "must":[{"term":{"url":"/xxx/xx/xx"}},
    {"range":{"ts":{
    "gte":"8/Jun/2020:00:00:00 +0800",
    "lte":"9/Jun/2020:00:00:00 +0800"
    }}}
    ]
    }
    }
    }},
    "aggs": {"all_urls": {"terms": { "field": "ip" }}}
    }'

    # URL访问IP分类及调用次数--登录
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 0,
    "query":{"constant_score":{
    "filter":{
    "bool":{
    "must":[{"term":{"url":"/xx/xx/xx"}},
    {"range":{"ts":{
    "gte":"8/Jun/2020:00:00:00 +0800",
    "lte":"9/Jun/2020:00:00:00 +0800"
    }}}
    ]
    }
    }
    }},
    "aggs": {"all_urls": {"terms": { "field": "ip" }}}
    }'

    最活跃的某类site

    #10大最活跃的分享组态
    curl -XPOST 'http://127.0.0.1:9200/{具体的e's}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 0,
    "query":{
    "wildcard": {
    "site": "*show.html*share*"
    }
    },
    "aggs": {"all_ips": {"terms": { "field": "site" , "size":100 }}}
    }'
    - +

    API的请求量分析

    数据流向

    浏览器 》Nginx 》API 》产生Nginx log日志 》Filebeat 》Logstash 》ElasticSearch

    分析点

    接口访问量

    #访问总量
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d '{"size" : 0 }'

    #昨日访问总量
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"sort": [{"ts": {"order": "desc"}}],
    "size" : 0,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"24/May/2020:00:00:00 +0800",
    "lte":"25/May/2020:00:00:00 +0800"
    }}}}}
    }'

    #昨日访问总量--按照小时聚合--按照时间排序
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"sort": [{"ts": {"order": "desc"}}],
    "size" : 0,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"16/Jun/2020:00:00:00 +0800",
    "lte":"17/Jun/2020:00:00:00 +0800"
    }}}}},
    "aggs": {
    "groupby_hour_reqs":{
    "date_histogram":{
    "field":"ts",
    "interval":"1h",
    "format":"yyyy-MM-dd:HH",
    "time_zone":"+08:00",
    "min_doc_count": 0
    }
    }
    }
    }'

    #昨日访问总量--按照小时聚合--按照访问量排序
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"sort": [{"ts": {"order": "desc"}}],
    "size" : 0,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"25/May/2020:00:00:00 +0800",
    "lte":"26/May/2020:00:00:00 +0800"
    }}}}},
    "aggs": {
    "groupby_hour_reqs":{
    "date_histogram":{
    "field":"ts",
    "interval":"1h",
    "format":"yyyy-MM-dd:HH",
    "time_zone":"+08:00",
    "min_doc_count": 0,
    "order" : {
    "_count" : "desc"
    }
    }
    }
    }
    }'
    #100s内访问总量--按照秒聚合--按照访问量排序==QPS###################
    #########所有访问
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"sort": [{"ts": {"order": "desc"}}],
    "size" : 0,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"now-100s"
    }}}}},
    "aggs": {
    "groupby_hour_reqs":{
    "date_histogram":{
    "field":"ts",
    "interval":"1s",
    "format":"yyyy-MM-dd:HH:mm:ss",
    "time_zone":"+08:00",
    "min_doc_count": 20,
    "order" : {
    "_count" : "desc"
    }
    }
    }
    }
    }'
    #########某个IP
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"sort": [{"ts": {"order": "desc"}}],
    "size" : 0,
    "query":{"constant_score":{
    "filter":{
    "bool":{
    "must":[{"term":{"ip":"101.132.122.94"}},
    {"range":{"ts":{
    "gte":"now-600s"
    }}}
    ]
    }
    }
    }},
    "aggs": {
    "groupby_hour_reqs":{
    "date_histogram":{
    "field":"ts",
    "interval":"1s",
    "format":"yyyy-MM-dd:HH:mm:ss",
    "time_zone":"+08:00",
    "min_doc_count": 1,
    "order" : {
    "_count" : "desc"
    }
    }
    }
    }
    }'

    #今日访问总量
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"sort": [{"ts": {"order": "desc"}}],
    "size" : 0,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"23/May/2020:00:00:00 +0800"
    }}}}}
    }'

    #当前小时访问总量
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"sort": [{"ts": {"order": "asc"}}],
    "size" : 1,
    "query":{"constant_score":{"filter":{"range":{"ts":{"gte":"now/h"}}}}}
    }'

    #近一个月访问总量--按照天聚合--按照时间排序 --非二开
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"sort": [{"ts": {"order": "desc"}}],
    "size" : 0,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"now-1M"
    }}}}},
    "aggs": {
    "groupby_hour_reqs":{
    "date_histogram":{
    "field":"ts",
    "interval":"1d",
    "format":"yyyy-MM-dd",
    "time_zone":"+08:00",
    "min_doc_count": 0
    }
    }
    }
    }'
    #近一个月访问总量--按照天聚合--按照时间排序 --二开
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"sort": [{"ts": {"order": "desc"}}],
    "size" : 0,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"now-1M"
    }}}}},
    "aggs": {
    "groupby_hour_reqs":{
    "date_histogram":{
    "field":"ts",
    "interval":"1d",
    "format":"yyyy-MM-dd",
    "time_zone":"+08:00",
    "min_doc_count": 0
    }
    }
    }
    }'

    访问最多的接口排名

    # 所有接口分类及调用次数
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 0,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"22/May/2018:00:00:00 +0800"
    }}}}},
    "aggs": {"all_urls": {"terms": { "field": "url" }}}
    }'

    # 昨日接口分类及调用次数
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 10,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"17/Dec/2020:00:00:00 +0800",
    "lte":"18/Dec/2020:00:00:00 +0800"
    }}}}},
    "aggs": {"all_urls": {"terms": { "field": "url" }}}
    }'
    # 今日接口分类及调用次数
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 0,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"23/May/2020:00:00:00 +0800",
    "lte":"24/May/2020:00:00:00 +0800"
    }}}}},
    "aggs": {"all_urls": {"terms": { "field": "url" }}}
    }'

    访问最多的IP排名

    # 所有IP分类及调用次数
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 0,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"23/May/2018:00:00:00 +0800"
    }}}}},
    "aggs": {"all_ips": {"terms": { "field": "ip" , "size":10 }}}
    }'

    # 昨日IP分类及调用次数
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 0,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"25/May/2020:00:00:00 +0800",
    "lte":"26/May/2020:00:00:00 +0800"
    }}}}},
    "aggs": {"all_ips": {"terms": { "field": "ip" , "size":10 }}}
    }'

    # 今日IP分类及调用次数
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 0,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"7/Sep/2020:00:00:00 +0800",
    "lte":"8/Sep/2020:00:00:00 +0800"
    }}}}},
    "aggs": {"all_ips": {"terms": { "field": "ip" , "size":10 }}}
    }'

    1. doc_count_error_upper_bound表示的是每个分片返回的最小的数量总和,比如这里的6就是第一个分片中的d中的4加上第二分片中的b中的2。也就是说ES认为那些本应该返回回来的文档假设它在每个分片上的最大值就是返回的最小值。
    2. sum_other_doc_count就是总文档数量减去返回的文档总数量。

    访问最多的URL排名

    # 所有URL分类及调用次数
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 0,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"23/May/2018:00:00:00 +0800"
    }}}}},
    "aggs": {"all_ips": {"terms": { "field": "url" , "size":10 }}}
    }'

    # 昨日URL分类及调用次数
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 0,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"25/May/2020:00:00:00 +0800",
    "lte":"26/May/2020:00:00:00 +0800"
    }}}}},
    "aggs": {"all_ips": {"terms": { "field": "url" , "size":10 }}}
    }'

    # 今日URL分类及调用次数
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 0,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"8/Jun/2020:00:00:00 +0800",
    "lte":"9/Jun/2020:00:00:00 +0800"
    }}}}},
    "aggs": {"all_ips": {"terms": { "field": "url" , "size":10 }}}
    }'
    #########################################################
    # 某个IP所有URL分类及调用次数
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 0,
    "query":{"constant_score":{
    "filter":{
    "bool":{
    "must":[{"term":{"ip":"101.132.122.94"}},
    {"range":{"ts":{
    "gte":"23/May/2018:00:00:00 +0800"
    }}}
    ]
    }
    }
    }},
    "aggs": {"all_ips": {"terms": { "field": "url" , "size":10 }}}
    }'
    # 某个IP今日URL分类及调用次数
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 1,
    "query":{"constant_score":{
    "filter":{
    "bool":{
    "must":[{"term":{"ip":"114.115.190.201"}},
    {"range":{"ts":{
    "gte":"7/Sep/2020:00:00:00 +0800",
    "lte":"8/Sep/2020:00:00:00 +0800"
    }}}
    ]
    }
    }
    }},
    "aggs": {"all_ips": {"terms": { "field": "url" , "size":10 }}}
    }'


    ip和url查询列表

    # 
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 10,"sort": [{"ts": {"order": "desc"}}],
    "query":{"constant_score":{
    "filter":{
    "bool":{
    "must":[{"term":{"ip":"113.110.165.243"}},
    {"term":{"url":"/xxx/xxx"}},
    {"range":{"ts":{
    "gte":"11/Jun/2020:00:00:00 +0800",
    "lte":"12/Jun/2020:00:00:00 +0800"
    }}}
    ]
    }
    }
    }}
    }'

    访问浏览器类型分类及数量

    # 所有浏览器分类及调用次数
    curl -XGET 'http://127.0.0.1:9200/rc_nginx_api/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 0,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"22/May/2018:00:00:00 +0800"
    }}}}},
    "aggs": {"all_uajnames": {"terms": { "field": "uaj.name" , "size":100 }}}
    }'
    # 昨日浏览器分类及调用次数
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 1,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"22/May/2020:00:00:00 +0800",
    "lte":"23/May/2020:00:00:00 +0800"
    }}}}},
    "aggs": {"all_uajnames": {"terms": { "field": "uaj.name" , "size":10 }}}
    }'

    访问浏览器Chrome版本及数量

    # 所有浏览器分类及调用次数
    curl -XGET 'http://127.0.0.1:9200/rc_nginx_api/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 1,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"22/May/2018:00:00:00 +0800"
    }}}}},
    "aggs": {"all_uajoss": {"terms": { "field": "uaj.major" , "size":10 }}}
    }'
    # 昨日浏览器分类及调用次数
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 1,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"22/May/2020:00:00:00 +0800",
    "lte":"23/May/2020:00:00:00 +0800"
    }}}}},
    "aggs": {"all_uajoss": {"terms": { "field": "uaj.major" , "size":10 }}}
    }'

    访问操作系统类型分类及数量

    # 所有操作系统分类及调用次数
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 1,
    "query":{
    "constant_score":{
    "filter":{
    "bool":{
    "must":[
    {"range":{"ts":{
    "gte":"22/May/2018:00:00:00 +0800"
    }}}
    ]
    }
    }
    }},
    "aggs": {"all_uajoss": {"terms": { "field": "uaj.os" , "size":100 }}}
    }'

    访问最多的国家排名

    # 所有访问国家分类及调用次数
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 0,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"22/May/2018:00:00:00 +0800"
    }}}}},
    "aggs": {"all_uajoss": {"terms": { "field": "ipj.country_name" , "size":10 }}}
    }'
    # 昨日访问国家分类及调用次数
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 1,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"1/Jun/2020:00:00:00 +0800",
    "lte":"2/Jun/2020:00:00:00 +0800"
    }}}}},
    "aggs": {"all_uajoss": {"terms": { "field": "ipj.country_name" , "size":10 }}}
    }'

    访问最多的省份排名

    # 所有访问省份分类及调用次数
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 10,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"22/May/2018:00:00:00 +0800"
    }}}}},
    "aggs": {"all_uajoss": {"terms": { "field": "ipj.region_name" , "size":10 }}}
    }'
    # 昨日访问省份分类及调用次数
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 1,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"31/May/2020:00:00:00 +0800",
    "lte":"2/Jun/2020:00:00:00 +0800"
    }}}}},
    "aggs": {"all_uajoss": {"terms": { "field": "ipj.region_name" , "size":10 }}}
    }'

    访问最多的城市排名

    # 所有访问城市分类及调用次数
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 0,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"22/May/2018:00:00:00 +0800"
    }}}}},
    "aggs": {"all_uajoss": {"terms": { "field": "ipj.city_name" , "size":10 }}}
    }'
    # 昨日访问城市分类及调用次数
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 0,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"1/Jun/2020:00:00:00 +0800",
    "lte":"2/Jun/2020:00:00:00 +0800"
    }}}}},
    "aggs": {"all_uajoss": {"terms": { "field": "ipj.city_name" , "size":10 }}}
    }'

    HTTP响应码非200数量及列表

    # 所有HTTP响应码非200列表
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 100,
    "query":{
    "constant_score":{
    "filter":{
    "bool":{
    "must_not":[
    {"term":{"code":"200"}}
    ],
    "must":[
    {"range":{"ts":{
    "gte":"22/May/2018:00:00:00 +0800"
    }}}
    ]
    }
    }
    }}
    }'


    # 昨日HTTP响应码非200列表
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 10,
    "query":{
    "constant_score":{
    "filter":{
    "bool":{
    "must_not":[
    {"term":{"code":"200"}}
    ],
    "must":[
    {"range":{"ts":{
    "gte":"25/May/2020:00:00:00 +0800",
    "lte":"26/May/2020:00:00:00 +0800"
    }}}
    ]
    }
    }
    }}
    }'


    # 所有HTTP响应码非200分类及调用数量
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 1,
    "query":{
    "constant_score":{
    "filter":{
    "bool":{
    "must_not":[
    {"term":{"code":"200"}}
    ],
    "must":[
    {"range":{"ts":{
    "gte":"22/May/2018:00:00:00 +0800"
    }}}
    ]
    }
    }
    }},
    "aggs": {"all_uajoss": {"terms": { "field": "code" , "size":100 }}}
    }'


    # 昨日HTTP响应码非200分类及调用数量
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 1,
    "query":{
    "constant_score":{
    "filter":{
    "bool":{
    "must_not":[
    {"term":{"code":"200"}}
    ],
    "must":[
    {"range":{"ts":{
    "gte":"22/May/2020:00:00:00 +0800",
    "lte":"23/May/2020:00:00:00 +0800"
    }}}
    ]
    }
    }
    }},
    "aggs": {"all_uajoss": {"terms": { "field": "code" , "size":100 }}}
    }'


    # 所有HTTP响应码非200(499)url分类及调用数量
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 1,
    "query":{
    "constant_score":{
    "filter":{
    "bool":{
    "must":[{"term":{"code":"499"}},
    {"range":{"ts":{
    "gte":"22/May/2018:00:00:00 +0800"
    }}}
    ]
    }
    }
    }},
    "aggs": {"all_uajoss": {"terms": { "field": "url" , "size":10 }}}
    }'

    # 昨日HTTP响应码非200(499)url分类及调用数量
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 1,
    "query":{
    "constant_score":{
    "filter":{
    "bool":{
    "must":[{"term":{"code":"499"}},
    {"range":{"ts":{
    "gte":"22/May/2020:00:00:00 +0800",
    "lte":"23/May/2020:00:00:00 +0800"
    }}}
    ]
    }
    }
    }},
    "aggs": {"all_uajoss": {"terms": { "field": "url" , "size":10 }}}
    }'


    # 所有HTTP响应码非200(404)url分类及调用数量
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 1,
    "query":{
    "constant_score":{
    "filter":{
    "bool":{
    "must":[{"term":{"code":"404"}},
    {"range":{"ts":{
    "gte":"22/May/2018:00:00:00 +0800"
    }}}
    ]
    }
    }
    }},
    "aggs": {"all_uajoss": {"terms": { "field": "url" , "size":10 }}}
    }'

    # 昨日HTTP响应码非200(404)url分类及调用数量
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 1,
    "query":{
    "constant_score":{
    "filter":{
    "bool":{
    "must":[{"term":{"code":"404"}},
    {"range":{"ts":{
    "gte":"22/May/2020:00:00:00 +0800",
    "lte":"23/May/2020:00:00:00 +0800"
    }}}
    ]
    }
    }
    }},
    "aggs": {"all_uajoss": {"terms": { "field": "url" , "size":10 }}}
    }'

    HTTP method分类及调用次数

    # 所有HTTP method分类及数量
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 1,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"22/May/2018:00:00:00 +0800"
    }}}}},
    "aggs": {"all_uajnames": {"terms": { "field": "method" , "size":10 }}}
    }'

    site分类及调用次数

    # 所有site分类及数量
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 0,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"22/May/2018:00:00:00 +0800"
    }}}}},
    "aggs": {"all_uajnames": {"terms": { "field": "site" , "size":100 }}}
    }'
    # 某个IP今日site分类及调用次数
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 0,"sort": [{"ts": {"order": "desc"}}],
    "query":{"constant_score":{
    "filter":{
    "bool":{
    "must":[{"term":{"ip":"114.115.190.196"}},
    {"range":{"ts":{
    "gte":"8/Jun/2020:00:00:00 +0800",
    "lte":"9/Jun/2020:00:00:00 +0800"
    }}}
    ]
    }
    }
    }},
    "aggs": {"all_ips": {"terms": { "field": "site" , "size":10 }}}
    }'

    httpv分类及调用次数

    # 所有HTTP method分类及数量
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 1,
    "query":{"constant_score":{"filter":{"range":{"ts":{
    "gte":"22/May/2018:00:00:00 +0800"
    }}}}},
    "aggs": {"all_uajnames": {"terms": { "field": "httpv" , "size":10 }}}
    }'

    URL访问IP分类及调用次数

    # URL访问IP分类及调用次数--查询历史记录
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 0,
    "query":{"constant_score":{
    "filter":{
    "bool":{
    "must":[{"term":{"url":"/xxx/xx/xx"}},
    {"range":{"ts":{
    "gte":"8/Jun/2020:00:00:00 +0800",
    "lte":"9/Jun/2020:00:00:00 +0800"
    }}}
    ]
    }
    }
    }},
    "aggs": {"all_urls": {"terms": { "field": "ip" }}}
    }'

    # URL访问IP分类及调用次数--登录
    curl -XGET 'http://127.0.0.1:9200/{具体的es库}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 0,
    "query":{"constant_score":{
    "filter":{
    "bool":{
    "must":[{"term":{"url":"/xx/xx/xx"}},
    {"range":{"ts":{
    "gte":"8/Jun/2020:00:00:00 +0800",
    "lte":"9/Jun/2020:00:00:00 +0800"
    }}}
    ]
    }
    }
    }},
    "aggs": {"all_urls": {"terms": { "field": "ip" }}}
    }'

    最活跃的某类site

    #10大最活跃的分享组态
    curl -XPOST 'http://127.0.0.1:9200/{具体的e's}/_search?pretty' \
    -H "Content-Type: application/json" \
    -d \
    '{"size" : 0,
    "query":{
    "wildcard": {
    "site": "*show.html*share*"
    }
    },
    "aggs": {"all_ips": {"terms": { "field": "site" , "size":100 }}}
    }'
    + \ No newline at end of file diff --git "a/docs/study/devops/Linux\350\277\220\347\273\264-\345\270\270\347\224\250/index.html" "b/docs/study/devops/Linux\350\277\220\347\273\264-\345\270\270\347\224\250/index.html" index d7c00e3b6..9f012feb7 100644 --- "a/docs/study/devops/Linux\350\277\220\347\273\264-\345\270\270\347\224\250/index.html" +++ "b/docs/study/devops/Linux\350\277\220\347\273\264-\345\270\270\347\224\250/index.html" @@ -10,14 +10,14 @@ - - + +
    -

    Linux运维-常用

    内核/发行版

    # 内核 CPU架构
    uname -a
    # 发行版
    lsb_release -a

    删除多余的备份

    # 删除90之前的备份文件
    find /root/sh/bak/*.gz -mtime +90 -type f -exec rm -f {} \;
    # 删除60之前的备份文件
    find /root/sh/bak/*.gz -mtime +60 -type f -exec rm -f {} \;
    # 删除10之前的备份文件
    find /mnt/docker/tomcat/logs/*.log -mtime +10 -type f -exec rm -f {} \;

    文件/目录大小查看

    #查看当前目录总共占的容量。而不单独列出各子项占用的容量
    du -sh
    #查看当前目录下一级子文件和子目录占用的磁盘容量。
    du -lh --max-depth=1
    #按照文件大小 从小到大排序
    ls -hSlr
    #按照修改时间 从小到大排序
    ls -hlt

    网络带宽问题

    yum install libpcap nethogs
    nethogs -a
    lsof -i:被占用的端口号

    定时任务

    防火墙

    #检查防火墙 如果防火强修改了 记得重启docker
    systemctl status firewalld
    #
    firewall-cmd --list-ports

    #开启防火墙端口
    #
    firewall-cmd --permanent --add-port=9100/tcp && \
    firewall-cmd --permanent --add-port=9200/tcp && \
    firewall-cmd --permanent --add-port=9300/tcp && \
    firewall-cmd --reload
    #
    firewall-cmd --permanent --add-port=5044-5054/tcp && \
    firewall-cmd --reload
    #
    firewall-cmd --permanent --add-port=8090-8099/tcp && \
    firewall-cmd --reload

    #关闭防火墙端口
    firewall-cmd --permanent --remove-port=9100/tcp && \
    firewall-cmd --permanent --remove-port=9200/tcp && \
    firewall-cmd --permanent --remove-port=9300/tcp && \
    firewall-cmd --reload

    后台运行

    nohup python ./analyse_init_stocks.py > /dev/null 2>&1 &

    zip 文件

    yum install -y unzip zip

    centos 字符集问题

    1. CentOS7 及 Docker 配置中文字符集问题

    宝塔相关

    1. 如果不知道宝塔的管理员的用户名和密码,但是可以登录服务器,使用脚本 bt default 来获取管理员的用户名和密码。

    登录用户

    #
    w
    #
    who

    常用的 ls 命令

    #忽略某些文件名展示
    ll -h --ignore="*bak*"

    CPU

    #该服务器一共有几个物理CPU
    grep "physical id" /proc/cpuinfo | uniq | wc -l
    #该服务器一共有几个逻辑CPU
    grep "processor" /proc/cpuinfo | wc -l
    #查看cpu核心数
    cat /proc/cpuinfo| grep "cpu cores"| uniq
    #查看cpu详细信息
    lscpu
    #查看CPU位数
    getconf LONG_BIT
    # 列出CPU占用最多的5个进程
    ps -aux | sort -k3nr | head -5
    # P按照内存大小排序 c显示进程全称
    top

    apt-get

    #
    apt-get update
    #
    apt-get install vim

    系统盘符

    #查看系统支持的盘符,查看分区和磁盘
    lsblk
    #查看空间使用情况
    df -h
    #查看硬盘label(别名)磁盘文件类型
    blkid

    内存

    # 查看内存大小
    free -h  
    # 内存占用最多的5个进程
    ps -aux | sort -k4nr | head -5
    # >或M按照内存大小排序 c显示进程全称
    top

    操作系统版本

    #红帽系列 centos
    cat /etc/redhat-release
    #查看内核/操作系统/CPU信息:
    uname -a

    端口/连接

    #查看所有监听的端口
    netstat -lntp
    #查看已经建立的链接
    netstat -antp
    #
    yum list |grep telnet
    yum -y install telnet.x86_64
    telnet 172.19.74.146 9200

    vi/vim 中文乱码

    #
    vi /etc/vimrc
    #在文件头增加如下内容
    set fileencodings=utf-8,gb2312,gbk,gb18030
    set termencoding=utf-8
    set fileformats=unix
    set encoding=prc

    htop/top

    #支持鼠标 支持左右方向键
    htop
    #
    H 只展示进程/显示线程
    h, ? F1查看htop使用说明
    S F2 htop 设定
    / F3 搜索进程
    \ F4 增量进程过滤器
    t F5 显示树形结构
    <, > F6 选择排序方式
    [ F7 可减少nice值可以提高对应进程的优先级
    ] F8 可增加nice值,降低对应进程的优先级
    k F9 可对进程传递信号
    q F10 结束htop
    u 只显示一个给定的用户的过程
    U 取消标记所有的进程
    H 显示或隐藏用户线程
    K 显示或隐藏内核线程
    F 跟踪进程
    P 按CPU 使用排序
    M 按内存使用排序
    T 按Time+ 使用排序
    l 显示进程打开的文件
    I 倒转排序顺序
    s 选择某进程,按s:用strace追踪进程的系统调用

    grep

    #
    less user-func-flow-for-res.2022-03-11.log | grep -E '61.166.240.34' |grep get | more


    pstree

    #pstree 命令是以树形结构显示程序和进程之间的关系
    man pstree
    #展示进程命令行
    pstree -a
    - +

    Linux运维-常用

    内核/发行版

    # 内核 CPU架构
    uname -a
    # 发行版
    lsb_release -a

    删除多余的备份

    # 删除90之前的备份文件
    find /root/sh/bak/*.gz -mtime +90 -type f -exec rm -f {} \;
    # 删除60之前的备份文件
    find /root/sh/bak/*.gz -mtime +60 -type f -exec rm -f {} \;
    # 删除10之前的备份文件
    find /mnt/docker/tomcat/logs/*.log -mtime +10 -type f -exec rm -f {} \;

    文件/目录大小查看

    #查看当前目录总共占的容量。而不单独列出各子项占用的容量
    du -sh
    #查看当前目录下一级子文件和子目录占用的磁盘容量。
    du -lh --max-depth=1
    #按照文件大小 从小到大排序
    ls -hSlr
    #按照修改时间 从小到大排序
    ls -hlt

    网络带宽问题

    yum install libpcap nethogs
    nethogs -a
    lsof -i:被占用的端口号

    定时任务

    防火墙

    #检查防火墙 如果防火强修改了 记得重启docker
    systemctl status firewalld
    #
    firewall-cmd --list-ports

    #开启防火墙端口
    #
    firewall-cmd --permanent --add-port=9100/tcp && \
    firewall-cmd --permanent --add-port=9200/tcp && \
    firewall-cmd --permanent --add-port=9300/tcp && \
    firewall-cmd --reload
    #
    firewall-cmd --permanent --add-port=5044-5054/tcp && \
    firewall-cmd --reload
    #
    firewall-cmd --permanent --add-port=8090-8099/tcp && \
    firewall-cmd --reload

    #关闭防火墙端口
    firewall-cmd --permanent --remove-port=9100/tcp && \
    firewall-cmd --permanent --remove-port=9200/tcp && \
    firewall-cmd --permanent --remove-port=9300/tcp && \
    firewall-cmd --reload

    后台运行

    nohup python ./analyse_init_stocks.py > /dev/null 2>&1 &

    zip 文件

    yum install -y unzip zip

    centos 字符集问题

    1. CentOS7 及 Docker 配置中文字符集问题

    宝塔相关

    1. 如果不知道宝塔的管理员的用户名和密码,但是可以登录服务器,使用脚本 bt default 来获取管理员的用户名和密码。

    登录用户

    #
    w
    #
    who

    常用的 ls 命令

    #忽略某些文件名展示
    ll -h --ignore="*bak*"

    CPU

    #该服务器一共有几个物理CPU
    grep "physical id" /proc/cpuinfo | uniq | wc -l
    #该服务器一共有几个逻辑CPU
    grep "processor" /proc/cpuinfo | wc -l
    #查看cpu核心数
    cat /proc/cpuinfo| grep "cpu cores"| uniq
    #查看cpu详细信息
    lscpu
    #查看CPU位数
    getconf LONG_BIT
    # 列出CPU占用最多的5个进程
    ps -aux | sort -k3nr | head -5
    # P按照内存大小排序 c显示进程全称
    top

    apt-get

    #
    apt-get update
    #
    apt-get install vim

    系统盘符

    #查看系统支持的盘符,查看分区和磁盘
    lsblk
    #查看空间使用情况
    df -h
    #查看硬盘label(别名)磁盘文件类型
    blkid

    内存

    # 查看内存大小
    free -h  
    # 内存占用最多的5个进程
    ps -aux | sort -k4nr | head -5
    # >或M按照内存大小排序 c显示进程全称
    top

    操作系统版本

    #红帽系列 centos
    cat /etc/redhat-release
    #查看内核/操作系统/CPU信息:
    uname -a

    端口/连接

    #查看所有监听的端口
    netstat -lntp
    #查看已经建立的链接
    netstat -antp
    #
    yum list |grep telnet
    yum -y install telnet.x86_64
    telnet 172.19.74.146 9200

    vi/vim 中文乱码

    #
    vi /etc/vimrc
    #在文件头增加如下内容
    set fileencodings=utf-8,gb2312,gbk,gb18030
    set termencoding=utf-8
    set fileformats=unix
    set encoding=prc

    htop/top

    #支持鼠标 支持左右方向键
    htop
    #
    H 只展示进程/显示线程
    h, ? F1查看htop使用说明
    S F2 htop 设定
    / F3 搜索进程
    \ F4 增量进程过滤器
    t F5 显示树形结构
    <, > F6 选择排序方式
    [ F7 可减少nice值可以提高对应进程的优先级
    ] F8 可增加nice值,降低对应进程的优先级
    k F9 可对进程传递信号
    q F10 结束htop
    u 只显示一个给定的用户的过程
    U 取消标记所有的进程
    H 显示或隐藏用户线程
    K 显示或隐藏内核线程
    F 跟踪进程
    P 按CPU 使用排序
    M 按内存使用排序
    T 按Time+ 使用排序
    l 显示进程打开的文件
    I 倒转排序顺序
    s 选择某进程,按s:用strace追踪进程的系统调用

    grep

    #
    less user-func-flow-for-res.2022-03-11.log | grep -E '61.166.240.34' |grep get | more


    pstree

    #pstree 命令是以树形结构显示程序和进程之间的关系
    man pstree
    #展示进程命令行
    pstree -a
    + \ No newline at end of file diff --git "a/docs/study/devops/Linux\350\277\220\347\273\264-\347\233\221\346\216\247\346\225\260\346\215\256/index.html" "b/docs/study/devops/Linux\350\277\220\347\273\264-\347\233\221\346\216\247\346\225\260\346\215\256/index.html" index 6ed8da2e5..a6967a0c0 100644 --- "a/docs/study/devops/Linux\350\277\220\347\273\264-\347\233\221\346\216\247\346\225\260\346\215\256/index.html" +++ "b/docs/study/devops/Linux\350\277\220\347\273\264-\347\233\221\346\216\247\346\225\260\346\215\256/index.html" @@ -10,14 +10,14 @@ - - + +
    -

    Linux运维-监控数据

    系统平均负载和CPU使用率

    现实工作中,我们经常容易把平均负载值和CPU使用率混淆,所以在这里,我也做一个区分。

    可能你会疑惑,既然平均负载代表的是活跃进程数,那平均负载高了,不就意味着CPU使用率高吗?

    我们还是要回到平均负载的含义上来,平均负载是指单位时间内,处于可运行状态和不可中断状态的进程数。所以,它不仅包括了正在使用CPU的进程,还包括等待CPU和等待I/O的进程

    而CPU使用率,是单位时间内CPU繁忙情况的统计,跟平均负载并不一定完全对应。比如:

    • CPU密集型进程,使用大量CPU会导致平均负载升高,此时两者是一致的。
    • I/O密集型进程,等待I/O也会导致平均负载升高,但CPU使用率不一定很高。
    • 大量等待CPU的进程调度也会导致平均负载升高,此时的CPU使用率也会比较高。

    那么,在实际生产环境中,平均负载多高时,需要我们重点关注呢?

    在我看来,当平均负载高于逻辑CPU数量的70%的时候,你就应该分析排查负载高的问题了。一旦负载过高,就可能导致进程响应变慢,进而影响服务的正常功能。

    但是,70%这个数字并不是绝对的,最推荐的方法,还是把系统的平均负载监控起来,然后根据更多的历史数据,判断负载的变化趋势。当发现负载有明显升高趋势时,比如说负载翻倍了,你再去做分析和调查。

    - +

    Linux运维-监控数据

    系统平均负载和CPU使用率

    现实工作中,我们经常容易把平均负载值和CPU使用率混淆,所以在这里,我也做一个区分。

    可能你会疑惑,既然平均负载代表的是活跃进程数,那平均负载高了,不就意味着CPU使用率高吗?

    我们还是要回到平均负载的含义上来,平均负载是指单位时间内,处于可运行状态和不可中断状态的进程数。所以,它不仅包括了正在使用CPU的进程,还包括等待CPU和等待I/O的进程

    而CPU使用率,是单位时间内CPU繁忙情况的统计,跟平均负载并不一定完全对应。比如:

    • CPU密集型进程,使用大量CPU会导致平均负载升高,此时两者是一致的。
    • I/O密集型进程,等待I/O也会导致平均负载升高,但CPU使用率不一定很高。
    • 大量等待CPU的进程调度也会导致平均负载升高,此时的CPU使用率也会比较高。

    那么,在实际生产环境中,平均负载多高时,需要我们重点关注呢?

    在我看来,当平均负载高于逻辑CPU数量的70%的时候,你就应该分析排查负载高的问题了。一旦负载过高,就可能导致进程响应变慢,进而影响服务的正常功能。

    但是,70%这个数字并不是绝对的,最推荐的方法,还是把系统的平均负载监控起来,然后根据更多的历史数据,判断负载的变化趋势。当发现负载有明显升高趋势时,比如说负载翻倍了,你再去做分析和调查。

    + \ No newline at end of file diff --git "a/docs/study/devops/Linux\350\277\220\347\273\264-\351\253\230\345\271\266\345\217\221/index.html" "b/docs/study/devops/Linux\350\277\220\347\273\264-\351\253\230\345\271\266\345\217\221/index.html" index ddb70772e..778967886 100644 --- "a/docs/study/devops/Linux\350\277\220\347\273\264-\351\253\230\345\271\266\345\217\221/index.html" +++ "b/docs/study/devops/Linux\350\277\220\347\273\264-\351\253\230\345\271\266\345\217\221/index.html" @@ -10,14 +10,14 @@ - - + +
    -

    Linux运维-高并发

    最大文件描述符

    ulimit -n 控制进程级别能够打开的文件句柄的数量。提供对shell及其启动的进程的可用文件句柄的控制。这是进程级别的。

    #最大文件描述符 100W
    ulimit -SHn 1000000
    echo "ulimit -SHn 1000000" >> /etc/rc.d/rc.local
    source /etc/rc.d/rc.local
    ulimit -n

    max-file

    表示系统级别的能够打开的文件句柄的数量。是对整个系统的限制,并不是针对用户的。

    #查看系统级别的能够打开的文件句柄的数量,Centos7默认是794168
    cat /proc/sys/fs/file-max
    #
    vim /etc/sysctl.conf
    #
    fs.file-max = 1000000
    #然后执行命令,使修改配置立即生效:
    sysctl -p

    内核参数优化/etc/sysctl.conf

    #关闭ipv6
    net.ipv6.conf.all.disable_ipv6 = 1
    net.ipv6.conf.default.disable_ipv6 = 1

    #决定检查过期多久邻居条目
    net.ipv4.neigh.default.gc_stale_time=120

    #使用arp_announce / arp_ignore解决ARP映射问题
    net.ipv4.conf.default.arp_announce = 2
    net.ipv4.conf.all.arp_announce=2
    net.ipv4.conf.lo.arp_announce=2 # 避免放大攻击
    net.ipv4.icmp_echo_ignore_broadcasts = 1 # 开启恶意icmp错误消息保护
    net.ipv4.icmp_ignore_bogus_error_responses = 1

    #处理无源路由的包
    net.ipv4.conf.all.accept_source_route = 0
    net.ipv4.conf.default.accept_source_route = 0

    #core文件名中添加pid作为扩展名
    kernel.core_uses_pid = 1 # 开启SYN洪水攻击保护
    net.ipv4.tcp_syncookies = 1

    #修改消息队列长度
    kernel.msgmnb = 65536
    kernel.msgmax = 65536

    #timewait的数量,默认180000
    net.ipv4.tcp_max_tw_buckets = 6000
    net.ipv4.tcp_sack = 1
    net.ipv4.tcp_window_scaling = 1
    net.ipv4.tcp_rmem = 4096 87380 4194304
    net.ipv4.tcp_wmem = 4096 16384 4194304
    net.core.wmem_default = 8388608
    net.core.rmem_default = 8388608
    net.core.rmem_max = 16777216
    net.core.wmem_max = 16777216

    #限制仅仅是为了防止简单的DoS 攻击
    net.ipv4.tcp_max_orphans = 3276800

    #未收到客户端确认信息的连接请求的最大值
    net.ipv4.tcp_max_syn_backlog = 262144
    net.ipv4.tcp_timestamps = 0

    #内核放弃建立连接之前发送SYNACK 包的数量
    net.ipv4.tcp_synack_retries = 1

    #内核放弃建立连接之前发送SYN 包的数量
    net.ipv4.tcp_syn_retries = 1

    #启用timewait 快速回收
    net.ipv4.tcp_tw_recycle = 1

    #开启重用。允许将TIME-WAIT sockets 重新用于新的TCP 连接
    net.ipv4.tcp_tw_reuse = 1
    net.ipv4.tcp_mem = 94500000 915000000 927000000
    net.ipv4.tcp_fin_timeout = 1

    #然后执行以下命令重载配置
    sysctl -p
    - +

    Linux运维-高并发

    最大文件描述符

    ulimit -n 控制进程级别能够打开的文件句柄的数量。提供对shell及其启动的进程的可用文件句柄的控制。这是进程级别的。

    #最大文件描述符 100W
    ulimit -SHn 1000000
    echo "ulimit -SHn 1000000" >> /etc/rc.d/rc.local
    source /etc/rc.d/rc.local
    ulimit -n

    max-file

    表示系统级别的能够打开的文件句柄的数量。是对整个系统的限制,并不是针对用户的。

    #查看系统级别的能够打开的文件句柄的数量,Centos7默认是794168
    cat /proc/sys/fs/file-max
    #
    vim /etc/sysctl.conf
    #
    fs.file-max = 1000000
    #然后执行命令,使修改配置立即生效:
    sysctl -p

    内核参数优化/etc/sysctl.conf

    #关闭ipv6
    net.ipv6.conf.all.disable_ipv6 = 1
    net.ipv6.conf.default.disable_ipv6 = 1

    #决定检查过期多久邻居条目
    net.ipv4.neigh.default.gc_stale_time=120

    #使用arp_announce / arp_ignore解决ARP映射问题
    net.ipv4.conf.default.arp_announce = 2
    net.ipv4.conf.all.arp_announce=2
    net.ipv4.conf.lo.arp_announce=2 # 避免放大攻击
    net.ipv4.icmp_echo_ignore_broadcasts = 1 # 开启恶意icmp错误消息保护
    net.ipv4.icmp_ignore_bogus_error_responses = 1

    #处理无源路由的包
    net.ipv4.conf.all.accept_source_route = 0
    net.ipv4.conf.default.accept_source_route = 0

    #core文件名中添加pid作为扩展名
    kernel.core_uses_pid = 1 # 开启SYN洪水攻击保护
    net.ipv4.tcp_syncookies = 1

    #修改消息队列长度
    kernel.msgmnb = 65536
    kernel.msgmax = 65536

    #timewait的数量,默认180000
    net.ipv4.tcp_max_tw_buckets = 6000
    net.ipv4.tcp_sack = 1
    net.ipv4.tcp_window_scaling = 1
    net.ipv4.tcp_rmem = 4096 87380 4194304
    net.ipv4.tcp_wmem = 4096 16384 4194304
    net.core.wmem_default = 8388608
    net.core.rmem_default = 8388608
    net.core.rmem_max = 16777216
    net.core.wmem_max = 16777216

    #限制仅仅是为了防止简单的DoS 攻击
    net.ipv4.tcp_max_orphans = 3276800

    #未收到客户端确认信息的连接请求的最大值
    net.ipv4.tcp_max_syn_backlog = 262144
    net.ipv4.tcp_timestamps = 0

    #内核放弃建立连接之前发送SYNACK 包的数量
    net.ipv4.tcp_synack_retries = 1

    #内核放弃建立连接之前发送SYN 包的数量
    net.ipv4.tcp_syn_retries = 1

    #启用timewait 快速回收
    net.ipv4.tcp_tw_recycle = 1

    #开启重用。允许将TIME-WAIT sockets 重新用于新的TCP 连接
    net.ipv4.tcp_tw_reuse = 1
    net.ipv4.tcp_mem = 94500000 915000000 927000000
    net.ipv4.tcp_fin_timeout = 1

    #然后执行以下命令重载配置
    sysctl -p
    + \ No newline at end of file diff --git a/docs/study/devops/centos-gninx-app/index.html b/docs/study/devops/centos-gninx-app/index.html index ca68264bb..88665d4ac 100644 --- a/docs/study/devops/centos-gninx-app/index.html +++ b/docs/study/devops/centos-gninx-app/index.html @@ -10,14 +10,14 @@ - - + +
    -

    centos-nginx


    mkdir -p /root/iot-cloud-frontend/html

    yum install nginx
    systemctl start nginx
    # 配置文件目录 /etc/nginx
    # 默认 root /usr/share/nginx/html;
    # 修改成 root /root/iot-cloud-frontend/html;
    nginx -s reload

    # 如果报错403 说明启动nginx的用户和文件不一致 需要修改
    - +

    centos-nginx


    mkdir -p /root/iot-cloud-frontend/html

    yum install nginx
    systemctl start nginx
    # 配置文件目录 /etc/nginx
    # 默认 root /usr/share/nginx/html;
    # 修改成 root /root/iot-cloud-frontend/html;
    nginx -s reload

    # 如果报错403 说明启动nginx的用户和文件不一致 需要修改
    + \ No newline at end of file diff --git a/docs/study/devops/centos-jdk17-app/index.html b/docs/study/devops/centos-jdk17-app/index.html index f08357e71..ffd64afe0 100644 --- a/docs/study/devops/centos-jdk17-app/index.html +++ b/docs/study/devops/centos-jdk17-app/index.html @@ -10,14 +10,14 @@ - - + +
    -

    centos-jdk17-app

    安装 jdk

    #需要看cpu架构 x64
    uname -a
    cd ~
    mkdir iot-cloud-backend
    cd iot-cloud-backend
    wget https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.tar.gz
    tar -zxvf jdk-17_linux-x64_bin.tar.gz

    #需要看cpu架构 aarch64
    uname -a
    cd ~
    mkdir iot-cloud-backend
    cd iot-cloud-backend
    wget https://download.oracle.com/java/17/latest/jdk-17_linux-aarch64_bin.tar.gz
    tar -zxvf jdk-17_linux-aarch64_bin.tar.gz

    配置 java

    vim /etc/profile

    # 增加如下
    export JAVA_HOME=/root/iot-cloud-backend/jdk-17.0.8;
    export PATH=$JAVA_HOME/bin:$PATH;
    export CLASSPATH=.:$JAVA_HOME/lib;

    # 保存后
    source /etc/profile

    配置应用所需的环境变量

    vim ~/.bash_profile

    # 增加如下
    export IOT_MYSQL_HOST=127.0.0.1
    export IOT_MYSQL_PORT=13306
    # HIVEMQ_HOME=/Users/weic/Documents/GITREP/GITHUB/net-cloud-backend/hivemq
    export IOT_ALIYUN_KEY=xxx
    export IOT_ALIYUN_SECRET=xxx
    export IOT_SMS_REAL=0

    #保存后
    source /etc/profile

    创建 hivemq 文件夹

    mkdir -p /root/iot-cloud-backend/hivemq/embedded-config-folder
    mkdir -p /root/iot-cloud-backend/hivemq/embedded-data-folder
    mkdir -p /root/iot-cloud-backend/hivemq/embedded-extensions-folder
    # config下面有三个配置文件需要传过去

    启动应用

    # 启动
    java -jar application-0.0.1-SNAPSHOT.jar > iot-cloud-backend.log &

    启动脚本

    #!/bin/sh
    # 查找Java进程,并将结果保存到变量中
    java_pid=$(ps aux | grep java | grep application | grep -v grep | awk '{print $2}')

    if [ -n "$java_pid" ]; then
    echo "已存在 $java_pid"
    else
    java -jar application-0.0.1-SNAPSHOT.jar > net-cloud-backend.log &
    echo "启动中..."
    tail -f net-cloud-backend.log
    fi

    停止脚本

    #!/bin/sh

    # 查找Java进程,并将结果保存到变量中
    java_pid=$(ps aux | grep java | grep application | grep -v grep | awk '{print $2}')

    if [ -n "$java_pid" ]; then
    echo "正在终止Java进程 $java_pid"
    kill -9 $java_pid
    echo "Java进程已终止"
    else
    echo "未找到Java进程"
    fi
    - +

    centos-jdk17-app

    安装 jdk

    #需要看cpu架构 x64
    uname -a
    cd ~
    mkdir iot-cloud-backend
    cd iot-cloud-backend
    wget https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.tar.gz
    tar -zxvf jdk-17_linux-x64_bin.tar.gz

    #需要看cpu架构 aarch64
    uname -a
    cd ~
    mkdir iot-cloud-backend
    cd iot-cloud-backend
    wget https://download.oracle.com/java/17/latest/jdk-17_linux-aarch64_bin.tar.gz
    tar -zxvf jdk-17_linux-aarch64_bin.tar.gz

    配置 java

    vim /etc/profile

    # 增加如下
    export JAVA_HOME=/root/iot-cloud-backend/jdk-17.0.8;
    export PATH=$JAVA_HOME/bin:$PATH;
    export CLASSPATH=.:$JAVA_HOME/lib;

    # 保存后
    source /etc/profile

    配置应用所需的环境变量

    vim ~/.bash_profile

    # 增加如下
    export IOT_MYSQL_HOST=127.0.0.1
    export IOT_MYSQL_PORT=13306
    # HIVEMQ_HOME=/Users/weic/Documents/GITREP/GITHUB/net-cloud-backend/hivemq
    export IOT_ALIYUN_KEY=xxx
    export IOT_ALIYUN_SECRET=xxx
    export IOT_SMS_REAL=0

    #保存后
    source /etc/profile

    创建 hivemq 文件夹

    mkdir -p /root/iot-cloud-backend/hivemq/embedded-config-folder
    mkdir -p /root/iot-cloud-backend/hivemq/embedded-data-folder
    mkdir -p /root/iot-cloud-backend/hivemq/embedded-extensions-folder
    # config下面有三个配置文件需要传过去

    启动应用

    # 启动
    java -jar application-0.0.1-SNAPSHOT.jar > iot-cloud-backend.log &

    启动脚本

    #!/bin/sh
    # 查找Java进程,并将结果保存到变量中
    java_pid=$(ps aux | grep java | grep application | grep -v grep | awk '{print $2}')

    if [ -n "$java_pid" ]; then
    echo "已存在 $java_pid"
    else
    java -jar application-0.0.1-SNAPSHOT.jar > net-cloud-backend.log &
    echo "启动中..."
    tail -f net-cloud-backend.log
    fi

    停止脚本

    #!/bin/sh

    # 查找Java进程,并将结果保存到变量中
    java_pid=$(ps aux | grep java | grep application | grep -v grep | awk '{print $2}')

    if [ -n "$java_pid" ]; then
    echo "正在终止Java进程 $java_pid"
    kill -9 $java_pid
    echo "Java进程已终止"
    else
    echo "未找到Java进程"
    fi
    + \ No newline at end of file diff --git a/docs/study/devops/index.html b/docs/study/devops/index.html index b073f0c00..0bf1082e5 100644 --- a/docs/study/devops/index.html +++ b/docs/study/devops/index.html @@ -10,14 +10,14 @@ - - + + - +
    + \ No newline at end of file diff --git "a/docs/study/devops/jar\350\277\220\347\273\264-\347\233\221\346\216\247/index.html" "b/docs/study/devops/jar\350\277\220\347\273\264-\347\233\221\346\216\247/index.html" index 34fc1f29a..f52696c4f 100644 --- "a/docs/study/devops/jar\350\277\220\347\273\264-\347\233\221\346\216\247/index.html" +++ "b/docs/study/devops/jar\350\277\220\347\273\264-\347\233\221\346\216\247/index.html" @@ -10,8 +10,8 @@ - - + + @@ -28,8 +28,8 @@ l gcoldcapacity (老区大小) l gcpermcapacity (永久区大小) l gcutil (GC统计汇总) -l printcompilation (HotSpot编译统计)

    #
    jstat -gcutil 22573 5000

    参考

    1. jstat命令详解
    - +l printcompilation (HotSpot编译统计)

    #
    jstat -gcutil 22573 5000

    参考

    1. jstat命令详解
    + \ No newline at end of file diff --git "a/docs/study/devops/\351\223\276\350\267\257\350\277\275\350\270\252\347\233\221\346\216\247/index.html" "b/docs/study/devops/\351\223\276\350\267\257\350\277\275\350\270\252\347\233\221\346\216\247/index.html" index b87b0e243..87c75147e 100644 --- "a/docs/study/devops/\351\223\276\350\267\257\350\277\275\350\270\252\347\233\221\346\216\247/index.html" +++ "b/docs/study/devops/\351\223\276\350\267\257\350\277\275\350\270\252\347\233\221\346\216\247/index.html" @@ -10,14 +10,14 @@ - - + + - +
    + \ No newline at end of file diff --git a/docs/study/docker/Docker_Docker-compose/index.html b/docs/study/docker/Docker_Docker-compose/index.html index e3ed0f9c5..24dba46e1 100644 --- a/docs/study/docker/Docker_Docker-compose/index.html +++ b/docs/study/docker/Docker_Docker-compose/index.html @@ -10,14 +10,14 @@ - - + +
    -

    Docker_Docker-compose

    定义

    Docker是一个开源的容器引擎,它有助于更快地交付应用。方便快捷已经是 Docker的最大优势,过去需要用数天乃至数周的任务,在Docker容器的处理下,只需要数秒就能完成。

    为什么要用Docker

    1. 一致的运行环境:Docker 的镜像提供了除内核外完整的运行时环境,确保了应用运行环境一致性。
    2. 持续交付和部署:使用 Docker 可以通过定制应用镜像来实现持续集成、持续交付、部署。一次创建或配置,可以在任意地方正常运行。
    3. 更轻松的迁移:Docker 确保了执行环境的一致性,使得应用的迁移更加容易。Docker 可以在很多平台上运行,无论是物理机、虚拟机、公有云、私有云,甚至是笔记本,其运行结果是一致的。
    4. 更快速的启动时间:Docker 容器应用,由于直接运行于宿主内核,无需启动完整的操作系统,因此可以做到秒级、甚至毫秒级的启动时间。
    5. 更高效的利用系统资源:由于容器不需要进行硬件虚拟以及运行完整操作系统等额外开销,Docker 对系统资源的利用率更高。

    Docker基本组成

    1. 镜像(Images)
    2. 容器(Container)
    3. 镜像仓库(Registry)

    常用命令

    1. docker ps
    2. docker ps -a
    3. docker start xxx
    4. dcoker stop xxx
    5. docker rm xxx
    6. docker rmi xxx
    7. docker save -o ./xxx.tar xxx 导出镜像
    8. docker load -i xxx.tar 导入镜像
    9. docker logs
    10. docker inspect xxx 查看容器详细信息
    11. docker port xxx 列出或指定容器端口映射
    12. docker cp [dir] xxx:[dir]
    13. docker diff xxx 查看容器和镜像的差异
    14. docker kill 容器id 强制停止容器
    15. docker container logs 容器id:查看容器日志
    16. docker top 容器id:查看容器里的进程

    Docker Compose

    Docker Compose是 docker 提供的一个命令行工具,用来定义和运行由多个容器组成的应用。使用 compose,我们可以通过 YAML 文件声明式的定义应用程序的各个服务,并由单个命令完成应用的创建和启动。

    安装

    #需要先把python3和pip3安装好
    pip3 install docker-compose
    docker-compose --version

    常用命令

    1. docker-compose up -d   后台启动
    2. docker-compose ps/stop/start/restart/rm
    3. docker-compose scale service=num 设置指定服务运行的容器个数。通过service=num的参数来设置数量

    问题处理

    1. python安装pandas库出现 No module named ‘_lzma’
    2. docker 之网络配置
    3. Docker入门之docker-compose
    - +

    Docker_Docker-compose

    定义

    Docker是一个开源的容器引擎,它有助于更快地交付应用。方便快捷已经是 Docker的最大优势,过去需要用数天乃至数周的任务,在Docker容器的处理下,只需要数秒就能完成。

    为什么要用Docker

    1. 一致的运行环境:Docker 的镜像提供了除内核外完整的运行时环境,确保了应用运行环境一致性。
    2. 持续交付和部署:使用 Docker 可以通过定制应用镜像来实现持续集成、持续交付、部署。一次创建或配置,可以在任意地方正常运行。
    3. 更轻松的迁移:Docker 确保了执行环境的一致性,使得应用的迁移更加容易。Docker 可以在很多平台上运行,无论是物理机、虚拟机、公有云、私有云,甚至是笔记本,其运行结果是一致的。
    4. 更快速的启动时间:Docker 容器应用,由于直接运行于宿主内核,无需启动完整的操作系统,因此可以做到秒级、甚至毫秒级的启动时间。
    5. 更高效的利用系统资源:由于容器不需要进行硬件虚拟以及运行完整操作系统等额外开销,Docker 对系统资源的利用率更高。

    Docker基本组成

    1. 镜像(Images)
    2. 容器(Container)
    3. 镜像仓库(Registry)

    常用命令

    1. docker ps
    2. docker ps -a
    3. docker start xxx
    4. dcoker stop xxx
    5. docker rm xxx
    6. docker rmi xxx
    7. docker save -o ./xxx.tar xxx 导出镜像
    8. docker load -i xxx.tar 导入镜像
    9. docker logs
    10. docker inspect xxx 查看容器详细信息
    11. docker port xxx 列出或指定容器端口映射
    12. docker cp [dir] xxx:[dir]
    13. docker diff xxx 查看容器和镜像的差异
    14. docker kill 容器id 强制停止容器
    15. docker container logs 容器id:查看容器日志
    16. docker top 容器id:查看容器里的进程

    Docker Compose

    Docker Compose是 docker 提供的一个命令行工具,用来定义和运行由多个容器组成的应用。使用 compose,我们可以通过 YAML 文件声明式的定义应用程序的各个服务,并由单个命令完成应用的创建和启动。

    安装

    #需要先把python3和pip3安装好
    pip3 install docker-compose
    docker-compose --version

    常用命令

    1. docker-compose up -d   后台启动
    2. docker-compose ps/stop/start/restart/rm
    3. docker-compose scale service=num 设置指定服务运行的容器个数。通过service=num的参数来设置数量

    问题处理

    1. python安装pandas库出现 No module named ‘_lzma’
    2. docker 之网络配置
    3. Docker入门之docker-compose
    + \ No newline at end of file diff --git "a/docs/study/docker/Docker\347\232\204\344\275\277\347\224\250\346\200\273\347\273\223/index.html" "b/docs/study/docker/Docker\347\232\204\344\275\277\347\224\250\346\200\273\347\273\223/index.html" index 1e82eeee4..470119c6f 100644 --- "a/docs/study/docker/Docker\347\232\204\344\275\277\347\224\250\346\200\273\347\273\223/index.html" +++ "b/docs/study/docker/Docker\347\232\204\344\275\277\347\224\250\346\200\273\347\273\223/index.html" @@ -10,14 +10,14 @@ - - + +
    -

    Docker的使用总结

    1. Docker命令详解(run篇) 链接
    2. 搜索版本号 https://hub.docker.com
    3. 脚本搜索版本号 docker-tags
    4. Dcoker数据源,修改文件 /etc/docker/daemon.json

    {
    "registry-mirrors": ["https://registry.docker-cn.com","http://hub-mirror.c.163.com","https://docker.mirrors.ustc.edu.cn"]
    }


    常用命令大全

    1.png

    #获取某个docker容器的IP地址
    docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' container_name_or_id

    修改容器配置

    /var/lib/docker/containers/[hash_of_the_container]/hostconfig.json
    systemctl restart docker
    #此种方法 我试验了,貌似不行,有空再实验一下

    容器自动启动

    docker run  --restart=always 
    #no - 容器退出时,不重启容器;
    #on-failure - 只有在非0状态退出时才从新启动容器;
    #always - 无论退出状态是如何,都重启容器;
    #如果创建时未指定 --restart=always ,可通过update 命令
    docker update --restart=always xxx
    docker update --restart=always api
    docker update --restart=always redis
    docker update --restart=always es
    #
    docker update --restart=no es-xx.2

    安装

    #安装方式一
    yum install docker
    systemctl start docker

    jenkins



    docker pull jenkins

    #mkdir -p /mnt/docker/jenkins/jenkins_home
    mkdir -p ~/Documents/docker/jenkins/jenkins_home

    docker run --name jenkins -p 8080:8080 -p 50000:50000 -v ~/Documents/docker/jenkins/jenkins_home:/var/jenkins_home -d jenkins:latest


    #查看管理员密码
    docker logs jenkins


    nexus


    mkdir -p /mnt/docker/nexus/nexus-data
    mkdir -p ~/Documents/docker/nexus/nexus-data

    docker pull sonatype/nexus3


    docker run -d --name nexus3 \
    --restart=always \
    -p 8081:8081 \
    -p 8082:8082 \
    -p 8083:8083 \
    -p 8084:8084 \
    -p 8085:8085 \
    -v /mnt/docker/nexus/nexus-data:/nexus-data \
    sonatype/nexus3


    docker run -d --name nexus3 \
    --restart=always \
    -p 8081:8081 \
    -p 8082:8082 \
    -p 8083:8083 \
    -p 8084:8084 \
    -p 8085:8085 \
    -v ~/Documents/docker/nexus/nexus-data:/nexus-data \
    sonatype/nexus3

    容器时区问题

    # 创建容器的时候加上这个参数 会让容器采用宿主机的时区
    -v /etc/localtime:/etc/localtime

    查看和清除容器日志

    #
    ls -lh $(find /var/lib/docker/containers/ -name *-json.log)
    #
    truncate -s 0 /var/lib/docker/containers/*/*-json.log
    #用于查看Docker的磁盘使用情况
    docker system df
    #用于查看Docker的磁盘使用情况 详细情况
    docker system df -v
    #用于清理磁盘,删除关闭的容器、无用的数据卷和网络,以及dangling镜像(即无tag的镜像)
    docker system prune
    #清理得更加彻底,可以将没有容器使用Docker镜像都删掉。
    docker system prune -a

    参考1

    - +

    Docker的使用总结

    1. Docker命令详解(run篇) 链接
    2. 搜索版本号 https://hub.docker.com
    3. 脚本搜索版本号 docker-tags
    4. Dcoker数据源,修改文件 /etc/docker/daemon.json

    {
    "registry-mirrors": ["https://registry.docker-cn.com","http://hub-mirror.c.163.com","https://docker.mirrors.ustc.edu.cn"]
    }


    常用命令大全

    1.png

    #获取某个docker容器的IP地址
    docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' container_name_or_id

    修改容器配置

    /var/lib/docker/containers/[hash_of_the_container]/hostconfig.json
    systemctl restart docker
    #此种方法 我试验了,貌似不行,有空再实验一下

    容器自动启动

    docker run  --restart=always 
    #no - 容器退出时,不重启容器;
    #on-failure - 只有在非0状态退出时才从新启动容器;
    #always - 无论退出状态是如何,都重启容器;
    #如果创建时未指定 --restart=always ,可通过update 命令
    docker update --restart=always xxx
    docker update --restart=always api
    docker update --restart=always redis
    docker update --restart=always es
    #
    docker update --restart=no es-xx.2

    安装

    #安装方式一
    yum install docker
    systemctl start docker

    jenkins



    docker pull jenkins

    #mkdir -p /mnt/docker/jenkins/jenkins_home
    mkdir -p ~/Documents/docker/jenkins/jenkins_home

    docker run --name jenkins -p 8080:8080 -p 50000:50000 -v ~/Documents/docker/jenkins/jenkins_home:/var/jenkins_home -d jenkins:latest


    #查看管理员密码
    docker logs jenkins


    nexus


    mkdir -p /mnt/docker/nexus/nexus-data
    mkdir -p ~/Documents/docker/nexus/nexus-data

    docker pull sonatype/nexus3


    docker run -d --name nexus3 \
    --restart=always \
    -p 8081:8081 \
    -p 8082:8082 \
    -p 8083:8083 \
    -p 8084:8084 \
    -p 8085:8085 \
    -v /mnt/docker/nexus/nexus-data:/nexus-data \
    sonatype/nexus3


    docker run -d --name nexus3 \
    --restart=always \
    -p 8081:8081 \
    -p 8082:8082 \
    -p 8083:8083 \
    -p 8084:8084 \
    -p 8085:8085 \
    -v ~/Documents/docker/nexus/nexus-data:/nexus-data \
    sonatype/nexus3

    容器时区问题

    # 创建容器的时候加上这个参数 会让容器采用宿主机的时区
    -v /etc/localtime:/etc/localtime

    查看和清除容器日志

    #
    ls -lh $(find /var/lib/docker/containers/ -name *-json.log)
    #
    truncate -s 0 /var/lib/docker/containers/*/*-json.log
    #用于查看Docker的磁盘使用情况
    docker system df
    #用于查看Docker的磁盘使用情况 详细情况
    docker system df -v
    #用于清理磁盘,删除关闭的容器、无用的数据卷和网络,以及dangling镜像(即无tag的镜像)
    docker system prune
    #清理得更加彻底,可以将没有容器使用Docker镜像都删掉。
    docker system prune -a

    参考1

    + \ No newline at end of file diff --git a/docs/study/docker/docker-linux/index.html b/docs/study/docker/docker-linux/index.html index 64ce36156..59d44a10e 100644 --- a/docs/study/docker/docker-linux/index.html +++ b/docs/study/docker/docker-linux/index.html @@ -10,8 +10,8 @@ - - + + @@ -54,8 +54,8 @@ WORKDIR /root/iot-cloud-backend ADD jdk-17_linux-x64_bin.tar.gz /root/iot-cloud-backend/ ENV JAVA_HOME=/root/iot-cloud-backend/jdk-17.0.8 -ENV PATH=$JAVA_HOME/bin:$PATH

    docker build -t jdk17:jiot.cloud .

    docker run -it jdk17:jiot.cloud /bin/sh

    - +ENV PATH=$JAVA_HOME/bin:$PATH

    docker build -t jdk17:jiot.cloud .

    docker run -it jdk17:jiot.cloud /bin/sh

    + \ No newline at end of file diff --git a/docs/study/docker/docker-mysql/index.html b/docs/study/docker/docker-mysql/index.html index b07c043c7..002609cb4 100644 --- a/docs/study/docker/docker-mysql/index.html +++ b/docs/study/docker/docker-mysql/index.html @@ -10,14 +10,14 @@ - - + +
    -

    docker-mysql

    # 如果还没安装docker服务的话(centos)
    yum install docker
    # 如果还没启动docker服务的话
    systemctl start docker
    #
    docker pull mysql:8.0.33
    # 纯粹学习使用
    docker run -d \
    -p 13306:3306 \
    --privileged=true \
    -e TZ=Asia/Shanghai \
    -e MYSQL_ROOT_PASSWORD=Aa0123 \
    --name mysql-study \
    mysql:8.0.33


    docker exec -it mysql-study bash

    mysql -u root -p

    use mysql
    update user set authentication_string ='' where user = 'root';
    flush privileges;
    ALTER user 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'Aa0123';
    ALTER user 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Aa0123';
    flush privileges;


    docker stop mysql-study
    docker rm mysql-study
    - +

    docker-mysql

    # 如果还没安装docker服务的话(centos)
    yum install docker
    # 如果还没启动docker服务的话
    systemctl start docker
    #
    docker pull mysql:8.0.33
    # 纯粹学习使用
    docker run -d \
    -p 13306:3306 \
    --privileged=true \
    -e TZ=Asia/Shanghai \
    -e MYSQL_ROOT_PASSWORD=Aa0123 \
    --name mysql-study \
    mysql:8.0.33


    docker exec -it mysql-study bash

    mysql -u root -p

    use mysql
    update user set authentication_string ='' where user = 'root';
    flush privileges;
    ALTER user 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'Aa0123';
    ALTER user 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Aa0123';
    flush privileges;


    docker stop mysql-study
    docker rm mysql-study
    + \ No newline at end of file diff --git a/docs/study/docker/docker-nginx/index.html b/docs/study/docker/docker-nginx/index.html index 524bf8876..0c8a30d2a 100644 --- a/docs/study/docker/docker-nginx/index.html +++ b/docs/study/docker/docker-nginx/index.html @@ -10,14 +10,14 @@ - - + + - +
    + \ No newline at end of file diff --git a/docs/study/docker/index.html b/docs/study/docker/index.html index 826c0155d..92d7032c3 100644 --- a/docs/study/docker/index.html +++ b/docs/study/docker/index.html @@ -10,14 +10,14 @@ - - + +
    -

    概述

    一种虚拟技术。

    windows/linux docker

    • windows docker 宿主机 可以运行 windows 和 linux 容器;
    • linux docker 宿主机只能运行 linux 容器;
    • windows 宿主机可以运行 linux 容器的原因是: windows 在后台创建了一个 Linux 子系统(WSL),因此 Linux 容器仍在 Linux 上运行;
    - +

    概述

    一种虚拟技术。

    windows/linux docker

    • windows docker 宿主机 可以运行 windows 和 linux 容器;
    • linux docker 宿主机只能运行 linux 容器;
    • windows 宿主机可以运行 linux 容器的原因是: windows 在后台创建了一个 Linux 子系统(WSL),因此 Linux 容器仍在 Linux 上运行;
    + \ No newline at end of file diff --git a/docs/study/encryption/SSL_TLS/index.html b/docs/study/encryption/SSL_TLS/index.html index 5d40e0805..c11b6198a 100644 --- a/docs/study/encryption/SSL_TLS/index.html +++ b/docs/study/encryption/SSL_TLS/index.html @@ -10,14 +10,14 @@ - - + +
    -

    SSL TLS HTTPS

    为了保证网络通信的安全性,需要对网络上传递的数据进行加密。现在主流的加密方法就是 SSL (Secure Socket Layer),TLS (Transport Layer Security)。后者比前者要新一些,不过在很多场合还是用 SSL 指代 SSL 和 TLS。

    SSL/TLS

    SSL(Secure Socket Layer)是指安全套接字层,简而言之,它是一项标准技术,可确保互联网连接安全,保护两个系统之间发送的任何敏感数据,防止网络犯罪分子读取和修改任何传输信息,包括个人资料。TLS(Transport Layer Security,传输层安全)是更为安全的升级版 SSL。

    TLS 1.0 版实际上最初作为 SSL 3.1 版开发,HTTPS 是在 HTTP 协议基础上实施 TLS 加密,所有网站以及其他部分 web 服务都使用该协议。因此,任何使用 HTTPS 的网站都使用 TLS 加密。不同版本的 TLS 协议内容约定不一样,这也会给 HTTPS 建立连接时需要握手协商的信息造成差异。

    TLS 已经完全的代替掉 SSL 了,所以只推荐 TLS;目前的 SSL 证书许可,下发的其实都是 SSL/TLS 证书。

    HTTP 是超文本传输协议,信息是明文传输;HTTPS,也称作 HTTP over TLS,则是具有安全性的 SSL 加密传输协议。

    HTTPS 协议需要到证书颁发机构 (Certificate Authority,简称 CA)申请证书,通过数字证书管理服务完成证书购买、申请,并将证书部署到您的 Web 服务器后,Web 服务将会通过 HTTPS 加密协议来传输数据。

    参考

    - +

    SSL TLS HTTPS

    为了保证网络通信的安全性,需要对网络上传递的数据进行加密。现在主流的加密方法就是 SSL (Secure Socket Layer),TLS (Transport Layer Security)。后者比前者要新一些,不过在很多场合还是用 SSL 指代 SSL 和 TLS。

    SSL/TLS

    SSL(Secure Socket Layer)是指安全套接字层,简而言之,它是一项标准技术,可确保互联网连接安全,保护两个系统之间发送的任何敏感数据,防止网络犯罪分子读取和修改任何传输信息,包括个人资料。TLS(Transport Layer Security,传输层安全)是更为安全的升级版 SSL。

    TLS 1.0 版实际上最初作为 SSL 3.1 版开发,HTTPS 是在 HTTP 协议基础上实施 TLS 加密,所有网站以及其他部分 web 服务都使用该协议。因此,任何使用 HTTPS 的网站都使用 TLS 加密。不同版本的 TLS 协议内容约定不一样,这也会给 HTTPS 建立连接时需要握手协商的信息造成差异。

    TLS 已经完全的代替掉 SSL 了,所以只推荐 TLS;目前的 SSL 证书许可,下发的其实都是 SSL/TLS 证书。

    HTTP 是超文本传输协议,信息是明文传输;HTTPS,也称作 HTTP over TLS,则是具有安全性的 SSL 加密传输协议。

    HTTPS 协议需要到证书颁发机构 (Certificate Authority,简称 CA)申请证书,通过数字证书管理服务完成证书购买、申请,并将证书部署到您的 Web 服务器后,Web 服务将会通过 HTTPS 加密协议来传输数据。

    参考

    + \ No newline at end of file diff --git a/docs/study/encryption/index.html b/docs/study/encryption/index.html index c9288e6cc..0383cd51f 100644 --- a/docs/study/encryption/index.html +++ b/docs/study/encryption/index.html @@ -10,14 +10,14 @@ - - + +
    -

    加解密

    加密和解密

    加密是以某种特定的算法,改变原有的数据信息,使得未授权的用户即使获得了加密后的数据,但因不知解密的方法(确切的说是不知道密钥),仍然无法了解其信息内容。而解密则是加密的逆过程。

    明文和密文

    我们称尚未加密的数据为明文,通过固定算法加密后的数据为密文。

    加密的密钥

    密钥是一种参数,它是在明文转换为密文或密文转换为明文时算法的输入参数。可以理解成密码的钥匙。

    对称与非对称

    对称加密

    对称加密算法中,数据发送方将明文和密钥一起经过特殊加密算法处理成密文后,将它发送出去。接收方收到密文后,若想解读原文,则需要使用加密用到的相同密钥及相同算法的逆算法对密文进行解密,才能使其恢复成原文。

    它的最大优势是加/解密速度快,适用于大数据量进行加密,缺点是密钥管理困难,最典型的问题就是如何同步这个密钥,同步过程如果在公网上,不进行加密是可以抓包拿到的,那么这里就遇到了要对密钥加密的问题。

    常见的对称加密算法有 AES、DES、Blowfish 等等。

    对称加密的核心是只有一把密钥。

    非对称加密

    非对称加密算法中,有两个密钥:公钥和私钥。它们是一对,如果用公钥进行加密,只有用对应的私钥才能解密;如果用私钥进行加密,只有用对应的公钥才能解密。

    非对称加密算法实现机密信息的交换过程为:甲方生成一对密钥并将其中一个作为公钥向其他方公开;得到该公钥的乙方使用该密钥对机密信息进行加密后发送给甲方;甲方再用自己的另一个专用密钥对加密后的信息进行解密。

    最有名的非对称加密算法当属 RSA 了,本文将对 RSA 算法的加/解密过程进行详细剖析。

    非对称加密拥有两把密钥。

    - +

    加解密

    加密和解密

    加密是以某种特定的算法,改变原有的数据信息,使得未授权的用户即使获得了加密后的数据,但因不知解密的方法(确切的说是不知道密钥),仍然无法了解其信息内容。而解密则是加密的逆过程。

    明文和密文

    我们称尚未加密的数据为明文,通过固定算法加密后的数据为密文。

    加密的密钥

    密钥是一种参数,它是在明文转换为密文或密文转换为明文时算法的输入参数。可以理解成密码的钥匙。

    对称与非对称

    对称加密

    对称加密算法中,数据发送方将明文和密钥一起经过特殊加密算法处理成密文后,将它发送出去。接收方收到密文后,若想解读原文,则需要使用加密用到的相同密钥及相同算法的逆算法对密文进行解密,才能使其恢复成原文。

    它的最大优势是加/解密速度快,适用于大数据量进行加密,缺点是密钥管理困难,最典型的问题就是如何同步这个密钥,同步过程如果在公网上,不进行加密是可以抓包拿到的,那么这里就遇到了要对密钥加密的问题。

    常见的对称加密算法有 AES、DES、Blowfish 等等。

    对称加密的核心是只有一把密钥。

    非对称加密

    非对称加密算法中,有两个密钥:公钥和私钥。它们是一对,如果用公钥进行加密,只有用对应的私钥才能解密;如果用私钥进行加密,只有用对应的公钥才能解密。

    非对称加密算法实现机密信息的交换过程为:甲方生成一对密钥并将其中一个作为公钥向其他方公开;得到该公钥的乙方使用该密钥对机密信息进行加密后发送给甲方;甲方再用自己的另一个专用密钥对加密后的信息进行解密。

    最有名的非对称加密算法当属 RSA 了,本文将对 RSA 算法的加/解密过程进行详细剖析。

    非对称加密拥有两把密钥。

    + \ No newline at end of file diff --git "a/docs/study/fe/ARMS\345\211\215\347\253\257\347\233\221\346\216\247/index.html" "b/docs/study/fe/ARMS\345\211\215\347\253\257\347\233\221\346\216\247/index.html" index 6420d6c1b..98bec4310 100644 --- "a/docs/study/fe/ARMS\345\211\215\347\253\257\347\233\221\346\216\247/index.html" +++ "b/docs/study/fe/ARMS\345\211\215\347\253\257\347\233\221\346\216\247/index.html" @@ -10,14 +10,14 @@ - - + +
    -

    ARMS前端监控

    ARMS前端监控专注于对Web场景、Weex场景和小程序场景的监控,从页面打开速度(测速)、页面稳定性(JS诊断错误)和外部服务调用成功率(API)这三个方面监测Web和小程序页面的健康度。

    为什么要有前端监控?

    用户访问您的业务时,整个访问过程大致可以分为三个阶段:页面生产时(服务器端状态)、页面加载时和页面运行时。

    为了保证线上业务稳定运行,我们会在服务器端对业务的运行状态进行各种监控。现有的服务器端监控系统相对已经很成熟,而页面加载和页面运行时的状态监控一直比较欠缺。例如:

    • 无法第一时间获知用户访问您的站点时遇到的错误。
    • 各个国家、各个地区的用户访问您的站点的真实速度未知。
    • 每个应用内有大量的异步数据调用,而它们的性能、成功率都是未知的。

    我们的解决方案

    ARMS前端监控重点监控页面的加载过程和运行时状态,同时将页面加载性能、运行时异常以及API调用状态和耗时等数据,上报到日志服务器。之后借助ARMS提供的海量实时日志分析和处理服务,对当前线上所有真实用户的访问情况进行监控。最后通过直观的报表展示,帮助您及时发现并诊断问题。

    参考

    - +

    ARMS前端监控

    ARMS前端监控专注于对Web场景、Weex场景和小程序场景的监控,从页面打开速度(测速)、页面稳定性(JS诊断错误)和外部服务调用成功率(API)这三个方面监测Web和小程序页面的健康度。

    为什么要有前端监控?

    用户访问您的业务时,整个访问过程大致可以分为三个阶段:页面生产时(服务器端状态)、页面加载时和页面运行时。

    为了保证线上业务稳定运行,我们会在服务器端对业务的运行状态进行各种监控。现有的服务器端监控系统相对已经很成熟,而页面加载和页面运行时的状态监控一直比较欠缺。例如:

    • 无法第一时间获知用户访问您的站点时遇到的错误。
    • 各个国家、各个地区的用户访问您的站点的真实速度未知。
    • 每个应用内有大量的异步数据调用,而它们的性能、成功率都是未知的。

    我们的解决方案

    ARMS前端监控重点监控页面的加载过程和运行时状态,同时将页面加载性能、运行时异常以及API调用状态和耗时等数据,上报到日志服务器。之后借助ARMS提供的海量实时日志分析和处理服务,对当前线上所有真实用户的访问情况进行监控。最后通过直观的报表展示,帮助您及时发现并诊断问题。

    参考

    + \ No newline at end of file diff --git "a/docs/study/fe/Flutter\345\274\200\345\217\221\351\227\256\351\242\230\350\256\260\345\275\225/index.html" "b/docs/study/fe/Flutter\345\274\200\345\217\221\351\227\256\351\242\230\350\256\260\345\275\225/index.html" index b672592f8..f8d8f85aa 100644 --- "a/docs/study/fe/Flutter\345\274\200\345\217\221\351\227\256\351\242\230\350\256\260\345\275\225/index.html" +++ "b/docs/study/fe/Flutter\345\274\200\345\217\221\351\227\256\351\242\230\350\256\260\345\275\225/index.html" @@ -10,16 +10,16 @@ - - + +

    Flutter开发问题记录

    记录 Flutter 开发的一些问题、经验

    Mac 如何安装老版本的 Android 模拟器

    因为特殊原因,我的老 Mac 电脑无法升级,最新的安卓模拟器启动不起来,可以到这里下载老的模拟器,并手动安装模拟器下载归档

    flutter windows

    基于 Flutter 实现 Windows 平台离线大模型对话应用实战

    ffi插件

    flutter create -t plugin_ffi --platforms macos,windows,android,ios p2psdk

    android使用gradle构建 ios和macos使用xcode通过CocoaPods构建 -linux和windows通过cmake构建

    绑定本地原生代码

    - +linux和windows通过cmake构建

    绑定本地原生代码

    + \ No newline at end of file diff --git "a/docs/study/fe/TypeScript\350\257\255\346\263\225\345\233\276/index.html" "b/docs/study/fe/TypeScript\350\257\255\346\263\225\345\233\276/index.html" index 589fe0ebf..8ebfc7693 100644 --- "a/docs/study/fe/TypeScript\350\257\255\346\263\225\345\233\276/index.html" +++ "b/docs/study/fe/TypeScript\350\257\255\346\263\225\345\233\276/index.html" @@ -10,14 +10,14 @@ - - + + - +
    + \ No newline at end of file diff --git a/docs/study/fe/WebGL/index.html b/docs/study/fe/WebGL/index.html index 98241f6a0..b52b55ffd 100644 --- a/docs/study/fe/WebGL/index.html +++ b/docs/study/fe/WebGL/index.html @@ -10,14 +10,14 @@ - - + +
    -

    WebGL

    概述

    WebGL(全写 Web Graphics Library)是一种 3D 绘图协议,这种绘图技术标准允许把 JavaScript 和 OpenGL ES 2.0 结合在一起,通过增加 OpenGL ES 2.0 的一个 JavaScript 绑定,WebGL 可以为 HTML5 Canvas 提供硬件 3D 加速渲染,这样 Web 开发人员就可以借助系统显卡来在浏览器里更流畅地展示 3D 场景和模型了,还能创建复杂的导航和数据视觉化。显然,WebGL 技术标准免去了开发网页专用渲染插件的麻烦,可被用于创建具有复杂 3D 结构的网站页面,甚至可以用来设计 3D 网页游戏等等。

    WebGL1.0 基于 OpenGL ES 2.0,并提供了 3D 图形的 API。它使用 HTML5Canvas 并允许利用文档对象模型接口。WebGL 2.0 基于 OpenGL ES 3.0,确保了提供许多选择性的 WebGL 1.0 扩展,并引入新的 API。可利用部分 Javascript 实现自动存储器管理。

    webgl 和 threejs 区别

    WebGL 和 Three.js 都是用于在浏览器中进行 3D 图形渲染的技术,但它们的用途和实现方式有所不同。

    WebGL 是一个 JavaScript API,它允许开发者在不依赖外部插件的情况下,利用浏览器的 GPU 能力,实现在线交互式 2D 和 3D 网页效果。WebGL 的工作原理是在 GPU 上执行着色器语言(GLSL),这是一种强类型的编程语言,与 C/C++类似。WebGL 的核心功能包括顶点和片元的着色器,分别负责计算顶点和像素的颜色值。它的工作流程主要包括将顶点从模型空间转换到裁剪空间,然后基于这些信息绘制像素点。

    Three.js 则是一个开源的 JavaScript 库,它提供了许多预制的对象和函数,以简化 3D 开发的复杂性。Three.js 封装了 WebGL 的功能,并提供了一系列方便的工具和方法,如摄像机、灯光、几何形状等。它可以单独使用也可以与其他库结合使用。Three.js 的设计目的是让开发者能够快速地构建三维场景和应用,而无需手动编写大量的 WebGL 代码。

    总结来说,WebGL 是浏览器内置的标准 API,主要用于实现 3D 图形的基本操作;而 Three.js 是一个更高级别的库,它包含了 WebGL 的功能和一些额外的工具和算法,旨在简化 3D 开发的任务。

    学习、个人发展

    学习他需要计算机图形学知识、扎实的数学功底、丰富的空间想象力。你需要面对很多问题,比如中文文档不丰富、低封装度的引擎和框架、全新的上下游工具链、难以理解的数学、古怪和难以调试的 gl 语言、奇奇怪怪专业文件格式、各种各样的专业领域知识,等等等等……

    除了可以使用 js 编程以外,跟传统的 web 前端开发几乎毫无关系。

    - +

    WebGL

    概述

    WebGL(全写 Web Graphics Library)是一种 3D 绘图协议,这种绘图技术标准允许把 JavaScript 和 OpenGL ES 2.0 结合在一起,通过增加 OpenGL ES 2.0 的一个 JavaScript 绑定,WebGL 可以为 HTML5 Canvas 提供硬件 3D 加速渲染,这样 Web 开发人员就可以借助系统显卡来在浏览器里更流畅地展示 3D 场景和模型了,还能创建复杂的导航和数据视觉化。显然,WebGL 技术标准免去了开发网页专用渲染插件的麻烦,可被用于创建具有复杂 3D 结构的网站页面,甚至可以用来设计 3D 网页游戏等等。

    WebGL1.0 基于 OpenGL ES 2.0,并提供了 3D 图形的 API。它使用 HTML5Canvas 并允许利用文档对象模型接口。WebGL 2.0 基于 OpenGL ES 3.0,确保了提供许多选择性的 WebGL 1.0 扩展,并引入新的 API。可利用部分 Javascript 实现自动存储器管理。

    webgl 和 threejs 区别

    WebGL 和 Three.js 都是用于在浏览器中进行 3D 图形渲染的技术,但它们的用途和实现方式有所不同。

    WebGL 是一个 JavaScript API,它允许开发者在不依赖外部插件的情况下,利用浏览器的 GPU 能力,实现在线交互式 2D 和 3D 网页效果。WebGL 的工作原理是在 GPU 上执行着色器语言(GLSL),这是一种强类型的编程语言,与 C/C++类似。WebGL 的核心功能包括顶点和片元的着色器,分别负责计算顶点和像素的颜色值。它的工作流程主要包括将顶点从模型空间转换到裁剪空间,然后基于这些信息绘制像素点。

    Three.js 则是一个开源的 JavaScript 库,它提供了许多预制的对象和函数,以简化 3D 开发的复杂性。Three.js 封装了 WebGL 的功能,并提供了一系列方便的工具和方法,如摄像机、灯光、几何形状等。它可以单独使用也可以与其他库结合使用。Three.js 的设计目的是让开发者能够快速地构建三维场景和应用,而无需手动编写大量的 WebGL 代码。

    总结来说,WebGL 是浏览器内置的标准 API,主要用于实现 3D 图形的基本操作;而 Three.js 是一个更高级别的库,它包含了 WebGL 的功能和一些额外的工具和算法,旨在简化 3D 开发的任务。

    学习、个人发展

    学习他需要计算机图形学知识、扎实的数学功底、丰富的空间想象力。你需要面对很多问题,比如中文文档不丰富、低封装度的引擎和框架、全新的上下游工具链、难以理解的数学、古怪和难以调试的 gl 语言、奇奇怪怪专业文件格式、各种各样的专业领域知识,等等等等……

    除了可以使用 js 编程以外,跟传统的 web 前端开发几乎毫无关系。

    + \ No newline at end of file diff --git a/docs/study/fe/index.html b/docs/study/fe/index.html index 45722e826..f54db2cf1 100644 --- a/docs/study/fe/index.html +++ b/docs/study/fe/index.html @@ -10,14 +10,14 @@ - - + + - +
    + \ No newline at end of file diff --git a/docs/study/fe/mqtt.js/index.html b/docs/study/fe/mqtt.js/index.html index 0ab4f2c19..676c29a57 100644 --- a/docs/study/fe/mqtt.js/index.html +++ b/docs/study/fe/mqtt.js/index.html @@ -10,14 +10,14 @@ - - + + - +
    + \ No newline at end of file diff --git "a/docs/study/fe/\344\270\213\350\275\275\345\233\276\347\211\207/index.html" "b/docs/study/fe/\344\270\213\350\275\275\345\233\276\347\211\207/index.html" index d5877b460..089861f21 100644 --- "a/docs/study/fe/\344\270\213\350\275\275\345\233\276\347\211\207/index.html" +++ "b/docs/study/fe/\344\270\213\350\275\275\345\233\276\347\211\207/index.html" @@ -10,14 +10,14 @@ - - + +
    -

    下载图片

    function download(src, name) {
    var $a = document.createElement("a");
    $a.setAttribute("href", src);
    $a.setAttribute("download", name);
    var evObj = document.createEvent("MouseEvents");
    evObj.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, true, false, 0, null);
    $a.dispatchEvent(evObj);
    }
    document.querySelectorAll(".wrap-card:nth-child(15) img.icon").forEach((item, i) => {
    if (i >= 120 && i < 130) {
    console.log(item.src);
    download(item.src, item.src.split("/").slice(-1)[0]);
    }
    });
    document.querySelectorAll(".chart img").forEach((item, i) => {
    console.log(i);
    if (i >= 30 && i < 40) {
    console.log(item.src);
    download(item.src, item.src.split("/").slice(-1)[0]);
    }
    });
    - +

    下载图片

    function download(src, name) {
    var $a = document.createElement("a");
    $a.setAttribute("href", src);
    $a.setAttribute("download", name);
    var evObj = document.createEvent("MouseEvents");
    evObj.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, true, false, 0, null);
    $a.dispatchEvent(evObj);
    }
    document.querySelectorAll(".wrap-card:nth-child(15) img.icon").forEach((item, i) => {
    if (i >= 120 && i < 130) {
    console.log(item.src);
    download(item.src, item.src.split("/").slice(-1)[0]);
    }
    });
    document.querySelectorAll(".chart img").forEach((item, i) => {
    console.log(i);
    if (i >= 30 && i < 40) {
    console.log(item.src);
    download(item.src, item.src.split("/").slice(-1)[0]);
    }
    });
    + \ No newline at end of file diff --git "a/docs/study/fe/\344\275\216\344\273\243\347\240\201\345\217\257\350\247\206\345\214\226\345\271\263\345\217\260/index.html" "b/docs/study/fe/\344\275\216\344\273\243\347\240\201\345\217\257\350\247\206\345\214\226\345\271\263\345\217\260/index.html" index 337aac4ed..f99e1fb7a 100644 --- "a/docs/study/fe/\344\275\216\344\273\243\347\240\201\345\217\257\350\247\206\345\214\226\345\271\263\345\217\260/index.html" +++ "b/docs/study/fe/\344\275\216\344\273\243\347\240\201\345\217\257\350\247\206\345\214\226\345\271\263\345\217\260/index.html" @@ -10,14 +10,14 @@ - - + + - +
    + \ No newline at end of file diff --git "a/docs/study/fe/\345\211\215\347\253\257\346\250\241\345\235\227\345\214\226/index.html" "b/docs/study/fe/\345\211\215\347\253\257\346\250\241\345\235\227\345\214\226/index.html" index 2a6d819cd..9a1bb2e20 100644 --- "a/docs/study/fe/\345\211\215\347\253\257\346\250\241\345\235\227\345\214\226/index.html" +++ "b/docs/study/fe/\345\211\215\347\253\257\346\250\241\345\235\227\345\214\226/index.html" @@ -10,14 +10,14 @@ - - + +
    -

    前端模块化

    背景

    为什么前端会有这么多模块化方案?主要原因就是ES5及之前是不支持模块化的。

    模块化方案

    IIFE

    IIFE,全称是 Immediately Invoked Function Expression,“立即执行函数”的意思。如果要实现模块化,就需要在 IIFE 中,把代码挂载在全局变量上。

    这也是早期 JavaScript 的模块化方案,根据不同环境,把模块全部挂载在对应环境的全局变量上,浏览器就挂载在“window”对象上,Node.js 就挂载在 global 全局变量上。

    CommonJS[CJS]

    CJS,全称是 CommonJS 模块化规范,目前用的比较广泛是在 Node.js 环境里,因为 Node.js 刚诞生的时候,模块化方案是基于 CommonJS 规范来实现的,而且,CJS 规范也是在 ES6 草案确定之前诞生的、兼容 ES5 的环境。

    AMD

    AMD,全称是 Asynchronous Module Definition,“异步模块定义”,是一种面向浏览器运行的模块化方案。

    AMD 在 ES6 还没出现之前,是 ES5 环境下常见用的模块化方案。这里提到的“异步模块”,是指按模块的依赖来异步加载 AMD 模块,等待依赖模块异步加载完,就开始执行主体代码。全程的运行时执行过程,都是基于 ES5 的语法能力来实现的。但是,AMD 只是一种技术方案,也就是规范,具体技术实现需要根据规范,实现其运行时。目前主流的 AMD 技术框架有 RequireJS。

    CMD

    UMD

    ES6 Modules【ESM】【ES6M】

    export需要注意ES6 module是向外抛的值的引用,是引用。(这和CommonJS模块不一样,CommonJS是向外抛的值的拷贝)

    export语句输出的接口,与其对应的值是动态绑定关系,即通过该接口,可以取到模块内部实时的值。这一点与 CommonJS 规范完全不同。CommonJS 模块输出的是值的缓存,不存在动态更新。

    export命令可以出现在模块的任何位置,只要处于模块顶层就可以。如果处于块级作用域内,就会报错,import命令也是如此。这是因为处于条件代码块之中,就没法做静态优化了,违背了 ES6 模块的设计初衷【静态编译】。

    参考

    1. 前端工程化:CommonJS、AMD、CMD、UMD和ES Modules的区别
    - +

    前端模块化

    背景

    为什么前端会有这么多模块化方案?主要原因就是ES5及之前是不支持模块化的。

    模块化方案

    IIFE

    IIFE,全称是 Immediately Invoked Function Expression,“立即执行函数”的意思。如果要实现模块化,就需要在 IIFE 中,把代码挂载在全局变量上。

    这也是早期 JavaScript 的模块化方案,根据不同环境,把模块全部挂载在对应环境的全局变量上,浏览器就挂载在“window”对象上,Node.js 就挂载在 global 全局变量上。

    CommonJS[CJS]

    CJS,全称是 CommonJS 模块化规范,目前用的比较广泛是在 Node.js 环境里,因为 Node.js 刚诞生的时候,模块化方案是基于 CommonJS 规范来实现的,而且,CJS 规范也是在 ES6 草案确定之前诞生的、兼容 ES5 的环境。

    AMD

    AMD,全称是 Asynchronous Module Definition,“异步模块定义”,是一种面向浏览器运行的模块化方案。

    AMD 在 ES6 还没出现之前,是 ES5 环境下常见用的模块化方案。这里提到的“异步模块”,是指按模块的依赖来异步加载 AMD 模块,等待依赖模块异步加载完,就开始执行主体代码。全程的运行时执行过程,都是基于 ES5 的语法能力来实现的。但是,AMD 只是一种技术方案,也就是规范,具体技术实现需要根据规范,实现其运行时。目前主流的 AMD 技术框架有 RequireJS。

    CMD

    UMD

    ES6 Modules【ESM】【ES6M】

    export需要注意ES6 module是向外抛的值的引用,是引用。(这和CommonJS模块不一样,CommonJS是向外抛的值的拷贝)

    export语句输出的接口,与其对应的值是动态绑定关系,即通过该接口,可以取到模块内部实时的值。这一点与 CommonJS 规范完全不同。CommonJS 模块输出的是值的缓存,不存在动态更新。

    export命令可以出现在模块的任何位置,只要处于模块顶层就可以。如果处于块级作用域内,就会报错,import命令也是如此。这是因为处于条件代码块之中,就没法做静态优化了,违背了 ES6 模块的设计初衷【静态编译】。

    参考

    1. 前端工程化:CommonJS、AMD、CMD、UMD和ES Modules的区别
    + \ No newline at end of file diff --git a/docs/study/hard/index.html b/docs/study/hard/index.html index 7b24693dc..bce845265 100644 --- a/docs/study/hard/index.html +++ b/docs/study/hard/index.html @@ -10,14 +10,14 @@ - - + + - +
    + \ No newline at end of file diff --git "a/docs/study/hard/\345\265\214\345\205\245\345\274\217_\345\215\225\347\211\207\346\234\272/index.html" "b/docs/study/hard/\345\265\214\345\205\245\345\274\217_\345\215\225\347\211\207\346\234\272/index.html" index 624b1cd9a..a21dbeb18 100644 --- "a/docs/study/hard/\345\265\214\345\205\245\345\274\217_\345\215\225\347\211\207\346\234\272/index.html" +++ "b/docs/study/hard/\345\265\214\345\205\245\345\274\217_\345\215\225\347\211\207\346\234\272/index.html" @@ -10,14 +10,14 @@ - - + +
    -

    嵌入式_单片机

    嵌入式和单片机的区别到底是什么。

    从前文的介绍来看,嵌入式系统是一个大类,单片机是其中一个重要的子类。嵌入式系统像是一个完整的计算机,而单片机更像是一个没有外设的计算机。

    以前单片机包括的东西并不算多,两者的硬件区别较为明显。但是,随着半导体技术的突飞猛进,现在各种硬件功能都能被做进单片机之中。所以,嵌入式系统和单片机之间的硬件区别越来越小,分界线也越来越模糊。

    于是,人们倾向于在软件上进行区分。

    从软件上,行业里经常把芯片中不带MMU(memory management unit,内存管理单元)从而不支持虚拟地址,只能裸奔或运行RTOS(实时操作系统,例如ucos、华为LiteOS、RT-Thread、freertos等)的system,叫做单片机(如STM32、NXP LPC系列、NXP imxRT1052系列等)。而把芯片自带MMU可以支持虚拟地址,能够跑Linux、Vxworks、WinCE、Android这样的“高级”操作系统的system,叫做嵌入式。

    在某些时候,单片机本身已经足够强大,可以作为嵌入式系统使用。它的成本更低,开发和维护的难度相对较小,尤其是针对一些针对性更强的应用。而嵌入式系统理论上性能更强,应用更广泛,但复杂度高,开发难度大。

    参考

    1. 到底什么是嵌入式?什么是单片机?
    - +

    嵌入式_单片机

    嵌入式和单片机的区别到底是什么。

    从前文的介绍来看,嵌入式系统是一个大类,单片机是其中一个重要的子类。嵌入式系统像是一个完整的计算机,而单片机更像是一个没有外设的计算机。

    以前单片机包括的东西并不算多,两者的硬件区别较为明显。但是,随着半导体技术的突飞猛进,现在各种硬件功能都能被做进单片机之中。所以,嵌入式系统和单片机之间的硬件区别越来越小,分界线也越来越模糊。

    于是,人们倾向于在软件上进行区分。

    从软件上,行业里经常把芯片中不带MMU(memory management unit,内存管理单元)从而不支持虚拟地址,只能裸奔或运行RTOS(实时操作系统,例如ucos、华为LiteOS、RT-Thread、freertos等)的system,叫做单片机(如STM32、NXP LPC系列、NXP imxRT1052系列等)。而把芯片自带MMU可以支持虚拟地址,能够跑Linux、Vxworks、WinCE、Android这样的“高级”操作系统的system,叫做嵌入式。

    在某些时候,单片机本身已经足够强大,可以作为嵌入式系统使用。它的成本更低,开发和维护的难度相对较小,尤其是针对一些针对性更强的应用。而嵌入式系统理论上性能更强,应用更广泛,但复杂度高,开发难度大。

    参考

    1. 到底什么是嵌入式?什么是单片机?
    + \ No newline at end of file diff --git "a/docs/study/hard/\347\241\254\344\273\266\345\274\200\345\217\221\345\222\214\345\265\214\345\205\245\345\274\217\345\274\200\345\217\221/index.html" "b/docs/study/hard/\347\241\254\344\273\266\345\274\200\345\217\221\345\222\214\345\265\214\345\205\245\345\274\217\345\274\200\345\217\221/index.html" index 2e6fcf8d8..23c87c5a1 100644 --- "a/docs/study/hard/\347\241\254\344\273\266\345\274\200\345\217\221\345\222\214\345\265\214\345\205\245\345\274\217\345\274\200\345\217\221/index.html" +++ "b/docs/study/hard/\347\241\254\344\273\266\345\274\200\345\217\221\345\222\214\345\265\214\345\205\245\345\274\217\345\274\200\345\217\221/index.html" @@ -10,14 +10,14 @@ - - + +
    -

    硬件开发和嵌入式开发

    1. 嵌入式linux 和 用stm32进行的嵌入式开发 这两者之间有什么关联性吗?
      1. =====基于STM32的开发属于微控制器开发领域,主要开发工具是keilIAR,这种开发更准确的说法是单片机开发或者硬件开发;
      2. 嵌入式开发,开发环境是基于Linux操作系统,这种开发一般会分为几个层次:驱动开发、操作系统层开发、应用层开发。
      3. 如果玩过Arduino和树莓派,那么这个就很好理解了。STM32开发和Arduino是同一个层次,处于微控制器级别;嵌入式Linux开发和树莓派一个层次,属于微处理器级别。
      4. 单片机开发主要在于控制检测传输数据,比如控制继电器开关以控制门锁,检测温湿度上传数据到网关。而处理器除了可以做单片机的事,还可以处理音视频等计算量很大的任务,有文件管理系统也有更多的存储空间,以及该平台所提供的「开封即用」的工具(即安装后就可以直接使用),比如在树莓派上运行一个人脸检测系统是没问题的,在树莓派上搭建Web网站也是很方便的。
      5. =====嵌入式开发,主要有三条技术路线:
        • 51单片机
        • STM32 + RTOS
        • ARM + Linux    
        • 51单片机主要用在一些控制简单的电路、电器行业
        • STM32 + RTOS 主要用在一些实时要求比较高的行业:航空航天等,还有物联网、工业控制
        • ARM + Linux主要用在消费电子领域:手机、平板、智能手表、智能音箱等
      6. =====按照系列划分:
        1. 微控制器系列:8051, MSP 430 , STM32 F0-3( ARM Cortext M0 - M3系列)等
        2. 主要特点没有内存管理单元,不能运行linux 这类有着虚拟内存的操作系统,只能运行裸机程序或是ucOS一类的实时操作系统。主要工作就是外设驱动开发(比如写个编码器的驱动,液晶的驱动,usb的驱动)和基于驱动的应用程序开发,如控制类和简单的图像处理功能。
        3. 微处理器系列: ARM Cortex A系列的处理器
        4. 内存管理单元MMU,可以运行linux程序,开发其实和在windows pc上写程序是一样的,只是由于arm编译慢,一般会选在在PC上用针对ARM特定编译器去编译出程序放在ARM上运行,就是交叉编译。这里涉及到的驱动开发比较复杂,一般会遵循linux定义的规则去写。
    - +

    硬件开发和嵌入式开发

    1. 嵌入式linux 和 用stm32进行的嵌入式开发 这两者之间有什么关联性吗?
      1. =====基于STM32的开发属于微控制器开发领域,主要开发工具是keilIAR,这种开发更准确的说法是单片机开发或者硬件开发;
      2. 嵌入式开发,开发环境是基于Linux操作系统,这种开发一般会分为几个层次:驱动开发、操作系统层开发、应用层开发。
      3. 如果玩过Arduino和树莓派,那么这个就很好理解了。STM32开发和Arduino是同一个层次,处于微控制器级别;嵌入式Linux开发和树莓派一个层次,属于微处理器级别。
      4. 单片机开发主要在于控制检测传输数据,比如控制继电器开关以控制门锁,检测温湿度上传数据到网关。而处理器除了可以做单片机的事,还可以处理音视频等计算量很大的任务,有文件管理系统也有更多的存储空间,以及该平台所提供的「开封即用」的工具(即安装后就可以直接使用),比如在树莓派上运行一个人脸检测系统是没问题的,在树莓派上搭建Web网站也是很方便的。
      5. =====嵌入式开发,主要有三条技术路线:
        • 51单片机
        • STM32 + RTOS
        • ARM + Linux    
        • 51单片机主要用在一些控制简单的电路、电器行业
        • STM32 + RTOS 主要用在一些实时要求比较高的行业:航空航天等,还有物联网、工业控制
        • ARM + Linux主要用在消费电子领域:手机、平板、智能手表、智能音箱等
      6. =====按照系列划分:
        1. 微控制器系列:8051, MSP 430 , STM32 F0-3( ARM Cortext M0 - M3系列)等
        2. 主要特点没有内存管理单元,不能运行linux 这类有着虚拟内存的操作系统,只能运行裸机程序或是ucOS一类的实时操作系统。主要工作就是外设驱动开发(比如写个编码器的驱动,液晶的驱动,usb的驱动)和基于驱动的应用程序开发,如控制类和简单的图像处理功能。
        3. 微处理器系列: ARM Cortex A系列的处理器
        4. 内存管理单元MMU,可以运行linux程序,开发其实和在windows pc上写程序是一样的,只是由于arm编译慢,一般会选在在PC上用针对ARM特定编译器去编译出程序放在ARM上运行,就是交叉编译。这里涉及到的驱动开发比较复杂,一般会遵循linux定义的规则去写。
    + \ No newline at end of file diff --git "a/docs/study/hard/\350\267\257\347\224\261\345\231\250\345\222\214\344\272\244\346\215\242\346\234\272\347\232\204\345\214\272\345\210\253/index.html" "b/docs/study/hard/\350\267\257\347\224\261\345\231\250\345\222\214\344\272\244\346\215\242\346\234\272\347\232\204\345\214\272\345\210\253/index.html" index 1f4a1f16c..f21daae72 100644 --- "a/docs/study/hard/\350\267\257\347\224\261\345\231\250\345\222\214\344\272\244\346\215\242\346\234\272\347\232\204\345\214\272\345\210\253/index.html" +++ "b/docs/study/hard/\350\267\257\347\224\261\345\231\250\345\222\214\344\272\244\346\215\242\346\234\272\347\232\204\345\214\272\345\210\253/index.html" @@ -10,8 +10,8 @@ - - + + @@ -30,8 +30,8 @@ 路由还可以提供防火墙的功能。 路由配置比交换机复杂。 价格不同 -交换机是看门大爷,路由是邮差。

    - +交换机是看门大爷,路由是邮差。

    + \ No newline at end of file diff --git "a/docs/study/hard/\351\200\232\344\277\241\346\250\241\347\273\204/index.html" "b/docs/study/hard/\351\200\232\344\277\241\346\250\241\347\273\204/index.html" index 2f77a8072..6cd6d889d 100644 --- "a/docs/study/hard/\351\200\232\344\277\241\346\250\241\347\273\204/index.html" +++ "b/docs/study/hard/\351\200\232\344\277\241\346\250\241\347\273\204/index.html" @@ -10,15 +10,15 @@ - - + + - +images

    参考

    1. 漫谈通信模组厂商发展历史
    2. 无线通信模组产业链及竞争格局分析
    3. OEM
    + \ No newline at end of file diff --git a/docs/study/index.html b/docs/study/index.html index 131f30cc6..061aae44f 100644 --- a/docs/study/index.html +++ b/docs/study/index.html @@ -10,14 +10,14 @@ - - + +
    -

    学无止境

    物联网云平台是一个不断发展和变化的领域,学无止境。随着技术和市场的不断变化,我们需要始终保持敏锐的观察力和学习能力。

    首先,我们需要了解并掌握最新的物联网技术和云计算技术,例如边缘计算、人工智能等。其次,我们需要深入理解客户的需求,以构建更加智能和高效的物联网解决方案。同时,我们还需要对各种安全问题保持高度警惕,并采取措施保护用户数据的安全性。

    不断学习和提升自己的技能是非常重要的,可以帮助我们更好地适应快速变化的市场和技术环境。因此,我相信在这个快速发展的行业中,持续不断地学习和进步是必不可少的。

    - +

    学无止境

    物联网云平台是一个不断发展和变化的领域,学无止境。随着技术和市场的不断变化,我们需要始终保持敏锐的观察力和学习能力。

    首先,我们需要了解并掌握最新的物联网技术和云计算技术,例如边缘计算、人工智能等。其次,我们需要深入理解客户的需求,以构建更加智能和高效的物联网解决方案。同时,我们还需要对各种安全问题保持高度警惕,并采取措施保护用户数据的安全性。

    不断学习和提升自己的技能是非常重要的,可以帮助我们更好地适应快速变化的市场和技术环境。因此,我相信在这个快速发展的行业中,持续不断地学习和进步是必不可少的。

    + \ No newline at end of file diff --git a/docs/study/net/IPV6/index.html b/docs/study/net/IPV6/index.html index 20d27af7a..f188a1f32 100644 --- a/docs/study/net/IPV6/index.html +++ b/docs/study/net/IPV6/index.html @@ -10,14 +10,14 @@ - - + + - +
    + \ No newline at end of file diff --git "a/docs/study/net/MacOS\347\274\226\350\257\221OpenVPN/index.html" "b/docs/study/net/MacOS\347\274\226\350\257\221OpenVPN/index.html" index 443b09aba..79d575242 100644 --- "a/docs/study/net/MacOS\347\274\226\350\257\221OpenVPN/index.html" +++ "b/docs/study/net/MacOS\347\274\226\350\257\221OpenVPN/index.html" @@ -10,14 +10,14 @@ - - + + - +
    + \ No newline at end of file diff --git a/docs/study/net/OpenVPN/index.html b/docs/study/net/OpenVPN/index.html index 349c81a91..456e45395 100644 --- a/docs/study/net/OpenVPN/index.html +++ b/docs/study/net/OpenVPN/index.html @@ -10,14 +10,14 @@ - - + +
    -

    OpenVPN

    配置

    脚本

    # 安装
    yum install openvpn
    yum install easy-rsa

    # 准备目录 注意版本号 需要自行更改
    cp /usr/share/doc/openvpn-2.4.5/sample/sample-config-files/server.conf /etc/openvpn
    cp -r /usr/share/easy-rsa/ /etc/openvpn
    cp /usr/share/doc/easy-rsa-3.0.3/vars.example easy-rsa/3.0/vars

    # 初始化pki
    cd /etc/openvpn/easy-rsa/3.0
    ./easyrsa init-pki

    # 创建ca,记住ca密码
    ./easyrsa build-ca

    # 创建Diffie-Hellman,确保key穿越不安全网络
    ./easyrsa gen-dh
    # 生成防攻击key文件
    openvpn --genkey --secret ta.key

    # 创建服务器证书 注意名字为vpnserver 可以更改
    ./easyrsa gen-req vpnserver nopass
    # 签约服务端证书 注意名字为vpnserver
    ./easyrsa sign server vpnserver

    # 将服务器证书整理到一起
    cd /etc/openvpn/
    mkdir pki
    cd pki
    /usr/bin/cp -rf ../easy-rsa/3.0/ta.key ./
    /usr/bin/cp -rf ../easy-rsa/3.0/pki/ca.crt ./
    /usr/bin/cp -rf ../easy-rsa/3.0/pki/dh.pem ./
    /usr/bin/cp -rf ../easy-rsa/3.0/pki/issued/vpnserver.crt ./
    /usr/bin/cp -rf ../easy-rsa/3.0/pki/private/vpnserver.key ./
    # 将客户端所需证书整理到一起
    mkdir /etc/openvpn/client
    cd /etc/openvpn/client
    /usr/bin/cp -rf ../easy-rsa/3.0/ta.key ./
    /usr/bin/cp -rf ../easy-rsa/3.0/pki/ca.crt ./
    /usr/bin/cp -rf ../easy-rsa/3.0/pki/issued/client001.crt ./
    /usr/bin/cp -rf ../easy-rsa/3.0/pki/private/client001.key ./

    # 启动 停止 状态
    systemctl start openvpn@server
    systemctl stop openvpn@server
    systemctl status openvpn@server
    systemctl restart openvpn@server

    server.conf

    #################################################
    # Sample OpenVPN 2.0 config file for #
    # multi-client server. #
    # #
    # This file is for the server side #
    # of a many-clients <-> one-server #
    # OpenVPN configuration. #
    # #
    # OpenVPN also supports #
    # single-machine <-> single-machine #
    # configurations (See the Examples page #
    # on the web site for more info). #
    # #
    # This config should work on Windows #
    # or Linux/BSD systems. Remember on #
    # Windows to quote pathnames and use #
    # double backslashes, e.g.: #
    # "C:\\Program Files\\OpenVPN\\config\\foo.key" #
    # #
    # Comments are preceded with '#' or ';' #
    #################################################

    # Which local IP address should OpenVPN
    # listen on? (optional)
    ;local a.b.c.d

    # Which TCP/UDP port should OpenVPN listen on?
    # If you want to run multiple OpenVPN instances
    # on the same machine, use a different port
    # number for each one. You will need to
    # open up this port on your firewall.
    port 1194

    # TCP or UDP server?
    ;proto tcp
    proto udp

    # "dev tun" will create a routed IP tunnel,
    # "dev tap" will create an ethernet tunnel.
    # Use "dev tap0" if you are ethernet bridging
    # and have precreated a tap0 virtual interface
    # and bridged it with your ethernet interface.
    # If you want to control access policies
    # over the VPN, you must create firewall
    # rules for the the TUN/TAP interface.
    # On non-Windows systems, you can give
    # an explicit unit number, such as tun0.
    # On Windows, use "dev-node" for this.
    # On most systems, the VPN will not function
    # unless you partially or fully disable
    # the firewall for the TUN/TAP interface.
    ;dev tap
    dev tun

    # Windows needs the TAP-Win32 adapter name
    # from the Network Connections panel if you
    # have more than one. On XP SP2 or higher,
    # you may need to selectively disable the
    # Windows firewall for the TAP adapter.
    # Non-Windows systems usually don't need this.
    ;dev-node MyTap

    # SSL/TLS root certificate (ca), certificate
    # (cert), and private key (key). Each client
    # and the server must have their own cert and
    # key file. The server and all clients will
    # use the same ca file.
    #
    # See the "easy-rsa" directory for a series
    # of scripts for generating RSA certificates
    # and private keys. Remember to use
    # a unique Common Name for the server
    # and each of the client certificates.
    #
    # Any X509 key management system can be used.
    # OpenVPN can also use a PKCS #12 formatted key file
    # (see "pkcs12" directive in man page).
    ca /etc/openvpn/pki/ca.crt
    cert /etc/openvpn/pki/vpnserver.crt
    key /etc/openvpn/pki/vpnserver.key # This file should be kept secret

    # Diffie hellman parameters.
    # Generate your own with:
    # openssl dhparam -out dh2048.pem 2048
    dh /etc/openvpn/pki/dh.pem

    # Network topology
    # Should be subnet (addressing via IP)
    # unless Windows clients v2.0.9 and lower have to
    # be supported (then net30, i.e. a /30 per client)
    # Defaults to net30 (not recommended)
    ;topology subnet

    # Configure server mode and supply a VPN subnet
    # for OpenVPN to draw client addresses from.
    # The server will take 10.8.0.1 for itself,
    # the rest will be made available to clients.
    # Each client will be able to reach the server
    # on 10.8.0.1. Comment this line out if you are
    # ethernet bridging. See the man page for more info.
    server 10.8.0.0 255.255.255.0

    # Maintain a record of client <-> virtual IP address
    # associations in this file. If OpenVPN goes down or
    # is restarted, reconnecting clients can be assigned
    # the same virtual IP address from the pool that was
    # previously assigned.
    ifconfig-pool-persist ipp.txt

    # Configure server mode for ethernet bridging.
    # You must first use your OS's bridging capability
    # to bridge the TAP interface with the ethernet
    # NIC interface. Then you must manually set the
    # IP/netmask on the bridge interface, here we
    # assume 10.8.0.4/255.255.255.0. Finally we
    # must set aside an IP range in this subnet
    # (start=10.8.0.50 end=10.8.0.100) to allocate
    # to connecting clients. Leave this line commented
    # out unless you are ethernet bridging.
    ;server-bridge 10.8.0.4 255.255.255.0 10.8.0.50 10.8.0.100

    # Configure server mode for ethernet bridging
    # using a DHCP-proxy, where clients talk
    # to the OpenVPN server-side DHCP server
    # to receive their IP address allocation
    # and DNS server addresses. You must first use
    # your OS's bridging capability to bridge the TAP
    # interface with the ethernet NIC interface.
    # Note: this mode only works on clients (such as
    # Windows), where the client-side TAP adapter is
    # bound to a DHCP client.
    ;server-bridge

    # Push routes to the client to allow it
    # to reach other private subnets behind
    # the server. Remember that these
    # private subnets will also need
    # to know to route the OpenVPN client
    # address pool (10.8.0.0/255.255.255.0)
    # back to the OpenVPN server.
    ;push "route 192.168.10.0 255.255.255.0"
    ;push "route 192.168.20.0 255.255.255.0"

    # To assign specific IP addresses to specific
    # clients or if a connecting client has a private
    # subnet behind it that should also have VPN access,
    # use the subdirectory "ccd" for client-specific
    # configuration files (see man page for more info).

    # EXAMPLE: Suppose the client
    # having the certificate common name "Thelonious"
    # also has a small subnet behind his connecting
    # machine, such as 192.168.40.128/255.255.255.248.
    # First, uncomment out these lines:
    ;client-config-dir ccd
    ;route 192.168.40.128 255.255.255.248
    # Then create a file ccd/Thelonious with this line:
    # iroute 192.168.40.128 255.255.255.248
    # This will allow Thelonious' private subnet to
    # access the VPN. This example will only work
    # if you are routing, not bridging, i.e. you are
    # using "dev tun" and "server" directives.

    # EXAMPLE: Suppose you want to give
    # Thelonious a fixed VPN IP address of 10.9.0.1.
    # First uncomment out these lines:
    ;client-config-dir ccd
    ;route 10.9.0.0 255.255.255.252
    # Then add this line to ccd/Thelonious:
    # ifconfig-push 10.9.0.1 10.9.0.2

    # Suppose that you want to enable different
    # firewall access policies for different groups
    # of clients. There are two methods:
    # (1) Run multiple OpenVPN daemons, one for each
    # group, and firewall the TUN/TAP interface
    # for each group/daemon appropriately.
    # (2) (Advanced) Create a script to dynamically
    # modify the firewall in response to access
    # from different clients. See man
    # page for more info on learn-address script.
    ;learn-address ./script

    # If enabled, this directive will configure
    # all clients to redirect their default
    # network gateway through the VPN, causing
    # all IP traffic such as web browsing and
    # and DNS lookups to go through the VPN
    # (The OpenVPN server machine may need to NAT
    # or bridge the TUN/TAP interface to the internet
    # in order for this to work properly).
    ;push "redirect-gateway def1 bypass-dhcp"

    # Certain Windows-specific network settings
    # can be pushed to clients, such as DNS
    # or WINS server addresses. CAVEAT:
    # http://openvpn.net/faq.html#dhcpcaveats
    # The addresses below refer to the public
    # DNS servers provided by opendns.com.
    ;push "dhcp-option DNS 208.67.222.222"
    ;push "dhcp-option DNS 208.67.220.220"
    push "dhcp-option DNS 8.8.8.8"

    # Uncomment this directive to allow different
    # clients to be able to "see" each other.
    # By default, clients will only see the server.
    # To force clients to only see the server, you
    # will also need to appropriately firewall the
    # server's TUN/TAP interface.
    client-to-client

    # Uncomment this directive if multiple clients
    # might connect with the same certificate/key
    # files or common names. This is recommended
    # only for testing purposes. For production use,
    # each client should have its own certificate/key
    # pair.
    #
    # IF YOU HAVE NOT GENERATED INDIVIDUAL
    # CERTIFICATE/KEY PAIRS FOR EACH CLIENT,
    # EACH HAVING ITS OWN UNIQUE "COMMON NAME",
    # UNCOMMENT THIS LINE OUT.
    ;duplicate-cn

    # The keepalive directive causes ping-like
    # messages to be sent back and forth over
    # the link so that each side knows when
    # the other side has gone down.
    # Ping every 10 seconds, assume that remote
    # peer is down if no ping received during
    # a 120 second time period.
    keepalive 10 120

    # For extra security beyond that provided
    # by SSL/TLS, create an "HMAC firewall"
    # to help block DoS attacks and UDP port flooding.
    #
    # Generate with:
    # openvpn --genkey --secret ta.key
    #
    # The server and each client must have
    # a copy of this key.
    # The second parameter should be '0'
    # on the server and '1' on the clients.
    tls-auth /etc/openvpn/pki/ta.key 0 # This file is secret

    # Select a cryptographic cipher.
    # This config item must be copied to
    # the client config file as well.
    # Note that v2.4 client/server will automatically
    # negotiate AES-256-GCM in TLS mode.
    # See also the ncp-cipher option in the manpage
    cipher AES-256-CBC

    # Enable compression on the VPN link and push the
    # option to the client (v2.4+ only, for earlier
    # versions see below)
    ;compress lz4-v2
    ;push "compress lz4-v2"

    # For compression compatible with older clients use comp-lzo
    # If you enable it here, you must also
    # enable it in the client config file.
    comp-lzo

    # The maximum number of concurrently connected
    # clients we want to allow.
    max-clients 999

    # It's a good idea to reduce the OpenVPN
    # daemon's privileges after initialization.
    #
    # You can uncomment this out on
    # non-Windows systems.
    ;user nobody
    ;group nobody

    # The persist options will try to avoid
    # accessing certain resources on restart
    # that may no longer be accessible because
    # of the privilege downgrade.
    persist-key
    persist-tun

    # Output a short status file showing
    # current connections, truncated
    # and rewritten every minute.
    status openvpn-status.log

    # By default, log messages will go to the syslog (or
    # on Windows, if running as a service, they will go to
    # the "\Program Files\OpenVPN\log" directory).
    # Use log or log-append to override this default.
    # "log" will truncate the log file on OpenVPN startup,
    # while "log-append" will append to it. Use one
    # or the other (but not both).
    ;log openvpn.log
    ;log-append openvpn.log

    # Set the appropriate level of log
    # file verbosity.
    #
    # 0 is silent, except for fatal errors
    # 4 is reasonable for general usage
    # 5 and 6 can help to debug connection problems
    # 9 is extremely verbose
    verb 3

    # Silence repeating messages. At most 20
    # sequential messages of the same message
    # category will be output to the log.
    ;mute 20

    # Notify the client that when the server restarts so it
    # can automatically reconnect.
    explicit-exit-notify 1

    配置 IP 转发功能

    # 查询
    sysctl net.ipv4.ip_forward
    # 设置
    echo 'net.ipv4.ip_forward = 1' >/etc/sysctl.conf
    sysctl -p

    参考net.ipv4.ip_forward

    client.ovpn

    # 相当于 pull tls-client
    client
    #
    dev tun
    #
    proto udp
    # 连接远程openvpn server,可以有多个,但同时连接只有一个
    remote 60.204.171.251 1194
    resolv-retry infinite
    nobind
    persist-key
    persist-tun
    #
    ca ca.crt
    cert client001.crt
    key client001.key
    tls-auth ta.key 1
    #
    comp-lzo
    # 日志容易级别
    verb 3

    生成客户端证书

    cd /etc/openvpn/easy-rsa/3.0/
    ./easyrsa build-client-full client003
    /usr/bin/cp -rf /etc/openvpn/easy-rsa/3.0/pki/issued/client003.crt /etc/openvpn/client
    /usr/bin/cp -rf /etc/openvpn/easy-rsa/3.0/pki/private/client003.key /etc/openvpn/client

    配置不同的客户端启用不同的子网

    修改 server.conf 文件

    # 启用ccd 增加两个子网路由
    client-config-dir ccd
    ;route 10.9.0.0 255.255.255.252
    route 10.9.0.0 255.255.255.0
    route 10.9.1.0 255.255.255.0
    # 修改topology为subnet
    topology subnet

    topology

    tun 模式:

    • subnet:

      • a. 从 pool 中选择一个 ip 作为 client 的虚拟网卡 ip;

      • b. 将自己的子网掩码作为 client 的子网掩码。

    • p2p:

      • a.从 pool 中选择一个 ip 作为 client 的虚拟网卡 ip;

      • b.将自己的实际虚拟网卡 ip 作为 client 的对端 ip。

    • net30:

      • a.从 pool 中选择 4 个掩码为 30 的 ip,将中间两个 ip 中的大者作为 client 的虚拟网卡 ip;

      • b.将小者作为 client 的对端 ip。

    tap 模式:

    完全按照 tun 模式的 1 来分配。

    脚本创建 client

    脚本创建 client,自动输入 ca 密码,

    #!/usr/bin/expect

    set timeout 30

    spawn ./easyrsa build-client-full client014 nopass
    expect "pass"
    send "weichuang"
    send "\n"
    interact

    管理端接口

    包过滤

    可实现简单的防火墙控制

    问题:连接成功后,客户端无法正常访问其他网站

    将 server.conf 的

    ;push "redirect-gateway def1 bypass-dhcp"

    注释掉

    问题:tcpdump 监听不了 tun0

    如果开启了 client-to-client,流量是不走 tun 的的。

    可以参考openvpn server not showing traffic using tcpdump

    - +

    OpenVPN

    配置

    脚本

    # 安装
    yum install openvpn
    yum install easy-rsa

    # 准备目录 注意版本号 需要自行更改
    cp /usr/share/doc/openvpn-2.4.5/sample/sample-config-files/server.conf /etc/openvpn
    cp -r /usr/share/easy-rsa/ /etc/openvpn
    cp /usr/share/doc/easy-rsa-3.0.3/vars.example easy-rsa/3.0/vars

    # 初始化pki
    cd /etc/openvpn/easy-rsa/3.0
    ./easyrsa init-pki

    # 创建ca,记住ca密码
    ./easyrsa build-ca

    # 创建Diffie-Hellman,确保key穿越不安全网络
    ./easyrsa gen-dh
    # 生成防攻击key文件
    openvpn --genkey --secret ta.key

    # 创建服务器证书 注意名字为vpnserver 可以更改
    ./easyrsa gen-req vpnserver nopass
    # 签约服务端证书 注意名字为vpnserver
    ./easyrsa sign server vpnserver

    # 将服务器证书整理到一起
    cd /etc/openvpn/
    mkdir pki
    cd pki
    /usr/bin/cp -rf ../easy-rsa/3.0/ta.key ./
    /usr/bin/cp -rf ../easy-rsa/3.0/pki/ca.crt ./
    /usr/bin/cp -rf ../easy-rsa/3.0/pki/dh.pem ./
    /usr/bin/cp -rf ../easy-rsa/3.0/pki/issued/vpnserver.crt ./
    /usr/bin/cp -rf ../easy-rsa/3.0/pki/private/vpnserver.key ./
    # 将客户端所需证书整理到一起
    mkdir /etc/openvpn/client
    cd /etc/openvpn/client
    /usr/bin/cp -rf ../easy-rsa/3.0/ta.key ./
    /usr/bin/cp -rf ../easy-rsa/3.0/pki/ca.crt ./
    /usr/bin/cp -rf ../easy-rsa/3.0/pki/issued/client001.crt ./
    /usr/bin/cp -rf ../easy-rsa/3.0/pki/private/client001.key ./

    # 启动 停止 状态
    systemctl start openvpn@server
    systemctl stop openvpn@server
    systemctl status openvpn@server
    systemctl restart openvpn@server

    server.conf

    #################################################
    # Sample OpenVPN 2.0 config file for #
    # multi-client server. #
    # #
    # This file is for the server side #
    # of a many-clients <-> one-server #
    # OpenVPN configuration. #
    # #
    # OpenVPN also supports #
    # single-machine <-> single-machine #
    # configurations (See the Examples page #
    # on the web site for more info). #
    # #
    # This config should work on Windows #
    # or Linux/BSD systems. Remember on #
    # Windows to quote pathnames and use #
    # double backslashes, e.g.: #
    # "C:\\Program Files\\OpenVPN\\config\\foo.key" #
    # #
    # Comments are preceded with '#' or ';' #
    #################################################

    # Which local IP address should OpenVPN
    # listen on? (optional)
    ;local a.b.c.d

    # Which TCP/UDP port should OpenVPN listen on?
    # If you want to run multiple OpenVPN instances
    # on the same machine, use a different port
    # number for each one. You will need to
    # open up this port on your firewall.
    port 1194

    # TCP or UDP server?
    ;proto tcp
    proto udp

    # "dev tun" will create a routed IP tunnel,
    # "dev tap" will create an ethernet tunnel.
    # Use "dev tap0" if you are ethernet bridging
    # and have precreated a tap0 virtual interface
    # and bridged it with your ethernet interface.
    # If you want to control access policies
    # over the VPN, you must create firewall
    # rules for the the TUN/TAP interface.
    # On non-Windows systems, you can give
    # an explicit unit number, such as tun0.
    # On Windows, use "dev-node" for this.
    # On most systems, the VPN will not function
    # unless you partially or fully disable
    # the firewall for the TUN/TAP interface.
    ;dev tap
    dev tun

    # Windows needs the TAP-Win32 adapter name
    # from the Network Connections panel if you
    # have more than one. On XP SP2 or higher,
    # you may need to selectively disable the
    # Windows firewall for the TAP adapter.
    # Non-Windows systems usually don't need this.
    ;dev-node MyTap

    # SSL/TLS root certificate (ca), certificate
    # (cert), and private key (key). Each client
    # and the server must have their own cert and
    # key file. The server and all clients will
    # use the same ca file.
    #
    # See the "easy-rsa" directory for a series
    # of scripts for generating RSA certificates
    # and private keys. Remember to use
    # a unique Common Name for the server
    # and each of the client certificates.
    #
    # Any X509 key management system can be used.
    # OpenVPN can also use a PKCS #12 formatted key file
    # (see "pkcs12" directive in man page).
    ca /etc/openvpn/pki/ca.crt
    cert /etc/openvpn/pki/vpnserver.crt
    key /etc/openvpn/pki/vpnserver.key # This file should be kept secret

    # Diffie hellman parameters.
    # Generate your own with:
    # openssl dhparam -out dh2048.pem 2048
    dh /etc/openvpn/pki/dh.pem

    # Network topology
    # Should be subnet (addressing via IP)
    # unless Windows clients v2.0.9 and lower have to
    # be supported (then net30, i.e. a /30 per client)
    # Defaults to net30 (not recommended)
    ;topology subnet

    # Configure server mode and supply a VPN subnet
    # for OpenVPN to draw client addresses from.
    # The server will take 10.8.0.1 for itself,
    # the rest will be made available to clients.
    # Each client will be able to reach the server
    # on 10.8.0.1. Comment this line out if you are
    # ethernet bridging. See the man page for more info.
    server 10.8.0.0 255.255.255.0

    # Maintain a record of client <-> virtual IP address
    # associations in this file. If OpenVPN goes down or
    # is restarted, reconnecting clients can be assigned
    # the same virtual IP address from the pool that was
    # previously assigned.
    ifconfig-pool-persist ipp.txt

    # Configure server mode for ethernet bridging.
    # You must first use your OS's bridging capability
    # to bridge the TAP interface with the ethernet
    # NIC interface. Then you must manually set the
    # IP/netmask on the bridge interface, here we
    # assume 10.8.0.4/255.255.255.0. Finally we
    # must set aside an IP range in this subnet
    # (start=10.8.0.50 end=10.8.0.100) to allocate
    # to connecting clients. Leave this line commented
    # out unless you are ethernet bridging.
    ;server-bridge 10.8.0.4 255.255.255.0 10.8.0.50 10.8.0.100

    # Configure server mode for ethernet bridging
    # using a DHCP-proxy, where clients talk
    # to the OpenVPN server-side DHCP server
    # to receive their IP address allocation
    # and DNS server addresses. You must first use
    # your OS's bridging capability to bridge the TAP
    # interface with the ethernet NIC interface.
    # Note: this mode only works on clients (such as
    # Windows), where the client-side TAP adapter is
    # bound to a DHCP client.
    ;server-bridge

    # Push routes to the client to allow it
    # to reach other private subnets behind
    # the server. Remember that these
    # private subnets will also need
    # to know to route the OpenVPN client
    # address pool (10.8.0.0/255.255.255.0)
    # back to the OpenVPN server.
    ;push "route 192.168.10.0 255.255.255.0"
    ;push "route 192.168.20.0 255.255.255.0"

    # To assign specific IP addresses to specific
    # clients or if a connecting client has a private
    # subnet behind it that should also have VPN access,
    # use the subdirectory "ccd" for client-specific
    # configuration files (see man page for more info).

    # EXAMPLE: Suppose the client
    # having the certificate common name "Thelonious"
    # also has a small subnet behind his connecting
    # machine, such as 192.168.40.128/255.255.255.248.
    # First, uncomment out these lines:
    ;client-config-dir ccd
    ;route 192.168.40.128 255.255.255.248
    # Then create a file ccd/Thelonious with this line:
    # iroute 192.168.40.128 255.255.255.248
    # This will allow Thelonious' private subnet to
    # access the VPN. This example will only work
    # if you are routing, not bridging, i.e. you are
    # using "dev tun" and "server" directives.

    # EXAMPLE: Suppose you want to give
    # Thelonious a fixed VPN IP address of 10.9.0.1.
    # First uncomment out these lines:
    ;client-config-dir ccd
    ;route 10.9.0.0 255.255.255.252
    # Then add this line to ccd/Thelonious:
    # ifconfig-push 10.9.0.1 10.9.0.2

    # Suppose that you want to enable different
    # firewall access policies for different groups
    # of clients. There are two methods:
    # (1) Run multiple OpenVPN daemons, one for each
    # group, and firewall the TUN/TAP interface
    # for each group/daemon appropriately.
    # (2) (Advanced) Create a script to dynamically
    # modify the firewall in response to access
    # from different clients. See man
    # page for more info on learn-address script.
    ;learn-address ./script

    # If enabled, this directive will configure
    # all clients to redirect their default
    # network gateway through the VPN, causing
    # all IP traffic such as web browsing and
    # and DNS lookups to go through the VPN
    # (The OpenVPN server machine may need to NAT
    # or bridge the TUN/TAP interface to the internet
    # in order for this to work properly).
    ;push "redirect-gateway def1 bypass-dhcp"

    # Certain Windows-specific network settings
    # can be pushed to clients, such as DNS
    # or WINS server addresses. CAVEAT:
    # http://openvpn.net/faq.html#dhcpcaveats
    # The addresses below refer to the public
    # DNS servers provided by opendns.com.
    ;push "dhcp-option DNS 208.67.222.222"
    ;push "dhcp-option DNS 208.67.220.220"
    push "dhcp-option DNS 8.8.8.8"

    # Uncomment this directive to allow different
    # clients to be able to "see" each other.
    # By default, clients will only see the server.
    # To force clients to only see the server, you
    # will also need to appropriately firewall the
    # server's TUN/TAP interface.
    client-to-client

    # Uncomment this directive if multiple clients
    # might connect with the same certificate/key
    # files or common names. This is recommended
    # only for testing purposes. For production use,
    # each client should have its own certificate/key
    # pair.
    #
    # IF YOU HAVE NOT GENERATED INDIVIDUAL
    # CERTIFICATE/KEY PAIRS FOR EACH CLIENT,
    # EACH HAVING ITS OWN UNIQUE "COMMON NAME",
    # UNCOMMENT THIS LINE OUT.
    ;duplicate-cn

    # The keepalive directive causes ping-like
    # messages to be sent back and forth over
    # the link so that each side knows when
    # the other side has gone down.
    # Ping every 10 seconds, assume that remote
    # peer is down if no ping received during
    # a 120 second time period.
    keepalive 10 120

    # For extra security beyond that provided
    # by SSL/TLS, create an "HMAC firewall"
    # to help block DoS attacks and UDP port flooding.
    #
    # Generate with:
    # openvpn --genkey --secret ta.key
    #
    # The server and each client must have
    # a copy of this key.
    # The second parameter should be '0'
    # on the server and '1' on the clients.
    tls-auth /etc/openvpn/pki/ta.key 0 # This file is secret

    # Select a cryptographic cipher.
    # This config item must be copied to
    # the client config file as well.
    # Note that v2.4 client/server will automatically
    # negotiate AES-256-GCM in TLS mode.
    # See also the ncp-cipher option in the manpage
    cipher AES-256-CBC

    # Enable compression on the VPN link and push the
    # option to the client (v2.4+ only, for earlier
    # versions see below)
    ;compress lz4-v2
    ;push "compress lz4-v2"

    # For compression compatible with older clients use comp-lzo
    # If you enable it here, you must also
    # enable it in the client config file.
    comp-lzo

    # The maximum number of concurrently connected
    # clients we want to allow.
    max-clients 999

    # It's a good idea to reduce the OpenVPN
    # daemon's privileges after initialization.
    #
    # You can uncomment this out on
    # non-Windows systems.
    ;user nobody
    ;group nobody

    # The persist options will try to avoid
    # accessing certain resources on restart
    # that may no longer be accessible because
    # of the privilege downgrade.
    persist-key
    persist-tun

    # Output a short status file showing
    # current connections, truncated
    # and rewritten every minute.
    status openvpn-status.log

    # By default, log messages will go to the syslog (or
    # on Windows, if running as a service, they will go to
    # the "\Program Files\OpenVPN\log" directory).
    # Use log or log-append to override this default.
    # "log" will truncate the log file on OpenVPN startup,
    # while "log-append" will append to it. Use one
    # or the other (but not both).
    ;log openvpn.log
    ;log-append openvpn.log

    # Set the appropriate level of log
    # file verbosity.
    #
    # 0 is silent, except for fatal errors
    # 4 is reasonable for general usage
    # 5 and 6 can help to debug connection problems
    # 9 is extremely verbose
    verb 3

    # Silence repeating messages. At most 20
    # sequential messages of the same message
    # category will be output to the log.
    ;mute 20

    # Notify the client that when the server restarts so it
    # can automatically reconnect.
    explicit-exit-notify 1

    配置 IP 转发功能

    # 查询
    sysctl net.ipv4.ip_forward
    # 设置
    echo 'net.ipv4.ip_forward = 1' >/etc/sysctl.conf
    sysctl -p

    参考net.ipv4.ip_forward

    client.ovpn

    # 相当于 pull tls-client
    client
    #
    dev tun
    #
    proto udp
    # 连接远程openvpn server,可以有多个,但同时连接只有一个
    remote 60.204.171.251 1194
    resolv-retry infinite
    nobind
    persist-key
    persist-tun
    #
    ca ca.crt
    cert client001.crt
    key client001.key
    tls-auth ta.key 1
    #
    comp-lzo
    # 日志容易级别
    verb 3

    生成客户端证书

    cd /etc/openvpn/easy-rsa/3.0/
    ./easyrsa build-client-full client003
    /usr/bin/cp -rf /etc/openvpn/easy-rsa/3.0/pki/issued/client003.crt /etc/openvpn/client
    /usr/bin/cp -rf /etc/openvpn/easy-rsa/3.0/pki/private/client003.key /etc/openvpn/client

    配置不同的客户端启用不同的子网

    修改 server.conf 文件

    # 启用ccd 增加两个子网路由
    client-config-dir ccd
    ;route 10.9.0.0 255.255.255.252
    route 10.9.0.0 255.255.255.0
    route 10.9.1.0 255.255.255.0
    # 修改topology为subnet
    topology subnet

    topology

    tun 模式:

    • subnet:

      • a. 从 pool 中选择一个 ip 作为 client 的虚拟网卡 ip;

      • b. 将自己的子网掩码作为 client 的子网掩码。

    • p2p:

      • a.从 pool 中选择一个 ip 作为 client 的虚拟网卡 ip;

      • b.将自己的实际虚拟网卡 ip 作为 client 的对端 ip。

    • net30:

      • a.从 pool 中选择 4 个掩码为 30 的 ip,将中间两个 ip 中的大者作为 client 的虚拟网卡 ip;

      • b.将小者作为 client 的对端 ip。

    tap 模式:

    完全按照 tun 模式的 1 来分配。

    脚本创建 client

    脚本创建 client,自动输入 ca 密码,

    #!/usr/bin/expect

    set timeout 30

    spawn ./easyrsa build-client-full client014 nopass
    expect "pass"
    send "weichuang"
    send "\n"
    interact

    管理端接口

    包过滤

    可实现简单的防火墙控制

    问题:连接成功后,客户端无法正常访问其他网站

    将 server.conf 的

    ;push "redirect-gateway def1 bypass-dhcp"

    注释掉

    问题:tcpdump 监听不了 tun0

    如果开启了 client-to-client,流量是不走 tun 的的。

    可以参考openvpn server not showing traffic using tcpdump

    + \ No newline at end of file diff --git a/docs/study/net/TCP/index.html b/docs/study/net/TCP/index.html index f6a39cd51..5b32700bc 100644 --- a/docs/study/net/TCP/index.html +++ b/docs/study/net/TCP/index.html @@ -10,14 +10,14 @@ - - + + - +
    + \ No newline at end of file diff --git a/docs/study/net/UDP/index.html b/docs/study/net/UDP/index.html index 2c4b99a27..2e1720219 100644 --- a/docs/study/net/UDP/index.html +++ b/docs/study/net/UDP/index.html @@ -10,14 +10,14 @@ - - + +
    -

    UDP

    UDP

    UDP (User Datagram Protocol) 是一种无连接的网络传输协议,它不保证数据传输的可靠性和顺序,但具有高效、低延迟和灵活的特点。UDP 常用于实时通信应用程序,例如音频、视频和在线游戏等。由于 UDP 将数据包发送到目标地址,而不需要建立连接,因此它比 TCP 更加简单、轻量级和快速。但是,由于它不提供数据完整性检查和重传机制,因此在一些应用场景下可能会出现数据丢失或错误的问题。

    基于 UDP 的可靠性协议

    QUIC

    RUDP

    RTP

    UDT

    - +

    UDP

    UDP

    UDP (User Datagram Protocol) 是一种无连接的网络传输协议,它不保证数据传输的可靠性和顺序,但具有高效、低延迟和灵活的特点。UDP 常用于实时通信应用程序,例如音频、视频和在线游戏等。由于 UDP 将数据包发送到目标地址,而不需要建立连接,因此它比 TCP 更加简单、轻量级和快速。但是,由于它不提供数据完整性检查和重传机制,因此在一些应用场景下可能会出现数据丢失或错误的问题。

    基于 UDP 的可靠性协议

    QUIC

    RUDP

    RTP

    UDT

    + \ No newline at end of file diff --git a/docs/study/net/ip/index.html b/docs/study/net/ip/index.html index a1a71de00..261bb1400 100644 --- a/docs/study/net/ip/index.html +++ b/docs/study/net/ip/index.html @@ -10,15 +10,15 @@ - - + +

    Linux ip 命令

    ip 命令来自 iproute 软件包,软件包提供了很多命令(rpm -ql iproute |grep bin),如 ss 命令、bridge,这些命令可以完全替代 ifconfig、netstat、route 等命令。

    ip 命令有很多子命令,可以通过 man ip 查看

    link - address - addrlabel - route - rule - neigh - ntable - tunnel - tuntap - maddress - mroute - mrule - monitor - xfrm - netns - l2tp - tcp_metrics - -token - macsec

    查看命令的用法:

    • ip netns help
    • ip address help
    • ip route help
    • ip link help
    • ip neigh help

    查看帮助文档:

    • man ip-netns
    • man ip-address
    • man ip-route
    • man ip-link
    • man ip-neighbour

    更多命令的帮助文档可以通过以下命令查看:

    rpm -ql iproute |grep man

    ip netns

    查看所有网络命名空间,用于隔离网络

    ip address

    address 可以简写为 a 或 ad 或 add 或 addr

    查看 ip

    ip route

    route 可以简写为 r 或 ro 或 rou

    查看路由

    link 表示链路层。link 可以简写为 l 或 li 或 lin

    ip l:查看所有的网络设备(因为是链路层,所以只显示 MAC 地址,不显示 IP 地址)。其中,lo、ens33 等是真实的物理设备,通过 ip l add 命令创建的都是虚拟设备。

    ip neigh

    neigh 可以简写为 n 或 ne 或 nei

    ip n:查看内核中记录的 ARP 表(也就是链路层直连的主机的 IP 和 MAC 地址,不一定准确,需要之前连过)。

    - +token - macsec

    查看命令的用法:

    • ip netns help
    • ip address help
    • ip route help
    • ip link help
    • ip neigh help

    查看帮助文档:

    • man ip-netns
    • man ip-address
    • man ip-route
    • man ip-link
    • man ip-neighbour

    更多命令的帮助文档可以通过以下命令查看:

    rpm -ql iproute |grep man

    ip netns

    查看所有网络命名空间,用于隔离网络

    ip address

    address 可以简写为 a 或 ad 或 add 或 addr

    查看 ip

    ip route

    route 可以简写为 r 或 ro 或 rou

    查看路由

    link 表示链路层。link 可以简写为 l 或 li 或 lin

    ip l:查看所有的网络设备(因为是链路层,所以只显示 MAC 地址,不显示 IP 地址)。其中,lo、ens33 等是真实的物理设备,通过 ip l add 命令创建的都是虚拟设备。

    ip neigh

    neigh 可以简写为 n 或 ne 或 nei

    ip n:查看内核中记录的 ARP 表(也就是链路层直连的主机的 IP 和 MAC 地址,不一定准确,需要之前连过)。

    + \ No newline at end of file diff --git a/docs/study/net/iptables/index.html b/docs/study/net/iptables/index.html index 372c45858..9867e125f 100644 --- a/docs/study/net/iptables/index.html +++ b/docs/study/net/iptables/index.html @@ -10,14 +10,14 @@ - - + + - +
    + \ No newline at end of file diff --git a/docs/study/net/netns/index.html b/docs/study/net/netns/index.html index 8e84c8730..2ffd51b69 100644 --- a/docs/study/net/netns/index.html +++ b/docs/study/net/netns/index.html @@ -10,14 +10,14 @@ - - + + - +
    + \ No newline at end of file diff --git a/docs/study/net/p2p/index.html b/docs/study/net/p2p/index.html index 9e084c33f..d0188c802 100644 --- a/docs/study/net/p2p/index.html +++ b/docs/study/net/p2p/index.html @@ -10,14 +10,14 @@ - - + + - +
    + \ No newline at end of file diff --git "a/docs/study/net/pfctl\351\230\262\347\201\253\345\242\231/index.html" "b/docs/study/net/pfctl\351\230\262\347\201\253\345\242\231/index.html" index 2a70be6a6..f8ef385db 100644 --- "a/docs/study/net/pfctl\351\230\262\347\201\253\345\242\231/index.html" +++ "b/docs/study/net/pfctl\351\230\262\347\201\253\345\242\231/index.html" @@ -10,14 +10,14 @@ - - + +
    -

    unix pfctl 防火墙

    iptables 是 Linux 下的防火墙,可以进行数据包的过滤,在网络层进行数据的转发、拦截或丢弃等,使用非常普遍,功能也非常强大。但是 Mac 下没有 iptables,为了实现流量转发和过滤,要使用到 Mac 自带的 PFctl。PFctl 即 control the packet filter,是 Unix LIKE 系统上进行 TCP/IP 流量过滤和网络地址转换的系统,也能提供流量整形和控制等

    参考

    - +

    unix pfctl 防火墙

    iptables 是 Linux 下的防火墙,可以进行数据包的过滤,在网络层进行数据的转发、拦截或丢弃等,使用非常普遍,功能也非常强大。但是 Mac 下没有 iptables,为了实现流量转发和过滤,要使用到 Mac 自带的 PFctl。PFctl 即 control the packet filter,是 Unix LIKE 系统上进行 TCP/IP 流量过滤和网络地址转换的系统,也能提供流量整形和控制等

    参考

    + \ No newline at end of file diff --git a/docs/study/net/tc/index.html b/docs/study/net/tc/index.html index 398695ee7..3dc3f9a85 100644 --- a/docs/study/net/tc/index.html +++ b/docs/study/net/tc/index.html @@ -10,14 +10,14 @@ - - + +
    -

    Linux tc

    tc 是 Linux 系统下的流量控制工具,全称 Traffic Control,用于配置和控制网络流量。它是一个强大的工具,可以用于配置和调整各种网络接口的流量控制参数,如带宽限制、延迟、丢包率等。

    - +

    Linux tc

    tc 是 Linux 系统下的流量控制工具,全称 Traffic Control,用于配置和控制网络流量。它是一个强大的工具,可以用于配置和调整各种网络接口的流量控制参数,如带宽限制、延迟、丢包率等。

    + \ No newline at end of file diff --git a/docs/study/net/tuntap/index.html b/docs/study/net/tuntap/index.html index 7faf73891..a590ab600 100644 --- a/docs/study/net/tuntap/index.html +++ b/docs/study/net/tuntap/index.html @@ -10,14 +10,14 @@ - - + +
    -

    tuntap

    Tun/Tap

    在计算机网络中,TUN 与 TAP 是操作系统内核中的虚拟网络设备。不同于普通靠硬件网路板卡实现的设备,这些虚拟的网络设备全部用软件实现,并向运行于操作系统上的软件提供与硬件的网络设备完全相同的功能。

    TAP 等同于一个以太网设备,它操作第二层数据包如以太网数据帧。TUN 模拟了网络层设备,操作第三层数据包比如 IP 数据封包。

    操作系统通过 TUN/TAP 设备向绑定该设备的用户空间的程序发送数据,反之,用户空间的程序也可以像操作硬件网络设备那样,通过 TUN/TAP 设备发送数据。在后种情况下,TUN/TAP 设备向操作系统的网络栈投递(或“注入”)数据包,从而模拟从外部接受数据的过程。

    Tun 虚拟设备和物理网卡的区别是 Tun 虚拟设备是 IP 层设备,从/dev/net/tun 字符设备上读取的是 IP 数据包,写入的也只能是 IP 数据包,因此不能进行二层操作,如发送 ARP 请求和以太网广播。与之相对的是,Tap 虚拟设备是以太网设备,处理的是二层以太网数据帧,从/dev/net/tun 字符设备上读取的是以太网数据帧,写入的也只能是以太网数据帧。从这点来看,Tap 虚拟设备和真实的物理网卡的能力更接近。

    原理图

    - +

    tuntap

    Tun/Tap

    在计算机网络中,TUN 与 TAP 是操作系统内核中的虚拟网络设备。不同于普通靠硬件网路板卡实现的设备,这些虚拟的网络设备全部用软件实现,并向运行于操作系统上的软件提供与硬件的网络设备完全相同的功能。

    TAP 等同于一个以太网设备,它操作第二层数据包如以太网数据帧。TUN 模拟了网络层设备,操作第三层数据包比如 IP 数据封包。

    操作系统通过 TUN/TAP 设备向绑定该设备的用户空间的程序发送数据,反之,用户空间的程序也可以像操作硬件网络设备那样,通过 TUN/TAP 设备发送数据。在后种情况下,TUN/TAP 设备向操作系统的网络栈投递(或“注入”)数据包,从而模拟从外部接受数据的过程。

    Tun 虚拟设备和物理网卡的区别是 Tun 虚拟设备是 IP 层设备,从/dev/net/tun 字符设备上读取的是 IP 数据包,写入的也只能是 IP 数据包,因此不能进行二层操作,如发送 ARP 请求和以太网广播。与之相对的是,Tap 虚拟设备是以太网设备,处理的是二层以太网数据帧,从/dev/net/tun 字符设备上读取的是以太网数据帧,写入的也只能是以太网数据帧。从这点来看,Tap 虚拟设备和真实的物理网卡的能力更接近。

    原理图

    + \ No newline at end of file diff --git a/docs/study/net/vpn/index.html b/docs/study/net/vpn/index.html index f83a9b574..ce6f6b110 100644 --- a/docs/study/net/vpn/index.html +++ b/docs/study/net/vpn/index.html @@ -10,14 +10,14 @@ - - + +
    -

    vpn

    简介

    虚拟专用网络(VPN)的功能是:在公用网络上建立专用网络,进行加密通讯。在企业网络中有广泛应用。VPN 网关通过对数据包的加密和数据包目标地址的转换实现远程访问。VPN 可通过服务器、硬件、软件等多种方式实现。

    VPN 属于远程访问技术,简单地说就是利用公用网络架设专用网络。例如某公司员工出差到外地,他想访问企业内网的服务器资源,这种访问就属于远程访问。

    让外地员工访问到内网资源,利用 VPN 的解决方法就是在内网中架设一台 VPN 服务器。外地员工在当地连上互联网后,通过互联网连接 VPN 服务器,然后通过 VPN 服务器进入企业内网。为了保证数据安全,VPN 服务器和客户机之间的通讯数据都进行了加密处理。有了数据加密,就可以认为数据是在一条专用的数据链路上进行安全传输,就如同专门架设了一个专用网络一样,但实际上 VPN 使用的是互联网上的公用链路,因此 VPN 称为虚拟专用网络,其实质上就是利用加密技术在公网上封装出一个数据通讯隧道。有了 VPN 技术,用户无论是在外地出差还是在家中办公,只要能上互联网就能利用 VPN 访问内网资源,这就是 VPN 在企业中应用得如此广泛的原因。

    分类

    按 VPN 的协议分类

    VPN 的隧道协议主要有三种,PPTP、L2TP 和 IPSec,其中 PPTP 和 L2TP 协议工作在 OSI 模型的第二层,又称为二层隧道协议;IPSec 是第三层隧道协议。

    OSI 模型

    分类比较

    VPN 分类速度安全加密
    OpenVPN
    PPTP
    L2TP差(除非和 IPSec 配合)
    IKEv2/IPSec
    SSTP
    WireGuard
    Shadowsocks

    OpenVPN

    OpenVPN 是一个基于 OpenSSL 库的应用层 VPN 实现。和传统 VPN 相比,它的优点是简单易用。

    OpenVpn 的技术核心是虚拟网卡,其次是 SSL 协议实现。

    对虚拟网卡及其在 OpenVpn 的中的工作机理进行介绍:

    虚拟网卡是使用网络底层编程技术实现的一个驱动软件,安装后在主机上多出现一个网卡,可以像其它网卡一样进行配置。服务程序可以在应用层打开虚拟网卡,如果应用软件(如 IE)向虚拟网卡发送数据,则服务程序可以读取到该数据,如果服务程序写合适的数据到虚拟网卡,应用软件也可以接收得到。虚拟网卡在很多的操作系统下都有相应的实现,这也是 OpenVpn 能够跨平台一个很重要的理由。

    在 OpenVpn 中,如果用户访问一个远程的虚拟地址(属于虚拟网卡配用的地址系列,区别于真实地址),则操作系统会通过路由机制将数据包(TUN 模式)或数据帧(TAP 模式)发送到虚拟网卡上,服务程序接收该数据并进行相应的处理后,通过 SOCKET 从外网上发送出去,远程服务程序通过 SOCKET 从外网上接收数据,并进行相应的处理后,发送给虚拟网卡,则应用软件可以接收到,完成了一个单向传输的过程,反之亦然。

    https://community.openvpn.net/openvpn

    https://pritunl.com/

    PPTP

    由微软和其他公司于 1999 年开发,应用非常广泛,但是现在基本被认为是不安全的、过时的。

    L2TP

    第二层隧道协议大约与 PPTP 同时开发。作为一种隧道协议,它本身不加密数据,因此通常与 IPSec 配对。这种模块化使它能够利用 AES 加密。

    和 PPTP 差不多,应用也很广泛,但是存在一定的防火墙问题。

    IKEv2/IPSec

    思科和微软开发,也有很多开源版本,对移动端支持更加友好一些。

    SSTP

    是微软开发用于替代 PPTP 的新协议,但是不是开源的。

    WireGuard

    WireGuard 是最新的,于 2016 年开发。他的代码量非常小,只有 4K,代码量小,意味着好维护以及容易发现问题。开源。

    又快又安全,但是对操作系统的版本要求较高。

    Shadowsocks

    Shadowsocks 是一个免费的开源加密协议项目。它基于 SOCKS5 代理,即 SOCKS 协议的第五个版本,用于通过代理路由您的流量。

    Shadowsocks 旨在提供这种加密,因为它的目的只有一个:绕过中国防火长城。

    对比

    IPSec 协议工作在 OSI 模型的第三层,使其在单独使用时适于保护基于 TCP 或 UDP 的协议(如安全套接子层(SSL)就不能保护 UDP 层的通信流)。这就意味着,与传输层或更高层的协议相比,IPSec 协议必须处理可靠性和分片的问题,这同时也增加了它的复杂性和处理开销。相对而言,SSL/TLS 依靠更高层的 TCP(OSI 的第四层)来管理可靠性和分片。

    参考

    - +

    vpn

    简介

    虚拟专用网络(VPN)的功能是:在公用网络上建立专用网络,进行加密通讯。在企业网络中有广泛应用。VPN 网关通过对数据包的加密和数据包目标地址的转换实现远程访问。VPN 可通过服务器、硬件、软件等多种方式实现。

    VPN 属于远程访问技术,简单地说就是利用公用网络架设专用网络。例如某公司员工出差到外地,他想访问企业内网的服务器资源,这种访问就属于远程访问。

    让外地员工访问到内网资源,利用 VPN 的解决方法就是在内网中架设一台 VPN 服务器。外地员工在当地连上互联网后,通过互联网连接 VPN 服务器,然后通过 VPN 服务器进入企业内网。为了保证数据安全,VPN 服务器和客户机之间的通讯数据都进行了加密处理。有了数据加密,就可以认为数据是在一条专用的数据链路上进行安全传输,就如同专门架设了一个专用网络一样,但实际上 VPN 使用的是互联网上的公用链路,因此 VPN 称为虚拟专用网络,其实质上就是利用加密技术在公网上封装出一个数据通讯隧道。有了 VPN 技术,用户无论是在外地出差还是在家中办公,只要能上互联网就能利用 VPN 访问内网资源,这就是 VPN 在企业中应用得如此广泛的原因。

    分类

    按 VPN 的协议分类

    VPN 的隧道协议主要有三种,PPTP、L2TP 和 IPSec,其中 PPTP 和 L2TP 协议工作在 OSI 模型的第二层,又称为二层隧道协议;IPSec 是第三层隧道协议。

    OSI 模型

    分类比较

    VPN 分类速度安全加密
    OpenVPN
    PPTP
    L2TP差(除非和 IPSec 配合)
    IKEv2/IPSec
    SSTP
    WireGuard
    Shadowsocks

    OpenVPN

    OpenVPN 是一个基于 OpenSSL 库的应用层 VPN 实现。和传统 VPN 相比,它的优点是简单易用。

    OpenVpn 的技术核心是虚拟网卡,其次是 SSL 协议实现。

    对虚拟网卡及其在 OpenVpn 的中的工作机理进行介绍:

    虚拟网卡是使用网络底层编程技术实现的一个驱动软件,安装后在主机上多出现一个网卡,可以像其它网卡一样进行配置。服务程序可以在应用层打开虚拟网卡,如果应用软件(如 IE)向虚拟网卡发送数据,则服务程序可以读取到该数据,如果服务程序写合适的数据到虚拟网卡,应用软件也可以接收得到。虚拟网卡在很多的操作系统下都有相应的实现,这也是 OpenVpn 能够跨平台一个很重要的理由。

    在 OpenVpn 中,如果用户访问一个远程的虚拟地址(属于虚拟网卡配用的地址系列,区别于真实地址),则操作系统会通过路由机制将数据包(TUN 模式)或数据帧(TAP 模式)发送到虚拟网卡上,服务程序接收该数据并进行相应的处理后,通过 SOCKET 从外网上发送出去,远程服务程序通过 SOCKET 从外网上接收数据,并进行相应的处理后,发送给虚拟网卡,则应用软件可以接收到,完成了一个单向传输的过程,反之亦然。

    https://community.openvpn.net/openvpn

    https://pritunl.com/

    PPTP

    由微软和其他公司于 1999 年开发,应用非常广泛,但是现在基本被认为是不安全的、过时的。

    L2TP

    第二层隧道协议大约与 PPTP 同时开发。作为一种隧道协议,它本身不加密数据,因此通常与 IPSec 配对。这种模块化使它能够利用 AES 加密。

    和 PPTP 差不多,应用也很广泛,但是存在一定的防火墙问题。

    IKEv2/IPSec

    思科和微软开发,也有很多开源版本,对移动端支持更加友好一些。

    SSTP

    是微软开发用于替代 PPTP 的新协议,但是不是开源的。

    WireGuard

    WireGuard 是最新的,于 2016 年开发。他的代码量非常小,只有 4K,代码量小,意味着好维护以及容易发现问题。开源。

    又快又安全,但是对操作系统的版本要求较高。

    Shadowsocks

    Shadowsocks 是一个免费的开源加密协议项目。它基于 SOCKS5 代理,即 SOCKS 协议的第五个版本,用于通过代理路由您的流量。

    Shadowsocks 旨在提供这种加密,因为它的目的只有一个:绕过中国防火长城。

    对比

    IPSec 协议工作在 OSI 模型的第三层,使其在单独使用时适于保护基于 TCP 或 UDP 的协议(如安全套接子层(SSL)就不能保护 UDP 层的通信流)。这就意味着,与传输层或更高层的协议相比,IPSec 协议必须处理可靠性和分片的问题,这同时也增加了它的复杂性和处理开销。相对而言,SSL/TLS 依靠更高层的 TCP(OSI 的第四层)来管理可靠性和分片。

    参考

    + \ No newline at end of file diff --git "a/docs/study/net/\344\273\243\347\220\206/index.html" "b/docs/study/net/\344\273\243\347\220\206/index.html" index f282cb422..c80fc6e49 100644 --- "a/docs/study/net/\344\273\243\347\220\206/index.html" +++ "b/docs/study/net/\344\273\243\347\220\206/index.html" @@ -10,14 +10,14 @@ - - + + - +
    + \ No newline at end of file diff --git "a/docs/study/net/\345\206\205\347\275\221\347\251\277\351\200\217/index.html" "b/docs/study/net/\345\206\205\347\275\221\347\251\277\351\200\217/index.html" index 729ce7a1a..6d1f86e49 100644 --- "a/docs/study/net/\345\206\205\347\275\221\347\251\277\351\200\217/index.html" +++ "b/docs/study/net/\345\206\205\347\275\221\347\251\277\351\200\217/index.html" @@ -10,14 +10,14 @@ - - + +
    -

    内网穿透

    内网穿透

    内网,就是在公司或者家庭内部,建立的局域网络或者是办公网络,可以实现多台电脑之间的资源共享,包括设备、资料、数据等。而外网则是通过一个网关与其它的网络系统连接,相对于内网而言,这种网络系统称之为外部网络,常见的就是我们日常使用的互联网。

    一般而言,在没有固定公网 IP 的情况下,外网设备无法直接访问内网设备。而内网穿透技术,顾名思义就是能让外网的设备找到处于内网的设备,从而实现数据通信。

    内网穿透原理

    内网穿透,又称为 NAT 穿透。NAT 背后的设备,它们的主要特点是 ,可以访问外网,但不能被外网设备有效访问。基于这一特点,NAT 穿透技术是让 NAT 背后的设备,先访问指定的外网服务器,由指定的外网服务器搭建桥梁,打通内、外网设备的访问通道,实现外网设备访问到内网设备。

    该技术除了可以访问隐藏在 NAT 后的设备,同样可以穿透防火墙。这是因为防火墙一般只拦截了入站没有拦截出站,所以也可以让防火墙内的设备对外提供服务。

    由于内网设备并不是与外网设备直接相连,所以在安全性上是毋庸置疑的,内网穿透可以说是安全与效率兼得。

    竞品分析

    - +

    内网穿透

    内网穿透

    内网,就是在公司或者家庭内部,建立的局域网络或者是办公网络,可以实现多台电脑之间的资源共享,包括设备、资料、数据等。而外网则是通过一个网关与其它的网络系统连接,相对于内网而言,这种网络系统称之为外部网络,常见的就是我们日常使用的互联网。

    一般而言,在没有固定公网 IP 的情况下,外网设备无法直接访问内网设备。而内网穿透技术,顾名思义就是能让外网的设备找到处于内网的设备,从而实现数据通信。

    内网穿透原理

    内网穿透,又称为 NAT 穿透。NAT 背后的设备,它们的主要特点是 ,可以访问外网,但不能被外网设备有效访问。基于这一特点,NAT 穿透技术是让 NAT 背后的设备,先访问指定的外网服务器,由指定的外网服务器搭建桥梁,打通内、外网设备的访问通道,实现外网设备访问到内网设备。

    该技术除了可以访问隐藏在 NAT 后的设备,同样可以穿透防火墙。这是因为防火墙一般只拦截了入站没有拦截出站,所以也可以让防火墙内的设备对外提供服务。

    由于内网设备并不是与外网设备直接相连,所以在安全性上是毋庸置疑的,内网穿透可以说是安全与效率兼得。

    竞品分析

    + \ No newline at end of file diff --git "a/docs/study/net/\345\261\200\345\237\237\347\275\221IP\345\234\260\345\235\200\350\214\203\345\233\264/index.html" "b/docs/study/net/\345\261\200\345\237\237\347\275\221IP\345\234\260\345\235\200\350\214\203\345\233\264/index.html" index a66db42df..1058c4e2e 100644 --- "a/docs/study/net/\345\261\200\345\237\237\347\275\221IP\345\234\260\345\235\200\350\214\203\345\233\264/index.html" +++ "b/docs/study/net/\345\261\200\345\237\237\347\275\221IP\345\234\260\345\235\200\350\214\203\345\233\264/index.html" @@ -10,15 +10,15 @@ - - + + - +-- 192.168.0.0 ~ 192.168.255.255

    + \ No newline at end of file diff --git "a/docs/study/net/\345\274\202\345\234\260\347\273\204\347\275\221/index.html" "b/docs/study/net/\345\274\202\345\234\260\347\273\204\347\275\221/index.html" index 744f2e85c..a07bc2a6d 100644 --- "a/docs/study/net/\345\274\202\345\234\260\347\273\204\347\275\221/index.html" +++ "b/docs/study/net/\345\274\202\345\234\260\347\273\204\347\275\221/index.html" @@ -10,14 +10,14 @@ - - + +
    -

    异地组网

    网络类型

    对等网络

    组网内各成员身份对等,均可实现互访。

    对等网络(Peer-to-Peer,简称 P2P)是一种分布式网络结构,它允许网络中的节点(又称“对等体”或“用户”)直接进行数据共享和通信,而无需依赖于中心服务器。在对等网络中,每个节点既是客户端又是服务器,因此网络资源和计算能力是分散的,不集中在特定的服务器上。

    集散网络

    组网内区分中心成员和普通成员,普通成员只能访问中心成员,普通成员之间无法互访。

    竞品分析

    贝锐蒲公英

    p2p 的技术方案

    映翰通

    OpenVPN 的技术方案

    可选方案

    • 方案一:SD-VPN:硬件(路由器)来实现 VPN 的 Server(需要公网 IP),参考 TP-LINK,需要公网 IP 这一条就很局限
    • 方案二:OpenVPN:要求是实现多租户隔离
      • 方案二 A:采用多实例的模式,不适合最终方案,不适合运营、维护
      • 方案二 B:采用单实例的模式,不适合最终方案,可以运营、维护
    • 方案三:基于开源的 P2P 项目改造,研发周期长,需要 C/C++人才
    • 方案四:自研 P2P,研发周期长,需要 C/C++人才
    - +

    异地组网

    网络类型

    对等网络

    组网内各成员身份对等,均可实现互访。

    对等网络(Peer-to-Peer,简称 P2P)是一种分布式网络结构,它允许网络中的节点(又称“对等体”或“用户”)直接进行数据共享和通信,而无需依赖于中心服务器。在对等网络中,每个节点既是客户端又是服务器,因此网络资源和计算能力是分散的,不集中在特定的服务器上。

    集散网络

    组网内区分中心成员和普通成员,普通成员只能访问中心成员,普通成员之间无法互访。

    竞品分析

    贝锐蒲公英

    p2p 的技术方案

    映翰通

    OpenVPN 的技术方案

    可选方案

    • 方案一:SD-VPN:硬件(路由器)来实现 VPN 的 Server(需要公网 IP),参考 TP-LINK,需要公网 IP 这一条就很局限
    • 方案二:OpenVPN:要求是实现多租户隔离
      • 方案二 A:采用多实例的模式,不适合最终方案,不适合运营、维护
      • 方案二 B:采用单实例的模式,不适合最终方案,可以运营、维护
    • 方案三:基于开源的 P2P 项目改造,研发周期长,需要 C/C++人才
    • 方案四:自研 P2P,研发周期长,需要 C/C++人才
    + \ No newline at end of file diff --git "a/docs/study/net/\346\212\223\345\214\205\345\267\245\345\205\267/index.html" "b/docs/study/net/\346\212\223\345\214\205\345\267\245\345\205\267/index.html" index c440781ab..a53575aef 100644 --- "a/docs/study/net/\346\212\223\345\214\205\345\267\245\345\205\267/index.html" +++ "b/docs/study/net/\346\212\223\345\214\205\345\267\245\345\205\267/index.html" @@ -10,14 +10,14 @@ - - + +
    -

    抓包工具

    tcpdump

    tcpdump 是一个很常用的网络包分析工具,可以用来显示通过网络传输到本系统的 TCP/IP 以及其他网络的数据包。tcpdump 使用 libpcap 库来抓取网络报,这个库在几乎在所有的 Linux/Unix 中都有。

    tcpdump -i eth0   #捕获指定接口(网卡)的数据包 可通过 netstat -i查看网卡设备
    tcpdump -i eth0 -c 3 #捕获指定个数的数据包(3个数据包)
    tcpdump -A -i eth0 #用ASCII码格式输出捕获的数据包
    tcpdump -D #显示可用的系统接口
    tcpdump -XX -i eth0 #用十六进制和ASCII码格式显示捕获的数据包
    tcpdump -w tempDump.pcap -i eth0 #把捕获的数据包写入到一个.pcap后缀的文件中
    tcpdump -r tempDump.pcap #读取捕获数据包文件的内容
    tcpdump -n -i eth0 # 单个 n 表示不解析域名,直接显示 IP
    tcpdump -i eth0 tcp #捕获TCP类型的数据包
    tcpdump -i eth0 port 22 #捕获指定端口(这里是22)的数据包
    tcpdump -i eth0 src 源ip地址 #捕获请求源是 192.169.12.101 的数据包
    tcpdump -i eth0 dst 目标ip地址 #捕获指定目的IP的数据包
    tcpdump -i eth6 dst host 目标ip地址 and port 8800 -w data.pcap #抓取指定网卡,指定IP和端口的数据包 并写入到data.pcap文件中
    tcpdump host 192.168.12.101 and 192.168.1.201 -w out & #后台抓取两主机之间的数据
    tcpdump -nn #单个 n 表示不解析域名,直接显示 IP;两个 n 表示不解析域名和端口。这样不仅方便查看 IP 和端口号,而且在抓取大量数据时非常高效,因为域名解析会降低抓取速度

    netstat

    netstat 是一个监控 TCP/IP 网络的非常有用的工具,它可以显示路由表、网络连接以及每一个网络接口设备的状态信息。netstat 用于显示与 IP、TCP、UDP 和 ICMP 协议相关的统计数据,一般用于检验本机各端口的网络连接情况。

    netstat -at          #查看当前已经建立的tcp连接
    netstat -au #列出所有 udp 端口
    netstat -lt #只列出所有监听中的 tcp类型的 端口
    netstat -lu #只列出所有监听中的 udp类型的端口
    netstat -antp #查看所有已经建立的tcp连接,并且域名以数字形式显示
    netstat -tupl #查看所有监听的tcp和udp及进程名信息(udp不能监听,但可以查看是否在占用)
    netstat -s #显示所有端口的统计信息
    netstat -st 或 -su #显示 TCP 或 UDP 端口的统计信息
    netstat -i #查看网卡接口信息
    netstat -tulnp |grep nginx #查看nginx服务的网络信息
    - +

    抓包工具

    tcpdump

    tcpdump 是一个很常用的网络包分析工具,可以用来显示通过网络传输到本系统的 TCP/IP 以及其他网络的数据包。tcpdump 使用 libpcap 库来抓取网络报,这个库在几乎在所有的 Linux/Unix 中都有。

    tcpdump -i eth0   #捕获指定接口(网卡)的数据包 可通过 netstat -i查看网卡设备
    tcpdump -i eth0 -c 3 #捕获指定个数的数据包(3个数据包)
    tcpdump -A -i eth0 #用ASCII码格式输出捕获的数据包
    tcpdump -D #显示可用的系统接口
    tcpdump -XX -i eth0 #用十六进制和ASCII码格式显示捕获的数据包
    tcpdump -w tempDump.pcap -i eth0 #把捕获的数据包写入到一个.pcap后缀的文件中
    tcpdump -r tempDump.pcap #读取捕获数据包文件的内容
    tcpdump -n -i eth0 # 单个 n 表示不解析域名,直接显示 IP
    tcpdump -i eth0 tcp #捕获TCP类型的数据包
    tcpdump -i eth0 port 22 #捕获指定端口(这里是22)的数据包
    tcpdump -i eth0 src 源ip地址 #捕获请求源是 192.169.12.101 的数据包
    tcpdump -i eth0 dst 目标ip地址 #捕获指定目的IP的数据包
    tcpdump -i eth6 dst host 目标ip地址 and port 8800 -w data.pcap #抓取指定网卡,指定IP和端口的数据包 并写入到data.pcap文件中
    tcpdump host 192.168.12.101 and 192.168.1.201 -w out & #后台抓取两主机之间的数据
    tcpdump -nn #单个 n 表示不解析域名,直接显示 IP;两个 n 表示不解析域名和端口。这样不仅方便查看 IP 和端口号,而且在抓取大量数据时非常高效,因为域名解析会降低抓取速度

    netstat

    netstat 是一个监控 TCP/IP 网络的非常有用的工具,它可以显示路由表、网络连接以及每一个网络接口设备的状态信息。netstat 用于显示与 IP、TCP、UDP 和 ICMP 协议相关的统计数据,一般用于检验本机各端口的网络连接情况。

    netstat -at          #查看当前已经建立的tcp连接
    netstat -au #列出所有 udp 端口
    netstat -lt #只列出所有监听中的 tcp类型的 端口
    netstat -lu #只列出所有监听中的 udp类型的端口
    netstat -antp #查看所有已经建立的tcp连接,并且域名以数字形式显示
    netstat -tupl #查看所有监听的tcp和udp及进程名信息(udp不能监听,但可以查看是否在占用)
    netstat -s #显示所有端口的统计信息
    netstat -st 或 -su #显示 TCP 或 UDP 端口的统计信息
    netstat -i #查看网卡接口信息
    netstat -tulnp |grep nginx #查看nginx服务的网络信息
    + \ No newline at end of file diff --git "a/docs/study/net/\347\275\221\347\273\234\345\220\236\345\220\220\351\207\217\346\265\213\351\207\217\345\267\245\345\205\267/index.html" "b/docs/study/net/\347\275\221\347\273\234\345\220\236\345\220\220\351\207\217\346\265\213\351\207\217\345\267\245\345\205\267/index.html" index a8af664f4..32d818adb 100644 --- "a/docs/study/net/\347\275\221\347\273\234\345\220\236\345\220\220\351\207\217\346\265\213\351\207\217\345\267\245\345\205\267/index.html" +++ "b/docs/study/net/\347\275\221\347\273\234\345\220\236\345\220\220\351\207\217\346\265\213\351\207\217\345\267\245\345\205\267/index.html" @@ -10,14 +10,14 @@ - - + +
    -

    网络吞吐量测量工具

    iperf3

    iPerf3 是一种用于主动测量 IP 网络上可实现的最大带宽的工具。它支持调整与定时、缓冲区和协议(TCP、UDP、带有 IPv4 和 IPv6 的 SCTP)相关的各种参数。对于每个测试,它都会报告带宽、损耗和其他参数。这是一个新的实现,与原始 iPerf 不共享代码,也不向后兼容。

    netperf

    qperf

    - +

    网络吞吐量测量工具

    iperf3

    iPerf3 是一种用于主动测量 IP 网络上可实现的最大带宽的工具。它支持调整与定时、缓冲区和协议(TCP、UDP、带有 IPv4 和 IPv6 的 SCTP)相关的各种参数。对于每个测试,它都会报告带宽、损耗和其他参数。这是一个新的实现,与原始 iPerf 不共享代码,也不向后兼容。

    netperf

    qperf

    + \ No newline at end of file diff --git "a/docs/study/other/\345\255\227\350\212\202\345\272\217/index.html" "b/docs/study/other/\345\255\227\350\212\202\345\272\217/index.html" index 538cfa6b8..65ae9f2d5 100644 --- "a/docs/study/other/\345\255\227\350\212\202\345\272\217/index.html" +++ "b/docs/study/other/\345\255\227\350\212\202\345\272\217/index.html" @@ -10,16 +10,16 @@ - - + +

    字节序 Big Endian Little Endian

    字节序,也就是字节的顺序,指的是多字节的数据在内存中的存放顺序。

    在几乎所有的机器上,多字节对象都被存储为连续的字节序列。例如:如果 C/C++中的一个 int 型变量 a 的起始地址是&a = 0x100,那么 a 的四个字节将被存储在存储器的 0x100, 0x101, 0x102, 0x103 位置。

    根据整数 a 在连续的 4 byte 内存中的存储顺序,字节序被分为大端序(Big Endian) 与 小端序(Little Endian)两类。 然后就牵涉出两大 CPU 派系:

    Motorola 6800,PowerPC 970,SPARC(除 V9 外)等处理器采用 Big Endian 方式存储数据; x86 系列,VAX,PDP-11 等处理器采用 Little Endian 方式存储数据。 -另外,还有一些处理器像 ARM, DEC Alpha 的字节序是可配置的。

    大端与小端

    大端与小端

    • Big Endian 是指低地址端 存放 高位字节。
    • Little Endian 是指低地址端 存放 低位字节。

    两种字节序:网络序和主机序

    网络字节序:TCP/IP 各层协议将字节序定义为 Big Endian,因此 TCP/IP 协议中使用的字节序是大端序。是确定的

    主机字节序:整数在内存中存储的顺序,由 CPU 架构决定,可能是小端,也可能是大端,常用的 Intel 与 AMD 的 CPU 均为小端字节序。

    在进行网络通信时 通常需要调用相应的函数进行主机序和网络序的转换。

    参考

    - +另外,还有一些处理器像 ARM, DEC Alpha 的字节序是可配置的。

    大端与小端

    大端与小端

    • Big Endian 是指低地址端 存放 高位字节。
    • Little Endian 是指低地址端 存放 低位字节。

    两种字节序:网络序和主机序

    网络字节序:TCP/IP 各层协议将字节序定义为 Big Endian,因此 TCP/IP 协议中使用的字节序是大端序。是确定的

    主机字节序:整数在内存中存储的顺序,由 CPU 架构决定,可能是小端,也可能是大端,常用的 Intel 与 AMD 的 CPU 均为小端字节序。

    在进行网络通信时 通常需要调用相应的函数进行主机序和网络序的转换。

    参考

    + \ No newline at end of file diff --git a/docs/study/program/ABIAPI/index.html b/docs/study/program/ABIAPI/index.html index d7cd33142..c8dc7abb2 100644 --- a/docs/study/program/ABIAPI/index.html +++ b/docs/study/program/ABIAPI/index.html @@ -10,14 +10,14 @@ - - + +
    -

    ABIAPI

    ABI

    ABI(Application Binary Interface):应用程序二进制接口,描述了应用程序和操作系统之间,一个应用和它的库之间,或者应用的组成部分之间的低接口。

    API

    应用程序接口(Application Programming Interface,API),又称为应用编程接口,就是软件系统不同组成部分衔接的约定。

    参考

    - +

    ABIAPI

    ABI

    ABI(Application Binary Interface):应用程序二进制接口,描述了应用程序和操作系统之间,一个应用和它的库之间,或者应用的组成部分之间的低接口。

    API

    应用程序接口(Application Programming Interface,API),又称为应用编程接口,就是软件系统不同组成部分衔接的约定。

    参考

    + \ No newline at end of file diff --git "a/docs/study/program/C/C\350\257\255\350\250\200\346\240\207\345\207\206\345\272\223/index.html" "b/docs/study/program/C/C\350\257\255\350\250\200\346\240\207\345\207\206\345\272\223/index.html" index fd8bacbf7..15d8e6d65 100644 --- "a/docs/study/program/C/C\350\257\255\350\250\200\346\240\207\345\207\206\345\272\223/index.html" +++ "b/docs/study/program/C/C\350\257\255\350\250\200\346\240\207\345\207\206\345\272\223/index.html" @@ -10,14 +10,14 @@ - - + +
    -

    C语言标准库

    C 语言标准库

    C 语言标准库是一组预定义函数、宏和文件的集合,这些函数和文件提供了一些基本的功能和操作,可供 C 语言程序使用。C 语言标准库由 C 语言的制定者定义,并包含在 C 语言的编译器中。

    C 语言没有官方网站,ISO 的官方网站和 ANSI 的网站,提供了 C 语言标准的相关信息。

    不同编译器对 C 语言标准的支持程度是不同,在进行开发的时候,不仅要选择适当的编译器,可能还需要手动指定 C 语言标准。

    C 语言有多少个标准头文件呢呢?

    不确定:这和编译器、编译器的版本和配置有关。

    常用的 C 语言标准库有:

    • stdio.h:提供输入输出函数,如 printf()和 scanf()等。
    • stdlib.h:提供通用工具函数,如 malloc()和 free()等。
    • string.h:提供字符串处理函数,如 strcpy()和 strcat()等。
    • math.h:提供数学函数,如 sin()和 cos()等。
    • time.h:提供时间处理函数,如 time()和 clock()等。
    • ctype.h:提供字符处理函数,如 isalpha()和 isdigit()等。
    • assert.h:提供断言宏,用于调试程序。
    • stdarg.h:提供可变参数列表的函数,如 printf()和 scanf()等。
    • errno.h:提供错误码宏,用于标识错误类型。
    • setjmp.h:提供非局部跳转函数,如 setjmp()和 longjmp()等。
    • signal.h:提供信号处理函数,如 signal()和 raise()等。
    • locale.h:提供本地化处理函数,如 setlocale()和 localeconv()等。
    • float.h:提供浮点数处理宏,如 FLT_DIG 和 DBL_MAX 等。
    • limits.h:提供整数处理宏,如 INT_MAX 和 LONG_MAX 等。
    • stddef.h:提供基本类型定义,如 size_t 和 ptrdiff_t 等。

    参考

    - +

    C语言标准库

    C 语言标准库

    C 语言标准库是一组预定义函数、宏和文件的集合,这些函数和文件提供了一些基本的功能和操作,可供 C 语言程序使用。C 语言标准库由 C 语言的制定者定义,并包含在 C 语言的编译器中。

    C 语言没有官方网站,ISO 的官方网站和 ANSI 的网站,提供了 C 语言标准的相关信息。

    不同编译器对 C 语言标准的支持程度是不同,在进行开发的时候,不仅要选择适当的编译器,可能还需要手动指定 C 语言标准。

    C 语言有多少个标准头文件呢呢?

    不确定:这和编译器、编译器的版本和配置有关。

    常用的 C 语言标准库有:

    • stdio.h:提供输入输出函数,如 printf()和 scanf()等。
    • stdlib.h:提供通用工具函数,如 malloc()和 free()等。
    • string.h:提供字符串处理函数,如 strcpy()和 strcat()等。
    • math.h:提供数学函数,如 sin()和 cos()等。
    • time.h:提供时间处理函数,如 time()和 clock()等。
    • ctype.h:提供字符处理函数,如 isalpha()和 isdigit()等。
    • assert.h:提供断言宏,用于调试程序。
    • stdarg.h:提供可变参数列表的函数,如 printf()和 scanf()等。
    • errno.h:提供错误码宏,用于标识错误类型。
    • setjmp.h:提供非局部跳转函数,如 setjmp()和 longjmp()等。
    • signal.h:提供信号处理函数,如 signal()和 raise()等。
    • locale.h:提供本地化处理函数,如 setlocale()和 localeconv()等。
    • float.h:提供浮点数处理宏,如 FLT_DIG 和 DBL_MAX 等。
    • limits.h:提供整数处理宏,如 INT_MAX 和 LONG_MAX 等。
    • stddef.h:提供基本类型定义,如 size_t 和 ptrdiff_t 等。

    参考

    + \ No newline at end of file diff --git "a/docs/study/program/C/MFC-WinForm-WPF-DotNet\347\255\211/index.html" "b/docs/study/program/C/MFC-WinForm-WPF-DotNet\347\255\211/index.html" index aea8bcaed..a63f42b33 100644 --- "a/docs/study/program/C/MFC-WinForm-WPF-DotNet\347\255\211/index.html" +++ "b/docs/study/program/C/MFC-WinForm-WPF-DotNet\347\255\211/index.html" @@ -10,14 +10,14 @@ - - + +
    -

    MFC-WinForm-WPF-DotNet等

    MFC

    MFC(Microsoft Foundation Classes),是微软公司提供的一个类库(class libraries),以 C++类的形式封装了 Windows 的 API,并且包含一个应用程序框架,以减少应用程序开发人员的工作量。其中包含的类包含大量 Windows 句柄封装类和很多 Windows 的内建控件和组件的封装类。

    WinForm

    Windows Form,简称 WinForm 是微软 .NET 平台 下用于开发“图形界面”应用程序的组件。

    WPF

    WPF(Windows Presentation Foundation)是微软推出的基于 Windows 的用户界面框架,属于.NET Framework 3.0 的一部分。它提供了统一的编程模型、语言和框架,真正做到了分离界面设计人员与开发人员的工作;同时它提供了全新的多媒体交互用户图形界面。

    DirectX

    DirectX(Direct eXtension,简称 DX)是由微软公司创建的多媒体编程接口,是一种应用程序接口(API)。DirectX 可以让以 windows 为平台的游戏或多媒体程序获得更高的执行效率,加强 3D 图形和声音效果,并提供设计人员一个共同的硬件驱动标准,让游戏开发者不必为每一品牌的硬件来写不同的驱动程序,也降低用户安装及设置硬件的复杂度。DirectX 已被广泛使用于 Microsoft Windows、Microsoft XBOX、Microsoft XBOX 360 和 Microsoft XBOX ONE 电子游戏开发。

    .NET

    .NET 是一种用于构建多种应用的免费开源开发平台,可以使用 C#、F#或 Visual Basic 编写.NET 应用。 .NET 用于生成多种类型的应用程序和库开发 Web 应用、Web API 和微服务、云中的无服务器函数、云原生应用、移动应用、桌面应用、Windows WPF、Windows 窗体、通用 Windows 平台 (UWP)、游戏、物联网 (IoT)、机器学习、控制台应用、Windows 服务。.NET 类库在不同应用和应用类型中共享功能,无论构建哪种类型的应用,代码和项目文件看起来都一样,可以访问每个应用的相同运行时、API 和语言功能。

    .NET core

    .NET Core 是适用于 Windows、Linux 和 macOS 的免费、开源托管的计算机软件框架,是微软开发的第一个官方版本,具有跨平台能力的应用程序开发框架 (Application Framework),未来也将会支持 FreeBSD 与 Alpine 平台,也是微软在一开始发展时就开源的软件平台 ,它经常也会拿来和现有的开源 .NET 平台 Mono 比较。

    UWP

    UWP 即 Windows 10 中的 Universal Windows Platform 简称。即 Windows 通用应用平台,在 Windows 10 Mobile/Surface(Windows 平板电脑)/PC/Xbox/HoloLens 等平台上运行,uwp 不同于传统 pc 上的 exe 应用,也跟只适用于手机端的 app 有本质区别。它并不是为某一个终端而设计,而是可以在所有 Windows10 设备上运行。

    C#

    C#是微软公司发布的一种由 C 和 C++衍生出来的面向对象的编程语言、运行于.NET Framework 和.NET Core(完全开源,跨平台)之上的高级程序设计语言。

    C#是由 C 和 C++衍生出来的一种安全的、稳定的、简单的、优雅的面向对象编程语言。它在继承 C 和 C++强大功能的同时去掉了一些它们的复杂特性(例如没有宏以及不允许多重继承)。C#综合了 VB 简单的可视化操作和 C++的高运行效率,以其强大的操作能力、优雅的语法风格、创新的语言特性和便捷的面向组件编程的支持成为.NET 开发的首选语言。

    Delphi

    Delphi,是 Windows 平台下著名的快速应用程序开发工具(Rapid Application Development,简称 RAD)。它的前身,即是 DOS 时代盛行一时的“BorlandTurbo Pascal”,最早的版本由美国 Borland(宝兰)公司于 1995 年开发。主创者为 Anders Hejlsberg。经过数年的发展,此产品也转移至 Embarcadero 公司旗下。Delphi 是一个集成开发环境(IDE),使用的核心是由传统 Pascal 语言发展而来的 Object Pascal,以图形用户界面为开发环境,透过 IDE、VCL 工具与编译器,配合连结数据库的功能,构成一个以面向对象程序设计为中心的应用程序开发工具。已没落,现在很少有人用了

    参考

    - +

    MFC-WinForm-WPF-DotNet等

    MFC

    MFC(Microsoft Foundation Classes),是微软公司提供的一个类库(class libraries),以 C++类的形式封装了 Windows 的 API,并且包含一个应用程序框架,以减少应用程序开发人员的工作量。其中包含的类包含大量 Windows 句柄封装类和很多 Windows 的内建控件和组件的封装类。

    WinForm

    Windows Form,简称 WinForm 是微软 .NET 平台 下用于开发“图形界面”应用程序的组件。

    WPF

    WPF(Windows Presentation Foundation)是微软推出的基于 Windows 的用户界面框架,属于.NET Framework 3.0 的一部分。它提供了统一的编程模型、语言和框架,真正做到了分离界面设计人员与开发人员的工作;同时它提供了全新的多媒体交互用户图形界面。

    DirectX

    DirectX(Direct eXtension,简称 DX)是由微软公司创建的多媒体编程接口,是一种应用程序接口(API)。DirectX 可以让以 windows 为平台的游戏或多媒体程序获得更高的执行效率,加强 3D 图形和声音效果,并提供设计人员一个共同的硬件驱动标准,让游戏开发者不必为每一品牌的硬件来写不同的驱动程序,也降低用户安装及设置硬件的复杂度。DirectX 已被广泛使用于 Microsoft Windows、Microsoft XBOX、Microsoft XBOX 360 和 Microsoft XBOX ONE 电子游戏开发。

    .NET

    .NET 是一种用于构建多种应用的免费开源开发平台,可以使用 C#、F#或 Visual Basic 编写.NET 应用。 .NET 用于生成多种类型的应用程序和库开发 Web 应用、Web API 和微服务、云中的无服务器函数、云原生应用、移动应用、桌面应用、Windows WPF、Windows 窗体、通用 Windows 平台 (UWP)、游戏、物联网 (IoT)、机器学习、控制台应用、Windows 服务。.NET 类库在不同应用和应用类型中共享功能,无论构建哪种类型的应用,代码和项目文件看起来都一样,可以访问每个应用的相同运行时、API 和语言功能。

    .NET core

    .NET Core 是适用于 Windows、Linux 和 macOS 的免费、开源托管的计算机软件框架,是微软开发的第一个官方版本,具有跨平台能力的应用程序开发框架 (Application Framework),未来也将会支持 FreeBSD 与 Alpine 平台,也是微软在一开始发展时就开源的软件平台 ,它经常也会拿来和现有的开源 .NET 平台 Mono 比较。

    UWP

    UWP 即 Windows 10 中的 Universal Windows Platform 简称。即 Windows 通用应用平台,在 Windows 10 Mobile/Surface(Windows 平板电脑)/PC/Xbox/HoloLens 等平台上运行,uwp 不同于传统 pc 上的 exe 应用,也跟只适用于手机端的 app 有本质区别。它并不是为某一个终端而设计,而是可以在所有 Windows10 设备上运行。

    C#

    C#是微软公司发布的一种由 C 和 C++衍生出来的面向对象的编程语言、运行于.NET Framework 和.NET Core(完全开源,跨平台)之上的高级程序设计语言。

    C#是由 C 和 C++衍生出来的一种安全的、稳定的、简单的、优雅的面向对象编程语言。它在继承 C 和 C++强大功能的同时去掉了一些它们的复杂特性(例如没有宏以及不允许多重继承)。C#综合了 VB 简单的可视化操作和 C++的高运行效率,以其强大的操作能力、优雅的语法风格、创新的语言特性和便捷的面向组件编程的支持成为.NET 开发的首选语言。

    Delphi

    Delphi,是 Windows 平台下著名的快速应用程序开发工具(Rapid Application Development,简称 RAD)。它的前身,即是 DOS 时代盛行一时的“BorlandTurbo Pascal”,最早的版本由美国 Borland(宝兰)公司于 1995 年开发。主创者为 Anders Hejlsberg。经过数年的发展,此产品也转移至 Embarcadero 公司旗下。Delphi 是一个集成开发环境(IDE),使用的核心是由传统 Pascal 语言发展而来的 Object Pascal,以图形用户界面为开发环境,透过 IDE、VCL 工具与编译器,配合连结数据库的功能,构成一个以面向对象程序设计为中心的应用程序开发工具。已没落,现在很少有人用了

    参考

    + \ No newline at end of file diff --git a/docs/study/program/C/cmake/index.html b/docs/study/program/C/cmake/index.html index 407302de9..32d3a2d5c 100644 --- a/docs/study/program/C/cmake/index.html +++ b/docs/study/program/C/cmake/index.html @@ -10,14 +10,14 @@ - - + +
    -

    cmake

    cmake 介绍

    你或许听过好几种 Make 工具,例如 GNU Make ,QT 的 qmake ,微软的 MS nmake,BSD Make(pmake),Makepp,等等。这些 Make 工具遵循着不同的规范和标准,所执行的 Makefile 格式也千差万别。这样就带来了一个严峻的问题:如果软件想跨平台,必须要保证能够在不同平台编译。而如果使用上面的 Make 工具,就得为每一种标准写一次 Makefile ,这将是一件让人抓狂的工作。

    CMake 就是针对上面问题所设计的工具:它首先允许开发者编写一种平台无关的 CMakeList.txt 文件来定制整个编译流程,然后再根据目标用户的平台进一步生成所需的本地化 Makefile 和工程文件,如 Unix 的 Makefile 或 Windows 的 Visual Studio 工程。从而做到“Write once, run everywhere”。显然,CMake 是一个比上述几种 make 更高级的编译配置工具。一些使用 CMake 作为项目架构系统的知名开源项目有 VTK、ITK、KDE、OpenCV、OSG 等 。

    在 linux 平台下使用 CMake 生成 Makefile 并编译的流程如下:

    • 写 CMake 配置文件 CMakeLists.txt 。
    • 执行命令 cmake PATH 或者 ccmake PATH 生成 Makefile(ccmake 和 cmake 的区别在于前者提供了一个交互式的界面)。其中, PATH 是 CMakeLists.txt 所在的目录。
    • 使用 make 命令进行编译。
    - +

    cmake

    cmake 介绍

    你或许听过好几种 Make 工具,例如 GNU Make ,QT 的 qmake ,微软的 MS nmake,BSD Make(pmake),Makepp,等等。这些 Make 工具遵循着不同的规范和标准,所执行的 Makefile 格式也千差万别。这样就带来了一个严峻的问题:如果软件想跨平台,必须要保证能够在不同平台编译。而如果使用上面的 Make 工具,就得为每一种标准写一次 Makefile ,这将是一件让人抓狂的工作。

    CMake 就是针对上面问题所设计的工具:它首先允许开发者编写一种平台无关的 CMakeList.txt 文件来定制整个编译流程,然后再根据目标用户的平台进一步生成所需的本地化 Makefile 和工程文件,如 Unix 的 Makefile 或 Windows 的 Visual Studio 工程。从而做到“Write once, run everywhere”。显然,CMake 是一个比上述几种 make 更高级的编译配置工具。一些使用 CMake 作为项目架构系统的知名开源项目有 VTK、ITK、KDE、OpenCV、OSG 等 。

    在 linux 平台下使用 CMake 生成 Makefile 并编译的流程如下:

    • 写 CMake 配置文件 CMakeLists.txt 。
    • 执行命令 cmake PATH 或者 ccmake PATH 生成 Makefile(ccmake 和 cmake 的区别在于前者提供了一个交互式的界面)。其中, PATH 是 CMakeLists.txt 所在的目录。
    • 使用 make 命令进行编译。
    + \ No newline at end of file diff --git a/docs/study/program/C/extern-c/index.html b/docs/study/program/C/extern-c/index.html index ee472523b..e3e739ab6 100644 --- a/docs/study/program/C/extern-c/index.html +++ b/docs/study/program/C/extern-c/index.html @@ -10,14 +10,14 @@ - - + + - +
    + \ No newline at end of file diff --git a/docs/study/program/C/index.html b/docs/study/program/C/index.html index 7fb4fd0f8..d60dbadb5 100644 --- a/docs/study/program/C/index.html +++ b/docs/study/program/C/index.html @@ -10,14 +10,14 @@ - - + + - +
    + \ No newline at end of file diff --git a/docs/study/program/C/make/index.html b/docs/study/program/C/make/index.html index c91eb0ae5..b235efb7b 100644 --- a/docs/study/program/C/make/index.html +++ b/docs/study/program/C/make/index.html @@ -10,14 +10,14 @@ - - + +
    -

    make

    make 是一条计算机指令,是在安装有 GNU Make 的计算机上的可执行指令。该指令是读入一个名为 makefile 的文件,然后执行这个文件中指定的指令。

    make 的一些常用参数

    • make :根据 Makefile 编译源代码,连接,生成目标文件,可执行文件。
    • make install :安装编译好的程序和库,头文件到系统中,一般为/usr/local/bin 目录。
    • make clean : 清除上次的 make 命令所产生的 object 文件(后缀为“.o”的文件)及可执行文件。(make 的反向操作)

    参考

    - +

    make

    make 是一条计算机指令,是在安装有 GNU Make 的计算机上的可执行指令。该指令是读入一个名为 makefile 的文件,然后执行这个文件中指定的指令。

    make 的一些常用参数

    • make :根据 Makefile 编译源代码,连接,生成目标文件,可执行文件。
    • make install :安装编译好的程序和库,头文件到系统中,一般为/usr/local/bin 目录。
    • make clean : 清除上次的 make 命令所产生的 object 文件(后缀为“.o”的文件)及可执行文件。(make 的反向操作)

    参考

    + \ No newline at end of file diff --git a/docs/study/program/C/pragma/index.html b/docs/study/program/C/pragma/index.html index dfd288b12..2e184d1f6 100644 --- a/docs/study/program/C/pragma/index.html +++ b/docs/study/program/C/pragma/index.html @@ -10,14 +10,14 @@ - - + + - +
    + \ No newline at end of file diff --git a/docs/study/program/C/size_t-ptrdiff_t-intptr_t-uintptr_t/index.html b/docs/study/program/C/size_t-ptrdiff_t-intptr_t-uintptr_t/index.html index f8f00b8e1..dec3377cb 100644 --- a/docs/study/program/C/size_t-ptrdiff_t-intptr_t-uintptr_t/index.html +++ b/docs/study/program/C/size_t-ptrdiff_t-intptr_t-uintptr_t/index.html @@ -10,14 +10,14 @@ - - + +
    -

    size_t-ptrdiff_t-intptr_t-uintptr_t

    • size_t

    size_t 是无符号整数类型,这是 sizeof 操作符结果的类型。如果设备的地址空间为 32 位,这就是一个 32 位无符号整数;如果设备的地址空间是 64 位,这就是一个 64 位无符号整数。换而言之,一个 size_t 类型的变量能够安全保存一个指针(唯一的例外是指向类函数的指针)。size_t 通常用于 loop 计数器,数组索引和地址算数。

    • ptrdiff_t

    ptrdiff_t 是有符号整数类型,这是两个指针相减结果的类型。如果设备的地址空间为 32 位,这就是一个 32 位有符号整数;如果设备的地址空间是 64 位,这就是一个 64 位有符号整数。与 size_t 一样,ptrdiff_t 能安全存储除类函数指针外的指针。

    size_t 和 ptr_diff 的大小总是和指针的大小一致,因此适合用来索引大数组、存储指针以及指针运算等。

    • intptr_t

    有符号整数类型,它有一个性质,任何指向 void 的合法指针都可以转化为这个类型,然后还可以再转换回指向 void 的指针,其结果与原指针比较是相等的。

    • uintptr_t

    无符号整数类型,它有一个性质,任何指向 void 的合法指针都可以转化为这个类型,然后还可以再转换回指向 void 的指针,其结果与原指针比较是相等的。

    - +

    size_t-ptrdiff_t-intptr_t-uintptr_t

    • size_t

    size_t 是无符号整数类型,这是 sizeof 操作符结果的类型。如果设备的地址空间为 32 位,这就是一个 32 位无符号整数;如果设备的地址空间是 64 位,这就是一个 64 位无符号整数。换而言之,一个 size_t 类型的变量能够安全保存一个指针(唯一的例外是指向类函数的指针)。size_t 通常用于 loop 计数器,数组索引和地址算数。

    • ptrdiff_t

    ptrdiff_t 是有符号整数类型,这是两个指针相减结果的类型。如果设备的地址空间为 32 位,这就是一个 32 位有符号整数;如果设备的地址空间是 64 位,这就是一个 64 位有符号整数。与 size_t 一样,ptrdiff_t 能安全存储除类函数指针外的指针。

    size_t 和 ptr_diff 的大小总是和指针的大小一致,因此适合用来索引大数组、存储指针以及指针运算等。

    • intptr_t

    有符号整数类型,它有一个性质,任何指向 void 的合法指针都可以转化为这个类型,然后还可以再转换回指向 void 的指针,其结果与原指针比较是相等的。

    • uintptr_t

    无符号整数类型,它有一个性质,任何指向 void 的合法指针都可以转化为这个类型,然后还可以再转换回指向 void 的指针,其结果与原指针比较是相等的。

    + \ No newline at end of file diff --git "a/docs/study/program/C/\346\226\271\346\263\225\345\272\223-\351\235\231\346\200\201\345\272\223-\345\212\250\346\200\201\345\272\223-\345\205\261\344\272\253\345\272\223/index.html" "b/docs/study/program/C/\346\226\271\346\263\225\345\272\223-\351\235\231\346\200\201\345\272\223-\345\212\250\346\200\201\345\272\223-\345\205\261\344\272\253\345\272\223/index.html" index 79a219075..8c11ae22e 100644 --- "a/docs/study/program/C/\346\226\271\346\263\225\345\272\223-\351\235\231\346\200\201\345\272\223-\345\212\250\346\200\201\345\272\223-\345\205\261\344\272\253\345\272\223/index.html" +++ "b/docs/study/program/C/\346\226\271\346\263\225\345\272\223-\351\235\231\346\200\201\345\272\223-\345\212\250\346\200\201\345\272\223-\345\205\261\344\272\253\345\272\223/index.html" @@ -10,14 +10,14 @@ - - + +
    -

    方法库-静态库-动态库-共享库

    方法库可以分为两类:

    • 静态库

    • 动态库(也可以称为共享库)

    • windows 下静态库以.lib 为后缀,动态库以.dll 为后缀

    • linux 下静态库以.a 为后缀,动态库以.so 为后缀

    • mac 下静态库以.a 为后缀,动态库以.dylib 为后缀;同时.framework 为后缀的文件,有可能是静态库,也有可能是动态库

    因为在操作系统中运行的是可执行程序,静态库会 copy 到可执行程序中,而动态库只是被可执行程序引用;

    一个在里面,一个在外面,两者是有区别的。

    - +

    方法库-静态库-动态库-共享库

    方法库可以分为两类:

    • 静态库

    • 动态库(也可以称为共享库)

    • windows 下静态库以.lib 为后缀,动态库以.dll 为后缀

    • linux 下静态库以.a 为后缀,动态库以.so 为后缀

    • mac 下静态库以.a 为后缀,动态库以.dylib 为后缀;同时.framework 为后缀的文件,有可能是静态库,也有可能是动态库

    因为在操作系统中运行的是可执行程序,静态库会 copy 到可执行程序中,而动态库只是被可执行程序引用;

    一个在里面,一个在外面,两者是有区别的。

    + \ No newline at end of file diff --git "a/docs/study/program/C/\346\236\204\345\273\272\345\267\245\345\205\267/index.html" "b/docs/study/program/C/\346\236\204\345\273\272\345\267\245\345\205\267/index.html" index 4322430c5..a11017212 100644 --- "a/docs/study/program/C/\346\236\204\345\273\272\345\267\245\345\205\267/index.html" +++ "b/docs/study/program/C/\346\236\204\345\273\272\345\267\245\345\205\267/index.html" @@ -10,15 +10,15 @@ - - + +

    构建工具

    C 语言构建工具

    在 C 语言开发中,使用构建工具可以简化代码编译、构建和部署等过程,提高开发效率和代码质量。

    下面介绍一些常用的 C 语言构建工具。

    Make:

    Make 是一个流行的构建工具,它可以自动化执行代码编译、构建和部署等过程。Make 基于 Makefile 文件进行配置,通过 Makefile 文件中的规则和依赖关系,可以定义源代码文件、头文件和可执行文件等各个部分之间的关系。Make 具有简单易用、可扩展性强等优点,因此被广泛应用于 C 语言开发中。

    CMake:

    CMake 是一个跨平台的构建工具,可以自动生成 Makefile 文件,从而简化构建过程。CMake 支持多种平台和编译器,可以通过简单的命令行参数和配置文件进行配置。CMake 具有简单易用、跨平台、可扩展性强等优点,因此被广泛应用于 C 语言开发中。

    Autotools:

    Autotools 是一个流行的自动化构建工具集,包括 Autoconf、Automake 和 Libtool 等组件。其中,Autoconf 用于检查系统环境和生成 Makefile.in 文件,Automake 用于生成 Makefile 文件,Libtool 用于管理库文件的编译和链接。Autotools 具有跨平台、可扩展性强等优点,被广泛应用于 C 语言开发中。

    在 linux 上编译一个工程需要先调用./configure,大部分 linux 开源项目都使用 autotools 编译架构来生成 configure 这个脚本文件。通过在执行./configure,产生 Makefile,src/Makefile,config.h,为下一步编译做准备。随后调用 make 进行编译。

    GNU 构建系统,是利用脚本和 make 程序在特定的平台上构建软件的过程。一般过程是 configure,make,make install 三部曲。这种方式成为一种习惯,被广泛使用。 -为了简化可移植构建的难度,早期有一套 AutoTools 的工具帮助程序员构建软件。configure,make,make install 三部曲,大多都是基于 Auto Tools 来构建的。Auto Tools 是 GNU 程序的标准构建系统。

    SCons:

    SCons 是一个 Python 编写的构建工具,它可以自动化执行代码编译、构建和部署等过程。SCons 基于 Python 语言进行配置,通过 Python 脚本文件中的规则和依赖关系,可以定义源代码文件、头文件和可执行文件等各个部分之间的关系。SCons 具有可扩展性强、易于配置等优点,因此被广泛应用于 C 语言开发中。

    Ninja:

    Ninja 是一个快速的构建工具,可以生成高效的构建图谱,从而提高代码编译、构建和部署的速度。Ninja 可以使用 Ninjafile 文件进行配置,通过 Ninjafile 文件中的规则和依赖关系,可以定义源代码文件、头文件和可执行文件等各个部分之间的关系。Ninja 具有速度快、可扩展性强等优点,因此被广泛应用于 C 语言开发中。

    bazel

    xmake

    https://xmake.io/#/zh-cn/

    一个基于 Lua 的轻量级跨平台自动构建工具

    简单,快速,轻量无依赖

    现代化的 C/C++ 构建工具,强大的依赖包管理和集成

    参考

    - +为了简化可移植构建的难度,早期有一套 AutoTools 的工具帮助程序员构建软件。configure,make,make install 三部曲,大多都是基于 Auto Tools 来构建的。Auto Tools 是 GNU 程序的标准构建系统。

    SCons:

    SCons 是一个 Python 编写的构建工具,它可以自动化执行代码编译、构建和部署等过程。SCons 基于 Python 语言进行配置,通过 Python 脚本文件中的规则和依赖关系,可以定义源代码文件、头文件和可执行文件等各个部分之间的关系。SCons 具有可扩展性强、易于配置等优点,因此被广泛应用于 C 语言开发中。

    Ninja:

    Ninja 是一个快速的构建工具,可以生成高效的构建图谱,从而提高代码编译、构建和部署的速度。Ninja 可以使用 Ninjafile 文件进行配置,通过 Ninjafile 文件中的规则和依赖关系,可以定义源代码文件、头文件和可执行文件等各个部分之间的关系。Ninja 具有速度快、可扩展性强等优点,因此被广泛应用于 C 语言开发中。

    bazel

    xmake

    https://xmake.io/#/zh-cn/

    一个基于 Lua 的轻量级跨平台自动构建工具

    简单,快速,轻量无依赖

    现代化的 C/C++ 构建工具,强大的依赖包管理和集成

    参考

    + \ No newline at end of file diff --git "a/docs/study/program/C/\350\231\232\346\213\237\347\275\221\345\215\241/index.html" "b/docs/study/program/C/\350\231\232\346\213\237\347\275\221\345\215\241/index.html" index cbd6d9f98..bfc30d9e2 100644 --- "a/docs/study/program/C/\350\231\232\346\213\237\347\275\221\345\215\241/index.html" +++ "b/docs/study/program/C/\350\231\232\346\213\237\347\275\221\345\215\241/index.html" @@ -10,14 +10,14 @@ - - + +
    -

    虚拟网卡

    TUN/TAP(Linux)

    在计算机网络中,TUN 与 TAP 是操作系统内核中的虚拟网络设备。不同于普通靠硬件网路板卡实现的设备,这些虚拟的网络设备全部用软件实现,并向运行于操作系统上的软件提供与硬件的网络设备完全相同的功能。

    TAP 等同于一个以太网设备,它操作第二层数据包如以太网数据帧。TUN 模拟了网络层设备,操作第三层数据包比如 IP 数据封包。

    操作系统通过 TUN/TAP 设备向绑定该设备的用户空间的程序发送数据,反之,用户空间的程序也可以像操作硬件网络设备那样,通过 TUN/TAP 设备发送数据。在后种情况下,TUN/TAP 设备向操作系统的网络栈投递(或“注入”)数据包,从而模拟从外部接受数据的过程。

    服务器如果拥有 TUN/TAP 模块,就可以开启 VPN 代理功能。

    WinTun

    https://www.wintun.net/

    WinTun 是 Windows 内核的一个非常简单和最小的 TUN 驱动程序,它为用户空间程序提供了一个简单的网络适配器,用于读取和写入数据包。

    参考

    - +

    虚拟网卡

    TUN/TAP(Linux)

    在计算机网络中,TUN 与 TAP 是操作系统内核中的虚拟网络设备。不同于普通靠硬件网路板卡实现的设备,这些虚拟的网络设备全部用软件实现,并向运行于操作系统上的软件提供与硬件的网络设备完全相同的功能。

    TAP 等同于一个以太网设备,它操作第二层数据包如以太网数据帧。TUN 模拟了网络层设备,操作第三层数据包比如 IP 数据封包。

    操作系统通过 TUN/TAP 设备向绑定该设备的用户空间的程序发送数据,反之,用户空间的程序也可以像操作硬件网络设备那样,通过 TUN/TAP 设备发送数据。在后种情况下,TUN/TAP 设备向操作系统的网络栈投递(或“注入”)数据包,从而模拟从外部接受数据的过程。

    服务器如果拥有 TUN/TAP 模块,就可以开启 VPN 代理功能。

    WinTun

    https://www.wintun.net/

    WinTun 是 Windows 内核的一个非常简单和最小的 TUN 驱动程序,它为用户空间程序提供了一个简单的网络适配器,用于读取和写入数据包。

    参考

    + \ No newline at end of file diff --git a/docs/study/program/CPP/CGI/index.html b/docs/study/program/CPP/CGI/index.html index 94cb61c69..6f8919687 100644 --- a/docs/study/program/CPP/CGI/index.html +++ b/docs/study/program/CPP/CGI/index.html @@ -10,14 +10,14 @@ - - + + - +
    + \ No newline at end of file diff --git "a/docs/study/program/CPP/CPP\350\277\233\347\250\213\351\227\264\351\200\232\344\277\241/index.html" "b/docs/study/program/CPP/CPP\350\277\233\347\250\213\351\227\264\351\200\232\344\277\241/index.html" index a32630858..f3a157546 100644 --- "a/docs/study/program/CPP/CPP\350\277\233\347\250\213\351\227\264\351\200\232\344\277\241/index.html" +++ "b/docs/study/program/CPP/CPP\350\277\233\347\250\213\351\227\264\351\200\232\344\277\241/index.html" @@ -10,14 +10,14 @@ - - + +
    -

    C++进程间通信

    管道

    管道(Pipe):是一种半双工的通信方式,适用于具有亲缘关系的两个进程之间的通信。管道分为匿名管道和命名管道。

    共享内存

    共享内存(Shared Memory):是一种高效的进程间通信方式,可以在多个进程之间共享同一块内存区域,需要使用信号量等同步机制保证数据的正确性。

    消息队列

    消息队列(Message Queue):是一种可靠的进程间通信方式,允许一个进程向消息队列发送消息,另一个进程从该队列接收消息。

    信号量

    信号量(Semaphore):是一种特殊的变量,主要用于多个进程对共享资源的访问控制问题,以保证程序正常运行。

    套接字

    套接字(Socket):是一种网络编程技术,但也可用于实现进程间通信,支持不同主机上的进程进行通信。

    文件映射

    文件映射(File Mapping):将磁盘上的文件映射到进程的地址空间中,多个进程可以同时对该文件进行读写操作,需要使用同步机制确保数据的完整性。

    参考

    - +

    C++进程间通信

    管道

    管道(Pipe):是一种半双工的通信方式,适用于具有亲缘关系的两个进程之间的通信。管道分为匿名管道和命名管道。

    共享内存

    共享内存(Shared Memory):是一种高效的进程间通信方式,可以在多个进程之间共享同一块内存区域,需要使用信号量等同步机制保证数据的正确性。

    消息队列

    消息队列(Message Queue):是一种可靠的进程间通信方式,允许一个进程向消息队列发送消息,另一个进程从该队列接收消息。

    信号量

    信号量(Semaphore):是一种特殊的变量,主要用于多个进程对共享资源的访问控制问题,以保证程序正常运行。

    套接字

    套接字(Socket):是一种网络编程技术,但也可用于实现进程间通信,支持不同主机上的进程进行通信。

    文件映射

    文件映射(File Mapping):将磁盘上的文件映射到进程的地址空间中,多个进程可以同时对该文件进行读写操作,需要使用同步机制确保数据的完整性。

    参考

    + \ No newline at end of file diff --git a/docs/study/program/CPP/index.html b/docs/study/program/CPP/index.html index c3b746296..91d9c8717 100644 --- a/docs/study/program/CPP/index.html +++ b/docs/study/program/CPP/index.html @@ -10,14 +10,14 @@ - - + +
    -

    C++

    C++标准

    • C++98 1998 年 第一个标准
    • C++03 2003 年 第二个标准
    • C++11 2011 年 第三个标准
    • C++14 2014 年 第四个标准
    • C++17 2017 年 第五个标准
    • C++20 2020 年 第六个标准

    参考

    - +

    C++

    C++标准

    • C++98 1998 年 第一个标准
    • C++03 2003 年 第二个标准
    • C++11 2011 年 第三个标准
    • C++14 2014 年 第四个标准
    • C++17 2017 年 第五个标准
    • C++20 2020 年 第六个标准

    参考

    + \ No newline at end of file diff --git a/docs/study/program/CSharp/index.html b/docs/study/program/CSharp/index.html index 42849479a..2cb262c2c 100644 --- a/docs/study/program/CSharp/index.html +++ b/docs/study/program/CSharp/index.html @@ -10,14 +10,14 @@ - - + +
    -

    CSharp

    C#是微软推出的一种基于.NET 框架的、面向对象的高级编程语言。

    虽然 C# 的构想十分接近于传统高级语言 C 和 C++,是一门面向对象的编程语言,但是它与 Java 非常相似,有许多强大的编程功能,因此得到广大程序员的亲睐。

    .Net 框架(.Net Framework)

    .Net 框架应用程序是多平台的应用程序。框架的设计方式使它适用于下列各种语言:C#、C++、Visual Basic、Jscript、COBOL 等等。所有这些语言可以访问框架,彼此之间也可以互相交互。

    虽然 .NET 框架是运行在 Windows 操作系统上,但是也有一些运行于其它操作系统上的版本可供选择。Mono 是 .NET 框架的一个开源版本,它包含了一个 C# 编译器,且可运行于多种操作系统上,比如各种版本的 Linux 和 Mac OS。

    - +

    CSharp

    C#是微软推出的一种基于.NET 框架的、面向对象的高级编程语言。

    虽然 C# 的构想十分接近于传统高级语言 C 和 C++,是一门面向对象的编程语言,但是它与 Java 非常相似,有许多强大的编程功能,因此得到广大程序员的亲睐。

    .Net 框架(.Net Framework)

    .Net 框架应用程序是多平台的应用程序。框架的设计方式使它适用于下列各种语言:C#、C++、Visual Basic、Jscript、COBOL 等等。所有这些语言可以访问框架,彼此之间也可以互相交互。

    虽然 .NET 框架是运行在 Windows 操作系统上,但是也有一些运行于其它操作系统上的版本可供选择。Mono 是 .NET 框架的一个开源版本,它包含了一个 C# 编译器,且可运行于多种操作系统上,比如各种版本的 Linux 和 Mac OS。

    + \ No newline at end of file diff --git a/docs/study/program/Dart/Flutter/index.html b/docs/study/program/Dart/Flutter/index.html index 6ff199c31..d559b46f6 100644 --- a/docs/study/program/Dart/Flutter/index.html +++ b/docs/study/program/Dart/Flutter/index.html @@ -10,14 +10,14 @@ - - + + - +
    + \ No newline at end of file diff --git "a/docs/study/program/Dart/\345\255\246\344\271\240\350\265\204\346\226\231/index.html" "b/docs/study/program/Dart/\345\255\246\344\271\240\350\265\204\346\226\231/index.html" index 9ffd628a8..3baa7f4ba 100644 --- "a/docs/study/program/Dart/\345\255\246\344\271\240\350\265\204\346\226\231/index.html" +++ "b/docs/study/program/Dart/\345\255\246\344\271\240\350\265\204\346\226\231/index.html" @@ -10,14 +10,14 @@ - - + +
    -

    Dart 学习资料

    特点

    • 针对客户端优化,亚秒级的状态热重载
    • 优先考虑多平台 (Web,移动端和桌面端)
    • Dart 也是 Flutter 的基础
    • 静态类型,但支持类型推断
    • 针对面向移动和桌面设备的应用程序, Dart 拥有具有实时 (JIT) 编译功能的 Dart VM 和用于生成机器代码的提前 (AOT) 编译器。

    官方文档

    - +

    Dart 学习资料

    特点

    • 针对客户端优化,亚秒级的状态热重载
    • 优先考虑多平台 (Web,移动端和桌面端)
    • Dart 也是 Flutter 的基础
    • 静态类型,但支持类型推断
    • 针对面向移动和桌面设备的应用程序, Dart 拥有具有实时 (JIT) 编译功能的 Dart VM 和用于生成机器代码的提前 (AOT) 编译器。

    官方文档

    + \ No newline at end of file diff --git a/docs/study/program/ETL/dataX/index.html b/docs/study/program/ETL/dataX/index.html index c92abee2f..cd81d6f60 100644 --- a/docs/study/program/ETL/dataX/index.html +++ b/docs/study/program/ETL/dataX/index.html @@ -10,14 +10,14 @@ - - + +
    -

    dataX

    概述

    DataX 是阿里巴巴集团内被广泛使用的离线数据同步工具/平台,实现包括 MySQL、Oracle、SqlServer、Postgre、HDFS、Hive、ADS、HBase、TableStore(OTS)、MaxCompute(ODPS)、DRDS 等各种异构数据源之间高效的数据同步功能。

    开源地址https://github.com/alibaba/DataX

    - +

    dataX

    概述

    DataX 是阿里巴巴集团内被广泛使用的离线数据同步工具/平台,实现包括 MySQL、Oracle、SqlServer、Postgre、HDFS、Hive、ADS、HBase、TableStore(OTS)、MaxCompute(ODPS)、DRDS 等各种异构数据源之间高效的数据同步功能。

    开源地址https://github.com/alibaba/DataX

    + \ No newline at end of file diff --git a/docs/study/program/ETL/flume/index.html b/docs/study/program/ETL/flume/index.html index f229a144d..bda1fd87d 100644 --- a/docs/study/program/ETL/flume/index.html +++ b/docs/study/program/ETL/flume/index.html @@ -10,14 +10,14 @@ - - + +
    -

    flume

    Flume的定义

    • Flume是一个分布式的、高可靠的、高可用的将大批量的不同数据源的日志数据收集、聚合、移动到数据中心(HDFS)进行存储的系统。即是日志采集和汇总的工具
    • Logstash、FileBeat是ES栈的日志数据抽取工具,他们和Flume很类似,前者是轻量级、后者是重量级,若项目组使用的是ES栈技术,那完全可以使用Logstash取代Flume。
    - +

    flume

    Flume的定义

    • Flume是一个分布式的、高可靠的、高可用的将大批量的不同数据源的日志数据收集、聚合、移动到数据中心(HDFS)进行存储的系统。即是日志采集和汇总的工具
    • Logstash、FileBeat是ES栈的日志数据抽取工具,他们和Flume很类似,前者是轻量级、后者是重量级,若项目组使用的是ES栈技术,那完全可以使用Logstash取代Flume。
    + \ No newline at end of file diff --git a/docs/study/program/ETL/kettle/index.html b/docs/study/program/ETL/kettle/index.html index 82db17c5d..348491997 100644 --- a/docs/study/program/ETL/kettle/index.html +++ b/docs/study/program/ETL/kettle/index.html @@ -10,8 +10,8 @@ - - + + @@ -19,8 +19,8 @@

    kettle

    ETL(Extract-Transform-Load的缩写,即数据抽取、转换、装载的过程),对于企业或行业应用来说,我们经常会遇到各种数据的处理,转换,迁移,所以了解并掌握一种etl工具的使用,必不可少。kettle是纯java编写,支持图形化的GUI设计界面,然后可以以工作流的形式流转,在做一些简单或复杂的数据抽取、质量检测、数据清洗、数据转换、数据过滤等方面有着比较稳定的表现,其中最主要的我们通过熟练的应用它,减少了非常多的研发工作量,提高了我们的工作效率。

    Kettle概念

    Kettle是一款国外开源的ETL工具,纯java编写,可以在Window、Linux、Unix上运行,绿色无需安装,数据抽取高效稳定。 Kettle 中文名称叫水壶,该项目的主程序员MATT 希望把各种数据放到一个壶里,然后以一种指定的格式流出。 Kettle这个ETL工具集,它允许你管理来自不同数据库的数据,通过提供一个图形化的用户环境来描述你想做什么,而不是你想怎么做。 -Kettle中有两种脚本文件,transformation和job,transformation完成针对数据的基础转换,job则完成整个工作流的控制。

    - +Kettle中有两种脚本文件,transformation和job,transformation完成针对数据的基础转换,job则完成整个工作流的控制。

    + \ No newline at end of file diff --git a/docs/study/program/ETL/sqoop/index.html b/docs/study/program/ETL/sqoop/index.html index ec1d7342b..3378dd9b0 100644 --- a/docs/study/program/ETL/sqoop/index.html +++ b/docs/study/program/ETL/sqoop/index.html @@ -10,14 +10,14 @@ - - + +
    -

    sqoop

    概述

    sqoop产生的原因:

    1. 多数使用hadoop技术的处理大数据业务的企业,有大量的数据存储在关系型数据中。
    2. 由于没有工具支持,对hadoop和关系型数据库之间数据传输是一个很困难的事。
    3. 依据以上的原因sqoop产生的。

    sqoop的介绍

    sqoop是连接关系型数据库和hadoop的桥梁,主要有两个方面(导入和导出):

    1. 将关系型数据库的数据导入到Hadoop 及其相关的系统中,如 Hive和HBase
    2. 将数据从Hadoop 系统里抽取并导出到关系型数据库
    - +

    sqoop

    概述

    sqoop产生的原因:

    1. 多数使用hadoop技术的处理大数据业务的企业,有大量的数据存储在关系型数据中。
    2. 由于没有工具支持,对hadoop和关系型数据库之间数据传输是一个很困难的事。
    3. 依据以上的原因sqoop产生的。

    sqoop的介绍

    sqoop是连接关系型数据库和hadoop的桥梁,主要有两个方面(导入和导出):

    1. 将关系型数据库的数据导入到Hadoop 及其相关的系统中,如 Hive和HBase
    2. 将数据从Hadoop 系统里抽取并导出到关系型数据库
    + \ No newline at end of file diff --git a/docs/study/program/Erlang/index.html b/docs/study/program/Erlang/index.html index 5529fa199..35a75147a 100644 --- a/docs/study/program/Erlang/index.html +++ b/docs/study/program/Erlang/index.html @@ -10,16 +10,16 @@ - - + +

    Erlang

    简介

    Erlang 的设计目标非常明确,就是专门为大型的电信系统设计。 所以它的应用场景和设计需求就是电信领域里需要解决的问题。 -主要是三个: 高并发高容错软实时。电信系统负载非常大,需要同时服务大量用户的能力;同时不允许出错,电话频繁掉线会很快把客户赶到竞争对手那边;再者,即便某个通话再繁忙也不能影响其他通话的正常进行,到技术层面就是,不能因为某个任务很重,就把其他的任务的资源都占用了,while loop 占用 100% CPU 是绝对不允许的。

    参考

    1. 30 分钟学 Erlang (一)
    - +主要是三个: 高并发高容错软实时。电信系统负载非常大,需要同时服务大量用户的能力;同时不允许出错,电话频繁掉线会很快把客户赶到竞争对手那边;再者,即便某个通话再繁忙也不能影响其他通话的正常进行,到技术层面就是,不能因为某个任务很重,就把其他的任务的资源都占用了,while loop 占用 100% CPU 是绝对不允许的。

    参考

    1. 30 分钟学 Erlang (一)
    + \ No newline at end of file diff --git "a/docs/study/program/GIT/GIT-\345\270\270\347\224\250\345\221\275\344\273\244/index.html" "b/docs/study/program/GIT/GIT-\345\270\270\347\224\250\345\221\275\344\273\244/index.html" index c747a5e1d..781c0f3eb 100644 --- "a/docs/study/program/GIT/GIT-\345\270\270\347\224\250\345\221\275\344\273\244/index.html" +++ "b/docs/study/program/GIT/GIT-\345\270\270\347\224\250\345\221\275\344\273\244/index.html" @@ -10,16 +10,16 @@ - - + +

    GIT-常用命令

    clone

    #用户名如果携带@需要使用%40替换
    git clone https://用户名:密码@git.coding.net/sample/HelloWorld.git

    把非必要文件已经上传到 git,如何处理

    先增加到.gitignore,然后删除本地缓存,再上传到远程仓库 git rm --cached .xxx -git rm-r --cached .yyy

    - +git rm-r --cached .yyy

    + \ No newline at end of file diff --git "a/docs/study/program/GIT/PR\345\222\214MR/index.html" "b/docs/study/program/GIT/PR\345\222\214MR/index.html" index c178e906f..58381704f 100644 --- "a/docs/study/program/GIT/PR\345\222\214MR/index.html" +++ "b/docs/study/program/GIT/PR\345\222\214MR/index.html" @@ -10,14 +10,14 @@ - - + +
    -

    PR和MR

    简介

    我们知道Git协作中最重要的一个步骤是Pull Requests(简称PR,Gitlab中也叫Merge requests,MR),PR和MR这两个操作的目的是一个意思,只不过PR是GitHub的使用方法,MR是Gitlab的的使用方法。

    GitHub的Fork-PR模式

    1. 首先fork一个工程
    2. 修改代码并提交PR请求
    3. 开源作者review代码,并根据情况PR请求

    Gitlab的MR模式

    1. 一般MR到的分支都是master,master是受保护的,普通开发者是没有权限push的;
    2. 普通开发者提交MR请求;
    3. 主开发人员review代码,并根据情况同意合并请求
    - +

    PR和MR

    简介

    我们知道Git协作中最重要的一个步骤是Pull Requests(简称PR,Gitlab中也叫Merge requests,MR),PR和MR这两个操作的目的是一个意思,只不过PR是GitHub的使用方法,MR是Gitlab的的使用方法。

    GitHub的Fork-PR模式

    1. 首先fork一个工程
    2. 修改代码并提交PR请求
    3. 开源作者review代码,并根据情况PR请求

    Gitlab的MR模式

    1. 一般MR到的分支都是master,master是受保护的,普通开发者是没有权限push的;
    2. 普通开发者提交MR请求;
    3. 主开发人员review代码,并根据情况同意合并请求
    + \ No newline at end of file diff --git "a/docs/study/program/Golang/Golang\344\276\235\350\265\226\345\272\223\344\273\243\347\220\206/index.html" "b/docs/study/program/Golang/Golang\344\276\235\350\265\226\345\272\223\344\273\243\347\220\206/index.html" index 3cf89e8de..77335118d 100644 --- "a/docs/study/program/Golang/Golang\344\276\235\350\265\226\345\272\223\344\273\243\347\220\206/index.html" +++ "b/docs/study/program/Golang/Golang\344\276\235\350\265\226\345\272\223\344\273\243\347\220\206/index.html" @@ -10,14 +10,14 @@ - - + +
    -

    Golang依赖库代理

    脚本

    go env -w GOPROXY=https://goproxy.cn

    常用代理地址

    - +

    Golang依赖库代理

    脚本

    go env -w GOPROXY=https://goproxy.cn

    常用代理地址

    + \ No newline at end of file diff --git a/docs/study/program/Golang/index.html b/docs/study/program/Golang/index.html index 94ba9cb5a..8abf634c0 100644 --- a/docs/study/program/Golang/index.html +++ b/docs/study/program/Golang/index.html @@ -10,14 +10,14 @@ - - + +
    -

    Golang

    Go 语言设计初衷

    为了解决当时 Google 开发遇到的问题:

    1. 编译慢;
    2. 大量的 C++代码,同时又引入了 Java 和 Python;
    3. 更新的花费越来越长;
    4. 分布式的编译系统;
    5. 数百万的服务器;

    Go 语言的特色

    1. 高效的并发编程(基于 CSP);
    2. 内存回收(GC);
    3. 编译速度快;
    4. 函数多返回值;
    5. 语言交互性;
    6. 没有异常处理(Error is value);

    Go 语言的优势

    1. 学习曲线容易;
    2. 效率:快速的编译时间,开发效率和运行效率高;
    3. 出身名门,血统纯正;
    4. 并行和异步编程几乎没有痛点;
    5. 自由高效:组合的思想、无侵入式的接口、强大的标准库、部署方便、稳定性;

    我们为什么选择 Go 语言

    1. 执行性能
    2. 开发效率

    Go 语言能做什么

    1. 服务器编程;
    2. 分布式系统、数据库代理器、中间件等;
    3. 网络编程;
    4. 数据库操作;
    5. 开发云平台;

    信息

    GC

    - +

    Golang

    Go 语言设计初衷

    为了解决当时 Google 开发遇到的问题:

    1. 编译慢;
    2. 大量的 C++代码,同时又引入了 Java 和 Python;
    3. 更新的花费越来越长;
    4. 分布式的编译系统;
    5. 数百万的服务器;

    Go 语言的特色

    1. 高效的并发编程(基于 CSP);
    2. 内存回收(GC);
    3. 编译速度快;
    4. 函数多返回值;
    5. 语言交互性;
    6. 没有异常处理(Error is value);

    Go 语言的优势

    1. 学习曲线容易;
    2. 效率:快速的编译时间,开发效率和运行效率高;
    3. 出身名门,血统纯正;
    4. 并行和异步编程几乎没有痛点;
    5. 自由高效:组合的思想、无侵入式的接口、强大的标准库、部署方便、稳定性;

    我们为什么选择 Go 语言

    1. 执行性能
    2. 开发效率

    Go 语言能做什么

    1. 服务器编程;
    2. 分布式系统、数据库代理器、中间件等;
    3. 网络编程;
    4. 数据库操作;
    5. 开发云平台;

    信息

    GC

    + \ No newline at end of file diff --git a/docs/study/program/JAVA/GC/index.html b/docs/study/program/JAVA/GC/index.html index 75afa9aa2..336756d8c 100644 --- a/docs/study/program/JAVA/GC/index.html +++ b/docs/study/program/JAVA/GC/index.html @@ -10,14 +10,14 @@ - - + +
    -

    GC

    JVM 中常见的垃圾收集算法

    • 标记-清除(Mark-Sweep): 这是最基本的垃圾收集算法,它分为两个阶段,标记和清除。首先标记出所有需要回收的对象,然后进行清除。缺点是效率不高,并且会产生大量不连续的内存碎片。
    • (Copying): 为了解决标记-清除算法的内存碎片问题,出现了复制算法。它将可用内存分为两个区域,每次只使用其中一个区域。当这个区域满时,它会把存活的对象复制到另一个区域,然后清除正在使用的那个区域的所有对象。这种算法实现简单,运行高效,但是需要两倍的内存空间。
    • 标记-整理(Mark-Compact): 结合了标记-清除和复制的优点,它先标记需要回收的对象,然后把所有存活的对象都向一端移动,接着清除掉端边界以外的内存。
    • 分代收集(Generational Collector): 基于对象生命周期的不同,它将堆分为新生代和老年代。新生代中,大部分对象是朝生夕死的,所以可以使用复制算法;老年代中对象存活率高,一般使用标记-整理或标记-清除算法。
    • 增量收集(Incremental Collector): 这种算法允许垃圾收集在应用进行的同时进行,减少应用的暂停时间。
    • 并发标记-清除(Concurrent Mark-Sweep, CMS): 为了减少垃圾收集对应用的影响,出现了并发收集算法,它尝试让垃圾收集的过程并发进行。CMS 算法分为四个阶段,并发标记、并发预清理、重新标记、并发清除,尽量减少对应用的影响。
    • 改进的并发标记-清除(G1): 为了进一步减少暂停时间和提高吞吐量,JVM 在 Java 7 Update 4 中引入了 G1 垃圾收集器。G1 尝试把堆空间划分为多个大小相等的区域,并且可以并发处理这些区域。
    - +

    GC

    JVM 中常见的垃圾收集算法

    • 标记-清除(Mark-Sweep): 这是最基本的垃圾收集算法,它分为两个阶段,标记和清除。首先标记出所有需要回收的对象,然后进行清除。缺点是效率不高,并且会产生大量不连续的内存碎片。
    • (Copying): 为了解决标记-清除算法的内存碎片问题,出现了复制算法。它将可用内存分为两个区域,每次只使用其中一个区域。当这个区域满时,它会把存活的对象复制到另一个区域,然后清除正在使用的那个区域的所有对象。这种算法实现简单,运行高效,但是需要两倍的内存空间。
    • 标记-整理(Mark-Compact): 结合了标记-清除和复制的优点,它先标记需要回收的对象,然后把所有存活的对象都向一端移动,接着清除掉端边界以外的内存。
    • 分代收集(Generational Collector): 基于对象生命周期的不同,它将堆分为新生代和老年代。新生代中,大部分对象是朝生夕死的,所以可以使用复制算法;老年代中对象存活率高,一般使用标记-整理或标记-清除算法。
    • 增量收集(Incremental Collector): 这种算法允许垃圾收集在应用进行的同时进行,减少应用的暂停时间。
    • 并发标记-清除(Concurrent Mark-Sweep, CMS): 为了减少垃圾收集对应用的影响,出现了并发收集算法,它尝试让垃圾收集的过程并发进行。CMS 算法分为四个阶段,并发标记、并发预清理、重新标记、并发清除,尽量减少对应用的影响。
    • 改进的并发标记-清除(G1): 为了进一步减少暂停时间和提高吞吐量,JVM 在 Java 7 Update 4 中引入了 G1 垃圾收集器。G1 尝试把堆空间划分为多个大小相等的区域,并且可以并发处理这些区域。
    + \ No newline at end of file diff --git a/docs/study/program/JAVA/GraalVM/index.html b/docs/study/program/JAVA/GraalVM/index.html index 3fb805257..f930184fc 100644 --- a/docs/study/program/JAVA/GraalVM/index.html +++ b/docs/study/program/JAVA/GraalVM/index.html @@ -10,14 +10,14 @@ - - + + - +
    + \ No newline at end of file diff --git a/docs/study/program/JAVA/Guice/index.html b/docs/study/program/JAVA/Guice/index.html index c66489834..86bcb0879 100644 --- a/docs/study/program/JAVA/Guice/index.html +++ b/docs/study/program/JAVA/Guice/index.html @@ -10,14 +10,14 @@ - - + +
    -

    Guice

    背景

    Guice 是一个开源的、基于 Java 的依赖注入框架。它是轻量级的,由 Google 积极开发/管理。

    在日常写一些小工具或者小项目的时候,有依赖管理和依赖注入的需求,但是Spring(Boot)体系作为DI框架过于重量级,于是需要调研一款微型的DI框架。Guice是Google出品的一款轻量级的依赖注入框架,使用它有助于解决项目中的依赖注入问题,提高了可维护性和灵活性。相对于重量级的Spring(Boot)体系,Guice项目只有一个小于1MB的核心模块,如果核心需求是DI(其实Guice也提供了很低层次的AOP实现),那么Guice应该会是一个合适的候选方案。

    - +

    Guice

    背景

    Guice 是一个开源的、基于 Java 的依赖注入框架。它是轻量级的,由 Google 积极开发/管理。

    在日常写一些小工具或者小项目的时候,有依赖管理和依赖注入的需求,但是Spring(Boot)体系作为DI框架过于重量级,于是需要调研一款微型的DI框架。Guice是Google出品的一款轻量级的依赖注入框架,使用它有助于解决项目中的依赖注入问题,提高了可维护性和灵活性。相对于重量级的Spring(Boot)体系,Guice项目只有一个小于1MB的核心模块,如果核心需求是DI(其实Guice也提供了很低层次的AOP实现),那么Guice应该会是一个合适的候选方案。

    + \ No newline at end of file diff --git a/docs/study/program/JAVA/Maven/index.html b/docs/study/program/JAVA/Maven/index.html index f03200616..e9e1ceb56 100644 --- a/docs/study/program/JAVA/Maven/index.html +++ b/docs/study/program/JAVA/Maven/index.html @@ -10,15 +10,15 @@ - - + +

    Maven

    简介

    本质上是一个插件框架,它的核心并不执行任何具体的构建任务,所有这些任务都交给插件来完成,例如编译源代码是由maven- compiler-plugin完成的。

    参数

    参数全称释义说明
    -pl--projectsBuild specified reactor projects instead of all projects选项后可跟随{groupId}:{artifactId}或者所选模块的相对路径(多个模块以逗号分隔)
    -am--also-makeIf project list is specified, also build projects required by the list表示同时处理选定模块所依赖的模块
    -amd--also-make-dependentsIf project list is specified, also build projects that depend on projects on the list表示同时处理依赖选定模块的模块
    -N--Non-recursiveBuild projects without recursive表示不递归子模块
    -rf--resume-fromResume reactor from specified project表示从指定模块开始继续处理

    插件

    三种打包插件

    • maven-jar-plugin,默认的打包插件,用来打普通的project JAR包;
    • maven-shade-plugin,用来打可执行JAR包,也就是所谓的fat JAR包;
    • maven-assembly-plugin,支持自定义的打包结构,也可以定制依赖项等。

    maven-assembly-plugin

    maven-assembly-plugin的用途是制作项目分发包,该分发包可能包含了项目的可执行文件、源代码、readme、平台脚本等等。maven-assembly-plugin支持各种主流的格式如zip、tar.gz、jar和war等,具体打包哪些文件是高度可控的,例如用户可以 按文件级别的粒度、文件集级别的粒度、模块级别的粒度、以及依赖级别的粒度控制打包,此外,包含和排除配置也是支持的。maven-assembly- plugin要求用户使用一个名为assembly.xml的元数据文件来表述打包,它的single目标可以直接在命令行调用,也可以被绑定至生命周期。

    maven-enforcer-plugin

    在一个稍大一点的组织或团队中,你无法保证所有成员都熟悉Maven,那他们做一些比较愚蠢的事情就会变得很正常,例如给项目引入了外部的 SNAPSHOT依赖而导致构建不稳定,使用了一个与大家不一致的Maven版本而经常抱怨构建出现诡异问题。maven-enforcer- plugin能够帮助你避免之类问题,它允许你创建一系列规则强制大家遵守,包括设定Java版本、设定Maven版本、禁止某些依赖、禁止 SNAPSHOT依赖。只要在一个父POM配置规则,然后让大家继承,当规则遭到破坏的时候,Maven就会报错。除了标准的规则之外,你还可以扩展该插 件,编写自己的规则。maven-enforcer-plugin的enforce目标负责检查规则,它默认绑定到生命周期的validate阶段。

    maven-release-plugin

    maven-release-plugin的用途是帮助自动化项目版本发布,它依赖于POM中的SCM信息。release:prepare用来准备版本发布,具体的工作包括检查是否有未提交代码、检查是否有SNAPSHOT依赖、升级项目的SNAPSHOT版本至RELEASE版本、为项目打标签等等。release:perform则 是签出标签中的RELEASE源码,构建并发布。版本发布是非常琐碎的工作,它涉及了各种检查,而且由于该工作仅仅是偶尔需要,因此手动操作很容易遗漏一 些细节,maven-release-plugin让该工作变得非常快速简便,不易出错。maven-release-plugin的各种目标通常直接在 命令行调用,因为版本发布显然不是日常构建生命周期的一部分。

    maven-resources-plugin

    为了使项目结构更为清晰,Maven区别对待Java代码文件和资源文件,maven-compiler-plugin用来编译Java代码,maven-resources-plugin则用来处理资源文件。默认的主资源文件目录是src/main/resources,很多用户会需要添加额外的资源文件目录,这个时候就可以通过配置maven-resources-plugin来实现。此外,资源文件过滤也是Maven的一大特性,你可以在资源文件中使用${propertyName}形式的Maven属性,然后配置maven-resources-plugin开启对资源文件的过滤,之后就可以针对不同环境通过命令行或者Profile传入属性的值,以实现更为灵活的构建。

    build-helper-maven-plugin

    Maven默认只允许指定一个主Java代码目录和一个测试Java代码目录,虽然这其实是个应当尽量遵守的约定,但偶尔你还是会希望能够指定多个 源码目录(例如为了应对遗留项目),build-helper-maven-plugin的add-source目标就是服务于这个目的,通常它被绑定到 默认生命周期的generate-sources阶段以添加额外的源码目录。需要强调的是,这种做法还是不推荐的,因为它破坏了 Maven的约定,而且可能会遇到其他严格遵守约定的插件工具无法正确识别额外的源码目录。 -build-helper-maven-plugin的另一个非常有用的目标是attach-artifact,使用该目标你可以以classifier的形式选取部分项目文件生成附属构件,并同时install到本地仓库,也可以deploy到远程仓库。

    versions-maven-plugin

    很多Maven用户遇到过这样一个问题,当项目包含大量模块的时候,为他们集体更新版本就变成一件烦人的事情,到底有没有自动化工具能帮助完成这件 事情呢?(当然你可以使用sed之类的文本操作工具,不过不在本文讨论范围)答案是肯定的,versions-maven- plugin提供了很多目标帮助你管理Maven项目的各种版本信息。例如最常用的,命令 mvn versions:set -DnewVersion=1.1-SNAPSHOT 就能帮助你把所有模块的版本更新到1.1-SNAPSHOT。该插件还提供了其他一些很有用的目标,display-dependency- updates能告诉你项目依赖有哪些可用的更新;类似的display-plugin-updates能告诉你可用的插件更新;然后use- latest-versions能自动帮你将所有依赖升级到最新版本。最后,如果你对所做的更改满意,则可以使用 mvn versions:commit 提交,不满意的话也可以使用 mvn versions:revert 进行撤销。

    - +build-helper-maven-plugin的另一个非常有用的目标是attach-artifact,使用该目标你可以以classifier的形式选取部分项目文件生成附属构件,并同时install到本地仓库,也可以deploy到远程仓库。

    versions-maven-plugin

    很多Maven用户遇到过这样一个问题,当项目包含大量模块的时候,为他们集体更新版本就变成一件烦人的事情,到底有没有自动化工具能帮助完成这件 事情呢?(当然你可以使用sed之类的文本操作工具,不过不在本文讨论范围)答案是肯定的,versions-maven- plugin提供了很多目标帮助你管理Maven项目的各种版本信息。例如最常用的,命令 mvn versions:set -DnewVersion=1.1-SNAPSHOT 就能帮助你把所有模块的版本更新到1.1-SNAPSHOT。该插件还提供了其他一些很有用的目标,display-dependency- updates能告诉你项目依赖有哪些可用的更新;类似的display-plugin-updates能告诉你可用的插件更新;然后use- latest-versions能自动帮你将所有依赖升级到最新版本。最后,如果你对所做的更改满意,则可以使用 mvn versions:commit 提交,不满意的话也可以使用 mvn versions:revert 进行撤销。

    + \ No newline at end of file diff --git a/docs/study/program/JAVA/RxJava/index.html b/docs/study/program/JAVA/RxJava/index.html index 6b8bd75e9..1adf27be2 100644 --- a/docs/study/program/JAVA/RxJava/index.html +++ b/docs/study/program/JAVA/RxJava/index.html @@ -10,14 +10,14 @@ - - + +
    -

    RxJava

    简介

    GitHub地址

    RxJava - JVM响应式扩展Reactive Extensions 用于使用Java VM的可观察序列编写异步和基于事件的程序的库。

    RxJava到底是什么?让我们直接跳过官方那种晦涩的追求精确的定义,其实初学RxJava只要把握两点:观察者模式和异步,就基本可以熟练使用RxJava了。

    参考

    1. 关于RxJava最友好的文章
    2. 关于RxJava最友好的文章——背压(Backpressure)
    3. 关于 RxJava 最友好的文章—— RxJava 2.0 全新来袭
    - +

    RxJava

    简介

    GitHub地址

    RxJava - JVM响应式扩展Reactive Extensions 用于使用Java VM的可观察序列编写异步和基于事件的程序的库。

    RxJava到底是什么?让我们直接跳过官方那种晦涩的追求精确的定义,其实初学RxJava只要把握两点:观察者模式和异步,就基本可以熟练使用RxJava了。

    参考

    1. 关于RxJava最友好的文章
    2. 关于RxJava最友好的文章——背压(Backpressure)
    3. 关于 RxJava 最友好的文章—— RxJava 2.0 全新来袭
    + \ No newline at end of file diff --git a/docs/study/program/JAVA/Vert.x/index.html b/docs/study/program/JAVA/Vert.x/index.html index 6bc2998a2..b4f4195b4 100644 --- a/docs/study/program/JAVA/Vert.x/index.html +++ b/docs/study/program/JAVA/Vert.x/index.html @@ -10,8 +10,8 @@ - - + + @@ -30,8 +30,8 @@ 每一个 Vert.x 实例都有一个单独的 Event Bus 实例。您可以通过 Vertx 实例的 eventBus 方法来获得对应的 EventBus 实例。 Vert.x会尽它最大努力去传递消息,并且不会主动丢弃消息。这种方式称为 尽力传输(Best-effort delivery)。 但是,当 Event Bus 中的全部或部分发生故障时,则可能会丢失消息。 -若您的应用关心丢失的消息,您应该编写具有幂等性的处理器,并且您的发送者可以在恢复后重试。

    Event Bus 不仅仅存在于单个 Vert.x 实例中。通过您在网络上将不同的 Vert.x 实例集群在一起,它可以形成一个单一的、分布式的Event Bus。

    - +若您的应用关心丢失的消息,您应该编写具有幂等性的处理器,并且您的发送者可以在恢复后重试。

    Event Bus 不仅仅存在于单个 Vert.x 实例中。通过您在网络上将不同的 Vert.x 实例集群在一起,它可以形成一个单一的、分布式的Event Bus。

    + \ No newline at end of file diff --git a/docs/study/program/JS/npm/index.html b/docs/study/program/JS/npm/index.html index aceac52ef..2075d9744 100644 --- a/docs/study/program/JS/npm/index.html +++ b/docs/study/program/JS/npm/index.html @@ -10,15 +10,15 @@ - - + +

    npm

    npmjs

    安装cnpm (国内淘宝镜像源),主要用于某些包或命令程序下载不下来的情况

    # 直接按照cnpm
    npm install cnpm -g --registry=https://registry.npm.taobao.org

    # 另一种方式
    npm install -g mirror-config-china --registry=https://registry.npmmirror.com
    npm install node-sass

    node-sass

    注意不同的node版本,要求的node-sass版本不一样,存在一定的兼容问题: -image.png

    - +image.png

    + \ No newline at end of file diff --git a/docs/study/program/JS/npx/index.html b/docs/study/program/JS/npx/index.html index 0a6a90825..b3713d613 100644 --- a/docs/study/program/JS/npx/index.html +++ b/docs/study/program/JS/npx/index.html @@ -10,15 +10,15 @@ - - + +

    npx

    概念 -npx是一个工具,它是npm v5.2.0引入的一条命令(npx),是npm的一个包执行器,只要为了提高从npm注册表使用软件包的体验 。 npm使得它非常容易地安装和管理托管在注册表上的依赖项, npx使得使用CLI工具和其他托管在注册表。

    就像npm极大地提升了我们安装和管理包依赖的体验,在npm的基础之上,npx让npm包中的命令行工具和其他可执行文件在使用上变得更加简单。它极大地简化了我们之前使用纯粹的npm时所需要的大量步骤。

    主要特点:

    1. 临时安装可执行依赖包,不用全局安装,不用担心长期的污染。
    2. 可以执行依赖包中的命令,安装完成自动运行。
    3. 自动加载node_modules中依赖包,不用指定$PATH。
    4. 可以指定node版本、命令的版本,解决了不同项目使用不同版本的命令的问题。
    - +npx是一个工具,它是npm v5.2.0引入的一条命令(npx),是npm的一个包执行器,只要为了提高从npm注册表使用软件包的体验 。 npm使得它非常容易地安装和管理托管在注册表上的依赖项, npx使得使用CLI工具和其他托管在注册表。

    就像npm极大地提升了我们安装和管理包依赖的体验,在npm的基础之上,npx让npm包中的命令行工具和其他可执行文件在使用上变得更加简单。它极大地简化了我们之前使用纯粹的npm时所需要的大量步骤。

    主要特点:

    1. 临时安装可执行依赖包,不用全局安装,不用担心长期的污染。
    2. 可以执行依赖包中的命令,安装完成自动运行。
    3. 自动加载node_modules中依赖包,不用指定$PATH。
    4. 可以指定node版本、命令的版本,解决了不同项目使用不同版本的命令的问题。
    + \ No newline at end of file diff --git a/docs/study/program/JS/nrm/index.html b/docs/study/program/JS/nrm/index.html index 2c3d80642..4da1e5bc8 100644 --- a/docs/study/program/JS/nrm/index.html +++ b/docs/study/program/JS/nrm/index.html @@ -10,14 +10,14 @@ - - + + - +
    + \ No newline at end of file diff --git a/docs/study/program/Lua/index.html b/docs/study/program/Lua/index.html index d4d5f8666..b04a6bc41 100644 --- a/docs/study/program/Lua/index.html +++ b/docs/study/program/Lua/index.html @@ -10,14 +10,14 @@ - - + + - +
    + \ No newline at end of file diff --git a/docs/study/program/Rust/index.html b/docs/study/program/Rust/index.html index 110ac4f6a..9d775e49c 100644 --- a/docs/study/program/Rust/index.html +++ b/docs/study/program/Rust/index.html @@ -10,14 +10,14 @@ - - + +
    -

    Rust

    一门赋予每个人构建可靠且高效软件能力的语言。

    创建这个新语言的目的是为了解决一个顽疾:软件的演进速度大大低于硬件的演进,软件在语言级别上无法真正利用多核计算带来的性能提升。Rust 是针对多核体系提出的语言,并且吸收一些其他动态语言的重要特性,比如不需要管理内存,比如不会出现 Null 指针等等。

    Rust 致力于成为优雅解决高并发和高安全性系统问题的编程语言 ,适用于大型场景,即创造维护能够保持大型系统完整的边界。这就导致了它强调安全,内存布局控制和并发的特点。标准 Rust 性能与标准 C++性能不相上下。

    据说,此编程语言,入门较难,晦涩难懂。

    为什么选择 Rust

    高性能

    Rust 速度惊人且内存利用率极高。由于没有运行时和垃圾回收,它能够胜任对性能要求特别高的服务,可以在嵌入式设备上运行,还能轻松和其他语言集成。

    可靠性

    Rust 丰富的类型系统和所有权模型保证了内存安全和线程安全,让您在编译期就能够消除各种各样的错误。

    生产力

    Rust 拥有出色的文档、友好的编译器和清晰的错误提示信息, 还集成了一流的工具——包管理器和构建工具, 智能地自动补全和类型检验的多编辑器支持, 以及自动格式化代码等等。

    内存管理

    Rust 不像 Go,Java 以及.NET Framework 那样使用自动垃圾回收系统。不同的是 Rust 通过 RAII 来管理内存和资源,还可选引用计数。Rust 以低开销提供资源确定性管理。Rust 也支持值的栈分配并不表现暗箱。

    标准库

    https://doc.rust-lang.org/std/index.html

    参考

    - +

    Rust

    一门赋予每个人构建可靠且高效软件能力的语言。

    创建这个新语言的目的是为了解决一个顽疾:软件的演进速度大大低于硬件的演进,软件在语言级别上无法真正利用多核计算带来的性能提升。Rust 是针对多核体系提出的语言,并且吸收一些其他动态语言的重要特性,比如不需要管理内存,比如不会出现 Null 指针等等。

    Rust 致力于成为优雅解决高并发和高安全性系统问题的编程语言 ,适用于大型场景,即创造维护能够保持大型系统完整的边界。这就导致了它强调安全,内存布局控制和并发的特点。标准 Rust 性能与标准 C++性能不相上下。

    据说,此编程语言,入门较难,晦涩难懂。

    为什么选择 Rust

    高性能

    Rust 速度惊人且内存利用率极高。由于没有运行时和垃圾回收,它能够胜任对性能要求特别高的服务,可以在嵌入式设备上运行,还能轻松和其他语言集成。

    可靠性

    Rust 丰富的类型系统和所有权模型保证了内存安全和线程安全,让您在编译期就能够消除各种各样的错误。

    生产力

    Rust 拥有出色的文档、友好的编译器和清晰的错误提示信息, 还集成了一流的工具——包管理器和构建工具, 智能地自动补全和类型检验的多编辑器支持, 以及自动格式化代码等等。

    内存管理

    Rust 不像 Go,Java 以及.NET Framework 那样使用自动垃圾回收系统。不同的是 Rust 通过 RAII 来管理内存和资源,还可选引用计数。Rust 以低开销提供资源确定性管理。Rust 也支持值的栈分配并不表现暗箱。

    标准库

    https://doc.rust-lang.org/std/index.html

    参考

    + \ No newline at end of file diff --git a/docs/study/program/index.html b/docs/study/program/index.html index 558376714..9d7f4fa86 100644 --- a/docs/study/program/index.html +++ b/docs/study/program/index.html @@ -10,14 +10,14 @@ - - + + - +
    + \ No newline at end of file diff --git "a/docs/study/program/\346\212\200\346\234\257\346\226\207\346\241\243/index.html" "b/docs/study/program/\346\212\200\346\234\257\346\226\207\346\241\243/index.html" index c19eaea07..de52fa510 100644 --- "a/docs/study/program/\346\212\200\346\234\257\346\226\207\346\241\243/index.html" +++ "b/docs/study/program/\346\212\200\346\234\257\346\226\207\346\241\243/index.html" @@ -10,14 +10,14 @@ - - + + - +
    + \ No newline at end of file diff --git "a/docs/study/program/\347\274\226\350\257\221\345\231\250/index.html" "b/docs/study/program/\347\274\226\350\257\221\345\231\250/index.html" index 11b78edcc..2f0d6dd42 100644 --- "a/docs/study/program/\347\274\226\350\257\221\345\231\250/index.html" +++ "b/docs/study/program/\347\274\226\350\257\221\345\231\250/index.html" @@ -10,14 +10,14 @@ - - + +
    -

    编译器

    C/C++/Objective-C 等类 C 编译器

    主要分三种:

    • GCC/GNU/Linux
    • LLVM/CLang
    • Microsoft Visual C++,简称 Visual C++/VC++/MSVC/VS/VC,开发环境 Visual Studio

    GCC 是老牌的 C/C++编译器,主要由 GNU 维护,Linux 系统默认的编译器。

    LLVM 是比较新的编译器架构系统,CLang 是基于 LLVM 的 C/C++/CLang 编译器,产生 CLang 的原因是 Apple 公司想开发新的语言 CLang,以及对 GCC 有其他特殊需求,但是 GCC 配合的并不是很好,所以才造了个新轮子。

    Microsoft Visual C++是 Windows 系统的编译器。

    - +

    编译器

    C/C++/Objective-C 等类 C 编译器

    主要分三种:

    • GCC/GNU/Linux
    • LLVM/CLang
    • Microsoft Visual C++,简称 Visual C++/VC++/MSVC/VS/VC,开发环境 Visual Studio

    GCC 是老牌的 C/C++编译器,主要由 GNU 维护,Linux 系统默认的编译器。

    LLVM 是比较新的编译器架构系统,CLang 是基于 LLVM 的 C/C++/CLang 编译器,产生 CLang 的原因是 Apple 公司想开发新的语言 CLang,以及对 GCC 有其他特殊需求,但是 GCC 配合的并不是很好,所以才造了个新轮子。

    Microsoft Visual C++是 Windows 系统的编译器。

    + \ No newline at end of file diff --git "a/docs/study/program/\350\267\250\345\271\263\345\217\260\345\272\224\347\224\250\347\250\213\345\272\217\345\274\200\345\217\221\346\241\206\346\236\266/index.html" "b/docs/study/program/\350\267\250\345\271\263\345\217\260\345\272\224\347\224\250\347\250\213\345\272\217\345\274\200\345\217\221\346\241\206\346\236\266/index.html" index 9c8a8027d..d9a6fe23d 100644 --- "a/docs/study/program/\350\267\250\345\271\263\345\217\260\345\272\224\347\224\250\347\250\213\345\272\217\345\274\200\345\217\221\346\241\206\346\236\266/index.html" +++ "b/docs/study/program/\350\267\250\345\271\263\345\217\260\345\272\224\347\224\250\347\250\213\345\272\217\345\274\200\345\217\221\346\241\206\346\236\266/index.html" @@ -10,14 +10,14 @@ - - + +
    -

    跨平台应用程序开发框架

    Electron

    Build cross-platform desktop apps with JavaScript, HTML, and CSS

    TAURI

    构建跨平台的快速、安全、前端隔离应用

    • 官方网站-TAURI
    • 打包大小:使用系统自带的网页渲染器,Tauri 应用的大小可打包到 600 KB 以下!
    • 跨平台:构建支持所有主流桌面平台(移动端即将推出)的二进制打包文件。
    • 基于 Rust 开发:性能及安全至上的 Rust 是次时代应用开发首选。
    • 目前还在快速发展中-(2023 年)

    Flutter

    为所有屏幕创造精彩

    Flutter 为软件开发行业带来了革新:只要一套代码库,即可构建、测试和发布适用于移动、Web、桌面和嵌入式平台的精美应用。

    Flutter 是 Google 开源的应用开发框架,仅通过一套代码库,就能构建精美的、原生平台编译的多平台应用。

    NW.js

    NW.js (previously known as node-webkit) lets you call all Node.js modules directly from DOM and enables a new way of writing applications with all Web technologies.

    Neutralinojs

    Build lightweight cross-platform desktop apps with JavaScript, HTML, and CSS

    WAILS

    使用 Go 构建漂亮的跨平台应用程序

    在一个框架中生成本机、跨平台桌面和移动应用。

    .NET MAUI

    参考

    - +

    跨平台应用程序开发框架

    Electron

    Build cross-platform desktop apps with JavaScript, HTML, and CSS

    TAURI

    构建跨平台的快速、安全、前端隔离应用

    • 官方网站-TAURI
    • 打包大小:使用系统自带的网页渲染器,Tauri 应用的大小可打包到 600 KB 以下!
    • 跨平台:构建支持所有主流桌面平台(移动端即将推出)的二进制打包文件。
    • 基于 Rust 开发:性能及安全至上的 Rust 是次时代应用开发首选。
    • 目前还在快速发展中-(2023 年)

    Flutter

    为所有屏幕创造精彩

    Flutter 为软件开发行业带来了革新:只要一套代码库,即可构建、测试和发布适用于移动、Web、桌面和嵌入式平台的精美应用。

    Flutter 是 Google 开源的应用开发框架,仅通过一套代码库,就能构建精美的、原生平台编译的多平台应用。

    NW.js

    NW.js (previously known as node-webkit) lets you call all Node.js modules directly from DOM and enables a new way of writing applications with all Web technologies.

    Neutralinojs

    Build lightweight cross-platform desktop apps with JavaScript, HTML, and CSS

    WAILS

    使用 Go 构建漂亮的跨平台应用程序

    在一个框架中生成本机、跨平台桌面和移动应用。

    .NET MAUI

    参考

    + \ No newline at end of file diff --git "a/docs/study/system/CPU\347\272\277\347\250\213\345\271\266\345\217\221/index.html" "b/docs/study/system/CPU\347\272\277\347\250\213\345\271\266\345\217\221/index.html" index ea5005109..c06d1c2e2 100644 --- "a/docs/study/system/CPU\347\272\277\347\250\213\345\271\266\345\217\221/index.html" +++ "b/docs/study/system/CPU\347\272\277\347\250\213\345\271\266\345\217\221/index.html" @@ -10,14 +10,14 @@ - - + + - +
    + \ No newline at end of file diff --git "a/docs/study/system/IO\345\240\265\350\267\257\345\244\215\347\224\250\350\241\214\346\225\260Linux/index.html" "b/docs/study/system/IO\345\240\265\350\267\257\345\244\215\347\224\250\350\241\214\346\225\260Linux/index.html" index a446c240c..eebee1e92 100644 --- "a/docs/study/system/IO\345\240\265\350\267\257\345\244\215\347\224\250\350\241\214\346\225\260Linux/index.html" +++ "b/docs/study/system/IO\345\240\265\350\267\257\345\244\215\347\224\250\350\241\214\346\225\260Linux/index.html" @@ -10,14 +10,14 @@ - - + + - +
    + \ No newline at end of file diff --git a/docs/study/system/index.html b/docs/study/system/index.html index 5f93b8d0b..821d934f0 100644 --- a/docs/study/system/index.html +++ b/docs/study/system/index.html @@ -10,14 +10,14 @@ - - + + - +
    + \ No newline at end of file diff --git a/docs/study/system/openWRT/index.html b/docs/study/system/openWRT/index.html index dff05193e..cd3286c88 100644 --- a/docs/study/system/openWRT/index.html +++ b/docs/study/system/openWRT/index.html @@ -10,14 +10,14 @@ - - + + - +
    + \ No newline at end of file diff --git "a/docs/study/system/shell\347\274\226\347\250\213\346\231\272expect/index.html" "b/docs/study/system/shell\347\274\226\347\250\213\346\231\272expect/index.html" index 99abe68bb..1adf3e22b 100644 --- "a/docs/study/system/shell\347\274\226\347\250\213\346\231\272expect/index.html" +++ "b/docs/study/system/shell\347\274\226\347\250\213\346\231\272expect/index.html" @@ -10,14 +10,14 @@ - - + +
    -

    shell编程智expect

    expect

    expect 是一个免费的编程工具,用来实现自动的交互式任务,而无需人为干预。

    这个工具在处理调用其他工具,输入密码之类的交互,非常有用。

    - +

    shell编程智expect

    expect

    expect 是一个免费的编程工具,用来实现自动的交互式任务,而无需人为干预。

    这个工具在处理调用其他工具,输入密码之类的交互,非常有用。

    + \ No newline at end of file diff --git "a/docs/study/system/\345\206\205\345\255\230\347\256\241\347\220\206/index.html" "b/docs/study/system/\345\206\205\345\255\230\347\256\241\347\220\206/index.html" index 3a66830a9..3d3bcb9b5 100644 --- "a/docs/study/system/\345\206\205\345\255\230\347\256\241\347\220\206/index.html" +++ "b/docs/study/system/\345\206\205\345\255\230\347\256\241\347\220\206/index.html" @@ -10,14 +10,14 @@ - - + + - +
    + \ No newline at end of file diff --git "a/docs/study/system/\345\217\257\346\211\247\350\241\214\347\250\213\345\272\217\350\277\220\350\241\214\345\216\237\347\220\206\345\210\206\346\236\220/index.html" "b/docs/study/system/\345\217\257\346\211\247\350\241\214\347\250\213\345\272\217\350\277\220\350\241\214\345\216\237\347\220\206\345\210\206\346\236\220/index.html" index b7efce989..c7ed2fea1 100644 --- "a/docs/study/system/\345\217\257\346\211\247\350\241\214\347\250\213\345\272\217\350\277\220\350\241\214\345\216\237\347\220\206\345\210\206\346\236\220/index.html" +++ "b/docs/study/system/\345\217\257\346\211\247\350\241\214\347\250\213\345\272\217\350\277\220\350\241\214\345\216\237\347\220\206\345\210\206\346\236\220/index.html" @@ -10,14 +10,14 @@ - - + +
    -

    可执行程序在操作系统下的运行原理分析

    架构,从下往上分析

    • 裸机(纯硬件)
    • 操作系统(Windows/Linux)
    • 可执行程序

    裸机

    其实主要就是 CPU 架构的不同,CPU 架构是 CPU 商给 CPU 产品定的一个规范,主要目的是为了区分不同类型的 CPU。目前市场上的 CPU 分类主要分有两大阵营,一个是 Intel、AMD 为首的复杂指令集 CPU,另一个是以 IBM、ARM 为首的精简指令集 CPU。不同品牌的 CPU,其产品的架构也不相同,Intel、AMD 的 CPU 是 X86 架构,IBM 公司的 CPU 是 PowerPC 架构,ARM 公司的 CPU 是 ARM 架构,国内的飞腾 CPU 也是 ARM 架构。此外还有 MPIS 架构、SPARC 架构、Alpha 架构。

    x86 指令集发展

    • IA:Intel(英特尔)处理器的服务器称之为 IA(Intel Architecture)架构服务器
    • IA-32:英特尔 32 位体系架构,X86 从 16 位到 32 位是在原有的架构基础上进行修改(Intel 称之为 IA-32)
    • x86-32:现如今 Intel 把 x86-32 称为 IA-32
    • x86-64 分为 intel 和 AMD
    • AMD64:x86 架构的 64 位拓展,向后兼容于 16 位及 32 位的 x86 架构。x64 于 1999 年由 AMD 设计,AMD 首次公开 64 位集以扩展给 x86,称为“AMD64”,AMD64 和 Intel64 基本上一致
    • Intel64:EM64T(Extended Memory 64 Technology)扩展 64bit 内存技术,本质上和 AMD64 一样都是 IA-32 的增强版本。
    • IA-64:64 位的英特尔架构,英特尔安腾架构(Intel Itanium architecture),使用在 Itanium 处理器家族上的 64 位指令集架构,由英特尔公司与惠普公司共同开发。IA 是 Intel Architecture(英特尔架构)的缩写,64 指 64 位系统。使用这种架构的 CPU,包括 Itanium 和 Itanium 2。此架构与 x86 及 x86-64 并不相容,操作系统与软件需使用 IA-64 专用版本。

    ARM 架构

    ARM 架构,也称作进阶精简指令集机器(Advanced RISC Machine,更早称作:Acorn RISC Machine),是一个 32 位精简指令集(RISC)处理器架构,其广泛地使用在许多嵌入式系统设计。由于节能的特点,ARM 处理器非常适用于行动通讯领域,符合其主要设计目标为低耗电的特性。

    ARM 授权方式:ARM 公司本身并不靠自有的设计来制造或出售 CPU ,而是将处理器架构授权给有兴趣的厂家。

    国外生产厂商:TI (德州仪器)、Samsung(三星)、Freescale(飞思卡尔)、Marvell(马维尔)、Nvidia(英伟达)、Qualcomm(高通)、STMicroelectronics(意法半导体)。

    国内生产厂商:华为(海思芯片)、飞腾(FT-1500、FT2000-4 等 CPU 芯片)、兆易创新(GD32 系列 MCU,参考 STM32 系列)、瑞芯微(RK 系列芯片)、联发科(台湾,天玑系列)。

    MPIS 架构

    MIPS 是世界上很流行的一种 RISC 处理器。MIPS 技术公司是美国著名的芯片设计公司,它采用精简指令系统计算结构(RISC)来设计芯片。

    MPIS 架构授权和 ARM 架构授权不一样,ARM 架构授权用户基本不能自行修改,而 MPIS 架构授权后,可以自己修改。目前 MPIS 发扬光大寄希望中科龙芯公司,龙芯处理器从龙芯 1 号,到现在的龙芯 3 号系列的 3A4000,CPU 的性能已经大幅度提高,在完全可以胜任日常办公或者作为特殊用途的服务器。龙芯 CPU 和国产的飞腾(FT)处理器并驾齐驱,发展我国自主可控 CPU。

    PowerPC 系列

    PowerPC 是一种精简指令集(RISC)架构的中央处理器(CPU),其基本的设计源自 IBM(国际商用机器公司)的 IBMPowerPC 601 微处理器 POWER(PerformanceOptimized With Enhanced RISC;《IBM Connect 电子报》2007 年 8 月号译为“增强 RISC 性能优化”)架构。二十世纪九十年代,IBM(国际商用机器公司)、Apple(苹果公司)和 Motorola(摩托罗拉)公司开发 PowerPC 芯片成功,并制造出基于 PowerPC 的多处理器计算机。PowerPC 架构的特点是可伸缩性好、方便灵活。

    PowerPC 处理器有广泛的实现范围,包括从诸如 Power4 那样的高端服务器 CPU 到嵌入式 CPU 市场(任天堂 Gamecube 使用了 PowerPC)。PowerPC 处理器有非常强的嵌入式表现,因为它具有优异的性能、较低的能量损耗以及较低的散热量。除了象串行和以太网控制器那样的集成 I/O,该嵌入式处理器与“台式机”CPU 存在非常显著的区别。

    SPARC 架构

    SPARC 架构(Scalable Processor ARChitecture,可扩展处理器架构)是国际上流行的 RISC 处理器体系架构之一,SPRAC 如今已发展成为一个开放的标准,任何机构或个人均可研究或开发基于 SPRAC 架构的产品,而无需交纳版权费。SPARC 处理器架构具备精简指令集(RISC)、支持 32 位/64 位指令精度,架构运行稳定、可扩展性优良、体系标准开放等特点。SPARC 因此得以迅速发展壮大,在现在已经有大约 3 万多个成功的应用案例。

    SPARCV7/V8 是目前嵌入式控制系统常用的处理器标准版本,并在航天设备的电子系统中得到广泛应用。然而,SPARC 只是一个处理器的架构标准,并不提供现成的源码或 IP 核,具体的芯片实现要由开发者去完成。

    Alpha 架构

    目前国内采用此架构的是申微超算处理器,得益于国家的支持,申威处理器在军队应用广泛。

    CPU 架构之间的竞争

    PC 和服务器竞争

    PC 端和服务器端是 X86 架构的天下,而 X86 架构基本是以 Intel 为首,AMD 为辅二分天下之势。国产 CPU 基本只能用在军工行业或者事业单位等。其实说性能,powerpc,可谓是高出不胜寒。硬件方面,Power 系统在可靠性、可用性和可维护性的方面的出色表现使得 IBM 从芯片到系统所设计的整机方案有着独有的优势。Power 架构的处理器在超算、大型企业的 UNIX 服务器等多个方面应用也十分成功。在软件方面,其专用的 AIX 系统在稳定性、软件方案集成度和厂商技术支持能力方面都要更强。由于用户选一平台主要看软件需求,一般对数据保护和 7*24 小时不宕机等有所要求,power 架构的稳定性和运维等方面相对更优。但是,由于 IBM 的技术把控,使得其价格太不友好,同时技术也赶不上环境的变化,在云计算兴起后,随着分布式系统逐渐成熟,系统对小型机的依赖开始降低,改为依靠集群提供,性能也可实现分布式处理。而更为关键的是,IBM 的全套服务尽管稳定性优秀,但却影响了 Power 架构对其他商家的吸引力。

    而 Sparc 架构和 Power 架构基本犯了同样的错误:价格不友好。SPARC 架构测成功和 Sun 旗下的 Solaris 系统有着密不可分的关系。当计算机系统庞大、用户数量巨大增加时,基于 Unix 操作系统打造的 Solaris 能更好地利用计算机资源,是所有商业版中最可靠最完善的版本。而依赖 SPARC 架构和 Solaris 系统的性能和可靠性,其占领了服务器高端市场。Sun 的另一个更为知名的产品是 Java,虽然在上世纪 90 年代为智能家电开发的 Java 并没有为其带来相应的回报,但已成为今天移动时代最重要的开发语言。如此强大的实力本应统领服务器市场,但遗憾的是,在 windows 和英特尔组成 Wintel 联盟之后,两者凭借自身在各自市场的规模效应,使得采用 Wintel 产品的服务器厂商可以通过低廉的价格大肆抢占中低端市场。而当 Sun 醒悟过来,通过开源等方式想要挽回败局时为时已晚。

    X86 架构与 Power 和 SPARC 在高性能领域的风生水起不同,x86 架构是天生的小屌丝。1978 年他出生的那年,英特尔还只是一个普通的科技公司。可是 x86 架构随同其 cisc 指令集却开启了一个新的时代。x86 之所以可以赢得市场主要原因在于其是一个十分开放的架构。IBM 和 SUN 当年都是从芯片到服务器到系统一手包办的公司。而英特尔则是一个十分纯粹的芯片厂商,其业务仅与 AMD 等少数芯片生产者存在竞争,这就使得服务器厂商不用忌惮与之发生竞争关系。

    单从性能来看,无论 Power 还是 SPARC 架构都可以击溃 x86,可是最终能够赢下来的却偏偏是"最弱"的 x86 架构。这并非劣币淘汰良币,而是市场竞争的选择,根源上讲,x86 的成功在于英特尔根本不碰服务器。因此不论设备生产商、软件开发者或者系统开发者都可以与不存在利益竞争关系的英特尔合作。受益于此,x86 架构的兼容性也越发强大,生态体系越发完善,这才成就了现如今市场占有率超过 90%的一家独大局面,英特尔也借助 x86 架构一跃成为全球顶级的芯片提供商。

    移动端竞争

    正如 PC 和服务器端是 X86 的天下一样,移动端是 ARM 的天下。Intel 在 CPU 界的大名,可谓家喻户晓,但是在手机登移动端却难以看到英国 ARM 公司背影。在 2006 年,自从 AMD 的 64 位处理器发布以来,AMD 成功逆袭了 Intel,市场占有率大幅上升,而 Intel 老迈的 P4 处理器则是腹背受敌,尽失昔日霸气,市场表现一路走低。为了稳住投资人的信心,最好的做法自然是让公司持续盈利,为此 Intel 进行大规模的重整,包括上任新 CEO 欧德宁、大规模裁员、以及出售 XScale 手机处理器业务。正因为这个举措,使得 Intel 到达了人生巅峰,从 PC 市场有赚的钵满盆满,然而也是因为此,Intel 忽视了移动领域的迅猛发展。(当年,Intel 拒绝了乔帮主还是 PPT 的 Iphone 手机,不然是否就会不一样?但是想一下 Iphone X 使用 Intel 基带,信号差的诟病,Intel 做手机芯是否会臭名昭著也未可知)

    和 Intel 公司不同, ARM 公司不制造,不销售芯片,而是只自己设计 IP 核,包括指令集架构、微处理器、GPU、互连架构等,然后谁想用就授权卖给谁,再从每颗实际造出来的产品中收取版税。ARM 有三种授权模式,分别是架构授权、内核授权、使用授权,分别对应大中小公司,非常讨喜,贴个牌子就能说是自己的 CPU,为 ARM 处理器的广泛使用打下坚实基础。

    ARM 的成功除了商业模式的独特之外还少不得自身素质的优秀,Intel 技术毫无疑问是顶尖的,但应用场景在传统 PC 上,换成移动设备就行不通了,移动设备比起性能首先要考虑功耗和续航,Intel 就吃了这个大亏,X86 架构独步天下肯定是不能随意变改的,移动设备当然继续沿用 X86 架构,然而换来却是高功耗和快速掉电,换谁都看不上。反之功耗控制则是 ARM 的强项,使用精简指令集(RISC)和创新的 big.LITTLE 架构,使 ARM 处理器能耗比一直领先于 Intel。

    Intel 正在积极布局,推出应用于 IoT 物联网的 Atom E3900 及车载电子的 Atom A3900 系列,号称 CPU 性能提升 70%,GPU 性能提升 190%,其中 Atom A3900 特别针对高温环境设计,可在 110°C 高温下使用 15 年。Intel 是一家伟大的企业,但也是会犯错误的,既然已经错失移动市场,不妨暂时脱离,提前做好下一阶段的技术研发(5G),也有可能实现弯道超车。

    操作系统

    操作系统(Operating System,OS)是一组主管并控制计算机操作、运用和运行硬件、软件资源和提供公共服务来组织用户交互的相互关联的系统软件程序。根据运行的环境,操作系统可以分为桌面操作系统,手机操作系统,服务器操作系统,嵌入式操作系统等。

    操作系统能管理计算机系统的硬件、软件及数据资源,控制程序运行,改善人机界面,为其它应用软件提供支持,并使计算机系统所有资源最大限度地发挥作用。操作系统主要功能包括:进程管理、存储管理、设备管理、文件管理、作业管理等。

    桌面操作系统

    桌面操作系统主要用于个人计算机上。个人计算机市场从硬件架构上来说主要分为两大阵营,PC 机与 Mac 机,从软件上可主要分为两大类,分别为类 Unix 操作系统和 Windows 操作系统:

    1、Unix 和类 Unix 操作系统:Mac OS X,Linux 发行版(如 Debian,Ubuntu,Linux Mint,openSUSE,Fedora 等);

    2、微软公司 Windows 操作系统 :Windows XP,Windows Vista,Windows 7,Windows 8,Windows 8.1,Windows 10,Windows 11 等。

    服务器操作系统

    服务器操作系统一般指的是安装在大型计算机上的操作系统,比如 Web 服务器、应用服务器和数据库服务器等。服务器操作系统主要集中在三大类:

    1、Unix 系列:SUNSolaris,IBM-AIX,HP-UX,FreeBSD 等;

    2、Linux 系列:Red Hat Linux,CentOS,Debian,Ubuntu 等;

    3、Windows 系列:Windows Server 2003,Windows Server 2008,Windows Server 2008 R2 等。

    嵌入式操作系统

    嵌入式操作系统是应用在嵌入式系统的操作系统。嵌入式系统广泛应用在生活的各个方面,涵盖范围从便携设备到大型固定设施,如数码相机、手机、平板电脑、家用电器、医疗设备、交通灯、航空电子设备和工厂控制设备等,越来越多嵌入式系统安装有实时操作系统。

    在嵌入式领域常用的操作系统有嵌入式 Linux、Windows Embedded、VxWorks 等,以及广泛使用在智能手机或平板电脑等消费电子产品的操作系统,如 Android、iOS、Symbian、Windows Phone 和 BlackBerry OS 等。

    可执行程序执行的原理分析

    可执行程序执行内容可以分两类,一是 CPU 的指令,二是操作系统的系统调用,几乎所有的可执行程序都是运行在操作系统之上的,由操作系统来统一调度可执行程序的执行内容。

    说到可执行程序,必须得说一下,应用程序二进制接口 ABI,(Application Binary Interface),ABI 是编译器和链接器遵守的一组规则,以让编译后的程序可以正常工作。

    不同的操作系统对 ABI 的要求不一样,例如 Linux 要求 ELF 格式,Windows 要求 PE 格式。

    简单来说,ABI 就是描述函数名如何存储,函数参数类型如何存储的接口。

    一个程序要想调用其它程序编译出来的函数,那么就必须知道其 ABI 接口。

    C 语言具有优秀的 ABI 兼容,因为主流 C 编译器编译出来的函数,ABI 接口大都相同,所以用 C 语言写的库能方便的被其它程序调用。

    C++一般不具有很好的 ABI 兼容,因为每个 C++编译器编译出来的接口可能不同,导致了你无法调用其它人用 C++接口提供的库函数。所以 C++函数往往强制使用 C 的 ABI 用于给其它程序调用。

    • 把符号标准、变量内存布局、函数调用方式等跟可执行代码二进制兼容性相关的内容称为 ABI Application Binary Interface
    • 应用程序二进制接口,描述了应用程序和操作系统之间,一个应用和它的库之间,或者应用的组成部分之间的低接口。
    • 编程语言实现的 ABI 是一种可以使单独编译的模块协同工作的低级细节的规范。如果没有一个稳定的 ABI,就必须使用同一编译器的同一版本编译程序的所有部分。
    • API 是源代码级别的接口,ABI 是二进制层面的接口,ABI 的兼容程度比 API 更加严格

    操作系统都规定了支持的可执行文件(程序)的格式。Windows 下有 PE 文件格式,Linux 下有 ELF 格式,Mac OS 下有 Mach-O 格式。

    参考

    - +

    可执行程序在操作系统下的运行原理分析

    架构,从下往上分析

    • 裸机(纯硬件)
    • 操作系统(Windows/Linux)
    • 可执行程序

    裸机

    其实主要就是 CPU 架构的不同,CPU 架构是 CPU 商给 CPU 产品定的一个规范,主要目的是为了区分不同类型的 CPU。目前市场上的 CPU 分类主要分有两大阵营,一个是 Intel、AMD 为首的复杂指令集 CPU,另一个是以 IBM、ARM 为首的精简指令集 CPU。不同品牌的 CPU,其产品的架构也不相同,Intel、AMD 的 CPU 是 X86 架构,IBM 公司的 CPU 是 PowerPC 架构,ARM 公司的 CPU 是 ARM 架构,国内的飞腾 CPU 也是 ARM 架构。此外还有 MPIS 架构、SPARC 架构、Alpha 架构。

    x86 指令集发展

    • IA:Intel(英特尔)处理器的服务器称之为 IA(Intel Architecture)架构服务器
    • IA-32:英特尔 32 位体系架构,X86 从 16 位到 32 位是在原有的架构基础上进行修改(Intel 称之为 IA-32)
    • x86-32:现如今 Intel 把 x86-32 称为 IA-32
    • x86-64 分为 intel 和 AMD
    • AMD64:x86 架构的 64 位拓展,向后兼容于 16 位及 32 位的 x86 架构。x64 于 1999 年由 AMD 设计,AMD 首次公开 64 位集以扩展给 x86,称为“AMD64”,AMD64 和 Intel64 基本上一致
    • Intel64:EM64T(Extended Memory 64 Technology)扩展 64bit 内存技术,本质上和 AMD64 一样都是 IA-32 的增强版本。
    • IA-64:64 位的英特尔架构,英特尔安腾架构(Intel Itanium architecture),使用在 Itanium 处理器家族上的 64 位指令集架构,由英特尔公司与惠普公司共同开发。IA 是 Intel Architecture(英特尔架构)的缩写,64 指 64 位系统。使用这种架构的 CPU,包括 Itanium 和 Itanium 2。此架构与 x86 及 x86-64 并不相容,操作系统与软件需使用 IA-64 专用版本。

    ARM 架构

    ARM 架构,也称作进阶精简指令集机器(Advanced RISC Machine,更早称作:Acorn RISC Machine),是一个 32 位精简指令集(RISC)处理器架构,其广泛地使用在许多嵌入式系统设计。由于节能的特点,ARM 处理器非常适用于行动通讯领域,符合其主要设计目标为低耗电的特性。

    ARM 授权方式:ARM 公司本身并不靠自有的设计来制造或出售 CPU ,而是将处理器架构授权给有兴趣的厂家。

    国外生产厂商:TI (德州仪器)、Samsung(三星)、Freescale(飞思卡尔)、Marvell(马维尔)、Nvidia(英伟达)、Qualcomm(高通)、STMicroelectronics(意法半导体)。

    国内生产厂商:华为(海思芯片)、飞腾(FT-1500、FT2000-4 等 CPU 芯片)、兆易创新(GD32 系列 MCU,参考 STM32 系列)、瑞芯微(RK 系列芯片)、联发科(台湾,天玑系列)。

    MPIS 架构

    MIPS 是世界上很流行的一种 RISC 处理器。MIPS 技术公司是美国著名的芯片设计公司,它采用精简指令系统计算结构(RISC)来设计芯片。

    MPIS 架构授权和 ARM 架构授权不一样,ARM 架构授权用户基本不能自行修改,而 MPIS 架构授权后,可以自己修改。目前 MPIS 发扬光大寄希望中科龙芯公司,龙芯处理器从龙芯 1 号,到现在的龙芯 3 号系列的 3A4000,CPU 的性能已经大幅度提高,在完全可以胜任日常办公或者作为特殊用途的服务器。龙芯 CPU 和国产的飞腾(FT)处理器并驾齐驱,发展我国自主可控 CPU。

    PowerPC 系列

    PowerPC 是一种精简指令集(RISC)架构的中央处理器(CPU),其基本的设计源自 IBM(国际商用机器公司)的 IBMPowerPC 601 微处理器 POWER(PerformanceOptimized With Enhanced RISC;《IBM Connect 电子报》2007 年 8 月号译为“增强 RISC 性能优化”)架构。二十世纪九十年代,IBM(国际商用机器公司)、Apple(苹果公司)和 Motorola(摩托罗拉)公司开发 PowerPC 芯片成功,并制造出基于 PowerPC 的多处理器计算机。PowerPC 架构的特点是可伸缩性好、方便灵活。

    PowerPC 处理器有广泛的实现范围,包括从诸如 Power4 那样的高端服务器 CPU 到嵌入式 CPU 市场(任天堂 Gamecube 使用了 PowerPC)。PowerPC 处理器有非常强的嵌入式表现,因为它具有优异的性能、较低的能量损耗以及较低的散热量。除了象串行和以太网控制器那样的集成 I/O,该嵌入式处理器与“台式机”CPU 存在非常显著的区别。

    SPARC 架构

    SPARC 架构(Scalable Processor ARChitecture,可扩展处理器架构)是国际上流行的 RISC 处理器体系架构之一,SPRAC 如今已发展成为一个开放的标准,任何机构或个人均可研究或开发基于 SPRAC 架构的产品,而无需交纳版权费。SPARC 处理器架构具备精简指令集(RISC)、支持 32 位/64 位指令精度,架构运行稳定、可扩展性优良、体系标准开放等特点。SPARC 因此得以迅速发展壮大,在现在已经有大约 3 万多个成功的应用案例。

    SPARCV7/V8 是目前嵌入式控制系统常用的处理器标准版本,并在航天设备的电子系统中得到广泛应用。然而,SPARC 只是一个处理器的架构标准,并不提供现成的源码或 IP 核,具体的芯片实现要由开发者去完成。

    Alpha 架构

    目前国内采用此架构的是申微超算处理器,得益于国家的支持,申威处理器在军队应用广泛。

    CPU 架构之间的竞争

    PC 和服务器竞争

    PC 端和服务器端是 X86 架构的天下,而 X86 架构基本是以 Intel 为首,AMD 为辅二分天下之势。国产 CPU 基本只能用在军工行业或者事业单位等。其实说性能,powerpc,可谓是高出不胜寒。硬件方面,Power 系统在可靠性、可用性和可维护性的方面的出色表现使得 IBM 从芯片到系统所设计的整机方案有着独有的优势。Power 架构的处理器在超算、大型企业的 UNIX 服务器等多个方面应用也十分成功。在软件方面,其专用的 AIX 系统在稳定性、软件方案集成度和厂商技术支持能力方面都要更强。由于用户选一平台主要看软件需求,一般对数据保护和 7*24 小时不宕机等有所要求,power 架构的稳定性和运维等方面相对更优。但是,由于 IBM 的技术把控,使得其价格太不友好,同时技术也赶不上环境的变化,在云计算兴起后,随着分布式系统逐渐成熟,系统对小型机的依赖开始降低,改为依靠集群提供,性能也可实现分布式处理。而更为关键的是,IBM 的全套服务尽管稳定性优秀,但却影响了 Power 架构对其他商家的吸引力。

    而 Sparc 架构和 Power 架构基本犯了同样的错误:价格不友好。SPARC 架构测成功和 Sun 旗下的 Solaris 系统有着密不可分的关系。当计算机系统庞大、用户数量巨大增加时,基于 Unix 操作系统打造的 Solaris 能更好地利用计算机资源,是所有商业版中最可靠最完善的版本。而依赖 SPARC 架构和 Solaris 系统的性能和可靠性,其占领了服务器高端市场。Sun 的另一个更为知名的产品是 Java,虽然在上世纪 90 年代为智能家电开发的 Java 并没有为其带来相应的回报,但已成为今天移动时代最重要的开发语言。如此强大的实力本应统领服务器市场,但遗憾的是,在 windows 和英特尔组成 Wintel 联盟之后,两者凭借自身在各自市场的规模效应,使得采用 Wintel 产品的服务器厂商可以通过低廉的价格大肆抢占中低端市场。而当 Sun 醒悟过来,通过开源等方式想要挽回败局时为时已晚。

    X86 架构与 Power 和 SPARC 在高性能领域的风生水起不同,x86 架构是天生的小屌丝。1978 年他出生的那年,英特尔还只是一个普通的科技公司。可是 x86 架构随同其 cisc 指令集却开启了一个新的时代。x86 之所以可以赢得市场主要原因在于其是一个十分开放的架构。IBM 和 SUN 当年都是从芯片到服务器到系统一手包办的公司。而英特尔则是一个十分纯粹的芯片厂商,其业务仅与 AMD 等少数芯片生产者存在竞争,这就使得服务器厂商不用忌惮与之发生竞争关系。

    单从性能来看,无论 Power 还是 SPARC 架构都可以击溃 x86,可是最终能够赢下来的却偏偏是"最弱"的 x86 架构。这并非劣币淘汰良币,而是市场竞争的选择,根源上讲,x86 的成功在于英特尔根本不碰服务器。因此不论设备生产商、软件开发者或者系统开发者都可以与不存在利益竞争关系的英特尔合作。受益于此,x86 架构的兼容性也越发强大,生态体系越发完善,这才成就了现如今市场占有率超过 90%的一家独大局面,英特尔也借助 x86 架构一跃成为全球顶级的芯片提供商。

    移动端竞争

    正如 PC 和服务器端是 X86 的天下一样,移动端是 ARM 的天下。Intel 在 CPU 界的大名,可谓家喻户晓,但是在手机登移动端却难以看到英国 ARM 公司背影。在 2006 年,自从 AMD 的 64 位处理器发布以来,AMD 成功逆袭了 Intel,市场占有率大幅上升,而 Intel 老迈的 P4 处理器则是腹背受敌,尽失昔日霸气,市场表现一路走低。为了稳住投资人的信心,最好的做法自然是让公司持续盈利,为此 Intel 进行大规模的重整,包括上任新 CEO 欧德宁、大规模裁员、以及出售 XScale 手机处理器业务。正因为这个举措,使得 Intel 到达了人生巅峰,从 PC 市场有赚的钵满盆满,然而也是因为此,Intel 忽视了移动领域的迅猛发展。(当年,Intel 拒绝了乔帮主还是 PPT 的 Iphone 手机,不然是否就会不一样?但是想一下 Iphone X 使用 Intel 基带,信号差的诟病,Intel 做手机芯是否会臭名昭著也未可知)

    和 Intel 公司不同, ARM 公司不制造,不销售芯片,而是只自己设计 IP 核,包括指令集架构、微处理器、GPU、互连架构等,然后谁想用就授权卖给谁,再从每颗实际造出来的产品中收取版税。ARM 有三种授权模式,分别是架构授权、内核授权、使用授权,分别对应大中小公司,非常讨喜,贴个牌子就能说是自己的 CPU,为 ARM 处理器的广泛使用打下坚实基础。

    ARM 的成功除了商业模式的独特之外还少不得自身素质的优秀,Intel 技术毫无疑问是顶尖的,但应用场景在传统 PC 上,换成移动设备就行不通了,移动设备比起性能首先要考虑功耗和续航,Intel 就吃了这个大亏,X86 架构独步天下肯定是不能随意变改的,移动设备当然继续沿用 X86 架构,然而换来却是高功耗和快速掉电,换谁都看不上。反之功耗控制则是 ARM 的强项,使用精简指令集(RISC)和创新的 big.LITTLE 架构,使 ARM 处理器能耗比一直领先于 Intel。

    Intel 正在积极布局,推出应用于 IoT 物联网的 Atom E3900 及车载电子的 Atom A3900 系列,号称 CPU 性能提升 70%,GPU 性能提升 190%,其中 Atom A3900 特别针对高温环境设计,可在 110°C 高温下使用 15 年。Intel 是一家伟大的企业,但也是会犯错误的,既然已经错失移动市场,不妨暂时脱离,提前做好下一阶段的技术研发(5G),也有可能实现弯道超车。

    操作系统

    操作系统(Operating System,OS)是一组主管并控制计算机操作、运用和运行硬件、软件资源和提供公共服务来组织用户交互的相互关联的系统软件程序。根据运行的环境,操作系统可以分为桌面操作系统,手机操作系统,服务器操作系统,嵌入式操作系统等。

    操作系统能管理计算机系统的硬件、软件及数据资源,控制程序运行,改善人机界面,为其它应用软件提供支持,并使计算机系统所有资源最大限度地发挥作用。操作系统主要功能包括:进程管理、存储管理、设备管理、文件管理、作业管理等。

    桌面操作系统

    桌面操作系统主要用于个人计算机上。个人计算机市场从硬件架构上来说主要分为两大阵营,PC 机与 Mac 机,从软件上可主要分为两大类,分别为类 Unix 操作系统和 Windows 操作系统:

    1、Unix 和类 Unix 操作系统:Mac OS X,Linux 发行版(如 Debian,Ubuntu,Linux Mint,openSUSE,Fedora 等);

    2、微软公司 Windows 操作系统 :Windows XP,Windows Vista,Windows 7,Windows 8,Windows 8.1,Windows 10,Windows 11 等。

    服务器操作系统

    服务器操作系统一般指的是安装在大型计算机上的操作系统,比如 Web 服务器、应用服务器和数据库服务器等。服务器操作系统主要集中在三大类:

    1、Unix 系列:SUNSolaris,IBM-AIX,HP-UX,FreeBSD 等;

    2、Linux 系列:Red Hat Linux,CentOS,Debian,Ubuntu 等;

    3、Windows 系列:Windows Server 2003,Windows Server 2008,Windows Server 2008 R2 等。

    嵌入式操作系统

    嵌入式操作系统是应用在嵌入式系统的操作系统。嵌入式系统广泛应用在生活的各个方面,涵盖范围从便携设备到大型固定设施,如数码相机、手机、平板电脑、家用电器、医疗设备、交通灯、航空电子设备和工厂控制设备等,越来越多嵌入式系统安装有实时操作系统。

    在嵌入式领域常用的操作系统有嵌入式 Linux、Windows Embedded、VxWorks 等,以及广泛使用在智能手机或平板电脑等消费电子产品的操作系统,如 Android、iOS、Symbian、Windows Phone 和 BlackBerry OS 等。

    可执行程序执行的原理分析

    可执行程序执行内容可以分两类,一是 CPU 的指令,二是操作系统的系统调用,几乎所有的可执行程序都是运行在操作系统之上的,由操作系统来统一调度可执行程序的执行内容。

    说到可执行程序,必须得说一下,应用程序二进制接口 ABI,(Application Binary Interface),ABI 是编译器和链接器遵守的一组规则,以让编译后的程序可以正常工作。

    不同的操作系统对 ABI 的要求不一样,例如 Linux 要求 ELF 格式,Windows 要求 PE 格式。

    简单来说,ABI 就是描述函数名如何存储,函数参数类型如何存储的接口。

    一个程序要想调用其它程序编译出来的函数,那么就必须知道其 ABI 接口。

    C 语言具有优秀的 ABI 兼容,因为主流 C 编译器编译出来的函数,ABI 接口大都相同,所以用 C 语言写的库能方便的被其它程序调用。

    C++一般不具有很好的 ABI 兼容,因为每个 C++编译器编译出来的接口可能不同,导致了你无法调用其它人用 C++接口提供的库函数。所以 C++函数往往强制使用 C 的 ABI 用于给其它程序调用。

    • 把符号标准、变量内存布局、函数调用方式等跟可执行代码二进制兼容性相关的内容称为 ABI Application Binary Interface
    • 应用程序二进制接口,描述了应用程序和操作系统之间,一个应用和它的库之间,或者应用的组成部分之间的低接口。
    • 编程语言实现的 ABI 是一种可以使单独编译的模块协同工作的低级细节的规范。如果没有一个稳定的 ABI,就必须使用同一编译器的同一版本编译程序的所有部分。
    • API 是源代码级别的接口,ABI 是二进制层面的接口,ABI 的兼容程度比 API 更加严格

    操作系统都规定了支持的可执行文件(程序)的格式。Windows 下有 PE 文件格式,Linux 下有 ELF 格式,Mac OS 下有 Mach-O 格式。

    参考

    + \ No newline at end of file diff --git "a/docs/study/system/\346\223\215\344\275\234\347\263\273\347\273\237\345\206\205\346\240\270/index.html" "b/docs/study/system/\346\223\215\344\275\234\347\263\273\347\273\237\345\206\205\346\240\270/index.html" index 0a968deca..bba700d03 100644 --- "a/docs/study/system/\346\223\215\344\275\234\347\263\273\347\273\237\345\206\205\346\240\270/index.html" +++ "b/docs/study/system/\346\223\215\344\275\234\347\263\273\347\273\237\345\206\205\346\240\270/index.html" @@ -10,14 +10,14 @@ - - + +
    -

    操作系统内核

    什么是内核

    说到操作系统,就必须说内核。内核是操作系统中应用连接硬件设备的桥梁。

    内核仅仅是操作系统的一部分,是真正与硬件交互的那部分软件,与硬件交互包括读写硬盘、读写网盘、读写内存以及任何连接到系统中的硬件。

    除了与硬件交互外,内核还负责分配资源,分配什么资源呢?所谓资源就是硬件,比如 CPU 时间、内存、IO 等等,这些都是资源。

    操作系统分层

    Linux 内核调优

    ip_forward

    IP forward 是一种内核态设置,允许将一个接口的流量转发到另外一个接口。

    出于安全考虑,Linux 系统默认是禁止数据包转发的。所谓转发即当主机拥有多于一块的网卡时,其中一块收到数据包,根据数据包的目的 ip 地址将数据包发往本机另一块网卡,该网卡根据路由表继续发送数据包。这通常是路由器所要实现的功能。

    参考

    - +

    操作系统内核

    什么是内核

    说到操作系统,就必须说内核。内核是操作系统中应用连接硬件设备的桥梁。

    内核仅仅是操作系统的一部分,是真正与硬件交互的那部分软件,与硬件交互包括读写硬盘、读写网盘、读写内存以及任何连接到系统中的硬件。

    除了与硬件交互外,内核还负责分配资源,分配什么资源呢?所谓资源就是硬件,比如 CPU 时间、内存、IO 等等,这些都是资源。

    操作系统分层

    Linux 内核调优

    ip_forward

    IP forward 是一种内核态设置,允许将一个接口的流量转发到另外一个接口。

    出于安全考虑,Linux 系统默认是禁止数据包转发的。所谓转发即当主机拥有多于一块的网卡时,其中一块收到数据包,根据数据包的目的 ip 地址将数据包发往本机另一块网卡,该网卡根据路由表继续发送数据包。这通常是路由器所要实现的功能。

    参考

    + \ No newline at end of file diff --git "a/docs/study/system/\347\250\213\345\272\217\350\260\203\350\257\225/index.html" "b/docs/study/system/\347\250\213\345\272\217\350\260\203\350\257\225/index.html" index 88ed8a5c4..18e1099e1 100644 --- "a/docs/study/system/\347\250\213\345\272\217\350\260\203\350\257\225/index.html" +++ "b/docs/study/system/\347\250\213\345\272\217\350\260\203\350\257\225/index.html" @@ -10,14 +10,14 @@ - - + +
    -

    程序调试

    strace

    strace 是个功能强大的 Linux 调试分析诊断工具,可用于跟踪程序执行时进程系统调用(system call)和所接收的信号,尤其是针对源码不可读或源码无法再编译的程序。在 Linux 系统中,用户进程不能直接访问计算机硬件设备。当进程需要访问硬件设备(如读取磁盘文件或接收网络数据等)时,必须由用户态模式切换至内核态模式,通过系统调用访问硬件设备。strace 可跟踪进程产生的系统调用,包括参数、返回值和执行所消耗的时间。若 strace 没有任何输出,并不代表此时进程发生阻塞;也可能程序进程正在执行某些不需要与系统其它部分发生通信的事情。strace 从内核接收信息,且无需以任何特殊方式来构建内核。

    - +

    程序调试

    strace

    strace 是个功能强大的 Linux 调试分析诊断工具,可用于跟踪程序执行时进程系统调用(system call)和所接收的信号,尤其是针对源码不可读或源码无法再编译的程序。在 Linux 系统中,用户进程不能直接访问计算机硬件设备。当进程需要访问硬件设备(如读取磁盘文件或接收网络数据等)时,必须由用户态模式切换至内核态模式,通过系统调用访问硬件设备。strace 可跟踪进程产生的系统调用,包括参数、返回值和执行所消耗的时间。若 strace 没有任何输出,并不代表此时进程发生阻塞;也可能程序进程正在执行某些不需要与系统其它部分发生通信的事情。strace 从内核接收信息,且无需以任何特殊方式来构建内核。

    + \ No newline at end of file diff --git a/docs/study/think/IT_CT_OT/index.html b/docs/study/think/IT_CT_OT/index.html index 1f28bc559..1cf675272 100644 --- a/docs/study/think/IT_CT_OT/index.html +++ b/docs/study/think/IT_CT_OT/index.html @@ -10,8 +10,8 @@ - - + + @@ -24,8 +24,8 @@ 而随着工业4.0的来临,越来越多的ICT技术则需要被引入到OT技术之中,IT、OT、CT将在未来紧密的融合在一起,成为一个整体。 未来在5G之中,三大应用场景之中的URLLC(超高可靠低时延)就是主要支持工业4.0的场景。 工业自动化也被认为是5G最重要的一种垂直行业应用了,重要性甚至要超过更科幻一些的自动驾驶应用。 -总而言之,如果单单拿出来,IT CT OT都可能是别的缩写,但是三个在一起出现的话,你看到的文档,通常都是描绘工业4.0的资料了,现在也有很多这样的资料。

    - +总而言之,如果单单拿出来,IT CT OT都可能是别的缩写,但是三个在一起出现的话,你看到的文档,通常都是描绘工业4.0的资料了,现在也有很多这样的资料。

    + \ No newline at end of file diff --git a/docs/study/think/index.html b/docs/study/think/index.html index c82a13eaf..fa2d319fc 100644 --- a/docs/study/think/index.html +++ b/docs/study/think/index.html @@ -10,14 +10,14 @@ - - + + - +
    + \ No newline at end of file diff --git "a/docs/study/think/\344\273\243\347\240\201\350\257\204\345\256\241/Gerrit\344\273\243\347\240\201\350\257\204\345\256\241\345\267\245\345\205\267/index.html" "b/docs/study/think/\344\273\243\347\240\201\350\257\204\345\256\241/Gerrit\344\273\243\347\240\201\350\257\204\345\256\241\345\267\245\345\205\267/index.html" index 5e4b0e137..3edfe5628 100644 --- "a/docs/study/think/\344\273\243\347\240\201\350\257\204\345\256\241/Gerrit\344\273\243\347\240\201\350\257\204\345\256\241\345\267\245\345\205\267/index.html" +++ "b/docs/study/think/\344\273\243\347\240\201\350\257\204\345\256\241/Gerrit\344\273\243\347\240\201\350\257\204\345\256\241\345\267\245\345\205\267/index.html" @@ -10,14 +10,14 @@ - - + + - +
    + \ No newline at end of file diff --git "a/docs/study/think/\344\273\243\347\240\201\350\257\204\345\256\241/\344\273\243\347\240\201\345\256\241\346\237\245\351\227\256\351\242\230\346\211\213\345\206\214/index.html" "b/docs/study/think/\344\273\243\347\240\201\350\257\204\345\256\241/\344\273\243\347\240\201\345\256\241\346\237\245\351\227\256\351\242\230\346\211\213\345\206\214/index.html" index 3392889b6..f684a2314 100644 --- "a/docs/study/think/\344\273\243\347\240\201\350\257\204\345\256\241/\344\273\243\347\240\201\345\256\241\346\237\245\351\227\256\351\242\230\346\211\213\345\206\214/index.html" +++ "b/docs/study/think/\344\273\243\347\240\201\350\257\204\345\256\241/\344\273\243\347\240\201\345\256\241\346\237\245\351\227\256\351\242\230\346\211\213\345\206\214/index.html" @@ -10,8 +10,8 @@ - - + + @@ -23,8 +23,8 @@ 新人阅读老人的代码,能够更明确的知晓当前项目的规范、流程等。 高级开发阅读初中级开发的代码,能够查缺补漏,避免安全风险; 初中级开发乐队高级开发的代码,能够学到更多代码经验、思想、意识。

    代码审查列表,是代码审查的明确规则和指导手册,它可以使代码审查为你的团队带来更多好处,并且能够显著提升代码审查的速度。研究表明,使用代码审查列表的审阅者的表现要优于不使用的审阅者。所以不管你是新手开发者还是经验丰富的开发者,开始考虑使用代码审查列表吧。

    代码作者应该关注的列表

    作为代码的作者,你应该保证:

    • 代码编译成功并且通过静态检查(没有警告)
    • 代码通过所有的测试(单元测试、集成测试和系统测试)
    • 你已经仔细检查了拼写错误,并做了处理(注释、todo等)
    • 概述代码修改的原因以及修改了哪些地方

    除此之外,作为代码作者,也应该在提交审查之前,按照审查者的列表对自己的代码进行审查。

    代码审查者应该关注的列表

    作为代码审查者,你的任务是寻找最重要的问题。评论会对代码的结构性或逻辑性问题更有价值,即使有时候会显得挑剔。你应该知道什么是好的代码反馈。另外需要注意,最好的代码审查反馈不是点评,而是建议。所以不要说“变量名称应该是removeObject“,最好说”调用变量removeObject怎么样?“。 -下面这份列表足够帮助你提出好的代码审查反馈了。

    实现

    • 此代码更改会执行它应该做的事情吗?
    • 这种解决方法是最简单的吗?
    • 这个更改有引入一些不需要的编译时或运行时的依赖吗?
    • 是否使用了不应该使用的框架、API、库、服务?
    • 是否存在可以提升解决方法的未使用的框架、API、库、服务?
    • 代码是否处于正确的抽象级别?
    • 代码的模块化做的是否足够好?
    • 你是否有其他的解决方案,该方案在代码可维护性、可读性、性能、安全方面表现更好?
    • 是否已经存在类似功能的函数?如果有,为什么不复用?
    • 是否有最佳实践、设计模式或特定语言模式可以优化代码?
    • 代码是否遵循面向对象的分析和设计原则,例如单一责任原则,开闭原则,里氏替换原则,接口隔离,依赖注入?

    逻辑错误或Bug

    • 你能想到代码不按预期运行的任何用例吗?
    • 你能想到任何可能破坏代码的输入或外部事件吗?

    错误处理和日志

    • 错误都被正确处理了吗?
    • 是否有需要增加或删除的日志/debug信息?
    • 错误消息对用户是否友好?
    • 是否有足够的日志,它们的编写方式是否是易于调试的?

    可用性和可访问性

    • 从可用性角度出发,所提出的解决方案是否设计合理?
    • API文档是否足够好?
    • 提出的解决方案是否具备可访问性?
    • API/UI是否直观易用?

    测试与可测试性

    • 代码是否达到可测试标准?
    • 是否有足够的自动化测试(单元测试/集成测试/系统测试)?
    • 现有测试是否合理覆盖代码变更?
    • 是否有额外的测试用例、输入或边界用例以供测试?

    依赖

    • 如果这个修改需要更新代码以外的文件,例如更新文档,配置,readme文件。是否完成了这些更新?
    • 这个修改是否会对系统其他地方造成影响?是否能后向后兼容?

    安全和隐私数据

    • 这段代码是否打开软件的安全漏洞?
    • 权限和身份验证是否被正确处理?
    • 是否安全处理了敏感数据,例如用户数据、信用卡信息等?是否正确使用加密方法?
    • 代码更改是否显露了一些私密信息(如秘钥,用户名等)?
    • 如果代码处理用户输入,是否解决了跨站点脚本,SQL注入等安全漏洞,是否进行了输入清洗和验证?
    • 从外部API或库中获得的数据是否进行了相应的检查?

    性能

    • 这段代码修改是否会对系统性能产生负面影响?
    • 是否可以进一步提升代码性能?

    可读性

    • 代码是否容易理解?
    • 哪一部分使你困惑,为什么?
    • 可以通过减小方法来提高代码可读性吗?
    • 可以通过使用不同的函数/方法或变量名称来提升代码可读性吗?
    • 代码是否存放在正确的文件/目录/包?
    • 你是否认为方法应该重构以拥有更直观的控制流程?
    • 数据流是否可理解?
    • 是否有多余的注释?
    • 某些注释是否可以更好的传达信息?
    • 是否更多的注释会使你的代码更容易理解?
    • 是否可以移除一些注释,通过提升代码可读性来理解代码?
    • 是否存在注释掉的代码?

    专家意见

    • 你是否认为特定专家(如安全专家或可用性专家)应该先检查代码,然后再提交代码?
    • 这个代码修改会影响其他团队吗?他们也应该发表意见吗?

    代码风格和约定

    您的团队或公司必须拥有清晰的编码风格指南,这一点很重要。因为这是在代码库中实施唯一性的唯一方法。并且一致性会使代码审查更快,使人们可以轻松地更改项目,并保持您代码的可读性和可维护性。Google是做到这一点的很好的例子,无疑,这使Google可以进行快速的代码审查。首先,我建议使用现成的编码样式来支持Google提供的多种语言。设定基本规则很重要,但要确保一劳永逸。不要持续争论。

    尽可能自动化

    确定了代码风格以后,请花一些时间正确安装和配置工具,以便一键格式化代码。另外还有很多事情可以做。例如使用静态检查来代替部分人工审核。这是值得为之努力的。

    - +下面这份列表足够帮助你提出好的代码审查反馈了。

    实现

    • 此代码更改会执行它应该做的事情吗?
    • 这种解决方法是最简单的吗?
    • 这个更改有引入一些不需要的编译时或运行时的依赖吗?
    • 是否使用了不应该使用的框架、API、库、服务?
    • 是否存在可以提升解决方法的未使用的框架、API、库、服务?
    • 代码是否处于正确的抽象级别?
    • 代码的模块化做的是否足够好?
    • 你是否有其他的解决方案,该方案在代码可维护性、可读性、性能、安全方面表现更好?
    • 是否已经存在类似功能的函数?如果有,为什么不复用?
    • 是否有最佳实践、设计模式或特定语言模式可以优化代码?
    • 代码是否遵循面向对象的分析和设计原则,例如单一责任原则,开闭原则,里氏替换原则,接口隔离,依赖注入?

    逻辑错误或Bug

    • 你能想到代码不按预期运行的任何用例吗?
    • 你能想到任何可能破坏代码的输入或外部事件吗?

    错误处理和日志

    • 错误都被正确处理了吗?
    • 是否有需要增加或删除的日志/debug信息?
    • 错误消息对用户是否友好?
    • 是否有足够的日志,它们的编写方式是否是易于调试的?

    可用性和可访问性

    • 从可用性角度出发,所提出的解决方案是否设计合理?
    • API文档是否足够好?
    • 提出的解决方案是否具备可访问性?
    • API/UI是否直观易用?

    测试与可测试性

    • 代码是否达到可测试标准?
    • 是否有足够的自动化测试(单元测试/集成测试/系统测试)?
    • 现有测试是否合理覆盖代码变更?
    • 是否有额外的测试用例、输入或边界用例以供测试?

    依赖

    • 如果这个修改需要更新代码以外的文件,例如更新文档,配置,readme文件。是否完成了这些更新?
    • 这个修改是否会对系统其他地方造成影响?是否能后向后兼容?

    安全和隐私数据

    • 这段代码是否打开软件的安全漏洞?
    • 权限和身份验证是否被正确处理?
    • 是否安全处理了敏感数据,例如用户数据、信用卡信息等?是否正确使用加密方法?
    • 代码更改是否显露了一些私密信息(如秘钥,用户名等)?
    • 如果代码处理用户输入,是否解决了跨站点脚本,SQL注入等安全漏洞,是否进行了输入清洗和验证?
    • 从外部API或库中获得的数据是否进行了相应的检查?

    性能

    • 这段代码修改是否会对系统性能产生负面影响?
    • 是否可以进一步提升代码性能?

    可读性

    • 代码是否容易理解?
    • 哪一部分使你困惑,为什么?
    • 可以通过减小方法来提高代码可读性吗?
    • 可以通过使用不同的函数/方法或变量名称来提升代码可读性吗?
    • 代码是否存放在正确的文件/目录/包?
    • 你是否认为方法应该重构以拥有更直观的控制流程?
    • 数据流是否可理解?
    • 是否有多余的注释?
    • 某些注释是否可以更好的传达信息?
    • 是否更多的注释会使你的代码更容易理解?
    • 是否可以移除一些注释,通过提升代码可读性来理解代码?
    • 是否存在注释掉的代码?

    专家意见

    • 你是否认为特定专家(如安全专家或可用性专家)应该先检查代码,然后再提交代码?
    • 这个代码修改会影响其他团队吗?他们也应该发表意见吗?

    代码风格和约定

    您的团队或公司必须拥有清晰的编码风格指南,这一点很重要。因为这是在代码库中实施唯一性的唯一方法。并且一致性会使代码审查更快,使人们可以轻松地更改项目,并保持您代码的可读性和可维护性。Google是做到这一点的很好的例子,无疑,这使Google可以进行快速的代码审查。首先,我建议使用现成的编码样式来支持Google提供的多种语言。设定基本规则很重要,但要确保一劳永逸。不要持续争论。

    尽可能自动化

    确定了代码风格以后,请花一些时间正确安装和配置工具,以便一键格式化代码。另外还有很多事情可以做。例如使用静态检查来代替部分人工审核。这是值得为之努力的。

    + \ No newline at end of file diff --git "a/docs/study/think/\345\256\236\346\227\266\350\256\241\347\256\227Storm+Flink/index.html" "b/docs/study/think/\345\256\236\346\227\266\350\256\241\347\256\227Storm+Flink/index.html" index 2f28b3175..2fa284bd2 100644 --- "a/docs/study/think/\345\256\236\346\227\266\350\256\241\347\256\227Storm+Flink/index.html" +++ "b/docs/study/think/\345\256\236\346\227\266\350\256\241\347\256\227Storm+Flink/index.html" @@ -10,16 +10,16 @@ - - + +

    实时计算Storm+Flink

    实时计算

    一种考虑了无线数据集的数据处理引擎。又称实时流式计算、流式计算,都是差不多的概念;

    三个特征:

    1. 无限数据,是指一种不断增长,基本上无限的数据集,也可以称作流数据,与之对应的是有限的数据集;
    2. 无界数据处理,一种持续的数据处理模式,能够通过处理引擎重复的去处理上面的无限数据,是能够突破有限数据处理引擎的瓶颈的。
    3. 低延迟,延迟是多少并没有明确的定义。但我们都知道数据的价值将随着时间的流逝降低,时效性将是需要持续解决的问题。

    实时计算其实是一个相对的概念,对于批处理、近实时、微批,不多是时间的问题; 实时框架有很多,例如Storm、Fink、Kafka Streaming、Spark Streaming; -同时支持流处理和批处理的计算引擎,有两种选择:一个是Apache Spark,一个是Apache Flink。从技术,生态等各方面的综合考虑,首先,Spark的技术理念是基于批来模拟流的计算。而Flink则完全相反,它采用的是基于流计算来模拟批计算。从技术发展方向看,用批来模拟流有一定的技术局限性,并且这个局限性可能很难突破。而Flink基于流来模拟批,在技术上有更好的扩展性。

    主要应用

    1. 日志分析,比如对网站的用户访问日志进行实时的分析,计算访问量,用户画像,留存率等等,实时的进行数据分析,帮助企业进行决策。
    2. 物联网,比如对电力系统进行实时的数据检测,进行报警,实时的显示,或者根据历史数据进行实时的分析,预测。
    3. 车联网,如今的车联网已经不限于物联网,还包括对用户,交通等等进行分析的一个庞大的系统,改善用户出行。
    4. 金融分控,通过对交易等金融行为实时分析,预测出未知风险。

    Storm

    Twitter开源的Storm框架风靡一时,在Hadoop诞生初期,Storm弥补了Hadoop不能做实时数据处理缺陷,被广泛使用,现在的很多公司依然在使用,Storm延迟是毫秒级的,但是它很难实现高吞吐,不能保证消息恰好一次的传递。我们可以通过ack机制保证,但开销极大,现在很多使用Storm的公司都出现了消息积压的问题,这其实是很难避免的。

    1. Flink 从 0 到 1 学习

    参考

    1. Streaming-大数据的未来
    2. 阿里巴巴为什么选择Apache Flink?
    - +同时支持流处理和批处理的计算引擎,有两种选择:一个是Apache Spark,一个是Apache Flink。从技术,生态等各方面的综合考虑,首先,Spark的技术理念是基于批来模拟流的计算。而Flink则完全相反,它采用的是基于流计算来模拟批计算。从技术发展方向看,用批来模拟流有一定的技术局限性,并且这个局限性可能很难突破。而Flink基于流来模拟批,在技术上有更好的扩展性。

    主要应用

    1. 日志分析,比如对网站的用户访问日志进行实时的分析,计算访问量,用户画像,留存率等等,实时的进行数据分析,帮助企业进行决策。
    2. 物联网,比如对电力系统进行实时的数据检测,进行报警,实时的显示,或者根据历史数据进行实时的分析,预测。
    3. 车联网,如今的车联网已经不限于物联网,还包括对用户,交通等等进行分析的一个庞大的系统,改善用户出行。
    4. 金融分控,通过对交易等金融行为实时分析,预测出未知风险。

    Storm

    Twitter开源的Storm框架风靡一时,在Hadoop诞生初期,Storm弥补了Hadoop不能做实时数据处理缺陷,被广泛使用,现在的很多公司依然在使用,Storm延迟是毫秒级的,但是它很难实现高吞吐,不能保证消息恰好一次的传递。我们可以通过ack机制保证,但开销极大,现在很多使用Storm的公司都出现了消息积压的问题,这其实是很难避免的。

    1. Flink 从 0 到 1 学习

    参考

    1. Streaming-大数据的未来
    2. 阿里巴巴为什么选择Apache Flink?
    + \ No newline at end of file diff --git "a/docs/study/think/\345\271\266\345\217\221\346\250\241\345\236\213/index.html" "b/docs/study/think/\345\271\266\345\217\221\346\250\241\345\236\213/index.html" index 72cf50a9c..e2072b31b 100644 --- "a/docs/study/think/\345\271\266\345\217\221\346\250\241\345\236\213/index.html" +++ "b/docs/study/think/\345\271\266\345\217\221\346\250\241\345\236\213/index.html" @@ -10,14 +10,14 @@ - - + +
    -

    并发模型

    业界将如何实现并发编程总结归纳为各式各样的并发模型,常见的并发模型有以下几种:

    • 线程 & 锁模型
    • Actor 模型
    • CSP 模型
    • Fork&Join 模型

    线程 & 锁模型

    Actor 模型

    CSP 模型

    CSP(communicating sequential processes)

    Go 语言中的并发程序主要是通过基于 CSP(communicating sequential processes)的 goroutine 和 channel 来实现,当然也支持使用传统的多线程共享内存的并发方式。

    Fork&Join 模型

    - +

    并发模型

    业界将如何实现并发编程总结归纳为各式各样的并发模型,常见的并发模型有以下几种:

    • 线程 & 锁模型
    • Actor 模型
    • CSP 模型
    • Fork&Join 模型

    线程 & 锁模型

    Actor 模型

    CSP 模型

    CSP(communicating sequential processes)

    Go 语言中的并发程序主要是通过基于 CSP(communicating sequential processes)的 goroutine 和 channel 来实现,当然也支持使用传统的多线程共享内存的并发方式。

    Fork&Join 模型

    + \ No newline at end of file diff --git "a/docs/study/think/\346\236\266\346\236\204/CAP\347\220\206\350\256\272/index.html" "b/docs/study/think/\346\236\266\346\236\204/CAP\347\220\206\350\256\272/index.html" index e832ecf89..5fef22e15 100644 --- "a/docs/study/think/\346\236\266\346\236\204/CAP\347\220\206\350\256\272/index.html" +++ "b/docs/study/think/\346\236\266\346\236\204/CAP\347\220\206\350\256\272/index.html" @@ -10,8 +10,8 @@ - - + + @@ -21,8 +21,8 @@ 2、一致性的概念,从强到弱,线性一致性、顺序一致性、因果一致性、单调一致性、最终一致性,CAP中的一致性应该是指线性一致性。 3、CAP中的一致性,与ACID中的一致性的区别。事务中的一致性,是指满足完整性约束条件,CAP中的一致性,是指读写一致性。 4、CAP中的可用性,与我们常说的高可用的区别。比如HBase、MongoDB属于CP架构,Cassandra、CounchDB属于AP系统,能说后者比前者更高可用么?应该不是。CAP中的可用性,是指在某一次读操作中,即便发现不一致,也要返回响应,即在合理时间内返回合理响应。我们常说的高可用,是指部分实例挂了,能自动摘除,并由其它实例继续提供服务,关键是冗余。 -5、哪些情况属于网络分区。网络故障造成的分区,属于。节点应用出现问题导致超时,属于。节点宕机或硬件故障,不属于。

    CAP 关注的粒度是数据,而不是整个系统。所以在 CAP 理论落地实践时,我们需要将系统内的数据按照不同的应用场景和要求进行分类,每类数据选择不同的策略(CP 还是 AP),而不是直接限定整个系统所有数据都是同一策略。

    CAP 是忽略网络延迟的。

    正常运行情况下,不存在 CP 和 AP 的选择,可以同时满足 CA。

    放弃并不等于什么都不做,需要为分区恢复后做准备。

    ACID 中的 A(Atomicity)和 CAP 中的 A(Availability)意义完全不同,而 ACID 中的 C 和 CAP 中的 C 名称虽然都是一致性,但含义也完全不一样。ACID 中的 C 是指数据库的数据完整性,而 CAP 中的 C 是指分布式节点中的数据一致性。再结合 ACID 的应用场景是数据库事务,CAP 关注的是分布式系统数据读写这个差异点来看,其实 CAP 和 ACID 的对比就类似关公战秦琼,虽然关公和秦琼都是武将,但其实没有太多可比性。

    BASE 是指基本可用(Basically Available)、软状态( Soft State)、最终一致性( Eventual Consistency),核心思想是即使无法做到强一致性(CAP 的一致性就是强一致性),但应用可以采用适合的方式达到最终一致性。

    BASE 理论本质上是对 CAP 的延伸和补充,更具体地说,是对 CAP 中 AP 方案的一个补充。CAP 理论是忽略延时的,而实际应用中延时是无法避免的。AP 方案中牺牲一致性只是指分区期间,而不是永远放弃一致性。

    个人理解

    设计分布式系统的两大初衷:横向扩展(scalability)和高可用性(availability)。“横向扩展”是为了解决单点瓶颈问题,进而保证高并发量下的「可用性」;“高可用性”是为了解决单点故障(SPOF)问题,进而保证部分节点故障时的「可用性」。由此可以看出,分布式系统的核心诉求就是「可用性」。这个「可用性」正是 CAP 中的 A:用户访问系统时,可以在合理的时间内得到合理的响应。

    为了保证「可用性」,一个分布式系统通常由多个节点组成。这些节点各自维护一份数据,但是不管用户访问到哪个节点,原则上都应该读取到相同的数据。为了达到这个效果,一个节点收到写入请求更新自己的数据后,必须将数据同步到其他节点,以保证各个节点的数据「一致性」。这个「一致性」正是 CAP 中的 C:用户访问系统时,可以读取到最近写入的数据。

    需要注意的是:CAP 并没有考虑数据同步的耗时,所以现实中的分布式系统,理论上无法保证任何时刻的绝对「一致性」;不同业务系统对上述耗时的敏感度不同。

    分布式系统中,节点之间的数据同步是基于网络的。由于网络本身固有的不可靠属性,极端情况下会出现网络不可用的情况,进而将网络两端的节点孤立开来,这就是所谓的“网络分区”现象。“网络分区”理论上是无法避免的,虽然实际发生的概率较低、时长较短。没有发生“网络分区”时,系统可以做到同时保证「一致性」和「可用性」。

    发生“网络分区”时,系统中多个节点的数据一定是不一致的,但是可以选择对用户表现出「一致性」,代价是牺牲「可用性」:将未能同步得到新数据的部分节点置为“不可用状态”,访问到这些节点的用户显然感知到系统是不可用的。发生“网络分区”时,系统也可以选择「可用性」,此时系统中各个节点都是可用的,只是返回给用户的数据是不一致的。这里的选择,就是 CAP 中的 P。

    分布式系统理论上一定会存在 P,所以理论上只能做到 CP 或 AP。如果套用 CAP 中离散的 C/A/P 的概念,理论上没有 P 的只可能是单点(子)系统,所以理论上可以做到 CA。但是单点(子)系统并不是分布式系统,所以其实并不在 CAP 理论的描述范围内。

    - +5、哪些情况属于网络分区。网络故障造成的分区,属于。节点应用出现问题导致超时,属于。节点宕机或硬件故障,不属于。

    CAP 关注的粒度是数据,而不是整个系统。所以在 CAP 理论落地实践时,我们需要将系统内的数据按照不同的应用场景和要求进行分类,每类数据选择不同的策略(CP 还是 AP),而不是直接限定整个系统所有数据都是同一策略。

    CAP 是忽略网络延迟的。

    正常运行情况下,不存在 CP 和 AP 的选择,可以同时满足 CA。

    放弃并不等于什么都不做,需要为分区恢复后做准备。

    ACID 中的 A(Atomicity)和 CAP 中的 A(Availability)意义完全不同,而 ACID 中的 C 和 CAP 中的 C 名称虽然都是一致性,但含义也完全不一样。ACID 中的 C 是指数据库的数据完整性,而 CAP 中的 C 是指分布式节点中的数据一致性。再结合 ACID 的应用场景是数据库事务,CAP 关注的是分布式系统数据读写这个差异点来看,其实 CAP 和 ACID 的对比就类似关公战秦琼,虽然关公和秦琼都是武将,但其实没有太多可比性。

    BASE 是指基本可用(Basically Available)、软状态( Soft State)、最终一致性( Eventual Consistency),核心思想是即使无法做到强一致性(CAP 的一致性就是强一致性),但应用可以采用适合的方式达到最终一致性。

    BASE 理论本质上是对 CAP 的延伸和补充,更具体地说,是对 CAP 中 AP 方案的一个补充。CAP 理论是忽略延时的,而实际应用中延时是无法避免的。AP 方案中牺牲一致性只是指分区期间,而不是永远放弃一致性。

    个人理解

    设计分布式系统的两大初衷:横向扩展(scalability)和高可用性(availability)。“横向扩展”是为了解决单点瓶颈问题,进而保证高并发量下的「可用性」;“高可用性”是为了解决单点故障(SPOF)问题,进而保证部分节点故障时的「可用性」。由此可以看出,分布式系统的核心诉求就是「可用性」。这个「可用性」正是 CAP 中的 A:用户访问系统时,可以在合理的时间内得到合理的响应。

    为了保证「可用性」,一个分布式系统通常由多个节点组成。这些节点各自维护一份数据,但是不管用户访问到哪个节点,原则上都应该读取到相同的数据。为了达到这个效果,一个节点收到写入请求更新自己的数据后,必须将数据同步到其他节点,以保证各个节点的数据「一致性」。这个「一致性」正是 CAP 中的 C:用户访问系统时,可以读取到最近写入的数据。

    需要注意的是:CAP 并没有考虑数据同步的耗时,所以现实中的分布式系统,理论上无法保证任何时刻的绝对「一致性」;不同业务系统对上述耗时的敏感度不同。

    分布式系统中,节点之间的数据同步是基于网络的。由于网络本身固有的不可靠属性,极端情况下会出现网络不可用的情况,进而将网络两端的节点孤立开来,这就是所谓的“网络分区”现象。“网络分区”理论上是无法避免的,虽然实际发生的概率较低、时长较短。没有发生“网络分区”时,系统可以做到同时保证「一致性」和「可用性」。

    发生“网络分区”时,系统中多个节点的数据一定是不一致的,但是可以选择对用户表现出「一致性」,代价是牺牲「可用性」:将未能同步得到新数据的部分节点置为“不可用状态”,访问到这些节点的用户显然感知到系统是不可用的。发生“网络分区”时,系统也可以选择「可用性」,此时系统中各个节点都是可用的,只是返回给用户的数据是不一致的。这里的选择,就是 CAP 中的 P。

    分布式系统理论上一定会存在 P,所以理论上只能做到 CP 或 AP。如果套用 CAP 中离散的 C/A/P 的概念,理论上没有 P 的只可能是单点(子)系统,所以理论上可以做到 CA。但是单点(子)系统并不是分布式系统,所以其实并不在 CAP 理论的描述范围内。

    + \ No newline at end of file diff --git "a/docs/study/think/\346\236\266\346\236\204/index.html" "b/docs/study/think/\346\236\266\346\236\204/index.html" index 163474c20..15b71bcf2 100644 --- "a/docs/study/think/\346\236\266\346\236\204/index.html" +++ "b/docs/study/think/\346\236\266\346\236\204/index.html" @@ -10,15 +10,15 @@ - - + +

    架构

    定义

    架构这个词最早是跟随着建筑出现的,进入到软件行业后,它的含义有了一些变化,但最基础的含义还是没有变的。本质上来说,架构是一个设计动作和实现动作;设计动作描述的是勾勒出满足客户战略规划需求的产品;实现动作描述的是将构件组合成结构的过程。

    分类

    依据架构的定义,可以将架构分类为产品架构和软件架构两个大类。 -在这两个大类下,还可以继续划分子类,如下:

    产品架构

    • 业务架构

    • 应用架构

    • 解决方案架构

    软件架构

    • 数据架构

    • 基础结构架构

    • 特定技术架构

    上面只是列出了一部分架构子分类,理论上还可以继续划分,但在大多数的实际生产中,通常不会有这么详细的分类,常态是软件架构与产品架构都由一个人负责实现。

    架构师的能力

    1

    参考

    1. 架构的本质
    - +在这两个大类下,还可以继续划分子类,如下:

    产品架构

    • 业务架构

    • 应用架构

    • 解决方案架构

    软件架构

    • 数据架构

    • 基础结构架构

    • 特定技术架构

    上面只是列出了一部分架构子分类,理论上还可以继续划分,但在大多数的实际生产中,通常不会有这么详细的分类,常态是软件架构与产品架构都由一个人负责实现。

    架构师的能力

    1

    参考

    1. 架构的本质
    + \ No newline at end of file diff --git "a/docs/study/think/\346\236\266\346\236\204/\345\274\202\345\234\260\345\244\232\346\264\273\346\236\266\346\236\204/index.html" "b/docs/study/think/\346\236\266\346\236\204/\345\274\202\345\234\260\345\244\232\346\264\273\346\236\266\346\236\204/index.html" index 1c2c82af7..b5cc7e383 100644 --- "a/docs/study/think/\346\236\266\346\236\204/\345\274\202\345\234\260\345\244\232\346\264\273\346\236\266\346\236\204/index.html" +++ "b/docs/study/think/\346\236\266\346\236\204/\345\274\202\345\234\260\345\244\232\346\264\273\346\236\266\346\236\204/index.html" @@ -10,14 +10,14 @@ - - + +
    -

    异地多活架构

    干货|搞懂「异地多活」,看这篇就够了

    image.png

    单机架构

    【没有数据备份】

    【有数据备份、非实时】

    【有数据备份、实时、主从数据库、非读写分离】

    【有数据备份、实时、主从数据库、读写分离】

    分布式架构【同城一个机房】

    【没有数据备份】

    【有数据备份、非实时】

    【有数据备份、实时、主从数据库、非读写分离】

    【有数据备份、实时、主从数据库、读写分离】

    分布式架构【同城2个机房】

    【冷备】

    【热备】

    【同城双活】

    分布式架构【两城3个机房】

    在【同城双活】的基础上新增了一个异地(非一个城市)机房。

    【两地三中心、灾备】

    分布式架构【伪异地双活】

    分布式架构【异地双活】

    路由层的规则怎么定,一般是根据业务类型、哈希算法(例如用户ID)、地理位置等

    image.png

    分布式架构【异地多活】

    【网状】

    image.png

    【星状】

    image.png

    - +

    异地多活架构

    干货|搞懂「异地多活」,看这篇就够了

    image.png

    单机架构

    【没有数据备份】

    【有数据备份、非实时】

    【有数据备份、实时、主从数据库、非读写分离】

    【有数据备份、实时、主从数据库、读写分离】

    分布式架构【同城一个机房】

    【没有数据备份】

    【有数据备份、非实时】

    【有数据备份、实时、主从数据库、非读写分离】

    【有数据备份、实时、主从数据库、读写分离】

    分布式架构【同城2个机房】

    【冷备】

    【热备】

    【同城双活】

    分布式架构【两城3个机房】

    在【同城双活】的基础上新增了一个异地(非一个城市)机房。

    【两地三中心、灾备】

    分布式架构【伪异地双活】

    分布式架构【异地双活】

    路由层的规则怎么定,一般是根据业务类型、哈希算法(例如用户ID)、地理位置等

    image.png

    分布式架构【异地多活】

    【网状】

    image.png

    【星状】

    image.png

    + \ No newline at end of file diff --git "a/docs/study/think/\346\236\266\346\236\204/\346\212\200\346\234\257\344\270\255\345\217\260/index.html" "b/docs/study/think/\346\236\266\346\236\204/\346\212\200\346\234\257\344\270\255\345\217\260/index.html" index 6ce9ca737..d5d78d52d 100644 --- "a/docs/study/think/\346\236\266\346\236\204/\346\212\200\346\234\257\344\270\255\345\217\260/index.html" +++ "b/docs/study/think/\346\236\266\346\236\204/\346\212\200\346\234\257\344\270\255\345\217\260/index.html" @@ -10,14 +10,14 @@ - - + + - +
    + \ No newline at end of file diff --git "a/docs/study/think/\346\236\266\346\236\204/\346\236\266\346\236\204\345\233\276\347\244\272\344\276\213/index.html" "b/docs/study/think/\346\236\266\346\236\204/\346\236\266\346\236\204\345\233\276\347\244\272\344\276\213/index.html" index 111ffa9c1..87daa5890 100644 --- "a/docs/study/think/\346\236\266\346\236\204/\346\236\266\346\236\204\345\233\276\347\244\272\344\276\213/index.html" +++ "b/docs/study/think/\346\236\266\346\236\204/\346\236\266\346\236\204\345\233\276\347\244\272\344\276\213/index.html" @@ -10,14 +10,14 @@ - - + + - +
    + \ No newline at end of file diff --git "a/docs/study/think/\346\236\266\346\236\204/\350\264\237\350\275\275\345\235\207\350\241\241/index.html" "b/docs/study/think/\346\236\266\346\236\204/\350\264\237\350\275\275\345\235\207\350\241\241/index.html" index 6502a6aba..a4c98e93e 100644 --- "a/docs/study/think/\346\236\266\346\236\204/\350\264\237\350\275\275\345\235\207\350\241\241/index.html" +++ "b/docs/study/think/\346\236\266\346\236\204/\350\264\237\350\275\275\345\235\207\350\241\241/index.html" @@ -10,14 +10,14 @@ - - + +
    -

    负载均衡

    DNS负载

    DNS 是最简单也是最常见的负载均衡方式,一般用来实现地理级别的均衡。例如,北方的用户访问北京的机房,南方的用户访问深圳的机房。DNS 负载均衡的本质是 DNS 解析同一个域名可以返回不同的 IP 地址。例如,同样是 www.baidu.com,北方用户解析后获取的地址是 61.135.165.224(这是北京机房的 IP),南方用户解析后获取的地址是 14.215.177.38(这是深圳机房的 IP)。

    DNS 负载均衡实现简单、成本低,但也存在粒度太粗、负载均衡算法少等缺点。仔细分析一下优缺点,其优点有:

    • 简单、成本低:负载均衡工作交给 DNS 服务器处理,无须自己开发或者维护负载均衡设备。
    • 就近访问,提升访问速度:DNS 解析时可以根据请求来源 IP,解析成距离用户最近的服务器地址,可以加快访问速度,改善性能。

    缺点有:

    • 更新不及时:DNS 缓存的时间比较长,修改 DNS 配置后,由于缓存的原因,还是有很多用户会继续访问修改前的 IP,这样的访问会失败,达不到负载均衡的目的,并且也影响用户正常使用业务。
    • 扩展性差:DNS 负载均衡的控制权在域名商那里,无法根据业务特点针对其做更多的定制化功能和扩展特性。
    • 分配策略比较简单:DNS 负载均衡支持的算法少;不能区分服务器的差异(不能根据系统与服务的状态来判断负载);也无法感知后端服务器的状态。

    针对 DNS 负载均衡的一些缺点,对于时延和故障敏感的业务,有一些公司自己实现了 HTTP-DNS 的功能,即使用 HTTP 协议实现一个私有的 DNS 系统。这样的方案和通用的 DNS 优缺点正好相反。

    硬件负载

    硬件负载均衡是通过单独的硬件设备来实现负载均衡功能,这类设备和路由器、交换机类似,可以理解为一个用于负载均衡的基础网络设备。目前业界典型的硬件负载均衡设备有两款:F5 和 A10。这类设备性能强劲、功能强大,但价格都不便宜,一般只有“土豪”公司才会考虑使用此类设备。普通业务量级的公司一是负担不起,二是业务量没那么大,用这些设备也是浪费。

    硬件负载均衡的优点是:

    • 功能强大:全面支持各层级的负载均衡,支持全面的负载均衡算法,支持全局负载均衡。
    • 性能强大:对比一下,软件负载均衡支持到 10 万级并发已经很厉害了,硬件负载均衡可以支持 100 万以上的并发。
    • 稳定性高:商用硬件负载均衡,经过了良好的严格测试,经过大规模使用,稳定性高。
    • 支持安全防护:硬件均衡设备除具备负载均衡功能外,还具备防火墙、防 DDoS 攻击等安全功能。

    硬件负载均衡的缺点是:

    • 价格昂贵:最普通的一台 F5 就是一台“马 6”,好一点的就是“Q7”了。
    • 扩展能力差:硬件设备,可以根据业务进行配置,但无法进行扩展和定制。

    软件负载

    软件负载均衡通过负载均衡软件来实现负载均衡功能,常见的有 Nginx 和 LVS,其中 Nginx 是软件的 7 层负载均衡,LVS 是 Linux 内核的 4 层负载均衡。4 层和 7 层的区别就在于协议和灵活性,Nginx 支持 HTTP、E-mail 协议;而 LVS 是 4 层负载均衡,和协议无关,几乎所有应用都可以做,例如,聊天、数据库等。

    软件和硬件的最主要区别就在于性能,硬件负载均衡性能远远高于软件负载均衡性能。Nginx 的性能是万级,一般的 Linux 服务器上装一个 Nginx 大概能到 5 万 / 秒;LVS 的性能是十万级,据说可达到 80 万 / 秒;而 F5 性能是百万级,从 200 万 / 秒到 800 万 / 秒都有(数据来源网络,仅供参考,如需采用请根据实际业务场景进行性能测试)。当然,软件负载均衡的最大优势是便宜,一台普通的 Linux 服务器批发价大概就是 1 万元左右,相比 F5 的价格,那就是自行车和宝马的区别了。

    软件负载均衡的优点:

    • 简单:无论是部署还是维护都比较简单。
    • 便宜:只要买个 Linux 服务器,装上软件即可。
    • 灵活:4 层和 7 层负载均衡可以根据业务进行选择;也可以根据业务进行比较方便的扩展,例如,可以通过 Nginx 的插件来实现业务的定制化功能。

    其实下面的缺点都是和硬件负载均衡相比的,并不是说软件负载均衡没法用。

    • 性能一般:一个 Nginx 大约能支撑 5 万并发。
    • 功能没有硬件负载均衡那么强大。
    • 一般不具备防火墙和防 DDoS 攻击等安全功能。

    使用总结

    前面我们介绍了 3 种常见的负载均衡机制:DNS 负载均衡、硬件负载均衡、软件负载均衡,每种方式都有一些优缺点,但并不意味着在实际应用中只能基于它们的优缺点进行非此即彼的选择,反而是基于它们的优缺点进行组合使用。具体来说,组合的基本原则为:DNS 负载均衡用于实现地理级别的负载均衡;硬件负载均衡用于实现集群级别的负载均衡;软件负载均衡用于实现机器级别的负载均衡。

    image.png

    算法总结

    负载均衡算法数量较多,而且可以根据一些业务特性进行定制开发,抛开细节上的差异,根据算法期望达到的目的,大体上可以分为下面几类。

    • 任务平分类:负载均衡系统将收到的任务平均分配给服务器进行处理,这里的“平均”可以是绝对数量的平均,也可以是比例或者权重上的平均。
    • 负载均衡类:负载均衡系统根据服务器的负载来进行分配,这里的负载并不一定是通常意义上我们说的“CPU 负载”,而是系统当前的压力,可以用 CPU 负载来衡量,也可以用连接数、I/O 使用率、网卡吞吐量等来衡量系统的压力。
    • 性能最优类:负载均衡系统根据服务器的响应时间来进行任务分配,优先将新任务分配给响应最快的服务器。
    • Hash 类:负载均衡系统根据任务中的某些关键信息进行 Hash 运算,将相同 Hash 值的请求分配到同一台服务器上。常见的有源地址 Hash、目标地址 Hash、session id hash、用户 ID Hash 等。
    - +

    负载均衡

    DNS负载

    DNS 是最简单也是最常见的负载均衡方式,一般用来实现地理级别的均衡。例如,北方的用户访问北京的机房,南方的用户访问深圳的机房。DNS 负载均衡的本质是 DNS 解析同一个域名可以返回不同的 IP 地址。例如,同样是 www.baidu.com,北方用户解析后获取的地址是 61.135.165.224(这是北京机房的 IP),南方用户解析后获取的地址是 14.215.177.38(这是深圳机房的 IP)。

    DNS 负载均衡实现简单、成本低,但也存在粒度太粗、负载均衡算法少等缺点。仔细分析一下优缺点,其优点有:

    • 简单、成本低:负载均衡工作交给 DNS 服务器处理,无须自己开发或者维护负载均衡设备。
    • 就近访问,提升访问速度:DNS 解析时可以根据请求来源 IP,解析成距离用户最近的服务器地址,可以加快访问速度,改善性能。

    缺点有:

    • 更新不及时:DNS 缓存的时间比较长,修改 DNS 配置后,由于缓存的原因,还是有很多用户会继续访问修改前的 IP,这样的访问会失败,达不到负载均衡的目的,并且也影响用户正常使用业务。
    • 扩展性差:DNS 负载均衡的控制权在域名商那里,无法根据业务特点针对其做更多的定制化功能和扩展特性。
    • 分配策略比较简单:DNS 负载均衡支持的算法少;不能区分服务器的差异(不能根据系统与服务的状态来判断负载);也无法感知后端服务器的状态。

    针对 DNS 负载均衡的一些缺点,对于时延和故障敏感的业务,有一些公司自己实现了 HTTP-DNS 的功能,即使用 HTTP 协议实现一个私有的 DNS 系统。这样的方案和通用的 DNS 优缺点正好相反。

    硬件负载

    硬件负载均衡是通过单独的硬件设备来实现负载均衡功能,这类设备和路由器、交换机类似,可以理解为一个用于负载均衡的基础网络设备。目前业界典型的硬件负载均衡设备有两款:F5 和 A10。这类设备性能强劲、功能强大,但价格都不便宜,一般只有“土豪”公司才会考虑使用此类设备。普通业务量级的公司一是负担不起,二是业务量没那么大,用这些设备也是浪费。

    硬件负载均衡的优点是:

    • 功能强大:全面支持各层级的负载均衡,支持全面的负载均衡算法,支持全局负载均衡。
    • 性能强大:对比一下,软件负载均衡支持到 10 万级并发已经很厉害了,硬件负载均衡可以支持 100 万以上的并发。
    • 稳定性高:商用硬件负载均衡,经过了良好的严格测试,经过大规模使用,稳定性高。
    • 支持安全防护:硬件均衡设备除具备负载均衡功能外,还具备防火墙、防 DDoS 攻击等安全功能。

    硬件负载均衡的缺点是:

    • 价格昂贵:最普通的一台 F5 就是一台“马 6”,好一点的就是“Q7”了。
    • 扩展能力差:硬件设备,可以根据业务进行配置,但无法进行扩展和定制。

    软件负载

    软件负载均衡通过负载均衡软件来实现负载均衡功能,常见的有 Nginx 和 LVS,其中 Nginx 是软件的 7 层负载均衡,LVS 是 Linux 内核的 4 层负载均衡。4 层和 7 层的区别就在于协议和灵活性,Nginx 支持 HTTP、E-mail 协议;而 LVS 是 4 层负载均衡,和协议无关,几乎所有应用都可以做,例如,聊天、数据库等。

    软件和硬件的最主要区别就在于性能,硬件负载均衡性能远远高于软件负载均衡性能。Nginx 的性能是万级,一般的 Linux 服务器上装一个 Nginx 大概能到 5 万 / 秒;LVS 的性能是十万级,据说可达到 80 万 / 秒;而 F5 性能是百万级,从 200 万 / 秒到 800 万 / 秒都有(数据来源网络,仅供参考,如需采用请根据实际业务场景进行性能测试)。当然,软件负载均衡的最大优势是便宜,一台普通的 Linux 服务器批发价大概就是 1 万元左右,相比 F5 的价格,那就是自行车和宝马的区别了。

    软件负载均衡的优点:

    • 简单:无论是部署还是维护都比较简单。
    • 便宜:只要买个 Linux 服务器,装上软件即可。
    • 灵活:4 层和 7 层负载均衡可以根据业务进行选择;也可以根据业务进行比较方便的扩展,例如,可以通过 Nginx 的插件来实现业务的定制化功能。

    其实下面的缺点都是和硬件负载均衡相比的,并不是说软件负载均衡没法用。

    • 性能一般:一个 Nginx 大约能支撑 5 万并发。
    • 功能没有硬件负载均衡那么强大。
    • 一般不具备防火墙和防 DDoS 攻击等安全功能。

    使用总结

    前面我们介绍了 3 种常见的负载均衡机制:DNS 负载均衡、硬件负载均衡、软件负载均衡,每种方式都有一些优缺点,但并不意味着在实际应用中只能基于它们的优缺点进行非此即彼的选择,反而是基于它们的优缺点进行组合使用。具体来说,组合的基本原则为:DNS 负载均衡用于实现地理级别的负载均衡;硬件负载均衡用于实现集群级别的负载均衡;软件负载均衡用于实现机器级别的负载均衡。

    image.png

    算法总结

    负载均衡算法数量较多,而且可以根据一些业务特性进行定制开发,抛开细节上的差异,根据算法期望达到的目的,大体上可以分为下面几类。

    • 任务平分类:负载均衡系统将收到的任务平均分配给服务器进行处理,这里的“平均”可以是绝对数量的平均,也可以是比例或者权重上的平均。
    • 负载均衡类:负载均衡系统根据服务器的负载来进行分配,这里的负载并不一定是通常意义上我们说的“CPU 负载”,而是系统当前的压力,可以用 CPU 负载来衡量,也可以用连接数、I/O 使用率、网卡吞吐量等来衡量系统的压力。
    • 性能最优类:负载均衡系统根据服务器的响应时间来进行任务分配,优先将新任务分配给响应最快的服务器。
    • Hash 类:负载均衡系统根据任务中的某些关键信息进行 Hash 运算,将相同 Hash 值的请求分配到同一台服务器上。常见的有源地址 Hash、目标地址 Hash、session id hash、用户 ID Hash 等。
    + \ No newline at end of file diff --git "a/docs/study/think/\346\236\266\346\236\204/\351\253\230\346\200\247\350\203\275\346\236\266\346\236\204\346\250\241\345\274\217/index.html" "b/docs/study/think/\346\236\266\346\236\204/\351\253\230\346\200\247\350\203\275\346\236\266\346\236\204\346\250\241\345\274\217/index.html" index fef61fceb..2d2f07841 100644 --- "a/docs/study/think/\346\236\266\346\236\204/\351\253\230\346\200\247\350\203\275\346\236\266\346\236\204\346\250\241\345\274\217/index.html" +++ "b/docs/study/think/\346\236\266\346\236\204/\351\253\230\346\200\247\350\203\275\346\236\266\346\236\204\346\250\241\345\274\217/index.html" @@ -10,15 +10,15 @@ - - + +

    高性能架构模式

    虽然近十年来各种存储技术飞速发展,但关系数据库由于其 ACID 的特性和功能强大的 SQL 查询,目前还是各种业务系统中关键和核心的存储系统,很多场景下高性能的设计最核心的部分就是关系数据库的设计。

    不管是为了满足业务发展的需要,还是为了提升自己的竞争力,关系数据库厂商(Oracle、DB2、MySQL 等)在优化和提升单个数据库服务器的性能方面也做了非常多的技术优化和改进。但业务发展速度和数据增长速度,远远超出数据库厂商的优化速度,尤其是互联网业务兴起之后,海量用户加上海量数据的特点,单个数据库服务器已经难以满足业务需要,必须考虑数据库集群的方式来提升性能。

    高性能数据库集群的第一种方式是“读写分离”,其本质是将访问压力分散到集群中的多个节点,但是没有分散存储压力;第二种方式是“分库分表”,既可以分散访问压力,又可以分散存储压力。

    读写分离原理

    读写分离的基本原理是将数据库读写操作分散到不同的节点上,下面是其基本架构图。

    image.png

    读写分离的实现逻辑并不复杂,但有两个细节点将引入设计复杂度:主从复制延迟和分配机制。

    解决主从复制延迟有几种常见的方法:

    1. 写操作后的读操作指定发给数据库主服务器
    2. 读从机失败后再读一次主机
    3. 关键业务读写操作全部指向主机,非关键业务采用读写分离

    将读写操作区分开来,然后访问不同的数据库服务器,一般有两种方式:程序代码封装和中间件封装。

    程序代码封装的方式,在目前开源的实现方案中,淘宝的 TDDL(Taobao Distributed Data Layer,外号: 头都大了)是比较有名的。它是一个通用数据访问层,所有功能封装在 jar 包中提供给业务代码调用。

    中间件封装指的是独立一套系统出来,实现读写操作分离和数据库服务器连接的管理。中间件对业务服务器提供 SQL 兼容的协议,业务服务器无须自己进行读写分离。对于业务服务器来说,访问中间件和访问数据库没有区别,事实上在业务服务器看来,中间件就是一个数据库服务器。

    目前的开源数据库中间件方案中,MySQL 官方先是提供了 MySQL Proxy,但 MySQL Proxy 一直没有正式 GA,现在 MySQL 官方推荐 MySQL Router。奇虎 360 公司也开源了自己的数据库中间件 Atlas,Atlas 是基于 MySQL Proxy 实现的。

    分库分表

    业务分库指的是按照业务模块将数据分散到不同的数据库服务器。虽然业务分库能够分散存储和访问压力,但同时也带来了新的问题,接下来我进行详细分析。

    1. join 操作问题,业务分库后,原本在同一个数据库中的表分散到不同数据库中,导致无法使用 SQL 的 join 查询。
    2. 事务问题,原本在同一个数据库中不同的表可以在同一个事务中修改,业务分库后,表分散到不同的数据库中,无法通过事务统一修改。虽然数据库厂商提供了一些分布式事务的解决方案(例如,MySQL 的 XA),但性能实在太低,与高性能存储的目标是相违背的。
    3. 成本问题

    将不同业务数据分散存储到不同的数据库服务器,能够支撑百万甚至千万用户规模的业务,但如果业务继续发展,同一业务的单表数据也会达到单台数据库服务器的处理瓶颈。例如,淘宝的几亿用户数据,如果全部存放在一台数据库服务器的一张表中,肯定是无法满足性能要求的,此时就需要对单表数据进行拆分。

    单表数据拆分有两种方式:垂直分表和水平分表。示意图如下: -image.png

    - +image.png

    + \ No newline at end of file diff --git "a/docs/study/think/\346\246\202\345\277\265\346\250\241\345\236\213/Actor Model/index.html" "b/docs/study/think/\346\246\202\345\277\265\346\250\241\345\236\213/Actor Model/index.html" index c3fd09f80..44335c202 100644 --- "a/docs/study/think/\346\246\202\345\277\265\346\250\241\345\236\213/Actor Model/index.html" +++ "b/docs/study/think/\346\246\202\345\277\265\346\250\241\345\236\213/Actor Model/index.html" @@ -10,14 +10,14 @@ - - + +
    -

    Actor Model

    Actor模型是一个概念模型,用于处理并发计算。它定义了一系列系统组件应该如何动作和交互的通用规则,最著名的使用这套规则的编程语言是Erlang。

    在计算机科学中,参与者模式(英语:Actor model)是一种并行运算上的模型。“参与者”是一种程序上的抽象概念,被视为并行运算的基本单元:当一个参与者接收到一则讯息,它可以做出一些决策、建立更多的参与者、传送更多的讯息、决定要如何回答接下来的讯息。

    发送者与已经发送的消息解耦,是参与者模型的根本优势。这允许进行异步通信,同时满足消息传递的控制结构。

    消息接收者是通过地址区分的,有时也被称作“邮件地址”。因此参与者只能和它拥有地址的参与者通信。它可以通过接受到的信息获取地址,或者获取它创建的参与者的地址。

    参与者模型的特征是,参与者内部或之间进行并行计算,参与者可以动态创建,参与者地址包含在消息中,交互只有通过直接的异步消息通信,不限制消息到达的顺序。

    参考

    - +

    Actor Model

    Actor模型是一个概念模型,用于处理并发计算。它定义了一系列系统组件应该如何动作和交互的通用规则,最著名的使用这套规则的编程语言是Erlang。

    在计算机科学中,参与者模式(英语:Actor model)是一种并行运算上的模型。“参与者”是一种程序上的抽象概念,被视为并行运算的基本单元:当一个参与者接收到一则讯息,它可以做出一些决策、建立更多的参与者、传送更多的讯息、决定要如何回答接下来的讯息。

    发送者与已经发送的消息解耦,是参与者模型的根本优势。这允许进行异步通信,同时满足消息传递的控制结构。

    消息接收者是通过地址区分的,有时也被称作“邮件地址”。因此参与者只能和它拥有地址的参与者通信。它可以通过接受到的信息获取地址,或者获取它创建的参与者的地址。

    参与者模型的特征是,参与者内部或之间进行并行计算,参与者可以动态创建,参与者地址包含在消息中,交互只有通过直接的异步消息通信,不限制消息到达的顺序。

    参考

    + \ No newline at end of file diff --git "a/docs/study/think/\346\246\202\345\277\265\346\250\241\345\236\213/Proactor/index.html" "b/docs/study/think/\346\246\202\345\277\265\346\250\241\345\236\213/Proactor/index.html" index c3f6cb70a..787cde3bf 100644 --- "a/docs/study/think/\346\246\202\345\277\265\346\250\241\345\236\213/Proactor/index.html" +++ "b/docs/study/think/\346\246\202\345\277\265\346\250\241\345\236\213/Proactor/index.html" @@ -10,14 +10,14 @@ - - + +
    -

    Proactor

    Reactor 是非阻塞同步网络模型,因为真正的 read 和 send 操作都需要用户进程同步操作。这里的“同步”指用户进程在执行 read 和 send 这类 I/O 操作的时候是同步的,如果把 I/O 操作改为异步就能够进一步提升性能,这就是异步网络模型 Proactor。

    Proactor 中文翻译为“前摄器”比较难理解,与其类似的单词是 proactive,含义为“主动的”,因此我们照猫画虎翻译为“主动器”反而更好理解。Reactor 可以理解为“来了事件我通知你,你来处理”,而 Proactor 可以理解为“来了事件我来处理,处理完了我通知你”。这里的“我”就是操作系统内核,“事件”就是有新连接、有数据可读、有数据可写的这些 I/O 事件,“你”就是我们的程序代码。

    理论上 Proactor 比 Reactor 效率要高一些,异步 I/O 能够充分利用 DMA 特性,让 I/O 操作与计算重叠,但要实现真正的异步 I/O,操作系统需要做大量的工作。目前 Windows 下通过 IOCP 实现了真正的异步 I/O,而在 Linux 系统下的 AIO 并不完善,因此在 Linux 下实现高并发网络编程时都是以 Reactor 模式为主。所以即使 Boost.Asio 号称实现了 Proactor 模型,其实它在 Windows 下采用 IOCP,而在 Linux 下是用 Reactor 模式(采用 epoll)模拟出来的异步模型。

    - +

    Proactor

    Reactor 是非阻塞同步网络模型,因为真正的 read 和 send 操作都需要用户进程同步操作。这里的“同步”指用户进程在执行 read 和 send 这类 I/O 操作的时候是同步的,如果把 I/O 操作改为异步就能够进一步提升性能,这就是异步网络模型 Proactor。

    Proactor 中文翻译为“前摄器”比较难理解,与其类似的单词是 proactive,含义为“主动的”,因此我们照猫画虎翻译为“主动器”反而更好理解。Reactor 可以理解为“来了事件我通知你,你来处理”,而 Proactor 可以理解为“来了事件我来处理,处理完了我通知你”。这里的“我”就是操作系统内核,“事件”就是有新连接、有数据可读、有数据可写的这些 I/O 事件,“你”就是我们的程序代码。

    理论上 Proactor 比 Reactor 效率要高一些,异步 I/O 能够充分利用 DMA 特性,让 I/O 操作与计算重叠,但要实现真正的异步 I/O,操作系统需要做大量的工作。目前 Windows 下通过 IOCP 实现了真正的异步 I/O,而在 Linux 系统下的 AIO 并不完善,因此在 Linux 下实现高并发网络编程时都是以 Reactor 模式为主。所以即使 Boost.Asio 号称实现了 Proactor 模型,其实它在 Windows 下采用 IOCP,而在 Linux 下是用 Reactor 模式(采用 epoll)模拟出来的异步模型。

    + \ No newline at end of file diff --git "a/docs/study/think/\346\246\202\345\277\265\346\250\241\345\236\213/Reactor\346\250\241\345\274\217\345\217\215\345\272\224\345\240\206\346\250\241\345\274\217/index.html" "b/docs/study/think/\346\246\202\345\277\265\346\250\241\345\236\213/Reactor\346\250\241\345\274\217\345\217\215\345\272\224\345\240\206\346\250\241\345\274\217/index.html" index 68343d33c..2fcead002 100644 --- "a/docs/study/think/\346\246\202\345\277\265\346\250\241\345\236\213/Reactor\346\250\241\345\274\217\345\217\215\345\272\224\345\240\206\346\250\241\345\274\217/index.html" +++ "b/docs/study/think/\346\246\202\345\277\265\346\250\241\345\236\213/Reactor\346\250\241\345\274\217\345\217\215\345\272\224\345\240\206\346\250\241\345\274\217/index.html" @@ -10,15 +10,15 @@ - - + +

    Reactor模式反应堆模式

    5种I/O模型比较

    image.png

    简介

    Reactor(反应堆模式)是libevent的中心思想,常规的I/O多路复用中采用select和poll、epoll等来实现。而Reactor是将上述机制进一步封装,通俗的来讲,就是通过回调机制实现。我们只需将事件的接口注册到Reactor上,当事件发生之后,会回调注册的接口。

    Reactor是一种事件驱动机制。和普通函数调用的不同之处在于:应用程序不是主动的调用某个API完成处理,而是恰恰相反,Reactor逆置了事件处理流程,应用程序需要提供相应的接口并注册到Reactor上,如果相应的事件发生,Reactor将主动调用应用程序注册的接口,这些接口又称为“回调函数”。

    Reactor 模式也叫 Dispatcher 模式(在很多开源的系统里面会看到这个名称的类,其实就是实现 Reactor 模式的),更加贴近模式本身的含义,即 I/O 多路复用统一监听事件,收到事件后分配(Dispatch)给某个进程。

    Reactor 模式的核心组成部分包括 Reactor 和处理资源池(进程池或线程池),其中 Reactor 负责监听和分配事件,处理资源池负责处理事件。初看 Reactor 的实现是比较简单的,但实际上结合不同的业务场景,Reactor 模式的具体实现方案灵活多变,主要体现在:Reactor 的数量可以变化:可以是一个 Reactor,也可以是多个 Reactor。资源池的数量可以变化:以进程为例,可以是单个进程,也可以是多个进程(线程类似)。将上面两个因素排列组合一下,理论上可以有 4 种选择,但由于“多 Reactor 单进程”实现方案相比“单 Reactor 单进程”方案,既复杂又没有性能优势,因此“多 Reactor 单进程”方案仅仅是一个理论上的方案,实际没有应用。最终 Reactor 模式有这三种典型的实现方案:单 Reactor 单进程 / 线程。单 Reactor 多线程。多 Reactor 多进程 / 线程。以上方案具体选择进程还是线程,更多地是和编程语言及平台相关。例如,Java 语言一般使用线程(例如,Netty),C 语言使用进程和线程都可以。例如,Nginx 使用进程,Memcache 使用线程。

    单 Reactor 单进程的方案在实践中应用场景不多,只适用于业务处理非常快速的场景,目前比较著名的开源软件中使用单 Reactor 单进程的是 Redis。需要注意的是,C 语言编写系统的一般使用单 Reactor 单进程,因为没有必要在进程中再创建线程;而 Java 语言编写的一般使用单 Reactor 单线程,因为 Java 虚拟机是一个进程,虚拟机中有很多线程,业务线程只是其中的一个线程而已。

    目前著名的开源系统 Nginx 采用的是多 Reactor 多进程,采用多 Reactor 多线程的实现有 Memcache 和 Netty。

    Reactor模式结构

    在Reactor模式中,有以下几个关键的参与者。

    1. 描述符(handle)由操作系统提供,用于识别每一个事件,如Socket描述符、文件描述符等。在Linux中,它用一个整数来表示。事件可以来自外部,如来自客户端的连接请求、数据等。事件也可以来自内部,如定时器事件。
    2. 同步事件分离器(demultiplexer)是一个函数,用来等待一个或多个事件的发生。调用者会被阻塞,直到分离器分离的描述符集上有事件发生。Linux的select函数是一个经常被使用的分离器。
    3. 事件处理器接口(event handler)是由一个或多个模板函数组成的接口。这些模板函数描述了和应用程序相关的对某个事件的操作。 具体的事件处理器:是事件处理器接口的实现。它实现了应用程序提供的某个服务。每个具体的事件处理器总和一个描述符相关。它使用描述符来识别事件、识别应用程序提供的服务。
    4. Reactor 管理器(reactor):定义了一些接口,用于应用程序控制事件调度,以及应用程序注册、删除事件处理器和相关的描述符。它是事件处理器的调度核心。 Reactor管理器使用同步事件分离器来等待事件的发生。一旦事件发生,Reactor管理器先是分离每个事件,然后调度事件处理器,最后调用相关的模 板函数来处理这个事件。
    5. 通过上述分析,我们注意到,是Reactor管理器而不是应用程序负责等待事件、分离事件和调度事件。实际上,Reactor管理器并没有被具体的 事件处理器调用,而是管理器调度具体的事件处理器,由事件处理器对发生的事件做出处理。这就是类似Hollywood原则的“反向控制”。应用程序要做的 仅仅是实现一个具体的事件处理器,然后把它注册到Reactor管理器中。接下来的工作由管理器来完成。这些参与者的相互关系如下图所示。

    image.png

    Reactor 处理步骤

    1. 初始化一个Reactor管理器
    2. 初始化事件处理器,设置事件源及回调函数
    3. 将事件处理器注册到Reactor管理器上
    4. 注册该事件
    5. 进入循环等待事件发生并处理

    优点

    1. 响应快,不必为单个同步时间所阻塞,虽然Reactor本身依然是同步的;
    2. 编程相对简单,可以最大程度的避免复杂的多线程及同步问题,并且避免了多线程/进程的切换开销;
    3. 可扩展性,可以方便的通过增加Reactor实例个数来充分利用CPU资源;
    4. 可复用性,reactor框架本身与具体事件处理逻辑无关,具有很高的复用性;

    -

    - +

    + \ No newline at end of file diff --git "a/docs/study/think/\347\274\223\345\255\230/index.html" "b/docs/study/think/\347\274\223\345\255\230/index.html" index 382011d34..16892ac56 100644 --- "a/docs/study/think/\347\274\223\345\255\230/index.html" +++ "b/docs/study/think/\347\274\223\345\255\230/index.html" @@ -10,14 +10,14 @@ - - + +
    -

    缓存

    EhcacheRedis
    存取速度Ehcache直接在jvm虚拟机中缓存,速度快,效率高Redis是通过socket访问到缓存服务,效率比ecache低
    集群Ehcache有缓存共享方案,不过是通过RMI或者Jgroup多播方式进行广播缓存通知更新,缓存共享复杂,维护不方便;简单的共享可以,但是涉及到缓存恢复,大数据缓存,则不合适。Redis有成熟的分布式解决方案。适合大规模分布式集群部署。
    操作复杂度Ehcache提供的接口非常简单明了,从Ehcache的搭建到运用运行仅仅需要的是你宝贵的几分钟。其实很多开发者都不知道自己用在用Ehcache,Ehcache被广泛的运用于其他的开源项目。比如:Hibernate至少需要安装服务端和客户端才能使用。操作略比Ehcache复杂一些。
    - +

    缓存

    EhcacheRedis
    存取速度Ehcache直接在jvm虚拟机中缓存,速度快,效率高Redis是通过socket访问到缓存服务,效率比ecache低
    集群Ehcache有缓存共享方案,不过是通过RMI或者Jgroup多播方式进行广播缓存通知更新,缓存共享复杂,维护不方便;简单的共享可以,但是涉及到缓存恢复,大数据缓存,则不合适。Redis有成熟的分布式解决方案。适合大规模分布式集群部署。
    操作复杂度Ehcache提供的接口非常简单明了,从Ehcache的搭建到运用运行仅仅需要的是你宝贵的几分钟。其实很多开发者都不知道自己用在用Ehcache,Ehcache被广泛的运用于其他的开源项目。比如:Hibernate至少需要安装服务端和客户端才能使用。操作略比Ehcache复杂一些。
    + \ No newline at end of file diff --git "a/docs/study/think/\347\274\223\345\255\230/\345\210\206\345\270\203\345\274\217\347\274\223\345\255\230/index.html" "b/docs/study/think/\347\274\223\345\255\230/\345\210\206\345\270\203\345\274\217\347\274\223\345\255\230/index.html" index 84ff45e36..3e4ed48a1 100644 --- "a/docs/study/think/\347\274\223\345\255\230/\345\210\206\345\270\203\345\274\217\347\274\223\345\255\230/index.html" +++ "b/docs/study/think/\347\274\223\345\255\230/\345\210\206\345\270\203\345\274\217\347\274\223\345\255\230/index.html" @@ -10,14 +10,14 @@ - - + +
    -

    分布式缓存

    缓存作为磁盘以外的一种存储数据的方式,它有着比磁盘更快的存取效率,因此,可以有效提高系统的性能。在单体系统中,一般会用到本地缓存。但在分布式系统中,本地缓存就显得不够用了,这时往往要用到分布式缓存。

    Jboss Cache

    Memcache

    Redis

    参考资料

    1. 聊聊分布式缓存
    - +

    分布式缓存

    缓存作为磁盘以外的一种存储数据的方式,它有着比磁盘更快的存取效率,因此,可以有效提高系统的性能。在单体系统中,一般会用到本地缓存。但在分布式系统中,本地缓存就显得不够用了,这时往往要用到分布式缓存。

    Jboss Cache

    Memcache

    Redis

    参考资料

    1. 聊聊分布式缓存
    + \ No newline at end of file diff --git "a/docs/study/think/\350\256\276\350\256\241\346\250\241\345\274\217/index.html" "b/docs/study/think/\350\256\276\350\256\241\346\250\241\345\274\217/index.html" index 329fa7944..694705c6a 100644 --- "a/docs/study/think/\350\256\276\350\256\241\346\250\241\345\274\217/index.html" +++ "b/docs/study/think/\350\256\276\350\256\241\346\250\241\345\274\217/index.html" @@ -10,14 +10,14 @@ - - + +
    -

    设计模式

    六大原则

    总原则-开闭原则

    对扩展开放,对修改封闭。在程序需要进行拓展的时候,不能去修改原有的代码,而是要扩展原有代码,实现一个热插拔的效果。所以一句话概括就是:为了使程序的扩展性好,易于维护和升级。

    想要达到这样的效果,我们需要使用接口和抽象类等。

    思考:

    1. 拿到一个功能需求,不要上来就去实现,应该考虑怎么抽取接口或抽象类;例如 API 中的 ES 操作;
    2. 不要随意修改原有系统的代码,而是尝试去拓展来避免风险;例如 API 中的新版 MVC 拦截器处理;

    单一职责原则

    不要存在多于一个导致类变更的原因,也就是说每个类应该实现单一的职责,否则就应该把类拆分。

    思考:

    1. 处理报警的 Service/Controller/Mapper 等夹杂一些不相干的功能,例如定时任务、用户反馈等;
    2. Controller 夹杂一些私有方法;需不需要放到 Service、Utils 里面;

    里氏替换原则(Liskov Substitution Principle)

    任何基类可以出现的地方,子类一定可以出现。里氏替换原则是继承复用的基石,只有当衍生类可以替换基类,软件单位的功能不受到影响时,基类才能真正被复用,而衍生类也能够在基类的基础上增加新的行为。

    里氏代换原则是对“开-闭”原则的补充。实现“开闭”原则的关键步骤就是抽象化。而基类与子类的继承关系就是抽象化的具体实现,所以里氏代换原则是对实现抽象化的具体步骤的规范。里氏替换原则中,子类对父类的方法尽量不要重写和重载。因为父类代表了定义好的结构,通过这个规范的接口与外界交互,子类不应该随便破坏它。

    思考:

    1. 定义用基类,实现用子类;
    2. 用接口去定义流程和规范,这是设计的底层思想,不应该去破坏;没有接口的设计,是没有灵魂的编码;

    依赖倒转原则(Dependence Inversion Principle)

    面向接口编程,依赖于抽象而不依赖于具体。写代码时用到具体类时,不与具体类交互,而与具体类的上层接口交互。

    思考:

    1. 还是面向接口编程;

    接口隔离原则(Interface Segregation Principle)

    每个接口中不存在子类用不到却必须实现的方法,如果不然,就要将接口拆分。使用多个隔离的接口,比使用单个接口(多个接口方法集合到一个的接口)要好。

    思考:

    1. 接口拆分,和单一职责原则互相映射;

    迪米特法则(最少知道原则)(Demeter Principle)

    一个类对自己依赖的类知道的越少越好。无论被依赖的类多么复杂,都应该将逻辑封装在方法的内部,通过 public 方法提供给外部。这样当被依赖的类变化时,才能最小的影响该类。

    最少知道原则的另一个表达方式是:只与直接的朋友通信。类之间只要有耦合关系,就叫朋友关系。耦合分为依赖、关联、聚合、组合等。我们称出现为成员变量、方法参数、方法返回值中的类为直接朋友。局部变量、临时变量则不是直接的朋友。我们要求陌生的类不要作为局部变量出现在类中。

    思考:

    1. 解耦和模块化;

    组合(合成)复用原则(Composite Reuse Principle)

    尽量首先使用组合/聚合的方式,而不是使用继承。

    思考:

    1. 什么是关联、聚合、组合;关联、组合、聚合
    2. 如果要拓展,首先想到是聚合或组合,而不应该是继承,继承太重了。

    具体分类:

    创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式

    结构型模式,共七种:适配器模式、装饰者模式、代理模式、外观模式、桥接模式、组合模式、享元模式。

    行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。

    其实还有两类:并发型模式和线程池模式。

    参考

    - +

    设计模式

    六大原则

    总原则-开闭原则

    对扩展开放,对修改封闭。在程序需要进行拓展的时候,不能去修改原有的代码,而是要扩展原有代码,实现一个热插拔的效果。所以一句话概括就是:为了使程序的扩展性好,易于维护和升级。

    想要达到这样的效果,我们需要使用接口和抽象类等。

    思考:

    1. 拿到一个功能需求,不要上来就去实现,应该考虑怎么抽取接口或抽象类;例如 API 中的 ES 操作;
    2. 不要随意修改原有系统的代码,而是尝试去拓展来避免风险;例如 API 中的新版 MVC 拦截器处理;

    单一职责原则

    不要存在多于一个导致类变更的原因,也就是说每个类应该实现单一的职责,否则就应该把类拆分。

    思考:

    1. 处理报警的 Service/Controller/Mapper 等夹杂一些不相干的功能,例如定时任务、用户反馈等;
    2. Controller 夹杂一些私有方法;需不需要放到 Service、Utils 里面;

    里氏替换原则(Liskov Substitution Principle)

    任何基类可以出现的地方,子类一定可以出现。里氏替换原则是继承复用的基石,只有当衍生类可以替换基类,软件单位的功能不受到影响时,基类才能真正被复用,而衍生类也能够在基类的基础上增加新的行为。

    里氏代换原则是对“开-闭”原则的补充。实现“开闭”原则的关键步骤就是抽象化。而基类与子类的继承关系就是抽象化的具体实现,所以里氏代换原则是对实现抽象化的具体步骤的规范。里氏替换原则中,子类对父类的方法尽量不要重写和重载。因为父类代表了定义好的结构,通过这个规范的接口与外界交互,子类不应该随便破坏它。

    思考:

    1. 定义用基类,实现用子类;
    2. 用接口去定义流程和规范,这是设计的底层思想,不应该去破坏;没有接口的设计,是没有灵魂的编码;

    依赖倒转原则(Dependence Inversion Principle)

    面向接口编程,依赖于抽象而不依赖于具体。写代码时用到具体类时,不与具体类交互,而与具体类的上层接口交互。

    思考:

    1. 还是面向接口编程;

    接口隔离原则(Interface Segregation Principle)

    每个接口中不存在子类用不到却必须实现的方法,如果不然,就要将接口拆分。使用多个隔离的接口,比使用单个接口(多个接口方法集合到一个的接口)要好。

    思考:

    1. 接口拆分,和单一职责原则互相映射;

    迪米特法则(最少知道原则)(Demeter Principle)

    一个类对自己依赖的类知道的越少越好。无论被依赖的类多么复杂,都应该将逻辑封装在方法的内部,通过 public 方法提供给外部。这样当被依赖的类变化时,才能最小的影响该类。

    最少知道原则的另一个表达方式是:只与直接的朋友通信。类之间只要有耦合关系,就叫朋友关系。耦合分为依赖、关联、聚合、组合等。我们称出现为成员变量、方法参数、方法返回值中的类为直接朋友。局部变量、临时变量则不是直接的朋友。我们要求陌生的类不要作为局部变量出现在类中。

    思考:

    1. 解耦和模块化;

    组合(合成)复用原则(Composite Reuse Principle)

    尽量首先使用组合/聚合的方式,而不是使用继承。

    思考:

    1. 什么是关联、聚合、组合;关联、组合、聚合
    2. 如果要拓展,首先想到是聚合或组合,而不应该是继承,继承太重了。

    具体分类:

    创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式

    结构型模式,共七种:适配器模式、装饰者模式、代理模式、外观模式、桥接模式、组合模式、享元模式。

    行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。

    其实还有两类:并发型模式和线程池模式。

    参考

    + \ No newline at end of file diff --git "a/docs/study/think/\350\260\210\345\267\245\344\275\234\345\277\203\345\276\227/index.html" "b/docs/study/think/\350\260\210\345\267\245\344\275\234\345\277\203\345\276\227/index.html" index 2056f675f..0c007fafc 100644 --- "a/docs/study/think/\350\260\210\345\267\245\344\275\234\345\277\203\345\276\227/index.html" +++ "b/docs/study/think/\350\260\210\345\267\245\344\275\234\345\277\203\345\276\227/index.html" @@ -10,8 +10,8 @@ - - + + @@ -121,8 +121,8 @@ 80%的电话是来自20%的朋友; 80%的总产量来自20%的产品; 80%的财富集中在20%的人手中; -这启示我们在工作中要善于抓主要矛盾,善于从纷繁复杂的工作中理出头绪,把资源用在最重要、最紧迫的事情上。

    提高提测质量

    QA的职责不是开发写完扔给人家测试,这是偏见,也是好多开发人员一直有的错误的观念,QA 不是简单的验证功能性的(当然存在这种AQ),QA更多是验证程序的健壮性容错性,所以在我们这里应该保证程序最基本的功能性问题,减少代码的回溯,这样才能不影响产品的迅速迭代,不影响产品的推进。

    先写文档再写代码

    好多程序员的通病就是拿到需求就开始写代码,这是相当的不负责任的,很明显这种做法有问题。应该先写自己的思路,如果功能大一些,要先写方案,评审方案。思路、方案没有问题在动手去写代码,你会发现坑会少踩好多。

    一个程序员的价值是解决问题的能力

    技术越好解决问题的能力越强,这个没有问题,这是一个正向比例关系。但是解决问题的能力,不仅仅包括技术,也包括沟通、业务等等其他方面。在工作中,不要仅仅的去学习各种编程技术,也要学会沟通、业务。

    注意流程、规范

    尤其是管理人员、组长、高程,一定要主要流程和规范,没有流程和规范就是一群乌合之众,没有任何战力可言。有了流程和规范,10个人可以做20个人的工作;没有流程和规范,20个人顶多也只能做10个人的工作,且不会有任何可维护性。

    - +这启示我们在工作中要善于抓主要矛盾,善于从纷繁复杂的工作中理出头绪,把资源用在最重要、最紧迫的事情上。

    提高提测质量

    QA的职责不是开发写完扔给人家测试,这是偏见,也是好多开发人员一直有的错误的观念,QA 不是简单的验证功能性的(当然存在这种AQ),QA更多是验证程序的健壮性容错性,所以在我们这里应该保证程序最基本的功能性问题,减少代码的回溯,这样才能不影响产品的迅速迭代,不影响产品的推进。

    先写文档再写代码

    好多程序员的通病就是拿到需求就开始写代码,这是相当的不负责任的,很明显这种做法有问题。应该先写自己的思路,如果功能大一些,要先写方案,评审方案。思路、方案没有问题在动手去写代码,你会发现坑会少踩好多。

    一个程序员的价值是解决问题的能力

    技术越好解决问题的能力越强,这个没有问题,这是一个正向比例关系。但是解决问题的能力,不仅仅包括技术,也包括沟通、业务等等其他方面。在工作中,不要仅仅的去学习各种编程技术,也要学会沟通、业务。

    注意流程、规范

    尤其是管理人员、组长、高程,一定要主要流程和规范,没有流程和规范就是一群乌合之众,没有任何战力可言。有了流程和规范,10个人可以做20个人的工作;没有流程和规范,20个人顶多也只能做10个人的工作,且不会有任何可维护性。

    + \ No newline at end of file diff --git "a/docs/study/think/\351\231\220\346\265\201/index.html" "b/docs/study/think/\351\231\220\346\265\201/index.html" index 24f97497d..c6438f1eb 100644 --- "a/docs/study/think/\351\231\220\346\265\201/index.html" +++ "b/docs/study/think/\351\231\220\346\265\201/index.html" @@ -10,14 +10,14 @@ - - + +
    -

    限流

    前言

    在开发高并发系统时有三把利器用来保护系统:缓存、降级和限流

    • 缓存缓存的目的是提升系统访问速度和增大系统处理容量
    • 降级降级是当服务出现问题或者影响到核心流程时,需要暂时屏蔽掉,待高峰或者问题解决后再打开
    • 限流限流的目的是通过对并发访问/请求进行限速,或者对一个时间窗口内的请求进行限速来保护系统,一旦达到限制速率则可以拒绝服务、排队或等待、降级等处理

    常见的限流算法

    固定窗口计数器

    image.png

    • 固定窗口计数器算法的概念如下
      1. 将时间划分为多个窗口
      2. 在每个窗口内每有一次请求就将计数器加一
      3. 如果计数器超过了限制数量,则本窗口内新来的其他请求都被丢弃。当时间到达下一个窗口时,计数器重置。
    • 固定窗口计数器是最为简单的算法,但这个算法有时会让通过请求量允许为限制的两倍。考虑如下情况:限制 1 秒内最多通过 5 个请求,在第一个窗口的最后半秒内通过了 5 个请求,第二个窗口的前半秒内又通过了 5 个请求。这样看来就是在 1 秒内通过了 10 个请求。

    image.png

    滑动窗口计数器

    image.png

    • 滑动窗口计数器算法概念如下:
      1. 将时间划分为多个区间;
      2. 在每个区间内每有一次请求就将计数器加一维持一个时间窗口,占据多个区间;
      3. 每经过一个区间的时间,则抛弃最老的一个区间,并纳入最新的一个区间;
      4. 如果当前窗口内区间的请求计数总和超过了限制数量,则本窗口内新来的其他请求都被丢弃。
    • 滑动窗口计数器是通过将窗口再细分,并且按照时间 " 滑动 ",这种算法避免了固定窗口计数器带来的双倍突发请求,但时间区间的精度越高,算法所需的空间容量就越大。

    漏桶算法

    image.png

    • 漏桶算法概念如下:
      1. 将每个请求视作 " 水滴 " 放入 " 漏桶 " 进行存储;
      2. “漏桶 " 以固定速率向外 " 漏 " 出请求来执行如果 " 漏桶 " 空了则停止 " 漏水”;
      3. 如果 " 漏桶 " 满了则多余的 " 水滴 " 会被直接丢弃。
    • 漏桶算法多使用队列实现,服务的请求会存到队列中,服务的提供方则按照固定的速率从队列中取出请求并执行,过多的请求则放在队列中排队或直接拒绝。
    • 漏桶算法的缺陷也很明显,当短时间内有大量的突发请求时,即便此时服务器没有任何负载,每个请求也都得在队列中等待一段时间才能被响应。

    令牌桶算法

    image.png

    • 令牌桶算法概念如下:
      1. 令牌以固定速率生成。
      2. 生成的令牌放入令牌桶中存放,如果令牌桶满了则多余的令牌会直接丢弃,当请求到达时,会尝试从令牌桶中取令牌,取到了令牌的请求可以执行。
      3. 如果桶空了,那么尝试取令牌的请求会被直接丢弃。
    • 令牌桶算法既能够将所有的请求平均分布到时间区间内,又能接受服务器能够承受范围内的突发请求,因此是目前使用较为广泛的一种限流算法。

    单体应用实现

    • 在传统的单体应用中限流只需要考虑到多线程即可,使用Google开源工具类guava即可。其中有一个RateLimiter专门实现了单体应用的限流,使用的是令牌桶算法。
    • 单体应用的限流不是本文的重点,官网上现成的API,读者自己去看看即可,这里不再详细解释。

    分布式限流

    • 分布式限流和熔断现在有很多的现成的工具,比如Hystrix,Sentinel 等,但是还是有些企业不引用外来类库,因此就需要自己实现。
    • Redis作为单线程多路复用的特性,很显然能够胜任这项任务。
    - +

    限流

    前言

    在开发高并发系统时有三把利器用来保护系统:缓存、降级和限流

    • 缓存缓存的目的是提升系统访问速度和增大系统处理容量
    • 降级降级是当服务出现问题或者影响到核心流程时,需要暂时屏蔽掉,待高峰或者问题解决后再打开
    • 限流限流的目的是通过对并发访问/请求进行限速,或者对一个时间窗口内的请求进行限速来保护系统,一旦达到限制速率则可以拒绝服务、排队或等待、降级等处理

    常见的限流算法

    固定窗口计数器

    image.png

    • 固定窗口计数器算法的概念如下
      1. 将时间划分为多个窗口
      2. 在每个窗口内每有一次请求就将计数器加一
      3. 如果计数器超过了限制数量,则本窗口内新来的其他请求都被丢弃。当时间到达下一个窗口时,计数器重置。
    • 固定窗口计数器是最为简单的算法,但这个算法有时会让通过请求量允许为限制的两倍。考虑如下情况:限制 1 秒内最多通过 5 个请求,在第一个窗口的最后半秒内通过了 5 个请求,第二个窗口的前半秒内又通过了 5 个请求。这样看来就是在 1 秒内通过了 10 个请求。

    image.png

    滑动窗口计数器

    image.png

    • 滑动窗口计数器算法概念如下:
      1. 将时间划分为多个区间;
      2. 在每个区间内每有一次请求就将计数器加一维持一个时间窗口,占据多个区间;
      3. 每经过一个区间的时间,则抛弃最老的一个区间,并纳入最新的一个区间;
      4. 如果当前窗口内区间的请求计数总和超过了限制数量,则本窗口内新来的其他请求都被丢弃。
    • 滑动窗口计数器是通过将窗口再细分,并且按照时间 " 滑动 ",这种算法避免了固定窗口计数器带来的双倍突发请求,但时间区间的精度越高,算法所需的空间容量就越大。

    漏桶算法

    image.png

    • 漏桶算法概念如下:
      1. 将每个请求视作 " 水滴 " 放入 " 漏桶 " 进行存储;
      2. “漏桶 " 以固定速率向外 " 漏 " 出请求来执行如果 " 漏桶 " 空了则停止 " 漏水”;
      3. 如果 " 漏桶 " 满了则多余的 " 水滴 " 会被直接丢弃。
    • 漏桶算法多使用队列实现,服务的请求会存到队列中,服务的提供方则按照固定的速率从队列中取出请求并执行,过多的请求则放在队列中排队或直接拒绝。
    • 漏桶算法的缺陷也很明显,当短时间内有大量的突发请求时,即便此时服务器没有任何负载,每个请求也都得在队列中等待一段时间才能被响应。

    令牌桶算法

    image.png

    • 令牌桶算法概念如下:
      1. 令牌以固定速率生成。
      2. 生成的令牌放入令牌桶中存放,如果令牌桶满了则多余的令牌会直接丢弃,当请求到达时,会尝试从令牌桶中取令牌,取到了令牌的请求可以执行。
      3. 如果桶空了,那么尝试取令牌的请求会被直接丢弃。
    • 令牌桶算法既能够将所有的请求平均分布到时间区间内,又能接受服务器能够承受范围内的突发请求,因此是目前使用较为广泛的一种限流算法。

    单体应用实现

    • 在传统的单体应用中限流只需要考虑到多线程即可,使用Google开源工具类guava即可。其中有一个RateLimiter专门实现了单体应用的限流,使用的是令牌桶算法。
    • 单体应用的限流不是本文的重点,官网上现成的API,读者自己去看看即可,这里不再详细解释。

    分布式限流

    • 分布式限流和熔断现在有很多的现成的工具,比如Hystrix,Sentinel 等,但是还是有些企业不引用外来类库,因此就需要自己实现。
    • Redis作为单线程多路复用的特性,很显然能够胜任这项任务。
    + \ No newline at end of file diff --git "a/docs/study/think/\351\242\206\345\237\237\351\251\261\345\212\250\350\256\276\350\256\241DDD/index.html" "b/docs/study/think/\351\242\206\345\237\237\351\251\261\345\212\250\350\256\276\350\256\241DDD/index.html" index c64552bac..d1b918ac3 100644 --- "a/docs/study/think/\351\242\206\345\237\237\351\251\261\345\212\250\350\256\276\350\256\241DDD/index.html" +++ "b/docs/study/think/\351\242\206\345\237\237\351\251\261\345\212\250\350\256\276\350\256\241DDD/index.html" @@ -10,14 +10,14 @@ - - + + - +
    + \ No newline at end of file diff --git a/docs/xuanxing/back/index.html b/docs/xuanxing/back/index.html index 5509ed00c..43246391d 100644 --- a/docs/xuanxing/back/index.html +++ b/docs/xuanxing/back/index.html @@ -10,14 +10,14 @@ - - + +
    -

    概述

    主要使用 Java,中间件可集成或独立部署。

    • MQTT Broker 采用 hivemq 集成
    • redis
    • mysql
    • kafka
    • influxdb
    - +

    概述

    主要使用 Java,中间件可集成或独立部署。

    • MQTT Broker 采用 hivemq 集成
    • redis
    • mysql
    • kafka
    • influxdb
    + \ No newline at end of file diff --git a/docs/xuanxing/devops/index.html b/docs/xuanxing/devops/index.html index b4fa85f66..e00b8ba83 100644 --- a/docs/xuanxing/devops/index.html +++ b/docs/xuanxing/devops/index.html @@ -10,14 +10,14 @@ - - + +
    -

    概述

    一般需要包括如下内容:

    • Jenkins 持续集成、部署
    • Grafana+哨兵 监控服务
    • 各种运维脚本
    - +

    概述

    一般需要包括如下内容:

    • Jenkins 持续集成、部署
    • Grafana+哨兵 监控服务
    • 各种运维脚本
    + \ No newline at end of file diff --git a/docs/xuanxing/fe/index.html b/docs/xuanxing/fe/index.html index 7a9dc229f..f10008c84 100644 --- a/docs/xuanxing/fe/index.html +++ b/docs/xuanxing/fe/index.html @@ -10,14 +10,14 @@ - - + +
    -

    概述

    前端大概包含以下几个方面:

    • 官网
    • 用户端【PC WEB】
    • 管理端【PC WEB】
    • 移动端【微信小程序、APP、Mobile WEB】
    • 组态编辑器【PC WEB编辑及运行】【Mobile WEB运行】
    • 大屏编辑器【PC WEB编辑及运行】

    官网

    官网比较偏纯展示,对SEO有要求,对CMS有要求,对部分运营有需求;

    用户端、管理端

    在物联网云平台上,用户端和管理端都是偏中后台的管理系统,所以他们两个前端的技术选型上应该是统一的;

    移动端

    小程序的话,只考虑微信应该就可以了。国内的话,可以只考虑小程序,APP和Mobile WEB可以不用考虑;

    组态编辑器

    WEB组态其实是工业组态软件搬到了云平台上,所以组态编辑器其实偏工艺流程,虽然他和大屏编辑器都是托拉拽的可视化设计方式,但是还是有很大的区别的。

    大屏编辑器

    在数据展示方面,大屏编辑器可以托拉拽的方式来设计;

    - +

    概述

    前端大概包含以下几个方面:

    • 官网
    • 用户端【PC WEB】
    • 管理端【PC WEB】
    • 移动端【微信小程序、APP、Mobile WEB】
    • 组态编辑器【PC WEB编辑及运行】【Mobile WEB运行】
    • 大屏编辑器【PC WEB编辑及运行】

    官网

    官网比较偏纯展示,对SEO有要求,对CMS有要求,对部分运营有需求;

    用户端、管理端

    在物联网云平台上,用户端和管理端都是偏中后台的管理系统,所以他们两个前端的技术选型上应该是统一的;

    移动端

    小程序的话,只考虑微信应该就可以了。国内的话,可以只考虑小程序,APP和Mobile WEB可以不用考虑;

    组态编辑器

    WEB组态其实是工业组态软件搬到了云平台上,所以组态编辑器其实偏工艺流程,虽然他和大屏编辑器都是托拉拽的可视化设计方式,但是还是有很大的区别的。

    大屏编辑器

    在数据展示方面,大屏编辑器可以托拉拽的方式来设计;

    + \ No newline at end of file diff --git "a/docs/xuanxing/fe/\345\256\230\347\275\221/index.html" "b/docs/xuanxing/fe/\345\256\230\347\275\221/index.html" index aa3753511..db7105be4 100644 --- "a/docs/xuanxing/fe/\345\256\230\347\275\221/index.html" +++ "b/docs/xuanxing/fe/\345\256\230\347\275\221/index.html" @@ -10,8 +10,8 @@ - - + + @@ -19,8 +19,8 @@

    官网

    官网比较偏纯展示,对SEO有要求,对CMS有要求,对部分运营有需求;

    静态页面展示

    官网其实除了大改版的时候,基本上60%的页面都是常年不动的。而且都是一些文案和图片。 这个特点第一个可以想到的技术选型就是 Bootstrap

    SEO

    官网肯定对SEO有强需求,说以,技术选型是包括:

    • SSR
    • 前后端不分离的机制,例如PHP、JSP等动态网页技术

    CMS+运营

    虽然官网升级改版很不频繁,但是对CMS还是有需求的,主要体现在轮播图的更换,或者说明文档的新增修改等, 有时候官网上也会有一些运营活动页面;

    所以技术选型上他是需要后端的,大概率会包括API、数据库、缓存服务等;

    最终

    备选列表为:

    • 方案1:Bootstrap + Java + Springboot + SpringMVC + MyBatis + MySQL
    • 方案2:Bootstrap + midway.js + MySQL

    方案1是前后端的技术栈分离;方案2是前后端的技术栈不分离,使用的是前端技术栈JS;

    如果前端团队相对强势的话,可以选择 方案1 否则,直接选择方案2

    说明文档单独说,推荐docusaurus

    关于方案2的后端JS的技术选型

    koa.js >> egg.js >> midway.js 这么个技术演进和封装关系;

    express.js >> nest.js 这么个技术演进和封装关系;

    Koa.js 是 Express.js 原班人马用新理念重新创作的框架; -而 Express.js 因为产生历史早,而有更好的生态基础,周边的插件、中间件什么的可能更丰富;

    Midway.js 背后是阿里的团队,而 Nest.js 背后是国外的 Trilon 团队。

    - +而 Express.js 因为产生历史早,而有更好的生态基础,周边的插件、中间件什么的可能更丰富;

    Midway.js 背后是阿里的团队,而 Nest.js 背后是国外的 Trilon 团队。

    + \ No newline at end of file diff --git "a/docs/xuanxing/fe/\347\224\250\346\210\267\347\253\257\347\256\241\347\220\206\347\253\257/index.html" "b/docs/xuanxing/fe/\347\224\250\346\210\267\347\253\257\347\256\241\347\220\206\347\253\257/index.html" index cbe9fe594..cc5b6a1ed 100644 --- "a/docs/xuanxing/fe/\347\224\250\346\210\267\347\253\257\347\256\241\347\220\206\347\253\257/index.html" +++ "b/docs/xuanxing/fe/\347\224\250\346\210\267\347\253\257\347\256\241\347\220\206\347\253\257/index.html" @@ -10,16 +10,16 @@ - - + +

    用户端+管理端

    在物联网云平台上,用户端和管理端都是偏中后台的管理系统,所以他们两个前端的技术选型上应该是统一的; 用户端是给用户使用的,管理端是给公司内部使用的。

    可选方案

    最近比较火的技术就三个:Vue、React、Angular

    受众程度上,Vue国内较多,React国外较多,Angular都不多,所以,Angular基本可以放弃了。

    从物联网云平台产品架构上可以看出,功能是很多很杂的,而且还有可能设计到三方页面的整合等, -这三个技术上都可以胜任,差别不大。

    国内的话,首推Vue,其他不分析了。

    选Vue的话,有几个备选方案:

    • Vue2+element-ui,这个在国内用的是真多,唯一的劣势就是他是Vue2,而目前Vue是主流;
    • Vue3+elementuiPlus,这个受众面不错,劣势就是elementuiPlus是社区维护的,不再背靠饿了么了;
    • Vue3+antd-vue,如果是react可以考虑antd,但是如果是Vue,就算了吧,而且antd-vue和antd不是一回事;
    • Vue3+tdesign,背靠腾讯,pro做的也不错;
    • Vue3+arco.design,背靠字节,pro做的也不错;

    基本上,就是tdesign和arcodesign二选一了,个人推荐arco.design。

    最终,技术选型个人推荐:

    Vue3+arco-design-pro-vue

    - +这三个技术上都可以胜任,差别不大。

    国内的话,首推Vue,其他不分析了。

    选Vue的话,有几个备选方案:

    • Vue2+element-ui,这个在国内用的是真多,唯一的劣势就是他是Vue2,而目前Vue是主流;
    • Vue3+elementuiPlus,这个受众面不错,劣势就是elementuiPlus是社区维护的,不再背靠饿了么了;
    • Vue3+antd-vue,如果是react可以考虑antd,但是如果是Vue,就算了吧,而且antd-vue和antd不是一回事;
    • Vue3+tdesign,背靠腾讯,pro做的也不错;
    • Vue3+arco.design,背靠字节,pro做的也不错;

    基本上,就是tdesign和arcodesign二选一了,个人推荐arco.design。

    最终,技术选型个人推荐:

    Vue3+arco-design-pro-vue

    + \ No newline at end of file diff --git "a/docs/xuanxing/fe/\347\247\273\345\212\250\347\253\257/index.html" "b/docs/xuanxing/fe/\347\247\273\345\212\250\347\253\257/index.html" index b653fc7d3..07ecee84c 100644 --- "a/docs/xuanxing/fe/\347\247\273\345\212\250\347\253\257/index.html" +++ "b/docs/xuanxing/fe/\347\247\273\345\212\250\347\253\257/index.html" @@ -10,14 +10,14 @@ - - + +
    -

    移动端

    在物联网云平台上,移动端方面,首选微信小程序,如果有外贸需求,可以增加 APP 和 Mobile WEB。

    微信小程序技术选型

    • Vant
    • uni-app

    Mobile WEB 技术选型

    • Vant

    APP 技术选型

    • 原生开发:效果、体验是最好的,但是开发成本高,且无法做到热更新,不跨平台;
    • H5+原生:这就是典型的混合开发,简单功能使用 H5,复杂功能使用原生,可选的框架有:
      • Cordova、Ionic、uni-app
      • H5 部分可以做热更新
    • JS 开发+原生渲染:
      • React Native、Weex、快应用、uni-app
      • Weex 是阿里出的
      • React Native 和 Weex 的渲染/排版引擎是集成到框架中的,每一个 APP 都需要打包一份,安装包体积较大;而快应用渲染/排版引擎是集成到 ROM 中的,应用中无需打包,安装包体积小,正因如此,快应用才能在保证性能的同时做到快速分发。
      • uni-app 支持 webview+部分 weex 双重渲染
      • 可以做热更新,但是此种方式打出的包实在是有点大;
      • uni-app 支持 webview+部分 weex 双重渲染
    • 自绘 UI+原生:
      • QT for mobile、Flutter
      • Flutter 文档还是不错的

    最终,技术选型个人推荐:

    以上来看,

    • 追求快速,使用 uni-app
    • 追求可维护,小程序使用 Vant/TDesign,APP 选择 Flutter
    - +

    移动端

    在物联网云平台上,移动端方面,首选微信小程序,如果有外贸需求,可以增加 APP 和 Mobile WEB。

    微信小程序技术选型

    • Vant
    • uni-app

    Mobile WEB 技术选型

    • Vant

    APP 技术选型

    • 原生开发:效果、体验是最好的,但是开发成本高,且无法做到热更新,不跨平台;
    • H5+原生:这就是典型的混合开发,简单功能使用 H5,复杂功能使用原生,可选的框架有:
      • Cordova、Ionic、uni-app
      • H5 部分可以做热更新
    • JS 开发+原生渲染:
      • React Native、Weex、快应用、uni-app
      • Weex 是阿里出的
      • React Native 和 Weex 的渲染/排版引擎是集成到框架中的,每一个 APP 都需要打包一份,安装包体积较大;而快应用渲染/排版引擎是集成到 ROM 中的,应用中无需打包,安装包体积小,正因如此,快应用才能在保证性能的同时做到快速分发。
      • uni-app 支持 webview+部分 weex 双重渲染
      • 可以做热更新,但是此种方式打出的包实在是有点大;
      • uni-app 支持 webview+部分 weex 双重渲染
    • 自绘 UI+原生:
      • QT for mobile、Flutter
      • Flutter 文档还是不错的

    最终,技术选型个人推荐:

    以上来看,

    • 追求快速,使用 uni-app
    • 追求可维护,小程序使用 Vant/TDesign,APP 选择 Flutter
    + \ No newline at end of file diff --git "a/docs/xuanxing/fe/\347\273\204\346\200\201+\345\244\247\345\261\217\347\274\226\350\276\221\345\231\250/index.html" "b/docs/xuanxing/fe/\347\273\204\346\200\201+\345\244\247\345\261\217\347\274\226\350\276\221\345\231\250/index.html" index a45c7d473..a012b1f2f 100644 --- "a/docs/xuanxing/fe/\347\273\204\346\200\201+\345\244\247\345\261\217\347\274\226\350\276\221\345\231\250/index.html" +++ "b/docs/xuanxing/fe/\347\273\204\346\200\201+\345\244\247\345\261\217\347\274\226\350\276\221\345\231\250/index.html" @@ -10,14 +10,14 @@ - - + +
    -

    组态编辑器/大屏编辑器

    在物联网云平台上,组态编辑器和大屏编辑器都是属于可视化编辑器的范畴。

    组态编辑器比较注重拓扑结构图、现场的工艺流程,且对动画有要求,能够模拟实时的场景动画。

    组态编辑器

    • 基于 draw.io 改造,draw.io 基于 mxGraph,但是 mxGraph 在 2020 年 11 月已经体质维护了
      • mxGraph 推荐的 fork,maxGraph
    • 基于 meta2d+vue3 自研(参考优诺科技的森拓扑)
    • 纯自研(Canvas)(参考优诺科技的森拓扑)
    • 采购(优诺科技的森拓扑)

    大屏编辑器

    • 自研(参考优诺科技的森大屏)
    • 采购(优诺科技的森大屏)

    最终,技术选型个人推荐:

    基于 meta2d+vue3 自研(参考优诺科技的森拓扑)

    - +

    组态编辑器/大屏编辑器

    在物联网云平台上,组态编辑器和大屏编辑器都是属于可视化编辑器的范畴。

    组态编辑器比较注重拓扑结构图、现场的工艺流程,且对动画有要求,能够模拟实时的场景动画。

    组态编辑器

    • 基于 draw.io 改造,draw.io 基于 mxGraph,但是 mxGraph 在 2020 年 11 月已经体质维护了
      • mxGraph 推荐的 fork,maxGraph
    • 基于 meta2d+vue3 自研(参考优诺科技的森拓扑)
    • 纯自研(Canvas)(参考优诺科技的森拓扑)
    • 采购(优诺科技的森拓扑)

    大屏编辑器

    • 自研(参考优诺科技的森大屏)
    • 采购(优诺科技的森大屏)

    最终,技术选型个人推荐:

    基于 meta2d+vue3 自研(参考优诺科技的森拓扑)

    + \ No newline at end of file diff --git a/docs/xuanxing/index.html b/docs/xuanxing/index.html index 01b38a242..cde556a97 100644 --- a/docs/xuanxing/index.html +++ b/docs/xuanxing/index.html @@ -10,14 +10,14 @@ - - + +
    -

    综述

    综合考虑

    技术选型是非常重要的,他决定了技术目标是否能顺利完成。

    我们在做物联网云平台的技术选型时,应该综合考虑如下几个方面:

    • 技术目标,技术目标是初创、提升、还是重构,不同的技术目标对技术选型影响很大;
    • 技术的受众程度,虽然某些技术很适合做某个东西,但是受众程度低会导致招不到人才;
    • 团队的人才阶梯,都是大牛还是一般,或者初中高级分布比较合理;

    物联网云平台技术方向

    在物联网云平台技术方向上,大概分为前端、后端和运维:

    前端大概包含以下几个方面:

    • 官网
    • 用户端【PC WEB】
    • 管理端【PC WEB】
    • 移动端【微信小程序、APP、Mobile WEB】
    • 组态编辑器【PC WEB编辑及运行】【Mobile WEB运行】
    • 大屏编辑器【PC WEB编辑及运行】

    后端根据服务特点,分为两个大层,业务层和通讯层,业务层面向的是用户,通讯层面向的是设备。

    后端业务层大概包含以下几个方面:

    • API服务,需要根据前端的端再去细分若干服务,技术选型应该用一个,保持统一;
    • 报警服务,主要是给用户发送报警信息;
    • Monitor服务,主要是监控来自后端通讯层的消息;

    后端通讯层大概包含以下几个方面:

    • 设备接入
    • 数据解析
    • 功能服务
    - +

    综述

    综合考虑

    技术选型是非常重要的,他决定了技术目标是否能顺利完成。

    我们在做物联网云平台的技术选型时,应该综合考虑如下几个方面:

    • 技术目标,技术目标是初创、提升、还是重构,不同的技术目标对技术选型影响很大;
    • 技术的受众程度,虽然某些技术很适合做某个东西,但是受众程度低会导致招不到人才;
    • 团队的人才阶梯,都是大牛还是一般,或者初中高级分布比较合理;

    物联网云平台技术方向

    在物联网云平台技术方向上,大概分为前端、后端和运维:

    前端大概包含以下几个方面:

    • 官网
    • 用户端【PC WEB】
    • 管理端【PC WEB】
    • 移动端【微信小程序、APP、Mobile WEB】
    • 组态编辑器【PC WEB编辑及运行】【Mobile WEB运行】
    • 大屏编辑器【PC WEB编辑及运行】

    后端根据服务特点,分为两个大层,业务层和通讯层,业务层面向的是用户,通讯层面向的是设备。

    后端业务层大概包含以下几个方面:

    • API服务,需要根据前端的端再去细分若干服务,技术选型应该用一个,保持统一;
    • 报警服务,主要是给用户发送报警信息;
    • Monitor服务,主要是监控来自后端通讯层的消息;

    后端通讯层大概包含以下几个方面:

    • 设备接入
    • 数据解析
    • 功能服务
    + \ No newline at end of file diff --git a/docs/xuanxing/thingsboard/index.html b/docs/xuanxing/thingsboard/index.html index f231336ff..077fd5bb5 100644 --- a/docs/xuanxing/thingsboard/index.html +++ b/docs/xuanxing/thingsboard/index.html @@ -10,15 +10,15 @@ - - + +

    综述

    thingsboard 应该算是顶级的开源物联网云平台了。但是,经我研究,不是很适合国内用户。但是却有很多学习和借鉴的地方,例如规则引擎。

    环境要求

    • JDK 11
    • Maven 3.6.0+

    Maven 版本

    有问题,至少得是 3.6.0,官网文档有误;

    [ERROR] Failed to execute goal com.github.eirslett:frontend-maven-plugin:1.12.0:install-node-and-yarn (install node and npm) on project ui-ngx: The plugin com.github.eirslett:frontend-maven-plugin:1.12.0 requires Maven version 3.6.0 -> [Help 1]

    安装 postgres

    #
    docker pull postgres:11.19-bullseye
    #
    docker run \
    --privileged=true \
    --restart=always \
    --name postgres \
    -e POSTGRES_PASSWORD=Aa0123 \
    -p 5432:5432 \
    -v /mnt/docker/postgresql/data:/var/lib/postgresql/data \
    -d postgres:11.19-bullseye
    # 发现使用DBeaver连接不上,需要修改/mnt/docker/postgresql/data/pg_hba.conf
    # 增加一行host all all 192.168.41.69/32 trust
    # 192.168.41.69是我自己的ip

    执行 mvn compile 报错

    [ERROR] Failed to execute goal org.apache.maven.plugins:maven-dependency-plugin:2.8:unpack (extract-web-ui) on project web-ui: Artifact has not been packaged yet. When used on reactor artifact, unpack should be executed after packaging: see MDEP-98. -> [Help 1]

    碰到这个错误,是因为 ui-ngx 没有 install,install 一下即可

    创建数据库

    使用 DBeaver 连接数据库 postgresql,并创建数据库thingsboard

    修改thingsboard/application/src/main/resources/thingsboard.yml文件中的数据库配置,

    url: "${SPRING_DATASOURCE_URL:jdbc:postgresql://192.168.0.40:5432/thingsboard}"
    password: "${SPRING_DATASOURCE_PASSWORD:Aa0123}"

    执行 mvn package 打包并初始化数据库

    mvn package 命令直接成功。

    然后执行application/target/bin/install/install_dev_db.sh此脚本,也成功了

    IDEA 运行

    执行application/src/main/java/org/thingsboard/server/ThingsboardServerApplication.java debug 此文件, -如果存在 JDK 版本问题,把所有 JDK 的配置切换成 JDK11.

    等程序跑起来成功后,方位http://localhost:8080即可。可以使用以下三种类型的账号登录:

    至此,ThingsBoard 在本地成功运行。

    - +如果存在 JDK 版本问题,把所有 JDK 的配置切换成 JDK11.

    等程序跑起来成功后,方位http://localhost:8080即可。可以使用以下三种类型的账号登录:

    至此,ThingsBoard 在本地成功运行。

    + \ No newline at end of file diff --git "a/docs/xuanxing/thingsboard/\345\246\202\344\275\225\344\275\277\347\224\250/index.html" "b/docs/xuanxing/thingsboard/\345\246\202\344\275\225\344\275\277\347\224\250/index.html" index fb24502a6..85a99fa8d 100644 --- "a/docs/xuanxing/thingsboard/\345\246\202\344\275\225\344\275\277\347\224\250/index.html" +++ "b/docs/xuanxing/thingsboard/\345\246\202\344\275\225\344\275\277\347\224\250/index.html" @@ -10,14 +10,14 @@ - - + +
    -

    如何使用

    上行消息

    curl -v -X POST -d "{\"temperature\": 27}" http://localhost:8080/api/v1/ZGmef5dqOBYcQSR7EzQs/telemetry --header "Content-Type:application/json"

    # Acesss token
    mosquitto_pub -d -q 1 -h "localhost" -p "1883" -t "v1/devices/me/telemetry" -u "rX1zRfYWNoUgAg0FIKUt" -m {"temperature":300}
    mosquitto_pub -d -q 1 -h "localhost" -p "1883" -t "v1/devices/me/telemetry" -u "12345678" -m {"t":250}
    mosquitto_pub -d -q 1 -h "localhost" -p "1883" -t "v1/devices/me/attributes" -u "12345678" -m {"t":25}

    # MQTT Basic
    mosquitto_pub -h 'localhost' -i 'c1' -u 'u1' -P 'secret' -t '/telemetry' -m '{"temperature": 25}'
    mosquitto_pub -h 'localhost' -i 'c1' -u 't1' -P 'secret' -t '/attributes' -m '{"firmwareVersion": "1.3"}'
    - +

    如何使用

    上行消息

    curl -v -X POST -d "{\"temperature\": 27}" http://localhost:8080/api/v1/ZGmef5dqOBYcQSR7EzQs/telemetry --header "Content-Type:application/json"

    # Acesss token
    mosquitto_pub -d -q 1 -h "localhost" -p "1883" -t "v1/devices/me/telemetry" -u "rX1zRfYWNoUgAg0FIKUt" -m {"temperature":300}
    mosquitto_pub -d -q 1 -h "localhost" -p "1883" -t "v1/devices/me/telemetry" -u "12345678" -m {"t":250}
    mosquitto_pub -d -q 1 -h "localhost" -p "1883" -t "v1/devices/me/attributes" -u "12345678" -m {"t":25}

    # MQTT Basic
    mosquitto_pub -h 'localhost' -i 'c1' -u 'u1' -P 'secret' -t '/telemetry' -m '{"temperature": 25}'
    mosquitto_pub -h 'localhost' -i 'c1' -u 't1' -P 'secret' -t '/attributes' -m '{"firmwareVersion": "1.3"}'
    + \ No newline at end of file diff --git "a/docs/xuanxing/thingsboard/\346\272\220\347\240\201\347\273\223\346\236\204/index.html" "b/docs/xuanxing/thingsboard/\346\272\220\347\240\201\347\273\223\346\236\204/index.html" index 191549d12..485102fe9 100644 --- "a/docs/xuanxing/thingsboard/\346\272\220\347\240\201\347\273\223\346\236\204/index.html" +++ "b/docs/xuanxing/thingsboard/\346\272\220\347\240\201\347\273\223\346\236\204/index.html" @@ -10,14 +10,14 @@ - - + +
    -

    源码结构

    swagger

    http://localhost:8080/swagger-ui.html

    源码结构

    • application 主程序入口模块,重点关注ThingsboardServerApplication启动类
    • common 公共模块组
      • actor actor开发模型接口模块 实现在application模块
      • cache Redis/Caffeine缓存模块
      • cluster-api 集群功能接口模块,队列、消息通知等
      • coap-server coap协议实现模块
      • dao-api dao层接口模块,全是接口,没有实现
      • data 实体模块,全是一些DTO、entity、pojo等,最基础的源码包,不依赖任何其他源码模块
      • edge-api 边缘端api,主要是调用网关端的rpc调用,目前代码没有用到此包的内容
      • message 消息通用模块,中间件消息、规则链消息等,偏接口、实体、异常类
      • queue 消息中间件、消息队列
      • script
        • remote-js-client 远程执行js客户端,源码没有用到
        • script-api js脚本执行模块,源码没有用到
      • stats 状态统计、消息统计
      • transport 传输模块组
        • coap coap协议传输模块
        • http http协议传输模块
        • lwm2m lwm2m协议传输模块
        • mqtt mqtt协议传输模块
        • snmp snmp协议传输模块
        • transport-api 基础传输模块 上面的传输模块都需要依赖他,他算是比较基础的模块了
      • util 工具类模块,只依赖common/data模块
      • version-control TODO 版本控制,具体业务还没搞懂
    • dao 具体的dao实现模块
    • docker 启用微服务的docker配置目录,脚本、docker配置文件等
    • msa microservices aplication微服务模块组
      • black-box-tests
      • js-executor
      • tb 单docker镜像
      • tb-node
      • transport 协议传输配置docker微服务模块组
        • coap coap协议传输配置docker微服务模块
        • http http协议传输配置docker微服务模块
        • lwm2m lwm2m协议传输配置docker微服务模块
        • mqtt mqtt协议传输配置docker微服务模块
        • snmp snmp协议传输配置docker微服务模块
      • vc-executor TODO 依赖common/version-control
      • vc-executor-docker vc-executor的docker配置模块
      • web-ui 前端的docker配置模块
    • netty-mqtt mqtt-broker协议实现模块
    • packing 打包工具目录,打rpm、deb包
    • rest-client 二开SDK模块,二开请求工具
    • rule-engine 规则引擎
      • rule-engine-api 规则引擎接口模块,全是接口,application会实现
      • rule-engine-components 规则引擎所有元件模块
    • tools 各种工具模块,数据迁移工具、Python发送消息工具、shell工具等等
    • transport 协议传输配置启动类模块
      • coap coap协议传输配置启动类模块
      • http http协议传输配置启动类模块
      • lwm2m lwm2m协议传输配置启动类模块
      • mqtt mqtt协议传输配置启动类模块
      • snmp snmp协议传输配置启动类模块
    • ui-ngx 前端工程模块
    - +

    源码结构

    swagger

    http://localhost:8080/swagger-ui.html

    源码结构

    • application 主程序入口模块,重点关注ThingsboardServerApplication启动类
    • common 公共模块组
      • actor actor开发模型接口模块 实现在application模块
      • cache Redis/Caffeine缓存模块
      • cluster-api 集群功能接口模块,队列、消息通知等
      • coap-server coap协议实现模块
      • dao-api dao层接口模块,全是接口,没有实现
      • data 实体模块,全是一些DTO、entity、pojo等,最基础的源码包,不依赖任何其他源码模块
      • edge-api 边缘端api,主要是调用网关端的rpc调用,目前代码没有用到此包的内容
      • message 消息通用模块,中间件消息、规则链消息等,偏接口、实体、异常类
      • queue 消息中间件、消息队列
      • script
        • remote-js-client 远程执行js客户端,源码没有用到
        • script-api js脚本执行模块,源码没有用到
      • stats 状态统计、消息统计
      • transport 传输模块组
        • coap coap协议传输模块
        • http http协议传输模块
        • lwm2m lwm2m协议传输模块
        • mqtt mqtt协议传输模块
        • snmp snmp协议传输模块
        • transport-api 基础传输模块 上面的传输模块都需要依赖他,他算是比较基础的模块了
      • util 工具类模块,只依赖common/data模块
      • version-control TODO 版本控制,具体业务还没搞懂
    • dao 具体的dao实现模块
    • docker 启用微服务的docker配置目录,脚本、docker配置文件等
    • msa microservices aplication微服务模块组
      • black-box-tests
      • js-executor
      • tb 单docker镜像
      • tb-node
      • transport 协议传输配置docker微服务模块组
        • coap coap协议传输配置docker微服务模块
        • http http协议传输配置docker微服务模块
        • lwm2m lwm2m协议传输配置docker微服务模块
        • mqtt mqtt协议传输配置docker微服务模块
        • snmp snmp协议传输配置docker微服务模块
      • vc-executor TODO 依赖common/version-control
      • vc-executor-docker vc-executor的docker配置模块
      • web-ui 前端的docker配置模块
    • netty-mqtt mqtt-broker协议实现模块
    • packing 打包工具目录,打rpm、deb包
    • rest-client 二开SDK模块,二开请求工具
    • rule-engine 规则引擎
      • rule-engine-api 规则引擎接口模块,全是接口,application会实现
      • rule-engine-components 规则引擎所有元件模块
    • tools 各种工具模块,数据迁移工具、Python发送消息工具、shell工具等等
    • transport 协议传输配置启动类模块
      • coap coap协议传输配置启动类模块
      • http http协议传输配置启动类模块
      • lwm2m lwm2m协议传输配置启动类模块
      • mqtt mqtt协议传输配置启动类模块
      • snmp snmp协议传输配置启动类模块
    • ui-ngx 前端工程模块
    + \ No newline at end of file diff --git a/index.html b/index.html index 8ab66e43b..a54208181 100644 --- a/index.html +++ b/index.html @@ -10,14 +10,14 @@ - - + +

    Jiot.cloud

    我的开发笔记

    多读、多写、多分享

    尽可能的包含各种IT技术

    个人简介:10年以上软件开发经验,擅长Web前端、Java后端等编程技术,擅长物联网云平台相关业务,擅长组建开发团队、技术管理、技术架构等。

    喜欢研究,热爱编程。

    - + \ No newline at end of file diff --git a/markdown-page/index.html b/markdown-page/index.html index e2fa52d6c..f475d56a5 100644 --- a/markdown-page/index.html +++ b/markdown-page/index.html @@ -10,14 +10,14 @@ - - + +

    Markdown page example

    You don't need React to write simple standalone pages.

    - + \ No newline at end of file