小编and*_*hov的帖子

低延迟消息队列

基本上,我有一个主节点,用于在工作节点之间分配任务。工作人员的数量可能会发生变化,这意味着工作人员无法在服务器端进行硬编码。Master向队列提交一个任务,其中一个worker接收该任务,处理它并返回结果。最关键的方面是低延迟。工作节点上的典型处理时间约为 100-300 毫秒,这意味着消息传递系统不应给处理时间增加明显的延迟。

目前我正在研究请求-响应 JMS 模式。这意味着master将任务提交到共享队列,worker将从队列中取出任务并将结果提交到主节点监听的另一个队列。主人会将响应与请求关联起来。

恐怕JMS可能会给系统带来延迟,这是不可接受的。也许我应该看看其他解决方案?比如 RabbitMQ、JGroups 还是 ZooKeeper?

如果 JMS 适合这里,您能推荐最快的 JMS 代理吗?目前我正在研究ActiveMQ

该解决方案的另一项要求是它应该能够在云端工作

activemq-classic jgroups jms rabbitmq apache-zookeeper

5
推荐指数
1
解决办法
2545
查看次数

JMM 顺序一致性

我试图从 Java 内存模型的角度来理解“顺序一致性”。JLS 的定义,第 17 章对我来说不是很清楚。

我会给出我的看法,如果我错了,请纠正我。具有一个线程顺序一致性的程序意味着如果在程序顺序中action1在action2之前,那么action2应该看到action1的结果。

有两个线程。

线程 1:

action1
action2
Run Code Online (Sandbox Code Playgroud)

线程2:

action3
action4
Run Code Online (Sandbox Code Playgroud)

如果action3看到 的结果action2,那么它也应该看到 的结果action1

java multithreading

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

Oracle删除性能

说我有两张桌子:

create table parent (
  id number not null,
  constraint parent_pk primary key(id),
)

create table child (
  id number not null,
  parent_id number not null,
  constraint child_pk primary key(id),
  constraint child_fk1 foreign key(parent_id)
    references parent(id)
)
Run Code Online (Sandbox Code Playgroud)

父表很大,比如300万条记录.现在我运行delete语句:

delete from parent; //even without where clause
Run Code Online (Sandbox Code Playgroud)

你能解释一下执行这个陈述时实际发生了什么吗?其中没有指定"ON DELETE CASCADE"选项,据我所知,这意味着如果子表包含对父ID的引用,则从父表中删除应该失败.所以这意味着在从父表中删除行之前,Oracle应检查是否存在任何子记录.但这真的非常慢 - 它是逐行删除.

我对么?如果没有,请解释Oracle从父表中删除时的工作原理,并检查子表中是否还没有孤立?

oracle performance foreign-keys

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