- 浏览: 555365 次
- 性别:
- 来自: 深圳
最新评论
-
jiang2011jiang:
mybatis3源码核心类1--Configuration -
tuyf_hs:
同求 图片
zookeeper+dubbo+dubbo管理集群的简要配置[单机] -
安静听歌:
请问图片还能找的会吗?你的图片和原文的图片都挂了,,,如果有图 ...
zookeeper+dubbo+dubbo管理集群的简要配置[单机] -
ahua186186:
yngwiet 写道楼主,有一个地方不太明白,为什么要用“ge ...
ListView中getChildAt(index)的使用注意事项 -
yngwiet:
楼主,有一个地方不太明白,为什么要用“getChildAt(p ...
ListView中getChildAt(index)的使用注意事项
文章列表
1.初始化NioServerSocketChannelFactory:
(1)初始化并启动NioServerBoss线程:默认是1个:
第一步:通过构造函数里面的openSelector()方法创建Selector并启动一个boss线程:
/**
* Start the {@link AbstractNioWorker} and return the {@link Selector} that will be used for
* the {@link AbstractNioChannel}'s when they get registered
...
客户端建立连接环节:(线程就像车的引擎,是RPC框架设计的关键)
1.主线程(main)初始化2个对象:ChannelFactory 和ChannelPipelineFactory
(1)初始化NioClientSocketChannelFactory的3个属性:bossPool ,workerPool ,sink (new NioClientSocketPipelineSink(bossPool))并启动boss和工作线程(见文章后面的第5点)
(2)初始化DefaultChannelPipeline的属性:name2ctx,tail,
2.主线程(main)通过 clientboot ...
问题1:JMX是什么?
总结:JMX是JAVA管理程序的框架。
问题1:JMX能干什么?
总结:JMX可以用来查看程序的配置信息,内存,线程,类,操作系统信息等,如JCONSOL,同时是可以操作和监控某个类的属性,前提是该属性是可读可写的。
问题3:如何操作和监控某个类的属性?
总结:自定义MBean, 最简单的实现方式就是用“基于POJO-MBean来做JMX”,也可以通过自定义注解,然后通过JMX的核心类:MBeanServer来注册即可。
问题4:实践过的场景
总结:
(1)用于排查生产环境“连接池爆满”的问题 { 监控生成环境数据库连接池的使用情况 }。
(2)用JCONSOL ...
https://github.com/pftx/niolex-common-utils/tree/master/commons-notify/src
通过MQ进行A和B之间的双向通信
- 博客分类:
- JAVA SE
现在有两台机器A和B,分别安装了MQ6.0,我要通过MQ进行A和B之间的双向通信。
我打算分两步,第一步:实现A到B的数据传输。
在A上:
1、创建队列管理器 QM_1001。
2、创建本地队列 LQ_1001
3、创建传输队列 XQ_1001
4、创建远程队列 RQ_1002
5、创建发送方通道 1001.1002
在B上:
1、创建队列管理器 QM_1002
2、创建本地队列 LQ_1002
3、创建接收方通道 1001.1002,名字必须与发送方通道相同。
4、创建侦听器,监听1414端口
这样,A到B的数据传输就可以了。
启动队列管理器QM_1001和QM_1002,启动B上的侦听器,A ...
public class HttpClientUtil {
private final static Logger logger = LoggerFactory.getLogger(HttpClientUtil.class);
private static PoolingHttpClientConnectionManager connManager = null;
private static CloseableHttpClient httpclient = null;
static {
...
http://valleylord.sinaapp.com/post/201409-java-heap-dump
http://my.oschina.net/flashsword/blog/265442
JVM性能监控工具:
http://my.oschina.net/feichexia/blog/196575
总体思路和切入点:1.在spring数据访问封装层通过动态代理无侵入的扩展代码加入分库分表策略。(1)分库:通过动态代理扩展SqlSession的代码并传入分库参数来选择sqlSessionTemplate的数据源的方式实现分库策略
public abstract class SqlSessionDaoSupport implements InitializingBean {
private SqlSessionFactoryBean sqlSessionFactoryBean;
private Map<DataSource, SqlSessionTemplate> ...
public class ConfigManager {
private static Logger logger = LoggerFactory.getLogger(ConfigManager.class);
/**
* 每个客户端(服务提供者和服务消费者)对应的配置中心管理者
*/
private static ConcurrentHashMap<String, ConfigManager> map = new ConcurrentHashMap<String, ConfigManager>();
/**
* 服务提供者注册的 ...
今天没什么事,简单测试下RPC框架性能: HSF完胜dubbo
1.dubbo测试结果:
note:
dubbo测试时有使用ZooKeeper,所以存在不公平性,不一定准确。
同步模型
耗时:16.808 s
平均:0.16808 ms
TPS:5949.547834364588
测试数据:
public class TPS_TEST {
public static void main(String[] args) throws InterruptedException {
final ClassPathXmlApplicationContext c ...
1.命令:
mvn clean install -Dmaven.test.skip=true -Dcheckstyle.skip=true
2.编译过程中由于jar包下载可能有问题会导致编译和安装是吧:
根据提示手动删除本地maven库中的jar包重新执行命令
3转换成eclipse工程
mvn eclipse:eclipse -Dcheckstyle.skip=true
JVM 4G内存的黄金比例配置:这个配置最经典,适合web应用和JAVA应用
-server
-Xms4096m
-Xmx4096m
-XX:NewSize=1536m
-XX:MaxNewSize=1536m
-XX:PermSize=64m
-XX:MaxPermSize=64m
-XX:+UseConcMarkSweepGC
-XX:+CMSClassUnloadingEnabled
-XX:MaxTenuringThreshold=5
备注
//XX:MaxTenuringThreshold:垃圾最大年龄取值为机器核数-1,可以适当调大 XX:PermSize 和 XX:Ma ...
原理:
1.利用Memcache add操作的原子性和不替换已经存在的键的值,从而防止热点查询直接穿透到DB。
(1)memcache::add 方法:add方法用于向memcache服务器添加一个要缓存的数据。
注意:如果memcache服务器中已经存在要存储的key,此时add方法调用失败。
(2)memcache::set 方法:set方法用于设置一个指定key的缓存内容,set方法是add方法和replace方法的集合体。
大牛解释:
http://timyang.net/programming/memcache-mutex/
学习总结系列--读写锁的使用
- 博客分类:
- JAVA SE
(1)主要用于读多写少的场景,用来替代传统的同步锁,以提升并发访问性能;
(2)读写锁是可重入、可降级的,一个线程获取读写锁后,可以继续递归获取;从写锁可以降级为读锁,以便快速释放锁资源;
(3)ReentrantReadWriteLock支持获取锁的公平策略,在某些特殊的应用场景下,可以提升并发访问的性能,同时兼顾线程等待公平性;
(4)读写锁支持非阻塞的尝试获取锁,如果获取失败,直接返回false,而不是同步阻塞,这个功能在一些场景下非常有用。例如多个线程同步读写某个资源,当发生异常或者需要释放资源的时候,由哪个线程释放是个挑战,因为某些资源不能重复释放或者重复执行,这样,可以通过tr ...
它主要用于实现volatile修饰的int变量的原子更新操作,对于使用者,必须通过类似compareAndSet或者set或者与这些操作等价的原子操作来保证更新的原子性,否则会导致问题。