自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 资源 (1)
  • 问答 (4)
  • 收藏
  • 关注

原创 openstack开发实践(九):openstack软件包管理和自制python软件包

setup.cfg文件解析软件包管理是每个OpenStack项目的基础,其目的是用来将项目代码打包成源码包或者二进制包进行分发。openstack使用了setuptools作为打包工具,setuptools提供了很多高级功能,包括自动依赖处理、Egg分发格式以及easy_install命令。setuptools的使用方式和disutils差不多,也是以一个setup函数作为入口,只不过该函数来自于setuptools模块,而且支持更多的参数,比如classifiers, setup_requires等,参

2020-08-29 16:03:35 719

原创 Python高级特性与网络爬虫(五):Scrapy框架简介

Scrapy框架简介scrapy是一个基于Twisted的异步处理框架,是一个纯Python实现的爬虫框架,其架构清晰,模块之间的耦合程度低,可扩展性很强,我们可以通过定制开发几个模块就可以实现一个功能强大的爬虫。一个Scrapy框架如下图所示主要由以下几个部分组成:Engine:引擎,处理整个系统的数据流处理、触发事务,是整个框架的核心Item:项目,它定义了爬取结果的数据结构,爬取的数据会被赋值成该Item对象Scheduler:调度器,接收引擎发过来的请求并将其加入到队列中,在引擎再次请求

2020-05-10 00:46:38 714

原创 Python高级特性与网络爬虫(四):异步多协程维护代理池

在做爬虫的时候,如果我们过于频繁地访问某个网站,可能会导致我们的ip被封掉,在这个时候我们需要代理来伪装自己的ip,网上的代理服务有很多,免费的和收费的都有。这些ip有的时候不太稳定,所以我们需要维护一个能够实时从代理服务网站上爬取代理ip并测试其是否可用,选取可用ip,这就需要爬取和测试一个代理池。这篇博文讲述的就是这样一个代理池的构造方法,主要涉及到的有python与redis缓存数据库的交互...

2020-05-01 16:28:56 610

原创 Python高级特性与网络爬虫(三):Python多进程与多线程解决数据竞争的方法

多进程通过multiprocess.Manager()解决共享变量的问题之前写多进程爬取微博用户图片的时候https://blog.csdn.net/weixin_41977332/article/details/105591034,出现一个问题,一开始想定义一个全局变量cnt_pic来计量下载了多少图片,每个进程利用multiprocessing库中提供的Lock()来解决数据竞争的问题,结果...

2020-04-26 11:32:42 371

原创 Python高级特性与网络爬虫(二):使用Selenium自动化测试工具爬取一号店商品信息

上一篇介绍了Ajax动态渲染的页面的分析和爬取,通过JavaScript动态渲染的页面的方式不只有ajax这一种,还有很多其他的方式,分析他们的网页结构和加密参数难度非常大,为了解决这样的页面的数据爬取,我们可以直接使用模拟浏览器运行的方式来实现。python中有很多可以模拟浏览器运行的库,其中最常用的是Selenium,它是一个自动化的web应用的软件测试工具,利用它可以驱动浏览器执行特定的动作...

2020-04-25 12:27:26 312

原创 Python高级特性与网络爬虫(一):使用Ajax请求爬取用户微博内容和python多进程爬取用户图片

Ajax数据爬取,Python和MongoDB的交互以及windows下python的多进程编程。

2020-04-18 17:20:36 609

原创 Kubernetes实战(一):使用Kubeadm工具快速安装kubernetes集群

使用kubeadm工具快速安装kubernetes集群Master节点配置yum源:vim /etc/yum.repos.d/kubernetes.repo[kubernetes]name=Kubernetes Repobaseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/gpgc...

2020-04-11 11:54:48 707

原创 docker实战(一):docker容器生态系统简介和docker machine多主机管理配置

docker容器生态系统简介容器技术docker目前作为容器技术使用最为广泛的容器技术,可以说已经成为了容器技术的代名词。在介绍docker之前首先介绍一下容器技术和虚拟机技术的区别,区分好容器和虚拟机这两个概念,便能够很好得理解容器技术。首先介绍一下虚拟机技术,一台虚拟机需要模拟整台机器包括硬件。每台虚拟机都需要有自己的操作系统,虚拟机一旦被开启,预分配给它的资源将全部被占用。每一台虚拟机...

2020-04-04 21:10:17 403 1

原创 openstack开发实践(八):基于协程的多线程技术在openstack中的应用

协程简介Python相比较C++等其他编程语言,由于全局解释锁(GIL)的存在,在同一时刻只能有一条线程可以向前进行,无法利用多线程进行并行计算,因此Python无法很方便地实现多线程。在Python的世界里,要想实现多线程的功能,需要使用协程,所谓协程,又叫绿色线程,是一个用户态的轻量级的线程,它的调度完全可以由用户控制。从本质上讲,协程可以说是用户态的线程。每个协程都有自己的寄存器上下文和栈...

2020-03-28 20:09:46 492

原创 openstack开发实践(七):RESTful API框架在openstack中的应用

RESTful API简介RESTful API就是RESTful风格的API,所谓REST,即表现层状态转化,这里的“表现层”,指的是资源的表现层,访问资源时伴随产生的数据和状态的变化即为“状态转化”。通常对于REST来说有如下4种基本操作:POST:创建资源PUT:更新资源DELETE:删除资源GET:获取资源对于REST架构来说,每一个URL代表了一种资源,一个URL路径往往是...

2020-03-21 17:26:57 895

原创 openstack开发实践(六):Neutron源码解析

neutron核心架构neutron组件为用户提供了云平台中软件定义网络的功能,它负责管理虚拟网络组件,包括Networks、Switches、Subnets和Routers,同时提供高级网络服务,如Load Balance、Firewall和VPN。Neutron中不同的组件及其部署的节点如下图所示:从中我们可以看出Neutron中的组件可以分为4种Server:Neutron Ser...

2020-03-14 20:40:24 1809

原创 openstack开发实践(五):RPC远程调用解析

RPC服务实现分析openstack的项目(如nova,cinder,glance以及neutron等)中,各个组件之间主要是通过REST API接口进行通信,而同一个组件内部(比如nova中的nova-scheduler与nova-compute通信)都采用基于AMQP通信模型的RPC通信。AMQP是一种提供统一消息服务的应用层标准协议,是应用层协议的一个开放标准,为面向消息的中间件设计。基于...

2020-03-07 19:48:13 607

原创 openstack开发实践(四):Nova源码解析

nova-api服务解析nova-api服务介绍nova作为openstack云中的计算组织控制器,负责支持openstack云中实例生命周期的所有活动,先前在nova组件手动安装https://blog.csdn.net/weixin_41977332/article/details/104031168 中介绍了nova架构中的各个服务组件及其功能。在nova的设计过程中,很注重各个服务组件...

2020-02-29 22:40:01 1047 1

原创 openstack开发实践(三):Dashboard开发

Dashboard概述Dashboard是openstack中提供的一个web前端控制台,以此来展示openstack的功能。Dashboard是一个基于Django Web Framework开发的标准的Python WSGI程序。关于Django的应用开发在上一篇教程openstack开发实践(三)中已经进行了详细的介绍https://blog.csdn.net/weixin_4197733...

2020-02-22 18:45:05 4594

原创 openstack开发实践(二):Django框架简介和Django应用的编写

Django框架简介Django是Python最有代表性的一个网络框架。使用Django可以方便地实现一个功能全面、管理简便的网站或者APP后端。openstack中用来提供图形化界面服务的Dashboard就是利用Django框架进行开发,所以在介绍openstack dashboard开发之前,通过本篇文章针对Django应用开发进行讲解。Django的MTV(模型-模板-视图)模式本质上...

2020-02-15 20:34:40 1790

原创 openstack开发实践(一):devstack搭建all-in-one的openstack开发环境

Devstack简介devstack是面向开发者的一个openstack部署工具,用户可以指定不同的版本分支进行安装。devstack借助于Shell脚本实现openstack自动化部署,devstack源码中的stack.sh即为安装脚本,该脚本默认会安装并配置nova,glance,horizon和keystone,placement,。除此之外,我们也可以通过enable_plugin自定...

2020-02-09 13:44:49 4081 1

原创 openstack(queens)多节点手动安装(六):虚拟机的创建和不同计算节点之间虚拟机的冷迁移和热迁移

虚拟机的创建虚拟机创建流程对于nova来说,它最主要的功能就是维护虚拟机的生命周期。以虚拟机创建为例。在创建虚拟机时,它会与其他组件配合,共同完成虚拟机的创建工作。如创建虚拟机所需要的镜像文件,Nova需要通过HTTP方式向glanceclient发送请求,从而获取虚拟机的镜像文件;创建虚拟机网络时,Nova需要通过HTTP方式向neutronclient,从而创建并绑定虚拟机所需要的网络资源...

2020-02-02 17:17:11 1146

原创 openstack(queens)多节点手动安装(五):控制节点和存储节点cinder组件的安装

cinder组件概述cinder组件,负责openstack中的块存储(cinder本身并不是一种存储技术,只是提供一个中间的抽象层,然后通过调用不同存储后端类型的驱动接口来管理对应的后端存储)。cinder提供的块存储服务,可以为虚拟机提供持久化存储,除此之外,我们也可以单独创建块存储设备,在虚拟机单独创建完成之后,手动将此块设备挂载到虚拟机上。从功能上讲,cinder组件可以分为如下几个部分...

2020-01-26 14:40:11 1041 3

原创 openstack(queens)多节点手动安装(四):控制节点和计算节点neutron组件的安装

neutron组件概述neutron核心组件向用户提供了云平台中定义网络的功能,它负责管理虚拟网络组件,包括Networks,Switches,Subnets和Routers,同时也会提供一些高级网络服务,如Load Balance、Firewall和VPN。neutron中的组件一般分为如下4种:1.Server:对外提供API,管理数据库等;2.Plugins:管理neutron种的各种...

2020-01-20 21:37:26 1952 4

原创 openstack(queens)多节点手动安装(三):控制节点和计算节点nova组件的安装

nova计算服务概述nova是openstack中的核心组件之一,主要负责与计算相关的服务,如对虚拟机生命周期的管理。nova组件主要包括以下几大服务:1.nova-api服务:对外提供REST API服务,是nova服务的入口2.nova-compute服务:提供计算服务,是nova中对虚拟机管理的核心服务,它可以通过调用不同Hypervisor的API来实现对虚拟机生命周期的管理。常见的...

2020-01-18 18:26:46 1498

原创 openstack(queens)多节点手动安装(二):控制节点keystone和glance组件的安装配置

keystone组件简介和安装配置keystone是Openstack中提供认证服务的一个组件,主要负责项目管理、用户管理,用户鉴权,用户信息认证等。keystone租件安装配置在控制节点上,为了实现可伸缩性,此配置部署Fernet令牌和ApacheHTTP服务器来处理请求,步骤如下所示:在数据库中创建keystone的表mysql -uroot -pwwwwwwcreate databa...

2020-01-17 17:19:09 1230 7

原创 openstack(queens)多节点手动安装(一):基础服务的安装+控制节点数据库和消息队列组件的安装

本安装教程适用于openstack(queens)版本,系统为centos7,在virtualbox中创建多个虚拟机来模拟各个节点,安装的节点包括一个控制节点controller node,两个计算节点compute node1以及compute node2,一个存储节点cinder node。本篇文章将首先介绍基础环境和服务的安装配置,计算节点数据库服务,消息队列服务的安装配置环境说明1.基...

2020-01-17 11:26:42 4917 10

roboware-studio_1.2.0-20190625_amd64.rar

RoboWare Studio是ROS的一款IDE,基于微软开源的VSCode开发,功能比较强大,使得开发更加快速、简单。是目前最好用的ROS开发工具了。目前RoboWare官网登不上去,这个安装包是之前在官网上下载的

2019-06-25

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除