关闭

Docker技术内幕3——Namespace的接口和使用

对Namespace的操作,主要是通过clone、setns、unshare这三个系统调用来完成的。 clone可以用来创建新的Namespace。 每个进程在procfs下都有一个ns目录,用来存放namespace相关的信息。...
阅读(44) 评论(0)

Docker技术内幕2——Cgroup的接口和使用

通过上一篇文章,我们已经了解到,Cgroup是Linux内核提供的一个特性,用于限制和隔离一组进程对系统资源的使用。 Cgroup的原生接口通过cgroupfs提供,是一种虚拟文件系统。默认被挂载到/sys/fs/cgroup目录下。 下面我们利用Cgroup特性来限制CPU的使用。 首先我们写一个消耗CPU的脚本,代码如下: #!/bin/sh x=0 while [ Tr...
阅读(46) 评论(0)

Docker技术内幕1——容器技术浅析

目前两个比较火的容器技术是LXC和Docker。 LXC的项目地址是:https://github.com/lxc/lxc Docker的项目地址是:https://github.com/moby/moby 容器技术主要包括Namespace和Cgroup这两个内核特性。 Namespace主要做访问隔离。原理是针对一类资源进行抽象,并将其封装在一起提供给一个容器使用,对于这类资源,因...
阅读(43) 评论(0)

Go语言操作PostgreSQL数据库

Go实现的支持PostgreSQL的驱动有很多,但是github.com/lib/pq是目前使用最广泛的,也是最稳定的一个Go语言实现的PostgreSQL驱动。这里,我就使用github.com/lib/pq(以下简称pq)来进行演示。 首先需要创建一个数据库表,语句如下: CREATE TABLE public."user" (     id serial NOT NULL,...
阅读(28) 评论(0)

DockerXScan——Docker镜像漏洞扫描器

最近刚学Go语言,参考clair写了一个Docker镜像漏洞扫描器。 算是熟读了clair的源码,仿造轮子吧。自己的Go语言编程练习之作。 链接地址:https://github.com/MXi4oyu/DockerXScan   感谢golang交流群里的众兄弟,没有你们的帮助,我很难在短时间内完这个项目。...
阅读(33) 评论(0)

C语言选择排序

简单选择排序是一种选择排序。 选择排序:每趟从待排序的记录中选出关键字最小的记录,顺序放在已排序的记录序列末尾,直到全部排序结束为止。 简单排序处理流程 (1)从待排序序列中,找到关键字最小的元素; (2)如果最小元素不是待排序序列的第一个元素,将其和第一个元素互换; (3)从余下的 N - 1 个元素中,找出关键字最小的元素,重复(1)、(2)步,直到排序结束。 代码...
阅读(33) 评论(0)

JavaScript面向对象(2)——创建对象的工厂模式与构造函数模式

虽然Object构造函数和对象字面量都可以用来创建单个对象,但是当我们创建多个对象的时候就会产生大量的重复代码。例如: var user1={ uname:"jack", age:17, SayHello:function () { alert("Hello,my name is: "+this.uname+".I'm "+this.age+" years...
阅读(43) 评论(0)

JavaScript面向对象(1)——理解对象

面向对象的语言有一个标志,那就是class。而通过class可以创建任意多个具有相同属性和方法的对象。javascript与传统的面向对象语言(C++、Java、C#、PHP等)是不同的,它并没有类的概念,因此它的对象也与基于class的语言中的对象有所不同。...
阅读(65) 评论(0)

从零开始写Go网络通信框架(4)——全双工收发消息

经过上面三篇文章,我们已经写了一个简单的C/S框架,可以实现客户端与服务端进行发送消息。但这是一个单向通讯的。我们要想让客户端接收服务端发来的命令,并执行响应的动作,就需要写成全双工收发消息。即客户端也能接收服务端发来的指令。 下面我在客户端定义一个方法,用来接收服务端的消息。 //接收服务端发来的消息 func ReadMsg(conn net.Conn) { //存储被截断的数据...
阅读(75) 评论(0)

从零开始写Go网络通信框架(3)——对长连接的处理

我要写的这个通讯框架,主要用于监控。那么就会有多个客户端建立不关闭的长连接,这对服务端的开销是很大的。 我这里对长连接的处理方式是:Server端收到Client端发来的信息之后,开始心跳计时,在设定时间内如果收到Client发来的消息,则重置计时器,否则计时结束断开连接。 在Client端,我的处理方式是:用time.NewTicker创建一个定时器,每间隔一秒发送下当前时间到服务器。为简便...
阅读(106) 评论(0)

从零开始写Go网络通信框架(2)——自定义通讯协议

在Server和Client通讯过程中,难免有网络波动,Client有可能无法将信息一次性完整发送而采用分片传送,最终到Server端可能就是多个数据段,我们要拼接这些数据端才能最终还原成原始数据。那么问题来了,怎样才能知道分段数据中的开头和结尾呢?这时候我们就需要自定义通讯协议来解决这个问题。 参考:http://blog.csdn.net/ahlxt123/article/details/4...
阅读(94) 评论(0)

SpringBoot中使用fastjson

首先需要添加依赖: com.alibaba fastjson 1.2.15 然后配置fastjson,步骤如下: 1.启动类继承WebMvcConfigurerAdapter 2.重写configureMessageConverters 核心代码为: @O...
阅读(45) 评论(0)

从零开始写Go网络通信框架(1)——基本的Socket Client/Server的编写

用其他语言写Socket程序通常的步骤是: 服务端:Socket——>bind——>listen——>accept——>read/recv和write/send——>close 客户端:Socket——>connect——>read/recv和write/send——>close 而在Go语言中,写Socket程序被简化为: 服务端:Listen——>Accept——>Read/Write...
阅读(120) 评论(0)

百元买百鸡算法

公鸡5元一只,母鸡3元一只,小鸡1元三只,现有100元,要求买100只鸡。求有多少种购鸡方案。 // suanfa.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" int main() { int max_gj, max_mj; max_gj = 100 / 5; //100块钱最多买多少只公鸡 max_mj = 100 / 3; //100块...
阅读(51) 评论(0)

Python批量删除微博

selenium真是个好东西,最近无意间看到自己曾经的新浪微博,感觉之前发了很多垃圾信息,想要删掉。 可惜微博太多,手删累人,于是就有了下面的代码。 #!/usr/bin/env python3.5 #coding:utf-8 from selenium import webdriver import selenium.webdriver.support.ui as ui from sele...
阅读(62) 评论(0)

《scope源码解析4——main.go》

其实前三篇根本算不上源码分析,只是对项目的简单了解和环境的搭建。而从这一篇开始,我们才真正能接触到scope项目的源码。...
阅读(51) 评论(0)

《scope源码解析3——Makefile make啥?》

该Makefile一开头定义了12个“伪目标文件” .PHONY: all deps static clean client-lint client-test client-sync backend frontend shell lint ui-upload 然后定义一大堆变量,接下来先执行 sudo -E docker build -t weaveworks/scope-backe...
阅读(86) 评论(0)

《scope源码解析2——scope.sh》

bash脚本中set -e,设置该选项后,当前脚本任何一个命令执行返回的状态码不为0就退出整个脚本。 set -u,设置该选项后,当前脚本在执行过程中尝试使用未定义过的变量时,报错并退出整个脚本。 scope.sh在一开头就做了set -eu的设置。...
阅读(71) 评论(0)

《scope源码解析1——scope是个什么鬼》

项目地址为:https://github.com/weaveworks/scope 它是个什么鬼呢? 官方简介为:Monitoring, visualisation & management for Docker & Kubernetes(Docker和Kubernetes的可视化监控管理软件) Weave Scope能为你的应用自动生成一个map,使你可以直观的了解、监控、管理你的...
阅读(138) 评论(0)

Ubuntu下搭建VPN服务器

1. 更新系统并安装PPTP       root@cloud :~# apt-get update     root@cloud :~# apt-get install pptpd 2. 安装完成后配置VPN的本机ip及客户端ip池     root@cloud :~# vim /etc/pptpd.conf     #去掉以下两行的注释,将localip参数的值改为VPN外...
阅读(115) 评论(0)
35条 共2页1 2 下一页 尾页
    个人资料
    • 访问:357308次
    • 积分:5654
    • 等级:
    • 排名:千里之外
    • 原创:33篇
    • 转载:2篇
    • 译文:0篇
    • 评论:0条
    博主推荐