![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
技术博客
文章平均质量分 59
linlin_1998
软件工程师
展开
-
盘点那些开发中经常用到的git命令
盘点那些开发中经常用到的git命令原创 2023-11-09 17:52:11 · 167 阅读 · 0 评论 -
Java程序员工作中常用命令
Java程序员工作中常用命令原创 2023-02-01 16:32:14 · 387 阅读 · 3 评论 -
Java性能优化实战
实际工作中如何 优化接口性能原创 2023-02-01 16:30:22 · 417 阅读 · 0 评论 -
记一次元空间内存溢出问题
发现问题在工作中遇到了一个元空间内存溢出问题,问题出在一个用户输入Java文件,后台负责编译并执行Java文件的功能上,因为用户能随时对Java文件进行修改,所以我们每次执行这个文件的时候都会重新编译,new URLClassLoader来加载这个类,这样的话每次都是加载最新的Class,如果用同一个ClassLoader对象去加载同一个类,是不会重复去加载的。每调用一次这个执行接口,元空间就会增加一个class对象,随着调用次数增多,元空间就慢慢被沾满,这些Class对象却不能被卸载掉,为啥呢?按说Cl原创 2021-01-13 22:15:09 · 1876 阅读 · 0 评论 -
Springboot整合dubbo2.7.7
Springboot整合dubbo2.7.7pom.xml文件中添加依赖 <dependency> <groupId>org.apache.dubbo</groupId> <artifactId>dubbo-spring-boot-starter</artifactId> <version>2.7.7</version>原创 2020-08-04 17:24:20 · 1963 阅读 · 1 评论 -
seata AT模式之tm注册到seata server的流程
tm什么时候注册到seata server的seata的核心类GlobalTransactionScanner,也是一个BeanPostProcessor,如果使用的是seata-spring-boot-start.jar这个包,spring会给我们自动装配GlobalTransactionScanner,如果用的是seata-all.jar这个包,就需要我们手动把GlobalTransactionScanner注册到spring ioc上去。GlobalTransactionScanner又实现了I原创 2020-07-15 18:08:11 · 483 阅读 · 0 评论 -
seata AT之RM注册流程
seata是一款开源的分布式事务解决方案,这里主要讲解决方案其中的一种AT模式中客服端启动的时候是怎么向服务端注册RM资源管理器的源码分析。标题要使用AT模式,必须向spring ioc注入DataSourceProxy @Bean public DataSourceProxy dataSourceProxy(DruidDataSource druidDataSource){ return new DataSourceProxy(druidDataSource); }如果使用原创 2020-07-15 17:01:13 · 1577 阅读 · 0 评论 -
编译seata源码遇到的Non-resolvable import POM
idea导入seata后,发现有一个模块seata-serializer-protobuf,有些包一直下不下来,编译它一直报错:"C:\Program Files\Java\jdk1.8.0_172\bin\java.exe" -Dmaven.multiModuleProjectDirectory=E:\workspace\seata -Dmaven.home=D:\apache-maven-3.5.3 -Dclassworlds.conf=D:\apache-maven-3.5.3\bin\m2.c.原创 2020-07-12 22:55:46 · 1112 阅读 · 0 评论 -
helm安装tiller镜像拉取失败
安装完helm后,安装tiller客户端,执行以下命令:helm init --upgrade --tiller-image registry.cn-hangzhou.aliyuncs.com/google_containers/tiller:v2.16.7 --stable-repo-url https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts注意用与helm相同的tiller版本。查看安装进度,可以看到tiller镜像拉取失败了。.原创 2020-06-02 13:28:41 · 2629 阅读 · 0 评论 -
centOS上安装nfs分布式文件系统
centOS上的nfs软件包叫:nfs-utils,同时包含了服务端和客服端,跟Ubuntu系统上的有区别。安装nfsyum install -y nfs-utils修改配置文件vim /etc/exports/usr/local/kubernetes/volumes *(rw,sync,no_subtree_check,no_root_squash)重启NFSservice nfs restart查看状态[root@hecs-x-large-2-linux-202原创 2020-05-31 17:01:51 · 225 阅读 · 0 评论 -
使用kubenetes安装ingress-nginx
下载ingress-Nginx的部署yaml文件登录git上的ingress-nginx:https://github.com/kubernetes/ingress-nginx.选择最新的一个tag.进入到deploy/static目录,下载其中的mandatory.yaml修改mandatory.yaml文件。主要修改镜像,因为国外的镜像没有翻墙下载不下来,改成阿里云的镜像:sed -i "s?quay.io/kubernetes-ingress-controller/nginx-ingres原创 2020-05-31 15:11:39 · 423 阅读 · 0 评论 -
kubernetes集群的服务器重启之后遇到的问题
kubernetes集群部署见我的上一篇博客。部署kubernetes集群的服务器重启之后,执行kubectl get nodes报错:[root@k8s-master ~]# kubectl get podsThe connection to the server [master_ip]:6443 was refused - did you specify the right host or port?查询进程,发现没有kube的进程启动:[root@k8s-master ~]# ps -aux原创 2020-05-26 21:15:31 · 3524 阅读 · 0 评论 -
CentOs7 上安装kubernetes集群
环境概述使用的是VM virtualBox安装虚拟机,镜像是centOs7.使用的kuberneters是v1.18.3.给虚拟机分配的内存是2核4G,master上安装kuberneters至少是2核。统一环境配置复制出一个镜像,命名为k8s,启动这个镜像,进行一下操作:临时关闭交换空间swapoff -a避免开机启动交换空间echo "vm.swappiness = 0">> /etc/sysctl.conf 关闭防火墙service firewal原创 2020-05-24 16:05:27 · 229 阅读 · 0 评论 -
Java VisualVM启动过程中遇到的问题
1 启动时报错“无法检测到本地java程序”原因:没有运行jvisualVM解决方法:以管理员的身份运行2 启动时报错“无法监测本地Java程序”原因:C:\Users\admin\AppData\Local\Temp 这个目录下以hsperfdata_开头的文件,后面的名字与用户名不一样,或者用户名存在大小写。解决方法:把这个文件hsperfdata_后面的文字改成与用户名一样。如...原创 2019-12-17 21:59:53 · 978 阅读 · 0 评论 -
Netty为实现高性能所做的那些事一
使用Netty必不可少的一个类:NioEventLoopGroup,它是一个处理I/O操作的多线程事件环,里面维护了多个EventLoop,当有事件发生的时候回选取其中一个EventLoop来处理这个事件,那么这个选取的算法是怎么实现的呢,其实很简单,是通过轮询来选取的。我们看一下Netty的源代码: @Override public EventExecutor next() ...原创 2019-11-10 23:30:17 · 212 阅读 · 0 评论 -
NIO零拷贝在windows系统中的内存限制问题
1. 遇到的问题在学习NIO零拷贝FileChannel.transferTo方法测试的时候,发现不管传递的文件有多大,最后服务器接收到的都只有8M。代码如下:// 服务端public class NewServer { public static void main(String[] args) throws IOException { InetSocketAddr...原创 2019-11-10 22:33:40 · 583 阅读 · 0 评论 -
Reactor模式的角色构成
Reactor模式一共由5种角色构成1. HandlerHandler对于Windows系统来说是句柄,对于Unix系统来说是描述符。本质上表示一种资源,是由操作系统提供的。该资源表示一个个的事件,比如说文件描述符,或是针对网络编程中的socket描述符。事件既可以来至于外部,也可以来自于内部。外部事件比如说客服端的连接请求,客服端发过来的数据符。内部事件比如说操作系统的定时器事件等,它本质...原创 2019-11-03 22:34:52 · 320 阅读 · 0 评论 -
Struts2框架详解第三课
Struts2框架详解第三课1. Struts2中的拦截器1.1 拦截器的重要性Struts2中的很多功能是由拦截器完成的,比如servletConfig,staticParam,params,modelDriven等等,是AOP编程思想的一种应用形式。拦截器执行时机:1.2 自定义拦截器1.2.1 拦截器的类试图1.2.2原创 2017-05-15 13:51:51 · 224 阅读 · 0 评论 -
Struts2框架详细用法第一课
1. 框架的意义所谓框架就是把一些繁琐的重复性代码封装起来,使程序员在编码中把更多经历放到业务需求的分析和理解上面。特点:封装了很多细节,使程序员在使用的时候会非常简单。2. Struts2概述Struts2是Apache发行的mvc开源框架,是表现层框架。是Apache和openSymphony组织合并开发出来的,里面包含了WebWork2的核心和struts的一些特原创 2017-05-08 18:29:19 · 290 阅读 · 0 评论 -
Struts框架详解第二课
Struts框架详解第二课 1. 封装请求参数到正文中1.1 静态参数封装静态参数封装是指在struts.xml配置文件中,给动作类注入值,调用的是setter方法,动作类中要有相应的setter方法。它是由一个staticParams的拦截器完成注入的。动作类:public class UserAction extends Acti原创 2017-05-10 11:34:43 · 259 阅读 · 0 评论 -
安装FastDFS问题记录
fastDFS成功安装,测试文件上传也成功了,但是在配置nginx代理访问文件的时候,死活访问不了,发送请求过去半天没有响应。查看nginx进程,是起来的,tracker、storage进程都没有问题。试了各种方法,没有解决。据说可以找nginx的日志,找了半天没找到,就在nginx.conf文件中重新配置log日志文件路径: 重启nginx,没有新建日志文件(我在没有原创 2017-08-18 14:54:29 · 308 阅读 · 0 评论 -
17年9月Java软件工程师面试第一站
最近想换工作,昨天就去面试了,是一家较大的外包公司做华为外包项目的,去之前百度了一下,很多人说外包公司这不好那不好,尤其是华为的外包。再加上台风要来不来,还下着雨,就有点想打退堂鼓了,最后还是去了。 面试地点在龙岗,坐了两个小时的车,下了车后又走错路,兜兜转转了一个小时才到。招待的人说刚来了两人面试,面试官暂时走不开,让我等半个小时,既然来了,那就等呗。 大概还没到半个小时,面原创 2017-09-05 11:39:06 · 275 阅读 · 0 评论 -
17年9月Java软件工程师面试第四站
感觉一个问题都没有答对有没有,这是一家金融公司,问的都是一些比较底层的问题,先将问题整理如下:1. filter和listener的区别 当时有点懵,感觉他是不是想问filter与servlet的区别呀?回来后百度了一下,网上有篇 servlet/filter/listener/interceptor区别与联系 可以参考一下。2.MySQL实现可重复读的原理 这个问题扎原创 2017-09-13 16:11:23 · 199 阅读 · 0 评论 -
17年9月Java面试第二站
这次面试过程就不说了,直接上题: 首先是笔试题,一共10题,只记得8道,剩下2道忘了。 1.面向对象编程的特点 封装、继承、多态、抽象 2.写出util包下的5个常见类 Date、ArrayList、HashMap、HashSet、LinkedList 3.spring的特性 IOC AOP 4原创 2017-09-07 10:56:28 · 195 阅读 · 0 评论 -
lombok插件的使用学习
Lombok插件使用1. Lombok插件介绍简单来说,lombok提供了一些注解,帮助我们简化Java开发,特别是相当于POJO。2. Lombok插件的安装2.1 在线线安装File-->Settings-->plugins-->Browserepositories 然后搜索lombok,点击install即可2.2 离线安装File-原创 2017-11-28 08:56:56 · 247 阅读 · 0 评论 -
idea配置Tomcat
idea中如何配置Tomcat在idea的工具栏中选择Edit configurations,然后在弹出的框中选择左上角的+号–》Tomcat Server–》Local。(如果没有Tomcat Server 选项,可以选择最后一项more)点击Configure,在Tomcat Home中选择本地tomcat的保存路径,然后点击OK选择部署到tomcat下的项目。Deployment–...原创 2019-08-11 00:15:45 · 184 阅读 · 0 评论 -
springCloud学习过程中遇到的问题
springCloud学习过程中遇到的问题1. gateway配置令牌桶报错1. gateway配置令牌桶报错错误标志:Unable to find GatewayFilterFactory with name RequestRateLimiter原因:最后发现是spring-boot-starter-data-redis这个包没有导进来导致的...原创 2019-10-06 16:50:54 · 239 阅读 · 2 评论 -
注解的用法
注解:是用于描述程序如何运行以及在什么阶段来运行,注解在实际开发中最大的功能是用于替换配置文件,注解是jdk1.5的新特性,可以通过反射来让注解具有功能。1. 自定义注解public @interface注解名{}例:public @interface MyAnnotation{}注解它的本质就是一个接口,这个接口继承Annotation接口。注解类反编译后:pub原创 2017-05-04 15:13:52 · 1219 阅读 · 0 评论