Antlr-Golang 基于Antlr我们可以快速创建一门DSL语言,其词法分析器和语法解析器,可以帮助节省很多时间,使我们更加专注与语法模型以及语义的实现。 Antlr是用Java语言开发的,为了运行Antlr,需要安装JDK,目前V4版本需要1.6以上版本,本文中使用的版本是 openjdk 11.0.21 Antlr支持生成非Java语言的目标代码,因为平时用Golang比较多,所以本文的案例也是用Golang实现 2023-12-08 Antlr
SeaTunnel SeaTunnel 是一个非常简单、高性能、分布式的数据集成平台,与Sqoop和DataX相比,它更加轻量,拥有非常多的Connector,拿来即用,非常简单,可以出色的完成日常的数据同步任务。 SeaTunnel 也是apache基金会项目,版本目前已经到2.3.3,已经非常成熟,具体的使用文档,可以去官网了解,本文将介绍SeaTunnel的基本用法。 快速安装官方提供了三种安装方式:本地安装、 2023-11-30 工具
KubeBuilders实战 本章将写一个在实际工作中的项目案例,来更好的说明KubeBuilder一些技术细节 项目需求将K8s中的ConfigMap定时备份到阿里云的OSS 通过脚手架快速创建项目script1234mkdir configmapcd configmapkubebuilder init --repo=configmap --domain xinyu.comkubebuilder create api --g 2023-10-30 Kubernetes
KubeBuilder起步 KubeBuilder是用于开发CRD(自定义资源)以及控制器的框架工具,我们只需要按照框架的规则,可以大大提高开发K8s Operator的效率 安装本文使用的kubebuilder的版本为3.11.1 其前置依赖有 go version v1.20.0+ docker version 17.03+. kubectl version v1.11.3+. Access to a Kubernet 2023-08-24 Kubernetes
POD 调度总结 本文将说明目前k8s常用的容器调度方式,以作为备忘 Deployment、ReplicationControllerDeployment 是目前官方推荐的自动化伸缩方式,在创建Deployment的同时,系统也会自动创建一个ReplicaSet用来维护Pod的数量。 ReplicationController与Deployment类似,但目前官方已不推荐使用,在日常开发中,也很少见,Deploym 2023-08-18 Kubernetes
Sync包详解 Once对象用来确保只执行一次的处理场景,注意这里的一次只是对于单个进程,且这个Once对象没有被复制的情况,在分布式的应用中,这个对象可能并不适用。 12345678910111213141516func TestOnce(f *testing.T) { var once sync.Once onceBody := func() { fmt.Println("On 2023-08-17 Golang
Context包详解 Context是官方标准库中很常用的包,主要用于提供生命周期以及中断信号的控制,也用于API以及协程间通信,使用的场景非常多,下面介绍其中几个常用的函数 Background()该方法用于初始化一个空的上下文 WithValueWithValue 用于向上下文中的传递值,在一些API框架中使用频率非常高 例如: 12345678func TestWithValue(t *testing.T) 2023-08-16 Golang
CAP/BASE 理论 CAP概念 一致性 当一个系统在数据一致的状态下执行更新操作后,应该保证系统的数据仍然处于一致的状态。 可用性 每次请求都能获取到正确的响应,但是不保证获取的数据为最新数据。 分区容错性(必需保证) 分布式系统在遇到任何网络分区故障的时候,仍然需要能够保证对外提供满足一致性和可用性的服务 三选二 CA 放弃P的同时也就意味着放弃了系统的扩展性,也就是分布式节点受限,没办法部署子节点,这是 2023-08-11 概念
CA 前要首先需要了结几个基础知识 SSL认证使用的是RSA非对称加密算法 公钥/私钥成对出现,私钥自己保存,公钥用于公开 公钥加密,私钥解密 概念CA(Certificate Authority,证书授权)是由认证机构服务者签发,是数字签名的技术基础保障,也是网上实体身份的证明,能够证明某一实体的身份及其公钥的合法性,证明该实体与公钥二者之间的匹配关系。 如下图所示,我们通过HTTPs的 2023-08-11 概念
CIDR CIDR无类别域间路由没有了以往传统分类的路由的概念,用网络前缀代替以往的子网络。 表示以及计算{<网络前缀>,<主机号>} / 网络前缀所占位数 以 128.140.35.7/20 为例,计算步骤如下 转化为32位二进制, 10000000 00001110 00100011 00000111 其中前20位表示位前缀,也就是10000000 0000 2023-08-10 概念