在撰写我的下一份O'Reilly报告时,我一直很沮丧,而且一段时间内没有足够的时间来撰写博客。 是时候赶快来这里,让您真正快速地开始使用名为Lagom的新微服务框架。 它与您从Java EE或其他应用程序框架中可能了解到的有所不同。 这对您来说是学习新事物的挑战和机遇。 如果您可以再等几天,请注册以 在我的新报告将可用时 得到通知 ,并了解有关Lagom背后的故事以及如何入门的所有信息。 我将向您介绍一个示例应用程序,并向您介绍主要概念,比我在博客文章中所介绍的更为详细。 这篇文章是为那些想立即开始并自己弄清楚一切的无耐心的人而设计的。

一些背景

如今,微服务无处不在,关于使用现有的中间件堆栈构建复杂的分布式系统所需的处理方法越来越多。 还有更好的替代方案和概念来将应用程序实现为基于微服务的体系结构。 JonasBonér在他的报告Reactive Microservices Architecture中介绍了反应式微服务的核心概念,注册后可免费获得。 Lagom是所描述概念的实现。 它使用了您可能听说过但可能很少作为Java EE开发人员使用的技术:主要是Akka和Play 。 但是现在,让我们就忘记它们了,因为Lagom在顶部为您提供了一个很好的抽象,并为您提供了入门所需的一切。

先决条件

安装了激活器和Java 8 。 激活器是您可能还没有听说过的东西。 它建立在sbt之上,可帮助您开始进行项目以及更多工作 。 Lagom系统通常由一组sbt构建组成,每个构建都提供多种服务。 开始使用新的Lagom系统的最简单方法是使用lagom Activator模板创建一个新项目。 现在不需要任何其他东西。 您可能想要安装IDE。 IntelliJ或Eclipse现在应该是不错的选择。

设置您的第一个项目


是时候看一些代码了。 让我们从lagom-java模板生成一个简单的示例:

$ activator new first-lagom lagom-java

转到新生成的文件夹“ fist-lagom”,然后发出sbt命令来创建一个eclipse项目。

$ activator eclipse

将下载大量依赖项,成功执行后,您可以打开Eclipse并使用导入向导将现有项目导入到您的工作区中。 请注意,如果将Immutables库与Eclipse一起使用,则也需要进行设置 。

Lagom包含一个开发环境,通过该环境,您只需在激活器控制台中键入runAll即可启动所有服务。 打开终端并CD到您的Lagom项目:

$ activator runAll

输出看起来像这样:

[info] Loading project definition from /Users/myfear/projects/first-lagom/project
[info] Set current project to first-lagom (in build file:/Users/myfear/projects/first-lagom/)
[info] Starting embedded Cassandra server
........
[info] Cassandra server running at 127.0.0.1:4000
[info] Service locator is running at http://localhost:8000
[info] Service gateway is running at http://localhost:9000
[info] Compiling 2 Java sources to /Users/myfear/projects/first-lagom/helloworld-api/target/scala-2.11/classes...
[info] Compiling 1 Java source to /Users/myfear/projects/first-lagom/hellostream-api/target/scala-2.11/classes...
[info] Compiling 2 Java sources to /Users/myfear/projects/first-lagom/hellostream-impl/target/scala-2.11/classes...
[info] Compiling 6 Java sources to /Users/myfear/projects/first-lagom/helloworld-impl/target/scala-2.11/classes...
[info] application - Signalled start to ConductR
[info] application - Signalled start to ConductR
[info] Service hellostream-impl listening for HTTP on 0:0:0:0:0:0:0:0:26230
[info] Service helloworld-impl listening for HTTP on 0:0:0:0:0:0:0:0:24266
[info] (Services started, use Ctrl+D to stop and go back to the console...)

现在,通过访问http:// localhost:9000 / api / hello / World尝试第一项服务。 现在,您都准备好了下一篇博客文章,在这里我将向您详细介绍该示例。 如果您迫不及待,请继续阅读Lagom入门指南。

翻译自: https://www.javacodegeeks.com/2016/04/first-lagom-service-getting-started-java-microservices.html

您的第一个Lagom服务– Java Microservices入门相关推荐

  1. 异常:java.lang.IllegalStateException: No instances found of configserver(里面是一个微服务名)

    异常:java.lang.IllegalStateException: No instances found of configserver(里面是一个微服务名) 参考文章: (1)异常:java.l ...

  2. 基于Java实现的一个FTP服务

    资源下载地址:https://download.csdn.net/download/sheziqiong/85706472 资源下载地址:https://download.csdn.net/downl ...

  3. java linux 管理系统_用Java开发一个本地服务管理软件

    使用Java开发一个本机服务管理程序,能够控制本机Tomcat.Apache服务的开启和关闭,图形界面控制.用户可以自己扩展其他服务,用来学习图形界面编程.多线程.事件响应等都不错. 一.最终界面 先 ...

  4. java造轮子:快速搭建一个网关服务,动态路由、鉴权看完就会(含流程图)

    前言 本文记录一下我是如何使用Gateway搭建网关服务及实现动态路由的,帮助大家学习如何快速搭建一个网关服务,了解路由相关配置,鉴权的流程及业务处理,有兴趣的一定看到最后,非常适合没接触过网关服务的 ...

  5. 微服务(Microservices)【翻译】

    1微服务 "微服务架构(Microservice Architecture)"一词在过去几年里广泛的传播,它用于描述一种设计应用程序的特别方式,作为一套独立可部署的服务.目前,这种 ...

  6. eureka跨服务_微服务(microservices) 资料总结

    微服务是商业应用程序开发中最热门的新事物.微服务这个词取代了敏捷.DevOps和RESTful,成为了所有简历和大会演讲中都必须提及的新热门词. 微服务这一概念出现于2012年,因敏捷开发方法创始人之 ...

  7. 使用模式创建一个面向服务的组件中间件

    引言 在本文中,您将了解面向服务的组件中间件在用于资源有限的语音设备时,在设计阶段所应用的模式.它涵盖了项目的问题上下文,并被看成是一组决定因素,是对相关体系结构远景的一个简要概括.您还会得到一份描述 ...

  8. 基于SpringBoot开发一个Restful服务,实现增删改查功能

    点击上方"方志朋",选择"置顶公众号" 技术文章第一时间送达! 作者:虚无境 cnblogs.com/xuwujing/p/8260935.html 前言 在去 ...

  9. 一个简单的Java web服务器实现

    前言 一个简单的Java web服务器实现,比较简单,基于java.net.Socket和java.net.ServerSocket实现: 程序执行步骤 创建一个ServerSocket对象: 调用S ...

最新文章

  1. rocketmq 消息指定_详解RocketMQ不同类型的消费者
  2. php 语句,php的控制语句
  3. Android Ac 控件,Android控件--MultiAutoCompleteTextView
  4. python sub 第三次_Python学习的第三次的总结
  5. 电脑能玩和平精英吗_电脑玩和平精英灵敏度这样设置更流畅,还能匹配手机
  6. 平衡二叉树删除_AVL 平衡树
  7. Android集成三方腾讯浏览器X5内核
  8. Android中的GalleryView实例演示-周末福利有美女图
  9. truecrypt使用教程_如何使用TrueCrypt保护您的闪存驱动器数据
  10. linux网络线序MDI,网线RJ45(水晶头)线序排列以及八字口诀
  11. 逆向、反编译、微信相关记录
  12. 【无标题】 2022淘宝天猫双十一喵果总动员玩法攻略
  13. 【JavaWeb】button自带的reset方法
  14. java继承计算不同图形面积_第五章-子类与继承-实验2(图形面积的和)
  15. mysql 除号_MySql的运算符-阿里云开发者社区
  16. 文章转载---西工大博士生文言文答辩致谢
  17. NAND FLAASH基础
  18. 【计算机网络】虚拟IP原理
  19. 医院需要遵守的3个BYOD实施策略
  20. python开发者大会_《中国Python开发者大会PyConChina2017》直播课-什么值得买

热门文章

  1. Java NIO系列教程(四) Scatter/Gather
  2. java反射的field.get(null)
  3. C/C++输入输出流
  4. 注意!在subList生成子列表之后,一定不要随便更改原列表
  5. LinkedHashSet VS HashSet
  6. fastdfs 集群 java_FastDFS集群部署(转载 写的比较好)
  7. (转)【SpringMvc】如何使用form发送PUT和DELETE请求
  8. 本地java【动态监听】zk集群节点变化
  9. Buffers与cached啥区别
  10. 常见的并发模型_两个常见的并发错误