SpringBootAdmin项目创建

帮助我们来监控SpringBoot健康状况,那么其实SpringBoot Admin呢,跟Actuator的功能是一样的,

他们两个最大的区别是什么呢,我们讲的Actuator,监控到的信息,需要通过一个URI来访问,并且返回的

是一堆字符串,那么我们还要拿到这些JSON格式的字符串,去通过在线解析,做JSON解析这样的工具,我们才能

更方面的看到里面的内容,其实即便是这样呢,拿到解析出来的结果呢,查看信息的时候也不是那么太方便,

那么其实SpirngBoot Admin这个工具呢,就是将这些信息,健康信息,这些JSON字符串,在他的平台下,以一个URI

报表的形式,做显示的,那么也就是说,我们用户在查一些报告的时候,状态信息的时候,我们再通过他的UI界面去

查看,这样对于我们获取一些信息,会变得更加方便一些,所以这是我们SpringBoot Admin,相比Actuator这个小插件,

他最大的一个区别,那我们先来介绍一下SpringBoot Admin,如果我们项目当中想要使用SpirngBoot Admin,SpringBoot

健康监控检查的时候,我们需要有两个概念,一个是服务端,一个是客户端,也就是说SpringBoot Admin,其实它是通过他

的服务端程序,然后去监听他的客户端,在他的客户端当中,根据所监听到的信息,拿到服务端当中,在他的UI当中做展示,

这样的一个结构,所以如果我们的项目当中要用它,那我们需要干嘛呢,第一步,去发现我们的服务端,使用SpringBoot Admin

的步骤,第一步我们先需要搭建服务端,那么其实他的服务端也是一个SpringBoot的项目,那么我们需要去创建一个SpringBoot

项目,怎么创建呢,我们是用集成IDEA工具去创建也可以,还有我们之前讲过的快速创建也可以,比如我们就通过在线创建的

方式

spring.io

https://start.spring.io/

这里我们要创建是maven project,我们用个是JAVA,我们一直用的是1.5.12版本,接下来就是我们项目的一些信息,比如groupId,

我们还是叫com.learn,然后artifactId叫springboot-server,然后我们选择相应的坐标,我们还是用一个WEB启动器就可以了,

然后Generator Project,这个时候我们会发现,这个项目已经被我们创建了,并且现在正在下载,然后我们把这个项目拿过来,

启动类有了,配置文件也有了,pom文件我们打开看一下,这块搞定以后呢,我们接下来搭建这个server,首相我们要去访问SpringBoot

Admin的官网,这个工具他放到了github上,我们访问github的首页

github.com

https://github.com/

在这里我们去搜,搜spring boot admin

https://github.com/search?q=spring+boot+admin

打开了我们来看一下,这是springboot工具的一些选择,第一个不是,我们看他的语言,它是JavaScript的,第二个是

codecentric/spring-boot-admin,是Java的,这个是我们所要的,然后我们点他进来,这个时候我们打开spring boot admin

的首页

https://github.com/codecentric/spring-boot-admin

在这里我们可以看到,spring boot admin 工具,他的社区活跃度还是挺高的,然后我们往下看,他有一个让你当前用哪个版本的

选择

Reference Guide

这里有1.3.7的,有1.4.6的,有1.5.7的,还有2.0.0的,2.0.0是刚出来的,我们用1.5.7的,这样我们就选中它进来

https://codecentric.github.io/spring-boot-admin/1.5.7/

然后我们看一下,首先这里做了一个spring boot admin的介绍,什么是spring boot admin,这个大家也能够翻译出来,

它是一个监听spring boot的社区项目,然后他这里通过注册,客户端的注册,使用Spring Cloud的这样一个程序,通过注册

这样一个机制,然后通过UI来显示他的一些信息,并且告诉你这个UI是通过AngularJS去做的,

codecentric’s Spring Boot Admin is a community project to manage and monitor your Spring Boot 

® applications. The applications register with our Spring Boot Admin Client (via HTTP) or are 

discovered using Spring Cloud ® (e.g. Eureka, Consul). The UI is just an AngularJs application 

on top of the Spring Boot Actuator endpoints.

那么往下看,看这里,pom.xml

<dependencies>
    <dependency>
        <groupId>de.codecentric</groupId>
        <artifactId>spring-boot-admin-starter-server</artifactId>
        <version>1.5.7</version>
    </dependency>
</dependencies>

2.1. Setting up Spring Boot Admin Server

设置你当前服务端的pom文件,也就是你现在要搭建的是一个服务端,你必须要把这个坐标导入,这个坐标里放的是什么呢,

就是spring-boot-admin-starter-server,说白了就是服务端的一个启动器,我们用的版本是1.5.7的,然后这里有个地方我们

需要注意,我们现在用的是1.5.7,还有1.4.6的,其实这两个版本是有一个区别的

https://codecentric.github.io/spring-boot-admin/1.4.6/

<dependency>
    <groupId>de.codecentric</groupId>
    <artifactId>spring-boot-admin-server</artifactId>
    <version>1.4.6</version>
</dependency>
<dependency>
    <groupId>de.codecentric</groupId>
    <artifactId>spring-boot-admin-server-ui</artifactId>
    <version>1.4.6</version>
</dependency>

在jar包的结构上,是有区别的,在1.4.6的这个版本下呢,我们需要导入两个坐标,一个是他的server启动器,还有一个是他的UI,

但是在1.5以后呢,他把这两个jar包整合成一个了,所以就没有我们看到的两个坐标,看一下1.5.7,只有一个坐标,这是1.4.6和

1.5.7两个的区别,但是你要用1.4.6,我们就把dependecy拷贝过来,然后加入到我们的server的pom文件当中,这样我们就完成了

第一步导入相应的坐标,我们把它整理到笔记当中,第一步搭建一个SpringBoot项目,我们是通过快速构建的方式构建的,

第一步创建项目,然后第二步访问springboot admin的首页,就是这里

https://github.com/codecentric/spring-boot-admin

这是第二个步骤,第三个步骤是什么呢,需要在项目当中修改pom文件,添加坐标,添加spring boot admin的坐标,

<dependency>
	<groupId>de.codecentric</groupId>
	<artifactId>spring-boot-admin-starter-server</artifactId>
	<version>1.5.7</version>
</dependency>

这是第二步,第三步我们要干嘛,我们还是打开首页往下看,我们除了要在server端添加坐标以外,我们还需要修改我们的启动器,

我们server端的启动器,在启动类上添加这三个坐标

https://codecentric.github.io/spring-boot-admin/1.5.7/

@Configuration
@EnableAutoConfiguration
@EnableAdminServer
public class SpringBootAdminApplication {
    public static void main(String[] args) {
        SpringApplication.run(SpringBootAdminApplication.class, args);
    }
}

这三个注解,其实这三个注解我们只要加一个就可以,加一个EnableAdminServer就可以,这两个不用加了,为什么不用加了,

你看这两个,一个叫Configuration,一个叫EnableAutoConfiguration,这两个注解我们在讲SpringBoot核心注解的时候讲到过,

也就是我们的启动类,其实是自带这两个注解的,@SpringBootApplication注解当中,已经包含了,那既然是这样的话,就不用再添加那

两个注解了,只要加最后一个就可以了,

@EnableAdminServer
@SpringBootApplication
public class SpringbootServerApplication {

	public static void main(String[] args) {
		SpringApplication.run(SpringbootServerApplication.class, args);
	}

}

这是第三步了,修改启动类,添加@EnableAdminServer这个注解,这是第三步,第四步我们看看还要做什么呢,再往下就是客户端的了,

相关的配置信息就没有了,服务端就配置完事了,这样就完成了一个spring boot admin的一个搭建,接下来我们再看客户端,那么客户端

是谁呢,其实客户端就是我们需要监控的工程,这就是客户端,在我们项目当中,我们是不是有一个springboot helloworld的一个工程,

打算我们用springboot admin去监控的,那么他就是客户端,可是这个客户端并没有和服务端建立一定的联系,那么我们要告诉他

让这个服务端去监听这个客户端,去对他做健康检查,我怎么通知他呢,这是客户端的信息,首先你要去客户端去添加一个坐标,这个

坐标是什么呢,导入客户端的一个启动器,我们把这个坐标拿过来,

<dependency>
    <groupId>de.codecentric</groupId>
    <artifactId>spring-boot-admin-starter-client</artifactId>
    <version>1.5.7</version>
</dependency>

打开我们需要监听的客户端项目,打开pom文件,然后把client坐标加入进去,第一步修改客户端的pom文件,添加依赖,第二步

我们再看一下,需要修改配置文件

spring.boot.admin.url: http://localhost:8080  
management.security.enabled: false 

如果你是yml你要改成这个,这两个是什么呢,下面这个应该不陌生了,这是访问权限的一个设置,关键是上面这个,

spring.boot.admin.url,它是通过客户端的信息,我们在这不都是看到客户端的信息,要将这些信息发送给哪个服务端,

这里就是配置我们服务端的URL的,然后客户端会将服务端发送这些信息,发送到我们服务端,服务端拿到这些信息以后,

在UI做一些人性化的展示,我们需要把它copy到客户端文件当中,management.security.enabled这个在我们之前的

文件当中已经有了,这个已经有过了,spring.boot.admin.url: http://localhost:8080,

我们只要把这个拿过来,然后放到这儿,后面的URL要根据你当前服务端的地址,这块配置的是你当前服务端的地址,

端口来做一个修改,我们先把它整理到笔记当中,先看服务端,服务端没有设置端口就是8080,我们改一下吧,

我们给服务端的server设置一个端口,它是9090

server.port=9090

服务端的端口,然后客户端,就是用默认的,8080,一个是9090,然后这一块我们是不是要写9090

spring.boot.admin.url=http://localhost:9090

我们刚刚把服务端的改成9090的了,这一块写的是9090的端口,服务端就在我本机上,所以我用localhost,

当然你也可以使用127.0.0.1,表示springboot amdin服务端的IP地址以及端口号,

修改客户端的appliaction.properties的配置文件,咱们再往下看,还有其他的,那么这里就没有说其他的了,

这里是发现Spring Cloud微服务的一些监控,监控eureka,那我们现在项目搭建好了,我们接下来就可以启动一下,

看看是如何做项目监控的,首先我们来启动服务端,找到他的启动类,观察控制台,启动没有问题,然后这个时候我们就可以

通过9090端口,去访问我们的服务端了,我们看看访问会得到一个什么样的效果

localhost:9090

这个时候我们可以看到一个页面,这个页面里有一些信息,我们现在看的是Applications菜单下的,但是我们看这里什么都没有,

没有的原因是什么呢,是因为我们现在被监听的客户端还没有启动呢,所以我们现在回来去把被监听的客户端启动,启动完了以后,

我们再来刷新一下,其实马上在他的管理页面里,会马上显示被监听的信息了,我们可以在这里去看他的详细信息,就可以看到当前

程序的详细监控信息,那么至于这些详细信息表示什么含义呢,其实整个过程还是比较简单的
<project xmlns="http://maven.apache.org/POM/4.0.0" 
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
	http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.learn</groupId>
  <artifactId>springboot-server</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <name>springboot-hello</name>
  <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.5.12.RELEASE</version>
  </parent>
  
	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
		<java.version>1.8</java.version>
	</properties>
  
  <dependencies>
  <!-- springBoot的启动器 -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
	<dependency>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-test</artifactId>
		<scope>test</scope>
	</dependency>
    <dependency>
        <groupId>de.codecentric</groupId>
        <artifactId>spring-boot-admin-starter-server</artifactId>
        <version>1.5.7</version>
    </dependency>
  </dependencies>

	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>

</project>
server.port=9090
package com.learn.springbootserver;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

import de.codecentric.boot.admin.config.EnableAdminServer;

@EnableAdminServer
@SpringBootApplication
public class SpringbootServerApplication {

	public static void main(String[] args) {
		SpringApplication.run(SpringbootServerApplication.class, args);
	}

}
<project xmlns="http://maven.apache.org/POM/4.0.0" 
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
	http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.learn</groupId>
  <artifactId>springboot-hello</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <name>springboot-hello</name>
  <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.5.12.RELEASE</version>
  </parent>
  
	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
		<java.version>1.8</java.version>
	</properties>
  
  <dependencies>
  <!-- springBoot的启动器 -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
	<dependency>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-test</artifactId>
		<scope>test</scope>
	</dependency>
	<!-- <dependency>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-actuator</artifactId>
	</dependency> -->
	<dependency>
	    <groupId>de.codecentric</groupId>
	    <artifactId>spring-boot-admin-starter-client</artifactId>
	    <version>1.5.7</version>
	</dependency>
  </dependencies>

	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>

</project>
#server.port=8888
hello=China
num=${random.int}
#msg=Hello World ${hello}
msg=Hello World ${hello} ${num}
#server.port=${random.int[1024,9999]}

#management.security.enabled=false

spring.boot.admin.url=http://localhost:9090
management.security.enabled=false
package com.learn.springboothello;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class SpringbootHelloApplication {

	public static void main(String[] args) {
		SpringApplication.run(SpringbootHelloApplication.class, args);
	}

}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值