<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<style type="text/css" style="display:none"><!-- p { margin-top: 0px; margin-bottom: 0px; }--></style>
</head>
<body dir="ltr" style="font-size:12pt;color:#000000;background-color:#FFFFFF;font-family:Calibri,Arial,Helvetica,sans-serif;">
<p></p>
<p cid="n2" mdtype="paragraph" class="md-end-block md-p" style="box-sizing: border-box; line-height: inherit; orphans: 4; margin: 0.8em 0px; white-space: pre-wrap; position: relative; caret-color: rgb(51, 51, 51); color: rgb(51, 51, 51); font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);">
<span md-inline="plain" class="md-plain md-expand" style="box-sizing: border-box;">Hello,</span></p>
<p cid="n3" mdtype="paragraph" class="md-end-block md-p" style="box-sizing: border-box; line-height: inherit; orphans: 4; margin: 0.8em 0px; white-space: pre-wrap; position: relative; caret-color: rgb(51, 51, 51); color: rgb(51, 51, 51); font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);">
</p>
<p cid="n4" mdtype="paragraph" class="md-end-block md-p" style="box-sizing: border-box; line-height: inherit; orphans: 4; margin: 0.8em 0px; white-space: pre-wrap; position: relative; caret-color: rgb(51, 51, 51); color: rgb(51, 51, 51); font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);">
<span md-inline="plain" class="md-plain" style="box-sizing: border-box;">I am a developer from
</span><span md-inline="em" class="md-pair-s " style="box-sizing: border-box;"><em style="box-sizing: border-box;">Beijing Xiaoju Technology Co, Ltd, China.</em></span></p>
<p cid="n4" mdtype="paragraph" class="md-end-block md-p" style="box-sizing: border-box; line-height: inherit; orphans: 4; margin: 0.8em 0px; white-space: pre-wrap; position: relative; caret-color: rgb(51, 51, 51); color: rgb(51, 51, 51); font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);">
<span md-inline="em" class="md-pair-s " style="box-sizing: border-box;"><em style="box-sizing: border-box;"><br>
</em></span></p>
<p cid="n6" mdtype="paragraph" class="md-end-block md-p" style="box-sizing: border-box; line-height: inherit; orphans: 4; margin: 0.8em 0px; white-space: pre-wrap; position: relative; caret-color: rgb(51, 51, 51); color: rgb(51, 51, 51); font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);">
<span md-inline="plain" class="md-plain" style="box-sizing: border-box;">Recently, we have make nginx(base on version 1.13.12) support thrift protocol proxing, following features are supported:
</span></p>
<ol class="ol-list" cid="n7" mdtype="list" style="box-sizing: border-box; margin: 0.8em 0px; padding-left: 30px; position: relative; caret-color: rgb(51, 51, 51); color: rgb(51, 51, 51); font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 15px; text-size-adjust: auto; background-color: rgb(255, 255, 255);">
<li class="md-list-item" cid="n8" mdtype="list_item" style="box-sizing: border-box; margin: 0px; position: relative;">
<p cid="n9" mdtype="paragraph" class="md-end-block md-p" style="box-sizing: border-box; line-height: inherit; orphans: 4; margin-right: 0px; margin-bottom: 0.5rem; margin-left: 0px; white-space: pre-wrap; position: relative;">
<span md-inline="plain" class="md-plain" style="box-sizing: border-box;">thrift proxing without idl (support thrift 0.11.0: socket transport/framed transport in strict write way)</span></p>
</li><li class="md-list-item" cid="n10" mdtype="list_item" style="box-sizing: border-box; margin: 0px; position: relative;">
<p cid="n11" mdtype="paragraph" class="md-end-block md-p" style="box-sizing: border-box; line-height: inherit; orphans: 4; margin-right: 0px; margin-bottom: 0.5rem; margin-left: 0px; white-space: pre-wrap; position: relative;">
<span md-inline="plain" class="md-plain" style="box-sizing: border-box;">tcp active health check</span></p>
</li><li class="md-list-item" cid="n12" mdtype="list_item" style="box-sizing: border-box; margin: 0px; position: relative;">
<p cid="n13" mdtype="paragraph" class="md-end-block md-p" style="box-sizing: border-box; line-height: inherit; orphans: 4; margin-right: 0px; margin-bottom: 0.5rem; margin-left: 0px; white-space: pre-wrap; position: relative;">
<span md-inline="plain" class="md-plain" style="box-sizing: border-box;">upstream keepalive connection</span></p>
</li><li class="md-list-item" cid="n14" mdtype="list_item" style="box-sizing: border-box; margin: 0px; position: relative;">
<p cid="n15" mdtype="paragraph" class="md-end-block md-p" style="box-sizing: border-box; line-height: inherit; orphans: 4; margin-right: 0px; margin-bottom: 0.5rem; margin-left: 0px; white-space: pre-wrap; position: relative;">
<span md-inline="plain" class="md-plain" style="box-sizing: border-box;">dynamic upstream</span></p>
</li><li class="md-list-item" cid="n16" mdtype="list_item" style="box-sizing: border-box; margin: 0px; position: relative;">
<p cid="n17" mdtype="paragraph" class="md-end-block md-p" style="box-sizing: border-box; line-height: inherit; orphans: 4; margin-right: 0px; margin-bottom: 0.5rem; margin-left: 0px; white-space: pre-wrap; position: relative;">
<span md-inline="plain" class="md-plain" style="box-sizing: border-box;">limiting request base on muti-variable</span></p>
</li><li class="md-list-item" cid="n18" mdtype="list_item" style="box-sizing: border-box; margin: 0px; position: relative;">
<p cid="n19" mdtype="paragraph" class="md-end-block md-p" style="box-sizing: border-box; line-height: inherit; orphans: 4; margin-right: 0px; margin-bottom: 0.5rem; margin-left: 0px; white-space: pre-wrap; position: relative;">
<span md-inline="plain" class="md-plain" style="box-sizing: border-box;">dispatching request to different upstream base on variable</span></p>
</li><li class="md-list-item" cid="n20" mdtype="list_item" style="box-sizing: border-box; margin: 0px; position: relative;">
<p cid="n21" mdtype="paragraph" class="md-end-block md-p" style="box-sizing: border-box; line-height: inherit; orphans: 4; margin-right: 0px; margin-bottom: 0.5rem; margin-left: 0px; white-space: pre-wrap; position: relative;">
<span md-inline="plain" class="md-plain" style="box-sizing: border-box;">load balance using swrr</span></p>
</li></ol>
<p cid="n22" mdtype="paragraph" class="md-end-block md-p" style="box-sizing: border-box; line-height: inherit; orphans: 4; margin: 0.8em 0px; white-space: pre-wrap; position: relative; caret-color: rgb(51, 51, 51); color: rgb(51, 51, 51); font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);">
<span md-inline="plain" class="md-plain" style="box-sizing: border-box;">Limitation:</span></p>
<ol class="ol-list" cid="n23" mdtype="list" style="box-sizing: border-box; margin: 0.8em 0px; padding-left: 30px; position: relative; caret-color: rgb(51, 51, 51); color: rgb(51, 51, 51); font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 15px; text-size-adjust: auto; background-color: rgb(255, 255, 255);">
<li class="md-list-item" cid="n24" mdtype="list_item" style="box-sizing: border-box; margin: 0px; position: relative;">
<p cid="n25" mdtype="paragraph" class="md-end-block md-p" style="box-sizing: border-box; line-height: inherit; orphans: 4; margin-right: 0px; margin-bottom: 0.5rem; margin-left: 0px; white-space: pre-wrap; position: relative;">
<span md-inline="plain" class="md-plain" style="box-sizing: border-box;">thrift protocol:</span></p>
<ol class="ol-list" cid="n26" mdtype="list" style="box-sizing: border-box; margin: 0px; padding-left: 30px; position: relative;">
<li class="md-list-item" cid="n27" mdtype="list_item" style="box-sizing: border-box; margin: 0px; position: relative;">
<p cid="n28" mdtype="paragraph" class="md-end-block md-p" style="box-sizing: border-box; line-height: inherit; orphans: 4; margin-right: 0px; margin-bottom: 0.5rem; margin-left: 0px; white-space: pre-wrap; position: relative;">
<span md-inline="plain" class="md-plain" style="box-sizing: border-box;">thrift protocol must support TMultiplexProtocol</span></p>
</li><li class="md-list-item" cid="n29" mdtype="list_item" style="box-sizing: border-box; margin: 0px; position: relative;">
<p cid="n30" mdtype="paragraph" class="md-end-block md-p" style="box-sizing: border-box; line-height: inherit; orphans: 4; margin-right: 0px; margin-bottom: 0.5rem; margin-left: 0px; white-space: pre-wrap; position: relative;">
<span md-inline="plain" class="md-plain" style="box-sizing: border-box;">transport: socket transport, framed transport in strict write way</span></p>
</li><li class="md-list-item" cid="n31" mdtype="list_item" style="box-sizing: border-box; margin: 0px; position: relative;">
<p cid="n32" mdtype="paragraph" class="md-end-block md-p" style="box-sizing: border-box; line-height: inherit; orphans: 4; margin-right: 0px; margin-bottom: 0.5rem; margin-left: 0px; white-space: pre-wrap; position: relative;">
<span md-inline="plain" class="md-plain" style="box-sizing: border-box;">protocol: binary protocol</span></p>
</li></ol>
</li><li class="md-list-item" cid="n33" mdtype="list_item" style="box-sizing: border-box; margin: 0px; position: relative;">
<p cid="n34" mdtype="paragraph" class="md-end-block md-p" style="box-sizing: border-box; line-height: inherit; orphans: 4; margin-right: 0px; margin-bottom: 0.5rem; margin-left: 0px; white-space: pre-wrap; position: relative;">
<span md-inline="plain" class="md-plain" style="box-sizing: border-box;">event mechanics</span></p>
<ol class="ol-list" cid="n35" mdtype="list" style="box-sizing: border-box; margin: 0px; padding-left: 30px; position: relative;">
<li class="md-list-item" cid="n36" mdtype="list_item" style="box-sizing: border-box; margin: 0px; position: relative;">
<p cid="n37" mdtype="paragraph" class="md-end-block md-p" style="box-sizing: border-box; line-height: inherit; orphans: 4; margin-right: 0px; margin-bottom: 0.5rem; margin-left: 0px; white-space: pre-wrap; position: relative;">
<span md-inline="plain" class="md-plain" style="box-sizing: border-box;">epoll</span></p>
</li></ol>
</li></ol>
<p cid="n38" mdtype="paragraph" class="md-end-block md-p" style="box-sizing: border-box; line-height: inherit; orphans: 4; margin: 0.8em 0px; white-space: pre-wrap; position: relative; caret-color: rgb(51, 51, 51); color: rgb(51, 51, 51); font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);">
<span md-inline="plain" class="md-plain" style="box-sizing: border-box;">Status:</span></p>
<p cid="n39" mdtype="paragraph" class="md-end-block md-p" style="box-sizing: border-box; line-height: inherit; orphans: 4; margin: 0.8em 0px; white-space: pre-wrap; position: relative; caret-color: rgb(51, 51, 51); color: rgb(51, 51, 51); font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);">
<span md-inline="plain" class="md-plain" style="box-sizing: border-box;">The program have been run online (CentOS 7.2,Linux version 3.10.0-514.16.1.el7.x86_64) for 3 months, and we are still making effort to optimize it to serving much more applications.</span></p>
<p cid="n39" mdtype="paragraph" class="md-end-block md-p" style="box-sizing: border-box; line-height: inherit; orphans: 4; margin: 0.8em 0px; white-space: pre-wrap; position: relative; caret-color: rgb(51, 51, 51); color: rgb(51, 51, 51); font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);">
<span md-inline="plain" class="md-plain" style="box-sizing: border-box;"><br>
</span></p>
<p cid="n40" mdtype="paragraph" class="md-end-block md-p" style="box-sizing: border-box; line-height: inherit; orphans: 4; margin: 0.8em 0px; white-space: pre-wrap; position: relative; caret-color: rgb(51, 51, 51); color: rgb(51, 51, 51); font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);">
</p>
<p cid="n41" mdtype="paragraph" class="md-end-block md-p" style="box-sizing: border-box; line-height: inherit; orphans: 4; margin: 0.8em 0px; white-space: pre-wrap; position: relative; caret-color: rgb(51, 51, 51); color: rgb(51, 51, 51); font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);">
<span md-inline="strong" class="md-pair-s " style="box-sizing: border-box;"><strong style="box-sizing: border-box;"><span md-inline="plain" class="md-plain" style="box-sizing: border-box;">Are you willing to accept our code as a part of open source nginx?</span></strong></span></p>
<p cid="n42" mdtype="paragraph" class="md-end-block md-p" style="box-sizing: border-box; line-height: inherit; orphans: 4; margin: 0.8em 0px; white-space: pre-wrap; position: relative; caret-color: rgb(51, 51, 51); color: rgb(51, 51, 51); font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);">
<span md-inline="strong" class="md-pair-s " style="box-sizing: border-box;"><strong style="box-sizing: border-box;"><span md-inline="plain" class="md-plain" style="box-sizing: border-box;">Hope for your replay!</span>
<span md-inline="emptyline" class="md-emptyline" style="box-sizing: border-box; display: block;">
</span></strong></span></p>
<p cid="n43" mdtype="paragraph" class="md-end-block md-p" style="box-sizing: border-box; line-height: inherit; orphans: 4; margin: 0.8em 0px; white-space: pre-wrap; position: relative; caret-color: rgb(51, 51, 51); color: rgb(51, 51, 51); font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);">
</p>
<p cid="n44" mdtype="paragraph" class="md-end-block md-p" style="box-sizing: border-box; line-height: inherit; orphans: 4; margin: 0.8em 0px; white-space: pre-wrap; position: relative; caret-color: rgb(51, 51, 51); color: rgb(51, 51, 51); font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);">
<span md-inline="plain" class="md-plain" style="box-sizing: border-box;">Thanks!</span></p>
<p cid="n45" mdtype="paragraph" class="md-end-block md-p md-focus" style="box-sizing: border-box; line-height: inherit; orphans: 4; margin: 0.8em 0px; white-space: pre-wrap; position: relative; caret-color: rgb(51, 51, 51); color: rgb(51, 51, 51); font-family: "Open Sans", "Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 15px; background-color: rgb(255, 255, 255);">
<span md-inline="plain" class="md-plain md-expand" style="box-sizing: border-box;">Junjie Wei</span></p>
<p><br>
</p>
</body>
</html>