- 博客(4995)
- 资源 (10)
- 收藏
- 关注
原创 【Spring】如何对SpringBoot接口返回数据进行脱敏
本章主要讲解如何对SpringBoot接口返回数据进行脱敏,这里我们使用糊涂工具包来做。这里我们主要使用注解来做这个事情,显得更加高级一点,嘿嘿嘿。
2024-09-19 00:30:00 15
原创 【Spring】如何理解SpringBoot中关于请求、连接的几个参数?
我们本章节主要讲解SpringBoot中关于请求、连接的几个参数,参数如下。
2024-09-19 00:15:00 90
原创 【Spring】Spring如何控制bean的初始化顺序
我们有些情况下需要控制Spring的初始化顺序,比如第一个Bean依赖第二个Bean,此时我们就需要控制Spring Bean的初始化顺序。极端情况下,我们的bean依赖顺序可能如下这时候我们该怎么做呢?
2024-09-18 00:30:00 218
原创 【kafka】kafka高可用集群故意挂了一台,控制台无法写入数据
一个环境搞成了高可用环境,然后故意挂掉一台,然后想看看数据是否还能正常的写入和消费。kafka的topic详情如下,挂掉的是1001对应的机器。然后尝试控制台写入报错报错信息显示在请求元数据超时时,批处理中包含的记录已过期。这可能是由于停止了一台机器导致集群的状态发生变化,导致生产者无法及时获取到更新的元数据信息。当生产者发送消息时,它需要获取关于主题和分区的元数据信息,以确定消息应该发送到哪个分区。如果生产者无法及时获取到最新的元数据信息,就会出现超时异常。
2024-09-18 00:15:00 387
转载 【Elasticsearch】Elasticsearch 底层系列之分片恢复解析
我们是基础架构部,腾讯云 CES/CTSDB 产品后台服务的支持团队,我们拥有专业的ES开发运维能力,为大家提供稳定、高性能的服务,欢迎有需求的童鞋接入,同时也欢迎各位交流 Elasticsearch、Lucene 相关的技术!在线上生产环境中,对于大规模的ES集群出现节点故障的场景比较多,例如,网络分区、机器故障、集群压力等等,都会导致节点故障。
2024-09-17 00:30:00 24
原创 【https】https调用报错 Unrecognized SSL message, plaintext connection
今天用Https远程调用,然后报错Unrecognized SSL message, plaintext connection。详情错误如下大概得调用逻辑如下这个异常通常在使用HTTPS时出现,可能是由于网络问题或SSL证书配置不正确导致的。建议按照以下步骤进行排查和解决:检查网络连接:确保网络连接正常,并且没有任何中断或代理问题。如果可能,请尝试在其他网络环境下运行代码,然后观察是否仍然出现相同的异常。检查SSL证书配置:确保所使用的SSL证书是正确配置的,并且与远程服务器的证书匹配。
2024-09-17 00:15:00 107
原创 【Elasticsearch】Elasticsearch查询解析
Elasticsearch(ES)可用于全文检索、日志分析、指标分析、APM等众多场景,而且搭建部署容易,后期弹性扩容、故障处理简单。ES在一定程度上实现了一套系统支持多个场景的希望,大幅度降低使用多套专用系统的运维成本(当然ES不是万能的,不能满足事务等场景)。正是因为其通用性和易用性,ES自2010年发布首个版本以来得到爆发式的发展,广泛应用于各类互联网公司的不同业务场景。
2024-09-16 00:30:00 102
原创 【Arthas】记录一次使用Arthas优化接口速度的经历
一般这里都都比较快,但是本次我们是测试高可用,然后故意宕机了一台,因此我这里如果宕机了太耗时,我们这里查看相关的源码发现这里可以优化一下。这样去判断端口是否通畅,但是如果断开的机器比较多,或者总条数比较多,或者网络比较慢,都会导致这里耗时,这里可以进行异步并行处理。然后继续查看下面的耗时方法,发现这个方法会循环调用,查看代码果然发现是循环调用,而且是在循环中调用一个耗时的方法,调用模式如下。然后查看这个方法的耗时,发现主要耗时在KafkaConsumer:partitionsFor方法上。
2024-09-16 00:30:00 182
原创 【okio】Parameter specified as non-null is null: method okio.Buffer.writeUtf8, parameter string
通过这样的空值检查,您可以避免将null字符串传递给okio.Buffer.writeUtf8方法,从而避免java.lang.IllegalArgumentException异常的发生。您可以添加适当的空值检查,以避免出现这个异常。另外,还可以查看相关输入数据,确认是否存在意外的null值导致了该异常的出现。然后如果你的项目中如果已经引入了http,那么你要先排除okio-jvm,不然你会引入冲突。我写了一个程序如下,实际上比这个复杂,但是核心就是writeUtf8写数据,然后报错。
2024-09-16 00:15:00 118
原创 【Elasitcsearch】Elasitcsearch 底层系列 Lucene 内核解析之 Stored Fields
Lucene 的 stored fields 主要用于行存文档需要保存的字段内容,每个文档的所有 stored fields 保存在一起,在查询请求需要返回字段原始值的时候使用。。例如。。用户定义的其它字段需要在 ES 的 mapping 中显示设置 field 的 store 属性为 true,该字段才会被 store。在查询的时候返回该字段的原始值。本文主要分析 stored fields 的三个流程及文件存储结构,基于 lucene 7.3.0 版本。
2024-09-16 00:15:00 678
原创 【Spring】Spring的jar为什么可以直接运行
还记得我们以前怎么运行起来一个web的包吗?我们以前是把包打成一个war包,然后去运行。还记得我们有时候会遇到的错误吗?为什么我们根据这个里面的加了一个插件就可以运行了呢?这个插件为我们做了什么呢?其实我们加了插件已经,Spring Boot应用打包之后,生成一个Fat jardar包中包含jar),包含了应用依赖的jar包和Spring Boot loader相关的类。我们可以解压一个试试,可以看到里面包含了依赖的包。
2024-09-15 00:30:00 139
原创 【java】new创建一个对象经历那些过程、对象创建的过程
虚拟机遇到一条new指令时,首先将去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已被加载、解析和初始化过。如果没有,那必须先执行相应的类加载过程。
2024-09-15 00:15:00 115
原创 【Spring】Spring中@Component和@Bean的区别?
总的来说,@Component注解适用于声明普通组件,并通过自动装配进行依赖注入;而@Bean注解适用于在配置类中声明复杂的Bean,并提供更细粒度的配置和灵活性。在实际使用中,根据需求和场景选择合适的注解来声明和配置Spring组件。在Spring框架中,@Component和@Bean是两个常用的注解,用于实现组件的声明和配置。
2024-09-14 00:30:00 129
原创 【Spring】为什么有些公司禁止使用@Transactional声明式事务?
如果一个方法中存在较多耗时的操作,很容易引发长事务的问题,长事务会带来锁的竞争和性能的消耗,同时也会导致数据库连接池耗尽,影响程序的正常执行。嵌套调用混乱:如果方法存在嵌套调用,子方法也加了@Transactional声明式事务,这时候就出现了事务嵌套的行为,。@Transactional声明式事务是将事务控制逻辑放在注解里面,如果项目中的复杂度增加,事务的控制可能变的更加复杂。导致代码的可读性和维护性下降。
2024-09-14 00:15:00 32
原创 【MySQL】MySQL 什么情况下不需要建索引?
索引的维护需要消耗额外的资源,并且对表的插入、更新和删除操作有一定的影响。如果表经常被频繁地执行这些写操作,而相对较少进行查询操作,那么过多的索引可能会导致性能下降,因此可以考虑减少索引的数量或选择性地创建索引。:如果某个表只会进行一次性的查询操作,而且查询的范围广泛,那么创建索引的收益可能很小。:你要建立的索引字段,但是查询的时候对该字段进行函数转换查询,这个相当于没有用到索引。我们经常说数据库的表,建立索引能增加查询速度,那么什么情况下,不需要建立索引呢?,那么创建索引对查询性能的提升可能不明显。
2024-09-13 00:30:00 581
原创 【Spring】Spring中有哪些方式能把Bean注入IOC容器中
使用第三方库扩展方式:Spring 支持使用第三方库,如 MyBatis、Hibernate 等,通过配置适配器或相关设置,将这些第三方库所创建的对象注入到 IOC 容器中。注解,指定要自动扫描的包路径,Spring 将自动扫描该包及其子包下的所有带有特定注解的类,并将其注册为 Bean。注解的类,通过 @Bean 注解定义 Bean,同时在配置类中使用。Java 配置方式:使用基于 Java 的配置类,如使用。注解方式:通过在 Bean 类上使用注解,如。自动扫描方式:通过在配置类上使用。
2024-09-13 00:15:00 149
原创 【MySQL】Nginx代理MySQL导致偶然无法链接
遇到一个问题,java 操作mysql ,然后调用过程是 java 到 nginx 然后到 mysql ,现在遇到异常我们部署的情况如下docker容器有2个,分别是flink_node容器 mysql_node容器。然后mysql_node容器内装机了mysql,并且暴露端口3306,但是这个端口是被nginx代理了,也是暴露出3306端口,我们再flink_node容器下访问的时候,绝大部分正常,但是偶然不正常报错信息如下我们的java伪代码如下。
2024-09-12 00:30:00 107
原创 【算法】算法 位运算 合集
0s 表示一串 0,1s 表示一串 1。利用 x ^ 1s = ~x 的特点,可以将一个数的位级表示翻转;利用 x ^ x = 0 的特点,可以将三个数中重复的两个数去除,只留下另一个数。1^1^2 = 2利用 x & 0s = 0 和 x & 1s = x 的特点,可以实现掩码操作。一个数 num 与 mask:00111100 进行位与操作,只保留 num 中与 mask 的 1 部分相对应的位。利用 x | 0s = x 和 x | 1s = 1s 的特点,可以实现设值操作。
2024-09-12 00:15:00 32
原创 【Idea】Idea Maven编译Scala报错: Error compiling the sbt component ‘compiler-interface-2.11.8-56.0‘
这个问题在2020年,就出现了,当初的程序是能运行的,但是今天发现,突然运行报错了。最终发现是我的scala版本编译的Java不一致导致的问题。
2024-09-11 00:30:00 115
原创 【算法】在排序数组中查找元素的第一个和最后一个位置
给你一个按照非递减顺序排列的整数数组 nums,和一个目标值 target。请你找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值 target,返回 [-1, -1]。你必须设计并实现时间复杂度为 O(log n) 的算法解决此问题。
2024-09-11 00:15:00 27
原创 【Kubernetes】KubeSphere给Kubernetes上部署ElasticSearch
我以前使用docker安装ElasticSearch的时候,指定端口、名称、日志目录、数据目录、配置文件、密码信息等信息首先是环境变量配置,因为这个key是有点的,比较特殊,因此需要双引号引起来,设置Elasticsearch的发现类型为单节点。这意味着Elasticsearch将作为单节点运行。第二个是java环境变量这个是数据配置,将一个名为es-config的卷挂载到容器中的/usr/share/elasticsearch/config目录。这是用来存储Elasticsearch的配置文件的。
2024-09-10 00:15:00 403
原创 【Kubernetes】KubeSphere给Kubernetes上部署Redis&设置网络
我以前使用docker安装Redis的试试,指定端口、名称、日志目录、数据目录、配置文件、密码信息登。
2024-09-08 00:30:00 40
原创 【Kubernetes】KubeSphere给Kubernetes上部署中间件-部署MySQL有状态副本集
我们如果想做配置,可以在下面的地方创建配置,然后内容是以key 和value的形式展示,这个key是文件名称,value是整个文件内容。首先是Pod,然后Pod里面是我们的MySQL 官方镜像,然后在容器内指定一个环境变量是MYSQL的密码。相比于docker部署MySQL,如果我们使用KubeSphere部署MySQL,那么应该是这样的?MySQL的数据我们以PVC的方式挂在出来,然后配置文件可以以ConfigMap的方式提供。首先我们要想清楚,如果我们在云上部署应用,那么我们的应用应该以什么模式部署?
2024-09-08 00:15:00 123
原创 【Kubernetes】Linux单节点部署KubeSphere
centos7.9;防火墙放行 30000~32767;指定hostname。这里我们可以参考官网。这里我们可以使用这种。
2024-09-06 00:15:00 34
原创 【Kubernetes】Kubernetes上安装KubeSphere
首先我们要初始化我们的机器,使其扩容。具体要求如下我们先把主节点升级到4核8G然后同理将其他节点调整成 8核16G,替换完成后如图。
2024-09-05 00:15:00 39
原创 【kubernetes】kubernetes secret 安全相关
Kubernetes 中的 Secret 对象类型用于存储和管理敏感信息,如密码、API 密钥和其他敏感数据。Secret 对象提供了一种安全地存储和传递这些敏感信息的方式,以供 Pod 使用。总的来说,Kubernetes 中的 Secret 对象为处理敏感信息提供了一种安全可靠的机制,帮助用户管理和使用与应用程序相关的私密数据。
2024-09-04 00:30:00 47
原创 【kubernetes】kubernetes 抽象存储之 ConfigMap
ConfigMap可以实现抽取应用配置,并且自动更新在Kubernetes中,ConfigMap是一种用于存储非机密性配置数据的API对象。它可以用来存储配置信息,例如环境变量、命令行参数、配置文件等。ConfigMap提供了一种将配置数据与应用程序代码分离的方式,使得应用程序更加灵活和可配置。适合什么场景ConfigMap适用于需要将配置信息与应用程序代码解耦的场景,特别是在容器化的环境中。
2024-09-04 00:15:00 342
原创 【kubernetes】kubernetes 抽象存储之PV和PVC
PV:持久卷Persistent Vvolume),将应用需要特久化的数据保存到指定位置【相当于真正存储位置】PVC:持久卷申明 Persistent Volume Claim ),中明需要使用的持久卷规格【相当于存储的申请说明书,比如1M空间】在 Kubernetes 中,PV(Persistent Volume)和 PVC(Persistent Volume Claim)是用于持久化存储的两个重要概念。它们允许你在容器化应用中使用持久化存储,使数据在 Pod 重启或迁移时仍然可用。
2024-09-03 00:30:00 293
原创 【kubernetes】kubernetes 安装 NFS 网络文件系统
我们想做抽象存储案例,但是却需要先装一个NFS网络文件系统,因此本章我们来装NFS网络文件系统。
2024-09-03 00:15:00 128
原创 【kubernetes】kubernetes service 暴露端口到公网案例
这个是每个机器都开了一个端口30948,这意味这我们访问每一台都是可以的。service给我们开通的ip是10.96.109.130,端口是30948。在上一篇文章中我们学会了在容器之间如何暴露端口,但是外网是不能访问的,pod之间是可以访问的。然后我们使用这些ip发现可以远程访问,而且还会自动的负载均衡,也说明走了service。我们先查看我们的云服务器ip信息如下。下面我们准备暴露这个端口,这里注意我们指定了。因为我们使用的是云机器,所以我们要开通安全组。我们先看看我们之前的设置如下。
2024-09-02 00:30:00 33
原创 【kubernetes】kubernetes 抽象存储
但是这个会面临一个严重的问题,如果某个pod挂了,那么k8s会自动重新再其他机器创建这个pod,然后我们的数据就对不上了,比如我在nodeA创建了一个本地文件aa.txt,然后pod挂掉之后,k8s在nodeB创建了新的Pod,此时新的Pod本地是没有aa.txt文件了。我们把所有的凌乱的东西都统一起来,这就是存储层,存储层的主要功能就是将所有的Pod与存储关联起来,就算Pod重建后,指向的仍然是一个存储地址。所以我们一般情况下,会把pod的存储挂到外面,比如下面的图示。新的Pod本地是没有数据的。
2024-09-02 00:30:00 31
原创 【kubernetes】kubernetes service 案例、暴露端口案例
我们可以访问看看,但是这三个Nginx的首页都是一样的,不好区分,为了方便后面的测试,修改下三台nginx的index.html页面(三台修改的IP地址不一致)可以看到这里有个ip信息,然后我们访问这个,可以看到每次的的主页信息都不一致,这是因为默认做了轮训处理。现在我们暴露这个service端口和ip,这里暴露访问外面的8000,就是访问我们的80端口。下面我们给三个nginx的主页都换成一下。这里可以看到我们刚刚暴露的service。可以看到我们的标签是nginx。查看我们的nginx。
2024-09-01 00:15:00 83
原创 【kubernetes】kubernetes Deployment StatefulSet DaemonSet Job/CronJon 区别
总的来说,Deployment用于无状态应用程序的部署,StatefulSet用于有状态应用程序的部署,DaemonSet用于在每个节点上运行Pod,Job用于一次性或短暂性任务,而CronJob用于定期执行任务。在Kubernetes中,Deployment、StatefulSet、DaemonSet、Job和CronJob都是不同类型的控制器(Controller),它们用于管理Pod的生命周期,但它们有不同的用途和行为。用途: 用于确保集群中的每个节点运行一个Pod的场景,如日志收集或网络代理。
2024-08-31 00:30:00 5733
原创 【kubernetes】kubernetes 滚动更新案例
假设你有一个 Deployment,它运行了一个叫做 myapp 的容器,使用的是 myapp-image:old 的镜像。现在你想要将它更新到新版本的 myapp-image:new。在 Kubernetes 中,滚动更新是通过逐步替换旧版本的 Pod 为新版本来实现的。这是一个简单的滚动更新案例。在实际生产环境中,你可能还需要考虑一些其他因素,例如滚动更新的策略、健康检查、回滚策略等,以确保更新的顺利进行。这将显示滚动更新的状态,包括当前的 ReplicaSet 和更新进度。
2024-08-31 00:15:00 5791
原创 【kubernetes】kubernetes 扩容缩容案例
Kubernetes 中的扩容和缩容通常是通过调整 Deployment 中的副本数量来实现的。下面是一个简单的案例,演示如何在 Kubernetes 中进行扩容和缩容。创建一个deploy-nginx.yaml 文件使用这个命令使其生效可以看到我们现在有2个节点运行我们的pod。因为我们初始副本数量为 2。
2024-08-30 00:30:00 35
原创 【kubernetes】kubernetes 创建pod的时候指定namespace
在 Kubernetes 中,创建 Pod 时可以通过 YAML 配置文件或者命令行参数指定所属的 Namespace。如果你是通过命令行使用 kubectl 来创建 Pod,可以使用 -n 或 --namespace 参数来指定 Namespace。在 Pod 的 YAML 配置文件中,你可以通过 metadata.namespace 字段指定所属的 Namespace。在上述的 YAML 文件中,Pod 将会被创建在 mynamespace 这个 Namespace 中。
2024-08-30 00:15:00 161
原创 【kubernetes】kubernetes集群化安装
在上一篇文章中我们进行了集群的购买初始化等工作。本章节我们进行kubernetes集群化安装。
2024-08-29 00:30:00 846
Eclipse Formatter 模板 Formatter.xml
2020-11-11
eclipse的hadoop插件
2016-09-14
hadoop学习文档
2016-09-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人