拾壹博客拆解,核心功能体验,入门完结(三)

核心功能(指自己感兴趣的功能)使用

一、文章抓取

这个功能吹爆!搬家好用多了!
image.png
除了标题混入了奇怪的东西,基本上格式没有什么问题。
image.png

二、监控中心

服务监控

这个模块刚打开就给了一个大逼斗。
image.png
搜索了一下使用的oshi。没用过,并且没有搜索到这个问题的答案,感觉会很费时并且线上是正常的。那就摆烂吧。。。

定时任务

模块使用了Quartz这个作业调度框架,可以根据写好的cron表达式,定时执行配置的任务。
先看看作者留下的几个必填的定时任务。
image.png

  1. 自动更新文章阅读数:根据目标字符串找到updateReadQuantity这个方法。
/**
 *  自动更新阅读数,每天凌晨四点更新数据
 * @author blue
 * @date: 2021/8/18 17:58
 */
public void updateReadQuantity(){
    
    
    // 获取带阅读量的前缀key集合
    List<BlogArticle> blogArticles = new ArrayList<>();
    Map<String, Object> map = redisService.getCacheMap(ARTICLE_READING);
    // 取出所有数据更新到数据库
    for (Map.Entry<String, Object> stringEntry : map.entrySet()) {
    
    
        ...省略
    }
    articleService.updateBatchById(blogArticles);
}

很明显就是从redis中取出所有的文章点击数据,并且更新保存。再根据ARTICLE_READING这个关键字查询到是何时插入到redis中。

/**
 *  获取文章详情
 * @return
 */
@Override
public ResponseResult webArticleInfo(Integer id) {
    
    
    ...省略

    //增加文章阅读量
    threadPoolTaskExecutor.execute(() -> this.incr(id.longValue(),ARTICLE_READING));

    return ResponseResult.success(blogArticle);
}

/**
 *  增加文字阅读量或标签点击量
 * @return
 */
public void incr(Long id,String key) {
    
    
    Map<String, Object> map = redisService.getCacheMap(key);
    Integer value = (Integer) map.get(id.toString());
    // 如果key存在就直接加一
    if (value != null) {
    
    
        map.put(id.toString(),value+1);
    }else {
    
    
        map.put(id.toString(),1);
    }
    redisService.setCacheMap(key,map);
}

到这里就很清晰了,在查看详情的时候就对文章的点击数进行了统计,并且还是调用线程池去进行执行。

  1. 定时修改标签的点击量

基本同上,略。

  1. 定时删除当天验证通过的ip

跟踪了一下代码,发现这个功能是给私密文章结合公众号使用的,在公众号上获取验证码后可一天免获取。暂时无用,略过。

在线用户

嗯,踢人用的。
image.png

druid监控

配置类为DruidConfig,在其中加入自己的ip,否则不会显示。最大的作用查看sql执行时长,查找满sql。

缓存监控

嗯。redis的监控。路径:/system/home/cache
image.png

三、发送邮件

在系统配置里配置邮件地址,邮箱授权码获取方式百度就好,比较不一样的邮箱不一样。
image.png
重启项目后在前台登录测试发送验证码,成功。
image.png

四、权限配置

以文章置顶接口为例,之前文章置顶接口是未配置权限的。找到接口上方的@SaCheckPermission("/system/article/top"),表示权限路径是/system/article/top
image.png
image.png

五、文章搜索(Elasticsearch)

Es个人还是比较好奇的,工作中接触的比较少,没有深入使用过,测试了下功能直接报错。。。。
image.png
找到 **ElasticsearchUtil **这个类,发现下面的save根本没引用过。。。
image.png
这应该是作者留下的考验吧。。辣么分别在文章的增删改处增加es的增删改。再进行新增,已经自动建好了索引,并且有值了。
image.png
PS: 写在最后,从这开始博客搭建环节就结束了,其实还有第三方登录跳转没接,但是感觉也不需要,就这样吧。下面开始就是boot转cloud alibaba环节。

猜你喜欢

转载自blog.csdn.net/qq_16253859/article/details/128226049