Microservices 微服务是设计模式还是体系结构?

在进行了严格的研究和分析之后,我终于得出了一个让我困惑的观点:“微服务是一种设计模式还是体系结构?”。 有人说它是一种模式,是作为单片应用程序的解决方案而发展起来的,因此也是一种设计模式 一些人毫无疑问地证实了这是一个体系结构,它讲述了它们的开发、管理、可扩展性、自治性和完整堆栈。 任何想法或建议我都欢迎澄清。微服务可以最好地描述为一种架构风格。除了架构决策之外,该风格还包括与组织和流程相关的考虑因素 建筑元素包括: 通过业务关注实现组件化 在持久性方面严格解耦 定义良好的接口和通信 以较小的服

Microservices 微服务体系结构中的注册过程

Chris Richardson在他的“第三方注册”中提到: “第三方注册器可能对服务实例的状态只有肤浅的了解,例如运行或未运行,因此可能不知道它是否可以处理请求。” 但这到底意味着什么?微服务启动时向注册机构发送什么信息?为什么注册官不能知道有关服务及其位置的信息 “第三方注册器可能对服务实例的状态只有肤浅的了解,例如运行或未运行,因此可能不知道它是否可以处理请求。” 微服务启动时向注册机构发送哪些信息?为什么注册官无法知道有关服务及其位置的信息 服务通常不会自行联系注册表。出现的模式是启动服

Microservices 如何在微服务中处理从UI到API的REST调用

我们已经开始实现从单一到微服务的体系结构。我们已经发现,即使是驱动消息队列也比RESTAPI持久。然而,我们被一个基本问题所困扰 例如,在我们的网站上,用户创建一个订单,该订单作为HTTP请求发送到我们的API网关,请求被推送到队列中。某些操作继续,结果被推回队列 现在我不能长时间保留这个RESTAPI请求。我们对实施这一计划没有任何线索。非常感谢您的帮助。如何将同步HTTP请求API调用转换为异步响应?用户交互不应进入队列。用户对产品的请求必须满足。没有两条路可走。另一方面,队列可以帮助您管理

Microservices 身份验证策略的Istio替代方案是什么?开发的Istio流程是什么?

在这个url上,您可以查看我的项目,了解一些上下文: 长话短说,我正在构建一个开源框架,用于构建可以利用最新PSD2的escrow 它支持加密货币支付,并实现某种侧链,以证明已签署合同 基本上,Istio所做的所有事情我真正需要的是使用JWT的身份验证策略。 这样做是为了避免在我创建的每个微服务中编写这一部分。 当然,网关也很重要。 主要问题是,当我使用IDE(Intellij idea)开发时,我不知道我可以做什么,以避免每次需要重建时都必须停止、重建和启动容器,因为一旦我使用了Istio,我

Microservices Zuul自动发现问题

我们正在建立一个新的微服务体系结构,前端是Zuul,后端是一组支持tomcat的微服务。每个服务在启动时都会向Eureka注册,任何想调用这些服务的客户都会通过Zuul注册。我们把这一切都连接好了,一切都很好 然而,我有几个问题要问,我们如何才能使这个架构更加动态 我们假设Ribbon/Eureka是开箱即用的,但还没有找到解决方案,因为我们向后端添加了更多服务,Zuul的Ribbon客户端会以某种方式(通过Archiaus和更新到Zuul的Eureka-client.properties文件)

Microservices 使用同一数据库表的多个MicroService读写器(自找麻烦??)

警告:这是一个开放式问题,但我很好奇人们对从数据库中同一个表读取多个微服务的看法 我目前正在开发一套展示微服务体系结构的API,但不同的端点需要从同一个表读取数据,并且有一些后台进程正在写入同一个表。对我来说,这听起来像是一个糟糕的架构决策,因为似乎没有任何应用程序团队因为多个编写者而拥有该模式,如果他们想要对其进行更改,那么就需要更新多个代码库 我对微服务的了解不多,但这个设计决策听起来像是对微服务架构的滥用。我对类似问题的回答可能会对您有所帮助。这是怎么发生的,几个不同的作者可以写在同一张表

Microservices 在微服务体系结构中,用于公共特性的服务应该是公共的还是非公共的

这个问题与微服务有关,当我有多个微服务提供功能/服务时,这些功能/服务将被订购并收费 我确定该采取哪种方法 a) 每个可计费微服务的订单和计费服务及其各自的数据库。 b) 跨所有微服务的通用订单管理和计费服务 困扰我的一件事是,每个计费功能/服务都有不同的计费标准/折扣 通过观察一些架构,我们发现了以下内容: 在博客中- 它将计费描述为整个体系结构的一个共同的、非常中心的部分 您的见解将受到高度赞赏。从我目前看到的情况来看,人们更喜欢使用专用的微服务进行订单管理,因为它的行为在很大程度上不取决于

Microservices 使用Eureka时,将什么作为可发现服务?

我正在学习一门关于使用spring的微服务架构的课程,内容涉及netflix的eureka clientui提供网页服务,并在需要时调用3个微服务。 配置服务器为来自git repo的3个微服务提供配置 当然,这3个微服务注册为eureka客户端 我的问题是: 配置服务器和服务器是否也应该注册为eureka客户端,或者这样做没有好处 clientui(web入口点)呢?为了从负载平衡系统中获益,是否可以将其注册为eureka客户端?如果可以,客户端应如何访问该应用程序 关于您的第一个问题:-

Microservices 当微服务依赖于其他微服务时,如何单独开发它?

我们正在评估向微服务的转移。每个微服务都是独立开发的自己的项目。在规划过程中,我们确定一些微服务将通过REST呼叫、发布/订阅、消息传递(即订单服务需要产品服务提供的产品信息)与其他微服务进行通信 如果一个微服务依赖于从另一个微服务检索数据,那么在开发过程中它如何能够独立运行?例如,当您的订单服务请求产品详细信息,但没有任何响应请求时会发生什么情况?您可能需要的是存根rest服务。使用不属于公共api的路径创建获取预期输出的webapp。当您调用公共api时,它会发送刚刚接收到的内容 如果一个微

Microservices API网关如何在微服务中正确使用?

假设有2个后端服务: 产品服务(获取产品信息) 库存服务(获取可用数量) 除此之外,还有一个显示产品详细信息的前端web应用程序 我在互联网上看到的所有例子都是关于前端和API网关是同一个应用程序,并且使用Zuul作为反向代理 我的理解是API网关应该是一个独立的应用程序(层),前端应用程序应该使用它来调用后端服务 在这种情况下,Zuul的好处是什么?为什么不使用feign为这两个服务创建一个客户端,并为前端应用程序提供一个端点呢 Zuul作为代理服务器,不仅路由请求,而且Zuul过滤器还可用于

Microservices 带有path变量的服务终结点正在使用云契约导致404

我写了一份合同,插件自动生成了测试。我在这些自动生成的测试中看到了一种非常奇怪的行为 以下是我的服务端点: @RequestMapping(value="/check/{id}" method= RequestMethod.GET, produces = Media.APPLICATION_JSON_VALUE) public ResponseEntity<List<Application>> getApplications( @PathVariable (value =

Microservices 微服务的正确结构-基于订阅的模型

我有用户服务,课程服务和订阅服务,电子邮件服务。 它们应如何相互作用以实现以下目标: 用户订阅课程(用户选择课程)(单个/多个课程) 向课程添加用户(我们单击课程并向其添加用户)(单个/多个用户) 订阅时会发送电子邮件,详细信息请与用户和课程服务联系 我知道这是一个抽象的问题,但如果您能为我指明正确的方向,那将非常有帮助。根据我的经验,如果您有两个相关的服务,并且它们都需要另一个服务的部分信息(用户和课程的情况),出于性能原因,您应该存储另一个服务的信息 我的意思是,在用户中,您应该存储每个用户

Microservices 如何部署nameko微服务

我一直在阅读nameko的文档,除了一部分之外,所有的文档都很清晰。 您实际上是如何部署nameko微服务的? 我的意思是,例如,我们如何在RESTful中部署restfulapi是很清楚的。但是和nameko在一起? 如果两个微服务应该通信,我们如何使它们进入“侦听”状态

Microservices 我不知道';我不了解事件来源

我是活动采购的新手,有一些问题想问 假设我们有2个服务书店实例和2个服务钱包实例。 用户要求BookService_1为其购买一本书。此book服务创建事件BuyBookRequestCreated并将其推送到事件总线。事件总线将此事件发送到service Wallet的两个实例。现在有两个实例试图从用户钱包中预留足够的钱,它们都发出事件BookMoneyReserved?现在在另一边,书店服务的两个实例接收2个事件,它们都试图发出事件BookBuyed?或者eventbus可能只向一个订阅者发

Microservices 如何存储链式微服务的状态客户端

我想在客户端存储微服务状态。对于单一服务来说,如何实现这一点似乎相当简单(在HTTP正文中为状态返回属性)。然而,链式服务会使事情变得更加复杂 在上面的示例中,API2和API3保持状态我都要返回到客户端。我想知道这是如何最好地实现的。我目前的想法是API1向客户端公开一个单个状态属性API1然后负责将从API2或API3返回的任何状态添加到该状态属性中 我想知道人们是否还尝试过其他选择?这是否回答了您的问题?这回答了你的问题吗?

Microservices 是否可以通过microservice使用不同的语言构建项目?

是否可以通过microservice使用不同的语言构建项目?比如,我想构建一个酒店管理系统,我可以使用asp.net内核和nodejs来实现不同的模块吗。认为 我想使用nodejs获取数据,并使用.netcore发布数据。TIA是的。然后需要某种形式的进程间通信(IPC)。每种语言都存在于自己的过程中,不管操作系统的风格是什么,也不管您使用的是什么语言。通常,进程实际上是通过API进行通信的。还有其他方法可以通过数据库、内存(RAM)、信号甚至普通文件(在某些共享介质上)来安排IPC。是的。然后

Microservices 关于代码恢复、安全性和数据库共享的微服务体系结构问题

关于微服务体系结构,我有以下问题 如何在不同的微服务之间重用公共代码/实用程序库?该通用代码也正在开发中 在我的微服务中,有些服务是为客户提供的,有些服务可以是内部的(供其他微服务使用)。使内部服务安全的最佳选择是什么 如果两个微服务必须使用同一个数据库怎么办?假设它们执行完全不同的操作,但使用相同的数据库表 微服务主要是关于后端的,但GUI将是相同的。在这种情况下,每个微服务部署也需要网站更新。这是不是一个缺点? 免责声明:这些答案基于我的观点,基于我使用各种基于微服务的体系结构的经验 理想情

Microservices 无法获取PCF中托管的微服务的可用实例

我在PCF中托管了3个微服务。一个是eureka服务器,另两个是客户端和服务微服务。客户机应该通过rest模板调用来调用服务,服务将返回一个字符串 我拥有eureka服务器和客户端各1个实例,以及该服务的2个实例 我可以看到我的客户和服务在Eureka仪表板中注册。但是当我尝试从客户端[使用rest模板调用]访问服务时,我得到-'没有可用于[服务名称]的实例' 但是,如果我直接从浏览器访问我的服务,那么它可以正常工作并返回字符串。但是,如果从rest模板调用相同的URL,将返回我上面提到的异常

Microservices 酒店通讯微服务

在一个酒店的微服务架构中,我想创建一个通信服务来处理所有的电子邮件、短信。。。此服务应由异步事件触发 应调用这些事件:发送\预订\确认\电子邮件,使预订服务了解电子邮件通信。或者应该有一个更通用的事件预订确认,导致确认电子邮件 是否应调用这些事件:发送\预订\确认\电子邮件 不,事件应该以过去的句子命名 使预订服务了解电子邮件通信 我不会做那种耦合。预订服务负责预订,而不是通知客户的方法 或者应该有一个更通用的事件预订确认,导致确认电子邮件 是的,预订确认似乎是个不错的选择;它表示实际发生的事情

Microservices 如何将基于oauth的ui添加到zuul网关?

我不熟悉微服务,我正在尝试创建一个具有微服务体系结构风格的示例应用程序 我的场景是,我有两个名为customer和vendor的微服务,其中实现了spring安全性 为了访问这些微服务,我需要传递两个单独的URL,即 客户: 对于供应商: 所以我引入了Zuul作为API网关来访问这些URL 网关属性文件(application.properties)是: 实现此功能后,我可以访问有关客户和供应商的所有URL,但无法访问基于OAuth的URL。 那么,有人能帮我弄清楚如何使我的网关包含基于OAut

Microservices 微服务和复制数据库表

我一直致力于将单片系统(.NET)拆分为更小的有界上下文,从而拆分为多个类库。地址记录是系统的核心,因此不相关的实体返回主地址记录非常重要。每个微服务都有自己的数据库,其中包含与该有界上下文相关的表。我遇到了一个关于地址记录或地址实体的挑战。这两个有边界的上下文或库都需要使用地址表和相关的查找表,如State、Country等。我是否应该复制每个数据库中与地址相关的表,并复制与地址相关的域类?如果复制,两个数据库中都会有大量重复的地址记录,这让我陷入困境。如果我把地址表放在类似“定位服务”的地方

Microservices JHipster microservice gateway在一个服务实例终止时临时抛出HTTP 500错误

我们有一个标准的JHipster设置,包括一个网关和一个微服务应用程序。JHipster注册表用于服务发现。我们没有对JHipster生成器生成的代码或配置进行任何更改 一切正常。但是,当关闭一个microservice应用程序实例(SIGINT、CLI上的^C、Kubernetes pod termination)时,我们会暂时收到HTTP 500内部服务器错误,这些错误是通过网关(.)向microservice端点发出的请求 请在下面找到网关中HTTP 500错误的堆栈跟踪: Caused

Microservices Zuul中过滤器的SpringBoot Junit测试

我是Zuul J单元测试的新手。我有两个过滤器,分别是ChangeRequestEntityFilter和SessionFilter,我将过滤器代码粘贴在下面。有人能告诉我如何为过滤器编写Junit吗。我已经搜索并尝试使用MockWire进行单元测试(我还用基本注释和WireMock端口粘贴了我的空方法)。我需要至少一个合适的例子来说明Zuul的J-unit是如何工作的。我已经转介了医生。在那里我可以做什么,但不知道怎么做 public class ChangeRequestEntityFilt

Microservices “微服务”;加入;

假设我们想用微服务创建应用程序 我们有一些页面显示一些项目(产品) 这些产品具有多个联接(类别、标记、用户等) 如果用户、类别和数据位于其他服务中,我们如何管理和过滤结果 例如,在SQL中,您创建3,4个联接并获取 使用微服务——我必须过滤类别,然后过滤标签,然后过滤产品——这可能比SQL查询的速度慢10倍 另外,如果我有“products\u categories”表,该表为每个产品设置了类别,由哪个服务负责?产品服务还是分类服务 谢谢无论何时构建任何微服务,这都是一个非常标准的问题。。人们总

Microservices 具有独立数据库的微服务如何相互通信?

例如,微服务A拥有DB A,而微服务B拥有DB B。现在,微服务B需要A提供一些共享数据。我们如何处理这种情况?他们使用通信协议,例如。每个微服务都需要拥有自己的数据库模式,并且应该只查询自己的数据库模式。在这种情况下,由于微服务B需要来自DB-A的数据,微服务A需要公开该数据,可能通过Rest Api,然后微服务B需要调用该Rest Api从DB-A获取数据-微服务B可以进行同步调用以获取其所需的数据。(如REST调用)如果microservice B经常需要这些数据,最好避免synccall

Microservices 如何在RDF中找到JSON-LD顶级对象

说 JSON文档可以是对象或对象数组的形式。 在大多数情况下,开发人员需要一个入口点,因此JSON 应为单个顶级对象的形式 在我看来,这似乎鼓励了这样一种想法,即JSON-LD文档中的顶级对象具有某种特殊意义,比如说它可能是处理应该开始的地方。这对于不知道RDF的组件很好,但是,当JSON-LD文档转换为RDF时,我如何判断哪个节点是顶级对象?RDF不知道组件是否将意义附加到没有语义足迹的东西上 我正在考虑一些可能的解决办法: 要求RDF客户端为我标记根节点(例如,RDF:type my:Roo

在Microservices中使用共享读取数据库

众所周知,在微服务中使用共享数据库不是一个好主意,但当我们需要另一个微服务中的数据时,我们应该使用RabbitMQ之类的消息代理。如果数据仅仅是为了构建一个新的物化视图而需要的,那么如果某种共享读取数据库可用,这不是更容易吗?或者我们应该读一读“你不应该在微服务之间共享数据库”,就像不共享可写或可读的数据库一样?在微服务中,没有正确或错误,只有最佳实践。微服务的目的是它们可以独立操作和工作。记住这一点,只要读取副本是独立运行的,并且仅用于创建物化视图,读取副本就可以了。如果主数据库出现故障,您的

Microservices 微服务中的复合/聚合服务

我们正在准备从一个整体模型向一个微服务模型的转变,作为这一转变的一部分,我正在准备设计和分解我们的服务。我越来越多地发现一种模式再次出现,我在web上看到这种模式被称为复合或聚合服务,对此我并不完全清楚 我的问题分为两部分: 首先,我看到的模式是,在一个来自UI的调用中,我需要通过对话从2个或更多服务获取数据。让我们调用这些服务A、B和C。现在,我可以创建另一个服务,比如服务D,它将为这个特定的调用进行编排,并将管理对服务A、B和C的下游调用。我认为这被称为复合或聚合服务。我对此感到困惑的是,现

Microservices VertX/Spring框架应用程序在应用程序级别的延迟故障注入

我已经检查了只适用于springboot框架的。而且,这看起来像是需要根系统访问的基础架构级故障注入 我正在寻找帮助,以便在openshift上的VertX应用程序中诱导应用程序级别的延迟错误注入。是否有推荐的库/工具可供使用?2018年,我在阿姆斯特丹Codemotion上介绍了一个关于混沌的演讲。在这次演讲中,我使用了pumba和vert.x。请注意,ChaosMonkey与Spring无关,它可以用于任何应用程序,但是如果您查看演示文稿,您可以了解如何使用pumba 简言之: 如果要测试负

Microservices 如何找到为什么以及哪个微服务速度慢?

在我最近在Sapient的一次采访中,采访问了几个问题: Q1:如果您的查询指向多个服务,如何查找哪个微服务速度慢 Q2。如何在微服务中使用日志,以及您将在日志中显示哪些信息 如果有人有任何答案,请解释。 提前感谢。基于一般性,对于第一种方法,您可以遵循断路器模式,其中您可以提到被调用方法的超时,这样,如果它们直到阈值才响应,则应使用回退方法返回被调用方法所需数据类型的模拟对象 Spring中有类似Resilience4j或Hystrix的框架 对于日志记录,您可以使用分布式跟踪,即通过Zipk

Microservices 如何正确处理相关ID?

我刚刚阅读了微服务体系结构中的日志记录,似乎有相关ID的概念,它基本上是传递给每个微服务的。此关联ID对于日志记录非常有用-您可以通过搜索关联ID跨微服务跟踪请求 我的问题是,这通常是如何实现的?这个关联ID是在哪里生成的?您是否在前端生成某种UUID,并通过X-REQUEST-idhttp头传递它 我的第二个问题是:当您在服务器中收到此关联ID时,如何使服务器中的所有功能都可以访问它 假设您的服务器有如下内容: requestHandler(httpRequest) { correla

Microservices API网关和微服务认证

API网关和微服务的工作原理 谁能解释一下网关微服务体系结构的基本流程。我找不到正确的答案 假设我们在不同的实例上运行auth server和customer micro service,在所有服务之前,我们有一个API网关 我的问题是 当用户尝试使用用户名和密码登录时,API网关调用身份验证服务器,并将访问令牌返回给用户 然后,用户尝试访问在单独实例上运行的特定url(/customers-customer-micro-service)。 API网关做什么 使用auth server验证令牌,

Microservices 微服务断路器和发现服务模式

我对微服务还不熟悉,我怀疑谷歌并没有真正帮助我。 我知道微服务必须是独立的,所以即使它的一个对应方离线,也应该保持正常工作 考虑到这一点,我不能真正理解断路器,甚至不能理解服务发现,比如我应该把它放在哪里?因为我对任何微服务的每次调用都会通过断路器,比如说我的断路器服务的服务器离线,所以在我修复它之前,我的整个应用程序都是注定要失败的。如何绕过这一点 最重要的是,在微服务中,我应该将断路器放在哪里?无论何时进行远程呼叫,都应该使用断路器模式 如果您不使用它,那么在某些情况下(例如,当某些微服务关

Microservices 上传大文件时断路器断开

我有一个现有的项目与以下微服务架构师。客户端-->API网关(使用Hystrix作为断路器的Spring云)--->上载服务。上传小文件(POST/upload/video)时,一切正常。但当文件较大时,上载时间很长,Hystrix将打开并返回回退 是否有人对我的案例进行过实践,或者我如何在Hystrix上仅为POST/upload/video请求设置超时?您似乎需要在Hystric客户端中配置更大的超时; 在您的示例中,这是“API网关(使用Hystrix作为断路器的Spring cloud)

Microservices 微服务平台的keydepot客户端id策略

各位程序员好 我希望有一些钥匙斗篷专家可以帮助我解决我的问题 因此,我的情况是,我们有大约20个服务的微服务平台,将来应该使用keydove jwt令牌来保护这些服务 我们的想法是,我们为我们的客户提供一个接口,他们可以在一个领域内使用密码/密钥对注册自己,他们应该能够使用该帐户访问所有 通过公共门面/api提供服务 现在来看看这个问题-如何处理客户机id-在所有示例中,每个服务都有自己的特定客户机id-在我们的例子中,这应该是允许内部服务的公共api//facade的客户机id,还是有更好的方

Microservices 我应该在微服务之间共享我的库吗?

我获得了第一次使用微服务的经验,在一个重要的描述上需要帮助 我们有 CustomerService(包含CustomerTo) InvoiceService(包含CustomerTo、InvoiceDTO) PrintService(包含CustomerTo、InvoiceDTO) 正如您所看到的,这里有大量代码重复,每次修改CustomerTo时,我都需要在3个不同的微服务中完成 我的潜在解决方案是,将重复的类排除到库中,并在微服务之间共享该库。但在我看来,这将打破微服务方式 那么,处理我

Microservices 微服务体系结构中的服务器-2-服务器授权

我很清楚微服务体系结构中的用户授权(用于处理身份验证、SSO、微服务授权等的API网关)。 现在我在考虑微服务之间的授权请求。 还有一个问题——如果我没有用户,我有哪些选择 例如,analytics服务,它从账单中请求数据并生成复杂的报告。没有用户,但我需要授权从分析服务到计费的请求吗 我知道可以有无数的代币,但我认为这不是个好主意。 服务之间的授权请求还有哪些选项?在OAuth2规范中,有一种称为机器对机器令牌的东西。这与密码凭据流不同,密码凭据流指的是您的用户授权 要创建机器到机器令牌,您应

Microservices 区分maven多模块和Spring micro服务?

我正在为下一个项目阅读spring micro services。图坦卡蒙说,“该架构将主应用程序划分为一组称为微服务的子应用程序。一个大型应用程序划分为多个协作过程。”。因此,我们已经有了一个框架maven多模块,根据我的经验,我将该项目分开。即使是这样。为什么我们需要微服务来分离一个项目?。请区分它。提前感谢。微服务体系结构中的每个服务都应该隔离,这意味着负责该服务的团队能够在不需要部署其他服务的情况下实施连续部署。实际上,我认为我们可以使用两种方法使用我们最喜欢的构建工具,如maven或g

Microservices Api网关如何将响应与微服务相结合

根据这篇文章,有一种说法: API网关负责请求路由、组合和协议转换。来自客户端的所有请求首先通过API网关。然后,它将请求路由到相应的微服务API网关通常通过调用多个微服务并聚合结果来处理请求。 我想知道,基于Zuul示例,API网关是如何实现这一点的 假设我们有两个微服务,一个检索所有可用的产品名称,另一个返回产品描述。在单片架构中,我们只有一个请求来获取所有需要的数据。在微服务架构中,API网关应该组合响应(来自两个微服务)并返回一个响应 如何实现这种功能性?是否有关于这方面的指南或文章?并

Microservices JHipster微服务集中化不使用Docker compose或任何Docker容器,需要帮助

目前的情况是我正在尝试实现 我直接从git hub使用Jhipster注册应用程序作为Eureka注册中心和Spring云配置服务器(不过这是默认功能) 我需要将微服务应用程序的配置文件集中在Jhipster注册表中 所有这些我们都不需要使用Docker,因为当前项目不使用Docker。 为此,我对 bootstrap.yml文件,如下所示(通过本地文件系统的本机类型作为复合配置文件运行,因为我们没有访问生产git存储库的权限。因此选择仅使用dev/compositeprofile的文件系统。

Microservices 如何从其他服务加载历史事件?

我有一个用户微服务,它在创建、修改或删除用户时发布事件。此外,我还有一个需要用户数据的日历微服务。日历服务订阅用户事件并保留所需数据的只读副本 我刚刚添加了一个帐户微服务,它需要现有的用户数据,我使用了与上面相同的模型。将现有用户数据放入帐户微服务的最佳方式是什么 当我做第一个微服务时,我为每个用户重新发布了用户修改事件。这很简单,因为没有其他人使用此事件。如果我现在重新发布,对于新帐户微服务,现有日历微服务也将获得事件。我的逻辑是幂等的,但这是大量浪费的工作,而且随着我得到更多的服务,情况只会

Microservices 用于数据库访问的独立微服务

我正在管理一个非常大的企业应用程序,因为我已经实现了微服务体系结构。基于业务实体和运营创建了独立的微服务。 比如说, 用户操作服务 产品运营服务 财务业务处 请注意,每个服务都是使用带有WCF的n层体系结构实现的。i、 e有单独的层(可独立部署到单独的服务器)用于业务和数据访问 有一个由所有微服务访问的集中式数据库。所有服务都可以访问几个公共实体,如“用户”,因此我们在多个服务中有冗余的数据库调用。由于需要从多个位置访问数据库,因此需要付出更多努力(例如,列重命名需要部署所有应用程序) 为了减少

Microservices 内部服务调用是否需要通过API网关,例如zuul?

我将eureka用作服务发现。如果所有内部服务相互调用都通过API网关,我就不能再使用功能区支持的RestTemplate或假装客户端了 这是必要的还是某种选择?不。祖尔是一个看门人。您需要它来传递来自UI的请求。内部通信不应通过网关 仅供参考: 您还可以在Ken Finnigan的《企业java微服务》(Enterprise java microservices)一书中找到更多信息。Zuul是一名守门员。您需要它来传递来自UI的请求。内部通信不应通过网关 仅供参考: 您还可以在Ken

Microservices 与微服务共享数据

我正在实现一个事件驱动的微服务体系结构。想象一下以下场景: 聊天服务:能够查看对话和发送消息。对话可以有多个参与者 注册登录服务:处理新用户的注册和登录 用户服务:获取/更新用户配置文件 注册登录服务使用新创建的用户对象发出以下事件: 新注册 登录成功 注销成功 然后,聊天服务监听注册新的,并将用户的一些字段存储在自己的redis缓存中。它还侦听登录成功并存储令牌,并在注销成功上删除令牌 用户服务具有以下事件:用户已更新。触发此命令后,聊天服务中的侦听器将更新与redis中的用户id对应的数

Microservices 微服务:工作者角色、API或两者?

我已经看到了将微服务实现为处理队列外请求的工作者角色和/或API(REST)的混合示例 支持异步场景,可以使用队列,通过一个简单的哑队列侦听器将请求转发到Microservice REST API,其中作为同步场景将直接调用REST API 我认为微服务这个术语的定义很模糊;人们认为它们是API(例如REST Service)或任何抽象的服务处理请求,但是提供了这个请求?< P>您的微服务可以是一个小型应用程序,公开一些REST端点,或者它可以是后台队列的后台工作人员。它甚至可以是在某些事件中调

Microservices ArangoDB Foxx是否支持微服务的自动缩放?

ArangoDB Foxx是否支持微服务的自动缩放?我可以配置Foxx来增加特定微服务的部署实例吗?Foxx绑定到DB,因此它已经被“放大”。实际上,foxx在一些控制器类型的节点上运行,这些节点与db和其他节点类型成比例/批量。真正的问题是mesos是否会区分哪个节点需要缩放。

Microservices 微服务请求

我正在尝试启动一个小的微服务应用程序,但我在一些技术问题上有点僵持 我试图构建一个问题跟踪应用程序作为示例 它有2个数据库表、问题和注释。出于示例的考虑,这些也将是单独的微服务 它必须是一个单独的API,可供多种类型的客户端使用,例如移动、web等 当使用单块方法时,所有的代码库都耦合在一起,当请求RESTAPI时,我会处理例如“/issues/19”请求 通过以下伪代码获取id为“19”的问题及其相应的注释 on_request_issue(id) # handler for the rout

Microservices 播放微服务-api网关和服务发现

我们计划开发一些基于play框架的微服务。他们将提供RESTAPI,其中许多人将在后台使用akka集群/集群切分 我们希望有一个api网关来公开我们内部服务的api,但我们面临一个大问题: -每个服务的多个实例将在某些ip和端口下运行。 -api网关如何知道服务实例在哪里运行? -是否有像for play这样的负载平衡器可以跟踪所有正在运行的服务 哪些解决方案可能填补“API网关”/“负载平衡器”的空缺 您所问的问题实际上与play framework无关。没有一个单一的答案可以解决你的需要 你

Microservices 微服务架构设计问题

假设我使用rest调用在所有部分进行通信 我发现大多数微服务架构师如下所示: 如果有请求,则需要所有这些服务来计算结果。 请求路径如下所示: 客户->账户服务->库存服务->配送服务 这条道路漫长而复杂。 如果账户服务后出现错误,我需要用Saga模式进行补偿 我想问,我是否可以在这些服务之上添加一个逻辑单元“a”,如下所示: 这样我就可以处理这个服务上的所有逻辑。这些服务只帮助逻辑单元查询和阶段化原始数据。所有复杂逻辑都在逻辑单元中完成。我可以在这些服务之上添加一个逻辑单元“a”吗 你可以做

Microservices 复制数据模式是最小化同步微服务通信的好选择吗?

在微服务的世界中,通常一个微服务需要以另一种同步或异步方式调用 在同步通信方式的情况下,我了解到它会影响服务的可用性,因为在调用过程中两个服务都需要可用 为了尽量减少这种同步通信方式,一种可能的解决方案是在客户机服务上进行数据复制。客户端服务还通过侦听服务发布的事件来更新数据 据我所知,这不是一个好的选择,因为我们正在复制数据,它可能会过时,并且会增加数据库开销 当上述模式最适合时,最适合的场景是什么?微服务是分布式系统。这意味着它们受到CAP定理的约束,这基本上意味着您可以在以下两者之间进行选

  1    2   3   4   5   6  ... 下一页 最后一页 共 8 页