小编sno*_*ndy的帖子

非贪婪的正则表达式并不是最接近的选择

我的正则表达式没有选择与内部文本最接近的'cont'对.我该如何解决这个问题?

输入:

cont cont ItextI /cont /cont
Run Code Online (Sandbox Code Playgroud)

正则表达式:

cont.*?I(.*?)I.*?/cont
Run Code Online (Sandbox Code Playgroud)

比赛:

cont cont ItextI /cont
Run Code Online (Sandbox Code Playgroud)

匹配我需要:

cont ItextI /cont
Run Code Online (Sandbox Code Playgroud)

regex

4
推荐指数
1
解决办法
3989
查看次数

分布式事务 - 为什么我们将tranlogs保存到文件系统?

所有事务管理器(Atomikos,Bitronix,IBM WebSphere TM等)都将一些"事务日志"保存到文件系统的"tranlogs"文件夹中.

当一些可怕的事情发生并且服务器崩溃时,有时变更会被破坏.它们需要一些手动恢复程序.

我被告知,通过简单地清除已损坏的tranlogs文件夹,我冒着参与交易的资源状态不一致的风险.

作为一个"愚蠢"的开发者,我对简单的概念感到更舒服.我想认为分布式事务管理应该与常规事务管理相似:

  1. 如果在任何一方出现问题(网络,应用程序错误,超时) - 我希望整个多资源事务不会在其任何部分提交.应尽快清理所有剩菜.
  2. 如果事务管理器出现故障(文件系统故障,电源故障) - 我预计此TM下的所有事务都将被回滚(显然,在数据库超时级别).
  3. 如果我不想进行任何自动TX恢复(无论它意味着什么),则tranlogs的文件存储是可选的.

问题

为什么我不这样想?2PC有什么这么复杂的?

当我清除损坏的tranlogs时,确切的风险是什么?

如果我错了,我真的需要所有混乱的2PC文件系统状态.TX经理是否能够以简单而丑陋的方式实际破坏存储状态这一事实,您是否感到恶心?

database oracle transactions 2phase-commit distributed-transactions

4
推荐指数
1
解决办法
380
查看次数

Grails Geb测试执行顺序

在我的grails应用程序中,我使用Spock和Geb来执行功能测试.

由于所有测试都在同一个数据库上运行,因此我想提供正在执行CRUDSpec类的顺序.如何指定?

  1. 一流测试博客作者创作
  2. 第二类,假设第一次测试成功运行,测试创建后
  3. 第三课为帖子添加评论

grails functional-testing spock geb

3
推荐指数
1
解决办法
1859
查看次数

如何使用nohup从文件中执行spark-shell?

我有一个scala脚本文件,它以经典的方式通过交互式spark-shell成功执行:键入spark-shell,粘贴脚本,等待完成.

我希望能够让这个东西工作并退出ssh会话,在需要时回到结果.

我试过这个,它表现得很奇怪

spark-shell -i file.scala >> out.log 2>&1 &
Run Code Online (Sandbox Code Playgroud)

它只向out.log打印几行常用的spark输出,然后报告该过程已经结束.当我做'ps aux | grep spark'我看到流程中有火花在运行.

当我运行它时,它的行为与预期一致,但我必须打开会话以获得我的结果.

spark-shell -i file.scala
Run Code Online (Sandbox Code Playgroud)

有没有办法让火花贝壳正常使用nohup?

我知道有火花提交工作与罐子,但感觉不太直观,对于一个简单的测试,我必须装配一个罐子,做maven魔术.

apache-spark

3
推荐指数
1
解决办法
5802
查看次数

请求重试Apache HttpClient之间的超时

有人可以分享如何配置现代HttpClient 4.5.3重试失败的请求并等待一段时间再重试之前?

到目前为止,我看起来正确,.setRetryHandler(new DefaultHttpRequestRetryHandler(X, false))它将允许重试X次请求.

但我无法理解如何配置退避:.setConnectionBackoffStrategy()/ .setBackoffManager()根据JavaDocs调节其他内容,而不是重试之间的超时.

httpclient apache-commons-httpclient apache-httpclient-4.x

3
推荐指数
2
解决办法
3434
查看次数

如何将客户端应用程序正确连接到 Scylla 或 Cassandra?

假设我的本地网络中有一个包含 3 个节点的 ScyllaDB 集群(可以是 AWS VPC)。我的 Java 应用程序在同一个本地网络中运行。

我关心如何正确地将应用程序连接到数据库。

  • 我需要为应用程序指定所有 3 个数据库节点的 IP 地址吗?
  • 如果随着时间的推移,一个或多个节点死亡并在其他 IP 上复活怎么办?我必须手动重新配置应用程序吗?
  • 在拥有数十台数据库服务器(可能位于不同数据中心)的大型实际生产案例中,如何正确完成?

我将非常感谢有关如何将 Java 应用程序连接到多节点集群的代码示例。

cassandra scylla

3
推荐指数
1
解决办法
1338
查看次数

如何使用服务器定义的ID构建REST API?

这是在应用程序中创建资源的经典RESTful方法:

# This creates user. Client is responsible to create UUID, which is simple
PUT /users/CLIENT_GENERATED_UUID
# Access user by uuid
GET /users/UUID
Run Code Online (Sandbox Code Playgroud)

当我们触及数据存储性能领域时,事实证明随机生成的UUID由于数据局部性等多种原因而无法很好地发挥作用.

服务器生成的ID有利于提高性能,但它们并不真正与REST匹配:

  1. 如果使用POST来创建资源,则会失去幂等性:REST隐含PUT,GET,DELETE idempotency,而POST则不然.
  2. 在进行PUT之前,您可以要求服务器为您提供一个很好的ID.尽管它感觉非常沉重且不明显,但它也不能保护使用自己的随机ID而不是要求它的虚拟客户端.

有人能在这个架构问题上给我一个暗示吗?

api rest idempotent

2
推荐指数
1
解决办法
1454
查看次数