关于JVM垃圾收集器相关的一点事情

最近在翻JAVA官方的一些文档。关于JAVA垃圾收集器GC的内容,是重点之一。 GC名称 中文名称 启用参数 特性 备注 Serial Collector 串行收集器 -XX:+UseSerialGC 单线程垃圾回收 Parallel Collector 并行收集器 -XX:+UseParallelGC 多线程垃圾回收 Garbage-First(G1) Garbage Collector G1收集器 -XX:+UseG1GC 延迟可控垃圾回收 The Z Garbage Collector Z收集器 -XX:+UseZGC 低延迟垃圾回收 用于延迟敏感型 至于大家常提起的CMS,过渡阶段的产 …

国密算法+国际算法=双算法SSL证书

一、国密算法缘起 原创性密码学算法是信息安全保障的基石,在我国是由国家密码管理局来负责进行密码法规的起草与解释,密码算法标准的制定与实施指导。金融行业中常用的对称加密,非对称加密等算法,国际上有DES,AES,RSA。国密也有对应的SM4,SM2算法。2010年12月17日,SM2算法发布;2012年3月21日,SM2,SM3,SM4国密算法作为国家标准获批发布。 标题 日期 国家密码管理局关于发布《SM2椭圆曲线公钥密码算法》公告(国密局公告第21号) 2010-12-17 国家密码管理局关于发布《祖冲之序列密码算法》等6项密码行业标准公告(国密局公告第23号) 2012-03-21 《信息 …

数字人民币发展与研究

数字人民币作为中国人民银行依法推进的法定数字货币,在各地试点中超预期表现,最近冬奥会成为数字货币一个绝佳的示范与展示场景,并取得了巨大的成功,可喜可贺。 数字人民币亮了:覆盖冬奥全场景40余万个交易额达96亿 在此对数字人民币相关的专题报告与研究分析进行汇总,跟进数字人民币的最新进展,给数字人民币点赞。 专题研究报告 标题 主体 日期 链接 2020中国数字人民币发展观察与综合分析 移动支付网 2020-10-28 链接 2020数字人民币发展研究报告 易观分析 2021-02-01 链接 2021中国数字人民币的研发进展白皮书 中国人民银行 2021-07-16 链接 2021年中国数字人民 …

SLF4J日志门面API与日志库实现包之间绑定方式的变迁

slf4j作为流行的日志门面,对常用的日志库API进行了抽象,应用层仅需要调用SLF4j的API就可以完成日志打印功能,而底层日志框架,可以灵活更换,可以用log4j也可以用logback或者其他自己喜欢或者工作环境要求的特定日志库。 slf4j的api是如何实现与底层日志库的绑定呢?api绑定解决不好,则会导致大量的类与功能实现进入api层面所在的模块,并且会导致拆分不彻底。 slf4j的绑定方式有两种,从1.0.X->1.7.X版本是采用的static-binding方式,以前我们经常会遇到的应用启动报错,说存在多个绑定类,然后选择了哪个绑定实现,就是这个应用的classpath中,引入了 …

JAVA中获取类名与行号的代价

我们在使用Java的日志库进行日志打印时,有个微小的功能,打印当前代码行所在的类名,方法名以及行号等信息,这个功能是如何实现的呢?说起来这还是一个推动JDK发展的事情,从最初的没提供相关的能力,到JDK1.5之后提供Thread.currentThread().getStackTrace()方法能够方便的获取StackTraceElement数组,进而方便的拿到类名与行号等信息,也是非常好的一个进化例子。但是我们这里关注的是调用这个方法,给应用带来的消耗是怎么样的?这是个快速简洁的方式么? 上测试验证的代码如下: 一次本地运行效果如下: 其中类型1,是执行类名与代码行号获取,类型0是执行路径完 …

Log4j2代码分布分析

以Log4j2的2.14.1版本为例,分析Log4j2的代码分布情况,看看这个主流的开源日志库,其主要精力花在了哪里?其代码分布合理性如何? 统计口径:统计Java代码文件文本行数,注释、空行、纯代码都算在内。 一、Log4j各模块代码占比 模块名 JAVA文本行 JAVA文本行占比 log4j-1.2-api 15449 5.45% log4j-api 41926 14.79% log4j-api-java9 687 0.24% log4j-appserver 448 0.16% log4j-cassandra 699 0.25% log4j-core 162398 57.28% log4j …

架构杂谈:JAVA包命名设计

常见的JAVA Package命名规范如下: 在java开发的过程中,每名Java开发人员都可以编写属于自己的java package,为了在编写中保证每一个java package命名的唯一性,要求开发人员在自己定义的包名前加上唯一的前缀。所以多数开发人员采用自己公司的名称.项目名.模块名…在互联网上的域名称作为自己程序包的唯一前缀。例如: com.sun.xml… 但要是个人的项目我们又应该怎么命名呢?indi :个体项目,指个人发起,但非自己独自完成的项目,可公开或私有项目,版权主要属于发起者。包名为indi.发起者名.项目名.模块名*..pers :个人项目 …

身边的网络常识

作为一个资深老码农,虽然一直专心于应用开发,但仍然免不了在某些场合去要接触与了解网络相关常识概念。这些对于网络工程师可能是入门级的知识,对于应用开发来说有些陌生,学习的时候,到处度娘搜索。给出几个权威的,比较专业以及正确的资料。 那比较权威和专业的资料来源来自于哪里呢?当然是设备厂商的官方网站了。 一、VRRP 对于目前常用的分布式微服务架构,在负载层,使用LVS作为4层负载是常见的一种设计。那LVS的高可用是什么原理?答案是VRRP协议。对于VRRP协议,原先是用于网络设备的高可用的,用在LVS这样的负载层最合适不过了。附两个权威VRRP资料,图文并茂,非常好: 1、华三官网:VRRP技术白 …

从零搭建分布式文件系统MinIO比FastDFS要更合适

前两天跟大家分享了一篇关于如何利用FastDFS组件来自建分布式文件系统的文章,有兴趣的朋友可以阅读下《用asp.net core结合fastdfs打造分布式文件存储系统》。通过留言发现大家虽然感兴趣,但是都觉得部署比较麻烦。的确,fastdfs的部署很繁琐,而且也没有官方提供的针对.net core的sdk。而今天带来的MinIO则是一个比fastdfs更好的选择,可以让你足够简单的来部署使用,官方也提供了足够详细的api文档。下面就让我们开始今天的正文吧。 这里说明下为什么今天才进行分享,因为就在几个小时前官方才发布了最新的3.1.12版本的nuget包,解决了BucketExistsAs …