Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

hprose3.0有熔断降级插件,限流插件的使用说明或者相关示例吗 #58

Open
zlr-rrr opened this issue Feb 28, 2020 · 9 comments

Comments

@zlr-rrr
Copy link

zlr-rrr commented Feb 28, 2020

能提供熔断降级插件,限流插件的使用说明或者相关示例吗

@zlr-rrr zlr-rrr closed this as completed Feb 28, 2020
@zlr-rrr zlr-rrr reopened this Feb 28, 2020
@andot
Copy link
Member

andot commented Feb 28, 2020

熔断降级通常用于客户端或者代理服务器(也是客户端):

var cb = new CircuitBreaker(5, default, myMockService);
client.Use(cb.IOHandler)
      .Use(cb.InvokeHandler);

第一个参数是失败尝试次数(不是自动重试,自动重试有单独的插件),比如设置为 5,那么如果失败小于5次的时候,抛出的是服务本身的异常。如果超过5次,就会抛出熔断异常(当没有设置 myMockService 时)。第二个参数是恢复时间,设置为 default 是 30 秒,就是在熔断 30 秒之后,会尝试进行一次恢复,恢复时后的失败尝试次数是设置的失败尝试次数的一半。第三个参数是降级服务,它是个 IMockService 接口的对象,根据业务需要自己实现。

IOHandler 是熔断插件,InvokeHandler 是降级插件。可以单独使用 IOHandler 插件,但是如果要使用 InvokeHandler 插件必须要先设置 IOHandler 插件(否则无效)。

@andot
Copy link
Member

andot commented Feb 28, 2020

限流插件在这里有详细说明:https://github.com/hprose/hprose/wiki/%E9%99%90%E5%88%B6%E5%99%A8

@andot
Copy link
Member

andot commented Feb 28, 2020

上面提到的自动重试插件是在集群插件中。

比如:

client.Use(new Cluster(FailtryConfig.Instance).Handler);

就可以启用自动重试插件了。自动重试插件的默认重试次数是10次。另外 FailtryConfig 这个类你也可以按照自己需求来创建适合你配置的对象。比如可以设置重试次数,最小重试时间间隔,最大重试时间间隔等。

除了 FailtryConfig 这个配置之外,还有 FailoverConfigFailfastConfig 这两个内置的配置。FailoverConfigFailtryConfig 类似,但是如果你客户端配置了多个服务器地址,FailoverConfig 会再重试前更换为下一个服务地址,而 FailtryConfig 不会更换服务地址。FailfastConfig 不会重试,但是你可以设置一个失败回调,来自己处理失败之后该怎么处理。如果这些默认的配置你都不满意,你还可以自己实现 ClusterConfig 这个类的子类,或者直接创建这个类的对象并实现相应的回调,来实现你需要的功能。

@zlr-rrr
Copy link
Author

zlr-rrr commented Mar 2, 2020

另外,3.0版本支持数据加密吗

@andot
Copy link
Member

andot commented Mar 2, 2020

没有内置加密插件,可以自己实现加密插件。另外,https,tls 本身也是加密传输的,看需求自己选吧。

@zlr-rrr
Copy link
Author

zlr-rrr commented Mar 2, 2020

好的,多谢

@linjianshu
Copy link

请问小马哥现在有hprose for dotnet用户手册吗,官网上找不到,熔断降级有demo吗,刚开始接触有点懵

@andot
Copy link
Member

andot commented Sep 27, 2020

@linjianshu 上面的回答里面已经给出例子了

@linjianshu
Copy link

好滴那我再琢磨琢磨~

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants