• daz2yy
    2021-08-06
    老师,请问下,数据流和控制流这个怎么来理解呢,是从什么角度来定义的服务类型的?

    作者回复: 数据流承载核心业务功能。 控制流一般用来创建一些资源,供数据流使用。这些,资源一旦建成,控制流可以一直使用。所以这时候控制流挂了,资源还是存在的,数据流仍然能够正常运转,也就是不影响业务功能。

    
    8
  • hello
    2021-08-05
    老师,咨询您一个问题,使用GiN做WEB服务,微服务间通过gRPC通讯,如何选择配置注册中心,老师能否推荐几款比较流行开源的配置注册中心。

    作者回复: 网关可以使用,tyk:https://github.com/TykTechnologies/tyk。 tyk后端开源,前端闭源。你可以自己开发一套前端。 配置中心可以试试:https://github.com/apache/servicecomb-service-center servicecomb-service-center是华为开源的注册中心,基于etcd封装。该注册中心可以无缝对接华为开源的微服务框架go-chassis

    共 2 条评论
    5
  • Jarvis
    2022-06-28 来自广东
    更新缓存时每次都 List 全部密钥/策略,数据量会不会太大了? Pub 时带上变化的策略/密钥 id, 只更新该 id 的内容是不是好一点?

    作者回复: 是的,最好是增量拉取

    
    3
  • 静心
    2021-10-29
    本地channel缓冲和redis缓存对于性能的提高效果会很明显,设计的比较好。但同时,这样的设计会导致多存储数据同步的问题。比如,如果服务突然宕机,本地缓冲中的数据就可能丢失。不知道老师有没有什么好的办法解决?

    作者回复: 这个地方最好的办法,就是做好优雅关停。 关停时获取终止信号,等待任务完成,并之后后续的清理,最后结束进程。 服务器宕机,任何高可用系统,都会存在多多少少的数据丢失。能做的是设计好时间窗口,确保服务器压力、性能都在可接受范围的情况下,及时提交、保存数据。

    
    3
  • yandongxiao
    2021-12-04
    总结: iam-authz-server 在数据流上工作,负责授权工作,对性能要求高。 authz也需要对请求进行认证工作,authz 的认证采用 cache 方式实现 jwt token 认证,即密钥已经缓存在内存中,通过同样的加密方案,确认token的合法性。 authz的认证工作主要交给了 landon 来完成。iam-apiserver 存储的授权策略符合landon的语法规范,iam-authz-server 接收的授权请求,也符合landon的语法规范。landon 通过接口的方式,暴露了manager、auditLogger、metric 等相关的接口。比如,我们需要为landon提供用户的 policy 列表,是否允许授权,由 landon 来做决策。 缓存设计

    作者回复: 6666

    
    2
  • dll
    2022-10-17 来自广东
    每次从apiserver触发reload() 都是全量的拉去 s.cli.GetPolicies(),这样应该可能会产生性能问题吧 假如当Policies数量特别大的时候

    作者回复: 是的,最好的方式是增量拉取,老哥有兴趣可以实现下,提个PR

    
    1
  • 陈先生
    2021-10-07
    如果iam-authz-server挂了,是不是有audit log丢失的可能性?

    作者回复: 服务挂了,audit log是有丢失的可能,这个无法避免。只能尽可能规避

    
    1
  • helloworld
    2021-08-16
    在实际应用中,请求/v1/authz接口的参数体是网关根据用户实际请求的某个具体业务的api的参数、请求方法、path等,并根据提前定制的规则自动构造出来的吧,这样理解对吗

    作者回复: 是请求者自己指定的

    
    1
  • 岑惠韬
    2022-11-06 来自广东
    老师请问Load的Start函数第二个协程的作用是什么呢?是主要起解耦作用吗?假如让PubSubLoop直接操作requeue切片,让reloadLoop每秒清空切片,仅考虑当前用法的话是不是也是能跑的?还是会有什么逻辑上的问题?

    作者回复: 1. 从 reloadQueue中读取回调,但是iam-authz-server中,其实没有用到回调功能; 2. 我觉得直接操作requeue没有什么问题

    
    
  • ꧁子华宝宝萌萌哒꧂
    2022-06-27 来自广东
    preparedAuthzServer.Run 为啥需要一个 stopChan 来阻塞不让退出? 按我的理解这个 stopChan 没有写,这个进程永远就退不了, 直接 return s.genericAPIServer.Run() 不可以吗?

    作者回复: preparedAuthzServer.Run 没有stopChan

    
    