程序员

分享能帮助他人,更能提升自我

Java--SPI机制

SPI(Service Provider Interface)是JDK内置的一种服务提供发现机制。 在平时开发中我们其实已经接触到,只不过一般开发真的用不上,像jdbc、apache logging等都用到SPI机制 这些SPI的接口是由Java核心库来提供,而SPI的实现则是作为Java应用...

2019-06-13 11:54:06

阅读数 27

评论数 0

高并发缓存穿透设计的一些思路

在目前的开发应用中,基本上缓存是标配,而使用的比较多的是redis、memercache等,也有一些本地缓存,比如hashmap、google guava包、spring cache等,或者更好一点的本地作为一级缓存,redis等作为二级缓存,本地缓存数据量较少 @Override publ...

2019-06-12 21:58:36

阅读数 37

评论数 0

基于接口级别的限流

在高并发场景下,不得不说三大利器:缓存、降级、限流 缓存:将数据缓存起来,减少数据库压力,保护DB和磁盘IO 降级:保护核心系统/服务,降低非核心系统业务请求响应,防止请求积压过多引发系统崩溃 限流:在某一时间段内或者某常规时间对请求进行限制访问,保护系统 微服务分布式应用中,限流、权限鉴...

2019-06-01 01:21:39

阅读数 40

评论数 0

Guava Cache本地缓存(LoadingCache)

在开发应用中,避免不了会使用到缓存,分布式缓存一般会用到redis、Memcache等常用,本地缓存像ehcache这种用的也是很多 今天介绍下google guava框架插件提供的LoadingCache本地缓存,LoadingCache和ConcurrentMap差不多,都是线程安全的,只不...

2019-05-31 10:59:47

阅读数 47

评论数 0

Spring Boot、Spring Session、redis实现分布式session共享

Spring Boot版本2.1.1 Spring Cloud版本Greenwich.RELEASE Redis3.2.100一主二从哨兵模式 Spring Session深入详细原理不再本文范畴之内 项目结构采用的maven子父级 pom.xml: <dependen...

2019-05-28 23:43:26

阅读数 44

评论数 0

分布式事务之rabbitMQ最终一致性

一般的大型电商网站都会面临的问题:分布式事务,在面临分布式微服务等项目使用传统的单一事务已经无法满足,解决分布式事务的方案也比较多,有TCC事务补偿(基于2PC的实现)、2PC(两阶段提交)、3PC(三阶段提交)等,框架有JTA atomiks等。很多公司也有自己的分布式事务解决方案,比如最开始支...

2019-05-26 22:56:56

阅读数 40

评论数 0

手写Spring事务

<!-- 配置事物 --> <bean id="dataSourceTransactionManager" class="org.springframework.jdbc.datasource.Data...

2019-05-21 00:15:09

阅读数 15

评论数 0

Spring Cloud Zuul限流

在高并发场景下,往往离不开限流,有基于服务限流、全局限流等,常见的限流算法有漏桶算法和令牌通算法(前一篇文章有讲解) 利用google的Guava框架进行限流,采用的是令牌桶算法,是对java的拓展类库。里面有换一个RateLimiter类 RateLimiterFilter继承ZuulFil...

2019-05-19 18:06:54

阅读数 9

评论数 0

常见限流算法之漏桶算法、令牌桶算法

在大型的网站中,高并发往往不能避免,就会涉及到一定的限流 限流 在系统的每个API以及服务中,每个接口的访问都有一定的上限,当达到接口承受的范围的时候,就有必要采取一定的措施来保证服务的可用性和降级处理,防止超过预期系统压力过大导致瘫痪等。所以对每个服务或者接口进行访问限制,进行拒绝访问、排队...

2019-05-18 21:10:46

阅读数 16

评论数 0

Spring Boot Zuul的鉴权

做一个简单的鉴权 token鉴权,验证token 一般在zuul网关层面进行验证鉴权等操作,除了鉴权,还可以限流、加密等。 继承ZuulFilter, ZuulFilter源码: 实现于IZuulFilter * Copyright 2013 Netflix, Inc. packag...

2019-05-17 01:56:09

阅读数 56

评论数 0

Spring Cloud Zuul网关搭建详解

网关的英文名称:gateway,又叫做网间连接器、协议转换器。网关是在采用不同体系结构或协议的网络之间进行互通时,用于提供协议转换、路由选择、数据交换、日志埋点、负载均衡、容灾、鉴权、限流等网络兼容功能的设施。 后台服务肯定不能暴露在外,而且都是内网,这里的网关就至关重要,为了防止单点故障,...

2019-05-16 00:16:36

阅读数 16

评论数 0

Spring Cloud Zuul ZuulProperties

zuul有默认的配置:ZuulProperties 源码: * Copyright 2013-2017 the original author or authors. package org.springframework.cloud.netflix.zuul.filters; imp...

2019-05-16 00:13:58

阅读数 50

评论数 0

Description: The bean 'proxyRequestHelper', defined in class path resource [org/springframework/clo

配置zuul网关,启动springboot报错 Description: The bean 'proxyRequestHelper', defined in class path resource [org/springframework/cloud/netflix/zuul/ZuulPro...

2019-05-16 00:01:35

阅读数 24

评论数 0

java反射设置属性值和赋值,简单实用

package com.shentb.hmb.utils; import java.lang.reflect.Field; import java.lang.reflect.Method; public class ReflexUtils { /** * 反射根据属性名获取...

2019-05-13 21:33:29

阅读数 19

评论数 0

Spring Cloud eureka开启权限验证登录

spring boot版本2.0.3 pom依赖: <!-- 开启密码访问 --> <dependency> <groupId>org.springframework.boot</...

2019-05-11 21:41:42

阅读数 38

评论数 0

微服务分布式事务详解

在以前传统的web应用当中,一个项目基本一个war/jar包走天下,对于事务处理相信很多的项目基本是使用到的spring的事务处理。但是在当下流行的分布式微服务来说,普通的Spring事务处理已经无法满足场景,Spring事务也是基于jvm级别的,当多个服务系统之间进行调用,进行数据库操作,一旦失...

2019-05-05 23:43:49

阅读数 29

评论数 0

Spring静态注入Bean

Spring依赖注入是基于对象的,static是基于类级别的。所以静态注入在使用的时候会抛出java.lang.NullPointerException空指针运行时异常 使用@PostConstruct方式: 1.对工具类使用@Component 注解 2.@Autowired 注解注入be...

2019-05-05 14:53:53

阅读数 39

评论数 0

JAVA EasyPOI导出,超简单使用

EasyPOI是针对POI进一步的封装 pom.xml添加依赖: <!--easypoi--> <dependency> <groupId>cn.afterturn&a...

2019-05-05 12:53:37

阅读数 108

评论数 0

基于Redis的分布式锁实现

线程锁:大家都不陌生,主要用来给方法、代码块加锁。当某个方法或者代码块使用锁时,那么在同一时刻至多仅有有一个线程在执行该段代码。当有多个线程访问同一对象的加锁方法/代码块时,同一时间只有一个线程在执行,其余线程必须要等待当前线程执行完之后才能执行该代码段。但是,其余线程是可以访问该对象中的非加锁代...

2019-05-04 20:08:59

阅读数 22

评论数 0

spring boot+redis实现token机制

token的意思,即"令牌",有这个令牌就可以进行访问,就具有一定的权限,在传统的应用中,一般是存储于session,但在当下很多分布式微服务的应用中,session就显得力不从心了。当用户第一次登陆之后,服务端生成一个token并返回给客户端,客户端每次以后带着这个token...

2019-05-03 16:46:03

阅读数 68

评论数 0

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