暂时未有相关云产品技术能力~
暂无个人介绍
Spring 定义 CacheManager 和 Cache 接口用来统一不同的缓存技术。例如 JCache、 EhCache、 Hazelcast、 Guava、 Redis 等。在使用 Spring 集成 Cache 的时候,我们需要注册实现的 CacheManager 的 Bean。Spring Boot 为我们自动配置了 JcacheCacheConfiguration、 EhCacheCacheConfiguration、HazelcastCacheConfiguration、GuavaCacheConfiguration、RedisCacheConfiguration、Simple
npm ERR! path XXX\node_modules\abbrev npm ERR! code ENOENT npm ERR! errno -4058
如果使用下面fastjson内置的几种策略,通过名字大家基本上知道它们的作用,这种不会过滤掉日期字段的null
解决方法: 在CMD 中执行 这里不得不介绍下神奇的 netsh winsock reset命令: netsh winsock reset命令,作用是重置 Winsock 目录。如果一台机器上的Winsock协议配置有问题的话将会导致网络连接等问题,就需要用netsh winsock reset命令来重置Winsock目录借以恢复网络。这个命令可以重新初始化网络环境,以解决由于软件冲突、病毒原因造成的参数错误问题。
1.为什么需要RPC 为什么需要 RPC 呢?通俗的讲就是无法在一个进程内,甚至一个计算机内通过本地调用的方式完成的需求, 比如不同的系统间的通讯,甚至不同的组织间的通讯。 由于计算能力需要横向扩展,需要在多台机器组成的集群上部署应用,
graylog 3.0之前的版本在反向代理中存在bug,3.0版本已经修复 不管是通过docker 安装,还是安装包 。配置基本上一样,只需要理解即可 ,下面为我截取的官网一些有帮助大家配置的截图,希望对大家有帮助
备份原来的源 下载阿里源 更改阿里yum源为默认源
使用脚本自动安装 docker官方教程 Install Docker Engine on CentOS | Docker Documentation 在测试或开发环境中 Docker 官方为了简化安装流程,提供了一套便捷的安装脚本,CentOS 系统上可以使用这套脚本安装:
系统要求 Docker CE 支持 64 位版本 CentOS 7,并且要求内核版本不低于 3.10。 CentOS 7 满足最低内核的要求,但由于内核版本比较低,部分功能(如 overlay2 存储层驱动)无法使用,并且部分功能可能不太稳定。 卸载旧版本 旧版本的 Docker 称为 docker 或者 docker-engine,使用以下命令卸载旧版本:
1.获取证书 如果证书已有直接导入即可,如果没有可以自己利用工具生成一个
docker 安装 rabbitmq 3、进入到rabbitmq容器中 docker exec -it localrabbitmq /bin/bash 4、rabbitmq-plugins list 列出所有插件列表 5、rabbitmq-plugins enable rabbitmq_management
docker 安装redis
docker 安装NGINX 并配置映射目录
卸载旧版本docker
启动容器并添加映射
install 本地 deploy 私服
docker pull portainer
浏览器输入: http://ip:9000 账户:admin 密码:123456 minio 文档 https://docs.min.io/ 问题 ERROR Unable to validate credentials inherited from the shell environment: Invalid credentials > Please provide correct credentials
1.编辑docker.service 2.修改ExecStart 如下 3.加载docker守护线程
1.创建docker daemon.json 2.添加docker镜像加速地址 3.重启守护进程
1. 使用集成镜像方式 2.使用单个镜像安装 3. 开放端口 5044 5045 5601
1. jcmd -l 列出当前虚拟机的java进程 2.jcmd 进程ID help 列出当前java进程 能使用的jvm指令。这些指令可通过名字就知道是做什么的
在说问题之前,还是那句话,linux 系统一切皆文件。之所以这个错误,那肯定是某些文件有问题。经过查阅相关资料了解到如下: 1.java进程在启动时,在%TEMP%/hsperfdata_%USERNAME%路径下创建进程的临时文件。 %TEMP% 在windows系统中表示 windows的临时目录。一般在C:\Users\用户名\AppData\Local\Temp %TEMP% 在linux 系统中,一般在/tmp目录下
计算机系统与网络 《图灵的秘密:他的生平、思想及论文解读》 《计算机系统概论》 《深入理解Linux内核》 《深入Linux内核架构》 《TCP/IP详解 卷1:协议》 《Linux系统编程(第2版)》 《Linux内核设计与实现(第3版)》 《深入理解计算机系统(原书第3版)》 《计算机程序的构造和解释(原书第2版)》 《编码:隐匿在计算机软硬件背后的语言》 《性能之颠:洞悉系统、企业与云计算》 《UNIX网络编程 卷1:套接字联网API(第3版)》 《UNIX网络编程 卷2:进程间通信》 《Windows核心编程(第5版)》 《WireShark网络分析就这么简单》 《WireShark网
如果你已经把一个文件夹提交到了 Git 仓库中,但是后来发现这个文件夹不应该被提交,可以按照以下步骤排除已提交的文件夹: 在文件夹的根目录下创建一个名为 .gitignore 的文件。 编辑 .gitignore 文件,添加需要排除的文件夹的名称,以及其他需要排除的文件或文件类型,每个名称占一行。 执行以下命令,将 .gitignore 文件提交到 Git 仓库中:
https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/annotations/ https://kubernetes.io/docs/concepts/services-networking/ingress/
1. 使用 kubeadm CentOS 7 安装 Kubernetes 准备环境 在开始之前,您需要准备以下环境: 一组至少包含两台物理机或虚拟机的计算机,并且它们之间可以相互通信。 每台计算机都应该运行一个支持 Kubernetes 的 Linux 操作系统,如 CentOS 7。 每台计算机都应该有一个静态 IP 地址,并且您需要为每台计算机选择一个主机名。 每台计算机上都需要安装 Docker。
集群信息的各种查看基本上是在Master节点操作 1、查看 Node状态 2、查看 Service 信息 3、查看所有名称空间内资源
切记:一般情况下不建议使用容器方式部署数据库,此方式只是为了验证一些mysql8.0的特性,做学习和测试使用。
简介 magic-api 是一个基于Java的接口快速开发框架,编写接口将通过magic-api提供的UI界面完成,自动映射为HTTP接口,无需定义Controller、Service、Dao、Mapper、XML、VO等Java对象即可完成常见的HTTP API接口开发
前言 RabbitMQ 是一个流行的开源消息代理,它实现了 AMQP(高级消息队列协议)标准,提供了可靠的消息传递机制。RabbitMQ 支持五种不同的工作模式,包括简单模式、工作队列模式、发布订阅模式、路由模式和主题模式,每种模式都适用于不同的应用场景。在本篇博客中,我们将详细介绍这五种工作模式的原理和使用方法,帮助读者更好地理解 RabbitMQ,并且在实践中选择合适的工作模式来处理不同的消息传递需求。
在 Spring 中,循环依赖(Circular Dependency)指的是两个或多个 Bean 之间相互依赖,形成了一个循环依赖的关系。当出现循环依赖时,Spring 需要通过一些特殊的技术手段来解决这个问题,保证 Bean 的正确创建和初始化。下面我们一起通过理论再结合源码一起推导出spring循环依赖底层真想。达到对Spring 循环依赖的底层实现原理的深度剖析。 1. 循环依赖的问题 循环依赖问题的出现原因是因为在创建 Bean 的过程中,Bean 之间相互依赖,导致 Bean 的创建顺序不确定,从而无法保证所有的 Bean 都被正确地创建和初始化。例如,假设有两个 Bean A
1.提炼三句话 整体来讲Spring Boot是通过条件注解、条件评估器和自动配置导入器等机制来实现自动配置的。 条件评估器来判断是否需要加载某个自动配置类。条件评估器通常被定义在“org.springframework.boot.autoconfigure.condition”包中,例如,ClassCondition、BeanCondition、MissingBeanCondition、WebApplicationCondition等 条件注解来判断是否需要加载某个自动配置类。条件注解通常被定义在“org.springframework.boot.autoconfigure.conditi
大家通常只需要给一个类添加一个@SpringBootApplication 注解,然后再加一个main 方法里面固定的写法 SpringApplication.run(Application.class, args); 那么spring boot 到底是如何启动服务的呢。 接下来咱们通过源码解析。 Spring Boot 的启动原理可以概括为以下几个步骤: 加载 Spring Boot 应用程序的启动类 根据启动类所在的包路径扫描相关的类 根据扫描到的类自动配置 Spring 应用程序 启动嵌入式的 Web 服务器 运行 Spring 应用程序
FactoryBean是Spring框架中的一个接口,用于创建和管理其他Bean实例的对象。FactoryBean的底层工作原理是通过实现FactoryBean接口并实现其中的方FactoryBean是Spring框架中的一个接口,用于创建和管理其他Bean实例的对象。FactoryBean的底层工作原理是通过实现FactoryBean接口并实现其中的方法来创建和管理Bean实例。 以下是FactoryBean的代码注释和解释:法来创建和管理Bean实例。 以下是FactoryBean的代码注释和解释:
的通信,支持多种网络后端,如 VXLAN、UDP 和 Host-GW。 Calico:Calico 是一种基于 BGP 的网络插件,它使用路由表来路由容器之间的流量,支持多种网络拓扑结构,并提供了安全性和网络策略功能。 Canal:Canal 是一个组合了 Flannel 和 Calico 的网络插件,它使用 Flannel 来提供容器之间的通信,同时使用 Calico 来提供网络策略和安全性功能。 Weave Net:Weave Net 是一种轻量级的网络插件,它使用虚拟网络技术来为容器提供 IP 地址,并支持多种网络后端,如 VXLAN、UDP 和 TCP/IP,同时还提供了网络策略
有的时候,因为程序或者其他原因,需要知道哪些key 或者操作导致redis 慢查询。提供给开发者找出执行时间较长的 Redis 命令,并优化这些命令以提高 Redis 的性能。 以下是获取 Redis 慢查询的步骤:
我们通常会使用info 命令获取当前redis 实例的详细信息,下面我整理了一份redis info 信息指南 查看统计信息
!! 背景:最近在各种群和博客里,又看见了什么[乐观锁]、悲观锁什么鬼的感觉很高级的词汇,于是乎今天对这几个概念进行整理一下,揭开它神秘的面纱,给大家提供一个基本参考。作为开发人员不管是用什么编程语言,我觉得这些是应该要掌握的。知其然,知其所以然。 锁机制是 MySQL 中用来保证并发访问数据库时数据一致性和完整性的重要机制。在并发访问中,多个事务可能同时对同一份数据进行操作。如果不采用锁机制,就会出现数据错乱和丢失的问题。MySQL 中的锁机制主要包括以下几种类型:
背景:大家好,我是冰点。最近有网友反馈,他在面试过程中被面试官问到,设计模式,他按自己背设计模式的八股文回答了,之后面试官又追问了一句,那你知道 你们项目所用的spring boot都使用了哪些设计模式呢,这些设计模式是怎么应用的呢?。我这位网友,说自己直接懵逼,瞬间感觉之前背的设计模式八股文,一文不值哈哈。那今天我们分析一下Spring Boot 源码中的设计模式应用。工欲善其事必先利其器。加油。
一、前言 今天有个新同学,问我为什么我们的网关服务Spring Cloud Gateway,没有配置路由就可以将请求到路由服务,说他们之前的项目的网关是将路由配置在配置文件中。指定路由类似以下写法。而在现在的项目的配置文件中未发现任何路由配置。觉得很奇怪,Spring-Cloud-Gateway 是如何将请求路由到指定的服务的呢。我让他比对一下配置文件有什么不同,他说就是只有一个spring.cloud.gateway.discovery.locator.enabled=true
有的时候我们需要对mybatis-plus的乐观锁插件进行自定义修改。那么其实mybatis 是已经有个默认的实现,我们只需要将其继承并扩展即可。 0. OptimisticLockerInnerInterceptor 介绍 当要更新一条记录的时候,希望这条记录没有被别人更新 乐观锁实现方式: 取出记录时,获取当前 version 更新时,带上这个 version 执行更新时, set version = newVersion where version = oldVersion 如果 version 不对,就更新失败 但是我们也可以根据自己的业务需求实现自定义的乐观锁插件。 Mybati
背景:今年3月openGauss 5.0发布,升级了资源池化内核能力和DataKit数据全生命周期管理工具,整体在性能、安全性与易用性方面均有大幅提升。本次大会上,共7家数据库伙伴、企业用户基于openGauss 5.0发布商业版和自用版,其中,openGauss嵌入式商业发行版首次发布。至此,openGauss覆盖场景从服务器、边缘扩展到嵌入式,场景更加丰富。 作为之前被 openGauss 3.1版本 踩坑的艰辛过程,又持续的跟进了解了一下Opengauss的近况,特地了分享一下。 1. 产品定位 我们先来看下产品定位,根据官网和发布会我们可以了解到OpenGauss5.0的基本产品定位
SDS是Redis中的一种字符串类型,它是一种二进制安全的字符串,由简单动态字符串(SDS)实现。SDS支持多种数据结构,其中字符串(String)是最常用的一种数据结构之一。SDS的优点在于它可以避免C字符串常见的问题,比如缓冲区溢出和内存泄露等。SDS的常数复杂度获取字符串长度和杜绝缓冲区溢出可以避免使用strlen和strcat函数时的一些问题。同时,SDS的空间预分配和惰性空间释放两种策略可以减少修改字符串的内存重新分配次数。SDS也是二进制安全的,因为它不是以空字符串来判断字符串是否结束,而是以len属性表示的长度来判断字符串是否结束。SDS还兼容部分C字符串函数
Redis是一个高性能的键值存储系统,广泛应用于Web应用、缓存、消息队列等领域。在实际应用中,为了保证Redis的高可用性,通常需要使用主从复制来进行数据备份和故障转移。本文将介绍Redis主从复制的概念、原理和实现方式,以及主从复制中的一些问题和解决方案。
有同学阅读了Redis从入门到精通章节中的《Redis从入门到精通之底层数据结构跳表 SkipList》向我提问Redis从入门到精通之答疑为什么ZSet使用跳跃表而不是平衡树、哈希表。今天就做一个解答
跳表(Skip List)是一种基于链表的数据结构,用于快速地插入、删除和查找元素。跳表通过多层级的指针数组来实现快速的操作,时间复杂度为O(log n),其中n为跳表中元素的个数。Redis中的有序集合(Sorted Set)就是通过跳表来实现的。
在Redis中,整数集(IntSet)是一种底层的数据结构,用于存储整型数据。整数集是一种紧凑的、高效的数据结构,可以用来实现集合等功能。 当一个集合只包含整数值元素,并且这个集合的元素数量不多时,Redis 就会使用整数集合作为集合键的底层实现。
Redis是一种内存数据库,其高性能的基础来自于其底层的数据结构的设计。在Redis中,数据结构是一种抽象和具体的概念,可以看作是Redis提供的一些操作的实现方式。Redis支持多种数据结构,如字符串、列表、哈希、集合、有序集合等。其中,底层的数据结构包括基数树和listpacks,本文将对这两种数据结构进行详细的介绍。
Redis Stream的底层数据结构还涉及到基数树和listpacks,这些结构使得Redis Stream具有高效的空间和时间复杂度,同时允许通过ID进行随机访问。 基数树是一种高效的数据结构,用于存储有序数据集合。在Redis Stream中,消息ID有序集合就是基于基数树实现的。基数树可以快速定位一个元素在有序集合中的位置,以及在有序集合中查找一段范围内的元素。 listpack是一种紧凑的、可扩展的、有序的、二进制数据结构,用于存储多个元素。在Redis Stream中,消息哈希表就是基于listpack实现的。listpack可以高效地存储多个元素,同时支持快速的元素访问插入。