content/references/java-chassis/en_US/question-and-answer/question_answer/index.html (487 lines of code) (raw):

<!DOCTYPE html> <html class="writer-html5" lang="en" > <head> <meta charset="utf-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <link rel="shortcut icon" href="../../img/favicon.ico" /> <title>Q & A - ServiceComb Java Chassis Developers Guide</title> <link rel="stylesheet" href="../../css/theme.css" /> <link rel="stylesheet" href="../../css/theme_extra.css" /> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/github.min.css" /> <script> // Current page data var mkdocs_page_name = "Q \u0026 A"; var mkdocs_page_input_path = "question-and-answer/question_answer.md"; var mkdocs_page_url = null; </script> <script src="../../js/jquery-3.6.0.min.js" defer></script> <!--[if lt IE 9]> <script src="../../js/html5shiv.min.js"></script> <![endif]--> <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/highlight.min.js"></script> <script>hljs.initHighlightingOnLoad();</script> </head> <body class="wy-body-for-nav" role="document"> <div class="wy-grid-for-nav"> <nav data-toggle="wy-nav-shift" class="wy-nav-side stickynav"> <div class="wy-side-scroll"> <div class="wy-side-nav-search"> <a href="../.." class="icon icon-home"> ServiceComb Java Chassis Developers Guide </a><div role="search"> <form id ="rtd-search-form" class="wy-form" action="../../search.html" method="get"> <input type="text" name="q" placeholder="Search docs" title="Type search term here" /> </form> </div> </div> <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> <ul> <li class="toctree-l1"><a class="reference internal" href="../..">Introduction</a> </li> </ul> <p class="caption"><span class="caption-text">Getting Started</span></p> <ul> <li class="toctree-l1"><a class="reference internal" href="../../start/terminology/">Glossary</a> </li> <li class="toctree-l1"><a class="reference internal" href="../../start/architecture/">Architecture</a> </li> <li class="toctree-l1"><a class="reference internal" href="../../start/development-environment/">Development environment</a> </li> <li class="toctree-l1"><a class="reference internal" href="../../start/first-sample/">Develop the first microservice</a> </li> </ul> <p class="caption"><span class="caption-text">Development Service Provider</span></p> <ul> <li class="toctree-l1"><a class="reference internal" href="../../build-provider/definition/service-definition/">Service definition</a> </li> <li class="toctree-l1"><a class="reference internal" href="../../build-provider/define-contract/">Service contract definition</a> </li> <li class="toctree-l1"><a class="reference internal" href="../../build-provider/code-first/">Implicit API definition</a> </li> <li class="toctree-l1"><a class="reference internal" href="../../build-provider/swagger-annotation/">Use Swagger annotations</a> </li> <li class="toctree-l1"><a class="reference internal" href="../../build-provider/springmvc/">Develop with SpringMVC</a> </li> <li class="toctree-l1"><a class="reference internal" href="../../build-provider/jaxrs/">Develop with JAX-RS</a> </li> <li class="toctree-l1"><a class="reference internal" href="../../build-provider/transparent-rpc/">Develop with Transparent RPC</a> </li> <li class="toctree-l1"><a class="reference internal" href="../../build-provider/interface-constraints/">Interface definition and data type</a> </li> <li class="toctree-l1"><a class="reference internal" href="../../build-provider/listen-address-and-publish-address/">Service listening address and publishing address</a> </li> <li class="toctree-l1"><a class="reference internal" href="../../build-provider/thread-pool/">Thread pool</a> </li> <li class="toctree-l1"><a class="reference internal" href="#">Service Configuration</a> <ul> <li class="toctree-l2"><a class="reference internal" href="../../build-provider/configuration/ratelimite-strategy/">Rate Limiting Policy</a> </li> <li class="toctree-l2"><a class="reference internal" href="../../build-provider/configuration/downgrade-strategy/">Fallback Policy</a> </li> <li class="toctree-l2"><a class="reference internal" href="../../build-provider/configuration/parameter-validator/">Parameter Validator</a> </li> </ul> </li> <li class="toctree-l1"><a class="reference internal" href="../../build-provider/bootup/">Boot-up Process</a> </li> <li class="toctree-l1"><a class="reference internal" href="../../build-provider/access-log-configuration/">Access Log Configuration</a> </li> </ul> <p class="caption"><span class="caption-text">Writing Service Consumer</span></p> <ul> <li class="toctree-l1"><a class="reference internal" href="../../build-consumer/common-configuration/">Consumer common configuration</a> </li> <li class="toctree-l1"><a class="reference internal" href="../../build-consumer/using-resttemplate/">Using Rest Template</a> </li> <li class="toctree-l1"><a class="reference internal" href="../../build-consumer/using-AsyncRestTemplate/">Using AsyncRestTemplate</a> </li> <li class="toctree-l1"><a class="reference internal" href="../../build-consumer/develop-consumer-using-rpc/">Using with RPC</a> </li> <li class="toctree-l1"><a class="reference internal" href="../../build-consumer/with-contract/">Contract</a> </li> <li class="toctree-l1"><a class="reference internal" href="#">Invoke control</a> <ul> <li class="toctree-l2"><a class="reference internal" href="../../build-consumer/circuit-breaker/">Circuit Breaker</a> </li> <li class="toctree-l2"><a class="reference internal" href="../../build-consumer/flow-control/">Flow Control</a> </li> <li class="toctree-l2"><a class="reference internal" href="../../build-consumer/fault-injection/">Fault Injection</a> </li> </ul> </li> <li class="toctree-l1"><a class="reference internal" href="../../build-consumer/3rd-party-service-invoke/">Invoke 3rd-party REST services</a> </li> </ul> <p class="caption"><span class="caption-text">Transports</span></p> <ul> <li class="toctree-l1"><a class="reference internal" href="../../transports/rest-over-servlet/">REST over Servlet</a> </li> <li class="toctree-l1"><a class="reference internal" href="../../transports/rest-over-vertx/">REST over Vertx</a> </li> <li class="toctree-l1"><a class="reference internal" href="../../transports/highway-rpc/">Highway</a> </li> <li class="toctree-l1"><a class="reference internal" href="../../transports/http2/">HTTP2</a> </li> </ul> <p class="caption"><span class="caption-text">General Development</span></p> <ul> <li class="toctree-l1"><a class="reference internal" href="../../general-development/visit-sc/">Access Service Center</a> </li> <li class="toctree-l1"><a class="reference internal" href="../../general-development/metrics/">Metrics</a> </li> <li class="toctree-l1"><a class="reference internal" href="../../general-development/microservice-invocation-chain/">Microservice invocation chain</a> </li> <li class="toctree-l1"><a class="reference internal" href="../../general-development/customized-tracing/">Customized-Tracing</a> </li> <li class="toctree-l1"><a class="reference internal" href="../../general-development/local-develop-test/">Local development and testing</a> </li> <li class="toctree-l1"><a class="reference internal" href="../../general-development/http-filter/">Http Filter</a> </li> <li class="toctree-l1"><a class="reference internal" href="../../general-development/file-upload/">File Uploading</a> </li> <li class="toctree-l1"><a class="reference internal" href="../../general-development/file-download/">File Downloading</a> </li> <li class="toctree-l1"><a class="reference internal" href="../../general-development/reactive/">Reactive Programing</a> </li> <li class="toctree-l1"><a class="reference internal" href="../../general-development/dnsconfig/">DNS Custom Configuration</a> </li> <li class="toctree-l1"><a class="reference internal" href="../../general-development/dai-li-she-zhi/">Proxy Settings</a> </li> <li class="toctree-l1"><a class="reference internal" href="../../general-development/report-framework-version/">Report framework version</a> </li> <li class="toctree-l1"><a class="reference internal" href="../../general-development/cross-app-invocation/">Cross-application invocation</a> </li> <li class="toctree-l1"><a class="reference internal" href="../../general-development/secret-field/">Customized serialization and deserialization</a> </li> <li class="toctree-l1"><a class="reference internal" href="../../general-development/context/">Using Context to pass control messages</a> </li> <li class="toctree-l1"><a class="reference internal" href="../../general-development/produceprocess/">Return value serialization extension</a> </li> <li class="toctree-l1"><a class="reference internal" href="../../general-development/CORS/">CORS mechanism</a> </li> <li class="toctree-l1"><a class="reference internal" href="../../general-development/AlarmEvent/">Get fuse and instance isolation alarm event information</a> </li> <li class="toctree-l1"><a class="reference internal" href="../../general-development/shutdown/">Shutdown gracefully</a> </li> <li class="toctree-l1"><a class="reference internal" href="../../general-development/error-handling/">Handling exceptions</a> </li> <li class="toctree-l1"><a class="reference internal" href="../../general-development/multienvironment/">Multi-environment isolation between microservice instances</a> </li> <li class="toctree-l1"><a class="reference internal" href="../../general-development/thread-model/">Thread Model</a> </li> </ul> <p class="caption"><span class="caption-text">Configuration</span></p> <ul> <li class="toctree-l1"><a class="reference internal" href="../../config/general-config/">General config</a> </li> <li class="toctree-l1"><a class="reference internal" href="../../config/inject-config/">Configuration injection</a> </li> </ul> <p class="caption"><span class="caption-text">Service Capability Open</span></p> <ul> <li class="toctree-l1"><a class="reference internal" href="../../edge/open-service/">Intruductions</a> </li> <li class="toctree-l1"><a class="reference internal" href="../../edge/by-servicecomb-sdk/">Using Edge Service</a> </li> <li class="toctree-l1"><a class="reference internal" href="../../edge/nginx/">Using confd and Nginx as edge services</a> </li> <li class="toctree-l1"><a class="reference internal" href="../../edge/zuul/">Use zuul as edge services</a> </li> </ul> <p class="caption"><span class="caption-text">Service Packing and Running</span></p> <ul> <li class="toctree-l1"><a class="reference internal" href="../../packaging/standalone/">Standalone mode</a> </li> <li class="toctree-l1"><a class="reference internal" href="../../packaging/web-container/">WEB container mode</a> </li> </ul> <p class="caption"><span class="caption-text">Micro Service Security</span></p> <ul> <li class="toctree-l1"><a class="reference internal" href="../../security/tls/">Using TLS</a> </li> <li class="toctree-l1"><a class="reference internal" href="../../security/rsa/">Using RSA certification</a> </li> </ul> <p class="caption"><span class="caption-text">Using java chassis in Spring Boot</span></p> <ul> <li class="toctree-l1"><a class="reference internal" href="../../using-java-chassis-in-spring-boot/using-java-chassis-in-spring-boot/">Intruductions</a> </li> <li class="toctree-l1"><a class="reference internal" href="../../using-java-chassis-in-spring-boot/components-for-spring-boot/">spring boot starter for java-chassis</a> </li> <li class="toctree-l1"><a class="reference internal" href="../../using-java-chassis-in-spring-boot/java-application/">JAVA application development</a> </li> <li class="toctree-l1"><a class="reference internal" href="../../using-java-chassis-in-spring-boot/web-application/">Web development method development</a> </li> <li class="toctree-l1"><a class="reference internal" href="../../using-java-chassis-in-spring-boot/diff-between-java-web/">The difference between JAVA application method and Web development method</a> </li> <li class="toctree-l1"><a class="reference internal" href="../../using-java-chassis-in-spring-boot/diff-spring-mvc/">The difference in Spring MVC mode</a> </li> </ul> <p class="caption"><span class="caption-text">Handlers reference</span></p> <ul> <li class="toctree-l1"><a class="reference internal" href="../../references-handlers/intruduction/">Intruductions</a> </li> <li class="toctree-l1"><a class="reference internal" href="../../references-handlers/loadbalance/">Load Balancing</a> </li> <li class="toctree-l1"><a class="reference internal" href="../../references-handlers/publickey/">Public key authentication</a> </li> </ul> <p class="caption"><span class="caption-text">FAQ</span></p> <ul class="current"> <li class="toctree-l1 current"><a class="reference internal current" href="./">Q & A</a> <ul class="current"> </ul> </li> <li class="toctree-l1"><a class="reference internal" href="../faq/">FAQ</a> </li> <li class="toctree-l1"><a class="reference internal" href="../interface-compatibility/">Micro Service Interface Compatibility FAQ</a> </li> </ul> </div> </div> </nav> <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"> <nav class="wy-nav-top" role="navigation" aria-label="Mobile navigation menu"> <i data-toggle="wy-nav-top" class="fa fa-bars"></i> <a href="../..">ServiceComb Java Chassis Developers Guide</a> </nav> <div class="wy-nav-content"> <div class="rst-content"><div role="navigation" aria-label="breadcrumbs navigation"> <ul class="wy-breadcrumbs"> <li><a href="../.." class="icon icon-home" alt="Docs"></a> &raquo;</li> <li>FAQ &raquo;</li> <li>Q & A</li> <li class="wy-breadcrumbs-aside"> </li> </ul> <hr/> </div> <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> <div class="section" itemprop="articleBody"> <h1 id="problem-how-to-customize-the-http-status-code-in-the-rest-interface-corresponding-to-a-java-method">Problem: How to customize the HTTP status code in the REST interface corresponding to a Java method?</h1> <p><strong>Solution:</strong></p> <p>For normal return values, this can be done with SwaggerAnnotation, for example:</p> <pre><code class="language-java">@ApiResponse(code = 300, response = String.class, message = &quot;&quot;) public int test(int x) { return 100; } </code></pre> <p>For the return value of the exception, you can do this by throwing a custom InvocationException, for example:</p> <pre><code class="language-java"> public String testException(int code) { String strCode = String.valueOf(code); switch (code) { case 200: return strCode; case 456: throw new InvocationException(code, strCode, strCode + &quot; error&quot;); case 556: throw new InvocationException(code, strCode, Arrays.asList(strCode + &quot; error&quot;)); case 557: throw new InvocationException(code, strCode, Arrays.asList(Arrays.asList(strCode + &quot; error&quot;))); default: break; } return &quot;not expected&quot;; } </code></pre> <h1 id="problem-how-to-customize-the-log-configuration-of-your-own-microservice">Problem: How to customize the log configuration of your own microservice</h1> <p><strong> Solution:</strong> ServiceComb does not bind the logger, use slf4j, users can freely choose log4j/log4j2/logback and so on. ServiceComb provides a log4j extension that supports incremental configuration of log4j's properties files on a standard log4j basis.</p> <ul> <li>By default, the configuration file is loaded from the path: "classpath*:config/log4j.properties"</li> <li>It will actually search all the <code>config/log4j.properties and config/log4j.*.properties</code> in the classpath, cut out the <code>\*</code> part from the searched file, sort the alpha, then load it in order, and finally compose The file is used as the log4j configuration file.</li> <li>If you want to use ServiceComb's log4j extension, you need to call Log4jUtils.init, otherwise it will be used according to the rules of the standard logger.</li> </ul> <h1 id="problem-when-the-service-is-configured-with-multiple-types-of-transport-what-are-the-mechanisms-for-servicecomb-choose-which-transport-to-use-at-runtime">Problem: When the service is configured with multiple types of transport, What are the mechanisms for ServiceComb choose which transport to use at runtime?</h1> <p><strong> Solution:</strong></p> <ul> <li> <p>ServiceComb's consumer, transport, handler, and producer are decoupled. The functions work together through contract definitions, that is, whether the consumer uses transparent rpc, or springmvc develops and uses a highway, or RESTful does not transmit on the network. Relationships and producers use transparent rpc, or jaxrs, or springmvc development, and there is no relationship between the receiver and the perception, business development methods and transmission methods.</p> </li> <li> <p>Consumer access producer, in the runtime transport selection, the general rule is: the consumer's transport and producer's endpoint intersection, if there are multiple transports after the intersection, then use in turn</p> </li> </ul> <p>Decomposed, there are the following scenarios:</p> <ul> <li>When a microservice producer provided both the highway and the RESTful endpoint</li> <li>Only the highway transport jar is deployed in the consumer process, only the producer's highway endpoint is accessed.   * Only the RESTful transport jar is deployed in the consumer process, only the RESTful endpoint of the producer is accessed.   * The consumer process, while deploying the highway and RESTful transport jar, will take turns accessing the producer's highway, RESTful endpoint</li> </ul> <p>If at this time, the consumer wants to use a transport to access the producer, it can be configured in the microservice.yaml of the consumer process, specifying the name of the transport:</p> <pre><code>servicecomb: references: transport: &lt;service_name&gt;: highway </code></pre> <ul> <li>When a microservice producer only provided the endpoint of the highway</li> </ul> <p>* The consumer process only deploys the highway transport jar, and normally uses higway endpoint.   * The consumer process can only be accessed if only the RESTful transport jar is deployed   * The consumer process deploys both the highway and the RESTful transport jar, and the highway access is normally used.</p> <ul> <li>When a microservice producer only provided RESTful endpoints</li> </ul> <p>* The consumer process only deploys the highway transport jar and cannot access it.   * The consumer process only deploys RESTful transport jars, which normally use RESTful access   * The consumer process deploys both the highway and the RESTful transport jar, and the RESTful access is normally used.</p> <h1 id="problem-the-swagger-body-parameter-type-is-incorrectly-defined-resulting-in-no-content-information-for-the-content-registered-by-the-service-center">Problem: The swagger body parameter type is incorrectly defined, resulting in no content information for the content registered by the service center.</h1> <p><strong>Symptom:</strong></p> <p>Define the following interface, put the parameters into the body to pass</p> <pre><code>/testInherate: post: operationId: &quot;testInherate&quot; parameters: - in: &quot;body&quot; name: &quot;xxxxx&quot; required: false type: string responses: 200: description: &quot;response of 200&quot; schema: $ref: &quot;#/definitions/ReponseImpl&quot; </code></pre> <p>Define the interface in the above way. After the service is registered, the interface type: a string that is queried from the service center is lost and becomes:</p> <pre><code>/testInherate: post: operationId: &quot;testInherate&quot; parameters: - in: &quot;body&quot; name: &quot;xxxxx&quot; required: false responses: 200: description: &quot;response of 200&quot; schema: $ref: &quot;#/definitions/ReponseImpl&quot; </code></pre> <p>If the client does not place a swagger, the following exception is also reported:</p> <p>Caused by: java.lang.ClassFormatError: Method "testInherate" in class ? has illegal signature. "</p> <p><strong>Solution:</strong></p> <p>When defining the type of the body parameter, you can't use type directly instead use the schema.</p> <pre><code>/testInherate: post: operationId: &quot;testInherate&quot; parameters: - in: &quot;body&quot; name: &quot;request&quot; required: false schema: type: string responses: 200: description: &quot;response of 200&quot; schema: $ref: &quot;#/definitions/ReponseImpl&quot; </code></pre> <h1 id="problem-does-the-microservices-framework-service-call-use-long-live-connection">Problem: Does the microservices framework service call use long live connection?</h1> <p><strong> Solution:</strong></p> <p>Http uses a long connection (with a timeout), and the highway mode uses a long connection (always on).</p> <h1 id="problem-when-the-service-is-disconnected-from-the-service-center-will-the-registration-information-be-deleted-automatically">Problem: When the service is disconnected from the service center, will the registration information be deleted automatically?</h1> <p><strong> Solution:</strong></p> <p>The service center heartbeat detects that the service instance is unavailable, only the service instance information is removed, and the static data of the service is not removed.</p> <h1 id="problem-how-does-the-microservices-framework-achieve-transparent-transmission-of-data-between-multiple-microservices">Problem: How does the microservices framework achieve transparent transmission of data between multiple microservices?</h1> <p><strong> Solution:</strong></p> <p>Transmitting data into:</p> <pre><code class="language-java">CseHttpEntity&lt;xxxx.class&gt; httpEntity = new CseHttpEntity&lt;&gt;(xxx); //Transmission content httpEntity.addContext(&quot;contextKey&quot;,&quot;contextValue&quot;); ResponseEntity&lt;String&gt; responseEntity = RestTemplateBuilder.create().exchange(&quot;cse://springmvc/springmvchello/sayhello&quot;,HttpMethod.POST,httpEntity,String.class); </code></pre> <p>Transparent data acquisition:</p> <pre><code class="language-java">@Override @RequestMapping(path=&quot;/sayhello&quot;,method = RequestMethod.POST) public String sayHello(@RequestBody Person person,InvocationContext context){ //Transparent data acquisition context.getContext(); return &quot;Hello person &quot; + person.getName(); } </code></pre> <h1 id="problem-how-the-microservices-framework-service-customizes-the-return-status-code">Problem: How the microservices framework service customizes the return status code</h1> <p><strong> Solution:</strong></p> <pre><code class="language-java">@Override @RequestMapping(path = &quot;/sayhello&quot;,method = RequestMethod.POST) public String sayHello(@RequestBody Person person){ InvocationContext context = ContextUtils.getInvocationContext(); //自定义状态码 context.setStatus(Status.CREATED); return &quot;Hello person &quot;+person.getName(); } </code></pre> <h1 id="problem-partial-exposure-of-body-model">Problem: Partial exposure of body Model</h1> <p><strong> Solution:</strong></p> <p>In the body object corresponding to an interface, there may be some attributes that are internal. Do not want to open it. Do not bring it out when generating the schema. Use:</p> <pre><code class="language-java">@ApiModelProperty(hidden = true) </code></pre> <h1 id="problem-the-framework-obtains-the-address-of-the-remote-consumer">Problem: The framework obtains the address of the remote consumer</h1> <p><strong> Solution:</strong></p> <p>If you use the http rest method (using the transport-rest-vertx dependency) you can get it in the following way:</p> <pre><code class="language-java">HttpServletRequest request = (HttpServletRequest) invocation.getHandlerContext().get(RestConst.REST_REQUEST); String host = request.getRemoteHost(); </code></pre> <p>The actual scene is to take the external address, so it should be LB passed to edgeservice, and edgeService is then passed to the context and passed.</p> <h1 id="problem-description-of-the-handler">Problem: Description of the handler</h1> <p><strong> Solution:</strong></p> <p>Consumer default handler is simpleLB, and the handler chain will use this when there is no configuration, if the handler is configured, it must contain the lb handler. Otherwise the call error, need to be described in the document.</p> <h1 id="problem-netty-version-problem">Problem: Netty version problem</h1> <p><strong> Solution:</strong></p> <p>Netty3 and netty4 are completely different tripartites because the coordinates are not the same as the package, so they can coexist, but pay attention to the minor version problem, the version that the small version must use.</p> <h1 id="problem-service-timeout-settings">Problem: Service Timeout Settings</h1> <p><strong> Solution:</strong></p> <p>Add the following configuration to the microservice description file (microservice.yaml):</p> <pre><code>servicecomb: request: timeout: 30000 </code></pre> <h1 id="problem-is-there-a-required-for-the-processing-chains-sequence-of-service-governance">Problem: Is there a required for the processing chain's sequence of service governance?</h1> <p><strong>Solution:</strong></p> <p>The order of the processing chains is different, and the system works differently. List the common questions below.</p> <p>1, loadbalance and bizkeeper-consumer</p> <p>These two sequences can be combined randomly. But the behavior is different.</p> <p>When loadbalance is in the front, the retry function provided by loadbalance will occur when bizkeeper-consumer throws an exception, such as timeout. But if you have done a fallback policy configuration, such as return null, then loadbalance will not retry.</p> <p>If loadbalance is behind, the retry will extend the timeout. Even if the retry is successful, if the timeout period set by bizkeeper-consumer is not enough, the final call result will also fail.</p> <p>2, tracing-consumer, sla-consumer, tracing-provider, sla-provider</p> <p>These processing chains are recommended to be placed at the very beginning of the processing chain to ensure that the success and failure of the log can be recorded (because the log requires IP and other information, for consumers, can only be placed behind the loadbalance).</p> <p>If you do not need to record the exception returned by the client, you can put it to the end and only pay attention to the error returned by the network layer. However, if the bizkeeper-consumer timeout returns earlier, the log may not be logged.</p> <ol> <li>Suggested order</li> </ol> <p>Consumer: loadbalance, tracing-consumer, sla-consumer, bizkeeper-consumer</p> <p>Provider: tracing-provider, sla-provider, bizkeeper-provider</p> <p>This order is sufficient for most scenarios and is not easy to cause errors.</p> <h1 id="problem-the-meaning-of-config-item-servicecombuploadsmaxsize-in-file-uploading">Problem: the meaning of config item servicecomb.uploads.maxSize in file uploading</h1> <p>config item: servicecomb.uploads.maxSize</p> <p>meaning: The maximum allowable size of http body in bytes, the default value of -1 means unlimited.</p> </div> </div><footer> <div class="rst-footer-buttons" role="navigation" aria-label="Footer Navigation"> <a href="../../references-handlers/publickey/" class="btn btn-neutral float-left" title="Public key authentication"><span class="icon icon-circle-arrow-left"></span> Previous</a> <a href="../faq/" class="btn btn-neutral float-right" title="FAQ">Next <span class="icon icon-circle-arrow-right"></span></a> </div> <hr/> <div role="contentinfo"> <!-- Copyright etc --> </div> Built with <a href="https://www.mkdocs.org/">MkDocs</a> using a <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. </footer> </div> </div> </section> </div> <div class="rst-versions" role="note" aria-label="Versions"> <span class="rst-current-version" data-toggle="rst-current-version"> <span><a href="../../references-handlers/publickey/" style="color: #fcfcfc">&laquo; Previous</a></span> <span><a href="../faq/" style="color: #fcfcfc">Next &raquo;</a></span> </span> </div> <script>var base_url = '../..';</script> <script src="../../js/theme_extra.js" defer></script> <script src="../../js/theme.js" defer></script> <script src="../../search/main.js" defer></script> <script defer> window.onload = function () { SphinxRtdTheme.Navigation.enable(true); }; </script> </body> </html>