zoukankan      html  css  js  c++  java
  • 电商项目技术站盘点

    1、技术架构

    2、系统架构

     3、技术说明

    3.1spring cloud :微服务搭建,按照业务进行拆分

    • changgou_gateway
      网关模块,根据网站的规模和需要,可以将综合逻辑相关的服务用网关路由组合到一起。在这里还可以做鉴权和限流相关操作。
    • changgou_service
      微服务模块,该模块用于存放所有独立的微服务工程。
    • changgou_service_api
      对应工程的JavaBean、Feign、以及Hystrix配置,该工程主要对外提供依赖。
    • changgou_transaction_fescar
      分布式事务模块,将分布式事务抽取到该工程中,任何工程如需要使用分布式事务,只需依赖该工程即可。
    • changgou_web
     web服务工程,对应功能模块如需要调用多个微服务,可以将他们写入到该模块中,例如网站后台、网站前台等

    3.2技术点摘要

    • FastDFS:分部式文件系统,对图片等文件进行管理,实现文件的上传下载,可以进行限流【漏桶算法】
    • JWT:实现微服务鉴权(JSON Web Token(JWT)是一个非常轻巧的规范。这个规范允许我们使用JWT在用户和服务器之间传递安全可靠的信息。一个JWT实际上就是一个字符串,它由三部分组成,头部、载荷与签名。)
    • OpenResty:封装了Nginx,并且提供了Lua扩展,大大提升了Nginx对并发处理的能,10K-1000K  Lua->广告缓存操作
    • canal:用来监控数据库数据的变化,从而获得新增数据,或者修改的数据,应用场景一,数据库的同步备份;应用场景二,监控数据修改,将数据同步到缓存中
    • elasticsearch:基于Lucene的搜索服务器,用Java语言开发,提供分布式多用户能力全文搜索
    • SpringSecurity Oauth2.0:实现单点登录,使用公钥加密,私钥解密的方式,进行微服务之间的权限认证
    • 对接微信支付:微信支付开发文档,XML进行信息传输;利用微信传输的固定字段,来区分秒杀队列
    • rabbitMQ:利用死信队列进行  超时订单处理
    • 商品秒杀:将商品用定时任务按照时间段缓存到redis中,用redis的incr解决幂等问题
    • 流量削峰:采用队列多线程的方式处理流量削峰
    • 幂等问题场景:①用户点击按钮重复下单②消息队列广播消息某个服务没成功,重复发送该消息后,重复消费问题③RPC请求以为消息没成功,重新发送重试的时候
    • 分布式事务:事务的特性,事务的传播行为,事务的隔离级别,本地事务,CAP定理,分布式解决方案:①2段提交(XA)②三段提交(TCC)③RocketMQ事务消息④seata(Alibaba)
    • redis集群:使用crc16 算法,再分配哈希槽,进行消息存储,主节点挂掉超过半数集群不可用(主节点数为奇数个);哨兵机制;redis的持久化RDB和AOF,缓存击穿,缓存雪崩,采用三次缓存(nginx-redis-mybatis二级缓存)canal进行数据同步。

    3.3讲义地址

    https://gitee.com/wangfandi/changgou/tree/master

  • 相关阅读:
    BZOJ 1037: [ZJOI2008]生日聚会Party 四维DP
    Codeforces Round #240 (Div. 1) B. Mashmokh and ACM DP
    Codeforces Round #319 (Div. 2)B. Modulo Sum DP
    浅谈移动端页面无刷新跳转问题的解决方案
    2017年10大主流编程语言最新排行榜出炉
    2017年10大主流编程语言最新排行榜出炉
    验证码倒计时的注册页面
    仿百度地图上拉下滑抽屉盒
    仿百度地图上拉下滑抽屉盒
    微信小游戏跳一跳外挂教程(安卓版)
  • 原文地址:https://www.cnblogs.com/songjn/p/13551365.html
Copyright © 2011-2022 走看看