自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 解决postGis无法打开的问题

解决postgis无法解决的问题

2024-08-08 09:21:23 206

原创 nohub与java -jar的区别

nohup跟java -jar的区别

2024-04-13 17:23:20 862

原创 Redis提供两种持久化机制RDB和AOF机制

redis的ROB、与AOF

2024-04-13 11:47:47 359 2

原创 redis的缓存击穿、缓存穿透、缓存雪崩

解决redis的缓存击穿、缓存雪崩、缓存雪崩

2024-04-12 21:44:13 774

原创 3、Redis底层原理(持久化+分布式锁)

redis的持久化及分布式锁

2023-07-13 20:21:11 640

原创 2、Redis高级特性和应用(发布 订阅、Stream)

redis的高级特性和应用

2023-07-13 20:19:35 506

原创 1、Redis入门与应用

1970 年布隆提出了一种布隆过滤器的算法,用来判断一个元素是否在一个集合中。这种算法由一个二进制数组和一个 Hash 算法组成。本质上布隆过滤器是一种数据结构,比较巧妙的概率型数据结构(probabilistic data structure),特点是高效地插入和查询,可以用来告诉你 “某样东西一定不存在或者可能存在”。相比于传统的 List、Set、Map 等数据结构,它更高效、占用空间更少,但是缺点是其返回的结果是概率性的,而不是确切的。

2023-07-13 20:18:35 813 1

原创 Spring设计模式及部分技术讲解

spring设计模式及一些技术点

2023-07-13 20:17:03 367

原创 简述synchronized与volatile

简述synchronized与volatile

2022-04-24 22:31:52 284

原创 二分查找法

一、使用前提数据已经按照升序排列!二、基本原理将要查找的元素(key)与数组的中间元素比较 如果key小于中间元素,只需要在数组的前一半元素中继续查找 如果key和中间元素相等,匹配成功,查找结束 如果key大于中间元素,只需要在数组的后一半元素中继续查找key三、实践(low+high)/2low:最小值mid:中位数high:最大值数据如下图所示:查找的元素:key = 5;key=5 与中位数 数组下标为[6]的元素比较,5&l...

2022-01-14 11:01:04 289

原创 kafka基本命令

1、启动服务器 启动zookeeper Kafka 使用ZooKeeper如果你还没有ZooKeeper服务器,你需要先启动一个ZooKeeper服务器。 您可以通过与kafka打包在一起的便捷脚本来快速简单地创建一个单节点ZooKeeper实例。 bin/zookeeper-server-start.sh config/zookeeper.properties[2013-04-22 15:01:37,495] INFO Reading configuration fr...

2021-12-10 16:30:02 1601

原创 tomcat实现https

1、创建证书 进入tomcat的conf文件夹cd /usr/share/tomcat9/conf//创建证书keytool -genkey -alias tomcat -keyalg RSA -keystore /usr/local/tomcat/tomcat.keystore -validity 36500//(参数简要说明:“D:\home\tomcat.keystore”含义是将证书文件的保存路径,证书文件名称是tomcat.keystore ;“-validity...

2021-10-19 11:02:21 138

原创 nginx 实现负载均衡

一、环境 server1,安装nginx、tomcat server2,安装tomcat二、nginx配置 upstream backend { server 192.168.60.233 weight=1; server 192.168.40.215 weight=2; } server { listen 80; listen [::]:80; ...

2021-09-30 10:14:48 2949

原创 MySQL MVCC机制解析

1、MVCC机制多版本并发控制机制,专门控制多个事物并发运行的时候,互相之间会如何影响。MVCC机制 = undo log多本本链条+ReadView机制1)ReadView:执行一个事务,会生成一个ReadView关键的四个字段m_ids:有哪些事务在MySQL里执行还没提交 min_trx_id:m_ids里最小的值 max_trx_id:mysql下一个要生成的事务id,最大的事务id creator_trx_id:现在事务的id假设原来数据库有一行数据,事务id是32,他

2021-08-26 15:51:49 235

原创 MySQL undo版本链解析

数据库的每条字段都有两个隐藏字段,一个是trx_id,一个是roll_pointer,trx_id是最近一次更新事务的id,roll_pointer指向更新这个事务之前生成的undo log。举例:假设有一个事务A(id=50),插入一条数据,此时这条数据的隐藏字段以及指向的undo log 如下图所示,插入的这条数据的值是值A,因为事务A的id是50,所以这条数据的txr_id就是50,roll_pointer指向一个空的undo log,因为在id=50之前是没有数据的。如果有一个事务B修.

2021-08-26 09:29:31 391

原创 事务的4个隔离级别

1、RU(read uncommitted):读未提交不允许发生脏写,可能发生脏读、不可重复读,幻读。两个事务不可能没提交的情况下更新同一行数据。2、RC(read committed):读已提交不允许发生脏写,脏读,可能发生不可重复读,幻读。事务没提交的情况下修改的值,绝对读不到。3、RR(rpeatable read):可重复读不允许发生脏写、脏读,不可能重复读,可能发生幻读。事务一单开始,多查询一个值,会一直读到同一个值。4、serializable:串行化不允许事务并发执

2021-08-25 15:28:11 471

原创 MySQL的脏写、脏读、不可重复读、幻读 解读

1、脏写两个事务没提交的状况下,都修改统一条数据,结果一个事务回滚了,把另外一个事务修改的值也撤销了,所谓脏写就是两个事务没提交状态下修改同一个值。示例:事务A和事务B同事在更新一条数据,事务A先把他更新为A值,事务B紧接着就把他更新为B值,如下图所示:事务A先更新数据值为A,事务B再更新数据值为B,此时事务A突然回滚,回滚为A之前的数据因为事务A回滚数据导致事务B的值也变回了A之前的数据2、脏读你修改了一条数据的值,还没有提交,另一个事务就读到了你修改的值,然后你回滚了,.

2021-08-25 15:03:58 2322

原创 MySQL的free、flush、LRU链表

1、各个链表的作用free链表:存放空的缓存页 flush链表:存放使用到的缓存页 LRU(least recently uesd)链表:存放所有缓存页,将缓存页的使用次数进行排序,当缓存页不够的时候,不常用的缓存也刷入磁盘,清理出的缓存页也供使用2、free链表的使用当数据库启动的时候,mysql会去操作系统申请一块内存空间用来做buffer pool,将磁盘中的数据页缓存在buffer pool中,也就是缓存页,这个时候,缓存页都是空的,因为还没有对数据库进行crud操作,这些缓存页会储存

2021-08-24 17:26:24 920 2

原创 mysql Buffer Pool内存结构

1、Buffer pool核心组件buffer pool是mysql的一个核心组件,数据的curd都是用到了它,视同配合了redo log,undo log,bin log,刷磁盘等机制的运行2、数据库的核心数据模型数据库的核心数据模型是表+字段+行的概念,也就是说数据库中有一个个的表,一个表有很多字段,并且有很多行数据,每行数据都有对应的字段值,例如:name = "Lucry"很多行数据在一个数据页中,当buffer pool从磁盘中缓存数据时,也是缓存的一个个数据页。这些数据页经

2021-08-24 16:08:42 235

原创 MySQL的binlog

1、biglog是什么 redo log属于InnoDB存储引擎特有的log,而binlog叫做归档日志,里面记录的是偏向于逻辑性的日志,类似“对users表中的id=10的一行数据做了更新操作,更新以后的值是什么”binlog不是InnoDB储存引擎特有的日志文件,是属于mysq server自己的日志文件2、提交事务写入binlog提交事务的时候会将redo log日志写入磁盘文件中,同时还会将这次更新对应的binlog日志写入到磁盘文件中。如图所示:从磁盘加载数据—>..

2021-08-24 15:43:56 208

原创 mysql的undo、redo日志

msql的存储引擎又分为多种,常见的有InnoDB、MyISAM、Memery,InnoDB最为常见1、InnoDB的重要内存结构:缓冲池(Buffer Pool)InnoDB存储引擎中有一个非常重要的放在内存里的组件,就是缓冲池(Buffer Pool),便于查询数据,如果内存缓冲池里有数据,可以直接冲缓冲池取数,不需要去查磁盘对数据进行修改的时候,会对此条数据加入独占锁,避免修改的时候其他人修改。例如:id=10,name=‘Lucky’2、undu日志文件:更新的数据写入un.

2021-08-24 15:17:02 1276

原创 MySQL的执行流程

1、由线程读取网络连接中的请求数据2、SQL接口(SQL Interface):负责处理接收到的SQL语句3、 查询解析器(Parser):由查询解析器将sql语句进行解析 我们现在要从“users”表里查询数据 查询“id”字段的值等于1的哪行数据 对查出来的哪行数据要提取里面的“id,name,age”三个字段4、 查询优化器(Optimeizer):选择一个最优的查询路径理解所谓最优查询路径的意思) :1,直接定位到"users"表中的"id"字段等于...

2021-08-24 14:32:24 170

原创 friewall 常用命令

1、firewalld的基本使用启动:systemctl start firewalld查看状态:systemctl status firewalld停止:systemctl disable firewalld禁用:systemctl stop firewalld

2021-06-16 10:00:55 315

原创 对象在内存中的布局

普通对象new XX(); 分为:markword(对象头)、class pointer(类型指针)、instancedata(实例数据)、padding(对齐)int[] a = new int[4] T[] a = new T[5] 分为:markword(对象头)、classpointer(类型指针)、length(数组长度)、instance date(实例数据)、padding(对齐)...

2021-04-22 10:53:38 115

原创 java - 四大元注解

【1】元注解:元注解的作用就是负责注解其他注解。Java5.0定义了4个标准的meta-annotation类型,它们被用来提供对其它 annotation类型作说明。Java5.0定义的元注解:    1.@Target,    2.@Retention,    3.@Documented,    4.@Inherited  这些类型和它们所支持的类在java.lang.annotation包中可以找到。下面我们看一下每个元注解的作用和相应分参数的使用说明。【1.1】@Target:.

2021-03-01 09:45:51 219

原创 Gateway 常用的 Predicate

上面用的path 只是predicate 中的一个,只要使predicates为true 就访问,false不访问。Route PredicateFactoriesSpringCloud Gateway将路由匹配作为Spring WebFlux HandlerMapping基础架构的一部分。SpringCloud Gateway包括许多内置的RoutePredicate工厂。所有这些Predicate都与HTTP请求的不同属性匹配。多个Route Predicate工厂可以进行组合。Sprin..

2020-11-04 11:14:02 378

原创 Gateway的 Filter

路由过滤器可用于修改进入的HTTP请求和返回的HTTP响应,路由过滤器只能指定路由进行使用SpringCloud Gateway内置了多种路由过滤器,他们都由GatewayFilter的工厂类来生成SpringCloud Gateway的 Filter,生命周期有 pro 和 post,种类有GatewayFilter 和 GlobalFilter常用的GatewayFilter 有31种之多GlobalFilter 有10个这里主要介绍一下自定义全局GlobalFilter需要实现两个接

2020-11-04 11:08:59 374

原创 Gateway网关路由的两种配置方式及动态路由

在配置文件yml 中配置代码中注入RouteLocator 的Bean官网案例:https://cloud.spring.io/spring-cloud-static/spring-cloud-gateway/2.2.1.RELEASE/reference/html/#route-metadata-configuration添加配置类package com.atguigu.springcloud.config;import org.springframework.cloud.gateway..

2020-11-04 09:25:23 1988 1

原创 Gateway配置路由以及动态路由

新建module cloud-gateway-gateway9527pom.xml<!--注意不需要web模块依赖,否则报错--><?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:sche.

2020-11-04 09:20:27 649

原创 Gateway 核心概念及工作流程

核心概念:Route(路由):路由是构建网关的基本模块,它由ID、目标URI,一系列的断言和过滤器组成,如果断言为true则匹配该路由Predicate(断言):参考的是Java8的java.util.function.Predicate开发人员可以匹配HTTP请求中的所有内容(例如请求头或请求参数),如果请求与断言相匹配则进行路由Filter(过滤):指的是Spring框架中GatewayFilyter的实例,使用过滤器,可以在请求被路由前或者之后进行修改匹配方式就叫断言,实现这个匹配方式就叫f

2020-09-16 14:26:50 476

原创 Gatewat入门介绍

概述:官网:https://cloud.spring.io/spring-cloud-static/spring-cloud-gateway/2.2.1.RELEASE/reference/html/Cloud 全家桶中有个很重要的组件就是网关,在1.x版本中都是采用的Zuul网关;但在2.x版本中,zuul的升级一直跳票,SpringCloud最后自己研发了一个网关替代Zuul,那就是Spring Cloud GatewayGateway是在Spring 生态系统之上构建的API网关服务,基于Spr

2020-08-29 09:17:16 375

原创 Hystrix 服务熔断

熔断机制概述:熔断机制是应对雪崩效应的一种微服务链路保护机制。当扇出链路的某个微服务出错不可用或者响应时间太长时,会进行服务的降级,进而熔断该节点微服务的调用,快速返回错误的响应信息。当检测到该节点微服务调用响应正常后,恢复调用链路。在SpringCloud框架里,熔断机制通过Hystrix实现,Hystrix会监控微服务间调用的状况,当失败的调用到一定阈值,缺省是5秒内20次调用失败,就会启动熔断机制。熔断机制的注解是@HystrixCommand案例:Controller 调用 Servi

2020-08-10 17:30:08 506

原创 如何使用 Hystrix 服务降级

设置自身调用超时时间的峰值,峰值内可以正常运行,超过了需要有兜底的方法处理,作服务降级fallback服务降级 fallback 既可以放在服务端,也可以放在客户端,但是我们一般放在客户端,这里两种都演示一下。(1) 服务提供者服务降级//业务类启用 @HystrixCommandpackage com.atguigu.springcloud.service;import com.netflix.hystrix.contrib.javanica.annotation.HystrixCommand;

2020-08-10 17:22:08 375

原创 降级容错解决的维度要求

1.超时导致服务器变慢 (转圈)超时不再等待2.出错(宕机或程序运行出错)出错要有兜底3.解决 对方服务(8001)超时了,调用者(80)不能一直卡死等待,必须有服务降级 对方服务(8001)宕机了,调用者(80)不能一直卡死等待,必须有服务降级 对方服务(8001)OK,调用者(80)自己出故障或有自我要求(自己的等待时间小于服务提供者),自己处理降级...

2020-08-10 17:12:50 177

原创 Hystrix 支付微服务构建

新建 module cloud-provider-hystrix-payment8001pom.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/XMLSchema-instance" xsi:schemaLocation="http://ma.

2020-08-10 17:10:17 150

原创 Hystrix 理论讲解

分布式系统面临的问题:复杂分布式体系结构中的应用程序有数十个依赖关系,每个依赖关系在某个时候将不可避免的失败。服务雪崩:多个微服务之间调用的时候,假设微服务A调用微服务B和微服务C,微服务B和微服务C又调用其他的微服务,这就是所谓的 “ 扇出 ” 。如果扇出的链路上某个微服务的调用响应时间过长或者不可用,对微服务A 的调用就会占用越来越多的系统资源,进而引起系统崩溃,所谓的 “ 雪崩效应 ”。对于高流量的应用来说,单一的后端依赖可能会导致所有服务器上的所有资源都在几秒钟内饱和。比失败更糟糕的是,

2020-08-03 13:51:19 129

原创 Ribbon 负载均衡规则替换

1 添加规则类:注意: 官方文档明确给出了警告:这个自定义配置类不能放在 @ComponentScan 所扫描的当前包下以及子包下,否则自定义的配置类就会被所有的 Ribbon 客户端所共享,达不到特殊化定制的目的了。package com.atguigu.myrule;import com.netflix.loadbalancer.IRule;import com.netflix.loadbalancer.RandomRule;import org.springframework.contex

2020-07-27 15:08:08 338 1

原创 Ribbon的核心组件IRule

IRule: 根据特定算法从服务列表中选取一个要访问的服务实现类:com.netflix.loadbalancer.RoundRobinRule 轮询com.netflix.loadbalancer.RandomRule 随机com.netflix.loadbalancer.RetryRule 先按照RoundRobinRule的策略获取服务,如果获取服务失败则在指定时间内会进行重试,获取可用的服务WeightedResponseTimeRule 对RoundRobinRule的扩展,响应速度越快

2020-07-27 15:05:58 180

原创 Riboon与Restful实现负载均衡

Ribbon:Ribbon 是一个软负载均衡的客户端组件,它可以和其他所需请求的客户端结合使用,和 eureka 结合只是其中的一个实例。架构说明:Ribbon 在工作时分成两步:第一步先选择 EurekaServer,它优先选择在同一个区域内负载较少的server第二步再根据用户指定的策略,在从server 取到的服务注册列表中选择一个地址其中Ribbon 提供了多种策略:比如轮询、随机和根据响应时间加权新版eureka引入了ribbon,所以不用自己引入也可以使用负载均衡RestTemp

2020-07-27 15:05:10 297

原创 初识Ribbon

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

2020-07-27 15:03:06 222

空空如也

空空如也

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

TA关注的人

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