- 博客(133)
- 资源 (3)
- 收藏
- 关注
原创 Go-反射
通过反射,可以动态地获取变量类型信息和值,例如使用reflect.TypeOf()可以获取变量的类型,使用reflect.ValueOf()可以获取变量的值。还可以使用Value提供的方法获取和设置变量的值、调用方法等。在Go语言中,反射(reflection)是指在运行时检查程序的结构、变量和接口的机制。可以通过反射获取和修改变量的值、获取变量的类型信息、调用方法等操作。需要注意的是,反射操作相对较慢,使用反射会带来一定的性能损失。因此,应尽量避免过度使用反射,谨慎地选择使用反射机制。
2024-08-05 21:45:00
508
原创 Linux rpm和ssh损坏修复
我遇到的问题可能和你的不一样。但是如果遇到错误一样也可以按此方案尝试修复。我是想在Linux上安装Oracle,因为必须在离线环境下安装。就在网上搜一篇文章是一个用于在 Linux 系统上安装 RPM 包的命令。rpm-i-v-h./*--nodeps--force总的来说,这个命令用于在当前目录下批量安装所有 RPM 包,并且忽略依赖关系和可能的冲突。使用该命令时需要注意,因为--nodeps和--force选项可能导致系统不稳定或依赖关系问题,所以应谨慎使用。
2024-07-12 19:00:00
1196
原创 Feign Client超时时间设置不生效问题
可以在Feign Client的配置类中通过修改对象来设置超时时间。对象有两个属性,用于设置连接超时时间,用于设置读取超时时间。在上面的示例中,连接超时和读取超时时间都设置为5000毫秒。可以在Feign接口方法上使用注解的属性来指定一个配置类,然后在配置类中通过修改对象来设置超时时间。在上面的示例中,接口中的方法的超时时间被配置为5000毫秒。需要注意的是,Feign Client的超时时间设置只对请求的连接和读取阶段有效,对于响应的处理时间是无效的。
2024-06-24 21:00:00
705
原创 多线程使用-变量共享问题
多线程使用时,有一个常见的问题是变量共享问题。在多线程环境中,多个线程可以同时访问和修改同一个变量,这时就会出现竞态条件和数据不一致的问题。在这个例子中,我们创建了一个计数器类Counter,其中有一个count变量用于记录计数值。我们启动了两个线程thread1和thread2,它们分别对计数器进行了一万次递增操作,并打印最终的计数值。然而,由于两个线程同时对count变量进行修改,会导致竞态条件的产生。
2024-06-20 19:12:07
589
原创 算法攻略-链表
链表是一种数据结构,它由一系列的节点组成,每个节点包含一个数据元素和一个指向下一个节点的指针。链表中的第一个节点叫做头节点,最后一个节点叫做尾节点。链表中的节点不一定是连续存储的,它们可以在内存中的任意位置。链表的优点是插入和删除操作相对于数组来说更高效,因为只需要修改节点的指针,而无需移动其他节点。缺点是访问元素的效率相对较低,需要遍历整个链表才能找到目标元素。链表有多种类型,常见的有单链表、双链表和循环链表。
2024-06-18 19:00:00
760
原创 Rust 编程——prost-build 使用
而prost-build是Prost库的一个工具,用于生成Rust代码。Protocol Buffers是由Google开发的一种轻量级、高效的数据交换格式,可以用于结构化数据的序列化,特别适用于通信协议和数据存储等领域。prost-build工具通过读取Protobuf文件(.proto文件)并根据文件中定义的消息类型、服务等生成相应的Rust代码。时,prost-build工具会自动读取Protobuf文件并生成相应的Rust代码,并将生成的代码放置在指定的输出目录中。是生成的Rust代码的输出目录。
2024-06-05 13:56:53
488
原创 算法攻略-滑动窗口
滑动窗口是一种常用的算法技巧,通常用于解决数组或字符串的子串或子数组的问题。它的基本思想是维护一个可变大小的窗口,通过滑动窗口来确定问题的解。滑动窗口算法的时间复杂度通常是O(N),其中N是数组或字符串的长度。它的优势在于可以在一次遍历中解决问题,而不需要使用嵌套循环。滑动窗口算法的应用非常广泛,能够解决很多实际问题,比如字符串匹配、字符串压缩、求解最长连续递增子序列等。
2024-05-30 19:30:00
1427
原创 Java8-CompletableFuture的使用
Future接口是Java并发编程中的一个接口,它表示一个可能还没有完成的异步操作的结果。Future接口的主要作用是提供一种机制,允许调用者在某个异步操作完成后取得其结果用Future 模拟同时获取 用户和勋章。
2024-04-24 20:00:00
292
原创 系统设计取舍问题
由于资源和时间的限制,不可能满足所有的需求,因此需要进行取舍。优先级:对于不同的需求,可以根据其重要性和紧急程度来确定优先级。对于低优先级的需求,可以暂时搁置或延后。成本与效益:在取舍时,需要考虑到实施某个需求所需的成本和所带来的效益。时效性:需求可能具有不同的时效性,一些需求可能会随着时间的推移而失去价值。总之,在需求设计取舍过程中,需要综合考虑多个因素,并根据优先级、成本与效益、可行性、用户反馈和时效性等进行取舍。如果用户对某个需求不满意或不需要,可以考虑将其暂时搁置或取消。
2024-04-07 19:30:00
215
原创 k8s系列之十六 Istio通过kiali可视化bookinfo
kiali 是使用 istioctl 客户端工具安装 demo profile 时自动就会安装的组件,kiali 是一款 istio 服务网格可视化工具,提供了服务拓扑图、全链路跟踪、指标遥测、配置校验、健康检查等功能。
2024-03-26 23:45:00
348
原创 k8s系列之十七 Istio中的服务治理
在 Istio 中,流量路由管理是通过 DestinationRule 和 VirtualService 这两个资源来实现的。DestinationRule 用于定义服务的目标规则,例如负载均衡策略、连接池设置等。而 VirtualService 则用于定义服务的路由规则,包括如何将流量路由到不同的版本或实例。
2024-03-26 23:45:00
1197
原创 k8s系列之十五 Istio 部署Bookinfo 应用
Bookinfo 应用中的几个微服务是由不同的语言编写的。这些服务对 Istio 并无依赖,但是构成了一个有代表性的服务网格的例子:它由多个服务、多个语言构成,并且 reviews 服务具有多个版本。该应用由四个单独的微服务构成。这个应用模仿在线书店的一个分类,显示一本书的信息。页面上会显示一本书的描述,书籍的细节(ISBN、页数等),以及关于这本书的一些评论。下图展示了这个应用的端到端架构。Bookinfo 应用中的几个微服务是由不同的语言编写的。
2024-03-21 21:00:00
1273
原创 k8s系列之十四安装Istio
Istio 是一个开源的服务网格(Service Mesh),用于连接、管理和保护微服务。它提供了一组功能强大的工具,包括流量管理、安全性、监控和跟踪等,以帮助在微服务架构中更好地管理服务之间的通信。总的来说,Istio 提供了一种灵活且强大的方法,用于解决微服务架构中常见的网络通信、安全性和可观察性等问题。
2024-03-21 18:30:00
1215
原创 k8s系列-kubectl 命令快速参考
这些指令适用于 Kubernetes v1.29。要检查版本,请使用 kubectl version 命令。kubectl -A。
2024-03-15 18:30:00
898
原创 写代码当时觉得没问题,过段时间再看就有问题
相信每个人都会遇到这种情况:遇到写代码时觉得没问题,但过段时间再看就发现问题。这通常与代码的可读性、复杂度以及当初编码时对问题理解的深度有关。
2024-02-26 21:30:00
428
原创 fastjson 替换超大的JSON对象中的key优化
遇到一个处理超大json(接近2w行)的问题,原有处理代码效率比较低下,耗时10几秒,业务要求耗时越短越好。因为json非常长,原来对value进行解析的逻辑是逐个字段进行正则匹配判断是否是月份,所以导致效率非常低。优化以后建立映射字段,存储月份对应的码值,遇到对应码值直接返回,原来正则表达式没有进行预编译,所以效率低下。思维转换:一般的思维是遍历json的所有字段,对符合条件的进行转换,但是效率低下,还有大量的正则匹配操作。逆向思维,只对配置中指定的字段进行转换,非配置中的直接跳过,可以大幅提升速度。
2024-02-19 17:50:02
238
原创 k8s系列之十三Service Account和RBAC授权
首先Kubernetes中账户区分为:User Accounts(用户账户) 和 Service Accounts(服务账户) 两种,它们的设计及用途如下:UserAccount是给kubernetes集群外部用户使用的,例如运维或者集群管理人员,使用kubectl命令时用的就是UserAccount账户。UserAccount是全局性,在集群所有namespaces中,名称具有唯一性,默认情况下用户为admin;用户名称可以在kubeconfig中查看。
2024-02-05 22:15:00
1331
原创 k8s系列之十二Kubernetes Ingress
首先我们来思考用传统的web服务器,比如Nginx,如何处理这种场景?比如使用Nginx充当一个反向代理服务器拦截外部请求,读取路由规则配置,转发相应的请求到后端服务。反向代理web服务器负责拦截外部请求,比如Nginx、Apache、traefik等等。我一般以Deployment方式部署到kubernetes集群中,当然也可以用DeamonSet方式部署;这两种部署方式个人觉得有利有弊,感兴趣的请参考这篇文章。
2024-02-05 19:00:00
2202
原创 k8s系列之十一Kubernetes的网络
Network Policy是K8S的一种资源,它使K8S可以通过Label选择Pod,并指定其他Pod或外界如何与这些Pod通信。换句话说,当Pod被定义了Network Policy时,只有Policy允许的流量才能访问Pod(默认情况下,任何来源的流量都可以访问Pod,是没有限制的)即帮助K8S实现更为精细的流量控制,实现租户隔离机制。目前已经有多种支持K8S的网络方案,包括 Flannel、Calico、Canal等,它们都实现了CNI规范,因此无论我们选择哪种具体方案,它们的网络模型都是一致的。
2024-02-04 20:30:00
1346
原创 k8s系列之十Kubernetes的包管理器Helm
Kubernetes能够很好地组织和编排容器,但它缺少⼀个更高层次的应用打包工具,而Helm就是来干这件事的。
2024-02-04 19:30:00
2133
原创 k8s系列之补充二helm安装Tiller出错解决
到那时查看pod是会发现ErrImagePull,ImagePullBackOff,查看一下pod。查看tiller-deploy-54cb5b4ff9-tgz8c pod日志信息。1.删除tiller deployment,顺带会一起删除tiller pod。安装tiller ,但是有时间镜像会很慢,所以选择手动安装tiller。2.删除完再执行helm init,发现提示已安装。4.再次查询版本信息,发现已经不报错了。坑出现了,版本不匹配。
2024-02-02 22:15:00
683
原创 k8s系列之九Secret 与Configmap
在应用启动过程中需要一些敏感信息,比如数据库用户名、密码,如果直接明文存储在容器镜像中是不安全的,K8S提供的方案是Secret。
2024-02-01 22:00:00
1349
原创 k8s系列之八数据管理
在Docker中我们知道,要想实现数据的持久化(所谓Docker的数据持久化即数据不随着Container的结束而结束),需要将数据从宿主机挂载到容器中,常用的手段就是Volume数据卷。在K8S中,也提供了存储模型Volume,支持我们将应用中的数据持久化存储到容器中。(1)学习Volume,以及Kubernetes如何通过Volume为集群中的容器提供存储;(2)实践几种常用的Volume类型并理解它们各自的应用场景;
2024-01-31 23:30:00
1199
原创 k8s系列之七Health Check
强大的自愈能力是Kubernetes这类容器编排引擎的⼀个重要特性。自愈的默认实现方式是自动重启发生故障的容器。除此之外,用户还可以利用Liveness和Readiness探测机制设置更精细的健康检查,进而实现:(1)零停机部署。(2)避免部署无效的镜像。(3)更加安全的滚动升级。
2024-01-31 21:45:00
1217
原创 k8s系列之六Rolling Update滚动更新
为了服务升级过程中提供可持续的不中断的服务,K8S提供了Rolling Update机制,它可以使得服务近乎无缝地平滑升级,即在不停止对外服务的前提下完成应用的更新。滚动更新采用渐进的方式逐步替换旧版本Pod,如果更新不如预期,那么也可以通过回滚操作恢复到更新前的状态。
2024-01-31 21:00:00
1336
原创 k8s系列之五通过Service访问Pod
假设Pod中的容器很可能因为各种原因发生故障而死掉。Deployment等Controller会通过动态创建和销毁Pod来保证应用整体的健壮性。换句话说,Pod是脆弱的,但应用是健壮的。每个Pod都有自己的IP地址。当Controller用新Pod替代发生故障的Pod时,新Pod会分配到新的IP地址。这样就产生了⼀个问题:如果⼀组Pod对外提供服务(比如HTTP),它们的IP很有可能发⽣变化,那么客户端如何找到并访问这个服务呢?Kubernetes给出的解决方案是Service。
2024-01-30 22:00:00
2276
4
原创 k8s系列之四DaemonSet和Job
Deployment部署的副本Pod会分布在各个Node上,每个Node都可能运行好几个副本。DaemonSet的不同之处在于:每个Node上最多只能运行⼀个副本。
2024-01-27 22:00:00
1169
原创 k8s系列之三Deployment
既然 用YAML配置文件 署应用 , 现在就很有必要了解⼀下Deployment的配置格式了,其他Controller(比如DaemonSet)非常类似。metadata:spec:selector:template:metadata:labels:spec:这是一个Kubernetes Deployment的YAML文件,用于定义一个NGINX容器的部署。: 指定使用的 Kubernetes API 版本,这里是 Apps API 的版本。
2024-01-18 22:15:00
1525
原创 k8s系列之二集群环境搭建以及插件安装
终端工具很好用。1、虚拟机三台(ip按自己的网络环境相应配置)(master/node)2、关闭防火墙(master/node)3、关闭selinux(master/node)4、关闭swap(master/node)5、添加主机名与IP对应的关系(master/node)#添加如下内容:#保存退出6、修改主机名(master/node)[root@localhost ~] hostname k8s-master ##临时生效。
2024-01-17 22:00:00
1282
原创 go mod 模式下安装beego
网上大部分的教程都是基于GOPATH模式的,所以会很坑!都排除了以后执行bee命令就会出现命令提示了,可以正常玩耍了。确保您的Go版本在1.11或更高版本。创建一个新的文件夹作为您的项目根目录,并导航到该目录。上面两个命令会生成bee.exe文件,生成的路径在。这一步只是把代码下载下来了而已,运行。命令来检查您的Go版本。
2023-12-15 01:00:00
535
原创 自定义BeanPostProcessor之Spring Cloud Feign组件服务间优雅调用
如果引用的其他服务比较多,需要修改很多的url,这样比较浪费时间,通过重写@FeignClient的url,可进行统一处理,而不用一个一个的去修改。也可以配置研发环境,本地环境等多个环境的服务地址。在本地研发环境开发时候可能需要调用其他服务,例如通过service-name的方式调用,但是如果经过注册中心,并且服务有多实例的情况下会出现超时的情况。可以通过指定服务ip的方式调用。可以看到,使用feign之后,我们调用eureka 注册的其他服务,在代码中就像各个service之间相互调用那么简单。
2023-12-07 01:00:00
471
原创 自定义BeanPostProcessor之XssBeanPostProcessor
BeanPostProcessor是Spring框架中的一个重要的扩展点,它允许开发者在Bean初始化前后对Bean进行自定义处理。Spring中有很多内置的BeanPostProcessor,如AutowiredAnnotationBeanPostProcessor、CommonAnnotationBeanPostProcessor、InitDestroyAnnotationBeanPostProcessor等。
2023-12-01 01:00:00
789
原创 arthas使用
Arthas 是一款线上监控诊断产品,通过全局视角实时查看应用 load、内存、gc、线程的状态信息,并能在不修改应用代码的情况下,对业务问题进行诊断,包括查看方法调用的出入参、异常,监测方法执行耗时,类加载信息等,大大提升线上问题排查效率。math-game进程是第 2 个,则输入 2,再输入回车/enter。输入dashboard,按回车/enter,会展示当前进程的信息,按ctrl+c可以中断执行。功能 追踪方法内部调用路径,并输出方法路径上的每个节点上耗时(只会打印到第一层)
2023-11-29 16:03:37
460
原创 java使用freemarker模板生成html,再生成pdf
1.freemarker模板生成html添加Maven依赖在pom.xml文件中添加以下依赖:<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-freemarker</artifactId></dependency>创建Freemarker模板新建一个HTML文件,例如ta
2023-11-29 01:00:00
2501
原创 使用EasyPoi word模板导出循环写段落
EasyPoi是一个Java的Excel和Word处理库,主要用于将Java对象转换为Excel或Word文档,并且可以从Excel或Word文档中读取数据到Java对象。本文将重点介绍如何使用EasyPoi写Word文档。
2023-11-11 08:00:00
3476
13
RS232通讯程序代码
2014-04-13
MSP430_SPI_模块
2014-03-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人