当前位置: 首页 > news >正文

Eclipse MicroProfile 1.3现已发布

\

看新闻很累?看技术新闻更累?试试下载InfoQ手机客户端,每天上下班路上听新闻,有趣还有料!

\
\\

Eclipse MicroProfile通过为企业级Java微服务提供开源社区规范从而更好地解决微服务问题。发布的1.3版本引入了OpenAPI、OpenTracing以及Rest Client API,并且升级了Config和Metrics的API。

\\

MicroProfile OpenAPI 1.0

\\

随着微服务体系结构(MSA,Microservices Architecture)中的微服务数量的增加,微服务的管理可能变得难以处理。MicroProfile 1.3版本添加了一个新功能:OpenAPI,它能通过使用应用程序编程接口(API)管理解决方案便捷地对微服务进行管理。OpenAPI基于Swagger内核,坚持Open API规范,定义了一种标准化的、编程语言无关的接口描述,开发人员可以使用它来公开他们的API文档。其中有许多不同的方式可以增强应用程序为生成OpenAPI文档提供的输入:

\\
  • OpenAPI注释 \\
  • 静态OpenAPI文件 \\
  • 编程模型\

通过前面所描述的机制构建的OpenAPI文档可以使用一个过滤器来进行更新。

\\

MicroProfile OpenTracing 1.0

\\

在MSA中,分布式跟踪是至关重要的,因为它能够使得开发人员对跨服务边界的请求留进行可视化。OpenTracing是MicroProfile 1.3版本中的另一个新特性,它通过对行为进行定义来支持分布式跟踪,它还允许开发人员在运行环境中(而不是开发时)进行分布式跟踪的决策。OpenTracing支持在一个应用程序内对Tracer对象进行访问。开发人员能够通过Tracer对象从传入的请求中提取所需的信息。

\\

对于分布式跟踪来说,有两种操作模式:

\\
  • 不使用应用程序代码模式 \\
  • 使用显式代码\

在不使用应用程序代码的模式下进行操作时,开发人员不需要向他们应用程序源代码添加任何有关分布式跟踪的代码,也不需要知道应用程序即将部署到的环境类型。只要发出请求与传入请求在相同的线程中进行处理,它们之间的关系就会被自动处理。

\\

在使用显式代码的模式中,可以使用@Thread注释来指定被跟踪的类或者方法。经过配置的Tracer对象可用于通过上下文和依赖注入(CDI,Contexts and Dependency Injection)的应用程序,这使得开发者能够向应用程序添加更为复杂的跟踪需求。

\\

MicroProfile Rest Client API 1.0

\\

Rest Client API是MicroProfile 1.3版本中的另一个新特性,它提供了一种类型安全的方法来通过HTTP调用RESTful服务。例如,可以为远程服务定义一个接口来对股票进行评分,如下所示:

\\
\@Path(\"/stocks\")\public interface StockScoringService {\    @POST\    @Path(\"/{stockId}/score\")\    Integer submitScore(@PathParam(\"stockId\") Integer stockId, Score score );\}\
\\

然后就可以通过该接口调用实际的远程股票评分服务,如下所示:

\\
\String apiUrl = \"http://localhost:9080/stockScoringService\";\StockScoringService stockSvc =   \    RestClientBuilder.newBuilder()\            .baseUrl(apiUrl)\            .build(StockScoringService.class);\Integer stockId = 4;\Score score = new Score(10,\"Great performing stock.\");\stockSvc.submitScore(stockId, score);\
\\

\Rest Client API支持更自然的编码风格,并且能够自动处理HTTP的连接和序列化。

\\

MicroProfile Config 1.2

\\

对于运行在云环境下的微服务来说,尤为重要的是,在应用程序运行时需要进行更改的配置信息需要在没有进行重新启动的情况下生效。Config 1.2使得更改一旦发生就能够立刻对配置的值进行修改。最新的特性包括提供了对数组转换器、类转换器以及类的隐式转换器(在该类中,没有对应的该类类型的转换器)的支持。

\\

MicroProfile Metrics 1.1

\\

监控系统的参数能够确保软件运行的可靠。Metrics能够为给定的流程添加监视端点和度量标准。不同于简单地健康监测(Health Checks),Metrics能够通过基线、应用程序、特定的供应商指标来深入了解软件的运行情况。最新的功能提供一个改进的兼容性测试工具包(TCK,Test Compatibility Kit),它能够通过配置文件来提供全局标记以及对注释和元数据的标记,用以标明那些能被注册超过一次的度量标准的名字。

\\

想要开始使用MicroProfile 1.3,你需要在你的porn.xml文件中添加如下依赖:

\\
\u0026lt;dependency\u0026gt;\      \u0026lt;groupId\u0026gt;org.eclipse.microprofile\u0026lt;/groupId\u0026gt;\      \u0026lt;artifactId\u0026gt;microprofile\u0026lt;/artifactId\u0026gt;\      \u0026lt;version\u0026gt;1.3\u0026lt;/version\u0026gt;\      \u0026lt;type\u0026gt;pom\u0026lt;/type\u0026gt;\\u0026lt;/dependency\u0026gt;
\\

你可以在MicroProfile 1.3的发布详情中了解更多细节。读者们也能通过访问InfoQ Java主页关注所有和Java相关的新闻来了解更多信息。

\\

查看英文原文:Eclipse MicroProfile 1.3 Is Now Available

相关文章:

  • VTP的模式(思科)
  • 掀开图片显示介绍的css效果
  • JS判断某变量是否为某数组中的一个值的3种方法
  • Hook技术--Activity的启动过程的拦截
  • AR和VR持续升温,2020年市场规模将达1500亿美元
  • 【转】给Java说句公道话
  • 你可能不知道的Shell
  • Nginx 调优经验记录
  • 怎样解题表
  • macOS 中 shell 创建文件夹及文件并 VS Code 打开
  • 如何克服解决Git冲突的恐惧症?(序)
  • [BZOJ3223]文艺平衡树
  • ccf-20171203 Crontab问题
  • schtasks命令
  • 聚类分析——Kmeans
  • 《深入 React 技术栈》
  • 30秒的PHP代码片段(1)数组 - Array
  • Angular Elements 及其运作原理
  • avalon2.2的VM生成过程
  • Bootstrap JS插件Alert源码分析
  • Python 使用 Tornado 框架实现 WebHook 自动部署 Git 项目
  • React16时代,该用什么姿势写 React ?
  • Spring技术内幕笔记(2):Spring MVC 与 Web
  • 从地狱到天堂,Node 回调向 async/await 转变
  • 关键词挖掘技术哪家强(一)基于node.js技术开发一个关键字查询工具
  • 极限编程 (Extreme Programming) - 发布计划 (Release Planning)
  • 七牛云假注销小指南
  • 一个JAVA程序员成长之路分享
  • 一些css基础学习笔记
  • 原生Ajax
  • 在Mac OS X上安装 Ruby运行环境
  • 在Unity中实现一个简单的消息管理器
  • ​​​​​​​​​​​​​​Γ函数
  • # 深度解析 Socket 与 WebSocket:原理、区别与应用
  • #pragam once 和 #ifndef 预编译头
  • (C)一些题4
  • (ISPRS,2023)深度语义-视觉对齐用于zero-shot遥感图像场景分类
  • (TipsTricks)用客户端模板精简JavaScript代码
  • (二十四)Flask之flask-session组件
  • (附源码)ssm学生管理系统 毕业设计 141543
  • (附源码)计算机毕业设计高校学生选课系统
  • (原創) 如何解决make kernel时『clock skew detected』的warning? (OS) (Linux)
  • (转载)VS2010/MFC编程入门之三十四(菜单:VS2010菜单资源详解)
  • .NET Core 成都线下面基会拉开序幕
  • .NET Core/Framework 创建委托以大幅度提高反射调用的性能
  • .Net FrameWork总结
  • .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。
  • .net获取当前url各种属性(文件名、参数、域名 等)的方法
  • .NET面试题解析(11)-SQL语言基础及数据库基本原理
  • .NET中两种OCR方式对比
  • /boot 内存空间不够
  • @Autowired和@Resource的区别
  • @staticmethod和@classmethod的作用与区别
  • [].slice.call()将类数组转化为真正的数组
  • [2018-01-08] Python强化周的第一天