返回介绍

跨平台支持

发布于 2024-08-18 11:12:34 字数 1878 浏览 0 评论 0 收藏 0

在“Eureka详解”一节中,我们对Spring Cloud Eureka的源码做了较为详细的分析,在分析过程中相信大家已经发现,Eureka的通信机制使用了HTTP的REST接口实现,这也是Eureka同其他服务注册工具的一个关键不同点。由于HTTP的平台无关性,虽然Eureka Server通过Java实现,但是在其下的微服务应用并不限于使用Java来进行开发。

跨平台本身就是微服务架构的九大特性之一,只有实现了对技术平台的透明,才能更好地发挥不同语言对不同业务处理能力的优势,从而打造更为强大的大型系统。

目前除了 Eureka 的 Java 客户端之外,还有很多其他语言平台对其的支持,比如eureka-js-client、python-eureka等。若我们有志于自己为一门语言来开发客户端程序,也并非特别复杂,只需要根据上面提到的那些用户服务协调的通信请求实现就能实现服务的注册与发现,需要了解更多关于Eureka 的REST API内容可以查看Eureka官方WiKi 中的Eureka-REST-operations一文https://github.com/Netflix/eureka/wiki/Eureka-REST-operations。

通信协议

默认情况下,Eureka使用Jersey和XStream配合JSON作为Server与Client之间的通信协议。你也可以选择实现自己的协议来代替。

- Jersey是JAX-RS的参考实现,它包含三个主要部分。

- 核心服务器 (Core Server):通过提供 JSR 311 中标准化的注释和 API 标准化,你可以用直观的方式开发 RESTful Web 服务。

- 核心客户端 (Core Client):Jersey 客户端 API 帮助你与 REST 服务轻松通信。

- 集成 (Integration):Jersey 还提供可以轻松集成 Spring、Guice、Apache Abdera 的库。

- XStream是用来将对象序列化成XML(JSON)或反序列化为对象的一个Java类库。XStream在运行时使用Java反射机制对要进行序列化的对象树的结构进行探索,并不需要对对象做出修改。XStream可以序列化内部字段,包括private和final字段,并且支持非公开类以及内部类。默认情况下,XStream 不需要配置映射关系,对象和字段将映射为同名XML元素。但是当对象和字段名与XML中的元素名不同时,XStream支持指定别名。XStream支持以方法调用的方式,或是Java 标注的方式指定别名。XStream 在进行数据类型转换时,使用系统默认的类型转换器。同时,也支持用户自定义的类型转换器。

JAX-RS 是将在 Java EE 6中引入的一种新技术。JAX-RS 即 Java API for RESTful Web Services,是一个Java 编程语言的应用程序接口,支持按照表述性状态转移(REST)架构风格创建Web服务。JAX-RS使用了Java SE 5引入的Java标注来简化Web服务的客户端和服务端的开发和部署。包括:

- @Path,标注资源类或者方法的相对路径。

- @GET、@PUT、@POST、@DELETE,标注方法是HTTP请求的类型。

- @Produces,标注返回的MIME媒体类型。

- @Consumes,标注可接受请求的MIME媒体类型。

- @PathParam、@QueryParam、@HeaderParam、@CookieParam、@MatrixParam、

@FormParam,标注方法的参数来自HTTP请求的不同位置,例如,@PathParam

来自URL的路径,@QueryParam来自URL的查询参数,@HeaderParam来自

HTTP请求的头信息,@CookieParam来自HTTP请求的Cookie。

之前在分析Eureka Server端源码的时候,查看请求处理时可以看到很多上面这些注解的定义。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文