Cloud Foundry Java客户端–流事件

Cloud Foundry Java客户端提供了基于Java的绑定,用于与正在运行的Cloud Foundry实例进行交互。 这个项目的优点之一是它采用了基于Reactive Stream的API作为方法签名,特别是使用Reactor实现,这在使用流数据时特别有用。

在这篇文章中,我想展示一个真正使该库发挥作用的特定用例-在Cloud Foundry的流事件中

Loggregator是Cloud Foundry中的子系统,负责汇总系统内产生的所有日志,并提供了将该信息流式传输到外部系统的方式。 Loggregator中的“流量控制器”组件公开了基于Websocket的端点,这些端点流出了这些事件,Cloud Foundry Java客户端抽象了基础的websocket客户端连接详细信息,并提供了一种使用此信息的简洁方法。

作为前提条件,您将需要一个运行中的Cloud Foundry实例来试用该示例,并使它在本地运行的最佳方法是使用PCF Dev 。

假设您有一个正在运行的实例,使用cf-java-client库从代码连接到该实例的方式如下:

SpringCloudFoundryClient cfClient = SpringCloudFoundryClient.builder().host("api.local.pcfdev.io").username("admin").password("admin").skipSslValidation(true).build();

使用此方法,可以通过以下方式创建流量控制器的客户端:

DopplerClient dopplerClient = ReactorDopplerClient.builder().cloudFoundryClient(cfClient).build();

从本质上来说,多普勒客户端提供了流式处理基础事件的方法,如果您对所有未过滤的信息(适当地称为firehose)感兴趣,则可以通过以下方式进行:

Flux<Event> cfEvents = this.dopplerClient.firehose(FirehoseRequest.builder().subscriptionId(UUID.randomUUID().toString()).build());

结果是来自Reactor库的Flux类型封装了流数据,可以通过附加订户来观察流数据,例如对于订户的基本示例,只需将事件以以下方式记录到控制台即可:

cfEvents.subscribe(e -> LOGGER.info(e.toString()));

但是, Flux的真正功能在于它提供的非常强大的流利方法,因此,例如,如果我对仅是应用程序级别日志的子集感兴趣,那么我本质上想过滤数据,从中提取日志并通过以下方式打印日志:

cfEvents.filter(e -> LogMessage.class.isInstance(e)).map(e -> (LogMessage)e).map(LogMessage::getMessage).subscribe(LOGGER::info);

如果您想使用此示例(作为附加奖励已启用了Spring Boot) ,请在github存储库中使用它 。

翻译自: https://www.javacodegeeks.com/2016/05/cloud-foundry-java-client-streaming-events.html

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

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

相关文章

vue导入html登陆页,Vue 实现 登陆后打开主页面(登陆组件 + 主页面组件)

本次演示&#xff0c;项目所需iview&#xff0c;router首先在 views 目录 新建 两个 组件 ( login.vue &#xff0c;index.vue )login.vue登录登 录export default {methods: {login() {// 假设登陆成功&#xff0c;则跳转到 index 组件this.$router.replace(/index);}}}backgr…

设置窗口大小

window.resizeTo(screen.availWidth, screen.availHeight);转载于:https://www.cnblogs.com/7q4w1e/p/9680037.html

android IO流_Flutter实战经验(十):打包和发布到 Android 平台

本文适合ios开发者不清楚Android上架机制学习。在一般的开发过程中&#xff0c;我们可以使用 flutter run 命令&#xff0c;或者 IntelliJ 工具栏中的 Run 和 Debug 来测试 app。这时候&#xff0c;Flutter 默认会为我们构建 app 的调试版本。当想要发布 app 时&#xff0c;比如…

西安单招学校学计算机软件的,西北大学软件职业技术学院单招

西北大学肇始于1902年的陕西大学堂和京师大学堂速成科仕学馆&#xff0c;1912年始称西北大学&#xff0c;1978年被确定为全国重点大学。现为国家“211工程”建设院校、教育部与陕西省共建高校。在长期的办学历程中&#xff0c;西北大学形成了“发扬民族精神&#xff0c;融合世界…

autojs遍历当前页面所有控件_PyQT5控件:容器(Containers Widgets)

QWidget主窗体容器 在Qt设计师中新建文件&#xff0c;选择QWidget QWidget属性 enabled 窗口部件是否有效geometry 窗口部件相对于其父窗口的几何图形&#xff0c;并排除窗口框架sizePolicy 窗口部件的默认布局行为minimumSize 窗口部部件的最小尺寸&#xff08;以像素为单位&a…

JAVA 技术类分享(一)

一、dubbo dubbo原理模型&#xff1f; 主要是注册中心&#xff0c;服务提供者&#xff0c;服务消费者&#xff0c;监控中心&#xff0c;其中后者可有可无。1.服务端&#xff0c;在注册中心注册自己提供的服务&#xff0c;并暴露端口&#xff0c;2.客户端在注册中心注册&#xf…

计算机的就业指导论文,计算机就业指导期刊文章参考文献 计算机就业指导专著类参考文献有哪些...

为论文写作提供【100个】计算机就业指导期刊文章参考文献,海量计算机就业指导相关论文参考文献,包括期刊,专著,外文参考文献,解决您的计算机就业指导专著类参考文献有哪些的相关难题&#xff01;一、计算机就业指导论文参考文献范文[1]“基于就业岗位需求”的专业课程体系建设的…

junit rule_使用JUnit的ExpectedException和@Rule测试自定义异常

junit rule异常测试 为什么要测试异常流&#xff1f; 就像所有代码一样&#xff0c;测试覆盖率在代码和应该产生的业务功能之间写了一个合同&#xff0c;从而为您提供了代码的有效文档 &#xff0c;以及可以尽早且经常强调功能的附加功能。 我不会介绍测试的许多好处&#xff0…

经纬度1秒约等于多少米?

WGS84坐标系统下&#xff08;通常我们采用的GPS内的坐标系统&#xff09; 如果是中国常用的WGS1984的经纬度坐标&#xff0c;1秒相当于33米。具体如下&#xff1a; 经度1度85.39km 经度1分 1.42km 经度1秒 23.6m 纬度1度 大约111km 纬度1分 大约1.85km 纬度1秒 大约30.9m

学计算机单招可以报那几个公立学校,为什么要选择公办单招学校,四川公办单招学校有哪些?...

高职单招单招被称为春季高考&#xff0c;在四川参加单招考试的学生逐年上升&#xff0c;周时参加单招的高职院校也越来越多。但是单招不像是高考可以通过不同的志愿&#xff0c;来填报多所学校。单招只能选择某一个学校&#xff0c;一旦确定就不能更改。这样的结果就是选择学校…

AutoValue:生成的不可变值类

Google GitHub托管的项目AutoValue之所以有趣&#xff0c;有多种原因。 该项目不仅使为“ 值对象 ”编写更少的Java代码变得容易&#xff0c;而且还为Java注释处理的实际应用提供了概念上简单的演示。 该自动/值项目是由提供谷歌的员工凯文Bourrillion和埃蒙麦克马纳斯和许可与…

exit(0)与exit(1)、return区别

exit&#xff08;0&#xff09;&#xff1a;正常运行程序并退出程序&#xff1b; exit&#xff08;1&#xff09;&#xff1a;非正常运行导致退出程序&#xff1b; return&#xff08;&#xff09;&#xff1a;返回函数&#xff0c;若在主函数中&#xff0c;则会退出函数并返回…

上海教师计算机等级要求,计算机考试阅卷教师谈等级考试

等级考试笔试是由选择题和填空题两大部分组成。选择题是由阅卷系统改卷&#xff0c;而填空题是由阅卷教师评阅&#xff0c;下面我们就从分析阅卷的得分丢分情况来谈谈如何让阅卷教师在公平、公正的前提下尽可能的给予"高分"&#xff0c;让考生尽量避免不必要的"…

C++读取文本文件中以TAB作为分隔符,且中间字段有为空的情况的方法?

数据文件&#xff1a;testData.txt 内容&#xff1a; 111 222 444 555思路&#xff1a; getline()将testData.txt中的第一行记录读入到一个string中&#xff0c;然后搜索第n个分隔符进行定位&#xff0c;判断第n个字段长度&#xff0c;使用substr&#x…

宿迁学计算机的学校,宿迁计算机学校

01、宿迁计算机学校培养目标培养学生具有基本的审美能力&#xff0c;利用常用的平面设计软件进行多媒体产品开发、广告设计与创意、印刷品的设计、展览展示等能力&#xff0c;能够从事多媒体产品开发&#xff0c;广告设计与创意&#xff0c;印刷品的设计&#xff0c;展览展示等…

javaone_JavaOne 2012:调查JVM水晶球

javaone我周一回到了希尔顿的A / B广场参加第四届会议&#xff0c;但首先去了希尔顿的顶层收拾午餐。 我每年都在JavaOne的第一天被提醒&#xff0c;对于参与的每个人来说&#xff0c;第一天的午餐获取过程令人惊讶地令人沮丧。 我知道我在JavaOne的第一年的经历使我有些困惑&a…

VS2008编译boost库

一、下载 首先从boost官方主页http://www.boost.org/下载最新版boost安装包&#xff0c;我用的版本是boost.1.49.0 二、新建文件夹 如果是使用下载的安装包&#xff0c;那么请将boost安装包解压至本地新建的目录&#xff0c;如&#xff1a;F:\boost 三、编译 &#xff08;1&am…

rtk采点后如何导入cad_【干货】RTK实操视频:工程之星5.0操作攻略!(第五部分)...

前期回顾&#xff1a;【干货】RTK实操视频&#xff1a;工程之星5.0操作攻略&#xff01;(第一部分)【干货】RTK实操视频&#xff1a;工程之星5.0操作教程(第二部分)【干货】RTK实操视频&#xff1a;工程之星5.0操作攻略&#xff01;(第三部分)【干货】RTK实操视频&#xff1a;工…

Git----分支管理之分支管理策略04

通常&#xff0c;合并分支时&#xff0c;如果可能&#xff0c;Git会用Fast forward模式&#xff0c;但这种模式下&#xff0c;删除分支后&#xff0c;会丢掉分支信息。 如果要强制禁用Fast forward模式&#xff0c;Git就会在merge时生产一个新的commit&#xff0c;这样&#xf…

测试英语语法的软件,1Checker,一款实用的英语语法检测软件

语法检测软件众多&#xff0c;使用最顺手的是1Checker。因为工作原因&#xff0c;每两年都要发表至少一篇英文期刊&#xff0c;可我的英文水平写专业论文很欠缺&#xff0c;又不愿意花钱找人翻译检测。就在网上寻找相关的软件&#xff0c;1Checker不是我第一个使用的语法检测软…