<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>服务调用 on Leanku</title>
    <link>https://blog.leanku.com/tags/%E6%9C%8D%E5%8A%A1%E8%B0%83%E7%94%A8/</link>
    <description>Recent content in 服务调用 on Leanku</description>
    <image>
      <url>https://blog.leanku.com/papermod-cover.png</url>
      <link>https://blog.leanku.com/papermod-cover.png</link>
    </image>
    <generator>Hugo -- gohugo.io</generator>
    <lastBuildDate>Mon, 15 Sep 2025 20:46:01 +0800</lastBuildDate><atom:link href="https://blog.leanku.com/tags/%E6%9C%8D%E5%8A%A1%E8%B0%83%E7%94%A8/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>微服务治理-服务调用</title>
      <link>https://blog.leanku.com/post/microservice/%E5%BE%AE%E6%9C%8D%E5%8A%A1%E6%B2%BB%E7%90%86-%E6%9C%8D%E5%8A%A1%E8%B0%83%E7%94%A8/</link>
      <pubDate>Mon, 15 Sep 2025 20:46:01 +0800</pubDate>
      
      <guid>https://blog.leanku.com/post/microservice/%E5%BE%AE%E6%9C%8D%E5%8A%A1%E6%B2%BB%E7%90%86-%E6%9C%8D%E5%8A%A1%E8%B0%83%E7%94%A8/</guid>
      <description>微服务治理-服务调用 微服务拆分之后，服务之间不再是进程内方法调用，而是通过网络进行通信。服务调用（Service Communication）就是研究不同服务之间如何安全、高效、可靠地进行数据交换。
一、介绍 1.1 为什么需要服务调用？ 在单体架构中：只掉调用方法，比如 $user = $this-&amp;gt;userService-&amp;gt;getUser(1);
只是一次普通的方法调用（Method Call）。
没有网络、没有序列化、没有超时、没有连接
而微服务以后：
已经变成：HTTP、TCP、gRPC
所有调用都变成：网络通信（Network Communication）
1.2 微服务调用有哪些方式？ 主要有三种：
1. HTTP REST 优点：
简单 通用 调试方便 缺点：
JSON 较大 序列化效率较低 2. RPC 看起来像：本地方法。
实际上走的是网络。
3. gRPC 底层：
HTTP/2。
Protobuf。
速度：非常快。
1.3 怎么选择调用方式？ 场景 推荐 对外 API HTTP REST 内部服务调用 gRPC 旧系统兼容 HTTP 高频通信 gRPC 即： 外部使用 HTTP。 内部使用 gRPC。
二、原理 2.1 一次 HTTP 调用发生了什么？ 业务代码 │ ▼ DNS / 服务发现 │ ▼ TCP 建立连接 │ ▼ 发送 HTTP 请求 │ ▼ User Service │ ▼ 返回 JSON 如果没有连接池。</description>
    </item>
    
  </channel>
</rss>
