我正在使用 AWS sdk 开发基于 SQS 的队列发布订阅。
在非常基本的原型中,我将消息同时推送到我已经创建的队列中。但是,我如何确定我的消息被推送到队列中?
无论出于何种原因,推送的消息在此过程中都不会失败的保证是什么?
Amazon API 查询提供具有与该特定发送消息请求关联的 RequestID 的 ResponseMetadata。得到它是否足以肯定地确认将消息推送到 Queue ?
String requestId = sqs.sendMessage(request).getSdkResponseMetadata().getRequestId();
Run Code Online (Sandbox Code Playgroud)
Amazon sendmessage 请求是否没有提供带有 Http 代码的响应正文?
我想并行执行多个数据库查询,并将结果存储在映射中。我正在尝试这样做,但是访问地图时地图没有完全填充。
我做错什么了吗?
public Map<MapKeyEnums, Set<String>> doDBCalls(String phoneNumber, long timestamp) {
Map<MapKeyEnums, Set<String>> instrumentsEdgesMap = new EnumMap<>(MapKeyEnums.class);
CompletableFuture.supplyAsync(() -> dbReadService.getCall(phoneNumber, PhoneNumber.class, "ABC", timestamp)).
thenApply(x -> instrumentsEdgesMap.put(MapKeyEnums.ABC, x));
CompletableFuture.supplyAsync(() -> dbReadService.getCall(phoneNumber, PhoneNumber.class, "XYZ", timestamp)).
thenApply(x -> instrumentsEdgesMap.put(MapKeyEnums.XYZ, x));
CompletableFuture.supplyAsync(() -> dbReadService.getCall(phoneNumber, PhoneNumber.class, "DEF", timestamp)).
thenApply(x -> instrumentsEdgesMap.put(MapKeyEnums.DEF, x));
return instrumentsEdgesMap;
}
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激,在此先感谢。
java parallel-processing multithreading java-8 completable-future
我想知道流(或收集器)中是否已经实现了一个功能,它首先按属性对流进行分组,然后返回按另一个属性排序的列表中的第一个元素。例如,以下代码尝试使用第一个属性对对象流进行分组,然后想要收集具有第二个属性的最高值的对象。
class MyClass{
String att1;
String att2;
}
Run Code Online (Sandbox Code Playgroud)
现在,我想用 Stream myClassStream 来实现这样的东西 -
Map<String,MyClass> myMap = myClassStream().collect(Collectors.groupingBy(MyClass::getAtt1)); //Now I want to do Sorting after grouping to collect only the element which has the highest value of attr2.
Run Code Online (Sandbox Code Playgroud)
我使用简单 for 循环的代码是:
Map<String, MyClass> postAnalyticsMap = new HashMap<>();
for (MyClass post : myClassList) {
if (post.get(post.getAtt1()) == null) {
post.put(post.getAtt1(), post);
} else {
MyClass existingClass = postAnalyticsMap.get(post.getAtt1());
if (existingPostAnalytics.getAtt2() < post.getAtt2()) {
postAnalyticsMap.put(post.getAtt1(), post);
}
}
}
Run Code Online (Sandbox Code Playgroud)
任何帮助都感激不尽。
我正在尝试编译一个名为web-server的 Maven 项目,该项目依赖于指定依赖版本范围 [2.0,3.0) 内的search-client 。然而,由于存储库中“没有可用的版本 > com.test.search:search-client:jar:[2.0,3.0) 在指定范围内”,编译失败。
这些是我正在遵循的步骤:
这会在我的本地 m2 存储库中为此客户端 pom 构建一个 2.0-SNAPSHOT jar。
这不会编译并给出以下错误:
[错误] 无法在项目通用上执行目标:无法解析项目 com.test.web:common:jar:2.0-SNAPSHOT 的依赖项:无法在 com.test.search:search-client:jar:[2.0 处收集依赖项,3.0): 指定范围内没有可用于 com.test.search:search-client:jar:[2.0,3.0) 的版本 -> [帮助 1]
网络服务器 POM:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<artifactId>web-parent</artifactId>
<groupId>com.test.web</groupId>
<version>2.0-SNAPSHOT</version>
</parent>
<artifactId>common</artifactId>
<packaging>jar</packaging>
<properties>
<kotlin.version>1.3.61</kotlin.version>
</properties>
<dependencies>
<dependency>
<groupId>com.test.search</groupId>
<artifactId>search-client</artifactId>
<version>[2.0,3.0)</version>
</dependency>
.
.
.
//Many More Dependencies
</dependencies>
<build>
<sourceDirectory>src/main/kotlin</sourceDirectory>
<testSourceDirectory>src/test/kotlin</testSourceDirectory>
<!--<testSourceDirectory>src/test/kotlin</testSourceDirectory>-->
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
</plugin>
<plugin>
<artifactId>maven-source-plugin</artifactId> …Run Code Online (Sandbox Code Playgroud) 从javadoc,我理解Java默认情况下将int数据类型作为32位带符号的二进制补码整数,其最小值为-2 ^ 31,最大值为2 ^ 31-1.
如果是这种情况,为什么会这样:
System.out.println(Integer.parseInt("1111", 2));
Run Code Online (Sandbox Code Playgroud)
给出值15而不是-1(2的补码有符号数).
我目前有一个 3 节点 Kafka 集群,它连接到我的 Zookeeper 整体中的基本 chroot 路径。
zookeeper.connect=172.12.32.123:2181,172.11.43.211:2181,172.18.32.131:2181
Run Code Online (Sandbox Code Playgroud)
现在,我想添加一个新的 5 节点 Kafka 集群,它将连接到同一个 Zookeeper 集合中的其他一些 chroot 路径。
zookeeper.connect=172.12.32.123:2181,172.11.43.211:2181,172.18.32.131:2181/cluster/2
Run Code Online (Sandbox Code Playgroud)
这些配置是否会像两个 chroot 的相对路径一样工作?据我了解,原始 Kafka 集群应该连接到基本 chroot 路径以外的其他路径上,以实现更好的隔离。
另外,跨 Kafka 集群拥有相同的 Zookeeper 集合是否很好?该文档表示,通常最好为不同的集群提供隔离的 Zookeeper 集合。
当我尝试将epochTime转换为LocalDate时,出现此异常:
1)日期:2017-05-05 10:08:52.0
2)对应纪元:1493959132000
LocalDate lastUpdatedDate = LocalDate.ofEpochDay(1493959132000);
Run Code Online (Sandbox Code Playgroud)
例外情况:
java.time.DateTimeException: Invalid value for Year (valid values -999999999 - 999999999): 4090323145
at java.time.temporal.ValueRange.checkValidIntValue(ValueRange.java:330)
at java.time.temporal.ChronoField.checkValidIntValue(ChronoField.java:722)
at java.time.LocalDate.ofEpochDay(LocalDate.java:341)
Run Code Online (Sandbox Code Playgroud)
我了解到,java.time.LocalDate的源代码在https://docs.oracle.com/javase/8/docs/api/java/time/LocalDate.html#ofEpochDay-long-
这实际上意味着什么,什么时候出现?
java ×6
java-8 ×3
amazon-sqs ×1
apache-kafka ×1
epoch ×1
java-stream ×1
localdate ×1
maven ×1
pom.xml ×1
response ×1