scala—在aws ebs microservice docker环境中使用kafka,以避免丢失用户请求并处理更多并发点击

w41d8nur  于 2021-06-07  发布在  Kafka
关注(0)|答案(1)|浏览(326)

目前,我正在使用aws-ebs微服务docker环境来部署用scala和akka编写的微服务。如果任何一个microservice docker崩溃并重新启动。在这种情况下,我们将丢失用户请求,并且服务将不会为这些情况返回任何响应。我当前的体系结构可以处理多达1000个并发请求而没有任何问题。为了避免这个问题,我计划使用kafka存储和检索所有请求和响应。
因此,我想使用kafka来管理所有web服务的请求和响应,并包含一个单独的服务或web套接字来处理所有请求并将响应再次存储到kafka。在本例中,如果我的核心进程docker崩溃或重新启动。它不会在任何时间丢失任何请求和响应。它将再次开始读取Kafka的请求并进行处理。
所有web服务都将请求存储在kafka的相关主题中,并从相关响应主题获取响应,然后返回到api响应。我在scalawebservices中找到了使用kafka的以下库。
https://github.com/akka/reactive-kafka/

请检查所附的架构图,我将使用它来有效地处理来自客户端应用程序的大量并发请求。这是一个好办法吗?我需要改变我的架构吗?
在对kafka和microservicedockers做了更多的研究之后,我创建了这个架构。如果这个建筑有什么问题,请告诉我。

kpbwa7wx

kpbwa7wx1#

这是Kafka的面包和黄油,所以我不认为你会遇到任何建筑问题。请注意,Kafka有相当大的运营开销。一个很好的入门资源是Kafka:confluent编写的权威指南(https://www.confluent.io/wp-content/uploads/confluent-kafka-definitive-guide-complete.pdf) . 它详细介绍了许多他们在文档中没有提到的常见操作问题。

相关问题