分布式与大数据的设计与实现[2]:搞分布式的人,一定要懂幂等性,将它深入骨子里

栏目:分布式与大数据 作者:admin 日期:2018-10-31 评论:0 点击: 677 次

幂等性是什么,简单的说一下吧:类似于1的n次方,无论n是多少它的值永远是1,这个就是幂等性。如果2的n次方就不是幂等性了。抽象的说一个方法或者函数在多次执行和一次执行结果一样就表示方法、函数是有幂等性。更多的介绍,请自行搜索一下吧。

在单进程应用里面,人们关注的是单例(其实很多人不明白单例,下文我会讲到),而在多进程应用里面,也就是说在分布式系统里面,人们关注的是幂等性。所以,搞分布式的人,一定要把幂等性放在首要地位。不同的领域有不同的特点,进入分布式领域,那么一定要明白幂等这个概念。

单例这个概念很重要的,但是未必很多人能深刻的认识到单例。最近群里的成员路漫漫(494511661),问我如何把kafka里面的log4j日志输出的到指定文件。他遇到的问题是:他自己的应用程序可以将log4j的信息输出到指定目录里面,但是kafka里面用的log4j不能,他想查看一下kafka的debug信息。
我的分析是:在同一个进程里面,应该是用的同一个logger,因为logger是单例啊,怎么会出现不一样的结果呢?只有一种可能,那就是他应用程序里面的logger和kafka里面的logger不是一个东西,给他说了之后,他恍然大悟:kafka里面用的是sl4j。