SoringBoot
文章平均质量分 60
codingTop
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
HandlerMethodArgumentResolver存储和获取登录用户信息
一丶传统获取方法在每次controller中接受token,也就是从请求头中获取token,然后调用tokenUtiils进行解析,出相关的用户信息。进行使用可以使用AOP。使用mvc拦截器HandlerInterceptor+方法参数解析器HandlerMethodArgumentResolver二丶自定义拦截器实现HandlerInterceptor在实现过程中,主要复写以下方法,前提是自定义一个注解,然后再我们自定义的拦截器中的前置处理方法中,进行注解识别,当有此注解后被拦截,然后从re原创 2021-07-14 11:29:17 · 669 阅读 · 1 评论 -
RabbitMQ应用问题消息的可靠性保障(消息补偿机制)和幂等性问题(乐观锁解决方案)思路
RabbitMQ应用问题消息的可靠性保障(消息补偿机制)和幂等性问题(乐观锁解决方案)思路一丶可靠性保障消息补偿需求是:想百分百确保消息发送成功方案图示:二丶消息的幂等性保障 幂等性指一次和多次请求某一个资源,对于资源本身应该具有同样的结果。也就是说,其任意多次执行对资源本身所产生的影响均与一次执行的影响相同。 在MQ中指,消费多条相同的消息,得到与消费该消息一...原创 2020-04-09 10:29:45 · 891 阅读 · 0 评论 -
Spring Boot整合rabbitMQ 相关demo
Spring Boot整合rabbitMQ 相关demo 在Spring项目中,可以使用Spring-Rabbit去操作RabbitMQhttps://github.com/spring-projects/spring-amqp 尤其是在spring boot项目中只需要引入对应的amqp启动器依赖即可,方便的使用RabbitTemplate发送消息,使用注解接收消息。一般在开发过程中:...原创 2020-04-09 10:23:03 · 264 阅读 · 0 评论 -
Spring Cloud Bus 解决配置文件实时更新与git仓库同步
Spring Cloud Bus实现不重启服务的情况下,及时更新配置文件。在上一篇博文之后,测试,会发现,当我们修改配置文件的属性值时,项目中并不能及时更新如果想在不重启微服务的情况下更新配置该如何实现呢? 可以使用Spring Cloud Bus来实现配置的自动更新。需要注意的是Spring Cloud Bus底层是基于RabbitMQ实现的,默认使用本地的消息队列服务,所以需要提前启...原创 2020-04-07 10:50:20 · 502 阅读 · 0 评论 -
Spring Cloud Config配置文件分布式配置
Spring Cloud Config分布式配置 在分布式系统中,由于服务数量非常多,配置文件分散在不同的微服务项目中,管理不方便。为了方便配置文件集中管理,需要分布式配置中心组件。在Spring Cloud中,提供了Spring Cloud Confifig,它支持配置文件放在配置服务的本地,也支持放在远程Git仓库(GitHub、码云)。 配置中心本质上也是一个微服务,同样需要注册...原创 2020-04-07 10:48:39 · 270 阅读 · 0 评论 -
Spring Cloud Gateway初识及相关配置
Spring Cloud GatewaySpring Cloud Gateway是Spring官网基于Spring 5.0、 Spring Boot 2.0、Project Reactor等技术开发的网关服务。Spring Cloud Gateway基于Filter链提供网关基本功能:安全、监控/埋点、限流等。Spring Cloud Gateway为微服务架构提供简单、有效且统一的API...原创 2020-04-05 22:44:12 · 680 阅读 · 0 评论 -
nginx限流操作(与网管限流算法不一致)
nginx限流操作一般情况下,首页的并发量是比较大的,即使有了多级缓存,如果有大量恶意的请求,也会对系统造成影响。而限流就是保护措施之一。nginx提供两种限流的方式:一是控制速率控制速率的方式之一就是采用漏桶算法。springcloud限流采用的是令牌桶算法二是控制并发连接数漏桶算法实现 nginx的配置配置示意图如下:修改/usr/local/openresty/nginx...原创 2020-04-01 16:11:15 · 252 阅读 · 0 评论 -
nginx(OpenResty)+lua+redis实现缓存预热或二级缓存查询
nginx(OpenResty)+lua+redis实现缓存预热或二级缓存查询在电商项目中可以用来处理广告的缓存编写lua脚本实现缓存预热(将mysql里的数据查询出来存入redis)图解:编写lua脚本实现二级缓存读取图解:一丶实现缓存预热实现思路:定义请求:用于查询数据库中的数据更新到redis中。(1)连接mysql ,按照广告分类ID读取广告列表,转换为jso...原创 2020-04-01 16:07:01 · 922 阅读 · 0 评论 -
LUA的初步认识使用
LUA的初步认识使用 Lua 是一个小巧的脚本语言。它是巴西里约热内卢天主教大学(Pontifical Catholic University of Rio de Janeiro)里的一个由Roberto Ierusalimschy、Waldemar Celes 和 Luiz Henrique de Figueiredo三人所组成的研究小组于1993年开发的。 其设计目的是为了通过灵活嵌入应...原创 2020-04-01 16:02:39 · 166 阅读 · 0 评论 -
分布式ID生成解决方案(Idworker)
分布式ID生成解决方案 对于互联网应用,某个表可能会占用很大的存储空间,比如电商项目中的订单表,而且在项目部署时,我们会用到数据库分片,把一个数据库进行拆分,通过数据库中间件进行连接,这样的话如果采用数据自增,可能产生重复的ID. 因此,分布式ID生成解决方案应运而生:UUID(缺点,太长,无法排序)优点:简单,代码方便。生成ID性能非常好,基本不会有性能问题。全球唯一...原创 2020-04-01 16:00:32 · 1323 阅读 · 0 评论 -
JWT实现微服务鉴权及工具类提供
JWT实现微服务鉴权及工具类提供 结合上篇对网关的学习,我们使用网关在系统中比较适合进行权限校验,我学习的是JWT方式实现鉴权校验.一丶JWT了解JSON Web Token(JWT)是一个非常轻巧的规范。这个规范允许我们使用JWT在用户和服务器之间传递安全可靠的信息。一个JWT实际上就是一个字符串,它由三部分组成,头部、载荷与签名。头部(Header)头部用于描述关于该JWT的...原创 2020-04-01 15:43:20 · 274 阅读 · 0 评论 -
微服务网关GateWay(含限流)
微服务网关GateWay不同的微服务一般会有不同的网络地址,而外部客户端可能需要调用多个服务的接口才能完成一个业务需求,如果让客户端直接与各个微服务通信,会有以下的问题:客户端会多次请求不同的微服务,增加了客户端的复杂性存在跨域请求,在一定场景下处理相对复杂认证复杂,每个服务都需要独立认证难以重构,随着项目的迭代,可能需要重新划分微服务。例如,可能将多个服务合并成一个或者将一个服务拆分...原创 2020-04-01 15:39:39 · 2551 阅读 · 0 评论 -
SpringCloud之Hystrix熔断器配置
SpringCloud之Hystrix熔断器Hystrix是一个延迟和容错库,用于隔离访问远程服务,防止出现级联失败。Hystrix解决雪崩效应解决办法:线程隔离和服务降级线程隔离:用户请求不直接访问服务,而是使用线程池中空闲的线程访问服务,加速失败判断时间。服务降级:及时返回服务调用失败的结果,让线程不因为等待服务而阻塞。添加依赖 <dependency&...原创 2020-03-31 20:20:38 · 840 阅读 · 0 评论 -
Spring Cloud之负载均衡Ribbon
Spring Cloud之负载均衡Ribbon 负载均衡是一个算法,可以通过该算法实现从地址列表中获取一个地址进行服务调用。在Spring Cloud中提供了负载均衡器:Ribbon.Ribbon提供了轮询、随机两种负载均衡算法(默认是轮询)可以实现从地址列表中使用负载均衡算法获取地址进行服务调用。 为Eureka中已经集成了Ribbon,所以我们无需引入新的依赖。直接修改 consu...原创 2020-03-31 20:17:53 · 143 阅读 · 0 评论 -
SpringCloud之Eueka注册中心
SpringCloud之Eueka注册中心 Eureka的主要功能是进行服务管理,定期检查服务状态,返回服务地址列表。 Eureka架构中的三个核心角色:服务注册中心,服务提供者,服务消费者如图所示:一丶搭建eureka_server工程 Eureka是服务注册中心,只做服务注册;自身并不提供服务也不消费服务。可以搭建web工程使用Eureka,可以使用Spring Boo...原创 2020-03-31 20:15:59 · 382 阅读 · 0 评论 -
分布式文件存储FastDFS(SpringBoot微服务搭建)
分布式文件存储FastDFS(SpringBoot微服务搭建) FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。 FastDFS为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等...原创 2020-03-31 20:04:29 · 853 阅读 · 0 评论 -
SpringBoot之监听机制Listener
SpringBoot之监听机制Listener SpringBoot启动时会对几个监听器进行回调,因此我们可以实现这些监听器接口,在项目启动的时候完成一些操作.ApplicationContextInitializerimport org.springframework.context.ApplicationContextInitializer;import org.springfr...原创 2020-03-23 09:06:38 · 244 阅读 · 0 评论 -
SpringBoot高级监控
SpringBoot高级监控 SpringBoot自带监控功能Actuator,可以帮助实现对程序内部运行情况监控,比如监控状况、Bean加载情况、配置属性、日志信息等。使用的时候导入依赖坐标<dependency> <groupId>org.springframework.boot</groupId> <artifactId&...原创 2020-03-23 09:02:31 · 159 阅读 · 0 评论 -
Spring Boot部署项目两种方式
Spring Boot部署项目SpringBoot默认打包方式为jar包,在打包后,可以放在带有jvm环境的虚拟机上进行运行,使用的是SpringBoot内置的tomcat;java -jar ...jar包名如果要打war包,在外部的tomcat进行部署应该在引导类进行如下操作@SpringBootApplication//继承public class Springboot...原创 2020-03-23 08:51:13 · 149 阅读 · 0 评论 -
SpringBoot之Condition(自动配置)
SpringBoot之Condition(自动配置)一丶简介 开发者可以通过此功能实现选择性的创建Bean操作.二丶自定义条件 定义条件类:自定义类实现Condition接口,重写 matches 方法,在 matches 方法中进行逻辑判断,返回boolean值 。 matches 方法两个参数:context:上下文对象,可以获取属性值,获取类加载器,获取BeanFact...原创 2020-03-22 09:33:00 · 808 阅读 · 0 评论
分享