自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 8种方案,保证缓存和数据库的最终一致性

我们通常使用缓存机制来提升系统的性能,缓存系统下的读写操作,一般都需要操作数据库与缓存。对于读操作,一般是先查询缓存,查询不到再查询数据库,最后回写进缓存。而对于写操作,究竟是先删除(更新)缓存,再更新数据库,还是先更新数据库,再删除(更新)缓存呢?由于对数据库以及缓存的整体操作,并不是原子性的,再加上读写并发,究竟什么样的方案可以保证数据库与缓存的一致性呢?下面介绍8种方案,配合读写时序图,希望你能从其中了解到保证一致性的设计要点。简单直接,适用于对数据一致性要求较低或者写请求很少的业务。

2024-03-18 20:46:54 227

转载 k8s部署springboot项目

创建SpringBoot 项目 开放一个 /k8s/hello 接口 用于测试通过编写 dockerfile 把springboot项目添加进去 构建一个镜像把镜像 push 到对应的 阿里云仓库(或者harbor 等等..)编写 k8s yaml 进行部署2个副本 + ingress 实现基本的负载均衡kubectl 进行部署访问请求路径 进行测试本篇主要 讲解了 k8s 如何部署springboot项目,过程很简单 ,目前只是半手动部署,后面引入 CICD 实现真正的 自动化部署。

2024-02-20 15:31:13 301

转载 MySQL与Oracle SQL语言差异比较

2. oracle 存储过程可以定义在package中,也可以定义在Procedures中. 如果定义在包中,一个包中可以包含多个存储过程和方法.如果定义在Procedures中,存储过程中不可以定义多个存储过程.执行这个语句将删除除user表之外的其它所有权限表中的相关记录,并且收回在user表中该用户拥有的全局权限。例如,管理员撤销用户admin@localhost对数据库xsxk所拥有的创建、创建数据库及表的权限,并撤销该用户可以把自己所拥有的权限授予其他用户的权限,可使用以下命令。

2024-01-23 14:59:37 56

转载 Mysql8存储GIS数据,QGIS中显示

在创建表时,若不指定坐标系,默认使用SRID 0(表示无限的直角笛卡尔平面,其xy轴未分配任何单位);未指定坐标系时,无法在。以上示例建表时未创建空间索引。

2024-01-22 13:30:00 169

转载 MySQL5.7和MySQL8的区别

为什么用utf8mb4MySQL在5.5.3之后增加了这个utf8mb4的编码,mb4就是most bytes 4的意思,专门用来兼容四字节的unicode。utf8mb4是utf8的超集,除了将编码改为utf8mb4外不需要做其他转换。当然,为了节省空间,一般情况下使用utf8也就够了,既然utf8能兼容绝大部分的字符,为什么要扩展utf8mb4?

2024-01-22 10:54:13 64

转载 CMS回收器、G1回收器、ZGC回收器

截止 JDK 1.8,一共有7款不同的垃圾收集器。每一款的垃圾收集器都有不同的特点,在具体使用的时候,需要根据具体的情况选用不同的垃圾收集器。没有最好的收集器,更没有万能的收集调优永远是针对特定场景、特定需求,不存在一劳永逸的收集器。

2024-01-21 16:35:43 20

转载 kubernetes面试题

1、简述etcd及其特点etcd是CoreOS团队发起的开源项目,是一个管理配置信息和服务发现(service discovery)的项目,它的目标是构建一个高可用的分布式键值(key-value)数据库,基于Go语言实现。特点:简单:支持REST风格的HTTP+JSON API 安全:支持HTTPS方式的访问 快速:支持并发1k/s的写操作 可靠:支持分布式结构,基于Raft的一致性算法,Raft是一套通过选举主节点来实现分布式系统一致性的算法。2、简述etcd适应的场景etc

2024-01-19 15:49:27 15

转载 如何删除macOS系统默认的Python2.7并替换成最新版python3.11

打开官网 https://python.org , 鼠标移动到 Downloads, 直接点击 Python3.11.3 下载 安装。注意该路径其实是一个软链接(类似于Windows系统的快捷方式),通过ls命令查看真实路径是在哪。如果只想输入python命令就可以进入python解释器,你可以设置一个软链接。按照提示安装成功后在终端命令行输入python3.11确认是否安装成功。在终端输入python,显示版本是Python 2.7.15。不只是python这一个命令有设置了软连接,其实还有好多命令。

2024-01-15 15:53:37 170

转载 Docker常用命令

当我们以守护进程方式运行了一个容器,或以交互模式运行了一个容器,但容器内部执行的日志命令占用了交互命令行(就像以交互模式运行tomcat一样),而此时我们又想进入到容器中对容器内部进行一些操作,此时就需要用到exec/attach命令(推荐使用exec)。说明:docker容器在启动的时候,如果不指定端口映射参数,在容器外部是无法通过网络来访问容器内的网络应用和服务的,通过端口映射,我们就可以从外部访问宿主机的指定端口来访问到容器的应用。通过该命令的–help可以查看到docker run命令的语法。

2024-01-12 15:35:36 18

原创 curl:(7) Failed to connect to raw.githubusercontent.com port 443: 拒绝连接

安装zsh拒绝连接有没有科学上网怎么办。

2024-01-11 10:36:52 611

转载 Linux系统升级及内核版本升级

etc/yum.repos.d目录下新建主机的yum源,.repos文件中,repositoryid:指定一个仓库,name指定仓库名称, baseurl:指定仓库的URL,mirrorlist指定仓库的镜像站点,enable是否启用本仓库,gpgcheck是否检查软件包的GPG签名,gpgkey:指定GPG签名文件的URL。执行后,系统会检测是否有可升级的程序,如果有,则会列出详细的升级项,并询问你是否升级,确认后,退出当前命令,执行yum -y update自动升级。与此同时,参与Linux。

2023-12-29 14:06:53 437

原创 centos搭建kubernetes集群步骤

​​​​​​​。

2023-12-29 12:04:05 1203 1

转载 mysql宽表和窄表性能比较

执行show table status:1.1、当avg_row_length的值超过100个字节时(定义为宽表),需要看看怎么优化;1.2、当Data_free的值大于0,表明有碎片;最常见的就是where没有索引优先使用主键索引在查询时避免隐式类型转换in太多字段 导致索引失效能不用就不用!=或<>或IS NULL或NOT或or 会导致索引失效不要在查询中使用数学计算,获取时间等函数合理使用force index 强制使用某个索引 有时候可以更高效。

2023-12-20 15:51:35 169

转载 高并发、秒杀场景下的优化思路

CDN的基本原理是广泛采用各种缓存服务器,将这些缓存服务器分布到用户访问相对集中的地区或网络中,在用户访问网站时,利用全局负载技术将用户的访问指向距离最近的工作正常的缓存服务器上,由缓存服务器直接响应用户请求。最常见的通用顶级域名有7个,即:com(公司企业),net(网络服务机构),org(非营利组织),int(国际组织),gov(美国的政府部门),mil(美国的军事部门)。功能性、效能性,兼容性、易用性、可靠性(容错)、安全性、可维护性、可移植性。:样式文件、脚本文件、图片、视频、文本等等。

2023-09-14 14:33:28 102

转载 使用repotrack下载指定rpm包及其全量依赖包

1.1 使用查看提供某个命令/value的rpm包1.2 使用查看rpm包所需的全部依赖。

2023-06-10 21:51:43 403

原创 mysql索引失效的几种情况

mysql索引失效的一些情况

2022-10-20 15:41:20 1039

转载 配置中心 Nacos 不同环境的配置管理方案

nacos

2022-09-02 16:45:49 1646

转载 MySQL数据库之插入数据时的主键冲突

MySQL数据库之插入数据时的主键冲突

2022-08-29 20:48:50 1102

原创 mysql之left join随笔

mysql随笔

2022-06-18 00:05:53 193

原创 面试被问全文搜索引擎 Elasticsearch,答案都在这里

es

2022-06-10 15:34:40 120

转载 echarts属性的设置大全

// 全图默认背景 // backgroundColor: ‘rgba(0,0,0,0)’,// 默认色板color: [ '#ff7f50' , '#87cefa' , '#da70d6' , '#32cd32' , '#6495ed' , '#ff69b4' , '#ba55d3' , '#cd5c5c' , '#ffa500' , '#40e0d0' , '#1e90ff' , '#ff6347' , '#7b68ee' , '#00fa9a' , '#ffd700' ,.

2022-04-29 19:45:20 1462

转载 一文深入理解 Kubernetes

这篇文章,你要翻很久,建议收藏。Kubernetes,简称 K8s,是用 8 代替 8 个字符“ubernete”而成的缩写。是一个开源的,用于管理云平台中多个主机上的容器化的应用。k8s 作为学习云原生的入门技术,熟练运用 k8s 就相当于打开了云原生的大门。本文通过笔者阅读书籍整理完成,希望能帮助想学习云原生、以及正在学习云原生的童鞋快速掌握核心要点。学习 k8s 和大家学习 linux 差不多,看似复杂,但掌握了日常熟悉的指令和运行机理就能愉快的使用了,本文的重点和难点是服务、kubernet.

2021-06-26 18:42:43 587

原创 mybatis是否支持延迟加载?延迟加载的原理是什么

什么是延迟加载? 延迟加载的条件:resultMap可以实现高级映射(使用association、collection实现一对一及一对多映射),association、collection具备延迟加载功能。 延迟加载的好处: 先从单表查询、需要时再从关联表去关联查询,大大提高 数据库性能,因为查询单表要比关联查询多张表速度要快。 延迟加载的实例: 如果查询订单并且关联查询用户信息。如果先查询订单信息即可满足要求,当我们需要查询用户信息时再查询用户信息。把对用户信息的按需去查询就是延

2021-06-16 13:16:47 1396

原创 RowBounds是一次性查询全部结果吗

RowBounds 表面是在“所有”数据中检索数据,其实并非是一次性查询出所有数据,因为 MyBatis 是对 jdbc 的封装,在 jdbc 驱动中有一个 Fetch Size 的配置,它规定了每次最多从数据库查询多少条数据,假如你要查询更多数据,它会在你执行 next()的时候,去查询更多的数据。就好比你去自动取款机取 10000 元,但取款机每次最多能取 2500 元,所以你要取 4 次才能把钱取完。只是对于 jdbc 来说,当你调用 next()的时候会自动帮你完成查询工作。这样做的好处可以有效的防

2021-06-16 13:10:21 1490 1

原创 mybatis逻辑分页和物理分页的区别是什么

1.物理分页物理分页就是数据库本身提供了分页方式,如MySQL的limit,oracle的rownum ,好处是效率高,不好的地方就是不同数据库有不同的搞法。自己手写 SQL 分页或使用分页插件 PageHelper,去数据库查询指定条数的分页数据的形式。2.逻辑分页逻辑分页利用游标分页,好处是所有数据库都统一,坏处就是效率低。使用 MyBatis 自带的 RowBounds 进行分页,它是一次性查询很多数据,然后在数据中再进行检索。3.常用ORM框架采用的分页技术①:hiber

2021-06-16 13:07:00 3852

转载 JVM性能调优

1、JVM调优目标:使用较小的内存占用来获得较高的吞吐量或者较低的延迟。 程序在上线前的测试或运行中有时会出现一些大大小小的JVM问题,比如cpu load过高、请求延迟、tps降低等,甚至出现内存泄漏(每次垃圾收集使用的时间越来越长,垃圾收集频率越来越高,每次垃圾收集清理掉的垃圾数据越来越少)、内存溢出导致系统崩溃,因此需要对JVM进行调优,使得程序在正常运行的前提下,获得更高的用户体验和运行效率。 这里有几...

2021-06-07 09:33:30 111

转载 Hystrix使用说明,配置参数说明

一、什么情况下会触发fallback方法? 名字 描述 触发fallback EMIT 值传递 NO SUCCESS 执行完成,没有错误 NO FAILURE 执行抛出异常 YES TIMEOUT 执行开始,但没有在允许的时间内完成 YES BAD_REQUEST 执行抛出HystrixBadRequestException NO SHORT_CIRCUITED 断路器...

2021-06-06 16:35:41 1136

转载 深入理解java虚拟机

文章目录 走近JavaJDK、JRE与JVM之间的关系:内存溢出的问题及解决jvm可视化监控工具Java的发展java技术体系Java虚拟机Sun Classic VMExact VMHotSpot VMKVMJRockitJ9DavikMicrosoft JVMAzul VM Liquid VMTaobao VM Java虚拟机的内存管理程序计数器虚拟机栈本地方法栈Java堆方法区运行时常量池对象的创建如何在堆中给对象分配内存线程安全性问题 对象的结构对象的访问定位 垃圾回...

2021-05-29 23:43:48 542 1

转载 spring aop拦截指定方法和自定义注解

1、使用aop需要加入maven依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-aop...

2021-04-11 15:43:08 5123

转载 Dubbo 如何实现分布式事务

2019独角兽企业重金招聘Python工程师标准>>> 分布式事务模型 TCC 模型:TCC-Transaction、HmilyXA 模型:Sharding Sphere、MyCAT2PC 模型:raincat、lcnMQ 模型:RocketMQBED 模型:Sharding SphereSaga 模型:ServiceComb Saga TCC TCC事务解决...

2021-03-31 08:16:08 1088

转载 java 类加载执行的过程

JVM的定义 VM(虚拟机)是用软件实现的物理机,Java的一个重要的设计理念就是编写一次,到处运行,而运行的载体,就是VM。编译器会将Java文件编译成 .class 文件,JVM会加载并执行 .class 文件。下面的图展示了JVM的整体架构。 JVM 架构图 JVM在是如何工作的 如上图所示,JVM由三个子系统构成。 类加载系统 (Class Loader Subsystem)执行时数据区域(R...

2021-03-14 20:44:48 276

原创 epoll和select的区别

select原理概述调用select时,会发生以下事情:1.从用户空间拷贝fd_set到内核空间;2.注册回调函数__pollwait;3.遍历所有fd,对全部指定设备做一次poll(这里的poll是一个文件操作,它有两个参数,一个是文件fd本身,一个是当设备尚未就绪时调用的回调函数__pollwait,这个函数把设备自己特有的等待队列传给内核,让内核把当前的进程挂载到其中);4.当设备就绪时,设备就会唤醒在自己特有等待队列中的【所有】节点,于是当前进程就获取到了完成的信号。poll文件操作返回.

2021-03-10 22:23:54 316

转载 ReentrantLock的lock-unlock流程详解

       最近一段时间在研究jdk里的concurrent包,分为了线程管理,锁操作以及原子操作三个部分。线程管理平时用得还算多,但是锁操作和原子操作基本就没用过,只是以前在大学的时候跑了几个例子玩玩。当看到ReentrantLock的时候,发现用法倒是和synchronized有点类似也很简单,但是内部原理比较复杂。网上查了关于ReentrantLock的相关内容,没发现有谁把它分析得很透彻,只是有几篇讲了...

2021-03-10 22:00:10 327

转载 分布式锁简单入门以及三种实现方式介绍

很多小伙伴在学习Java的时候,总是感觉Java多线程在实际的业务中很少使用,以至于不会花太多的时间去学习,技术债不断累积!等到了一定程度的时候对于与Java多线程相关的东西就很难理解,今天需要探讨的东西也是一样的和Java多线程相关的!做好准备,马上开车! 学过Java多线程的应...

2021-02-28 15:34:15 95

转载 SpringBoot整合Hikari

 Hikari是一款非常强大,高效,并且号称“史上最快连接池”。并且在springboot2.0之后,采用的默认数据库连接池就是Hikari。不需要引入依赖,已经在SpringBoot中包含了。 GitHub地址:https://github.com/brettwooldridge/HikariCP1、在yml中配置# 数据库配置spring: datasource: type: com.zaxxer.hi...

2020-08-30 22:09:21 311

转载 MyISAM与InnoDB 的区别

区别:1. InnoDB支持事务,MyISAM不支持,对于InnoDB每一条SQL语言都默认封装成事务,自动提交,这样会影响速度,所以最好把多条SQL语言放在begin和commit之间,组成一个事务;  2. InnoDB支持外键,而MyISAM不支持。对一个包含外键的InnoDB表转为MYISAM会失败;  ...

2020-08-03 08:30:09 98

原创 SpringCloud常用注解总结

@Controller 控制层,里面有多个连接@Service 业务层,一般对于接口和实现@Qualifier 如果一个接口有多个实现,那么注入时候加上唯一标示@Repository 一般的dao层@Autowired 自动注入依赖@RequestMapping (value=’’,method={RequestMethod。...

2020-07-27 23:44:08 181

转载 深入理解SpringCloud与微服务构建

目录一、SpringCloud微服务技术简介二、开发框架SpringBoot三、服务注册和发现Ereka四、负载均衡五、申明式调用六、熔断器七、路由网关八、配置中心九、服务链...

2019-11-05 23:36:07 300

转载 学会了这些技术,你离BAT大厂不远了

基础篇Java毕向东_Java基础视频教程25天基础版菜鸟教程Java SE 社区JDK 8 中文手册Java入门第一季 慕课网Java入门第二季 慕课网Java入门第三季 慕课网马士兵 Java 基础教程高淇 Java 300 集教程视频小马哥一入Java深似海Java核心技术36讲 极客时间尚硅谷 NIO 视频尚硅谷 Java8新特性视频教程Java核心技...

2019-11-04 23:08:58 239

转载 Spring Cloud全家桶主要组件及简要介绍

一、微服务简介微服务是最近的一两年的时间里是很火的一个概念。感觉不学习一下都快跟不上时代的步伐了,下边做一下简单的总结和介绍。何为微服务?简而言之,微服务架构风格这种开发方法,是以开发一组小型服务的方式来开发一个独立的应用系统的。其中每个小型服务都运行在自己的进程中,并经常采用HTTP资源API这样轻量的机制来相互通信。这些服务围绕业务功能进行构建,并能通过全自动的部署机制来进行独立部...

2019-11-04 23:04:08 163

空空如也

空空如也

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

TA关注的人

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