自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(162)
  • 资源 (1)
  • 收藏
  • 关注

原创 CentOS 系统上使用 yum 安装 Nginx 及其模块

要在 CentOS 系统上使用 yum 安装 Nginx 及其 NJS (Nginx JavaScript Module),首先需要确保你的系统已经包含了 Nginx 的官方仓库,因为 Nginx 的某些模块可能不在默认的软件仓库中。(这里的 URL 适用于 CentOS 7,对于不同版本的 CentOS 或 RHEL,你需要更换为相应版本的 RPM 包链接)

2024-04-17 09:15:58 567

原创 基于yum安装得nginx如何添加stream模块

NGINX于1.9.0版本开始支持stream模块来代理tcp连接。在Centos操作系统若前期以YUM方式安装了nginx,后期想要添加stream模块。

2023-12-20 11:46:32 996

原创 java应用在Windows服务器运行时控制台输出日志中文乱码终极解决办法

第二步、找到【HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor】第三步、新建一个表项,命名为autorun,值设为chcp 65001。第一步、按win+r,输入regedit运行,进入注册表界面。修改注册表,适用于cmd,在各种开发工具终端中均生效。每次启动cmd会自动更改编码为utf-8。

2023-12-07 17:52:27 819

原创 spring应用在afterPropertiesSet方法中获取ApplicationContext

在afterPropertiesSet方法中,我们打印出了ApplicationContext对象。当Spring容器初始化完成后,会自动调用afterPropertiesSet方法,并在其中注入ApplicationContext对象。,afterPropertiesSet方法是一个生命周期方法,它会在所有属性被初始化之后被调用。因此,在方法中获取ApplicationContext对象是安全的,并且可以在该方法中进行任何需要在容器初始化后执行的操作。

2023-11-28 19:45:48 572

原创 Maven聚合项目发布至私服指定模块

无论是从事框架开发工作还是公共服务模块开发,为了解决通用性问题,常常需要发布一些依赖组件至maven私服。然而通常我们得maven工程都是由多个模块组成得聚合工程(一个父工程下有多个模块)。这个时候可能会面临两个窘境:1.当一个个模块分别执行deploy,一方面比较费时费力,另一方面有可能会漏掉父工程得发布导致应用方构建时报无法找到对应父工程依赖得异常。2.当直接从父工程处执行deploy,则导致所有模块被发布至私服。轻则浪费空间,重则有泄密风险。

2023-11-22 16:47:53 641

原创 nginx得if语句内proxy_pass不允许携带url部分,如何处理

1.当访问以/api/ 且满足版本为1.0.0开头的URL时,Nginx将使用rewrite指令将URL中的/api替换为/v100,并将修改后的URL传递给后端服务器。2.当访问以/api/ 且满足版本为2.0.0开头的URL时,Nginx将使用rewrite指令将URL中的/api替换为/v200,并将修改后的URL传递给后端服务器。在nginx中,proxy_pass指令不能直接携带URL部分。但是,可以使用rewrite指令结合正则表达式来处理URL部分。

2023-11-17 11:40:58 521

原创 关于磁盘需要掌握得知识点

扇区是数据的存储单元,物理盘是实际的硬盘驱动器,而位图则是记录磁盘阵列中扇区状态的数据结构。它们之间的关系是,物理盘组成了磁盘阵列,位图用于跟踪每个物理盘中的扇区状态。

2023-06-20 14:35:49 569

原创 基于java服务端实现二维码扫描

在Java中,可以使用第三方库来识别二维码内容。一个常用的库是ZXing(Zebra Crossing),它提供了强大的二维码处理功能。首先,确保已将ZXing库添加到项目中。可以手动下载ZXing JAR文件,也可以使用构建工具(如Maven或Gradle)来管理依赖。在上述代码中,首先通过方法将二维码图片加载为对象。然后,创建对象,它将作为参数。接下来,使用将转换为。使用创建Reader对象,并调用decode()方法传入来解码二维码。最后,通过Result对象获取二维码的内容。

2023-06-16 19:03:22 4724

原创 操作系统-作业管理

作业”一词几乎对于每一个人并不陌生,上幼儿园时开始小孩就要写做作业,家长要辅导作业,上了大学依然在写作业。甚至工作多年也尝尝听到同事见互相调侃要交作业。更加诧异得是好些专业领域也有这么一词。作业究竟意味着什么,在我们所从事得计算机领域又意味着什么,是否需要去管理它?这篇文章将分享个人得理解。

2023-06-16 10:29:10 815

原创 重置DateRangePicker将其恢复到默认状态

如果想重置日期范围选择器(DateRangePicker)以将其恢复到默认状态,可以使用 DateRangePicker 插件提供的。在上述代码中,首先获取日期范围选择器的 jQuery 对象,然后使用。方法来设置日期范围选择器的开始日期和结束日期为初始值。方法将开始日期和结束日期设置为。

2023-06-15 19:51:21 808

原创 freemarker使用小结

FreeMarker是一种模板引擎,使用自己的模板语法来生成文本输出。广泛应用于Java和Java相关的Web应用程序中,例如JSP、文件生成、消息模板等技术场景。

2023-06-15 18:22:20 791

原创 关于应用层面实现数据库分表的思考

某些数据库平台可能不支持或支持有限的分区功能。如果使用的数据库不支持分区表,那么在应用层进行分表可能是唯一的选择。:应用层分表可以提供更大的灵活性和可扩展性。通过在应用层控制分表逻辑,可以根据具体的应用需求进行灵活的分表策略,例如按照时间、地理位置、用户等因素进行分表。这样可以更好地满足应用的需求,避免数据库层面的分区表可能存在的限制。:如果应用需要在不同的数据库平台上运行,数据库层面的分区表可能在不同的数据库平台上具有不同的实现和语法。

2023-06-13 23:14:12 240

原创 说道“内存地址“

内存地址是计算机中用于唯一标识和访问内存中特定位置的一种数值。在计算机的内存系统中,每个存储单元都有一个唯一的地址,类似于房屋的门牌号码。内存地址通常是一个整数值,用于指示内存中的特定位置。在现代计算机系统中,内存地址通常以字节为单位进行编址,每个字节都有一个唯一的地址。例如,一个32位的计算机系统可以有2^32个不同的内存地址,每个地址对应一个字节。通过使用内存地址,计算机可以准确地定位和访问内存中的数据。当程序需要读取或写入特定的内存位置时,它可以使用该位置的内存地址来执行相应的操作。

2023-06-12 23:12:58 1895

原创 非spring框架应用使用logback配置日志

熟悉springboot应用开发得技术人员都知道logback配置文件要生效,只需要创建logback.xml或者logback-spring.xml文件放到对应工程src/main/resources目录下启动应用即可。然而当脱离了spring这个全家桶之后,单纯的java maven工程要使用logback日志组件加载配置却不是那么得熟练了。本人得需求本很简单,使用java语言开发了个SDK工具包,当执行junit单元测试用例得时候,写在逻辑里的日志却打印不出来。先后做了下面的实验,最终还是实现了。

2023-06-12 14:48:48 1176

原创 为什么内存读写性能一定高于磁盘

CPU缓存是位于CPU芯片内部或者紧邻CPU的高速缓存,其访问速度非常快,可以以纳秒级的速度读取和写入数据。这样可以确保缓存的电源开销较低,因为电源供应和CPU之间的距离非常近。相比之下,磁盘通常连接在计算机的主板上,与CPU之间的距离较远,需要额外的电源供应和数据线连接。例如,一个16位的内存总线可以在每个时钟周期中传输16位(2字节)的数据,而一个32位的内存总线可以传输32位(4字节)的数据。类似地,当CPU需要将数据写入内存时,它会向内存总线发送写入请求,并将要写入的数据和目标内存地址传输给内存。

2023-06-12 09:30:53 2829

原创 常用字符串压缩方法

如果当前字符串加上字符不在字典中,则将当前字符串的编码添加到结果列表中,并将当前字符串加上字符添加到字典中,并为它分配一个新的编码。在`main`函数中,首先指定要压缩的输入字符串,然后通过调用`bwtTransform`函数进行压缩,并打印压缩后的结果。这样可以实现对重复出现的字符串的压缩。首先,我们对原始字符串进行编码并打印编码后的字符串,然后对编码后的字符串进行解码并打印解码后的字符串。它使用变长编码来表示不同的字符,使频率较高的字符使用较短的编码,频率较低的字符使用较长的编码。

2023-06-11 19:41:05 6550

原创 文件系统得机制原理是怎样得

文件系统是操作系统中负责管理和组织计算机存储设备上数据的一种机制或软件组件。它提供了一种结构化的方式来存储、访问和管理文件和目录。

2023-06-11 05:44:19 604 1

原创 TCP服务开发过程中所说得大小端是什么

在TCP服务开发过程中,大小端(Endianness)是涉及数据在计算机存储和传输中如何组织和表示的一个概念。它与数据字节序相关,指的是在多字节数据类型(例如整数或浮点数)在内存中如何存储字节的顺序。(Big Endian)是指将最高有效字节(Most Significant Byte,MSB)存储在最低的存储地址,而最低有效字节(Least Significant Byte,LSB)存储在最高的存储地址。这类似于书写习惯,从左到右写入的顺序。

2023-06-10 09:22:21 2381

原创 关于使用Netty过程中多ChannelHandler的顺序

addLast()`是用于向ChannelPipeline添加ChannelHandler的方法。ChannelPipeline是Netty中处理请求和响应的事件处理机制,ChannelHandler负责处理这些事件。当定义一个Server时,可以使用`addLast()`方法将一个或多个ChannelHandler添加到ChannelPipeline的尾部。这样,当请求到达时,它们将按照添加的顺序被依次调用。@Override// 添加自定义的ChannelHandler});

2023-06-10 08:32:31 1215

原创 聊聊“死锁“

死锁”或者Deadlock是计算机科学中一个重要的概念,说得是在并发系统中的一种状态,其中多个进程或线程无限期地等待资源,而无法继续执行下去。当发生死锁时,系统中的进程或线程会陷入一种僵持状态,无法继续进行,导致系统无法正常运行。

2023-06-09 22:46:11 828

原创 写个OkHTTP客户端请求发不出去

使用OkHTTP写了个http请求工具,结果本地测试得过程中请求发不出去,很是不解,经过一番折腾终于搞明白,

2023-06-09 13:29:02 770

原创 理解信号量与PV操作

由于这些操作最初是在荷兰开发的Dijkstra的解决方案中引入的,因此沿用了荷兰语的首字母作为操作的表示方式。P操作(也称为wait操作):当进程或线程需要访问共享资源时,它执行P操作来尝试获取资源。当进程或线程使用完资源后,它执行V操作来增加信号量的值,表示资源再次可用。因此,V操作被表示为"V"。在操作系统中,信号量(Semaphore)和PV操作(P操作和V操作)是用于同步多个进程或线程之间的共享资源访问的机制。需要注意的是,PV操作是原子操作,不会被中断,以确保操作的完整性和正确性。

2023-06-08 22:59:53 1974

原创 springboot应用中使用过滤器

在SpringBoot应用中,使用Filter接口来实现过滤器。下面是一个简单的示例,展示了如何在SpringBoot应用中实现一个过滤器:首先,创建一个实现Filter接口的类。// 在请求处理之前执行的逻辑 System . out . println("Before request processing...");// 继续调用过滤器链 chain . doFilter(request , response);

2023-06-08 11:08:59 1669

原创 使用三态模型说明进程状态并举例

在就绪态中,nginx进程已经准备好处理请求,但由于CPU资源已被其他进程占用,它暂时无法获得执行的机会。操作系统的调度器负责根据一定的调度算法,决定哪些进程可以进入运行态、哪些进程需要进入就绪态,以及何时将阻塞的进程转换为就绪态。就绪:在就绪态中,进程已经满足了所有运行的条件,但是由于CPU已经被其他进程占用,它还没有获得执行的机会。进程在就绪态中等待分配给它的时间片,一旦分配到CPU,进程就会进入运行态。根据进程在不同的执行阶段将进程在操作系统中的状态划分为三种,即运行态、就绪态和阻塞态。

2023-06-07 23:46:32 239

原创 关于kafka消费者超时配置

1. 在 Spring Boot 的配置文件(如 `application.properties` 或 `application.yml`)中添加 Kafka 消费者相关的配置项。在上述示例中,`spring.kafka.consumer.properties.max.poll.interval.ms` 设置了消费者的最大轮询间隔时间为 5000 毫秒(即 5 秒)。2. 创建 Kafka 消费者的配置类,用于自定义消费者的属性。在Kafka中,消费者超时配置是指消费者在等待服务器响应时的超时时间。

2023-06-07 23:33:14 5314

原创 springboot应用中静态资源访问与接口请求冲突

在 Spring Boot 中,你可以通过实现接口并重写方法来配置自定义的静态资源处理器。@Override在上面的示例中,我们创建了一个名为WebConfig的配置类,并实现了接口。在方法中,我们通过对象进行配置。指定了静态资源的 URL 路径模式,这里是/custom/**。指定了静态资源文件的存放位置,这里是,即 classpath 下的 custom 目录。设置了静态资源的缓存时间,这里是 3600 秒。启用资源链。这将在开发环境中提供更好的性能,并启用对版本化资源的支持。

2023-06-07 19:48:32 991

原创 关于常见http请求允许最大请求报文配置小结

是您希望设置的最大报文大小。您可以使用以下单位:K(千字节)、M(兆字节)、G(吉字节)。是您希望设置的最大报文大小,可以使用以下单位:K(千字节)、M(兆字节)、G(吉字节)。完成上述配置后,Spring Boot应用程序将允许接受符合您所配置的最大报文大小的请求。更改"允许的最大实体大小(以KB为单位)"字段的值。完成上述步骤后,您的Nginx将允许最大报文大小符合您所配置的值。完成上述步骤后,您的IIS将允许最大报文大小符合您所配置的值。在"请求筛选器限制"窗口中,选择"请求限制规则"选项卡。

2023-06-07 00:19:31 3227

原创 操作系统类别

操作系统作为计算机系统中非常重要的一个组成部分,可以管理计算机硬件及软件资源,降低用户使用计算机得学习成本。那么究竟有多少操作系统,又应该如何分类。本文将从操作系统的类别及示例两个角度出发,重新认识操作系统。

2023-06-06 23:25:46 1940

原创 npm构建报错FATAL ERROR: Reached heap limit Allocation failed - JavaScript heap out of memory

1. 全局安装 npm install -g increase-memory-limit。使用 increase-memory-limit 插件,增加node服务器内存限制。2. 当前项目执行 increase-memory-limit。

2022-09-28 21:21:48 1043

原创 聊一聊对“事务”的理解

事务即英文Transaction,在软件开发过程中,难免需要考虑处理事务。从微观层面看亦或者从成员最早了解到这个词汇看,事务通常指多条写入数据库的语句需要并发成功执行,从宏观层面看得话则是客户端发出的并发请求需要一致性并发成功完成,即要么都成功要么都失败。这样以来常见的事务分为了单库事务、分布式事务,当然事务数也演进为了一个衡量服务性能的度量单位,比如在推进性能测试验证时用到的tps指标。根据事务的定义,可总结出四个特点ACID,即:原子性(Atomicity): 事务是数据库的逻辑工作单位,事务中包括的诸

2022-07-02 00:51:00 647

原创 比较分析线程池中execute与submit方法的差异

Java中异步处理任务时,我们通常都会定义线程池来执行任务。然而执行的方式通常主要有两种:1.直接调用execute方法。2.调用submit方法,再用Future去get获取执行结果。这两种方法分别有怎样的区别呢?我们翻阅Jdk源码则可发现在Executer类中已有定义execute方法如下:即execute方法可以支持实现了Runnable接口的任务。而我们常用的ExecutorService与Executer的为继承关系。 从上图信息可以看出ExecutorService中定义submit方法的

2022-07-01 23:37:22 473

原创 “乱”谈架构管理怪像

架构师理应站在更高视角更全面的看待问题,亦需要务实研发一些通用性的工具避免研发团队重复造轮子的问题,也可以借助架构师丰富实战经验避免共性问题的出现。这样子应该是职能要求,也算是关联技术人员对架构师这个岗位的共同期望。在日常工作过程中架构师会从技术选型、可用性设计、扩展性设计、性能设计、安全性及可监控性设计等方面出发帮助研发团队提升系统的稳定健壮性。大多数架构师也都拥有这些方面的能力能够推行作出贡献。然而令人比较困惑的是,一旦架构师成为一个团队后,与研发团队关系持平成为竞争关系,前面所提及这一伟大使命则发生了

2022-06-26 06:48:36 58

原创 实现线程池的多种方式

作为Java出身的老码农实现多线程成为一个必备技能,今天盘点一下实现多线程的方法,首先从使用的线程池类型来分有如下这些类别的多线程实现。固定大小线程池定长线程池单一线程再来从获取异步线程池获取任务执行结果方面,说说线程池执行任务的两种方式:使用Future使用Future获取任务执行结果则显得更加简洁。...

2022-06-24 00:59:12 430

原创 线程与进程的区别

进程与线程相信是经常见到的两个名词,无论是在课本上看到,还是操作系统上看到,亦或是办公过程中处理问题都多多少少会遇到。那这俩东西怎么区分呢,又有着怎样的关联?今天一起来盘点盘点。从表象上看,其实操作系统已经告诉我们进程(processor)的概念了,Windows系统当我们打开任务管理器时在列表里会有进程名称如“Chrome”、“Java”、“Intellij idea”等等,Linux系统执行个ps -ef或者top命令则可用把进程列表打开,同时可以看到每个进程占用的内存、CPU情况。而要看线程(thre

2022-06-22 23:51:53 124

原创 架构能力-技术根基之解决疑难问题

无论架构师如何对自己进行分析定位,通常都脱离不了服务人群对架构师的共同期望“解决疑难问题”。看似具有共通点,实则亦有不同处。架构师服务人群通常形形色色,自然所面对的疑难问题就多式多样。例如前线负责功能实现的软件工程师、负责软件质量的测试工程师、负责系统稳定的运维工程师,高高在上的主管领导,遥不可及的业务精英,难得可贵的客户宝宝,亦或有未曾谋面的小白等等。服务对象的多样化,无形中对架构师能力提出了各种各样的要求。然而归根揭底有一个共性就是所有的疑难问题都是以技术为核心。............

2022-06-21 23:48:27 217 1

原创 elasticsearch中根据数字类型字段按区间分组聚合计算

当需要从几十亿条数据分组统计时,关系型数据库因为单点特性显然是有性能瓶颈得。然而针对ES这种天然具备分布式计算特性得存储软件,则变得比较容易。今天分享一个案例:在ES中我们每天要存储30亿条数据,最近遇到一个需求便是通过数据中的一个数字字段按照区间范围分组统计范围内的数据条数,想起了ES本身支持聚合分组查询,于是写下了如下查询请求:这样以来,即可查询在2022年1月1日当天内,按照长度分0-2000,2000-5000,5000-8000,8000-10000,10000以上等5个区间所统计各自数据条

2022-06-20 21:48:58 830

原创 ElasticSearch集群常规检查及优化

从2014年开始接触ElasticSearch到现在已8年有余,由单点使用、主从复制、冷热架构到ILM机制的使用。这些年踩过不少坑,也总结了一些常规检查及优化方法今天分享给大家。集群是否健康,通常由三种状态颜色区分green、yellow、red。非green状态通常由于有分片处于未分配状态导致,如果有副本分配未分配则会变为yellow,若主分片存在问题则直接为red。可以通过这么几个接口进行查看处理:角色分配集群通常至少由两种角色的节点组成,master节点和data节点,那我们如何判断角色配置

2022-06-20 00:49:29 992

原创 架构能力-技术根基之技术选型

闲来无聊,对架构师需要具备技术选型能力进行了分析,分享一下个人的拙见。技术选型,既然是选型无非就是从众多具备共性的技术项中选择一项进行使用。这样以来,我觉得作为架构师需要掌握下面几方面的能力来支撑这么一份差事:首先,需要具有足够丰富的资源库。类似去商场买衣服通常都会货比三家,既然货比三家那就要求最起码得列出三家店铺或者三个品牌来才能谈的上进行选择。对应到咱们的技术选型上,当要做出一项技术的抉择时,首先要求架构师能够列出多个同类的技术。比如要启动一个项目时需要选择编程语言,那我们可以列出C、C++、Java、

2022-06-19 22:33:47 251

原创 浅谈“负责人”

在职场经常会看到负责人这一名词,什么系统负责人、产品负责人、团队负责人等。负责人,顾名思义负责任的人。那究竟是为谁负责呢,今天来聊聊这一有趣的话题。我认为,负责人是为那些受益于所提供服务的对象负责。系统负责人,那就是为使用这个系统的人负责。当系统没有用户的时候,系统负责人就变得多余了。当系统出故障,用户无法体验服务的时候就是系统负责人的责任。产品负责人则是为受益于产品的业务方负责。当产品创造不了价值的时候,那产品负责人也就没什么价值了。团队负责人是为受益于所在团队服务的对象负责。服务对象

2022-06-16 22:22:42 237

原创 MAC升级Nodejs和Npm到最新版

第一步,先查看本机node.js版本: node -v ...

2021-07-14 21:06:00 170

nginx代理私有oss对象存储bucket桶配置

使用nginx代理私有oss对象存储bucket桶,下载/访问文件。

2024-04-17

关于高质量代码提升的分享PPT

关于高质量代码提升的分享PPT

2022-06-22

空空如也

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

TA关注的人

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