0%

1. 三级分类查询优化

使用示例:

  • 利用 Redis 实现三级分类数据缓存
  • 利用 Redisson 实现分布式,解决缓存一致性、缓存穿透、缓存雪崩和缓存击穿等问题
  • 利用 SpringCache 缓存组件实现三级分类数据缓存,并解决缓存一致性问题

2. 上架商品检索功能开发

  • 根据查询数据封装请求类,并构建 ES 的 DSL 检索语句
  • 解析 ES 检索结果并封装成检索结果对象返回前端

1. 简介

Spring 从 3.1 开始定义了 org.springframework.cache.Cache 和 org.springframework.cache.CacheManager 接口来统一不同的缓存技术, 并支持使用 JCache(JSR-107)注解简化我们开发;

Cache 接口为缓存的组件规范定义,包含缓存的各种操作集合。Cache 接 口 下 Spring 提 供 了 各 种 xxxCache 的 实 现 , 如 RedisCache , EhCacheCache , ConcurrentMapCache 等;

每次调用需要缓存功能的方法时,Spring 会检查检查指定参数的指定的目标方法是否已经被调用过。如果有就直接从缓存中获取方法调用后的结果,如果没有就调用方法并缓存结果后返回给用户,下次调用直接从缓存中获取。

使用 Spring 缓存抽象时我们需要关注以下两点:

  1. 确定方法需要被缓存以及他们的缓存策略
  2. 从缓存中读取之前缓存存储的数据
阅读全文 »

1. SpringBoot 整合

1)导入依赖:

1
2
3
4
5
<dependency>
<groupId>org.redisson</groupId>
<artifactId>redisson</artifactId>
<version>3.12.0</version>
</dependency>
阅读全文 »

1. 本地缓存

关于缓存可以有多种实现,例如下图,在单服务节点项目中,可以实现本地缓存。简单的本地缓存实现比如可以在类中创建一个静态的 Map 集合,然后存储缓存对象即可。等到其他请求再次访问时,可以直接将 Map 中的对象直接进行返回。

单服务本地缓存

阅读全文 »

ElasticSearch-high-level-client 是 java 操作 ElasticSearch 的一个客户端 API

1. 引入依赖

1
2
3
4
5
6
7
8
9
10
<properties>
<elasticsearch.version>7.4.2</elasticsearch.version>
</properties>
<dependencies>
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>elasticsearch-rest-high-level-client</artifactId>
<version>7.4.2</version>
</dependency>
</dependencies>
阅读全文 »

准备工作: 在 CentOs7 使用 Docker 安装 ElasticSearch 7.4.2

1. 分词概念

一个 tokenizer(分词器)接收一个字符流,将之分割为独立的 tokens(词元,通常是独立的单词),然后输出 tokens 流。 例如,whitespace tokenizer 遇到空白字符时分割文本。它会将文本 “Quick brown fox!” 分割 为 [Quick, brown, fox!]。 该 tokenizer(分词器)还负责记录各个 term(词条)的顺序或 position 位置(用于 phrase 短语和 word proximity 词近邻查询),以及 term(词条)所代表的原始 word(单词)的 start (起始)和 end(结束)的 character offsets(字符偏移量)(用于高亮显示搜索的内容)。 Elasticsearch 提供了很多内置的分词器,可以用来构建 custom analyzers(自定义分词器)。

阅读全文 »

1. 文件存储

1.1 普通文件存储方式和问题

单点项目服务上传方式如图1所示,即浏览器上传文件生成文件流最终写在服务器指定目录文件下。但是当在分布式的情况下时,如图2所示,由于文件可能上传到某台服务器上,因此有些服务器缺少对应的上传文件,导致无法访问到上传的文件。

阅读全文 »

1. SpringCloud Alibaba 集成

  • 集成 Nacos 作为注册中心
  • 采用 OpenFeign 方式进行 RPC 操作
  • 集成 Nacos 作为配置中心
  • 采用 SporingCloud Gateway 作为网关,实现路径重写和负载均衡等
阅读全文 »

1. 介绍

跨域:指的是浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器对 Javascript 施加的安全限制。

同源策略:是指协议,域名,端口都要相同,其中有一个不同都会产生跨域。具体场景如下所示:

阅读全文 »