<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>架构 on Chen Shungen</title><link>https://chenshungen.cn/tags/%E6%9E%B6%E6%9E%84/</link><description>Recent content in 架构 on Chen Shungen</description><generator>Hugo</generator><language>zh-cn</language><lastBuildDate>Tue, 14 Apr 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://chenshungen.cn/tags/%E6%9E%B6%E6%9E%84/index.xml" rel="self" type="application/rss+xml"/><item><title>分布式系统设计要点</title><link>https://chenshungen.cn/blog/distributed-systems/</link><pubDate>Tue, 14 Apr 2026 00:00:00 +0000</pubDate><guid>https://chenshungen.cn/blog/distributed-systems/</guid><description>&lt;h2 id="分布式系统的核心挑战">分布式系统的核心挑战&lt;/h2>
&lt;p>分布式系统面临的根本挑战可以用 CAP 定理来概括——一致性（Consistency）、可用性（Availability）、分区容错性（Partition Tolerance）三者不可兼得。&lt;/p>
&lt;p>在实际工程中，我们几乎总是需要保证分区容错性，因此核心的权衡在于：&lt;/p>
&lt;ul>
&lt;li>&lt;strong>CP 系统&lt;/strong>：优先一致性，如 ZooKeeper、etcd&lt;/li>
&lt;li>&lt;strong>AP 系统&lt;/strong>：优先可用性，如 Cassandra、DynamoDB&lt;/li>
&lt;/ul>
&lt;h2 id="服务间通信">服务间通信&lt;/h2>
&lt;p>常见的服务间通信方式：&lt;/p>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>方式&lt;/th>
 &lt;th>适用场景&lt;/th>
 &lt;th>优势&lt;/th>
 &lt;th>劣势&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>gRPC&lt;/td>
 &lt;td>内部服务调用&lt;/td>
 &lt;td>高性能、强类型&lt;/td>
 &lt;td>调试不如 REST 方便&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>REST&lt;/td>
 &lt;td>外部 API&lt;/td>
 &lt;td>通用、易理解&lt;/td>
 &lt;td>性能较低&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>消息队列&lt;/td>
 &lt;td>异步解耦&lt;/td>
 &lt;td>削峰、解耦&lt;/td>
 &lt;td>复杂度增加&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;h2 id="关键设计原则">关键设计原则&lt;/h2>
&lt;ol>
&lt;li>&lt;strong>幂等性&lt;/strong>：所有写操作都应该是幂等的&lt;/li>
&lt;li>&lt;strong>超时与重试&lt;/strong>：设置合理的超时，使用指数退避重试&lt;/li>
&lt;li>&lt;strong>熔断降级&lt;/strong>：防止级联故障&lt;/li>
&lt;li>&lt;strong>可观测性&lt;/strong>：日志、指标、链路追踪三者缺一不可&lt;/li>
&lt;/ol>
&lt;h2 id="总结">总结&lt;/h2>
&lt;p>分布式系统没有银弹。好的系统设计来自对业务场景的深入理解和对技术取舍的清晰认识。&lt;/p></description></item></channel></rss>