一、创建服务配置中心应用
二、创建Spring Boot Admin Server应用
Admin Server将自身注册到服务注册中心,这样Admin Server就可以通过注册中心获取所有应用,并自动监控这样应用。
1、创建pom.xml文件
<?xml version="1.0"?> <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.seasy</groupId> <artifactId>spring-boot-admin-server</artifactId> <version>1.0.0</version> <packaging>jar</packaging> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.8.RELEASE</version> <relativePath/> </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> <!-- sprint boot admin server --> <dependency> <groupId>de.codecentric</groupId> <artifactId>spring-boot-admin-starter-server</artifactId> <version>2.0.5</version> </dependency> <!-- 启用安全认证功能 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency> <!-- Admin Server注册到注册中心,通过注册中心自动发现需要监控的应用 --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>Finchley.RELEASE</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> </project>
2、创建application.yml配置文件
server: port: 3030 spring: application: name: spring-boot-admin-server #启用的环境配置 profiles: active: - secure eureka: instance: hostname: ${spring.cloud.client.ip-address} instance-id: ${spring.cloud.client.ip-address}:${server.port} prefer-ip-address: true # lease-renewal-interval-in-seconds: 10 #表示eureka client发送心跳给server端的频率 health-check-url-path: /actuator/health #健康检查页面的URL路径 #注册给eureka时告诉eureka自己的密码 metadata-map: user.name: ${spring.security.user.name} user.password: ${spring.security.user.password} client: registry-fetch-interval-seconds: 5 #表示eureka client间隔多久去拉取服务注册信息,默认为30秒 #注册中心地址 service-url: defaultZone: http://root:123456@${eureka.instance.hostname}:7001/eureka/ #管理端点的配置 management: endpoints: web: exposure: include: "*" endpoint: health: show-details: ALWAYS #每个环境的配置根据 '---'分隔符隔开 --- spring: profiles: insecure --- spring: profiles: secure #登录admin server需要的用户名和密码 security: user: name: dev password: 123
3、启动类
Spring Security的配置信息也放在启动类中
@SpringBootApplication @EnableAdminServer //开启监控功能 @EnableEurekaClient //Admin Server也注册到注册中心 public class Main { public static void main(String[] args) { SpringApplication.run(Main.class, args); } /** * Spring Security配置 */ @Profile("insecure") //对应到application配置文件的spring.profiles属性值 @Configuration public static class SecurityPermitAllConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { //permitAll: 无条件允许访问 http.authorizeRequests().anyRequest().permitAll() .and().csrf().disable(); } } @Profile("secure") @Configuration public static class SecuritySecureConfig extends WebSecurityConfigurerAdapter { private final String adminContextPath; public SecuritySecureConfig(AdminServerProperties adminServerProperties) { this.adminContextPath = adminServerProperties.getContextPath(); } @Override protected void configure(HttpSecurity http) throws Exception { //登录成功后的处理器类 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(); } } }
三、创建Spring Cloud应用
1、创建pom.xml文件
不需要引入 spring-boot-admin-starter-client 依赖包
<?xml version="1.0"?> <project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <modelVersion>4.0.0</modelVersion> <groupId>com.seasy.springcloud</groupId> <artifactId>service-provider-1</artifactId> <version>1.0.0</version> <packaging>jar</packaging> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.8.RELEASE</version> <relativePath/> </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> <!-- spring boot --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <!-- spring cloud --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency> </dependencies> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>Finchley.RELEASE</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> </plugins> </build> </project>
2、创建application.yml配置文件
不需要配置 spring.boot.admin.client 相关的参数信息
server: port: 8001 spring: application: name: service-provider-1 eureka: instance: hostname: ${spring.cloud.client.ip-address} instance-id: ${spring.cloud.client.ip-address}:${server.port} prefer-ip-address: true client: service-url: defaultZone: http://root:123456@${eureka.instance.hostname}:7001/eureka/ #开启所有的管理端点给Admin Server进行监控 management: endpoints: web: exposure: include: "*" endpoint: health: show-details: ALWAYS
3、创建启动类
@EnableEurekaClient @SpringBootApplication public class Main { public static void main(String[] args) { SpringApplication.run(Main.class, args); } }
相关推荐
介绍一个基于Spring Boot 3.0、Spring Cloud 2022 & Alibaba的微服务RBAC权限管理系统。该系统可以实现微服务RBAC权限管理,通过RBAC权限管理机制对用户访问系统的权限进行限制,从而提高系统的安全性和可用性。同时...
本篇文章主要介绍了详解使用spring boot admin监控spring cloud应用程序,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
12Spring Boot Admin:微服务应用监控1
Spring cloud spring boot spring boot admin。spring demo,
codecentric 的Spring Boot Admin 是⼀个社区项⽬,能够监控和管理您的Spring Boot 应⽤。这些应⽤通过Http 注册到Spring Boot Admin 或者通过Spring Cloud的注册中⼼(如Eureka、Consul)来发现。UI是Spring Boot。...
主要介绍了使用Spirng Boot Admin监控Spring Cloud应用项目,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
Spring boot 是 Spring 的一套快速配置脚手架,可以基于spring boot 快速开发单个微服务,Spring Cloud是一个基于Spring Boot实现的云应用开发工具;Spring boot专注于快速、方便集成的单个个体,Spring Cloud是关注...
spring boot admin demo 源码 java 服务器 监控
赠送jar包:spring-boot-admin-server-cloud-2.6.2.jar 赠送原API文档:spring-boot-admin-server-cloud-2.6.2-javadoc.jar 赠送源代码:spring-boot-admin-server-cloud-2.6.2-sources.jar 包含翻译后的API文档...
spring boot 2.6.11 + spring cloud + Swagger3.0.0 微服务项目源码
基于 Spring Cloud Hoxton 、Spring Boot 2.2、 OAuth2 的RBAC权限管理系统 基于数据驱动视图的理念封装 Ant Design Vue,即使没有 vue 的使用经验也能快速上手 提供 lambda 、stream api 、webflux 的生产实践 ...
Spring Boot简化了基于Spring的应用开发,通过少量的代码就能创建一个独立的、产品级别的Spring应用。Spring Boot为Spring平台及第三方库提供开箱即用的设置,这样你就可以有条不紊地开始。多数Spring Boot应用只...
spring cloud 是基于Spring Cloud的云分布式后台管理系统架构,核心技术采用Eureka、Fegin、Ribbon、Zuul、Hystrix、Security、OAth、Mybatis、Ace-cache等主要框架和中间件,UI采用Bootstrap、jquery等前端组件 ...
《Spring Boot 2+Thymeleaf企业应用实战》_杨恩雄
核心技术采用Spring Boot 2.4.1、Spring Cloud (2020.0.0)以及Spring Cloud Alibaba 2.2.4 相关核心组件,采用Nacos注册和配置中心,集成流量卫兵Sentinel,前端采用vue-element-admin组件,Elastic Search自行集成...
1、前提:完成actuator对项目的监控2、springboot(二十):使用spring-boot-admin对spring-boot服务进行监控 - 纯洁
主要是介绍微服务的,spring boot + spring cloud,文档中有下载地址,
基于Spring Boot和Spring Cloud实现微服务架构学习(一).pdf基于Spring Boot和Spring Cloud实现微服务架构学习(一).pdf基于Spring Boot和Spring Cloud实现微服务架构学习(一).pdf基于Spring Boot和Spring Cloud实现...
基于Spring Boot和Spring Cloud实现微服务架构学习(一).docx基于Spring Boot和Spring Cloud实现微服务架构学习(一).docx基于Spring Boot和Spring Cloud实现微服务架构学习(一).docx基于Spring Boot和Spring Cloud...
基于 Spring Cloud 2021 、Spring Boot 2.7、 OAuth2 的 RBAC 权限管理系统源码