Seata Seata是分布式事务解决方案框架。分布式事务是分布式系统环境下由不同服务通过网络远程协作完成的事务,如用户注册送积分、创建订单减库存、银行转账等。 CAP理论:分布式系统最多只能同时满足一致性(Consistency)、可用性(Availability)和分区容忍性(Partition tolerance)三项中的两项。在具备P的前提下,C和A不能共存。生产中选择包括AP(放弃一致性,保证可用性和分区容忍性,追求最终一致性)、CP(放弃可用性,保证一致性和分区容错性)、CA(放弃分区容忍性,关系型数据库满足CA)。 BASE理论:是对CAP中AP的扩展,通过牺牲强一致性获得可用性。BASE包括基本可用、软状态和最终一致性,满足BASE理论的事务称为柔性事务。基本可用指故障时允许损失部分可用功能但保证核心功能;软状态允许存在中间状态;最终一致指经过一段时间后所有节点数据达到一致。 Seata Server启动需要创建seata数据库,包含global_table(全局会话数据)、branch_table(分支会话数据)、lock_table(锁数据)、distributed_lock(分布式锁)、vgroup_table(事务组)等核心表,然后使用Docker启动seata-server:2.5.0版本。 中间件 2025-08-21 2 0
Redis Redis是开源的key-value存储系统,属于NoSQL数据库。NoSQL泛指非关系型数据库,以简单key-value模式存储,不依赖业务逻辑,具有高扩展性和高性能,但不遵循SQL标准、不支持ACID。适用场景包括高并发读写、海量数据读写、高可扩展性,不适用于需要事务支持和复杂结构化查询的场景。 常见的NoSQL数据库包括Memcache(早期、内存中、不持久化、简单key-value)、Redis(覆盖Memcache功能、支持持久化、多种数据结构)、MongoDB(文档型数据库、支持JSON查询)。 数据库分为行式数据库(整行存储,适合查单条记录)和列式数据库(按列存储,适合统计分析),常见的列式数据库有Hbase和Cassandra。 Redis支持多种数据类型:string(字符串)、list(链表)、set(集合)、zset(有序集合)、hash(哈希)。数据都在内存中,支持持久化和主从同步,采用单线程+多路IO复用技术。安装方式包括下载编译、安装gcc环境、make编译安装,默认16个数据库,可通过select命令切换。常用key操作包括keys、exists、type、del、expire、ttl、dbsize等命令。 数据库 2024-05-26 2 0
Netty Netty是JBOSS提供的Java开源框架,现为Github独立项目。Netty是一个异步的、基于事件驱动的网络应用框架,本质是NIO框架,适用于TCP协议下的高并发应用和Peer-to-Peer场景的大量数据持续传输。 Linux网络I/O模型包括五种:阻塞I/O、非阻塞I/O、I/O复用、信号驱动I/O和异步I/O。I/O多路复用技术通过把多个I/O的阻塞复用到同一个select上,使系统在单线程下同时处理多个客户端请求。epoll相比select有重大改进:支持无限制的FD、I/O效率不随FD增加而下降、使用mmap加速内核与用户空间消息传递、API更简单。 Java支持三种网络编程模型:BIO(同步阻塞)、NIO(同步非阻塞)和AIO(异步非阻塞)。NIO是同步非阻塞的,核心组件包括Channel(通道)、Buffer(缓冲区)和Selector(多路复用器)。ByteBuffer是NIO中最常用的缓冲区,支持读写模式切换(flip/clear/compact),包含capacity、limit、position、mark等属性,分为HeapByteBuffer(堆内存)和DirectByteBuffer(直接内存)两种类型。 后端开发 2024-05-08 2 0
Zookeeper Zookeeper是开源的分布式协调服务Apache项目,基于观察者模式设计,负责存储和管理数据并通知观察者数据状态变化。特点包括:一个Leader多个Follower组成的集群;半数以上节点存活即可正常服务,适合安装奇数台服务器;全局数据一致;更新请求顺序执行;数据更新原子性;实时性。 Zookeeper数据结构类似Unix文件系统,整体为一棵树,每个节点称为ZNode,默认能存储1MB数据,通过路径唯一标识。应用场景包括统一命名服务、统一配置管理、统一集群管理、服务器节点动态上下线、软负载均衡。 本地安装可通过Docker方式,创建资源目录、配置zoo.cfg文件、启动容器。配置参数包括tickTime(通信心跳时间)、initLimit(LF初始通信时限)、syncLimit(LF同步通信时限)。集群安装使用Kubernetes StatefulSet,创建PVC和StatefulSet资源。Zookeeper采用选举机制,首次启动时进行Leader选举。 中间件 2024-04-03 2 0
React React是用于构建用户界面的JavaScript库,专注于将数据渲染为HTML视图。原生JavaScript操作DOM繁琐、效率低且缺乏组件化方案。React优势包括采用组件化模式和声明式编码提高开发效率、支持React Native移动端开发、使用虚拟DOM和优秀的Diffing算法减少与真实DOM交互。 React基本使用需要引入三个核心库:react.js(核心库)、react-dom.js(DOM操作扩展库)和babel.min.js(解析JSX语法)。虚拟DOM创建方式有两种:JSX创建(推荐)和JS创建(使用React.createElement方法)。虚拟DOM本质是Object类型对象,比真实DOM轻量,最终会被React转换为真实DOM呈现。 JSX是React定义的类似XML的JS扩展语法,本质是React.createElement方法的语法糖。JSX语法规则包括定义虚拟DOM时不写引号、标签中混入JS表达式时使用{}等 前端开发 2024-04-03 1 0
MongoDB MongoDB是开源、高性能、无模式的文档型NoSQL数据库,采用BSON(Binary-JSON)格式存储数据,适用于应对"三高"需求(高并发读写、海量数据存储、高可扩展性和高可用性)。应用场景包括不需要事务及复杂join、快速迭代开发、2000-3000以上读写QPS、TB/PB级数据存储、快速水平扩展、99.999%高可用、地理位置和文本查询等。 MongoDB体系结构对应关系型数据库的概念为:database(数据库)、collection(集合/表)、document(文档/行)、field(字段/列)。数据类型丰富,支持字符串、对象ID、布尔值、数组、浮点数、null、正则表达式等。特点包括高性能、高可用性(副本集)、高扩展性(分片)、丰富查询支持、无模式和灵活文档模型。 单机部署支持Windows和Linux系统,Windows下通过 mongod --dbpath 或配置文件启动,默认端口27017;Linux系统需解压安装包、创建数据和日志目录、配置mongod.conf文件后启动。可通过mongo命令进行Shell连接操作。 数据库 2024-04-03 2 0
Kubernetes Kubernetes(K8s)是开源的容器编排引擎,用于管理云平台中多主机上的容器化应用,支持自动化部署、大规模可伸缩和应用容器化管理。相比传统虚拟机,容器具有资源占用少、部署快、可移植性强等优势。 K8s功能包括自动装箱、自我修复、水平扩展、服务发现、滚动更新、版本回退、密钥配置管理、存储编排和批处理。集群架构分为Master组件(API Server、Scheduler、Controller Manager、ETCD)和Node组件(kubelet、kube-proxy)。核心概念包括Pod(最小单元)、Controller(控制器)和Service(访问规则)。 K8s集群部署方式主要有kubeadm和二进制包两种。使用kubeadm搭建需要准备环境(关闭防火墙、selinux、swap,设置主机名、hosts、时间同步),安装Docker等组件。 运维 2024-04-03 1 0
Dubbo Dubbo是高性能、轻量级的开源Java RPC框架,提供远程方法调用、智能容错负载均衡和服务自动注册发现三大核心能力。分布式架构从单一应用、垂直应用、分布式服务到流动计算架构逐步演进。RPC是远程过程调用的思想,核心模块包括通讯和序列化。 Dubbo基本概念包括服务提供者、服务消费者、注册中心和监控中心。环境搭建需要Zookeeper作为注册中心,可配合Dubbo Admin管理控制台使用。快速入门通过创建订单服务和用户服务两个模块演示Dubbo调用,建议将服务接口、模型、异常放在API包中,接口应大粒度按业务场景划分。 后端开发 2024-04-03 4 0
MySQL基础知识 MySQL基础知识主要包含数据库的基本操作和约束管理。DDL(数据定义语言)用于数据库和表结构的操作,包括创建、查看、修改和删除数据库及表。DML(数据操作语言)用于管理表中数据记录,包括insert插入数据、update更新数据和delete删除数据。约束保证数据的完整性和有效性,主要类型有:主键约束、自增长约束、非空约束、唯一性约束、默认约束、零填充约束和外键约束。这些操作构成了MySQL数据库管理和数据维护的基础。 数据库 2024-04-03 0 0
MySQL高级篇 MySQL是一个开源的关系型数据库管理系统,采用标准SQL语言,支持大型数据库和多语言。MySQL逻辑架构包含连接层、服务层、引擎层和存储层。 安装方式包括Linux环境安装,可通过Docker容器快速部署。MySQL安装后首要任务是修改字符集为utf8,配置文件位于/etc/my.cnf。重要配置包括二进制日志(log-bin)用于主从复制、错误日志(log-error)记录严重错误、慢查询日志(slow_query_log)记录查询SQL语句。数据文件包含frm表结构文件、myd数据文件和myi索引文件,用于存储表结构和数据。 数据库 2024-04-03 0 0