小编Ala*_*tan的帖子

Spring Boot消耗太多的RAM

我在春季启动中创建了一些服务,我有11个胖jar,并将它们部署在docker容器中,我的怀疑是每个jar都消耗了1到1.5 GB的RAM,而没有任何使用,我通过运行以下命令检查RAM:

docker stats containername
Run Code Online (Sandbox Code Playgroud)

起初我以为是Java容器,所以我尝试更改为使用alpine的容器,但没有任何变化,所以我认为唯一的问题是我的jar。有没有办法更改jar正在使用的RAM?还是这种行为是正常的,因为每个jar都有一个嵌入式的tomcat?或者将一些罐子放在一起作为战争来部署,并在一组“罐子”中仅使用一个tomcat更好?有人可以分享他/她的经验吗?,

提前致谢。

docker spring-boot

7
推荐指数
2
解决办法
7768
查看次数

在docker容器上为rabbitmq设置用户和密码

我正在尝试使用默认用户和密码创建rabbitmq docker 容器,但是当我尝试输入管理插件时,这些凭据不起作用

这就是我创建容器的方式:

docker run -d -P --hostname rabbit -p 5009:5672 -p 5010:15672 --name rabbitmq -e RABBITMQ_DEFAULT_USER=user -e RABBITMQ_DEFAULT_PASS=pass -v /home/desarrollo/rabbitmq/data:/var/lib/rabbitmq rabbitmq:3.6.10-management
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?,

提前致谢

docker

6
推荐指数
1
解决办法
7772
查看次数

如何在谷歌云中存储图像?

我启动了一个应用程序,向客户展示我的产品,我需要向他们展示产品图片,所以我开始了解如何使用谷歌云,我阅读了一些有关文件存储的内容,但我不确定这是否是最佳解决方案我,我也不明白谷歌对该服务的收费方式,在此链接中解释说,每月 1GB 将向我收取 0.20 美分,有人可以向我解释一下吗?,对此有更好的解决方案吗?,

提前致谢。

google-cloud-platform google-cloud-firestore

5
推荐指数
1
解决办法
8994
查看次数

如何将开放式图标添加到angular 2项目

我创建了一个有角度的项目,向其中添加了引导程序,但是我注意到新版本的bootstrap(版本4)没有图标库,因此我使用以下命令进行安装:

npm install open-iconic
Run Code Online (Sandbox Code Playgroud)

但是我不知道如何将其添加到我的项目中,根据网页,我需要添加以下两行:

<link href="/open-iconic/font/css/open-iconic-bootstrap.css" rel="stylesheet">
<span class="oi oi-icon-name" title="icon name" aria-hidden="true"></span>
Run Code Online (Sandbox Code Playgroud)

所以我尝试在angular-cli.json上添加css的路径,但是我的按钮没有显示图标,有人可以帮我吗?,

提前致谢。

angular

4
推荐指数
1
解决办法
3149
查看次数

如何从OAuth服务器验证令牌?

我创建了一个Spring Boot应用程序,我有授权和资源服务器,这是我的主要类:

@SpringBootApplication
@EnableResourceServer
@EnableAuthorizationServer
public class OauthServerApplication {

    public static void main(String[] args) {
        SpringApplication.run(OauthServerApplication.class, args);
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我的application.yml:

security:
  user:
    name: guest
    password: guest123
  oauth2:
    client:
      client-id: trustedclient
      client-secret: trustedclient123
      authorized-grant-types: authorization_code,refresh_token,password
      scope: openid
Run Code Online (Sandbox Code Playgroud)

要生成访问令牌,我只执行此URL(POST):

http://trustedclient:trustedclient123@localhost:8080/oauth/token?username=guest&password=guest123&grant_type=password
Run Code Online (Sandbox Code Playgroud)

它返回:

{
  "access_token": "f2e722b7-3807-4a27-9281-5b28b7bd3d0d",
  "token_type": "bearer",
  "refresh_token": "f96d472c-8259-42e2-b939-4963dfeeb086",
  "scope": "openid"
}
Run Code Online (Sandbox Code Playgroud)

现在我需要知道如何验证令牌是否正确,任何帮助?

oauth-2.0 spring-boot

3
推荐指数
1
解决办法
1万
查看次数

kafka SASL/SCRAM 身份验证失败

我尝试为我的 kafka 集群添加安全性,我遵循了文档:

我使用以下命令添加用户:

kafka-configs.sh --zookeeper zookeeper1:2181 --alter --add-config 'SCRAM-SHA-256=[password=admin-secret],SCRAM-SHA-512=[password=admin-secret]' --entity-type users --entity-name admin
Run Code Online (Sandbox Code Playgroud)

我修改server.properties:

broker.id=1
listeners=SASL_PLAINTEXT://kafka1:9092
advertised.listeners=SASL_PLAINTEXT://kafka1:9092
sasl.enabled.mechanisms=SCRAM-SHA-256
sasl.mechanism.inter.broker.protocol=SCRAM-SHA-256
security.inter.broker.protocol=SASL_PLAINTEXT
num.network.threads=3
num.io.threads=8
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
socket.request.max.bytes=104857600
default.replication.factor=3
min.insync.replicas=2
log.dirs=/var/lib/kafka
num.partitions=3
num.recovery.threads.per.data.dir=1
offsets.topic.replication.factor=3
transaction.state.log.replication.factor=1
transaction.state.log.min.isr=1
log.retention.hours=168
log.segment.bytes=1073741824
log.retention.check.interval.ms=300000
zookeeper.connect=zookeeper1:2181,zookeeper2:2181,zookeeper3:2181/kafka
zookeeper.connection.timeout.ms=6000
group.initial.rebalance.delay.ms=0
Run Code Online (Sandbox Code Playgroud)

创建了 jaas 文件:

KafkaServer {
    org.apache.kafka.common.security.scram.ScramLoginModule required
    username="admin"
    password="admin-secret"
};
Run Code Online (Sandbox Code Playgroud)

在/etc/profile.d中创建文件kafka_opts.sh:

export KAFKA_OPTS=-Djava.security.auth.login.config=/opt/kafka_2.12-2.5.0/config/kafka_server_jaas.conf
Run Code Online (Sandbox Code Playgroud)

但是当我启动kafka时,它会抛出以下错误:

[2020-05-04 10:54:08,782] INFO [Controller id=1, targetBrokerId=1] Failed authentication with kafka1/kafka1 (Authentication failed during authentication due to invalid credentials with SASL mechanism SCRAM-SHA-256) (org.apache.kafka.common.network.Selector)
Run Code Online (Sandbox Code Playgroud)

我使用每个服务器各自的IP而不是kafka1,kafka2,kafka3,zookeeper1,zookeeper2和zookeeper3,有人可以帮助我解决我的问题吗?

apache-kafka sasl-scram

2
推荐指数
1
解决办法
3万
查看次数

为什么我需要在创建卷时将主机名添加到 docker

我正在创建一个带有 -v 选项的 rabbitmq 容器来添加一个卷,奇怪的是,如果我不添加 --hostname 容器将无法获取卷的信息,例如:

我创建了一个这样的卷:

docker volume create --name rabbit
Run Code Online (Sandbox Code Playgroud)

后来我验证该卷已创建

docker volume ls
Run Code Online (Sandbox Code Playgroud)

然后我像这样创建容器:

docker run --name rabbitprueba -P -p 55555:15672 -d -v rabbit:/var/lib/rabbitmq rabbitmq:3.6.10-management
Run Code Online (Sandbox Code Playgroud)

我输入 localhost:55555 并输入用户名和密码,然后创建一个简单的队列,返回我的机器并停止并移除容器:

docker stop rabbitprueba
docker rm rabbitprueba
Run Code Online (Sandbox Code Playgroud)

当我运行相同的命令时:

docker run --name rabbitprueba -P -p 55555:15672 -d -v rabbit:/var/lib/rabbitmq rabbitmq:3.6.10-management
Run Code Online (Sandbox Code Playgroud)

我创建的队列消失了,但如果我重复相同的步骤(停止容器并删除它)并将 --hostname 添加到命令中,队列不会被删除:

docker run --hostname rabbitprueba --name rabbitprueba -P -p 55555:15672 -d -v rabbit:/var/lib/rabbitmq rabbitmq:3.6.10-management
Run Code Online (Sandbox Code Playgroud)

为什么会这样?,我做错了什么吗?,

rabbitmq docker

1
推荐指数
1
解决办法
657
查看次数