自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 收藏
  • 关注

原创 2020年下半年高级架构设计师​论文

2020年11月7日我参加了高级架构设计师的考证,以前在私企工作时,时间都比较紧,大家都不太会去关注一系列的考证。2018年到了国企工作,有一定的自由时间,为了不在游戏和头条中荒废度日,我决定去考证,一来可以申请减免个税,二来可以加强理论知识的掌握,给自己充充电。 本次高级架构设计师考证下午论文题目之一:论数据库分库常用算法hash算法,一致性算hash法,range分段算法。考后查询了一下资料,我居然答对了,希望自己能过吧。1:什么是hash算法 hash算法...

2020-12-02 11:59:13 252

原创 WebMvcConfigurationSupport 与WebMvcConfigurer冲突不生效案例

@ApiResponse:用于标记API方法的响应信息,包括响应的HTTP状态码、描述和响应数据类型等。* @ApiModelProperty:用于标记API数据模型的字段信息,包括字段的名称、描述和数据类型等。* @ApiOperation:用于标记API方法的信息,包括方法的名称、描述和HTTP方法等。* @ApiModel:用于标记API的数据模型信息,包括数据模型的名称、描述和字段信息等。* @Api:用于标记API的信息,包括API的名称、描述和版本号等。

2023-07-12 17:25:03 953

原创 scrum敏捷开发方法介绍

1:什么是敏捷开发敏捷开发以人为核心,采用迭代、循序渐进的方法进行软件开发。我更赞同这个定义,网络上有的定义强调以用户需求为核心,突出不了人在整个敏捷开发过程的作用,后续的阐述也是围绕着人来阐述的。软件开发不以需求为核心,还以什么为核心呢。2:为什么需要敏捷开发更快更好完成用户需求,快速试错,及时迭代优化。3:敏捷开发的分类及差别现在主流的敏捷开发分为两种:scrum敏捷开发和xp敏捷开发,两者的差别是scrum强调过程,xp强调实践(XP的核心是沟通、简单、反馈、勇气四..

2020-07-23 13:49:30 1358

原创 shiro过滤器失效问题研究

问题背景项目使用了shiro 过滤器拦截请求,做一些限流,鉴权,白名单限制的事情,可是最近在上线一个新功能时,新增了一个拦截路径,上线后,发现部分设置了拦截的路径失效,导致项目回滚问题定位之前在本地开发环境出现过类似问题,怀疑是正则表达式覆盖或者是拦截器排序规则导致,可是查了一堆网上资料,均没有类似情况,加之是本地环境问题,也就草草了之了。今天在线上环境碰到就不得不去查明原因,彻底解决。这...

2019-12-17 14:37:29 3402

原创 接口防刷方法

1:网关控制流量洪峰,对在一个时间段内出现流量异常,可以拒绝请求(参考个人博客文章 https://mp.csdn.net/postedit/81672222)2:源ip请求个数限制。对请求来源的ip请求个数做限制3:http请求头信息校验;(例如host,User-Agent,Referer)4:对用户唯一身份uid进行限制和校验。例如基本的长度,组合方式,甚至有效性进行判断。或者uid具...

2019-01-14 09:51:43 4001

原创 mybatis源码分析之spring加载mapper.xml文件原理解析

首先我们来看看mapper.xml文件的加载方式第一种:基于mapper接口类具体路径配置这种情况下,如果是非注解模式的话xml配置文件必须和这个类在同一级目录,且与Mapper类同名。项目结构类似第二种:基于mapper类所在包的package路径配置  其实这算是第一种的一个变种。一个配置mapper类,每次新加删除比较麻烦,直接扫描mapper类所在包。项目结构类...

2018-08-16 16:39:38 7158

原创 互联网网关设计之限流算法

腾讯王卡业务第一代网关设计架构如上图所示,也许有许多人会问,nginx本身就能做网关了,为什么还需要另外开发网关呢?答案是nginx开发网关,在线现有成员技术背景下,条件不成熟,为了快速构建我们的微服务架构,所以我们选择了基于spring cloud zuul做网关开发,这样技术栈单一,小团队比较合适,运维维护成本较低。网关能给我们带来的好处如下: 客户端认证 无论是对内网还是...

2018-08-14 19:16:39 3634

原创 腾讯王卡运营坑之一:web容器优雅停机缓慢

什么叫做优雅停机:通俗点理解(以tomcat为例),优雅停机就是当tomcat收到停机命令时,tomcat会关闭所有入口(表明我已经要停机了,你们别再来请求我了),同时对已经接受的请求继续完成相应的处理逻辑。当所有的用户定义的线程都处理完成,进程内只剩下daemon线程时,机彻底关机,杀死进程。优雅停机的正确姿势:ps -ef|grep java 找到你需要杀死的pid 假如我...

2018-07-24 19:01:55 744

转载 微服务架构:Eureka参数配置项详解

   Eureka涉及到的参数配置项数量众多,它的很多功能都是通过参数配置来实现的,了解这些参数的含义有助于我们更好的应用Eureka的各种功能,下面对Eureka的配置项做具体介绍,供大家参考。      Eureka客户端配置      1、RegistryFetchIntervalSeconds      从eureka服务器注册表中获取注册信息的时间间隔(s),默认为30秒...

2018-05-29 09:17:37 378

原创 高并发集群服务降级技术架构设计

开发高并发系统时有三把利器用来保护系统:缓存、降级和限流。本文将详细聊聊降级。        为什么需要降级:当访问量剧增、服务出现问题(如响应时间慢或不响应)或非核心服务影响到核心流程的性能时,仍然需要保证服务还是可用的,即使是有损服务。        降级的最终目:保证核心服务可用,即使是有损的。而且有些服务是无法降级的(如加入购物车、结算)         降级预案...

2018-05-11 15:41:13 1853

原创 常见10大web安全防护(一分钟快餐)

今天总结了一下常见web开发安全措施,因个人能力有限,总结如下,如有遗漏或者不全部对之处,欢迎大家公众号留言1:敏感信息加密传输与存储(密码、银行卡号等等)2:表单提交使用POST方式,不使用GET(太简单了,你肯定懂的)3:参数名尽量简短模糊,切记不出现id=。。。,pwd=。。。。id等唯一性记录,不要设计为数值,尽量不作参数传递(防止被遍历1、2、3、4)4:系统交互凭证加密cookie保存...

2018-05-11 15:40:09 1184

原创 系统并发量,由哪些因素决定,99%的人不知道

什么是并发:系统同时处理的 request或者 事务数 我们称之为并发.          然而并发数由什么决定,却是众说纷纭,我归纳总结由以下几个因素共同决定: 因素一:服务器网络带宽 因素二:服务器系统内存(注意是内存不是硬盘哦) 因素三:web容器 因素四:程序代码 1:服务器网络带宽       假如你的服务器带宽是5M,如果你的http求头是8k,那么你的服务器最大并发数是 5M/8k ...

2018-05-11 15:39:24 9504

原创 阿里巴巴java工程师电话面试题(付答案)

一、String,StringBuffer, StringBuilder 的区别是什么?String为什么是不可变的?答:   1、String是字符串常量,StringBuffer和StringBuilder都是字符串变量。后两者的字符内容可变,而前者创建后内容不可变。2、String不可变是因为在JDK中String类被声明为一个final类。3、StringBuffer是线程安全的,而Str...

2018-05-11 15:38:13 7727 2

原创 mysql 字段类型默认长度

今天创建数据库表,一个字段 默认类型是 int(比如  amunt int ),创建表之后变成了 amunt int(11),为啥不是 amunt int(32)呢?网上搜集了一下资料,特作整理介绍如下(以sql为例):首先说一下mysql的数值类型,MySQL支持所有标准SQL数值数据类型。这些类型包括严格数值数据类型(INTEGER、SMALLINT、DECIMAL和NUMERIC),以及近似...

2018-05-11 15:37:06 19204

原创 JVM详解及java 垃圾回收策略

文章开始之前,我们先明确一下两个知识点:java 堆、栈概念 和 java 内存的划分一:java 堆栈概念        从堆和栈的功能和作用来通俗的比较,堆主要用来存放对象的,栈主要是用来执行程序的.而这种不同又主要是由于堆和栈的特点决定的 Heap(堆  Stack(栈)JVM中的功能内存数据区内存指令区存储数据对象实例基本数据类型, 指令代码,常量,对象的引用地址1. 保存对象实例,实际上...

2018-05-11 15:35:50 320

原创 标准SQL匹配和正则表达式匹配

MySQL中的模式匹配分为两种:        一种是标准SQL匹配,另一种是 正则表达式匹配标准SQL匹配,我们通常用的最多的一种方式        a:使用LIKE和NOT LIKE比较操作符(注意不能使用=或!=);         b:模式默认是忽略大小写的;         c:允许使用”_”匹配任何单个字符,”%”匹配任意数目字符(包括零字符); 正则表达式匹配。用的极少,极其影响性能...

2018-05-11 15:32:43 8523

原创 一站解决WEB跨域访问问题

在利用进行软件开发过程中,很多程序猿朋友都会碰到跨域访问问题,现在我们以JSP+Nginx+Tomcat开发的模式来谈谈跨域问题的解决方法。首先我们来描述一下什么是跨域        只要协议、域名、端口有任何一个不同,都被当作是不同的域。       跨域的解决我们可以从三个方向来思考解决,每一块都可以独立的解决问题,如果配置了多处,可能会取到相反的效果(不是双保险哦)第一方向:后端代码层面(以...

2018-05-11 15:32:16 552

原创 SQL语句调优实例锦集

怎样加快查询速度,优化查询效率,主要原则就是应尽量避免全表扫描,应该考虑在 where 及 order by 涉及的列上建立索引。那一个表是不是索引越多越好,建立索引的方法论,也就是原则是什么呢?第一:一个表的索引不是越多越好,没有一个具体数字,根据以往经,一个表的索引最多不超过6个,因为索引越多,对update和insert操作也会有性能的影响,涉及到索引的新建和重建操作。第二:建立索引的方法论...

2018-05-11 15:29:06 329

原创 cookie VS session 你知多少

在web开发中,session是个非常重要的概念。在许多动态网站的开发者看来,session就是一个变量,而且其表现像个黑洞,他只需要将东西在合适的时机放进这个洞里,等需要的时候再把东西取出来。这是开发者对session最直观的感受,但是黑洞里的景象或者说session内部到底是怎么工作的呢?Session是什么    Session一般译作会话,牛津词典对其的解释是进行某活动连续的一段时间。从不...

2018-05-11 15:27:58 526

原创 jdk lock 之ReentrantLock 、AbstractQueuedSynchronizer( AQS)

锁的独占与共享      java并发包提供的加锁模式分为独占锁和共享锁,独占锁模式下,每次只能有一个线程能持有锁,ReentrantLock就是以独占方式实现的互斥锁。共享锁,则允许多个线程同时获取锁,并发访问 共享资源,如:ReadWriteLock。AQS的内部类Node定义了两个常量SHARED和EXCLUSIVE,他们分别标识 AQS队列中等待线程的锁获取模式。     很显然,独占锁是...

2018-05-04 11:19:15 202

原创 jdk之原子类AtomicXXXX

假设你已经阅读并理解和《jdk原子类AtomicXXXX(预备篇)》,基于以上的理解,现在我们一起来研读jdk原子类。jdk原子类的实现方式总体很类似,因此我们选择一个比较具有代表性的AtomicLong来研读,学习就是要做到一通百通。AtomicLong是什么AtomicLong它提供了一些原子性的操作来操作Long类,十分适合在多线程、高并发情况下使用。对Long的操作,不使用AtomicLo...

2018-04-28 12:56:45 435

原创 jdk之原子类AtomicXXXX(预备篇)

    在介绍jdk原子类之前,我们先介绍一个非常重要的知识点:Unsafe类1:Unsafe是什么     Java自己是不能直接访问底层操作系统,如果要访问该怎么办呢?Unsafe类恰恰这个能力,能直接原子性的,硬件级别的提供该能力。    Unsafe类使Java拥有了像C语言的指针一样操作内存空间的能力,同时也带来了指针的问题。过度的使用Unsafe类会使得出错的几率变大,因此Java官方...

2018-04-23 12:06:52 261

原创 LongAdder与AtomicLong

        AtomicLong的原理是依靠底层的cas来保障原子性的更新数据,在要添加或者减少的时候,会使用自循(CLH)方式不断地cas到特定的值,从而达到更新数据的目的。然而在线程竞争激烈的情况下,自循往往浪费很多计算资源才能达成预期效果。       面对自循的缺点,jdk1.8推出了LongAdder类,他的实现方式有点像concurrentHashMap一样,采用空间换时间的方式,...

2018-04-18 10:34:53 604

原创 java 异常处理规范

最近架构升级,对java 异常处理机制做了一定的整理规范是大家一致认可后,并遵循的。附件是我认为合理的异常处理机制,大家可以参考下,提出更合理的建议,我们大家一致遵循,使之成为规范欢迎拍砖1:首先是dao层,一般不做异常的具体处理,直接外网抛/*** */package com.tech.sandu.Exception;import java.sql.SQL

2017-07-01 11:36:28 1398

原创 java+JavaScript 实现 非对称加密 rsa

java侧是这样的package com.tech.sandu.dal.utils;import java.io.ByteArrayOutputStream;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.ObjectInputStream;import ja

2017-06-23 17:57:50 3324 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除