自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Welcome,Everyone.

个人博客:tainfei.top

  • 博客(46)
  • 收藏
  • 关注

原创 Spring Cloud Sleuth 分布式链路请求跟踪的配置与实现

Spring Cloud Sleuth 分布式链路请求跟踪一、什么是 Sleuth 分布式链路请求跟踪何为 zipkin二、zipkin server 的安装与搭建zipkin 完整调用链路三、Sleuth 链路监控展现的实现一、什么是 Sleuth 分布式链路请求跟踪官网:https://github.com/spring-cloud/spring-cloud-sleuth在微服务框架中,一个由客户端发起的请求在后端系统中会经过多个不同的的服务节点调用来协同产生最后的请求结果,每一个请求都会形成一

2022-01-27 17:44:14 644

原创 Spring Cloud Stream 消息驱动的配置与使用

Spring Cloud Stream 消息驱动的配置与使用一、什么是 Stream 消息驱动二、Spring Cloud Stream 消息驱动的设计思想为什么用 Spring Cloud Stream 消息驱动Stream 凭什么可以统一或屏蔽底层差异?Spring Cloud Stream 消息驱动的工作流程三、快速构建消息驱动生产者、消费者(集群)1、构建消息驱动之生产者2、消息驱动之消费者3、故障1:重复消费问题(重点)Stream 消息分组(Group)解决重复消费问题4、故障2:消息错过Str

2022-01-27 17:26:42 3127

原创 Spring Cloud Config 分布式配置中心与 Spring Cloud Bus 消息总线的使用与配置实现

Spring Cloud Config 分布式配置中心与 Spring Cloud Bus 消息总线的使用与配置实现Spring Cloud Config 分布式配置中心一、什么是 Config 分布式配置中心二、为啥会出现 Config 配置中心三、使用 Spring Cloud Config 的好处四、Config 服务端配置与测试补充:配置文件的读取规则五、Config 客户端配置与测试补充:关于 bootstrap.yml六、config 客户端之动态刷新——手动版Spring Cloud Bus

2022-01-27 17:09:08 828

原创 【基础篇】新一代网关 Spring Cloud Gateway 工作原理与具体各项配置实现

新一代网关 Spring Cloud Gateway一、什么是 Gateway二、能干啥三、微服务架构中网关在哪里四、为什么选择 Gateway五、Gateway 与 Zuul 的区别(技术选型)Zuul 1.x 的模型Gateway 的模型六、网关中的三大核心概念1、Route(路由)2、Predicate(断言)3、Filter(过滤)七、Gateway 网关的工作流程八、如何搭建一个简单的 Gateway 网关微服务模块路由转发的两种实现方式:十、常用的九种类型 Predicate 断言的配置实现十一

2022-01-14 16:20:34 1263

原创 【原理与实操】Hystrix 服务降级、服务熔断工作原理、代码实现详解以及DashBoard 仪表盘监控的具体使用

Hystrix一、什么是 HystrixHystrix是一个用于处理分布式系统的延迟和容错的开源库,在分布式系统里,许多依赖不可避免的会调用失败,比如超时、异常等,Hystrix能够保证在一个依赖出问题的情况下,不会导致整体服务失败,避免级联故障,以提高分布式系统的弹性。Hystrix 能够提供服务降级、服务熔断、服务限流、接近实时的监控等方面的功能。二、服务降级、服务熔断、服务限流的实现1、服务降级1)什么是服务降级当某 Consumer 消费端(客户端)访问一个 Provider 生产者

2022-01-10 13:55:29 672

原创 【详解】Spring Cloud之OpenFeign 的功能与配置

OpenFeign 的功能与配置一、什么是 OpenFeign二、Feign 能干嘛三、OpenFeign 与 Feign 的区别四、OpenFeign 的使用步骤五、OpenFeign 的超时控制1、演示 OpenFeign 超时的效果2、如何开启 OpenFeign 客户端超时控制六、OpenFeign 日志打印功能1、OpenFeign 的日志打印功能是什么2、OpenFeign 的日志级别3、如何使用 OpenFeign 的日志打印功能一、什么是 OpenFeignFeign 是一个声明式Web

2022-01-03 22:47:38 1158 2

原创 【详解】Ribbon 负载均衡服务调用原理及默认轮询负载均衡算法源码解析、手写

Ribbon 负载均衡服务调用一、什么是 RibbonSpring Cloud Ribbon 是基于 Netflix Ribbon 实现的一套客户端 负载均衡的工具。简单的说,Ribbon 是 Netflix 发布的开源项目,主要功能是提供客户端负载均衡算法和服务调用。Ribbon 客户组件提供一系列完善的配置如连接超时时,重试等。简单的说,就是在配置文件中列出 Load Balancer(简称 L B)后面的所有机器,Ribbon 会自动的帮助我们基于某种规则(如简单的轮询,随机连接等)去连接这些机

2021-12-30 14:46:16 2030

原创 【浅谈】Eureka、Zookeeper、Consul 三个注册中心的简单比较

Eureka、Zookeeper、Consul 三个注册中心的简单比较一、什么是 CAP二、三个注册中心的异同点三、具体的 CAP 图来解释 AP 与 CP一、什么是 CAPC(Consistency)强一致性A(Availability)可用性P(Partition tolerance)分区容错性CAP 理论关注粒度是数据,而不是整体系统的设计策略。二、三个注册中心的异同点组件名语言CAP服务健康检查对外暴露接口Spring Cloud集成EurekaJav

2021-12-24 17:51:28 1158

原创 【参考】如何选择 Spring Boot 与 Spring Cloud 对应的版本

如何选择 Spring Boot 与 Spring Cloud 对应的版本参考1:SpringCloud 官网 overview 页参考2:网页返回的 json 字符串结果参考3:SpringCloud 官网 learn 页在开始正文之前简单介绍一下 Spring Boot 和 Spring Cloud 的版本命名区别:Spring Boot 的版本参考1:SpringCloud 官网 overview 页SpringCloud 官网 overview 页打开该页面后,往下翻即可看见一下对应版

2021-12-16 11:10:59 858

原创 【实用篇】Nginx的配置文件以及案例详细配置实现

Nginx的配置文件以及案例配置实现一、nginx 的配置文件二、配置实例-反向代理一、nginx 的配置文件二、配置实例-反向代理1、实现效果:使用 nginx 反向代理,访问 www.123.com 直接跳转到 127.0.0.1:80802、配置实例准备:安装 JDK 1.8、Tommcat(1)JDK 的安装可以参考JDK 1.8 的安装方法(2)安装 Tommcat下载 Tommcat 的压缩包 下载地址Tommcat 压缩包下载地址参考通过 Xftp 将该压缩包上传

2021-12-15 15:07:20 15758 1

原创 【基础篇】Nginx原理及优化参数配置

Nginx一、什么是Nginx二、Nginx 中的基本概念1、反向代理2、负载均衡3、动静分离一、什么是NginxNginx(“engine x”) 是一个高性能的 Http 和反向代理 web 服务器,是一款轻量级的 Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在 BSD-like 协议下发行。其特点是占有内存小,并发能力强。Nginx 可以作为静态页面的 web 服务器,同时还支持 CGI 协议 的动态语言,比如: perl、php 等。但是不支持Java,Java程

2021-12-08 09:55:06 773

原创 【值得一看】如何在Linux 系统下安装 Nginx

Linux 系统下安装 Nginx一、安装 pcre二、安装 openssl 和 zlib三、安装 Nginx一、安装 pcre1、首先联网下载 pcre 的压缩包cd /usr/srcwget http://downloads.sourceforge.net/project/pcre/pcre/8.37/pcre-8.37.tar.gz如果虚拟机无法联网,可以参考 Linux联网问题2、解压到当前文件夹tar -xvf pcre-8.37.tar.gz3、切换到解压后的 pcre 文

2021-12-06 16:26:53 2366

原创 【MySQL进阶】MySQL 查询优化

MySQL 查询优化MySQL 查询优化1、小表驱动大表,即小的数据集驱动大的数据集2、Order By 关键字优化补充3、Group By 关键字优化MySQL 查询优化1、小表驱动大表,即小的数据集驱动大的数据集user 表的字段如下:create table user ( id int not null primary key auto_increment, name varchar(30) not null) default charset=utf8;user 表的插入数据如下:

2021-12-03 11:00:23 415

原创 【MySQL进阶】之如何避免索引失效

【MySQL进阶】之索引失效全值匹配中的索引失效全值匹配中的索引失效有一个 role 表,表字段如下:create table role(id int(10) not null primary key auto_increment,user_id int(10) not null,role_name varchar(30) not null,dept_id int(10) not null );插入数据如下:在表 role 中的 user_id,role_name,dept_id 三

2021-10-24 19:45:50 2587

原创 【MySQL进阶】索引优化案例

MySQL之索引优化单表索引优化案例单表索引优化案例例如:一个 article 表的字段如下: create table article( id int(10) unsigned primary key auto_increment comment '序号', author_id int(10) unsigned not null comment '作者id', category_id int(10) unsigned not null comment '分类id', comments in

2021-10-12 14:44:50 344

原创 【MySQL进阶】 explain 执行计划详解

MySQL进阶之 explain 的应用1、什么是 explain2、explain 能干啥3、explain 怎么使用4、各字段的解释id 字段select_type 字段DERIVED1、什么是 explain使用 explain 关键字可以模拟 MySQL 优化器执行 SQL 语句,从而知道 MySQL 是如何处理我们的 SQL 语句的。可以分析 SQL 查询语句或者表结构的性能瓶颈。2、explain 能干啥显示表的读取顺序显示数据读取操作的类型显示哪些索引可以使用显示哪些索引被实

2021-10-07 16:59:10 575

原创 MySQL索引

索引1、什么是索引2、索引的优缺点3、索引分类4、基本语法5、MySQL 索引结构1、什么是索引索引就是提高 MySQL 的查找效率的数据结构。也就是说索引的本质是数据结构。简单的理解为:排好序的快速查找数据结构。索引的作用:查找和排序,所以在 SQL 语句中会影响 while 后面的查询条件以及 order by 后面的排序。一般来说索引本身也很大,不可能全部存储在内存中,因此索引往往以索引文件的形式存储在磁盘上。平常所说的索引,如果没有特别说明,都是指 B 树(多路平衡查找树,并不一定是二叉树

2021-10-04 17:08:32 101

原创 快速排序的思想与代码实现

快速排序文字描述:① 首先随机选取一个值存储到 pivot 中心轴;② 将大于 pivot 的值放到 pivot 的右边;③ 将小于 pivot 的值放到 pivot 的左边;④ 分别对左子序列和右子序列重复前三步(默认序列长度为 1 的是有序的,不需要重新排列)图形化描述:1、需要进行快速排序的序列:2、随机选取一个值作为 pivot 中心轴(为了方便,这里选每次取首个值作为中心轴),同时 Left 左指针指向序列的首个元素, Right 右指针指向序列的末尾元素。注意:该值作为中心轴之

2021-09-30 16:49:02 91

原创 逻辑运算符与位运算符

逻辑运算符与位运算符一、逻辑运算符二、位运算符1、&、|、^、~ 位运算符2、<<、>>、>>> 位运算符一、逻辑运算符逻辑运算符有:&(且)、&&、|(或)、||、^(异或)、!(非)&(且)运算符:运算符两边只要有 false 则结果为 false,|(或)运算符:运算符两边只要有 true 则结果为 true,^(异或)运算符:运算符两边同为 false 或 true 则结果为 false,如果不相同则结果为

2021-09-24 20:45:47 14395

原创 Windows下的Git的配置与使用

Git的配置与使用一、Git的安装二、Git 的配置三、Git的工作原理四、Git项目的搭建一、Git的安装在Git官网下载安装驱动,如果官网下载慢的话可以访问淘宝镜像网站-git,然后选择最新版本,根据自己的需要下载对应操作系统的git。安装好之后,在左下角win菜单中可以看到Git Bash:Uninx 与 Linux 风格的命令,使用最多,推荐最多Git CMD:Windows 风格的命令Git GUI:图形界面的 Git二、Git 的配置1、查看配置查看所有配置 git co

2021-08-29 16:27:29 3445 2

原创 Linux系统下的Redis的安装步骤

Redis的安装步骤一、下载redis压缩包二、 上传redis压缩包三、下载安装最新版的 gcc 编译器四、解压上传的 redis 的压缩包五、使用 make 命令对解压后的文件进行编译六、跳过make test 继续执行 make install七、查看redis的安装目录八、启动redis1、前台启动(不推荐)2、后台启动(推荐)一、下载redis压缩包如果redis压缩包官网下载不下来,可以尝试访问redis下载链接之后点击 Fossies downloads 后面的 redis-6.2.5.

2021-08-15 22:04:15 113

原创 分布式和集群的Session共享问题

Session共享问题首先在进入主题之前,我们先复习以下 Cookie 与 Session何为 Cookie1、Cookie是服务器通知客户端保存键值对的一种技术。同时客户端保存了Cookie之后,每次请求都会发送给服务器。每个Cookie的大小不能超过4kb。2、Cookie 是保存在客户端的。Cookie 的 工作机制:服务器端返回 Cookie 信息给浏览器Java 代码:response.addCookie(cookie 对象);HTTP 响应消息头:Set-Cook

2021-08-01 22:22:24 229

原创 feign.RetryableException: Read timed out executing GET http://。。。。 with root cause

一、具体异常信息:java.net.SocketTimeoutException: Read timed out at java.net.SocketInputStream.socketRead0(Native Method) ~[na:1.8.0_121] at java.net.SocketInputStream.socketRead(SocketInputStream.java:116) ~[na:1.8.0_121] at java.net.SocketInputStream.read(So

2021-07-31 18:01:39 1982

原创 连接redis遇到Unable to connect to Redis; nested exception is io.lettuce.core.RedisConnectionException:

先来看看异常信息:org.springframework.data.redis.RedisConnectionFailureException: Unable to connect to Redis; nested exception is io.lettuce.core.RedisConnectionException: Unable to connect to 192.168.232.151:6379 at org.springframework.data.redis.connection.lett

2021-07-31 13:52:38 1971

原创 Redis基础篇

Redis基础篇一、NoSQL 数据库 解决的两大问题1、解决了CPU及内存压力2、减少数据库IO的压力在介绍Redis之前,我们先来了解了解 NoSQL 缓存数据库一、NoSQL 数据库 解决的两大问题1、解决了CPU及内存压力其中就有一个最具代表性的问题:使用集群或分布式的时候,Session共享的问题。解决方案:1、 将 Cookie 存储到客户端。缺点:不安全网络负担效率低2、Session 复制就是将一台服务器中得 session 对象 复制到 另一台服务器中得 ses

2021-07-29 19:53:21 101

原创 使用Zuul网关统一入口

Zuul网关统一入口一、什么是Zuul二、代码实现三、配置路由原则① 使用指定地址代替微服务名称② 让用户不能通过微服务名称访问③忽略所有微服务名称④给访问路径添加统一前缀四、使用ZuulFilter拦截过滤请求一、什么是ZuulZuul 包含了对请求的路由和过滤两个主要的功能:路由功能负责将外部请求转发到具体的微服务实例上,是实现外部访问统一入口的基础;过滤功能负责对请求的处理过程进行干预,是实现请求校验、服务聚合等功能的基础。Zuul 和 Eureka 进行整合,将 Zuul 自身注册为 Eu

2021-07-26 21:37:13 564

原创 基于SpringBoot搭建SpringCloud基础测试环境

浅谈SpringCloud一、基本组件一、基本组件注册中心:Eureka负载均衡:Ribbon声明式调用远程方法:Feign熔断、降级、监控:Hystrix网关:Zuul

2021-07-26 09:29:31 263

原创 分布式架构与单一架构

浅谈分布式一、什么是架构二、单一架构1、概念2、演变2.1、水平拆分2.2、垂直拆分三、互联网时代面临的新挑战1、高可扩2、高性能3、高并发四、分布式架构1、概念2、方法远程调用2.1、本地调用2.2、远程调用2.3、意义一、什么是架构架构,即项目的主题。是实现业务功能的工程模块为了应对业务功能之外的需求、压力给项目中增加的中间件等其他系统为了让整个项目能够顺畅、高效的运行,需要把业务功能和中间件以及其他系统有效的整合起来二、单一架构1、概念一个工程 → 打成一个

2021-07-23 16:27:08 519

原创 Web项目加入SpringSecurity后循环重定向问题

Web项目加入SpringSecurity后循环重定向问题错误原因:去登录页面和登录请求本身都需要 permitAll()否则登录和去登录页面本身都需要登录,形成死循环。所以在只需要在 去登录页面 和 登录请求本身 后面添加 .permitAll() 即可...

2021-07-21 16:32:18 547

原创 Web项目加入SpringSecurity后抛异常NoSuchBeanDefinitionException

Web项目加入SpringSecurity后抛异常找不到bean一、先让我们来看看异常信息二、在解决异常前我们先需要知道的事情1、Web组件加载顺序2、有两个IOC容器① Spring的IOC容器②SpringMVC的IOC容器3、DelegatingFilterProxy初始化后查找Bean的机制三、问题分析四、解决思路方案一:把两个IOC容器合二为一方案二:改源码一、先让我们来看看异常信息二、在解决异常前我们先需要知道的事情1、Web组件加载顺序首先是:ContextLoaderListene

2021-07-20 21:22:29 320 1

原创 浅谈SpringSecurity权限管理框架

使用SpringSecurity框架实现权限管理一、SpringSecurity框架用法简介二、权限管理过程中的相关概念1、主体2、认证3、授权三、权限管理的主流框架1、SpringSecurity2、Shiro四、3、编写好登录页面以及登录后的主页面和其他要用到的页面4、创建包 com.herz.security.controller 并编写对应的 Controller5、在该工程基础上加入SpringSecurity5.1、在pom.xml中导入SpringSecurity 依赖5.2、在web.xm

2021-07-20 11:15:30 512

原创 RBAC权限控制模型

RBAC权限控制模型一、首先在介绍RBAC权限控制模型前,先聊聊一些基本的问题1、Why?为什么要进行权限控制2、What?什么是权限控制3、How?如何进行权限控制二、RBAC 权限模型1、概念2、RBAC0~RBAC32.1、RBAC02.2、RBAC12.3、RBAC22.4、RBAC33、基本RBAC权限模型4、扩展RBAC权限模型一、首先在介绍RBAC权限控制模型前,先聊聊一些基本的问题1、Why?为什么要进行权限控制 如果没有权限控制,系统的功能完全不设防,全部暴露在所有用户面前。用

2021-07-13 11:35:39 211

原创 二、SpringBoot核心功能

SpringBoot核心功能二、SpringBoot核心功能1、配置文件1.1、properties文件1.2、yml文件1.2.1、简介1.2.2、基本语法1.2.3、数据类型1.2.4、配置提示2、Web开发2.1、SpringBoot中SpringMVC自动配置2.2、功能分析1、静态资源目录2、静态资源访问前缀3、支持webjars4、欢迎页支持5、自定义Favicon6、普通参数与基本注解7、视图解析与模板引擎视图解析:SpringBoot默认不支持jsp,需要引入第三方模板引擎技术实现页面渲染t

2021-05-26 16:51:26 1188

原创 一、SpringBoot基础入门

SpringBoot基础入门一、SpringBoot基础入门1、SpringBoot 入门1)、系统要求1.1 Maven设置2)、HelloWord2.1、创建maven工程2.2、引入依赖2.3、创建主程序2.4 、编写业务逻辑2.5、测试2.6、简化配置2.7、简化部署2、SpringBoot自动配置原理1)、SpringBoot的特点1.1、依赖管理1.2、自动配置2)、容器功能2.1、组件添加2.2、原生配置文件引入2.3、配置绑定(例:绑定properties配置文件与JavaBean对象属性)

2021-05-26 16:42:34 95

原创 Spring5核心之二:AOP面向切面

AOP面向切面一、什么是AOP二、AOP底层原理(使用动态代理)1)有接口情况,使用 JDK 动态代理。2)没有接口情况,使用CGLIB 动态代理三、AOP操作术语四、AOP操作1)Spring框架一般都是基于AspectJ实现AOP操作2)基于AspectJ实现AOP操作3)切入点表达式:五、AOP操作基于AspectJ注解实现AOP操作3、进行通知的配置(1)在Spring配置文件中,开启注解扫描(2)使用注解创建 被增强类User 和 增强类 UserProxy 对象(3)在增强类上面添加注解 @As

2021-04-27 16:33:38 182

原创 Spring5核心之一:IOC容器

IOC容器一、什么是IOC:二、IOC的底层原理:三、IOC思想基于IOC容器完成,IOC容器底层就是对象工厂。四、Spring 提供IOC容器实现两种方式:(两个接口)五、IOC操作之Bean管理:1、什么是Bean管理:2、IOC操作之Bean管理两种方式:1)基于XML配置文件方式:2)基于注解方式(以UserDao接口以及其实现类和UserService类为例)3、IOC操作Bean管理(工厂Bean)4、Bean的生命周期(加上后置处理器后共七步):一、什么是IOC:1)控制反转,把创建对象和

2021-04-27 16:17:29 99

原创 JavaEE 三层架构

2021-04-06 23:06:49 81

原创 Cookie与Session

Cookie与Session何为CookieCookie的创建BaseServlet抽象类代码如何获取Cookie查找指定key值的Cookie(CookieUtils工具类)Cookie值的修改Cookie生命控制Cookie 有效路径Path设置Cookie之免用户名登录什么是Session会话Session 的创建Session 域中数据的存储Session 生命周期的控制何为Cookie Cookie是服务器通知客户端保存键值对的一种技术。同时客户端保存了Cookie之后,每次请求都会发送给服

2021-04-06 23:03:54 92

原创 Java基础之多线程

Java基础之多线程何为程序?何为进程?何为线程?二级目录三级目录何为程序?何为进程?何为线程?二级目录三级目录

2021-03-10 15:51:30 222 3

原创 Java基础之虚拟方法调用

何为虚拟方法?何为虚拟方法调用呢? 子类中定义了与父类同名同参数的方法,在多态的情况下,此时父类 中得方法被称为虚拟方法。父类根据赋给的不同子类对象,动态的调 用属于子类的该方法即为虚拟方法调用。这种方法调用在编译期是无法确定的。以下是正常方法调用与虚拟方法调用的区别:正常方法调用://这里的Student类是Person类的子类> Person p = new Person();> p.study(); //Person类中得study()方法> Stu

2021-03-05 16:55:11 2822

空空如也

空空如也

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

TA关注的人

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