深入理解Spring Cloud与微服务构建(第2版)
上QQ阅读APP看书,第一时间看更新

4.4.4 使用shell连接Actuator

通过REST API这种方式,开发人员通过Actuator可以很方便地了解运行中的程序的监控信息。Actuator也可以通过shell的方式连接,需要注意的是,在Spring Boot 1.5之后的版本已经将此废弃掉了。通过shell连接Actuator,需要在工程的pom文件加上shell的起步依赖spring-boot-starter-remote-shell,代码如下:

<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-remote-shell
   </artifactId>
</dependency>

在程序的pom文件加上spring-boot-starter-remote-shell起步依赖后,启动Spring Boot应用程序,在程序的控制台会输出连接shell的密码,密码是随机的,每次都不一样,大概格式如下:

Using default password for shell access: 45f17018-5839-478e-a1a1-06de4cc82d4f

与密码相对应的用户名是user,可以通过远程SSH连接shell,它的端口是2000,这是固定的。如果你是用Mac系统,这时可以用终端连接shell,在终端输入连接命令,命令如下:

ssh user@localhost -p 2000
Password authentication
Password: 
PTY allocation request failed on channel 0
  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v1.5.2.RELEASE)

连接上shell后,这时可以通过终端查看Actuator的各个端点。Spring Boot提供了4个特有的shell命令,如表4-3所示。

表4-3 Spring Boot提供的4个特有的shell命令

现在以第一个命令beans为例来做演示,连接上shell后,在终端输入beans,终端显示了应用上下文的注册信息,如图4-1所示。

▲图4-1 beans命令的输出信息

由图4-1可知,beans命令和通过请求REST API接口“/beans”的结果相同,都是以JSON的数据格式输出了应用上下文的所有bean的信息。其他命令就不一一展示了。

Actuator是Spring Boot的一个非常重要的功能,Actuator为开发人员提供了Spring Boot的运行状态信息,通过Actuator可以查看程序的运行状态的信息。