Apache Commons Pool实现了对象池的功能.定义了对象的生成.销毁.激活.钝化等操作及其状态转换,并提供几个默认的对象池实现.在讲述其实现原理前,先提一下其中有几个重要的对象: PooledObject(池对象). PooledObjectFactory(池对象工厂). Object Pool(对象池). 下面分别详细讲解它们的实现. PooledObject(池对象) 用于封装对象(如:线程.数据库连接.TCP连接),将其包裹成可被池管理的对象.提供了两个默认的池对象实现: De…
1. Google Chrome 源码 SVN 地址:http://src.chromium.org/svn.包含有 Chrome.Gears.Webkit.GCC 等源码以及编译依赖工具.Chrome 浏览器项目的源码,位于目录 http://src.chromium.org/svn/trunk/src/chrome/ 2. Google Chrome 源码 Web 浏览地址:http://src.chromium.org/viewvc/ 3. Google Chrome 所使用的 JavaS…
背景 在基于elk的日志系统中,filebeat几乎是其中必不可少的一个组件,例外是使用性能较差的logstash file input插件或自己造个功能类似的轮子:). 在使用和了解filebeat的过程中,笔者对其一些功能上的实现产生了疑问,诸如: 为什么libbeat能如此容易的进行扩展,衍生出多个应用广泛的beat运输程序? 为什么它的性能比logstash好? (https://logz.io/blog/filebeat-vs-logstash/) 是如何实现‘保证至少发送一次’这个f…
一步步实现windows版ijkplayer系列文章之一--Windows10平台编译ffmpeg 4.0.2,生成ffplay 一步步实现windows版ijkplayer系列文章之二--Ijkplayer播放器源码分析之音视频输出--视频篇 一步步实现windows版ijkplayer系列文章之三--Ijkplayer播放器源码分析之音视频输出--音频篇 一步步实现windows版ijkplayer系列文章之四--windows下编译ijkplyer版ffmpeg 一步步实现windows版…
一.异常出现的场景 1)异常出现的SQL @Select("SELECT\n" + " id,discount_type ,min_charge, ${cardFee} AS actualDiscountPrice , discount_price AS discountPrice ,status ,name \n" + "FROM\n" + "\tuser_coupon \n" + "WHERE\n" +…
1. Kafka.scala 在Kafka的main入口中startup KafkaServerStartable, 而KafkaServerStartable这是对KafkaServer的封装 1: val kafkaServerStartble = new KafkaServerStartable(serverConfig) 2: kafkaServerStartble.startup 1: package kafka.server 2: class KafkaServerStartable…
原文地址:http://www.aboutyun.com/thread-9938-1-1.html 问题导读1.Kafka提供了Producer类作为java producer的api,此类有几种发送方式?2.总结调用producer.send方法包含哪些流程?3.Producer难以理解的在什么地方? producer的发送方式剖析Kafka提供了Producer类作为java producer的api,该类有sync和async两种发送方式.sync架构图 async架构图 调用流程如下:…
前言 要问 Hortonworks 这家公司最有产品力的产品是什么,我觉得是 Apache NiFi.去年Cloudera 和 Hortonworks 合并之后,以 Cloudera 为主,两家公司进行产品整合.Cloudera 从 Hortonworks 家没拿啥东西,唯独拿来了 Apache NiFi ,并借鉴了 HDF 平台,整合成了全新的产品 Cloudera DataFlow(CDF)产品,并且大有把 CDF 做成自家拳头产品之势.Cloudera 官网 PRODUCTS 展示的第一个…
​ 点亮 ️ Star · 照亮开源之路 https://github.com/apache/dolphinscheduler 本文目录 1 DolphinScheduler的设计与策略 1.1 分布式设计 1.1.1 中心化 1.1.2 去中心化 1.2 DophinScheduler架构设计 1.3 容错问题 1.3.1 宕机容错 1.3.2 失败重试 1.4 远程日志访问 2 DolphinScheduler源码分析 2.1 工程模块介绍与配置文件 2.1.1 工程模块介绍 2.1.2 配…
本文由秀依林枫提供友情赞助,首发于烂泥行天下. 最近要开始学习nagios监控方面的知识了,但是nagios与apache结合的比较紧密,所以本篇文章就先把apache的源码安装学习下. 我们现在分以下步骤进行安装apache: 1. 安装编译环境 2. 卸载原有apache 3. 下载解压源码包 4. 安装apache 5. 测试apache 6. 查看apache安装生成的目录 7. 查看apache的配置文件 8. apache加入系统服务 一.安装编译环境 在安装apache之前,我们需…
目标:源码安装apache 依赖包:apr.apr-util和pcre.其中pcre正则库要先安装,apr和apr-util(已解压)可以复制到apache下的资源库srclib下. 安装pcre: 解压pcre****.tar.bz2: tar zxvf pcre****.tar.bz2 1.预编译:进入pcre目录执行 ./configure --prefix=/usr/local/pcre (将要安装到的目录) 2.编译:make 该过程可能有错,提示gcc-c++等,可以直接 yum -…
1.搭建静态网站是,我们只需要搭建apache服务即可满足要求. 例如:如果我再客户端游览器输入地址,他会找到192.168.1.100这个服务器,然后根据端口会找到apache服务器.apache他会把它某个目录下的index.html里的代码通过URL地址在返回给客户端的游览器,然后游览器就会根据返回的代码解析成我们看到的网页内容.这是我们访问网页代码的情况. 2.但是,如果我们访问的是非.html文件呢,apache也会尝试把这个文件打开,把里面的代码全部在返回给客户端,所以前台就会把这个…
apache mina是一个基于java nio的网络通信框架,为TCP UDP ARP等协议提供了一致的编程模型:其源码结构展示了优秀的设计案例,可以为我们的编程事业提供参考. 依照惯例,首先搭建apache mina 2.0的开发环境,本人采用maven作为项目管理工具,需要添加的依赖pom.xml文件如下 <properties> <org.slf4j-version>1.6.6</org.slf4j-version> <project.build.sour…
[本文为笔者在学习Linux 下的软件安装时,尝试使用源码安装Apache 的过程,事后进行一个小小的总结,发现错误望指正.] 一.典型的源码编译安装软件的过程包括以下3步: 1) 运行 configure 命令,并结合必要的参数以生成Makefile :(读者可以自行百度Makefile 相关知识) 2) 运行 make 命令生成各类模块和主程序: 3) 运行 make install 命令将必要的文件复制到安装目录中. (以上过程都在对应软件安装包的根目录中进行) 二.安装过程 Linux…
源码安装Apache 安装需要的依赖 yum -y install gcc autoconf automake make pcre pcre-devel openssl openssl-devel​#pcre是正则表达式库#openssl是安全通信的库 安装apr和apr-until #apr是Apache可移植运行时#apr-until是Apache可移植运行时实用程序库​wget https://mirrors.tuna.tsinghua.edu.cn/apache//apr/apr-1.7…
源码编译apache报错的解决方法   问题介绍 在源码编译安装httpd时,./configure执行无错误,到make时就报错,在网络上搜索了很多文章,很多方法如换apr-util的低版本并不能很好的解决该错误.经过不断的努力,我最终解决了该问题,现将方法记录. 说明:apr/apr-util都是源码编译安装的 错误如下: ... /usr/local/apr-util/lib/libaprutil-1.so: undefined reference to `XML_StopParser'…
源码安装Apache (1) 一.通过 https://apr.apache.org/  下载 APR 和 APR-util 通过 http://httpd.apache.org/download.cgi   下载 httpd 通过 https://ftp.pcre.org/pub/pcre/   下载  pcre 二.配置安装环境 yum -y install gcc gcc-c++ make expat-devel 三.解压与编译安装 mkdir /data (1)编译安装 APR tar…
功能:根据model.xml文件中配置的sql,获取对应的动态sql结果. 实例代码:String sql1 = model.getSql(dao.dbMeta());String sql2 = model.getSql(paramsMap, dao.dbMeta());String sql3 = model.getSql(sqlName, paramsMap, dao.dbMeta());String sql4 = model.getSql(sqlName, dao.dbMeta()); #i…
1.入口类:AbstractAuthenticator 用户输入的登录信息经过其authenticate方法: public final AuthenticationInfo authenticate(AuthenticationToken token) throws AuthenticationException { if (token == null) { throw new IllegalArgumentException("Method argument (authentication…
落雨 cas 单点登录 希望能给以后来研究cas的兄弟留下一点思路,也算是研究了两天的成果,外国人的代码写的很晦涩,翻译下来也没有时间继续跟进,所以有错误的还请大家跟帖和我讨论,qq 394263788 edu.yale.its.tp.cas.client.filter源码分析: /*  Copyright (c) 2000-2004 Yale University. All rights reserved. *  See full notice at end. */ package edu.y…
分析之前先理清楚几个概念 Log4J = Log For Java SLF4J = Simple Logging Facade for Java 看到Facade首先想到的就是设计模式中的门面(Facade)模式,实际上SLF4J 就是一个装"门面"的java日志框架,它只提供一层抽象且通用的日志API供调用方写日志使用,而真正实现写日志功能的则是Log4J.logback等框架和从jdk1.4之后开始提供的java.util.logging包,而具体要使用谁就要看SLF4J中设置的策…
1.ehcahce 什么时候用比较好:2.问题:当有个消息的key不在guava里面的话,如果大量的消息过来,会同时请求数据库吗?还是只有一个请求数据库,其他的等待第一个把数据从DB加载到Guava中 回答:是的,其他的都会等待load,直到数据加载完毕:2.recency queue 干嘛用的: 目前没看出来,但是应该是为了LRU队列也就是快速删除算法,因为recency queue的队列,如果读的话,会往recency queue和 access queue中写入数据,如果写的话,首先要清空…
装载至:https://www.cnblogs.com/storml/p/8611388.html Spring Boot实现了自动加载DataSource及相关配置.当然,使用时加上@EnableAutoConfiguration注解是必须的.下面就是对这一部分的源码分析. (1)Spring Boot启动后会调用org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration.下面是部分源码. 1 @Configu…
1. 对象属性拷贝的常见方式及其性能 在日常编码中,经常会遇到DO.DTO对象之间的转换,如果对象本身的属性比较少的时候,那么我们采用硬编码手工setter也还ok,但如果对象的属性比较多的情况下,手工setter就显得又low又效率又低.这个时候我们就考虑采用一些工具类来进行对象属性的拷贝了. 我们常用的对象属性拷贝的方式有: Hard Code net.sf.cglib.beans.BeanCopier#copy org.springframework.beans.BeanUtils.cop…
概述 spring security 源码分析系列文章. 源码分析 我们想一下,我们使用 ss 框架的步骤是怎么样的. @Configuration @EnableWebSecurity @EnableGlobalMethodSecurity public class SecurityConfig extends WebSecurityConfigurerAdapter { @Autowired private MyUserDetailsService myUserDetailsService;…
该系列文档是本人在学习 Spring MVC 的源码过程中总结下来的,可能对读者不太友好,请结合我的源码注释 Spring MVC 源码分析 GitHub 地址 进行阅读 Spring 版本:5.2.4.RELEASE 该系列其他文档请查看:<精尽 Spring MVC 源码分析 - 文章导读> MultipartResolver 组件,内容类型( Content-Type )为 multipart/* 的请求的解析器,主要解析文件上传的请求.例如,MultipartResolver 会将 H…
该系列文章是笔者在学习 Spring Boot 过程中总结下来的,里面涉及到相关源码,可能对读者不太友好,请结合我的源码注释 Spring Boot 源码分析 GitHub 地址 进行阅读 Spring Boot 版本:2.2.x 最好对 Spring 源码有一定的了解,可以先查看我的 <死磕 Spring 之 IoC 篇 - 文章导读> 系列文章 如果该篇内容对您有帮助,麻烦点击一下"推荐",也可以关注博主,感激不尽~ 该系列其他文章请查看:<精尽 Spring B…
leader的实现类为LeaderZooKeeperServer,它间接继承自标准ZookeeperServer.它规定了请求到达leader时需要经历的路径: PrepRequestProcessor -> ProposalRequestProcessor ->CommitProcessor -> Leader.ToBeAppliedRequestProcessor ->FinalRequestProcessor 具体情况可以参看代码: @Override protected v…
工作中发现在oozie中使用sqoop与在shell中直接调度sqoop性能上有很大的差异.为了更深入的探索其中的缘由,开始了oozie的源码分析之路.今天第一天阅读源码,由于没有编译成功,不能运行测试用例,直接使用sublime肉眼阅读,还是挺费劲的. 虽然流程还不是顺畅,但是大体上的内容还算是了解了. 我这里使用的是oozie4.2的版本,之前稍微看过4.3版本的,源码上还是有一定的差异的. 看上面的图,大致理解oozie的过程是: oozie cli提交任务 oozie server创建一…
@(MyBatis)[DataSource] MyBatis源码分析(5)--内置DataSource实现 MyBatis内置了两个DataSource的实现:UnpooledDataSource,该数据源对于每次获取请求都简单的打开和关闭连接.PooledDataSource,该数据源在Unpooled的基础上构建了连接池. UnpooledDataSource 配置 UNPOOLED数据源只有5个属性需要配置: driver:JDBC具体数据库驱动 url:JDBC连接 username:用…