`
ahua186186
  • 浏览: 561935 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论
文章列表
以前只排查过DHCP连接池泄露的问题,思路是通过btrace脚本收集日志排查问题,jboss用的是自带的连接池,不熟悉,经过查看官方文档终于找到jboss连接池的核心类,如下: (1)Jboss连接池核心类:InternalManagedConnectionPool :包含2个核心方法:returnConnection  (),getConnection()方法。 (2) 当应用需要进行业务处理时,首先会执行一个getConnection的操作,用于从连接池中获取连接,当业务处理完成后,需要把连接放回到连接池中,执行一个returnConnection的操作。 思路1:通过btrace脚本 ...
1.最近生产环境问题比较多,服务端连接池,接口包连接池各种泄露,监控报警,并且quartz 部分定时任务最近也出现问题: 问题描述:部分quartz定时任务没有启动。 定时任务: <!--设置调度 总管理类 如果将lazy-init='false'那么容器启动就会执行调度程序 --> <bean id="startQuertz" lazy-init="false" autowire="no" class="org.springframework.scheduling.quartz.Schedu ...
1. idea安装和jrebel破解: JRebel是一款JAVA虚拟机插件,它使得JAVA程序员能在不进行重部署的情况下,即时看到代码的改变对一个应用程序带来的影响。JRebel使你能即时分别看到代码、类和资源的变化,你可以一个个地上传而不是一次性全部部署。 Intellij JRebel安装、破解 1.下载文章底部的附件,包含官方插件zip文件以及破解需要的zip文件。 2.打开Intellij,进入Intellij IDEA - Preferences  -  Plugins  -  Install plugin from disk   选择下载的 jr-ide-idea-6.0. ...
提示:个人理解并且只针对NIO模式 总的来说,包括1个“核心接口”和2个“核心接口帮助类”: (1)ChannelFactory(NioClientSocketChannelFactory和 NioServerSocketChannelFactory) 作用:初始化boss,work线程 (2)Channels,DefaultChannelPipeline 作用:统一发送底层IO thread的 ChannelEvent事件给handler(上行+下行)或ChannelSink(下行),通过Future-Listener机制,用户可以方便的主动获取或者通过通知机制获得IO操作结果 ...
以服务实现类NewsService为例: 思考:不明白作者为什么要这样生成服务代理类,根据服务名用反射获取服务实例不行吗?性能貌似也不低啊。 还是说为了热部署才这么做的,我能想到的只有这么个需求才会这么做。 ProxyFactoryCreater类动态生成的代码: //动态代理工厂类 public class ProxyFactory1439795760927 implements IProxyFactory{ private IProxyStub proxyNewsServicedemo =null; private IProxyStub demo1 = ...
1.核心思路: (1)动态代理就不用说啦,本质就是通过字节码增强技术来代理对象的行为。 (2)通过在客户端对每个请求都保存一个计数为1的CountDownLatch对象实现同步模型。 2.细节: 客户端的每个请求1个SessionID,每个SessionID持有一个WindowData对象,每个WindowData持有一个AutoResetEvent对象,每个AutoResetEvent持有一个记数为1的CountDownLatch对象。 3.其他思考: 在动态代理的时候 ,作者设计时抽象啦一层:MethodCaller层,这层的各个环节大概有: 1.第一步当然是init: 初始化S ...
1.总体思路: 通过约定的XML规则(分表分库规则)和 封装jdbc的Connection和PreparedStatement来实现SQL解析,sql路由和sql重写。 2.  3个核心类:ConnectionWrapper(JDBC Connection包装),PreparedStatementWrapper( JDBC PreparedStatement包装),SimpleExecutor(sql执行器,类似mybatis的SimpleExecutor) 3.  3个上下文传参数:ConnectionContext,StatementContext,transactionContext。 ...
1.最简单的方案就是UUID. 2.flicker的方案:(一种极为优秀的主键生成策略) http://my.oschina.net/u/142836/blog/174465 3.最常用的是:twitter的snowflake方案以及它的变种,拼方案的话这个完胜。
今天去面试被这个问题问挂啦,只怪数据库知识太弱,准备买本高性能MYSQL补补,多看看沈询的视频。 现总结下如何解决这个问题: 问题分析和思考: (1)现在数据库的事务隔离级别都是快照级别(MVCC),理论上写写操作是不是不会产生死锁的? (2)表锁了,查看session,关联出SQL,然后执行看看,基本也可以定位下问题。 1.临时方案1:”查询是否是SQL的问题,查看锁表情况并处理锁表“ 或 “调整MYSQL事务隔离级别” 或 “重建索引表空间 ”或 “查询空间是否足够” /* *locked *query locked object and analyse reason,k ...
阿里云各种产品使用索引(更新2015.07.24) http://bbs.aliyun.com/read/251196.html?spm=5176.7189909.0.0.RbMAQJ 常见问题>云服务器ECS>linux操作指南: http://help.aliyun.com/knowledge_list/8314850.html?spm=5176.788314869.1863381.422.pOHzLg
1.summercool-ddl核心类:SqlSessionDaoSupport 和 SqlSessionFactoryBean (1)SqlSessionDaoSupport 封装了SqlSession(通过动态代理SqlSession来选择数据源的方式实现分库策略),SqlSessionFactoryBean,Map<DataSource, SqlSessionTemplate>。 (2)SqlSessionFactoryBean封装了DataSource,SqlSessionFactory(封装了Configuration(封装环境元素(数据源和事务)、 属性、类型别名 ...
1. summercool-hsf 的核心类包括:AbstractHsfService 和 HsfChannel,EventDispatcher,DispatchUpStreamHandler。 (1)真正干活的类:AbstractHsfService 封装EventDispatcher(封装了HsfService ),ChannelHandler列表,Option列表,所有在线Channel, 建立连接的Channel组列表,监听器列表,flowManager(流量控制)。 (2)真正干活的类:HsfChannel封装了HsfService,futures(回调future集合),cal ...
使用插件maven-shade-plugin可以方便的将项目已jar包的方式导出,插件的好处在于它会把项目所依赖的其他jar包都封装起来,这种jar包放在任何JVM上都可以直接运行。 使用步骤 : 将插件添加到pom.xml中,需要改的地方就是mainClass,在这里指定main方法的位置 使用mvn package打包,最后到projectName/target/下查找目标jar包 <build> <plugins> <!-- shade插件打包成jar包 --> <plugin> ...
1.异步调用: 核心原理:利用JDK的动态代理类创建service代理对象,然后在InvocationHandler中调用channel发送数据, 同时在客户端维护一个回调对象callback集合或InvokeFuture对象集合,方便客户端接收消息的时候异步回调。 核心本质我的理解就是 futrue模式(本质就是setResult(),getResult()) + callback模式(本质就是个监听器对象) 相关核心代码: 创建代理: /** * @Title: wrapAsyncProxy4Service * @Description: 为远程服务创建异步动 ...
1.同步调用: 核心原理:利用JDK的动态代理类创建service代理对象,然后在InvocationHandler中调用channel发送数据, 同时利用信号量同步等待结果返回。 本质我的理解是发送数据时采用“future超时模式”把异步变同步等待数据返回,这里的同步是指每次发送、接收过程的同步,即每次发送都会等待数据响应,消息传输还是异步的。 核心本质:每个请求都持有一个InvokeResult(封装一个信号量),通过invokeFuture.getResult(timeout, TimeUnit.MILLISECONDS);等待超时实现 核心代码:invokeFuture.getR ...
Global site tag (gtag.js) - Google Analytics