个人简介

Echo Blog


江湖无名 安心练剑
  • 数据源的统一与拆分 apache calcite 的雄心与现实
    数据库的分类 数据库作为我们常用的底层服务之一,有很多的种类。 每一种数据库都有对应的查询语句。比如 mysql / oracle / mongodb / es / vm 等等… 这么多,怎么记得住呢? 统一 有没有类似于 slf4j 统一日志输出一样,也有人统一一下 SQL 的查询呢? 答案是有的。 apache calcite 提供了一个行业标准的 SQL 解析器和验证...
    2024-11-22 17:18:08 | Note
  • 从千万粉丝“何同学”抄袭开源项目说起,为何纯技术死路一条?
    随笔 从千万粉丝“何同学”抄袭开源项目说起,为何纯技术死路一条? 数据源的统一与拆分 报警系统的指标、规则与执行闭环 java 老矣,尚能饭否? 一骑红尘妃子笑,无人知是荔枝来! 抄袭? 最近的事情相信大家有所耳闻。 近日,千万粉丝博主何同学发布的视频《我用36万行备忘录做了个动画》引发网友质疑。 有网友表示,该软件其实是一个开源程序,任何人都能使用,但何同学并未解释,还删...
    2024-11-22 17:18:08 | Note
  • IM 即时通讯系统 SSO 系列-09-用户密码的完整生命周期
    邮箱验证 我们接下来的重点如何管理用户的密码? 如何保证安全、同时实现忘记密码、修改密码等常用的操作。 整体流程 我们针对密码的创建、修改、忘记密码、验证密码等流程,进行实现。 建表语句 -- 创建用户密码表 CREATE TABLE user_password ( id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT 'ID', ...
    2024-11-02 13:01:55 | IM
  • IM 即时通讯系统 SSO 系列-08-用户激活邮箱验证
    邮箱验证 我们接下来的重点就是结合邮箱,实现一个验证方式。 当然验证的方式可以有多种,目前比较推荐的还是邮箱验证。 整体流程 1)发送验证码到用户邮箱 2)用户点击后进行验证校验+处理,通过后更新对应的状态。 核心实现 建表语句 drop table if exists user_email_verify; CREATE TABLE user_email_verify ( ...
    2024-11-02 13:01:55 | IM
  • IM 即时通讯系统 SSO 系列-07-真实用户生命周期
    生命周期 真实用户的生命周期包括入职同步、激活、正常使用、调岗处理、离职回收等步骤。 可能的流程如下: 入职同步(从HR系统同步) 创建用户账号 分配至小组 发送激活邮件 用户激活账号 正常使用 调岗处理(更新部门/小组) 离职标记...
    2024-11-02 13:01:55 | IM
  • IM 即时通讯系统 SSO 系列-06-multi Tenancy 多租户
    chat 什么是多租户? 多租户(Multi - Tenancy)是一种软件架构设计模式,它允许一个软件实例同时为多个不同的客户(租户)提供服务。 每个租户就像是拥有自己独立的软件副本,彼此之间的数据和配置相互隔离,但实际上他们共享同一个软件实例和底层基础设施。 以下是关于多租户的详细介绍: 核心概念 租户隔离:租户之间的数据和业务逻辑相互隔离,一个租户的数据不能被其他租户访...
    2024-11-02 13:01:55 | IM
  • IM 即时通讯系统 SSO 系列-05-swagger 文档整合
    swagger 文档接入 将项目与 swagger 进行整合,所有 controller 和 dto 添加对应的注解,为了解耦,入参使用 dto,复制后调用底层实体。 整体流程 pom.xml 引入依赖 <dependency> <groupId>io.springfox</groupId> <artifactId>springf...
    2024-11-02 13:01:55 | IM
  • IM 即时通讯系统 SSO 系列-03-基于 mybatis 实现 CRUD
    实现基本的 crud pom.xml <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.2.2</version&g...
    2024-11-02 13:01:55 | IM