tanzhuo

tanzhuo

专研技术的程序员

Kratos

Kratos是一款基于Go语言的开源微服务框架,由Bilibili开源并维护。 Kratos框架具有以下优点: 1. 高性能:使用Go语言的协程和高效的并发模型,能够支持高并发场景。 2. 简单易用:提供了丰富的文档和示例,易于上手。 3. 模块化设计:框架提供了一系列的模块,如配置、日志、数据库等,方便开发者快速搭建微服务。 4. 插件化:开发者可以自行开发插件,扩展框架的功能。 KratosKratos Kratos框架提供了丰富的功能,包括: 1. 微服务注册与发现:支持etcd、consul等多种注册中心。 2. 配置管理:支持多种配置源,如本地文件、etcd等。 3. 日志管理:支持多种日志输出方式,如文件、控制台、Kafka等。 4. 数据库访问:支持MySQL、PostgreSQL、Redis等多种数据库。 5. HTTP服务:支持HTTP、HTTPS服务。 6.
5 min read

Neo4j 图形数据库

Neo4j是一款高性能的图数据库,它采用了图形数据模型来存储和处理数据。与传统的关系型数据库相比,Neo4j具有更高的可扩展性和更高效的查询性能,特别适用于需要处理复杂关系数据的应用场景。 Neo4j Graph Database & Analytics – The Leader in Graph DatabasesConnect data as it’s stored with Neo4j. Perform powerful, complex queries at scale and speed with our graph data platform.Graph Database & Analytics Neo4j的收费模式分为两种:开源版和企业版。开源版是免费的,可以用于个人或小型项目。企业版则需要付费,提供更多高级功能和技术支持。 Neo4j的主要功能包括: 图形数据存储和查询:Neo4j使用图形数据模型来存储数据,可以轻松处理复杂的关系数据。 高效的查询性能:由于采用了图形数据模型,Neo4j可以轻松地处理深度查询和复杂的关系查询,
2 min read

认识数据库

按照数据模型分类: * 关系型数据库(RDBMS):以表格形式存储数据,使用 SQL 语言进行查询和操作。 * 非关系型数据库(NoSQL):不使用传统的关系型数据模型,而是采用其他数据模型,如文档型、键值对、列式、图形等。 按照数据处理方式分类: * 事务型数据库:支持事务处理和 ACID 特性(原子性、一致性、隔离性、持久性)。 * 非事务型数据库:不支持事务处理和 ACID 特性,但具有更高的性能和可扩展性。 按照部署方式分类: * 单机数据库:数据存储在单台计算机上,适用于小型应用。 * 分布式数据库:数据存储在多台计算机上,通过网络进行通信和协作,适用于大型应用和高并发场景。 按照使用范围分类: * 个人数据库:适用于个人使用或小型团队。 * 企业数据库:适用于企业级应用,需要支持高并发、高可用、高安全等需求。 按照数据存储方式分类: * 内存数据库:数据存储在内存中,查询和操作速度非常快,但数据容量受限。
3 min read

防重复提交

使用Token令牌机制可以有效地防止CSRF攻击和重复提交。在提交表单时,服务器会生成一个Token令牌,并将其存储在Redis中。然后,将这个Token令牌作为表单的一个隐藏字段或URL参数传递给客户端。客户端提交表单时,将这个Token令牌一并提交给服务器。服务器在处理表单时,会检查这个Token令牌是否正确,并在处理完表单后删除这个Token令牌。这种方式可以有效地防止重复提交和CSRF攻击,但是需要注意保护Token令牌的安全性,否则可能会被攻击者利用。 Token令牌机制是一种常用的Web应用程序防止重复提交和CSRF攻击的方法。它的基本思想是在每次提交表单时,服务器会生成一个Token令牌,并将其存储在Redis中。然后,将这个Token令牌作为表单的一个隐藏字段或URL参数传递给客户端。客户端提交表单时,将这个Token令牌一并提交给服务器。服务器在处理表单时,会检查这个Token令牌是否正确,并在处理完表单后删除这个Token令牌。 Token令牌机制的实现步骤如下: 在服务器端生成一个Token令牌,并将其存储在Redis中。Token令牌可以使用随机数、UUI
3 min read

Docker 原理

Docker 内部架构可以分为以下几个组件: 组件 描述 Docker Daemon Docker 的主要组件,是一个守护进程,负责管理容器的创建、启动、停止、删除等操作。 Docker Client 与 Docker Daemon 交互的命令行工具,用户可以使用该工具发送命令来操作 Docker 容器。 Docker Registry 存储 Docker 镜像的中央仓库,可以通过 Docker Client 从该仓库中拉取所需的镜像。 Docker Image 容器的基础,是一个只读的文件系统,包含了应用程序、依赖库和配置文件等。可以通过 Dockerfile 文件创建。 Docker Container Docker 镜像的一个实例,包含了一个完整的文件系统、运行时环境和系统工具。 Docker Daemon 和 Docker
6 min read

Mysql 时间四舍五入

MySQL的DATETIME类型是精确到秒的,而Java的LocalDateTime类型是精确到纳秒的。因此,在将MySQL的DATETIME类型存入Java的LocalDateTime类型时,会发生四舍五入的情况。 例如,如果MySQL的DATETIME类型为2022-01-01 12:34:56.789,当它被存入Java的LocalDateTime类型时,会被四舍五入到2022-01-01 12:34:57。 为了避免这种情况,可以使用Java的java.sql.Timestamp类型来存储MySQL的DATETIME类型。这个类型也是精确到纳秒的,与LocalDateTime类型匹配,不会出现四舍五入的问题。
1 min read

数据结构:栈

栈(Stack)是一种先进后出(LIFO)的数据结构,它只允许在栈顶进行插入和删除操作。栈可以用数组或链表来实现。 在栈中,插入和删除操作通常称为入栈(push)和出栈(pop)。当插入一个元素时,它被放置在栈顶,当删除一个元素时,它是从栈顶删除的。栈顶是栈中最新添加的元素,栈底是栈中最早添加的元素。 栈的应用非常广泛,例如,计算机中的函数调用和递归调用都是通过栈来实现的。当一个函数被调用时,它的参数、返回地址和局部变量等信息被压入栈中,当函数返回时,这些信息又从栈中弹出。 以下是栈的基本操作: push(element):将一个元素压入栈顶。 pop():从栈顶弹出一个元素。 top():返回栈顶元素,但不对栈进行修改。 isEmpty():判断栈是否为空。 size():返回栈中元素的个数。 栈的时间复杂度为O(1),因为所有操作都是在栈顶进行的。但是,栈的空间复杂度为O(n),因为需要存储所有元素。 在计算机中,栈(Stack)被广泛应用于函数调用、
2 min read

数据湖 Iceberg

目前比较流行的开源数据湖 Iceberg。 数据湖是一个用于存储结构化和非结构化数据的集中式数据存储库,它可以存储各种类型的数据,包括传统的关系型数据、半结构化数据、非结构化数据等。数据湖的主要特点是具有高度的灵活性和可扩展性,能够方便地进行数据的存储和处理。 相比之下,传统的数据仓库主要用于存储结构化数据,它们通常采用关系型数据库进行存储和管理。数据仓库的主要特点是具有高度的规范化和结构化,能够保证数据的准确性和一致性。但是,数据仓库的缺点在于它们不够灵活,无法存储和处理非结构化或半结构化数据,而且难以进行扩展和升级。 数据湖相比数据仓库的优势主要有以下几点: 1. 存储不受限制:数据湖可以存储各种类型的数据,包括传统的结构化数据、半结构化数据、非结构化数据等。这使得数据湖更加灵活,适用于不同类型和规模的数据存储需求。 2. 处理速度更快:数据湖通常采用分布式存储和计算技术,能够实现高速数据处理和分析。而传统的数据仓库则往往需要进行多次数据转换和计算,导致处理速度较慢。 3. 成本更低:数据湖通常采用开源技术,如Hadoop、Spark等,成本相对较低,而传统的数据仓库
4 min read

Flink CDC 组件

Flink CDC(Change Data Capture)组件是 Apache Flink 的一个重要组成部分,它提供了一种轻松实现数据流变更捕获和同步的方法。在大数据领域,CDC是一个非常常见的技术,因为它能够帮助我们实现数据在不同系统之间的同步和数据的实时处理。 Flink CDC组件的工作原理是通过捕获源数据系统的变更日志,将其转化为数据流并进行实时处理。这个过程可以在不影响源系统的情况下进行,因为CDC组件只是读取源系统的日志,而不会对源系统进行写操作。 Flink CDC组件的优点在于它可以支持多种数据源,包括关系型数据库(如MySQL,Oracle等)和NoSQL数据库(如MongoDB,Cassandra等)。此外,它还能够支持多种数据格式,如JSON,CSV等。 使用Flink CDC组件可以实现实时的数据同步和数据流处理。例如,我们可以使用CDC组件将MySQL数据库中的数据同步到Kafka,然后使用Flink进行实时数据处理。这样就可以实现数据的实时同步和处理,从而提高数据的效率和准确性。 Flink CDC组件内置了以下几个组件: 1. Source
2 min read

常见 Ingress 对比

本次来对比一下k8s集群中经常使用到的一些 ingress 组件,ingress 它充当了集群中 HTTP 和 HTTPS 流量的入口点。Ingress 可以将流量路由到 Kubernetes 集群内的不同 Service 上,从而实现负载均衡和流量控制的功能。 Ingress 的工作原理是通过将 HTTP 和 HTTPS 请求映射到 Service 上来实现的。在 Kubernetes 中,Service 是一种用于将流量路由到 Pod 的资源对象。当 Ingress 接收到来自外部的 HTTP 或 HTTPS 请求时,它会根据请求中的主机名和路径信息,在 Ingress 规则中进行匹配,并将请求路由到相应的 Service 上。 要使用 Ingress,需要先安装 Ingress 控制器。
2 min read

随心笔记

hi 欢迎留言,共同探讨IT技术~