我正在用netflix云栈开发一个spring引导应用程序。并将每个模块(微服务)部署在单独的码头容器中。结构如下:这是在多主机网络上部署springboot云netflix的正确方法吗?
- 尤里卡
- Zuul
- 在微服务
- MySQL的
- Angular4 UI
- Keycloak业务逻辑 - 用户管理和认证
- ELK - 日志维护
- Hystrix
- 基普金
好了,所以面临着很多的问题,并在谷歌搜索上我已经部署在下列方式此事花一大堆的网络带宽后,我需要知道的是,如果是做正确的方式?
这里的限制是我已经提供了2个主机来测试这个配置,并且进一步的行动计划还没有。
所以这里是我所做的:我还没有使用我提到的完整堆栈。
服务器1
尤里卡
Zuul
ELK
服务器2
Keycloak
业务逻辑微服务
MySQL的
Anguar4 UI
尚未配置和使用猬和基普金呢。 因此,我在Eureka配置了所有需要在Eureka上注册的微服务的Server1 IP:PORT。 Zuul也同样如此(考虑到Eureka的IP:PORT)。
在Angular4 UI中,我给出了Zuul部署的URL:PORT,因为所有的服务都将通过Zuul调用。
这个我明白是正确的,因为服务需要知道尤里卡在哪里,休息可以通过尤里卡管理。
现在我的关键问题是,因为MySQL,ELK不能在Eureka上注册,那么在任何需要的地方给予IP:PORT和MySQL都是正确的。
与ELK的配置一样,ELK我的要求是所有的日志都位于这个共同的地方我已经使用了docker,卷装,但是我不知道如何在多主机环境下实现这个功能,我只能让docker把日志放在外部卷上,然后可能通过URL访问ELK,还没有测试过这个配置。
如果是这样的话,那么这个配置不是那么独立,如果我们认为它可以自己管理呢?
我已经配置我的码头组成使用“network_mode”:主机,因此主机可以完成主机码头通信。
所有我需要知道的是,我的配置/体系结构是否适用于多主机环境,以及将来适用于云环境? 如果不是,请亲切指导我改正路径。
谢谢! p.s.请原谅我的英语和语法,我已经尽最大努力让自己的知识变得可以理解,如果您需要更多的意见,请指出并提出问题。
其实这个项目会变得很大,目前我处于学习阶段,只需要知道如何正确处理这个堆栈,我就有一个Me + 3团队正在为此工作。我们计划在其中引入Kubernetes,但这是第二步,对于部署流水线,我们将使用Jenkins,因此计划了很多事情,但我希望逐步完成,并通过实际操作来了解每个层。 –
我的建议仍然存在。保持简单直到你需要引入额外的复杂性。以上所有这些东西都添加了。 – Strelok