Apache flink 如果不同的作业可以在同一工人中的不同分离流程中运行,是否会更稳定?
从Flink中我们知道“每个工作者(TaskManager)都是一个JVM进程,可以在单独的线程中执行一个或多个子任务”Apache flink 如果不同的作业可以在同一工人中的不同分离流程中运行,是否会更稳定?,apache-flink,flink-streaming,Apache Flink,Flink Streaming,从Flink中我们知道“每个工作者(TaskManager)都是一个JVM进程,可以在单独的线程中执行一个或多个子任务” 这意味着每个TaskManager只有一个进程,因此,如果在同一个TaskManager中安排了两个作业(意味着它们都在同一个进程中运行),则它们会相互影响。也就是说,一个作业的STW GC也会导致另一个作业的暂停,而导致进程终止的一个作业的致命错误会影响所有其他作业,那么,为什么不让不同的作业在不同的进程上运行以避免上述问题呢?我认为区别在于线程共享相同的内存空间。。有了J
这意味着每个TaskManager只有一个进程,因此,如果在同一个TaskManager中安排了两个作业(意味着它们都在同一个进程中运行),则它们会相互影响。也就是说,一个作业的STW GC也会导致另一个作业的暂停,而导致进程终止的一个作业的致命错误会影响所有其他作业,那么,为什么不让不同的作业在不同的进程上运行以避免上述问题呢?我认为区别在于线程共享相同的内存空间。。有了JVM,内存消耗很容易失控:这完全取决于您自己,如果需要将集群彼此隔离,您可以为您的工作运行单独的集群。虽然在操作上这显然有点痛苦,但实际上,如果你需要为每项工作分离任务经理,你无论如何都在创建新的集群。这是一个选项,但不是一个好选项,因为它增加了管理的复杂性。