目录

一、关于springboot

二、springboot的实践

2.1发布一个rest的api

2.2端点

2.3健康检查

2.4远程监控

一、关于springboot

由来:spring1.0-2.0用xml配置bean,很好,当xml多起来的时候配置很复杂。于是spring3.0出现了java注解。但是我们并没有改变一个事实,spring到4.0都没有改变javaweb的运行模式,我们非得把war包部署到server上,才可以对外提供服务。那么我们能不能用main方法启动一个服务呢?于是boot就有了。

  springboot创建的应用程序是jar包,当然也可以打包成war放到tomcat,我现在就是这么做的。

二、springboot的实践                                                                                                                                         2.1发布一个rest的api

建立个springboot工程,然后我们建立一个这样的application。

访问以下/hello,我们能得到这样的回应。

当然我们一般把controller拆出去,符合单一职责。

就像这样的。事实上我们还可以省略上面的get ,也就是@RequestMapping(value = "/hello"),默认是get方法,不过我是不赞成的,而且一般我们都用getMapping之类的,这样可读性会好好多。

2.2 端点

提到端点就要说到Actuator(执行器)插件,把刚刚的例子加上这个依赖再跑一遍。

  <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

这里介绍一个名词metrics,度量指标

加入以上依赖后跑起来刚刚的demo,日志打印出了执行器的相关信息

现在我们访问以下试试

首先是info

访问/metrics

401鉴权失败,我们查看日志

: Full authentication is required to access actuator endpoints. Consider adding Spring Security or set 'management.security.enabled' to false.

也就是说访问端点信息需要身份的认证,请将management.security.enabled设置为false来关闭验证功能,好像1.5以前的版本没有这个功能。那么,我们在application.yml设置management.security.enabled=false。

现在重新访问,正常。

当然了,我们在f12工具里面看会更好一点。。这样就清晰很多,里面能看到一堆关于内存、cpu之类的东西

好的,那么现在为止端点是什么?我们看到actuator提供了一堆的http请求我们可以发送相应的请求(看日志就知道有哪些啦),我们发送的info、metrics这些就是我们的端点,下面给出表格。

 对应表
/autoconfig GET 自动配置报告,记录哪些自动配置条件是否通过
/configprops GET 描述配置属性(包括默认值)如何注入的
/beans GET 描述上下文所有bean,以及它们之间的关系
/dump GET 获取线程活动快照
/env GET 获取全部环境属性
/env/{name} GET 获取特点环境属性
/health GET 应用程序健康指标,由HealthIndicator的实现类提供
/info GET 获取应用程序定制信息,这些信息有info打头的属性提供
/mappings GET 描述全部URL路径,及它们和控制器(包括Actuator端点)的映射关系
/metrics GET 报告各种应用程序度量信息,比如内存用量和http请求计算
/metrics/{name} GET 报告指定名称的应用程序度量值
/shutdown GET 关闭应用程序,要求endpoints.shutdown.enabled设值为true
/trace GET 提供基本的HTTP请求跟踪信息,时间戳,HTTP头等

2.3 健康检查

执行器提供的端点中,有一个health端点,用来看当前运行的情况

status是表现当前运行的状态的,diskSpace是磁盘,因为磁盘信息比较敏感,设置

endpoints.health.sensitive=false

即可不返回这部分的信息

每次获取的健康的情况其实有缓存,缓存时间为TTL(time to live),这样来修改它的值:

endpoints.health.time-to-live=

2.4远程监控

springboot提供了remote shell这个插件

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-remote-shell</artifactId>
</dependency>

加入依赖后跑起来,发现日志中多了一个key

微服务-开发框架之springboot by 大雄daysn的更多相关文章

  1. 微服务-网关-node.js by 大雄daysn

    目录 序言 一.node.js入门1.1 下载并安装1.2 从helloworld到一个web应用1.3 Express框架二.node.js搭建网关 三.node.js集群搭建   序言 首先一个问 ...

  2. 2.微服务开发框架——Spring Cloud

                     微服务开发框架—Spring Cloud 2.1. Spring Cloud简介及其特点 简介: Spring Cloud为开发人员提供了快速构建分布式系统中一些常见 ...

  3. 分享一个集成.NET Core+Swagger+Consul+Polly+Ocelot+IdentityServer4+Exceptionless+Apollo+SkyWalking的微服务开发框架

    集成.NET Core+Swagger+Consul+Polly+Ocelot+IdentityServer4+Exceptionless+Apollo的微服务开发框架 Github源代码地址 htt ...

  4. Adnc如何本地调试 - 一个轻量级的.Net Core微服务开发框架

    前言     Adnc是一个轻量级的.Net Core微服务开发框架,同样适用于单体架构系统的开发.     如果只是想本地调试,只需要安装必备软件,必备软件除开发工具外,其它软件建议大家都使用`do ...

  5. 微服务开发框架-----Apache Dubbo

    文章目录 一.简介 二.概念与架构 一.简介 Apache Dubbo 是一款微服务开发框架,提供了RPC通信与微服务治理两大关键能力.使用Dubbo开发的微服务,将具备相互之间的远程发现与通信能力, ...

  6. 十分钟搭建微服务框架(SpringBoot +Dubbo+Docker+Jenkins源码)

    本文将以原理+实战的方式,首先对“微服务”相关的概念进行知识点扫盲,然后开始手把手教你搭建这一整套的微服务系统. 这套微服务框架能干啥? 这套系统搭建完之后,那可就厉害了: 微服务架构 你的整个应用程 ...

  7. 微服务框架中springboot启动的一个问题

    微服务中,采用的是springboot构建单个项目,其中一个项目user启动过程中总是启动补起来,相关的地方都没有错,始终启动不起来,而且要命的是控制台不打印日志,日志级别是debug级别的,但是打印 ...

  8. 如何跟领导解释为什么选择SpringCloud alibaba作为微服务开发框架

    什么是微服务 提到微服务不得不提Martin Fowler在2014年3月25日发表的文章 Microservices,里面给出了微服务的定义.后续国内所有关于微服务的介绍都是基于这篇文章的翻译,或加 ...

  9. 基于LadybugFlow的微服务编排(1.SpringBoot集成)

    前言 前面的系列文章里,介绍了ladybugflow的业务可视化的设计以及常见场景的使用方法. 感谢大家对项目的关注. 本篇文章介绍一下基于ladybugflow的微服务编排场景及使用方法. 1. 业 ...

随机推荐

  1. 游戏客户端Session的统一管理

    看本系统文章需要些C语言.数据结构和网络基础知识! 说明:由于游戏服务器端会有成千上万的客户端进行连接请求,所以要求我们需要做一些简单的会话管理!如下图 1.简单说明 进行统一的分配和管理,就需要我们 ...

  2. for loop

    https://www.cnblogs.com/EasonJim/p/8315939.html

  3. hdu5517 二维树状数组

    题意是给了 n个二元组 m个三元组, 二元组可以和三元组 合并生成3元组,合并条件是<a,b> 与<c,d,e>合并成 <a,c,d> 前提是 b==e, 如果存在 ...

  4. mybatis常见问题和错误

    1. jdbc java type 映射关系 1) mysql的text 在mybatis中使用varchar类型 2. mybatis常见的错误 3.There is no getter for p ...

  5. Hdu2039 三角形

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2039 三角形 Time Limit: 2000/1000 MS (Java/Others)    Me ...

  6. Redis学习-list数据类型

    list类型是一个链表结构,主要功能有push,pop等.而且list是一个双向链表,可以通过相关操作进行集合的头部或者尾部添加,删除元素. lpush key string 在key对应的list的 ...

  7. oracle insert、append、parallel、随后查询的redo与磁盘读写

    SQL> set autotrace traceonly statistics; SQL> insert into big_table_dir_test1 select * from bi ...

  8. 剑指offer(54)字符流中第一个不重复的数字

    题目描述 请实现一个函数用来找出字符流中第一个只出现一次的字符.例如,当从字符流中只读出前两个字符"go"时,第一个只出现一次的字符是"g".当从该字符流中读出 ...

  9. 8、zabbix监控方式及分布式监控(04)

    zabbix支持的监控方式 zabbix所能够显示的且可指定为监控接口类型的监控方式: Agent passive active SNMP:Simple Network Management Prot ...

  10. 一起用ipython

    安装 安装python2版本的软件包就用命令 pip install ipython 安装python3版本对应的软件包就用命令 pip3 install ipython 进入了ipython,ipy ...