品优购业务技术总结

2024-05-13 10:32
文章标签 技术 总结 业务 品优购

本文主要是介绍品优购业务技术总结,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

品优购业务&技术总结项目描述
    XXX是公司自主研发的一个B2B2C电商平台,允许运营商自营和商家入驻,与京东商城非常类似。系统采用dubbox+zookeeper实现面向服务(SOA)分布式架构将不同的功能模块划分为多个子系统,其中包含运营商系统、商家系统、用户系统、网站前台系统、搜索系统、购物车系统、支付系统、订单系统、秒杀系统、CAS单点登录、短信&站内信微服务、客服系统等。使用ssm框架整合完成后端功能模块,同时也使用多种技术完成整个项目的功能,比如安全框架Spring secutity、redis、消息中间件、页面静态化技术、全文检索技术等等,而前端采用AngularJs实现前后端分离。我主要负责的功能模块--从下面选择来讲  
相关概念:
  • 分布式:将项目拆分为不同的功能模块,分别运行在不同的服务器,各个服务配合完成项目业务功能。
  • 集群:将相同的项目或者模块部署在不同的服务器,同时对外提供服务。
  • 负载均衡:配置代理集群入口,对所有请求寻找一个可用的服务器节点提供服务。
###一、整体业务1. 基础数据维护  【1-7】
     基础数据维护主要是对系统数据的创建,主要是对商品相关表数据进行维护包含品牌、规格、分类以及SPU和SKU管理。整体业务相对比较简单,实现过程页面利用AngularJs校验数据并提交请求传递相应数据,后端采用SpringMVC在controller处理请求和接收参数,同时通过dubbox调用远程发布到zookeeper服务层,服务层主要通过spring整合mybatis以mapper接口代理的方式完成数据的增删改查
     技术点: Spring SpringMVC Mybatis --- 后期总结
     dubbox:《dubbox.md》
     zookeeper:  《zookeeper.md》      
        面试问题:
        1) dubbox的流程
        2) dubbox注册中心宕机了,服务还能不能正常运行(*)
        3) dubbox负载均衡机制有哪些?
        4) dubbox集群容错机制?
        5) dubbox底层支持通信协议和序列化协议有哪些?
        6) zookeeper的数据模型描述一下?(*)
        7) zookeeper的核心什么?        (*)
        8) zookeeper的选举机制以及zab协议?
        9) zookeeper的应用场景?(*)        
2. 权限管理维护  【品优购-第四天】
     权限模块在运营商后台进行维护,主要功能是维护用户表和角色表数据同时给运营商后台用户进行角色配置,一个用户可以拥有多种角色。同时使用spring security配置请求拦截规则,系统规定每一个功能模块都有一种特定的角色,比如如果要操作用户模块那么用户就需要有用户角色(ROLE_USER)。同时实现spring security提供的认证接口UserDetailService的loadByUsername方法根据传入用户名查询用户表得到用户密码以及根据用户名查询角色表得到当前用户所有的角色信息,完成角色的认证.在spring security的认证管理器中配置刚刚实现的认证类同时加入Bcrypt加密配置。同时商家系统也需要相应的角色才能访问,在运营商后台由管理人员对商家进行赋予角色(商家用户角色比较单一:普通角色、VIP角色、秒杀角色等)
网站权限的细粒度 --- 定位到方法|请求,每一个请求对可以对应一个权限
涉及的表:  用户  角色 权限(表与表的关系)
权限拦截:Spring Security利用注解进行方法的拦截(拦截的细粒度---方法)
3. 网站首页 【品优购-第八天】
     网站前台首页,首页主要展示广告信息、热门商品信息、分类菜单等。由于网站首页作为入口,访问压力较大。为了减轻数据库的访问压力并且提高系统的平均响应时间,而且首页数据的变换并不频繁所以可以将首页所需数据使用redis进行缓存,这样访问首页时数据加载就从缓存中获取,不去访问数据库。同时如果后台对广告更换以及分类更改都会清空相应的缓存,这样下次访问从新先从数据库加载然后再存入缓存,之后读取都从缓存读取。
    技术:redis--- 《redis.md》
    面试问题:   
        1) 项目中哪些地方用到redis?(*)
           2) 介绍以下redis的数据类型以及应用场景?(*)
        3) 描述以下redis的持久化机制?(*)
        4) AOF持久化文件越来越大怎么办?
        5) redis为什么被称为单线程,以及为什么单线程效率还这么高?(*)
        6) 你们系统使用redis是否遇到过缓存雪崩和穿透的问题?

这篇关于品优购业务技术总结的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/985452

相关文章

SpringBoot3实现Gzip压缩优化的技术指南

《SpringBoot3实现Gzip压缩优化的技术指南》随着Web应用的用户量和数据量增加,网络带宽和页面加载速度逐渐成为瓶颈,为了减少数据传输量,提高用户体验,我们可以使用Gzip压缩HTTP响应,... 目录1、简述2、配置2.1 添加依赖2.2 配置 Gzip 压缩3、服务端应用4、前端应用4.1 N

Java利用JSONPath操作JSON数据的技术指南

《Java利用JSONPath操作JSON数据的技术指南》JSONPath是一种强大的工具,用于查询和操作JSON数据,类似于SQL的语法,它为处理复杂的JSON数据结构提供了简单且高效... 目录1、简述2、什么是 jsONPath?3、Java 示例3.1 基本查询3.2 过滤查询3.3 递归搜索3.4

Python中随机休眠技术原理与应用详解

《Python中随机休眠技术原理与应用详解》在编程中,让程序暂停执行特定时间是常见需求,当需要引入不确定性时,随机休眠就成为关键技巧,下面我们就来看看Python中随机休眠技术的具体实现与应用吧... 目录引言一、实现原理与基础方法1.1 核心函数解析1.2 基础实现模板1.3 整数版实现二、典型应用场景2

java常见报错及解决方案总结

《java常见报错及解决方案总结》:本文主要介绍Java编程中常见错误类型及示例,包括语法错误、空指针异常、数组下标越界、类型转换异常、文件未找到异常、除以零异常、非法线程操作异常、方法未定义异常... 目录1. 语法错误 (Syntax Errors)示例 1:解决方案:2. 空指针异常 (NullPoi

Java反转字符串的五种方法总结

《Java反转字符串的五种方法总结》:本文主要介绍五种在Java中反转字符串的方法,包括使用StringBuilder的reverse()方法、字符数组、自定义StringBuilder方法、直接... 目录前言方法一:使用StringBuilder的reverse()方法方法二:使用字符数组方法三:使用自

Python依赖库的几种离线安装方法总结

《Python依赖库的几种离线安装方法总结》:本文主要介绍如何在Python中使用pip工具进行依赖库的安装和管理,包括如何导出和导入依赖包列表、如何下载和安装单个或多个库包及其依赖,以及如何指定... 目录前言一、如何copy一个python环境二、如何下载一个包及其依赖并安装三、如何导出requirem

Rust格式化输出方式总结

《Rust格式化输出方式总结》Rust提供了强大的格式化输出功能,通过std::fmt模块和相关的宏来实现,主要的输出宏包括println!和format!,它们支持多种格式化占位符,如{}、{:?}... 目录Rust格式化输出方式基本的格式化输出格式化占位符Format 特性总结Rust格式化输出方式

Python中连接不同数据库的方法总结

《Python中连接不同数据库的方法总结》在数据驱动的现代应用开发中,Python凭借其丰富的库和强大的生态系统,成为连接各种数据库的理想编程语言,下面我们就来看看如何使用Python实现连接常用的几... 目录一、连接mysql数据库二、连接PostgreSQL数据库三、连接SQLite数据库四、连接Mo

Git提交代码详细流程及问题总结

《Git提交代码详细流程及问题总结》:本文主要介绍Git的三大分区,分别是工作区、暂存区和版本库,并详细描述了提交、推送、拉取代码和合并分支的流程,文中通过代码介绍的非常详解,需要的朋友可以参考下... 目录1.git 三大分区2.Git提交、推送、拉取代码、合并分支详细流程3.问题总结4.git push

Kubernetes常用命令大全近期总结

《Kubernetes常用命令大全近期总结》Kubernetes是用于大规模部署和管理这些容器的开源软件-在希腊语中,这个词还有“舵手”或“飞行员”的意思,使用Kubernetes(有时被称为“... 目录前言Kubernetes 的工作原理为什么要使用 Kubernetes?Kubernetes常用命令总