首页
学习
活动
专区
圈层
工具
发布

微服务架构中的服务发现

我们假设您正在编写一些调用具有REST API或Thrift API的服务的代码。为了发送请求,您的代码需要知道服务实例的网络位置(IP地址和端口)。...它提供了一个用于管理服务实例注册和查询可用实例的REST API。 Netflix Ribbon是一种IPC客户端,可与Eureka一起使用,以在可用的服务实例之间进行负载均衡请求。...更复杂的实现可以使用其HTTP API或DNS动态重新配置NGINX Plus。 某些部署环境(如Kubernetes和Marathon)在群集中的每个主机上运行代理。...它提供了一个用于注册和查询服务实例的REST API。服务实例使用POST请求注册其网络位置。每30秒,它必须使用PUT请求刷新其注册。通过使用HTTP DELETE请求或实例注册超时来删除注册。...每个Eureka服务器都运行在具有弹性IP地址的EC2实例上。 DNS TEXT记录用于存储Eureka集群配置,这是从可用性区域到Eureka服务器的网络位置列表的映射。

2.7K80

微服务简介

另一个模块可能是一个内存数据库,最适合部署到 EC2 Memory-optimized 实例。然而,由于这些模块被部署在一起,你必须在硬件选择上做出妥协。 单体应用的另一个问题是可靠性。...图 1-4 展示了如何用 Docker 将 Trip Management 服务部署到 Amazon EC2 上运行。...例如,你可以在 EC2 Compute Optimized 实例上部署一个 CPU 密集型图像处理服务,并且在 EC2 Memory-optimized 实例上部署一个内存数据库服务。...例如,使用现代框架如 Spring Boot,你只需要编写一个测试类来启动一个单体 web 应用并测试其 REST API。...在本书最后我们将看到如 NGINX 的基于软件的应用交付方式是如何在微服务级别轻松做到缓存处理、访问控制、API 度量和监控,这些可以帮助解决此问题。

56010
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    1、微服务简介

    另一个模块可能是一个内存数据库,最适合部署到 EC2 Memory-optimized 实例。然而,由于这些模块被部署在一起,您必须在硬件选择上做出妥协。 单体应用的另一个问题是可靠性。...图 1-4 展示了如何用 Docker 将 Trip Management 服务部署到 Amazon EC2 上运行。 ?...例如,您可以在 EC2 Compute Optimized 实例上部署一个 CPU 密集型图像处理服务,并且在 EC2 Memory-optimized 实例上部署一个内存数据库服务。...例如,使用现代框架如 Spring Boot,只需要编写一个测试类来启动一个单体 web 应用程序并测试其 REST API。...在本书最后我们将看到如 NGINX 的基于软件的应用交付方式是如何在微服务级别处理缓存、访问控制、API 计量和监控,这些可以帮助解决此问题。 1.6、总结 构建复杂的微服务应用程序本质上是困难的。

    83510

    4、服务发现

    4.1、为何使用服务发现 我们假设您正在编写某些代码,这些代码调用了有 REST API 或 Thrift API 的服务。为了发送一个请求,您的代码需要知道服务实例的网络位置(IP 地址与端口)。...Netflix Eureka 是一个服务注册中心,它提供了一个用于管理服务实例注册和查询可用实例的 REST API。...更复杂的实现可以使用其 HTTP API 或 DNS 动态重新配置 NGINX Plus。 某些部署环境(如 Kubernetes 和 Marathon)在群集中的每个主机上运行着一个代理。...如之前所述,Netflix Eureka 是一个很好的服务注册中心范例。它提供了一个用于注册和查询服务实例的 REST API。服务实例使用 POST 请求注册其网络位置。...每个 Eureka 服务器都运行在具有一个 Elastic IP 地址的 EC2 实例上。

    2.6K30

    Kubernetes CSI的工作原理

    只要驱动程序正确实现了 CSI API 规范,就可以在任何受支持的容器编排系统(如 Kubernetes)中使用它。...如果你使用的是为云提供商构建的驱动程序(如 AWS 上的 EBS),则驱动程序的控制器插件会与 AWS HTTPS API 通信以执行这些操作。...例如,在 AWS 中,控制器会调用 AWS API,如 ec2:CreateVolume、ec2:AttachVolume 或 ec2:CreateSnapshot 来管理 EBS 卷。...这两个 API 调用通过创建 EBS 卷并将其附加到特定实例来分配基础存储。一旦卷附加到 EC2 实例,节点插件就可以自由地对其进行格式化并在其主机的文件系统上创建一个挂载点。...事件驱动的 Sidecar 模式 既然我们知道了 CSI 插件如何在典型群集中部署,现在是时候关注 Kubernetes 如何调用每个插件来执行与 CSI 相关的操作了。

    1K10

    微服务简介

    另一个模块可能是一个内存数据库,最适合部署到 EC2 Memory-optimized 实例。然而, 由于这些模块被部署在一起,您必须在硬件选择上做出妥协。 单体应用的另一个问题是可靠性。...这使得它更容易地为特定的用户、司机、设备或者专门的用例部署不同的场景。每个后端服务暴露一个 REST API,大部分服务消费的 API 由其他服务提供。...图 1-4 展示了如何用 Docker 将 Trip Management 服务部署到 Amazon EC2 上运行。...例如,您可以在 EC2 Compute Optimized 实例上部署一个 CPU 密集型图像处理服务,并且在 EC2 Memory-optimized 实例上部署一个内存数据库服务。...例如,使用现代框架如 Spring Boot,只需要编写一个测试类来启动一个单体 web 应用程序并测试其 REST API。

    25510

    微服务简介

    例如,一个模块可能会执行CPU密集型图像处理逻辑,并且理想地部署在Amazon EC2 Compute Optimized实例中。另一个模块可能是内存数据库,最适合EC2内存优化实例。...这使得为特定用户,设备或专门用例部署不同体验更容易。 每个后端服务公开REST API,大多数服务都使用其他服务提供的API。例如,司机管理使用通知服务器告诉潜在的行程给一个可用的司机。...下图显示了在Amazon EC2上运行的Docker如何部署行程管理服务。 ? 在运行时,Trip Management服务由多个服务实例组成。每个服务实例都是一个Docker容器。...服务的前面是一个负载均衡器,如NGINX,可以跨实例分发请求。负载均衡器也可以处理其他问题,如缓存,访问控制,API测量和监视。 微服务架构模式会显著影响应用程序与数据库之间的关系。...例如,您可以在EC2 Compute Optimized实例上部署CPU密集型图像处理服务,并在EC2内存优化实例上部署内存数据库服务。

    1.3K50

    使用容器构建微服务体系结构

    由于容器可跨不同类型的基础架构移植,它们可以像在裸机服务器上一样容易地在AWS中运行,容器使代码的部署非常方便。...在 AWS 环境中,甚至可能会有不需要所有资源的微服务,即使是最小的 EC2 实例类型。这会导致过度配置并增加成本。...如果给定服务未使用 Amazon EC2 实例上的所有资源,则可以在该实例的容器中启动其他服务,这些服务将使用空闲资源。...集群由一个或多个Amazon EC2实例组成。 Amazon ECS 管理集群中运行的所有基于容器的应用程序的状态,提供遥测和日志记录,并管理集群的容量利用情况,从而实现高效的工作安排。...借助 Amazon ECS,使用 Amazon EC2 部署应用程序的所有这些基本功能都可用于基于容器的应用程序。

    2.1K51

    案例分享 | Yelp 如何在 Kubernetes 上运行 Kafka(第 2 部分 - 迁移)

    每个集群还附带一些辅助服务和作业,但其中大部分已经部署在 PaaSTA 上。然而,一些重要的管理系统直接在 Kafka 服务器上作为 cron 作业运行。...下面是一组图,说明了这一过程: 集群连接迁移 接下来,我们为集群部署了一个专用的 Cruise Control 实例,并禁用了自愈功能 。...在这一点上,我们已准备好开始将数据从 EC2 代理中移出,并利用 Cruise Control 的 API 来移除他们。请注意,这个 API 仅将分区从指定的代理移开,并不会真正停用主机。...API 发出请求,并逐一删除 EC2 代理。...为了降低这种风险,我们评估了这些实例在测试集群上的资源需求,然后为非测试 Cruise Control 实例超额配置了硬件资源。我们还确保对这些实例的健康状况进行充分的监控和警报。

    1.3K40

    分布式微服务架构概述初探

    这使得部署变得更加简单。 每个后端服务公开一个REST API,或者是特定语言的SDK,其他服务可以通过这种方式消费另一个微服务。...在这种模式下,微服务的REST API会提供给PC端或者其他终端设备消费。但是应用程序不能直接访问后端的服务。这个过程中,通信需要被一个API网关作为中介参与调解。...每对需要连通的微服务之间通过REST API互联互通,通过API网关对每个微服务的接口进行管理。 ? 在微服务架构的模式下,我们会将每个服务可以通过Docker或者VM部署在云服务器上. ?...在微服务的实例前面都搭载了负载均衡,例如NGINX。通过NGINX分配实例的请求。同时,负载均衡器还可以处理其他的问题,如缓存、访问控制、API流量监控。...同时,你可以根据你的硬件资源,进行更合理的部署。例如,你可以在EC2高计算的实例上部署CPU密集型图像处理服务,而在EC2高内存I/O的实例上部署内存数据库服务。

    1.1K30

    Chris Richardson微服务翻译:微服务介绍

    例如:模块1实现了 CPU密集型的图像处理逻辑,最适合部署到 Amazon EC2 Compute Optimized instances;而模块2需要内存数据库,更适合部署到 EC2 Memory-optimized...拆分后更方便为特定用户、设备或案例而单独部署。 每个后端服务暴露 REST API,也会调用其他服务提供的 API。...部分 REST API 也会提供给司机和乘客的移动 APP 使用,这些应用不能直接访问后端服务器,而是通过 API网关 来协调访问。API网关的职责有:负载均衡、缓存、访问控制、API计费、监控等。...下图展示了行程管理服务采用 Docker镜像部署到 AWS EC2上: ? 行程管理服务由多个实例组成,每个实例就是一个 Docker 容器。为了达到高可用,容器会在多个虚拟云主机上。...实例前是 Nginx 负载均衡,将请求分发到全部实例,也处理缓存、访问控制、API测量和监控等。 微服务架构也影响应用和数据库之间的关系。每个服务都有自身的数据库,而不与其他服务共享同一个数据库。

    1.2K120

    【微服务】微服务实战(一):微服务架构的优势与不足

    这样的拆分对于不同用户、设备和特殊应用场景部署都更容易。   每一个后台服务开放一个REST API,许多服务本身也采用了其它服务提供的API。比如,驾驶员管理使用了告知驾驶员一个潜在需求的通知服务。...一些REST API也对乘客和驾驶员采用的移动应用开放。这些应用并不直接访问后台服务,而是通过API Gateway来传递中间消息。...运行时,X轴代表运行多个隐藏在负载均衡器之后的实例,提供吞吐能力。一些应用可能还是用Z轴将服务分区。下面的图演示行程管理服务如何部署在运行于AWS EC2上的Docker上。 ?   ...运行时,行程管理服务由多个服务实例构成。每一个服务实例都是一个Docker容器。为了保证高可用,这些容器一般都运行在多个云VM上。...服务实例前是一层诸如NGINX的负载均衡器,他们负责在各个实例间分发请求。负载均衡器也同时处理其它请求,例如缓存、权限控制、API统计和监控。

    89630

    微服务架构的优势与不足

    这样的拆分对于不同用户、设备和特殊应用场景部署都更容易。   每一个后台服务开放一个REST API,许多服务本身也采用了其它服务提供的API。比如,驾驶员管理使用了告知驾驶员一个潜在需求的通知服务。...一些REST API也对乘客和驾驶员采用的移动应用开放。这些应用并不直接访问后台服务,而是通过API Gateway来传递中间消息。...运行时,X轴代表运行多个隐藏在负载均衡器之后的实例,提供吞吐能力。一些应用可能还是用Z轴将服务分区。下面的图演示行程管理服务如何部署在运行于AWS EC2上的Docker上。 ?   ...运行时,行程管理服务由多个服务实例构成。每一个服务实例都是一个Docker容器。为了保证高可用,这些容器一般都运行在多个云VM上。...服务实例前是一层诸如NGINX的负载均衡器,他们负责在各个实例间分发请求。负载均衡器也同时处理其它请求,例如缓存、权限控制、API统计和监控。

    1.1K50

    微服务模式系列之五:服务端服务发现

    在传统的分布式系统部署下,服务在固定并且已知的位置(主机与端口)运行,从而确保各服务可利用HTTP/REST或者某种RPC机制进行相互调用。...问题 服务的客户端——包括API网关或者其它服务——如何才能获取服务端实例的位置? 需求 每一服务实例都会在特定位置(主机与端口)通过HTTP/REST或者Thrift等方式发布一个远程API。...客户端向该ELB发出HTTP(S)请求(或者开启TCP连接),而ELB则在一组EC2实例中对该流量进行负载均衡。...ELB既能够对来自互联网的外部流量进行负载均衡,又能够被部署在VPC中,对内部流量进行负载均衡。ELB同样可作为Service Registry发挥作用。...EC2实例可通过API调用或者借助自动伸缩分组机制注册至ELB。 一些集群解决方案如Kubernetes以及Marathon,会在每台主机上运行一套代理,用来提供服务器端服务发现模式的路由机制。

    2K50

    Chris Richardson微服务翻译:微服务架构中的服务发现

    重构单体应用为微服务 原文链接:Service Discovery in a Microservices Architecture ---- 为什么要使用服务发现 假设我们需要通过 REST API...Netflix Eureka 实现了服务注册表,为服务注册管理和可用实例查询提供了 REST API 接口,Netflix Ribbon 是 IPC 客户端,与 Eureka 一起实现对请求的负载均衡。...代理可以根据 IP地址和端口 来路由客户端请求,透明的将客户端的请求转发到集群中某个可用的服务实例上。...Netflix Eureka 是服务注册表的范例,为服务实例的注册和查询提供了 REST API:服务实例可以通过 POST 请求来注册网络地址,每 30秒通过 PUT 去更新注册信息,也可主动通过 DELETE...Netflix 通过在每个 AWS EC2 域运行一个或多个 Eureka 服务实例来实现高可用。

    1.2K90

    主流 PaaS 平台架构:谷歌GAE、AEB、Cloud Foundry、Heroku

    GAE有自己的云平台 SDK库,使应用程序能快速地部署和运行到云上。 在这个架构下应用流量可被路由到多个版本以支持 A/B 测试。...负载均衡的后面是一组 Amazon EC2 实例,它们组成了一个自动伸缩功能组。自动伸缩功能将自动依据当前的负载情况启动冗余的 EC2 实例。...Security Group 为运行的 EC2 实例定义了防火墙策略,在默认情况下,AEB 只运行用户访问实例的 80(HTTP)端口,你可以依据业务类型定义更多的策略。...针对部署工作,它定义了一套 REST API,底层基于 Ruby 命令行工具来与版本控制器交互,在这个平台上你可以使用 CVS、Subversion、Git 等各种版本的控制器,而不是仅限其一。...Heroku 就为这些后端服务的访问定义了一套 add-ons API,从而实现了代码与某个固定服务的解耦。在 Heroku 上最流行的后端服务是 PostgreSQL 数据库。

    8.4K20

    要学习微服务的服务发现?先来了解一些科普知识吧

    当调用REST API 或Thrift API的服务时,我们在构建请求时通常需要知道服务实例的IP和端口。在传统应用中,服务实例的地址信息相对固定,可以从配置文件中读取。...Netflix Eureka就是一个服务注册表组件,它提供了基于REST API的服务实例注册和查询功能。...客户端使用DNS名称,通过ELB发送请求(Http或TCP),ELB在已注册的弹性计算云(EC2)实例或EC2容器服务(ECS)的容器之间进行负载均衡。...Netflix Eureka是一个服务注册表组件,它提供了基于REST API形式的服务实例注册和查询功能。...在Spring Cloud项目中,实现了包括服务发现的各种模式,基于此可以很轻松的实现自动注册服务实例到Eureka。你只需在Java配置类上使用@EnableEurekaClient注解即可。

    70820

    谈谈云计算

    如 果您在 Google Apps 上托管您的域,那么通过将 Google Apps 帐户与 GAE 帐户链接,您还可以配置通过任何在您控制下的子域访问的应用程序。...伸缩,价格 通 过自动启动新的 EC2 实例并将您的 WAR 文件部署到新的实例,Beanstalk 可以扩展您的应用程序。所有 Beanstalk EC2 实例都正运行在负载平衡器后面。...您自己的数据库服务器:因为 EC2 提供对原始虚拟服务器的访问,所以您可以在独立的 EC2 实例上建立自己的数据库或 NoSQL 数据源(如 Apache Cassandra)并只将 Beanstalk...因为 RUN@Cloud 可以使用共享的负载平衡器来管理在单个 EC2 实例上运行的多个 Tomcat 服务器,所以其无需每个 Tomcat 实例都有一个 EC2 实例。...特别是对于在 Amazon EC2 上部署的 RUN@Cloud 应用程序来说,这些应用程序可以从您的应用程序内完全享有所有的 Amazon web 服务 API — 如 S3、SQS 以及 SES。

    12.9K50

    (译)Zalando 是如何管理 140 多个 Kubernetes 集群的

    我写过一篇文章:为什么需要多集群,Mikkel 在 KubeCon EU 2018 上做了关于如何在 Kubernetes 基础设施上进行持续交付的精彩分享。这里基本是对现存信息的一个梳理。...Spot 实例等。...集群仓库使用 PostgreSQL 为数据库,提供了一组 REST API。可以在 Github 上浏览这个 OpenAPI 的规范。...已配置好的节点池(也就是 EC2 实例类型)和针对节点池的键值对配置 我们的工具集(kube-resource-report 和 kube-web-view)能够查询集群仓库的 REST API,列出所有集群...,Ingress 注解是可选的,不过 Skipper 有些有用的功能 PlatformCredentialsSet 是一个用来集成 OAuth 的 CRD 我们用 StackSet来实现流量切换和渐进部署

    1.3K20

    云环境中的横向移动技术与场景剖析

    这种方法并不会授予威胁行为者针对目标实例上运行时环境的访问权限(包括内存中的数据和实例云元数据服务中可用的数据,如IAM凭据等),但却允许威胁行为者访问存储在目标实例磁盘上的数据。...威胁行为者首先可以使用自己的SSH密钥集创建了一个新的EC2实例,然后再使用CreateSnapshot API创建了其目标EC2实例的EBS快照,最后再加载到他们所控制的EC2实例上,相关命令代码具体如下图所示...当EBS快照加载至威胁行为者的EC2示例上之后,他们将成功获取到目标EC2示例磁盘中存储数据的访问权。...与EC2实例连接技术相比,这种方法具有更大的限制,因为它需要使用用户密码或其他功能(如SysRq)对实例的操作系统进行预配置。...此时,威胁行为者可以使用StartSession API建立到多个托管实例的连接,并使用如下图所示的命令在每个实例上启动交互式Shell会话: 需要注意的是,该方法不需要EC2实例中相关安全组的SSH入站规则

    1.2K10
    领券