Will the order of message be guaranteed when using asyno IO?

Posted by wanglei2@geekplus.com on
URL: http://deprecated-apache-flink-user-mailing-list-archive.369.s1.nabble.com/Will-the-order-of-message-be-guaranteed-when-using-asyno-IO-tp37505.html


Read kafka message and  write the message to MySQL
Writing to database is the bottleneck when too much message is sent to kafka with high throughput. 

So i want to change the operator to asynchronously. 

 public void asyncInvoke(ObjectNode node, ResultFuture<Integer> resultFuture) throws Exception {
    SqlProvider sqlProvider = new SqlProvider();

String tableName = node.get("metadata").get("topic").asText();
String sql = sqlProvider.getSql(node);
CompletableFuture.supplyAsync(new Supplier<Integer>() {
@Override
public Integer get() {
return Integer.valueOf(namedTemplate.update(sql, sqlProvider.getSqlParaMap()));
}
}).thenAccept((Integer res) -> {
resultFuture.complete(Collections.singletonList(res));
});

}

I want to know if there will be order issues. 
For example the kafaka message order is:
First:          update table table1 set a = 1
Second:     update table table1 set a = 2

It is possible that the final value in database is 1 instead of 2.

Thanks
Lei