SpringBoot-WebFlux框架 Spring WebFlux框架Spring WebFlux是随Spring 5推出的响应式Web框架。与Spring MVC不同,它不需要Servlet API,是完全异步且非阻塞的,并且通过Reactor项目实现了Reactive Streams规范。 Spring WebFlux 用于创建基于事件循环执行模型的完全异步且非阻塞的应用程序。 所谓异步非阻塞是针对服务端而言的,是说服务端可以充 2022-10-21 程序开发 #Java
Spring框架 Spring框架注解Java的元注解使用说明@ConfigurationProperties注解@ConditionalOnMissingBean注解的作用与使用@PostConstruct注解@Resource注解的作用与使用 接口BeanPostProcessor接口Serializable接口 工具类代码SpringBoot的事件监听机制[Springboot + Validated进行入参 2022-10-21 程序开发 #Java
Linux 中的管道符 重定向Linux 中标准的输入设备默认指的是键盘,标准输出指的是显示器,而这里的重定向也就是对输入、输出的重定向; 输入重定向:指的是重新指定设备来代替键盘作为新的输入设备; 输出重定向:指的是重新指定设备来代替显示器作为新的输出设备。 通常是用文件或命令的执行结果来代替键盘作为新的输入设备,而新的输出设备通常指的就是文件。 在 Linux 系统中,一切皆是文件,键盘和显示器等硬件都是文件 2022-10-20 Linux #运维/Shell
Shell 概述 什么是 ShellShell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。 Shell 也是 Linux 的命令解释器,用于解释用户对操作系统的操作;Shell 会把用户所执行的命令翻译给 Linux 内核,Linux 内核将执行命令的结果反馈给用户。 比如 ls 命令,Shell 会分析 ls 命令中的选项和参数,然后将该命 2022-10-19 Linux #运维/Shell
Godis_命令实现以及数据结构 概述本文是《用 Golang 实现一个 Redis》系列文章第二篇,本文将记录介绍 Godis 是如何实现数据结构以及 redis 的各种命令,包括 TTL、发布订阅、命令的原子性以及事务等功能。 根据 KWHL 图表来看,本文会着重介绍数据结构以及命令实现部分 命令执行在上一篇文章《TCP 服务以及协议解析》中介绍了 Godis 是使用 RESP 协议来进行客户端和服务端的协议通信,服务端如何读 2022-07-29 源码阅读 #Go #第三方库
Godis_TCP服务以及协议解析 背景自从工作以来,在编码过程中用到的中间件组件比较少,Redis 也是一直想学的缓存数据库;但是因为个人原因一直没有学,在 2022 年初的时候学习 go,并发现 go 语言相对于其他语言更轻量,编写代码也更方便,性能更加强大。 在决定深入学习 go 的时候,需要一个项目来深入 go 的各种语法以及代码风格,摒弃掉 Java 的编码风格。有了 2 个需求,在逛 HelloGithub 网站 Go 2022-07-12 源码阅读 #Go #第三方库
go标准库——sync sync包go 以独特的并发编程模型闻名,其核心理念就是 ”不要以共享内存的方式来通信,而是要用通信来共享数据“ ;但大多数的现代编程语言都是用 ”共享数据内存“ 的方式来作为并发编程的解决方案。考虑开发者是有可能是从这部分编程语言转过来的,在go中也提供了类似的功能,也就是 sync 包。 一旦数据被多个线程共享,那么就很可能会产生争用和冲突的情况。这种情况也被称为竞态条件(race condi 2022-06-15 程序开发 #Go
HBase HBaseHBase是一种数据库:Hadoop数据库。它是一种稀疏的、分布式的、持久化的、多维度有序映射,基于行键(Row Key)、列族(columm famlies)和时间戳(timestamp)建立索引。HBase可以存储结构化和半结构化数据,也可以存储非结构化时局,不介意数据类型,允许动态的、灵活的数据模型,并不限制存储的数据的种类。 HBase 是一个开源的、分布式的、版本化的非关系型数 2022-05-26 大数据
MySQL的数据类型 MySQL的数据类型MySQL 中有很多字段类型,比如整数、文本、浮点数,定点数等等。如果类型定义合理,就能节省存储空间,提升数据查询和处理的速度,相反,如果数据类型定义不合理,就有可能会导致数据超出取值范围,引发系统报错,甚至可能会出现计算错误的情况,进而影响到整个系统。 先来看看 MySQL 中最简单的数据类型:整数类型。 整数类型整数类型一共有 5 种,包括 TINYINT、SMALLINT 2022-05-22 程序开发 #数据库/MySQL
使用 ProtoBuf 将 message 文件生成 go 文件 因工作需求,需要安装 protobuf 工具,并且根据 proto 文件生成 go 文件,下面对安装以及生成 go 文件的过程做记录 安装 ProtoBuf访问 ProtoBuf 的 Github 仓库,使用git将该仓库克隆下来 1git clone https://github.com/protocolbuffers/protobuf.git 在执行完以上命令之后进入到该目录,确定好 Prot 2022-05-07 程序开发 #Go