抛弃tomcat容器做微服务

如果JAVA做一个HTTP接口工程,最先想到的是tomcat做容器,用springMVC来做一个标准的J2EE项目,所以tomcat 也就是微服务必须的,我想做微服务,其实我们不是很依赖于J2EE规范,但是好像也没的选择,所以我们必须要忍受以下问题:

1、conf/server.xml 修改配置
2、bin/catalina.sh 修改JAVA_OPTS 性能调优
3、tomcat莫名其妙宕机了
4、一台机器部署多个应用,一个tomcat还是多个?
5、OutOfMemeryException
6、点击启动、坐等tomcat启动
。。。。。等等

废话不多说直接说我写的框架micrboot,就是为解决以上问题,源码在: https://github.com/wwjwell/micrboot

micrboot是什么?

基于netty网络框架,参考SpringMVC的思想,编写的高性能 HTTP服务器开发框架。该框架不遵循J2EE规范,就是简简单单一个socket server 。
架构图:




优点:
设计思想基于springMVC,用法也是跟springMVC很相近,一看就懂,学习成本低。
拦截器、多视图、参数处理
有很多针对接口服务的高级特性。比如多接口合并
秒起
TPS不说超过tomcat(tomcat太耗机器了,几百个线程),但是差别不大,尤其在同压力的条件下,负载比tomcat少2-3倍,同学们可以亲测(回头等我系统学一下性能测试,再发测试报告)
怎么使用?

maven 配置:

    <dependency>
      <groupId>com.zhuanglide</groupId>
      <artifactId>micrboot</artifactId>
      <version>1.0.1</version>
    </dependency>


spring配置:

 <context:component-scan base-package="com.zhuanglide.micrboot.demo.**">
        <!-- 扫描ApiCommand注解 -->
        <context:include-filter type="annotation" expression="com.zhuanglide.micrboot.mvc.annotation.ApiCommand"/>
    </context:component-scan>
    <bean name="server" class="com.zhuanglide.micrboot.ServerConfig">
        <property name="port" value="8080"/> <!-- set port=8080 -->
    </bean>    
    <!-- config server -->
    <bean name="server" class="com.zhuanglide.micrboot.Server">
        <property name="serverConfig" ref="serverConfig"/> <!-- set port=8080 -->
    </bean>


main 函数启动

 public static void main(String[] args) {
        ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("classpath:api.xml");
        Server server = context.getBean(Server.class);
        server.start();
    }

猜你喜欢

转载自weijiewell.iteye.com/blog/2378629