
Java提高
文章平均质量分 77
zero__007
这个作者很懒,什么都没留下…
展开
-
MemorySafeLinkedBlockingQueue
转载自:https://xuliugencn.blog.csdn.net/article/details/125229930?前几天在一个开源项目的 github 里面看到这样的一个 pr:光是看这个名字,里面有个 MemorySafe,我就有点陷进去了。我先给你看看这个东西:这是阿里巴巴开发规范中截的图。为什么不建议使用 FixedThreadPool 和 SingleThreadPool 呢?因为队列太长了,请求会堆积,请求一堆积,容易造成 OOM。转载 2023-04-04 19:29:17 · 338 阅读 · 0 评论 -
前缀匹配的工具类
有这样业务场景:对于一个主题subject,想看有哪些group订阅了。而对于消费者来说,订阅的时候就是需要支持前缀匹配的,比如XXX.order.pay,支持订阅XXX.order 就能获取消息。使用的数据结构是基数树,而不是以为的字典树,基数树与字典树的区别在于基数树将单词压缩了, 节点变得更少,解决了字典树高度问题。转载自:https://blog.csdn.net/bohu83/article/details/126427401。翻译 2022-10-19 21:30:00 · 437 阅读 · 0 评论 -
MapStruct用法示例
MapStruct转载 2022-10-14 21:45:00 · 1131 阅读 · 0 评论 -
MyBatis 流式查询
基本概念流式查询 指的是查询成功后不是返回一个集合而是返回一个迭代器,应用每次从迭代器取一条查询结果。流式查询的好处是能够降低内存使用。如果没有流式查询,我们想要从数据库取 1000 万条记录而又没有足够的内存时,就不得不分页查询,而分页查询效率取决于表设计,如果设计的不好,就无法执行高效的分页查询。因此流式查询是一个数据库访问框架必须具备的功能。流式查询的过程当中,数据库连接是保持打开状态的,因此要注意的是:执行一个流式查询后,数据库访问框架就不负责关闭数据库连接了,需要应用在取完数据后自己关闭。转载 2021-03-01 20:03:36 · 189 阅读 · 0 评论 -
Sentinel机制
1. Sentinel 是什么?随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。Sentinel 具有以下特征:丰富的应用场景:Sentinel 承接了阿里巴巴近10年的双十一大促流量的核心场景,例如秒杀、消息削峰填谷、集群流量控制、实时熔断下游不可用应用等。完备的实时监控:Sentinel 同时提供实时的监控功能。你可以在控制台中看到接入应用的单台机器秒级数据,甚至 500 台以下规模的集群的转载 2021-02-22 20:16:39 · 385 阅读 · 0 评论 -
Sentinel限流内部原理
前言限流是保障服务高可用的方式之一,尤其是在微服务架构中,对接口或资源进行限流可以有效地保障服务的可用性和稳定性。之前的项目中使用的限流措施主要是Guava的RateLimiter。RateLimiter是基于令牌桶流控算法,使用非常简单,但是功能相对比较少。而现在,我们有了一种新的选择,阿里提供的 Sentinel。Sentinel 是阿里巴巴提供的一种限流、熔断中间件,与RateLimiter相比,Sentinel提供了丰富的限流、熔断功能。它支持控制台配置限流、熔断规则,支持集群限流,并可以将转载 2021-02-22 20:10:39 · 1374 阅读 · 0 评论 -
Arthas
文章目录安装使用基础命令jvm相关class/classloader相关monitor/watch/trace相关常用示例watchtrace安装使用arthas-boot(推荐)下载arthas-boot.jar,然后用java -jar的方式启动:wget https://alibaba.github.io/arthas/arthas-boot.jarjava -jar arth...原创 2019-09-10 13:45:55 · 242 阅读 · 0 评论 -
javaassist使用
之前使用到了Instrumentation来做字节码修改,用到了javaassist,顺便做个笔记,记录一下。对于动态扩展现有类或接口的二进制字节码,有比较成熟的开源项目提供支持,如CGLib、ASM、Javassist等。其中,CGLib的底层基于ASM实现,是一个高效高性能的生成库;而ASM是一个轻量级的类库,但需要涉及到JVM的操作和指令;相比而言,Javassist要简单的多,完全是基于...原创 2019-10-08 20:11:21 · 2403 阅读 · 0 评论 -
Orika 拷贝框架
Orika是一个简单、快速的JavaBean拷贝框架,Orika使用字节代码生成来创建具有最小开销的快速映射器。pom.xml 引入: <dependency> <groupId>ma.glasnost.orika</groupId> <artifactId>orika-core</artifactId> <version>1.5.1</ve转载 2020-07-10 19:24:30 · 298 阅读 · 0 评论 -
JavaBean对象属性copy
1.对象属性拷贝的常见方式及其性能 在日常编码中,经常会遇到DO、DTO对象之间的转换,如果对象本身的属性比较少的时候,那么采用Hard Code工作量也不大,但如果对象的属性比较多的情况下,Hard Code效率就比较低。这时候就要使用其它工具类来进行对象属性的拷贝。 常用的对象属性拷贝的方式和性能测试如下:拷贝方式copy次数1000copy次数100000copy次数...原创 2019-07-15 20:37:12 · 5952 阅读 · 0 评论 -
org.aeonbits.owner
转载自: http://hao.jobbole.com/owner/ http://blog.csdn.net/BestandW1shEs_lsy/article/details/78706790 OWNER是一个Java库,目标是最大限度的减少应用程序中处理properties的代码。 OWNER的主要功能: • 加载策略:OWNER通过匹配接口类名和proper...转载 2018-03-08 22:31:11 · 1221 阅读 · 0 评论 -
用Redlock实现reids的分布式锁
转载自:https://blog.csdn.net/forezp/article/details/70305336一、redlock简介在不同进程需要互斥地访问共享资源时,分布式锁是一种非常有用的技术手段。Redlock是redis官方提出的实现分布式锁管理器的算法。这个算法会比一般的普通方法更加安全可靠。二、怎么用java使用 redlock在pom文件引入redis和redisson依...转载 2018-10-22 21:29:33 · 328 阅读 · 0 评论 -
Java动态代理机制
动态代理 Java动态代理类位于Java.lang.reflect包下,一般主要涉及到以下两个类: InvocationHandler:该接口中仅定义了一个invoke方法。 每一个动态代理类都必须要实现InvocationHandler这个接口,并且每个代理类的实例都关联到了一个handler,当通过代理对象调用一个方法的时候,这个方法的调用就会被转发为由InvocationH...原创 2019-06-03 22:37:58 · 279 阅读 · 0 评论 -
caffeine cache
转载自:https://blog.csdn.net/rlnLo2pNEfx9c/article/details/85241639 guava cache的功能的确是很强大,满足了绝大多数的人的需求,但是其本质上还是LRU的一层封装,所以在众多其他较为优良的淘汰算法中就相形见绌了。而caffeine cache实现了W-TinyLFU(LFU+LRU算法的变种)。W-TinyLFU是命中率最接近...转载 2019-04-15 20:48:55 · 2624 阅读 · 0 评论 -
主流Java数据库连接池比较
转载自:https://www.jianshu.com/p/b9b98ac3e010文章目录一、主流数据库连接池二、HikariCP性能分析:三、前瞻,未来到底是HikariCP还是Druid的天下?四、从Sharding-jdbc架构演进看未来一、主流数据库连接池C3p0: 实现数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。Hibernate、Spring使用。单线程,性...转载 2019-11-26 19:40:30 · 2686 阅读 · 1 评论 -
数据库连接池Druid使用总结
转载自:http://blog.csdn.net/jiangguilong2000/article/details/68483886 http://blog.csdn.net/qq_26562641/article/details/54600976 目前的数据库连接池有多种,在性能方面 hikariCP>druid>tomcat-jdbc>dbcp转载 2017-09-11 19:27:20 · 2658 阅读 · 0 评论 -
Hystrix的原理与使用
转载自:https://segmentfault.com/a/1190000005988895 http://blog.csdn.net/xiaoyu411502/article/details/50601687 Netflix的 Hystrix 是一个帮助解决分布式系统交互时超时处理和容错的类库, 它同样拥有保护系统的能力. Hy转载 2017-09-11 19:37:42 · 5465 阅读 · 0 评论 -
OkHttp使用
转载自:http://blog.csdn.net/qq_26562641/article/details/53639982OKHttp是基于Http协议上的网络通讯,相较于HttpClinent,OKHttp就比较轻量级。转载 2017-09-04 18:58:20 · 288 阅读 · 0 评论 -
io.dropwizard.metrics
转载自:http://o-u-u.com/?p=1753 http://www.cnblogs.com/super-d2/p/5002061.html Metrics是一个给JAVA服务的各项指标提供度量工具的包,在JAVA代码中嵌入Metrics代码,可以方便的对业务代码的各个指标进行监控。作为一款监控指标的度量类库,它提供了很多模块可以为第三方转载 2017-04-10 19:57:03 · 2232 阅读 · 0 评论 -
Jackson2笔记
官方WIKI:https://github.com/FasterXML/jackson-databind/wikijackson 1.x和2.x版本的注解是放置在不同的包下的 1.x是在jackson core jar包org.codehaus.jackson.annotate下 2.x是在jackson-databind包com.fasterxml.jacks原创 2015-11-07 21:44:51 · 2547 阅读 · 0 评论 -
Jackson
Jackson可以轻松的将Java对象转换成json对象和xml文档,同样也可以将json、xml转换成Java对象。用代码来展示用jackson包对json操作:原创 2015-03-11 15:59:44 · 548 阅读 · 0 评论 -
配置文件解析利器-Config库
Typesafe的Config库,纯Java写成、零外部依赖、代码精简、功能灵活、API友好。支持Java properties、JSON、JSON超集格式HOCON以及环境变量。public class Configure { private final Config config; public Configure(String confFileName) {原创 2016-05-24 21:47:03 · 9123 阅读 · 0 评论 -
commons-cli启动参数处理
转载自:http://blog.csdn.net/feihong247/article/details/7848452 CLI 即Command Line Interface,也就是"命令行接口",它为Java 程序访问和解析命令行参数提供了一种统一的接口。 参数的配置和常用的命令一样,横杠+参数名+空格+参数值,java会根据main方法中String[]转载 2016-07-31 20:50:41 · 1574 阅读 · 0 评论 -
Parquet
转载自: http://lastorder.me/tag/parquet.html https://blog.csdn.net/yu616568/article/details/51868447 Parquet是Hadoop上的一种支持列式存储文件格式。Parquet用Dremel论文(Dremel: Interactive Analysis of Web-Scale Datas...转载 2018-03-23 22:39:56 · 5769 阅读 · 0 评论 -
influxdb快速入门
转载自:http://www.bubuko.com/infodetail-459996.html https://xtutu.gitbooks.io/influxdb-handbook/content/an_zhuang_shi_yong.html https://docs.influxdata.com/influxdb/v0.9/con转载 2016-08-02 20:50:34 · 24716 阅读 · 7 评论 -
Quartz2.x使用
参考:http://blog.csdn.net/seven_3306/article/details/17098493 http://lavasoft.blog.51cto.com/62575/181907/Quartz是Java版开源定时调度器,功能强大,使用方便。。 一、核心概念1.Job 表示一个作业/任务,要执行的具体内容。此接口中只有转载 2016-05-12 20:40:05 · 1771 阅读 · 1 评论 -
thriftのjava应用
转载:http://itindex.net/detail/46937-thrift-%E5%8E%9F%E7%90%86-java http://www.micmiu.com/soa/rpc/thrift-sample/ http://blog.csdn.net/m13321169565/article/details/7835957转载 2015-09-23 14:48:34 · 534 阅读 · 0 评论 -
protobufのjava应用
转载自: http://blog.csdn.net/ajun_studio/article/details/7693056 http://blog.csdn.net/lujinhong2/article/details/47204095 Protocol buffers是一个用来序列化结构化数据的技术,支持多种语言诸如C++、Java以及Python语转载 2015-09-30 10:28:26 · 402 阅读 · 0 评论 -
Java解析XML之dom_sax方式
xml的语法 (1) 文档声明,第一行 (2) 一个xml 文档中,有且只有一个根元素 (3) 属性值用双引号(")或单引号(')分隔(如果属性值中有',用"分隔;有",用'分隔) 特别说明: 如果属性值有单引号,有双引号,则需要使用实体。常用实体如下: < >原创 2015-09-17 20:59:54 · 421 阅读 · 0 评论 -
Java解析XML之dom4j方式
DOM4J是dom4j.org出品的一个开源XML解析包。Dom4j是一个易用的、开源的库,用于XML,XPath和XSLT。它应用于Java平台,采用了Java集合框架并完全支持DOM,SAX和JAXP。 需要的jar包:dom4j-1.6.1.jar、jaxen-1.1-beta-6.jar。示例:default.xml zero001 123@1原创 2015-09-19 08:27:55 · 429 阅读 · 0 评论