全面了解 google 的 Zanzibar - 张善友

💡 原文中文,约5400字,阅读约需13分钟。
📝

内容提要

Zanzibar是谷歌开发的全球授权系统,处理数百万用户请求,确保高效的权限决策。它通过存储用户与数据的关系,优化权限检查,支持多种权限模型,具备高可用性和低延迟,解决了权限管理的灵活性和可扩展性问题。

🎯

关键要点

  • Zanzibar是谷歌开发的全球授权系统,处理数百万用户请求,确保高效的权限决策。
  • Zanzibar存储用户与数据的关系,优化权限检查,支持多种权限模型。
  • 系统具备高可用性和低延迟,95%请求响应时延控制在10ms以内。
  • 传统的权限管理方法存在代码重复和版本偏差的问题,Zanzibar通过服务化解决这些问题。
  • Zanzibar允许应用程序直接查询权限,减少了对数据库的依赖。
  • Zanzibar的API使开发者能够快速做出权限决策,支持用户和数据关系的外包。
  • Zanzibar使用有向图表示用户、实体和资源之间的关系,权限检查变为图遍历问题。
  • Zanzibar提供关系重写机制,减少冗余信息存储。
  • Zookies允许开发者设置数据过时性下限,提高权限检查性能。
  • Zanzibar通过全球分布的服务器和缓存机制实现高效的权限检查。
  • Zanzibar使用一致的哈希和请求对冲技术来提高缓存命中率和减少延迟。
  • Zanzibar解决了谷歌在权限管理上的灵活性、可扩展性和可重用性问题。

延伸问答

Zanzibar是什么?

Zanzibar是谷歌开发的全球授权系统,用于处理用户对多个应用的访问权限。

Zanzibar如何优化权限检查?

Zanzibar通过存储用户与数据的关系,使用有向图表示法,将权限检查转化为图遍历问题,从而优化权限检查。

Zanzibar的高可用性和低延迟是如何实现的?

Zanzibar通过全球分布的服务器和缓存机制,实现了高可用性和低延迟,95%的请求响应时延控制在10ms以内。

Zanzibar解决了哪些传统权限管理的问题?

Zanzibar减少了代码重复和版本偏差的问题,并通过服务化解决了传统权限管理的灵活性和可扩展性问题。

开发者如何使用Zanzibar的API?

开发者可以通过Zanzibar的API外包用户和数据关系,快速做出权限决策,支持权限检查和数据查询。

Zookies在Zanzibar中有什么作用?

Zookies允许开发者为数据设置过时性下限,从而提高权限检查的性能。

➡️

继续阅读