分享传递价值

一个健全的心态比一百种智慧都有力量。

排序:
默认
按更新时间
按访问量

代理模式、JDK动态代理、Cglib动态代理、静态代理

如上图,代理模式可分为动态代理和静态代理,我们比较常用的有动态代理中的jdk动态代理和Cglib代理,像spring中AOP实现即采用了JDK动态代理,下面将结合代码阐述两种代理模式的使用与区别。 静态代理 静态代理的代理对象和被代理对象在代理之前就已经确定,它们都实现相同的接口或继承相同...

2018-08-22 15:14:11

阅读数:37

评论数:0

基于Redis实现分布式Session

常见分布式session会话方案 实现分布式session的方案非常多,选型时需要一种可靠、简单的实现方式,结合我们项目中的使用经验来看,使用基于Redis实现的分布式session方案还是比较靠谱的,同时,项目中还把session信息存储在cookie里面,多一层保障。 基本原理 使用R...

2018-08-16 14:59:46

阅读数:42

评论数:0

基于Zookeeper开源客户端Curator实现分布式锁

分布式锁实现方案 在实际生产中,尤其是分布式环境下,因为我们逻辑真正处理的业务数据是只有一份的,接口并发时势必会出现并发问题,使得业务数据不正确,这个时候就需要一种类似于锁的东西来保证数据的幂等性,比如秒杀业务。实现分布式锁的方式非常多,zookeeper、redis、数据库等均可,如果使用z...

2018-08-15 19:52:47

阅读数:52

评论数:0

Guava RateLimiter实现接口API限流

Guava提供的RateLimiter可以限制物理或逻辑资源的被访问速率,咋一听有点像java并发包下的Samephore,但是又不相同,RateLimiter控制的是速率,Samephore控制的是并发量。RateLimiter的原理类似于令牌桶,它主要由许可发出的速率来定义,如果没有额外的配置...

2018-07-07 11:37:16

阅读数:95

评论数:0

高并发处理之接口限流

最近开发的抢购活动上线后发现了两个比较明显的问题,其一:活动一开始,接口访问量剧增;其二:黑名单中增加了一大批黑名单用户(或者说IP),这其中就包含了一些恶意用户或机器人刷接口。   针对一些高并发的接口,限流是处理高并发的几大利剑之一。一方面,限流可以防止接口被刷,造成不必要的服务层压力,另...

2018-06-13 18:24:56

阅读数:1112

评论数:0

原子操作类AtomicInteger详解

为什么需要AtomicInteger原子操作类?对于全局变量的数值类型操作 num++,若没有加synchronized关键字则是线程不安全的,num++解析为num=num+1,明显,这个操作不具备原子性,多线程时必然会出现问题。不信你看:public class AtomicIntegerTe...

2018-06-08 15:33:17

阅读数:2659

评论数:0

Redis缓存穿透、缓存雪崩、redis并发问题分析

司空见惯把redis作为缓存使用,但是使用redis后也可能会碰到一系列的问题,尤其是数据量很大的时候,经典的几个问题如下:(一)缓存和数据库间数据一致性问题分布式环境下(单机就不用说了)非常容易出现缓存和数据库间的数据一致性问题,针对这一点的话,只能说,如果你的项目对缓存的要求是强一致性的,那么...

2018-06-01 22:16:35

阅读数:1376

评论数:0

深入ConcurrentHashMap实现原理与使用

线程安全的HashMap虽然经常被我们使用,但是也存在两个比较明显的缺点: 线程不安全,效率比较低; 并发编程时容易死循环; 而使用HashTable虽然能解决并发问题,但是由于使用了synchronized来实现锁机制,也使得在并发时读写效率较低。基于以上几点的话,我们会考虑使用Concurre...

2018-05-24 15:52:27

阅读数:113

评论数:0

java内部类详解

定义: 将一个类的定义放在另一个类的内部为什么要内部类?1.内部类提供通向外部类的窗口;2.内部类中定义了和外部类相关的内容,利于维护;3.每个内部类自身都能单独的继承基类或实现接口,而不受外部类的约束;4.围绕第三点来看,内部类从一定程度上解决了java中单继承的限制;内部类经常被使用,例如很多...

2018-05-23 20:11:23

阅读数:139

评论数:0

并发编程之Executor框架(线程池、异步任务)

引言java中经常使用线程来执行需要异步的操作,同时使用线程池来解决创建、销毁线程耗费资源的问题,java线程既是工作单元,也是执行机制。从java1.5开始分离工作单元和执行机制,工作单元包括Runnable和Callable,执行机制则由Executor框架提供。先上代码,再进一步解释所用到的...

2018-04-08 19:07:23

阅读数:82

评论数:0

基于Redis缓存层实现分布式锁

常见分布式锁实现方案 分布式锁原则 1、相互排斥,即任一时刻,只能有一个客户端持有锁; 2、无死锁,持有锁的客户端宕机或网络延迟下仍可获取锁; 3、有始有终,一个客户端加了锁,只能自己释放锁,当然也不能被其他客户端解锁; 4、容错性,只要大部分redis节点还存活,那么客户端就应该可以...

2018-04-03 14:41:45

阅读数:188

评论数:0

Windows下通过cmd查看端口占用、相应进程、杀死进程命令

场景:今天windows里测试es的集群环境,需要临时关闭7200的端口 步骤: 1、通过cmd窗口进入dos命令窗口或者win+r快捷键,输入cmd进入dos窗口; 2、输入命令:netstat -ano,从中查找你需要关闭的端口号; 如果你知道端口号,那你可以直接输入命令:netsta...

2018-09-07 18:26:08

阅读数:21

评论数:0

Java如何处理参数中带特殊符号的请求?

场景:某个活动需要使用二维码来分享活动,引流量入口,我使用google的zxing在服务器生成二维码时候,接口需要接收一个名为url的参数,这个参数的实际取值是个动态链接,比如:http://ac.txqq.com?url=www.baidu.com?simons&toke...

2018-08-30 18:12:02

阅读数:46

评论数:0

MySQL的BTREE索引和HASH索引的区别

重要申明:文章转自https://www.cnblogs.com/hanybblog/p/6485419.html Hash 索引结构的特殊性,其检索效率非常高,索引的检索可以一次定位,不像B-Tree索引需要从根节点到枝节点,最后才能访问到页节点这样多次的IO访问,所以 Hash 索引的查询效...

2018-08-17 17:45:08

阅读数:70

评论数:0

java接口防止XSS攻击的常用方法总结

在前面的一篇文章中,讲到了java web应用程序防止 csrf 攻击的方法,参考这里 java网页程序采用 spring 防止 csrf 攻击. ,但这只是攻击的一种方式,还有其他方式,比如今天要记录的 XSS 攻击, XSS 攻击的专业解释,可以在网上搜索一下,参考百度百科的解释 http:/...

2018-08-16 10:46:38

阅读数:74

评论数:0

解决GitHub访问和下载慢的问题

最近在公司经常需要访问github,不懂是不是由于内网的原因,访问和下载出奇的慢,网上查了查资料设置了下非常有效,这里以Windows为例: 1、浏览器访问https://www.ipaddress.com/,分别输入github.com和github.global.ssl.fastly.net...

2018-08-08 15:35:02

阅读数:85

评论数:0

解决:ElasticsearchException[X-Pack is not supported and Machine Learning is not available for

最近在安装Elasticsearch-6.3.2时(windows平台),启动Elasticsearch,点击bin/elasticsearch.bat,启动报错: ElasticsearchException[X-Pack is not supported and Machine Learn...

2018-08-02 14:35:26

阅读数:285

评论数:0

Zuul的容错回退与高可用

zuul的容错与回退 之前说到过,使用Hystrix实现微服务的容错与回退,其实Zuul默认已经整合了Hystrix,使用起来也是比较简单: 在原有 zuul-gateway 项目的基础上新增,实现ZuulFallbackProvider接口,并实现getRoute和fallbackRespo...

2018-07-30 11:24:44

阅读数:66

评论数:0

Zuul过滤器

Zuul的github:https://github.com/Netflix/zuul 一系列的过滤器是zuul的核心,zuul的很多功能都是通过过滤器来实现的。在zuul的世界里定义了四种标准过滤器类型,这四种过滤器分别对应着请求的生命周期: pre:此种过滤器在请求被路由之前执行,显然...

2018-07-27 16:20:49

阅读数:36

评论数:0

使用Zuul构建微服务网关

Zuul的github:https://github.com/Netflix/zuul 之前没有使用网关的微服务可能存在的问题? 客户端直接和微服务交互,增加了复杂度; 某些场景下可能存在跨域; 如果一个功能点需要调用多个微服务,每个服务都需要身份认证,使得身份验证...

2018-07-26 14:57:06

阅读数:76

评论数:0

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