![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
笔记
文章平均质量分 57
北漂的菜小白
写代码是我的爱好,做专栏只为了混口饭吃
展开
-
优化记录 -- 记一次搜索引擎(SOLR)优化
solr 调优原创 2023-11-22 10:57:15 · 2773 阅读 · 1 评论 -
MongoDB Long 类型 shell 查询
mongo shell int64 查询语句原创 2023-08-24 18:03:04 · 1300 阅读 · 0 评论 -
学习笔记 --- RabbitMQ
RabbitMQ是一款开源的消息队列中间件,它实现了高级消息队列协议(AMQP)标准。作为一个消息代理,RabbitMQ可以在应用程序之间可靠地传递和存储消息,并支持多种消息传递模式。原创 2023-08-22 14:32:10 · 1036 阅读 · 1 评论 -
spring boot 3使用 elasticsearch 提供搜索建议
用户输入内容,快速返回建议,示例效果如下。通过使用 Spring boot 3 中的 spring-data-elasticesarch 的 CompletionSuggester 功能实现原创 2023-08-21 19:42:06 · 1616 阅读 · 0 评论 -
踩坑笔记 ---- 使用LocalDateTime开通会员到期时间与自动续费业务某天用户突然为0
使用LocalDateTime的同学需要注意下,这东西的plusMonth可能会有点点超出你的认知,这个不能算JDK的bug,没有踩过这个坑的人,可能也想不到这个问题,如果使用这个api,你的程序大概也会这样,希望这个笔记能对你有帮助,在有人找你排查问题的时候,能快速定位并解决问题。原创 2023-05-31 19:32:24 · 959 阅读 · 0 评论 -
极简面试题 --- Redis
Redis 是一个基于内存的键值存储系统,也被称为数据结构服务器。它支持多种数据结构,例如字符串、哈希表、列表、集合和有序集合,并且可以在内存中快速读写。原创 2023-05-12 16:39:21 · 608 阅读 · 1 评论 -
极简面试题 --- Kubernetes
极简面试题和答案--- kubernetes 系列原创 2023-05-09 13:29:48 · 738 阅读 · 1 评论 -
大数据技术(入门篇) --- 使用 Spring Boot 操作 CDH6.2.0 Hadoop
本人是web后端研发,习惯使用spring boot 相关框架,因此技术选型直接使用的是spring boot,目前并未使用 spring-data-hadoop 依赖,因为这个依赖已经在 2019 年终止了,可以点击查看 ,所以我这里使用的是自己找的依赖,Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。H原创 2023-04-17 19:06:04 · 2746 阅读 · 3 评论 -
云原生技术 --- docker的常用命令(一)
【代码】云原生技术 --- docker的常用命令(一) docker 本身类 docker 日志类 docker image类 docker 容器类原创 2022-12-21 17:43:03 · 127 阅读 · 0 评论 -
云原生技术--- centos7.6 安装docker
centos 7.6 使用yum 安装dockerDocker 分为 CE 和 EE 两大版本。CE 即社区版,EE要花钱,以下内容均以CE为例子原创 2022-12-21 17:12:43 · 368 阅读 · 1 评论 -
短链接业务解决方案(附源码项目)
1、首先,你要有一个待跳转的长链接地址,这个链接长度随你心情,多长都行,参数也是看你安排,可以携带用户唯一标识,比如,加密后的用户id 2、使用雪花id,生成一个全局唯一的id 3、 使用算法,生成一个唯一的短key,长度短一些就行4、把这几个数据信息,存储到一张表中5、使用短key,和你的短链接跳转域名,拼接成一个短链接6、将这个短链接,发送给用户7、用户点击短链接,产生get请求,后端服务器拿到这个链接的key,去查询数据库,从而获得长链接地址8、 利用重定向技术,实现从短链接向长链接原创 2022-12-21 11:45:55 · 1694 阅读 · 0 评论 -
学习笔记 --- 排序算法笔记(插入排序)
插入排序是使用双层循环将一个数组分成两部分,左边部分为排好序的数组,右边部分为待排序的数据左边数组的第一位,不需要参加外层循环从分界点的索引位置(拆分成两个数组的index),向左侧数组循环,从尾向头循环因为左侧数组是有序的,所以,如果运气好,满足排序条件,直接break即可,倒霉情况下,需要循环到左侧数组头部。原创 2022-12-19 14:40:32 · 95 阅读 · 0 评论 -
记录一次阿里云ECS服务器系统盘扩容
阿里云ECS服务器系统盘扩容教程原创 2022-11-02 20:06:04 · 1275 阅读 · 3 评论 -
云原生技术 --- k8s存储功能之卷的基础知识学习与理解
临时卷的生命周期与POD是相同的,但是根据卷的类型,可以有这超过pod的生命周期,比如持久卷,当pod生命周期结束的时候,k8s是会直接清理临时卷的,至于数据的清理策略,取决于yml配置。Kubernetes 卷(Volume) 这一抽象概念能够解决这两个问题。原创 2022-10-08 16:50:38 · 261 阅读 · 0 评论 -
谷歌翻译失败解决方案
这几天翻译软件直接罢工,琢磨好几天。谷歌翻译解决方案原创 2022-10-08 09:48:54 · 2361 阅读 · 2 评论 -
云原生技术 --- k8s工作负载之pod的学习与理解
Pod 是可以在 Kubernetes 中创建和管理的、最小的可部署的计算单元。,这些容器共享存储、网络、以及怎样运行这些容器的声明。其中共享上下文包括一组 Linux namespace、控制组(cgroup)和可能一些其他的隔离方面, 即用来隔离容器的技术。在 Pod 的上下文中,每个独立的应用可能会进一步实施隔离。原创 2022-10-01 07:30:00 · 1134 阅读 · 0 评论 -
云原生技术 --- k8s配置组件之ConfigMap的学习与使用
ConfigMap 是一种 API 对象,用来将非机密性的数据保存到键值对中。使用时, Pods 可以将其用作环境变量、命令行参数或者存储卷中的配置文件。ConfigMap 将你的环境配置信息和 容器镜像 解耦,便于应用配置的修改。ConfigMap中的数据是明文保存的。原创 2022-09-30 10:51:30 · 1115 阅读 · 0 评论 -
云原生技术 --- k8s节点组件之kube-proxy的学习与理解
k8s 网络代理(`kube-proxy`)在每个节点上运行。网络代理反映了每个节点上 Kubernetes API 中定义的服务,并且可以执行简单的 TCP、UDP 和 SCTP 流转发,或者在一组后端进行 循环 TCP、UDP 和 SCTP 转发。但是,必须要有一个插件,才可以实现相应的通信功能,它的作用是使发往 Service 的流量(通过ClusterIP和端口)负载均衡到正确的后端Pod。原创 2022-09-29 16:00:20 · 2283 阅读 · 0 评论 -
云原生技术 --- k8s节点组件之容器运行时接口(CRI)的学习与理解
CRI 是一个插件接口,它使 kubelet 能够使用各种容器运行时,无需重新编译集群组件。你需要在集群中的每个节点上都有一个可以正常工作的容器运行时, 这样 kubelet 能启动 Pod 及其容器。容器运行时接口(CRI)是 kubelet 和容器运行时之间通信的主要协议。Kubernetes 容器运行时接口(Container Runtime Interface;CRI)定义了主要 gRPC 协议, 用于集群组件 kubelet 和 容器运行时。原创 2022-09-29 10:43:28 · 809 阅读 · 0 评论 -
云原生技术 --- k8s节点组件之kubelet的学习与理解
Kubernetes 通过将容器放入在节点(Node)上运行的 Pod 中来执行你的工作负载。节点可以是一个虚拟机或者物理机器,取决于所在的集群配置。每个节点包含运行 Pod 所需的服务,比如相关的sc资源、网络资源等等,这些节点由 控制面 负责管理。节点上的组件包括 kubelet、 kube-proxy等。原创 2022-09-28 11:25:54 · 1872 阅读 · 0 评论 -
代码组件 ---- Spring Boot 项目线程池监控
需要对项目中的线程池指标进行监控检查。原创 2022-09-22 11:28:39 · 838 阅读 · 1 评论 -
踩坑记录---openFeign高并发阻塞分析与解决
openFeign在高并发状态下发现阻塞与分析,公司某业务需要使用http协议去大量调用三方推送服务,因项目本身为Spring Cloud 服务,切通信框架为 OpenFeign,所以调用三方服务时,使用的是 OpenFeign。原创 2022-09-22 10:46:17 · 3884 阅读 · 0 评论 -
Spring webflux 中 WebClient 简单使用记录
webflux中 WebClient简单的使用记录原创 2022-08-30 11:37:57 · 1365 阅读 · 2 评论 -
JAVA使用AES实现对称加密
JAVA使用AES实现对称加密。原创 2022-08-09 10:56:42 · 1010 阅读 · 0 评论 -
JAVA使用RSA实现非对称加密
JAVA使用RSA实现非对称加密。RSA加密明文最大长度117字节,解密要求密文最大长度为128字节,所以在加密和解密的过程中需要分块进行。原创 2022-08-01 19:33:43 · 1209 阅读 · 0 评论 -
JAVA使用DES实现对称加密
JAVA使用DES实现对称加密原创 2022-08-01 09:20:10 · 426 阅读 · 0 评论 -
高性能JVM的参数
Xmx可能是最重要的JVM参数。-Xmx定义分配给应用程序的最大堆大小。-Xms定义分配给应用程序的最小堆大小。推荐-Xmx和-Xms设置一样大小,避免频繁的向OS申请内存空间,提升JVM性能。原创 2022-07-15 11:54:13 · 1549 阅读 · 0 评论 -
云原生技术--- 容器知识点
服务器的任何资源都是宝贵的,特别是CPU,但是实际生产活动中,资源的使用率,却不是很高,能占用服务器50%就已经很不错了合理的分配资源是充分利用服务器,降低成本最有效的方式,最简单有效的方式,就是使用容器虚拟化自身的资源隔离占用 10%,容器自身占用不超过1%。这是因为Docker 利用的是宿主机内核,而不需要Guest OS。因此,当新建一个容器时,Docker 不需要和......原创 2022-07-05 13:51:49 · 445 阅读 · 0 评论 -
云原生技术---k8s分布式存储器longhorn简单使用
每个节点先安装命令K8S-master安装helmK8S-master安装longhorn查看pod运行情况原创 2022-07-04 12:56:43 · 1048 阅读 · 0 评论 -
1.8新特性-Lambda表达式(摘自IBM)
个人学习理解:LAMBDA表达式是一种函数式编程思想,基于接口实现使用前提:该接口必须只有一个方法可以使用注解@FunctionInterFace,该注解功能是用于描述接口的作用:和作用,目的是说明该接口只能有一个方法语法:一行语句时:(方法中的参数)->多行语句时:(方法中的参数)->{语句体}如果只有一行语句,且返回一个值时,可以不用写return:(方法中的参......原创 2019-09-03 09:57:03 · 343 阅读 · 0 评论 -
http 协议性能优化的一些知识记录
PUT 和 PATCH 操作在更新资源方面是相似的,但执行更新的方式是不同的。PUT 操作通过向整个资源发送更新来更新资源。PATCH 操作只对需要更新的资源应用部分更新,由此产生的 PATCH 调用可以产生更小的有效负载,从而提高性能。需要注意的是PATCH 调用可不是幂等的。如果响应数据的有效负载非常大,将会减慢请求完成的时间,并且影响性能。简单来说,可以使用 GZip 压缩来减少有效负载的大小,在 Web API 上使用 Deflate 压缩,或者可以将 Accept-EncodingRequest原创 2022-06-22 09:37:30 · 100 阅读 · 1 评论 -
阿里云CDN,使用边缘脚本,http转https
场景某业务需要使用阿里云cdn服务,但个别调用链路,因历史原因使用的是http协议,目前业务需求全部使用https协议踩坑一某http接口使用post协议,在使用阿里云CDN只有,POST请求自动重定向,状态码 301,并且变为GET请求,导致数据丢失踩坑二为了解决坑一,修改nginx配置文件,使用307方式重定向POST,结果无效,分析请求未到达nginx时,就已经被阿里云CDN修改为301重定向,所以nginx配置无效解决方案使用CDN边缘脚本解决步骤配置边缘脚本脚本内容if原创 2022-04-08 14:40:47 · 2425 阅读 · 0 评论 -
nginx 配置文件记录
nginx.conf# 定义Nginx运行的用户user root;# nginx进程数,建议设置为等于CPU总核心数。worker_processes 16;# 全局错误日志定义类型,[ debug | info | notice | warn | error | crit ]error_log /usr/local/nginx/logs/error.log info;# 进程pid文件pid /usr/local/nginx/nginx.pid;# 指定进程可以打开的最大描述符原创 2022-04-07 10:20:19 · 230 阅读 · 0 评论 -
技术调研--- 使用MyBatis连接 MongoDB,实现group by 等聚合查询
需要使用的组件 MongoDB BI Connector简述MongoDB 使用 BI Connector 来支持 BI 组件直接使用 SQL 或 ODBC 数据源方式直接访问 MongoDB,在早期 MongoDB 直接使用 Postgresql FDW 来实现 SQL 到 MQL 的转换,后来实现更加轻量级的 mongosqld 来支持 BI 工具的连接。下载地址https://www.mongodb.com/try/download/bi-connector目录结构mongodrdl原创 2022-03-17 17:40:50 · 8837 阅读 · 0 评论 -
用JAVA实现一个简单的预热功能
背景某服务调用,因服务器性能问题,无法直接使用最大qps进行调用,需要动态加速逻辑设置最大加速时间,设置允许加速到的最大qps代码import org.slf4j.Logger;import org.slf4j.LoggerFactory;import java.util.concurrent.atomic.AtomicLong;/** * 预热控制器 * @author chunyang.leng * @date 2022-03-11 6:22 PM */public cla原创 2022-03-11 20:53:48 · 1334 阅读 · 1 评论 -
Spring Cloud OpenFeign增加解码器,支持非标准MIME Content-Type:text/json
场景描述在使用open feign调用某服务时,接口操作报出如下异常2022-03-07 17:53:18.453 [http-nio-9999-exec-1] ERROR [org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/].[dispatcherServlet]175] - Servlet.service() for servlet [dispatcherServlet] in context with path [] th原创 2022-03-08 10:24:03 · 2684 阅读 · 1 评论 -
Spring Cloud Gateway 服务器性能异常,以及优化策略
版本说明<spring-boot.version>2.3.2.RELEASE</spring-boot.version><spring-cloud.version>Hoxton.SR8</spring-cloud.version><spring-cloud-alibaba.version>2.2.5.RELEASE</spring-cloud-alibaba.version>服务器状态异常部署模式nginx + 3台 cl原创 2022-03-04 20:50:10 · 12833 阅读 · 6 评论 -
获取外置tomcat端口,适用于spring mvc
/** * 获取tomcat 端口 * * @return tomcat 端口 */ public static int getTomcatPort() { int port = 8080; MBeanServer mBeanServer = null; ArrayList<MBeanServer> mBeanServers = MBeanServerFactory.findMBeanServer(原创 2022-02-21 10:07:55 · 770 阅读 · 0 评论 -
代码示例 ---- spring boot 扫描指定包内接口,自动创建代理类
期望目标提供一个可以扫描指定包的注解该包下,全部为接口类型在spring boot环境中,可以正常注入扫描包内的全部接口扫描包内的接口,使用代理模式实现,且,方法执行时,执行自定义代码段思路解析自定义一个注解该注解需要具备一个数组参数,用于存储扫描包的路径已知包内均为接口类型,也就是说,没有实现类,ioc注入必然报错,需要动态创建代理类代理模式两种方案,jdk需要预先实现相关接口,不太方便,cglib可能会更方便一些,所以使用cglib去实现相关功能该代理实现需要被ioc管理代原创 2022-01-22 18:45:55 · 1096 阅读 · 0 评论 -
aqs相关知识点记录
AQS是什么抽象队列同步器,一个抽取了MESA模型的抽象类,封装了一些操作MESA的基本方法AQS能做什么AQS是JUC包的基础,基本上都是依靠aqs去实现的,用于多线程同步操作,即,同一时间,只有一个线程在执行AQS需要理解的属性state用于表示node.head是否持有锁当state为0时,当前线程不持有锁node同步队列的节点,AQS中,同步队列是一个双向链表,每个线程都是一个node,并且,每个线程,都在一个 for(;;)中park,当node.head开始执行,并且stat原创 2021-12-08 11:27:13 · 229 阅读 · 0 评论