• 关于

    平台调用服务是什么

    的搜索结果

问题

调用唯品会开放平台API响应速度变慢

这两天调用唯品会开放平台API响应速度变慢耗时在0.8到2秒之间,之前响应速度都很快;但调用淘宝开放平台的电子面单API或直接调用快递公司提供的服务响应速度都很快;把相同的部署包放到公司自己内部服务...
1692011328076785 2019-12-01 19:02:18 419 浏览量 回答数 1

回答

Web Service主要通过HTTP和SOAP协议使数据在Web上传输,SOAP通过HTTP调用业务对象执行远程功能调用,客户端能够用例SOAP和HTTP通过Web调用的方法来调用远程对象。 从你的描述看,你所实现的只是用一个客户端对指定URL的地址的访问,然后post指定格式的数据,非严格意义Web Service 或者说就是就是普通的请求响应!###### 引用来自“gengu”的答案 引用来自“lcyu”的答案 你这也是一种WebService的思路吧,但不是标准的。标准的WebService,返回的数据是所有的开发语言、所有的平台通用的。但你的呢?返回的数据需要怎样解析,只有你自己知道。 恩  那么我使用CXF来搭建一个服务,我需要调用的时候,通常的例子是使用wsdl2java 将wsdl文件转化成java,然后在把java文件拷贝到client端然后才能调用,这样不是多了一个步骤么?并且如果我的client端不是java或者没有CXF的包,那么我的服务端不是就不能使用服务了么? 我想知道的是Web Services这样做最大的意义在什么地方?能不能给个合适点的例子帮助我理解一下? Webserive 这样做没有意义。 用json就很好 -- 简单才是硬道理。 ###### 这么多人查看就是没有一个回答一下的啊? 是问题太傻还是??###### 你这也是一种WebService的思路吧,但不是标准的。标准的WebService,返回的数据是所有的开发语言、所有的平台通用的。但你的呢?返回的数据需要怎样解析,只有你自己知道。###### 引用来自“lcyu”的答案 你这也是一种WebService的思路吧,但不是标准的。标准的WebService,返回的数据是所有的开发语言、所有的平台通用的。但你的呢?返回的数据需要怎样解析,只有你自己知道。 恩  那么我使用CXF来搭建一个服务,我需要调用的时候,通常的例子是使用wsdl2java 将wsdl文件转化成java,然后在把java文件拷贝到client端然后才能调用,这样不是多了一个步骤么?并且如果我的client端不是java或者没有CXF的包,那么我的服务端不是就不能使用服务了么? 我想知道的是Web Services这样做最大的意义在什么地方?能不能给个合适点的例子帮助我理解一下? ###### 如果调用方是自己人,就用json。否则用webservice,省去很多麻烦######谢谢###### webservice 和你客户端用什么 没有任何关系 ,你是C++ 你就用C++ 的工具 生产对应的客户端  通过就是统一的 WSDL 
爱吃鱼的程序员 2020-06-05 11:57:50 0 浏览量 回答数 0

问题

【精品问答】dubbo常见技术问题集

Dubbo是一款高性能、轻量级的开源Java RPC框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。 下面给大家带来了50个dubbo...
游客pklijor6gytpx 2019-12-01 21:54:03 31 浏览量 回答数 1

回答

分别回答你的问题:webservice是什么?如果之前了解过RPC,那么webservice算是RCP下的一种实现机制,通过http协议进行交互,采用xml进行数据传输,以web服务的方式呈现出来,提供给客户端调用(可以跨语言调用)在大型项目中有什么用?在大型项目中不一定会使用webservice, webservice可以作为分布式应用的一种实现手段,也可以作为公开接口给提供给别人调用,例:网上的一些公开的天气预报、股票行情等接口。关于学习资料如果需要java平台webservice使用、学习相关的视频,可以分享给你。
a123456678 2019-12-02 02:13:36 0 浏览量 回答数 0

问题

"调用蚂蚁金服开放平台错误 << error:0D0680A8:asn1 encoding rout

调试支付宝小程序云服务时,提示"调用蚂蚁金服开放平台错误 << error:0D0680A8:asn1 encoding routines:asn1_check_tlen:wrong tag" 哪位...
1388mao 2019-12-01 21:50:30 226 浏览量 回答数 1

问题

利用云平台,如何加速服务全球访问速度

一般的一个服务包含静态资源和API服务器,而它们通常都是单点部署在某一地区,如静态资源使用阿里云上海区OSS(PS:实践发现:即使使用CDN对OSS加速,在国外访问资源,速度也会特别慢),API服务器使用上海区的ECS,当服务开始对外访问时...
tss 2019-12-01 20:13:15 1662 浏览量 回答数 1

问题

【精品问答】工业大脑开发平台

工业大脑开发平台 什么是工业大脑开放平台 为什么选择阿里云工业大脑? 工业大脑开放平台功能原理? 如何使用工业大脑? 工业大脑开放平台的优势是什么? 阿里云工业大脑开放平台采用什么样...
问问小秘 2020-04-07 17:49:46 25 浏览量 回答数 1

问题

基于Java容器的多应用部署技术实践【精品问答集锦】

本期请来了阿里中间件技术专家魏鹏 (豫楚)直播分享基于Java容器的多应用部署技术实践直播简介随着业务的发展,机器的数量和系统复杂性不断提升,较之简单系统的开发部署,大规模分布式系统将会面对以下新问题:性能问题,系统之间通过远程调用来进行数...
管理贝贝 2019-12-01 20:28:27 52422 浏览量 回答数 55

问题

钉钉api服务端发送普通会话消息出现 forbiddenUserId

调用接口是钉钉开放平台里面的服务端普通会话消息接口 返回值是这个: {"forbiddenUserId": "****(具体id就不写了)****",     &...
梦行 2019-12-01 21:26:44 6012 浏览量 回答数 5

回答

• 快速推送:操作审计收集用户使用阿里云服务的操作记录(包括用户通过控制台触发的操作、调用阿里云API进行的操作以及云服务通过服务角色进行的操作等)。操作记录会在10分钟内被操作审计追踪并记录。 • 详细记录:操作审计会详细记录用户操作上下文信息,并可以通过操作审计控制台或调用API来查看最近90天的操作记录。例如,您可以获知是谁在什么时刻、从哪个源IP发起对哪个对象的什么操作?该操作来自于API还是控制台?操作结果是成功还是失败?失败原因是什么? • 稳定可靠:操作审计支持将操作记录投递到阿里云对象存储(OSS)或日志服务(Log Service)等存储产品中,这些存储产品具有极高的可用性,并且可以通过加密和权限控制,保证审计数据安全。当投递发生时,操作审计还将向您发送通知。 • 定制跟踪:您最多可以在每个区域创建5个跟踪,分别追踪不同的事件类型、区域范围,并可分别投递到不同的存储空间,以满足您为不同职责员工备份不同范围行为数据的要求。 说明 应避免同一个区域的相同事件类型重复投递到同一个地址。 • 平台运维透明:操作审计可以近实时地记录并存储阿里云平台的操作日志,基于日志服务提供查询、分析、告警、报表等下游计算能力,为用户打开平台运维的黑盒,满足您对平台操作的分析和审计需求。
LiuWH 2020-03-26 07:38:56 0 浏览量 回答数 0

回答

为什么发布消息报错? 服务端订阅客户端只能用于订阅物联网平台推送的消息,不能发布消息。如果您用HTTP/2 SDK发布消息,会有如下报错信息: 6095 [nioEventLoopGroup-2-1] ERROR com.aliyun.openservices.iot.api.message.impl.MessageClientImpl - failed to publish message 0, error: failed to publish, code: 400, content: Forbidden. 6095 [nioEventLoopGroup-2-1] INFO com.aliyun.openservices.iot.api.message.impl.MessageClientImpl - give up publishing, message id: 0 因为配置HTTP/2 SDK时,使用Profile.getAccessKeyProfile 配置连接,表示SDK以订阅者身份接入物联网平台,只能订阅消息,不能发布消息,且subscribe、unsubscribe和publish 三个接口无法使用。 为什么服务端没有接收到消息? 您的服务端没有接收到已订阅的消息,原因如下: 该消息是您通过控制台或API下发给设备的消息。服务端订阅仅支持设备端上报云端的消息,不支持订阅下行消息。有多个消息消费端。如果同时有多个消费端,物联网平台会将消息随机推送到其中一个消费端,并不是每个消费端都会推送。服务端订阅回调中,存在耗时业务。解决方法:配置HTTP/2 SDK时,需配置收到消息后尽快return CommitSuccess;并且,配置另起线程处理业务。没有在物联网平台控制台配置服务端订阅。解决方法:请登录物联网平台控制台,在产品的服务端订阅页签下确认。如果没有设置订阅相关消息,请及时设置。 消息接收慢的原因是什么? 原因:服务端订阅回调中,可能存在耗时业务。 解决方法:配置HTTP/2 SDK时,需配置收到消息后尽快return CommitSuccess;并且,配置另起线程处理业务。 如何进行消息过滤? 物联网平台会将已订阅的消息全量推送到您的消费端,您需调用setMessageListener进行本地消息过滤,处理指定Topic的消息。具体方法如下: setMessageListener(String topic, MessageCallback messageCallback) 匹配指定Topic的消息到达时,则会调用指定的回调messageCallback处理;不匹配指定Topic的消息到达时,则会调用您在connect中指定的回调处理。 为什么测试环境会收到线上产品的消息? 服务端订阅是账号维度的消息推送,无法从产品或设备维度来区分消息。如果不希望在测试环境收到线上产品的消息,建议如下两种处理方式: 使用使用消息服务订阅设备消息。正式环境和测试环境使用两个阿里云账号。 HTTP/2 SDK限制 服务端订阅仅支持 Java 和 .NET 两种语言的SDK,并且两种语言的SDK有以下限制: Java SDK仅支持JDK 8环境。.NET 不支持 .NET Core。 服务端订阅如何收费? 服务端订阅按照消息数量计费。具体计费方法,请参见计费方法
剑曼红尘 2020-03-05 17:17:53 0 浏览量 回答数 0

问题

【精品问答】OpenAPI Explorer

开放平台涵盖OpenAPI、企业IT治理、企业工作台三大产品体系,作为阿里云OpenAPI生产、发布、管理、使用的统一平台,开放平台已经对外开放了10000+款API,覆盖195款云产品&#...
问问小秘 2020-04-24 17:34:43 9 浏览量 回答数 1

问题

网站平台需要在交易系统发起一笔交易后,进行新交易的提示,就像微博好友圈的新微博提示。采用什么办法来解决这个需求呢

网站平台和交易系统是两套系统,两套系统之间是通过dubbo互相调用服务的。网站平台就是我们公司的商户使用的平台。现在有一个新需求就是:商户的用户每发起一笔交易,在商户平台都要进行一条消息的推送,显示“您有一笔新交易,请刷新页面”这样的提醒。...
a123456678 2019-12-01 20:26:19 1110 浏览量 回答数 2

问题

调用短信服务平台遇到的问题

我在本地测试几次之后,阿里云抛出错误InvalidSendSmsFrequency limit reaches.这是什么意思啊...
阿斯顿阿萨 2019-12-01 20:02:08 1040 浏览量 回答数 1

问题

企业服务器后端调用Iot平台能力

我司有无人机和无人车等设备接入自己的服务器后端,现想由我方后端与阿里物联网平台后端通信调用其能力,请问能够实现吗?解决方案是什么?...
zxxysy 2019-12-01 19:16:13 300 浏览量 回答数 1

问题

【精品问答】机器翻译

快速入门 机器翻译的调用方式是哪些? https://developer.aliyun.com/ask/281849 机器翻译的签名机制是哪些? https://developer.aliyun.com/a...
montos 2020-04-08 17:28:31 10 浏览量 回答数 1

回答

微服务 (MicroServices) 架构是当前互联网业界的一个技术热点,圈里有不少同行朋友当前有计划在各自公司开展微服务化体系建设,他们都有相同的疑问:一个微服务架构有哪些技术关注点 (technical concerns)?需要哪些基础框架或组件来支持微服务架构?这些框架或组件该如何选型?笔者之前在两家大型互联网公司参与和主导过大型服务化体系和框架建设,同时在这块也投入了很多时间去学习和研究,有一些经验和学习心得,可以和大家一起分享。 服务注册、发现、负载均衡和健康检查和单块 (Monolithic) 架构不同,微服务架构是由一系列职责单一的细粒度服务构成的分布式网状结构,服务之间通过轻量机制进行通信,这时候必然引入一个服务注册发现问题,也就是说服务提供方要注册通告服务地址,服务的调用方要能发现目标服务,同时服务提供方一般以集群方式提供服务,也就引入了负载均衡和健康检查问题。根据负载均衡 LB 所在位置的不同,目前主要的服务注册、发现和负载均衡方案有三种: 第一种是集中式 LB 方案,如下图 Fig 1,在服务消费者和服务提供者之间有一个独立的 LB,LB 通常是专门的硬件设备如 F5,或者基于软件如 LVS,HAproxy 等实现。LB 上有所有服务的地址映射表,通常由运维配置注册,当服务消费方调用某个目标服务时,它向 LB 发起请求,由 LB 以某种策略(比如 Round-Robin)做负载均衡后将请求转发到目标服务。LB 一般具备健康检查能力,能自动摘除不健康的服务实例。服务消费方如何发现 LB 呢?通常的做法是通过 DNS,运维人员为服务配置一个 DNS 域名,这个域名指向 LB。 Fig 1, 集中式 LB 方案 集中式 LB 方案实现简单,在 LB 上也容易做集中式的访问控制,这一方案目前还是业界主流。集中式 LB 的主要问题是单点问题,所有服务调用流量都经过 LB,当服务数量和调用量大的时候,LB 容易成为瓶颈,且一旦 LB 发生故障对整个系统的影响是灾难性的。另外,LB 在服务消费方和服务提供方之间增加了一跳 (hop),有一定性能开销。 第二种是进程内 LB 方案,针对集中式 LB 的不足,进程内 LB 方案将 LB 的功能以库的形式集成到服务消费方进程里头,该方案也被称为软负载 (Soft Load Balancing) 或者客户端负载方案,下图 Fig 2 展示了这种方案的工作原理。这一方案需要一个服务注册表 (Service Registry) 配合支持服务自注册和自发现,服务提供方启动时,首先将服务地址注册到服务注册表(同时定期报心跳到服务注册表以表明服务的存活状态,相当于健康检查),服务消费方要访问某个服务时,它通过内置的 LB 组件向服务注册表查询(同时缓存并定期刷新)目标服务地址列表,然后以某种负载均衡策略选择一个目标服务地址,最后向目标服务发起请求。这一方案对服务注册表的可用性 (Availability) 要求很高,一般采用能满足高可用分布式一致的组件(例如 Zookeeper, Consul, Etcd 等)来实现。 Fig 2, 进程内 LB 方案 进程内 LB 方案是一种分布式方案,LB 和服务发现能力被分散到每一个服务消费者的进程内部,同时服务消费方和服务提供方之间是直接调用,没有额外开销,性能比较好。但是,该方案以客户库 (Client Library) 的方式集成到服务调用方进程里头,如果企业内有多种不同的语言栈,就要配合开发多种不同的客户端,有一定的研发和维护成本。另外,一旦客户端跟随服务调用方发布到生产环境中,后续如果要对客户库进行升级,势必要求服务调用方修改代码并重新发布,所以该方案的升级推广有不小的阻力。 进程内 LB 的案例是 Netflix 的开源服务框架,对应的组件分别是:Eureka 服务注册表,Karyon 服务端框架支持服务自注册和健康检查,Ribbon 客户端框架支持服务自发现和软路由。另外,阿里开源的服务框架 Dubbo 也是采用类似机制。 第三种是主机独立 LB 进程方案,该方案是针对第二种方案的不足而提出的一种折中方案,原理和第二种方案基本类似,不同之处是,他将 LB 和服务发现功能从进程内移出来,变成主机上的一个独立进程,主机上的一个或者多个服务要访问目标服务时,他们都通过同一主机上的独立 LB 进程做服务发现和负载均衡,见下图 Fig 3。 Fig 3 主机独立 LB 进程方案 该方案也是一种分布式方案,没有单点问题,一个 LB 进程挂了只影响该主机上的服务调用方,服务调用方和 LB 之间是进程内调用,性能好,同时,该方案还简化了服务调用方,不需要为不同语言开发客户库,LB 的升级不需要服务调用方改代码。该方案的不足是部署较复杂,环节多,出错调试排查问题不方便。 该方案的典型案例是 Airbnb 的 SmartStack 服务发现框架,对应组件分别是:Zookeeper 作为服务注册表,Nerve 独立进程负责服务注册和健康检查,Synapse/HAproxy 独立进程负责服务发现和负载均衡。Google 最新推出的基于容器的 PaaS 平台 Kubernetes,其内部服务发现采用类似的机制。 服务前端路由微服务除了内部相互之间调用和通信之外,最终要以某种方式暴露出去,才能让外界系统(例如客户的浏览器、移动设备等等)访问到,这就涉及服务的前端路由,对应的组件是服务网关 (Service Gateway),见图 Fig 4,网关是连接企业内部和外部系统的一道门,有如下关键作用: 服务反向路由,网关要负责将外部请求反向路由到内部具体的微服务,这样虽然企业内部是复杂的分布式微服务结构,但是外部系统从网关上看到的就像是一个统一的完整服务,网关屏蔽了后台服务的复杂性,同时也屏蔽了后台服务的升级和变化。安全认证和防爬虫,所有外部请求必须经过网关,网关可以集中对访问进行安全控制,比如用户认证和授权,同时还可以分析访问模式实现防爬虫功能,网关是连接企业内外系统的安全之门。限流和容错,在流量高峰期,网关可以限制流量,保护后台系统不被大流量冲垮,在内部系统出现故障时,网关可以集中做容错,保持外部良好的用户体验。监控,网关可以集中监控访问量,调用延迟,错误计数和访问模式,为后端的性能优化或者扩容提供数据支持。日志,网关可以收集所有的访问日志,进入后台系统做进一步分析。 Fig 4, 服务网关 除以上基本能力外,网关还可以实现线上引流,线上压测,线上调试 (Surgical debugging),金丝雀测试 (Canary Testing),数据中心双活 (Active-Active HA) 等高级功能。 网关通常工作在 7 层,有一定的计算逻辑,一般以集群方式部署,前置 LB 进行负载均衡。 开源的网关组件有 Netflix 的 Zuul,特点是动态可热部署的过滤器 (filter) 机制,其它如 HAproxy,Nginx 等都可以扩展作为网关使用。 在介绍过服务注册表和网关等组件之后,我们可以通过一个简化的微服务架构图 (Fig 5) 来更加直观地展示整个微服务体系内的服务注册发现和路由机制,该图假定采用进程内 LB 服务发现和负载均衡机制。在下图 Fig 5 的微服务架构中,服务简化为两层,后端通用服务(也称中间层服务 Middle Tier Service)和前端服务(也称边缘服务 Edge Service,前端服务的作用是对后端服务做必要的聚合和裁剪后暴露给外部不同的设备,如 PC,Pad 或者 Phone)。后端服务启动时会将地址信息注册到服务注册表,前端服务通过查询服务注册表就可以发现然后调用后端服务;前端服务启动时也会将地址信息注册到服务注册表,这样网关通过查询服务注册表就可以将请求路由到目标前端服务,这样整个微服务体系的服务自注册自发现和软路由就通过服务注册表和网关串联起来了。如果以面向对象设计模式的视角来看,网关类似 Proxy 代理或者 Façade 门面模式,而服务注册表和服务自注册自发现类似 IoC 依赖注入模式,微服务可以理解为基于网关代理和注册表 IoC 构建的分布式系统。 Fig 5, 简化的微服务架构图 服务容错当企业微服务化以后,服务之间会有错综复杂的依赖关系,例如,一个前端请求一般会依赖于多个后端服务,技术上称为 1 -> N 扇出 (见图 Fig 6)。在实际生产环境中,服务往往不是百分百可靠,服务可能会出错或者产生延迟,如果一个应用不能对其依赖的故障进行容错和隔离,那么该应用本身就处在被拖垮的风险中。在一个高流量的网站中,某个单一后端一旦发生延迟,可能在数秒内导致所有应用资源 (线程,队列等) 被耗尽,造成所谓的雪崩效应 (Cascading Failure,见图 Fig 7),严重时可致整个网站瘫痪。 Fig 6, 服务依赖 Fig 7, 高峰期单个服务延迟致雪崩效应 经过多年的探索和实践,业界在分布式服务容错一块探索出了一套有效的容错模式和最佳实践,主要包括: Fig 8, 弹性电路保护状态图 电路熔断器模式 (Circuit Breaker Patten), 该模式的原理类似于家里的电路熔断器,如果家里的电路发生短路,熔断器能够主动熔断电路,以避免灾难性损失。在分布式系统中应用电路熔断器模式后,当目标服务慢或者大量超时,调用方能够主动熔断,以防止服务被进一步拖垮;如果情况又好转了,电路又能自动恢复,这就是所谓的弹性容错,系统有自恢复能力。下图 Fig 8 是一个典型的具备弹性恢复能力的电路保护器状态图,正常状态下,电路处于关闭状态 (Closed),如果调用持续出错或者超时,电路被打开进入熔断状态 (Open),后续一段时间内的所有调用都会被拒绝 (Fail Fast),一段时间以后,保护器会尝试进入半熔断状态 (Half-Open),允许少量请求进来尝试,如果调用仍然失败,则回到熔断状态,如果调用成功,则回到电路闭合状态。舱壁隔离模式 (Bulkhead Isolation Pattern),顾名思义,该模式像舱壁一样对资源或失败单元进行隔离,如果一个船舱破了进水,只损失一个船舱,其它船舱可以不受影响 。线程隔离 (Thread Isolation) 就是舱壁隔离模式的一个例子,假定一个应用程序 A 调用了 Svc1/Svc2/Svc3 三个服务,且部署 A 的容器一共有 120 个工作线程,采用线程隔离机制,可以给对 Svc1/Svc2/Svc3 的调用各分配 40 个线程,当 Svc2 慢了,给 Svc2 分配的 40 个线程因慢而阻塞并最终耗尽,线程隔离可以保证给 Svc1/Svc3 分配的 80 个线程可以不受影响,如果没有这种隔离机制,当 Svc2 慢的时候,120 个工作线程会很快全部被对 Svc2 的调用吃光,整个应用程序会全部慢下来。限流 (Rate Limiting/Load Shedder),服务总有容量限制,没有限流机制的服务很容易在突发流量 (秒杀,双十一) 时被冲垮。限流通常指对服务限定并发访问量,比如单位时间只允许 100 个并发调用,对超过这个限制的请求要拒绝并回退。回退 (fallback),在熔断或者限流发生的时候,应用程序的后续处理逻辑是什么?回退是系统的弹性恢复能力,常见的处理策略有,直接抛出异常,也称快速失败 (Fail Fast),也可以返回空值或缺省值,还可以返回备份数据,如果主服务熔断了,可以从备份服务获取数据。Netflix 将上述容错模式和最佳实践集成到一个称为 Hystrix 的开源组件中,凡是需要容错的依赖点 (服务,缓存,数据库访问等),开发人员只需要将调用封装在 Hystrix Command 里头,则相关调用就自动置于 Hystrix 的弹性容错保护之下。Hystrix 组件已经在 Netflix 经过多年运维验证,是 Netflix 微服务平台稳定性和弹性的基石,正逐渐被社区接受为标准容错组件。 服务框架微服务化以后,为了让业务开发人员专注于业务逻辑实现,避免冗余和重复劳动,规范研发提升效率,必然要将一些公共关注点推到框架层面。服务框架 (Fig 9) 主要封装公共关注点逻辑,包括: Fig 9, 服务框架 服务注册、发现、负载均衡和健康检查,假定采用进程内 LB 方案,那么服务自注册一般统一做在服务器端框架中,健康检查逻辑由具体业务服务定制,框架层提供调用健康检查逻辑的机制,服务发现和负载均衡则集成在服务客户端框架中。监控日志,框架一方面要记录重要的框架层日志、metrics 和调用链数据,还要将日志、metrics 等接口暴露出来,让业务层能根据需要记录业务日志数据。在运行环境中,所有日志数据一般集中落地到企业后台日志系统,做进一步分析和处理。REST/RPC 和序列化,框架层要支持将业务逻辑以 HTTP/REST 或者 RPC 方式暴露出来,HTTP/REST 是当前主流 API 暴露方式,在性能要求高的场合则可采用 Binary/RPC 方式。针对当前多样化的设备类型 (浏览器、普通 PC、无线设备等),框架层要支持可定制的序列化机制,例如,对浏览器,框架支持输出 Ajax 友好的 JSON 消息格式,而对无线设备上的 Native App,框架支持输出性能高的 Binary 消息格式。配置,除了支持普通配置文件方式的配置,框架层还可集成动态运行时配置,能够在运行时针对不同环境动态调整服务的参数和配置。限流和容错,框架集成限流容错组件,能够在运行时自动限流和容错,保护服务,如果进一步和动态配置相结合,还可以实现动态限流和熔断。管理接口,框架集成管理接口,一方面可以在线查看框架和服务内部状态,同时还可以动态调整内部状态,对调试、监控和管理能提供快速反馈。Spring Boot 微框架的 Actuator 模块就是一个强大的管理接口。统一错误处理,对于框架层和服务的内部异常,如果框架层能够统一处理并记录日志,对服务监控和快速问题定位有很大帮助。安全,安全和访问控制逻辑可以在框架层统一进行封装,可做成插件形式,具体业务服务根据需要加载相关安全插件。文档自动生成,文档的书写和同步一直是一个痛点,框架层如果能支持文档的自动生成和同步,会给使用 API 的开发和测试人员带来极大便利。Swagger 是一种流行 Restful API 的文档方案。当前业界比较成熟的微服务框架有 Netflix 的 Karyon/Ribbon,Spring 的 Spring Boot/Cloud,阿里的 Dubbo 等。 运行期配置管理服务一般有很多依赖配置,例如访问数据库有连接字符串配置,连接池大小和连接超时配置,这些配置在不同环境 (开发 / 测试 / 生产) 一般不同,比如生产环境需要配连接池,而开发测试环境可能不配,另外有些参数配置在运行期可能还要动态调整,例如,运行时根据流量状况动态调整限流和熔断阀值。目前比较常见的做法是搭建一个运行时配置中心支持微服务的动态配置,简化架构如下图 (Fig 10): Fig 10, 服务配置中心 动态配置存放在集中的配置服务器上,用户通过管理界面配置和调整服务配置,具体服务通过定期拉 (Scheduled Pull) 的方式或者服务器推 (Server-side Push) 的方式更新动态配置,拉方式比较可靠,但会有延迟同时有无效网络开销 (假设配置不常更新),服务器推方式能及时更新配置,但是实现较复杂,一般在服务和配置服务器之间要建立长连接。配置中心还要解决配置的版本控制和审计问题,对于大规模服务化环境,配置中心还要考虑分布式和高可用问题。 配置中心比较成熟的开源方案有百度的 Disconf,360 的 QConf,Spring 的 Cloud Config 和阿里的 Diamond 等。 Netflix 的微服务框架Netflix 是一家成功实践微服务架构的互联网公司,几年前,Netflix 就把它的几乎整个微服务框架栈开源贡献给了社区,这些框架和组件包括: Eureka: 服务注册发现框架Zuul: 服务网关Karyon: 服务端框架Ribbon: 客户端框架Hystrix: 服务容错组件Archaius: 服务配置组件Servo: Metrics 组件Blitz4j: 日志组件下图 Fig 11 展示了基于这些组件构建的一个微服务框架体系,来自 recipes-rss。 Fig 11, 基于 Netflix 开源组件的微服务框架 Netflix 的开源框架组件已经在 Netflix 的大规模分布式微服务环境中经过多年的生产实战验证,正逐步被社区接受为构造微服务框架的标准组件。Pivotal 去年推出的 Spring Cloud 开源产品,主要是基于对 Netflix 开源组件的进一步封装,方便 Spring 开发人员构建微服务基础框架。对于一些打算构建微服务框架体系的公司来说,充分利用或参考借鉴 Netflix 的开源微服务组件 (或 Spring Cloud),在此基础上进行必要的企业定制,无疑是通向微服务架构的捷径。 原文地址:https://www.infoq.cn/article/basis-frameworkto-implement-micro-service#anch130564%20%EF%BC%8C
auto_answer 2019-12-02 01:55:22 0 浏览量 回答数 0

回答

错误代码简介 消费端通过 CSB 调用服务时,整个链路上可以分成三个阶段: 服务消费端应用以消费端协议访问 CSB。 CSB 处理转发服务调用请求。 CSB 以提供端协议访问服务提供端应用。 这三个阶段都可能出错,服务消费端收到错误信息时要能区别是在哪个阶段发生了什么错误,需要考虑如何通过消费端协议定义的错误信息结构来体现。消费端协议定义的错误信息结构多种多样,也可能有各种限制,但是通常都至少会提供错误码和错误描述,而且错误码应该都有保留或者未占用的、代表“其它错误”的编码(下称:逃逸代码 Escape Code)。基于这个前提,可以定义如下约定: 阶段1发生的错误不用做任何处理。 阶段2及之后发生的错误,约定使用消费端协议的某个 Escape Code,具体CSB错误码和描述以固定格式体现在消费端错误描述内,如[CSB Error Code] CSB Error Message。 阶段3发生的错误,同上处理,但是 CSB Error Code 也提供 Escape Code 表示这是一个阶段 3 错误,且 CSB Error Message 的格式定义为[提供端协议错误码] 提供端协议错误信息。 说明 CSB 需要了解提供端协议的错误码中哪些表示正常访问,以免将成功的访问当做错误处理。 CSB 错误码列表 其中 800 为 CSB Escape Code 。 错误代码 错误描述信息 说明 200 SUCCESS 请求处理成功 500 platform error 平台处理错误 501 access permission deny 没有权限访问 502 signature verification failed 验签失败 503 service not registed 服务没有注册 504 api name not found 该服务没有找到 505 access key not found Access Key 没有在参数里找到 506 signature not found 签名没有在参数里面找到 507 required parameter is missing 参数丢失 508 need to access security channel 需要能访问安全通道 509 timestamp not found 时间戳在参数里面没有找到 510 time expired 访问过期 511 invoke timeout 调用 HSF 服务超时 512 write channel error 转发 HSF 协议时,连接通道出错 513 connection has broken 连接已经断开 514 hsf address not found 调用时没有找到 HSF 服务地址 515 hsf process error 调用 HSF 出错 516 hoh process error 级联调用 HSF 出错 517 json2hsf process error HTTP 调用 HSF 失败 518 service metadata is null 发布的 HSF 服务信息为空 519 access permission deny by black list 访问被黑名单拒绝 520 can not found service metadata 调用是没有从缓存中找到 HSF 服务的元信息 521 access permission deny, ip is not in white list 访问者的 IP 没有加入白名单 522 this invoke protocol not open 该服务没有开放成此协议 523 access permission deny due to strict accesskey and ip white list 此凭证设置了白名单,需要访问者 IP 加入到白名单里 524 exceed access limition, try later 触发限流 800 service server error 服务调用出错 801 connect to service server error 连接不到服务提供者 802 serivce has offline from server 此服务已经下线 803 serivce has been stopped 服务已经在 CSB 上关闭了 99 hsf escap code HSF 逃逸错误代码 900 Unknown code 未知错误代码 1001 bad soap request SOAP 消息不正确 1002 bad response 返回结果不正确 1003 bad hsf subscribe info 错误的 HSF 订阅信息 1004 hsf invoke exception HSF 调用异常 1005 bad input soap parsing 输入 SOAP 消息解析失败 1006 bad output soap parsing 输出的 SOAP 消息解析失败 1007 bad invoke restful provider HTTP 服务 Provider 异常 1008 json2ws process error, bad input restufl/json request HTTP 调用 WS 失败,HTTP 请求不正确 1009 json2ws process error 调用 WS 服务失败 10001 process response result data filter failed 结果过滤处理结果失败 HSF 错误代码 错误代码 错误描述信息 说明 20 OK HSF 调用成功 30 client timeout 调用端超时 31 server timeout 服务端超时 40 bad request 请求不合法 50 bad response 返回结果不合法 60 service not found 服务没有找到 70 service error 服务错误 79 connection has broken 连接已经断开 80 server error 服务提供端错误 81 Thread pool is busy 线程池繁忙 82 Communication error 通信异常 84 request is limited 请求被限流 88 server will close soon 服务很快就要关闭 90 client error 消费端错误 91 Unknown error 未知错误 消费端协议 Escape Code 列表 消费端协议 Escape Code HTTP类 500 HSF 99 示例 消费端应用以HSF协议通过CSB访问一个后端HSF服务,三个阶段的错误示例如下: 第一阶段错误 CSB 的 HSF 协议处理器发现消费端发出的 HSF 请求格式不正确,以 HSF 错误 40 bad request 直接回复消费端。 第二阶段错误 CSB 在处理消费端发出的 HSF 请求时,发现所访问的 API 并不存在,以 HSF 错误 99 [504]所访问的服务API(taobao.unknown)在实例(instance0733)上不存在 回复消费端。其中 99 为消费端协议 HSF 的 Escape Code。 第三阶段错误 CSB 处理消费端发出的 HSF 请求,在访问后端服务提供者时,HSF 服务框架报错 60 service not found,CSB 以HSF 错误 99 [800][60] service not found 回复消费端。其中 99 为消费端协议的 Escape Code,800 为 CSB 的 Escape Code。 第三阶段错误 CSB 处理消费端发出的 HSF 请求,在访问后端服务提供者时,HSF 服务提供应用出错,因为 HSF 框架不支持返回具体应用逻辑错误信息,仅仅报错为 80 server error,CSB 以 HSF错误 99 [800][80] server error 回复消费端。这里具体的应用错误只能在应用服务提供端看到,如果后端是其它比较开放的协议框架(用 X 代替),具体的应用错误信息可能可以报给 CSB,这样 CSB 才能返回更具体的错误信息 99 [800][X-Code] X-Message。
保持可爱mmm 2020-03-28 17:48:50 0 浏览量 回答数 0

问题

支付宝小程序云训练营优秀学员提问来啦

看书学不够,想要跟着大佬实操!为了满足大家这个愿望,开发者社区特别推出小程序云7天训练营,为大家请到支付宝专家团队,旨在从认识小程序云,到掌握云开发、小程序...
问问小秘 2020-06-15 15:57:38 159 浏览量 回答数 1

问题

淘宝开放平台海量订单时实同步与处理实践【精品问答集锦】

社区为大家准备了多场技术直播,广大网友踊跃提问,小编将其中优质的问答整理成汇总贴,供大家相互交流学习专家介绍:顾风胜淘宝开放平台高级技术专家,2009年加入阿里巴巴,一直从事开放平台的研发,把开放平台打造成从千万级、亿级、十亿级、到百亿级调...
管理贝贝 2019-12-01 19:35:16 5470 浏览量 回答数 1

问题

【精品问答】钉钉开放平台问答合集

1.应用服务商的入驻标准是什么? 2.如何申请入驻服务商? 3.未通过服务商审核怎么办? 4.如果未通过应用服务商申请可以开始开发应用吗? 5.钉钉云是什么? 6. 调工作通...
游客2q7uranxketok 2021-02-25 21:08:32 85 浏览量 回答数 1

问题

【精品问答】ET工业大脑

ET工业大脑 什么是Web应用托管服务Web+? 什么是ET工业大脑开放平台? ET工业大脑开放平台功能原理是什么? ET工业大脑开放平台采用什么样的架构? ET工业...
问问小秘 2020-04-07 16:20:14 38 浏览量 回答数 1

问题

【精品问答】PCDN

常见问题 >Android SDK对接常见问题 SDK aar全架构的包,怎么过滤出项目中需要的架构? https://developer.aliyun.com/ask/280430 eclipse中...
montos 2020-04-08 21:09:12 4 浏览量 回答数 1

回答

老师,请教您一个问题,在 Eureka 注册服务过程中,有什么方法能控制服务注册的权限,场景是服务注册过程中,需要平台去决定是否注册,如果同意便携带一个Token,在有效期(令牌的可使用性期间)进行服务调用,如果不同意,便注册失败
1130048400647508 2019-12-02 03:18:59 0 浏览量 回答数 0

回答

Why not json. Apache.org简直就是垃圾收集器。 ######我需要与其他异构系统交互,不好用json的。######你与其他异构系统交互,用什么数据传输不都需要写代码吗######嗯,是要写代码的,######json or xml可以写个renderXml()方法###### Web service 是一种服务导向架构 的技术,通过标准的Web协议提供服务,目的是保证不同平台的应用服务可以互操作。 包含SOAP和WSDL协议等。。###### Hessian值得一试 ######现在据我所知,对方web service 服务端是用axis写的,如果我这边用Hessian写的服务端他那边能调用吗?我这边用Hessian能调用对方的web服务么?######调用webservice和jfinal框架需要什么整合?你是做客户端还是服务器呀。######即作为客户端,又要做服务端。如果单纯客户端的话那就好办了,###### 经分析是jfinal过滤器的原因。看来路径得重新搞搞了。 <filter>  <filter-name>jfinal</filter-name>  <filter-class>com.jfinal.core.JFinalFilter</filter-class>  <init-param>  <param-name>configClass</param-name>  <param-value>com.sharpweb.config.MainConfig</param-value>  </init-param>  </filter>  <filter-mapping>  <filter-name>jfinal</filter-name>  <url-pattern>/*</url-pattern>  </filter-mapping> ###### 经分析是jfinal过滤器的原因。看来路径得重新搞搞了。 貌似是这样的 有没有解决办法
kun坤 2020-06-08 11:17:55 0 浏览量 回答数 0

回答

Why not json. Apache.org简直就是垃圾收集器。 ######我需要与其他异构系统交互,不好用json的。######你与其他异构系统交互,用什么数据传输不都需要写代码吗######嗯,是要写代码的,######json or xml可以写个renderXml()方法###### Web service 是一种服务导向架构 的技术,通过标准的Web协议提供服务,目的是保证不同平台的应用服务可以互操作。 包含SOAP和WSDL协议等。。###### Hessian值得一试 ######现在据我所知,对方web service 服务端是用axis写的,如果我这边用Hessian写的服务端他那边能调用吗?我这边用Hessian能调用对方的web服务么?######调用webservice和jfinal框架需要什么整合?你是做客户端还是服务器呀。######即作为客户端,又要做服务端。如果单纯客户端的话那就好办了,###### 经分析是jfinal过滤器的原因。看来路径得重新搞搞了。 <filter>  <filter-name>jfinal</filter-name>  <filter-class>com.jfinal.core.JFinalFilter</filter-class>  <init-param>  <param-name>configClass</param-name>  <param-value>com.sharpweb.config.MainConfig</param-value>  </init-param>  </filter>  <filter-mapping>  <filter-name>jfinal</filter-name>  <url-pattern>/*</url-pattern>  </filter-mapping> ###### 经分析是jfinal过滤器的原因。看来路径得重新搞搞了。 貌似是这样的 有没有解决办法
montos 2020-06-01 09:47:35 0 浏览量 回答数 0

回答

" Why not json. Apache.org简直就是垃圾收集器。 ######我需要与其他异构系统交互,不好用json的。######你与其他异构系统交互,用什么数据传输不都需要写代码吗######嗯,是要写代码的,######json or xml可以写个renderXml()方法###### Web service 是一种服务导向架构 的技术,通过标准的Web协议提供服务,目的是保证不同平台的应用服务可以互操作。 包含SOAP和WSDL协议等。。###### Hessian值得一试 ######现在据我所知,对方web service 服务端是用axis写的,如果我这边用Hessian写的服务端他那边能调用吗?我这边用Hessian能调用对方的web服务么?######调用webservice和jfinal框架需要什么整合?你是做客户端还是服务器呀。######即作为客户端,又要做服务端。如果单纯客户端的话那就好办了,###### 经分析是jfinal过滤器的原因。看来路径得重新搞搞了。 <filter>  <filter-name>jfinal</filter-name>  <filter-class>com.jfinal.core.JFinalFilter</filter-class>  <init-param>  <param-name>configClass</param-name>  <param-value>com.sharpweb.config.MainConfig</param-value>  </init-param>  </filter>  <filter-mapping>  <filter-name>jfinal</filter-name>  <url-pattern>/*</url-pattern>  </filter-mapping> ###### 经分析是jfinal过滤器的原因。看来路径得重新搞搞了。 貌似是这样的 有没有解决办法 "
montos 2020-05-31 13:03:37 0 浏览量 回答数 0

回答

1、 描述下应用架构的发展历程 目前,架构的发展历程是从单体架构、分布式架构、SOA架构,再到如今流行的微服务架构 2、单体架构的优点、缺点 优点: I 易于开发,开发人员可在短时间内开发完成单体应用 II 易于测试 III 易于部署 缺点: I 灵活程度不够,一旦修改,自上而下需要整体部署,才可以展现出效果,同时开发效率低,降低团队灵活性 II 降低系统的性能 III 系统启动、重启缓慢 IV 扩展性差 3、 什么是传统的分布式架构 简单来说,就是按照业务垂直切分,每个应用都是一个单体架构,通过API接口互相调用 好处是,依赖解耦,理解清晰,开发便捷速度,缺点是调用存在风险,技术复杂,可靠性降低 4、 SOA架构的优点、缺点 面向服务的SOA架构,根据不同的业务建立不同的服务,优点,模块拆分,开发聚合,降低了耦合度,增加功能,增加子项目即可,方便部署,灵活的分布式部署 缺点,调用、交互采用远程通信,接口开发增加工作量 5、 什么是微服务技术 微服务架构在某种程度上是SOA架构的发展。微服务是一种架构风格,对于一个大型的复杂的业务应用系统,业务功能可以拆分为多个独立的微服务,各个服务间是松耦合的,通过各种远程通信协议,实现交互,各个服务可以独立部署、扩容、升降级 6、 目前流行的微服务解决方案 目前最常见的,包括两种,一种基于SpringCloud中间件的微服务解决方案,选型比较中立,内部组件,可以自由更换搭配使用,大致上三种,服务发现,一种Eureka,一种Consul,一种etcd或者阿里nacos,共用组件,服务调用组件Feign。负载均衡ribbon,熔断器hystrix,网关,zuul,gateway,等,配置中心,携程阿波罗,nacos,Config;全链路监控,zipkin,pinpoint,skywalking,其他组件 另一种基于Dubbo实现微服务解决方案,可以Dubbo,nacos,其他 7、 什么是中间件 中间件,是在操作系统之上,应用软件之下的中间层软件。本质上归结为技术架构。常见的中间件,包括服务治理中间件、配置中心、链路监控、分布式事务、分布式定时任务、分布式缓存、消息中间件、API网关、数据库中间件等 8、 什么是Spring Cloud 也是一个中间件,由Spring官方开发维护,基于SpringBoot技术框架,提供了一整套的微服务解决方案。包括服务注册与发现、配置中心、全链路监控、API网关、熔断器等组件,可以随需扩展或替换使用 9、 SpringCloud项目模块 注册中心 Eureka 第一代网关 Zuul 多语言 Sidecar 负载均衡 Ribbon 熔断器 Hystrix 第二代网关 gateway 集群监控 Turbine 声明式HTTP客户端 Feign 注册中心 consul 链路追踪 sleuth 配置中心 config 服务总线 Bus 等 10、 SpringCloud与服务治理中间件 服务治理中间件包含服务注册与发现、服务路由、复杂均衡、自我保护、丰富的治理管理机制等功能。服务路由包含服务上下线、在线测试、就近选择、A/B测试、灰度发布等,负载均衡支持根据状态权重进行负载。自我保护,服务降级、优雅降级、流量控制,Spring Cloud中使用了相关 11、 Springcloud与配置中心中间件 单体应用中,属性配置和代码采用硬编码形式放在一起,简单方便,但是在分布式系统中,多个服务实例,需要分别管理每个服务下对应的配置项,往往配置项项目一致,内容存在偏差,则上线需要检查所有的配置项,如果修改配置项,就要重启等,开发管理相当麻烦,另外还会涉及安全性的问题,比如数据库密码等的存放。分布式系统中,需要我们统一管理,负责管理的中间件,就是配置中心。配置中心,应该具备的功能,分别是支持各种复杂的配置场景,与公司的运维体系和权限体系集成一体,各种配置兼容支持。 SpringCloud Config是配置中心中间件,将应用原本放在本地的配置,统一放置到中心服务器,拥有了更好地管理发布能力,基于应用、环境、版本三个维度管理,配置存储支持git等。无缝支持Spring技术的Environment和PropertySource接口 12、 Springcloud与网关中间件 API是在系统边界上,面向API的串行集中式强管控服务,至少具备如下功能 I 统一接入功能,提供一个高性能、高并发、高可靠的网关服务,也要支持负载均衡、异地多活、容灾切换 Ii 协议适配功能,因为网关是集中式强管控,必须要提供满足各个请求协议,能够协议适配 Iii 流量管控 Iv 安全防护、权限校验 SpringCloud第一代网关采用zuul,根据默认或者配置的路由规则,进行负载或者路由,只能支持基本功能,如果想要实现高度定制更多功能,就需要,进行开发filter过滤器 SpringCloud第二代网关采用Gateway,zuul采用每个请求分配一个线程的方式,不能支持高并发,gateway采用netty框架,具有强大的高并发处理能力,且实现了网管基本功能,例如安全,监控,限流等 13、 Springcloud与全链路监控中间件 分布式系统下,对于日志追踪等,有迫切的需求,需要一个可视化展示监控平台,进行汇集。全链路监控中间件基本功能如下,定位慢调用:各种web服务调用,慢sql执行,定位各种错误,定位各种异常,展现服务依赖,展现调用链路,应用告警SpringCloud采用sleuth 14、 Springcloud与分布式事务 微服务架构之后,困难,在于,1)系统拆分后,服务间调用通信、故障处理变得复杂2)微服务化后,服务调用的分布式事务问题突出3)数量众多,测试部署运维复杂,那么随着Docker容器技术、Devops技术的发展,各种PAAS平台工具的退出,变得愈加容易。分布式事务没有统一方案 15、 Springcloud与领域驱动 微服务作为一种架构风格,提供了快速开发微服务应用的能力,但是对于业务如何开发,业务架构如何治理,架构如何防腐,还需要方法论进行指导,领域驱动作为业务治理和架构防腐的方法论,结合起来,才能更好地提供企业使用 16、 SpringCloud与gRPC协议 通过SpringCloud进行搭建微服务应用,服务间得通信往往采用的是Feign中间件形式,实现简单快捷的调用,底层采用的http形式,相对于gRPC协议或者RPC协议的调用来说,性能相对低下,因此,可以切换开源技术框架gRPC实现 17、 SpringCloud与Dubbo生态融合 SpringCloud与Dubbo在本质上不在一个领域没有可比性。Dubbo是一个基于RPC协议的通信框架,而SpringCloud是实现微服务中间件,随着发展,两者生态也在不断融合,目前已经开源了Spring-cloud-dubbo的项目
huc_逆天 2020-02-25 11:08:12 0 浏览量 回答数 0

回答

1、 描述下应用架构的发展历程 目前,架构的发展历程是从单体架构、分布式架构、SOA架构,再到如今流行的微服务架构 2、单体架构的优点、缺点 优点: I 易于开发,开发人员可在短时间内开发完成单体应用 II 易于测试 III 易于部署 缺点: I 灵活程度不够,一旦修改,自上而下需要整体部署,才可以展现出效果,同时开发效率低,降低团队灵活性 II 降低系统的性能 III 系统启动、重启缓慢 IV 扩展性差 3、 什么是传统的分布式架构 简单来说,就是按照业务垂直切分,每个应用都是一个单体架构,通过API接口互相调用 好处是,依赖解耦,理解清晰,开发便捷速度,缺点是调用存在风险,技术复杂,可靠性降低 4、 SOA架构的优点、缺点 面向服务的SOA架构,根据不同的业务建立不同的服务,优点,模块拆分,开发聚合,降低了耦合度,增加功能,增加子项目即可,方便部署,灵活的分布式部署 缺点,调用、交互采用远程通信,接口开发增加工作量 5、 什么是微服务技术 微服务架构在某种程度上是SOA架构的发展。微服务是一种架构风格,对于一个大型的复杂的业务应用系统,业务功能可以拆分为多个独立的微服务,各个服务间是松耦合的,通过各种远程通信协议,实现交互,各个服务可以独立部署、扩容、升降级 6、 目前流行的微服务解决方案 目前最常见的,包括两种,一种基于SpringCloud中间件的微服务解决方案,选型比较中立,内部组件,可以自由更换搭配使用,大致上三种,服务发现,一种Eureka,一种Consul,一种etcd或者阿里nacos,共用组件,服务调用组件Feign。负载均衡ribbon,熔断器hystrix,网关,zuul,gateway,等,配置中心,携程阿波罗,nacos,Config;全链路监控,zipkin,pinpoint,skywalking,其他组件 另一种基于Dubbo实现微服务解决方案,可以Dubbo,nacos,其他 7、 什么是中间件 中间件,是在操作系统之上,应用软件之下的中间层软件。本质上归结为技术架构。常见的中间件,包括服务治理中间件、配置中心、链路监控、分布式事务、分布式定时任务、分布式缓存、消息中间件、API网关、数据库中间件等 8、 什么是Spring Cloud 也是一个中间件,由Spring官方开发维护,基于SpringBoot技术框架,提供了一整套的微服务解决方案。包括服务注册与发现、配置中心、全链路监控、API网关、熔断器等组件,可以随需扩展或替换使用 9、 SpringCloud项目模块 注册中心 Eureka 第一代网关 Zuul 多语言 Sidecar 负载均衡 Ribbon 熔断器 Hystrix 第二代网关 gateway 集群监控 Turbine 声明式HTTP客户端 Feign 注册中心 consul 链路追踪 sleuth 配置中心 config 服务总线 Bus 等 10、 SpringCloud与服务治理中间件 服务治理中间件包含服务注册与发现、服务路由、复杂均衡、自我保护、丰富的治理管理机制等功能。服务路由包含服务上下线、在线测试、就近选择、A/B测试、灰度发布等,负载均衡支持根据状态权重进行负载。自我保护,服务降级、优雅降级、流量控制,Spring Cloud中使用了相关 11、 Springcloud与配置中心中间件 单体应用中,属性配置和代码采用硬编码形式放在一起,简单方便,但是在分布式系统中,多个服务实例,需要分别管理每个服务下对应的配置项,往往配置项项目一致,内容存在偏差,则上线需要检查所有的配置项,如果修改配置项,就要重启等,开发管理相当麻烦,另外还会涉及安全性的问题,比如数据库密码等的存放。分布式系统中,需要我们统一管理,负责管理的中间件,就是配置中心。配置中心,应该具备的功能,分别是支持各种复杂的配置场景,与公司的运维体系和权限体系集成一体,各种配置兼容支持。 SpringCloud Config是配置中心中间件,将应用原本放在本地的配置,统一放置到中心服务器,拥有了更好地管理发布能力,基于应用、环境、版本三个维度管理,配置存储支持git等。无缝支持Spring技术的Environment和PropertySource接口 12、 Springcloud与网关中间件 API是在系统边界上,面向API的串行集中式强管控服务,至少具备如下功能 I 统一接入功能,提供一个高性能、高并发、高可靠的网关服务,也要支持负载均衡、异地多活、容灾切换 Ii 协议适配功能,因为网关是集中式强管控,必须要提供满足各个请求协议,能够协议适配 Iii 流量管控 Iv 安全防护、权限校验 SpringCloud第一代网关采用zuul,根据默认或者配置的路由规则,进行负载或者路由,只能支持基本功能,如果想要实现高度定制更多功能,就需要,进行开发filter过滤器 SpringCloud第二代网关采用Gateway,zuul采用每个请求分配一个线程的方式,不能支持高并发,gateway采用netty框架,具有强大的高并发处理能力,且实现了网管基本功能,例如安全,监控,限流等 13、 Springcloud与全链路监控中间件 分布式系统下,对于日志追踪等,有迫切的需求,需要一个可视化展示监控平台,进行汇集。全链路监控中间件基本功能如下,定位慢调用:各种web服务调用,慢sql执行,定位各种错误,定位各种异常,展现服务依赖,展现调用链路,应用告警SpringCloud采用sleuth 14、 Springcloud与分布式事务 微服务架构之后,困难,在于,1)系统拆分后,服务间调用通信、故障处理变得复杂2)微服务化后,服务调用的分布式事务问题突出3)数量众多,测试部署运维复杂,那么随着Docker容器技术、Devops技术的发展,各种PAAS平台工具的退出,变得愈加容易。分布式事务没有统一方案 15、 Springcloud与领域驱动 微服务作为一种架构风格,提供了快速开发微服务应用的能力,但是对于业务如何开发,业务架构如何治理,架构如何防腐,还需要方法论进行指导,领域驱动作为业务治理和架构防腐的方法论,结合起来,才能更好地提供企业使用 16、 SpringCloud与gRPC协议 通过SpringCloud进行搭建微服务应用,服务间得通信往往采用的是Feign中间件形式,实现简单快捷的调用,底层采用的http形式,相对于gRPC协议或者RPC协议的调用来说,性能相对低下,因此,可以切换开源技术框架gRPC实现 17、 SpringCloud与Dubbo生态融合 SpringCloud与Dubbo在本质上不在一个领域没有可比性。Dubbo是一个基于RPC协议的通信框架,而SpringCloud是实现微服务中间件,随着发展,两者生态也在不断融合,目前已经开源了Spring-cloud-dubbo的项目
huc_逆天 2020-02-24 21:01:42 0 浏览量 回答数 0

问题

企业级分布式应用服务 EDAS名词含义是什么?

Ali-TomcatAli-Tomcat 是 EDAS 中的服务运行时必须依赖的一个容器,主要集成了服务的发布、订阅、调用链追踪等一系列的核心功能,无论是开发环境还是运行时,均必须将应用程序发布在该...
猫饭先生 2019-12-01 21:03:04 1084 浏览量 回答数 0

云产品推荐

上海奇点人才服务相关的云产品 小程序定制 上海微企信息技术相关的云产品 国内短信套餐包 ECS云服务器安全配置相关的云产品 开发者问答 阿里云建站 自然场景识别相关的云产品 万网 小程序开发制作 视频内容分析 视频集锦 代理记账服务 阿里云AIoT