1.前端:HTML,java Script,knife4j
后端:spring,SpringCloud,springboot,springcloudAlibaba,springMvc,mybatis,mybatisplus
2.安全认证框架:Spring Security
常用的注解:
@EnableGlobalMethodSecurity
用于在配置类上启用全局方法安全性。这个注解允许在方法级别上应用安全性,如权限检查。
@Secured
用于方法上,指定访问该方法所需的角色。当使用此注解时,用户必须拥有指定的角色才能访问该方法。
@PreAuthorize
在方法执行前进行权限或角色认证。如果认证失败,则方法不会被执行。
@PostAuthorize
在方法执行后进行权限或角色认证。如果认证失败,则方法的返回值可能会被修改或忽略。
@PreFilter
在方法执行前对集合类型的参数进行过滤。这可以用于移除不满足特定条件的元素。
@PostFilter
在方法执行后,对返回的集合进行过滤。这可以用于移除不满足特定条件的元素。
3.
ums:
ems:
oms:
wms:
pms:
sms:
4.
1. 支持的语言和分布式能力
Quartz:
Quartz主要是基于Java的任务调度框架,支持Java语言。
Quartz本身并不提供原生的分布式支持,需要通过一些扩展或者和其他组件(如数据库)结合来实现分布式任务调度。
xxl-job:
xxl-job是一个分布式任务调度平台,它不仅提供了Java版本的调度中心,还提供了Python、PHP等多种语言的任务执行器,因此支持多种语言。
xxl-job专注于分布式任务调度,提供了分布式任务调度的解决方案,可以在多个节点上进行任务调度和执行。
2. 管理和监控功能
Quartz:
Quartz并没有提供官方的任务调度管理界面和监控功能,通常需要结合其他组件或者自行开发管理界面。
xxl-job:
xxl-job提供了任务调度中心,包括任务管理、调度监控、日志查看等功能,方便管理和监控任务的执行情况。这些功能对于微服务架构下的任务调度尤其重要,因为它们允许开发者在中央位置查看和管理所有节点的任务状态。
3.社区活跃度:
Quartz 是一个非常成熟和稳定的任务调度框架,拥有庞大的用户社区和丰富的生态系统。
xxl-job 相对较新,但也有着活跃的社区和持续的更新支持。
5.id,select_type,table,type,possible_keys,key,key_len,ref,rows,Extra
6.git init,git add [文件名],git commit -m “备注”,git status,git pull,git push
7.
区别:
语言与平台
RabbitMQ:由Erlang语言开发
Kafka:由Scala语言开发
消息传递模型
RabbitMQ:使用AMQP(高级消息队列协议)
Kafka:采用发布/订阅模型
可靠性
RabbitMQ:提供高级别的可靠性,包括消息持久化、事务支持和消息确认机制,确保消息不丢失。
Kafka:虽然不直接支持事务,但通过分区存储和允许消费者从分区中读取数据来保证吞吐量,但在高负载下可能会遇到消息重复或丢失的情况。
性能与吞吐量
RabbitMQ:适用于需要可靠消息传递的场景。
Kafka:具有更高的吞吐量,适用于大数据处理和实时流分析。
集群与负载均衡
RabbitMQ:本身不支持负载均衡,需要借助外部负载均衡器。
Kafka:集群设计使其能够自动进行负载均衡
消费模型
RabbitMQ:采用push模式
Kafka:采用pull模式
使用场景:
rabbitmq:
金融支付系统、库存管理系统、电商平台中的订单处理、邮件通知系统、短信发送系统、用户注册和登录通知等。
kafka:
网站活动跟踪、日志聚合、大数据管道、交易记录分析、用户行为分析等。
8. 六种
1.noeviction(默认策略):对于写请求不再提供服务,直接返回错误(DEL请求和部分特殊请求除外)
2.allkeys-lru:从所有key中使用LRU算法进行淘汰(LRU算法:即最近最少使用算法)
3.volatile-lru:从设置了过期时间的key中使用LRU算法进行淘汰
4.allkeys-random:从所有key中随机淘汰数据
5.volatile-random:从设置了过期时间的key中随机淘汰
6.volatile-ttl:在设置了过期时间的key中,淘汰过期时间剩余最短的