自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Arvon

The road not taken

  • 博客(61)
  • 收藏
  • 关注

原创 基于Kafka共识的Fabric分布式环境搭建

测试环境服务器安排: 名称 IP Hostname 组织 备注 zookeeper1 10.16.3.97 zookeeper1 公共   zookeeper2 ...

2018-12-07 15:08:38 1142

原创 用Tendermint开发一条简单的区块链

用Tendermint开发一条简单的区块链 1.         初识TendermintTendermint(TM)是the Cosmos network旗下的一个区块链项目。TM能安全且保持一致性地在多台机器之间复制应用程序。TM的共识算法基于节点不可信的设计,也就是允许拜占庭错误。TM主要分成两个部分。一个是一个区块链共识引擎(Tendermint Core)。他主要负责节点之间的数据同步有...

2018-06-28 10:34:33 5033 2

原创 以用户命名空间隔离docker容器的宿主机资源

本文主要介绍如何配置docker的容器资源目录,以及对容器资源进行隔离。参考网址[root@mvxl5461 docker]# id appsuid=1000(apps) gid=1000(apps) groups=1000(apps),1001(docker)[root@mvxl5461 docker]# echo apps:1000:1000 > /etc/subuid [root@mv...

2018-06-07 19:34:55 1070 1

原创 ETCD集群安装,常用命令,Go使用分布式锁案例

在不同的机器启动一个clusterTOKEN=token-01CLUSTER_STATE=newNAME_1=machine-1NAME_2=machine-2NAME_3=machine-3HOST_1=10.240.0.17HOST_2=10.240.0.18HOST_3=10.240.0.19CLUSTER=${NAME_1}=http://${HOST_1}...

2018-04-08 14:53:23 1459

原创 Tendermint的工作原理剖析(一)

当一个Tx进来时, Tmcore的mempool(MP)会通过mempool connection(一个socket连接,由abci-server提供,端口号为46658)调用Application Logic(AL:也就是abci-app,我们自己用任何语言编写的APP逻辑)里的checkTx方法,AL向MP返回验证结果。MP根据验证结果放行或者拒绝该Tx。Tendermint(TM)把tx暂存...

2018-03-05 11:26:54 3253 2

原创 IPFS初体验(环境搭建,私有网络环境搭建,API演示)

基本命令$ ipfs init$ ipfs daemon$ ipfs cat ahash$ ipfs ls ahash$ ipfs id$ echo "This is some data" | ipfsblock put $ ipfs swarm peers$ ipfs swarm connect/ip4/98.207.107.204/tcp/4001/ipfs/QmVenSWgxVW4NVLCw...

2018-02-26 15:11:16 10072 7

原创 手写一个dockerfile构建beego_blog镜像

今天自己尝试着写了一个dockerfile构建beego_blog镜像(beego_blog是一个go web应用), 经过几次调试,最终使得此镜像能访问宿主机上的mysql服务。 下面是dockerfile 文件 [html] view plain copyFROM golang:latest    MAINTAIN

2017-12-28 10:12:28 2169

原创 zookeeper的集群版安装

Zookeeper基础知识、体系结构、数据模型 1zookeeper是一个类似hdfs的树形文件结构,zookeeper可以用来保证数据在(zk)集群之间的数据的事务性一致、2 zookeeper有watch事件,是一次性触发的,当watch监视的数据发生变化时,通知设置了该watch的client,即watcher 3 zookeeper有三个角色:Learner,Followe

2017-10-25 10:38:03 356

原创 FastDFS单机版安装

FastDFS单机版安装一、准备工作(俩台机器同时进行)软件准备 2安装gcc。命令:yuminstall make cmake gcc gcc-c++  2、安装libfastcommon(俩台机器同时进行)unzip libfastcommon-master.zip -d/usr/local/fast/ cd /usr/local/fast/li

2017-10-17 15:15:33 826

原创 Nginx+Keepalived实现nginx的高可用集群搭建

/******************Nginx + Keepalived第一步:下载keepalived地址:http://www.keepalived.org/download.html解压安装:tar -zxvf keepalived-1.2.18.tar.gz -C /usr/local/yum install -y openssl openssl-devel(需要安装一个

2017-10-17 10:39:56 455

原创 阿里云linux服务器重启遇到的那些坑

博主因为受不了linux的网络太慢,开几个应用都是很难出来内容。于是重启linux服务器。这下好了,重启之后发现用xshell一直连不上linux。心想一定是防火墙的问题。于是奔着开启22端口的目标,踏上救机的泥潭。首先博主去vim /etc/sysconfig/iptables文件,但是怎么也保存不了。证明自己的权限不够,但是明明自己登录的用户就是root啊。然后去/etc/sudoers查

2017-09-21 18:08:53 14523 2

原创 基于Netty的文件上传下载、心跳检测、在线聊天的demo

1.文件上传import io.netty.bootstrap.ServerBootstrap;import io.netty.channel.Channel;import io.netty.channel.EventLoopGroup;import io.netty.channel.nio.NioEventLoopGroup;import io.netty.channel.socke

2017-09-14 18:36:26 1135

原创 Redis的单机版和集群版安装

1.单机版安装步骤/****下载地址http://redis.io/download安装步骤:1 首先需要安装gcc,把下载好的redis-3.0.0-rc2.tar.gz 放到linux /usr/local文件夹下2 进行解压 tar -zxvf redis-3.0.0-rc2.tar.gz3 进入到redis-3.0.0目录下,进行编译 make4 进入到src下

2017-09-13 09:48:52 382

原创 自己写的一款基于移动端的图片浏览器插件

/** * 基于移动端的图片浏览器 * @author:Arvon * @time:2017-06-02 * @type {{}} */var currIndex = 0;var ImageBrowser = { $images:"", startX:0, moveX:0, releaseX:60, hasDblClicked:false,

2017-06-02 17:36:54 1615

原创 ORACLE函数,视图记录

1.函数create or replace function f_friendly_num(num in number) return varchar2 is /*********************************************************** 转化为万或亿 by huangwen 2017-04-26 **********

2017-05-05 10:27:39 858

原创 根据SVN距给定时间之后提交的文件进行增量部署Java工具类

这个根据类的作用详见代码注释。如果你每天都要进行增量部署,那么使用这个工具类,可以大大简化部署程序,省去一大堆麻烦。package com.arvon.filedetector;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.I

2017-04-06 14:29:54 493

原创 cglib动态代理例子和浅剖Spring Aop机制

1.cglib动态代理例子  要导入cglib的jar包package com.arvon.cglibproxydemo;/** * 目标类 *@author Huangwen *2017-3-30 */public class Target { public void mainLogicMethod(){ System.out.println("Target.ma

2017-03-30 09:58:16 422

原创 JDK动态代理的一个例子

1.目标类接口package com.arvon.jdkproxy;/** * 目标类接口 * 目标类和动态生成的代理对象都实现的接口 *@author Huangwen *2017-3-29 */public interface ITargetClass { /** * 主业务逻辑方法 */ public void mainLogicMethod();

2017-03-29 10:11:57 1059

原创 Nginx的介绍,安装和配置,Nginx的反向代理,负载均衡

1.1   Nginx1.1.1  什么是nginx是一个使用c语言开发的高性能的http服务器及反向代理服务器。Nginx是一款高性能的http 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。由俄罗斯的程序设计师Igor Sysoev所开发,官方测试nginx能够支支撑5万并发链接,并且cpu、内存等资源消耗却非常低,运行非常稳定。 1.1.2  Ngin

2017-02-09 14:56:02 288

原创 由线性的List生成树状的List,森林的生成算法-Java实现

一下是源代码package com.arvon.json1.bean;import java.util.ArrayList;import java.util.List;/** * 森林生成的算法 *@author Huangwen *@time 2017-1-23 */public class TreeNode { private int id ; priv

2017-01-23 14:55:03 529

原创 Objective-C学习笔记和IOS入门

1. main(int argc, char * argv[]){} (因为程序名总是用作启动参数传递,所以argc的值至少是1)2. NSLog(@"some strings"); @"" --> NSString ;  "%@"-->是NSString 的占位符;  3. NSString *getColorName(ShapeColor colorname){return @

2016-05-09 14:14:59 1696

原创 Oracle 学习笔记--入门篇

/*1. 取消重复行 --> select distinct column1 , column2 from table2. nvl(column1,0) --> 如果column1存在数值,则返回原有值; 如果为null, 则返回 0。3. select deptno , avg(sal) , max(sal) from emp group by deptno having avg(

2016-03-29 14:14:41 573 1

原创 Django 学习笔记

'''url("^blog/index/$",'blog.view.index') blog.view.index --> view.index()-------------------------①view.pyfrom django.http import HttpResponsedef index(req): return HttpResponse('hello welco

2015-10-15 22:05:33 651

原创 Cocos2d-android 学习笔记

SurfaceView getHolder() -->SurfaceHolderSurfaceHolder 代理者 代理Surface完成界面相关的操作getSurfacelockCanvas()unlockCanvasAndPost(Canvas c) 放在finally块中SurfacelockCanvas()lockCanvas(R

2015-10-04 09:02:43 777

原创 设计模式: 自己手动写一个状态模式

状态模式: 允许对象在内部状态改变时改变它的行为,对象看起来好像修改了它的类。状态模式将状态封装成独立的类,并将动作委托到代表当前状态的对象。状态模式使用组合通过简单引用不同的状态对象来造成类改变的假象。状态模式和策略模式有相同的类图,但它们的意图不同,策略模式会用行为和算法来配置Context类。状态模式允许Context随着状态的改变而改变其行为。源代码:package s

2015-09-01 09:11:16 867 1

原创 设计模式: 自己手动写一个代理模式

代理模式:为另一个对象提供一个替身或占位符以访问这个对象。代理模式为另一个对象提供代表,以便控制客户对对象的访问,管理访问的方式有许多种。远程代理管理客户和远程对象之间的交互。虚拟代理控制访问实例化开销大的对象。保护代理基于调用者控制对对象方法的访问。代理模式有许多变体,例如:缓存代理、同步代理、防火墙代理、写入时复制代理。Java内置的代理支持,可以根据需要动态创建代理,并将

2015-08-27 14:00:31 1330

原创 设计模式: 自己手动写一个命令模式

.命令模式: 将“请求”封装成对象,以便使用不同的请求、队列、日志来参数化其他对象。命令模式也支持可撤销的操作。  命令对象将动作和接收者(当作的执行者)包进对象中。这个对象之暴露一个execute()方法. 命令也可以用来实现日志和事务系统。宏命令是命令的一种简单延伸,允许调用多个命令。下面是命令模式的一个类图:一个案例的源代码如下:package com

2015-08-26 14:26:49 726

原创 设计模式: 自己手动写一适配器和外观模式

适配器模式: 将一个类的接口,转换成客户所期待的接口,适配器让原本不兼容的类可以合作无间。有两种形式:类适配器和对象适配器。前者需要用到多重继承(java不支持),后者要用到组合。外观模式: 提供了一个统一的简化的接口,用来访问子系统里的一群接口。外观定义了一个高层接口,让子系统更容易使用。适配器的类图适配器的一个简单源码:package adapter;

2015-08-26 10:20:03 713

原创 设计模式: 自己手动写一个装饰者模式

装饰者模式:动态地将责任附加到对象上。若要扩展功能,装饰者提供l比继承更有弹性的替代方案。装饰者和被装饰者有相同的超类型,你可以用一个或多个装饰者包装一个对象。既然装饰者和被装饰者有相同的超类型,所以在任何需要原始对象(被装饰者)的场合,可以用装饰过的对象替换它。装饰者可以在所委托被装饰者的行为之前或之后加上自己的行为,已达到特定的目的。对象可以在任何时候被装饰,所以可以在运行时动态地、不

2015-08-25 15:34:53 800

原创 设计模式: 自己手动写一个工厂模式(整合工厂方法模式和抽象工厂模式)

工厂模式: 所有工厂模式都用来封装对象的创建。工厂方法模式通过让子类决定该创建的对象是什么,来达到将对象的创建过程封装的目的。工厂方法模式定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个。工厂方法让类把实例化推迟到子类。抽象工厂模式提供一个接口,用来创建相关或依赖对象的家族,而不需要明确指定具体类。工厂方法使用继承:把对象的创建委托给子类,子类实现工厂方法来创建对象。

2015-08-25 10:18:51 1039

原创 设计模式: 策略模式的实现

1.    策略模式:定义了算法族,分别封装起来,让它们之间可以替换,此模式让算法的变化独立于使用该算法的用户。(利用组合)类图如下: 源代码如下:package Strategy;/** * 鸭子超类 * @author Arvon * */public abstract class Duck { public Duck() { su

2015-08-24 16:43:39 574

原创 设计模式:单例模式的三种创建方式及其各自的优缺点

单例模式:确保一个类只有一个实例,并提供全局访问点。在Java中实现单例模式需要私有的构造器,一个静态方法和一个静态变量。确定在性能和资源上的限制,如何选择适当的方案来实现单例,以解决多线程的问题。如果使用多个类加载器,可能导致单例失效产生多个实例。双重检查加锁不适用于1.4及更早版本的java。方式1:package singleton;/** * 同步getIn

2015-08-24 15:22:00 1448

原创 设计模式: 自己手动实现一个观察者设计模式

观察者模式: 定义了对象之间的一对多依赖,这样一来,当一个对象(被观察者)改变状态时,它的所有依赖者(观察者)都会收到通知并自动更新。在观察者模式中,会改变的是主题的状态,以及观察者的数目和类型。用这个模式, 你可以改变依赖主题状态的对象,却不必改变主题,这叫提前规划。主题和观察者都使用接口:观察者利用主题的接口向主题注册,而主题利用观察者的接口通知观察者。这样可以让两者之间运作正常,有同

2015-08-24 09:43:56 795

原创 散列技术之线性探测法

源代码如下:#include #include #define hash(v,M) (v % M)#define null(A) (key(st[A]) == key(NULLitem)) typedef char Key;struct Item{ Key key;};static struct Item NULLitem ;static struct Item *s

2015-08-22 16:21:47 1175

原创 散列技术之链地址法(基于无序链表)

源代码如下:#include #include #define hash(v,M) (v % M)typedef char Key;struct Item{ Key key;};typedef struct STnode* link;struct STnode{ Item item ; link next;};static link* heads , z ;stat

2015-08-22 14:33:22 640

原创 Skip list -- 跳跃表的插入删除搜索等ADT操作的实现与测试

源代码如下:#include #include #define lgNmax 5typedef char Key;struct Item{Key key;};typedef struct STnode* link;struct STnode{ Item item ; link *next; //多个链接域组成的数组 int sz ; // 该节点的链接数

2015-08-21 22:56:56 1247

原创 红黑树的插入操作

红黑树是2-3-4树的一个变体 #include #include //#define Key int#define hl h->l#define hr h->r#define hlr h->l->r#define hll h->l->l#define hrr h->r->r#define hrl h->r->ltypedef char Key;struct Ite

2015-08-20 23:13:57 469

原创 二叉搜索树的随机化插入和伸展插入操作(平摊法)

源代码如下:#include #include //#define Key int#define hl h->l#define hr h->r#define hlr h->l->r#define hll h->l->l#define hrr h->r->r#define hrl h->r->ltypedef int Key;struct Item{ Key key; c

2015-08-20 11:40:12 750

原创 二叉搜索树的根插入、选择、删除、合并、排序等操作的实现

源代码如下:这里的Key 不当为关键字对待, 而是把Item.c作为关键字对待#include #include //#define Key inttypedef int Key;struct Item{ Key key; char c;};typedef struct STnode* link;struct STnode{ Item item ; li

2015-08-20 09:20:31 1554

原创 基于二叉搜索树的符号表和BST排序

原代码如下:#include #include //#define Key inttypedef int Key;struct Item{ Key key; char c;};typedef struct STnode* link;struct STnode{ Item item ; link l,r; int N;};static link head , z

2015-08-19 15:18:48 647

空空如也

空空如也

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

TA关注的人

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