新项目技术栈落地(三)——日志和缓存框架的选择

原创
2019/03/19 16:56
阅读数 1.3K

    分布式项目日志框架和缓存框架都是必要的,下面来说说两者框架的选择。

    先说说日志框架的选择,目前开源的日志框架有很多例如log4j,log4j2,logback,slf4j等,开发项目时建议用slf4j作为日志框架,原因看图:

    本质上slf4j只是一个日志接口,是日志门面接口,它可以支持目前大部分的日志框架,也就是说如果你代码里用的是slf4j做为编码,那么以后你切换日志框架只是换一个maven依赖另一个日志框架,修改一下日志配置文件,而不需要修改代码。

    slf4j提供了基于日志占位符省去了用+号连接字符串的麻烦

    slf4j是编译绑定能提供跟高效率

    最关键的是按照使用slf4j遵循了面向对象思想,使用接口隔离实现。

    参考:

    复杂Spring项目中SLF4J最佳使用姿势

    

    再来说说缓存框架的选择,目前的开源缓存框架有:SpringCache,J2Cache,JetCache,Memcached等,就本人使用过的j2cache和jetcache做对比如下表:

名称 组织或个人 内存缓存 Redis缓存 其他特性
JetCache 阿里巴巴 RedisCache、TairCache(此部分未在github开源)、CaffeineCache(in memory)和一个简易的LinkedHashMapCache(in memory)四种方式实现的内存缓存 支持 通过统一的API访问Cache系统
通过注解实现声明式的方法缓存,支持TTL和两级缓存
通过注解创建并配置Cache实例
针对所有Cache实例和方法缓存的自动统计
Key的生成策略和Value的序列化策略是可以配置的
分布式缓存自动刷新,分布式锁 (2.2+)
异步Cache API (2.2+,使用Redis的lettuce客户端时)
Spring Boot支持
J2Cache 红薯 同时支持 Ehcache 2.x、Ehcache 3.x 和 Caffeine 支持

支持 JGroups 和 Redis Pub/Sub 两种方式进行缓存事件的通知

Spring Boot支持

    如上表说书,个人倾向于选择jetcache。

参考:

JetCache中文说明

J2Cache官网

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部