新浪开放平台 sae环境 java主机使用感受

1,首先,这个sae的java主机环境免费的,这点很赞,适合技术开发者研究一些自己的程序。如果做些小型应用,使用这个环境也足矣,上面有相当成熟的配套设施,比如 memcached nosql  mysql 文件存储 ,尤其是做微博应用 直接使用sae 相当不错。


2,数据库的读写分离,这点相当不错,从性能上理论上这个环境应用得当能适应100W级的访问量


原理是数据库的主从复制,主数据库(infodb)用来执行修改的数据操作,从数据库(myisam引擎)用来查询

结合spring mvc应用:

首先,配置了2个session, 只读的session是不用事务控制的,写入的数据库是需要加事务的(这种场景特别适合互联网应用)

spring.xml:


<context:annotation-config></context:annotation-config>
<context:component-scan base-package="com.xiawucha"/>


<bean id="sqlSessionFactoryWrite" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="wDataSource" />
<property name="configLocation" value="classpath:mybatis_write.xml"/>
</bean>
<bean id="sqlSessionWrite" class="org.mybatis.spring.SqlSessionTemplate">
<constructor-arg index="0" ref="sqlSessionFactoryWrite" />
</bean>


<bean id="sqlSessionFactoryRead" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="rDataSource" />
<property name="configLocation" value="classpath:mybatis_read.xml"/>
</bean>
<bean id="sqlSessionRead" class="org.mybatis.spring.SqlSessionTemplate">
<constructor-arg index="0" ref="sqlSessionFactoryRead" />
</bean>


<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="wDataSource" />
</bean>


<bean class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close" id="wDataSource">
<property name="driverClass" value="com.mysql.jdbc.Driver" />
<property name="jdbcUrl" value="jdbc:mysql://127.0.0.1:3306/app_nicexiawucha?useUnicode=true&amp;characterEncoding=utf8" />
<property name="user" value="root" />
<property name="password" value="123456" />
<property name="acquireIncrement" value="3"></property>  
    <property name="initialPoolSize" value="2"></property>  
    <property name="maxIdleTime" value="15"></property>  
    <property name="maxPoolSize" value="40"></property>  
    <property name="minPoolSize" value="3"></property>  
    <property name="acquireRetryDelay" value="1000"></property>  
    <property name="acquireRetryAttempts" value="3"></property>  
    <property name="breakAfterAcquireFailure" value="false"></property> 
</bean>
<bean class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close" id="rDataSource">
<property name="driverClass" value="com.mysql.jdbc.Driver" />
<property name="jdbcUrl" value="jdbc:mysql://127.0.0.1:3307/app_nicexiawucha?useUnicode=true&amp;characterEncoding=utf8" />
<property name="user" value="root" />
<property name="password" value="123456" />
<property name="acquireIncrement" value="3"></property>  
   <property name="initialPoolSize" value="2"></property>  
   <property name="maxIdleTime" value="15"></property>  
   <property name="maxPoolSize" value="40"></property>  
   <property name="minPoolSize" value="3"></property>  
   <property name="acquireRetryDelay" value="1000"></property>  
   <property name="acquireRetryAttempts" value="3"></property>  
   <property name="breakAfterAcquireFailure" value="false"></property>  
</bean>


dao:

public class BaseDao {

//只写的会话
@Resource(name="sqlSessionWrite")
public SqlSessionTemplate writeTemplate;

//只读的会话
@Resource(name="sqlSessionRead")
public SqlSessionTemplate readTemplate;
}


例子:

      public NeizhaoUserCom findCompanyByUId(String uid) {  //查询动作,使用
// TODO Auto-generated method stub
return this.readTemplate.selectOne("NeizhaoUser.findCompanyById", uid);
}


public void createCompany(NeizhaoUserCom company) { // 更新动作,使用写入的会话
this.writeTemplate.insert("NeizhaoUser.saveCompany", company);

}



3,然后重点是不足之处:

 1)环境还不是很稳定, 耗cpu资源高,没什么功能也可能导致资源过高而超出限额

 2)svn可上传的文件大小有限制(好像50m最大),只能整个war上传部署;大型应用,光jar包就不只50M了。 如果能改成类似mvn的依赖包形式部署就好了,jar包压根就不用再打包到war里面, 自己代码能上10个m已经是很大的量了。也许哪一天sae会优化。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值