设计重点

  1. 没有使用外键,使用的是关联表的形式,更加适应高并发
  2. 在关联表中设置了冗余字段,也就是反范式化,避免多次查表,但是修改的品牌和分类的时候需要同步进行修改,所以适用于查询多,修改少
  3. 后期建立索引(todo)
  4. Spu和Sku保存(尚未完结todo)
  5. 为什么不直接使用js发送请求给es? 1.直接前端操作服务器的es很不安全 2.js对es的支持度不高
  6. ES直接将数据存在内存中,不够可以搭建ES集群
  7. 使用TypeReference对R中的data对象进行封装(fastjson的使用)
  8. 异步编排的使用
  9. 缓存和分布式锁
  10. 缓存的三大问题解决

    技巧

  11. json数据生成实体类可以使用生成工具(不要死敲)

  12. 在使用MP时封装条件注意点(什么时候使用and拼接)

    1. String key = (String) params.get("key");
    2. if (!StringUtils.isEmpty(key)) {
    3. queryWrapper.and(wrapper -> {
    4. wrapper.eq("id", key).or().like("sku_name", key);
    5. });
    6. // 注意要使用and拼接,如果不适用and会造成 status = 1 and id = 'key' or sku_name = 'key'
    7. // 使用and会生成括号status = 1 and ( id = 'key' or sku_name = 'key' )
    8. }

    问题

  13. feign调用超时设置超时时间

    1. feign:
    2. client:
    3. config:
    4. default:
    5. connect-timeout: 10000
    6. read-timeout: 10000

    image.png