ARM芯片介绍
目前,几乎所有的智能手机和MID,使用的都是ARM芯片。
这种芯片相比Intel公司的芯片,指令集较简单,所以功耗低、成本低,特别适用于移动设备。随着性能不断提高,它已经开始装备上网本和平板电脑。
它的名字ARM,指的是英国芯片设计公司ARM Holdings。这家公司自己不制造芯片,专门授权其他公司制造。因此,市场上有多家公司生产多种ARM芯片。再加上,ARM公司目前主要授权三个系列的芯片设计----ARM 9、ARM 11和Cortex,所以就造成普通消费者感到眼花缭乱,不知道如何选择。各种ARM芯片之间到底有什么区别?
淘宝网高性能可伸缩架构技术探秘
作为国内最大的B2C网站,淘宝网的网站架构一直承载着数据量告诉增长压力,要保证良好的负载和流程的使用体验,一个可伸缩性的高性能网站架构必不可少。
应用无状态
有效使用缓存
应用拆分
数据库拆分
异步通信
非结构化数据存储
监控预警系统
刷新Reload你的properties配置文件
Apache Commons Configuration是一个操作配置文件的工具包,它也支持动态的刷新重载Reload配置文件,包括xml和property文件。通过FileChangedReloadingStrategy刷新策略来支持动态的重载属性配置文件。
- public class DefaultRealTimeXMLConfiger {
- private static Log logger = LogFactory.getLog(DefaultRealTimeXMLConfiger.class);
- private String fileName;
- private long reloadPeriod;
- private XMLConfiguration config;
- public void init()
- {
- String filePath = GlobalConfigerImpl.getConfDir()+"/"+fileName;
- logger.debug("will config with XML file["+filePath+"]");
- File file = new File(filePath);
- if (!file.exists() || !file.isFile()) {
- logger.error(" can't find file[" + filePath + "]");
- throw new IllegalArgumentException("config error! can't find file[" + filePath + "]");
- }
- this.init(file);
- }
- public void init(File file) {
- try {
- config = new XMLConfiguration(file);
- FileChangedReloadingStrategy fs = new FileChangedReloadingStrategy();
- fs.setConfiguration(config);
- if(this.reloadPeriod>0)
- {
- fs.setRefreshDelay(this.reloadPeriod);
- }
- config.setReloadingStrategy(fs);
- } catch (ConfigurationException e) {
- logger.error("error! configer error["+file.getPath()+"]");
- logger.error(e);
- e.printStackTrace();
- }
- }
- public Object getProperty(String name) {
- Object s = this.config.getProperty(name);
- return s;
- }
- public String getString(String name) {
- Object s = this.config.getProperty(name);
- String result = null;
- if (s != null)
- result = (String) s;
- return result;
- }
- public String[] getStringArray(String name) {
- String[] target = this.config.getStringArray(name);
- return target;
- }
- /**
- * @return Returns the fileName.
- */
- public String getFileName() {
- return fileName;
- }
- /**
- * @param fileName The fileName to set.
- */
- public void setFileName(String fileName) {
- this.fileName = fileName;
- }
- /**
- * @return Returns the reloadPeriod.
- */
- public long getReloadPeriod() {
- return reloadPeriod;
- }
- /**
- * @param reloadPeriod The reloadPeriod to set.
- */
- public void setReloadPeriod(long reloadPeriod) {
- this.reloadPeriod = reloadPeriod;
- }
- }