0%

安装与配置

这里准备了两台服务器(centos7.4) 安装java环境

去官网下载最新版的elasticsearch-6.5.0
解压并配置文件 两台服务器都要配置


阅读全文 »

gitlab是仿照github做出来的,但是 gitlab 拥有更多的功能:

通过组群对用户进行管理

利用分组(Groups)管理权限,有时候项目比较大,往往一个项目下包含多个开发工程,如果分别给参与这些工程的人员进行授权的话,比较繁琐,而利用Groups分组的功能,可以将若干个项目成员放入同一个分组,这样此分组的git工程将自动继承分组的权限设置,只需要设置一次即可,如果有特例仍然可以在具体的git工程下进行特殊设置,比较灵活。

阅读全文 »

随着业务量的增加,单机下数据库的自增主键已经不能满足需求.
考虑到以后的扩展性,可靠性以及对程序的易用性,需要新的ID生成方案.

snowflake算法

snowflake是Twitter开源的分布式ID生成算法,整体长度通常是64位,适合使用 Java 中的 Long 类型进行储存.
其核心思想是:使用41bit作为毫秒数,10bit作为机器的ID(5个bit是数据中心,5个bit的机器ID),12bit作为毫秒内的流水号(意味着每个节点在每毫秒可以产生 4096 个 ID),最后还有一个符号位,永远是0.


阅读全文 »

序章

“就要到了…就要到了…”

蓝染艰难的抬起头来,天空已被巨大的石像遮蔽,那巨大的投影笼罩在地面,更像是无尽绝望的黑暗,想要将眼前的少年吞噬.
四周不知何时涌出了黑气,浓如黑墨,翻涌不止.少年死死的盯着黑气,紧紧的握住手中的剑.一路走来,他已筋疲力尽,看不到未来,甚至没有了生命,少年不知道自己还有什么.

或许还有希望.

阅读全文 »

什么是消息中间件?

消息中间件我们平时也经常看到提到,那么到底什么是消息中间件?通过查阅资料,并没有发现有标准的定义.
一般我们可以理解为消息传送机制/传送队列,用作数据交流

阅读全文 »

区块链的技术定义

简单来说,区块链就是一个提供了拜占庭容错,并保证了最终一致性的分布式数据库.从数据结构上来看,它是基于时间顺序的链式数据结构;从节点上来看,它所有的节点互为冗余备份;从操作上看,它提供了基于密码学的公私钥管理体系.

举个例子:
这里有100台计算机分布在世界各地,这100台计算机之前的网络是广域网,并且计算机的拥有者之间互不信任,那么采用什么样的算法(共识机制)才能为它提供一个可信任的环境,并且使得:

  • 节点之间的数据交换不能被篡改,并且已经生成的交易记录不能被篡改
  • 每个节点的数据都会同步更新到最新,并且会验证最新数据的有效性
  • 基于少数服从多数的原则,整体节点维护的数据本身可以客观的反映交换历史

区块链技术的发展本身处于早期阶段,成熟的应用不是很多.

我所理解的区块链时代:
区块链1.0的应用主要是数字货币,就是以比特币为主,以及其他的一些货币.
区块链2.0的应用是智能合约(以太坊).
区块链3.0的应用将会超越合约,或许会是人工智能,或许是万物互联,总之是项目落地,为人民提供服务的价值时代.

阅读全文 »

之前我们说到的运作方式,打包和广播,正是区块链最核心的技术内容之一:共识机制

分布式系统的经典问题: 拜占庭将军问题

拜占庭将军问题是一个虚构出来的,可以方便通俗的介绍分布式系统所面临的难题.这边不做表述.

我们还是回到村子当中,随着村子和人口的发展,大村子变成了十一个小村子,并分散在各地,村子间只能靠信鸽来通讯.
大家约定了每年都举办一个相亲大会,每年从 A 村或 B 村中选择一个,得票多的胜出.
由于村子相隔甚远,没办法靠一只信鸽传送到每个村子,这个就必须有个村子作为中转站来代为传输,也就意味着这个村子可以读到其他村子的投票信息.

阅读全文 »

中心化记账的问题

这里我们来借鉴一个经典的区块链描述来模拟中心化记账

假设有一个村子,村子里有一位德高望重的村长.村民们把钱都存到村长家,村长负责记账.这里就是典型的中心化的银行记账系统.村民相信村长,才会把钱存到村长的家里.

好景不长,村长操劳过度去世,他的儿子铁蛋上任新村长,铁蛋很聪明,但是粗心大意,经常算错账单.不过幸亏村民也自己记账,但是由于铁蛋每次算错帐都要和别人核对半天,导致村民都十分不满.

后来可怕的事发生了,铁蛋的老婆私下篡改账本,给七大姑八大姨的余额偷偷加了好多,终于有一天暴露了,村民们冲向铁蛋家讨说法,一片混乱.

这个时候一个叫中本聪的人站了出来,他说他设计了一套系统,可以不依赖任何人记账,于是大家开始将目光集中到他的身上.

阅读全文 »

什么是比特币?

比特币(BitCoin)的概念由中本聪(化名,自称日裔美国人,真实身份未知)在2009年提出

根据中本聪的思路设计发布的开源软件以及建构其上的P2P网络,比特币是一种P2P形式的数字货币,点对点的传输意味着一个去中心化的支付系统。

比特币在本质上类似黄金,数量有限,上限为2100万,挖取的难度不断增加,没有人可以完全控制它.

阅读全文 »