官网地址

程序猿升级课

热爱开源,喜欢摸索


SpringBoot可插拔开箱即用之组件开发

4279695-c923b4fc8bc503f8

问题

由于适应公司不断发展带来的,售后问题,要求我们要对所有服务进行,主动检查.避免服务异常,造成损失。在这里将该项目的思路及springboot的自动化配置使用分享给大家,希望共同进步。学习。有共同爱好的童鞋,可以点击关注小编,如果看完本文想学习下源码,可以私信我,发送autoconfig关键字获取,地址。

目前的方式是这样:

网关部门定时扫描各个服务,进行监控状态检查,并通知给指定负责人.

实现逻辑:

1. 要求每个线上服务暴露一个/status 地址,并返回指定json,将项目中依赖的数据库连接信息返回

实现要求:

1. 组件式开发

2. 引入即可用,自动监控项目中数据库连接

3. 暴露一个指定的可供网关扫描的地址

技术实现方式:

1. 引入spring-boot-autoconfigure自动配置

2. 引入spring-boot-actuator 使用EndPoint 定制暴露给网关的扫描地址

1. 在autoconfigure中实现定制url的方式是这样的,而不是使用@RequestMapping注解,id就是我们的url,其他属性见注释,非常清楚

4279695-06d53d5dcb3fff40

2. 加入配置信息,交给合项目负责人维护

4279695-c7ce44e6d2f6ee98

3 .导入我们定制的节点

4279695-d74dfe4e1fc3db1b

4. 数据库的健康我们按照Spring的套路来

首先定义个接口,然后是抽象模板类,然后是各个数据源的实现类

4279695-1af5a31215611d8a

Mongo检查

4279695-a0dbbb11f338e515

消息队列检查

4279695-197d0a4d03740aab

5. 将以上数据检查组件都加入到配置中

注意,要判断,如果服务中没有引入过 Mongodb等数据源,就不要注入,否则强制注入会保存,这里要注意下,这几个注解的意思。这里就不介绍了。

4279695-5240a74574acb93a

6 . 将这些配置交给autoconfigure 管理,通过服务中的springboot main 启动中@EnableAutoConfiguration 引入,我们组建中的配置。

4279695-01fb5b1db08f2e91

7 .重点来了,看我们的工具类怎么写的,逻辑就是

从上下文中获取到我们项目中依赖的数据源,首先要判断是否存在,并实现IStatus继承抽象接口中status()方式返回boolean来判断是否数据源连接状态,并返回json给网关,执行EndPoint中的invoke方法返回

4279695-57289a64aeabf0bb
4279695-861f17a2a349de6e

8 .使用方法

application.yml 中添加

4279695-78bc64dc78bd908e

应用启动验证

4279695-c67ee20f342af1e1

接口验证

4279695-79293785d695ecf4

看到这里,基本就介绍完了,是不是很简单,其实没什么难点,spring是契约式开发,没有会不会一说,只有会不会用,看的多了就会了。最后感谢你的阅读!感兴趣的同学可以关注小编,会不断分享实战知识给大家。如果你发现有错误,请提出宝贵意见,会及时改正!谢谢

4279695-6968ef0d32794de5
posted @ 2018-02-09 11:47  chinesszz  阅读(222)  评论(0编辑  收藏  举报
ヾ(≧O≦)〃嗷~