diff --git a/docs/open-source-project/readme.md b/docs/open-source-project/readme.md index c0f0ad75..12ff0da2 100644 --- a/docs/open-source-project/readme.md +++ b/docs/open-source-project/readme.md @@ -7,6 +7,8 @@ category: 开源项目 精选 GitHub 和 Gitee 上优质的 Java 开源项目。 +灵感来源于[awesome-java](https://github.com/akullpp/awesome-java) 这个项目,可以看作是这个项目的中文本土版本,项目类型更全面且加入了更多中文开源项目。 + 欢迎大家在项目 [issues 区](https://github.com/CodingDocs/awesome-java/issues)推荐自己认可的 Java 开源项目,让我们共同维护一个优质的 Java 开源项目精选集! - GitHub 地址:[https://github.com/CodingDocs/awesome-java](https://github.com/CodingDocs/awesome-java) diff --git a/docs/open-source-project/system-design.md b/docs/open-source-project/system-design.md index f0ce3660..09ff2116 100644 --- a/docs/open-source-project/system-design.md +++ b/docs/open-source-project/system-design.md @@ -6,13 +6,25 @@ icon: "xitongsheji" ## 基础框架 -- [Spring Boot](https://github.com/spring-projects/spring-boot "spring-boot"):Spring Boot 可以轻松创建独立的生产级基于 Spring 的应用程序,内置 web 服务器让你可以像运行普通 Java 程序一样运行项 目。另外,大部分 Spring Boot 项目只需要少量的配置即可,这有别于 Spring 的重配置。 +- [Spring Boot](https://github.com/spring-projects/spring-boot "spring-boot"):Spring Boot 可以轻松创建独立的生产级基于 Spring 的应用程序,内置 web 服务器让你可以像运行普通 Java 程序一样运行项 目。另外,大部分 Spring Boot 项目只需要少量的配置即可,这有别于 Spring 的重配置。 - [Javalin](https://github.com/tipsy/javalin):一个轻量级的 Web 框架,同时支持 Java 和 Kotlin,被微软、红帽、Uber 等公司使用。 - [Quarkus](https://github.com/quarkusio/quarkus) : 用于编写 Java 应用程序的云原生和容器优先的框架。 - [Guice](https://github.com/google/guice):Google 开源的一个轻量级依赖注入框架,相当于一个功能极简化的轻量级 Spring Boot。在某些情况下非常实用,就比如说我们的项目只需要使用依赖注入,不需要 AOP 等功能特性。 - [SOFABoot](https://github.com/sofastack/sofa-boot):SOFABoot 基于 Spring Boot ,不过在其基础上增加了 Readiness Check,类隔离,日志空间隔离等等能力。 配套提供的还有:SOFARPC(RPC 框架)、SOFABolt(基于 Netty 的远程通信框架)、SOFARegistry(注册中心)...详情请参考:[SOFAStack](https://github.com/sofastack) 。 - [Spring Batch](https://github.com/spring-projects/spring-batch) : Spring Batch 是一个轻量级但功能又十分全面的批处理框架,主要用于批处理场景比如从数据库、文件或队列中读取大量记录。不过,需要注意的是:Spring Batch 不是调度框架。商业和开源领域都有许多优秀的企业调度框架比如 Quartz、XXL-JOB、Elastic-Job。它旨在与调度程序一起工作,而不是取代调度程序。更多介绍请参考 [Spring Batch 官方文档](https://docs.spring.io/spring-batch/docs/4.3.x/reference/html/spring-batch-intro.html#spring-batch-intro),入门教程可以参考 [Spring Batch 从入门到实战](https://mrbird.cc/Spring-Batch入门.html)。 +## Bean 映射 + +- [MapStruct](https://github.com/mapstruct/mapstruct)(推荐):满足JSR269规范的一个Java注解处理器,用于为Java Bean生成类型安全且高性能的映射。它基于编译阶段生成get/set代码,此实现过程中没有反射,不会造成额外的性能损失。 +- [JMapper](https://github.com/jmapper-framework/jmapper-core) : 一个高性能且易于使用的 Bean 映射框架。 + +## 字节码操作 + +- [ASM](https://asm.ow2.io/):通用 Java 字节码操作和分析框架。它可用于直接以二进制形式修改现有类或动态生成类。 +- [Byte Buddy](https://github.com/raphw/byte-buddy):Java字节码生成和操作库,用于在 Java 应用程序运行时创建和修改 Java 类,无需使用编译器 +- [Javassist](https://github.com/jboss-javassist/javassist):动态编辑Java字节码的类库。 +- [Recaf](https://github.com/Col-E/Recaf):现代Java 字节码编辑器,基于 ASM(Java 字节码操作框架) 来修改字节码,可简化编辑已编译 Java 应用程序的过程。 + ## 数据库 ### 数据库连接池 @@ -57,8 +69,6 @@ icon: "xitongsheji" ## 测试 -为了能让我们编写的系统更加健壮,必要的测试(UI 测试、单元测试...)是必须的。 - ### 测试框架 - [JUnit](http://junit.org/) : Java 测试框架。 @@ -92,25 +102,14 @@ icon: "xitongsheji" - [PowerJob](https://gitee.com/KFCFans/PowerJob):新一代分布式任务调度与计算框架,支持 CRON、API、固定频率、固定延迟等调度策略,提供工作流来编排任务解决依赖关系,使用简单,功能强大,文档齐全,欢迎各位接入使用! 。 - [DolphinScheduler](https://github.com/apache/dolphinscheduler):分布式易扩展的可视化工作流任务调度平台。 -相关阅读: - -- [Spring Job、Quartz、XXL-Job 对比+全解析](https://mp.weixin.qq.com/s/jqN4noo5NazckPCehWFgpA) -- [推荐 5 个 YYDS 的 Java 项目](https://mp.weixin.qq.com/s?__biz=Mzg2OTA0Njk0OA==&mid=2247518215&idx=1&sn=91e467f39322d2e7979b85fe235822d2&chksm=cea1c7ccf9d64edaf966c95923d72d337bf5e655a773a3d295d65fc92e4535ae5d8b0e6d9d86&token=2063686030&lang=zh_CN#rd) - ## 分布式 ### API 网关 -微服务下一个系统被拆分为多个服务,但是像 安全认证,流量控制,日志,监控等功能是每个服务都需要的,没有网关的话,我们就需要在每个服务中单独实现,这使得我们做了很多重复的事情并且没有一个全局的视图来统一管理这些功能。 - -综上:一般情况下,网关一般都会提供请求转发、安全认证(身份/权限认证)、流量控制、负载均衡、容灾、日志、监控这些功能。 - -上面介绍了这么多功能实际上网关主要做了一件事情:请求过滤 。权限校验、流量控制这些都可以通过过滤器实现,请求转也是通过过滤器实现的。 - -1. [Kong](https://github.com/Kong/kong "kong"):Kong 是一个云原生、快速的、可伸缩的分布式微服务抽象层(也称为 API 网关、API 中间件或在某些情况下称为服务网格)。2015 年作为开源项目发布,其核心价值是高性能和可扩展性。 -2. [Soul](https://github.com/Dromara/soul "soul"):高性能、基于 webflux 的反应式 Java API 网关 -3. [Spring Cloud Gateway](https://github.com/spring-cloud/spring-cloud-gateway) : 基于 Spring Framework 5.x 和 Spring Boot 2.x 构建的高性能网关。 -4. [Zuul](https://github.com/Netflix/zuul) : Zuul 是一个 L7 应用程序网关,它提供了动态路由,监视,弹性,安全性等功能。 +- [Kong](https://github.com/Kong/kong "kong"):Kong 是一个云原生、快速的、可伸缩的分布式微服务抽象层(也称为 API 网关、API 中间件或在某些情况下称为服务网格)。2015 年作为开源项目发布,其核心价值是高性能和可扩展性。 +- [ShenYu](https://github.com/Dromara/soul "soul"):适用于所有微服务的可伸缩、高性能、响应性 API 网关解决方案。 +- [Spring Cloud Gateway](https://github.com/spring-cloud/spring-cloud-gateway) : 基于 Spring Framework 5.x 和 Spring Boot 2.x 构建的高性能网关。 +- [Zuul](https://github.com/Netflix/zuul) : Zuul 是一个 L7 应用程序网关,它提供了动态路由,监视,弹性,安全性等功能。 ### 配置中心 @@ -121,11 +120,9 @@ icon: "xitongsheji" ### 链路追踪 -目前分布式链路追踪系统基本都是根据谷歌的《Dapper 大规模分布式系统的跟踪系统》这篇论文发展而来,主流的有 Pinpoint,Skywalking ,CAT(当然也有其他的例如 Zipkin,Jaeger 等产品,不过总体来说不如前面选取的 3 个完成度高)等。 - -1. [Skywalking](https://github.com/apache/skywalking "skywalking") : 针对分布式系统的应用性能监控,尤其是针对微服务、云原生和面向容器的分布式系统架构。 -2. [Zipkin](https://github.com/openzipkin/zipkin "zipkin"):Zipkin 是一个分布式跟踪系统。它有助于收集解决服务体系结构中的延迟问题所需的时序数据。功能包括该数据的收集和查找。 -3. [CAT](https://github.com/dianping/cat "cat"):CAT 作为服务端项目基础组件,提供了 Java, C/C++, Node.js, Python, Go 等多语言客户端,已经在美团点评的基础架构中间件框架(MVC 框架,RPC 框架,数据库框架,缓存框架等,消息队列,配置系统等)深度集成,为美团点评各业务线提供系统丰富的性能指标、健康状况、实时告警等。 +- [Skywalking](https://github.com/apache/skywalking "skywalking") : 针对分布式系统的应用性能监控,尤其是针对微服务、云原生和面向容器的分布式系统架构。 +- [Zipkin](https://github.com/openzipkin/zipkin "zipkin"):Zipkin 是一个分布式跟踪系统。它有助于收集解决服务体系结构中的延迟问题所需的时序数据。功能包括该数据的收集和查找。 +- [CAT](https://github.com/dianping/cat "cat"):CAT 作为服务端项目基础组件,提供了 Java, C/C++, Node.js, Python, Go 等多语言客户端,已经在美团点评的基础架构中间件框架(MVC 框架,RPC 框架,数据库框架,缓存框架等,消息队列,配置系统等)深度集成,为美团点评各业务线提供系统丰富的性能指标、健康状况、实时告警等。 相关阅读:[Skywalking 官网对于主流开源链路追踪系统的对比](https://skywalking.apache.org/zh/blog/2019-03-29-introduction-of-skywalking-and-simple-practice.html) @@ -139,7 +136,7 @@ icon: "xitongsheji" ### 缓存 -- [Caffeine](https://github.com/ben-manes/caffeine) : 一款强大的本地缓存解决方案,性能非常 🐂。 +- [Caffeine](https://github.com/ben-manes/caffeine) : 一款强大的本地缓存解决方案,性能非常强大。 - [Redis](https://github.com/redis/redis):一个使用 C 语言开发的内存数据库,分布式缓存首选。 ### 消息队列 @@ -159,13 +156,11 @@ icon: "xitongsheji" - [Kafdrop](https://github.com/obsidiandynamics/kafdrop) : 一个用于查看 Kafka 主题和浏览消费者组的 Web UI。 - [EFAK](https://github.com/smartloli/EFAK) (Eagle For Apache Kafka,以前叫做 Kafka Eagle):一个简单的高性能监控系统,用于对 Kafka 集群进行全面的监控和管理。 -### 数据库中间件 +### 读写分离和分库分表 - [ShardingSphere](https://github.com/apache/shardingsphere):ShardingSphere 是一套开源的分布式数据库中间件解决方案组成的生态圈,它由 Sharding-JDBC、Sharding-Proxy 和 Sharding-Sidecar(计划中)这 3 款相互独立的产品组成。 - [MyCat](https://github.com/MyCatApache/MyCat2) : MyCat 是数据库分库分表的中间件,MyCat 使用最多的两个功能是:读写分离和分库分表。MyCat 是一些社区爱好者在阿里 Cobar 的基础上进行二次开发,解决了 Cobar 当时存 在的一些问题,并且加入了许多新的功能在其中。 -- [dynamic-datasource-spring-boot-starter](https://github.com/baomidou/dynamic-datasource-spring-boot-starter):dynamic-datasource-spring-boot-starter 是一个基于 springboot 的快速集成多数据源的启动器。如果说你有配置多数据源、读写分离等需求的话,可以了解一下这个项目。 - -相关阅读:[数据库中间件详解(精品长文)](https://zhuanlan.zhihu.com/p/87144535) +- [dynamic-datasource-spring-boot-starter](https://github.com/baomidou/dynamic-datasource-spring-boot-starter):一个基于 Spring Boot 的快速集成多数据源的启动器,支持多数据源、动态数据源、主从分离、读写分离和分布式事务。 ## 高可用 @@ -176,7 +171,7 @@ icon: "xitongsheji" - [Sentinel](https://github.com/alibaba/Sentinel)(推荐):面向分布式服务架构的高可用防护组件,主要以流量为切入点,从流量控制、熔断降级、系统自适应保护等多个维度来帮助用户保障微服务的稳定性。 - [Hystrix](https://github.com/Netflix/Hystrix):类似于 Sentinel 。 -相关阅读:[Sentinel 与 Hystrix 的对比](https://sentinelguard.io/zh-cn/blog/sentinel-vs-hystrix.html) +相关阅读:[Sentinel 与 Hystrix 的对比](https://sentinelguard.io/zh-cn/blog/sentinel-vs-hystrix.html)。 单机限流: diff --git a/docs/open-source-project/tools.md b/docs/open-source-project/tools.md index 36d34627..cd867917 100644 --- a/docs/open-source-project/tools.md +++ b/docs/open-source-project/tools.md @@ -4,10 +4,15 @@ category: 开源项目 icon: tool --- -## Java +## 项目构建 -- [JADX](https://github.com/skylot/jadx):一款功能强大的反编译工具。 -- [Recaf](https://github.com/Col-E/Recaf):Java 字节码编辑器,基于 ASM(Java 字节码操作框架) 来修改字节码,可简化编辑已编译 Java 应用程序的过程。 +- [Maven](https://maven.apache.org/):一个软件项目管理和理解工具。基于项目对象模型 (Project Object Model,POM) 的概念,Maven 可以从一条中心信息管理项目的构建、报告和文档。详细介绍:[Maven核心概念总结](https://javaguide.cn/tools/maven/maven-core-concepts.html)。 +- [Gradle](https://gradle.org/) :一个开源的构建自动化工具,它足够灵活,可以构建几乎任何类型的软件。Gradle 对你要构建什么或者如何构建它做了很少的假设,这使得 Gradle 特别灵活。详细介绍:[Gradle核心概念总结](https://javaguide.cn/tools/gradle/gradle-core-concepts.html)。 + +## 反编译 + +- [JADX](https://github.com/skylot/jadx):用于从 Android Dex 和 Apk 文件生成 Java 源代码的命令行和 GUI 工具。 +- [JD-GUI](https://github.com/java-decompiler/jd-gui):一个独立的 GUI 工具,可显示 CLASS 文件中的 Java 源代码。 ## 数据库 @@ -37,17 +42,12 @@ icon: tool - [Another Redis Desktop Manager](https://github.com/qishibo/AnotherRedisDesktopManager/blob/master/README.zh-CN.md):更快、更好、更稳定的 Redis 桌面(GUI)管理客户端。 - [Redis Manager](https://github.com/ngbdf/redis-manager):Redis 一站式管理平台,支持集群(cluster、master-replica、sentinel)的监控、安装(除 sentinel)、管理、告警以及基本的数据操作功能。 -## Devops +## Docker -- [Portainer](https://github.com/portainer/portainer):可视化管理 Docker 和 Kubernetes。相关阅读:[《吊炸天的 Docker 图形化工具 Portainer,必须推荐给你!》](https://mp.weixin.qq.com/s?__biz=Mzg2OTA0Njk0OA==&mid=2247504221&idx=1&sn=85a3c69d64fba1b0d6d8485ab28ab4c4&chksm=cea19e96f9d617802920d5769bafc824b3b80afdfb6166a00532f0caa3b6f5bdac930e4e89de&token=693114125&lang=zh_CN#rd)。 +- [Portainer](https://github.com/portainer/portainer):可视化管理 Docker,Web 应用的形式。 +- [lazydocker](https://github.com/jesseduffield/lazydocker):适用于 docker 和 docker-compose 的简单终端 UI。 ## ZooKeeper - [PrettyZoo](https://github.com/vran-dev/PrettyZoo):一个基于 Apache Curator 和 JavaFX 实现的 ZooKeeper 图形化管理客户端,颜值非常高,支持 Mac / Windows / Linux 。你可以使用 PrettyZoo 来实现对 ZooKeeper 的可视化增删改查。 - [zktools](https://zktools.readthedocs.io/en/latest/#installing):一个低延迟的 ZooKeeper 图形化管理客户端,颜值非常高,支持 Mac / Windows / Linux 。你可以使用 zktools 来实现对 ZooKeeper 的可视化增删改查。 - -## Markdown - -- [MarkText](https://github.com/marktext/marktext):一个简单而优雅的开源 Markdown 编辑器,专注于速度和可用性。Linux、macOS 和 Windows 均适用。 -- [Typora](https://www.typora.io/) :我一直用的一款 Markdown 工具,直接文件夹视图和目录视图,支持 Markdown 格式直接导出成 PDF、HTML 等格式。 -- [Markdown Here](https://github.com/adam-p/markdown-here):使用 Markdown 语法发邮件,并且提供多种主题,快来拯救你的邮件格式吧! diff --git a/docs/open-source-project/tutorial.md b/docs/open-source-project/tutorial.md index e78b1ecd..64028a34 100644 --- a/docs/open-source-project/tutorial.md +++ b/docs/open-source-project/tutorial.md @@ -6,56 +6,56 @@ icon: "book" ## Java -- **[JavaGuide](https://github.com/Snailclimb/JavaGuide "JavaGuide")** :【Java 学习+面试指南】 一份涵盖大部分 Java 程序员所需要掌握的核心知识。 -- **[toBeBetterJavaer](https://github.com/itwanger/toBeBetterJavaer)**:一份通俗易懂、风趣幽默的 Java 学习指南,内容涵盖 Java 基础、Java 集合框架、Java 并发编程、JVM、Java 企业级开发(Git、SSM、Spring Boot)等知识点。 -- **[interview-guide](https://github.com/csguide-dabai/interview-guide)**:总结了后端面试八股文中的重点,希望能帮助各位准备互联网开发岗校招面试的同学。 -- **[advanced-java](https://github.com/doocs/advanced-java "advanced-java")** :互联网 Java 工程师进阶知识完全扫盲:涵盖高并发、分布式、高可用、微服务、海量数据处理等领域知识。 -- **[toBeTopJavaer](https://github.com/hollischuang/toBeTopJavaer "toBeTopJavaer")**:Java 工程师成神之路 。 -- **[technology-talk](https://github.com/aalansehaiyang/technology-talk)** : 汇总 java 生态圈常用技术框架、开源中间件,系统架构、数据库、大公司架构案例、常用三方类库、项目管理、线上问题排查、个人成长、思考等知识 -- **[JCSprout](https://github.com/crossoverJie/JCSprout "JCSprout")** :处于萌芽阶段的 Java 核心知识库。 -- **[bestJavaer](https://github.com/crisxuan/bestJavaer)** : 这是一个成为更好的 Java 程序员的系列教程。 -- **[java-design-patterns](https://github.com/iluwatar/java-design-patterns "java-design-patterns")**:用 Java 实现的设计模式。 +- [JavaGuide](https://github.com/Snailclimb/JavaGuide "JavaGuide") :【Java 学习+面试指南】 一份涵盖大部分 Java 程序员所需要掌握的核心知识。 +- [toBeBetterJavaer](https://github.com/itwanger/toBeBetterJavaer):一份通俗易懂、风趣幽默的 Java 学习指南,内容涵盖 Java 基础、Java 集合框架、Java 并发编程、JVM、Java 企业级开发(Git、SSM、Spring Boot)等知识点。 +- [interview-guide](https://github.com/csguide-dabai/interview-guide):总结了后端面试八股文中的重点,希望能帮助各位准备互联网开发岗校招面试的同学。 +- [advanced-java](https://github.com/doocs/advanced-java "advanced-java") :互联网 Java 工程师进阶知识完全扫盲:涵盖高并发、分布式、高可用、微服务、海量数据处理等领域知识。 +- [toBeTopJavaer](https://github.com/hollischuang/toBeTopJavaer "toBeTopJavaer"):Java 工程师成神之路 。 +- [technology-talk](https://github.com/aalansehaiyang/technology-talk) : 汇总 java 生态圈常用技术框架、开源中间件,系统架构、数据库、大公司架构案例、常用三方类库、项目管理、线上问题排查、个人成长、思考等知识 +- [JCSprout](https://github.com/crossoverJie/JCSprout) :处于萌芽阶段的 Java 核心知识库。 +- [bestJavaer](https://github.com/crisxuan/bestJavaer) : 这是一个成为更好的 Java 程序员的系列教程。 +- [java-design-patterns](https://github.com/iluwatar/java-design-patterns "java-design-patterns"):用 Java 实现的设计模式。 ## 计算机基础 -- **[cs-self-learning](https://github.com/PKUFlyingPig/cs-self-learning)**:计算机自学指南,汇总欧美众多名校高质量计算机课程。 -- **[CS-Notes](https://github.com/CyC2018/CS-Notes "CS-Notes")**:技术面试必备基础知识、Leetcode 题解、后端面试、Java 面试、春招、秋招、操作系统、计算机网络、系统设计。 -- **[Waking-Up](https://github.com/wolverinn/Waking-Up)**:计算机基础(计算机网络/操作系统/数据库/Git...)面试问题全面总结。 +- [cs-self-learning](https://github.com/PKUFlyingPig/cs-self-learning):计算机自学指南,汇总欧美众多名校高质量计算机课程。 +- [CS-Notes](https://github.com/CyC2018/CS-Notes "CS-Notes"):技术面试必备基础知识、Leetcode 题解、后端面试、Java 面试、春招、秋招、操作系统、计算机网络、系统设计。 +- [Waking-Up](https://github.com/wolverinn/Waking-Up):计算机基础(计算机网络/操作系统/数据库/Git...)面试问题全面总结。 ## 系统设计 ### SpringBoot -- **[springboot-guide](https://github.com/Snailclimb/springboot-guide)**:SpringBoot 核心知识点总结。 基于 Spring Boot 2.19+。 -- **[SpringAll](https://github.com/wuyouzhuguli/SpringAll "SpringAll")**:循序渐进,学习 Spring Boot、Spring Boot & Shiro、Spring Cloud、Spring Security & Spring Security OAuth2,博客 Spring 系列源码。 -- **[Springboot-Notebook](https://github.com/chengxy-nds/Springboot-Notebook)** :一系列以 Spring Boot 为基础开发框架,整合 Redis、 Rabbitmq、ES、MongoDB、Spring Cloud、Kafka、Skywalking 等互联网主流技术,实现各种常见功能点的综合性案例。 -- **[springboot-learning-example](https://github.com/JeffLi1993/springboot-learning-example "springboot-learning-example")**:Spring Boot 实践学习案例,是 Spring Boot 初学者及核心技术巩固的最佳实践。 -- **[spring-boot-demo](https://github.com/xkcoding/spring-boot-demo "spring-boot-demo")**:spring boot demo 是一个用来深度学习并实战 spring boot 的项目,目前总共包含 63 个集成 demo,已经完成 52 个。 -- **[SpringBoot-Labs](https://github.com/YunaiV/SpringBoot-Labs)**:Spring Boot 系列教程。 +- [springboot-guide](https://github.com/Snailclimb/springboot-guide):SpringBoot 核心知识点总结。 基于 Spring Boot 2.19+。 +- [SpringAll](https://github.com/wuyouzhuguli/SpringAll "SpringAll"):循序渐进,学习 Spring Boot、Spring Boot & Shiro、Spring Cloud、Spring Security & Spring Security OAuth2,博客 Spring 系列源码。 +- [Springboot-Notebook](https://github.com/chengxy-nds/Springboot-Notebook) :一系列以 Spring Boot 为基础开发框架,整合 Redis、 Rabbitmq、ES、MongoDB、Spring Cloud、Kafka、Skywalking 等互联网主流技术,实现各种常见功能点的综合性案例。 +- [springboot-learning-example](https://github.com/JeffLi1993/springboot-learning-example "springboot-learning-example"):Spring Boot 实践学习案例,是 Spring Boot 初学者及核心技术巩固的最佳实践。 +- [spring-boot-demo](https://github.com/xkcoding/spring-boot-demo "spring-boot-demo"):spring boot demo 是一个用来深度学习并实战 spring boot 的项目,目前总共包含 63 个集成 demo,已经完成 52 个。 +- [SpringBoot-Labs](https://github.com/YunaiV/SpringBoot-Labs):Spring Boot 系列教程。 相关文章:[GitHub 点赞接近 100k 的 SpringBoot 学习教程+实战推荐!牛批!](https://mp.weixin.qq.com/s?__biz=Mzg2OTA0Njk0OA==&mid=2247488298&idx=3&sn=0a8fd88ec5a050de131c2a3305482ac4&chksm=cea25ce1f9d5d5f7f53a0237d27489326bce4546353b038085c03b086d91ef396bf824d3a155&token=496868067&lang=zh_CN#rd) ### SpringCloud -- **[SpringCloudLearning](https://github.com/forezp/SpringCloudLearning "SpringCloudLearning")** : 方志朋的《史上最简单的 Spring Cloud 教程源码》。 -- **[springcloud-learning](https://github.com/macrozheng/springcloud-learning)** : 一套涵盖大部分核心组件使用的 Spring Cloud 教程。 -- **[SpringCloud](https://github.com/zhoutaoo/SpringCloud "SpringCloud")**:基于 SpringCloud2.1 的微服务开发脚手架,整合了 spring-security-oauth2、nacos、feign、sentinel、springcloud-gateway 等。 +- [SpringCloudLearning](https://github.com/forezp/SpringCloudLearning "SpringCloudLearning") : 方志朋的《史上最简单的 Spring Cloud 教程源码》。 +- [springcloud-learning](https://github.com/macrozheng/springcloud-learning) : 一套涵盖大部分核心组件使用的 Spring Cloud 教程。 +- [SpringCloud](https://github.com/zhoutaoo/SpringCloud "SpringCloud"):基于 SpringCloud2.1 的微服务开发脚手架,整合了 spring-security-oauth2、nacos、feign、sentinel、springcloud-gateway 等。 相关文章:[GitHub 点赞接近 70k 的 Spring Cloud 学习教程+实战项目推荐!牛批!](https://mp.weixin.qq.com/s?__biz=Mzg2OTA0Njk0OA==&mid=2247488377&idx=1&sn=0fb33ef330159db5a9c8bc0f029cd739&chksm=cea25cb2f9d5d5a4c7bacc9dcfc90ed86e89f4262e32b40c7aa47af84c747cb6c0429f753e1d&token=496868067&lang=zh_CN#rd) ### Nginx -- **[nginx-tutorial](https://github.com/dunwu/nginx-tutorial)**:一系列 Nginx 极简教程,包含 HTTP 反向代理、HTTPS 反向代理、负载均衡、静态站点、文件服务器搭建等实战内容。 +- [nginx-tutorial](https://github.com/dunwu/nginx-tutorial):一系列 Nginx 极简教程,包含 HTTP 反向代理、HTTPS 反向代理、负载均衡、静态站点、文件服务器搭建等实战内容。 ## 大数据 -- **[BigData-Notes](https://github.com/heibaiying/BigData-Notes "BigData-Notes")** :大数据入门指南 ⭐️。 -- **[flink-learning](https://github.com/zhisheng17/flink-learning "flink-learning")**:含 Flink 入门、概念、原理、实战、性能调优、源码解析等内容。 +- [BigData-Notes](https://github.com/heibaiying/BigData-Notes "BigData-Notes") :大数据入门指南 ⭐️。 +- [flink-learning](https://github.com/zhisheng17/flink-learning "flink-learning"):含 Flink 入门、概念、原理、实战、性能调优、源码解析等内容。 ## 开源书籍 -- **[《高并发的哲学原理》](https://github.com/johnlui/PPHC)**:本书的目标是在作者有限的认知范围内,讨论一下高并发问题背后隐藏的一个哲学原理——找出单点,进行拆分。 -- **[《Effective Java(第 3 版)》中英对照版](https://github.com/clxering/Effective-Java-3rd-edition-Chinese-English-bilingual)**:《Effective Java(第 3 版)各章节的中英文学习参考。 -- **[《DDIA(设计数据密集型应用)》中文版](https://github.com/Vonng/ddia)**:《Designing Data-Intensive Application》DDIA 中文翻译。 -- **[《凤凰架构》](https://github.com/fenixsoft/awesome-fenix)**:讨论如何构建一套可靠的大型分布式系统。 -- **[《分布式系统模式》中文版](https://github.com/dreamhead/patterns-of-distributed-systems)**:《Patterns of Distributed Systems》中文翻译。 +- [《高并发的哲学原理》](https://github.com/johnlui/PPHC):本书的目标是在作者有限的认知范围内,讨论一下高并发问题背后隐藏的一个哲学原理——找出单点,进行拆分。 +- [《Effective Java(第 3 版)》中英对照版](https://github.com/clxering/Effective-Java-3rd-edition-Chinese-English-bilingual):《Effective Java(第 3 版)各章节的中英文学习参考。 +- [《DDIA(设计数据密集型应用)》中文版](https://github.com/Vonng/ddia):《Designing Data-Intensive Application》DDIA 中文翻译。 +- [《凤凰架构》](https://github.com/fenixsoft/awesome-fenix):讨论如何构建一套可靠的大型分布式系统。 +- [《分布式系统模式》中文版](https://github.com/dreamhead/patterns-of-distributed-systems):《Patterns of Distributed Systems》中文翻译。 diff --git a/docs/system-design/security/encryption-algorithms.md b/docs/system-design/security/encryption-algorithms.md index da1da2ac..b5464c7b 100644 --- a/docs/system-design/security/encryption-algorithms.md +++ b/docs/system-design/security/encryption-algorithms.md @@ -171,6 +171,10 @@ AES 的速度比 3DES 快,而且更安全。 ![AES(Advanced Encryption Standard)](https://oss.javaguide.cn/github/javaguide/system-design/security/aes-steps.jpg) +DES 算法和 AES 算法简单对比(图片来自于:[RSA vs. AES Encryption: Key Differences Explained](https://cheapsslweb.com/blog/rsa-vs-aes-encryption)): + +![DES 和 AES 对比](https://oss.javaguide.cn/github/javaguide/system-design/security/des-vs-aes.png) + 基于 Java 实现 AES 算法代码示例: ```java