微服务跨语言调用(摘选)
1、dubbo 协议主要支持 java 间的相互调用,适配老接口;json-rpc 协议主要支持异构语言的调用。 定制协议的跨语言支持 微服务框架所谓的协议(protocol)可以简单理解为:报文格式和序列化方案。
2、提供一个普通的controller接口即可,不需要加openfeign依赖、不需要在启动类加feign相关注解。贴一下yml配置:关注server.port和spring.application.name。
3、通过在 microk8s上部署授权服务 ,我们基本上走通了微服务通过配置中心服务(config-central)加载配置并启自己的流程。在microk8s上部署微服务,现在仅剩下一个需要处理的问题,微服务之间通的互相调用。
4、记得先前在分析 《怎样在输出日志中加入traceId 进行链路追踪》 和 《如何保证各个微服务之间调用的安全性?***》 对个服务之间RPC调用请求线程变量传递问题。
Dubbo中的那些坑(四)HTTP调用
势必会导致stable环境的不稳定(stable环境的机制是stable环境只能进不能出,就是不能调用外部其他子环境的服务)?所以B1不能发布服务到注册中心,dubbo也提供了相关的配置属性来支持这一点。
也要启动一个 RemotingServer。为了适配各种 HTTP 服务器,例如,Tomcat、Jetty 等,Dubbo 在 Transporter 层抽象出了一个 HttpServer 的接口。
结果调用微服务接口时传递此参数,接口直接抛出404,纳尼, 为什么会是404? 经过查阅资料发现,dubbo参数可能太过复杂,出现了多增嵌套,导致参数解析异常,所以出现了404。
常见的远程调用方式有两种 (1)RPC远程过程调用,类似的还有RML。自定义数据式,基于原生TCP通信,速度快,效率高。
通常我们想调用别人的dubbo服务时,我们需要在项目中引入对应的jar包。而泛化调用的作用是,我们无需依赖相关jar包,也能调用到该服务。这个特性一般使用在网关类项目中,在业务开发中基本不会使用。
主流的RPC框架有哪些?
Thrift 是由 Facebook 开源的一个 RPC 框架,现在已经挂在 apache.org 下了。
Spring Structs2 Hibernate 这是主流的三大框架 s2h , Spring Structs2 ibatis 这是 ssi 这是当前主流的框架整合 。
Dubbo和Hadoop基本上就是两个领域的产品,没有太大的可比性。唯一能够比较的是Dubbo和Hadoop内部使用的RPC组件:Avro。Avro多用于Hadoop内部,并没有以独立的RPC框架进行推广和运作,因此你很少看到直接使用他的地方。
HTTP/1 协议规定的 HTTP 请求方法有 OPTIONS、GET、HEAD、POST、PUT、DELETE、TRACE、CONNECT 这几种。其中,POST 一般用来向服务端提交数据,本文主要讨论 POST 提交数据的几种方式。
简单点,HTTP是协议,RPC是概念!实现RPC可以基于HTTP协议(Feign),TCP协议(Netty),RMI协议(Soap),WebService(XML—RPC)框架。
先打个底,目前流行的RPC框架大多都是多管闲事,不单单只是RPC框架,你可以看看Dubbo和SpringCloud中除了RPC还有什么骚功能。