自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 MySQL运维

IO瓶颈:热点数据太多,数据库缓存不足,产生大量磁盘IO,效率较低。请求数据太多,带宽不够,网络IO瓶颈。CPU瓶颈:排序、分组、连接查询、聚合统计等SQL会耗费大量的CPU资源,请求数太多,CPU出现瓶颈。为了解决上述问题,我们需要对数据库进行分库分表处理。分库分表的中心思想都是将数据分散存储,使得单一数据库/表的数据量变小来缓解单一数据库的性能问题,从而达到提升数据库性能的目的。分库分表的形式,主要是两种:垂直拆分和水平拆分。

2023-02-26 13:52:15 1108 1

原创 MySQL进阶(二)

用户定义变量 是用户根据需要自己定义的变量,用户变量不用提前声明,在用的时候直接用 "@变量名" 使用就可以。其作用域为当前连接。(1)赋值方式一:赋值时,可以使用 = ,也可以使用 :=。方式二:SELECT 字段名 INTO @var_name FROM 表名;(2)使用注意: 用户定义的变量无需对其进行声明或初始化,只不过获取到的值为NULL。

2023-02-26 13:49:53 905

原创 MySQL进阶(一)

MySQL体系结构:(1)连接层最上层是一些客户端和链接服务,包含本地sock 通信和大多数基于客户端/服务端工具实现的类似于TCP/IP的通信。主要完成一些类似于连接处理、授权认证、及相关的安全方案。(2)服务层第二层架构主要完成大多数的核心服务功能,如SQL接口,并完成缓存的查询,SQL的分析和优化,部分内置函数的执行。所有跨存储引擎的功能也在这一层实现,如 过程、函数等。(3)引擎层存储引擎层, 存储引擎真正的负责了MySQL中数据的存储和提取,服务器通过API和存储引擎进行通信。

2023-02-05 18:11:17 582

原创 MySQL基础

Data Definition Language,数据定义语言,用来定义数据库对象(数据库,表,字段)。例1:创建一个数据库, 使用数据库默认的字符集。在同一个数据库服务器中,不能创建两个名称相同的数据库,否则将会报错。可以通过if not exists 参数来解决这个问题,数据库不存在, 则创建该数据库,如果存在,则不创建。例2:创建一个数据库,并且指定字符集use 数据库名;desc 表名;注意: [...] 内为可选参数,最后一个字段后面没有逗号。

2022-11-13 12:59:25 440

原创 SpringBoot——原理

其实不管是springboot程序还是spring程序,启动过程本质上都是在做容器的初始化,并将对应的bean初始化出来放入容器。在spring环境中,每个bean的初始化都要开发者自己添加设置,但是切换成springboot程序后,自动配置功能的添加帮助开发者提前预设了很多bean的初始化过程,加上各种各样的参数设置,使得整体初始化过程显得略微复杂,但是核心本质还是在做一件事,初始化容器。...

2022-08-13 18:03:20 1794

原创 SpringBoot——开发实用(二)

info端点描述了当前应用的基本信息,可以通过两种形式快速配置info端点的信息配置形式在yml文件中通过设置info节点的信息就可以快速配置端点信息infoappNameversioncompany传智教育authoritheima编程形式通过配置的形式只能添加固定的数据,如果需要动态数据还可以通过配置bean的方式为info端点添加信息,此信息与配置信息共存。@Component@Override//添加单个信息//添加一组信息}}...

2022-07-31 20:41:01 554

原创 SpringBoot——开发实用(一)

一个springboot项目在运行时实际上是分两个过程进行的,根据加载的东西不同,划分成base类加载器与restart类加载器。base类加载器用来加载jar包中的类,jar包中的类和配置文件由于不会发生变化,因此不管加载多少次,加载的内容不会发生变化restart类加载器用来加载开发者自己开发的类、配置文件、页面等信息,这一类文件受开发者影响热部署的过程实际上是重新加载restart类加载器中的信息。......

2022-07-23 09:20:29 740

原创 SpringBoot——运维

1、Windows命令2、日志日志其实就是记录程序日常运行的信息,主要作用如下:编程期调试代码运营期记录信息记录日常运营重要信息(峰值流量、平均响应时长……)记录应用报错信息(错误堆栈)记录运维过程数据(扩容、宕机、报警……)日志设置好以后可以根据设置选择哪些参与记录。这里是根据日志的级别来设置的。日志的级别分为6种,分别是:TRACE:运行堆栈信息,使用率低DEBUG:程序员调试代码使用INFO:记录运维过程数据WARN:记录运维过程报警数据ERROR:记录错误堆栈信息FATAL:灾难

2022-06-28 09:55:17 257

原创 Spring高级(五)—— Spring补充

目录1、FactoryBean2、@Indexed3、代理进一步理解4、@Value 装配底层5、@Autowired 装配底层6、事件监听器7、事件发布器它的作用是用制造创建过程较为复杂的产品, 如 SqlSessionFactory, 但 @Bean 已具备等价功能使用上较为古怪, 一不留神就会用错被 FactoryBean 创建的产品会认为创建、依赖注入、Aware 接口回调、前初始化这些都是 FactoryBean 的职责, 这些流程都不会走唯有后初始化的流程会走, 也就是产

2022-06-14 10:37:14 246

原创 Spring高级(四)—— SpringBoot

目录1、构建boot项目2、Boot 启动过程1、SpringApplication 构造​编辑 2、执行 run 方法3、Tomcat 内嵌容器4、Boot 自动配置1、AopAutoConfiguration2、DataSourceAutoConfiguration3、MybatisAutoConfiguration4、TransactionAutoConfiguration5、ServletWebServerFactoryAutoConfiguration6、DispatcherServletAuto

2022-06-14 10:36:49 452

原创 Spring高级(三)—— SpringMVC

目录1、RequestMappingHandlerMapping 与 RequestMappingHandlerAdapter1、DispatcherServlet 初始化2、参数解析器3、参数名解析4、对象绑定与类型转换1、底层第一套转换接口与实现 (Spring)2、底层第二套转换接口(jdk)3、高层接口与实现4、类型转换与数据绑定5、数据绑定工厂6、获取泛型参数 5、@ControllerAdvice 之 @InitBinder6、控制器方法执行流程(@ModelAttribute)7、返回值处理器

2022-06-13 16:31:25 899

原创 Spring高级(二)—— AOP

目录1、AOP的实现1、ajc 编译器2、agent 类加载2、AOP 实现之 proxy1、jdk 动态代理​编辑2、cglib 代理3、jdk 动态代理进阶反射优化4、cglib代理进阶cglib避免反射5、jdk 和 cglib 在 Spring 中的统一6、切点匹配7、从 @Aspect 到 Advisor1、代理创建器2、代理创建时机3、@Before 对应的低级通知8、静态通知调用1、通知的调用过程2、模拟 M...

2022-05-31 13:31:05 648

原创 Spring高级(一)—— 容器与Bean

1、容器接口 BeanFactory 接口,典型功能有: getBean ApplicationContext 接口,是 BeanFactory 的子接口。它扩展了 BeanFactory 接口的功能,如: 国际化 通配符方式获取一组 Resource 资源 整合 Environment 环境(能通过它获取各种来源的配置信息) 事件发布与监听,实现组件之间的解耦 1、BeanFactory 与 Applica

2022-05-21 21:56:08 884

原创 Spring Security OAuth2.0认证授权(三)

1、Spring Security 实现分布式系统授权UAA认证服务负责认证授权。 所有请求经过 网关到达微服务 网关负责鉴权客户端以及请求转发 网关将token解析后传给微服务,微服务进行授权。2、注册中心与网关搭建 <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> .

2022-05-04 13:55:00 776

原创 Spring Security OAuth2.0认证授权(二)

授权服务配置分成三大块,可以关联记忆。

2022-05-03 15:15:02 1151

原创 Spring Security OAuth2.0认证授权(一)

1、基本概念1、认证用户认证就是判断一个用户的身份是否合法的过程,用户去访问系统资源时系统要求验证用户的身份信息,身份合法方可继续访问,不合法则拒绝访问。常见的用户身份认证方式有:用户名密码登录,二维码登录,手机短信登录,指纹认证等方式。认证是为了保护系统的隐私数据与资源,用户的身份合法方可访问该系统的资源。2、会话用户认证通过后,为了避免用户的每次操作都进行认证可将用户的信息保证在会话中。会话就是系统为了保持当前用户的登录状态所提供的机制,常见的有基于session方式、基于token

2022-04-04 21:03:08 2049

原创 Elastic-Job 分布式任务调度

1、介绍我们可以先思考一下业务场景的解决方案:某电商系统需要在每天上午 10点,下午3点,晚上8点发放一批优惠券。 某银行系统需要在信用卡到期还款日的前三天进行短信提醒。 某财务系统需要在每天凌晨 0:10结算前一天的财务数据,统计汇总。 12306 会根据车次的不同,设置某几个时间点进行分批放票。 某网站为了实现天气实时展示,每隔 10分钟就去天气服务器获取最新的实时天气信息。Elastic-job:当当网借鉴TBSchedule并基于quartz二次开发的弹性分布式任务调度系统,功能丰

2021-12-22 20:42:40 230

原创 面试——微服务、MQ、Redis

目录1、微服务篇1、SpringCloud常见组件有哪些?2、Nacos的服务注册表结构是怎样的?3、Nacos如何支撑阿里内部数十万服务注册压力?4、Nacos如何避免并发读写冲突问题?5、Nacos与Eureka的区别有哪些?6、Sentinel的限流与Gateway的限流有什么差别?7、Sentinel的线程隔离与Hystix的线程隔离有什么差别?2、MQ篇1、你们为什么选择了RabbitMQ而不是其它的MQ?2、RabbitMQ如何确保消息的不丢失?3

2021-12-19 10:39:59 510

原创 Mongodb(二)—— 集群和安全

1、副本集副本集没有固定的“主节点”;整个集群会选出一个“主节点”,当其挂掉后,又在剩下的从节点中选中其他节点为“主节点”,副本集总有一个活跃点(主、primary)和一个或多个备份节点(从、secondary)。两种类型三种角色两种类型:主节点( Primary)类型:数据操作的主要连接点,可读写。 次要(辅助、从)节点( Secondaries)类型:数据冗余备份节点,可以读或选举。三种角色:主要成员(Primary):主要接收所有写操作。就是主节点。 副本成员(Replica

2021-12-10 14:15:02 693

原创 MongoDB(一)—— 基础学习

目录1、简介2、部署1、win部署2、连接数据库3、Linux部署3、基本常用命令数据库相关:集合操作:文档CRUD操作1、插入操作2、查询操作3、文档更新4、删除文档的分页查询1、统计查询2、分页列表查询3、排序查询文档的更多查询4、索引索引管理操作索引的使用涵盖查询5、实践MongoTemplate数据操作方面的共同特点是:数据量大 写入操作频繁(读写都很频繁) 价值较低的数据,对事务性要...

2021-12-06 21:11:45 628

原创 RocketMQ(二)—— 高级功能

目录1、消息存储消息存储结构刷盘机制1、同步刷盘2、异步刷盘2、高可用性机制1、消息消费高可用2、消息发送高可用3、消息主从复制1、同步复制2、异步复制3、负载均衡1、Producer负载均衡2、Consumer负载均衡1、集群模式2、广播模式4、消息重试1、顺序消息的重试2、无序消息的重试3、配置方式5、死信队列特性6、消费幂等处理方式1、消息存储 消息生成者发送消息 MQ收到消..

2021-12-04 22:09:21 407

原创 RocketMQ(一)—— 基本使用

1、RocketMQ基本使用1、启动1.启动NameServer# 1.启动NameServernohup sh bin/mqnamesrv &# 2.查看启动日志tail -f ~/logs/rocketmqlogs/namesrv.log2.启动Broker# 1.启动Brokernohup sh bin/mqbroker -n localhost:9876 &# 2.查看启动日志tail -f ~/logs/rocketmqlogs/broker

2021-12-01 15:40:25 2368

原创 面试——虚拟机篇(二)

目录1、内存溢出2、类加载类加载过程的三个阶段双亲委派机制提问:3、四种引用1、强引用2、软引用3、弱引用4、虚引用4、finalizefinalize 原理finalize 缺点1、内存溢出误用线程池导致的内存溢出固定大小:任务数过多,导致任务过多带缓冲:线程数有上限,线程数耗尽了线程资源查询数据量太大导致的内存溢出 动态生成类过多导致元空间的内...

2021-11-23 11:17:21 327

原创 MQ高级特性

1、消息可靠性消息从生产者发送到exchange,再到queue,再到消费者,有哪些导致消息丢失的可能性?发送时丢失:生产者发送的消息未送达exchange 消息到达exchange后未到达queueMQ宕机,queue将消息丢失 consumer接收到消息后未消费就宕机1、生产者确认机制RabbitMQ提供了publisher confirm机制来避免消息发送到MQ过程中丢失。消息发送到MQ以后,会返回一个结果给发送者,表示消息是否处理成功。结果有两种请求:publi...

2021-11-21 22:12:52 475

原创 面试——虚拟机篇(一)

目录1、jvm内存结构会发生内存溢出的区域方法区、永久代、元空间2、JVM 内存参数堆内存,按大小设置堆内存,按比例设置元空间内存设置代码缓存内存设置线程内存设置3、JVM 垃圾回收三种垃圾回收算法GC 与分代回收算法分代回收三色标记并发漏标问题垃圾回收器1、Parallel GC2、ConcurrentMarkSweep GC3、G1 GC4、G1 回收阶段 - 新生代回收5、G1 回收阶段 - 并发标记与混合收集...

2021-11-18 14:11:45 412

原创 分布式缓存

1、redis持久化RDB启动redis:redis-server redis-6.2.4/redis.confredis-cliRDB全称Redis Database Backup file(Redis数据备份文件),也被叫做Redis数据快照。简单来说就是把内存中的所有数据都记录到磁盘中。当Redis实例故障重启后,从磁盘读取快照文件,恢复数据。快照文件称为RDB文件,默认是保存在当前运行目录。Redis停机时会执行一次RDB。Redis内部有触发RDB的机制,可以...

2021-11-17 21:52:48 906

原创 分布式事务

在分布式系统下,一个业务跨越多个服务或数据源,每个服务都是一个分支事务,要保证所有分支事务最终状态一致,这样的事务就是分布式事务。1、理论基础1、CAP定理分布式系统有三个指标:Consistency(一致性) Availability(可用性) Partition tolerance (分区容错性)Consistency(一致性):用户访问分布式系统中的任意节点,得到的数据必须一致。Availability (可用性):用户访问集群中的任意健康节点,必须能得到响...

2021-11-13 22:45:02 593

原创 面试——并发篇

1、线程状态线程的六种状态:五种状态:五种状态的说法来自于操作系统层面的划分就绪:可以分到cpu运行:分到cpu阻塞:不能分到cpuRUNNABLE涵盖了就绪、运行、阻塞I/O2、线程池线程池的 7 大核心参数corePoolSize 核心线程数目 ——池中会保留的最多线程数 maximumPoolSize 最大线程数目 —— 核心线程+救急线程的最大数目 keepAliveTime 生存时间 —— 救急线程的生存时间,生存时间内没有新任务,此线...

2021-11-13 13:37:17 550

原创 微服务保护——sentinel

目录1、初识Sentinel1、雪崩问题2、使用Sentinel2、限流规则1、入门2、流控模式流控模式——关联流控模式——链路3、流控效果流控效果——warmup流控效果——排队等候4、热点参数限流3、隔离和降级1、FeignClient整合Sentinel2、线程隔离3、熔断降级熔断策略——慢调用熔断策略——异常比例,异常数4、授权规则1、授权规则2、自定义异常结果5、规则持久化1、规...

2021-11-11 16:20:35 555

原创 面试——框架篇(二)

1、Spring中的注解1、事务@EnableTransactionManagement:启用声明式的事务控制。内部通过 @Import将一些有用的bean加入到Spring容器:transactionAdvisor(事务切面),transactionAttributeSource(解析@Transactional),transactionInterceptor(事务拦截器)。@Transactional:加在方法上,表示这个方法是受事务控制。加在类上,表示这个类中所有公共方法受事务控制。.

2021-11-02 09:02:24 531

原创 MySQL主从同步与分表

1、配置C:\Program Files\MySQLC:\ProgramData\MySQL\修改my.ini主库:[mysqld]#开启日志log-bin = mysql-bin#设置服务id,主从不能一致server-id = 1#设置需要同步的数据库binlog-do-db=store_dbbinlog-do-db=product_db_1binlog-do-db=product_db_2#屏蔽系统库同步binlog-ignore-db=mysql.

2021-10-28 20:40:54 440

原创 面试——框架篇(一)

1、ApplicationContext refreshrefresh 是 AbstractApplicationContext 中的一个方法,负责初始化 ApplicationContext 容器,容器必须调用 refresh 才能正常工作。它的内部主要会调用 12 个方法,我们把它们称为 refresh 的 12 个步骤:1、prepareRefresh这一步创建和准备了 Environment 对象,它作为 ApplicationContext 的一个成员变量 Environ..

2021-10-27 10:55:00 158

原创 面试——基础篇

1、ArrayList的扩容规则ArrayList() 会使用长度为零的数组 ArrayList(int initialCapacity) 会使用指定容量的数组 public ArrayList(Collection<? extends E> c) 会使用 c 的大小作为数组容量 add(Object o) 首次扩容为 10,再次扩容为上次容量的 1.5 倍 addAll(Collection c) 没有元素时,扩容为 Math.max(10, 实际元素个数),有元素时为 M...

2021-10-17 10:09:21 347

原创 Swagger

1、简介Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务它的主要作用是:使得前后端分离开发更加方便,有利于团队协作 接口的文档在线自动生成,降低后端开发人员编写接口文档的负担 功能测试Spring已经将Swagger纳入自身的标准,建立了Spring-swagger项目,现在叫Springfox。通过在项目中引入Springfox ,即可非常简单快捷的使用Swagger。2、Springboot集成swagger

2021-10-13 13:51:19 104

原创 应用配置中心——Apollo

目录1、简介2、使用Apollo1、启动2、创建项目建集群建名称空间新增配置创建一个新的项目3、微服务集成Apollo客户端1、简介Apollo (阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景。服务端基于Spring Boot和Spring Cloud开发,打包后可以直接运行,不需要额外安装Tomcat等应用容器。...

2021-10-12 13:19:27 1581

原创 ES6新特性

1、let 和 const命令问题:var 有一个问题,就是定义的变量有时会莫名奇妙的成为全局变量解决:通过 let把变量的i的作用域控制在了循环内部。const 声明的变量是常量,不能被修改,类似于java中final关键字。2、字符串扩展includes () :返回布尔值,表示是否找到了参数字符串。 startsWith () :返回布尔值,表示参数字符串是否在原字符串的头部。 endsWith () :返回布尔值,表示参数字符串是否在原字符串的尾部。...

2021-10-03 16:13:42 404

原创 分布式搜索引擎——elasticsearch(三)

1、数据聚合聚合可以实现对文档数据的统计、分析、运算。聚合常见的有三类:桶(Bucket)聚合:用来对文档做分组 TermAggregation:按照文档字段值分组 Date Histogram:按照日期阶梯分组,例如一周为一组,或者一月为一组 度量(Metric)聚合:用以计算一些值,比如:最大值、最小值、平均值等 Avg:求平均值 Max:求最大值 Min:求最小值 Stats:同时求max、min、avg、sum等 管道(pipeline)聚合:其它聚合的结果为基础做聚合 ​

2021-10-01 17:00:10 561

原创 分布式搜索引擎——elasticsearch(二)

1、DSL查询语法常见的查询类型包括:查询所有:查询出所有数据,一般测试用。例如:match_all 全文检索(full text)查询:利用分词器对用户输入内容分词,然后去倒排索引库中匹配。例如: match_query multi_match_query 精确查询:根据精确词条值查找数据,一般是查找keyword、数值、日期、boolean等类型字段。例如: ids range:根据值的范围查询 term:根据词条精确值查询 地理(geo)查询:根据经纬度查询。例如:

2021-09-30 13:42:39 256

原创 分布式搜索引擎——elasticsearch(一)

1、认识elasticsearch正向索引和倒排索引elasticsearch采用倒排索引:文档(document):每条数据就是一个文档 词条(term):文档按照语义分成的词语倒排索引中包含两部分内容:词条词典(Term Dictionary):记录所有词条,以及词条与倒排列表(Posting List)之间的关系,会给词条创建索引,提高查询和插入效率 倒排列表(Posting List):记录词条所在的文档id、词条出现频率 、词条在文档中的位置等信息...

2021-09-28 13:31:20 372

原创 RabbitMQ

1、初识MQ运行MQ容器docker run \ -e RABBITMQ_DEFAULT_USER=itcast \ -e RABBITMQ_DEFAULT_PASS=123321 \ --name mq \ --hostname mq1 \ -p 15672:15672 \ -p 5672:5672 \ -d \ rabbitmq:3-managementhttp://192.168.126.133:15672/itcast 123321...

2021-09-25 13:46:15 97

空空如也

空空如也

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

TA关注的人

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