Too young, too simple. Sometimes, naive & stupid

Keepalived在活动的LVS路由以及一个或多个可选的备用LVS路由上运行。主动LVS路由上有两个作用:

  • 平衡真是服务器上的负载。
  • 检查每个真是服务的完整性。

活动(主)路由器使用虚拟路由冗余协议(VRRP)通知备用路由器其活动状态,协议要求主动路由器定期发送advertisements报文。如果活动路由器停止发送advertisements报文,则选择新的主节点。

阅读全文 »

全局配置

global设置配置适用于运行HAProxy的所有服务器的参数。global部分可能如下:

1
2
3
4
5
6
global
log 127.0.0.1 local2
maxconn 4000
user haproxy
group haproxy
daemon

在上面的配置中,管理员已将服务配置log为本地syslog服务器的所有条目。默认情况下,这可能是/var/log/syslog或某些指定的位置。

maxconn参数指定服务器的最大并发连接数。默认情况下,最大值为2000。

usergroup参数指定haproxy进程所属的用户名和租名。

最后daemon参数指定haproxy作为后台进程运行。

阅读全文 »

必须要这么分:

每类人群,一般是后者瞧不起前者。

首先,你得按照学历来分

  • - 胎教程序员
  • - 学前班程序员
  • - 大班程序员
  • - 小学程序员
  • - 普通初中程序员
  • - 重点初中程序员
  • - 普通高中程序员
  • - 重点高中程序员
  • - 专科程序员
  • - 普通本科程序员
  • - 重点本科程序员

当然,你最好加上专业来区分

阅读全文 »

物理机 -> 虚拟机

所谓云计算,其实就是基于虚拟化产生的一种消费方式,可以这样一句话概括:

N个物理区域中,分别运行着M * N个节点的虚拟化节点,由这些节点组成了一个或多个虚拟化集群,在这个集群上运行着N多个虚拟机实例,向互联网上的消费者提供虚拟机实例以供计算,这就是公有云;自建自用,就是私有云;自建了还额花钱买了其他运营商提供的计算虚拟机实例,就是混合云(这里仅仅说的是计算资源,其他存储或网络资源同理)。

当然,如果你可以编排物理机,也是可以成为云计算的。(物理机好比拿地盖房子,虚拟机好比购买公寓)

如果你不知道虚拟化是什么,这样你下一个virtualbox安装体验一下,虚拟化软件就像你去电脑城买笔记本,你可以跟虚拟化软件说,我要几颗CPU,多大内存,多大硬盘,什么网卡(前提你有)。用的时候你一创建,不玩了你点删除,就没了。

生产环境,主流的虚拟化主要是这几种:VMware、Xen、KVM等。

这里说qemu-kvm,从名字上来看,emu就是Emulator(模拟器),主要模拟CPU、RAM(内存)、网络、硬盘,使得虚拟机感觉自己在使用独立的硬件资源,但真正使用的时候,肯定是要用物理设备的。

例如,多个虚拟机轮流使用物理CPU(这个具体可以google一下),内存是使用虚拟内存映射的方式,最终映射到物理内存上。硬盘简单一些,你笔记本有500GB,新建一个20GB空文件(当然,要根据要求的格式创建),这就是你虚拟机的磁盘。

虚拟化软件是什么?骗子,向上骗虚拟机里面的应用,让他们感觉自己是在用真实的硬件资源,其实自己啥也没有,全部向下从物理机里面取。

阅读全文 »

可以在/etc/haproxy/haproxy.cfg配置文件的backend部分的balance参数中编辑用于负载均衡的HAProxy调度算法。注意,HAProxy支持具有多个后端的配置,并且每个后端都可以配置调度算法。

Round-Robin(roundrobin)

按顺序在真实服务器池分配每个请求。使用此算法,所有真实服务器都被视为同等,而不考虑容量或负载。此调度模型类似于循环DNS,但由于它是基于网络连接而不是主机,因此更加精细。负载均衡循环调度也不会遭受DNS缓存查询导致的不平衡。但是在HAProxy中,由于服务器的权重配置可以使用此调度程序即时完成,因此活动服务器的数量限制为每个后端。

阅读全文 »

配置文件

有两套不同的配置文件:客户端程序(ssh,scp和sftp),以及SSH服务器(sshd守护进程)。

系统范围的SSH配置信息存储在/etc/ssh/目录中,用户特定的ssh配置信息存储在~/.ssh/目录中。

阅读全文 »

为什么使用SSH

潜在的入侵者可以使用各种工具,是他么能够中断、拦截和重新路由网络流量,从而获得对计算机系统的访问权限。一般来说,威胁可以分为以下几类:

拦截两个系统之间的通信

​ 攻击者可以在通信方面的网络上的某个地方,复制他们之间传递的任何信息。他可以拦截并保留信息,或者更改信息并将其发送给预期的收件人。

​ 此流量通常使用数据包嗅探器执行,数据包嗅探器是一种相当常见的网络实用程序,可捕获流经网络的每个数据包,并分析其内容。

假冒特定主机

​ 攻击者的系统被配置被构成传输的预期接收者。如果此策略有效,则用户的系统仍然不知道它正在与错误的主机通信。

​ 可以使用称为DNS poisoning的技术或通过所谓的IP欺骗来执行此攻击。在第一种情况下,入侵者使用破解的DNS服务器将客户端系统指向恶意复制的主机,在第二种情况下,入侵者发送看似来自可信主机的伪造网络数据包。

这两种技术都可以拦截潜在的敏感信息,如果拦截是出于敌意的原因,结果可能是灾难性的。如果使用SSH进行远程shell登录和文件复制,则可以大大减少这些安全威胁。这是因为SSH客户端和服务器使用数字签名来验证其身份。此外,客户端和服务器系统之间的所有通信都是加密的。欺骗通信双方的身份是行不通的,因为每个数据包都使用仅由本地和远程系统知道的秘钥加密。

阅读全文 »

结构化程序设计方法出现的背景

  • goto语句是有害的
  • 可以从高级语言中消除goto语句,主张在高级语言中应保留goto语句,在功能方面不加限制,但限制其使用范围,切不必对一般用户开放
  • 争论的焦点不应该放在是否取消goto语句上, 应该放在程序的质量上

计算机发展的初期,评价软件质量主要看占内存容量的大小和运行速度的快慢

程序设计的目标

  • 不只是编写一个能够得到正确运行结果的程序
  • 关注程序结构的好坏,好的结构比高的效率更为重要
阅读全文 »

系统编程概述

字符串方法基础知识

Python的字符串方法本身并非系统相关工具, 但他们频繁现身于绝大多数Python程序,字符串方法保罗用于查找和替换的调用:

阅读全文 »

递推

递推的基本思想

  • 递推法
    • 利用问题本身所具有的一种递推关系来求解问题的一种方法
  • 递推
    • 是指从已知的初始条件出发,依据某种递推关系,逐次推出所要计算的中间结果和最终结果
      • 初始条件要么在问题本身中已经给定
      • 要么需要通过对问题的分析和化简来确定

递推的本质和特点

  • 递推的本质
    • 把一个复杂的计算过程转化为一个简单过程的多次重复计算
  • 可递推求解的问题的特点
    • 问题可以划分成多个状态
    • 除初始状态外,其他各状态都可用固定的递推关系来表示
  • 递推的应用
    • 常用于按照一定的规律来计算序列中的指定项
    • 递推关系式通常不会直接给出
阅读全文 »

自底向上(Down-top)的程序设计方法

  • 先编写出基础程序段
  • 然后再逐步扩大规、补充和升级某些功能
  • 实际上是一种自底向上构造程序的过程

功能简单、规模较小 ==> 功能增加、规模增大

自顶向下(Down-top)的程序设计方法

  • 先写出结构简单、清晰的主程序来表达整个问题
    • 在此问题包含的复杂子问题用子程序或函数来实现
  • 若子问题中还包含负载的子问题,再用子程序或函数实现
  • 知道每个细节都可以用高级语言表达为止

上:比较抽象的层面 ==>下:更具体的层面,接近程序设计语言

阅读全文 »