微服务、服务注册中心、API 网关和数据共享

     2023-03-08     214

关键词:

【中文标题】微服务、服务注册中心、API 网关和数据共享【英文标题】:Microservice, service registry, API gateway and data sharing 【发布时间】:2015-06-22 12:47:06 【问题描述】:

我实际上正在阅读有关微服务架构的文章,但是,似乎他们正在以最简单的方式处理事情,没有深入解释。

为了向你解释我的问题,我将向你展示我的实际小架构:

所以,这就是我想要使用的。在技​​术上做任何事情之前,我需要更多的理论信息。

我的域的描述

我有一些基于移动设备和浏览器的客户,他们能够在应用程序上连接自己,获取他们的用户信息,并能够查阅有关他们所购买商品的账单信息。

在单体应用程序中,我会使用这种架构: - 使用 Mobile / Angular-Ember 的表示层 - 带有 REST API 的业务层,前面有 NGINX - 带有标准 MySQL 数据库的 DAL - 可扩展性仅适用于 X 轴

在这种情况下,我想使用微服务架构,因为它具有“域可扩展性”且非常灵活(当然还需要了解更多相关知识)。

在架构上,在每个服务中,只有相关 API 公开的 HTTP URL。

问题

a/在(1)flux中,“移动”在http://myDomain.or/auth上发送一个http请求。

在我看来,APIGateway 能够询问标准服务注册中心(Eureka、ZooKeeper 或其他东西)是否能够找到 AuthSrv 是否可访问并可以检索他的网络地址。然后 ApiGateway 可以请求 AuthSrv 并响应服务器

这是让它发挥作用的好方法吗?处理 X 台机器访问数据时不会有延迟问题吗?

b/ 通量 (2) 咨询服务注册表。服务注册中心如何理解 /auth 上的每个请求,甚至是 /auth/other 等子 url 上的每个请求(如果它被暴露)都与此地址 ip:port 上的此服务相关?

c/ 通量 (3) 表明服务注册表具有可用的 AuthSrv。 (3 bis) 显示另一个:没有可用的 AuthSrv。在一个小的应用程序中,我们可以承认我们失去了一些责任,但在一个大系统中,数百个服务链接,我们如何处理服务缺陷?

d/在另一篇文章中,我询问如何存储帐单信息,因为它与用户相关,来自另一个服务和另一个数据库。

在标准架构中我会:


   billingInformations:...,
   billingUser:ObjectId("userId")

在微服务架构中,有人推荐使用:


    billingInformations:...,
    billingUser:"/user/12365" // URL corresponding the the user Resource in the other service

这是处理“服务数据共享”而不是耦合服务的最佳方式吗?

e/在这种特定情况下,我什么时候应该更喜欢使用 AMQP 协议而不是 HTTP 协议?

感谢提前

【问题讨论】:

例如 Spotify 使用 Protobuf 和 ZeroMQ 的组合。通过 HTTP 进行的通信很快就成为了瓶颈。 【参考方案1】:

一个/

不,像 Zookeeper 这样的服务注册中心在内存中,保证了高吞吐量和低延迟。

b/

在像 Zookeeper 这样的服务注册表中,您可以创建文件系统路径,比如注册服务。例如 /App1/Service1 和 /App1/Service2

c/

不太清楚是什么问题。

d/

有人推荐的模式是HATEOAS 模式,推荐用于 API 响应。

e/

仅当服务之间需要通信时才需要 AMQP。永远不应该直接从一个服务直接调用另一个服务的 API。

编辑

c/

在这种情况下,您需要实现回退逻辑。例如,如果服务不可用、超时或任何其他故障,则需要采取一些措施。像 Netflix 的 Hystrix 这样的工具有助于实现这一目标。

e/

通信模式必须是对称的而不是不对称的。就像下面一样,

这种模式将实现微服务之间的松散耦合,从而实现灵活性。

【讨论】:

关于 e/ 因此,如果我想通过计费服务访问我的完整用户信息,我必须使用 AMQP 与相应的用户(HATEOS 格式)推送请求,并子相关的响应?关于 c/,我的意思是,如果我没有在 /auth 的服务注册表中注册服务,我该如何处理该错误?感谢提前

springcloud微服务二:api网关springcloudzuul

前言:本章将继续上一章SpringCloud微服务,本章主要内容是API网关,相关代码将延续上一章,如需了解请参考:SpringCloud微服务一:Consul注册中心Springcloudzuul概览zuul是netflix开源的一个APIGateway服务器,本质上是一个webservlet应用。Zuu... 查看详情

微服务方式实现双重网关

...一网关体系。备注:其中的统一网关、业务网关、业务微服务都是微服务的模式注册到微服务中心。这个网关采用zuul来进行网关过滤及路由,其中过滤规则由各个业务网关以微服务方式提供,通过Feign来调用,这个方式也是区别... 查看详情

微服务概述

微服务中的相关概念1服务注册与发现服务注册:服务实例将自身服务信息注册到注册中心。这部分服务信息包括服务所在主机IP和提供服务的Port,以及暴露服务自身状态以及访问协议等信息。服务发现:服务实例请求注册中心... 查看详情

关于微服务

一、微服务架构特点(1)服务服务力度:粒度是围绕业务进行拆分的。(2)独立进程:任何一个微服务从它的开发,测试,上线,以及运维等过程都可以独立的进行,不依赖以其他的微服务。(3)围绕业务建模:微服务架构是... 查看详情

API 网关可以动态查找在服务注册表上注册的微服务的 URI 吗?

】API网关可以动态查找在服务注册表上注册的微服务的URI吗?【英文标题】:CananAPIGatewayfindURIsofmicroservicesregisteredonaServiceRegistrydynamically?【发布时间】:2021-05-2908:59:51【问题描述】:我正在使用SpringBoot,并且我有一个Eureka服务... 查看详情

springcloud整合swagger统一服务api(代码片段)

Swagger整合多个微服务统一API接口文档单系统SpringBoot整合Swagger或者Swagger注解介绍 请看另一篇文章Swagger(丝袜哥)快速入门(超详细介绍)准备工具1. 自己搭建准备好微服务环境2.里面至少包含一个注册中心,一个网关... 查看详情

流量调度微服务可寻址性和注册中心(代码片段)

...观且无感的(DNS+Nginx就可以完成一次流量调度)。演进到微服务结构(服务粒度变得更细、服务伸缩更灵活(上下线更加频繁),团队松耦合),流量调度并没有消失,而是变得更加复杂。关键名词解释1.控制平面/数据平面控制平面... 查看详情

注册配置微服务治理云原生网关三箭齐发,阿里云mse持续升级

背景注册中心是日常使用频率很高的微服务组件,通过较低的资源溢价帮助客户缩短微服务的构建周期、提升可用性;微服务治理实现了0门槛就能接入全链路灰度、无损上下线、限流降级、环境隔离、数据库治理等能力&... 查看详情

服务治理平台-注册中心

...多,持续部署困难,启动时间变慢等问题慢慢凸显时,微服务架构应运而生。微服务架构可以解决单体架构各种局限性问题。微服务架构:开发高可用企业应用,后端需要支持多种客户端形式,比如桌面端,移动端及其他微服务... 查看详情

领事与 API 网关

...问一下Consul和APIGateway的功能。Consul可以代替APIGateway作为服务的引用者吗?或者在微服务架构方面如何使用它们?谢谢【问题讨论】:【参考方案1】:Consul是多数据中心服务发现(+健康检查)和分布式K/V存储。APIGateway是一项服... 查看详情

API网关和微服务认证

】API网关和微服务认证【英文标题】:APIgatewayandmicroserviceauthentication【发布时间】:2018-01-0619:35:11【问题描述】:API网关和微服务的工作原理。谁能用网关解释一下微服务架构的基本流程。我找不到正确的答案。假设我们在不同... 查看详情

alibaba微服务组件nacos注册中心

Alibaba微服务组件Nacos注册中心什么是NacosNacos注册中心注册中心配置项详解什么是Nacos官方概念:一个易于构建云原生应用的动态服务发现(NacosDiscovery)、服务配置(NacosConfig)和服务管理平台。Nacos的关键特性包括:1》服务发... 查看详情

微服务之:从零搭建ocelot网关和consul集群(代码片段)

原文:微服务之:从零搭建ocelot网关和consul集群介绍 微服务中有关键的几项技术,其中网关和服务服务发现,服务注册相辅相成。首先解释几个本次教程中需要的术语网关 Gateway(APIGW/API网关),顾名思义,是企业IT在系统... 查看详情

oauth2.0实现分布式认证授权-注册中心eureaka搭建(代码片段)

一架构说明所有微服务的请求都经过网关,网关从注册中心读取微服务的地址,将请求转发至微服务。1、UAA认证服务负责认证授权。2、所有请求经过网关到达微服务3、网关负责鉴权客户端以及请求转发4、网关将token解... 查看详情

数据复制或 API 网关聚合:使用微服务选择哪一个?

】数据复制或API网关聚合:使用微服务选择哪一个?【英文标题】:DatareplicationorAPIGatewayAggregation:whichonetochooseusingmicroservices?【发布时间】:2021-07-3109:38:15【问题描述】:例如,假设我正在构建一个简单的社交网络。我目前有两... 查看详情

去中心化的api网关是否就是servicemesh?

...然是一种中心化的架构,如果不希望中心化你可以走服务注册中心来实现服务注册发现和服务请求。最近出现一个新的概念APIGatewayMesh,个人感觉这个概念不太合适。不合适的原因就是在API网 查看详情

springcloud——微服务网关介绍

...应用架构变为下图所示。当引入API网关后,在用户端与微服务之间建立了一道屏障,通过API网关对微服务提供了统一的访问入口,所有用户端的请求被API网关拦截,并在此基础上可以实现额外的功能:OpenResty是一个强大的Web应用... 查看详情

API网关和微服务通信

】API网关和微服务通信【英文标题】:APIgatewayandmicroservicescommunication【发布时间】:2019-10-0106:17:09【问题描述】:我正在构建微服务架构,我需要沟通方面的帮助。API网关与服务通信的最佳方法是什么?我的API网关将是graphqlapoll... 查看详情