![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
0.项目难点
文章平均质量分 85
郑学炜
这个作者很懒,什么都没留下…
展开
-
8.利用SpringAOP进行切面编程-利用SpringAOP进行切面编程(登录验证和异常统一处理)
具体做法,就是利用SpringAOP,拦截所有的需要拦截的方法(连接点)行成一个切入点(Pointcut),然后在其前面加入通知(advice就是一些操作),比如我要登录,我的before操作就是查看是否有登录。如果有,就继续执行方法。如果没有,就抛出异常。然后统一拦截异常,进行处理。 下面的例子是,把异常统一拦截后,在后台显示。我想把异常给统一处理,不让它在前端显示。异常统一处理(Control...原创 2018-03-28 09:46:48 · 1151 阅读 · 0 评论 -
2.基于redis异步队列模块(Reactor模式)-线程池还是Redis还是Rabbitmq消息队列作为异步处理的选择
什么情况下的异步操作使用消息队列而不是多线程?1.消息队列和多线程两者并不冲突,多线程可以作为队列的生产者和消费者。使用外部的消息队列时,第一是可以提高应用的稳定性,当程序fail后,写入外部消息队列的数据依旧是保存的,如果使用两步commit的队列的话,可以更加提高这个项目。2. 用线程的话,会占用主服务器资源,消息队列的话,可以放到其他机器上运行,让主服务器尽量多的服务其他请求。3.解耦更充分...原创 2018-04-06 15:44:03 · 2399 阅读 · 1 评论 -
4.秒杀模块-分布式加锁问题-基于Zookeeper解决redis和synchronized的加锁问题
并发处理:1.加synchronized锁单线程处理、缺点: 1.处理速度也会很慢 2.只适合单点的情况3.无法做到细粒度控制2.redis分布式锁:1.可以支撑每秒10多万的并发,2.支持分布式,3.可以更细粒的控制代码(多台机器上多个线程对一个数据进行操作的互斥)SETNX key value将key设置值为value,如果key不存在,这种情况下等同于SET命令,当key存在时,什么也不做...原创 2018-04-09 12:40:00 · 2953 阅读 · 1 评论 -
7.登录系统-单点登录问题-分布式session一致性(即session如何共享)的问题
session的概念 什么是session? 服务器为每个用户创建一个会话,存储用户的相关信息,以便多次请求能够定位到同一个上下文。这样,当用户在应用程序的 Web 页之间跳转时,存储在 Session 对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。当用户请求来自应用程序的 Web 页时,如果该用户还没有会话,则 Web 服务器将自动创建一个 Session 对象。当会话过期或被放...原创 2018-03-31 11:07:48 · 8463 阅读 · 0 评论 -
6.登录系统-单点登录问题-基于redis的单点登录同步登出与帐号退出的功能设计
今天项目做到了基于redis的单点登录登出设计,所以有必要记录一下。重点知识,面试。涉及到的知识点:token,UUID,userID(模仿微信的扫码登录),cookie,redis等什么是SSOSSO英文全称SingleSign On,单点登录。SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。它包括可以将这次主要的登录映射到其他应用中用于同一个用户的登录的机制。它是...原创 2018-03-31 09:00:35 · 5286 阅读 · 1 评论 -
1.基于redis异步队列模块(Reactor模式)-生产者消费者模式
生产者消费者模式之Redis实现的消息队列代码原理Redis提供了两种方式来作消息队列。 一个是使用生产者消费模式模式, 另一个就是发布订阅者模式。 前者会让一个或者多个客户端监听消息队列,一旦消息到达,消费者马上消费,谁先抢到算谁的,如果队列里没有消息,则消费者继续监听。 后者也是一个或多个客户端订阅消息频道,只要发布者发布消息,所有订阅者都能收到消息,订阅者都是平等的。本文采用的是生产者消费者...原创 2018-04-06 15:32:53 · 1927 阅读 · 1 评论 -
5.秒杀模块-基于redis缓存商品秒杀信息
传入:用户电话即可。实现功能:查询是否有预约:Redis查询,若有则可以秒杀,若没有,则去数据库查询,若有预约,则把信息加入Redis。若没有,则返还没有预约信息。查询商品是否已经加入redis: 如果没有,则直接加入,如时间,库存等。在redis查询是否还有库存: 有则抢购成功,扣库存,用redis充当消息队列插入用户秒杀记录,秒杀结束再同步处理(后台线程异步处理...原创 2018-04-08 00:19:01 · 1993 阅读 · 1 评论 -
3.秒杀模块-分布式加锁问题-如何利用Redis分布式锁实现控制并发
redis命令解释说道Redis的分布式锁都是通过setNx命令结合getset来实现的,在讲之前我们先了解下setNx和getset的意思,在redis官网是这样解释的 注:redis的命令都是原子操作SETNX key value(加入没有则设置,有则不设置了)将 key 的值设为 value ,当且仅当 key 不存在。 若给定的 key 已经存在,则 SETNX 不做任何动作。 SETNX...原创 2018-04-08 00:17:35 · 3066 阅读 · 0 评论 -
9.Git的使用总结
总结:其实只需要进行下面几步就能把本地项目上传到Github 1、在本地创建一个版本库(即文件夹),通过git init把它变成Git仓库; 2、把项目复制到这个文件夹里面,再通过git add .把项目添加到仓库; 3、再通过git commit -m "注释内容"把项目提交到仓库; 4、在Github上设置好SSH密钥后,新建一个远程仓库,通过git remot...原创 2018-06-11 20:02:26 · 537 阅读 · 0 评论