- 博客(119)
- 收藏
- 关注
原创 Docker Swarm集群安装Visualizer
Visualizer是一个图形化界面,显示docker swarm集群中各个节点状态、运行容器以及负载情况的监控工具。环境部署:搭建好Docker Swarm集群集群节点:server11(manager)、server12(node)、server13(node)一、Visualizer安装与部署1、安装Visualizer(三个节点)[root@server11 ~]# docke...
2020-09-18 00:55:04
841
1
原创 Docker资源限制
blkio: 这个subsystem可以为块设备设定输入/输出限制,比如物理驱动设备(包括磁盘、固态硬盘、USB等)。cpu: 这个subsystem使用调度程序控制task对CPU的使用。cpuacct: 这个subsystem自动生成cgroup中task对CPU资源使用情况的报告。cpuset: 这个subsystem可以为cgroup中的task分配独立的CPU(此处针对多处理器系统...
2020-09-18 00:54:39
1221
原创 Docker compose(多容器架构实现负载均衡)
一、基本知识Docker Compose 将所管理的容器分为三层,工程(project),服务(service)以及容器(contaienr)。Docker Compose 运行的目录下的所有文件(docker-compose.yml, extends 文件或环境变量文件等)组成一个工程,若无特殊指定工程名即为当前目录名。一个工程当中可包含多个服务,每个服务中定义了容器运行的镜像,参数,依赖。一...
2020-09-18 00:54:13
1453
1
原创 Docker Swarm集群实现负载均衡
环境部署:三台rhel7.3主机server11:172.25.51.11server12:172.25.51.12server13:172.25.51.13注意:关闭 docker-compose[root@foundation51 ~]# cd /tmp/docker/compose/[root@foundation51 compose]# docker-compose sto...
2020-09-18 00:53:45
1470
原创 PHP 7.2.8编译安装bcmath扩展报错问题解决
PHP 7.2.8编译安装bcmath扩展后,重启服务,出现以下报错信息:<b>Warning</b>: PHP Startup: Invalid library (maybe not a PHP library) 'bcmath.so' in <b>Unknown</b> on line <b>0</b><br />解决办法:返回到之前,删除bcmath.so模块,make clean,重新编译[root@ecs-
2020-07-16 21:49:58
518
原创 PHP 7.2.8编译安装bcmath扩展
最近在做Zabbix 4.0连接MySQL 8.0数据库,PHP已经成功升级到7.2.8版本,但访问zabbix web页面报错:从报错信息中,我们可以看到当前php版本中不支持bccomp()函数,而bccomp()函数属于bcmath扩展,因此可以判断出当前php编译时缺少bcmath扩展模块。下面我们开始为PHP 7.2.8编译安装bcmath扩展模块。注意:PHP的linux版本需要手动安装bcmath扩展,在PHP的源码包中默认包含bcmath的安装文件,只需手动安装一次即可。进入PH
2020-07-16 21:41:13
1097
1
原创 Zabbix 4.0连接MySQL 8.0密码验证插件问题
最近在做Zabbix 4.0连接MySQL 8.0数据库,中间遇到很多问题,比如由于MySQL 8.0默认使用了新的密码验证插件caching_sha2_password,而之前的PHP版本中所带的mysqlnd无法支持这种验证。解决方案:一、升级PHP支持MySQL 8.0的新验证插件,目前PHP 7.2.8支持新的密码验证插件caching_sha2_password,可以直接连接MySQL 8.0。我们通过phpinfo()函数了解当前安装的PHP 7.2.8支持密码验证插件caching_sha
2020-07-16 21:15:39
741
1
原创 数组中的逆序对(Java版)
题目描述: 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P,并将P对1000000007取模的结果输出,即输出P%1000000007。解题思路:目的:给出的数组进行归并排序,在归并排序的过程中同时统计逆序对的个数。思路:1、分开计算子序列的逆序对数;2、合并时,子序列进行排序,从排序后的最后一个元素开始比较;3、如果上一个子序列最后一个元素大于后一个子序列的最后一个元素,则逆序对个数为后一个子序列的长度,并把大的元素
2020-06-25 17:44:48
589
原创 2020农行软开实习的笔试题
2020农行软开实习的笔试题,第一题。编写程序计算10个正整数的平均数,找出这10个数中雨平均值的距离最近的三个数(差值的绝对值)。以距离的大小对这三个数进行排序并输出(距离小的先输出)输入:[33,44,61,2,36,42,56,81,11,17]输出:[36,42,33]思路:算平均值。用hashmap,每个数减去平均值,取绝对值,存入key。value就存那个数就行。用一个ArrayList存一下keys,并排序。把排序后的list的前三个元素当成key,去map里g
2020-06-20 23:33:12
1281
原创 MySQL8.0基于GTID主从复制
一、MySQL8.0基于GTID主从复制注意: MySQL8.0之前版本的mysql密码加密方式为mysql_native_password,而MySQL8.0默认新添加的用户密码默认使用的caching_sha2_password,因此进行使用主从复制时可能会遇到错误:“error :Authentication plugin ’ caching_sha2_password’ reported error: Authentication requires secure connection.”。解决
2020-05-26 18:15:12
1201
原创 MySQL8.0安装与基于二进制日志文件位置的主从复制
一、MySQL8.0安装安装环境:CentOS7.6 64位关闭防火墙,禁用selinux安装步骤:(1)下载MySQL8.0的repo源cd /tmpwget https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm(2)安装mysql80-community-release-el7-1.noarch.rpm并获取repo源rpm -ivh mysql80-community-release-el7-1
2020-05-26 17:59:10
362
原创 shell脚本典型案例
1、统计出现次数最多的ip[root@foundation51 shell]# cat test.txt 1 134.102.173.432 134.102.173.433 134.102.171.424 134.102.170.9[root@foundation51 shell]# cat test.txt | awk '{print $2}'| sort | uniq -c...
2020-03-10 20:39:04
208
原创 Redis持久化存储
Redis持久化存储Redis 有两种持久化方案,RDB (Redis DataBase)和 AOF (Append Only File)。RDB 是 Redis 默认的持久化方案。在指定的时间间隔内,执行指定次数的写操作,则会将内存中的数据写入到磁盘中。即在指定目录下生成一个dump.rdb文件。Redis 重启会通过加载dump.rdb文件恢复数据。RDB 的优缺点优点:1 适合大规...
2020-02-28 17:25:15
73
原创 SSL握手过程详解
https的优势:通讯过程的hash生成的摘要,保证数据完整性握手过程的非对称加密,传输过程的对称加密,保证数据私密性证书保证双方身份的真实性https大致过程建立服务器443端口连接SSL握手:随机数,证书,密钥,加密算法发送加密请求发送加密响应关闭SSL关闭TCPSSL握手大致过程:客户端发送随机数1,支持的加密方法(如RSA公钥加密)服务端发送随机数2,和服务器...
2020-02-25 16:34:53
562
原创 计算机基础系统篇(面试常见问题)
1.进程/线程进程:进程是具有一定独立功能的程序,它是系统进程资源分配和调度的一个独立单元。(一个内存中运行的应用程序)线程:线程是进程的一个实体,是CPU调度和分派的基本单元。(线程属于进程,是进程中的一个执行单元)区别:(1)一个线程只属于一个进程,一个进程包含一个或者多个线程。(2)进程拥有独立的内存单元,而多个线程共享内存。(3)进程的创建调用fork或者vfork,而线程的创...
2020-02-25 11:45:57
100
原创 Linux学习笔记—SAMBA文件服务器
1、samba相关概念1.SAMBA,让linux系统可以加入到Windows的系统当中,共享彼此的文件数据。通过NetBIOS over TCP/IP技术,就可以跨路由器的使用SAMBA服务器所提供的功能。目前,SAMBA还是比较广泛的使用在LAN内部。 2.samba的基本信息# /etc/samba/smb.conf 主配置文件# /usr/share/doc/sa...
2020-01-29 19:41:12
484
原创 Linux下软件安装目录管理
Linux 的软件安装目录对系统进行有序管理/usr: 系统级的目录,理解为C:/Windows//usr/lib: 理解为C:/Windows/System32/usr/local: 用户级的程序目录,理解为C:/Progrem Files/ (用户自己编译的软件默认会安装到这个目录下)/opt: 用户级的程序目录,理解为D:/Softwareopt有可选的意思,这里可以用于放置第三方...
2019-11-27 21:38:55
227
原创 剑指offer—栈的压入、弹出序列(Python版)
题目描述:输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)解题思路:借用一个辅助的栈stack,遍历压栈顺序,先讲第一个放入栈中,这里是1,...
2019-11-19 22:47:20
200
原创 剑指offer—包含min函数的栈(Pyhton版)
题目描述:定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。解题思路:看到这个问题,,我们最开始可能会想,,添加一个成员变量用于保存最小元素,,每次压栈时如果压栈元素比当前最小元素更小,就更新最小元素。但是这样会有一个问题,如果最小元素被弹出栈,就无法获得下一个最小元素。在最小元素弹出后还能得到次小元素,次小的元素弹出后,还要能得到次次小...
2019-11-18 23:12:57
164
原创 剑指offer—用两个栈实现队列(Python版)
题目描述:用两个栈实现一个队列,完成对列的Push和Pop操作。队列中的元素为int类型。解题思路:栈stack1用来作入队列;栈stack2用来出队列,当栈stack2为空时,栈stack1全部出栈到栈satck2,栈stack2再出栈(即出队列) 。代码实现:# -*- coding:utf-8 -*-class Solution: def __init__(self...
2019-11-18 22:21:55
137
原创 剑指offer—序列化二叉树(Python版)
题目描述:请实现两个函数,分别用来序列化和反序列化二叉树二叉树的序列化是指:把一棵二叉树按照某种遍历方式的结果以某种格式保存为字符串,从而使得内存中建立起来的二叉树可以持久保存。序列化可以基于先序、中序、后序、层序的二叉树遍历方式来进行修改,序列化的结果是一个字符串,序列化时通过 某种符号表示空节点(#),以 ! 表示一个结点值的结束(value!)。二叉树的反序列化是指:根据某种遍历顺序得...
2019-11-13 21:26:23
227
原创 剑指offer—把二叉树打印成多行(Python版)
题目描述:从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。解题思路:本题同“按之字形顺序打印二叉树”,使用队列存储数据。代码实现:# class TreeNode:# def __init__(self,x):# self.val = x# self.left = None# self.right = Nonecl...
2019-11-13 21:01:52
189
原创 剑指offer—按之字形顺序打印二叉树(Python版)
题目描述:请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。解题思路:使用两个栈stack1和stack2,stack1存储奇数行结点(先保存右子树,再保存左子树,实际上是保存栈stack2出栈结点的右子树、左子树),stack2存储偶数行结点(先保存左子树,再保存右子树,实际上保存stack1出栈...
2019-11-12 20:14:41
221
原创 剑指offer—对称的二叉树(Python版)
题目描述:请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。解题思路:采用递归算法,只要pRoot.left和pRoot.right是否对称即可,即 :(1) 左右节点的值相等;(2) 对称子树left.left与right.right,left.rigth与right.left也对称相等。代码实现:# -*- coding...
2019-11-12 18:49:02
181
原创 剑指offer—二叉树的深度(Python版)
题目描述:输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。解题思路:使用递归方法:如果该树只有一个结点,它的深度为1;如果根结点只有左子树没有右子树,那么树的深度为左子树的深度+1;同样,如果根结点只有右子树没有左子树,那么树的深度为右子树的深度+1;如果根结点既有左子树,也有右子树,该树的深度就是左子树和右子...
2019-11-11 21:36:07
181
原创 剑指offer—平衡二叉树(Python版)
题目描述:输入一棵二叉树,判断该二叉树是否是平衡二叉树。解题思路:平衡二叉树(Balanced Binary Tree)具有以下性质:它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。平衡二叉树的常用实现方法有红黑树、AVL、替罪羊树、Treap、伸展树等。最小二叉平衡树的节点的公式如下 F(n)=F(n-1)+F(n-2)+1 这个类似于一个...
2019-11-11 21:33:08
178
原创 剑指offer—二叉树的下一个结点(Python版)
题目描述:给定一个二叉树和其中一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。解题思路:二叉树的中序遍历顺序:LvR(左子树、根节点、右子树)结合上图,我们发现可分为两种情况:1、有右子树的,那么下个节点就是右子树最左边的点;2、没有右子树的,也可以分成两类:a) 是父节点左孩子,那么父节点就是下一个节点 ;b) 是...
2019-11-11 21:28:29
155
原创 归并排序算法
一、归并排序流程二、合并两个有序数组的流程三、Python代码实现算法中通过递归并调用merge函数完成排序。def merge(s1,s2,s): """将两个列表是s1,s2按顺序融合为一个列表s,s为原列表""" # j和i就相当于两个指向的位置,i指s1,j指s2 i = j = 0 while i+j<len(s): ...
2019-11-07 20:06:51
181
原创 Python获取对象信息
1、使用type()type()函数:判断对象类型基本类型的判断:>>> type(123)><type 'int'>>>>> type('str')><type 'str'>>>>> type(None)><type 'NoneType'>用 type() ...
2019-08-15 19:57:54
438
原创 Python基础学习—列表和元组
一、listPython内置的一种数据类型是列表:listlist是一种有序的、可变的集合,可以随时添加和删除其中的元素。实例:列表:classmates>>> classmates = ['Michael', 'Bob', 'Tracy']>>> classmates['Michael', 'Bob', 'Tracy']len()函数获取l...
2019-08-13 17:11:04
179
原创 Centos7安装Pycharm并添加环境变量至桌面
1、下载Pycharm安装包(社区版2019)下载安装包 pycharm-community-2019.1.3.tar.gz 至/Python目录下载地址:http://www.jetbrains.com/pycharm/download/#section=linux2、解压安装包cd /Pythontar zxf pycharm-community-2019.1.3.tar.gz ...
2019-06-17 19:40:43
2061
原创 Python基础学习—变量
一、初识python编译型语言:速度快 跨平台性差解释型语言:速度慢 跨平台性强python 属于解释型语言,特点:简单、可读性强、开发速度快、开源、可扩展性强、面向对象 。特殊格式的文本文件:python的扩展名 .pyshell的扩展名 .sh示例:第一个python脚本[root@foundation51 python]# vim hello.py#_*_ coding:u...
2019-06-16 20:01:31
192
原创 三大主流软件负载均衡器对比(LVS、Nginx、Haproxy)
三大主流软件负载均衡器对比(LVS VS Nginx VS Haproxy)LVS:1、抗负载能力强。抗负载能力强、性能高,能达到F5硬件的60%;对内存和cpu资源消耗比较低2、工作在网络4层,通过vrrp协议转发(仅作分发之用),具体的流量由linux内核处理,因此没有流量的产生。2、稳定性、可靠性好,自身有完美的热备方案;(如:LVS+Keepalived)3、应用范围比较广,可以...
2019-03-11 21:42:42
1189
原创 linux常见网络问题的解决方法
方法一:开启状态为DOWN的网卡的及接口[root@server1 ~]# ip link set up dev eth1 方法二:检查网络配置方法三:删除原有的网卡,重新添加新的网卡,并进行网络配置...
2019-03-11 21:42:04
785
原创 Linux基础—awk命
一、awk命令awk是行处理器: 相比较屏幕处理的优点,在处理庞大文件时不会出现内存溢出或是处理缓慢的问题,通常用来格式化文本信息。awk处理过程: 依次对每一行进行处理,然后输出awk `/La/` dataf3 #显示含La的行。awk -F &amp;quot;:&amp;quot; '{print $1,$2}' /etc/passwd #以“:”为分割,显示/etc/passwd每一行的第1和第2个...
2019-03-11 21:41:45
219
原创 Linux系统下安装Adobe Flash Player插件观播放视频
linux系统上火狐浏览器看视频时无法播放视频,提示没有安装flash player插件,linux系统如何安装flash player插件呢?我们在此以Centos/Redhat 7.3为例,方法如下:1、 打开Adobe Flash Player官网:http://get.adobe.com/cn/flashplayer/otherversions/Linux系统选择Linux(64-...
2019-03-11 21:34:42
5553
1
原创 HTTP与HTTPS的区别
超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此,HTTP协议不适合传输一些敏感信息,比如:信用卡号、密码等支付信息。为了解决HTTP协议的这一缺陷,需要使用另一种协议:安全套接字层超文本传输协议HTTPS,为了数据传输的安全,H...
2018-12-06 12:42:14
200
原创 Linux学习笔记—自动安装脚本Kickstart
一、Kickstart概述使用Kickstart,系统管理员可以创建一个包含安装期间所有常见问题答案的文件,以自动安装Red Hat Enterprise Linux 。Kickstart类似于 Oracle solaris 中的Jumpstart 或 Microsoft Windows 的无人值守安装。二、Kickstart 安装Kickstart制作工具安装软件包 system-co...
2018-11-27 22:14:02
575
原创 Linux基础—yum仓库搭建
一、本地yum源搭建1、从网络上下载本机系统版本匹配的iso镜像文件hostnamectl ##查看本机系统版本本机系统版本为7.3,因此从源端下载 rhel-server-7.3-x86_64-dvd.iso 镜像文件2、把 rhel-server-7.3-x86_64-dvd.iso 挂载到/mnt以便访问镜像中的文件mount rhel-ser...
2018-11-27 21:31:29
562
原创 Linux基础—KVM虚拟化
一、虚拟化简介系统虚拟化是将底层物理设备与上层操作系统、软件分离的一 种去耦合技术,在一台物理机器上逻辑的划分出多台机器。虚拟化的目的是实现IT资源利用效率和灵活性的最大化。在一台物理主机上虚拟出多个虚拟计算机(虚拟机,VirtualMachine,VM),其上能同时运行多个独立的操作系统,这些客户操作系统(Guest OS)通过虚拟机管理器(Virtual Machine Monitor,...
2018-11-27 18:59:36
601
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人