DarkTime
  • README
  • SpringBoot
    • spring boot 运维
    • Spring Boot 部署war包
    • springboot搭建
    • spring boot 读取配置文件
    • 简单总结
    • spring配置文件
    • spring boot Configuration
    • spring boot 配置文件
    • spring boot 配置mybatis
  • MacAwesome
    • markdown使用
    • MAC APP Awesome
    • [markdown使用](/MacAwesome/SUMMARY.md)
    • chrome
    • intellij idea
    • MacAwesome
    • VS Code 的使用
    • MAC Shell命令
  • database
    • druid使用
  • 框架
    • 项目拆析
    • 各种框架和工具
  • docker
    • kubernetes
    • docker
    • docker 常用镜像
  • 效率工具
    • 解决dns污染导致域名解析失败
    • sonarqube 相关配置
    • Iterm2 使用
    • gitbook
    • github awesome github资源推荐
    • playground 在线试用平台汇总
    • linux中的office
    • linux screen 工具
    • 简单Mock服务(moco)
    • npm
    • Visual Studio Code 的使用
    • 配置开发环境
    • homebrew的使用
    • 汇总
  • tomcat
    • tomcat目录规范
  • code_snippets
  • 专题
    • RESTful API
    • serveless服务
    • 搭建私有云主机 折腾记
    • 开发中的各种疑难杂症问题
    • spring 最佳实践
    • LLM 大语言模型
    • notelive
      • 文章框架
      • notelive vue版本开发
      • notelive 开发 札记
    • webrtc技术分析
    • 反向代理
    • spring-cloud
      • spring boot admin 监控服务
      • Spring Cloud 整理汇总
  • python
    • python 学习
    • Python 修饰器的一些小细节
  • 云主机
    • aliyun 主机的种种
  • maven
    • maven使用
    • maven项目增加编译版本号 buildnumber-maven-plugin
    • 仓库
  • java
    • java 开发常用工具类
    • java
    • apache commons pool 对象连接池
  • 大数据
    • kafka
    • gobblin
    • sqoop 简介及使用
    • hbase
    • gobblin
    • sqoop源码解析
    • hadoop map reduce
    • 大数据 学习札记
  • 脚本
    • python
      • 批量请求url 解析json数据
    • js
      • sheetjs-js读取excel
    • shell
      • 自动生成bitbook的summary文件
      • linux/mac 实用脚本
      • 自动创建tomcat项目脚本
      • 批量处理文件内容脚本
  • nginx
    • nginx
    • ngix 文件浏览器 文件服务器
  • linux
    • 群晖nas札记
    • ftp
    • linux 运维
    • 常用命令
    • linux
    • mysqldump脚本
    • 代理
    • 简易灰度部署脚本 不使用jenkins的纯shell方式
    • shell脚本
    • 附加文档
  • mysql
    • sql
  • 游戏开发
    • Unity 2020 学习笔记
  • 学习笔记
    • centos常用环境安装
    • gradle 学习
    • 建站经历
    • python
      • 爬虫教程
    • 如何解决百度爬虫无法爬取搭建在Github上的个人博客的问题? - 知乎
    • baas
      • 在本地部署Parse Server
    • mysql学习标记
    • java code snippets
    • 非Spring Boot Web项目 注册节点到Eureka Server并提供服务
    • kotlin
      • Kotlin 学习札记
    • spring cloud
    • vim配置
    • 前端
      • 开发PWA应用
  • jenkins
    • jenkins配置备份
    • gitlab触发Jenkins 自动构建
    • 安装与使用
  • npm
    • npm 使用
  • git
    • ignore
    • git使用总结
    • git配置多个远程仓库
  • 前端
    • swig
    • 解决跨域请求问题
    • angularjs 学习
    • scriptbot的前端开发经验总结
    • 各种资源
    • 一些有用的js代码
Powered by GitBook
On this page
  • 参考资料
  • spring cloud 优质教程集合
  • 其他资料
  • 学习笔记
  • 监控
  • 网关服务
  • spring mvc 注册到spring cloud中
  • 配置中心
  • 消息总线
  • 坑点
  • 非Boot项目 注册到spring cloud(eureka server) 提供服务

Was this helpful?

  1. 学习笔记

spring cloud

PreviousKotlin 学习札记Nextvim配置

Last updated 6 years ago

Was this helpful?

参考资料

spring cloud 优质教程集合

其他资料

fegin http请求工具,Feign使得 Java HTTP 客户端编写更方便

学习笔记

监控

网关服务

spring mvc 注册到spring cloud中

配置中心

不使用消息总线

使用消息总线

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-bus-amqp</artifactId>
</dependency>

在任意配置了该依赖的客户端执行/bus/refresh即可以将配置更新消息通知给所有客户端。 如果需要指明具体更新配置的客户端则使用/bus/refresh?destination=customers:8000 destination的值是各个微服务的ApplicationContext ID,关于ApplicationContext ID可以在org.springframework.boot.context.ContextIdApplicationContextInitializer 类的getApplicationId() 方法中看到。默认应该是${spring.application.name}:${server.port}

消息总线

扩展消息总线/自定义消息总线配置

@Autowired
private ApplicationContext context;

@RequestMapping(value = "/config", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
@ResponseBody
public JsonResult<String> test() {
    final String instanceId=context.getId();
    final TradeAppliedEvent event=new TradeAppliedEvent(this,instanceId,null);
    event.setTradeId("test trade id");
    event.setUserId("test user id");
    context.publishEvent(event);
    return new JsonResult<>("");
}

坑点

eureka集群中replicas显示为unavailable

启动服务时虽然采用 --spring.profiles.active = peer1 指定了配置文件,但还是会从 application.properties 中取值,将application.properties的

eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false

注释掉或者 在 application-peer1.properties 与 application-peer2.properties 中显示 指定 这两个属性值为true即可。

eureka列表显示ip

eureka.instance.prefer-ip-address=true
eureka.instance.instance-id=${spring.cloud.client.ipAddress}:${server.port}

非Boot项目 注册到spring cloud(eureka server) 提供服务

Spring Boot Admin 是一个管理和监控Spring Boot 应用程序的开源软件。每个应用都认为是一个客户端,通过HTTP或者使用 Eureka注册到admin server中进行展示,Spring Boot Admin UI部分使用AngularJs将数据展示在前端。

提供一个对外的统一api接口,使外部的服务可以通过正常的http请求来访问注册到服务中心的服务 请求方式:{网关的host}:{port}/{注册到服务中心的application-name 小写}/REQUEST PATH eg:http://koyou.top:8020/customer-service/getNeoHello

可以使用消息总线,即借助mq来分发通知配置文件的修改。 也可以不使用总线,则每个client需要手动触发/refresh事件来重新获取配置

1.客户端添加spring-boot-starter-actuator依赖,该包具有一套完整的监控,其中包括一个/refresh功能 2.需要给加载变量的类上面加载@RefreshScope,在客户端执行/refresh(POST请求)的时候就会更新此类下面的变量值 3.添加配置management.security.enabled=false关闭安全认证 4.配置变更后,客户端以post请求的方式来访问http://localhost:8002/refresh(curl -X POST http://localhost:8002/refresh)

需要刷新消息的客户端添加依赖,该包提供了消息的发送和接受

spring cloud bus 扩展消息总线方法文中存在一个问题,使用这种继承AbstractBusEndpoint和BusAutoConfiguration的方式来发送message会导致消息重复接收,以及导致原有的消息总件功能失效, 因此应该采用其它方式来发送消息,如下

(tag: spring boot 配置文件加载顺序) spring cloud 属性加载顺序:会按照下图的优先级加载,如果第一层没有配置key的值则去第二层查找,如果配置了则不会继续查找该key的值, 即低优先级的不会覆盖高优先级的值,只会补充没有配置的。

服务提供者配置

spring-boot-admin基础搭建教程
springboot学习资料汇总 - 纯洁的微笑博客
springcloud学习资料汇总-纯洁的微笑博客
spring-boot-纯洁的微笑博客
Spring Cloud 简单教程 持续更新中 - 搜云库
史上最简单的 SpringCloud 教程
Spring Cloud Eureka 常用配置及说明
非Spring Boot Web项目 注册节点到Eureka Server并提供服务 - CSDN博客
使用spring-boot-admin对spring-boot服务进行监控
为你的spring cloud微服务添加宕机邮件通知/服务报警
从零开始,轻松搞定SpringCloud微服务系列 - 千万之路刚开始 - 博客园
项目改造接入Spring Cloud流程
微服务架构的基础框架选择:Spring Cloud还是Dubbo? - CSDN博客
spring cloud bus 扩展消息总线方法
Feign真正正确的使用方法
Feign基础教程 - CSDN博客
spring-boot-starter-actuator监控接口详解
使用spring-boot-admin对spring-boot服务进行监控
springCloud(14):使用Zuul构建微服务网关-路由端点与路由配置详解
非Spring Boot Web项目 注册节点到Eureka Server并提供服务 - CSDN博客
springcloud(七):配置中心svn示例和refresh - 纯洁的微笑博客
springcloud(九):配置中心和消息总线(配置中心终结版)
Application Context ID 说明
Spring Cloud Bus中的事件的订阅与发布(一) - 掘金
spring cloud bus 扩展消息总线方法
github 示例
spring cloud unavailable-replicas - CSDN博客
eureka的Instances status列表显示ip
spring-cloud-not-boot.md
yml和properties的加载顺序和区别
spring cloud属性加载顺序
spring-cloud-configserver