- 博客(59)
- 问答 (1)
- 收藏
- 关注
转载 IDEA显示“Cannot resolve symbol XXX”
菜单 “File” -> “Invalidate Caches / Restart”→ “Invalidate and Restart”。
2021-03-30 20:23:35 685
原创 Kubebuilder 使用的一点小提示
背景最近在看使用kubebuilder 自定义CRD,然后按照官方的提升文档来。但是这里有个小坑给大家记录一下。kuberbuilder 官方文档踩坑的地方按照教程,在创建了项目和API之后。执行部署CRD,会报错。得先使用make 命令执行一下 。在config/crd 目录下有bases这个目录,才代表成功了。官方文档没说这一点。导致遇到问题的时候有点懵。...
2021-01-28 20:01:51 484
原创 k8s 的admission webhook 部署在集群外,如何创建ssl 文件
背景一般情况下,对于webhook服务都是部署在k8s的集群内部的,但是我们这边有需要,需要部署在集群外面的物理机上,但是在MutatingWebhookConfiguration 里面只能配置https,所以需要自己签发证书。整个过程还是踩了坑。把过程记录下来。照着做肯定能成功。安装cfssl这个就不放具体的方法了,Google搜索一下。安装后执行一下命令 cfssl version 如果能正常显示如下,就代表安装好了Version: 1.4.1Runtime: go1.13.4使用如下命令
2021-01-18 21:07:35 991 2
原创 k8s 搭建HPA和metric-server 问题排查
背景在k8s里面搭建HPA时。HPA需要metric-server进行采集数据,在过程中猜到两个坑,经过最后的折腾总算是解决了问题。所以记录一下方便其他人在遇到问题时可以快速解决。metric-server 修改日志级别查看问题在metric-server搭建完成后,可以通过 kubectl logs -f podName 查看metric-server输出的日志。但是有的时候查看日志看不出来问题的话。可以调整一下日志级别。这样可以输出更多有信息的日志。如下图–v 表示日志级别。数字越大,输出的日志
2020-11-27 23:04:49 1445 1
原创 记一次Harbor问题排查过程
Harbor 背景在低版本的harbor 1.X.X 版本的时候,harbor在GC的时候。会导致推送镜像会失败。我们在harbor的后台查看没有GC的任务。但是定期还是有GC的任务在执行。所以就排查了一下问题。有些经验就沉淀下来了2.1.0 版本解决了GC时不能推送镜像的问题查看Harbor的JobService GC 任务日志进入到harbor的输出日志目录grep 'IMAGE_GC' jobservice.log如果遇到Harbor奇怪的问题。建议直接拉取harbor在git的源代
2020-10-22 22:27:13 2945
原创 kubelet not ready 问题排查
背景使用kubectl 发现Node不正常。然后查看Node的日志出现如下 Warning ImageGCFailed 53s kubelet, 192.168.60.31 failed to get imageFs info: unable to find data in memory cache Normal NodeHasSufficientMemory 53s kubelet, 192.168.60.31 Node 192.168.60.31
2020-10-20 19:24:43 6028
原创 Raft 协议源码阅读
Raft源码学习背景看本篇博客,需要先对Raft协议本身有了解。然后再开始看源码,会有更深入的体会。不建议对Raft协议没有任何的认识就可以直接开始看本篇文章。Raft协议的中英文论文已经有相关比较好的博客。参考引用。我看的是githab的Raft代码。分析这个代码是如何实现Raft协议的。体会看完算法,再去看源码的实现。功能就真的是按照算法一比一去实现的。这是我第一次看源码如此轻松。读源码就像是读小说的感觉一样。感觉还是得看论文可以最快的认识一个算法和协议。全文没有一句废话。代码分析过程整个
2020-10-18 16:46:50 1836
原创 Client-Go 链接Api-Server报509错误
如果使用client-go连接api-server 报x509的错误如下 85178 reflector.go:123] pkg/mod/k8s.io/client-go@v0.16.6/tools/cache/reflector.go:96: Failed to list *v1.Pod: Get https://ip:port/api/v1/namespaces/default/pods?limit=500&resourceVersion=0: x509: certificate sign
2020-10-18 12:38:34 1417
原创 Spring项目使用H2内存数据库做单元测试
Spring 做单元测试单元测试很重要,对于Spring项目,特别是测试Service层或者dao层的代码时。需要验证访问数据库的逻辑是否正确。测试Dao层的代码两种方式使用外置数据库测试环境在外置数据库里面。这种情况下如果外置的数据库里面的数据变化了。就可能会导致单元测试跑不过。这种方式也是大家常用的但是不规范。使用内存数据库内存数据库也是一个数据库,只不过是在内存里面。每次程序启动的...
2020-04-23 22:49:50 2380 2
原创 使用Grafana访问db遇到问题
背景最近在用Grafana访问influxdb。但是发现在Grafana填写了SQL语句。访问有问题。去百度和Google上搜索相关问题。也没有很好的结果。不过后面发现了一个比较好解决的方法。错误情况当你在用Grafana时。写的SQL如果出现了问题。会出现一个红色的感叹号。如下下图所示解决方法打开浏览器的debug模式。会看到一个报错的接口。然后接口里面会有一个参数是q,这个参数就是...
2020-04-23 22:07:40 2454
原创 k8s 有状态应用实践(Mysql)
有状态应用容器化设计方案有状态应用解释在分布式应用中,它的多个实例之间,往往有依赖关系,比如主从关系,主备关系。还有就是数据存储类应用,它的多个示例,往往都会在本地磁盘上保存一份数据。而这些实例一但被杀掉,即使重建出来,实例与数据之间的对应关系也已经丢失,从而导致应用失败。所以,这种实例不对等关系,以及实例对外部数据有依赖关系的应用,就被称为有状态应用 (Stateful Applicatio...
2020-04-16 21:51:07 3272
原创 Kubernates client-java 获取pod
背景在使用kubernates的sdk。client-java 去访问kubernetes时。遇到了问题就是。我想通过podName同时获取多个pod。找了很久没找到解决方法。最后自己摸索出来了。记录一下。方便其他人排查。通过labelSelector获取某个podlabelName=xxxapi.listPodForAllNamespaces( null, null, "appName...
2020-04-14 23:50:14 2109 3
原创 k8s使用helm部署mysql集群启动问题
我是用helm在k8s里面部署mysql集群时遇到了mysql.sock不存在的问题。具体的问题和解决方法如下。我使用的环境我通过helm部署在阿里提供的Mysql集群的chart,阿里云仓库地址但是在启动的时候失败了。查看k8s的pod日志如下mysql 07:52:12.87mysql 07:52:12.88 Welcome to the Bitnami mysql containe...
2020-03-26 23:19:54 4537 8
原创 搭建Minikube拉取镜像失败问题解决
我是在Mac上搭建Minikube。然后启动k8s集群的时候。拉取镜像出错了。报错日志如下,这种问题是因为我们在国内拉不到k8s的镜像。这个问题的解决方法。这个问题在stackoverflow上也有很多中国人问。解决方法就是用国内的镜像,按照我下面推荐的这一篇重新从头开始搭建应该就可以了。https://juejin.im/post/5d35b0f2f265da1bcb4f6ae2stac...
2020-02-27 19:30:56 8105
原创 The type java.util.Map$Entry cannot be resolved 问题解决
启动的时候报错The type java.util.Map$Entry cannot be resolved遇到这个问题大概率是你项目的代码的JDK版本和你现在使用的JDK版本不一致导致的。背景:我使用intellij idea开发,但是我选择的项目的SDK是1.8版本的。但是这个代码里面有JDK1.6的代码。所以要解决这个问题只能将项目的SDK选择为1.6的既可。下面是intellij...
2019-10-30 23:43:24 1559
原创 Golang 解析xml文件标签带冒号( : )解决方案
背景:我们有项目需要使用golang语言解析rabbitmq.xml。并把里面的内容解析出来,但是在解析的时候遇到了问题,最后通过google搜索,在stackoverflow上找到了解决方案,目前好像没有中文的解决方案,所以就写下这篇博客,当其他的开发者遇到同样的问题时,可以方便排查,不走弯路。遇到无法解决的问题时请用Google,大概率还是可以找到解决方法的。一、基础的解析XML方法假...
2019-10-30 23:34:57 4068 4
原创 SpringBoot MybatisPlus Druid 多数据源项目
写在前面:本文主要介绍SpringBoot MybatisPlus和Druid这些组件下,如何创建多数据源(DataSource)的web项目。写这篇博客的原因就是我在搜索同类型的问题的时候,其他人写的博客非常不清晰,完全无法按照介绍的步骤来实现。我希望我写的这篇博客可以真的替看这篇博客的人能解决这类问题。如果你看完之后还是没有解决可以评论留言,甚至加我的微信(JB328258)帮你解决。因为我觉...
2019-10-19 14:30:52 415
原创 Spring源码解析:Spring Aware 原理解析
写在前面Spring源码解析系列文章是我最近在学习了一段Spring,SpringBoot和SpringMVC等一系列的源码后整理的文章。我会随着我对Spring的理解来进行相应的文章的整合和归纳。我决定从提出一个问题开始。然后围绕着解决这个问题的方式来剖析源码。当我们把一个问题搞懂了的时候。里面的源码我们也就清楚了。事实上看源码不是目标。解决一些日常的困惑才是目标。问题为什么被S...
2019-05-12 22:44:07 2288 3
原创 SpringMVC 上传文件遇到的问题和解决方法
背景:SpringMVC项目需要上传文件。于是按照下面的步骤操作了。但是还是遇到了问题。第一步,在application-context.xml添加了如下的代码<bean id="multipartResolver" class="org.springframework.web.multipart.support.StandardServletMultipartResolver...
2019-04-29 20:24:27 2303
原创 配置中心取代本地文件
football取代本地文件具体实现细节Spring Web 环境变量PropertyPlaceHolderConfigurer 和 ProperiesFactoryBean目前使用方式在Application-context.xml 配置PropertyPlaceHolderConfigurer <bean id="propertyConfigurer" ...
2019-04-25 20:52:53 547
原创 SpringBoot Profile 实现一次war包多环境部署
SpringBoot Profile 实现一次war包多环境部署。SpringMVC 在build war包阶段选择配置文件目前我们的SpringMVC项目是通过在Conf目录下建立多个子目录(test-out,dev,production)。 在Maven build的时候,通过传入环境的参数,最后在build的war包里面就会自动将相应环境的配置文件放到war包的classes目录下面。...
2019-04-25 20:51:25 2187
原创 Spring Cloud config 原理
Spring-cloud-configSpringCloud 分布式配置分为 Config-server 和 Config-client 两部分Config-client -> Config-server -> git介绍Spring-Boot 对 Spring-cloud-config 的兼容是在设计层面的。所以操作无比的顺滑。参考 configKeeper...
2019-04-25 20:50:28 807
原创 Mysql 问题排查记录
背景项目网页打开数据很慢,于是我就去找dba查看一下是否有慢SQL。然后DBA给的反馈是MYSQL被我调挂掉了。所以访问超时,页面打不开。发现过程DBA 发现有一些SQL的执行时间超过1s.并且有一些并发访问。于是就将MYSQL直接给拖垮了。于是DBA将慢的SQL发给我如下。上图我们可以很明显看到我使用了count()命令。所以比较耗时。解决方法首先。我的业务需求是查找出 ...
2019-04-25 11:56:05 357
原创 Intellij idea SpringMVC 项目启动两次
不像听我废话。可以直接拉到最后看解决方法。背景,使用工具。我使用的是Intellij idea 和 tomcat 开发Spring web项目。但是我发现我在启动的时候报错。启动不起来,有端口被占用了。但是事实上端口没被占用。于是看日志发现项目里面有两次启动信息。如下。Connected to server[2019-04-04 05:57:11,528] Artifact firew...
2019-04-04 18:12:00 1676
原创 Guava Optional使用介绍
Using and avoid null“Null sucks.” -[Doug Lea]“I call it my billion-dollar mistake.” - [Sir C. A. R. Hoare],他对他自己发明的Null引用的评价粗心的使用null会造成各种惊人的bug。在学习了Google的代码基础之上,我们发现95%的collections都不会接收null值。使...
2018-09-25 23:13:31 354
原创 SpringMVC HandlerInterceptor和Filter区别及使用
SpringMVC HandlerInterceptor使用介绍背景因为公司新开发了一个统一弹屏项目,项目有一个后台管理界面,有管理页面就必然有登录,注册,授权等一系列的操作。如何实现对用户登录的判断和拦截。一般情况下我们可以使用Filter(过滤器)和Interceptor(拦截器)来实现。Filter和Interceptor比较Spring的Interceptor与Se...
2018-09-08 17:26:57 4490
原创 Lombok 简要介绍
背景最近因为项目使用到了lombok,然后自己做了一个PPT。总结了一部分知识。现在将PPT的内容抽取出来作为一篇博客.基本介绍原理参考链接
2018-09-04 23:24:55 441
原创 Zookeeper 配置中心服务治理实现
Zookeeper配置中心服务治理实现背景上一篇博客详细讲解了为什么我们要选择Zookeeper作为服务发现框架而不是使用Eureka。 参考 这篇博客将继续讲解怎么实现的,里面会有大量的代码的拷贝,具体的架构可以参考上一篇博客的架构演进图。本篇主要讲解实现过程。准备工作Spring Maven项目添加Zookeeper的依赖包,这样就可以使用Zookeeper的SDK...
2018-08-16 10:03:33 2674
原创 Zookeeper 配置中心服务发现设计方案
配置中心服务注册发现方案背景配置中心football-server服务目前运行在线上环境提供给内部第三方服务调用。为保证配置中心的服务的可用性,于是决定对配置中心服务端配置进行改造,加入服务注册发现功能。服务治理中心选型ConsulEurekaZookeeperetcd 单纯考虑服务治理Eureka应该是目前最合适的选型,Eureka提供了完整的Service...
2018-08-15 23:28:14 2473
原创 Spring项目如何获取本机的IP地址
背景其实这个代码非常简单,理论上不能构成一篇博客,但是我在网上搜类似相关问题的时候基本都没有正确的答案,都是在乱说。完全没有正确的解决方法。 因为我现在的项目是在做服务发现和治理的功能,我的Spring项目在启动后要去Zookeeper上注册自己的IP,于是Spring就得在启动的时候获取自己的IP地址。代码如下 import java.net.InetAddress; ...
2018-08-14 20:00:18 23356 6
原创 旧公司总结及新公司心得体会
背景我是重庆大学物联网工程专业毕业,去年毕业的时候刚好遇到了西门子到重庆大学来招聘,西门子打算在成都为西门子的Mindsphere工业云平台招聘一个研发中心,因为我是物联网工程专业,所以我当时认为工业物联网应该是会有很好的发展的。而且是和云平台相关,并且是一个外企。想增长点见识,于是当时我就选择了加入到了西门子。 我在西门子工作了刚好13个月,去年的7月份我从学校拿到毕业证书。三天以后就到成...
2018-08-06 23:01:32 1060 2
原创 Javab并发编程之 Callable和Future
介绍Java里面我们想创建一个线程一般是继承thread或者实现Runnable接口,然后在run方法里面去实现线程的业务逻辑,这两种方法是在执行完之后,线程不会返回结果的。因为run方法是void的。如果想要获取线程执行完的状态就得添加一些全局变量。但是这样的操作也不好,比如我们想要使用一个线程去异步获取一个东西,获取完之后再将结果返回出来。这种业务使用继承thread和实现runnable...
2018-07-11 15:36:12 262
原创 Mac安装 Beego 环境配置
官网安装教程Beego 快速入门安装教程 我在安装官网给的安装方法安装的时候遇到了点小问题,于是自己将我安装的步骤记录一下。1.安装Go环境2.安装或者升级Beego和Bee的开发工具$ go get -u github.com/astaxie/beego$ go get -u github.com/beego/bee3.添加环境变量$ open ~/.bash_p...
2018-07-07 18:28:19 7428 4
原创 Java面试之总结题(三)
Java 常见面试题SpringSpring AOP与IOC的实现原理Spring的beanFactory和factoryBean的区别为什么CGlib方式可以对接口实现代理?RMI与代理模式Spring的事务隔离级别,实现原理对Spring的理解,非单例注入的原理?它的生命周期?循环注入的原理,7、aop的实现原理,说说aop中的几个术语,它们是怎么相互工作的?Myba...
2018-06-24 21:20:03 904
原创 Java面试之真题(二)
Java 大厂面经真题之前面试了挺多大厂的,有的拿了offer。有的被面试官教育了一下怎么做人,但是总体来说还是在一次又一 次的面试中查漏补缺成长了很多。每次面试都将问的一些问题做了一下记录。发现不同的公司查考的点还是有 不一样,如果以后出去面试能够根据不同的公司侧重的准备好。那么也会更加的有优势。知名信息流平台一面介绍一下你的Token-Generator这个项目...
2018-06-23 18:32:24 972
原创 Java面试之面经(一)
Java web后端开发面经楼主现在毕业一年了,因为各种原因考虑决定换工作去互联网企业。然后经过了很多面试, 在面试的过程中把很多遇到的问题和知识点也都记录下来了。现在找到了一个合适的工作, 所以打算把之前的一些东西做一个总结,也为其他需要的人提供一点帮助。Java 基础Java Object类有那些常见函数equals() 和 == 的区别String Integer ...
2018-06-21 21:19:56 3797 4
原创 CSDN博客编辑器,转换使用MarkDown编辑器
在使用CSDN的博客写页面的时候,想转换成MarkDown的在线编辑器,在下面页面找了很久也没找到在哪里设置。后面发现在博客设置里面,将默认编辑器改成MarkDown编辑器就可以了。如果觉得对你有帮助,就关注一下吧。...
2018-06-09 15:47:34 2536 5
原创 142. Linked List Cycle II - Leetcode
142. Linked List Cycle IIProblems:Given a linked list, return the node where the cycle begins. If there is no cycle, return null.Note:Do not modify the linked list.Solution:题目的意思是有个链...
2018-06-09 15:40:29 370
原创 Intellij Idea软件Unit Test 调出Coverage窗口
我们在用Intellij idea写Java程序的时候,需要做Unit Test。我们需要去观察我们的测试代码对写的代码的行覆盖率以及功能的覆盖率。所以我们要打开Coverage框。之前自己找了很久都没有找到怎么打开这个窗口。现在找到解决方法了。记录一下。解决方法:Run Test选择 Run “test()”with coverage 。如下图:...
2018-06-07 15:50:46 11753
原创 Spring 事务传播行为
Spring特有的事务传播行为,Spring支持7种事务传播行为,确定客户端和被调用端的事务边界。即多个具有事务控制的service进行相互调用时所参生的复杂行为。下面对7种进行合理的分析和讲解。事务传播行为含义PROPAGATION_REQUIRED如果当前没有事务,就创建一个新事务,如果当前存在事务,就加入该事务,该设置是最常用的设置PROPAGATION_REQUIRED_NEW创建新事务,...
2018-06-05 19:06:08 268
空空如也
java写的发邮件连接不上smtp.163.com
2016-07-29
TA创建的收藏夹 TA关注的收藏夹
TA关注的人