当前位置: 首页 > 编程日记 > 正文

【微服务】Spring-Boot整合Consul (自定义服务配置及健康检查)

为什么80%的码农都做不了架构师?>>>   hot3.png

目的

上文提到仅使用discovery包自带的注册功能进行服务注册,但是由于监控的是 /health,使用actuator实现自由度不够,并且有些低级异常可能不完全影响服务运行,但状态依然为DOWN,导致过于监测过于严格。

可用方案

解决这个问题有两种方案:

  • 自己实现health类似的接口,并且在spring.cloud.consul.discovery.health-check-path配置为自己实现的接口;
  • 通过consul配置文件的方式进行注册,并且把spring.cloud.consul.discovery.register设置为false不自动进行注册;

本文说明第二种方式。

实施

配置环境同上一篇文章: 定义consul的服务配置,配置如下(为了简单就做HTTP监测,实际上可以使用脚本进行健康监测更为灵活):

{"services": [{"name": "spring-boot-consul-service", "port": 17003, "checks": [{"interval": "10s", "http": "http://192.168.0.185:17003/service/hi", "timeout": "1s"}], "enable_tag_override": false, "address": "192.168.0.185", "id": "spring-boot-consul-service"}]
}

启动consul和spring-boot-consul-service服务后,可以看到服务已经正常注册上去

通过配置进行服务注册

然后调用接口( http://192.168.0.184:8500/v1/catalog/service/spring-boot-consul-service ) 查看服务状态,显示如下,可以看到三个服务都已经注册了

[{"ID": "e88608f3-93d0-cfac-e0fe-8ffc2c1cdef0", "Node": "agent-4", "Address": "192.168.0.184", "Datacenter": "dc1", "TaggedAddresses": {"lan": "192.168.0.184", "wan": "192.168.0.184"}, "NodeMeta": {"consul-network-segment": ""}, "ServiceID": "spring-boot-consul-service", "ServiceName": "spring-boot-consul-service", "ServiceTags": [ ], "ServiceAddress": "192.168.0.184", "ServicePort": 17003, "ServiceEnableTagOverride": false, "CreateIndex": 881, "ModifyIndex": 881}, {"ID": "d6337397-b7e2-8cc7-11ef-ff36d9c1a65e", "Node": "agent-5", "Address": "192.168.0.185", "Datacenter": "dc1", "TaggedAddresses": {"lan": "192.168.0.185", "wan": "192.168.0.185"}, "NodeMeta": {"consul-network-segment": ""}, "ServiceID": "spring-boot-consul-service", "ServiceName": "spring-boot-consul-service", "ServiceTags": [ ], "ServiceAddress": "192.168.0.185", "ServicePort": 17003, "ServiceEnableTagOverride": false, "CreateIndex": 885, "ModifyIndex": 885}, {"ID": "b40a3dc6-b735-d733-33f5-5369368870e6", "Node": "agent-6", "Address": "192.168.0.186", "Datacenter": "dc1", "TaggedAddresses": {"lan": "192.168.0.186", "wan": "192.168.0.186"}, "NodeMeta": {"consul-network-segment": ""}, "ServiceID": "spring-boot-consul-service", "ServiceName": "spring-boot-consul-service", "ServiceTags": [ ], "ServiceAddress": "192.168.0.186", "ServicePort": 17003, "ServiceEnableTagOverride": false, "CreateIndex": 887, "ModifyIndex": 887}
]

本地启动spring-boot-consul-client服务,访问service接口,结果如下: http://127.0.0.1:17004/service/add?a=1&b=2

/add, host:192.168.0.108, service_id:application-17004; result : 3; port:17004-------------/add, host:192.168.0.184, service_id:application-17003; result : 3; port:17003/add, host:192.168.0.108, service_id:application-17004; result : 3; port:17004-------------/add, host:192.168.0.185, service_id:application-17003; result : 3; port:17003/add, host:192.168.0.108, service_id:application-17004; result : 3; port:17004-------------/add, host:192.168.0.186, service_id:application-17003; result : 3; port:17003

项目地址:

https://github.com/treeyh/java-demo/tree/master/spring-boot/spring-boot-consul https://gitee.com/treeyh/java-demo/tree/master/spring-boot/spring-boot-consul

本文地址:

https://my.oschina.net/tree/blog/1600117

转载于:https://my.oschina.net/tree/blog/1600117

相关文章:

Apache URL重定向避免网址结尾斜线问题

结尾斜线问题描述: 每个网主都曾受到结尾斜线问题的折磨,若在URL中没有结尾斜线,服务器就会认为URL无效并返回错误,因为服务器会根据/~quux/foo去寻找foo这个档案,而非显示这个目录。其实很多时候,这问题应留待用户自己…

16:00面试,16:08就出来了 ,问的实在是太...

从外包出来,没想到算法死在另一家厂子自从加入这家公司,每天都在加班,钱倒是给的不少,所以也就忍了。没想到8月一纸通知,所有人不许加班,薪资直降30%,顿时有吃不起饭的赶脚。好在有个兄弟内推我…

提前了解客户背景很有必要

2019独角兽企业重金招聘Python工程师标准>>> 最近,公司与某电商展开了合作,我司将为该电商提供提供一套广告解决方案。我有幸参与到这个项目,了解该电商的需求,思考公司的产品是否能够和如何满足这些需求。近日&#x…

wamp多站点访问设置

1、修改C:\Windows\System32\drivers\etc\hosts文件 2、修改httpd.conf和httpd-vhosts.conf文件 3、重启apache转载于:https://www.cnblogs.com/liusirdotme/p/8177386.html

满足极高读写性能需求的Key-Value数据库

满足极高读写性能需求的Key-Value数据库 高性能Key-Value数据库的主要特点就是具有极高的并发读写性能,Redis,Tokyo Cabinet, Flare,这3个Key-Value DB都是用C编写的,他们的性能都相当出色,但出了出色的性…

QQ群功能设计与心理学

2019独角兽企业重金招聘Python工程师标准>>> 刚刚在一个Java技术交流群,发了个 "博客投票"的广告。 群主两眼一黑,瞬间就把我给干掉了。 看到QQ给出的系统消息,发现QQ群的一个功能做得很不错。 大家注意到,右…

龙蜥降世,神龙升级,阿里云投入 20 亿发力操作系统

作者 | 贾凯强、伍杏玲 出品 | AI科技大本营(ID:rgznai100)10 月 20 日,阿里巴巴云栖大会继续在杭州进行,与开幕第一天的主论坛不同,第二天活动的主论坛更加聚焦与技术领域和技术实践。20 日上午,阿里…

35.2. Subversion 版本控制

subversion 初始化trunk branches releases tags svn co svn://127.0.0.1/document cd project mkdir trunk mkdir tags mkdir branches mkdir releases svn ci -m "Initialized empty subversion repository in your_project"创建docbook文档,安排章节…

使用卷积神经网络预防疲劳驾驶事故

作者|小白来源|小白学视觉疲劳驾驶:一个严重的问题美国国家公路交通安全管理局估计,每年有 91,000 起车祸涉及疲劳驾驶的司机,造成约50,000 人受伤和近 800 人死亡。此外,每 24 名成年司机中就有 1 人报告在过去 30 天内在驾驶时睡…

详解Apache下.htaccess文件常用配置

.htaccess文件是Apache服务器中最常用的一个配置文件,它负责相关目录下的网页配置。通过htaccess文件,可以帮我们实现:网页301重定向、自定义404错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置索引入口等…

hadoop HDFS常用文件操作命令

命令基本格式: hadoop fs -cmd < args >1.ls hadoop fs -ls /列出hdfs文件系统根目录下的目录和文件 hadoop fs -ls -R /列出hdfs文件系统所有的目录和文件 2.put hadoop fs -put < local file > < hdfs file >hdfs file的父目录一定要存在&#xff0c;否则…

php缓存技术总结

全页面静态化缓存也就是将页面全部生成html静态页面&#xff0c;用户访问时直接访问的静态页面&#xff0c;而不会去走php服务器解析的流程。此种方式&#xff0c;在CMS系统中比较常见&#xff0c;比如dedecms&#xff1b;一种比较常用的实现方式是用输出缓存&#xff1a;Ob_st…

两个使用 Pandas 读取异常数据结构 Excel 的方法,拿走不谢!

作者 | 周萝卜来源 | 萝卜大杂烩通常情况下&#xff0c;我们使用 Pandas 来读取 Excel 数据&#xff0c;可以很方便的把数据转化为 DataFrame 类型。但是现实情况往往很骨干&#xff0c;当我们遇到结构不是特别良好的 Excel 的时候&#xff0c;常规的 Pandas 读取操作就不怎么好…

ArcEngine中的缩放地图

在ArcEngine地图操作中&#xff0c;缩放地图的功能经常用到&#xff0c;这里做一个小结。 缩放地图一般可分为以下几种情况&#xff1a; 1.缩放地图&#xff1a;与放大地图相对&#xff0c;一般是手动绘制区域或固定比例缩放&#xff0c;可调用命令或Expand函数来&#xff1b; …

【小记】批处理FOR循环中的参数/D

2019独角兽企业重金招聘Python工程师标准>>> 官方说明 FOR /D %variable IN (set) DO command [command-parameters] 如果集中包含通配符&#xff0c;则指定与目录名匹配&#xff0c;而不与文件名匹配。 栗子 REM Eg1.bat REM 与此批处理同级的目录名称全部打印出来…

php 的opcode缓存apc以及其安装

先说说php程序的执行流程吧&#xff0c;说明了这个&#xff0c;才好开始我们的优化之旅。 客户端&#xff08;譬如浏览器&#xff09; —》请求Get hello.php —-》cgi服务器接&#xff08;譬如apache&#xff09;收到请求&#xff0c;根据配置寻找php的处理程序&#xff08;…

1024 程序员节专题论坛来袭,权威解读 MindSpore、CANN 5.0 特性和 HCIA MDC 开发者认证...

“授人以鱼不如授人以渔”&#xff0c;一句古话中蕴含的发展真理&#xff0c;我们将其套用到如今炽手可热的 AI 领域之上会发现无比适用。2018 年&#xff0c;华为提出了普惠 AI 的概念&#xff0c;降低 AI 开发门槛&#xff0c;让 AI 开发者获取能力&#xff0c;让技术走近每一…

leetcode之Reorder List

Given a singly linked list L: L0→L1→…→Ln-1→Ln,reorder it to: L0→Ln→L1→Ln-1→L2→Ln-2→… You must do this in-place without altering the nodes values. For example,Given {1,2,3,4}, reorder it to {1,4,2,3}. 这道题分三步&#xff1a; 1&#xff1a;首先将…

shiro多realm验证之——shiro实现不同身份使用不同Realm进行验证(转)

转自: http://blog.csdn.net/xiangwanpeng/article/details/54802509 (使用特定的realm实现特定的验证) 假设现在有这样一种需求&#xff1a;存在两张表user和admin&#xff0c;分别记录普通用户和管理员的信息。并且现在要实现普通用户和管理员的分开登…

前端开发中的性能那点事

前端开发中的性能那点事&#xff08;一&#xff09;巧用xdebug 前言&#xff1a; 在我们平时的php开发中&#xff0c;一个大的项目经过长时间的积累以后你会发现性能越来越慢&#xff0c;而性能到底消耗在了什么地方&#xff0c;常常是一个令人头疼的问题&#xff0c;function…

运动目标检测ViBe算法

一、运动目标检测简介 视频中的运动目标检测这一块现在的方法实在是太多了。运动目标检测的算法依照目标与摄像机之间的关系可以分为静态背景下运动检测和动态背景下运动检测。先简单从视频中的背景类型来讨论。 静态背景下的目标检测&#xff0c;就是从序列图像中…

急缺开源人才怎么办?来看看大厂和高校怎么解决

开源&#xff0c;是数字中国建设的热点领域之一&#xff0c;也是数字经济时代的基础。在我国加速实现数字化转型的背景下&#xff0c;开源已经从个人行为、企业行为发展到了国家新基建的战略层面。它打破传统的组织架构与商业教条&#xff0c;彻底颠覆了工业经济时代的运转逻辑…

经验分享 | Burpsuite抓取非HTTP流量

使用Burp对安卓应用进行渗透测试的过程中&#xff0c;有时候会遇到某些流量无法拦截的情况&#xff0c;这些流量可能不是HTTP协议的&#xff0c;或者是“比较特殊”的HTTP协议(以下统称非HTTP流量)。遇到这种情况&#xff0c;大多数人会选择切换到Wireshark等抓包工具来分析。下…

Xdebug 配置

第一部分&#xff1a; 安装预编译模块安装预编译模块是很容易的。只需要将它们放到一个目录中&#xff0c;并将下面的内容添加到php.ini中&#xff1a;&#xff08;不要忘记更改路径和文件名为你自己的值&#xff0c;并确信你使用的是完整路&#xff09;zend_extension_ts &qu…

yield学习续:yield return迭代块在Unity3D中的应用——协程

必读好文推荐&#xff1a; Unity协程&#xff08;Coroutine&#xff09;原理深入剖析 Unity协程&#xff08;Coroutine&#xff09;原理深入剖析再续 上面的文章说得太透彻&#xff0c;所以这里就记一下自己的学习笔记了。 首先要说明的是&#xff0c;协程并不是线程&#xff0…

从神经元谈到深度神经网络

作者 | 泳鱼来源 | 算法进阶本文将从神经元到逻辑回归模型结构&#xff0c;并将其扩展到深度深度网络模型。一、谈谈智慧对于人类智慧奥秘的探索&#xff0c;不同时代、学科背景的人对于智慧的理解及其实现方法有着不同的思想主张。有的主张用显式逻辑体系搭建人工智能系统&…

【阿里聚安全·安全周刊】Intel芯片级安全漏洞事件|macOS存在漏洞

关键词&#xff1a;Intel漏洞丨mac OS漏洞丨三星漏洞丨安卓安全丨CPU漏洞丨phpMyAdmin漏洞丨iOS设备|安卓恶意软件检测|Burpsuite 本周资讯top3 【Intel漏洞】芯片级安全漏洞后续&#xff1a;谷歌表示不止Intel&#xff0c;每个1995年后的处理器都可能受影响 1月3日&#xff0c…

BigPipe:高性能的“流水线技术”网页

原文地址&#xff1a;http://www.facebook.com/note.php?note_id389414033919 译文地址&#xff1a;http://isd.tencent.com/?p2419 作者&#xff1a;蒋长浩 Facebook的网站速度做为最关键的公司任务之一。在2009年&#xff0c;我们成功地实现了Facebook网站速度提升两倍 。…

超硬核全套Java视频教程(学习路线+免费视频+配套资料)

文内福利&#xff0c;扫码免费领取Hello&#xff0c;各位锋迷们&#xff0c;我是小千。很多学习Java的小伙伴都在找的全套免费java视频教程&#xff0c;这里全都有&#xff0c;资料齐全&#xff0c;拿来吧你&#xff01;零基础学Java的学习路线图是怎样的&#xff1f;&#xff…

手机触屏滑动图片切换插件swiper.js

今天给大家分享一款手机触屏滑动图片切换插件swiper.js是一款swiper手机触屏滑动图片幻灯片&#xff0c;适合各种尺寸。效果图如下&#xff1a; 在线预览 源码下载 实现的代码。 html代码&#xff1a; <div style"max-width: 640px; margin: 0 auto;"><di…