用户中心602问题

1 写单元测试,模拟用户中心可能发生的各种情况,比如,数据库挂掉,用户中心挂掉,用户中心负载过高,数据库负载过高,请求热点等多种情况,调出最优方案。保证我们应用的FailBack。
在交易中心一定要完成这些单元测试程序,以完成对大并发量访问的性能测试。
从DBA得到的数据,最大每秒有800~1000个事务,查询最大有3W到DB的查询。所以单元测试应该按这个的压力来进行。

2 自定义的Eclipse各种快捷键

  • 运行最后一次的程序 F10
  • Debug最后一次程序 Ctrl+F10
  • 运行当前文件的Main Alt+Shift+X,J
  • 剪切一行 Ctrl+Shift+X
  • 结束当前运行的程序 Alt+F4
  • Package Explore Alt+1
  • Console view Alt+2
  • Search View Alt+3
  • JUnit View Alt+5
  • Navigator view Alt+6
  • Properties        Alt+7
  • 扩大本次选择 Alt+Up
  • 取消前一次选择 Alt+Down

3 MBeanServerFactoryBean是什么东西?如何建立一个MBeanServer。

     FactoryBean是个Bean工厂,由Spring的Bean来调用,向FactoryBean通过getObject来请求数据。
建立一个MbeanSearver

MBeanServer mbs = ManagementFacotry.getPlatformMBeanServer();
ObjectName name = new ObjectName("MbeanTest:order=first");
ConfigurationMBean mBean = new Configuration();
mbs.registerMBean(mBean,name);


或通过MBeanServerFactory来建立

MBeanServerFactory.createMBeanServer();


在启动的Java参数里面加入,表示按MBeanServer启动。

-Dcom.sun.management.jmxremote.port=1090
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false

4 MBeanExporter是什么东西?
MBeanExporter是Spring提供的一个方法类,Spring可以将任意的类暴露成Mbean,就是通过MBeanExporter来处理的。
5 com.sun.jdmk.comm.HtmlAdaptorServer?是什么东西
SUN提供的HTTP Server,将JMX Server导出成HTML格式,可以直接通过http://localhost:8080访问到MBean的信息。

6 MethodInvokingJobDetailFactoryBean是什么?
Spring提供简化Quartz访问的一个包装Bean,给该FactoryBean注入Object和定时任务到的时候需要执行的方法,就可以了。
Spring配置

<bean id="jobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
  <property name="targetObject" ref="exampleBusinessObject" />
  <property name="targetMethod" value="doIt" />
</bean>


quartz任务定时执行指定Object的指定方法。

7 CronTriggerBean是什么东西?
cron:Linux下的计划任务。 cron的语法和Quartz的语法一样。

8 Quartz机制
在创建任务安排的时候,HelloWorldJob没有被声明为Public,不能被Factory使用HelloWorldJob.class.newInstance创建新的Object,所以失败。

Quartz的典型任务代码:

//取得Schedule对象   
SchedulerFactory sf = new StdSchedulerFactory();   
Scheduler sch = sf.getScheduler();  
//构造JobDetail对象   
JobDetail jd = new JobDetail("HelloWorldJobDetail",Scheduler.DEFAULT_GROUP,HelloWorldJob.class);  //构造触发器对象   
Trigger tg = TriggerUtils.makeSecondlyTrigger(5);   
tg.setName("HelloWorldTrigger");   
sch.scheduleJob(jd, tg);   
//开始Scheduler   
sch.start();   



9 一个计划任务在执行的过程中如果遇到了严重错误,比如数据库维护导致不能连接数据库,任务调度机制如何能知道其执行失败并尝试重新执行,
Quartz可以完成对应的操作。

10 守护线程(deamon),
只要有工作线程在运行,Java进程就不会退出运行,但是如果所有工作线程都结束了,那么守护线程也会跟着结束。
可以使用Thread.setDeamon(true),在创建一个线程的时候,来设置一个线程是守护线程。

11 Unix cron命令,CronTrigger的DOC里面有详细的解释。

12 ObjectName是什么?
表示MBean的对象名,可以和一个或多个MBean关联,通常一个MBean对应一个ObjectName域的一个节点。
ObjectName由键和键属性两部分组成。
比如:

com.taobao.jmx.uic.thunder:type=uic,id=counterFilter 

 
12 注入到IncMonitor的各个参数的意义。
notifyCenter。
调用notifyCenter来将需要的信息发送到目标端。
BeanFactoryUtils.beansOfTypeIncludingAncestors(this.context,TTMNotify.class)
将Spring中,有相同接口的所有实现类都得到,比如,通知类型,TTMNotify,实现类有Email通知,手机通知,旺旺通知,但是可能在配置文件里面只配置了需要的通知类型,所以,通过Helper方法将available的通知类型都得到。最后,遍历通知类型就是了。

13 关于MBeanServer连接。
mbeanServerConnectionCenter:
有可能一个Mbean Client连接到多个Server,
JMXConnector是什么?
JMXConnector是一个到JMX Server的连接,通过工厂方法JMXConnectorFactory.connect可以连接到指定的JMXServer上去。

14 MBeanServerConnection是什么?
使用代理,在本地执行的方法都会连接到远程,执行对应的方法,并返回,客户端就就像操作本地对象一样在服务端创建MBean,修改MBean的属性等。

15 JMXServiceURL是什么?service:jmx:rmi://localhost/jndi/rmi://10.1.6.154:1199/myconnector
一个到MBean Server的URL,有点类似于InetAddress。
监控中心从JMX-Server中得到需要监控的对象,然后决定发Email还是发手机短消息。


PS: 关于Eclipse。
Eclipse的工程依赖,类路径的管理方法。
Eclipse的调试,怎么调试多线程的Eclipse程序。
Eclipse3.4的新功能,将View dock在页面上。
Eclipse快捷键编辑,When ____ 这个状态有什么区别。 

阅读更多

没有更多推荐了,返回首页