《芯片战争》这本书是美国经济历史学家克里斯·米勒编写的,书中描述了各国为控制芯片技术而进行的长达数十年的斗争历程,解释了半导体在现代生活中发挥的关键作用,以及美国是如何在芯片设计和制造中占据主导地位,并将这种技术应用于军事系统的。 目前这本书还未看完,这里大致的介绍下芯片的发展过程,它是如何被发明出来的。大部分引用原文内容,以免造成误解。 战争对计…
关于 https 证书,有很多的方案,之前的文章中介绍过 npm, 另外还介绍过 ohttps,都能免费的生成证书。 今天再介绍一个自动续签证书的工具 acme.sh ACME安装 curl https://get.acme.sh | sh -s email=10xxxxxx@qq.com 创建一个 alias,方便使用 alias acme.sh…
前言 系统框架的防重功能参考了美团 GTIS 解决方案,参考文章 分布式系统互斥性与幂等性问题的分析与解决 GTIS 的实现思路是将每一个不同的业务操作赋予其唯一性。这个唯一性是通过对不同操作所对应的唯一的内容特性生成一个唯一的全局ID来实现的。基本原则为:相同的操作生成相同的全局ID;不同的操作生成不同的全局ID。 生成的全局ID需要存储在外部存…
Springboot 从3.1开始自带的缓存功能,定义了 Cache 和 CacheManager 接口,并且提供了各种实现,如 CaffeineCache、ConcurrentMapCache、RedisCache、RedissionCache 这里通过项目案例来介绍下缓存的实现原理 缓存管理器 Spring Cache 提供的缓存管理为 Cac…
MinIO作为一款基于Golang 编程语言开发的一款高性能的分布式式存储方案的开源项目,有十分完善的官方文档。 文档地址:https://docs.min.io/cn/ 本节介绍下使用 minio 来作为项目的对象存储,想要使用 minio,首先需要搭建 minio 服务,然后在应用端接入 Minio 服务搭建 1panel 的应用商店可以直接安…
安装 redis 建议直接使用 linux 环境,没有服务器的就安装虚拟机,在linux下面使用 docker 安装 redis 拉取 Redis 镜像 docker pull redis 修改配置 下载redis.conf文件 wget http://download.redis.io/redis-stable/redis.conf 改下权限 c…
java 中也提供了 mai 相关的功能,功能相对较弱,现在也停止了更新,目前 java 应用通常使用第三方库 Jakarta Mail 来实现邮件功能 配置 mail: enabled: false host: smtp.163.com port: 465 # 是否需要用户名密码验证 auth: true # 发送方,遵循RFC-822标准 fr…
mybatis plus 的插件扩展中集成了 p6spy 这是一个 SQL分析的组件 配置 p6spy 的 maven 依赖 <dependency> <groupId>p6spy</groupId> <artifactId>p6spy</artifactId> </depende…
分页插件配置 前文 MyBatis Plus 配置一文中提到了,在自动装配的时候引入了分页插件,官方提供的默认有如下参数: 属性名 类型 默认值 描述 overflow boolean false 溢出总页数后是否进行处理(默认不处理,参见 插件#continuePage 方法) maxLimit Long 单页分页条数限制(默认无限制,参见 插件…
权限拦截器 DataPermissionInterceptor 是 MyBatis Plus 的一个数据权限插件,支持动态拦截执行 SQl 然后拼接权限部分 SQL片段。 怎么使用呢? 拦截器 PlusDataPermissionInterceptor,这里在查询、修改、删除的操作时做了拦截处理,核心的方式实现了 dataPermissionHan…