Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >微服务架构中不同服务之间是如何通信的?

微服务架构中不同服务之间是如何通信的?

提问于 2018-05-30 21:54:53
回答 7关注 0查看 7K

微服务架构就是把一个大型的单个应用程序和服务拆分为数个甚至数十个的支持微服务。但是这些服务之间是如何通信的呢?

回答 7

彼岸轮回

发布于 2018-06-01 08:28:15

微服务能解决了单体应用以及SOA带来的的问题,但是微服务使整个应用服务增多,服务间通讯更复杂,也会带来大量 的问题。比如单体如何拆分成多个微服务,团队间沟通更多,运维成本增高,分布式事务问题,依赖管理变得复杂,测试 更加困难,故障更难于定位等等。

微服务架构能够解决单体架构带来的问题。但是在微服务架构中,一个整体的程序被拆分为许多子微服务。每个微服务实现某一个单一的功能,但是这使得应用程序的应用服务变多,这就使得这些微服务程序之间的通信变得十分复杂。而在程序运行过程中存在着大量的业务逻辑,这往往需要各个微服务之间交换大量的数据。这就带来了许多微服务通信的问题。但是微服务之间是如何通信的呢?

1、客户端到服务端通信,API Gateway方法。

API Gateway是解决微服务通信的一个不错的方法。以客户端为例。一个客户端可以向多个微服务中的任意一个微服务发出请求。API Gateway负责请求转发、合成和协议转换。所有请求都要先经过API Gateway,然后再将请求转发到对应的微服务中。

2、进程通信IPC

这种通信不但可以实现一对一、一对多。还可以实现同步和异步请求。

狼人老沙

发布于 2018-06-01 08:15:19

微服务架构框架图
微服务架构框架图

一般来说。传统的架构风格是将应用程序作为一个整体进行开发。这样的架构风格在开发过程非常容易而且不同模块之间通信十分方便,只需要一个简单的函数就可以实现。但是这也存在很多缺点,比如,这样的应用在开发之后很难进行维护。如果业务需求有所变化很难有所调整。

于是微服务架构开始逐渐被大多数开发者所接受。微服务架构是将一个整体的应用程序拆分为一个或者多个子微服务组成。这些子微服务可以被独立的部署,每个微服务专一地实现某一个功能。这使得应用更加便于管理。

这些微服务之间的通讯是使用异步、基于消息的通信。

不会飞的蝴蝶

发布于 2018-06-01 08:41:49

不是很理解微服务架构。。。。。

和开发者交流更多问题细节吧,去 写回答
相关文章
如何解决服务之间的通信问题?
[1]HTTP REST方式 使用http协议进行数据传递 json格式数据 [2]RPC方式 远程过程调用 二进制数据 从OSI七层结构来讲,即物理层、数据链路层、网络层、运输层、会话层、表示层、应用层。http属于应用层协议,而RPC属于传输层,所以RPC方式的传输效率比http高。SpringCloud使用的是HTTP协议传递数据。
别团等shy哥发育
2023/02/25
8130
如何解决服务之间的通信问题?
直播代码是如何工作的,不同服务器之间的区别
简单来说直播的原理就是把主播录好的内容实时推送到服务器,再由服务器分发给各个用户进行观看。直播发展到如今,由PC端的网页版直播到如今的移动端直播,越来越多直播功能的APP上线,直播的服务器分为很多种类,那么不同的服务器之间有哪些差异呢?本文来为大家简单介绍一下。
云豹kj的晨曦
2020/07/07
1.3K0
直播代码是如何工作的,不同服务器之间的区别
微服务之间的通信的方式
RestTemplate是一个Http客户端,类似于HTTPClient,org但比HTTPClient更简单。我们通过RestTemplate来简单演示一下服务之间的调用,我们使用两个服务来做演示。一个商品服务,一个订单服务。首先创建一个商品服务工程:
端碗吹水
2020/09/24
8990
微服务架构中的进程间通信
介绍 在单体应用程序中,组件通过语言级的方法或函数调用进行彼此的调用。相比之下,基于微服务的应用程序是在多台机器上运行的分布式系统。每个服务实例通常是一个进程。因此,如下图所示,服务必须使用进程间通
用户1263954
2018/01/30
2.6K0
微服务架构中的进程间通信
在微服务之间进行通信
原文地址:https://dzone.com/articles/communicating-between-microservices
Steve Wang
2018/06/20
2.9K0
在微服务之间进行通信
java 线程之间是如何通信的
java线程之间的通信方式总共有 8 种,分别是 volatile、synchronized、interrupt、wait、notify、notifyAll、join、管道输入/输出, 我们一个一个的来说明!
shengjk1
2020/01/22
2.4K0
微服务:服务间如何通信?
在微服务架构中,会将一个完整的应用程序拆分成一组服务。这些服务之间需要经过协作,通过接口调用,才能组成一个完整的应用。
oec2003
2022/06/14
3.2K0
微服务:服务间如何通信?
大厂是如何做微服务架构的服务路由的?
负载均衡算法是为了解决服务消费者如何从众多可用服务节点中选取一个最合适的节点发起调用。
JavaEdge
2021/03/23
1.2K0
SpringCloud入门系列之微服务之间的通信
Ribbon作为消费者微服务一端,也会向注册中心进行注册,注册中心Eureka service会向消费者Ribbon提供当前注册的所有节点数据(url、端口)信息。然后根据轮循(默认)策略请求服务提供者。
AI码真香
2022/09/13
8350
「第二部:容器和微服务架构](11) 微服务架构中的通信
在单个进程上运行的单片应用程序中,组件使用语言级方法或函数调用彼此调用。如果使用代码创建对象(例如,new ClassName()),则可以强耦合这些对象;如果使用依赖注入,则可以通过引用抽象而不是具体的对象实例,以分离的方式调用这些对象。不管怎样,对象都在同一进程中运行。当从单一应用程序转变为基于微服务的应用程序时,最大的挑战在于改变通信机制。从进程内方法调用到服务的RPC调用的直接转换将导致在分布式环境中性能不佳的聊天和不高效的通信。正确设计分布式系统的挑战是众所周知的,甚至还有一个被称为分布式计算谬误的经典,它列出了开发人员在从单一设计转向分布式设计时经常做出的假设。
架构师研究会
2020/07/18
6280
微服务之间的通信你真的了解吗?
技术正在以令人难以置信的速度发展,所以看到新的技术和趋势一直在市场上形成并不奇怪。由于微服务的进步,更强大的云计算实施以及无服务器架构占据了中心位置,2018年对于开发人员来说是非常棒的一年。
Java架构师历程
2019/03/20
2.1K0
什么是微服务架构,api网关在微服务架构中具备的能力
我们要想知道API网关在微服务架构当中有什么样的能力,我们就先要去了解什么是微服务架构,其实,关于微服务架构,我相信有一些朋友是对他有过一定的了解的,因为它在我们的日常生活中,其实也是起着比较重要的作用的,能够为我们完成一些网站业务功能。下面就一起来看看什么是微服务架构,api网关在微服务架构中具备的能力 吧。
用户8715145
2021/10/19
3630
springcloud学习手册-微服务架构中的进程间通信
导读 | 通信即是连接 一、通信即是连接,事务与事务的交流就是通过通信传输的 【定义】 通信,指人与人或人与自然之间通过某种行为或媒介进行的信息交流与传递,从广义上指需要信息的双方或多方在不违背
程序源代码
2018/03/09
1.1K0
springcloud学习手册-微服务架构中的进程间通信
微服务架构究竟应该怎么进行服务通信?
今天这篇,我们主要讲解微服务架构究竟应该怎么进行服务间通信,同步通信和异步通信各有哪些问题,又应该怎么解决这些问题。
brookwang
2022/06/24
1.3K0
微服务架构中的服务发现
为什么使用服务发现? 我们假设您正在编写一些调用具有REST API或Thrift API的服务的代码。为了发送请求,您的代码需要知道服务实例的网络位置(IP地址和端口)。在运行在物理硬件上的传统应
用户1263954
2018/01/30
2.3K0
微服务架构中的服务发现
微服务架构 | 服务之间跨域问题怎么解决?
导读:跨域资源共享(cors)可以放宽浏览器的同源策略,可以通过浏览器让不同的网站和不同的服务器之间通信。
码农架构
2021/10/27
1.3K0
【微服务架构】什么是微服务? — 全面了解微服务架构
What is Microservices — Edureka 您有没有想过,什么是微服务以及扩展行业如何与它们集成,同时构建应用程序以满足客户的期望? 要了解什么是微服务,您必须了解如何将单体应用程序分解为独立打包和部署的小型微型应用程序。本文将让您清楚了解开发人员如何使用微服务根据需要扩展其应用程序。 在本文中,您将了解以下内容: 为什么是微服务? 什么是微服务? 微服务架构的特点 微服务架构的优势 设计微服务的最佳实践 使用微服务的公司 为什么是微服务? 现在,在我告诉你微服务之前,让我们看看在
架构师研究会
2022/04/24
2.6K0
【微服务架构】什么是微服务? — 全面了解微服务架构
微服务架构中的BFF到底是啥?
在《技术中台与业务中台都是啥玩意》一文中留下一个问题:BFF是啥?为啥在API网关和业务中台之间加入了一层BFF?考虑到在实际工作中,我的大部分同事都问过这个问题,这里我也总结一下进行答复。
Edison Zhou
2020/07/13
3.2K0
微服务架构中的BFF到底是啥?
什么是域名?如何利用域名解析提供不同的服务?
在日常的IT服务工作中,还是有相当一部分的客户,不明白域名的概念、域名的重要性以及域名能为企业带来什么样的便利,那么笔者就以本文来解释一下,什么是域名?以及域名在实际工作中的妙用。
IT狂人日志
2022/05/18
5.1K0
什么是域名?如何利用域名解析提供不同的服务?
与我一起学习微服务架构设计模式3—微服务架构中的进程间通信
选择合适的进程间通信机制是一个重要的架构决策,它会影响应用的可用性,甚至与事务管理相互影响。
java达人
2019/10/23
2K0

相似问题

是架构服务于业务还是业务服务于架构呢?

121

是架构服务于业务还是业务服务于架构呢?

127

面向服务的架构、微服务架构有何区别?

74.8K

使用消息传递的活动和服务之间的通信?

2749

微信开发是URL填啥? 用的是腾讯服务器?

1457
相关问答用户
腾讯云TDP | 先锋会员擅长2个领域
某公司 | 程序员擅长1个领域
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档