服务性服务–服务到服务的通话

在上一篇文章中,我介绍了如何使用Knative的 Serving功能来运行示例Java应用程序。 这篇文章将介绍部署两个应用程序的步骤,其中一个应用程序调用另一个。

基尼特语

样品细节

整个示例可在我的github存储库中找到– https://github.com/bijukunjummen/sleuth-webflux-sample。

这些应用程序是基于Spring Boot的。 后端应用程序在用如下所示的有效负载调用时会公开一个端点“ / messages”:

{"delay": "0","id": "123","payload": "test","throw_exception": "true"
}

将在指定的延迟后做出响应。 如果有效负载的“ throw_exception”标志设置为true,则它将在指定的延迟后返回5XX。

客户端应用程序公开一个“ / passthrough / messages”终结点,该终结点接收完全相同的有效负载,然后将其转发给后端应用程序。 后端应用程序的URL作为“ LOAD_TARGET_URL”环境属性传递到客户端应用程序。

基尼特语

部署为基础服务

该项目的子文件夹knative包含用于为2个应用程序部署Knative服务的清单。 后端应用程序的knative服务清单如下所示:

apiVersion: serving.knative.dev/v1alpha1
kind: Service
metadata:name: sample-backend-appnamespace: default
spec:runLatest:configuration:revisionTemplate:spec:container:image: bijukunjummen/sample-backend-app:0.0.1-SNAPSHOTenv:- name: VERSIONvalue: "0.0.2-SNAPSHOT"- name: SERVER_PORTvalue: "8080"

客户端应用必须指向后端服务,并在规范中指定:

apiVersion: serving.knative.dev/v1alpha1
kind: Service
metadata:name: sample-client-appnamespace: default
spec:runLatest:configuration:revisionTemplate:spec:container:image: bijukunjummen/sample-client-app:0.0.2-SNAPSHOTenv:- name: VERSIONvalue: "0.0.1-SNAPSHOT"- name: LOAD_TARGET_URLvalue: http://sample-backend-app.default.svc.cluster.local- name: SERVER_PORTvalue: "8080"

域“ sample-backend-app.default.svc.cluster.local”指向由Knative服务服务资源创建的后端服务的dns名称

测试中

对于我来说,简单地用我的测试方式来制作一个小视频就更容易了:


就像我以前的文章中一样 ,对应用程序的请求是通过knative入口网关进行的,可以通过以下方式(对于minikube环境)获取url:

export GATEWAY_URL=$(echo $(minikube ip):$(kubectl get svc knative-ingressgateway -n istio-system -o 'jsonpath={.spec.ports[?(@.port==80)].nodePort}'))

并以以下方式发出了示例请求,请注意,网关中的路由是通过主机标头(在本例中为“ sample-client-app.default.example.com”)进行的:

export CLIENT_DOMAIN=$(kubectl get services.serving.knative.dev sample-client-app  -o="jsonpath={.status.domain}")http http://${GATEWAY_URL}/passthrough/messages Host:"${CLIENT_DOMAIN}" id=1 payload=test delay=100 throw_exception=false

翻译自: https://www.javacodegeeks.com/2018/09/knative-serving-service-service-call.html

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

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

相关文章

linux cookie 地址,SYN Cookie原理及其在Linux内核中的实现

在目前以IPv4为支撑的网络协议上搭建的网络环境中,SYN Flood是一种非常危险而常见的DoS攻击方式。到目前为止,能够有效防范SYN Flood攻击的手段并不多,而SYN Cookie就是其中最著名的一种。SYN Cookie原理由D. J. Bernstain和 Eric Schenk发明…

用置换破坏您的JUnit5测试

编写JUnit测试可能是一个乏味而乏味的过程。 了解如何使用排列结合TestFactory方法和DynamicTest对象以最少的编码工作来改进测试类。 在本文中,我将使用Java流ORM Speedment,因为它包含一个现成的Permutation类,从而帮助我节省了开发时间。…

企业应用程序开发框架的分类

如果您使用的是“最佳Java框架”,那么您很可能会迷失本文 ,它对Java Enterprise世界中的情况进行了很好的概述。 但是,从我的角度来看,它缺少一件非常重要的事情–对上述框架进行分类。 让我们看看这个生态系统的另一个角度&…

c语言中怎么定义的字符串,C语言中定义字符串的几种方式

1,什么是字符串?所谓字符串本质上就是以\0作为结尾的特殊字符数组;2,定义字符串的过程中有哪些注意点由于字符串本质上其实就是以\0作为结尾的特殊字符数组,所以定义字符串时,必须保证字符串存储的最后一个…

java8 linq4j_Java 8仍然需要LINQ吗? 还是比LINQ更好?

java8 linq4j长期以来, LINQ是.NET软件工程生态系统中发生的最好的事情之一。 通过在Visual Studio 2008中引入lambda表达式和monad ,它使C#语言跃居Java之前,Java在当时是版本6,但仍在讨论泛型类型擦除的优缺点。 这项…

mongodb上一篇下一篇_如何使用Microsoft office word—上一篇

从这一期开始,将会逐一介绍Microsoft office的几个常用的软件,例如word ppt excel等,每一个软件将分为几期介绍,这几期介绍word。注意:介绍软件版本是Microsoft office365。如何插入图片首先打开word,点击插…

Istio的零停机滚动更新

本系列文章的第一部分介绍了如何在Kubernetes集群中实现真正的零停机时间更新。 我们专门解决了将流量从旧实例切换到新实例时出现的请求失败。 本文将展示如何使用Istio群集实现相同的目标。 服务网格技术(例如Istio)通常与容器编排结合使用。 Istio以…

android 设置资源,Android 资源

Android 资源Android Resources02/01/2018本文内容本文介绍了 Xamarin 中 Android 资源的概念,并介绍了如何使用这些资源。其中介绍了如何使用 Android 应用程序中的资源来支持应用程序本地化和多个设备,包括不同的屏幕大小和密度。This article introdu…

仿小黄车android定位,小黄车ofo是怎么实现自行车定位功能的?

摩拜单车通过车身携带的GPS而实现单车定位,但是我们知道ofo是没有安装GPS,它又是如何实现单车定位的呢?我居住的地方距离地铁站步行大约15分钟左右,距离最近的商场步行将近30分钟,距离周边的便利店,水果店,饭店等步行1…

gprs连接中断记录_请收好!脉搏波血压计连接天天血压APP使用指南

总有那么几个粗心的小伙伴丢失了说明书,在后台追问波哥如何连接“天天血压”,于是给大家安排了这篇使用指南。首先我们来了解下“天天血压”的功能:1.通过蓝牙或GPRS传输,同步记录每次测量结果;2. 血压趋势分析&#x…

使用Spring Boot,JHipster和React构建照片库PWA

“我喜欢编写身份验证和授权代码。” 〜从来没有Java开发人员。 厌倦了一次又一次地建立相同的登录屏幕? 尝试使用Okta API进行托管身份验证,授权和多因素身份验证。 从本质上讲,React只是一个UI工具包,即ala GWT,但是…

names文件和data文件_data.table让你的读取速度提升百倍

不知道大家有没有用read.table和read.csv读取过文件,当文件不大的时候你可能还感觉不出读取速度,但是当文件比较大的时候,比如有上万行的时候,你就会感觉到等待时间明显变长,甚至无法忍受。今天小编给大家安利一个实用…

差分放大电路差模共模公式_提高差分放大器的共模抑制比,电阻的选择很关键...

在各种应用领域,采用模拟技术时都需要使用差分放大器电路。例如测量技术,根据其应用的不同,可能需要极高的测量精度。为了达到这一精度,尽可能减少典型误差源(例如失调和增益误差,以及噪声、容差和漂移)至关重要。为此…

label标签 html5,HTML5 label 标签

实例HTML5 标签用于为 input 元素做出标记。带有两个输入字段和相关标记的简单 HTML 表单:MaleFemale尝试一下 浏览器支持目前大多数浏览器支持 标签。标签定义及使用说明标签为 input 元素定义标注(标记)。label 元素不会向用户呈现任何特殊效果。不过,…

me shy是什么歌 抖音make_抖音星河滚烫你是人间的理想下一句是什么歌 星河歌词完整版...

最近在抖音上听到一段话,这段话的开头是“星河滚烫,你是人间的理想……”。抖音星河滚烫你是人间的理想下一句是什么歌?星河歌词介绍?星河,是非常好听的一首歌曲,是很多人都喜欢的一首歌曲。抖音星河滚烫你…

修改使用计算机的名称,Windows 10中修改计算机名称的方法,你知道几种?

当用户新入手一台电脑时,通常做的第一件事就是做一些个性化设置。一般来说个性化的第一步就是给计算机起一个自己满意的名字,下面介绍几种修改计算机名字的方法。通过设置更改计算机名字按WinI键进入设置,在设置窗口中找到“系统”,点击它。在…

apollo 参数传递_使用Apollo通过WebSocket通过STOMP轻松进行消息传递

apollo 参数传递在我以前的文章中,我介绍了几个有趣的用例,这些用例使用著名的消息代理HornetQ和ActiveMQ通过Websockects实现STOMP消息传递。 但是我没有介绍的是Apollo,因为我个人认为它的API是冗长的,并且不像Java开发人员那样…

使用IntelliJ调试Java流

流功能非常强大,只需几行就可以捕获您预期功能的要点。 但是,就像它们在一切正常工作时一样平滑,就像它们在表现不正常时一样令人痛苦。 了解如何使用IntelliJ调试Java Streams并深入了解Stream的中间操作。 在本文中,我将在示例…

echart 饼图每一块间隙_花10分钟做酱香饼,简单方便又美味,酥脆咸香比买的还要好吃...

花10分钟做酱香饼,简单方便又美味,酥脆咸香比买的还要好吃前几年,在单位附近有一家只做酱香饼的小店,刚开张的时候排很长队,我为了一块酱香饼排队半小时。后来买酱香饼的人少了,我三天两头买一块酱香饼解馋…

404 单页应用 报错 路由_通过 Laravel 创建一个 Vue 单页面应用(五)

文章转发自专业的Laravel开发者社区,原始链接:https://learnku.com/laravel/t/34858我们在第4部分完成了编辑用户的功能,并且学习了如何使用 v-model 来监听视图组件中用户信息的更改。现在我们可以开始构思删除用户功能,以及删除…