自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

逆时针

stay hungry, stay foolish

  • 博客(56)
  • 资源 (1)
  • 收藏
  • 关注

原创 celery-周期性任务

celery-周期性任务CELERYBEAT_SCHEDULE中实现routingfrom celery import Celeryfrom celery.schedules import crontabapp = Celery()#在 on_after_configure 句柄上设置这些意味着当使用test.s() 时我们不会在模块级别对 app 求值。@app.on_after...

2018-11-29 17:20:55 1649 3

原创 postman学习

postman学习背景:在nfvi-server部署完成后,我们需要测试一些接口能够正常返回。这里可以用postman来做简要的检查。接口文档规范看nfvi-server对应的用户API文档。上面有请求api的一些规范。header部分:所有请求加header。header的内容包括所属的project名称,合法的用户名和密码,以及内容的类型content-Type。每个api的描述分...

2018-11-29 17:19:03 355

原创 ubuntu+haproxy实战

需求有一个web应用的项目,单独部署在容器里,对于部署的主机开放端口(例如3000, 或者3080)。然后我们希望考虑到项目的高可用性,尝试使用负载均衡的解决方案。实现效果我们在多台主机上跑这个容器,也可能是同一个主机上跑多个容器,只要端口不冲突即可,然后使用haproxy,配置相关的文件,当其中一台容器或者一个主机挂了之后,haproxy会自动选择可用的服务,使得整个项目服务具有高可用性。...

2018-11-02 16:04:39 1361

原创 docker私有仓库使用

在本机构建私有仓库docker run -d -p 5000:5000 --name registry -v /opt/data/registry:/tmp/registry registry这个容器始终一直运行在后台。将容器发送到私有仓库# 假设现有的容器name为oatest, tag为latestdocker tag oatest:latest $RegistryIP:50...

2018-10-31 09:13:14 280

原创 搭建gitlab+jenkins+webhooks自动部署环境

概述gitlab+jenkins+webhooks构建自动部署的项目的教程网上都有很多。我找了好几个教程一起看,然后也配好了相关的环境。多余重复的东西就不赘述了,把过程中遇到的问题提一下,希望不会再踩坑吧。访问权限问题在配置这个环境的时候,其实我是将gitlab和jenkins放在两台服务器上部署。潜在的一个问题在于可能在内网里是无法访问到gitlab或者jenkins。解决方案:gi...

2018-10-25 09:03:12 6184

原创 ubuntu14.04java6环境部署

近期因为项目开发要求,需要在ubuntu环境下部署java6环境。原本是一个很简单的事情,但是因为特定版本,特定需求,自己尝试写了个脚本来实现。第一步,我们要去官网下载相关的安装包jdk-6u45-linux-x64.bin。https://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-downloa...

2018-10-23 14:46:44 173

原创 ansible学习笔记(一)

文章目录环境配置简单测试各组件介绍inventory文件Ad-Hoc命令Ansible playbookAnsible facts信息Ansible role最近在看《ansible 自动化运维技术与最佳实践》这本书,结合网上的一些博客来学习ansible。整理相关的内容。环境配置安装ansible在ubuntu上有两种方式自动安装,可以用apt-get安装,也可以用pip安装。pip安装...

2018-09-27 13:36:16 1936

原创 flask-web项目中的数据请求

文章目录问题描述解决方案代码区别问题描述最近(项目的web框架选用flask)遇到一个问题,描述如下:从view函数中获得一个全局变量,hosts。类型为列表内嵌dict。例如hosts{host1{ip, mac, id…},host2{ip, mac, id…},host3{ip, mac, id…}}前端界面用户通过一个下拉框来选择某一个host(html中的for循环...

2018-09-24 13:35:01 475

原创 探究flask中的celery后台任务

探究flask中的celery后台任务项目的开发经常用到celery后台任务,但是对于他的实现却不太清楚,只知道怎么用,却不知道用了它之后发生了什么,欠缺思考。下面记录下我在项目中用到celery的地方以及自己的一些思考。使用场景:在web开发时有一些耗时的操作需要执行,但是你又不想一直阻塞前端,那么可以尝试使用celery的后台任务,将请求发送到celery后台,然后前端不再阻...

2018-08-24 13:53:17 2248 1

原创 数据库之事务

[TOC] 事务应该是数据库中的重点问题。面试的时候也被经常问到。一般我们只局限于事务的四个特性,却不太清楚他的底层实现,比如说日志啊锁啊等等。了解了底层实现之后有助于加深我们对事务的理解。 题外话:innodb支持事务,而mysaim不支持事务。事务事务: 事务是一个序列操作,事务里的操作要么执行,要么不执行。是维护数据库一致性的单位。 四个属性:ACID,原子性,一致性,隔离性...

2018-08-22 19:54:52 173

原创 openstack中的通信机制

我们都知道openstack中有至少两种通信机制,一种是RESTful API,另一种是RPC调用,举个例子,当nova与glance通信的时候可能用的是RESTful API,而nova-api与nova-scheduler进行通信的时候,却是使用rabbitmq中的消息队列。为什么呢?另外在一个架构设计中应该选择哪一种通信机制。需要我们对这两种机制有一定的了解。分类RESTFUL A...

2018-08-22 19:47:49 1990 1

原创 《STL源码剖析》读书笔记(四)

空间配置器 allocator空间配置器 allocator概览精细分工双层级配置器相关问题在STL中,所有的元素都是存放在容器中,容器需要配置空间来储存这些数值,因此需要用到空间配置器。概览SGI的空间配置器 SGI标准的空间配置器是allocator, 只是对基层内存配置/释放行为(对运算符new/delete)进行了一层薄薄的封装,没有考虑到效率上...

2018-07-25 16:23:02 329

原创 《STL源码剖析》读书笔记(三)

关联式容器(缩进表示基层与衍生层的关系,衍生是内含关系)RB-tree(非公开) setmapmultisetmultimaphashtable(非标准) hash_set(非标准)hash_map(非标准)hash_multiset(非标准)hash_multimap(非标准)二叉搜索树 任何节点最多只能允许两个子节点平衡二叉树 确保整棵树的深度为O(logN),...

2018-07-20 14:59:18 142

原创 kolla项目二次开发——新增服务

kolla项目中需要新增服务,这个服务可以是openstack新组件,也可以不是openstack的组件。根据需求,这里我需要添加一个非openstack组件的容器,并且让kolla能够在deploy命令时一起部署它,同时也可以利用ansible对他进行运维。 这里可以参考的资料比较少,主要还是靠自己摸索。目标在本地有phoenix容器的前提下,通过kolla项目的deploy命令,部署...

2018-07-19 20:58:20 1362

原创 红黑树

定义相关操作插入节点删除节点结构应用对比红黑树很复杂,今天就要整理学习这部分内容。定义红黑树是一种平衡二叉搜索树,而且满足以下规则: 1. 每个节点不是红色就是黑色 2. 根节点是黑色 3. 如果节点是红色,那么他的子节点一定是黑色–>新节点的父节点一定为黑色 4. 任何一个节点到NULL(树尾端)的任何路径,所包含的黑节点数目必须相同–...

2018-07-18 14:58:11 198

原创 《STL源码剖析》读书笔记(二)

这部分内容主要是针对序列式容器来记录的,了解各种序列式容器的底层实现以及对源码、实现逻辑进行分析。分类序列式容器(缩进表示基层与衍生层的关系,衍生是内含关系,例如priority_queue内含一个heap 其中的元素是可序(ordered),但未必有序(sorted)) array(c++内建),vector, heap(以算法形式呈现), priority_queueli...

2018-07-13 15:55:29 273

原创 《STL源码剖析》读书笔记(一)

本文为阅读《STL源码剖析》所作的读书笔记,仅供自己留备份学习。STL设计的目的 建立数据结构和算法的一套标准,并且降低期间的耦合关系以提升各自的独立性、弹性、交互操作性。组成 迭代器:设计适当的响应型别容器:设计适当的迭代器算法:完全独立于容器和迭代器之外自行发展,只要设计时以迭代器为对外接口就行STL六大组件 容器(containers),指各种数据结构:vector、li...

2018-07-09 20:21:16 505

原创 KOLLA项目中的网络虚拟化

kolla中的网络虚拟化kolla中的网络虚拟化证据优点ovs分析结论在kolla中所有的容器都是选用最简单的host网络,网络配置同在物理机上是一样的证据docker info 除了none、host、bridge三个自动创建的网络,用户也可以根据自己的需求创建user-define网络:bridge、overlay、macvlan。overlay和...

2018-07-04 10:14:48 907

原创 KOLLA项目中的容器存储

docker容器存储实现Storage driverData volumekolla中容器存储的应用容器层镜像存储容器数据持久化存储docker容器存储实现容器存储有两种方式,storage driver和data volume。Storage driverstrorage用于管理镜像层和容器层镜像分层,容器由一个可写的容器层以及若干只读的镜像...

2018-06-29 17:12:44 318

原创 容器底层实现技术

对于容器的了解需要知道他的底层实现技术。cfgroup:实现资源限额namespace:实现资源隔离cgroup全称:control group, linux操作系统通过cgroup设置进程使用CPU、内存和IO资源的限额。我们可以在/sys/fs/cgroup/cpu/docker下查看。 这里我们查看了一个容器的cpu限额,它保存的是–cpu-shares的配置,值为102...

2018-06-27 16:31:31 823

原创 Best Time to Buy and Sell Stock系列分析

121. Best Time to Buy and Sell Stock https://leetcode.com/problems/best-time-to-buy-and-sell-stock/description/ 题目描述:只能进行一次交易 那么我们找到差值最大的两个数,并且后面的值比较大即可。122. Best Time to Buy and Sell S...

2018-06-21 19:28:08 843 1

原创 kmp算法介绍

kmp算法问题描述常规思路KMP算法kmp算法问题描述给出两个字符串,一个为主字符串,一个为子串,希望判断主字符串是否包含子串,并且找到子串在主字符串第一次出现的位置。如果不存在则返回-1输入: “ababababaa” “ababaa”输出 4所有的做法的第一步肯定是遍历字符串,下面通过一个示意图来表示 一旦字符串和子串匹配不上...

2018-06-12 16:31:33 847

原创 ubuntu下容器部署openstack

引言基本步骤安装操作系统其他软件依赖安装ansible安装docker下载kolla-ansble的源码环境配置基本环境检查执行部署openstack服务验证对容器进行运维注意事项引言目标: 尝试在一台物理机上利用kolla-ansible安装openstack-all in one环境。 最近研究kolla项目,主要是用容器来自动部署o...

2018-06-06 21:15:09 4714 3

原创 KOLLA项目中容器通信探究

容器之间的通信方式单主机容器通信跨主机容器通信openstack组件通信kolla-ansible源码多节点部署的实际环境一直以来容器通信都是软肋,涉及到数据安全性和服务可靠性。而kolla项目中的容器多达32个,因此很有必要搞清楚这些容器之间是怎么通信的,如何进行消息传输从而提供openstack服务。 网上搜索后发现很少相关的信息,因此自己不断地摸索来找答...

2018-05-24 15:10:06 556

原创 openstack实例无法连接物理网络

问题背景:用vmware创建虚拟机,操作系统选择ubuntu14.04.5,创建了两个虚拟网卡,管理网卡选择了NAT模式,外部网卡选择了仅主机模式。问题描述:用集成脚本成功搭建openstack环境(M版本)后,创建的实例无法上网,无法用ssh远程连接解决方案:作为外部网卡的网络适配器不应该选为仅主机模式。 之前只想着两个网卡的网络要隔离,选择了两个不同的网段,但是一旦要考虑...

2018-05-09 14:20:03 7704 3

原创 凑硬币问题

题目描述给出任意一堆硬币,然后我们需要凑到k元钱,问一共有多少种凑法。输入格式 t length target coin1 coin2 coin3…输出格式 count举个例子,现在有1元、2元、5元硬币,要凑成5元,一共有多少种方式? 输入:1 3 5 1 2 5 输出:4 我们一看就能知道结果: 1+1+1+1+1 1+1+1+2 1+2+2 5 一...

2018-04-24 11:39:04 2823 1

原创 openstack-kolla项目

kolla源码阅读项目目标目录结构kolla-build 代码分析容器镜像kolla-ansible源码阅读项目目标目录结构Ansible Playbooks分析kolla-ansiblekolla源码阅读项目目标To provide production-ready containers and deployment tools f...

2018-04-23 16:48:06 921

原创 centos下容器部署openstack

单节点部署多节点部署单节点部署下载镜像 kolla-ocata(来自 http://www.chenshake.com/kolla-ocata-iso-release-notes/)vmware + kolla-ocata 从图中可以看到网卡配置了两个(一个为NAT模式,一个为仅主机模式)。内存分配了8G,硬盘分配了200GB。通过iso引导,启动镜像,...

2018-04-21 21:17:55 2006

原创 如何验证openstack是否安装成功

验证openstack服务验证openstack服务登陆查看上传镜像创建网络安全组规则创建实例通信很多情况下,我们可以在网络上找到openstack部署安装的教程,但是装完之后要干嘛,还是不知道openstack是什么,有什么用。 下面让我们走进openstack的世界。登陆首先当然是打开dashboard的界面,能成功登陆的话,说明用户创建成功...

2018-04-20 15:00:19 4177

原创 树的遍历

数的遍历有3种,分别是前序遍历,中序遍历和后序遍历。 前序遍历:根左右 中序遍历:左根右 后序遍历:左右根 分享下我怎么记忆的,只需要记得第一个字表示根的位置,就不会搞混了。另外还要知道,如果只知道前序和后序,是不能唯一确定一棵树的。对于每种遍历,又存在递归式和非递归式。递归式当然好实现,只要简单的几行代码就可以实现;而非递归式呢,需要花点功夫,另外非递归式的后序遍历还有点小麻烦。下面...

2018-04-04 21:39:39 175

原创 c++文件从编译到执行

基本步骤编译器链接静态链接与动态链接静态链接动态链接:区别基本步骤预处理 -> 编译 -> 汇编 -> 链接预编译:将源文件hello.c和相关的头文件被预编译器编译成一个hello.ii文件(c语言的话.c文件预编译成.i文件)将#define 删除,展开所有的宏定义处理条件预编译指令,把包含的文件插入到预编译指令的位置(...

2018-04-02 15:15:44 1414 2

原创 数据库设计问题

面试的时候遇到了两道数据库设计的题,当时没有回答完全正确,现在将思考和实践的结果复现一下,查漏补缺。第一题:层级数据库设计题目描述:现在有10万条左右的数据,记录一个部门的员工。大部门下是层级结构,有许多个子部门。比如,一级部分A,二级部门A’,B’,C’,三级部门A”,B”,C”。试问如何设计数据库,我们需要统计二级部分A’下的所有人数。 分析: 这里用到了一个层级数据库的设计。...

2018-03-30 10:57:14 1446

原创 MYSQL数据库总结

数据类型数据库database操作创建数据库使用数据库删除数据库建表语句插入表查询数据库库表更新数据库表删除表并集排序分组连接修改事务索引场景分析(对重复数据的处理)表中不能有重复的数据过滤重复数据统计表中重复数据删除重复数据SQL注入执行顺序数据类型分为三种: 数值、字符串、日期 记录一些用过的、比较特殊的吧:...

2018-03-22 19:57:21 328

原创 计算时间复杂度

计算时间复杂度public static void main(String []args){ int n = 100; for(int i=0;i<n;i++){ cout<<"Test"<<endl; }} 语句 运行次数 int n = 100 1 int i=0 1...

2018-03-17 12:20:07 246

原创 内联函数

内联函数内联函数简介使用宏与内联简介内联函数是C++为了提高程序运行速度所做的一项改进。 内联函数与常规函数的区别在于:c++如何把它们组合到程序中。编译过程的最终产品是可执行文件,由一组机器语言指令组成。操作系统将这些指令载入到计算机内存中,因此每条指令都有自己特定的内存地址。计算机随后逐步执行这些指令。遇到循环或者分支语句的时候,就会向前或者向后跳到...

2018-03-15 21:23:30 262

原创 排序算法总结

外部排序内部排序插入排序选择排序冒泡排序希尔排序归并排序快速排序堆排序基数排序大数据排序:外部排序为什么需要外部排序 指的是待排序记录的数量很大,以致内存一次不能容纳全部记录,在排序过程中需要对外存进行访问的排序过程。 定义 外部排序指的是大文件的排序,即待排序的记录存储在外部存储器上,在排序过程中需进行多次的内、外存之间的交换。 怎么...

2018-03-15 21:19:40 210

原创 Docker小结

目录目录简介核心组件Docker的安装Docker的基本工作原理Dockerfile常用语法简介Docker 是一个开源的应用容器引擎——能够把开发的应用程序自动部署到容器,开发者可以利用Docker打包自己的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。 技术:Docker基于LXC(LinuX Conta...

2018-03-13 20:31:47 174

原创 指针小结

目录目录声明指针指针赋值给指针解除引用指针和指针指向的值指针和数组指针算术指针和字符串链表使用C++管理数据内存的方式二维指针本篇文章记录一些指针学习的心得总结。声明指针//typeName *pointerName//for example: int * pointer1; double *pointer2;指针赋值...

2018-03-11 17:48:26 317

原创 多态与虚表总结

目录目录概述切入点(普通继承)多态(虚函数)虚函数表概述这一篇文章主要是想记录一下多态以及虚表的一些理解。 当派生类使用基类方法,可能需要有所改变,也就是当同一个行为(成员函数)在派生类和基类中的行为不同时,我们需要用到多态,同一个方法的行为随着上下文而有差异,有两种机制可以来实现多态公有继承:在派生类中重新定义基类的方法使用虚函数。切入...

2018-03-09 16:44:45 240

原创 C++基本类型

目录目录C++基本类型分类整型整型 short,int,long和long long其他整型类型CONST限定符浮点数sizeof()部分问题总结C++基本类型分类整型 符号整型:signed char, short, int, long, long long无符号整型:unsigned …浮点型:float, double, long ...

2018-03-09 15:37:37 292

空空如也

空空如也

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

TA关注的人

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