`
文章列表
数据库的sharding技术作为一个“新瓶装旧酒”的概念,在新的应用环境中被赋予了新的意义。随着云计算的发 展,sharding在最近几年是越来越火热,越来越多的产品开始声称自己支持sharding功能。那么到底什么是sharding,shardi ...

mina的HTTP性能测试

    博客分类:
  • mina
Apache MINA(Multipurpose Infrastructure for Network Applications) 是 Apache 组织一个较新的项目,它为开发高性能和高可用性的网络应用程序提供了非常便利的框架。当前发行的 MINA 版本支持基于 Java NIO 技术的 TCP/UDP 应用程序开发、串口通讯程序(只在最新的预览版中提供),MINA 所支持的功能也在进一步的扩展中。 新项目里的web service需要高并发服务能力,tomcat目前最多支持到200个并发。远达不到要求。 0.测试环境:   client和server:CPU:单核2G,内存 ...
软件架构概念分为两大流派:组成派和决策派               组成派 : 软件系统的架构将系统描述为计算组件及组件之间的交互 。                               有以下两个显著的特点:             ...
         沟通最重要的不是表达自己的思想,而是对方能否正确明白你想表达的思想。          如何去让对方正确理解而不是主观臆断呢?                       1.平和的心态。                       2.在沟通中,尽量理解对方的想法,无论是赞同的还是不赞同的。                       3.根据形势来决定自己是强势还是弱势。    
ActiveMQ的主备有三种方式:纯Master/Slave、文件共享方式、数据库共享方式。 1、纯Master/Slave 这种方式的主备不需要对Master Broker做特殊的配置,只要在Slave Broker中指定他的Master就可以了,指定Master有两种方式,最简单的配置就是在broker节点中添加 masterConnectorURI=”tcp://localhost:61616″即可,还有一种方式就是添加一个services节点,可以指定 连接的用户名和密码,配置如下: <services> <masterConnector rem ...
  activeMQ可以实现多个mq之间进行路由,假设有两个mq,分别为brokerA和brokerB,当有一条消息发送到brokerA的队列test 中,有一个客户端连接到brokerB上,并且要求获取test队列的消息时,brokerA中队列test的消息就会路由到brokerB上,反之 brokerB的消息也会路由到brokerA。 静态路由配置,brokerA不需要特别的配置,brokerB需要配置networkConnectors节点,具体配置如下:   <networkConnectors> <networkConnector ...
监视ActiveMQ的方式有多种,在第一部分中已经说到了Web监视控制台,设置登录用户名和密码,这里再说一下JMX监控。运行了ActiveMQ之后,再运行jdk自带的jconsole即可以看到ActiveMQ的进程,如图:
  配置完了持久化之后,我们就可以使用代码来发送和接收ActiveMQ中的消息了,我这里配置的持久化是KahaDB。 需要导入的jar包: 一段发送消息的代码: package send; import javax.jms.Connection; import javax.jms.DeliveryMode; import javax.jms.Destination; import javax.jms.MessageProducer; import javax.jms.Session; import javax.jms.TextMessage; import ...
引言:大家都知道“效率”是数据库中非常重要的一个指标,如何提高效率大家可能都会想起索引,但索引又这么多种,什么场合应该使用什么索引呢?哪种索引可 以提高我们的效率,哪种索引可以让我们的效率大大降低(有时还不如全表扫描性能好)下面要讲的“索引”如何成为我们的利器而不是灾难!多说一点,由于不同 索引的存储结构不同,所以应用在不同组织结构的数据上,本篇文章重点就是:理解不同的技术都适合在什么地方应用! B-Tree索引 场合:非常适合数据重复度低的字段 例如 身份证号码  手机号码  QQ号等字段,常用于主键 唯一约束,一般在在线交易的项目中用到的多些。 原理:一个键值对应一行(rowid) ...

分析排查

除了Dtrace与Java技术的集成之外,Java SE 6发行中还包含了许多其它的可观察性工具。下面总结了这些工具,其中还包含一些更为详细的链接说明。  (一) JConsole  JConsole使用JVM的可扩展性Java管理扩展(JMX)工具来提供关于运行于Java平 ...
前面的章节主要谈谈原子操作,至于与原子操作一些相关的问题或者说陷阱就放到最后的总结篇来整体说明。从这一章开始花少量的篇幅谈谈锁机制。 上一个章节 中谈到了锁机制,并且针对于原子操作谈了一些相关的概念和设计思想。接下来的文章中,尽可能的深入研究锁机制,并且理解里面的原理和实际应用场合。 尽管synchronized在语法上已经足够简单了,在JDK 5之前只能借助此实现,但是由于是独占锁,性能却不高,因此JDK 5以后就开始借助于JNI来完成更高级的锁实现。 JDK 5中的锁是接口
  从相对简单的Atomic入手(java.util.concurrent是基于Queue的并发包,而Queue,很多情况下使用到了Atomic操作,因此首先从这里开始)。很多情况下我们只是需要一个简单的、高效的、线程安全的递增递减方案。注意,这里有三个条件:简单,意味着程序员尽可能少的操作底层或者实现起来要比较容易;高效意味着耗用资源要少,程序处理速度要快;线程安全也非常重要,这个在多线程下能保证数据的正确性。这三个条件看起来比较简单,但是实现起来却难以令人满意。 通常情况下,在Java里面,++i或者--i不是线程安全的,这里面有三个独立的操作:或者变量当前值,为该值+1/-1,然后写回 ...
去年年底有一个Guice 的研究计划,可惜由于工作“繁忙”加上实际工作中没有用上导致“无疾而终”,最终只是完成了Guice的初步学习教程,深入的研究没有继续进行下去。 最近一直用的比较多的就是java.util.concurrent(J.U.C),实际上这块一直也没有完全深入研究,这次准备花点时间研究下Java里面整个并发体系。初步的设想包括比较大的方便(包括硬件、软件、思想以及误区等等),因此可能会持续较长的时间。这块内容也是Java在多线程方面引以为豪的一部分,深入这一部分不仅对整个Java体系有更深的了解,也对工作、学习的态度有多帮助。 从深入浅出入手,大体内容包括一下几个方面: ...
有些话自己说的时候也没有特别的感觉,但是听的人觉得很棒,还反馈给我。于是引发我自己又重新琢磨自己说的话,最后自己也有了新的体会。或许这也说明了,有一个聪明的听众是多么重要。 有一次我跟一个人说 ...
  在网络上流畅很广的一篇旧文,暂时没找到原作者,目前所看到的最早转载时间是 2005 年 2 月 28 日。作者用轻松的语言,形象解释了 23 种模式,有很好的启发作用。 创建型模式 1、FACTORY—追MM少不了请吃饭了,麦当劳的鸡 ...
Global site tag (gtag.js) - Google Analytics