自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 nginx配置密码访问

因为需要使用到htpasswd,htpasswd是Apache服务器中生成用户认证的一个工具,如果未安装,则使用如下命令安装htpasswd。htpasswd 安装成功后,就可以设置用户名和密码,通过如下命令进行设置。以上命令的含义是生成用户名为 sk ,密码为123456 的用户信息。用户名和密码可以根据自己的需求进行设置。在访问时就会如下提示输入账号密码。安装htpasswd。

2023-09-27 10:57:27 721

原创 mysql命令行连接

【代码】mysql命令行连接。

2023-09-26 12:39:06 476

原创 redis命令行连接

【代码】redis命令行连接。

2023-09-26 12:34:58 563

原创 java根据url下载文件nio

【代码】java根据url下载文件nio。

2023-09-25 15:57:35 233

原创 java解压tar.gz文件

【代码】java解压tar.gz文件。

2023-09-25 15:56:05 590

原创 Consul屏蔽api

需要屏蔽api:/v1/internal/ui/nodes?dc=&token=consul 没有设置密码。配置config.json。再访问api,屏蔽成功。

2023-08-04 17:29:20 517

原创 spring boot关闭actuator路径

【代码】spring boot关闭actuator路径。

2023-06-28 15:49:54 641

原创 mysql8 建立SPATIAL KEY 空间索引未生效问题解决

mysql8使用gis功能,建立SPATIAL KEY 空间索引,explain发现索引未生效。多次实验后发现,必须添加SRID配置(注释),索引才能生效。

2023-06-09 10:50:14 1157 2

原创 mysql docker启动命令

docker run --restart=always --privileged=true --name mysql-v /home/data/sdh1/mysql:/var/lib/mysql -p 8306:3306-e MYSQL_ROOT_PASSWORD=3d7xn2:R6w6Y -d mysql:8.0

2023-05-31 15:53:46 150

原创 Spring解决循环依赖

为什么需要三级缓存:可能有需要AOP生成的代理对象。Spring解决循环依赖的方法:三级缓存。

2023-05-08 19:28:46 81 1

原创 Mysql8.0 gis支持

在用户进行插入时可以使用ST_GeomFromText等函数来将WKT格式的GIS数据转换成内部格式进行插入,在进行查询时可以使用ST_AsText函数来将内部数据转换为更直观的WKT结果格式。GEOMETRY:不可实例化的数据类型,但是可以作为一个列的类型,存储任何一种其他类型的数据。

2023-04-27 15:08:47 875

原创 Docker启动kafka

使用zk镜像:wurstmeister/zookeeper。使用kafka镜像:wurstmeister/kafka。Kafka依赖Zookeeper。

2023-04-26 11:32:39 786

原创 系统设计需要考虑的问题

指不断向集群中添加服务器来缓解不断上升的用户并发访问压力和不断增长的数据存储需求。指的是添加新功能时对现有系统的其它应用无影响,这就要求不同应用具备低耦合的特点。

2023-04-25 17:33:59 183

原创 数据库和缓存一致性问题

在「先更新数据库,再删除缓存」方案下,「读写分离 + 主从库延迟」也会导致缓存和数据库不一致,缓解此问题的方案是「延迟双删」,发送「延迟消息」到队列中,延迟删除缓存,同时也要控制主从库延迟,尽可能降低不一致发生的概率。因为写数据库一般会先「加锁」,所以写数据库,通常是要比读数据库的时间更长的。3、更新数据库 + 删除缓存的时间(步骤 3-4),要比读数据库 + 写缓存时间短(步骤 2 和 5)最终 X 的值在缓存中是 1(旧值),在数据库中是 2(新值),发生不一致。写:先更新数据库,后删除缓存。

2023-04-25 17:18:09 446

原创 Redis高可用的三种实现方式

数据在集群模式中是分开存储的,那么节点之间想要知道其他节点的状态信息,包括当前集群状态、集群中各节点负责的哈希槽、集群中各节点的master-slave状态、集群中各节点的存活状态等是通过建立TCP连接,使用gossip协议来进行集群信息传播。哨兵(sentinal)模式则是为了解决这些问题而产生的,它用于对主从模式中每个节点进行监控,当出现故障时通过投票机制,选择新的master节点,并将所有的slave节点连接到master节点。数据写的操作都集中在master上,没有解决master写数据的压力。

2023-04-25 16:38:00 158

原创 Redis常见使用场景

但是查找表的内容不能失效,而缓存的内容可以失效,因为缓存不作为可靠的数据来源。当应用服务器不再存储用户的会话信息,也就不再具有状态,一个用户可以请求任意一个应用服务器,从而更容易实现高可用性以及可伸缩性。可以使用 Redis 自带的 SETNX 命令实现分布式锁,除此之外,还可以使用官方提供的 RedLock 分布式锁实现。在分布式场景下,无法使用单机环境下的锁来对多个节点上的进程进行同步。Set 可以实现交集、并集等操作,从而实现共同好友等功能。ZSet 可以实现有序性操作,从而实现排行榜等功能。

2023-04-25 16:29:10 783

原创 分库分表,shardingJdbc和Mycat区别

sharding-jdbc后续发展为Sharding-Sphere,包含sharding-jdbc、Sharding-Proxy、Sharding-Sidecar。时间范围策略通常用于冷热数据分离,例如美团限查近3个月的订单,量体比较大,而且历史数据使用相对较少。城市这种分表策略,类似于多租户的概念,业务处理场景一样,但是数据独立。shardingJdbc和Mycat都可以用来分库分表。3、城市-有明显业务特征的分表。关于分表策略通常分为三种。2、范围分表-通常是时间。

2023-04-25 15:23:26 1298

原创 Spring Cloud 与 Dubbo 区别

3、SpirngCloud一般只支持java(还有Scala,Groovy等),dubbo支持java、go、python、node.js等多种语言。SpringCloud:SpirngCloud 定位为微服务架构下的一站式解决方案。2、dubbo基于rpc(底层netty)、SpirngCloud基于http。目前Dubbo已经很好的整合到SpringCloud体系中,可以相互配合使用。Dubbo:关注点主要在于服务的调用,流量分发、流量监控和熔断。

2023-04-25 15:08:00 693

原创 进程间通信手段

进程通信手段:

2023-04-24 16:51:56 57

原创 操作系统调度算法

1.3 最短剩余时间优先 shortest remaining time next(SRTN)1.1 先来先服务 first-come first-serverd(FCFS)1.2 短作业优先 shortest job first(SJF)2.3 多级反馈队列(时间片轮转 + 优先级)

2023-04-24 16:51:14 55

原创 秒杀系统如何设计

3、对于写请求,做请求队列,每次只透有限的写请求去数据层,如果均成功再放下一批,如果库存不够则队列里的写请求全部返回“已售完”。用redis,lua脚本扣库存,负数返回失败。2、同一个uid,限制访问频度,做页面缓存,x秒内到达站点层的请求,均返回同一页面。同一个item的查询,例如车次,做页面缓存,x秒内到达站点层的请求,均返回同一页面。5、保证活动数据库和库存数据一致:分布式事务或消息队列。8、应对恶意请求和爬虫:验证码、动态url。7、资源静态化、用CDN动静分离。对于读请求,用缓存。

2023-04-20 17:05:20 653

原创 MongoDB高可用方案

2、Replica Set 副本集模式。1、Master-Slave 模式。3、Sharding 模式。

2023-04-20 16:38:37 260

原创 SpringCloud和SpringCloudAlibaba技术对比

2023-04-19 16:31:27 82

原创 k8s Deployment

rs v1控制三个pod,删除一个pod,在rs v2上重新建立一个,依次类推,直到全部都是由rs v2控制,如果rs v2有问题,还可以回滚,Deployment是建构在rs之上的,多个rs组成一个Deployment,但是只有一个rs处于活跃状态.一个Deployment控制器会创建一个新的ReplicaSet控制器,通过ReplicaSet创建pod。可以用HPA控制Deployment动态扩缩容。

2023-04-18 17:01:19 57

原创 ZooKeeper、Eureka、Consul、Nacos区别

2023-04-18 15:55:15 64

原创 LeetCode136. 只出现一次的数字

【代码】LeetCode136. 只出现一次的数字。

2023-04-13 15:05:17 75

原创 LeetCode215. 第k大的数

【代码】LeetCode215. 第k大的数。

2023-04-13 15:00:08 51

原创 进程状态,线程状态

Java线程状态6种:New、Runnable、Blocked、Waiting、Time_waiting、Terminated。

2023-04-06 14:46:09 345

原创 k8s service

如果有新的能够匹配Label筛选器的Pod出现,它就会被加入Endpoint对象,而消失的Pod则会被剔除。也就是说,Endpoint对象始终是保持更新的。这时,当Service需要将流量转发到Pod的时候,就会到Endpoint对象中最新的Pod的列表中进行查找。随着Pod的时常进出(扩容和缩容、故障、滚动升级等),Service会动态更新其维护的相匹配的健康Pod列表。整个Endpoint对象其实就是一个动态的列表,其中包含集群中所有的匹配Service Label筛选器的健康Pod。

2023-03-30 19:28:27 76

原创 k8s pod

在kubernetes中,k8s并不直接处理容器,而是使用多个容器共存的理念,这组容器就叫做pod。由于不能将多个进程聚集在同一个单独的容器中,所以需要一种更高级的结构将容器绑定在一起,并将它们作为一个单元进行管理。exec:在容器内执行shell命令,根据命令退出状态码是否为0进行判断,0表示健康,非0表示不健康。livenessProbe 当检测失败后,将杀死容器并根据 Pod 的重启策略来决定作出对应的措施。TCPSocket:与容器的端口建立TCP Socket链接。K8S 提供了3种探针。

2023-03-30 19:22:11 56

原创 k8s基本架构

api-server还是其他组件之间的数据交互和通信的枢纽,其他组件彼此之间并不会直接通信,其他组件对资源对象的增、删、改、查和监听操作都是交由api-server处理后,api-server再提交给etcd数据库做持久化存储,只有api-server才能直接操作etcd数据库,其他组件都不能直接操作etcd数据库,其他组件都是通过api-server间接的读取,写入数据到etcd。每个kubelet进程都会在api-server上注册本节点自身的信息,用于定期向master汇报本节点资源的使用情况。

2023-03-30 19:04:53 952

原创 Java 栈和队列实现

【代码】Java 栈和队列实现。

2023-03-30 08:54:31 48

原创 Java类加载过程

验证是连接阶段的第一步,这一阶段的目的是确保 Class 文件的字节流中包含的信息符合《Java 虚拟机规范》的全部约束要求,保证这些信息被当作代码运行后不会危害虚拟机自身的安全。初始化阶段是执行初始化方法 ()方法的过程,是类加载的最后一步,这一步 JVM 才开始真正执行类中定义的 Java 程序代码(字节码)。解析动作主要针对类或接口、字段、类方法、接口方法、方法类型、方法句柄和调用限定符 7 类符号引用进行。准备阶段是正式为类变量分配内存并设置类变量初始值的阶段,这些内存都将在方法区中分配。

2023-03-29 20:01:45 77

原创 zookeeper结构

zookeeper 提供的名称空间非常类似于标准文件系统,key-value 的形式存储。名称 key 由斜线 / 分割的一系列路径元素,zookeeper 名称空间中的每个节点都是由一个路径标识。ZooKeeper服务端支持7种节点类型分别是:持久、持久顺序、临时、临时顺序、容器、持久 TTL、持久顺序 TTL。

2023-03-29 16:38:30 58

原创 ES查询方法总结

2023-03-29 16:29:14 57

原创 Kafka消息堆积处理方案

3.如果是下游的数据处理不及时:提高每批次拉取的数量。每批次拉取的数据过少(拉取的数据/处理时间

2023-03-29 16:22:58 1458

原创 TCP 如何保证传输的可靠性

快重传与快恢复: 在 TCP/IP 中,快速重传和恢复(fast retransmit and recovery,FRR)是一种拥塞控制算法,它能快速恢复丢失的数据包。如果发送机接收到三个重复确认,它会假定确认件指出的数据段丢失了,并立即重传这些丢失的数据段。慢开始: 慢开始算法的思路是当主机开始发送数据时,如果立即把大量数据字节注入到网络,那么可能会引起网络阻塞,因为现在还不知道网络的符合情况。经验表明,较好的方法是先探测一下,即由小到大逐渐增大发送窗口,也就是由小到大逐渐增大拥塞窗口数值。

2023-03-29 16:16:32 101

原创 TCP和UDP对比

2023-03-29 16:01:21 58

原创 HTTP1.0,1.1,2.0,3.0

HTTP3.0 使用 UDP。

2023-03-29 15:45:15 51

原创 Mybatis原理

2、加载映射文件:映射文件即 SQL 映射文件,该文件中配置了操作数据库的 SQL 语句,需要在 MyBatis 配置文件 mybatis-config.xml 中加载。6、MappedStatement 对象:在 Executor 接口的执行方法中有一个 MappedStatement 类型的参数,该参数是对映射信息的封装,用于存储要映射的 SQL 语句的 id、参数等信息。7、输入参数映射:输入参数类型可以是 Map、List 等集合类型,也可以是基本数据类型和 POJO 类型。

2023-03-29 15:40:55 66

空空如也

空空如也

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

TA关注的人

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