Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
wushizhenking
advanced-java
提交
e51b033e
A
advanced-java
项目概览
wushizhenking
/
advanced-java
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
A
advanced-java
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
e51b033e
编写于
10月 03, 2020
作者:
Y
yanglbme
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
docs: improve document and close #194
上级
33dcf1b9
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
17 addition
and
16 deletion
+17
-16
docs/micro-services/huifer-what's-microservice-how-to-communicate.md
...services/huifer-what's-microservice-how-to-communicate.md
+17
-16
未找到文件。
docs/micro-services/huifer-what's-microservice-how-to-communicate.md
浏览文件 @
e51b033e
# 什么是微服务?微服务之间是如何独立通讯的?
-
Author
:
[
HuiFer
](
https://github.com/huifer
)
-
Description
:
介绍微服务的定义以及服务间的通信。
-
Author
:
[
HuiFer
](
https://github.com/huifer
)
-
Description
:
介绍微服务的定义以及服务间的通信。
## 什么是微服务
-
微服务架构是一个分布式系统
, 按照业务进行划分成为不同的服务单元,
解决单体系统性能等不足。
-
微服务架构是一个分布式系统
,按照业务进行划分成为不同的服务单元,
解决单体系统性能等不足。
-
微服务是一种架构风格,一个大型软件应用由多个服务单元组成。系统中的服务单元可以单独部署,各个服务单元之间是松耦合的。
> 微服务概念起源
:
[Microservices](https://martinfowler.com/articles/microservices.html)
> 微服务概念起源
:
[Microservices](https://martinfowler.com/articles/microservices.html)
## 微服务之间是如何独立通讯的
...
...
@@ -16,10 +16,10 @@
#### REST HTTP 协议
REST 请求在微服务中是最为常用的一种通讯方式
,
它依赖于 HTTP
\H
TTPS 协议。RESTFUL 的特点是:
REST 请求在微服务中是最为常用的一种通讯方式
,
它依赖于 HTTP
\H
TTPS 协议。RESTFUL 的特点是:
1.
每一个 URI 代表 1 种资源
2.
客户端使用 GET、POST、PUT、DELETE 4 个表示操作方式的动词对服务端资源进行操作
: GET 用来获取资源, POST 用来新建资源(也可以用于更新资源), PUT 用来更新资源,
DELETE 用来删除资源
2.
客户端使用 GET、POST、PUT、DELETE 4 个表示操作方式的动词对服务端资源进行操作
:GET 用来获取资源,POST 用来新建资源(也可以用于更新资源),PUT 用来更新资源,
DELETE 用来删除资源
3.
通过操作资源的表现形式来操作资源
4.
资源的表现形式是 XML 或者 HTML
5.
客户端与服务端之间的交互在请求之间是无状态的,从客户端到服务端的每个请求都必须包含理解请求所必需的信息
...
...
@@ -60,15 +60,16 @@ public class RestDemo{
RPC(Remote Procedure Call)远程过程调用,简单的理解是一个节点请求另一个节点提供的服务。它的工作流程是这样的:
1
\.
执行客户端调用语句,传送参数
2
\.
调用本地系统发送网络消息
3
\.
消息传送到远程主机
4
\.
服务器得到消息并取得参数
5
\.
根据调用请求以及参数执行远程过程(服务)
6
\.
执行过程完毕,将结果返回服务器句柄
7
\.
服务器句柄返回结果,调用远程主机的系统网络服务发送结果
8
\.
消息传回本地主机
9
\.
客户端句柄由本地主机的网络服务接收消息 10. 客户端接收到调用语句返回的结果数据
1.
执行客户端调用语句,传送参数
2.
调用本地系统发送网络消息
3.
消息传送到远程主机
4.
服务器得到消息并取得参数
5.
根据调用请求以及参数执行远程过程(服务)
6.
执行过程完毕,将结果返回服务器句柄
7.
服务器句柄返回结果,调用远程主机的系统网络服务发送结果
8.
消息传回本地主机
9.
客户端句柄由本地主机的网络服务接收消息
10.
客户端接收到调用语句返回的结果数据
举个例子。
...
...
@@ -287,4 +288,4 @@ public class RunTest {
#### 消息中间件
常见的消息中间件有 Kafka、ActiveMQ、RabbitMQ、RocketMQ
,
常见的协议有 AMQP、MQTTP、STOMP、XMPP。这里不对消息队列进行拓展了,具体如何使用还是请移步官网。
常见的消息中间件有 Kafka、ActiveMQ、RabbitMQ、RocketMQ
,
常见的协议有 AMQP、MQTTP、STOMP、XMPP。这里不对消息队列进行拓展了,具体如何使用还是请移步官网。
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录