jjzjj

Microservices

全部标签

microservices - 为什么两阶段提交不适合微服务架构?

我看过一篇文章说:Wecannotimplementtraditionaltransactionsystemlike2phasecommitinmicro-servicesinadistributedenvironment.我完全同意这一点。但是,如果这里有人可以解释其中的确切原因,那就太好了。如果我使用微服务实现两阶段提交,我将面临哪些问题?提前致谢 最佳答案 避免两阶段提交的主要原因是,事务协调器是一种独裁者,因为它告诉所有其他节点该做什么。通常事务协调器嵌入在应用服务器中。当在第一阶段或准备阶段之后事务协调器或应用程序服务器出

java - 带有 Java 和 ReactJS 服务器端渲染的微服务 UI 前端

我目前的设计是让客户端使用浏览器连接到我的(Java)WebAPI网关,WebAPI网关将调用每个(Java)微服务​​来获取它们的JSON数据并将其返回给发出请求的UI组件在客户端上。唯一的客户端渲染将来自每个ReactJSUI组件,用于对网关的重复请求。在服务器端,完整的HTMLView将在发送回客户端之前呈现。Clientbrowser▼(RequestDashboardView)WebAPIGateway▼(RequestmicroserviceJSONdata)MicroserviceAJSONDataMicroserviceBJSONDataMicroserviceCJSO

java - 如何获得跨应用程序 Spring Integration 流程的可视化?

我们有一个微服务架构,即我们系统的每个主要组件都设计为作为单独的Java应用程序(jar或war)运行。我们使用SpringIntegration来促进组件之间的通信(通过MQ服务)。如果每个组件都有自己的SpringIntegrationXML配置,我们如何获得系统整个集成层的图形图表?请注意,我们知道如何在单个应用程序中执行此操作。问题是如何跨应用进行。例子:组件1生成POJO流->MQ->组件2将POJO对象图序列化为JSON->MQ->组件3将JSON保存到DB此外,如果可行的解决方案是创建单个SpringIntegration配置,那么如何确保所有组件都使用它?

java - 微服务架构中的 HTTP 与 Thrift

我刚刚开始学习微服务,我有一个我自己无法回答的问题。(而且我也是基于Java的开发人员)我有这样的情况:我有一个调用Thrift服务(名为T1)以获取数据的服务A(一个API服务)。然后我有一个服务B,它可以使用来自A的数据响应,解析这些数据,然后生成一些新数据,最后返回给客户端。问题是:我应该使用哪个?B从A调用API并使用带连接池的HttpClient/AsyncHttpClient解析(例如JSON数据)或B直接调用T1并重复A的操作?恕我直言,我认为Thrift(也有连接池)比HTTP调用更快?我说得对吗?我看到很多内部使用HTTP的服务,如Elasticsearch、Neo4

java - 使用 Guice 框架编写基于注释的方法拦截器时无法注入(inject) java 对象

我的应用程序结构是这样的我创建了如下注释:-@Retention(RetentionPolicy.RUNTIME)@Target(ElementType.METHOD)public@interfaceSampleAnnotation{}然后创建了一个示例拦截器:publicclassSampleInterceptorimplementsMethodInterceptor{privatestaticfinalLoggerlogger=LoggerFactory.getLogger(SampleInterceptor.class);@InjectSampleServicesampleSer

java - session 事务消费者或生产者中的消息代理异常处理

我想使用SAGA我的SpringBoot微服务中的模式。例如,在客户订单中,当订单创建时,会产生一个类似OrderCreatedEvent的事件,然后在客户微服务中OrderCreatedEvent上的监听器更新客户信用并产生CreditUpdateEvent和...。我使用session事务处理JmsTemplate来生成事件。在JmsTemplate的javadoc中表示JMS事务在主事务之后提交:ThishastheeffectofalocalJMStransactionbeingmanagedalongsidethemaintransaction(whichmightbeana

java - 如何在两个微服务之间共享 REST 服务之间的实体?

我已经使用java创建了两个微服务。我需要从服务A到服务B进行RESTapi调用。发送的数据将采用JSON格式。使用jax-rs我需要在这两个服务中创建实体类。因为两个项目中的实体类都是相同的。我会吗创建一个公共(public)jar并用于我所有的实体/域对象?这会让我的微服务耦合得更紧密吗?我是否在两个微服务项目中创建相同的类?这将意味着在两个项目中重复工作?是否有更好的方式在服务之间进行通信? 最佳答案 在让你的两个微服务独立以及将来它们也独立方面,我也会复制代码。我们之前有过完全相同的情况。一些微服务似乎使用了一些可以放在单独

java - 如何在 yml 中获取我的配置值 - 使用 dropwizard(微服务)Jersey D.I @Injection?

这是我的代码片段。这是我的yml文件:productionServer:host:production-server.amazonaws.compublicIp:xx.xx.xx.xxprivateIp:xx.xx.xx.xxuserName:xx.xx.xx.xxpassword:xx.xx.xx.xxremoteFilePath:fake/path/fileName:test.txtprivateKey:private-public-key.ppkserver:applicationConnectors:-type:httpport:8080-type:httpsport:8443

java - Spring Cloud 配置 : how to use multiple configs

我想尝试的:我想为微服务项目尝试springcloudconfig,我有一个用于所有服务的commonconfig和用于每个服务的multipleconfigs.我了解了如何使用spring.profiles.active和include来使用多个profiles。我想了解如何在配置客户端上加载多个配置?我有什么:在我的git仓库中,我有spring-config-repo我有...application.ymlorderclient.ymlsubscriberclient.ymljmsclient.ymlproductclient.yml我的配置服务器指向我的配置仓库。spring:

java - 整洁建筑设计模式

https://8thlight.com/blog/uncle-bob/2012/08/13/the-clean-architecture.html我对此模式有疑问。数据库位于外层,但实际上如何工作?例如,如果我有一个仅管理此实体的微服务:person{id,name,age}用例之一是管理人员。ManagePersons正在保存/检索/..Persons(=>CRUD操作),但是要做到这一点,Usecase需要与数据库对话。但这将违反依赖性规则TheoverridingrulethatmakesthisarchitectureworkisTheDependencyRule.Thisr