本篇内容主要讲解“Cloudfoundry Grouter源码分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Cloudfoundry Grouter源码分析”吧!
GoRouter源码分析 GoRouter的主要功能是接受用户的请求信息,根据请求URL查询GoRouter在内存中维护的路由信息表信息,然后将URL转发到具体的组件. GoRouter有几个重要的组件: Proxy, router, registry
Proxy: 外部所有的请求进入Cloudfoundry都需要经过proxy, proxy 根据请求的URL 到路由表里查找对应的节点,并且如果请求头中包含了cookie,则解析出节点id,将请求分发路由到具体的节点(比如:多个DEA, 就会路由到某一个固定的DEA),如果没有cookie,则根据路由算法,选择一个DEA, 响应时添加cookie返回用户,也就是sessionsticky.
Router: 主要是定义了一个router的数据结构,以及一些初始化流程,已经运行的流程(run 方法), router 会启动定时器去查询droplet是否过期,如果过期了,会通知registry模式去更新路由信息
Registry: 处理DEA或者组件到GoRouter注册uri 的路由信息. Cloudfoundry是通过NAT来进行通信的,NAT通信采用的是 订阅/发布的设计模型进行通信 ,GoRouter 启动的时候会去NAT订阅注册和去注册的信息(router.register/router.unregister), 当有别的组件发布 router.register/router.unregister 事件时,GoRouter就会收到订阅的消息,通知registry模块去更新路由表.
用户访问GoRouter的流程图如下: User/LB不属于GoRouter组件, 心跳检测通过在请求的头文件添加“HTTP-Monitor/1.1”来判断.
GoRouter的启动流程图如下:
到此,相信大家对“Cloudfoundry Grouter源码分析”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。