自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(132)
  • 资源 (6)
  • 问答 (1)
  • 收藏
  • 关注

原创 PostgreSQL数据类型总结

PostgreSQL数据库相比其他数据库,支持更多的数据类型,包括常用的数值类型、字符串类型、日期/时间类型外,还有几何类型、网络地址类型、xml类型和json类型,且还可以使用CREATE TYPE自行添加数据类型

2024-05-01 19:35:30 994 1

原创 SpringCloud搭建微服务之Micrometer分布式链路追踪

由于Spring Cloud Sleuth最新版本只支持Spring Boot 2.7.x,核心项目已经迁移到Micrometer Traceing项目,Spring Boot 3.x版本要实现分布式链路追踪需要集成Micrometer

2024-03-18 10:51:17 848

原创 SpringCloud搭建微服务之Circuit Breaker断路器

Circuit breaker是一套规范和接口,落地实现是Resilience4j,Resilience4j是一个专为函数式编程设计的轻量级容错库,Resilience4j提供高阶函数(装饰器),以通过断路器、速率限制器、重试或隔板增强任何功能接口、lambda表达式或方法引用。可以在任何函数式接口、lambda表达式或方法引用上堆叠多个装饰器,优点是可以选择需要的装饰器

2024-03-14 10:45:01 1323

原创 SpringCloud搭建微服务之Consul服务配置

前面有介绍过Consul既可以用于服务注册和发现,也可以用于服务配置,本文主要介绍如何使用Consul实现微服务的配置中心,有需要了解如何安装Consul的小伙伴,请查阅,这里就不再重复。

2024-02-29 16:28:49 1266

原创 SpringCloud搭建微服务之Consul服务注册与发现

Consul是由HashiCorp公司使用Go语言开发的一款开源工具,主要用于实现分布式系统的服务发现和服务配置,其内置了服务注册与发现框架、分布式一致性协议实现、健康检查、Key-Value存储、多数据中心方案。Consul具有高可移植性,支持Linux、Windows和Max OS X等多个操作系统,其安装包只是一个可执行文件,方便部署,也可与Docker等轻量级容器无缝配合。Consul使用Raft算法来保证一致性,相比使用Paxos算法更简单。

2024-02-29 11:33:04 1465 2

原创 PostgreSQL命令行工具psql常用命令

通常情况下操作数据库使用图形化客户端工具,在实际工作中,生产环境是不允许直接连接数据库主机,只能在跳板机上登录到Linux服务器才能连接数据库服务器,此时就需要使用到命令行工具。psql是PostgreSQL中的一个命令行交互式客户端工具,类似于Oracle数据库中的命令行工具sqlplus,允许用户输入SQL语句或命令,并将其发送给PostgreSQL服务器,再显示SQL语句或命令的执行结果。

2023-08-27 18:22:29 3179

原创 PostgreSQL基本操作总结

安装按PostgreSQL数据库后,会默认创建用户postgres和数据库postgres,这个用户是超级用户,权限最高,可以创建其他用户和权限,在实际开发过程中,会新创建用户和业务数据库

2023-08-20 18:00:15 1101

原创 阿里云ECS服务器安装PostgreSQL

PostgreSQL是一个功能强大的开源数据库,它支持丰富的数据类型和自定义类型,其提供了丰富的接口,可以自行扩展其功能,支持使用流行的编程语言编写自定义函数

2023-08-20 12:06:39 1913 1

原创 SpringBoot2.7集成Swagger3.0和knife4j实现API接口文档开发

Swagger 3 是一个用于描述、构建和测试 RESTful Web 服务的开源工具集。它提供了一种简单而强大的方式来定义和文档化 API 接口,同时还具备自动生成客户端代码和服务器存根代码的功能。Knife4j是一个集Swagger2 和 OpenAPI3为一体的增强解决方案,其前身是swagger-bootstrap-ui。

2023-07-29 10:16:41 2287 3

原创 Win10搭建Nacos2.2.3集群版

Nacos是Alibaba提供的服务注册发现的管理平台,其优异的性能越来越受到广大开发者的喜爱,在构建分布式微服务项目中通常会首选Nacos作为注册/配置中心,在实际开发中为了提升服务的可用性和稳定性,通常都会搭建集群版

2023-05-31 21:48:34 2110 1

原创 SpringBoot集成Mybatis-Plus实现多租户动态数据源

多租户主要的就是租户之间的数据是相互隔离的,每个租户拥有自己独立的数据,相互之间不干扰。每个租户拥有自己单独的数据库,从物理上隔离了自己的数据,安全性最高,但是成本比较高,容易浪费数据库资源每个租户的数据都在同一个数据库里,每个租户拥有一个独立的表,同样也实现了数据的隔离,安全性和成本其次租户使用同一个数据库和同一张表,在每张表里添加进一个字段,例如tenant来区分每个租户的数据,安全性和成本都比较低,维护性也较高,单表的数据量也比较大,给查询和数据迁移都来带了麻烦。

2023-04-13 22:00:00 3143 4

原创 SpringCloud搭建微服务之Gateway+Jwt实现统一鉴权

在微服务项目中,需要对整个微服务系统进行权限校验,通常有两种方案,其一是每个微服务各自鉴权,其二是在网关统一鉴权,第二种方案只需要一次鉴权就行,避免了每个微服务重复鉴权的麻烦,本文以网关统一鉴权为例介绍如何搭建微服务鉴权项目

2023-03-24 11:56:09 3638

原创 Idea搭建Spring5.3.x源码阅读环境

Spring是一个轻量级Java开源框架,在Java项目开发过程中已经离不开Spring全家桶了,包括Spring、SpringBoot、SpringCloud等,学习好Spring基础源码也有助于更好在项目中使用Spring相关组件,在学习源码前需要搭建好源码学习环境。

2023-02-20 21:22:16 636

原创 Windows环境下安装和配置Gradle

Gradle是Google公司基于JVM开发的一款项目构建工具,支持Maven,JCenter多种第三方仓库,支持传递性依赖管理,使用更加简洁和支持多种语言的build脚步文件

2023-02-18 11:56:36 3674 1

原创 SpringCloud搭建微服务之Vault密钥管理

Vault是一款管理密钥和保护敏感数据的组件,用于保护、存储和严格控制对令牌、密码、证书和加密密钥的访问,可以使用UI客户端、CLI和HTTP API访问密钥和其他敏感数据

2023-01-31 19:00:00 2003 1

原创 三种限流策略和代码实现

在高并发访问的情况下,通常会通过限流的方式在控制流量访问问题,以保证服务处在正常压力之下,常见的限流策略有计数器限流、漏桶限流和令牌桶限流

2022-12-26 17:59:55 346

原创 Java多线程之线程池

Java高并发应用开发过程中会频繁的创建和销毁线程,为了节约成本和提升性能,往往会使用线程池来统一管理线程,使用线程池主要有以下几点优势降低资源消耗:重复利用已创建的线程降低线程创建和销毁造成的消耗提高响应速度:任务可以不需要等待线程创建就能立即执行提高线程可管理性:线程池会保持一些基本的线程统计信息,以便对线程进行有效管理,使得能对所接收到的异步任务进行高效调度

2022-11-30 19:27:51 853

原创 SpringCloud搭建微服务之OAuth2实现SSO单点登录

SSO单点登录实现方式有多种,在这里不介绍理论,本文只讨论采用spring-security-oauth2来实现,本文共有三个服务,一个权限认证中心,两个客户端

2022-11-28 18:40:06 1905

原创 SpringCloud搭建微服务之OAuth2.1认证和授权

Spring Boot新版本已经不在支持Spring Security OAuth,而是将资源服务和客户端集成到Spring Security 5.2.x版本中,认证服务单独成一个项目为Spring Authorization Server

2022-10-10 06:30:00 6103 13

原创 SpringCloud搭建微服务之OAuth2认证和授权

OAuth2.0是一个标准的授权协议,实际上它是用户资源和第三方应用之间的一个中间层,把资源和第三方应用隔开,使得第三方应用无法直接访问资源,第三方应用要访问资源需要通过提供凭证获得OAuth2.0授权,从而起到保护资源的作用

2022-10-04 20:24:01 3299

原创 SpringCloud搭建微服务之Sleuth分布式请求链路跟踪

Spring Cloud Sleuth是Spring Cloud提供的一套完整的用于分布式系统中服务跟踪解决方案,常用于微服务项目的实时监控和快速定位错误异常。Zipkin用于提供链路追踪的可视化功能,其实现原理是,在服务调用的请求和响应中加入ID,表明上下游请求的关系,利用这些信息,可以可视化地分析服务调用链路和服务间的依赖关系

2022-10-04 06:15:00 791

原创 SpringCloud搭建微服务之Stream消息驱动

Spring Cloud Stream是一个构建消息驱动的微服务框架,屏蔽底层消息中间件的差异,降低切换成本,统一消息的编程模型。应用程序通过inputs或者outputs来与Spring Cloud Stream中binder对象交互,通过配置的binding绑定,其中Spring Cloud Stream的binder对象负责与消息中间件交互,通过使用Spring Integration来连接消息代理中间件以实现消息事件驱动

2022-10-01 10:00:00 620

原创 SpringCloud搭建微服务之Bus消息总线

Spring Cloud Bus是用来将分布式系统的节点与轻量级消息系统链接起来的框架,整合了Java的事件处理机制和消息中间件的功能,目前支持RabbitMQ和Kafka两种消息中间件。其功能是管理和传播分布式系统间的消息,用于广播状态更改、事件推送和微服务间通信通道,配合Spring Cloud Config使用可以实现配置的动态刷新

2022-09-14 18:24:00 913

原创 SpringCloud搭建微服务之Config配置中心

SpringCloud Config分为服务端和客户端两部分,服务端也称为分布式配置中心,它是一个独立的微服务应用,用来连接配置服务器并为客户端提供获取配置信息,加密/解密信息等访问接口。客户端则是通过指定的配置中心来管理应用资源,以及与业务相关的配置内容,并在启动的时候从配置中心获取和加载配置信息

2022-09-13 18:19:15 711

原创 SpringCloud搭建微服务之Gateway网关

Gateway是在Spring生态系统之上构建的API网关服务,旨在提供一种简单而有效的方式来对API进行路由,以及提供一些强大的过滤器功能,基于WebFlux框架实现,而WebFlux框架底层又使用了高性能的Reactor模式通信框架Netty。常用功能有反向代理、鉴权、流量控制、熔断和日志监控

2022-09-12 18:56:08 2320

原创 SpringCloud搭建微服务之Zuul网关

Zuul是一种提供动态路由、监视、弹性、安全性等功能的边缘服务,是一个基于JVM路由和服务端的负载均衡器,在Spring Cloud框架中,Zuul的角色是网关,负责接收所有REST请求,然后进行内部转发,是微服务提供者集群的流量入口

2022-09-02 18:45:00 825

原创 SpringCloud搭建微服务之Hystrix熔断器

Hystrix是一个用于处理分布式系统的延迟和容错的开源库,在分布式系统中,许多依赖不可避免的会调用失败,比如超时、异常等,Hystrix能够保证在一个依赖出问题的情况下,不会导致整个系统服务失败,避免级联故障发生,以提高分布式系统的弹性。当某个服务发生故障后,通过断路器的故障监控向调用方返回一个符合预期的、可处理的备选响应(FallBack),而不是长时间的等待或者抛出调用方无法处理的异常,这样就保证了服务调用方的线程不会被长时间、不必要地占用,从而避免了故障在分布式系统中的蔓延,乃至雪崩......

2022-08-17 18:43:56 500

原创 SpringCloud搭建微服务之OpenFeign远程调用

Feign是一个声明式WebService客户端,其使用方法是定义一个服务接口,然在接口上添加注解,Spring Cloud对Feign进行了封装,使其支持Spring MVC标准注解和HttpMessageConverters,Feign可以与Eureka和Ribbon组合使用以支持负载均衡......

2022-08-14 10:17:12 472

原创 SpringCloud搭建微服务之Ribbon负载均衡和远程调用

Spring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端负载均衡工具,提供客户端的软件负载均衡算法和服务调用

2022-08-11 09:22:37 421

原创 SpringCloud搭建微服务之Eureka服务注册与发现

有了服务注册中心,就需要服务提供者来给整个微服务集群提供服务了,每一个被Eureka治理的微服务实例都包含一个Eureka Client组件,服务提供者提供一个REST接口给其他服务调用

2022-08-09 19:00:00 233

原创 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 390

原创 Java多线程之四种方法创建线程

创建多线程常用的方法有四种,继承Thread、实现Runnable接口、使用Callable和FutureTask和线程池

2022-07-10 17:00:27 4503

原创 Java多线程之进程和线程

多线程时Java程序运行的基础性机制,常用于高性能、高并发Java程序中。程序是存放在磁盘中的可执行文件,包括代码指令和数据,进程是操作系统管理应用程序的基本单元,是程序的一次启动执行,线程是编写并发程序的基础,是CPU调度的最小单元...

2022-07-10 10:35:28 180

原创 数据结构学习笔记

数据结构指相互之间存在一种或多种特定关系的数据元素的集合,包括常用的数组、链表、栈、队列、二叉树等

2022-06-26 17:27:54 3386

原创 Sonatype Nexus搭建Maven私服

私服就是企业搭建供内部使用的一个Maven仓库,实现企业内部依赖的共享,具有降低中央仓库负荷、节省外网宽带和提高项目稳定性等优点。实际开发中服务器不能访问公网,可以通过一台能访问外网的服务器作为代理服务器下载需要的依赖。Nexus是Sonatype公司发布的一款仓库管理软件,常用于搭建Maven私服

2022-05-23 19:00:00 3843

原创 Alibaba微服务整合SkyWalking实现应用性能监控

SkyWalking是一个国产的开源框架,用于分布式系统应用程序的性能监控,专门为微服务、云原生架构和基于容器(Docker、K8s、Mesos)架构而设计,包括了分布式追踪、性能指标分析、应用和服务依赖分析等

2022-05-09 21:30:00 1270 1

原创 Alibaba Seata实现分布式事务

Seata是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务,为用户提供AT、TCC、SAGA和XA事务模式,为用户打造一站式的分布式解决方案

2022-05-05 17:19:35 927 1

原创 SpringBoot整合dynamic-datasource实现动态切换多数据源

dynamic-datasource-spring-boot-starter 是一个基于springboot的快速集成多数据源的启动器,具有支持 数据源分组、自定义注解、自定义数据源来源等特性

2022-04-28 07:18:17 1216

原创 SpringBoot集成AbstractRoutingDataSource实现动态切换多数据源

spring-jdbc模块提供了AbstractRoutingDataSource抽象类,其内部可以包含多个DataSource,只需要实现其抽象方法,在运行时就可以动态访问指定的数据库。

2022-04-27 07:12:41 1913 1

原创 SpringBoot整合MyBatis和Druid实现多数据源

在实际开发中,经常会遇到一个应用中可能需要访问多个数据库的情况,典型的使用场景如下:业务复杂,数据量大,需要使用多个数据库;读写分离,提升系统性能

2022-04-27 07:10:04 1360

springBoot集成vue-admin-template实现动态路由使用sql

springBoot集成vue-admin-template实现动态路由所使用的数据库数据sql

2022-07-18

rocketmq-console.zip

RocketMQ安装包和RocketMQ控制台安装包

2021-09-06

rabbitmq_delayed_message_exchange-3.9.0.ez

RabbitMQ延时插件

2021-09-06

erlang-24.0.5-1.el8.x86_64.rpm

安装rabbitmq所需要的环境erlang安装包

2021-09-02

rabbitmq-server-3.9.5-1.el8.noarch.rpm

CentOS安装RabbitMQ所需要的rmp安装包

2021-09-02

java集合(自学整理)

自己学习总结的java常用集合知识

2019-04-03

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

TA关注的人

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