设计重点
- 没有使用外键,使用的是关联表的形式,更加适应高并发
- 在关联表中设置了冗余字段,也就是反范式化,避免多次查表,但是修改的品牌和分类的时候需要同步进行修改,所以适用于查询多,修改少
- 后期建立索引(todo)
- Spu和Sku保存(尚未完结todo)
- 为什么不直接使用js发送请求给es? 1.直接前端操作服务器的es很不安全 2.js对es的支持度不高
- ES直接将数据存在内存中,不够可以搭建ES集群
- 使用TypeReference对R中的data对象进行封装(fastjson的使用)
- 异步编排的使用
- 缓存和分布式锁
-
技巧
json数据生成实体类可以使用生成工具(不要死敲)
在使用MP时封装条件注意点(什么时候使用and拼接)
String key = (String) params.get("key");
if (!StringUtils.isEmpty(key)) {
queryWrapper.and(wrapper -> {
wrapper.eq("id", key).or().like("sku_name", key);
});
// 注意要使用and拼接,如果不适用and会造成 status = 1 and id = 'key' or sku_name = 'key'
// 使用and会生成括号status = 1 and ( id = 'key' or sku_name = 'key' )
}
问题
feign调用超时设置超时时间
feign:
client:
config:
default:
connect-timeout: 10000
read-timeout: 10000