自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(100)
  • 收藏
  • 关注

原创 MySQL 的数据目录

通过上述命令来查找 MySQL8 的相关目录。

2022-10-31 23:01:31 329 1

原创 MySQL 学习前言以及Linux 环境下 MySQL 的安装

MySQL 安装

2022-10-29 22:33:46 505

原创 SpringCloud Alibaba——分布式事务 Seata

本地事务,也就是传统的单机事务。在传统数据库事务中,必须要满足四个原则,即ACID:ACID,是指数据库管理系统(DBMS)在写入或更新资料的过程中,为保证事务(transaction)是正确可靠的,所必须具备的四个特性:原子性(atomicity,或称不可分割性)、一致性(consistency)、隔离性(isolation,又称独立性)、持久性(durability)。原子性:事务中的所有操作,要么全部成功,要么全部失败。一致性:要保证数据库内部完整性约束、声明性约束。.................

2022-08-27 17:14:57 1790 1

原创 SpringCloud Alibaba-Sentinel 实现熔断与限流

在分布式系统中,由于网络原因或自身的原因,服务一般无法保证 100% 可用。如果一个服务出现了问题,调用这个服务救护出现线程阻塞的情况,此时若有大量的请求涌入,就会出现多条线程阻塞等待,进而导致服务瘫痪。由于服务与服务之间的依赖性,故障会传播,会对整个微服务系统造成灾难性的严重后果,这就是服务故障的”雪崩效应“。雪崩发生的原因多种多样,有不合理的容量设计,或者是高并发下某一个方法响应变慢,亦或是某台机器的资源耗尽。..................

2022-08-16 00:02:27 875

原创 SpringCloud Alibaba—Nacos 服务注册和配置中心

Nacos 是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理的平台。它可以帮助我们轻松构建云原生应用程序和微服务平台。总结:Nacos 就是的组合,即。

2022-08-07 17:36:38 379

原创 SpringCloud Sleuth 分布式请求链路跟踪

SpringCloudSleuth主要功能就是在分布式系统中提供追踪的解决方案,并且兼容支持了Zipkin,只需要在pom文件中引入相应的依赖即可。Zipkin是Twitter的一个开源项目,它基于GoogleDapper实现,致力于收集服务的定时数据,以解决微服务架构中的延迟问题,包括数据的收集、存储、查找和展现。Collector收集器组件,它主要用于处理从外部系统发送过来的跟踪信息,将这些信息转换为Zipkin内部处理的Span格式,以支持后续的存储、分析、展示等功能。......

2022-07-31 22:41:50 864

原创 SpringCloud Stream 消息驱动

SpringCloudStream由一个中间件中立的核组成。应用通过SpringCloudStream插入的input(相当于消费者consumer,它是从队列中接收消息的)和output(相当于生产者producer,它是从队列中发送消息的)通道与外界交流。通道通过指定中间件的Binder实现与外部代理连接。业务开发者不再关注具体消息中间件,只需要关注Binder对应用程序提供的抽象概念,通过这些抽象概念来使用消息中间件实现业务即可。https。.....................

2022-07-24 23:54:21 570

原创 SpringCloud Bus 消息总线

SpringCloudBus配合SpringCloudConfig使用,可以实现配置的动态刷新。SpringCloudBus是用来将分布式系统的节点与轻量级消息系统链接起来的框架,它整合了Java的事件处理机制和消息中间件的功能。SpringCloudBus目前支持RabbitMQ和Kafka。......

2022-07-24 19:04:59 120

原创 配置中心 SpringCloud Config

SpringCloud Config

2022-07-19 23:09:30 274

原创 微服务网关 Gateway

微服务网关

2022-07-13 23:20:58 5961

原创 服务熔断 Hystrix

服务熔断 Hystrix

2022-07-04 11:07:45 500

原创 OpenFeign 服务接口调用

OpenFeign

2022-07-03 11:00:46 283

原创 Ribbon 服务调用与负载均衡

Ribbon

2022-06-27 23:22:58 520

原创 其他服务注册与发现

其他服务注册与发现

2022-06-26 11:24:52 321

转载 使用Jrebel启动项目报错,但正常启动却没有问题

使用Jrebel debug启动的时候报错,但是正常启动或者自带debug模式启动都没问题。由此肯定是jrebel的问题了。当然也可能是我的版本问题,不论如何反正就是报错了。错误描述如下:Caused by: java.lang.ClassNotFoundException: org.apache.xerces.parsers.SecuritySupport$4往上翻日志:Error creating bean with name ‘sqlSessionFactory’ defined in class p

2022-06-24 14:37:32 3852 4

原创 Eureka服务注册与发现

注册中心可以说是微服务架构中的“通讯录”,它记录了服务和服务地址的映射关系。在分布式架构中,服务会注册到这里,当服务需要调用其他服务时,就会在这里找到服务的地址,进行调用。服务注册中心(下称注册中心)是微服务架构非常重要的一个组件,在微服务架构里主要起到了协调者的作用。注册中心一般包含如下几个功能:1、服务发现:2、服务配置:3、服务健康检测ZookeeperZookeeper 是一个分布式服务框架,是 Apache Hadoop 的一个子项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,

2022-06-21 23:42:21 412

原创 SpringCloud 之微服务架构编码构建

Spring案例搭建

2022-06-20 00:35:52 516

原创 SpringCloud 概述

SpringCloud 概述

2022-06-20 00:34:20 218

原创 微服务基础知识

微服务基础知识

2022-06-19 18:59:13 309

原创 RabbitMQ 集群

1.2 集群搭建使容器 mq02 称为从节点,容器 mq01 为主节点使容器 mq03 称为从节点,容器 mq01 为主节点1.3 查看集群状态进入任意一个容器内,输入以下命令查看集群状态:

2022-06-12 17:38:39 9387

原创 RabbitMQ 其他知识点

用户对于同一操作发起的一次请求或者多次请求的结果是一致的,不会因为多次点击而产生了副作用。举个最简单的例子,那就是支付,用户购买商品后支付,支付扣款成功,但是返回结果的时候网络异常,此时钱已经扣了,用户再次点击按钮,此时会进行第二次扣款,返回结果成功,用户查询余额发现多扣钱了,流水记录也变成了两条。在以前的单应用系统中,我们只需要把数据操作放入到事务中即可,发生错误立即回滚,但是再响应客户端的时候也有可能出现网络中断或者异常等等。在 MQ 中指,消费多条相同的消息,得到与消费该消息一次相同的结果。消费者在消

2022-06-11 22:00:56 264

原创 RabbitMQ 发布确认高级

发布确认高级

2022-06-05 23:07:03 250

原创 RabbitMQ 延迟队列详解

一、延迟队列概念延迟队列存储的对象时对应的延迟消息,所谓“延迟消息”是指当消息呗发送以后,并不想让消费者立刻拿到消息,而是等待特定时间后,消费者才能拿到这个消息进行消费。二、延迟队列使用场景1、订单在十分钟之内未支付则自动取消2、新创建的店铺,如果在十天内都没有上传过商品,则自动发送消息提醒。3、用户注册成功后,如果三天内没有登录则进行短信提醒。4、用户发起退款后,如果三天内没有得到处理则通知相关运营人员。5、预定会议后,需要在预定时间点前十分钟通知各个与会人员参加会议。这些场景都有一个特点

2022-05-29 16:34:29 19375 7

原创 RabbitMQ 死信队列详解

一、死信的概念死信,顾名思义就是无法被消费的消息。一般来说,Producer 将消息投递到 Broker 或者直接到 Queue 里了,Consumer 从 Queue 取出消息进行消费,但某些时候由于特定的原因导致 Queue 中的某些消息无法被消费,这样的消息如果没有后续的处理,就变成了死信,有死信自然就有了死信队列。应用场景:为了保证订单业务的消息数据不丢失,需要使用到 RabbitMQ 的死信队列机制,档消息消费发生异常时,将消息投入到死信队列中。还有比如说:用户在商城下单成功并点击支付后再指定

2022-05-28 23:12:31 13771 2

原创 RabbitMQ 中交换机类型

在工作队列模式中,每个任务都恰好交付给一个消费者(工作进程)。如果需要将消息传达给多个消费者,则需要使用“发布/订阅”模式。为了说明这种模式,我们将构建一个简单的日志系统。它将由两个程序组成:第一个程序将发出日志消息,第二个程序是消费者。我们会启动两个消费者,其中一个消费者接收到消息后把日志存储在磁盘中,另一个消费者在接收到消息后,会将消息打印到屏幕上。事实上,第一个程序发出的日志消息将会广播给所有的消费者。一、Exchanges1.1 Exchanges 概念RabbitMQ 消息传递模型的核心思

2022-05-28 18:03:14 243

原创 RabbitMQ 的发布确认

一、模式说明在订阅模型中,多了一个 Exchange 角色,而且过程略有变化:P:生产者,也就是要发送消息的程序,但是不再发送到队列中,而是发给 X(交换机)C:消费者,消息的接收者,会一直等待消息到来Queue:消息队列,接收消息,缓存消息Exchange:交换机(X)。一方面,接收生产者发送的消息,另一方面,知道如何处理消息,例如递交给某个特别队列、递交给所有队列、或是将消息丢弃。到底如何操作,取决于 Exchange 的类型。Exchange 有常见一下 3 种类型:Fanout:广播

2022-05-23 23:21:11 877

原创 RabbitMQ 的工作模式——Work Queues 工作队列模式

一、模式说明Work Queues:与入门程序的简单模式相比,多了一个或一些消费端,多个消费端共同消费同一个队列中的消息。应用场景:对于任务过重或任务较多情况,使用工作队列可以提高任务处理的速度。二、代码Producer_WorkQueuespackage com.itheima.producer;import com.rabbitmq.client.Channel;import com.rabbitmq.client.Connection;import com.rabbitmq.cli

2022-05-23 21:18:11 716 5

原创 RabbitMQ 快速入门——简单队列模式

一、入门程序需求:使用简单模式完成消息传递步骤:创建工程(生产者、消费者)分别添加依赖编写生产者发送消息编写消费者接收消息1.1 添加依赖分别在生产者和消费者的 pom.xml 文件中添加如下依赖:<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLS

2022-05-23 09:05:19 348

原创 RabbitMQ 简介

一、MQ 的基本概念1.1 MQ 概述消息(Message)是指在应用间传递的数据。消息可以非常简单,比如质保函文本字符串、JSON 等,也可以很复杂,比如内嵌对象。MQ 全称为 Message Queue(消息队列),是在消息的传输过程中保存消息的容器。多用于分布式系统之间进行通信。目前,分布式系统之间的数据通信一般有两种方式:第一种方式,A 系统直接通过远程调用的方式来访问 B 系统第二种方式,则是通过消息中间件的方式,由 A 系统将数据发送到消息中间件,再由消息中间件发送给 B 系统。

2022-05-21 18:54:38 526

原创 Redis 事务

先放一个大佬的文章:聊一聊Redis事务 一、什么是Redis 事务可以一次执行多个命令,本质是一组命令的集合。一个事务中的所有命令都会序列化,按顺序串行化执行,而不会被其他命令插入。二、事务可以用来做什么一个队列中,可以一次性、顺序性、排他性的执行一系列命令。三、如何使用可以通过 MULTI 命令来开启一个 Redis 事务,该命令在执行后总会返回 OK。在执行该命令之后,用户便可以发布多条 Redis 命令。Redis 并不会立即执行这些命令,而是将它们放入到一个队列中。所有的命令将会在调用

2022-05-18 23:39:49 312

原创 分布式缓存-Redis分片集群

一、分片集群结构主从和哨兵可以解决高可用、高并发读的问题,但是依然有两个问题没有解决:海量数据存储问题高并发写的问题使用分片集群可以解决上述问题,分片集群特征:集群中有多个 master,每个 master 保存不同数据(可解决高并发写的问题)每个 master 都可以有多个 slave 节点(解决高并发读的问题)master 之间通过 ping 监测彼此健康状态(类似于哨兵机制)客户端请求可以访问集群任意节点,最终都会被转发到正确节点二、搭建分片集群2.1 集群结构分片集群

2022-05-17 21:42:36 963

原创 分布式缓存-Redis 哨兵

一、哨兵的作用和工作原理1.1 哨兵的结构和作用Redis 提供了哨兵(Sentinel)机制来实现主从集群的自动故障恢复。哨兵的结构和作用如下:监控: Sentinel 会不断检查您的 master 和 slave 是否按预期工作自动故障恢复: 如果 master 故障,Sentinel 会将一个 slave 提升为 master。当故障实例恢复后也以新的 master 为主。通知: Sentinel 充当 Redis 客户端的服务发现来源,当集群发生故障转移时,会将最新信息推送给 Redi

2022-05-17 09:04:50 323

原创 分布式缓存-Redis 主从

一、搭建主从架构单节点 Redis 的并发能力是有上限的,要进一步提高 Redis 的并发能力,就需要搭建主从集群,实现读写分离。在 Redis 应用当中,大多数情况下,都是读多写少,因此,更多情况下,需要应对的是读的压力,那么在主从的基础上可进一步实现读写分离:在执行写操作时,访问 master 节点,如果是读操作,那么就分发到 slave 节点。这种一主多从的集群设计,可让多个从节点共同承担读的请求,从而使得读的并发能力就会有极大地提升。...

2022-05-15 23:11:46 436

原创 分布式缓存-Redis 持久化

一、单点 Redis 的问题数据丢失问题。Redis 是内存存储,一旦服务宕机重启,数据就有可能会丢失。并发能力问题。单节点的 Redis 并发能力虽然不错,但也无法满足如 618、双 11 这样的高并发场景。故障恢复问题。如果 Redis 宕机,则服务不可用,需要一种自动的故障恢复手段。存储能力问题。Redis 是基于内存存储,但是内存存储是有上限的,而需要被缓存的数据会越来越多,那么单节点的 Redis 则难以满足海量数据的需求。解决方案:二、RDB 持久化RDB 全称 Redis D

2022-05-15 18:43:21 458

原创 黑马点评项目-UV 统计

一、HyperLogLog 用法UV:全称 Unique Visitor,也叫独立访客量,是指通过互联网访问、浏览这个网页的自然人、1 天内同一个用户多次访问该网站,只记录 1 次。PV:全称 Page View,也叫页面访问量或点击量,用户每访问网站的一个页面,记录一次 PV,用户多次打开页面,则记录多次 PV。往往用来衡量网站的流量。UV 统计在服务端做会比较麻烦,因为要判断该用户是否已经统计过了,需要将统计过的用户信息保存。但是如果每个访问的用户都保存到Redis 中,数据量会非常恐怖。

2022-05-12 21:55:48 1260

原创 黑马点评项目-用户签到

一、BitMap 的用法假如我们用一张表来存储用户签到信息,其结构应该改如下:假如有 1000 万个用户,平均每人每年签到次数为 10 次,则这张表一年的数据量为 1 亿条。每签到一次需要使用(8 + 8 + 1 + 1 + 3 + 1)共 22 字节的内存,一个月则最多需要 600 多字节。显然,这种方式不合适。改进方案:我们按月来统计用户签到信息,签到记录为 1,未签到则记录 0将每一个 bit 位对应当月的每一天,形成了映射关系。用 0 和 1 表示业务状态,这种思路就成为位图(BItM

2022-05-11 23:26:42 664 2

原创 黑马点评项目-附近商铺

一、GEO 数据结构的基本用法1.1 GEO 数据结构GEO 就是 Geolocation 的简写形式,代表地理坐标。Redis 在 3.2 版本中加入了对 GEO 的支持,允许存储地理坐标信息,帮助我们根据经纬度来检索数据。常见的命令有:GEOADD:添加一个地理空间信息,包含:经度(longitude)、纬度(latitude)、值(member)GEODIST:计算指定的两个点之间的距离并返回GEOHASH:将指定 member 的坐标转为 hash 字符串形式并返回GEOPOS:返回指定

2022-05-11 09:27:52 619

原创 黑马点评项目-好友关注

一、关注和取关在探店图文的详情页中,可以关注发布笔记的作者:需求:基于该表数据结构,实现两个接口:① 关注和取关接口② 判断是否关注的接口关注是 User 之间的关系,是博主与粉丝的关系,数据库中有一张 tb_follow 表来标识:注意:这里需要把主键修改为自增长FollowController@RestController@RequestMapping("/follow")public class FollowController { @Autowired p

2022-05-09 20:57:37 1021

原创 黑马点评项目-达人探店

一、发布探店笔记探店笔记类似点评网站的评价,往往是图文结合。对应的表有两个:tb_blog:探店笔记表,包含笔记中标题、文字、图片等tb_blog_comments:其他用户对探店笔记的评价修改文件上传路径:...

2022-05-05 20:42:43 5453 13

原创 黑马点评项目-Redis 消息队列

一、消息队列简介消息队列(Message Queue),字面意思就是存放消息的队列。最简单的消息队列模型包括 3 个角色:消息队列:存储和管理消息,也被称为消息代理(Message Broker)生产者:发送消息到消息队列消费者:从消息队列获取消息并处理消息消息队列和阻塞队列的区别:① 消息队列是在 JVM 以外的独立服务,所以不受 JVM 内存的限制② 消息队列不仅仅做数据存储,还需要确保数据安全,存入到消息队列中的所有消息都需要做持久化,这样不管是服务宕机还是重启,数据都不会丢失。而且

2022-05-03 17:07:25 2190

空空如也

空空如也

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

TA关注的人

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