前言:

近些年一直听着 虚拟化、云计算、公有云、私有云、混合云这些个概念,一直想着....这些概念要用什么技术实现?

一、云计算的概念

1.传统IDC机房面都会临什么问题?

任何新事物都是由需求催生的,之前网站上线基本上会有以下几种选择:

IDC托管:买台服务托管到IDC机房---》安装系统----》部署应用---》域名备案------》上线

IDC租用:租用IDC机房提供的服务器

VPS:虚拟专用主机

以上传统的网站上线的模式有什么重大缺陷呢?

A.成本高 (IDC托管、租用费用费用很高)

B.自动化能力差 事多、麻烦(买了/租了服务器还要装系统、部署代码,是否会被网络攻击)

2.云计算是什么?

把总多服务器的资源通过虚拟化的技术手段熔化成一个资源池 (云)

用户以网络的方式 按需获取资源池中的服务器资源,服务商按用户使用量公平收费;  (计算)

是一种资源整合、按需消费、按需收费的商业模式;  让企业使用服务器资源就像 居民平时用水、用电一样简单;

3.云计算的层次

根据云提供的服务分为以下几个层次

Infrastructure as a service        iaas
Platforn as a service paas
Software as a service saas

PS:也许你会听说过vaas(Video-as-a-service) 是建立在这3层之上的典型代表有乐视云;

4.云计算的分类

根据云面向的人群分为以下几类:

公有云:面向公众提供虚拟机、开发环境、服务(阿里云)       优点:技术安全可靠      缺陷:数据不安全

私有用:仅对一部分人/自己/公司内部员工使用(阿根云)    缺陷:技术问题自己解决    优点:数据安全

混合云:既使用公有云  也有自己的私有云(我们公司的)       (综合私有云、公有云的优缺点)

二、虚拟化的概念

1.什么是虚拟化?

首先声 明    云计算 != 虚拟化,云计算的实现使用到了虚拟化这种技术手段;

虚拟化是指通过软件技术 把1个计算机的CPU、硬件 虚拟出很多虚拟机,这些虚拟机寄生在宿主机之上,功能和宿主机的功能无异, 但是彼此之间是隔离的;

2.虚拟化类别

三、KVM

KVM:需要硬件支持的虚拟化技术,从硬件层面实现隔离;(openstack默认使用的虚拟化技术就是KVM)

QEMU:QEMU和KVM一样是一种虚拟化软件;

QUEMU和KVM的区别:由于KVM是内核级虚拟化软件(能虚拟化出CPU和内存),磁盘、网卡虚拟不出来,于是KVM就是结合了QEMU实现了用户态的虚拟化;

1.虚拟环境准备

[root@localhost ~]# grep -E '(vmx|svm)' /proc/cpuinfo
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon nopl xtopology tsc_reliable nonstop_tsc eagerfpu pni pclmulqdq vmx ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch arat tpr_shadow vnmi ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 invpcid mpx rdseed adx smap clflushopt xsaveopt xsavec

查看是否支持虚拟化

[root@localhost ~]# yum list|grep kvm
Repodata is over weeks old. Install yum-cron? Or run: yum makecache fast
libvirt-daemon-kvm.x86_64 2.0.-.el7 @anaconda
qemu-kvm.x86_64 :1.5.-.el7 @anaconda
qemu-kvm-common.x86_64 :1.5.-.el7 @anaconda
libvirt-daemon-kvm.x86_64 3.2.-.el7_4. updates
oci-kvm-hook.x86_64 0.2-.el7 epel
pcp-pmda-kvm.x86_64 3.11.-.el7 base
qemu-kvm.x86_64 :1.5.-.el7_4. updates
qemu-kvm-common.x86_64 :1.5.-.el7_4. updates
qemu-kvm-tools.x86_64 :1.5.-.el7_4. updates

yum list|grep kvm 查看可以安装得KVM包

2.安装KVM

[root@localhost ~]# yum -y install qemu-kvm qemu-kvm-tools libvirt virt-install

3.启动librbd服务

libvirtd是管理KVM虚拟机的工具

[root@localhost ~]# yum update librbd1
[root@localhost ~]# systemctl start libvirtd
[root@localhost ~]# systemctl enable libvirtd

当libvertd服务启动之后

系统会自动创建一个名为virbr0的桥接网卡,ip地址默认为192.168.122.1;

virbr0: flags=<UP,BROADCAST,MULTICAST>  mtu
inet 192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255
ether ::::bf:a8 txqueuelen (Ethernet)
RX packets bytes (0.0 B)
RX errors dropped overruns frame
TX packets bytes (0.0 B)
TX errors dropped overruns carrier collisions

ifconfig 查看新创建的桥接网卡

系统 自动启动dnsmasq进程该进程有DNS和DHCP的功能,给虚拟机动态分配IP地址并提供域名解析服务;

[root@localhost zhanggen]# ps -aux | grep dnsmasq
nobody 0.0 0.0 ? S : : /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-script=/usr/libexec/libvirt_leaseshelper
root 0.0 0.0 ? S : : /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-script=/usr/libexec/libvirt_leaseshelper
root 0.0 0.0 pts/ R+ : : grep --color=auto dnsmasq
[root@localhost zhanggen]#

ps -aux | grep dnsmasq

4.创建虚拟机

使用qemu-img给KVM虚拟机创建虚拟镜像文件

[root@localhost kvm_img]# qemu-img create -f raw /kvm_img/Centos--x86.raw 10G
Formatting '/kvm_img/Centos-7-x86.raw', fmt=raw size=

新建了虚拟镜像文件就可以安装虚拟机了

virt-install --virt-type kvm --name Centos--x86_64 --ram  --cdrom=/centos7iso/CentOS--x86_64-DVD-.iso --disk path=/kvm_img/Centos--x86.raw --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole

然后使用TightVNC连接到服务器上给kvm虚拟机安装系统

在宿主机查看当前KVM实例列表

[root@localhost centos7iso]# virsh list --all
Id 名称 状态
----------------------------------------------------
Centos--x86_64 running

通过宿主机启动1个 kvm实例

[root@localhost centos7iso]# virsh start Centos--x86_64
域 Centos--x86_64 已开始

kvm虚拟机启动之后,其实就是宿主机中的一个进程

[root@localhost zhanggen]# ps -ef | grep kvm
root 3月15 ? :: [kvm-irqfd-clean]
qemu : ? :: /usr/libexec/qemu-kvm -name Centos--x86_64 -S -machine pc-i440fx-rhel7.0.0,accel=kvm,usb=off,dump-guest-core=off -cpu Broadwell,-hle,-rtm -m -realtime mlock=off -smp ,sockets=,cores=,threads= -uuid fc152f09-9b09--a316-3c2a5afb0e68 -no-user-config -nodefaults -chardev socket,id=charmonitor,path=/var/lib/libvirt/qemu/domain--Centos--x86_64/monitor.sock,server,nowait -mon chardev=charmonitor,id=monitor,mode=control -rtc base=utc,driftfix=slew -global kvm-pit.lost_tick_policy=delay -no-hpet -no-shutdown -global PIIX4_PM.disable_s3= -global PIIX4_PM.disable_s4= -boot strict=on -device ich9-usb-ehci1,id=usb,bus=pci.,addr=0x4.0x7 -device ich9-usb-uhci1,masterbus=usb.,firstport=,bus=pci.,multifunction=on,addr=0x4 -device ich9-usb-uhci2,masterbus=usb.,firstport=,bus=pci.,addr=0x4.0x1 -device ich9-usb-uhci3,masterbus=usb.,firstport=,bus=pci.,addr=0x4.0x2 -device virtio-serial-pci,id=virtio-serial0,bus=pci.,addr=0x5 -drive file=/kvm_img/Centos--x86.raw,format=raw,if=none,id=drive-virtio-disk0 -device virtio-blk-pci,scsi=off,bus=pci.,addr=0x6,drive=drive-virtio-disk0,id=virtio-disk0,bootindex= -drive if=none,id=drive-ide0--,readonly=on -device ide-cd,bus=ide.,unit=,drive=drive-ide0--,id=ide0-- -netdev tap,fd=,id=hostnet0,vhost=on,vhostfd= -device virtio-net-pci,netdev=hostnet0,id=net0,mac=:::ca::4f,bus=pci.,addr=0x3 -chardev pty,id=charserial0 -device isa-serial,chardev=charserial0,id=serial0 -chardev socket,id=charchannel0,path=/var/lib/libvirt/qemu/channel/target/domain--Centos--x86_64/org.qemu.guest_agent.,server,nowait -device virtserialport,bus=virtio-serial0.,nr=,chardev=charchannel0,id=channel0,name=org.qemu.guest_agent. -device usb-tablet,id=input0,bus=usb.,port= -vnc 0.0.0.0: -vga cirrus -device virtio-balloon-pci,id=balloon0,bus=pci.,addr=0x7 -msg timestamp=on

ps -ef | grep kvm

5.管理KVM虚拟机

在宿主机里面创建好了kvm实例,接下来就是对它们进行管理了,Red Hat引入了libvirt库作为管理平台虚拟化(hypervisor和VM)的一个API,openstack就是调用libvirt的API来管理KVM虚拟机的,

virsh是调用libvirt的客户端。

看到这里我有点兴奋,其实我用Python去调用libvert的API,也可以写一套类似openstack的虚拟机管理工具;

PS:openstack挂了 kvm虚拟机也会挂吗?你的老板挂了你会挂吗?

5.1.KVM虚拟机是通过什么定义的?

[root@localhost qemu]# cat Centos--x86_64.xml
<!--
WARNING: THIS IS AN AUTO-GENERATED FILE. CHANGES TO IT ARE LIKELY TO BE
OVERWRITTEN AND LOST. Changes to this xml configuration should be made using:
virsh edit Centos--x86_64
or other application using the libvirt API.
--> <domain type='kvm'>
<name>Centos--x86_64</name>
<uuid>fc152f09-9b09--a316-3c2a5afb0e68</uuid>
<memory unit='KiB'></memory>
<currentMemory unit='KiB'></currentMemory>
<vcpu placement='static'></vcpu>
<os>
<type arch='x86_64' machine='pc-i440fx-rhel7.0.0'>hvm</type>
<boot dev='hd'/>
</os>
<features>
<acpi/>
<apic/>
</features>
<cpu mode='custom' match='exact' check='partial'>
<model fallback='allow'>Broadwell-noTSX</model>
</cpu>
<clock offset='utc'>
<timer name='rtc' tickpolicy='catchup'/>
<timer name='pit' tickpolicy='delay'/>
<timer name='hpet' present='no'/>
</clock>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>destroy</on_crash>
<pm>
<suspend-to-mem enabled='no'/>
<suspend-to-disk enabled='no'/>
</pm>
<devices>
<emulator>/usr/libexec/qemu-kvm</emulator>
<disk type='file' device='disk'>
<driver name='qemu' type='raw'/>
<source file='/kvm_img/Centos-7-x86.raw'/>
<target dev='vda' bus='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
</disk>
<disk type='file' device='cdrom'>
<driver name='qemu' type='raw'/>
<target dev='hda' bus='ide'/>
<readonly/>
<address type='drive' controller='' bus='' target='' unit=''/>
</disk>
<controller type='usb' index='' model='ich9-ehci1'>
<address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x7'/>
</controller>
<controller type='usb' index='' model='ich9-uhci1'>
<master startport=''/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0' multifunction='on'/>
</controller>
<controller type='usb' index='' model='ich9-uhci2'>
<master startport=''/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x1'/>
</controller>
<controller type='usb' index='' model='ich9-uhci3'>
<master startport=''/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x2'/>
</controller>
<controller type='pci' index='' model='pci-root'/>
<controller type='ide' index=''>
<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>
</controller>
<controller type='virtio-serial' index=''>
<address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
</controller>
<interface type='network'>
<mac address='52:54:00:ca:24:4f'/>
<source network='default'/>
<model type='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</interface>
<serial type='pty'>
<target type='isa-serial' port=''>
<model name='isa-serial'/>
</target>
</serial>
<console type='pty'>
<target type='serial' port=''/>
</console>
<channel type='unix'>
<target type='virtio' name='org.qemu.guest_agent.0'/>
<address type='virtio-serial' controller='' bus='' port=''/>
</channel>
<input type='tablet' bus='usb'>
<address type='usb' bus='' port=''/>
</input>
<input type='mouse' bus='ps2'/>
<input type='keyboard' bus='ps2'/>
<graphics type='vnc' port='-1' autoport='yes' listen='0.0.0.0'>
<listen type='address' address='0.0.0.0'/>
</graphics>
<video>
<model type='cirrus' vram='' heads='' primary='yes'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
</video>
<memballoon model='virtio'>
<address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/>
</memballoon>
</devices>
</domain>

/etc/libvirt/qemu

所有的虚拟机都是由这个目录下的 xml文件定义的 其中包含:CPU、内存、硬盘...参数,对它的修改也就是对KVM虚拟机的动态调整

5.2.virsh管理命令

如上图所示 vish 是虚拟机管理服务(libvert)的客户端,那么如何使用virsh来对KVM虚拟机进行管理呢?

virsh list        #查看虚拟机列表

qemu-img convert -f raw -O qcow2 /var/lib/libvirt/images/xuegod63-kvm2.img /var/lib/libvirt/images/xuegod63-kvm2.qcow2 #转换格式(将raw格式转换为qcow2格式):

virsh dumpxml Centos--x86_64 > back.xml  #备份虚拟机定义文件
virsh defined back.xml #通过备份的.xml文件还原虚拟机
virsh reboot Centos--x86_64             #重启虚拟机
virsh shutdown Centos-7-x86_64 #关闭虚拟机
virsh start Centos-7-x86_64 #开启虚拟机
virsh suspend Centos--x86_64            #挂起虚拟机
virsh resume Centos--x86_64 #恢复虚拟机
virsh snapshot-list Centos--x86_64            #查看本虚拟机的快照
virsh snapshot-create-as Centos--x86_64 mysnapshot #创建快照
virsh snapshot-revert Centos-7-x86_64 mysnapshot #恢复快照
virsh snapshot-delete Centos-7-x86_64 mysnapshot #删除快照

5.3.virsh edit命令

该命名可以对 /etc/libvirt/qemu下的xml虚拟机定义文件进行修改,进而对虚拟机的硬件参数进行在线调整;

调整CPU个数

 <vcpu placement='auto' current='1'>4</vcpu>

virsh edit Centos-7-x86_64

virsh setvcpus Centos-7-x86_64 2 --live #在线修改为2个CPU

调整内存大小

virsh qemu-monitor-command Centos--x86_64 --hmp --cmd balloon 1024     #设置内存大小

virsh qemu-monitor-command Centos-7-x86_64 --hmp --cmd info balloon     #查看内存大小

硬盘相关

QUME使用的镜像文件分为:qcow2和raw格式

qcow2格式:支持快照功能、性能慢、动态占用

raw格式:不支持快照功能、性能快、指定多多空间占用多大,可以转换成其他格式

qemu-img info Centos-7-x86.raw                       #查看KVM镜像文件格式
qemu-img convert -f raw -O qcow2 Centos-7-x86.raw test.qcow2 #转换镜像文件的格式

KVM网络架构调整(把所有KVM虚假 桥接到虚拟网桥br0上)

KVM虚假默认是通过NAT转换的方式上网的,但是NAT转换有网络平静,所有我可在宿主机上创建 一些虚拟网桥,让一堆堆的虚拟机桥接到宿主机的各个网桥上,达到网络负载均衡的效果;

brctl show       #查看网桥:通过virbr0网桥做NAT IP地址转换 分配给虚拟机

stepA:宿主机新增虚拟网桥(以免增加网桥的操作过程中宿主机网络中断,所以一定通过脚本的形式进行操作。)

#!/usr/bin/bash
ip addr del dev ens33 192.168.226.151/ #剥夺、删除ens33的IP地址
brctl addbr br0 #添加虚拟机网桥 br0
ifconfig br0 192.168.226.151/ up #给网桥设置IP地址
brctl addif br0 ens33 #将br0桥接到ens22物理网卡
route add default gw 192.168.226.2 #添加网关出口

宿主机新增虚拟网桥脚本

stepB:设置KVM.xml 让虚拟机连接到宿主机新增的网桥上

<interface type='bridge'>
<mac address='52:54:00:ca:24:4f'/>
<source bridge='br0'/>
<model type='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</interface>

修改KVM定义文件(/etc/libvirt/qemu/Centos-7-x86_64.xml )

stepC:KVM虚拟机桥接到宿主机之后,重启KVM(重启不能用reboot否则不生效!), 然后登陆KVM给KVM配置静态IP、网关、DNS

KVM网卡配置 (/etc/sysconfig/network-scripts/ifcfg-eth0)

BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.226.18
NETMASK=255.255.255.0
GATEWAY=192.168.226.2 KVMDNS配置
/etc/resolv.conf
nameserver 192.168.226.2

KVM配置静态IP地址

6.KVM性能优化

6.1:减少CachMiss

每个kvm虚拟机都对应宿主机中的一个进程,为了减少CachMiss,可以把某些运行重要业务的kvm绑定到一颗CPU上;

[root@localhost zhanggen]# taskset -cp  8000        #0:CPU 800:进程ID
pid 's current affinity list: 0
pid 's new affinity list: 0

6.2.使用大页内存,减少内存碎片,加速内存寻址(默认已开启);

[root@localhost zhanggen]# cat /sys/kernel/mm/transparent_hugepage/enabled
[always] madvise never

6.3.Linux的IO调度算法

四、python3调用libvirtd API

如果你想通过python3调用宿主机的libvirtd API 管理KVM虚拟机,必须要   pip 安装libvirt-python模块 然后在libvirtd 宿主机端开启API 端口,就可以了;

1.libvert-python模块安装

yum install -y libvirt-devel
yum install python-devel
pip3 install psutil
pip3 install ioctl_opt
下载python-libvirt包#https://pypi.org/project/libvirt-python/3.7.0/ python setup.py build
python setup.py install 效果
[root@cmdb libvirt-python-3.7.]# python
Python 3.6. (default, Feb , ::)
[GCC 4.4. (Red Hat 4.4.-)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import libvirt
>>>

python3安装libvirt模块

2.设置LIBVIRTD_PATH环境变量

export LIBVIRTD_PATH=/usr/sbin/

/etc/profile

以上是python端的准备工作,如果python想要连接到KVM宿主机的libverd API  就需要配置 libvirtd的开放端口;

3.配置libvirtd API 端口

LIBVIRTD_CONFIG=/etc/libvirt/libvirtd.conf
LIBVIRTD_ARGS="--listen"

vim /etc/sysconfig/libvirtd

listen_tls = 

listen_tcp = 

tcp_port = ""

listen_addr = "0.0.0.0"

auth_tcp = "none"

vim /etc/libvirt/libvirtd.conf

LISTEN                         *:                       *:*  

4、代码

用了半天时间 搭建libvirtd API 环境 、pip libvert-python模块 ,要运维干嘛?............终于可以用python连进来写会儿代码了。

[root@localhost libvirt]# python
Python 2.7. (default, Nov , ::)
[GCC 4.8. (Red Hat 4.8.-)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import libvirt
>>> conn = libvirt.open("qemu+tcp://192.168.226.151/system")
>>>

参考:

python3安装libvirt模块

python的libvirt模块使用

https://www.cnblogs.com/psv-fuyang/articles/8598240.html

配置16509连接端口

云计算概述和KVM虚拟化的更多相关文章

  1. 1 云计算系列之云计算概述和KVM虚拟化简介

    为什么会出现云之传统数据中学面临的问题 物理服务器的利用率非常低,浪费资源,且资源分配不合理,比如一台服务器CPU使用率不到40%,或者某个应用需要的硬件配置低但是服务器硬件配置高等等. 云计算概念 ...

  2. 安装配置KVM虚拟化

    安装KVM虚拟化 KVM需要硬件⽀持, 所以需要开启虚拟化⽀持 硬件设备直接在BIOS设置开启CPU虚拟化 个⼈电脑同样进⼊BIOS开启虚拟化⽀持 VM需要找到对应虚拟机开启对应的VT-EPT虚拟化技 ...

  3. KVM虚拟化概述与安装

    虚拟化是构建云计算基础架构不可或缺的关键技术之一,云计算的云端系统,其实质上就是一个大型的KVM分布式系统,虚拟化通过在一个物理平台上虚拟出更多的虚拟平台,而其中的每一个虚拟平台则可以作为独立的终端加 ...

  4. 云计算概述及Centos7下安装kvm虚拟机

    云计算(cloud computing)是基于互联网的相关服务的增加.使用和交付模式,通常涉及通过互联网来提供动态易扩展且经常是虚拟化的资源 云计算到底是什么? 按定义:云计算指的是一种使用模式,是基 ...

  5. 云计算之KVM虚拟化实战

    1 基础环境规划 1.1 主机环境规划 系统版本 主机名 IP地址 内存 磁盘 CentOS6.9 kvm-node1 10.0.0.200 2G 20G CentOS6.9 kvm-node2 10 ...

  6. kvm 虚拟化概述及 virt-manager 安装虚拟机

    一.KVM定义 基于内核的虚拟机(英语:Kernel-based Virtual Machine,简称KVM),是一种用于Linux内核中的虚拟化基础设施. KVM眼下支持Intel VT及AMD-V ...

  7. linux运维、架构之路-KVM虚拟化技术

    一.云计算概述 云计算:是一种资源使用和交付模式 虚拟化:一种具体的技术,用来将物理机虚拟成为多个相互独立的虚拟机.云计算不等于虚拟化,云计算是使用了虚拟化的技术做支撑 二.KVM配置使用 1.系统环 ...

  8. Qemu/kvm虚拟化源码解析学习视频资料

    地址链接:tao宝搜索:Linux云计算KVM Qemu虚拟化视频源码讲解+实践​https://item.taobao.com/item.htm?ft=t&id=646300730262 L ...

  9. KVM虚拟化技术

    KVM虚拟化技术 Qemu-kvm kvm virt-manager VNC Qemu-kvm创建和管理虚拟机 一.KVM简介 KVM(名称来自英语:Kernel-basedVirtual Machi ...

随机推荐

  1. GridView设置焦点到Cell

    /// <summary> /// 设置焦点到Cell /// </summary> /// <param name="view"></p ...

  2. dom节点相关问题

    <!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8&qu ...

  3. javascript自定义一个全类型读取的函数

    我爱撸码,撸码使我感到快乐!大家好,我是Counter.因为我们知道,在JavaScript中有自带的方法可以读取类型,但是不很全面,今天来分享下如何自己定义一个函数,将所有传入参数的类型给打印出来, ...

  4. ORM以及Django使用ORM创建表

    day61 2018-04-28 1. 内容回顾 1. HTTP协议消息的格式: 1. 请求(request) 请求方法 路径 HTTP/1.1\r\n k1:v1\r\n ...\r\n \r\n ...

  5. [译]RabbitMQ教程C#版 - 主题

    先决条件 本教程假定 RabbitMQ 已经安装,并运行在localhost标准端口(5672).如果你使用不同的主机.端口或证书,则需要调整连接设置. 从哪里获得帮助 如果您在阅读本教程时遇到困难, ...

  6. error_Could not load file or assembly

    原文链接 Could you be missing the loaded assembly from your configuration file? Ensure you have somethin ...

  7. hbase调优配置项笔记

    gc配置 hbase-env.sh export HBASE_OPTS="$HBASE_OPTS -XX:+UseConcMarkSweepGC" export HBASE_OPT ...

  8. sublime Text 常用插件

    1.LocalizedMenu 语言插件 2.SublimeRPEL   这个我主要是用python,设置快捷键后很方便 3.以后用到什么再补充

  9. /etc/security/limits.conf不生效

    总结下来发现要使limits.conf生效,需要在  /etc/ssh/sshd_config  配置中 设置 UsePAM  yes UseLogin yes    #这个保证其他的用户也能修改设置 ...

  10. Oracle配置SQL空间操作要点说明

    前面配置PL/SQL直接通过SQL查询SDE空间数据库,网上已有诸多示例, 常见问题如下: ORA-06520: PL/SQL: 加载外部库时出错ORA-06522: Unable to load D ...