golang

go-ethereum开发之RPC调用教程

…

如果只是简单的获取ethereum节点的数据那么go-ethereum提供的ethclient完全足够了,可是如果涉及一些更自定义,更独特的接口,比如debug_traceBlock等以debug开头的rpc方法,那么只能自己构造请求和解析响应了。

kubernetes kube-apiserver源码阅读8之Hook

…

阅读kube-apiserver的过程中,会发现很多的AddPostStartHook的代码,这部分代码用于执行kube-apiserver启动之后的逻辑,因为他们放在启动后执行更适合,所以就提供了两种钩子(Hook), PostStartHook和PreShutdownHook。这里只看PostStartHook,并且只看bootstrap-controller对应的钩子函数。

kubernetes kube-apiserver源码阅读7之服务发现

…

从前文我们已经了解到kube-apiserver内部有三个组件,分别是apiExtensionsServer,kubeAPIServer,aggregatorServer, 为了方便用户扩展,所以存在apiExtensionsServer, 因为k8s有自己的核心资源,所以需要kubeAPIServer, 为了将两者结合起来所以需要aggregatorServer, 那么aggregatorServer怎么两者的资源集中在一起并提供给用户查询呢? 本文尝试从k8s的源代码中找到问题的答案。

kubernetes kube-apiserver源码阅读6之准入控制

…

之前看过kube-apiserver请求处理链的相关内容,知道一些通用逻辑,如认证,鉴权,审计之类的内容都以一种链条的方式组合在一起依次调用,但是这些处理函数中并不包含准入的业务逻辑,之所以这样,我想是因为准入只针对修改请求,所以放在通用的处理链中会不太和谐,再者就是准入是比较重要的抽象,所以单独抽离出来了。

kubernetes kube-apiserver源码阅读5之路由

…

这里一节主要看kube-apiserver的路由注册和最终映射到后端存储的处理函数是怎么构造的,kube-apiserver中一共有三个组件,apiExtensionsServer,kubeAPIServer, aggregatorServer,每个组件都有路由注册,但其实核心逻辑是差不多的。

百度开源网关BFE源代码阅读4之模块

…

据我所知,所有开源负载均衡都会提供至少一种扩展机制,BFE也不例外,BFE通过模块的选择可以更精细的控制BFE在处理请求中的各个阶段。如果内置模块不能满足自己需求,那么可以自己开发模块,而BFE是用Golang写的,所以开发效率很高。

百度开源网关FE源代码阅读3之路由实战

…

如果你还是不懂怎么配置BFE的路由,个人觉得,这是正常的,但是如果之前的文章让你有了Host, HostTag, Product, Cluster的概念就够了。本文尝试配置一些示例配置文件的来继续讲解BFE的路由机制。

百度开源网关BFE源代码阅读2之路由

…

前文了解了BFE的启动流程,本文深入一下BFE的路由部分,当我们了解了BFE路由机制,就可以理解BFE的配置文件,也就可以使用BFE了。但是说实话,BFE的路由规则相对于其他产品有点反直觉,因为我使用的还不多,姑且这么说吧。

go-ethereum开发之获取交易中的From字段

…

go-ethereum版本: v1.12.2

由于以太坊(ethereum)在不断的发展, 所以协议也在不断的改进,如果你看过《用Go来做以太坊开发》,你会发现其中关于查询交易的那一节中的获取交易的发送者From这部分代码在最新版本中已经失效了,本文主要演示当前以太坊(ethereum)最新版本获取的获取方式。

kubernetes kube-apiserver源码阅读2之GenericAPIServer

…

kubernetes代码版本: v1.20.2

前一节大致看了一下apiserver 的启动流程,以及组成kube-apiserver的三个组件,这一节看看三个组件都会用到的一个非常重要的对象GenericAPIServer, 它是一个HTTP Server的抽象, 虽然这么说很抽象。它会提供注册路由的入口以及各种钩子函数的注册入口。

kubernetes kube-apiserver源码阅读1启动流程

…

kubernetes代码版本: v1.20.2

个人认为kube-apiserver是k8s中最核心的组件,承上启下,无论是k8s其他组件还是是外部客户端都需要跟kube-apiserver组件进行交互,kube-apiserver负责接受请求并将数据持久化到后端存储(一般来说就是etcd.)。

kubectl源码阅读2

…

书接上回,继续看kubectl 删除, 更新, 查询操作的源代码。因为之前已经介绍了kubectl一些常用的设计模式和代码结构,所以本文会比较快的阅读其他操作的代码。