摘要: 1. MVC使用 在研究源码之前,先来回顾以下springmvc 是如何配置的,这将能使我们更容易理解源码。 1.1 web.xml <servlet> <servlet-name>mvc-dispatcher</servlet-name> <servlet-class>org.springfram 阅读全文
posted @ 2020-12-01 17:48 苏先生139 阅读(204) 评论(0) 推荐(0) 编辑
摘要: 主要是关于ActiveMQ集群,这里采用的方式是:Zookeeper+LevelDB+ActiveMQ。 利用Zookeeper实现ActiveMQ的高可用话不多说,先来看一张ActiveMQ官方提供的架构图: Master/Slave broker的信息要注册到ZK 注意到只有Master对外提供 阅读全文
posted @ 2020-12-01 17:41 苏先生139 阅读(126) 评论(0) 推荐(0) 编辑
摘要: 本篇主要讨论的话题是:消息的顺序消费、JMS Selectors、消息的同步/异步接受方式、Message、P2P/PubSub、持久化订阅、持久化消息到MySQL以及与Spring整合等知识。 消息的顺序消费 在上一篇文章中,我们已经明确知道了ActiveMQ并不能保证消费的顺序性,即便我们使用了 阅读全文
posted @ 2020-12-01 17:34 苏先生139 阅读(111) 评论(0) 推荐(0) 编辑
摘要: JMS 首先来说较早以前,也就是没有JMS的那个时候,很多应用系统存在一些缺陷: 1.通信的同步性 client端发起调用后,必须等待server处理完成并返回结果后才能继续执行 2.client 和 server 的生命周期耦合太高 client进程和server服务进程都必须可用,如果serve 阅读全文
posted @ 2020-12-01 17:21 苏先生139 阅读(123) 评论(0) 推荐(0) 编辑
摘要: 初探JWT 什么是JWT JWT(Json Web Token),是一种工具,格式为XXXX.XXXX.XXXX的字符串,JWT以一种安全的方式在用户和服务器之间传递存放在JWT中的不敏感信息。 为什么要用JWT 设想这样一个场景,在我们登录一个网站之后,再把网页或者浏览器关闭,下一次打开网页的时候 阅读全文
posted @ 2020-12-01 17:09 苏先生139 阅读(769) 评论(0) 推荐(0) 编辑
摘要: 用户权限管理一般是对用户页面、按钮的访问权限管理。Shiro框架是一个强大且易用的Java安全框架,执行身份验证、授权、密码和会话管理,对于Shiro的介绍这里就不多说。本篇博客主要是了解Shiro的基础使用方法,在权限管理系统中集成Shiro实现登录、url和页面按钮的访问控制。 一、引入依赖 使 阅读全文
posted @ 2020-12-01 16:56 苏先生139 阅读(480) 评论(0) 推荐(0) 编辑
摘要: 术语描述 用户(Subject):发起操作的主体 对象(Object):指操作所针对的客体对象,比如文章或评论 权限(Permission):用来指代对某种对象的某一种操作,例如“添加文章的操作” 权限码:权限的代号,例如用“ARTICLE_ADD”来指代“添加文章的操作”权限 权限有时候也可以称为 阅读全文
posted @ 2020-12-01 16:41 苏先生139 阅读(846) 评论(0) 推荐(0) 编辑
摘要: 一、前言 为什么会产生这个需求呢? 我们公司作为乙方,老是被客户追着要一份API文档,当我们把一个 Swagger 文档地址丢给客户的时候。客户还是很不满意,嫌不够正式!!死活坚持要一份 word 文档 。然后领导给了个接口模板,就把这个活交给我了……我去,近10个微服务,几百个接口,这不得要了我的 阅读全文
posted @ 2020-12-01 16:25 苏先生139 阅读(738) 评论(0) 推荐(0) 编辑
摘要: 通常系统都会限制同一个账号的登录人数,多人登录要么限制后者登录,要么踢出前者,Spring Security 提供了这样的功能,本文讲解一下在没有使用Security的时候如何手动实现这个功能 本文借鉴了 https://jinnianshilongnian.iteye.com/blog/20397 阅读全文
posted @ 2020-12-01 16:16 苏先生139 阅读(415) 评论(0) 推荐(0) 编辑
摘要: 1、什么是跨域 由于浏览器同源策略(同源策略,它是由Netscape提出的一个著名的安全策略。现在所有支持JavaScript 的浏览器都会使用这个策略。所谓同源是指,域名,协议,端口相同。),凡是发送请求url的协议、域名、端口三者之间任意一与当前页面地址不同即为跨域。 具体可以查看下表: 2、s 阅读全文
posted @ 2020-12-01 14:00 苏先生139 阅读(470) 评论(0) 推荐(0) 编辑
摘要: 最近遇到了这么一个情况,数据库里面的数据由于长期的堆积,导致数据量不断的上升,而后台的系统每次进行分页查询的时候,效率都会降低很多。后来查看了一下之后,发现此时的分页原理主要是采用了传统的物理分页 limit n,m 的方式。 为了方便演示,我特意创建了以下几张表进行实例演练: 表分别是商品表,用户 阅读全文
posted @ 2020-12-01 13:41 苏先生139 阅读(694) 评论(0) 推荐(0) 编辑
摘要: 前言 在Spring中使用MyBatis的Mapper接口自动生成时,用一个自定义的注解标记在Mapper接口的方法中,再利用@Aspect定义一个切面,拦截这个注解以记录日志或者执行时长。 但是惊奇的发现这样做之后,在Spring Boot 1.X(Spring Framework 4.x)中,并 阅读全文
posted @ 2020-12-01 11:30 苏先生139 阅读(2073) 评论(0) 推荐(0) 编辑
摘要: 前言 本篇文章主要介绍的是SpringBoot整合Netty以及使用Protobuf进行数据传输的相关内容。Protobuf会简单的介绍下用法,至于Netty在之前的文章中已经简单的介绍过了,这里就不再过多细说了。 Protobuf 介绍 protocolbuffer(以下简称PB)是google 阅读全文
posted @ 2020-12-01 11:18 苏先生139 阅读(3056) 评论(1) 推荐(0) 编辑
摘要: 远程过程调用简单来说就是调用远程的服务就像调用本地方法一样,其中用到的知识有序列化和反序列化、动态代理、网络传输、动态加载、反射这些知识点。 发现这些知识都了解一些。所以就想着试试自己实现一个简单的RPC框架,即巩固了基础的知识,也能更加深入的了解RPC原理。当然一个完整的RPC框架包含了许多的功能 阅读全文
posted @ 2020-12-01 11:07 苏先生139 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 前言:在分布式环境中,我们经常使用锁来进行并发控制,锁可分为乐观锁和悲观锁,基于数据库版本戳的实现是乐观锁,基于redis或zookeeper的实现可认为是悲观锁了。乐观锁和悲观锁最根本的区别在于线程之间是否相互阻塞。 那么,本文主要来讨论基于redis的分布式锁算法问题。 从2.6.12版本开始, 阅读全文
posted @ 2020-12-01 10:57 苏先生139 阅读(115) 评论(0) 推荐(0) 编辑
摘要: .什么是幂等 在我们编程中常见幂等 select查询天然幂等 delete删除也是幂等,删除同一个多次效果一样 update直接更新某个值的,幂等 update更新累加操作的,非幂等 insert非幂等操作,每次新增一条 2.产生原因 由于重复点击或者网络重发 eg: 点击提交按钮两次; 点击刷新按 阅读全文
posted @ 2020-12-01 10:52 苏先生139 阅读(476) 评论(0) 推荐(0) 编辑
摘要: 其中有一个功能叫做领劵的订阅推送。什么是领劵的订阅推送?就是用户订阅了该劵的推送,在可领取前的一分钟就要把提醒信息推送到用户的app中。本来这个订阅功能应该是消息中心那边做的,但他们说这个短时间内做不了。所以让我这个负责优惠劵的做了-.-!。 具体方案就是到具体的推送时间点了,coupon系统调用消 阅读全文
posted @ 2020-12-01 10:45 苏先生139 阅读(127) 评论(0) 推荐(0) 编辑
摘要: 这篇将给大家带来更多的细节实现。我将从三个方面来阐述如何构建一个完整可靠的IM系统。 可靠性 安全性 存储设计 可靠性 什么是可靠性?对于一个IM系统来说,可靠的定义至少是不丢消息、消息不重复、不乱序,满足这三点,才能说有一个好的聊天体验。 不丢消息 我们先从不丢消息开始讲起。 首先复习一下上一篇设 阅读全文
posted @ 2020-12-01 09:34 苏先生139 阅读(378) 评论(0) 推荐(0) 编辑
摘要: 前言 首先讲讲IM(即时通讯)技术可以用来做什么: 聊天:qq、微信 直播:斗鱼直播、抖音 实时位置共享、游戏多人互动等等 可以说几乎所有高实时性的应用场景都需要用到IM技术。 本篇将带大家从零开始搭建一个轻量级的IM服务端,麻雀虽小,五脏俱全,我们搭建的IM服务端实现以下功能: 一对一的文本消息、 阅读全文
posted @ 2020-12-01 09:28 苏先生139 阅读(978) 评论(0) 推荐(0) 编辑
摘要: 在单机版的Springboot+Shiro的基础上,这次实现共享Session。这里没有自己写RedisManager、SessionDAO。用的 crazycake 写的开源插件 pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xml 阅读全文
posted @ 2020-12-01 09:15 苏先生139 阅读(1209) 评论(0) 推荐(0) 编辑