Seata与事务简介

Seata 是什么?

Seata 是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。Seata 将为用户提供了 AT、TCC、SAGA 和 XA 事务模式,为用户打造一站式的分布式解决方案。

阅读更多

稀疏数组和队列

稀疏 sparsearray 数组

先看一个实际的需求

编写的五子棋程序中,有存盘退出和续上盘的功能。

稀疏数组举例说明
因为该二维数组的很多值是默认值 0, 因此记录了很多没有意义的数据.->稀疏数组。

阅读更多

数据结构与算法概述

数据结构

定义:

数据结构是指相互之间存在一种或多种特定关系的数据元素的集合

  • 集合

数据结构中的元素之间除了“同属一个集合” 的相互关系外,别无其他关系;

  • 线性结构

数据结构中的元素存在一对一的相互关系

  • 树形结构

数据结构中的元素存在一对多的相互关系;

  • 图形结构

数据结构中的元素存在多对多的相互关系。

常见的数据结构:数组、队列、栈、链表、树、图、堆、散列表

阅读更多

Kubernetes-搭建mysql集群(非operator)

集群介绍

首先,用自然语言来描述一下我们想要部署的“有状态应用”。

  1. 是一个“主从复制”(Maser-Slave Replication)的 MySQL 集群;

  2. 有 1 个主节点(Master);

  3. 有多个从节点(Slave);

  4. 从节点需要能水平扩展;

  5. 所有的写操作,只能在主节点上执行;

  6. 读操作可以在所有节点上执行。

阅读更多

Kubernetes-深入理解 StatefulSet

背景

无状态应用

一个应用的所有 Pod,是完全一样的。它们互相之间没有顺序,也无所谓运行在哪台宿主机上。需要的时候,Deployment 就可以通过 Pod 模板创建新的 Pod;不需要的时候,Deployment 就可以“杀掉”任意一个 Pod。这种情况就被称为 “无状态应用”(Stateless Application)

有状态应用

在分布式应用中,它的多个实例之间,往往有依赖关系,比如:主从关系、主备关系。

还有就是数据存储类应用,它的多个实例,往往都会在本地磁盘上保存一份数据。而这些实例一旦被杀掉,即便重建出来,实例与数据之间的对应关系也已经丢失,从而导致应用失败。

这种实例之间有不对等关系,以及实例对外部数据有依赖关系的应用,就被称为“有状态应用”(Stateful Application)

阅读更多

Kubernetes-控制器(Controller)模型

简介

Pod 这个看似复杂的 API 对象,实际上就是对容器的进一步抽象和封装而已。

Pod 对象,其实就是容器的升级版。它对容器进行了组合,添加了更多的属性和字段。这就好比给容器集装箱四面安装了吊环,使得 Kubernetes 这架“吊车”,可以更轻松地操作它。

而操作这些“集装箱”的逻辑,都由控制器(Controller)完成

阅读更多

Kubernetes-深入理解Pod

基本概念

Pod,不是容器,是 Kubernetes 项目中的最小编排单位。将这个设计落实到 API 对象上,容器(Container)就成了 Pod 属性里的一个普通的字段。

Pod 扮演的是传统部署环境里“虚拟机”的角色。这样的设计,是为了使用户从传统环境(虚拟机环境)向 Kubernetes(容器环境)的迁移,更加平滑。

而如果你能把 Pod 看成传统环境里的“机器”、把容器看作是运行在这个“机器”里的“用户程序”,那么很多关于 Pod 对象的设计就非常容易理解了。

到底哪些属性属于 Pod 对象,而又有哪些属性属于 Container 呢?

阅读更多