博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SpringCloud(5):快速搭建你的监控中心
阅读量:6469 次
发布时间:2019-06-23

本文共 4486 字,大约阅读时间需要 14 分钟。

img_9a4d6cd6913e2116ec0a5cbe81d80866.png
Spring Boot Admin
img_353b9b2b20b8ef4384e9fff3967edd27.png
实例生命状态
img_0a067c6760a2b34cb3cc5418fab887bb.png
实例的细节信息
img_ae86de17043cc9dbacb1a5e82663af3b.png
实例的信息清单

Spring Boot Admin

看到这几个页面是不是觉得还是蛮炫酷的,毕竟是Spring自家的产品,做的还是可以的。

我们就来简易的搭一下这个监控中中心

1. 新建Springboot项目

org.springframework.boot
spring-boot-starter-web
de.codecentric
spring-boot-admin-starter-server
de.codecentric
spring-boot-admin-server-ui
org.springframework.cloud
spring-cloud-starter-netflix-eureka-client
org.springframework.boot
spring-boot-starter-security
org.springframework.boot
spring-boot-starter-test
test

2.启动类注解配置

@SpringBootApplication@EnableAdminServerpublic class MonitorApplication {    public static void main(String[] args) {        SpringApplication.run(MonitorApplication.class, args);    }}

@EnableAdminServer:标明组件名称

用过这么多Spring的组件之后,我们应该是对这种类似的注解已经见过很多次了。

3.SpringSecurity 的配置类

/** * @Author:LiuPu * @Date:2018/9/26 14:48 * @Description: * @Version 1.011 */@Configurationpublic class SecuritySecureConfig extends WebSecurityConfigurerAdapter{        private final String adminContextPath;        public SecuritySecureConfig(AdminServerProperties adminServerProperties) {            this.adminContextPath = adminServerProperties.getContextPath();        }        @Override        protected void configure(HttpSecurity http) throws Exception {            // @formatter:off            SavedRequestAwareAuthenticationSuccessHandler successHandler = new SavedRequestAwareAuthenticationSuccessHandler();            successHandler.setTargetUrlParameter("redirectTo");            http.authorizeRequests()                    .antMatchers(adminContextPath + "/assets/**").permitAll()                    .antMatchers(adminContextPath + "/login").permitAll()                    .anyRequest().authenticated()                    .and()                    .formLogin().loginPage(adminContextPath + "/login").successHandler(successHandler).and()                    .logout().logoutUrl(adminContextPath + "/logout").and()                    .httpBasic().and()                    .csrf().disable();            // @formatter:on        }    }

WebSecurityConfigurerAdapter:优先级高于ResourceServerConfigurer,用于保护oauth相关的endpoints,同时主要作用于用户的登录(form login,Basic auth )WebSecurityConfigurerAdapter是默认情况下Spring security的http配置;ResourceServerConfigurerAdapter是默认情况下spring security oauth 的http配置。

WebSecurityConfigurerAdapter部分源码:

public abstract class WebSecurityConfigurerAdapter implements WebSecurityConfigurer
{ protected void configure(AuthenticationManagerBuilder auth) throws Exception { ...... } protected void configure(WebSecurity web) throws Exception { ...... } protected void configure(HttpSecurity http) throws Exception { ........ }}

4.配置文件

server.port=18080spring.application.name=monitoreureka.client.service-url.defaultZone=http://localhost:10000/eureka/management.endpoints.web.exposure.include=refresh,health,info,env,loggers,metrics,trace,dumpmanagement.endpoint.health.show-details=alwaysspring.security.user.name=aboyliupuspring.security.user.password=lp1234eureka.instance.metadata-map.user.name=aboyliupueureka.instance.metadata-map.user.password=lp1234

这里有一个细节需要说明一下:

SpringBoot 2.0 默认是关闭了自带的一些接口,比如说实例的健康状态,心跳之类的
management.endpoints.web.exposure.include=refresh,health,info,env,loggers,metrics,trace,dump
这里需要开放一些端口
eureka.client.service-url.defaultZone=http://localhost:10000/eureka/:把实例注册到注册中心
spring.security.user.name=aboyliupu
spring.security.user.password=lp1234
eureka.instance.metadata-map.user.name=aboyliupu
eureka.instance.metadata-map.user.password=lp1234:
登录的账号和密码及其配置

5.关于SpringSercurity的配置

在整个实例种,SpringSercurity这么庞大的框架其实只是用到了其作用的九牛一毛----登录拦截.

如果细说,这个登录界面有没有用呢?俗话说的好,防君子不防小人,这个就要看字自己斟酌。

6.总结

我们搭这样一个监控中心的意义是什么?

比如说,你们公司的项目使用的是SOA框架,在入口上的软硬件上做了Nginx+服务器集群,同时在软件上也做了集群,例如注册中心集群.....
尽管我们拥有这么完美的熔断机制和预防机制,但是实例出了问题我们还是需要去解决问题。这个时候监控中心监测实例健康和心跳的作用就起了大作用了。我们就能一眼看出是哪些实例挂掉了。

转载地址:http://eyjko.baihongyu.com/

你可能感兴趣的文章
[LeetCode] Minimum Depth of Binary Tree
查看>>
,net运行框架
查看>>
Java 中 Emoji 的正则表达式
查看>>
Mixin Network第一届开发者大赛作品介绍- dodice, diceos和Fox.one luckycoin
查看>>
安卓Glide(4.7.1)使用笔记 01 - 引入项目
查看>>
AndroidNote
查看>>
中金易云:为出版社找到下一本《解忧杂货店》
查看>>
Flex布局
查看>>
Material Design之 AppbarLayout 开发实践总结
查看>>
Android中的SurfaceView详解
查看>>
Flutter之MaterialApp使用详解
查看>>
DataBinding最全使用说明
查看>>
原生Js交互之DSBridge
查看>>
Matlab编程之——卷积神经网络CNN代码解析
查看>>
白洋淀周末游
查看>>
三篇文章了解 TiDB 技术内幕 —— 说计算
查看>>
copy strong weak assign的区别
查看>>
OpenCV 入门
查看>>
css 3D transform变换
查看>>
ele表格合并行之后的selection选中
查看>>