|
1 | 1 | # 什么是微服务?微服务之间是如何独立通讯的? |
2 | 2 |
|
3 | | -- Author: [HuiFer](https://github.com/huifer) |
4 | | -- Description: 介绍微服务的定义以及服务间的通信。 |
| 3 | +- Author:[HuiFer](https://github.com/huifer) |
| 4 | +- Description:介绍微服务的定义以及服务间的通信。 |
5 | 5 |
|
6 | 6 | ## 什么是微服务 |
7 | 7 |
|
8 | | -- 微服务架构是一个分布式系统, 按照业务进行划分成为不同的服务单元, 解决单体系统性能等不足。 |
| 8 | +- 微服务架构是一个分布式系统,按照业务进行划分成为不同的服务单元,解决单体系统性能等不足。 |
9 | 9 | - 微服务是一种架构风格,一个大型软件应用由多个服务单元组成。系统中的服务单元可以单独部署,各个服务单元之间是松耦合的。 |
10 | 10 |
|
11 | | -> 微服务概念起源: [Microservices](https://martinfowler.com/articles/microservices.html) |
| 11 | +> 微服务概念起源:[Microservices](https://martinfowler.com/articles/microservices.html) |
12 | 12 |
|
13 | 13 | ## 微服务之间是如何独立通讯的 |
14 | 14 |
|
15 | 15 | ### 同步 |
16 | 16 |
|
17 | 17 | #### REST HTTP 协议 |
18 | 18 |
|
19 | | -REST 请求在微服务中是最为常用的一种通讯方式, 它依赖于 HTTP\HTTPS 协议。RESTFUL 的特点是: |
| 19 | +REST 请求在微服务中是最为常用的一种通讯方式,它依赖于 HTTP\HTTPS 协议。RESTFUL 的特点是: |
20 | 20 |
|
21 | 21 | 1. 每一个 URI 代表 1 种资源 |
22 | | -2. 客户端使用 GET、POST、PUT、DELETE 4 个表示操作方式的动词对服务端资源进行操作: GET 用来获取资源, POST 用来新建资源(也可以用于更新资源), PUT 用来更新资源, DELETE 用来删除资源 |
| 22 | +2. 客户端使用 GET、POST、PUT、DELETE 4 个表示操作方式的动词对服务端资源进行操作:GET 用来获取资源,POST 用来新建资源(也可以用于更新资源),PUT 用来更新资源,DELETE 用来删除资源 |
23 | 23 | 3. 通过操作资源的表现形式来操作资源 |
24 | 24 | 4. 资源的表现形式是 XML 或者 HTML |
25 | 25 | 5. 客户端与服务端之间的交互在请求之间是无状态的,从客户端到服务端的每个请求都必须包含理解请求所必需的信息 |
@@ -60,15 +60,16 @@ public class RestDemo{ |
60 | 60 |
|
61 | 61 | RPC(Remote Procedure Call)远程过程调用,简单的理解是一个节点请求另一个节点提供的服务。它的工作流程是这样的: |
62 | 62 |
|
63 | | -1\. 执行客户端调用语句,传送参数 |
64 | | -2\. 调用本地系统发送网络消息 |
65 | | -3\. 消息传送到远程主机 |
66 | | -4\. 服务器得到消息并取得参数 |
67 | | -5\. 根据调用请求以及参数执行远程过程(服务) |
68 | | -6\. 执行过程完毕,将结果返回服务器句柄 |
69 | | -7\. 服务器句柄返回结果,调用远程主机的系统网络服务发送结果 |
70 | | -8\. 消息传回本地主机 |
71 | | -9\. 客户端句柄由本地主机的网络服务接收消息 10. 客户端接收到调用语句返回的结果数据 |
| 63 | +1. 执行客户端调用语句,传送参数 |
| 64 | +2. 调用本地系统发送网络消息 |
| 65 | +3. 消息传送到远程主机 |
| 66 | +4. 服务器得到消息并取得参数 |
| 67 | +5. 根据调用请求以及参数执行远程过程(服务) |
| 68 | +6. 执行过程完毕,将结果返回服务器句柄 |
| 69 | +7. 服务器句柄返回结果,调用远程主机的系统网络服务发送结果 |
| 70 | +8. 消息传回本地主机 |
| 71 | +9. 客户端句柄由本地主机的网络服务接收消息 |
| 72 | +10. 客户端接收到调用语句返回的结果数据 |
72 | 73 |
|
73 | 74 | 举个例子。 |
74 | 75 |
|
@@ -287,4 +288,4 @@ public class RunTest { |
287 | 288 |
|
288 | 289 | #### 消息中间件 |
289 | 290 |
|
290 | | -常见的消息中间件有 Kafka、ActiveMQ、RabbitMQ、RocketMQ , 常见的协议有 AMQP、MQTTP、STOMP、XMPP。这里不对消息队列进行拓展了,具体如何使用还是请移步官网。 |
| 291 | +常见的消息中间件有 Kafka、ActiveMQ、RabbitMQ、RocketMQ ,常见的协议有 AMQP、MQTTP、STOMP、XMPP。这里不对消息队列进行拓展了,具体如何使用还是请移步官网。 |
0 commit comments