diff --git a/README.md b/README.md index d6d1e4c..fce3e3f 100644 --- a/README.md +++ b/README.md @@ -54,7 +54,8 @@ novel-plus -- 父工程 | Ehcache | Java进程内缓存框架(默认缓存) | Redis | 分布式缓存(缓存替换方案,默认关闭,一行配置开启) | ElasticSearch | 搜索引擎(搜索增强方案,默认关闭,一行配置开启) -| RabbitMq | 消息队列(流量削峰,默认关闭,一行配置开启) +| RabbitMq | 消息队列(流量削峰,默认关闭,一行配置开启) +| Redisson | 实现分布式锁 | Lombok | 简化对象封装工具 | Docker | 应用容器引擎 | Mysql | 数据库服务 diff --git a/novel-common/src/main/resources/application-common-dev.yml b/novel-common/src/main/resources/application-common-dev.yml index 9e48caa..d873e71 100644 --- a/novel-common/src/main/resources/application-common-dev.yml +++ b/novel-common/src/main/resources/application-common-dev.yml @@ -4,7 +4,7 @@ spring: datasource: url: jdbc:mysql://127.0.0.1:3306/novel_plus?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai username: root - password: test123456 + password: driver-class-name: com.mysql.cj.jdbc.Driver #Redis服务器IP redis: diff --git a/novel-front/pom.xml b/novel-front/pom.xml index b83ffcb..862eef9 100644 --- a/novel-front/pom.xml +++ b/novel-front/pom.xml @@ -45,6 +45,14 @@ + + + + com.alipay.sdk alipay-sdk-java diff --git a/novel-front/src/main/java/com/java2nb/novel/core/listener/BookVisitAddListener.java b/novel-front/src/main/java/com/java2nb/novel/core/listener/BookVisitAddListener.java index 350b8a2..642ddf4 100644 --- a/novel-front/src/main/java/com/java2nb/novel/core/listener/BookVisitAddListener.java +++ b/novel-front/src/main/java/com/java2nb/novel/core/listener/BookVisitAddListener.java @@ -37,6 +37,8 @@ public class BookVisitAddListener { private final SearchService searchService; + // private final RedissonClient redissonClient; + @@ -51,11 +53,19 @@ public class BookVisitAddListener { log.debug("收到更新数据库消息:" + bookId); Thread.sleep(1000 * 2); //TODO 操作共享资源visitCount,集群环境下有线程安全问题,引入Redisson框架实现分布式锁 + //RLock lock = redissonClient.getLock("visitCount"); + //lock.lock(); + + //目前visitCount不重要,数据可丢失,暂不实现分布式锁 Integer visitCount = (Integer) cacheService.getObject(CacheKey.BOOK_ADD_VISIT_COUNT+bookId); if(visitCount == null){ visitCount = 0 ; } + + //TODO 操作共享资源visitCount,集群环境下有线程安全问题,引入Redisson框架实现分布式锁 + //lock.unlock(); + cacheService.setObject(CacheKey.BOOK_ADD_VISIT_COUNT+bookId,++visitCount); if(cacheService.get(CacheKey.ES_IS_UPDATE_VISIT + bookId) == null) { bookService.addVisitCount(bookId); diff --git a/novel-front/src/main/resources/application.yml b/novel-front/src/main/resources/application.yml index 8c6aa6a..bbe93f2 100644 --- a/novel-front/src/main/resources/application.yml +++ b/novel-front/src/main/resources/application.yml @@ -25,7 +25,9 @@ spring: jest: uris: http://127.0.0.1:9200 - +redisson: + singleServerConfig: + address: 127.0.0.1:6379 jwt: secret: novel!#20191230 diff --git a/pom.xml b/pom.xml index 8afbccb..74479b9 100644 --- a/pom.xml +++ b/pom.xml @@ -39,6 +39,7 @@ 6.2.2 6.3.1 1.4.1.RELEASE + 3.12.5