草庐IT

软件架构

全部标签

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

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

java - 第三方缓存软件——它们提供什么?

为什么要使用像ehcache或memcached这样开箱即用的缓存产品?一个简单的hashmap不行吗?我知道这是一个幼稚的问题,但我希望看到一些关于何时简单的HashMap就足够以及第三方缓存解决方案是否过大的答案。 最佳答案 Ehcache可以给你的一些东西,你必须用HashMap自己管理。驱逐政策。如果您的数据永远不会增长,则无需担心。但是如果你想防止内存泄漏最终破坏你的应用程序,那么你需要一个驱逐政策。使用ehcache,您可以配置缓存中元素的生存时间和空闲时间。使用Terracotta的集群缓存。如果您有多个用于故障转移/

java - 流处理架构

我正在设计一个系统,其中有一个主要的对象流,并且有多个工作人员从该对象产生一些结果。最后,有一些特殊/独特的工作人员(就图论而言,有点像“接收器”)获取所有结果,并将它们处理为写入某个数据库的最终对象。一个worker可能依赖于其他一些worker的结果(因此,等待他们的结果)现在,我面临着几个问题:可能是一名worker比另一名worker慢得多。你怎么处理那件事呢?添加更多较慢类型的worker(=缩放)?(也许是动态的)假设W_B依赖于W_A。如果W_B由于某种原因关闭,那么流程将停止,系统将停止工作。所以我希望系统以某种方式绕过这个工作人员。此外,最终工作人员如何决定何时对结果

java - 你能推荐一个轻量级的java portlet 软件吗?

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭10年前。我是一名资深的javaweb开发人员,但我是portlet技术的新手。目前我正处于寻找选择的阶段。我试过了Liferay虽然它很酷,但对我的需求来说有点重。你能推荐一个更轻量级的portlet容器吗?

java - 这个模拟器的最佳架构是什么?

我必须用Java制作一个模拟器,它将模拟在高速公路上行驶的汽车。高速公路应该有3条车道,每条车道上都有匀速行驶的汽车。在这条高速公路上,有一个特工必须开车通过并且不能撞到任何其他汽车。详细说明参见thispaper在第2.5节和图片5。这张图片来自提到的论文,展示了高速公路的样子:我的目标是只写一个模拟器(和GUI),而不是代理的逻辑。现在,我想设计这个模拟器的架构,这正是我需要帮助的地方。我的想法,代理的API看起来是这样的:publicabstractclassBaseAgent{publicabstractvoidrun()publicabstractvoidonCrash();

U 盘上的 Java 软件

我写了一个Java软件。现在我想将它复制到USBkey上,并使其能够在可能没有JVM的计算机上以独立方式运行。这可能吗? 最佳答案 当然有。不要听破坏性运动。launch4j允许您将可执行jar、任何依赖项jar甚至JRE捆绑到一个可执行文件中。不幸的是,没有办法制定一个跨平台的解决方案,因为JRE实现本身不是跨平台的。 关于U盘上的Java软件,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/que

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 - 学习 JUnit 和正确软件工程的示例项目

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。关闭5年前。Improvethisquestion我很难在测试和代码之间建立联系。我可以在这里问很多关于目录结构和测试类命名以及JUnit3与4等问题,但我宁愿找到一个正确执行它的示例项目并通过阅读它来学习。我想要一些不太复杂的东西,这样我就可以很容易地理解它,而JUnit4是最好的(没有理由坚持使用3,因为我刚开始,对吧?)。我在Windows7上,我使用Eclipse,我计划/希望学习和使用Hudson。我喜欢A

java - 在 WSDL 文件中找不到 Xsd 架构位置

这个问题3天了还没有解决,如果有人能帮忙,真的很感激,下面是所有的代码。问题是:如果我将wsdl文件(位于我的eclipse项目目录中)从硬盘显示到soapUI,则此Web服务运行良好。但是如果我将url指定为:http://localhost:8080/mwp/mws/mwsid.wsdl这正确地公开了wsdl但找不到模式,我从soapUI得到错误:错误:无法加载url[http://localhost:8080/mwp/mws/Request.xsd]这是spring的配置文件这是wsdl文件:-->-->-->-->这就是我在web.xml中定义的方式:mwsorg.spring

java - Weblogic:调用没有架构名称的 DB2 存储过程(属性 currentSchema)

我有一个在Weblogic上运行的Java应用程序。应用程序需要访问DB2数据库中的存储过程,因此通过JNDI名称配置和访问JDBC数据源。数据来源:ClassDriver:com.ibm.db2.jcc.DB2DriverProperties:user=MYUSERDatabaseName=MYDB以下示例按预期工作。Contextenv=null;DataSourcepool=null;Hashtableht=newHashtable();ht.put(Context.INITIAL_CONTEXT_FACTORY,"weblogic.jndi.WLInitialContextFa