
SpringBoot与微服务实践
文章平均质量分 81
本专栏基于SpringBoot2.3.2,配套自己写的代码例子和图例。内容涉及从基础入门到微服务架构的实践,包括基础的配置用法,web,数据库,Redis,也涉及到企业开发的消息队列,Mongodb,ES,Auth2.0,JWT,SpringCloud,Dubbo等,适合作为入门教程
Nicky.Ma
优秀
展开
-
SpringBoot2.0与微服务实践系列教程(本专栏导航)
该教程全面讲解SpringBoot2.0的配置、数据访问、日志处理、Web使用、缓存、消息队列、微服务实践,包括Spring Cloud和Spring Cloud Alibaba,还涵盖单点登录、OAuth2.0、Elasticsearch和任务调度等内容,适合初学者和进阶者。原创 2020-04-10 17:59:07 · 6576 阅读 · 0 评论 -
Spring Cloud Alibaba系列之快速开始搭建Nacos环境
Nacos(官方网站:https://nacos.io)致力于帮助您发现,配置和管理微服务。它提供了一组简单有用的功能,使您能够实现动态服务发现,服务配置管理以及服务和流量管理。Nacos使您可以更轻松快捷地构建,交付和管理微服务平台。它是支持采用微服务或云原生方法的以服务为中心的现代应用程序体系结构的基础架构。原创 2020-12-25 15:55:07 · 3304 阅读 · 0 评论 -
Spring Cloud Alibaba系列之Nacos服务注册与发现
Spring Cloud Alibaba系列之Nacos服务注册与发现,服务注册与发现是微服务架构体系中最关键的组件之一。Spring Cloud Alibaba Nacos Discovery组件提供了服务自动注册到 Nacos 服务端的功能,并且能够动态感知和刷新某个服务实例的服务列表。除此之外,Nacos Discovery 也将服务实例的一些元数据信息,例如 host,port, 健康检查 URL,主页等内容注册到 Nacos原创 2020-12-26 13:32:56 · 2874 阅读 · 2 评论 -
Spring Cloud Alibaba系列之Nacos分布式配置中心
Spring Cloud Alibaba系列之Nacos分布式配置中心,Spring Cloud Alibaba Nacos Config提供用于存储配置和其他元数据的 key/value 存储,为分布式系统中的外部化配置提供服务器端和客户端支持,nacos config是Spring Cloud config Server和config Client的替代方案原创 2021-01-19 16:46:47 · 2847 阅读 · 0 评论 -
Spring Cloud Alibaba系列之分布式服务组件Dubbo
Spring Cloud Alibaba Dubbo是Spring Cloud Alibaba项目中的一个,扩展了分布式服务调用能力,不仅能使 Apache Dubbo 和 OpenFeign 共存,还允许 Spring Cloud 标准调用底层通过 Dubbo 支持的通讯协议传输原创 2021-01-19 17:22:36 · 2797 阅读 · 0 评论 -
Spring Cloud Alibaba系列之服务防护组件Sentinel
SpringCloud Alibaba系列之服务防护组件Sentinel,Sentinel是阿里巴巴开源的一款高可用的分布式防护组件,主要应用于流量控制、流量整形、熔断降级、系统自适应保护、热点防护等多个维度,原生支持 Java/Go/C++ 等多种语言,并且提供Istio/Envoy 全局流控支持来为 Service Mesh 提供高可用防护的能力原创 2021-02-05 17:49:55 · 2378 阅读 · 0 评论 -
Spring Cloud Alibaba系列之分布式事务Seata
Spring Cloud Alibaba系列之分布式事务Seata。Seata是Alibaba开源的一款分布式事务解决方案框架,致力于提供简单易用,高性能的服务。Seata支持多种分布式事务解决方法,比如常见的TCC、XA、SAGA,同时还有独创的AT模式原创 2022-01-07 18:13:48 · 2443 阅读 · 1 评论 -
SpringCloud系列之自定义GatewayFilterFactory
SpringCloud系列之自定义GatewayFilterFactory。客户端请求都会先经过Gateway Handler Mapping,匹配上就通过Gateway Web Handler转给过滤器处理,过滤器分为PreFilter(前置过滤器)、PostFilter(后置过滤器)原创 2021-12-16 19:56:12 · 7135 阅读 · 0 评论 -
SpringCloud系列之API Gateway开发手册(Hoxton版本)
1 什么是API网关?API网关是所有请求的入口,承载了所有的流量,API Gateway是一个门户一样,也可以说是进入系统的唯一节点。这跟面向对象设计模式中的Facet模式很像。API Gateway封装内部系统的架构,并且提供API给各个客户端。它还可能有其他功能,如授权、监控、负载均衡、缓存、请求分片和管理、静态响应处理等原创 2020-09-16 13:30:36 · 5742 阅读 · 6 评论 -
SpringCloud系列之API网关(Gateway)服务Zuul
1、什么是API网关API网关是所有请求的入口,承载了所有的流量,API Gateway是一个门户一样,也可以说是进入系统的唯一节点。这跟面向对象设计模式中的Facet模式很像。API Gateway封装内部系统的架构,并且提供API给各个客户端。它还可能有其他功能,如授权、监控、负载均衡、缓存、请求分片和管理、静态响应处理等API Gateway负责请求转发、合成和协议转换。所有来自客户端的请求都要先经过API Gateway,然后路由这些请求到对应的微服务。API Gateway将经常通过调用多个微原创 2020-08-06 17:38:15 · 5018 阅读 · 0 评论 -
SpringCloud系列使用Netflix Eureka进行服务治理
Spring Cloud是一个分布式的整体解决方案的框架。基于Spring Boot开发。Spring Cloud 为开发者提供了在分布式系统(配置管理,服务发现,负载,网关,消息总线,集群管理,安全管理,分布式锁,分布式事务等等)中快速构建的工具,使用Spring Cloud的开发者可以快速的启动服务或构建应用、同时能够快速和云平台资源进行对接。...原创 2020-07-27 18:29:16 · 3488 阅读 · 2 评论 -
SpringCloud系列之分布式配置中心急速入门教程
分布式微服务项目,就会有很多的模块,比如微服务A、微服务B等等,每个工程都有一套配置文件,随着业务增长,肯定会有很多配置,分散管理,不能实现统一的管理,所以就有了微服务的配置文件统一管理组件,比如spring cloud官方的spring cloud config、携程的 Apollo,还有最近比较火的阿里 nacos,每款产品各有自己的特点,不过本博客只介绍spring cloud config原创 2020-09-09 22:11:26 · 4203 阅读 · 5 评论 -
SpringCloud系列之服务容错保护Netflix Hystrix
1. 什么是雪崩效应?微服务环境,各服务之间是经常相互依赖的,如果某个不可用,很容易引起连锁效应,造成整个系统的不可用,这种现象称为服务雪崩效应。如图,引用国外网站的图例:https://www.javatpoint.com/fault-tolerance-with-hystrix#,如图系统各种服务相互调用,一旦一个服务出现问题,假如系统没有熔断器,很容易影响其它模块使用可用自己画图表示这种情况,如图:A作为服务提供者,B为A的服务消费者,C和D是B的服务消费者。A不可用引起了B的不可用,像滚雪球原创 2020-08-05 16:55:19 · 2822 阅读 · 0 评论 -
SpringCloud系列之声明式服务调用Netflix Feign
在上一章的学习中,我们知道了微服务的基本概念,知道怎么基于Ribbon+restTemplate的方式实现服务调用,接着上篇博客,我们学习怎么基于Feign实现服务调用,请先学习上篇博客,然后再学习本篇博客Feign是一个声明式的web service客户端,它使得编写web service客户端更为容易。创建接口,为接口添加注解,即可使用Feign。Feign可以使用Feign注解或者JAX-RS注解,还支持热插拔的编码器和解码器。环境准备:JDK 1.8SpringBoot2.2.1Spri原创 2020-07-28 14:20:06 · 2655 阅读 · 0 评论 -
SpringCloud系列之客户端负载均衡Netflix Ribbon
负载均衡是一种基础的网络服务,它的核心原理是按照指定的负载均衡算法,将请求分配到后端服务集群上,从而为系统提供并行处理和高可用的能力。提到负载均衡,你可能想到nginx。对于负载均衡,一般分为服务端负载均衡和客户端负载均衡Ribbon 是由 Netflix 发布的负载均衡器,它有助于控制 HTTP 和 TCP 的客户端的行为。Ribbon 属于客户端负载均衡。原创 2020-07-31 17:41:17 · 3972 阅读 · 0 评论 -
SpringCloud系列之@SpringQueryMap传Bean对象数据
在使用Spring Cloud集成的openFeign GET请求调用一些接口,有时候会遇到需要传比较多的参数,所以,我们可以定义一个Bean类,直接丢过去?在spring-cloud-openfeign-core:2.1.0.RELEASE之前版本是不可以支持Bean类直接丢的,所以,只能使用@RequestParam传参数,在spring-cloud-openfeign-core:2.1.0.RELEASE以及之后版本,可以使用提供的@SpringQueryMap注解传一个bean对象过去原创 2022-10-11 08:25:39 · 2517 阅读 · 0 评论 -
OAuth2.0集成SpringSecurity加JWT实现单点登录
单点登录(Single sign on),英文名称缩写SSO,SSO的意思就是在多系统的环境中,登录单方系统,就可以在不用再次登录的情况下访问相关受信任的系统。也就是说只要登录一次单体系统就可以原创 2020-06-03 16:19:24 · 8442 阅读 · 4 评论 -
OAuth2.0系列之使用JWT令牌实践教程(八)
OAuth2.0系列之使用JWT令牌实践教程(八)1、文章前言介绍2、例子实验验证3、功能简单测试OAuth2.0系列博客:OAuth2.0系列之基本概念和运作流程(一)OAuth2.0系列之授权码模式实践教程(二)OAuth2.0系列之简化模式实践教程(三)OAuth2.0系列之密码模式实践教程(四)OAuth2.0系列之客户端模式实践教程(五)OAuth2.0系列之信息数据库存储教程(六)OAuth2.0系列之信息Redis存储教程(七)OAuth2.0系列之JWT令牌实践教程(八)原创 2020-06-17 14:50:22 · 4504 阅读 · 0 评论 -
OAuth2.0系列之信息Redis存储实践(七)
OAuth2.0系列之信息Redis存储教程(七)1 前言介绍2、典型例子实践3、OAuth2.0授权功能简单测试OAuth2.0系列博客:OAuth2.0系列之基本概念和运作流程(一)OAuth2.0系列之授权码模式实践教程(二)OAuth2.0系列之简化模式实践教程(三)OAuth2.0系列之密码模式实践教程(四)OAuth2.0系列之客户端模式实践教程(五)OAuth2.0系列之信息数据库存储教程(六)OAuth2.0系列之信息Redis存储教程(七)OAuth2.0系列之集成JW原创 2020-06-16 18:26:49 · 4070 阅读 · 0 评论 -
OAuth2.0系列之信息数据库存储实践(六)
在前面的学习中,我们配置客户端信息,一般会如下配置,如果有多个客户端的话,就复制一遍,修改一些参数,很显然,这种在生产环境是不适应的,所以Spring Security OAuth2是有提供几种存储方式的,默认是基于内存存储原创 2020-06-16 14:50:18 · 3737 阅读 · 0 评论 -
OAuth2.0系列之客户端模式实践教程(五)
OAuth2.0系列之客户端模式实践教程(五)1、客户端模式简介1.1 前言简介1.2 授权流程图2、例子实践2.1 实验环境准备2.2 OAuth2.0角色2.3 OAuth2.0配置类2.4 Security配置类2.5 功能简单测试OAuth2.0系列博客:OAuth2.0系列之基本概念和运作流程(一)OAuth2.0系列之授权码模式实践教程(二)OAuth2.0系列之简化模式实践教程(三)OAuth2.0系列之密码模式实践教程(四)OAuth2.0系列之集成JWT实现单点登录1、客原创 2020-06-11 16:27:52 · 4186 阅读 · 0 评论 -
OAuth2.0系列之密码模式实践教程(四)
OAuth2.0系列之密码模式实践教程(四)1、密码模式简介1.1 前言简介1.2 授权流程图2、例子实践2.1 实验环境准备2.2 OAuth2.0角色2.3 OAuth2.0配置类2.4 Security配置类2.5 功能简单测试OAuth2.0系列博客:OAuth2.0系列之基本概念和运作流程(一)OAuth2.0系列之授权码模式实践教程(二)OAuth2.0系列之简化模式实践教程(三)OAuth2.0系列之密码模式实践教程(四)OAuth2.0系列之集成JWT实现单点登录1、密码模原创 2020-06-11 15:28:56 · 4589 阅读 · 0 评论 -
OAuth2.0系列之简化模式实践教程(三)
OAuth2.0系列之简化模式实践教程(三)1、授权码模式简介1.1 前言简介1.2 授权流程图2、例子实践2.1 实验环境准备2.2 OAuth2.0角色2.3 OAuth2.0配置类2.4 Security配置类2.5 功能简单测试OAuth2.0系列博客:OAuth2.0系列之基本概念和运作流程(一)OAuth2.0系列之授权码模式实践教程(二)OAuth2.0系列之简化模式实践教程(三)OAuth2.0系列之集成JWT实现单点登录1、授权码模式简介1.1 前言简介在上一篇文章中我原创 2020-06-11 14:14:02 · 3787 阅读 · 0 评论 -
OAuth2.0系列之授权码模式实践教程(二)
OAuth2.0系列之授权码模式(authorization code)实践教程(二)1、授权码模式简介1.1 前言1.2 流程图1、授权码模式简介1.1 前言在上一篇文章中我们学习了OAuth2的一些基本概念,对OAuth2有了基本的认识,接着学习OAuth2.0授权模式中的授权码模式ps:OAuth2.0的授权模式可以分为:授权码模式(authorization code)简化模式(implicit)密码模式(resource owner password credentials)客户原创 2020-06-11 12:53:55 · 5387 阅读 · 0 评论 -
OAuth2.0系列之基本概念和运作流程(一)
OAuth2.0系列之基本概念和运作流程[OAuth 2.0](https://oauth.net/2)是目前最流行的授权机制,用来授权第三方应用> OAuth是一种开放协议, 允许用户让第三方应用以安全且标准的方式获取该用户在某一网站,移动或者桌面应用上存储的秘密的资源(如用户个人信息,照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用。原创 2020-06-04 15:35:33 · 6417 阅读 · 0 评论 -
SpringBoot系列之Spring AI+DeekSeek创建AI应用
随着人工智能技术的飞速发展,AI 已经成为现代软件应用中不可或缺的一部分。从智能对话系统到内容生成工具,AI 的应用场景日益丰富。Spring AI 是 Spring 官方推出的用于简化 AI 集成的框架,而 DeepSeek 是一个强大的 AI 平台,提供了高效、灵活的语言模型和 API 接口。通过将 Spring AI 与 DeepSeek 结合,开发者可以在 Spring Boot 应用中快速实现智能对话、文本生成等 AI 功能。本教程中,我们将详细介绍如何使用 Spring Boot 3.2.原创 2025-03-03 13:54:20 · 1319 阅读 · 0 评论 -
SpringBoot系列之启动成功后执行业务的方法归纳
SpringBoot系列之启动成功后执行业务逻辑。在Springboot项目中经常会遇到需要在项目启动成功后,加一些业务逻辑的,比如缓存的预处理,配置参数的加载等等场景,下面给出一些常有的方法。原创 2023-12-08 20:00:00 · 392 阅读 · 0 评论 -
SpringBoot系列之MongoTemplate加PageHelper分页实现
spring-boot-starter-data-mongodb也有集成基于Spring Data的分页实现,但是习惯了用PageHelper,所以基于PageHelper集成一下mongodb,下面给出实现代码例子原创 2022-11-24 15:16:12 · 2181 阅读 · 1 评论 -
SpringBoot系列之基于MongoRepository实现分页
Spring Data MongoDB项目提供了与MongoDB文档数据库的集成。是Spring Data项目的一个分支。本博客基于Spring Data MongoDB实现,引入项目spring-boot-starter-data-mongodb实现MongoDB的分页,仅供参考原创 2022-12-07 11:42:47 · 1729 阅读 · 1 评论 -
SpringBoot系列之canal和kafka实现异步实时更新
canal是阿里开源的, 对数据库增量日志解析,提供增量数据订阅和消费的组件。引用官网的图片,canal的工作原理主要是模拟 MySQL slave 的交互协议,伪装自己为 MySQL slave,向master发送dump 协议,获取到数据后,解析 binary log 对象数据。原创 2022-01-01 00:16:47 · 1861 阅读 · 0 评论 -
SpringBoot系列之集成阿里canal监听MySQL Binlog
canal是阿里开源的, 对数据库增量日志解析,提供增量数据订阅和消费的组件。引用官网的图片,canal的工作原理主要是模拟 MySQL slave 的交互协议,伪装自己为 MySQL slave,向master发送dump 协议,获取到数据后,解析 binary log 对象数据原创 2022-01-01 00:17:07 · 2534 阅读 · 0 评论 -
SpringBoot系列之集成kafka实现事件发布
Apache Kafka 是一个开源分布式事件流平台,被数千家公司用于高性能数据管道、流分析、数据集成和关键任务应用程序。事件发布订阅实现,我们经常使用到spring框架提供的ApplicationEventPublisher,基于kafka特性,我们也可以简实现类似功能果原创 2022-01-01 00:16:34 · 1507 阅读 · 0 评论 -
SpringBoot系列之Spring Security极速入门与实践教程
Spring Security 是 Spring 家族中的一个安全管理框架,应用程序的两个主要区域是“认证”和“授权”(或者访问控制)。Spring Security是针对Spring项目的安全框架,也是Spring Boot底层安全模块默认的技术选型原创 2020-07-24 17:12:04 · 3102 阅读 · 0 评论 -
SpringBoot系列之Actuator监控管理极速入门与实践
SpringBoot官方提供了spring-boot-starter-actuator场景启动器用于系统的监控管理,可以通过HTTP,JMX,SSH协议来进行操作,自动得到审计、健康及指标信息等原创 2020-07-23 18:12:14 · 4182 阅读 · 0 评论 -
SpringBoot系列之集成Redission入门与实践教程
Redisson是一款基于java开发的开源项目,提供了很多企业级实践,比如分布式锁、消息队列、异步执行等功能。本文基于Springboot2版本集成redisson-spring-boot-starter实现redisson的基本应用原创 2023-11-08 22:36:27 · 764 阅读 · 0 评论 -
SpringBoot系列之集成Redisson实现布隆过滤器
在高并发和大数据量的场景下,布隆过滤器是一种非常高效的存储结构,可以用于快速判断一个元素是否存在于集合中。本文将介绍如何在Spring Boot中集成Redisson来实现布隆过滤器,并通过一个订单查询的示例来展示其应用。原创 2025-04-11 18:20:50 · 633 阅读 · 0 评论 -
SpringBoot系列之搭建WebSocket应用
WebSocket是一种建立在TCP协议上的一种网络协议,与Http协议类似,端口都是80或者443,协议标识符是ws、如果是加密安全的就是wss,这个和http/https有点类似。WebSocket 连接以 HTTP 请求/响应握手开始,连接成功后,客户端可以向服务端发送消息,反之亦可,WebSocket协议支持二进制数据和文本字符串的传输。因为客户端和服务端之间只有一条TCP通信连接,以后所有的请求都使用这条连接,所以Websocket也是属于长连接。原创 2024-06-20 16:49:43 · 449 阅读 · 0 评论 -
SpringBoot系列之前后端接口安全技术JWT
JSON Web令牌(JWT)是一个开放标准(RFC 7519),它定义了一种紧凑且自包含的方式,用于在各方之间安全地将信息作为JSON对象传输。由于此信息是经过数字签名的,因此可以进行验证和信任。可以使用秘密(使用HMAC算法)或使用RSA或ECDSA的公钥/私钥对对JWT进行签名。原创 2020-07-10 14:05:52 · 4036 阅读 · 2 评论 -
SpringBoot系列之自定义枚举类的数据校验注解
SpringBoot系列自定义枚举类的数据校验注解。数据校验,需要对枚举类型的数据传参,进行数据校验,不能随便传参。拓展,支持多个参数的枚举数据校验原创 2021-12-16 19:56:23 · 2573 阅读 · 0 评论 -
SpringBoot系列之集成Scala开发API接口
最近需要用scala去写一些数据同步的程序,结合ETL实现,因为不熟悉scala语法,所以想到scala里结合springboot框架,快速开发,并没有系统学习scala,有些代码可能不够精简,有问题欢迎提出原创 2022-04-21 19:32:03 · 2283 阅读 · 0 评论