lagom的微服务框架_您的第一个Lagom服务– Java Microservices入门

lagom的微服务框架

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

一些背景

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

先决条件

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

设置您的第一个项目

日蚀(1)
是时候看一些代码了。 让我们从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的微服务框架

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/336110.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Android OpenGL ES 开发 (一)】使用c++开发opengles 与 日志功能 及 加载assets

创建OpenGLES视口 1.App窗口改成OpenGL窗口,是通过java调用C,在以下位置修改如下内容 package com.example.learnogles;import androidx.appcompat.app.AppCompatActivity;import android.content.Context; import android.opengl.GLSurfaceView; import android.o…

水印相机定位不准确怎么办_禄来的广角双反相机(2020版)

点击上方胶卷迷俱乐部快速关注,胶卷迷们坚实的阵地内容主要原创,配图来自群友和网络,所有水印保留最下方为微信自带广告,支持请点击(本号可获微量收入)4.0德国禄来公司以双反相机名震天下,其中的2.8,3.5两个…

【Android OpenGL ES 开发 (二)】渲染管线与Shader

计算出每一帧耗费的时间 1.在头文件中加入time.h,cpp中实现如下计算时间接口 float GetFrameTime(){static unsigned long long lastTime0,currentTime0;timeval current;gettimeofday(&current, nullptr);//取当前时间currentTime current.tv_sec * 1000 current.tv…

【Android OpenGL ES 开发 (三)】Shader 扩展

编译Shader代码 1.封装一个编译shader的接口 GLuint CompileShader(GLenum shaderType,const char *shaderCode){GLuint shaderglCreateShader(shaderType);glShaderSource(shader,1,&shaderCode,NULL);glCompileShader(shader);GLint compileResultGL_TRUE;glGetShaderi…

css阴影属性_第三场阴影场与属性访问器接口

css阴影属性这是“ 影子字段与属性访问器”界面的 第3轮 。 如果您是新手,但不确定要怎么做,请查看我以前的文章或关于开发JavaFX应用程序时节省内存的第一篇文章 。 作为Java开发人员,我主要关心的是在开发JavaFX域模型时在性能 &#xff0c…

js if判断多个条件_JS条件判断小技巧(一)

经常code review,我发现JS newbie很容易写出一堆冗长的代码。今天就列几个比较常见的“解决之道”,看看如何减少JS里的条件判断。提前返回,少用if...else“if...else是编程语言的精华。——鲁迅”但是过多的嵌套,还是挺令人抓狂的…

【Android OpenGL ES 开发 (四)】纹理相关(一)

纹理贴图的原理 1.作用:可以用来渲染视频。 2.纹理坐标 生成OpenGL中的纹理对象 1.像素数据想要绘制出来需要先变成纹理 2.创建纹理放在GPU上 GLuint CreateTexture2D(unsigned char *pixelData,int width,int height,GLenum type) {GLuint texture;glGenTextu…

jmx 替代_使用JMX作为Ganglia的现代替代品进行CLDB监视

jmx 替代有许多选项可用于监视MapR集群的性能和运行状况。 在本文中,我将介绍使用Java管理扩展(JMX)监视CLDB的鲜为人知的方法。 据最受尊敬的MapR数据工程师之一,Akihiko Kusanagi称,与使用Ganglia相比,使…

red hat安装宝塔_如何在几分钟内安装Red Hat Container Development Kit(CDK)

red hat安装宝塔作为负责开发容器化应用程序提供的可能性的应用程序开发人员或架构师,将所有工具组合在一起以帮助您入门时几乎没有帮助。 到现在。 红帽容器开发套件(CDK) 安装变得简单! 红帽提供了一个容器开发套件&#xf…

threejs 影子属性_影子场vs.属性访问器接口第2轮

threejs 影子属性如果你们还没有注意到Dirk Lemmerman和我之间的(轻松) 摊牌 ,那么让我快速提及一下我们是如何做到这一点的。 首先,Dirk创建了JavaFX技巧23:“ 为属性保存内存阴影字段 ”,以帮助应用程序开…

【OpenGL从入门到精通】Shader专题

详解GPU的工作流程 1.shader通常称为着色器,作用是把CPU上的点渲染出来。 2.shader是并行的。 3.流程:数据data (顶点数据) ----->VS(输入:data的顶点数据,输出:gl_Position的 vec4 顶点数据)----->光栅化处理…

【OpenGL从入门到精通(六)】纹理对象与纹理坐标

1.在OpenGL想要显示一张图片,需要先绘制一个自定义的几何体。 2.把图片加载到纹理对象中 3.当进行纹理贴图时候,使用纹理坐标来设置纹理对象。 2.

yeoman_具有Spring Boot和Yeoman的单页Angularjs应用程序

yeoman我非常感谢yeoman之类的工具,这些工具提供了一种非常快速的方法来将不同的javascript库组合在一起成为一个一致的应用程序。 Yeoman提供了UI层,如果您需要开发服务层和静态资产的Web层,则打包的一种好方法是使用Spring Boot 。 我知道有…

双向链表删除节点时间复杂度_「十分钟学算法」删除链表的倒数第N个节点

给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.说明:给定的 n 保证是有效的。题解…

netbeans连接数据库_NetBeans Java EE技巧3:数据库中的RESTful Web服务

netbeans连接数据库许多现代的Web应用程序正朝着使用HTTP使用无状态通信的方向发展。 REST(表示状态转移)体系结构样式通常用于设计网络应用程序,而使用Java EE 7,很容易开发用于数据库通信的RESTful后端。 使用简单的POJO&#x…

knn算法python代码_K-最近邻分类算法(KNN)及python实现

一、引入问题:确定绿色圆是属于红色三角形、还是蓝色正方形?KNN的思想:从上图中我们可以看到,图中的数据集是良好的数据,即都打好了label,一类是蓝色的正方形,一类是红色的三角形,那…

rxjava 并行_使用RxJava和Completable并行执行阻塞任务

rxjava 并行通过RxJava 1.1.1中引入的Completable抽象,如何并行执行阻止“仅副作用”(也称为void)任务的并行执行变得更加容易。 “ 正如您可能已经注意到,阅读我的博客时,我主要专注于软件Craft.io和自动代码测试。 …

系统工程师主要做什么_Filecoin运维工程师在做什么?

前言固然运维这个职能范畴对于绝大多数人来说认知模糊,特别是在分布式存储领域,“运维”常常和“机房”“IDC”等名词相伴,导致很多异业者对于运维的了解停留在物理层面,以搬运机器、上下架服务器、管理网电等为标杆,好…

mysql怎么返回上一行_月球上并没有发射基地,阿波罗飞船是怎么返回地球的?...

美国上世纪六七十年代成功实施了载人登月工程,这一壮举震惊世界。阿波罗系列载人登月飞船和用于发射飞船的土星五号运载火箭名声大噪,而用于发射土星五号,位于卡纳维拉尔角肯尼迪航天发射中心的39号发射台也格外引人瞩目。土星五号全长110多米…