我需要从Keycloak加载所有用户,并通过keycloak管理客户机将它们插入(缓存)到我的系统中。虽然查询少数用户的速度相当快,但速度却呈指数增长。加载500个用户需要8秒,但3000个用户最多需要4分钟,我需要加载13k+。似乎方法搜索(search,first,max)和list(first,max)的行为相同。
kc.realm(realmName).users().list(0, count)我认为按块加载(list(0,1000)然后(list( 1001,2000 ))可以解决这个问题,但是加载0,2000和1001,2000所需的时间完全相同,这似乎是Keycloak从一开始就对所有用户进行查询,然后执行子字符串。
问题是:如何完成从Keycloak到另一个系统的所有用户的大量(块,迭代)负载?我想避免直接接触Keycloak。
谢谢
发布于 2018-11-22 20:19:41
我刚刚意识到参数是第一个和最大的,所以为了迭代用户,我只需要增加第一个数,让第二个数保持不变。所以请求应该是这样的,只循环参数first,将其增加100。
http://localhost:8180/auth/admin/realms/demorealm/users/?first=5500&max=100https://stackoverflow.com/questions/53434349
复制相似问题