SpringCloud提供了很多监控端点,可以使用http://{ip}:{port}/{endpoint}得形式来访问这些端点,从而了解应用程序的运行状况。

Actuator提供的端点,如表3-2所示

端点                      ,描述                                                                                   HTTP方法

autoconfig      显示自动配置的信息                                                                    GET

beans            显示应用程序上下文所有的Springbean                                       GET

configprops   显示所有@ConfigurationProperties的配置属性列表                    GET

dump             显示线程活动的快照                                                                    GET

env                显示应用的环境变量                                                                    GET

health            显示应用的健康指标,这些值由HealthIndicator的实现类提供    GET

info                显示应用的信息,可使用info.*属性自定义info端点公开数据       GET

mappings      显示所有的URL路径                                                                    GET

metrics          显示应用的度量标准信息                                                             GET

shutdown      关闭应用(默认情况下不启用, 如需启用,需设置endpoints.shutdown.enable=true) POST

trace             显示跟踪信息(默认情况下最近100个HTTP请求)                        GET

直接为项目添加依赖

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-actuator</artifactId>

</dependency>

这样就整合好了Actuator了,

可以访问http://localhost:8000/health访问看看了。

硬编码问题

我们有一段代码

@GetMapping("/user/{id}")

public User findById(@PathVariable Long id){

return this.restTemplate.getForObject("http://localhost:8000/"+id,User.class)

}

这一段代码是把提供者的网络地址,硬编码在代码中的,也可以提取到配置文件中去,用@Value引用

但是这种硬编码方式存在很多问题。适用场景有限,无法动态伸缩。

Eureka自我保护模式

Eureka通过自我保护模式,来解决在一定时间内没有接受到某个微服务实例的心态,Eureka会注销该实例,但是当网络分区发生故障时,微服务与Eureka之间无法正常通信,

微服务本身是健康的,不应该在此时注销该实例的问题。一旦节点进入了自我保护模式,Eureka Server就会保护服务注册表中的信息,不再删除服务注册表中的数据,也就是不会

注销任何微服务,当网络故障恢复后,Eureka Server节点会自动退出自我保护模式,自我保护模式是一种应对网咯异常的安全保护措施,它的架构哲学是宁可同时保留所有微服务,包括健康的微服务和不健康的微服务,也不盲目的注销任何健康的微服务,使用自我保护模式,可以让Eureka集群更加的稳定,健壮。

在SpringCloud中,可以使用eureka.server.enable-self-preservation = false 禁用自我保护模式。

SpringCloud琐碎内容的更多相关文章

  1. springcloud之服务注册与发现(zookeeper注册中心)-Finchley.SR2版

    新年第一篇博文,接着和大家分享springcloud相关内容:本次主要内容是使用cloud结合zookeeper作为注册中心来搭建服务调用,前面几篇文章有涉及到另外的eureka作为注册中心,有兴趣的 ...

  2. 微服务SpringCloud+Docker入门到高级实战(教程详情)

    第一章 课程介绍和学习路线 1.微服务架构SpringCloud课程介绍 简介:课程介绍和课程大纲讲解,讲课风格和重点内容理解技巧 2.技术选型和学后水平 简介:课程所需基础和技术选型讲解,学完课程可 ...

  3. 微服务SpringCloud+Docker入门到高级实战(目录)

    第一章 课程介绍和学习路线 1.微服务架构SpringCloud课程介绍 简介:课程介绍和课程大纲讲解,讲课风格和重点内容理解技巧2.技术选型和学后水平 简介:课程所需基础和技术选型讲解,学完课程可以 ...

  4. 小D课堂 - 新版本微服务springcloud+Docker教程_1_01课程简介

    笔记 ============================================= SpringCloud课程笔记.txt 第一章 课程介绍和学习路线 1.微服务架构SpringClou ...

  5. 5-2 SpringCloud | 微服务

    服务器端项目演进 服务器初期状态 最早的服务器就是安装部署了一些静态页面 功能非常单一,只能做信息的呈现和输出 服务器动态页面 后来因为业务和技术的发展,页面连接了数据库,页面中大部分数据来自于数据库 ...

  6. CentOS下 elasticsearch集群安装

    1.进入root目录并下载elasticsearch cd /root wget https://download.elastic.co/elasticsearch/elasticsearch/ela ...

  7. bootstrap响应式设计简单实践。

    首先需要熟悉Boostrap提供的响应式设施:http://getbootstrap.com/css/#responsive-utilities,BootStrap的响应式设施主要是利用媒体查询对元素 ...

  8. 建立标准编码规则(二)-DiagnosticAnalyzer 增加诊断分析代码

    1.使用语法树 当我们要编写一个规则,例如 检测正值表达式的时候,如何编写有效的规则呢 Regex.Match("my text", @"\pXXX"); 这里 ...

  9. Docker+Kubernetes(k8s)微服务容器化实践

    第1章 初识微服务微服务的入门,我们从传统的单体架构入手,看看在什么样的环境和需求下一步步走到微服务的,然后再具体了解一下什么才是微服务,让大家对微服务的概念有深入的理解.然后我们一起画一个微服务的架 ...

随机推荐

  1. node.js守护进程问题的解决

    最近自己写了一个node.js来读取redis数据,编写完成后按理来说加& 应该是有效的 nohup node redis.js & 但是每次关闭终端后这个进程就自动停止了,百度了下 ...

  2. Python迭代器的用法,next()方法的调用

    迭代器的用法: 首先说两个概念,一个是可迭代的对象,一个是迭代器对象,两个不同 可迭代的(Iterable):就是可以for循环取数据的,比如字典.列表.元组.字符串等,不可使用next()方法. 迭 ...

  3. 第05组 Beta冲刺(1/4)

    第05组 Beta冲刺(1/4) 队名:天码行空 组长博客连接 作业博客连接 团队燃尽图(共享): GitHub当日代码/文档签入记录展示(共享): 组员情况: 组员1:卢欢(组长) 过去两天完成了哪 ...

  4. 模拟ssh远程执行命令

    目录 一.服务端 二.客户端 一.服务端 from socket import * import subprocess server = socket(AF_INET, SOCK_STREAM) se ...

  5. Ubuntu 16.04 + Realsense D435i + ROS 环境配置

    参考: [1] Realsense-Ros: https://github.com/IntelRealSense/realsense-ros#installation-instructions [2] ...

  6. css top,right,bottom,left设置为0有什么用?它和width:100%和height:100%有什么区别?

     壹 ❀ 引 当我们使用position属性时,总免不了与top,left,right,bottom四个属性打交道,那么这四个属性都设置为0时有什么用,与宽高设置100%又有什么区别?本文对此展开讨论 ...

  7. mysql数据库的十种查询方式及多表查询

    --mysql数据库的十种查询方式 -- (1)查询时起别名 SELECT id AS '编号',NAME AS '姓名',age AS '年龄' FROM student; -- (2)查询时添加常 ...

  8. 使用Vuejs 开发chrome 插件的注意事项

    chrome 插件的开发其实并不难,web开发者可以使用 html, css, javascript 轻松的开发实用的 chrome 插件. 一个好的 chrome 插件可以提高我们的开发效率,甚至方 ...

  9. C#判断dataGridView1 点击的是哪一列上的按钮

    private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e) { ) { DataGr ...

  10. 0基础入门学习Python(第1-2章)

    第一章:就这么愉快的开始吧 1.1获取Python Python3.7 1.2从idle启动 Python 3.7.3 (default, Mar 27 2019, 09:23:39)[Clang 1 ...