通过一张图讨论JAVA入门应掌握什么
Posted 鬼灭之刃
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了通过一张图讨论JAVA入门应掌握什么相关的知识,希望对你有一定的参考价值。
1 nginx
需掌握:
- 反向代理
- 地址重写
- 按目录划分项目
- 支持HTTPS
对称加密虽然性能好但有密钥泄漏的风险,非对称加密(2组公钥+2私钥双向传输)安全但性能低下,因此考虑用非对称加密来传输对称加密所需的密钥,然后进行对称加密,但是为了防止非对称过程产生的中间人攻击,需要对服务器公钥和服务器身份进行配对的数字认证,然后引入了CA数字签名+数字证书验证的方式,客户端从认证机构拿到证书私钥,通过证书私钥拿到非对称加密公钥。
- 解决跨域问题
CORS全称Cross-Origin Resource Sharing,意为跨域资源共享。当一个资源去访问另一个不同域名或者同域名不同端口的资源时,就会发出跨域请求。如果此时另一个资源不允许其进行跨域资源访问,那么访问的那个资源就会遇到跨域问题。
参考文章:
- Nginx的这些妙用,你肯定有不知道的!
- Nginx如何支持HTTPS?手把手教贼简单!
2 Gateway
需掌握:
- Spring Cloud Zuul
- Spring Cloud Gateway
参考文章:
- Spring Cloud Zuul:API网关服务
- Spring Cloud Gateway:新一代API网关服务
3 Spring Security + OAuth2 + JWT
需掌握:
- Spring Security 和 OAuth2 间的区别
Oauth2是使用第三方认证平台来完成认证和授权,RBAC交给第三方来维护,而Spring Security是自己维护RBAC。
-
Spring Security+JWT实现登录认证
-
Spring Security+Oauth2 实现单点登录
Oauth2包括客户端,认证服务和资源服务
客户端:
注册到认证服务,实时刷新token认证服务:
验证token合法性,刷新token,验证客户端是否注册过,验证用户名和密码是否正确资源服务:
自定义用户访问权限,自定义异常,token增强
参考文章:
- 仅需四步,整合SpringSecurity+JWT实现登录认证!
- 手把手教你搞定权限管理,结合Spring Security实现接口的动态权限控制!
- 使用Redis+AOP优化权限管理功能,这波操作贼爽!
- Spring Cloud Security:Oauth2使用入门
- Spring Cloud Security:Oauth2结合JWT使用
- Spring Cloud Security:Oauth2实现单点登录
- 我扒了半天源码,终于找到了Oauth2自定义处理结果的最佳方案!
- 听说你的JWT库用起来特别扭,推荐一款贼好用的!
推荐一个博客: https://www.cnblogs.com/haoxianrui/p/13719356.html
4 Spring Cloud Ribbon
需掌握:
- 在网关中使用
- RestTemplate使用Ribbon
参考文章:
- Spring Cloud Ribbon:负载均衡的服务调用
5 Spring Cloud Fegin
需掌握:
- Spring Cloud Fegin
参考文章:
- Spring Cloud OpenFeign:基于Ribbon和Hystrix的声明式服务调用
6 服务容错保护
需掌握:
- Spring Cloud Hystrix
- Hystrix Dashboard
- Spring Cloud Alibaba:Sentinel
参考文章:
- Spring Cloud Hystrix:服务容错保护
- Hystrix Dashboard:断路器执行监控
- Spring Cloud Alibaba:Sentinel实现熔断与限流
7 服务注册和发现中心
需掌握:
- Spring Cloud Eureka
- Spring Cloud Consul
- Spring Cloud Alibaba:Nacos
参考文章:
- Spring Cloud Eureka:服务注册与发现
- Spring Cloud Consul:服务治理与配置中心
- Spring Cloud Alibaba:Nacos 作为注册中心和配置中心使用
8 服务监控
需掌握:
- Spring Boot Admin
- APM
参考文章:
- Spring Boot Admin:微服务应用监控
- 微服务应用性能如何?APM监控工具来告诉你!
9 配置中心
需掌握:
- Spring Cloud Config
参考文章:
- Spring Cloud Config:外部集中化配置管理
10 分布式请求链路跟踪
需掌握:
- Spring Cloud Sleuth
参考文章:
- Spring Cloud Sleuth:分布式请求链路跟踪
11 消息中间件
需掌握:
- RabbitMQ
- Kafka
参考文章:
- mall整合RabbitMQ实现延迟消息
- 连RabbitMQ的5种核心消息模式都不懂,也敢说自己会用消息队列!
- RabbitMQ实现延迟消息居然如此简单,整个插件就完事了!
- RabbitMQ实现即时通讯居然如此简单!连后端代码都省得写了?
推荐博客:https://javaguide.cn/high-performance/message-queue/message-queue/
12 分布式缓存
需掌握:
- Redis
- Spring data redis
- Redis集群
参考文章:
- mall整合Redis实现缓存功能
- Spring Data Redis 最佳实践!
- Docker环境下秒建Redis集群,连SpringBoot也整上了!
13 数据库
需掌握:
- 常用操作
- 主从同步
- 读写分离
- 数据迁移
参考文章:
- 开发者必备mysql命令
- MySql主从复制,从原理到实践!
- 你还在代码里做读写分离么,试试这个中间件吧!
- MySQL如何实时同步数据到ES?试试这款阿里开源的神器!
- 数据库迁移搞炸了!没用这款开源神器的锅?
14 日志管理
需掌握:
- 接口访问日志
- 日志采集
- 日志安全
- 日志汇总
- 日志服务器搭建
参考文章:
- SpringBoot应用中使用AOP记录接口访问日志
- SpringBoot应用整合ELK实现日志收集
- 性能优越的轻量级日志收集工具,微软、亚马逊都在用!
- 你居然还去服务器上捞日志,搭个日志收集系统难道不香么!
- 居然有人想白嫖我的日志,赶紧开启安全保护压压惊!
- 面对成百上千台服务器产生的日志,试试这款轻量级日志搬运神器!
15 部署和运维
需掌握:
- 项目打包成镜像
- Docker Compose部署镜像
- Jenkis部署
- K8S部署
参考文章:
- 使用Maven插件为SpringBoot应用构建Docker镜像
- 使用Dockerfile为SpringBoot应用构建Docker镜像
- 使用Docker Compose部署SpringBoot应用
- 使用Jenkins一键打包部署SpringBoot应用,就是这么6!
- mall-swarm微服务项目在K8S下的实践!
- 我常用的自动化部署技巧,贼好用,推荐给大家!
- Docker服务开放了这个端口,服务器分分钟变肉机!
- 还在手动部署SpringBoot应用?试试这个自动化插件!
- DockerHub访问慢怎么破?自建个企业级镜像仓库试试!
16 文件管理
需掌握:
- OSS
- MinIO
等
参考文章:
- mall整合OSS实现文件上传
- 前后端分离项目,如何优雅实现文件存储!
17 任务调度
需掌握:
- SpringTask
- PowerJob
- Quartz
参考文章:
- mall整合SpringTask实现定时任务
- SpringBoot官方支持任务调度框架,轻量级用起来也挺香!
- 还在手写任务调度代码?试试这款可视化分布式调度框架!
18 其他中间件
需掌握:
- MyBatis
- Swagger-UI
- Elasticsearch
- Mongodb
- Lombok
- Git
参考文章:
- 干掉mapper.xml!MyBatis新特性动态SQL真香!
- 解放双手!MyBatis官方代码生成工具给力!
- Elasticsearch快速入门,掌握这些刚刚好!
- Elasticsearch官方已支持SQL查询,用起来贼方便!
- MongoDB快速入门,掌握这些刚刚好!
- Lombok有啥牛皮的?SpringBoot和IDEA官方都要支持它!
- Github标星34K+Star,这款开源项目助你秒建Git服务!
- 10分钟搭建自己的Git仓库
- IDEA中的Git操作,看这一篇就够了!
19 一些小插件
- RestfulToolkit
一套Restful服务开发辅助工具集,提供了项目中的接口概览信息,可以根据URL跳转到对应的接口方法中去,内置了HTTP请求工具,对请求方法做了一些增强功能,总之功能很强大!
- Grep Console
一款帮你分析控制台日志的插件,可以对不同级别的日志进行不同颜色的高亮显示,还可以用来按关键字搜索日志内容。
- Maven Helper
解决Maven依赖冲突的好帮手,可以快速查找项目中的依赖冲突,并予以解决!
- MyBatis Log Plugin
有时候我们需要运行过程中产生的SQL语句来帮助我们排查某些问题,这款插件可以把Mybatis输出的SQL日志还原成完整的SQL语句,就不需要我们去手动转换了。
- Swagger可以结合postMan使用
AnotherRedisDesktopManager redis操作工具,比RedisDesktopManager好用
- Arthas
Arthas是Alibaba开源的Java诊断工具,深受开发者喜爱。它采用命令行交互模式,同时提供丰富的 Tab 自动补全功能,进一步方便进行问题的定位和诊断。
以上是关于通过一张图讨论JAVA入门应掌握什么的主要内容,如果未能解决你的问题,请参考以下文章