谁发消息就是消息的生产者,谁接收消息就是消息的消费者MQ是一个消息的中间件,可以实现系统的解耦合的作用
解压成功,配置JDK的环境变量,配置linux上的环境变量需要修改linux系统中的一个配置文件,把我们要配置的环境变量写在里面,就可以了,是在根路径的etc 文件夹中,进入etc文件中 然后在找到profile 文档我们要把环境变量写在这里面 我们编辑profile文档
ActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线。ActiveMQ 是一个完全支持JMS1.1(java消息服务)和J2EE 1.4规范的 JMS Provider实现,尽管JMS规范出台已经是很久的事情了,但是JMS在当今的J2EE应用中间仍然扮演着特殊的地位。
另一种是发布/订阅模式,即一个生产者产生消息并进行发送后,可以由多个消费者进行接收。发送一个消息,有多个接收消息者
Queues:点对点的形式是,如果一个消息你不接收你们它会默认在服务端持久化.一直保存着,没有保存期限,是永久保存,除非是你把这个消息给消费了,然后就没有了
缓存中缓存热点数据,提供缓存的使用率。需要设置缓存的有效期。一般是一天的时间,可以根据实际情况跳转
查看商品详情使用缓存技术,可以在Redis缓存中获取商品详情页面,数据,使用Freemaker页面静态化,展示页面数据,
响应的数据:json数据。e3Result,封装的数据校验的结果true:成功false:失败。
编写Controller层,接收表单的数据,进行操作,把参数传递给Service层进行处理结果
SSO英文全称Single Sign On,单点登录。SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。它包括可以将这次主要的登录映射到其他应用中用于同一个用户的登录的机制。它是目前比较流行的企业业务整合的解决方案
单点登录,我们需要登录的数据放到session中,单点登录我们需要一个session服务器来管理session ,session使用key.value的形式,我们把session放进redis里面去 ,我们在不同的电脑上登录就是不同的session,那我们是怎么区分他是不同的session那,是用sessionid来区分的,我们使用不同的sessionid来区分你是当前的那个会话,我们把sessionid放进cookie中,每次发送请求都会把cookie带入服务端,那我们需要自己生产一个sessionID
我们要保证sessionid不可以重复,这样才能区分各个session才是相互独立的,生成的sessionid要保证不同,可以使用uuid,
还需要判断登录的状态,先从cookie中获取token,判断你当前是否在登录的状态,获取到token以后,还要判断token有没有过期,这时候我们需要调用sso的服务,sso就会根据token来获取redis,把key取出来,那么我们判断一下有没有取到,如果取到啦,那么你是登录状态,进行其他的操作,如果你没有登录去判断你的token,取出来是空,就代表你的key就已经过期了,key一旦过期了,就会从缓存中移除,那么我们就判断你没有登录,然后就跳转到登录页面,让你去登录
查看订单,如果你没有登录,还能查看订单吗?答案是不能,是必须需要你登录, 那如何判断你的登录状态呢,就是从cookie中获取token,这个才是判断你当前是不是登录的标准,从cookie中获取token,还要判断token有没有过期,我们需要调用sso的服务,我们就根据token来获取redis,其实key就是token,那就是根据key来获取value,那我们去判断有没有取到如果取到啦那么你是登录状态,你是登录状态的话,哪我还有重置你的过期时间,你刷新一次也就是相当于重置了一下时间,session过期时间
如果你没有登录判断token,获取token里面的用户信息,如果取出来是空,空说明你的key已经过期啦key一旦过期了,就会从缓存中移除,那么我们就判断你没有登录,然后就跳转到登录页面,让你去登录
js 跨域问题,应该是处于安全考虑 就是说8082下面的js不能访问8088下面的数据,就出现啦跨域问题
什么是跨域呢?域名不同,或者是IP地址不同,还有一种情况,IP地址相同,域名也相同,端口不同也叫跨域
问题:服务接口在sso系统中。localhost:8088),在首页显示用户名称,首页的域名是,使用ajax请求跨域了。
Jsonp不是新技术,跨域的解决方案。使用js的特性绕过跨域请求。Js可以跨域加载js文件。
先定义一个方法,把这个方法名传递给服务端,更具方法名,拼接一个方法调用的语句,相应给浏览器,这个语句会调用这个方法,把我们相应的数据取出来
1.单点登录主要解决的是一个session共享的问题,除了session共享的问题,还有一个注册,登录的页面的实现,和数据的提交,你一但登录的话都会调用单点登录的这个系统,才能进行登录注册,那么我们是怎么解决session共享的问题呢,我们是把session统一管理,如果你要把session统一管理的话,就不能使用tomcat自带的session啦 ,得要自己模拟session ,模拟session就要使用Redis模拟session,如果你要使用Redis模拟session,就设计到一个问题,我们把session放到Redis中,Redis中的key可以是什么?value是什么?,都要考虑清楚,那么这时候我们就应该考虑,key就应该是sessionid,就应该区分每一个session,每一个连接,的session信息都是不一样的,我们应该自己生成一个sessionID,sessionID呢我们管它叫token,那么我们使用UUID来生成不同的sessionID,有啦sessionID以后我们把用户信息就可以放到session中,key就是token,value就是用户信息,绑定以后,我们还要操作session的过期时间,把session对应的过期时在Redis中设置一下,设置完成以后,返回到成功页面,还有一个问题,我们客户端如何识别你到底是哪个session呢,那么我们还要把sessionid返回回去,返回到cookie中,将来我们需要判断用户是否登录,还要在Cookir中获取这个token,获取完之后,还要去单点登录的系统中判断你当前的状态是否在登录的状态
购物车要涉及到登录的业务处理,判断你登录或不登录的情况,登录情况下跟我学然后处理,不登录的情况下购物车然后处理?
业务,我们把商品加入购物车,首先要从cookie中把商品的列表取出来,然后判断购物车是否有商品,如果有就把之前的商品添加到购物车中,
d) 如果redis中有数据cookie中也有数据,需要做数据合并。相同商品数量相加,不同商品添加一个新商品。
Redis:是单线程的,如果请求过来多的话,它只能一个一个的处理,处理起来很慢,在Redis中尽量操作比较小的数据,这样的话就会很快的完成,
我们可以使用 hash的类型来存储购物车中的数据 ,那么hash的key就是用户的id, 一个用户对应一个hash
用户在登录的情况下,我们就把加入的商品添加的到Redis中,没有登录的情况下,就保存到cookie中
但是我们还需要判断用户到底有没有登录,那么就需要去单点登录的系统中去判断用户有没有登录,需要调用单点登录系统中的服务,我们要先获取一个token,就是sessiopID,先获取sessionID,拿到这个token之后我们需要把token拿到服务端去验证,有没有登录如果token都没有取到那就你没有登录,如果取到啦,还需要判断这个session 有没有过期,没有返回就代表session过期啦
* 如果不登录情况下也可以使用购物车,不管你登不登陆,都要让用户使用购物车,所以不管你在什么情况下你都要放行,
* 你要在添加Redis之前判断他是不是登录状态,如果你不判断,所有的购物车都会存放进cookie中,
* 所以要在加入购物车之前,去判断它当前的登录状态 ,如果是登录,我们需要把它放到服务端,如果没有登录需要放进cookie中,
* 所以我们要在添加购物车之前进行拦截操作,不管你是添加,删除,修改,我们都需要对他进行拦截,如果是登录我们就进行另外的处理,不登录时另外一种处理,
* 那么都需要进行来判断你有没有登录,那么我们就使用来实现,单独的把这个处理提出来,就是判断你有没有登录
* 如果不登录情况下也可以使用购物车,不管你登不登陆,都要让用户使用购物车,所以不管你在什么情况下你都要放行,
* 你要在添加Redis之前判断他是不是登录状态,如果你不判断,所有的购物车都会存放进cookie中,
* 所以要在加入购物车之前,去判断它当前的登录状态 ,如果是登录,我们需要把它放到服务端,如果没有登录需要放进cookie中,
* 所以我们要在添加购物车之前进行拦截操作,不管你是添加,删除,修改,我们都需要对他进行拦截,如果是登录我们就进行另外的处理,不登录时另外一种处理,
* 那么都需要进行来判断你有没有登录,那么我们就使用来实现,单独的把这个处理提出来,就是判断你有没有登录
购物车分为两种情况,一种是登录的情况下怎么使用购物车,如果你不登录我们没有办法,把你添加购物车的商品添加到服务端,我们只能放进cookie里面,我们把购物车放进cookie里面我们实现起来就比较简单,不用占用我们服务端的资源,只需要对cookie进行读写就可以啦,但是存储cookie里面,它的存储上限是有限的,不能存的太多,如果你跟换一个设备,购物车里面的数据不能同步,cookie是存在本地的数据,但是它是一种最简单的实现购物车方法,可以在以后的版本中逐步的完善
我们还在登录情况下的购物车的实现,可以使用之前的单点登录系统,实现登录,一但登录成功之后,我们会在cookie里面会有一个token信息,那么我们是如何判断你是登录还是没有登录,是从cookie中的token信息来判断的,判断用户是不是登录,我们是先从cookie中取token,取完token之后,在调用单点登录中的服务来判断你的session是否过期,如果没有过期,就是登录的状态,其他的状态就是未 登录,如果你是登录还是不登录都可以使用购物车,我们写的,只是判断用户是登录还是不登录,里面并没有对用户进行拦截的操作,不管什么情况我们都放行,只不过用户没有登录的话,会走cookie
就是在request对象中看看有没有user对象,在里面我们会把用户对象取出来之后会放在request作用域中,我们只需要在方法里面判断有没有用户信息判断它是不是登录啦,登录之后呢我们会把购物车信息放进Redis中 ,你要把购物车放进Redis 中哪key是什么,key就是用户id,谁登录啦,我就使用是谁当做key,key就是用户id,在保存value的时候,我们知道它里面是商品的列表数据 ,我们使用的是hash类型存储购物车的数据,存取更方便, hash里面的field就是商品的id ,value就是对象,转成json串
还有一种情况,当用户没有等登录的时候,加入购物车商品,但是等一会他有登录,又往购物车添加商品数据,这个时候,就要实现购物车合并,合并啦之后,我们都是以服务端为准,以后再存取购物车的时候 就从服务端取就可以啦
要申请一个能够实现在线支付的平台,必须申请的是一个服务号,不能是订阅号,订阅号不能做支付功能,必须是服务号,还要拿公司的资质去申请,是根据自己的权限来调用接口
如今随着互联网的发展,数据的量级也是撑指数的增长,从GB到TB到PB。对数据的各种操作也是愈加的困难,传统的关系性数据库已经无法满足快速查询与插入数据的需求。这个时候NoSQL的出现暂时解决了这一危机。它通过降低数据的安全性,减少对事务的支持,减少对复杂查询的支持,来获取性能上的提升。
但是,在有些场合NoSQL一些折衷是无法满足使用场景的,就比如有些使用场景是绝对要有事务与安全指标的。这个时候NoSQL肯定是无法满足的,所以还是需要使用关系性数据库。如果使用关系型数据库解决海量存储的问题呢?此时就需要做数据库集群,为了提高查询性能将一个数据库的数据分散到不同的数据库中存储。
一百万条的数据,一个Mysql数据库就可以搞定,查询的效率,但是数据量更多的话,mysql数据库的压力就会变大,上亿条的数据,是承载不住的
Mycat 是基于 cobar 演变而来,对 cobar 的代码进行了彻底的重构,使用 NIO 重构了网络模块,并且优化了 Buffer 内核,增强了聚合,Join 等基本特性,同时兼容绝大多数数据库成为通用的数据库中间件。
·一个新颖的数据库中间件产品支持mysql集群,或者mariadb cluster,提供高可用性数据分片集群。你可以像使用mysql一样使用mycat。对于开发人员来说根本感觉不到mycat的存在。
实现数据库分片,把一个表的内容,分别存放在不同的数据库中,设置配置文件,设置分片规则,根据id的值,来判断数据的存储位置,根据一定的规则来存储数据库的,在我们重查询数据的时候,也会根据这个规则来查询是哪个数据库
数据库读写分离对于大型系统或者访问量很高的互联网应用来说,是必不可少的一个重要功能。对于MySQL来说,标准的读写分离是主从模式,一个写节点Master后面跟着多个读节点,读节点的数量取决于系统的压力,通常是1-3个读节点的配置
),发展快,需求推动技术的革新。②技术范围广:除了java,像淘宝前端还使用了PHP,数据库MySQL或者ora
le,nosql,服务器端使用Linux,服务器安全、系统安全③分布式:以前是在一台机器上做运算,现在是分散到很多机器上,最后汇总起来。(集中式向分布式进行考虑)由需求来推动④高并发、集......
电商的一般架构 一、 电商简介“电商”一词是业内人士对电子商务的简称。广义上讲,电子商务指的是通过电子手段进行的商业活动。通过使用互联网等电子工具,使公司内部、供应商、客户和合作伙伴之间,利用电子业务进行信息共享,实现企业间业务流程的电子化,配合企业内部的电子化生产管理系统,提高企业整体运作的效率。简单的说就是企业利用电子信息在互联网上进行的一系列商务活动,就是电子商务。最...
平台,类似京东商城、天猫商城。网站采用商家入驻的模式,商家入驻平台提交申请,有平台进行资质审核,审核通过后,商家拥有独立的管理后台录入商品信息。商品经过平台审核后即可发布。品优购网上商城主要分为网站前台、运营商后台、商家管理后台三个子系统1.1网站前台主要包括网站首页、商家首页、商品详细页、搜索页、会员中心、订单与支付相关页面、秒杀频道......
系统,其主要目的是在线销售商品和服务,使顾客可以在线浏览和购买商品和服务。系统的用户的IT技能、访问系统的方式差异较大,因此系统的易用性、安全性、兼容性等方面的测试至关重要。系统要求:(1)所有链接都要正确;(
)支持不同移动设备、操作系统和浏览器;(3)系统需通过SSL(即需要通过https)进行访问,没有登录的用户不能访问应用内部的内容。【问题1】简要叙述链接测试的目的以及测试的主要内容。链接测试的目的是确保Web应用功能够成功实现。链接测试主要测试如下3个方面:(1)链...
中让我更加懂得了如何使用数据库,如果通过自己的思维一步一步的实现想要的功能,怎么用debug等调试工具调试自己的错误; 主要是怕以后忘了自己的一些犯错点,所以做一些笔记。 1、首先确定自己要做的是什么,需要哪些东西,需要哪些字段,如何建表。
或者业务所需要考虑的各种问题,其中包括了其行业特性的描述,可增可减,又或者直接套用,具有极高使用价值的方案范文。而且本文以文字表述多,尽量留有插


