gpt4 book ai didi

java - 在我的应用程序中使用 auth/admin/realms/myrealm/users 时的瓶颈

转载 作者:IT老高 更新时间:2023-10-28 12:42:46 26 4
gpt4 key购买 nike

我正在运行一个脚本,该脚本在请求领域的用户列表之前请求主 token 。我在紧密循环中执行此请求 100 次,并输出执行 "auth/admin/realms/mine/users?first=0&max=1000" 请求所需的时间。

使用本地安装的 keycloak docker 进行测试时,单个请求需要 4.0 秒。如果我同时运行该脚本的 5 个实例,单个请求大约需要 10 秒。如果我运行 10 个实例,它会在收到回复之前跳到 20 秒。

因此,我在列出所有用户信息的页面上的 web 应用程序遇到了严重的瓶颈,我想知道如何解决这个问题。

我正在运行 keycloak 2.5.0.Final。我的 java 主页是 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.111-2.b15.el7_3.x86_64/jreauthorizationPersister = jpa.

我的脚本:

import requests

keyCloakUrl = "http://foo.bar"

for i in range(100):

session = requests.Session()
r = session.post(
keyCloakUrl +"auth/realms/master/protocol/openid-connect/token",
data={
"grant_type":"password",
"client_id":"admin-cli",
"username":"admin",
"password":"admin"
}
)
master_token = json.loads(r.content)['access_token']

r = s.get(
keyCloakUrl + "auth/admin/realms/mine/users?first=0&max=1000",
headers={'Authorization':'Bearer '+master_token}
)
print(r.elapsed.total_seconds())

我的 jetty 文件:

FROM jboss/keycloak-mysql:2.5.0.Final

ARG db2

ADD deps/ /opt/jboss/keycloak/
RUN /opt/jboss/keycloak/import_utbud_realm.sh

CMD ["-b", "0.0.0.0", "-bmanagement", "0.0.0.0", "-Djboss.socket.binding.port-offset=2"]

更新

我还尝试测量“auth/realms/master/protocol/openid-connect/token”请求的时间。这是每个请求 0.1 秒(仅运行一个脚本实例)和 0.8 秒(运行 10 个实例)。

最佳答案

也许这是一个愚蠢的观察,但是您是否尝试在您的 docker 配置中增加您的 JVM 堆?喜欢:

CMD java -XX:+PrintFlagsFinal -XX:+PrintGCDetails $JAVA_OPTIONS -jar java-container.jar

有一个很棒的博客解释了 memory issue with the JVM and docker here

关于java - 在我的应用程序中使用 auth/admin/realms/myrealm/users 时的瓶颈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44071113/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com