常见的中间件有哪些

1.一般本地开发的话,小项目,或者是个人开发建议使用tomcat。 2.linux系统建议使用jetty或apache hpptd 3.大型的项目就用JBOSS或webloigc

4.大项目或者商业项目一般采用:weblgoic/webshere,其他的还有jboss、glasshfish等 5.一些示例项目或者小项目常采用jetty

6.tomcat , jboss, weblogic, websphere 一般项目tomcat就可以了

Tomcat是Sun的JSWDK(JavaServer Web Development Kit)中Servlet的运行环境(servlet容器)。Tomcat是Apache Jakarta软件组织的一个子项目,Tomcat是一个JSP/Servlet容器,它是在SUN公司的JSWDK(Java Server Web Development Kit)基础上发展起来的一个JSP和Servlet规范的标准实现,使用Tomcat可以体验JSP和Servlet的最新规范。经过多年的发展,Tomcat不仅是JSP和Servlet规范的标准实现,而且具备了很多商业Java Servlet容器的特性,并被一些企业用于商业用途。 JBoss是一个运行EJB的J2EE应用服务器。它是开放源代码的项目,遵循最新的J2EE规范。从JBoss项目开始至今,它已经从一个EJB容器发展成为一个基于的J2EE的一个web 操作系统(operating system for web),它体现了J2EE规范中最新的技术 WebLogic服务器是企业级的应用服务器,支持EJB, 集群以及 ERP(企业资源计划)的连通性 ,开发公司:BEA。 WebSphere产品系列是IBM公司一套典型的电子商务应用开发工具及运行环境

Tomcat 介绍 如今,基于Web的应用越来越多,传统的Html已经满足不了如今的需求。我们需要一个交互式的Web,于是便诞生了各种Web语言。如Asp,Jsp,Php等。当然,这些语言与传统的语言有着密切的联系,如Php基于C和C++语言,Jsp基于Java语言。Tomcat即是一个Jsp和Servlet的运行平台。 Tomcat是一个免费的开源的Serlvet容器,它是Apache基金会的Jakarta项目中的一个核心项目,由Apache,Sun和其它一些公司及个人共同开发而成。由于有了Sun的参与和支持,最新的Servlet和Jsp规范总能在Tomcat中得到体现。Tomcat被JavaWorld杂志的编辑选为2001年度最具创新的java产品,可见其在业界的地位。 Tomcat最新版本是4.0x.4.0x与3.x的架构不同,而是重新设计的。Tomcat4.0x中采用了新的Servlet容器:Catalina,完整的实现了Servlet2.3和Jsp1.2规范。Tomcat提供了各种平台的版本供下载,可以从http://jakarta.apache.org上下载其源代码版或者二进制版。由于Java的跨平台特性,基于Java的Tomcat也具有跨平台性。与传统的桌面应用程序不同,Tomcat中的应用程序是一个WAR(WebArchive)文件。WAR是Sun提出的一种Web应用程序格式,与JAR类似,也是许 多文件的一个压缩包。这个包中的文件按一定目录结构来组织:通常其根目录下包含有Html和Jsp文件或者包含这两种文件的目录,另外还会有一个WEB-INF目录,这个目录很重要。通常在WEB-INF目录下有一个web.xml文件和一个classes目录,web.xml是这个应用的配置文件,而classes目录下则包含编译好的Servlet类和Jsp或Servlet所依赖的其它类(如JavaBean)。通常这些所依赖的类也可以打包成JAR放到WEB-INF下的lib目录下,当然也可以放到系统的CLASSPATH中,但那样移植和管理起来不方便。 在Tomcat中,应用程序的部署很简单,你只需将你的WAR放到Tomcat的webapp目录下,Tomcat会自动检测到这个文件,并将其解压。你在浏览器中访问这个应用的Jsp时,通常第一次会很慢,因为Tomcat要将Jsp转化为Servlet文件,然后编译。编译以后,访问将会很快。另外Tomcat也提供了一个应用:manager,访问这个应用需要用户名和密码,用户名和密码存储在一个xml文件中。通过这个应用,辅助于Ftp,你可以在远程通过Web部署和撤销应用。当然本地也可以。 Tomcat不仅仅是一个Servlet容器,它也具有传统的Web服务器的功能:处理Html页面。但是与Apache相比,它的处理静态Html的能力就不如 Apache.我们可以将Tomcat和Apache集成到一块,让Apache处理静态Html,而Tomcat处理Jsp和Servlet.这种集成只需要修改一下Apache和Tomcat的配置文件即可。另外,Tomcat提供Realm支持。Realm类似于Unix里面的group.在Unix中,一个group对应着系统的一定资源,某个group不能访问不属于它的资源。Tomcat用Realm来对不同的应用(类似系统资源)赋给不同的用户(类似group)。没有权限的用户则不能访问这个应用。Tomcat提供三种 Realm,1:JDBCRealm,这个Realm将用户信息存在数据库里,通过JDBC获得用户信息来进行验证。2:JNDIRealm,用户信息存在基于LDAP的服务器里,通过JNDI获取用户信息。3:MemoryRealm,用户信息存在一个xml文件里面,上面讲的manager应用验证用户时即使用此种Realm.通过Realm我们可以方便地对访问某个应用的客户进行验证。 在Tomcat4中,你还可以利用Servlet2.3提供的事件监听器功能,来对你的应用或者Session实行监听。Tomcat也提供其它的一些特征,如与SSL集成到一块,实现安全传输。还有Tomcat也提供JNDI支持,这与那些J2EE应用服务器提供的是一致的。说到这里我们要介绍一下通常所说的应用服务器(如WebLogic)与Tomcat有何区别。应用服务器提供更多的J2EE特征,如EJB,JMS,JAAS等,同时也支持Jsp和Servlet.而Tomcat则功能没有那么强大,它不提供EJB等支持。但如果与JBoss(一个开源的应用服务器)集成到一块,则可以实现J2EE的全部功能。既然应用服务器具有Tomcat的功能,那么Tomcat有没有存在的必要呢?事实上,我们的很多中小应用不需要采用EJB等技术,Jsp和Servlet已经足够,这时如果用应用服务器就有些浪费了。而Tomcat短小精悍,配置方便,能满足我们的需求,这种情况下我们自然会选择Tomcat. 基于Tomcat的开发其实主要是Jsp和Servlet的开发,开发Jsp和Servlet非常简单,你可以用普通的文本编辑器或者IDE,然后将其打包成WAR即可。我们这里要提到另外一个工具Ant,Ant也是Jakarta中的一个子项目,它所实现的功能类似于Unix中的make.你需要写一个build.xml文件, 然后运行Ant就可以完成xml文件中定义的工作,这个工具对于一个大的应用来说非常好,我们只需在xml中写很少的东西就可以将其编译并打包成WAR.事实上,在很多应用服务器的发布中都包含了Ant.另外,在Jsp1.2中,可以利用标签库实现Java代码与Html文件的分离,使Jsp的维护更方便。 Tomcat也可以与其它一些软件集成起来实现更多的功能。如与上面提到的JBoss集成起来开发EJB,与Cocoon(Apache的另外一个项目)集成起来开发基于Xml的应用,与OpenJMS集成起来开发JMS应用,除了我们提到的这几种,可以与Tomcat集成的软件还有很多。 omcat确实是一个很好的工具,不仅仅因为其免费,功能强大,更因为其开放性。如今,开源软件越来越收到人们的重视,Linux就是一个成功的典型。 多种中间件(Tomcat, Apache, Nginx, MQ,等)各项性能参数设置、监控及优化;

ZooKeeper

ZooKeeper 提供基础的目录/名字服务、配置管理服务。并且在此基础上还能提供分布式锁、leader选举等高级功能。网上有一段有趣生动的介绍:“ZooKeeper,顾名思义就是动物园里大象(hadoop)、蜜蜂(Hive)、小猪(Pig)、和我的猫(MyCat)的管理员”。

客户端建议采用Apache Curator这个二次封装的客户端来进行客户端代码的编写,它封装和简化了很多于业务无关的逻辑,使用简单,质量可靠。

Apache Kafka

Kafka是一个高吞吐量的分布式消息系统,由LinkIn开源,被描述为LinkeIn的“中枢神经系统”。Kafka管理从各个应用程序汇聚到此的信息流,这些数据经过处理后再被分发到何处。

Kafka使用Scala开发,而Scala又是JVM上运行的动态需要,因此对会Java的同学来说学习难度并不大,其客户端也支持Java语言,比较容易部署在本机上进行学习研究。

Facebook Thrift

Facebook Thrift是最新一代高性能、跨需要的RPC通信框架,支持多种语言。

Facebook Thrift与Ice类似,不过没有Ice完整和成熟。与Facebook Thrift类似的还有Apache Avro。

Apache Storm、Spark Streaming 、Samza

与Hadoop相比Storm是个实时的高容错的分布式计算系统。Storm也可以处理批量数据,但其在保证高可靠性的前提下还可以让处理进行得更加实时,所有的信息都会被处理。Storm同样还具备容错和分布计算的特性,这让Storm可以扩展到不同的机器上进行大批量的数据处理。

Storm的主要开发语言为Java,并且包括了Clojure这种Lisp语言,对于Java工程师来说,学习难度并不大。与Strom类似的还有Spark Streaming、LinkIn的Samza,它们都是最近开源的热门项目。

Spark Streaming是Spark中新的流式计算框架。Spark并不会像Strom那样一次处理一个数据流,而是在处理前按时间间隔预先将其分为一段段的批处理作业。

而Samza处理数据流时,会依次处理收到的每条消息。Samza的流单位既不是元组,也不是Dstream而是一条条消息。

Strom、Spark Streming、Samza这三种实时流计算系统都是分布式系统,具有低延迟、可扩展和容错性等诸多优点。它们的共同特同特色在于:允许你在运行数据流代码时,将任务分配到一系列具有容错能力的计算机上并行运行,此外,它们都提供了简单的API来简化底层实现的复杂程度。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券