java后端架构常见功能汇总。
java后端常见架构必备功能模块
单点登录(SSO)
过滤器
拦截器(身份验证,日志记录)
消息队列(rabbitMq,rocketMQ)
缓存(redis,memecahe)
加解密(对称加密与非对称加密)
工具类(时间,日期,字符串判断,集合判断,缓存,JSON,分页)
多线程(任务调度)
长连接(websocket)
对外接口(http,https)
数据库接口(Mybatis)
-
单点登录(SSO):
- 描述:单点登录允许用户在多个应用或服务中只需登录一次,就可以访问所有相互信任的应用系统。
- 工作原理:当用户首次访问SSO认证的应用时,会被重定向到一个认证服务器进行身份验证。一旦通过,SSO服务器会生成一个会话,并返回给客户端。当用户访问其他应用时,客户端会检查是否已有一个有效的会话,如果有,则自动登录到目标应用。
-
过滤器(Filter):
- 描述:过滤器可以对请求或响应进行拦截,并根据业务逻辑对请求或响应进行处理。
- 用途:例如身份验证过滤器可以检查用户是否已登录;日志记录过滤器可以记录请求和响应的信息。
-
拦截器(Interceptor):
- 描述:拦截器常用于拦截请求或响应,并进行一些处理。这和过滤器相似,但拦截器常用于Web框架中。
- 用途:例如拦截请求并检查请求中的某个参数是否满足特定条件。
-
消息队列(RabbitMQ, RocketMQ):
- 描述:消息队列是一种异步通信机制,应用程序之间可以发送和接收消息。
- 用途:它常用于处理大量并发请求、解耦系统、异步处理等场景。
-
缓存(Redis, Memcached):
- 描述:缓存是一种存储数据的方式,以便快速访问,而不需要每次都从原始数据源获取。
- 用途:缓存经常用于存储数据库查询结果、热点数据等,以减少数据库的访问压力。
-
加解密(对称加密与非对称加密):
- 对称加密:使用相同的密钥进行加密和解密。
- 非对称加密:使用一对密钥,一个用于加密,另一个用于解密。公钥用于加密,私钥用于解密。最著名的非对称加密算法是RSA。
-
工具类(时间,日期,字符串判断,集合判断,缓存,JSON,分页):
- 描述:工具类是一组静态方法,用于执行常用的操作或计算。例如日期格式化、字符串操作、集合操作等。
-
多线程(任务调度):
- 描述:多线程允许一个程序同时执行多个任务。每个线程有其自己的执行路径和资源。
- 用途:多线程常用于处理大量并发请求、提高系统吞吐量等场景。任务调度是多线程中的一个重要概念,它负责分配任务给不同的线程或进程。
-
长连接(WebSocket):
- 描述:传统的HTTP连接是短连接,每次请求都需要建立新的连接。而WebSocket是一种持久化的连接,允许数据在两个方向上双向流动。
- 用途:常用于实时通信、推送通知等场景。
-
对外接口(HTTP, HTTPS):
- 描述:对外接口是指应用程序提供的外部可访问的接口,其他应用程序或客户端可以通过这些接口与应用程序进行交互。HTTP和HTTPS是常见的对外接口协议。HTTPS是HTTP的安全版本,通过SSL/TLS协议进行数据加密。
-
数据库接口(MyBatis):
- 描述:数据库接口是指应用程序与数据库之间的交互方式。MyBatis是一个流行的Java数据库访问框架,它简化了数据库访问的繁琐操作,使得开发者可以更加专注于SQL本身。
- 用途:开发者使用MyBatis可以方便地执行CRUD操作、进行参数绑定和结果映射等。