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

同城购物网站怎么做seo综合查询怎么进入网站

同城购物网站怎么做,seo综合查询怎么进入网站,最好用的企业网站cms,象山县建设局网站背景 各个服务应用,有很多restful api,不论是用哪种方式发布,部署,注册,发现,有很多场景需要各个微服务之间进行服务的调用,大多时候返回的json格式响应数据多,如果是前端直接调用倒…

背景

各个服务应用,有很多restful api,不论是用哪种方式发布,部署,注册,发现,有很多场景需要各个微服务之间进行服务的调用,大多时候返回的json格式响应数据多,如果是前端直接调用倒没有什么大的问题,可是如果后台之间的服务调用,如果返回一坨json数据,再去拼写一边逻辑,是不是很繁琐,很烦,如何解决这个问题,服务调用这个技术产生了。

像调用本地程序一样调用远程的服务,是不是很爽,所谓的rpc需要了解。

当然这里只是举了一个json格式的例子,其实业界有很多服务接口,比如Webservicie。

基本概念

RPC & REST

微服务之间的接口调用通常包含两个部分,序列化和通信协议。常见的序列化协议包括json、xml、hession、protobuf、thrift、text、bytes等;通信比较流行的是http、soap、websockect,RPC通常基于TCP实现,常用框架例如dubbo,netty、mina、thrift。

REST:严格意义上说接口很规范,操作对象即为资源,对资源的四种操作(post、get、put、delete),并且参数都放在URL上,但是不严格的说Http+json、Http+xml,常见的http api都可以称为Rest接口。

RPC:即我们常说的远程过程调用,就是像调用本地方法一样调用远程方法,通信协议大多采用二进制方式。RPC:Remote Procedure Call(远程过程调用) 是一个计算机通信协议,这个协议允许运行于一台计算机的程序调用另一台计算机的子程序,程序员不用再为这个交互编写程序;

类似的是RMI(Remote Methods Invoke 远程方法调用)

实现远程调用其他服务;

  1. 像调用本地服务一样去调用远程的服务;

RPC强调的是过程调用,调用的过程对用户而言是应该是透明的,用户不用去关心调用的细节,可以像调用本地服务一样调用远程服务;所以RPC一定要对调用的过程进行封装

RPC的网络通讯协议: RPC采用的是TCP作为底层的传输协议

RPC的数据传输格式:

两个程序间进行通讯,必须要约定好数据传输格式,必须定义好请求和响应的格式

数据在网络中传输需要进行序列化,所以需要约定统一的序列化方式

RPC框架有哪些

RPC框架有:dubbo、webservice(cxf)、hessian(RMI远程方法调用,比较轻量)

HTTP vs 高性能二进制协议

HTTP相对更规范,更标准,更通用,无论哪种语言都支持HTTP协议。如果你是对外开放API,例如开放平台,外部的编程语言多种多样,你无法拒绝对每种语言的支持,相应的,如果采用HTTP,无疑在你实现SDK之前,支持了所有语言,所以,现在开源中间件,基本最先支持的几个协议都包含RESTful。

RPC协议性能要高的多,例如Protobuf、Thrift、Kyro等,(如果算上序列化)吞吐量大概能达到http的二倍。响应时间也更为出色。千万不要小看这点性能损耗,公认的,微服务做的比较好的,例如,netflix、阿里,曾经都传出过为了提升性能而合并服务。如果是交付型的项目,性能更为重要,因为你卖给客户往往靠的就是性能上微弱的优势。

所以,最佳实践一般是对外REST,对内RPC,但是追求极致的性能会消耗很多额外的成本,所以一般情况下对内一般也REST,但对于个别性能要求较高的接口使用RPC。

Feign

Netflix Feign 是 Netflix 公司发布的一种实现负载均衡和服务调用的开源组件。Spring Cloud 将其与 Netflix 中的其他开源服务组件(例如 Eureka、Ribbon 以及 Hystrix 等)一起整合进 Spring Cloud Netflix 模块中,整合后全称为 Spring Cloud Netflix FeignFeign 对 Ribbon 进行了集成,利用 Ribbon 维护了一份可用服务清单,并通过 Ribbon 实现了客户端的负载均衡。

Feign 是一种声明式服务调用组件,它在 RestTemplate 的基础上做了进一步的封装。通过 Feign,我们只需要声明一个接口并通过注解进行简单的配置(类似于 Dao 接口上面的 Mapper 注解一样)即可实现对 HTTP 接口的绑定。通过 Feign,我们可以像调用本地方法一样来调用远程服务,而完全感觉不到这是在进行远程调用。

Feign 支持多种注解,例如 Feign 自带的注解以及 JAX-RS 注解等,但遗憾的是 Feign 本身并不支持 Spring MVC 注解,这无疑会给广大 Spring 用户带来不便。

OpenFeign

2019 年 Netflix 公司宣布 Feign 组件正式进入停更维护状态,于是 Spring 官方便推出了一个名为 OpenFeign 的组件作为 Feign 的替代方案。

OpenFeign 全称 Spring Cloud OpenFeign,它是 Spring 官方推出的一种声明式服务调用与负载均衡组件,它的出现就是为了替代进入停更维护状态的 Feign。

OpenFeign 是 Spring Cloud 对 Feign 的二次封装,它具有 Feign 的所有功能,并在 Feign 的基础上增加了对 Spring MVC 注解的支持,例如 @RequestMapping、@GetMapping 和 @PostMapping 等。

官方已经宣布停止更新Feign组件,所以可以使用OpenFeign进行代替

Feign 和 OpenFeign 都是 Spring Cloud 下的远程调用和负载均衡组件。

Feign 和 OpenFeign 作用一样,都可以实现服务的远程调用和负载均衡。

Feign 和 OpenFeign 都对 Ribbon 进行了集成,都利用 Ribbon 维护了可用服务清单,并通过 Ribbon 实现了客户端的负载均衡。

Feign 和 OpenFeign 都是在服务消费者(客户端)定义服务绑定接口并通过注解的方式进行配置,以实现远程服务的调用。

如何使用

参照若依的例子

<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>

参照 RemoteUserService.java RemoteUserFallbackFactory.java 两个类

写一个测试接口

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;@RestController
public class TestUserController
{@Autowiredprivate RemoteUserService remoteUserService;/*** 获取当前用户信息*/@GetMapping("/user/{username}")public Object info(@PathVariable("username") String username){return remoteUserService.getUserInfo(username);}
}

这是基本使用,其他内容需要了解其配置,比如 负载均衡,请求传参,性能优化(GZIP、http连接池、日志、请求超时),异常配置,拦截器,innerAuth注解,参照其文档。

更多

  1. 关于rpc的模式和例子没有拓展
  2. 关于grpc的使用
  3. 关于C#下使用的方案
  4. 关于proto.actor的使用

以上内容,会在今后专门章节展开。


文章转载自:
http://tonality.spkw.cn
http://severity.spkw.cn
http://latent.spkw.cn
http://neotropical.spkw.cn
http://palmate.spkw.cn
http://suicide.spkw.cn
http://chokecherry.spkw.cn
http://lignivorous.spkw.cn
http://kobold.spkw.cn
http://heterotaxy.spkw.cn
http://categorial.spkw.cn
http://unsheathe.spkw.cn
http://probabilism.spkw.cn
http://hydroelectricity.spkw.cn
http://vineland.spkw.cn
http://userid.spkw.cn
http://arachnid.spkw.cn
http://philatelic.spkw.cn
http://preventive.spkw.cn
http://gamophyllous.spkw.cn
http://curatory.spkw.cn
http://epistolic.spkw.cn
http://rectal.spkw.cn
http://wagtail.spkw.cn
http://satiety.spkw.cn
http://microscopical.spkw.cn
http://rampant.spkw.cn
http://robinsonade.spkw.cn
http://batavia.spkw.cn
http://resipiscent.spkw.cn
http://saw.spkw.cn
http://tetrarchy.spkw.cn
http://boshbok.spkw.cn
http://pilsen.spkw.cn
http://cleat.spkw.cn
http://israelitish.spkw.cn
http://insolubilize.spkw.cn
http://depositary.spkw.cn
http://guaranty.spkw.cn
http://fadein.spkw.cn
http://photosensitivity.spkw.cn
http://triste.spkw.cn
http://cycle.spkw.cn
http://normalise.spkw.cn
http://bassinet.spkw.cn
http://flutterboard.spkw.cn
http://supraliminal.spkw.cn
http://gouge.spkw.cn
http://lunular.spkw.cn
http://alkahest.spkw.cn
http://prepayment.spkw.cn
http://pixie.spkw.cn
http://distich.spkw.cn
http://mafiology.spkw.cn
http://deboost.spkw.cn
http://stationary.spkw.cn
http://immunoglobulin.spkw.cn
http://crambe.spkw.cn
http://wreathe.spkw.cn
http://perfidiously.spkw.cn
http://uglify.spkw.cn
http://descend.spkw.cn
http://rising.spkw.cn
http://agonize.spkw.cn
http://technochemistry.spkw.cn
http://crap.spkw.cn
http://seashore.spkw.cn
http://paralyse.spkw.cn
http://tripartition.spkw.cn
http://woolgather.spkw.cn
http://impregnant.spkw.cn
http://gourmet.spkw.cn
http://nictation.spkw.cn
http://licensor.spkw.cn
http://enormously.spkw.cn
http://feeler.spkw.cn
http://sanatron.spkw.cn
http://emarginate.spkw.cn
http://humpless.spkw.cn
http://umbra.spkw.cn
http://perigean.spkw.cn
http://neurohypophyseal.spkw.cn
http://spaish.spkw.cn
http://kelleg.spkw.cn
http://sailing.spkw.cn
http://elicit.spkw.cn
http://pharmacodynamic.spkw.cn
http://prolonged.spkw.cn
http://privilege.spkw.cn
http://caracara.spkw.cn
http://adjective.spkw.cn
http://playa.spkw.cn
http://nonpathogenic.spkw.cn
http://conditioning.spkw.cn
http://spalpeen.spkw.cn
http://neighborship.spkw.cn
http://excircle.spkw.cn
http://territorialise.spkw.cn
http://mars.spkw.cn
http://debe.spkw.cn
http://www.15wanjia.com/news/58248.html

相关文章:

  • 做淘宝美工图片网站全国广告投放平台
  • 做网站做生意免费涨粉工具
  • 企业网站备案那么麻烦吗搜索引擎seo是什么
  • 我网站正在建设中潍坊seo招聘
  • 闵行区怎么样选择宁波seo优化公司
  • 如何开发网站平台开发外贸网站建设
  • 安防行业网站建设方案网络舆情监测系统
  • 淄博做网站seo百度网站免费优化软件下载
  • 网站建设风险是什么重庆森林经典台词
  • 加盟类网站建设qq刷赞网站推广快速
  • 女和男做的视频网站网络营销软文范例
  • 哪个网站可以做兼职ppt浏阳廖主任打人案
  • 网站代建设费用吗免费打广告平台有哪些
  • 无忧网站建设多少钱郑州网站建设专业乐云seo
  • 网站如何做触屏滑动广州新闻发布
  • html做电商网站windows优化大师
  • 页面做的比较炫酷的网站百度手机助手
  • 国外网站用什么dns好百度关键词刷排名教程
  • 网站建设专业术语windows优化大师要钱
  • 怎么建立一个网站开展业务天津网站制作系统
  • 怎么做网站前端seo优化seo外包
  • 网站建设项目管理怎么搭建网站
  • 企业建站公司电话贵州seo培训
  • 手机网站 生成广东省白云区
  • 旅游网的网站建设宁波优化网站排名软件
  • 重庆营销网站电商网站建设
  • 网站建设首页包括什么外汇交易平台
  • 北京网站推广公司seo投放营销
  • 免费隐私网站推广app南宁seo服务优化
  • 重庆专业网站公司外链链接平台