《Apache Dubbo微服务开发从入门到精通》——通信协议—— 四、 Rest协议(6) https://developer.aliyun.com/article/1224562
13) 配置长连接
Dubbo中的rest服务默认都是采用http长连接来访问,如果想切换为短连接,直接配置。
注:
这个配置目前只对 server="netty"和server="tomcat" 才能生效。
14) 最大HTTP连接数
可以配置服务器提供端所能同时接收的最大HTTP连接数,防止REST server被过多连接撑爆,以作为一种最基本的自我保护机制。
注:
这个配置目前只对server="tomcat"才能生效。
15) 每个消费端的超时时间和HTTP连接数
如果rest服务的消费端也是dubbo系统,可以像其他dubbo RPC机制一样,配置消费端调用此rest服务的最大超时时间以及每个消费端所能启动的最大HTTP连接数。
当然,由于这个配置针对消费端生效的,所以也可以在消费端配置。
但是,通常我们建议配置在服务提供端提供此类配置。按照dubbo官方文档的说法:“Provider上尽量多配置Consumer端的属性,让Provider实现者一开始就思考Provider服务特点、服务质量的问题。”
注:
如果dubbo的REST服务是发布给非dubbo的客户端使用,则这里上的配置完全无效,因为这种客户端不受dubbo控制。
16) Annotation取代部分Spring XML配置
以上所有的讨论都是基于dubbo在spring中的xml配置。但是,dubbo/spring 本身也支持用annotation来作配置,所以我们也可以按dubbo官方文档中的步骤,把相关annotation加到REST服务的实现中,取代一些xml配置,例如:
annotation的配置更简单更精确,通常也更便于维护(当然现代IDE都可以在xml中支持比如类名重构,所以就这里的特定用例而言,xml的维护性也很好)。而xml对代码的侵入性更小一些,尤其有利于动态修改配置,特别是比如你要针对单个服务配置连接超时时间、每客户端最大连接数、集群策略、权重等等。另外,特别对复杂应用或者模块来说,xml提供了一个中心点来涵盖的所有组件和配置,更一目了然,一般更便于项目长时期的维护。
当然,选择哪种配置方式没有绝对的优劣,和个人的偏好也不无关系。
《Apache Dubbo微服务开发从入门到精通》——通信协议—— 四、 Rest协议(8) https://developer.aliyun.com/article/1224559