霹雳啪啦程序汪


  • 首页

  • 归档

  • 标签

RabbitMQ学习

发表于 2016-04-25   |     |   阅读次数

AMQP

好处

先谈谈不用amqp的情况,以Java为例,通常使用JMS API来做message client,和一个支持JMS的message broker来传输。 那如果我们需要跨语言的平台来进行交互,比如Java message client和Ruby message client,那就需要一个支持Java OpenWire协议和Ruby STOMP协议的message broker,然后我们找到了支持这种的ActiveMQ。但是如果我们需要在C#和Ruby之间传输呢,就需要一个支持C#的MSMQ和Ruby的STOMP协议的message broker。
amqp_ruby_C#图

阅读全文 »

Openstack cinder学习

发表于 2016-03-28   |     |   阅读次数

存储基本知识

存储方案

DAS (Direct-Attached Storage)
服务器和存储设备直接连接的方式。 每个服务器有自己单独的存储设备,存储之间不共享。类似于机器的硬盘这种方式。这种方式的话,扩展性,利用率,容灾等等都很差,这是早期的实现方式。

SAN (Storage Area Network)
服务器和存储设备通过光纤网络连接的方式,服务器共享一个磁盘阵列。当服务器需要存储时,存储设备分配出一块区域,然后服务器通过网络连接上这块存储,再对其进行格式化,成为可以用的文件系统。

DAS (Network Attached Storage)
这种方式,存储除了有磁盘阵列外,它有自己的文件系统,相当于自己就是一个提供文件系统的存储服务器,当外部服务器需要访问存储的时候,可以直接通过网络连上存储服务器提供的文件系统来使用。

阅读全文 »

Python抓取知乎图片

发表于 2016-03-14   |     |   阅读次数

最近在学python,写个简单的爬虫来练练手。

思路

为了爬取的速度,所以目的是写个多线程的爬虫来爬取知乎的图片。

大致思路是模拟用户登录,从首页进入,下载其中的所有图片,并存储首页中的链接,然后再递归的查询存储的链接,下载图片,如此循环。

代码中用到的数据结构:

download_image_queue 队列,用来存储所有的链接。 会有多个下载图片的线程通过竞争从这个队列中pop出链接,然后下载其中的图片

generate_url_queue 队列,用来通过链接来查找链接。从download_image_queue pop出来的链接,除了下载其中的图片外,还需要put到这个队列中,有一个单独的线程来从这个队列中pop出链接,来查找这个链接中的其他所有链接,并存入download_image_queue队列。

queried_set Set集合,用于存储已经查询过的链接,避免陷入死循环

阅读全文 »

Salt自定义module

发表于 2016-03-03   |     |   阅读次数

Saltstack自带了很多module供使用,但需要自己实现一些功能的时候,就需要来自定义module了。

Salt Modules

State Modules和Execution Modules

Salt有2种Modules,State Modules和Execution Modules。

  1. Execution Modules: 它是通过salt的命令行调用的。当执行相应的execution module的时候,会发送给minion相应的命令,让其马上执行这个命令。
  2. State Modules: 它是通过states文件调用的。它更倾向于让minion保持某种状态或结果。和Execution Modules不同的是,当执行State Modules的时候,它会检测minion有没有达到state modules想让它达到的效果,比如pkg.installed,它会检测minion有没有装这个软件,如果没有,才会去安装。
阅读全文 »

Openstack neutron学习

发表于 2016-01-20   |     |   阅读次数

最近在学习openstack neutron的东西,记录下自己的一些理解。

网络基础知识

Switches & Vlan
交换机的作用是来连接设备,实现互通的。network host之间通过交换机连接起来,当host A第一次向host B发送帧数据时,先广播出去,而MAC地址相符的host B便接受到数据,并返回给A,完成通信。这时交换机也会自学习MAC地址和Port的对应关系,下次便可直接向对应MAC地址的Port发送帧数据。

那交换机中进行隔离是通过划分vlan的方式,openstack中也是通过这种方式来隔离tenant的network。network属性的segmentation_id即为vlan_id,如果network不share的话,就只有这个tenant可以访问。

当交换机的某个vlan的port被占完后,比如交换机A的vlan10的port被占完了,需要用到第二个交换机B,也给B划分vlan10,然后将A和B连接起来,连接的端口设置为trunk port,这样从trunk port出去的数据会加上vlan tag的标志,只有vlan tag一样的才能收到。

阅读全文 »

Salt UI Demo

发表于 2016-01-16   |     |   阅读次数

因为之前学习了saltstack,所以有个简单的想法,想写个salt management UI,这样就不用输入繁琐的命令,方便管理和运维。
由于没多少时间,就做了个简单的demo,仅仅写了登陆,key管理,远程执行minion的cmd命令的功能,在这里记录下。

涉及框架

demo采用springMVC + velocity + bootstrap框架。


阅读全文 »

Heat+Salt自动部署服务

发表于 2016-01-09   |     |   阅读次数

记录下在PaaS层自动部署服务的学习过程。

整体流程

Heat来做自动编排,Salt来安装服务和对虚机的管理。

  • 1.Create vm
  • 2.Install minion
  • 3.Master accept minions’s key
  • 4.Install service

阅读全文 »

斗鱼弹幕抓取

发表于 2015-12-26   |     |   阅读次数

因为平时无聊的时候喜欢看下斗鱼之类的直播平台,所以顺便会思考下斗鱼是怎么让获取弹幕的。这里记录下过程。

抓包分析

了解到斗鱼有个专门的弹幕服务器,http://danmu.douyutv.com, 端口的话,8601,8602,12601,12602都是弹幕端口。

这里我用wireshark对其进行抓包。结果如下图:
抓包

阅读全文 »

keystone记录

发表于 2015-12-06   |     |   阅读次数

记录下openstack中keystone的安装及基本用法。

环境信息

虚机
使用virtualBox安装CentOS 7作为节点

网络
创建3张网卡

  • management network:10.20.0.0/24
  • private network: 192.168.4.0/24
  • external network: 172.16.0.0/24

阅读全文 »
1…34
ndrlslz

ndrlslz

Just Record Something

39 日志
0 分类
0 标签
GitHub Weibo
© 2021 ndrlslz
由 Hexo 强力驱动
主题 - NexT.Pisces