使用Fabric8轻松实现微服务

微服务最近收到了很多 讨论 。 虽然易于争论该术语的确切含义; 很难否认Java生态系统正在朝着微服务的方向发展:使用更小,更轻量和孤立的微服务流程,而不是通过DropWizardSpring BootVert.x之类的方法将所有代码放入单片应用服务器中。 微服务方法有很多好处 ; 特别是考虑DevOps和云。

Fabric8是Poly App Server

fabric8项目中,我们非常了解应用服务器。 使用不同的应用程序服务器有很多优点和缺点。 理想的选择通常取决于您的要求以及团队的知识和历史。 人们倾向于宁愿使用他们知道和喜欢的应用服务器(或者他们的操作人员很乐于管理),而不愿意切换。 因为所有应用服务器都需要时间来学习。

OSGi非常灵活,模块化且基于标准。 但是模块化会增加学习和开发时间的成本。 (OSGi是一种marmite技术;您倾向于爱它或讨厌它;)。 Tomcat之类的Servlet引擎非常简单。 但是模块化非常有限。 对于那些喜欢JEE的人,还有WildFly和TomEE。

在fabric8项目中,我们最初开始支持OSGi来管理JBoss FuseApache KarafApache ServiceMix之类的东西 。 如果您使用fabric8的1.0.x版本(JBoss Fuse 6.1中包含),则OSGi是唯一受支持的应用程序服务器模型。

但是,在1.1.x中,我们正在努力作为Fabric8中的一等公民来支持Apache Tomcat, Apache TomEE和WildFly。 这样您就可以选择您和您的团队更喜欢的应用服务器模型; 包括将容器类型混合使用以提供不同的服务。

Fabric8 1.1.0.Beta5现在支持Java容器

我个人对新的Java容器功能感到非常兴奋,该功能现在可在fabric8的1.1.0.Beta5或更高版本中使用 ,它使您可以轻松地配置和管理基于Java的微服务

Java容器是使用应用程序服务器的替代方法。 它实际上是使用Java进程(使用类路径和您指定的main)。 因此,没有强制性的应用程序服务器或库。

对于几乎所有的应用服务器,您都将在某个时候遇到类加载器问题。 与fabric8中的Java容器一起使用; 它是一个完全由您控制的简单的平面类加载器。 简单! 如果事情在maven和您的测试中有效; 它们在Java容器(*)中工作; 因为它具有相同的类路径–罐子的平面列表。

*(假设您在不同的jar中不包含重复的类,这些jar在类路径中的顺序可能会引起问题,但是在构建中很容易检查)。

作为应用程序开发人员,最简单,最简单的方法就是使用简单的平面类加载器。 即在命令行上使用java进程,如下所示:

java -cp "lib/*" $MAINCLASS

这意味着每个微服务都是一个单独的隔离容器(操作系统进程),具有自己的类路径,因此易于监控和执行依赖关系的增量升级,而不会影响其他容器。 这使版本升级变得轻而易举。

但是,微服务的问题是管理所有这些Java进程的部署。 启动它们,停止它们,管理它们,拥有不错的工具来查看正在发生的事情并进行变更的滚动升级 。 这就是fabric8可以提供帮助的地方! 最简单的观看方法是通过演示…

演示版

这是我刚刚录制的一个截屏视频,它显示了使用具有maven构建和Java main函数(静态main(String [] args)函数来引导Java代码)的任何Java项目的工作是多么容易。书架上有Apache Camel和Spring示例;但实际上任何具有可执行jar或主类的Java项目都可以。

有关如何使用它以及所有这些如何工作的更多背景,请查看Fabric8中Java容器微服务上的文档。

翻译自: https://www.javacodegeeks.com/2014/05/micro-services-the-easy-way-with-fabric8.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值