如何开启小说精品屋-plus的高级特性来应对高并发场景

原创
05/26 19:33
阅读数 1.5K

1.开启分布式缓存Redis,开启阿里云OSS对象存储或分布式文件系统FastDfs来单独管理文件,单机环境升级为集群环境,通过多台机器来提高请求处理的最大并发数。

  • 安装Redis服务。
  • 更改配置文件中的缓存类型。
#缓存类型,ehcache(默认)、redis
cache:
  type: redis
  • 更改配置文件中的Redis配置信息。
spring:  
  #Redis服务器IP
  redis:
    host: 127.0.0.1
    #Redis服务器连接端口
    port: 6379
    #Redis服务器连接密码
    password: test
    jedis:
      pool:
        #连接池最大连接数(使用负值表示没有限制)
        max-active: 8
        #连接池最大阻塞等待时间(使用负值表示没有限制)
        max-wait: 1
        #连接池最大阻塞等待时间(使用负值表示没有限制)
        max-idle: 8
        #连接池中的最小空闲连接
        min-idle: 0
    #连接超时时间(毫秒)
    timeout: 30000
  • 开启阿里云OSS对象存储(与FastDfs开启二选一)。
pic:
  save:
    type: 2 #图片保存方式, 1不保存,使用爬取的网络图片 ,2保存在自己的存储介质
    storage: OSS #存储介质,local:本地,OSS:阿里云对象存储,fastDfs:分布式文件系统
    path: /var/pic  #图片保存路径
#OSS
novel:
  file:
    endpoint: oss-cn-shenzhen.aliyuncs.com #不同的服务器,地址不同
    key-id: dhjjrue6767778878 #去OSS控制台获取
    key-secret: dssdkkrkelrkellk44554 #去OSS控制台获取
    bucket-name: novel #这个自己创建bucket时的命名,控制台创建也行,代码创建也行
    file-host: pic #文件路径
    web-url: https://xxyimg.oss-cn-hangzhou.aliyuncs.com #OSS文件的web访问地址
  • 开启分布式文件系统FastDfs(与OSS开启二选一)。
pic:
  save:
    type: 2 #图片保存方式, 1不保存,使用爬取的网络图片 ,2保存在自己的存储介质
    storage: fastDfs #存储介质,local:本地,OSS:阿里云对象存储,fastDfs:分布式文件系统
    path: /var/pic  #图片保存路径
#FastDfs的配置
#读取inputsream阻塞时间
fdfs:
  connect-timeout: 600
  so-timeout: 1500
  #tracker地址
  trackerList: 127.0.0.1:22122
  #缩略图配置
  thumbImage:
    height: 150
    width: 150
  #通过nginx 访问地址
  webUrl: http://127.0.0.1/
  #获取连接池最大数量
  pool.max-total: 200

2.当小说数量和用户规模达到一定级别后,搜索/分类检索功能就会成为系统的性能瓶颈,可以开启ElasticSearch搜索引擎来提高检索速度和减轻数据库压力。

  • 安装ElasticSearch搜索引擎服务和Kibana可视化客户端,创建小说索引和属性映射。

  • 通过配置文件开启搜索引擎功能。

spring:  
  elasticsearch:
    #是否开启搜索引擎,1:开启,0:不开启
    enable: 1
    jest:
      #ElasticSerch服务地址
      uris: http://127.0.0.1:9200

3.当用户规模达到一定量级后(点击小说详情页和内容页均会增加点击量),小说点击量新增的接口会承受巨大的并发压力,数据库和搜索引擎的数据会频繁更新,此时可以通过开启RabbitMq消息队列来进行流量削峰,消息消费者根据实际业务情况平滑处理,小说的点击量先保存在缓存中,每本小说积累10个点击,才会更新一次数据库,每本小说点击量的更新至少间隔一个小时才会同步到搜索引擎中。

  • 安装RabbitMq消息服务。
  • 通过配置文件开启消息服务。
spring:
  rabbitmq:
    #是否开启消息队列,1:开启,0:不开启
    enable: 1
    host: 127.0.0.1
    username: guest
    password: guest
    virtual-host: /novel-plus
    template:
      # 缺省的交换机名称,此处配置后,发送消息如果不指定交换机就会使用这个
      exchange: novel.exchange
    publisher-confirms: false

4.数据库分库分表来提高数据库的最大并发量。

  • 更新版本至V2.5.0。
展开阅读全文
打赏
2
2 收藏
分享
加载中
更多评论
打赏
0 评论
2 收藏
2
分享
返回顶部
顶部