-
简单介绍UNIX系统,并且介绍APUE这本书的阅读方法。
-
在介绍完leader election和 log replication这两个重要的特性之后,需要对copycat有一个整体的认识,这次主要讲copycat的整体结构和使用举例。
-
一旦一个领导人被选举出来,他就开始为客户端提供服务。客户端的每一个请求都包含一条被复制状态机执行的指令。领导人把这条指令作为一条新的日志条目附加到日志中去,然后并行的发起附加条目 RPCs 给其他的服务器,让他们复制这条日志条目。当这条日志条目被安全的复制,领导人会应用这条日志条目到它的状态机中然后把执行的结果返回给客户端。
-
ONOS中强一致性算法采用的是raft,它包括leader选举、 Log replication 、 Cluster membership changes 、 Log compaction 这四个特性,copycat是raft这四个特性的java版实现。
-
当交换机连接控制器集群后,交换机同时连接多个控制器,控制器集群会从这几个控制器中进行选举,以便为交换机选举一个Master角色的控制器。
-
ONOS中强一致性算法raft的java版实现采用的是copycat,它包括leader election、 Log replication 、 Cluster membership changes 、 Log compaction 这四个特性,本文主要介绍其中最常用也是最简单的 leader election。
-
ONOS中有许多不同的事件(DeviceEvent、LinkEvent、HostEvent等等),它们由南向消息驱动来产生,然后经过事件投递分发,最终交给不同的APP来处理。
-
南向抽象层由网络组件构成,例如交换机、主机或是链路。ONOS的南向抽象层将每个网络组件表示为通用格式的对象。通过这个抽象层,分布式核心可以维护网络组件的状态,并且不需要知道底层设备的具体细节。
-
ONOS控制器与交换机建立连接之后,通过OF消息的交互,达到了Channel状态机的稳定状态,这时候收到OF消息之后,将分发消息到各个APP处理。
-
分析代码中Channel状态机,状态的变化范围从控制器开始监听,到交换机与控制器完成握手(交换机可用),使用状态机使得代码清晰易懂。
-
分析代码中交换机与控制器建立连接的过程,始于控制器启动,终于控制器与交换机版本协商。
-
Github本身就是不错的代码社区,他也提供了一些其他的服务,比如Github Pages,使用它可以很方便的建立自己的独立博客,并且免费。
-
写博客这个这么古老的行为,还有必要拿出来说吗,我看有。