LoopBack

Java NIO类库Selector机制解析

和自甴很熟 提交于 2020-03-23 14:03:49
一、 前言 自从 J2SE 1.4 版本以来, JDK 发布了全新的 I/O 类库,简称 NIO ,其不但引入了全新的高效的 I/O 机制,同时,也引入了多路复用的异步模式。 NIO 的包中主要包含了这样几种抽象数据类型: Buffer :包含数据且用于读写的线形表结构。其中还提供了一个特殊类用于内存映射文件的 I/O 操作。 Charset :它提供 Unicode 字符串影射到字节序列以及逆映射的操作。 Channels :包含 socket , file 和 pipe 三种管道,都是全双工的通道。 Selector :多个异步 I/O 操作集中到一个或多个线程中(可以被看成是 Unix 中 select() 函数的面向对象版本)。 我的大学同学赵锟在使用 NIO 类库书写相关网络程序的时候,发现了一些 Java 异常 RuntimeException ,异常的报错信息让他开始了对 NIO 的 Selector 进行了一些调查。当赵锟对我共享了 Selector 的一些底层机制的猜想和调查时候,我们觉得这是一件很有意思的事情,于是在伙同赵锟进行过一系列的调查后,我俩发现了很多有趣的事情,于是导致了这篇文章的产生。这也是为什么本文的作者署名为我们两人的原因。 先要说明的一点是,赵锟和我本质上都是出身于 Unix/Linux/C/C++ 的开发人员,对于 Java

如何在 Linux 中更改 MAC 地址

我与影子孤独终老i 提交于 2020-03-21 01:08:25
3 月,跳不动了?>>> 在向你展示如何在 Linux 中更改 MAC 地址之前,让我们首先讨论为什么要更改它。 可能有几个原因。也许你不希望在公共网络上公开你的实际 MAC 地址 (也称为物理地址)?还有可能是网络管理员可能已在路由器或防火墙中阻止了特定的 MAC 地址。 一个实用的“好处”是某些公共网络(例如机场 WiFi)允许在有限的时间内免费上网。如果你还想继续使用,那么伪造 Mac 地址可能会欺骗网络,让它认为是一台新设备。这也是一个有名的原因。 我将展示更改 MAC 地址(也称为欺骗/伪造 MAC 地址)的步骤。 在 Linux 中更改 MAC 地址 让我们一步步来: 查找你的 MAC 地址和网络接口 让我们找出一些 关于 Linux 中网卡的细节 。使用此命令获取网络接口详细信息: ip link show 在输出中,你将看到一些详细信息以及 MAC 地址: 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: eno1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu

使用loopback创建nodejs框架

懵懂的女人 提交于 2020-03-19 12:47:59
一、创建应用 slc loopback 二、创建模块 slc loopback:model 三、运行程序 slc run 四、创建数据库配置 slc loopback:datasource 五、下载连接器 npm install loopback-connector-mongodb --save 六、安装mongodb npm install mongodb apt-get install mongodb-clients apt-get install mongodb-server 七、采用环境变量更改数据库 NODE_ENV=dev slc run 表示使用server/datasources.dev.js配置做数据库配置 八、安装strong-studio API设计工具 npm install -g http://get-studio.strongloop.com/strong-studio.tgz strong-studio 启动studio 来源: https://www.cnblogs.com/HuiLove/p/4976317.html

L3***+VRRP综合实验

久未见 提交于 2020-03-17 01:15:45
微信公众号:网络民工 L3 适用于位于不同地理位置的公司总部和分支之间需要相互通信的场景,由于通信数据需要穿越运营商的骨干网,可以使用BGP在骨干网上发布 路由,使用MPLS在骨干网上转发 报文;由于公司内部各个部门之间需要相互隔离,可以通过该功能实现不同 之间的路由隔离、地址空间隔离和访问隔离。 通常,同一网段内的所有主机上都存在一条相同的、以网关为下一跳的缺省路由。主机发往其他网段的报文将通过缺省路由发往网关,再由网关进行转发,从而实现主机与外部网络的通信。当网关发生故障时,本网段内所有以网关为缺省路由的主机将无法与外部网络通信。增加出口网关是提高系统可靠性的常见方法,此时如何在多个出口之间进行选路就成为需要解决的问题。 VRRP的出现很好的解决了这个问题。VRRP能够在不改变组网的情况下,采用将多台路由设备组成一个虚拟路由器,通过配置虚拟路由器的IP地址为默认网关,实现默认网关的备份。当网关设备发生故障时,VRRP机制能够选举新的网关设备承担数据流量,从而保障网络通信的可靠性。 在配置VRRP备份组内各交换机时,建议将Backup配置为立即抢占,即不延迟(延迟时间为0),而将Master配置为延时抢占,并且配置15秒以上的延迟时间。这样配置的目的是为了在网络环境不稳定时,在上下行链路的状态恢复一致性期间等待一定时间

keepalived+nginx高可用

核能气质少年 提交于 2020-03-17 01:02:51
背景 通常情况下,利用nginx进行负载均衡,使后端服务高可用,某个后台服务出现问题可以动态剔除,不影响系统的正常运行,但是nginx只有一个,这时候是个瓶颈,会出现单点故障,nginx出现问题,服务将会出现中断,影响系统的正常运行。 keepalived解决nginx单点问题 利用keepalived故障切换转移的功能,部署多个nginx服务,比如两个,一个master对外服务,另外一个处于backup热备服务,对外通过vip进行访问。当master服务出现问题的时候,backup热备服务的机器将会动态接管vip,接管vip后backup热备服务将会对外服务,从而解决nginx单点故障问题。 keepalived配置 [root@k8snode01 keepalived]# more keepalived.conf ! Configuration File for keepalived global_defs { notification_email { acassen@firewall.loc failover@firewall.loc sysadmin@firewall.loc } notification_email_from Alexandre.Cassen@firewall.loc smtp_server 192.168.200.1 smtp_connect

基础命令学习目录首页

南楼画角 提交于 2020-03-14 10:06:05
基础命令学习目录首页 原文链接:https://blog.csdn.net/weixin_37886382/article/details/79716879 许多windows非常熟悉ipconfig命令行工具,它被用来获取网络接口配置信息并对此进行修改。 Linux系统 拥有一个类似的工具,也就是ifconfig(interfaces config)。通常需要以root身份登录或使用sudo以便在Linux机器上使用ifconfig工具。依赖于ifconfig命令中使用一些选项属性,ifconfig工具不仅可以被用来简单地获取网络接口配置信息,还可以修改这些配置。 1. 命令格式: ifconfig [网络设备] [参数] 2. 命令功能: ifconfig 命令用来查看和配置网络设备。当网络环境发生改变时可通过此命令对网络进行相应的配置。 3. 命令参数: up 启动指定网络设备/网卡。 down 关闭指定网络设备/网卡。该参数可以有效地阻止通过指定接口的IP信息流,如果想永久地关闭一个接口,我们还需要从核心路由表中将该接口的路由信息全部删除。 arp 设置指定网卡是否支持ARP协议。 -promisc 设置是否支持网卡的promiscuous模式,如果选择此参数,网卡将接收网络中发给它所有的数据包 -allmulti 设置是否支持多播模式,如果选择此参数

CentOS7修改设置静态IP和DNS

爱⌒轻易说出口 提交于 2020-03-14 05:28:53
当前位置: 主页 > CentOS入门 > 系统配置 > CentOS7修改设置静态IP和DNS 时间: 2016-02-22 00:55 来源: blog.csdn.net 作者: get_set的专栏 举报 点击: 4048次 最近因为学习Puppet,用虚拟机装了个CentOS,使用的NAT的网络模式,为了防止再次启动系统的时候网络IP发生变化,因此设置静态IP和DNS。 由于CentOS是最小化安装,没有 ifconfig 命令,因此可以采用 ip 命令查看。 查看IP分配情况: # ip addr 发现里边只有一个LOOPBACK的127.0.0.1的回环地址,原来CentOS刚安装后默认是不启动网络连接的。 设置IP和DNS主要在下面的配置文件中修改: # vi /etc/sysconfig/network-scripts/ifcfg-* 由于最小化安装没有vim,所以使用vi。具体的配置文件需要到network-scripts目录下看,通常是以 ifcfg- 开头的,比如 ifcfg-eth0 ,我的是 ifcfg-eno16777736 ,对于我这种洁癖来说回头非得改了这个乱七八糟的名字,另一个 ifcfg-lo 就是LOOPBACK网络咯。 # vi /etc/sysconfig/network-scripts/ifcfg-[tab两下] ifcfg

服务器上centos 7 配置静态IP

雨燕双飞 提交于 2020-03-14 03:55:12
参考连接: http://blog.csdn.net/tstcylq/article/details/39699683 http://blog.csdn.net/get_set/article/details/50707553 1.服务器新安装上Centos 7 后直接改静态IP, 发现ping不通地址。由于没有联外网,在使用以下语句时,会返回找不到network.service的问题: systemctl enable network.service    这里重启一下NetworkManager.service就可以了,操作如下: systemctl stop NetworkManager.service systemctl disable NetworkManager.service systemctl enable NetworkManager.service systemctl start NetworkManager.service 2.下面开始设置静态IP 查看IP分配情况: ip addr 发现里边只有一个LOOPBACK的127.0.0.1的回环地址。 设置IP和DNS主要在下面的配置文件中修改: vi /etc/sysconfig/network-scripts/ifcfg 连按两下tab. 具体的配置文件需要到network-scripts目录下看,通常是以

127.0.0.1 和 0.0.0.0 地址的区别

爷,独闯天下 提交于 2020-03-12 19:19:41
1. IP地址分类 1.1 IP地址表示 IP地址由两个部分组成,net-id和host-id,即网络号和主机号。 net-id:表示ip地址所在的网络号。 host-id:表示ip地址所在网络中的某个主机号码。 即: IP-address ::= { <Network-number>, <Host-number> } 1.2 IP地址分类 IP地址一共分为5类,即A~E,它们分类的依据是其net-id所占的字节长度以及网络号前几位。 * A类地址:网络号占1个字节。网络号的第一位固定为0。 * B类地址:网络号占2个字节。网络号的前两位固定为10。 * C类地址:网络号占3个字节。网络号的前三位固定位110。 * D类地址:前四位是1110,用于多播(multicast),即一对多通信。 * E类地址:前四位是1111,保留为以后使用。 其中,ABC三类地址为单播地址(unicast),用于一对一通信,是最常用的。 1.3 特殊IP地址 特殊IP地址就是用来做一些特殊的事情。RFC1700中定义了以下特殊IP地址。 1. {0,0}:网络号和主机号都全部为0,表示“本网络上的本主机”,只能用作源地址。 2. {0,host-id}:本网络上的某台主机。只能用作源地址。 3. {-1,-1}:表示网络号和主机号的所有位上都是1(二进制),用于本网络上的广播,只能用作目的地址

OSPF虚链路+末节区域+认证

試著忘記壹切 提交于 2020-03-12 19:12:45
OSPF简介 OSPF是一个内部网关协议,用于在单一自治系统内决策路由。是一种典型的链路状态(Link-state)的路由协议。 OSPF通过路由器之间通告网络接口的状态来建立链路状态数据库,生成最短路径树,每个OSPF路由器使用这些最短路径构造路由表。在一个AS(Autonomous System,自治系统)中,所有的OSPF路由器都维护一个相同的描述这个AS结构的数据库,该数据库中存放的是路由域中相应链路的状态信息。 作为一种链路状态的路由协议,OSPF将链路状态组播数据LSA(Link State Advertisement)传送给在某一区域内的所有路由器。区域内的路由器收到LSA后,会将其放入LSDB(link state database,链路数据库)中,由其计算出最优的路径放入路由表中。 OSPF主要根据cost值来选择路径,计算式为:${10}^{8}$÷接口带宽。OSPF会进行周期,每30min更新一次,是针对于每一条LSA的更新,我们称这种更新方式为错峰出行。 OSPF同样具有邻居的概念,通过向邻居发送HELLO包来维系邻居关系。每10s发一次,若40s内未收到邻居的应答则认为邻居死亡。 OSPF报文直接封装在IP报头中发送。 OSPF几种版本: version 1,用于实验环境下 version 2,基于IPv4的版本 version 3,基于IPv6的版本