自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Sentinel扩展-流控告警案例

在实际开发过程中 ,如果生产环境使用了Sentinel,那就需要对接口的流控参数不断优化,在兼容系统性能的同时,增加接口的流量处理能力。本文主要对Sentinel的源码做出扩展,在接口触发流控时,通过钉钉告警的方式通知相应人员,以便于及时调整接口参数。

2022-10-01 18:35:08 1240 1

原创 阿里云RocketMQ初始化生产者、消费者案例

本文结合和了Nacos,利用Nacos自动配置初始化阿里云RocketMQ生产者及消费者。后续如果需要增加生产者或消费组,更改配置增加消费业务即可。

2022-09-25 22:13:43 1997

原创 阿里云RocketMQ

阿里云RocketMQ原生API是通过ONSFactory工厂来创建消费者和生产者,创建之前需要通过Properties来指定一些配置信息阿里云RocketMQ,提供了一些Bean用于集成至Spring容器中:(ProducerBean、ConsumerBean),(OrderProducerBean、OrderConsumerBean),TransactionProducerBean,我们只需配置初始化方法以及销毁方法,就能跟随Spring生命周期启动和销毁生产者和消费者消息存储机制:市面上消息中

2021-09-21 15:12:32 3454

原创 MySQL事务和锁

MySQL事务和锁ACID 特性原子性事务是一个原子操作单元,其对数据的修改,要么全都执行,要么全都不执行每一个写事务,都会修改BufferPool,从而产生相应的Redo/Undo日志,在Buffer Pool 中的页被刷到磁盘之前,这些日志信息都会先写入到日志文件中,如果 Buffer Pool 中的脏页没有刷成功,此时数据库挂了,那在数据库再次启动之后,可以通过 Redo 日志将其恢复出来,以保证脏页写的数据不会丢失。如果脏页刷新成功,此时数据库挂了,就需要通过Undo来实现了

2021-09-21 15:02:12 157

原创 MySQL索引原理

MySQL官方对索引定义:是存储引擎用于快速查找记录的一种数据结构。需要额外开辟空间和数据维护工作。索引是物理数据页存储,在数据文件中(InnoDB引擎为ibd文件、MyISAM引擎为MYI文件),利用数据页(page)存储。索引可以加快检索速度,但是同时也会降低增删改操作速度,索引维护需要代价。所以要想理解MySQL的索引原理需要了解一些数据结构的理论知识二叉树二叉搜索树的特点是:每个节点的左侧子节点小于父节点,父节点又小于右侧子节点。如图所示:假如我们需要执行 select * fro

2021-01-31 11:07:00 168

原创 Eureka源码分析

Eureka源码分析一.EurekaServer1.入口分析:切入点(一):对于EurekaServer,我们只是在主配置类中添加了@EnableEurekaServer这个注解,所以我们需要以此为入口分析EurekaServer端源码@EnableEurekaServer这个注解的主要作用是导入EurekaServerMarkerConfiguration配置类主要作用向spring容器中注入一个标记类 Marker通过判断spring容器中是否含有Marker这个bean,来判断是否是E

2021-01-31 10:55:30 618

原创 SpringBoot消息机制(整合RabbitMQ)

RabbitMQ简介核心概念Broker: 消息代理,这里指安装了消息中间件的服务器,也就是RabbitMQ的服务端,生产者和消费者都需要与服务端建立长连接,当消息发送者发送消息后,将由消息代理接管,消息代理保证消息传递到指定目的地Publisher:消息的生产者,也是一个向交换器发布消息的客户端应用程序Message : 消息中包含 routing-key(路由键),该路由键会与绑定键匹配,用于判断该消息会被发送到哪个队列中Exchange:交换器,接受生产者发送的消息,并将消息路由到指定队列

2021-01-08 19:13:55 494

原创 Thymeleaf模板引擎

Thymeleaf模板引擎更多配置参考官方文档:https://www.thymeleaf.org/documentation.html中文参考书册:https://www.lanzous.com/i7dzr2jThymeleaf语法常用标签在HTML页面上使用Thymeleaf标签,Thymeleaf 标签能够动态地替换掉静态内容,使页面动态展示。为了大家更直观的认识Thymeleaf,下面展示一个在HTML文件中嵌入了Thymeleaf的页面文件示例代码如下:<!DOCTYPE h

2021-01-03 14:33:26 503

原创 SpringBoot缓存原理(整合Redis)

一、 Spring缓存抽象在Spring Boot中,数据的缓存管理存储依赖于Spring框架中Cache相关的org.springframework.cache.Cache接口和org.springframework.cache.CacheManager缓存管理器接口。对于Cache接口,Spring提供了各种xxxCache的实现。比如RedisCache、EhCacheCache、ConcurrentMapCache等对于使用不同的CacheManager,会选择不同的Cache组件如果程序

2021-01-03 13:26:21 632

原创 SpringBoot自定义Starter

SpringBoot Starter机制我们知道 SpringBoot 通过 starter 包引入对应的第三方 jar 包,然后通过自动配置机制来自动创建该第三方 jar 包对应的功能的 bean 对象。Starter可以理解为一个可拔插式的插件,例如,你想使用Reids插件,那么可以使用spring-boot-starter-redis;如果想使用MongoDB,可以使用spring-boot-starter-data-mongodb自定义 Starter 包Starter的命名规则Spri

2021-01-03 13:22:19 131

原创 SpringBoot自动配置原理

SpringBoot能够在我们添加jar包依赖后,自动为我们配置一些组件,最大的功臣是@SpringBootApplication 这个注解@SpringBootApplicationpublic class SpringbootDemoApplication { public static void main(String[] args) { SpringApplication.run(SpringbootDemoApplication.class, args); }}

2020-12-30 20:37:26 162

原创 Mybatis实战应用

Mybatis实战应用为什么需要 ORM 框架?分析JDBC操作问题 public static void main(String[] args) { Connection connection = null; PreparedStatement preparedStatement = null; ResultSet resultSet = null; try { // 加载数据库驱动 Class.forName("com.mysql.jdbc.Driver"); /

2020-12-27 21:33:54 229

原创 Mybaits插件开发(PagerHelper原理、自定义插件)

Mybaits插件开发插件价绍插件是用来改变或者扩展 mybatis 的原有的功能, mybaits 的插件就是通过继承Interceptor 拦截器实现的;MyBatis 中能使用插件进行拦截的接口和方法如下:自定义插件自定义慢查询插件,记录项目中执行慢的Sql@Intercepts({ @Signature(type=StatementHandler.class,method="query", args={Statement.class, ResultHan

2020-12-27 21:20:42 305

原创 GateWay网关应用案例(跨域、限流、黑白名单)

Spring Cloud Gateway是基于Spring Boot 2.x,Spring WebFlux和Project Reactor 构建的。属于异步非阻塞架构Spring Cloud Gateway与Spring Data 和Spring Securit 技术不能同时使用Spring Cloud Gateway基于Spring Boot和Spring Webflux提供的Netty运行。它在传统的Servlet容器中或用WAR的方式构建时不起作用网关基本的功能 :鉴权、流量控制、熔断、路径重写

2020-11-15 11:18:43 13291 3

原创 Seata的搭建及使用

Seata官方文档:http://seata.io/zh-cn/docs/user/quickstart.html架构图:有三个服务分别为订单服务、库存服务、账户服务主要业务逻辑为采购业务,进行采购时需要进行下订单、账号登记、减库存等操作!TC:事务协调者,也就是seata的服务端TM:事务管理者,也就是案例中的采购业务RM:资源管理者,案例中的订单服务、库存服务、账户服务服务端配置1)建库建表。以mysql数据库为例。全局事务会话信息,以全局事务、分支事务、全局锁三部分构成,对应表g

2020-11-15 10:11:52 3131

原创 Nacos源码分析

Nacos源码分析一、入口分析切入点1:@EnableDiscoveryClient如果需要将服务注册到注册中心,需要在启动类加上@EnableDiscoveryClient注解,该注解到底有什么作用?@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)@Documented@Inherited@Import(EnableDiscoveryClientImportSelector.class)public @interfa

2020-10-20 21:03:38 4627 4

原创 Docker常用软件安装命令

Docker基本使用Docker的安装步骤:1)确认要安装docker的系统的linux内核高于3.10,低于3.10使用yum update更新uname -r2)卸载系统中原有的dockeryum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker

2020-10-20 14:25:54 220

空空如也

空空如也

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

TA关注的人

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