Linux 安装 ZooKeeper 单机实例
分布式全局唯一 ID 解决方案之二
大纲
1、UidGenerator 分布式 ID 生成器
1.1、概述
UidGenerator 由百度开源并使用 Java 实现的,基于 Snowflake 算法的唯一 ID 生成器。UidGenerator 以组件形式工作在应用项目中, 支持自定义 workerId 位数和初始化策略, 从而适用于 Docker 等虚拟化环境下实例自动重启、漂移等场景。在实现上, UidGenerator 通过借用未来时间来解决 sequence 天然存在的并发限制;采用 RingBuffer 来缓存已生成的 UID, 并行化 UID 的生产和消费, 同时对 CacheLine 补齐,避免了由 RingBuffer 带来的硬件级「伪共享」问题。 最终单机 QPS 可达 600 万。依赖 Java8 及以上版本, MySQL(内置 WorkerID 分配器, 启动阶段通过数据库进行分配;如自定义实现,则数据库非必选依赖)。
分布式全局唯一 ID 解决方案之一
Hexo Next 8.x 主题添加可切换的暗黑模式
PyCharm 2021.1 专业版破解激活教程
Gateway + Security + OAuth 2.0 + JWT 实现统一的认证授权
1、前言
1.1、OAuth 2.0 介绍
1.2、OAuth 2.0 与 JWT 的关系
- OAuth 2.0 是一种认证授权的协议规范
- JWT 是基于 Token 的安全认证协议的实现
OAuth 2.0 的认证服务器签发的 Token 可以使用 JWT 来实现,JWT 轻量且安全。
1.3、基于 OAuth 2.0 认证授权的框架
OAuth 的官网提供了很多开发框架,分为服务器端和客户端,其中服务端和客户端都支持的 Java 框架有四个:Apache Oltu、Spring Security OAuth、Restlet Framework、Keycloak。值得一提的是,Keycloak 为现代应用和分布式服务提供了一套完整的认证授权管理开源解决方案,是一个独立的认证授权服务器;主要是基于 OAuth 2.0 协议实现,同时提供了多种语言库,可以很快速地根据业务需求将 Keycloak 集成到企业项目中去使用。
构建 Privoxy、Tor、ExpressVPN 的 Docker 镜像
Spring Security + OAuth 2.0 + JWT 开发随笔
JWT 签名与验签
公钥与私钥生成
使用 JDK 提供的 keytool 工具生成 JKS 密钥库 (Java Key Store),认证授权服务器会使用私钥对 Token 进行签名,一般将生成的 shop.jks 文件放在 resources 目录下
1 | keytool -genkey -alias shop -keyalg RSA -keypass 123456 -keystore shop.jks -storepass 123456 |
根据私钥生成公钥,将其保存在 public.crt 文件中,用于对 Token 进行验签,一般将其放 resources 目录下
1 | keytool -list -rfc --keystore shop.jks | openssl x509 -inform pem -pubkey -noout |
Hexo Next 主题使用 Waline 评论系统
前言
本教程的内容可能已过时,一切以 Waline 官方文档 为准。
版本说明
| 软件 | 版本 | 描述 |
|---|---|---|
| linux | CentOS 7.9 | |
| docker | 20.10.5 | |
| mysql | 5.7.26 | |
| node | 14.17.3 | |
| hexo | 5.4.0 | |
| next | 8.12.1 | |
| waline-admin | 0.18.0 | |
| waline-client | 2.5.1 | |
| waline-server | 1.18.5 |
