ssh [username@][/path/]
ssh 可以远程登录ssh协议的主机
https://www.runoob.com/w3cnote/set-ssh-login-key.html
在终端界面中输入”vi /etc/ssh/sshd_config”。将#PasswordAuthentication yes的注释去掉
输入命令”service ssh start或/etc/init.d/ssh start”。启动ssh服务。
scp免密传输文件
cd ~/.ssh
ssh-keygen -t rsa
scp id_rsa.pub username@ip:~/.ssh
cat id_rsa.pub >>authorized_keys
chmod 600 authorized_keys
https://linuxtools-rst.readthedocs.io/zh_CN/latest/tool/scp.html
https://blog.csdn.net/COCOLI_BK/article/details/90054236
元数据:又称中介数据,中继数,为描述数据的数据,主要是描述数据属性的信息,用来支持如指示存储位置,历史数据,资源查找,文件记录等功能。
数据平面指设备根据控制平面生成的指令去完成不同端口上的各种类型的数据处理、转发和状态收集等。例如L2/L3/ACL/QOS/组播/安全防护等各功能的具体执行过程都属于交换机数据平面的任务范畴,路由器根据路由协议生成的路由表对接受的数据包从相应的出接口转发出去。
控制平面负责控制和管理设备协议处理与计算,提供了数据平面数据处理转发前所必须的各种网络信息和转发查询表项,如生成树协议、VLAN协议、ARP协议、各种路由协议和组播协议等等的管理和控制。比如路由协议用于路由信息的计算、路由表的生成。
管理平面主要包括设备管理系统和业务管理系统。设备管理系统负责网络拓扑、设备接口、设备特性的管理,同时可以给设备下发配置脚本。业务管理系统用于对业务进行管理,比如业务性能监控、业务告警管理等。网络管理人员使用telnet、web、ssh、snmp、rmon等方式来管理设备。管理平面提供了控制平面正常运行的前提,管理平面必须预先设置好控制平面中各种协议的相关参数,并支持在必要时刻对控制平面的运行进行干预。
共享内存首先为一块实际物理内存,该块物理内存地址被映射到对应的不同进程地址空间中。
cat /proc/sys/kernel/shmmax
共享内存总体大小限制(以字节为单位)
cat /proc/sys/kernel/shmmni
SHMMNI参数,这个内核参数用于设置系统范围内共享内存段的最大数量。该参数的默认值是 4096 。这一数值已经足够,通常不需要更改
cat /proc/sys/kernel/shmall
SHMALL共享内存内核参数。该参数控制着系统一次可以使用的共享内存总量(以页为单位)。简言之,该参数的值始终应该至少为:ceil(SHMMAX/PAGE_SIZE)
shmget方法创建共享内存,或者访问一个已存在的共享内存区。
int shmget(key_t key, size_t size, int flag);
shmat方法映射共享内存与进程地址空间。
void *shmat(int shmid, const void *shmaddr, int shmflg);
shmdt方法来释放映射关系
int shmdt(const void shmaddr);
shmctl ( ):共享内存控制
int shmctl(int shmid, int cmd, struct shmid_ds *buf);
shmdt和shmctl的区别:
shmdt是将共享内存从进程空间detach出来,使进程中的shmid无效化,不可以使用。但是保留空间。而shmctl(sid, IPC_RMID, 0)则是删除共享内存,彻底不可用,释放空间。
ipcs -a 查看当前使用的共享内存、消息队列及信号量所有信息。
ipcs -p 命令可以得到与共享内存、消息队列相关进程之间的消息。
ipcs -u 命令可以查看各个资源的使用总结信息,其中可以看到使用的信号量集的个数、信号量的个数,以及消息队列中当前使用的消息个数总数、占用的空间字节数。
ipcs -l 命令可以查看各个资源的系统限制信息,可以看到系统允许的最大信号量集及信号量个数限制、最大的消息队列中消息个数等信息。
释放所有已分配的共享内存:
ipcs -m | awk '$2 ~ /[0-9]+/ {print $2}' | while read s; do sudo ipcrm -m $s; done
ZooKeeper是一个开源的的分布式服务框架,是Google Chubby的一个开源实现。主要用来解决分布式应用中经常遇到的,如:统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等。
zookeeper适合写少读多。因为读不需要和leader交互。
ZooKeeper不适合作为大规模服务化场景下的注册中心,因为它是一个典型的CP系统。它的写操作存在单点问题,无法通过水平扩容来解决。当客户端发送写请求时,集群中的其他节点会优先转发给Leader节点,由Leader节点来负责具体的写入操作,只有当集群中N/2+1个节点都同步成功后,一次写操作才算完成。当服务扩容时,TPS越高,服务注册时的写入效率就越低,这会导致上游产生大量的请求排队,表象就是服务启动变得异常缓慢。
zookeeper使用zab协议(Zookeeper Atomic Broadcast 原子广播)。
zookeeper是最终一致。
在ZooKeeper集群中,每个节点共有3种角色和4种状态:
角色: leader,follower,observer
状态: leading,following,observing,looking
同一时刻ZooKeeper集群中只会有一个leader,其他的都是follower和observer。Observer不参与投票,默认情况下ZooKeeper中只有leader和follower两个角色。
“过半存活即可用”,整个集群如果对外要可用的话,那么集群中必须要有过半的机器是正常工作并且彼此之间能够正常通信。基于这个特性,那么如果想搭建一个能够允许F台机器down掉的集群,那么就要部署一个由2xF+1 台机器构成的ZK集群。
默认ZK是不会自动清理快照和事务日志,需要交给管理员自己来处理。
怀疑zk丢数据看dataVersion。(节点数据的更新次数)
dataLength: 节点数据的字节数。
ZK使用log4j作为日志系统。
znode节点类型:持久/临时 持久:写入后,session挂了,节点还在 临时:写入后,session挂了,节点被删
znode的ACL访问控制
模式1:digest 用户名/密码
模式2:ip 仅限指定IP访问
模式3:world 无权限控制
模式4:super 可以控制所有
模式5:IPMOD 指定IP并指定模块访问
zookeeper的典型使用场景:
—配置管理(数据的订阅、发布)
—服务注册与发现(名字服务)
—集群管理&master选举
—分布式锁
—分布式队列
server.A=B:C:D
其中A是一个数字,代表服务器编号,也是myid文件里面的值。集群中每台服务器编号都必须唯一,所以要保证每台服务器中的myid文件中的值不同。
B代表服务器的IP地址
C表示服务器与集群中leader服务器交换信息的端口
D表示选举时服务器相互通信的端口
myid这个文件只包含一个数字,和server id对应。
sh zkServer.sh all_zk_status
sh zkServer.sh status
leader表示对应的zk是主,follower代表是从,not running表示故障。
sh zkServer.sh start
sh zkCli.sh -server ip:port,其中ip为server端ip,port为ip对应端口
ip,port可以从配置文件中获取。
help ******查看可用命令。
ls / ******查看子znode。
ls / watch *******查看子znode并设置子节点watch
get / *******查看znode数据
addauth ipmod [name] ********添加zk访问权限
getAcl / ********查看znode的acl
create [-s] [-e] path data acl ********创建znode
其中-s表示创建顺序节点,-e表示创建临时节点
set path data *********修改znode的数据
stat / *********查看znode状态信息(ctime表示znode创建时间、mtime表示znode修改时间)
delete / *********删除znode及其子节点
quit *********退出
jps -l
ps -ef|grep zk
1.myid改名,让zk进程启动失败
2.sh zkServer.sh stop
https://zookeeper.apache.org/doc/r3.6.3/zookeeperTools.html
https://www.cnblogs.com/andy6/p/7674028.html
https://blog.csdn.net/weixin_36586120/article/details/120428292
http://logging.apache.org/log4j/1.2/manual.html#defaultInit
ZooKeeper—-Client端
http://www.cnblogs.com/ggjucheng/p/3376548.html
ZooKeeper 通信模型
https://www.cnblogs.com/ggjucheng/p/3376568.html
https://www.cnblogs.com/andy6/p/7674028.html
https://xiaoxiami.gitbook.io/zookeeper/
zookeeper Acl权限控制
https://codeantenna.com/a/zBcPKsr9ll
zookeeper客户端 zkCli使用及常用命令
https://www.cnblogs.com/yangzhenlong/p/8271151.html
zk 常用命令 https://ld246.com/article/1535880755991