简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
当采用分布式、微服务的架构模式开发系统中,服务网关是整个系统中必不可少的一部分。Spring Cloud Gateway 是 Spring 公司基于 Spring 5.0, Spring Boot 2.0 和 Project Reactor 等技术开发的网关,它旨在为微服务架构提供一种简单有效的统一的 API 路由管理方式。
文件的上传与下载在实际项目中用得挺多,所以,今天就在这里总结下。这篇博客不仅仅是完成一个文件上传/下载的功能,更重要的是规范编码吧:日志记录、入参/返参校验、方法职责单一等。开发环境:1.IDEA 2020.22.Maven 3.6.03.SpringBoot 2.0.0.RELEASE1. 单个文件的上传新建一个 SpringBoot 工程,工程结构图如下:POM 依赖:<dependen
Zipkin 是一种分布式链路跟踪系统,能够收集微服务运行过程中的实时调用链路信息,并能够将这些调用链路信息展示到 Web 界面上供开发人员分析,开发人员能够从 ZipKin 中分析出调用链路中的性能瓶颈,识别出存在问题的应用程序,进而定位问题和解决问题。
这里,我们通过修改订单微服务的代码来实现自定义负载均衡。由于在整个项目中,订单微服务作为客户端存在,由订单微服务调用用户微服务和商品微服务,所以,这里采用的是客户端负载均衡的模式。
自定义一个限流用的注解,后面在需要限流的方法或接口上面只需添加该注解即可// 限制类型 String limitType();// 每秒 5 个请求 double limitCount() default 5d;// 限制类型 String resourceName();// 每秒 5 个 int limitCount() default 5;
美团技术团队-缓存那些事是 Google 开发的 Guava 工具包中一套完善的JVM 本地缓存框架,底层实现的数据结构类似于,但是进行了更多的能力拓展,包括缓存过期时间设置、缓存容量设置、多种淘汰策略、缓存监控等。是一个支持高并发的线程安全的本地缓存。多线程情况下也可以安全的访问或者更新Cache。这些都是借鉴了支持最大容量限制支持两种过期删除策略(插入时间和读取时间)支持简单的统计功能基于 L
举个例子:业务系统的用户需要保证其唯一性,用户属性不能与其他用户产生冲突,不允许与数据库中任何已有用户的用户名称、手机号码、邮箱产生重复。如:保存 User 的时候,userId 是可空的,但是更新 User 的时候,userId 的值必须 >= 1L;接口的第一个参数是 自定义注解类型,第二个参数是 被注解字段的类,因为需要校验多个参数,我们直接传入用户对象。在日常的开发中,为了防止非法参数对业
先了解一下基本概念1. 程序、进程、线程程序、进程、线程程序(静态):为完成特定的任务,用某种语言编写的一组指令的集合。即:一段静态的代码进程(动态):程序的一次执行的过程,或者是正在执行的一个程序。它是一个动态的过程,它有自己的生命周期:产生、存在、消亡。如:运行中的 QQ进程作为资源分配的单位,系统在运行时会为每个进行分配不同的内存区域线程:进程可进一步细化为线程,是一个程序内部的一条执行路径
消息队列需要满足的要求:Redis 提供了三种不同的方式来实现消息队列:因为 list 底层的实现就是一个「链表」,在头部和尾部操作元素,时间复杂度都是 O(1),这意味着它非常符合消息队列的模型如果你的业务需求足够简单,想把 Redis 当作队列来使用,肯定最先想到的就是使用 list 这个数据类型常用的命令:生产者:消费者:这个模型非常简单,如下图:当队列中已经没有消息了,消费者在执行 RPO
是 Google 开发的 Guava 工具包中一套完善的JVM 本地缓存框架,底层实现的数据结构类似于,但是进行了更多的能力拓展,包括:缓存过期时间设置、缓存容量设置、多种淘汰策略、缓存监控等。是一个支持高并发的线程安全的本地缓存。多线程情况下也可以安全的访问或者更新 Cache,这些都是借鉴了的结果支持最大容量限制支持两种过期删除策略(插入时间和读取时间)支持简单的统计功能基于 LRU 算法实现