Nodejs能获取到用户的IP地址吗

Nodejs能获取到用户的IP地址吗,第1张

requestgetRemoteAddr(),这种方法在大部分情况下都是有效的。但是在通过了 Apache,Nagix等反向代理软件就不能获取到客户端的真实IP地址了。

如果使用了反向代理软件,用 requestgetRemoteAddr()方法获取的IP地址是:127001或 1921681110,而并不是客户端的真实IP。

今天在工作中同事问我在高可用集群下如何获取活跃的NameNode的信息。当时有点懵,一时间不知道咋获取。

然后度娘了一下,最后找到了办法。

首先先说一下啥事高可用

HA的意思是High Availability高可用,指当当前工作中的机器宕机后,会自动处理这个异常,并将工作无缝地转移到其他备用机器上去,以来保证服务的高可用。

HA方式安装部署才是最常见的生产环境上的安装部署方式。Hadoop HA是Hadoop 2x中新添加的特性,包括NameNode HA 和 ResourceManager HA。因为DataNode和NodeManager本身就是被设计为高可用的,所以不用对他们进行特殊的高可用处理。

也就是说,活跃NameNode的ip不固定,一开始我也是开在这里不知道如何下手,毕竟不是自己搭建的环境拿来玩的,一般情况下你都接触不到配置文件,所以怎么获取活跃的NameNode IP,同事一开始是通过便利所有的NameNode 虽然实现了,但是这个也是别人提供了可能IP的结果,所以也不是最优的

下面是我通过查找资料get到的方法,是目前为止我找到的最优方法,在此记录一下

import orgapachehadoopfsFileSystem

import orgapachehadoophdfsHAUtil

def getActiveNameNode() = {

val conf = new Configuration()

var fileSystem: FileSystem = null

fileSystem = FileSystemget(conf)

try {

val active: InetSocketAddress = HAUtilgetAddressOfActive(fileSystem)

val address: InetAddress = activegetAddress

val ip: String = addressgetHostAddress

val port: Int = activegetPort

s"hdfs://" + ip + ":" + port

} catch {

case e: Exception => eprintStackTrace()

} finally {

null

}

}

留码必留包

如果有更好的方法 欢迎留言

以上就是关于Nodejs能获取到用户的IP地址吗全部的内容,包括:Nodejs能获取到用户的IP地址吗、高可用集群获取活跃NameNode的信息、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9315297.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-27
下一篇2023-04-27

发表评论

登录后才能评论

评论列表(0条)

    保存