logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

【进阶篇】二、实现Java Agent的静态加载和动态加载

通过Java Agent,生成一种特殊的jar包(一种工具),业务程序可以主动去调用jar包里的方法。如此,Java Agent的jar就会被执行。,适用于Arthas类似的诊断工具。实现动态加载模式,需要在Java Agent项目中编写一个。如此,JVM将会加载agent中的代码去执行。在Java Agent的项目中编写一个。

#java
【进阶篇】三、Java Agent实现自定义Arthas工具

JDK1.5起,提供Java Management Extensions (JMX) 技术,JMX技术使得开发者可以在内存中保存一个MXbean对象,存一些配置信息(类似对象容器的方式去存放一种特有的对象),另外,JVM也将一些程序的运行信息放入了MXbean对象。使用jd-core,copy官方示例,Loader注意改字节码的来源,Printer重写end方法,打印反编译后的源码即可。用JMX的

文章图片
#java#jvm
【进阶篇】五、Java Agent实现系统数据采集

APM系统用到了Java Agent的静态代理模式 + 字节码增强,从而采集到方法的耗时、数据库的查询时长、SQL信息等Arthas用到了Java Agent的动态代理模式,用到了JMX获取到一些信息,以及字节码增强打印方法耗时、参数等。

文章图片
#java#开发语言
【开发篇】十二、缓存框架JetCache

JetCache对SpringCache进行了封装,在原有功能基础上实现了多级缓存、缓存统计、自动刷新、异步调用、数据报表等功能CaffeineRedisTair。

文章图片
#缓存
Java中调用第三方接口

考虑到远程调用可能失败,失败后重试三次,以上面的hutool为例来实现,其余的都一样,主要还是一个是否成功标记位 + 一个计数,successFlag不用voilate,并发安全也不用考虑,线程内部调用的,用到的数存栈里了都。上面的RestTemplate,在调三方接口时挺好用的,但微服务架构下,各个微服务之间调用时,url就不好写,由此,用Feign:一个声明式的http客户端。和getForE

文章图片
#java#开发语言
Git的安装与使用+Git在IDEA中的使用

开发中,代码备份、代码还原回滚、追溯、协同开发等场景必不可少,由此,版本控制工具诞生。

文章图片
#git#github#svn
系统数据加密传输的实现

针对以上要加密的数据,用户密码处理的流程图如下:修改注册后端接口,用户注册时,提交密码,前端用公钥对密码进行加密后,传到后端服务器。对邮箱名、手机号等信息,可非对称加密,也可使用AES对称加密,实现加密传输,加密落库则可有可无,如果选择了加密落库,可能会影响到之前的userList接口等等,总之明文、密文别转换叉了。修改后端登录接口,登录时,前端传来的密码,解密后传到SpringSecurity框

文章图片
【开发篇】一、内存泄漏的分析工具

最后,可以使用Visual VM的采样tab页,查看当前堆里的对象信息。一个对象不再使用后,(因其从GC Root仍有引用链可达)却未被JVM回收,白白占着内存,即内存泄漏,这个效果累积,最后就会OOM。再引入另一依赖:micrometer,将JVM、数据库连接池的信息、磁盘信息等收集上来,组装成Prometheus能识别的格式。查看堆和元空间的走向:这里有size向max扩容的知识点,别看到高的

文章图片
#jvm#java
docker报错standard init linux.go:228 exec user process caused: exec format error

此时,考虑你Dockfile里的基础镜像,它的架构也要对应上。不能做amd下的镜像,但基础镜像却是arm下的。比如我之前使用JDK的镜像,Dockerfile共用一个

文章图片
#docker#linux
【云从】七、云数据库

结构化数据,如一些用户信息,可以存放在一张用户表,而非结构化数据,如用户投稿的视频、图片,这些数据,就可以存放在对象存储里。把书籍比作数据,那磁盘就是书架,用于存放书籍,而数据库则是图书馆管理系统,负责管理书籍的借阅、归还和分类等事务,关系型数据库中往往含有多个数据表,在数据表中存储数据,可以类比图书馆存放书籍的模式。大规模数据及多重数据种类存储的解决方案–非关系型数据库。

文章图片
#数据库#性能优化
    共 45 条
  • 1
  • 2
  • 3
  • 4
  • 5
  • 请选择