软件工程-02-Monitor 监控
软件工程
软件如果想持续的发展下去,需要良好的理论化知道。
代码编写好了,是不是感觉测试完成之后,上线依然是困难重重?
上线完成后,如何做项目的监控报警?
这其中需要一系列的知识和指导。
拓展阅读
《人月神话》
软件工程
拓展阅读
2019-03-31 02:18:47 |
Software
软件工程-01-上线
监控
如果项目运行,我们却不知道项目的具体运行情况。这其实是一件非常可怕的事情。
监控方式
例如 Cat 等常见工具,或者自行研发(二次开发)。
核心:基于项目日志,进行相关的项目运行监控+报警。
报警方式
邮件
短信
钉钉
微信
电话
监控什么
一个项目有那么多东西需要监控,你可能会问,我要监控什么?
监控太多,等于没有监控。
监控太少,又缺乏有些信息。
参考...
2019-03-31 02:18:47 |
Software
软件工程-00-概览
软件工程
软件如果想持续的发展下去,需要良好的理论化知道。
代码编写好了,是不是感觉测试完成之后,上线依然是困难重重?
上线完成后,如何做项目的监控报警?
这其中需要一系列的知识和指导。
正常的项目流程
产品端
产品根据业务需要或者调研,提出需求。
提供完整详细的需求文档。
开发
开发主要经过下面的步骤
1、 需求分析+项目立项
如果不合理则进行调整或者驳回。(一般产...
2019-03-31 02:18:47 |
Software
Spring Config 与分布式配置中心
spring property
利用 spring 的占位符属性,可以动态替换属性值。
动态替换
可以在 spring 运行的时候,动态推送生效。
甚至不用重启项目。
配置设置
key
value
AppName
mode=offline/dev/test/pre/dev
version
remark
安全性
配置的加密+验签。
拓展阅读
spring-prop...
2019-03-28 10:37:19 |
Java
Spring 路由最佳实践
Spring 最佳路由方式
不同的业务,需要走不同的实现。
除了 if/else,我们还有其他的方式吗?
接口的定义
验证接口
interface IValid() {
void valid(ValidReq req);
}
不同的实现
验证金额
@Service
class ValidNum implements IValid() {
@O...
2019-03-28 01:47:51 |
Java
Spring @PostConstruct @PreDestroy
@PostConstruct & @PreDestroy
PostConstruct 注释用于在依赖关系注入完成之后需要执行的方法上,以执行任何初始化。此方法必须在将类放入服务之前调用。
支持依赖关系注入的所有类都必须支此注释。
即使类没有请求注入任何资源,用 PostConstruct 注释的方法也必须被调用。
只有一个方法可以用此注释进行注释。应用 PostConstru...
2019-03-28 01:47:51 |
Java
Spring Bean lifecycle 生命周期
业务背景
需要不同的环境,有不同的实现。不单单是配置的变化。
一个环境
使用新的 rocket mq
原来环境
使用旧的 active mq
限制
使用同一份代码
解决问题的思路
spring 懒加载
因为消息的监听是基于 Container 监听者模式实现的,希望通过指定为特定环境指定为是否惰性加载。
后来发现行不通。
因为一般的 property 配置框架,都是监...
2019-03-28 01:47:51 |
Java
Data Struct-TreeMap 排序的新姿势
场景
自定的 filter 等常见实现,如果我们希望指定优先级顺序,一般会定义注解。
根据 order() 属性去指定相关的顺序。
问题
如果我们需要排序,怎么处理?
方法一、定义一个全新的对象
伪代码如下:
包含过滤器和顺序的对象
class FilterBo {
private Filter filter;
private int order;
}...
2019-03-28 01:47:51 |
Java