自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

程序员

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

  • 博客(22)
  • 资源 (3)
  • 收藏
  • 关注

原创 Guava Cache本地缓存(LoadingCache)

在开发应用中,避免不了会使用到缓存,分布式缓存一般会用到redis、Memcache等常用,本地缓存像ehcache这种用的也是很多今天介绍下google guava框架插件提供的LoadingCache本地缓存,LoadingCache和ConcurrentMap差不多,都是线程安全的,只不过比ConcurrentMap多了一些其他的功能,如过期策略等优点1、线程安全的缓存,与Co...

2019-05-31 10:59:47 2756

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

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

2019-05-28 23:43:26 925

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

一般的大型电商网站都会面临的问题:分布式事务,在面临分布式微服务等项目使用传统的单一事务已经无法满足,解决分布式事务的方案也比较多,有TCC事务补偿(基于2PC的实现)、2PC(两阶段提交)、3PC(三阶段提交)等,框架有JTA atomiks等。很多公司也有自己的分布式事务解决方案,比如最开始支付宝的XTS等像JTA atomiks等2PC的方案效率并不高,中间需要一个协调者,并且是同步的,...

2019-05-26 22:56:56 12386 6

原创 手写Spring事务

<!-- 配置事物 --> <bean id="dataSourceTransactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="...

2019-05-21 00:15:09 469

原创 Spring Cloud Zuul限流

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

2019-05-19 18:06:54 276

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

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

2019-05-18 21:10:46 1313

原创 Spring Boot Zuul的鉴权

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

2019-05-17 01:56:09 4947

原创 Spring Cloud Zuul网关搭建详解

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

2019-05-16 00:16:36 1521

原创 Spring Cloud Zuul ZuulProperties

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

2019-05-16 00:13:58 2512

原创 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/ZuulProxyAutoConfiguration$NoActuatorConfiguration.class],...

2019-05-16 00:01:35 634

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

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

2019-05-13 21:33:29 4409

原创 Spring Cloud eureka开启权限验证登录

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

2019-05-11 21:41:42 5253

原创 微服务分布式事务详解

在以前传统的web应用当中,一个项目基本一个war/jar包走天下,对于事务处理相信很多的项目基本是使用到的spring的事务处理。但是在当下流行的分布式微服务来说,普通的Spring事务处理已经无法满足场景,Spring事务也是基于jvm级别的,当多个服务系统之间进行调用,进行数据库操作,一旦失败就会发现事务会存在严重的问题,举个简单的例子在上图中,为了减轻数据库的压力等,将数据库分成了...

2019-05-05 23:43:49 1086

原创 Spring静态注入Bean

Spring依赖注入是基于对象的,static是基于类级别的。所以静态注入在使用的时候会抛出java.lang.NullPointerException空指针运行时异常使用@PostConstruct方式:1.对工具类使用@Component 注解2.@Autowired 注解注入bean3.@PostConstruct 使用该注解定义init()方法,在方法中给当前对象赋值...

2019-05-05 14:53:53 2758

原创 JAVA EasyPOI导出,超简单使用

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

2019-05-05 12:53:37 6462 2

原创 基于Redis的分布式锁实现

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

2019-05-04 20:08:59 735

原创 spring boot+redis实现token机制

token的意思,即"令牌",有这个令牌就可以进行访问,就具有一定的权限,在传统的应用中,一般是存储于session,但在当下很多分布式微服务的应用中,session就显得力不从心了。当用户第一次登陆之后,服务端生成一个token并返回给客户端,客户端每次以后带着这个token访问即可,无需用户名和密码。token可以防止表单重复提交和身份验证等用途流程: 1、用户...

2019-05-03 16:46:03 6200 3

原创 Spring Boot 返回json数据乱码

第一种解决方式:在请求RequestMapping直接设置,只针对请求,在拦截器返回json数据时有可能乱码@RequestMapping(value ="/user", produces="application/json;charset=UTF-8")第二种方式:不一定有效#解决@ResponseBody中文乱码问题spring: http: encoding...

2019-05-03 14:28:19 4007

原创 spring 在@ResponseBody返回json数据前进行全局处理

第一种:@ControllerAdvice controller增强处理实现ResponseBodyAdvice<Object>,重写方法beforeBodyWritepackage com.pinyu.miniprogram.global.exception;import org.apache.logging.log4j.LogManager;import org...

2019-05-03 14:01:57 1744

原创 Spring Boot设置跨域

跨域是很多应用都会遇到的问题。Spring Boot2.0之前继承WebMvcConfigurerAdapte即可实现@Configurationpublic class CorsConfig extends WebMvcConfigurerAdapter { @Override public void addCorsMappings(CorsRegistry re...

2019-05-03 13:10:14 860

原创 @autowired 无法注入问题整理

今天突然有个朋友在写代码的时候问我,@autowired没注入,截图给我看。我看了看基本也没什么问题,结果截图业务逻辑的时候,居然是new的,肯定空指针列举一般无法注入的情况(只针对spring,dubbo配置等不算在内): 1、spring boot项目启动类入口尽量放在顶级包下,spring会自动扫描子包以及子孙包的bean,基本不会存在无法注入的情况。普通spring项目配置...

2019-05-01 23:58:35 9402 2

原创 error at ::0 formal unbound in pointcut 以及切面返回JSON数据

使用Spring AOP 报错在使用切面的时候,启动报错:error at ::0 formal unbound in pointcut原因在于@Before(value = "pointCut()") @ResponseBody public void doBefore(JoinPoint joinPoint,Exception e) { handleLog(joinPo...

2019-05-01 22:54:59 12897

docker周阳老师的脑图xmind整理

尚硅谷周阳老师docker脑图,整理为xmind版的。视图地址:https://blog.csdn.net/ypp91zr/article/details/88597319

2019-03-16

尚硅谷周阳老师docker视频脑图

尚硅谷周阳老师docker脑图,视图地址:https://blog.csdn.net/ypp91zr/article/details/88597319

2019-03-16

周阳老师SpringCloud脑图

周阳的Spring Cloud脑图,最全面的,先去看下文章是否是自己想要的,我改成了Xmind格式的 地址:https://blog.csdn.net/ypp91zr/article/details/88265425

2019-03-07

空空如也

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

TA关注的人

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