<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title>Trpc - 标签 - 研发日志 · R&amp;D Log</title><link>https://rd163.visword.com/tags/trpc/</link><description>Trpc - 标签 - 研发日志 · R&amp;D Log</description><generator>Hugo -- gohugo.io</generator><language>zh-CN</language><managingEditor>whutluohui@gmail.com (小智晖)</managingEditor><webMaster>whutluohui@gmail.com (小智晖)</webMaster><copyright>本作品采用知识共享署名-非商业性使用 4.0 国际许可协议进行许可。</copyright><lastBuildDate>Wed, 09 Jul 2025 00:00:00 +0800</lastBuildDate><atom:link href="https://rd163.visword.com/tags/trpc/" rel="self" type="application/rss+xml"/><item><title>trpc/brpc/grpc协议设计</title><link>https://rd163.visword.com/posts/proto_disign_for_trpc_grpc_brpc/</link><pubDate>Wed, 09 Jul 2025 00:00:00 +0800</pubDate><author><name>小智晖</name></author><guid>https://rd163.visword.com/posts/proto_disign_for_trpc_grpc_brpc/</guid><description><![CDATA[<h2 id="trpc" class="headerLink">
    <a href="#trpc" class="header-mark"></a>trpc</h2><ul>
<li><a href="https://github.com/trpc-group/trpc/blob/main/docs/zh/trpc_protocol_design.md" target="_blank" rel="noopener noreferrer">tRPC协议设计</a></li>
<li><a href="https://github.com/trpc-group/trpc/blob/main/trpc/trpc.proto" target="_blank" rel="noopener noreferrer">trpc.proto</a></li>
</ul>
<h2 id="grpc" class="headerLink">
    <a href="#grpc" class="header-mark"></a>grpc</h2><p>四种通信模式实现​​:</p>
<p>​- ​Unary RPC​​：单一请求对应单一响应（类似传统 HTTP 请求）。
​​- Server Streaming​​：服务端通过同一流发送多个响应。
​​- Client Streaming​​：客户端通过同一流发送多个请求。
​​- Bidirectional Streaming​​：全双工通信，双方可异步发送消息（基于 HTTP/2 流控机制）。</p>]]></description></item><item><title>trpc微服务寻址方案设计</title><link>https://rd163.visword.com/posts/trpc-service-addressing-scheme-design/</link><pubDate>Sun, 01 Jun 2025 00:00:00 +0800</pubDate><author><name>小智晖</name></author><guid>https://rd163.visword.com/posts/trpc-service-addressing-scheme-design/</guid><description><![CDATA[<h2 id="服务命名" class="headerLink">
    <a href="#%e6%9c%8d%e5%8a%a1%e5%91%bd%e5%90%8d" class="header-mark"></a>服务命名</h2><p>tRPC在服务命名上定义了以下3个纬度信息：</p>
<ul>
<li>app名（应用名），表示某个业务系统的名称，用于标识某个业务下不同服务模块的一个集合；</li>
<li>server名（模块名），表示具体服务模块的名称，一般也称为模块的进程名称；</li>
<li>service名，表示具体服务提供者的名称，一般使用proto文件定义的Service名称； 其中app.server 的组合在全局上要具备唯一性。</li>
</ul>
<p>服务命名这样定义的好处是：</p>]]></description></item><item><title>trpc-cpp流式服务</title><link>https://rd163.visword.com/posts/trpc-cpp-stream-service/</link><pubDate>Tue, 01 Apr 2025 00:00:00 +0800</pubDate><author><name>小智晖</name></author><guid>https://rd163.visword.com/posts/trpc-cpp-stream-service/</guid><description><![CDATA[<h2 id="流式应用场景" class="headerLink">
    <a href="#%e6%b5%81%e5%bc%8f%e5%ba%94%e7%94%a8%e5%9c%ba%e6%99%af" class="header-mark"></a>流式应用场景</h2><ul>
<li>大规模数据包。 比如，有一个大文件需要传输。 使用流式 RPC 时，客户端分片读出文件内容后直接写入到流中，服务端可以按客户端写入顺序读取到文件分片内容，然后执行业务逻辑。 如果使用单次 RPC，需要多次调用RPC方法，会遇到分包、组包、乱序、业务逻辑上下文切换等问题。</li>
<li>实时场景。 比如，股票行情走势，资讯 Feeds 流。 服务端接收到消息后，需要往多个客户端进行实时消息推送，流式 RPC 可以在一次 RPC 调用过程中，推送完整的消息列表。</li>
<li>Istio、Envoy、Nacos 等项目，内部都是用 gRPC 作为通信协议来实现控制平面</li>
</ul>
<h2 id="三种流式-rpc-方法" class="headerLink">
    <a href="#%e4%b8%89%e7%a7%8d%e6%b5%81%e5%bc%8f-rpc-%e6%96%b9%e6%b3%95" class="header-mark"></a>三种流式 RPC 方法</h2><p>tRPC 协议的流式 RPC 分为三种类型：</p>]]></description></item></channel></rss>