我在 aws eventsbridge 中使用事件模式创建了一个事件规则:
{
"source": [
"aws.s3"
]
}
Run Code Online (Sandbox Code Playgroud)
目标是 CloudWatch 日志组。现在,当我在存储桶级别更改某些内容(例如存储桶权限)时,我会看到云监视中捕获的事件,但是当我在 s3 存储桶中添加/删除文件时,什么也没有发生。这里出了什么问题?
cms 和 g1 垃圾收集器之间有什么区别,这使得 g1 更好?
大多数地方都说这是因为在 G1 中,堆被分为多个区域,然后区域的集合被标记为年轻/年老代,并且 gc 在少数区域上运行,而不是在整个堆上运行。我正在尝试进一步了解这一点,并且还有几个问题:
当 young gc 运行时(即 stop the world),它会在所有年轻代区域上运行,这意味着堆的整个年轻部分以及不少年轻代区域。那么它与 CMS 所需的时间相同吗?
增量压缩 - 混合收集 - 现在我认为 G1 具有优势,因为整个堆的并发标记不断发生,并且存在在所有年轻区域 + 少数旧区域上运行的混合 gc 周期(首先是大多数垃圾)。因此它也会继续从老一代中删除垃圾,而不是等待 Full gc 发生。这是对的吗 ?
上述几点是否正确?还有哪些其他差异使 g1 更好?
为什么 g1 需要这两种数据结构?
我的理解是:
为什么RS不能保存所有信息而使用CT?
是不是因为否则会有太多重复数据存储在不同的 RS 中?例如 - 年轻代有区域 A 和 B,这两个区域中的对象具有来自老一代的相同外部引用。在这种情况下,与区域 A 和 B 关联的两个 RS 将存储该冗余信息,这种解释正确吗?
每当容器从 jib 映像启动时,是否可以使用 cmd 或入口点或 jib maven 插件中的任何其他机制运行 Linux 命令,然后启动 java 进程?
就我而言,我想运行这个命令:
echo "127.0.0.1 $HOSTNAME" >> /etc/hosts
Run Code Online (Sandbox Code Playgroud) 我使用 S3 存储桶作为代码管道中的源代码提供程序。如果 S3 存储桶上未启用版本控制,则会引发错误。我的问题是为什么必须在源存储桶上启用版本控制?
我在开发环境中有一个fargate集群,其中包含支持单个客户端的ecs服务。
我们需要再增加 50 个客户。所以想知道有关 Fargate 集群的一些最佳实践。我环顾四周,没有找到任何合适的内容(包括 aws fargate FAQ)。任何人都可以帮助我解决以下问题:
有一个共享资源,我们需要按照以下步骤对其执行读/写操作:
我已经编写了如下所述的代码,但是此代码的问题是,当单个读取线程获得了锁时,所有读取都会被阻止。此外,我正在考虑使用布尔标志,例如canReadContinue。现在,当read第一次获得锁时,我会将此标志翻转为true,如果为true,则其他线程不应尝试获取该锁。
class SharedResource {
Lock writeLock
public Object read() {
writeLock.acquire()
doRead()
}
public void write(Object toBeWritten) {
writeLock.acquire()
doWrite(toBeWritten)
writeLock.release()
}
}
Run Code Online (Sandbox Code Playgroud)
预期没有写操作时多个线程应该能够读取。
更新1:
公共类SharedResource {
private Object writeLock = new Object();
private volatile boolean canReadContinue;
private volatile int readCount;
public void write(Object newState) throws InterruptedException {
synchronized (writeLock) {
// To make sure no read is going on
while (readCount > 0) {
wait();
}
System.out.println("Write thread has the lock.");
doWrite(newState);
}
}
public Object …Run Code Online (Sandbox Code Playgroud) java ×3
amazon-s3 ×2
g1gc ×2
amazon-ecs ×1
aws-fargate ×1
concurrency ×1
jib ×1
jvm ×1
maven-jib ×1