返回顶部
首页 > 资讯 > 精选 >Java微服务框架和工具有哪些
  • 287
分享到

Java微服务框架和工具有哪些

2023-06-04 14:06:12 287人浏览 安东尼
摘要

这篇文章主要介绍了Java微服务框架和工具有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Netflix开放源码软件(OSS)  Netflix开放源码软件中心是基于 J

这篇文章主要介绍了Java微服务框架工具有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

Netflix开放源码软件(OSS)

  Netflix开放源码软件中心是基于 Java的微服务开放源码项目最流行和最广泛使用的开放源码软件。世界上最成功的视频租赁服务依赖于它。Netflix已经有超过 4000万用户,他们在全球各地使用其服务。Netflix是一个纯粹的基于云平台的解决方案,在微服务架构的基础上开发。可以说,每当有人谈到微服务时,Netflix都是进入你脑海的第一个名字。让我们讨论它提供的各种工具。在开发示例 OTRS应用程序时,我们已经讨论了其中的很多工具。然而,有几个工具我们还未探讨过。在这里,我们将只对每个工具进行概述,而不是详细讲解。这将给你带来微服务架构的实际特点和它在云平台中使用的总体思路。

构建——Nebula

  Netflix Nebula是一种使你更容易使用 Gradle(类似Maven的构建工具)来生成微服务的 Gradle插件集合。对于我们的示例项目,由于我们已使用了 Maven,因此我们没有机会在本书中详细探讨 Nebula。然而,研究它会很有趣。对于开发人员来说,最重要的 Nebula功能是消除 Gradle生成文件中的许多样板代码,这使得开发人员能够把重点放在编码上面。

有一个很好的构建环境,尤其是 CI/CD(持续集成和持续部署)是微服务开发和与敏捷开发保持一致必备的。Netflix Nebula使你的构建过程更轻松、更高效。

部署和交付——Spinnaker与 Aminator

  一旦你生成的软件已准备就绪,你会想要将此软件移动到亚马逊网络服务( Amazon WEB Services,AWS)EC2中。Aminator使用亚马逊机器映像( Amazon Machine Image, AMI)的形式来创建生成的软件并将其打包成映像文件。 Spinnaker然后将这些 AMI部署到 AWS。 
  Spinnaker是高速并高效地发布代码更改的持续交付平台。 Spinnaker还支持其他云服务,例如 Google Computer Engine和 Cloud Foundry。

你想要将最新的微服务软件部署于类似 EC2的云环境中, Spinnaker和Aminator可以帮助你自动地完成这件事。

服务注册和发现——Eureka

  正如我们已在本书中探讨的,Eureka提供了负责微服务注册和发现的服务。最重要的是,Eureka也用于中间层(承载不同的微服务的进程)负载均衡。 Netflix也使用 Eureka以及其他工具,像 Cassandra或 memcached,以提高其整体可用性。

服务注册和发现是微服务架构所必备的。Eureka的用途就是这个。请参阅《Java微服务》第 4章获取有关 Eureka的详细信息。

服务沟通——Ribbon

  如果没有进程间或服务间的通信,微服务架构就没有用。功能区应用程序提供该功能。 Ribbon与 Eureka结合实现负载均衡,与 Hystrix结合实现容错或电路断路器操作。 
  除Http之外,Ribbon还支持 tcp和 UDP协议。它对这些协议同时提供了异步和反应式模型的支持,它还提供缓存和批处理的功能。

因为你的项目中将会有很多微服务,你需要一种使用进程间或服务间通信的方法来处理信息。Netflix公司为此提供了 Ribbon工具。

电路断路器——Hystrix

  Hystrix工具用来执行电路断路器操作,也就是,容忍延迟和容错。因此,Hystrix会停止连故障。Hystrix执行实时的服务监控和属性更改操作,并支持并发

电路断路器或容错,是用于任何项目,包括微服务的一个重要概念。一个微服务的故障不应停止你的整个系统;Netflix Hystrix的任务是防止这一点,并在出故障时,向用户提供有意义的信息。

边缘(代理)服务器——Zuul

  Zuul是边缘服务器或代理服务器,它用来为外部应用程序如 UI客户端、Android/iOS应用程序或任何产品或服务提供的第三方使用者的 api发出的请求提供服务。从概念上讲,它是一扇面向外部应用程序的门。 
  Zuul允许动态路由和监控请求。它还执行安全操作,如身份验证。可以确定每个资源的身份验证要求,并拒绝任何不能满足这些要求的请求。

你需要为微服务提供边缘服务器或 API网关。Netflix Zuul提供此功能,请参阅《Java微服务》第 5章获取详细信息。

业务监控——Atlas

  Atlas是一个业务监控工具,它提供了接近实时的高维时间序列数据的信息。它捕获业务智能,提供目前在系统内发生的情况的概况。它提供内存中的数据存储,这使它能非常快地收集和报告大量的指标。目前,它为 Netflix处理 13亿个指标。 
  Atlas是一个可扩展的工具。这就是为什么它从几年前处理 100万个指标到现在可以处理 13亿个指标的原因。 Atlas系统不仅提供了读取数据方面的可扩展性,还将它作为一部分集成到图形请求中。 
  Atlas使用 Netflix Spectato库记录高维时间序列数据。

一旦你在云环境中部署微服务,你就需要有一个监控系统来跟踪和监控所有微服务。Netflix Atlas为你做这份工作。

可靠性监控服务——Simian Army

  在云环境中,没有单个的组件可以保证 100%正常运行时间。因此,成功的微服务架构要求,使整个系统在单个云组件出现故障的情况下可用。 Netflix公司开发了一个叫 Simian Army(猿猴军队)的工具,以避免系统故障。 Simian Army保证云环境的安全、可靠和高可用性。为了实现高可用性和安全性,它使用各种服务(猴子)在云中产生各类故障,检测异常情况并测试云在这些挑战下的生存能力。它使用取自 Netflix博客的以下服务(猴子):

混沌猴子( Chaos Monkey)

  混沌猴子是一种服务,它确定系统组并随机终止某个组中的一个系统。这个服务以受控制的时间和时间间隔运作。混沌猴子只在营业时间运行,它希望工程师将收到警报并能够做出反应。

看守猴子( Janitor Monkey)

  看守猴子是一种在 AWS云中运行的服务,它寻找可以清理的未使用的资源,它可以扩展用于其他云提供商和云资源。服务的时间表是可配置的。看守猴子通过对某个资源应用一组规则,确定它是否应当成为被清理的候选者。如果任何规则确定某资源是被清理的候选者,看守猴子就对此资源做标记,并安排时间去清理它。特殊情况下,当你想要把未使用的资源保留更长的时间,在看守猴子删除资源前,资源的所有者将在清理时间前几天收到通知,天数是可配置的。

符合猴子( ConfORMity Monkey)

  符合猴子是一种在 AWS云中运行的服务,它寻找不符合最佳做法的预定义规则的实例。它可以扩展来用于其他云提供商和云资源。这个服务的时间表是可配置的。如果确定该实例不符合任何一条规则,猴子就向实例的所有者发送电子邮件通知。可能在有的例外情况下,对于某些应用程序要忽略关于符合特定规则的警告。

安全猴子( Security Monkey)

  安全猴子监控策略的更改并对某个 AWS账户上没有安全感的配置进行提醒。安全猴子的主要目的是保证安全性,但它也是用于跟踪潜在问题的有用工具,因为它本质上是一个更改跟踪系统。 
   
  成功的微服务架构可以确保你的系统始终是运行的,并且单个云组件失败不会停止整个系统。Simian Army使用许多服务来实现高可用性。

AWS资源监控——Edda

  在云环境中,没有什么是静态的。例如,虚拟宿主机实例经常发生变化,通常情况下, IP地址可以由各种应用程序重复使用,防火墙或相关的变化也可能发生。 
  Edda是跟踪这些动态的 AWS资源的服务。 Netflix将其命名为 Edda(即北欧神话故事),它记录云管理和部署的故事。Edda使用 AWS API轮询 AWS资源并记录结果。这些记录允许搜索和查看云已经随着时间的推移发生了哪些变化。例如,如果任何 API服务器的主机正在造成任何问题,你需要找出此主机是什么,哪支团队要为它负责。 
  它提供了这些功能:

  • 动态查询:Edda提供 REST API,并且它支持矩阵参数并提供让你仅检索所需的数据的字段选择器。

  • 历史的变化:Edda维护所有 
    AWS资源的历史记录。此信息可帮助你分析资源中断的原因和影响。Edda还可以提供有关资源的当前和历史信息的不同视图。在撰写本文时,它在MongoDB中存储信息。

  • 配置:Edda支持多个配置选项。一般情况下,可以从多个账户和多个区域轮询信息,还可以使用账户的组合和这些账户指向的区域。同样的,它提供AWS、Crawler、 Elector和 mongoDB的不同配置。

  • 如果采用 AWS来承载基于微服务的产品,那么 Edda可用于对 AWS资源进行监控。

主机性能监控——Vector

  Vector是一个静态的 web应用程序,在 web浏览器内运行。它可以用来监控安装了 Performance Co-Pilot(PCP)的主机的性能。Vector支持 PCP 3.10及以上版本。PCP收集各种指标并提供给 Vector。 
  它根据需要提供高分辨率的正确指标。这可以帮助工程师了解系统的行为和正确地解决性能问题。

可帮助你监控远程主机的性能监控工具。

分布式配置管理——Archaius

  Archaius是一个分布式的配置管理工具,它允许你执行以下操作:

  • 使用动态和类型化的属性。

  • 执行线程安全的配置操作。

  • 使用轮询框架检查属性更改。

  • 在有序的层次结构的配置中使用回调机制。

  • 使用 JConsole检查属性并对其执行操作,因为 Archaius提供了JMX MBean。

  • 当你有一个基于微服务的产品时,需要有一个良好的配置管理工具。Archaius可以帮助在一个分布式的环境中配置不同类型的属性。

Apache Mesos调度器——Fenzo

  Fenzo是用 Java编写的用于 Apache Mesos框架的一个调度程序库。 Apache Mesos框架查找匹配的资源,并将其配到挂起的任务上。其主要特点如下:

  • 支持长时间运行的服务风格的任务和批处理。

  • 可以基于资源需求自动缩放执行主机集群

  • 支持插件,可以基于需求创建它们。

  • 可以监控资源分配的故障,允许调试故障根源。

成本和云利用率——Ice

  Ice从成本和使用的角度提供云资源的全景图。它提供调配云资源分配到不同团队的最新信息,为云计算资源的最优利用增加价值。 
  Ice是一个圣杯项目。用户与 Ice UI组件交互,后者显示通过 Ice阅读器组件发送的信息。阅读器从 Ice处理器组件所生成的数据中提取信息。 Ice处理器组件从详细的云计费文件中读取数据信息,并将它转换成 Ice阅读器组件可读的数据。

其他安全工具——Scumblr和 FIDO

  除了Security Monkey,Netflix开放源码软件也使用 Scumblr和完全集成的防御操作(Fully Integrated Defense Operation,FIDO)工具。

为了跟踪你的微服务,并保护它不受经常的威胁和攻击,你需要以自动化的方式来对你的微服务进行保护和监控。Netflix Scumblr和FIDO为你做这份工作。

Scumblr

  Scumblr是一个基于 Ruby on Rails的 web应用程序,它允许你执行定期搜索并对识别的结果执行存储/采取行动。基本上,它会利用全互联网有针对性的搜索来收集情报,从而揭露特定安全问题用于调查。 
  Scumblr利用可以流程化的宝贵信息,允许对不同类型的结果设置灵活的工作流。 Scumblr利用称为 Search Providers(搜索提供程序)的插件进行搜索,它会检查类似以下的异常。因为它是可扩展的,可以根据需要添加任意多的检查项目:

  • 泄露的凭据

  • 黑客漏洞/讨论

  • 攻击讨论

  • 社交媒体上的安全相关讨论

完全集成的防御操作( FIDO)

  FIDO是一种安全业务流程框架,用于分析事件和自动化事件响应。它通过评价、评估和应对恶意软件来使事件的响应过程变得自动化。FIDO的主要目的是处理评估来自当今安全栈的威胁和它们所生成的大量警报所需要的大量手动工作。 
  作为业务流程平台,FIDO通过大幅减少检测、通知和应对网络攻击所需要的手动工作,可以更高效、更准确地使用现有的安全工具。 

感谢你能够认真阅读完这篇文章,希望小编分享的“Java微服务框架和工具有哪些”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网精选频道,更多相关知识等着你来学习!

--结束END--

本文标题: Java微服务框架和工具有哪些

本文链接: https://lsjlt.com/news/238286.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Java微服务框架和工具有哪些
    这篇文章主要介绍了Java微服务框架和工具有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Netflix开放源码软件(OSS)  Netflix开放源码软件中心是基于 J...
    99+
    2023-06-04
  • java微服务框架有哪些
    java中的微服务框架有:1.Spring Boot,用于简化Spring应用搭建和开发的微服务框架;2.Helidon,用于编写微服务的java框架;3.Telepresence,为微服务创建本地代理;4.Zipkin,用于记录各种微服务...
    99+
    2024-04-02
  • Java中有哪些微服务框架
    这篇文章将为大家详细讲解有关Java中有哪些微服务框架,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1、Spring BootJava构建Spring应用程序已经有很长一段时间了,Sprin...
    99+
    2023-06-16
  • CSS动画工具和框架有哪些
    这篇文章主要介绍“CSS动画工具和框架有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“CSS动画工具和框架有哪些”文章能帮助大家解决问题。CSS 动画工具和框架...
    99+
    2024-04-02
  • Node.js中的Web框架和工具有哪些
    这篇文章主要介绍了Node.js中的Web框架和工具有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Node.js中的Web框架和工具有哪些文章都会有所收获,下面我们一起来...
    99+
    2024-04-02
  • java中有哪些常见微服务框架
    常见微服务框架介绍:Spring Boot:这可能是最好的Java微服务框架了,它适用于控制反转、面向切面编程等等。示例代码:import org.springframework.boot.*; import org.springframe...
    99+
    2019-01-22
    java入门 java 微服务 框架
  • golang微服务框架有哪些
    golang中的微服务框架有:1.GoKit,微服务工具包;2.GoMicro,基于golang实现的插件化rpc微服务框架;3.go-micro,rpc微服务框架;4.Iris,web应用框架,常用于构建微服务;5.Kite,采用微服务的...
    99+
    2024-04-02
  • php微服务框架有哪些
    php中常见的微服务框架有Swoft、PHP-msf和Tars三种SwoftSwoft是一款基于swoole协程2.x的高性能PHP微服务框架,其内置http服务器,使用Swoft可以实现全协程,且性能优于传统的php-fpm模式。PHP-...
    99+
    2024-04-02
  • python微服务框架有哪些
    python中的微服务框架有Istio、Dubbo和nameko三种IstioIstio是一个用来连接、管理和保护微服务的开放平台,使用Istio可以建立已部署服务网络,且Istio具备负载均衡、服务间认证、监控等功能。DubboDubbo...
    99+
    2024-04-02
  • 常用的Java微服务开源框架有哪些
    这篇文章主要讲解了“常用的Java微服务开源框架有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“常用的Java微服务开源框架有哪些”吧!1、Spring...
    99+
    2024-04-02
  • Java开发者必会的大数据工具和框架有哪些
    这篇文章主要介绍了Java开发者必会的大数据工具和框架有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Java开发者必会的大数据工具和框架有哪些文章都会有所收获,下面我们一起来看看吧。MongoDB——最受...
    99+
    2023-06-05
  • 常见的Flex调试工具和Flex框架有哪些
    这篇文章主要介绍了常见的Flex调试工具和Flex框架有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1.AdobeFlexBuilder3FlexBuilder3是**...
    99+
    2023-06-17
  • java常用工作流框架有哪些
    Java常用的工作流框架有以下几种:1. Activiti:Activiti是一个开源的BPM工作流引擎,它提供了一套完整的业务流程...
    99+
    2023-09-25
    java
  • 有哪些AJAX技术框架及开发工具
    这篇文章主要讲解了“有哪些AJAX技术框架及开发工具”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“有哪些AJAX技术框架及开发工具”吧! ...
    99+
    2024-04-02
  • java框架有哪些
    java的框架包括:1.SpringMVC框架;2.MyBatis框架;3.Dubbo框架;4.EhCache框架;5.Apache Shiro框架;6.Spring框架;java框架有:SpringMVC是基于java实现Web MVC设...
    99+
    2024-04-02
  • Spring框架中的日志记录工具有哪些?
    Spring框架是一个非常流行的Java应用程序框架,它提供了大量的功能和工具来帮助开发人员构建高效、可靠的应用程序。其中一个重要的功能就是日志记录,Spring框架提供了多种日志记录工具来帮助开发人员记录和管理应用程序的日志信息。本文将介...
    99+
    2023-07-20
    并发 spring 日志
  • Java有哪些测试框架和库
    这篇文章主要讲解了“Java有哪些测试框架和库”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java有哪些测试框架和库”吧!Java入门如果你才刚开始接触Java世界,那么要做的第一件事情是...
    99+
    2023-06-05
  • Java工具类有哪些
    本篇内容介绍了“ Java工具类有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1.org.apache.commons.io.IOUt...
    99+
    2023-06-15
  • 微信小程序框架有哪些
    常见的微信小程序框架有:1.WeUI ,微信原生视觉样式库;2.mpvue,基于Vue.js的小程序前端框架;3.wepy,小程序组件化开发框架;4.iView Weapp,微信小程序UI组件库;5.weweb,兼容小程序语法的前端框架;6...
    99+
    2024-04-02
  • java日志框架有哪些
    java的日志框架有:1.SLF4J,基于API的java日志框架;2.log4j,基于java的开源日志组件;3.logstash,java日志管理工具;4.gclogviewer,java日志查看工具;5.Commons Logging...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作