日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

Spring Boot Admin的使用

發布時間:2024/2/28 javascript 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spring Boot Admin的使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

    • 配置Admin Server
    • 配置admin client
    • 配置安全主鍵
    • Hazelcast集群

Spring Boot Admin的使用

前面的文章我們講了Spring Boot的Actuator。但是Spring Boot Actuator只是提供了一個個的接口,需要我們自行集成到監控程序中。今天我們將會講解一個優秀的監控工具Spring Boot Admin。 它采用圖形化的界面,讓我們的Spring Boot管理更加簡單。

先上圖給大家看一下Spring Boot Admin的界面:

從界面上面我們可以看到Spring Boot Admin提供了眾多強大的監控功能。那么開始我們的學習吧。

配置Admin Server

既然是管理程序,肯定有一個server,配置server很簡單,我們添加這個依賴即可:

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

同時我們需要在main程序中添加@EnableAdminServer來啟動admin server。

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

配置admin client

有了server,我們接下來配置需要監控的client應用程序,在本文中,我們自己監控自己,添加client依賴如下:

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

我們需要為client指定要注冊到的admin server:

spring.boot.admin.client.url=http://localhost:8080

因為Spring Boot Admin依賴于 Spring Boot Actuator, 從Spring Boot2 之后,我們需要主動開啟暴露的主鍵,如下:

management.endpoints.web.exposure.include=* management.endpoint.health.show-details=always

配置安全主鍵

通常來說,我們需要一個登陸界面,以防止未經授權的人訪問。spring boot admin提供了一個UI供我們使用,同時我們添加Spring Security依賴:

<dependency><groupId>de.codecentric</groupId><artifactId>spring-boot-admin-server-ui-login</artifactId><version>1.5.7</version> </dependency> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-security</artifactId> </dependency>

添加了Spring Security,我們需要自定義一些配置:

@Configuration public class WebSecurityConfig extends WebSecurityConfigurerAdapter {private final AdminServerProperties adminServer;public WebSecurityConfig(AdminServerProperties adminServer) {this.adminServer = adminServer;}@Overrideprotected void configure(HttpSecurity http) throws Exception {SavedRequestAwareAuthenticationSuccessHandler successHandler = new SavedRequestAwareAuthenticationSuccessHandler();successHandler.setTargetUrlParameter("redirectTo");successHandler.setDefaultTargetUrl(this.adminServer.getContextPath() + "/");http.authorizeRequests().antMatchers(this.adminServer.getContextPath() + "/assets/**").permitAll().antMatchers(this.adminServer.getContextPath() + "/login").permitAll().anyRequest().authenticated().and().formLogin().loginPage(this.adminServer.getContextPath() + "/login").successHandler(successHandler).and().logout().logoutUrl(this.adminServer.getContextPath() + "/logout").and().httpBasic().and().csrf().csrfTokenRepository(CookieCsrfTokenRepository.withHttpOnlyFalse()).ignoringRequestMatchers(new AntPathRequestMatcher(this.adminServer.getContextPath() + "/instances", HttpMethod.POST.toString()), new AntPathRequestMatcher(this.adminServer.getContextPath() + "/instances/*", HttpMethod.DELETE.toString()),new AntPathRequestMatcher(this.adminServer.getContextPath() + "/actuator/**")).and().rememberMe().key(UUID.randomUUID().toString()).tokenValiditySeconds(1209600);} }

接下來,我們在配置文件中指定服務器的用戶名和密碼:

spring.boot.admin.client.username=admin spring.boot.admin.client.password=admin

作為一個客戶端,連接服務器的時候,我們也需要提供相應的認證信息如下:

spring.boot.admin.client.instance.metadata.user.name=admin spring.boot.admin.client.instance.metadata.user.password=adminspring.boot.admin.client.username=admin spring.boot.admin.client.password=admin

好了,登錄頁面和權限認證也完成了。

Hazelcast集群

Spring Boot Admin 支持Hazelcast的集群,我們先添加依賴如下:

<dependency><groupId>com.hazelcast</groupId><artifactId>hazelcast</artifactId><version>3.12.2</version> </dependency>

然后添加Hazelcast的配置:

@Configuration public class HazelcastConfig {@Beanpublic Config hazelcast() {MapConfig eventStoreMap = new MapConfig("spring-boot-admin-event-store").setInMemoryFormat(InMemoryFormat.OBJECT).setBackupCount(1).setEvictionPolicy(EvictionPolicy.NONE).setMergePolicyConfig(new MergePolicyConfig(PutIfAbsentMapMergePolicy.class.getName(), 100));MapConfig sentNotificationsMap = new MapConfig("spring-boot-admin-application-store").setInMemoryFormat(InMemoryFormat.OBJECT).setBackupCount(1).setEvictionPolicy(EvictionPolicy.LRU).setMergePolicyConfig(new MergePolicyConfig(PutIfAbsentMapMergePolicy.class.getName(), 100));Config config = new Config();config.addMapConfig(eventStoreMap);config.addMapConfig(sentNotificationsMap);config.setProperty("hazelcast.jmx", "true");config.getNetworkConfig().getJoin().getMulticastConfig().setEnabled(false);TcpIpConfig tcpIpConfig = config.getNetworkConfig().getJoin().getTcpIpConfig();tcpIpConfig.setEnabled(true);tcpIpConfig.setMembers(Collections.singletonList("127.0.0.1"));return config;} }

本文的例子可以參考https://github.com/ddean2009/learn-springboot2/tree/master/springboot-admin

更多精彩內容且看:

  • 區塊鏈從入門到放棄系列教程-涵蓋密碼學,超級賬本,以太坊,Libra,比特幣等持續更新
  • Spring Boot 2.X系列教程:七天從無到有掌握Spring Boot-持續更新
  • Spring 5.X系列教程:滿足你對Spring5的一切想象-持續更新
  • java程序員從小工到專家成神之路(2020版)-持續更新中,附詳細文章教程

更多教程請參考 flydean的博客

超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術人生

總結

以上是生活随笔為你收集整理的Spring Boot Admin的使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。