
\u4e0a\u5b66\u65f6\u559c\u6b22\u5e2e\u540c\u684c\u627e\u9519\uff0c\u4e00\u4e2a\u82f1\u6587\u53e5\u5b50\u5982\u679c\u80fd\u627e\u5230 5 \u5904\u9519\u8bef\uff0c\u5fc3\u91cc\u5c31\u7f8e\u6ecb\u6ecb\u7684\u3002\u5982\u4eca\u8f6e\u5230\u81ea\u5df1\u5199\u6280\u672f\u6587\u6863\uff0c\u9762\u5bf9\u6ee1\u7bc7\u7684\u4e2d\u5f0f\u82f1\u8bed\u5374\u6709\u5fc3\u65e0\u529b\u3002\u597d\u5fc3\u7684\u7f51\u53cb\uff0c\u5982\u679c\u5f00\u53d1\u7d2f\u4e86\uff0c\u5c31\u6478\u4e2a\u9c7c\ud83d\udc1f\uff0c\u5e2e\u6211\u627e\u627e\u9519\u5427\uff0c\u4e5f\u627e\u56de\u5b66\u751f\u65f6\u4ee3\u7684\u611f\u89c9
\n============ \u6b63\u6587\u5206\u9694\u7ebf ============
\nSoftware development is like building houses and bridges, which can be the towering palaces in the north, the elegant courtyards in the south, and even the precipitous and isolated bridges beyond mountains. Then, different languages and frameworks attract a group of fans by their inherent qualities. They work tirelessly to create different ecosystems and present different development styles and experiences. Just as Rails to Ruby, Lavaral to PHP, Django to Python, and Spring Boot to Java. So, what will be to Javascript? There is no doubt that Javascript faces more usage scenarios, such as front-end, back-end, mobile, IOT, etc. Different scenarios have excellent solutions. Moreover, based on different usage habits, the Javascript ecosystem is split into two style systems, which are Javascript and Typescript. So, based on business development, in terms of the current node ecology, we can say that Nest to Typescript, and Cabloy to Javascript
Because different languages and frameworks will have different solutions and styles. Therefore, whether you use CabloyJS or not, it is necessary to come in and see what kind of flowers can grow on the soil of sticking to the pure Javascript (Vanilla JS). Therefore, whether you are a fan of front-end development, back-end development, full stack development, or other languages, or a technical manager, product manager, or project manager, you can learn different ideas and methods for solving problems from the documents and videos provided by CabloyJS, communicate with each other, learn from each other, and make progress together!
| Language | \nFramework | \n
|---|---|
| Ruby | \nRails | \n
| PHP | \nLavaral | \n
| Python | \nDjango | \n
| Java | \nSpring Boot | \n
| Typescript | \nNest | \n
| Javascript | \nCabloy | \n
CabloyJS is a NodeJS full-stack framework with workflow engine, a low-code development platform for developers, is also a PAAS platform with both out-of-the-box and flexible-customization. Only one set of codes is needed to realize the admin management system at backend and the applications at frontend at the same time. Only one set of codes is needed to adapt to PC and mobile at the same time, and the mobile is close to the native experience
\nbrief-but-not-simpleout-of-the-box + flexible-customizationMany friends feedback that they are unfamiliar with the concepts of CabloyJS, so they don\u2019t know where to start?
\nDifferent languages and architecture concepts determine the style of a framework. In order to create a truly easy-to-use full stack business framework, CabloyJS abstracts and refines the concepts behind the real business requirements, which not only achieves the effect of out-of-the-box, but also can be customized flexibly
\nTherefore, this also determines that the overall style of CabloyJS framework is: brief-but-not-simple. When you are familiar with this style, you will find that the really comfortable development experience should be like this
If you want to implement the CRUD features, the codes can be designed very simply, and you can even know how to use it without referencing the documents
\n\nWe can recall that most of the other backend MVC frameworks or backend API frameworks provide the
\nCRUDfeatures, while often stop there steps here?
Then, let\u2019s introduce some real business requirements:
\nAdd a draft copy of the data. When we modify the draft, the original data that has been formally submitted will not be affected
Add some history copies of the data, so as to record the historical version of the data
Add a approval workflow. Business data will be approved after the draft is submitted, and will be transferred to the formal copy only after it is approved
Add cms static rendering mechanism: as CRUD are generally managed in the backend, we need to output the data statically for the frontend system to access, and realize the SEO optimization of the website
Add category and tag features to facilitate further classification of data
For these characteristics mentioned above:
\nHow to refine general concepts
\nHow to design the development interface (to achieve the effect of out-of-the-box and flexible-customization)
How to configure flexibly (enable or disable some features conveniently). As the saying goes: it is easy to reduce dimensions, but difficult to increase dimensions. We need to have these features first, and then decide whether to enable them according to business requirements
\nHow to adapt more business scenarios (rather than only applicable to a certain type of business data), such as blog posts, community posts, leave forms, reimbursement forms, purchase orders, contracts, projects, assets, financial documents, etc.
\nIt is doomed that the concept of business data is not simple, but CabloyJS has implemented a brief development interface, which can be used out-of-the-box and flexible-customization
\n\nSee Also\uff1aBilibili Video\uff1a\u65b0\u5efa\u4e1a\u52a1\u8868\u5355+\u5ba1\u6279\u5de5\u4f5c\u6d41 (Translation Wanted)
\n
Question: With the popularization and upgrading of mobile devices, a large number of business scenarios need mobile support. Then, how can the admin management system support the mobile devices more elegantly?
Traditional solution: At present, most of the admin management frameworks on the market are compatible with PC and Mobile by using CSS media query
Disadvantages of the traditional solution: However, the UI interaction experiences of PC and Mobile are different, and the page layouts are different either. Therefore, only relying on CSS media query can only make PC pages available on the Mobile, but it is far from achieving the effect of the native MobileNew solution: CabloyJS provides a unique adaptive layout of pc=mobile+pad, so that only one set of codes is needed to adapt to PC and mobile at the same time, and the mobile is close to the native interactive experience
Advantages of the new solution: This solution also implements the design principle of out-of-the-box + flexible-customization, with the style of brief-but-not-simple. All you need to do is to understand this mechanism by referencing documents or watching videos. The codes required for actual frontend page development will be much less than CSS media query\n\nSee Also\uff1aBilibili Video: \u72ec\u6811\u4e00\u5e1c\u7684\u8de8\u7aef\u65b9\u6848\uff1apc=mobile+pad \u81ea\u9002\u5e94\u5e03\u5c40 (Translation Wanted)
\n
It is recommended that you read the following documents to have a preliminary understanding of the basic concepts of CabloyJS
\nCabloyJS is based on EggJS, VueJS and Framework7. These underlying framework documents do not have to be read first. CabloyJS provides enough samples and test codes to facilitate rapid development. It is recommended to run CabloyJS project first, and then gradually introduce relevant knowledge as needed
\nOf course, if you have the knowledges of EggJS and Framework7 in advance, it is easier to understand what innovations and transformations CabloyJS has made on the basis of these two
\nCabloyJS has many built-in core modules, which encapsulates and implements most of the functions and features commonly used in specific businesses. Therefore, it is recommended that you first create a project, run it, and preview the functions and features provided by CabloyJS. In this way, when you develop your own system, you will know how to refer to the existing paradigm to get twice the result with half the effort
\nCabloyJS offers some free video courses. This set of courses is taught by the author of CabloyJS, zhennann. Through on-site coding and actual combat, it takes you into the real scene of NodeJS full stack development, so that you can quickly improve development skills and quickly start the development of various business systems after learning
\nSee Also: A-001: CabloyJS \u5168\u6808\u6846\u67b6\uff1a\u4ece\u5165\u95e8\u5230\u7cbe\u901a (Translation Wanted)
\nSee Also: A-002: CabloyJS \u5168\u6808\u6846\u67b6\uff1a\u529f\u80fd\u7279\u6027\u6f14\u793a (Translation Wanted)
\nSee Also: B-001: \u5fae\u4fe1\u4e00\u8d77\u70b9\u83dc\u9879\u76ee\u8fdb\u5ea6\u590d\u76d8 (Translation Wanted)
\nOn the basis of CabloyJS framework, it is very fast and convenient to redevelop specific business modules. From the following tutorials section, you can see what steps are needed to develop a business module
By reading the EggBornJS section, you can understand what features EggBornJS has extended on the basis of EggJS in order to achieve business modularity
By reading the CabloyJS section, you can understand what core modules CabloyJS provides to improve the efficiency and convenience of business development
NodeJS workflow engine is the core component of a business development platform. By reading this chapter, you can understand how CabloyJS\u2019s own workflow engine supports the development of business systems in a simple, flexible and efficient way
Based on CabloyJS, corresponding solutions are implemented for different business scenarios, including:
\nCabloy-Wechat (Translation Wanted)
\nCabloy-Wechat Work (Translation Wanted)
\nCabloy-Dingtalk (Translation Wanted)
\nCabloy-Uniapp (Translation Wanted)
\ntest-party : is the test suite of CabloyJS, including a large number of test cases and Kitchen-sink
test-flow: is the test module of NodeJS workflow engine, containing a large number of workflow related test cases
test-note: is used to demonstrate how to use the Markdown rich text editor
These test modules/suites not only facilitate the quick learning of knowledge points in all aspects of CabloyJS, but also provide a large number of code examples to facilitate the rapid start of actual project development. It is strongly recommended that you pay attention to and keep these test modules/suites updated, so as to always obtain the latest sample codes in time
How to install test modules/suites, see also: Cabloy Store Cli
\nHow to disable test modules/suites, see also: Disable Module/Suite
\nHow to update test modules/suites, see also: Update Cabloy
\nBy reading the source codes of the core modules provided by CabloyJS, you will find that the CabloyJS framework is flexible enough to allow you to deeply customize, replace, and extend the numerous functions and features provided by CabloyJS
Welcome to participate in and contribute to the improvement of the CabloyJS full stack framework, which is also an effective way to quickly and deeply learn CabloyJS
\n" }, { "author": { "url": "member/wizzer", "name": "wizzer", "avatar": "https://cdn.v2ex.com/avatar/71e3/b293/393982_large.png?m=1737705332" }, "url": "t/804650", "title": "\u5f00\u6e90\u9879\u76ee\u5982\u4f55\u76c8\u5229\uff1f\u53d1\u5e03\u7684\u65b0\u7248\u8fd8\u4e0d\u5982\u8001\u7248\u672c\u6709\u4eba\u6c14", "id": "t/804650", "date_published": "2021-09-27T08:33:33+00:00", "content_html": "\u5b98\u7f51 https://budwk.com
\nV5 \u6f14\u793a https://nutzwk.wizzer.cn
\nV7 \u6f14\u793a https://demo.budwk.com
\nV7 \u662f\u57fa\u4e8e nutzboot \u7c7b\u4f3c SpringCloud \u7684 API \u7f51\u5173+\u5fae\u670d\u52a1\u5206\u5e03\u5f0f+\u524d\u540e\u7aef\u5206\u79bb\u7684\u5f00\u53d1\u6846\u67b6\u3002
\nV5 \u662f\u57fa\u4e8e nutzboot \u7684\u5355\u5e94\u7528\u7684\u5fae\u670d\u52a1\u5f00\u53d1\u6846\u67b6\u3002
\n\u4e24\u8005\u7684\u7279\u70b9\u662f\uff0cV7 \u66f4\u9002\u5408\u4f01\u4e1a\u56e2\u961f\u3001\u5927\u578b\u4e00\u4f53\u5316\u9879\u76ee\u5f00\u53d1\uff0cV5 \u66f4\u9002\u5408\u4e2a\u4eba\u6216\u8005\u9879\u76ee\u5feb\u901f\u5f00\u53d1\u3002
\nV5 \u6350\u8d60\u8005\u4e0d\u5c11\uff0cV7 \u51e0\u4e4e\u6ca1\u6709\uff5e\u4e2a\u4eba\u89c9\u5f97 V7 \u6bd4 V5 \u8bbe\u8ba1\u66f4\u5b8c\u7f8e\uff0c\u4fee\u590d\u548c\u63d0\u5347\u4e86\u4e0d\u5c11\u529f\u80fd\uff0c\u53ef\u662f\u4e00\u3001\u5ba3\u4f20\u4e0d\u5230\u4f4d\uff0c\u592a\u5c0f\u4f17\uff0c\u4e8c\u3001\u7c7b\u4f3c\u529f\u80fd\u7684\u57fa\u7840\u6846\u67b6\u904d\u5730\u90fd\u662f\uff0c\uff0c\u6211\u8fd9\u4e2a\u6846\u67b6\u7ef4\u62a4\u5feb\u5341\u5e74\u4e86\uff0cstar \u8fd8\u4e0d\u53ca\u65b0\u624b\u5199\u7684\u2026\u2026\u60ed\u6127
\n" }, { "author": { "url": "member/yazoox", "name": "yazoox", "avatar": "https://cdn.v2ex.com/avatar/7b39/2690/111562_large.png?m=1635297358" }, "url": "t/800537", "date_modified": "2021-09-08T01:06:59+00:00", "content_html": "\u5fae\u4fe1\u4e00\u4e2a app\uff0c\u662f\u5982\u4f55\u4f5c\u4e3a\u4e00\u4e2a\u201c\u5e73\u53f0\u201d\uff0c\u80fd\u591f\u7ba1\u7406\u5e76\u52a0\u8f7d\u5404\u79cd\u4e0d\u540c\u7684\u201c\u5e94\u7528\u201d\uff0c\u663e\u793a\u51fa\u6765\uff0c\u5e76\u80fd\u591f\u50cf\u4e00\u4e2a\u666e\u901a app \u4e00\u6837\u4f7f\u7528\u7684\u3002\u8fd9\u4e2a\u5e95\u5c42\u6846\u67b6\u662f\u5982\u4f55\u8bbe\u8ba1\u7684\uff0c\u6211\u60f3\u5b66\u4e60\u4e00\u4e0b\u3002\u5e02\u9762\u4e0a\u6709\u6ca1\u6709\u4e66\u7c4d\uff0c\u6216\u8005\u67d0\u4e9b\u7cfb\u5217\u6587\u7ae0\uff0c\u4e13\u95e8\u8bb2\u89e3\u7684\u3002\u8c22\u8c22\uff01
\np.s.
\n\u5176\u5b9e\uff0c\u652f\u4ed8\u5b9d\uff0c\u4e5f\u662f\u7c7b\u4f3c\u7684\u3002
p.s.
\n\u6211\u4e0d\u77e5\u9053\u76f4\u63a5\u5f00\u53d1\u4e00\u4e2a\u5fae\u4fe1\u7684\u5c0f\u7a0b\u5e8f\u80fd\u4e0d\u80fd\u8fbe\u5230\u76ee\u7684\uff0c\u8fd8\u6ca1\u6709\u8bd5\u8fc7\u3002
\u4e4b\u524d\u5728 V2EX \u4e0a\u641c\u7f51\u76d8\u770b\u5230\u4e86\u8fd9\u4e2a\u8d34\u5b50\uff1a https://v2ex.com/t/705012\n\u7136\u540e\u53d1\u73b0\u5176\u4e2d\u7684\u5e2e\u52a9\u6587\u6863\u8fd8\u633a\u597d\u770b\u7684\uff0c\u627e\u4e86\u4e00\u5708\u6ca1\u627e\u5230\u7528\u7684\u662f\u5565\uff0c\u95ee\u95ee\u5927\u795e\u6709\u6ca1\u6709\u77e5\u9053\u7684\u3002\n\u94fe\u63a5\u5728\u8fd9\u91cc\uff1a https://zpan.space/#/zh-cn/
\n" }, { "author": { "url": "member/yilai", "name": "yilai", "avatar": "https://cdn.v2ex.com/gravatar/d71837754bef3f974b73b4c1cbb128bc?s=73&d=retro" }, "url": "t/744791", "title": "\u5927\u4f6c\u6765\u5e2e\u5fd9\u770b\u4e00\u4e0b\u6211\u8fd9\u4e2a\u9700\u6c42", "id": "t/744791", "date_published": "2021-01-14T02:19:56+00:00", "content_html": "\u6211\u9700\u8981\u5b9e\u73b0\u8fd9\u6837\u7684\u4e00\u4e2a\u529f\u80fd\uff0c\u53ef\u4ee5\u7ba1\u7406\u5f88\u591a\u4e2a\u670d\u52a1\uff08\u4eba\u8138\u8bc6\u522b\uff1f\u56fe\u7247\u9274\u9ec4\uff1f\u53d1\u9001\u77ed\u4fe1\uff1f\u6587\u4ef6\u4e0a\u4f20\uff09\n\u603b\u4e4b\u770b\u8d77\u6765\u5c31\u662f\u975e\u5e38\u7c7b\u4f3c\u4e8e\u4e91\u670d\u52a1\uff0c\u4f46\u662f\u5047\u8bbe\u6211\u4eec\u5bf9\u4e8e\u4ef7\u683c\u5f88\u654f\u611f\uff0c\u9700\u8981\u81ea\u5df1\u5199\uff0c\u540c\u65f6\u53c8\u6709\u5f88\u591a\u9879\u76ee\u90fd\u9700\u8981\u8fd9\u4e9b\u670d\u52a1\uff0c\u4e0d\u80fd\u6bcf\u4e2a\u9879\u76ee\u7ec4\u90fd\u53bb\u5199\uff0c\u6240\u4ee5\u60f3\u95ee\u4e00\u4e0b\u5927\u4f6c\u4eec\uff0c\u6709\u6ca1\u6709\u8fd9\u6837\u7684\u5f00\u6e90\u5e73\u53f0\uff0c\u5e26\u8eab\u4efd\u8ba4\u8bc1\uff0c\n\u800c\u4e14\u8fd9\u79cd\u5230\u5e95\u662f\u5c5e\u4e8e\u4ec0\u4e48\uff1f\u5fae\u670d\u52a1\uff1f\u6c42\u5927\u4f6c\u8bb2\u4e00\u4e0b
\n" }, { "author": { "url": "member/TmacV2", "name": "TmacV2", "avatar": "https://cdn.v2ex.com/avatar/063d/bc95/154134_large.png?m=1451954419" }, "url": "t/731448", "title": "\u6570\u636e\u5e93\u6570\u636e\u5265\u79bb\u601d\u8def", "id": "t/731448", "date_published": "2020-12-02T09:11:32+00:00", "content_html": "\u516c\u53f8\u6709\u4e00\u4e1a\u52a1\u5e73\u53f0\uff0c\u91cc\u9762\u6709\u5f88\u591a\u5ba2\u6237\u7684\u6570\u636e\uff0c\u6211\u60f3\u8981\u4ece\u91cc\u9762\u5265\u79bb\u51fa\u7279\u5b9a\u7528\u6237\u7684\u6570\u636e\uff08\u591a\u8868\uff09\u7136\u540e\u5bfc\u5165\u5230\u65b0\u7684\u6570\u636e\u5e93\u4e2d\u3002\u76ee\u6807\u6570\u636e\u5e93\u8868\u7ed3\u6784\u7edd\u5927\u591a\u6570\u662f\u6211\u4eec\u81ea\u5df1\u5b9a\u4e49\u7684\uff0c\u4e5f\u53ef\u80fd\u662f\u5ba2\u6237\u63d0\u4f9b\u7684\u3002
\u76ee\u524d\u601d\u8def\u5c31\u662f
1.\u7528 sql \u8bed\u53e5\u5efa\u7acb\u4e34\u65f6\u8fc7\u6ee4\u8868
2.\u5efa\u7acb\u6e90\u6570\u636e\u5e93\u4e0e\u8fc7\u6ee4\u8868\u3001\u76ee\u6807\u6570\u636e\u8868 \u5b57\u6bb5\u6620\u5c04\u5173\u7cfb\uff0c\u7528\u8fc7\u6ee4\u8868\u53bb\u8fc7\u6ee4\u6e90\u6570\u636e\u8868 \u3001\u7136\u540e\u63d2\u5230\u76ee\u6807\u8868\uff08\u63d2\u5165\u524d\u53ef\u80fd\u53ef\u4ee5\u7b80\u5355\u7684\u8fdb\u884c\u6570\u636e\u5904\u7406\u3001\u8b6c\u5982\u9ed8\u8ba4\u503c\uff09
3.\u914d\u7f6e\u597d\u5404\u4e2a\u8868\u5b57\u6bb5\u6620\u5c04\u5173\u7cfb
\n\n\n\u4e0d\u77e5\u9053\u5bf9\u9519\uff0c\u53ea\u662f\u60f3\u68b3\u7406\u4e0b\u60f3\u6cd5\uff0c\u6709\u9519\u8bef\u8bf7\u6307\u6b63
\n
\u5fae\u670d\u52a1\u5df2\u7ecf\u662f\u4e00\u4e2a\u4e0d\u518d\u65b0\u9c9c\u7684\u6982\u5ff5\uff0c\u4f46\u6211\u5374\u4f9d\u7136\u6a21\u7cca\u4e0d\u6e05\u3002
\n\u5fae\u670d\u52a1\uff0c\u629b\u5f00 \u5fae \u4e0d\u770b\uff0c\u9996\u5148\u662f\u4e00\u4e2a\u9762\u5411\u670d\u52a1\u7684\u67b6\u6784\uff0c\u5373 SOA \u3002\u7cfb\u7edf\u6a21\u5757\uff0c\u4e1a\u52a1\u903b\u8f91\u4e4b\u95f4\u7684\u754c\u9650\u662f\u670d\u52a1\uff0c\u670d\u52a1\u4e3a \u670d\u52a1\u540d+\u65b9\u6cd5\u540d\uff0c\u4e0e CRUD/REST \u4e0d\u540c\u3002\u670d\u52a1\u91cd\u5728\u4ea4\u4e92\uff0cCRUD/REST \u91cd\u5728\u6570\u636e\u3002
\nSOA \u66fe\u7ecf\u6709 SOAP \u3001Java RMI\uff0c\u73b0\u5728\u4e3b\u6d41\u7684 gRPC \u548c\u5e38\u89c1\u7684 JsonRPC \u3002\u8fd9\u4e9b\u5b9a\u4e49\u7684\u90fd\u662f\u670d\u52a1\u4ea4\u4e92\u534f\u8bae\uff0c\u800c\u5fae\u670d\u52a1\u66f4\u591a\u7684\u5173\u6ce8\u670d\u52a1\u7684\u7ec4\u5408\u3001\u5206\u5e03\u3001\u7f16\u6392\u3001\u5bb9\u9519\u3001\u53d1\u73b0\u3001\u901a\u4fe1\u3001\u8ddf\u8e2a\u7b49\u3002\u56e0\u6b64\u4f1a\u60f3\u5230\u8fd9\u6837\u7684\u4e00\u4e9b\u4e3b\u9898\uff1a
\n\u670d\u52a1\u4e4b\u95f4\u7684\u901a\u4fe1\u53ef\u7c7b\u6bd4\u4e3a\u7f51\u7edc\u901a\u4fe1\uff0c\u4e3b\u8981\u5206\u4e3a\u70b9\u5bf9\u70b9\uff0c\u5e7f\u64ad\u548c\u7f51\u5173\uff1a
\n\u4ece\u670d\u52a1\u63d0\u4f9b\u65b9\u6765\u8bf4\u670d\u52a1\u7684\u901a\u4fe1\u4e5f\u53ef\u4ee5\u533a\u5206\u4e3a\u4e3b\u52a8\u548c\u88ab\u52a8\uff1a
\nHTTP
\n\u76ee\u524d HTTP \u5728\u5feb\u901f\u53d1\u5c55\uff0c\u65b0\u7684\u534f\u8bae\u63d0\u9ad8\u7684\u4e3b\u8981\u662f\u6027\u80fd\u548c\u5bf9\u957f\u94fe\u63a5\u6d41\u7684\u652f\u6301\uff0c\u5982\u679c\u9009\u62e9\u7b80\u5355\u5b9e\u73b0\u670d\u52a1\u8c03\u7528\uff0cHTTP \u8bf7\u6c42\u8db3\u4ee5\u3002
\n\u4f7f\u7528 HTTP POST \u5b9e\u73b0 \u5355\u6b21\u8bf7\u6c42\u54cd\u5e94\uff0c\u4f7f\u7528 WebSocket \u5b9e\u73b0\u6d41\u5f0f\u8bf7\u6c42\u3002\u4f7f\u7528 HTTP \u7684\u597d\u5904\u662f\u80fd\u5229\u7528\u73b0\u6709\u7684\u57fa\u7840\u8bbe\u65bd\uff0cHTTP \u662f\u76ee\u524d\u652f\u6301\u6700\u4e3a\u5e7f\u6cdb\u7684\u534f\u8bae\uff0c\u4e5f\u662f\u6700\u53d7\u5173\u6ce8\u7684\u534f\u8bae\u3002
\n\u4f46\u9009\u62e9 HTTP \u65f6\uff0c\u5982\u679c\u81ea\u884c\u5b9e\u73b0\uff0c\u5219\u6700\u597d\u9009\u62e9 HTTP 1\uff0c\u907f\u514d\u4f7f\u7528 HTTP 2 \u7b49\u65b0\u589e\u7279\u6027\uff0cHTTP 2+ \u80fd\u4f20\u9012 HTTP 1 \u7684\u6240\u6709\u8bed\u4e49\uff0c\u4e14\u6027\u80fd\u5404\u65b9\u9762\u80fd\u5f97\u5230\u5f88\u597d\u7684\u63d0\u5347\uff0c\u8fd9\u6837\u8db3\u4ee5\u3002\u5982\u679c\u8981\u72ec\u7acb\u4f7f\u7528 HTTP \u534f\u8bae\u65b0\u7279\u6027\uff0c\u4f8b\u5982 Trailer\uff0c\u5219\u5b9e\u73b0\u4f1a\u53d8\u5f97\u8fc7\u4e8e\u590d\u6742\u3002
\n\u975e HTTP \u8bed\u4e49
\n\u5f53\u4f7f\u7528\u975e HTTP \u8bed\u4e49\u8bed\u4e49\u65f6\uff0c\u53ef\u80fd\u662f\u57fa\u4e8e TCP\uff0c\u4e5f\u53ef\u80fd\u662f\u5bf9 Payload \u8fdb\u884c\u5b9a\u4e49\uff0c\u62bd\u8c61\u4f20\u8f93\u5c42\uff0c\u4f46\u5982\u4eca\u60f3\u8981\u8de8\u8bed\u8a00\uff0c\u4f7f\u7528\u975e HTTP \u534f\u8bae\u963b\u788d\u4f1a\u975e\u5e38\u5927\uff0c\u56e0\u6b64\u5b81\u613f\u9009\u62e9\u5bf9 Payload \u505a\u81ea\u5b9a\u4e49\u4e5f\u4e0d\u4f1a\u9009\u62e9\u4e0d\u4f7f\u7528 HTTP \u3002
\n\u901a\u5e38\u70b9\u5bf9\u70b9\u662f\u9700\u8981\u76f4\u63a5\u901a\u4fe1\uff0c\u4f46\u73b0\u4eca\u6709\u63d0\u4f9b Mesh \u7f51\u7edc\u7684\u7f51\u5173\u7ec4\u4ef6\uff0c\u4f7f\u5f97\u539f\u672c\u4e0d\u4e92\u901a\u7684\u7f51\u7edc\u670d\u52a1\u80fd\u591f\u4e92\u76f8\u8bbf\u95ee\u3002\u540c\u65f6\u4e5f\u80fd\u5b9e\u73b0\u5bf9\u5e94\u7684\u670d\u52a1\u4e4b\u95f4\u7684\u6743\u9650\u7ba1\u7406\u548c\u76d1\u63a7\u3002
\n\u4f7f\u7528 Mesh \u7f51\u5173\u5219\u53ef\u4ee5\u8ba9\u5ba2\u6237\u7aef\u7684\u7f51\u7edc\u5c42\u5b9e\u73b0\u66f4\u4e3a\u7b80\u5355\uff0c\u7531\u7f51\u5173\u53bb\u7ef4\u62a4\u670d\u52a1\u7f51\u7edc\u7684\u7a33\u5b9a\u6027\uff0c\u5bf9\u670d\u52a1\u7f51\u7edc\u7684\u53d8\u5316\u4e5f\u80fd\u66f4\u5feb\u7684\u53cd\u5e94\u3002\u4f46\u6210\u672c\u662f\u7ef4\u62a4\u989d\u5916\u7684\u57fa\u7840\u8bbe\u65bd\u7ec4\u4ef6\uff0c\u4e14\u6ce8\u518c\u4e2d\u5fc3\u4e0e\u7f51\u5173\u6709\u5f3a\u5173\u8054\u548c\u4ea4\u4e92\uff0c\u6bcf\u4e2a\u8282\u70b9\u8fd0\u884c\u4e00\u4e2a\u7f51\u5173\u4e5f\u662f\u989d\u5916\u7684\u8d44\u6e90\u6d88\u8017\u3002
\n\u670d\u52a1\u603b\u7ebf\u672c\u6765\u662f\u4e00\u79cd\u8bbe\u8ba1\u6a21\u5f0f\uff0c\u6bd4\u8f83\u5e38\u89c1\u7684\u662f\u57fa\u4e8e\u4e8b\u4ef6\u9a71\u52a8\u7684\u8bbe\u8ba1\uff0c\u4f46\u5728\u670d\u52a1\u573a\u666f\u4f1a\u6709\u6240\u4e0d\u540c\u3002\u4e8b\u4ef6\u9a71\u52a8\u4e00\u822c\u6709\u56fa\u5b9a\u7684 \u4e3b\u9898 /Topic\uff0c\u5728\u5b9a\u4e49\u4e4b\u521d\u5df2\u7ecf\u786e\u5b9a\u4e86\u90e8\u5206\u8bed\u4e49\u3002\u800c\u670d\u52a1\u603b\u7ebf\u5219\u53ef\u4ee5\u7406\u89e3\u4e3a\u53ea\u6709\u4e00\u4e2a Topic\uff0c\u901a\u8fc7\u6d88\u606f\u7684\u5185\u5bb9\u6765\u8fdb\u884c\u8fc7\u6ee4\u8c01\u5904\u7406\u8c01\u4e0d\u9700\u8981\u5904\u7406\u3002
\n\u603b\u7ebf\u7684\u901a\u4fe1\u6a21\u5f0f\u89e3\u51b3\u4e86\u670d\u52a1\u4e4b\u95f4\u7f51\u7edc\u9694\u79bb\u7684\u963b\u788d\uff0c\u4e0d\u518d\u9700\u8981 A \u670d\u52a1 \u4e0e B \u670d\u52a1 \u7f51\u7edc\u4e92\u901a\uff0c\u7f51\u7edc\u7684\u53d8\u5316\u4e5f\u4e0d\u4f1a\u963b\u788d\u670d\u52a1\u7684\u901a\u4fe1\u3002\u4f46\u5982\u679c\u603b\u7ebf\u672c\u8eab\u5982\u679c\u4e0d\u652f\u6301\u4e00\u4e9b meta \u4fe1\u606f\u7684\u6a21\u5f0f\u5339\u914d\uff0c\u5219\u4f1a\u5bfc\u81f4\u6d41\u91cf\u8fc7\u5927\uff0c\u5904\u7406\u80fd\u529b\u53d7\u9650\u3002
\n\u9009\u62e9\u5e7f\u64ad\u901a\u4fe1\uff0c\u5219\u5fc5\u7136\u4f1a\u9009\u62e9\u67d0\u79cd\u5f62\u5f0f\u7684 \u6d88\u606f\u961f\u5217 /MQ \u5b9e\u73b0\uff0c\u56e0\u6b64\u4f1a\u7275\u626f\u5230\u5176\u4ed6\u7684\u57fa\u7840\u8bbe\u65bd\u670d\u52a1\uff0c\u4ece\u90e8\u7f72\u8ddf\u8e2a\u4e0a\u6765\u8bf4\uff0c\u8fd9\u662f\u6263\u5206\u7684\u3002
\n\u7f51\u5173\u901a\u4fe1\u4e0e Mesh \u7f51\u5173\u4e0d\u540c\uff0cMesh \u7684\u76ee\u7684\u5728\u4e8e\u6253\u901a\u8282\u70b9\uff0c\u7f51\u5173\u7684\u76ee\u7684\u5728\u4e8e\u78e8\u5e73 /\u9002\u914d\u4e0d\u540c\u7684\u73af\u5883\u670d\u52a1\uff0c\u63d0\u4f9b\u76f8\u540c\u7684\u80fd\u529b\u3002
\n\u6240\u6709\u7684\u8bf7\u6c42\u901a\u8fc7\u7f51\u5173\uff0c\u7531\u7f51\u5173\u8fdb\u884c\u8def\u7531\uff0c\u8fd9\u662f\u5178\u578b\u7684 Nginx \u53cd\u5411\u4ee3\u7406\u573a\u666f\u3002\u56e0\u4e3a\u6240\u6709\u8bf7\u6c42\u90fd\u52a0\u4e86\u4e2d\u95f4\u5c42\uff0c\u56e0\u6b64\u5f88\u591a\u4e8b\u60c5\u90fd\u53ef\u4ee5\u5728\u4e2d\u95f4\u5c42\u5b8c\u6210\uff1a
\n\u8be5\u6a21\u5f0f\u4e0e\u5b9e\u9645\u6700\u5e95\u5c42\u7684\u670d\u52a1\u901a\u4fe1\u6709\u6709\u4e00\u70b9\u533a\u522b\uff0c\u4e3b\u8981\u4f5c\u4e3a\u9002\u914d\u548c\u8026\u5408\u5b58\u5728\uff0c\u5982\u679c\u7f51\u5173\u529f\u80fd\u8d8a\u591a\u505a\u7684\u4e8b\u60c5\u8d8a\u591a\u4e5f\u8d8a\u5bb9\u6613\u9020\u6210\u5355\u70b9\u74f6\u9888\u3002
\n\u901a\u4fe1\u662f\u670d\u52a1\u7684\u6839\u672c\uff0c\u5bf9\u4e8e\u5fae\u670d\u52a1\u66f4\u662f\u5982\u6b64\u3002\u901a\u4fe1\u7684\u6a21\u5f0f\u95f4\u63a5\u6216\u76f4\u63a5\u7684\u5f71\u54cd\u5176\u4ed6\u7ec4\u4ef6\u7684\u9009\u62e9\u548c\u8bbe\u8ba1\u3002\u4f46\u4e0d\u540c\u7684\u901a\u4fe1\u6a21\u5f0f\u5e76\u4e0d\u662f\u4e92\u65a5\u7684\uff0c\u5728\u5bf9\u4e8e\u7684\u573a\u666f\u9009\u62e9\u5bf9\u4e8e\u7684\u65b9\u5f0f\u624d\u662f\u6700\u597d\u7684\u9009\u62e9\u3002
\n15s * 3 = 45s - \u4e0d\u8fdb\u884c\u4e3b\u52a8\u5e72\u9884\u7684\u60c5\u51b5\u670d\u52a1\u53d1\u73b0\u901a\u5e38\u53ea\u662f\u4e00\u79cd\u884c\u4e3a\uff0c\u4f46\u5b9e\u9645\u4f7f\u7528\u7684\u5e94\u8be5\u662f\u670d\u52a1\u6ce8\u518c\u4e2d\u5fc3\uff0c\u4e3b\u8981\u80fd\u529b\u5305\u62ec\uff1a
\n\u670d\u52a1\u6ce8\u518c\u4e2d\u5fc3\u901a\u5e38\u4e0d\u662f\uff0c\u800c\u662f\u4e00\u4e2a\u96c6\u7fa4\uff0c\u5176\u4e2d\u7684\u670d\u52a1\u5143\u4fe1\u606f\u4e5f\u53ef\u88ab\u540c\u6b65\u5230 RDBMS \u4fbf\u4e8e\u5f00\u53d1\u4eba\u5458\u67e5\u770b\u548c\u4f7f\u7528\uff0c\u573a\u666f\u4f8b\u5982\uff1a
\n\u670d\u52a1\u5bb9\u9519\u5305\u542b\u670d\u52a1\u5f02\u5e38\u3001\u8282\u70b9\u5f02\u5e38\u3001\u7f51\u7edc\u5f02\u5e38\uff0c\u4e0d\u540c\u7684\u5f02\u5e38\u53ef\u80fd\u91c7\u53d6\u4e0d\u540c\u7684\u5e94\u5bf9\u65b9\u5f0f\uff0c\u6211\u7406\u89e3\u7684\u5e38\u89c1\u529f\u80fd\u5305\u62ec
\n\u5bb9\u9519\u7684\u5b9e\u73b0\u901a\u5e38\u914d\u5408\u76d1\u63a7\uff0c\u7f51\u5173\uff0c\u6ce8\u518c\u4e2d\u5fc3\u3002\u7b97\u662f\u4f18\u5316\u670d\u52a1\u4f53\u9a8c\u7684\u4e00\u90e8\u5206\uff0c\u53ef\u4ee5\u4f5c\u4e3a\u5ef6\u4f38\u652f\u6301\u8003\u8651\u3002
\n\u5fae\u670d\u52a1\uff0c\u5fae\u7684\u662f\u9664\u4e86\u670d\u52a1\u4e4b\u5916\u7684\u90e8\u5206\uff0c\u4e5f\u5c31\u662f\u4e0a\u8ff0\u7684\u6240\u6709\u5185\u5bb9\u3002\u5fae\u670d\u52a1\u7684\u671f\u671b\u662f\u8ba9\u5f00\u53d1\u53ea\u5173\u5fc3\u4e1a\u52a1\u903b\u8f91\u7684\u7f16\u5199\uff0c\u5f00\u53d1\u597d\u7684\u4e1a\u52a1\u903b\u8f91\u80fd\u591f\u5feb\u901f\u7a33\u5b9a\u7684\u4e0a\u7ebf\u88ab\u4f7f\u7528\u3002
\n\u5982\u679c\u4e0d\u5728\u4e00\u5957\u5b8c\u5584\u7684\u4f53\u7cfb\u4e0b\u8c08\u8bba\u5f00\u53d1\u5fae\u670d\u52a1\u90fd\u662f\u6ca1\u6709\u610f\u4e49\u4e14\u96be\u4ee5\u5b9e\u73b0\u7684\uff0c\u800c\u8fd9\u5957\u4f53\u7cfb\u7684\u642d\u5efa\u4e0d\u80cc\u9760\u73b0\u5728\u7684 K8S \u4e4b\u7c7b\u7684\u4f53\u7cfb\u4e5f\u662f\u96be\u4ee5\u6210\u5f62\u7684\u3002
\n\u5c06\u6700\u8fd1\u6df7\u4e71\u601d\u7eea\u8fdb\u884c\u68b3\u7406\uff0c\u4e0d\u4e00\u5b9a\u90fd\u662f\u6b63\u786e\uff0c\u4ec5\u4f5c\u4e3a\u53c2\u8003\u4fbf\u4e8e\u7406\u89e3\uff0c\u5f15\u5bfc\u4e4b\u540e\u7684\u9009\u62e9\u548c\u51b3\u5b9a\u3002
\nRT\uff0c\u60f3\u95ee\u95ee\u6709\u4eba\u77e5\u9053\u5417\uff1f\u6bd4\u8f83\u597d\u5947\u8fd9\u79cd\u8f6f\u4ef6\u754c\u9762\u7684\u5b9e\u73b0\uff0c\u4ee5\u53ca\u5176\u4f7f\u7528\u7684\u6846\u67b6\u5565\u7684\u3002
\n" }, { "author": { "url": "member/yuelang85", "name": "yuelang85", "avatar": "https://cdn.v2ex.com/avatar/ec26/dcdc/12811_large.png?m=1654544223" }, "url": "t/89412", "title": "\u8bf7\u95eelisp\u6709\u4ec0\u4e48web\u6846\u67b6\u5417\uff1f", "id": "t/89412", "date_published": "2013-11-15T08:19:48+00:00", "content_html": "" } ] } ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86