2016-06-30 18:58
⁄ 工业·编程
⁄ 共 5386字
Zookeeper 分布式服务框架是 Apache Hadoop 的一个子项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等。
Zookeeper 从设计模式角度来看,是一个基于观察者模式设计的分布式服务管理框架,它负责存储和管理大家都关心的数据,然后接受观察者的注册,一旦这些数据的状态发生变化,Zookeeper 就将负责通知已经在 Zookeeper 上注册的那些观察者...
Zookeeper, 分布式阅读全文
2016-06-29 18:53
⁄ 工业·编程
⁄ 共 2114字
Zookeeper的基本概念分为以下几个:
集群角色、会话、数据节点、版本、watcher、ACL权限控制。
1.集群角色
在Zookeeper搭建的集群环境中,集群的角色分为Leader、Follower、Observer。
其中Leader服务器是整个Zookeeper集群工作机制中的核心,Follower服务器是Zookeeper集群状态的跟随者,Observer服务器充当一个观察者的角色。
我们这里了解以上几个角色即可,在后面的总结中,我们将深入探讨这些角色在实际中的运用。
2.会话
...
Zookeeper, 分布式阅读全文
2016-06-28 18:10
⁄ 工业·编程
⁄ 共 2021字
1.背景
随着互联网技术的高速发展,企业对计算机系统的计算,存储能力要求越来越高,最简单的证明就是出现了一些诸如:高并发,海量存储这样的词汇。在这样的背景下,单纯依靠少量高性能主机来完成计算任务已经不能满足企业的需求,企业的IT架构逐步从集中式向分布式过渡,所谓的分布式是指:把一个计算任务分解成若干个计算单元,并且分派到若干计算机中去执行,最后汇总结算结果的过程。
分布式系统需要解决的核心任务就是,...
Zookeeper, 分布式阅读全文
2016-06-27 07:01
⁄ 工业·编程
⁄ 共 2365字
1. 什么是BOOT?
BOOT其实是你按开机键之后,在电脑微软操作系统运行之前就自动运行的一段小程序。表象上就是windows引导画面之前那些黑屏蓝屏的英文那个阶段就是BOOT了。通过这段小程序,它就可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。
2. 什么是BIOS?
BIOS它其实也是在电脑里的微软系统运行之前,但是BOOT出现后加载运行的一个预启...
BIOS, u-boot, UEFI阅读全文
2016-06-26 05:53
⁄ 工业·编程
⁄ 共 1135字
df -T 只可以查看已经挂载的分区和文件系统类型。
Filesystem Type 1K-blocks Used Available Use% Mounted on /dev/sda1 ext4 20642428 3698868 15894984 19% / tmpfs tmpfs 32947160 0 32947160 0% /dev/shm
fdisk -l 可以显示出所有挂载和未挂载的分区,但不显示文件系统类型。
Disk /dev/sda: 299.4 GB, 299439751168 bytes 255 heads, 63 sectors/track, 36404 cylinders Units = cylinders of ...
linux阅读全文
2016-06-25 06:56
⁄ 工业·编程
⁄ 共 1176字
虚继承和虚函数是完全无相关的两个概念。
虚继承是解决C++多重继承问题的一种手段,从不同途径继承来的同一基类,会在子类中存在多份拷贝。这将存在两个问题:其一,浪费存储空间;第二,存在二义性问题,通常可以将派生类对象的地址赋值给基类对象,实现的具体方式是,将基类指针指向继承类(继承类有基类的拷贝)中的基类对象的地址,但是多重继承可能存在一个基类的多份拷贝,这就出现了二义性。
虚继承可以解决多种...
c++阅读全文
2016-06-24 21:02
⁄ 工业·编程
⁄ 共 3735字
为了谈应用,先谈谈使命。模板元编程的根在模板。模板的使命很简单:为自动代码生成提供方便。提高程序员生产率的一个非常有效的方法就是“代码复用”,而面向对象很重要的一个贡献就是通过内部紧耦合和外部松耦合将“思想”转化成一个一个容易复用的“概念”。但是面向对象提供的工具箱里面所包含的继承,组合与多态并不能完全满足实际编程中对于代码复用的全部要求,于是模板就应运而生了。
...
c++, 模板, 软件开发阅读全文
2016-06-23 06:47
⁄ 工业·编程
⁄ 共 1206字
在计算机编程实现中有常常两种方法:一曰迭代(iterate);二曰递归(recursion)。
从“编程之美”的角度看,可以借用一句非常经典的话:“迭代是人,递归是神!”来从宏观上对二者进行把握。
从概念上讲,递归就是指程序调用自身的编程思想,即一个函数调用本身;迭代是利用已知的变量值,根据递推公式不断演进得到变量新值得编程思想。
从直观上讲,递归是将大问题化为相同结构的小问题,从待求解的问题出发,一直分解到已经已知...
软件开发阅读全文
2016-06-22 22:39
⁄ 工业·编程
⁄ 共 2870字
最近在Linux下编程发现一个诡异的现象,就是在链接一个静态库的时候总是报错,类似下面这样的错误:
(.text+0x13): undefined reference to `func'
关于undefined reference这样的问题,大家其实经常会遇到,在此,我以详细地示例给出常见错误的各种原因以及解决方法,希望对初学者有所帮助。
1. 链接时缺失了相关目标文件(.o)
测试代码如下:
然后编译。
gcc -c test.c ...
linux编程阅读全文
2016-06-21 06:13
⁄ 工业·编程
⁄ 共 6835字
文章目录
1、为什么需要用for(; ;)代替while(1)?
2、先进行循环内部的计算,然后进行循环外面的计算
3、尽可能在循环的时候只运行本层的数据
4、编译的时候头文件不要相互包含,尽量简单
5、尽量不要使用乘除,多使用移位操作
6、所谓SIMD指令就是指用一条指令,完成多个字节数据的操作
7、尽量采用查询的方式,少采用计算的方式,注意分析经验数据
8、if-else语句的合理使用
9、多使用...
代码质量阅读全文