使用Prometheus监控Spring Boot服务监控状态并预警
当我们开发了一个Web Api之类的服务上线后,总以为可以松一口,可以舒心的撸几把游戏,但是事与愿违,有时候服务突然就挖塌了,而且还不自知,还在开开心心的排位赛,此时上级领导、客户、客户的领导都来慰问、鼓励,给你加油、打气。当然这只是一种情况,但足以看出服务监控还是很重要的。
当我们开发了一个Web Api之类的服务上线后,总以为可以松一口,可以舒心的撸几把游戏,但是事与愿违,有时候服务突然就挖塌了,而且还不自知,还在开开心心的排位赛,此时上级领导、客户、客户的领导都来慰问、鼓励,给你加油、打气。当然这只是一种情况,但足以看出服务监控还是很重要的。
入职了新公司,一切肯定从熟悉业务、代码开始,在这几天拿到代码和数据库表名,字段名等看了看,说实话,有点颠覆了我的想法,因为我之前在公司大家都形成了一种默契,代码那些虽然说不是很规范,但是看着起码舒服啊。新公司的代码是,一会儿大写,一会小写,一会儿代码格式化一会不格式话,还有git提交规范也不统一。甚是恼火,所以这次就借助Alibaba Java Coding Guidelines
来先行规范一下代码风格吧。
也是上文中的项目,在前面也有介绍,这个项目是一个C/S项目,客户端是C#+Devexpress,因为涉及到某公司的核心框架,所以框架部分的代码是没有给我们,只是给了业务部分的源码,服务端也是,基于其公司核心框架开发,所以能拿到是也只有业务代码。
也有好几周没写东西了,主要是上上周被调去前公司产品组做前端了,然后这周刚换工作也比较忙,以至于无暇他顾,着实惭愧啊。这周新工作主要是C/S项目,C端使用C#+Devexpress,S端使用的Spring MVC+Spring Boot(Spring MVC是之前老项目,这次的新业务准备用Spring Boot,所以才有了这二者)。在项目搭建过程中想到几个比较实用的思路,所以,这里就来总结记录一下。
今天正在刷牙的时候,一个朋友叫我给他弄一个MSSQL
,因为之前自己买的主机装有Docker环境,所以第一反应就是使用Docker
来安装,原以为就是一句脚本的问题,结果还是花了一些时间,这里记录一下所遇到的问题
最近工作需要,把我当做专业前端使用了,让我开发配合后端开发一个门户项目,其实之前做过很多管理类的系统和平台,有基于JQuery和纯原生JS开发的,也有基于Vue开发是,但是还没有用过Ant Design of Vue
,在开始开发之前,我先和需求人员通过清楚项目的背景和项目需要,然后与公司专业前端沟通了一下他们使用的技术栈,最后确定了用ANTD PRO VUE
,所以就有了这篇文章。
当我们的Java程序上线之后,有时候会由于未能及时发现自己写的bug,导致程序抽风,比如:CPU、内存持续升高,堆栈溢出等,这时候我们可以借助JVM在线诊断分析工具–Arthas快速定位线上问题
在微服务中,会涉及到服务网关和服务注册等,服务网关的话,在Java中有许多的开源方案,在.net的话就比较少了可以用Kong
、Ocelot
、Surging
还有新起的incubator-apisix
。服务注册中心有Consul
、Spring Cloud
、Nacos
、zookeeper
、etcd
等。这里的话我们就借助Kong
和Consul
来实现服务网关以及服务的注册发现。
Spring Boot
遵循约定大于配置的思想为我们省去了繁杂的XML配置,其为我们提供了许多诸如:spring-boot-starter-web
、spring-boot-starter-data-jpa
、spring-boot-starter-data-redis
等常用的Starter
组件,使得我们整合各种常用组件时显得非常简便快捷,那么这个Starter
为我们做了什么工作?让我们省去了各种繁杂的整合过程。
一般一个项目就只会用到一个数据库,但是有时候遇到比较复杂的一点的项目就会涉及到多个数据库,比如在业务量较大的时候会涉及到分库分表,如果不增加数据库代理层的话,就只有在项目中来处理。还有像我们现在在一个项目中会涉及到GBase
、MySQL
、DB2
这三种数据库,这种情况就涉及到多种数据库连接。那么我们Spring Boot中如何实现多数据库连接呢?