项目介绍有用各种技术

shan1393 shan1393     2022-12-27     386

关键词:

电商项目总结 
1.系统架构 
采用当前最流行的ssm(springmvc+spring+mybatis)框架开发,是当前电商网站首选的技术架构。系统是基于SOA架构设计,采用dubbo作为服务中间件,系统后台使用jsp作为视图层,操作简便用户体验好。商城系统使用freemarker做静态化页面来提高系统的性能,使用nginx做负载均衡服务器以应对大规模的用户量的并发。电商搜索系统采用当前最流行的全文检索技术solr实现。系统中使用redis做缓存,使用Activemq做消息中间件。后台数据库使用mysql数据库,读写分离是建立在主从复制的前提下的

做读写分离

2.dubbo的使用方法

Dubbo是一个分布式服务框架,提供了统一的高性能的远程服务调用平台。所有的业务逻辑都使用dubbo发布供表现层工程调用。发布dubbo服务需要使用spring容器的支持来发布服务,调用服务同样使用spring容器来应用服务。其中服务的发布和服务的发现都是通过注册中心来实现,我们使用zookeeper作为注册中心。使用dubbo的监控中心监控中心来统计各服务调用次数,调用时间等。 
3.如何保存图片的

在电商项目中需要保存大量的图片,需要一个独立的图片服务器来保存,而且存储的容量需要可扩展。并且还需要解决在高并发及高可用的问题。所以我们采用一个FastDFS一个分布式文件系统来保存图片。FastDFS可以搭建服务器集群,解决了存储空间的水平扩展、负载均衡以及服务器的高可用问题。 
4.网页静态化的实现方案

创建一个独立的工程,此工程的功能就是生成静态化页面的,例如商品详情页面静态化。将此工程独立部署到一个服务上,页面就生成到当前服务的磁盘上,并且此工程监听MQ的消息,一旦后台工程添加商品,此工程将接收到消息并且生成静态页面。在此服务器上安装一个nginx做为访问静态资源的http服务器。 
5.把商品数据放到缓存中,如何提高缓存的利用率

做商品数据的缓存时,因为商品的数据量很大,而且缓存是把数据保存到内存中,此时不可能把所有的商品数据都放到缓存中。所以需要设置商品数据缓存的有效期,当用户访问到非热点数据后,此数据放到缓存中,当缓存到期后就从缓存中删除,而且长时间不会添加到缓存。而热点数据一旦从缓存中删除会马上又添加到缓存。这样可以提高缓存的利用率,同时也减轻了数据库的压力。 
6.如何实现缓存同步的

只要使用了缓存涉及到缓存同步的问题。缓存同步其实就是当缓存的信息发生变化,也就是后台对缓存的数据进行增、删、改操作后,数据库中的数据发生了变化同时要把缓存中的数据对应删除即可。当页面再次请求数据时,缓存中不能命中就会从数据库中查询并且添加到缓存中,即实现了缓存同步。 
7.如何处理数据量大、并发量高的搜索

如果要搜索的内容数据量很大并且并发量很高的情况下,一个solr服务是不能满足要求的,所以此时需要SolrCloud来解决。SolrCloud也就是solr的分布式解决方案。是zookeeper+solr实现的。 
8.Activemq有几种消息通信方式

使用MQ中间件可以有两种通信方式queue和topic。Queue可以实现点到点之间的通信,可以有多个Producer也可以有多个Consumer,但是消息只能被一个Consumer接收,一旦消息被消费后就没有了。

Topic可以实现类似广播的通信方式,可以有多个Producer和多个Consumer,一旦有Producer发送消息后,此消息可以被所有Consumer接收。

本项目中,当后台系统对商品数据进行添加、删除、修改后,将会发送一个消息,此消息通过topic进行通信,有多个消费端,搜索系统会把索引库进行同步,商品的缓存数据会进行同步、商品详情页面的静态页面会重新生成。 
9.集群环境下的登录问题(单点登录)

原理是不再使用tomcat提供的Session,而是使用redis来模拟Session,一旦用户登录后会生成一个token,类似于jsessionid的功能。访问redis获取用户信息时,key就是token,value就是用户信息。然后把token信息写入cookie中,并且实现cookie可以跨域访问。当需要对用户身份进行验证时,需要先从cookie中把token取出,然后根据token查询redis,来判断用户的登录状态。 
10.购物车是如何实现的

当用户未登陆时,将购物车信息放到cookie中,并设置存活时间,即使关闭浏览器,购物车也不会消失,除非用户自己清理浏览器中的cookie。

当用户登陆时,将购物车信息放到Redis缓存中,下次登陆时,即使换了浏览器或电脑,购物车也不会消失。 
11.如果换电脑,购物车是如何实现的

如果把购物车放到cookie中,更换电脑是不能看到购物车信息的。如果想更换设备实现购物车同,需要把购物车信息保存到redis中。

实现购车商品数据同步:

1、要求用户登录。

2、把购物车商品列表保存到数据库中。推荐使用redis。

3、Key:用户id,value:购物车商品列表。推荐使用hash,hash的field:商品id,value:商品信息。

4、在用户未登录情况下写cookie。当用户登录后,访问购物车列表时,

a) 把cookie中的数据同步到redis。

b) 把cookie中的数据删除

c) 展示购物车列表时以redis为准。

d) 如果redis中有数据cookie中也有数据,需要做数据合并。相同商品数量相加,不同商品添加一个新商品。

5、如果用户登录状态,展示购物车列表以redis为准。如果未登录,以cookie为准。 
12.订单号是怎么生成

所以我们采用redis的incr命令来生成订单号,每次加一。由于redis是单线程的所以使用此命令不会出现重复的订单号,并且可读性好。 使用推特公司的工具类 snowfalke
13.秒杀抢购时库存是如何控制的

把商品的数量放到redis中。秒杀时使用decr命令对商品数量减一。如果不是负数说明抢到。一旦返回数值变为0说明商品已售完。 
14.异常是如何处理















scssscssmixins我在我的日常scss项目中使用。包含各种有用的mixin用于各种事物,例如,在'rem'中生成font-size(代码片段)

查看详情

pmp真的有用么?实际应用都有哪些

PMP(ProjectManagementProfessional)指项目管理专业人士资格认证。美国项目管理协会(PMI)举办的项目管理专业人员PMP认证考试在全球190多个国家和地区推广,是目前项目管理领域含金量最高的认证。在中国被称为继MBA,MPA之后的三... 查看详情

【敏捷实用工具】jira介绍以及使用方法

...的敏捷工具。不同的组织使用JIRA追踪不同的问题。JIRA的项目是根据你的企业组织需要定制的,是问题的集合。例如,一个JIRA项目可以是:一个软件研发项目一项市场推广活动一个技术服务/帮助台系统一个需求管理系统一个网站需... 查看详情

成为专业程序员路上有用的各种优秀资料神器及框架

目录资料篇技术站点必看书籍大牛博客GitHub篇工具篇平台工具常用工具第三方服务爬虫相关(好玩的工具)安全相关Web服务器性能/压力测试工具/负载均衡器大数据处理/数据分析/分布式工具Web前端语言篇ScalaJavaPythonSwift.NETC&C++其... 查看详情

项目介绍怎么写啊

做一份创业项目的介绍项目介绍写法如下:1、介绍项目的背景简单介绍下当前存在的一些问题,以及自己项目能解决哪些问题,哪些技术出现为自己项目的实现提供了可能。2、介绍自己项目的平台以及面向的用户群一个项目都... 查看详情

区块链项目的分类和共识机制介绍

    从目前主流的区块链项目来看,区块链项目主要分为四类:①币类②平台类③应用类④资产代币化。  币类主要充当区块链资产领域的“交换媒介”,交换媒介指一般等价物,比如以前的黄金、银票等;平台项目类是... 查看详情

技术分享|jenkins持续集成体系介绍(代码片段)

...个广泛用于持续构建的可视化Web工具,持续构建包括项目的自动化编译、打包、分发部署。Jenkins可以很好的支持各种语言(比如:Java、C#、PHP等)的项目构建,也完全兼容Ant、Maven、Gradle等多种第三方构建工... 查看详情

kibana-介绍

...仪表板:图形分析功能使您能够发现Elasticsearch索引中的项目是如何相关的。您可以研究索引词汇之间的连接,并查看哪些连接最有意义。这在各种应用程序中都很有用,从欺诈检测到推荐引擎。例如,图形浏览可以帮助您发现... 查看详情

答辩技巧

...用技术分享,都是技术人,懂技术,懂前端-可以讲整个项目的架构、难点、解决问题的方式、代码的稳定性等,这样才能体现技术上的水平 内容进行分类-具有逻辑性全面。比如需要包括工作与成长、认识与思考、未来的规... 查看详情

springboot脚手架项目001__项目介绍技术介绍(代码片段)

SpringBoot、脚手架项目001——Spring的基础文章目录SpringBoot、脚手架项目001——Spring的基础SpringBoot是什么?作用——我们可以把这个项目作为脚手架什么是面向对象编程我们思考Spring框架去解决了一个什么问题呢后话spring全家... 查看详情

软件测试面试如何介绍项目?要做哪些技术准备?

测试人员在找工作中,基本都会碰到让介绍项目的这种面试题,如何正确介绍自己的项目?需要做哪些技术准备?今天这篇文章,围绕这些问题,跟大家一起聊一聊。关于介绍自己的项目,可以从以下... 查看详情

javascript各种-也许有用(代码片段)

查看详情

jenkins各种触发方式介绍

...发构建后执行构建BuildperiodicallyBuildperiodically:周期进行项目构建(它不care源码是否发生变化),我的配置如下:02*** 查看详情

小程序项目介绍(代码片段)

项目介绍搜索页search效果需要完成的部分技术具体操作个人中心页user效果需要完成的部分技术意见反馈页面feedback效果需要完成的部分技术具体操作授权页面auth效果需要完成的部分结算页面pay效果需要完成的部分技术具体操作... 查看详情

小程序项目介绍(代码片段)

项目介绍商品详情页goods_detai效果需要完成的部分技术具体操作购物车页cart效果需要完成的部分技术具体操作收藏页面collect效果需要完成的部分技术具体操作订单页面order效果需要完成的部分技术具体操作总结商品详情页goods_det... 查看详情

项目中另外添加有用的文件:404

404.html:自定义找不到的文件样式robots.txt:搜索引擎访问网站的时候,会首先去查看根目录是否有名为robots的文件,告诉爬虫搜索程序什么文件可以查询,什么文件不能被查询humans.txt:介绍网站信息和团队的信息,可自由发挥,书... 查看详情

springcache简单介绍和使用(代码片段)

...ager (一)创建数据库和表(二)创建boot项目(三)使用Api1、@EnableCaching2、@CachePut3、@cacheable4、@CacheEvict三、使用redis作为cache一、简介SpringCache是一个框架,实现了基于注解的缓存功能ÿ... 查看详情

windowsserver有啥用处啊?

能介绍一些有用电脑知识吗?参考技术A这个是号称微软史上最强的操作系统,它的更新至少在2008年前不会推出,不过这个操作系统不适合普通家庭计算机用,因为“server”就是“服务”的意思,也就是服务器 参考技术B用windowsser... 查看详情