
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
通过Java Agent,生成一种特殊的jar包(一种工具),业务程序可以主动去调用jar包里的方法。如此,Java Agent的jar就会被执行。,适用于Arthas类似的诊断工具。实现动态加载模式,需要在Java Agent项目中编写一个。如此,JVM将会加载agent中的代码去执行。在Java Agent的项目中编写一个。
JDK1.5起,提供Java Management Extensions (JMX) 技术,JMX技术使得开发者可以在内存中保存一个MXbean对象,存一些配置信息(类似对象容器的方式去存放一种特有的对象),另外,JVM也将一些程序的运行信息放入了MXbean对象。使用jd-core,copy官方示例,Loader注意改字节码的来源,Printer重写end方法,打印反编译后的源码即可。用JMX的

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

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

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

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

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

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

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

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