网站怎么申请百度小程序,中国科技成就排比句,搜索引擎营销的作用,网站建设需要多少内存写在最前
如果这个项目让你有所收获#xff0c;记得 Star 关注哦#xff0c;这对我是非常不错的鼓励与支持。
源码地址#xff08;后端#xff09;#xff1a;mingyue: #x1f389; 基于 Spring Boot、Spring Cloud Alibaba 的分布式微服务架构基础服务中心
源…写在最前
如果这个项目让你有所收获记得 Star 关注哦这对我是非常不错的鼓励与支持。
源码地址后端mingyue: 基于 Spring Boot、Spring Cloud Alibaba 的分布式微服务架构基础服务中心
源码地址前端mingyue-ui: 基于 Vue3 TS Vite Element plus 等技术适配 MingYue 后台微服务
文档地址Wiki - Gitee.com
mingyue-visual
随着微服务的流行服务和服务之间的稳定性变得越来越重要。微服务是一种软件架构模式它将大型应用程序拆分为小型、自治的服务每个服务都有自己的特定功能。这种架构提供了很多好处如增加开发速度、提高灵活性和可伸缩性但同时也引入了一些挑战特别是涉及到服务之间的通信和协调。
明月可视化模块将担任确保微服务之间的稳定性实施健康检查和自愈机制以监测和自动修复服务的问题。实施监控和日志记录以及性能分析工具以及时检测和解决问题。制定紧急计划和容错机制以处理服务中断或失败时的情况。
明月可视化模块规划是存放监控中心如 mingyue-monitor监控中心 SpringBoot Admin、Xxl-Job分布式任务调度平台、Sentinel分布式系统的流量防卫兵等微服务所需的第三方可视化应用通过丰富该模块来健壮和拓展 mingyue多个维度保护服务的稳定性。
Spring Boot Admin
Spring Boot Admin 是一个开源的社区项目用于监控和管理 Spring Boot 应用程序。它提供了一个用户友好的 Web 界面通过该界面您可以查看和管理您的 Spring Boot 应用程序的各种运行时信息包括健康状态、性能指标、日志、环境属性等。Spring Boot Admin 可以帮助您更容易地监控和管理多个 Spring Boot 应用程序特别适用于微服务架构中的应用程序。
以下是 Spring Boot Admin 的一些主要特点和功能 应用程序列表 Spring Boot Admin 提供了一个仪表板用于显示注册的 Spring Boot 应用程序的列表以及它们的健康状态和其他有用的信息。 健康检查 它可以监测和报告应用程序的健康状态如果应用程序出现问题您可以立即看到并采取措施。 性能指标 Spring Boot Admin 可以收集和显示应用程序的性能指标包括 CPU 使用率、内存使用率、线程数等。 日志查看 您可以查看应用程序的日志文件有助于故障排除和分析。 环境属性 Spring Boot Admin 可以显示应用程序的配置属性这有助于查看应用程序的配置信息。 安全性 您可以配置安全性以确保只有授权用户可以访问 Spring Boot Admin 界面。 通知和警报 您可以设置通知和警报以在应用程序出现问题时及时收到通知。
Spring Boot Admin 可以作为一个单独的服务部署也可以集成到您的应用程序中。它使用 Spring Boot Actuator 来收集应用程序的信息因此您需要在要监视的 Spring Boot 应用程序中集成 Actuator。通过 Spring Boot Admin您可以集中管理多个应用程序轻松监控它们的状态以确保它们保持健康和可靠。
新建监控中心
添加 mingyue-monitor 模块 添加依赖 dependencies!-- SpringBoot Admin --dependencygroupIdde.codecentric/groupIdartifactIdspring-boot-admin-starter-server/artifactIdversion${spring-boot-admin.version}/version/dependency
!-- SpringCloud Alibaba Nacos --dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-discovery/artifactId/dependency
!-- SpringCloud Alibaba Nacos Config --dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-config/artifactId/dependency
!-- SpringCloud Alibaba Sentinel --dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-sentinel/artifactId/dependency
!-- web容器 --dependencygroupIdcom.csp.mingyue/groupIdartifactIdmingyue-common-web/artifactId/dependency
!-- Spring Security --dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-security/artifactId/dependency
dependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactId/dependency
/dependencies
监控权限配置
EnableWebSecurity
public class WebSecurityConfigurer {private final String adminContextPath;
public WebSecurityConfigurer(AdminServerProperties adminServerProperties) {this.adminContextPath adminServerProperties.getContextPath();}
Beanpublic SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception {SavedRequestAwareAuthenticationSuccessHandler successHandler new SavedRequestAwareAuthenticationSuccessHandler();successHandler.setTargetUrlParameter(redirectTo);successHandler.setDefaultTargetUrl(adminContextPath /);
return httpSecurity.headers().frameOptions().disable().and().authorizeRequests().antMatchers(adminContextPath /assets/**, adminContextPath /login, adminContextPath /actuator/**, adminContextPath /instances/**).permitAll().anyRequest().authenticated().and().formLogin().loginPage(adminContextPath /login).successHandler(successHandler).and().logout().logoutUrl(adminContextPath /logout).and().httpBasic().and().csrf().disable().build();}
}
自定义事件通知处理
Slf4j
Component
public class CustomNotifier extends AbstractEventNotifier {
protected CustomNotifier(InstanceRepository repository) {super(repository);}
OverrideSuppressWarnings(all)protected MonoVoid doNotify(InstanceEvent event, Instance instance) {return Mono.fromRunnable(() - {// 实例状态改变事件if (event instanceof InstanceStatusChangedEvent) {String registName instance.getRegistration().getName();String instanceId event.getInstance().getValue();String status ((InstanceStatusChangedEvent) event).getStatusInfo().getStatus();log.info(Instance Status Change: [{}],[{}],[{}], registName, instanceId, status);}});}
}
监控中心启动类
EnableAdminServer
SpringBootApplication
public class MingYueMonitorApplication {public static void main(String[] args) {SpringApplication.run(MingYueMonitorApplication.class, args);System.out.println((♥◠‿◠) 监控中心启动成功 ლ(´ڡლ) );}
}
启动配置
# Tomcat
server:port: 9100
# Spring
spring:application:# 应用名称name: mingyue-monitorprofiles:# 环境配置active: profiles.active
--- # nacos 配置
spring:cloud:nacos:# nacos 服务地址server-addr: nacos.serverdiscovery:# 注册组group: nacos.discovery.groupnamespace: ${spring.profiles.active}config:# 配置组group: nacos.config.groupnamespace: ${spring.profiles.active}config:import:- optional:nacos:application-common.yml- optional:nacos:${spring.application.name}.yml
接入监控中心
修改 mingyue-common-web 添加 actuator 模块 !-- SpringBoot Actuator --
dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-actuator/artifactId
/dependency
暴露监控端点 修改 application-common.yml 添加配置 management:endpoints:web:exposure:include: *endpoint:health:show-details: ALWAYSlogfile:external-file: ./logs/${spring.application.name}/console.log
启动测试
依次启动 mingyue-gateway、mingyue-auth、mingyue-system、mingyue-push、mingyue-oss、mingyue-monitor 测试监控中心。 监控中心搭建完成啦。可以测试启停项目观察监控是否能检测到。