当前位置: 首页 > 知识库问答 >
问题:

微服务的体系结构模式

尉迟明贤
2023-03-14

我有一个微服务体系结构,它的日志必须发送到远程Kafka主题。在它旁边,本主题的使用者将把日志发送到麋鹿堆栈(另一个团队)

我想要一个专用的微服务(fwk proxy elasticsearch),其职责是收集其他人的日志,并将其发送到远程Kafka主题。

将从我的微服务聚合的所有日志分派到fwk-代理-弹性搜索微服务的最佳协议是什么?

我希望这个html" target="_blank">模式不会重复远程Kafka主题的安全配置。我想把它集中在一个地方。

我可以使用vertx事件总线吗?还是Kafka更好?或者其他工具?我可以使用vertx将消息从jvm发送到jvm吗?

此外,在微服务体系结构中,将用例集中在专用微服务中是一种好模式吗?(例如,远程超文本传输协议连接)在我看来,它允许业务微服务专注于业务问题,而不用担心必须发送结果的协议。

谢谢!

共有1个答案

融唯
2023-03-14

我相信你可以使用两个垂直。x事件总线和Kafka来传播日志,每种方法都有优点和缺点。

虽然我理解这个决定背后的原因,但我仍然会考虑为此目的构建一个专用的解决方案,比如Fluentd,它能够聚合日志并将其推送到多个源(包括Kafka,通过专用插件)。我相信还有其他类似的解决方案。

如果您使用专用解决方案,而不是自己构建解决方案,我看到了几个重要的好处:

  • 可配置性级别,这在将来肯定很有用(在专用解决方案中,您需要在每次构建新内容时编写代码)
 类似资料:
  • 我最近开始使用Node.js,我必须构建一个应该使用多个Express.js服务的体系结构。其中一些服务必须位于一台服务器上,另一台则位于其他服务器上。我想构建一个基础服务(像API网关),但是我不知道在这个网关和微服务之间,或者在两个微服务之间进行通信的合适方式是什么。 目前我正在研究一个基于此的解决方案:

  • 总而言之,我们有: 产品类别: 产品ID、产品名称 订单类别: 订单ID、产品ID、用户ID、订单日期 这些方法中的任何一种可以被认为是最佳实践吗?还是有不同的解决方案?

  • 我经常听说,在微服务架构中,对于每一个微服务,我们都必须创建单独的数据库。 但是,如果我必须在不同的数据库中维护外键约束,这是不可能的。就像我在身份验证微服务中有一个用户表,我想在我的目录服务中使用它(用户表中的用户 ID 列) 那么如何解决呢。 感谢提前

  • 我知道将实体类和属性复制到DTOs中被认为是反模式,因此通过模式,相同的既可以用作数据库实体类,也可以用作服务层和MVC层的DTO。(参见https://codereview.stackexchange.com/questions/93511/data-transfer-objects-vs-entities-in-java-rest-server-application) 但是假设我们有一个微服

  • 我是事件驱动微服务的新手,也是微服务本身的新手。我正在开发的系统并不大,它处理一堆文件,然后根据调用不同服务的数据。所以在我看来,一个好主意是,不要让服务调用其他服务来完成这项工作,而是将这些消息发送到发布/订阅队列,处理它们并将它们发送到相关主题,然后每个服务将订阅其中一个或几个主题,每隔几分钟,每个服务都会提取它们订阅的消息并发挥它们的魔力。这些服务也可以通过Rest来公开,以防您想强制执行它

  • 我正在开发具有微服务架构的后端。我对该架构不熟悉,目前我在一个容器中开发了3个微服务(RESTful Web服务,带有Spring Boot)。我想实现OAuth2和JWT Rest Prot和网关。使用授权服务器和资源服务器实现网关是正确的吗?我在架构上做错了什么吗? 谢谢你的回复