为了保持我们的微服务,在Spring-boot中开发,在Cloud Foundry上运行,占用空间更小,我们正在寻找实现相同目标的最佳方法.
这方面的任何输入或指示都将受到欢迎.
从最小的依赖性开始,总是最好地构建应用程序,并且仅在需要时才添加.是否有更多良好实践可以使应用程序进一步缩小尺寸?
我们正在使用代码中心提供的spring-boot-admin-server
1.4.5版库来开发Boot-Admin仪表板。
一些应用程序正在通过Eureka向服务器注册自己,而一些应用程序直接使用spring-boot-admin-starter-client
1.4.5版本。
所有组件都部署在PCF环境中,并且通过HTTPS进行通信。无论采用哪种方式,应用程序都可以向管理员服务器注册,但是仅显示为OFFLINE。日志中未报告任何组件viz的错误。管理员服务器,管理员客户端,尤里卡服务器,尤里卡客户端。
但是,显示为“启动”的唯一应用程序是管理服务器本身。
在PCF中运行的spring-boot-admin-client应用程序的应用程序属性为:
spring:
application:
name: bootadmin-ms-charlie
boot:
admin:
url: https://bootadmin-dashboard.abc.intl.com
ssl:
trust_store:
path: classpath:ssl/sslcacert.jks
password: a-password
Run Code Online (Sandbox Code Playgroud)
由于两种注册方法的结果都是相同的,为了使应用程序通过Eureka路径进行注册,我跳过了此处的配置。
同样在本地工作也很好,管理仪表板可以按预期显示所有应用程序。
是否需要针对Cloud Foundry进行任何配置?还是我可能犯的任何明显错误?
任何建议都是最欢迎的。
- -编辑 - -
这是SBA服务器的日志,显示服务器与客户端之间的通信正常。如果这些日志提供任何错误指示,请指出。
OUT 2017-01-23 05:15:15.139 DEBUG 10 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : DispatcherServlet with name 'dispatcherServlet' processing POST request for [/api/applications]
OUT 2017-01-23 05:15:15.151 DEBUG 10 --- [nio-8080-exec-1] m.m.a.RequestResponseBodyMethodProcessor : Read [class de.codecentric.boot.admin.model.Application] as "application/json;charset=UTF-8" with [org.springframework.http.converter.json.MappingJackson2HttpMessageConverter@7df33a9f]
OUT 2017-01-23 05:15:15.163 DEBUG 10 --- [nio-8080-exec-1] o.s.w.s.m.m.a.HttpEntityMethodProcessor : Written [Application [id=3805ee6a, name=bootadmin-ms-charlie, …
Run Code Online (Sandbox Code Playgroud) 在我们基于微服务的架构中,我们希望为组成一个应用程序的所有微服务提供单一的运行状况输出/视图。
其中一种方法可能是创建另一个应用程序,该应用程序连接到所有已配置微服务的 /health 端点、聚合响应(JSON)并显示整个应用程序及其各个微服务的运行状况的状态。
但考虑到每个微服务可能会在健康状态中发出一组不同的内容和指标,因此可能需要为每个健康端点进行一些定制,而在我看来,这可能不是实现它的最佳方法。
考虑到 Hystrix-Turbine 项目如何帮助我聚合和显示集群的 Hystrix 指标的单一视图,是否有一个可用的项目或管道项目可以通过 Spring-Boot-Actuators 提供类似的功能?
感谢您提供任何帮助或指导。
我们的应用程序是通过使用Hystrix实现断路器模式而以非常脆弱的方式编写的.
整个应用程序是使用测试驱动的实践创建的,但是我们需要通过在方法上配置相同的方法来实现断路器策略.
以下是我们使用的示例配置 -
@HystrixCommand(commandProperties = {
@HystrixProperty(name = "circuitBreaker.enabled", value = "true"),
@HystrixProperty(name = "circuitBreaker.requestVolumeThreshold", value = "8"),
@HystrixProperty(name = "circuitBreaker.errorThresholdPercentage", value = "25"),
@HystrixProperty(name = "execution.isolation.thread.timeoutInMilliseconds", value = "2000")},
fallbackMethod = "retrieveMapFallback")
Run Code Online (Sandbox Code Playgroud)
任何人都可以评论,如果有可用的功能或机会在我的集成测试中测试驱动它(它加载整个WebApplicationContext,因此知道应用程序可用的所有配置)?
或者,如果根本无法在我的应用环境中验证这一点?
任何输入都是有价值的.
tdd spring-test circuit-breaker hystrix spring-cloud-netflix