- 博客(138)
- 资源 (6)
- 问答 (1)
- 收藏
- 关注
原创 SpringBoot3集成Spring Authorization Server和Spring Cloud Gateway实现网关统一认证
在微服务开发过程中,通常都会使用Spring Cloud Gateway构建统一的API网关,在访问微服务之前都会先校验访问者是否有权限访问资源,实现方式有很多,这里主要介绍Spring Cloud Gateway集成OAuth2.1如何实现网关统一认证。
2024-09-01 08:00:00 1210
原创 SpringBoot3集成Spring Authorization Server实现SSO单点登录
在之前的文章中介绍过SpringBoot集成OAuth2老版本的方案,随着Spring Authorization Server框架的成熟和SpringBoot版本的更新,新项目必然会采用新的技术和框架,本文将使用最新的SpringBoot版本和JDK17实现SSO单点登录
2024-08-31 20:00:37 1187 1
原创 SpringBoot3集成Spring Authorization Server搭建服务认证中心
OAuth 是描述授权过程的开放标准,它可用于授权用户访问 API,OAuth 授权服务器负责对用户进行身份验证并颁发包含用户数据和适当访问策略的访问令牌
2024-08-31 17:14:01 894
原创 阿里云服务器CentOS7安装MinIO
MinIO是一个开源的分布式对象存储服务器,支持S3协议并且可以在多个节点上实现数据的高可用和容错,采用Go语言开发,拥有轻量级、高性能、易部署等特点,并且可以自由选择底层存储介质
2024-08-12 18:27:31 1082
原创 SpringBoot、SpringCloud、SpringCloud Alibaba版本对应关系
随着SpringBoot和SpringCloud的发展,有些服务进入停更运维状态,一些新的框架出现,在开发微服务的时候不同组件的版本对应关系也是不可忽视的问题,如果版本不对应,可能会出现很多莫名的错误,给开发带来一些不必要的麻烦,进而也会影响项目的开发进度,本文就此对微服务开发常用的三大组件SpringBoot、SpringCloud、SpringCloud Alibaba版本对应关系进行整理。
2024-07-17 10:58:09 1008
原创 PostgreSQL函数和运算符
PostgreSQL为内置的数据类型提供了大量的函数和运算符,用户也可以定义自己的函数和运算符,使用psql命令\df和\do可以列出所有可用的函数和运算符。
2024-05-08 16:51:40 857
原创 PostgreSQL数据类型总结
PostgreSQL数据库相比其他数据库,支持更多的数据类型,包括常用的数值类型、字符串类型、日期/时间类型外,还有几何类型、网络地址类型、xml类型和json类型,且还可以使用CREATE TYPE自行添加数据类型
2024-05-01 19:35:30 3502 1
原创 SpringCloud搭建微服务之Micrometer分布式链路追踪
由于Spring Cloud Sleuth最新版本只支持Spring Boot 2.7.x,核心项目已经迁移到Micrometer Traceing项目,Spring Boot 3.x版本要实现分布式链路追踪需要集成Micrometer
2024-03-18 10:51:17 1535
原创 SpringCloud搭建微服务之Circuit Breaker断路器
Circuit breaker是一套规范和接口,落地实现是Resilience4j,Resilience4j是一个专为函数式编程设计的轻量级容错库,Resilience4j提供高阶函数(装饰器),以通过断路器、速率限制器、重试或隔板增强任何功能接口、lambda表达式或方法引用。可以在任何函数式接口、lambda表达式或方法引用上堆叠多个装饰器,优点是可以选择需要的装饰器
2024-03-14 10:45:01 2242
原创 SpringCloud搭建微服务之Consul服务配置
前面有介绍过Consul既可以用于服务注册和发现,也可以用于服务配置,本文主要介绍如何使用Consul实现微服务的配置中心,有需要了解如何安装Consul的小伙伴,请查阅,这里就不再重复。
2024-02-29 16:28:49 1598
原创 SpringCloud搭建微服务之Consul服务注册与发现
Consul是由HashiCorp公司使用Go语言开发的一款开源工具,主要用于实现分布式系统的服务发现和服务配置,其内置了服务注册与发现框架、分布式一致性协议实现、健康检查、Key-Value存储、多数据中心方案。Consul具有高可移植性,支持Linux、Windows和Max OS X等多个操作系统,其安装包只是一个可执行文件,方便部署,也可与Docker等轻量级容器无缝配合。Consul使用Raft算法来保证一致性,相比使用Paxos算法更简单。
2024-02-29 11:33:04 2029 2
原创 PostgreSQL命令行工具psql常用命令
通常情况下操作数据库使用图形化客户端工具,在实际工作中,生产环境是不允许直接连接数据库主机,只能在跳板机上登录到Linux服务器才能连接数据库服务器,此时就需要使用到命令行工具。psql是PostgreSQL中的一个命令行交互式客户端工具,类似于Oracle数据库中的命令行工具sqlplus,允许用户输入SQL语句或命令,并将其发送给PostgreSQL服务器,再显示SQL语句或命令的执行结果。
2023-08-27 18:22:29 4901
原创 PostgreSQL基本操作总结
安装按PostgreSQL数据库后,会默认创建用户postgres和数据库postgres,这个用户是超级用户,权限最高,可以创建其他用户和权限,在实际开发过程中,会新创建用户和业务数据库
2023-08-20 18:00:15 1185
原创 阿里云ECS服务器安装PostgreSQL
PostgreSQL是一个功能强大的开源数据库,它支持丰富的数据类型和自定义类型,其提供了丰富的接口,可以自行扩展其功能,支持使用流行的编程语言编写自定义函数
2023-08-20 12:06:39 2293 1
原创 SpringBoot2.7集成Swagger3.0和knife4j实现API接口文档开发
Swagger 3 是一个用于描述、构建和测试 RESTful Web 服务的开源工具集。它提供了一种简单而强大的方式来定义和文档化 API 接口,同时还具备自动生成客户端代码和服务器存根代码的功能。Knife4j是一个集Swagger2 和 OpenAPI3为一体的增强解决方案,其前身是swagger-bootstrap-ui。
2023-07-29 10:16:41 3111 3
原创 Win10搭建Nacos2.2.3集群版
Nacos是Alibaba提供的服务注册发现的管理平台,其优异的性能越来越受到广大开发者的喜爱,在构建分布式微服务项目中通常会首选Nacos作为注册/配置中心,在实际开发中为了提升服务的可用性和稳定性,通常都会搭建集群版
2023-05-31 21:48:34 2238 1
原创 SpringBoot集成Mybatis-Plus实现多租户动态数据源
多租户主要的就是租户之间的数据是相互隔离的,每个租户拥有自己独立的数据,相互之间不干扰。每个租户拥有自己单独的数据库,从物理上隔离了自己的数据,安全性最高,但是成本比较高,容易浪费数据库资源每个租户的数据都在同一个数据库里,每个租户拥有一个独立的表,同样也实现了数据的隔离,安全性和成本其次租户使用同一个数据库和同一张表,在每张表里添加进一个字段,例如tenant来区分每个租户的数据,安全性和成本都比较低,维护性也较高,单表的数据量也比较大,给查询和数据迁移都来带了麻烦。
2023-04-13 22:00:00 3667 4
原创 SpringCloud搭建微服务之Gateway+Jwt实现统一鉴权
在微服务项目中,需要对整个微服务系统进行权限校验,通常有两种方案,其一是每个微服务各自鉴权,其二是在网关统一鉴权,第二种方案只需要一次鉴权就行,避免了每个微服务重复鉴权的麻烦,本文以网关统一鉴权为例介绍如何搭建微服务鉴权项目
2023-03-24 11:56:09 4224 2
原创 Idea搭建Spring5.3.x源码阅读环境
Spring是一个轻量级Java开源框架,在Java项目开发过程中已经离不开Spring全家桶了,包括Spring、SpringBoot、SpringCloud等,学习好Spring基础源码也有助于更好在项目中使用Spring相关组件,在学习源码前需要搭建好源码学习环境。
2023-02-20 21:22:16 713
原创 Windows环境下安装和配置Gradle
Gradle是Google公司基于JVM开发的一款项目构建工具,支持Maven,JCenter多种第三方仓库,支持传递性依赖管理,使用更加简洁和支持多种语言的build脚步文件
2023-02-18 11:56:36 3906 1
原创 SpringCloud搭建微服务之Vault密钥管理
Vault是一款管理密钥和保护敏感数据的组件,用于保护、存储和严格控制对令牌、密码、证书和加密密钥的访问,可以使用UI客户端、CLI和HTTP API访问密钥和其他敏感数据
2023-01-31 19:00:00 2338 1
原创 三种限流策略和代码实现
在高并发访问的情况下,通常会通过限流的方式在控制流量访问问题,以保证服务处在正常压力之下,常见的限流策略有计数器限流、漏桶限流和令牌桶限流
2022-12-26 17:59:55 404
原创 Java多线程之线程池
Java高并发应用开发过程中会频繁的创建和销毁线程,为了节约成本和提升性能,往往会使用线程池来统一管理线程,使用线程池主要有以下几点优势降低资源消耗:重复利用已创建的线程降低线程创建和销毁造成的消耗提高响应速度:任务可以不需要等待线程创建就能立即执行提高线程可管理性:线程池会保持一些基本的线程统计信息,以便对线程进行有效管理,使得能对所接收到的异步任务进行高效调度
2022-11-30 19:27:51 916
原创 SpringCloud搭建微服务之OAuth2实现SSO单点登录
SSO单点登录实现方式有多种,在这里不介绍理论,本文只讨论采用spring-security-oauth2来实现,本文共有三个服务,一个权限认证中心,两个客户端
2022-11-28 18:40:06 2117
原创 SpringCloud搭建微服务之OAuth2.1认证和授权
Spring Boot新版本已经不在支持Spring Security OAuth,而是将资源服务和客户端集成到Spring Security 5.2.x版本中,认证服务单独成一个项目为Spring Authorization Server
2022-10-10 06:30:00 6744 13
原创 SpringCloud搭建微服务之OAuth2认证和授权
OAuth2.0是一个标准的授权协议,实际上它是用户资源和第三方应用之间的一个中间层,把资源和第三方应用隔开,使得第三方应用无法直接访问资源,第三方应用要访问资源需要通过提供凭证获得OAuth2.0授权,从而起到保护资源的作用
2022-10-04 20:24:01 3566
原创 SpringCloud搭建微服务之Sleuth分布式请求链路跟踪
Spring Cloud Sleuth是Spring Cloud提供的一套完整的用于分布式系统中服务跟踪解决方案,常用于微服务项目的实时监控和快速定位错误异常。Zipkin用于提供链路追踪的可视化功能,其实现原理是,在服务调用的请求和响应中加入ID,表明上下游请求的关系,利用这些信息,可以可视化地分析服务调用链路和服务间的依赖关系
2022-10-04 06:15:00 897
原创 SpringCloud搭建微服务之Stream消息驱动
Spring Cloud Stream是一个构建消息驱动的微服务框架,屏蔽底层消息中间件的差异,降低切换成本,统一消息的编程模型。应用程序通过inputs或者outputs来与Spring Cloud Stream中binder对象交互,通过配置的binding绑定,其中Spring Cloud Stream的binder对象负责与消息中间件交互,通过使用Spring Integration来连接消息代理中间件以实现消息事件驱动
2022-10-01 10:00:00 677
原创 SpringCloud搭建微服务之Bus消息总线
Spring Cloud Bus是用来将分布式系统的节点与轻量级消息系统链接起来的框架,整合了Java的事件处理机制和消息中间件的功能,目前支持RabbitMQ和Kafka两种消息中间件。其功能是管理和传播分布式系统间的消息,用于广播状态更改、事件推送和微服务间通信通道,配合Spring Cloud Config使用可以实现配置的动态刷新
2022-09-14 18:24:00 993
原创 SpringCloud搭建微服务之Config配置中心
SpringCloud Config分为服务端和客户端两部分,服务端也称为分布式配置中心,它是一个独立的微服务应用,用来连接配置服务器并为客户端提供获取配置信息,加密/解密信息等访问接口。客户端则是通过指定的配置中心来管理应用资源,以及与业务相关的配置内容,并在启动的时候从配置中心获取和加载配置信息
2022-09-13 18:19:15 773
原创 SpringCloud搭建微服务之Gateway网关
Gateway是在Spring生态系统之上构建的API网关服务,旨在提供一种简单而有效的方式来对API进行路由,以及提供一些强大的过滤器功能,基于WebFlux框架实现,而WebFlux框架底层又使用了高性能的Reactor模式通信框架Netty。常用功能有反向代理、鉴权、流量控制、熔断和日志监控
2022-09-12 18:56:08 2480
原创 SpringCloud搭建微服务之Zuul网关
Zuul是一种提供动态路由、监视、弹性、安全性等功能的边缘服务,是一个基于JVM路由和服务端的负载均衡器,在Spring Cloud框架中,Zuul的角色是网关,负责接收所有REST请求,然后进行内部转发,是微服务提供者集群的流量入口
2022-09-02 18:45:00 2141
原创 SpringCloud搭建微服务之Hystrix熔断器
Hystrix是一个用于处理分布式系统的延迟和容错的开源库,在分布式系统中,许多依赖不可避免的会调用失败,比如超时、异常等,Hystrix能够保证在一个依赖出问题的情况下,不会导致整个系统服务失败,避免级联故障发生,以提高分布式系统的弹性。当某个服务发生故障后,通过断路器的故障监控向调用方返回一个符合预期的、可处理的备选响应(FallBack),而不是长时间的等待或者抛出调用方无法处理的异常,这样就保证了服务调用方的线程不会被长时间、不必要地占用,从而避免了故障在分布式系统中的蔓延,乃至雪崩......
2022-08-17 18:43:56 666
原创 SpringCloud搭建微服务之OpenFeign远程调用
Feign是一个声明式WebService客户端,其使用方法是定义一个服务接口,然在接口上添加注解,Spring Cloud对Feign进行了封装,使其支持Spring MVC标准注解和HttpMessageConverters,Feign可以与Eureka和Ribbon组合使用以支持负载均衡......
2022-08-14 10:17:12 516
原创 SpringCloud搭建微服务之Ribbon负载均衡和远程调用
Spring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端负载均衡工具,提供客户端的软件负载均衡算法和服务调用
2022-08-11 09:22:37 465
原创 SpringCloud搭建微服务之Eureka服务注册与发现
有了服务注册中心,就需要服务提供者来给整个微服务集群提供服务了,每一个被Eureka治理的微服务实例都包含一个Eureka Client组件,服务提供者提供一个REST接口给其他服务调用
2022-08-09 19:00:00 274
原创 SpringCloud搭建微服务之Eureka服务注册中心
Eureka采用CS设计架构,Eureka Server作为服务注册功能的服务器,它是服务注册中心,系统中的其他微服务,使用Eureka客户端连接到Eureka Server并维持心跳连接。Eureka包含Eureka Server和Eureka Client两个组件,Eureka Server提供服务注册服务,各个微服务节点通过配置启动后,会在Eureka Server中进行注册,这样Eureka Server中的服务注册表中将会存储所有可用服务节点的信息,这些信息可用再界面直接看到......
2022-08-08 20:00:00 433
原创 Java多线程之四种方法创建线程
创建多线程常用的方法有四种,继承Thread、实现Runnable接口、使用Callable和FutureTask和线程池
2022-07-10 17:00:27 4771
原创 Java多线程之进程和线程
多线程时Java程序运行的基础性机制,常用于高性能、高并发Java程序中。程序是存放在磁盘中的可执行文件,包括代码指令和数据,进程是操作系统管理应用程序的基本单元,是程序的一次启动执行,线程是编写并发程序的基础,是CPU调度的最小单元...
2022-07-10 10:35:28 217
springBoot集成vue-admin-template实现动态路由使用sql
2022-07-18
jenkins部署dockerfile制成的springboot镜像时无法获取容器ID
2022-04-12
TA创建的收藏夹 TA关注的收藏夹
TA关注的人