`

spring cloud 学习笔记

 
阅读更多
spring cloud 学习笔记

第一节

基础环境
一个注册心(eureka)
一个服务(hello world)
两个消费者(restTemplate+ribbon, feign)



备注
默认情况下, eureka会开户自我保护机制, 这时是不会移除服务的
背景是, 如果在eureka网络不稳定的情况, 移除注册的服务, 很可能存在其实这个服务是稳定的
这种设计, 本人感觉更像是实验室应用, 而不是真正的分布式高并发应用策略, 当然了, eureka可以关闭自我保护机制, 设定过期更新时间, 但目前没能按设计好的5秒更新

自我保护模式被激活的条件是:在 1 分钟后, Renews (last min) < Renews threshold


eureka:
  server:
    enable-self-preservation: false
    eviction-interval-timer-in-ms: 5000
  instance:
    hostname: localhost
  client:
    registerWithEureka: false
    fetchRegistry: false
    serviceUrl:
      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/





第二节

熔断器
正常通过访问
httpclient -> ribbon -> eureka client 135ms
添加断路器hystrix后,1035ms

httpclient -> feign -> eureka client 142ms
添加断路器hystrix后,1029ms



zuul

zuul 使用ribbon作为http访问引擎

zuul - ribbon 150ms
zuul - feign 137ms

zuul - ribbon(熔断)1024ms
zuul - feign(熔断)1011

zuul - ribbon 之间的timeout

zuul - feign 之间的timeout

hystrix:
    command:
        default:
            execution:
                isolation:
                    thread:
                        timeoutInMilliseconds: 10000


而不是
  host:
    connect-timeout-millis: 10000
    socket-timeout-millis: 10000


备注
服务起来, 关掉eureka, zuul路由里仍然可以使用
SERVICE-RIBBON
SERVICE-HELLOWORLD
这种spring.application.name(serviceId)的方式访问


第三节
配置中心
文件名规则 xxx-dev.properties

xxx-xxx-dev.properties
已知 dev, product, test

例子:
服务端配置文件application.properties
#使用本地属性文件
spring.profiles.active=native

#属性文件地址,只要指定文件夹的路径
spring.cloud.config.server.native.searchLocations=classpath:/config/

配置文件1
config-client-dev.properties
url=dev-123
env.name=dev
env.password=dev123456


配置文件2
config-client-product.properties
url=product-123
env.name=product
env.password=product123456



客户端配置application.yml
spring.application.name:config-client
spring.cloud.config.profile:dev



进一步发现, 其实规则是xxx-xxx-xxx-xxxx.properties都可以,从后往前推

服务端
d-c-b-a.properties

对应客户端
spring.application.name:d-c-b
spring.cloud.config.profile:a

访问地址:
http://localhost:8888/d-c-b/a

http://localhost:8888/d-c-b-a.properties


进一步发现, 其实规则是xxx-xxx.properties对应的profile可以忽略,这时候profile可以是任意值

服务端
com-dataSource.properties

对应客户端
spring.application.name:com-dataSource
#其实这里写不写都可以
spring.cloud.config.profile:dev

访问地址:
http://localhost:8888/com-dataSource

http://localhost:8888/com-dataSource/dev

http://localhost:8888/com-dataSource/proc

http://localhost:8888/com-dataSource/test

http://localhost:8888/com/dataSource

http://localhost:8888/com-dataSource.properties

如图:




这是个潜在bug,所以在命名规则设计时,一定要文档约束,
推荐以下方式
config-client-dev.properties
config-client-test.properties
config-client-product.properties
然后以
http://localhost:8888/config-client-dev.properites

http://localhost:8888/com-dataSource/dev
http://localhost:8888/com-dataSource/test
方式来访问,以便区别dev,test,product环境


官方配置文件访问方式
/{application}/{profile}[/{label}]
/{application}-{profile}.yml
/{label}/{application}-{profile}.yml
/{application}-{profile}.properties
/{label}/{application}-{profile}.properties



注意config-server与config-client之间的关系不是实时更新的
config-server启动后读取文件
config-client启动后,远程读取config-server自己工程的配置文件,然后自己保存副本,不会随着config-server更新而更新

想要config-client不重启更新的话,需要引入Spring Cloud Bus







  • 大小: 71.6 KB
  • 大小: 53.2 KB
分享到:
评论

相关推荐

    Springcloud学习笔记.md

    Springcloud学习笔记.md,Springcloud学习笔记.md,Springcloud学习笔记.md,Springcloud学习笔记.md,Springcloud学习笔记.md,Springcloud学习笔记.md,Springcloud学习笔记.md,Springcloud学习笔记.md,Spring...

    狂神springcloud学习笔记加代码

    狂神springcloud学习笔记加代码 笔记可以看:https://www.kuangstudy.com/bbs/1374942542566551554#header4 视频链接:https://www.bilibili.com/video/BV1jJ411S7xr

    springcloud学习笔记.pdf

    Spring Cloud 学习笔记 本笔记主要介绍了从单体架构到微服务架构的演变过程,以及 Spring Cloud 中的微服务架构搭建。下面是本笔记的详细知识点总结: 一、单体架构 单体架构是指整个系统只有一个工程,打包往往...

    SpringCloud学习笔记

    【SpringBoot核心特性】 SpringBoot是Spring框架的一个扩展,它旨在简化Spring应用程序的开发过程,...这份学习笔记涵盖了SpringBoot的基础特性和SpringCloud的负载均衡实践,对于深入理解这两个技术有极大的帮助。

    Spring Cloud 学习笔记.pdf

    Spring Cloud是一套微服务架构下的分布式系统解决方案,提供了在分布式系统环境下快速构建一些常见模式的工具,如配置管理、服务发现、断路器、智能路由、微代理、控制总线、一次性令牌、全局锁、领导选举、分布式...

    springcloudtext_springcloud学习笔记_

    《SpringCloud学习笔记详解》 SpringCloud作为微服务架构中的热门框架,被广泛应用于大型分布式系统开发中。本文将基于“springcloudtext_springcloud学习笔记”这一主题,结合提供的压缩包文件,深入探讨Spring...

    springcloud学习笔记.zip

    Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格...

    最新版Spring Cloud 学习笔记

    本学习笔记主要探讨微服务架构及其在Spring Cloud中的实现。 首先,我们从系统架构的演变开始,了解从单体应用到微服务架构的转变。单体应用架构是早期常见的设计,所有功能代码部署在一起,适合小型项目,但随着...

    springcloudtext (3)_springcloud学习笔记4_

    在“springcloudtext (3)_springcloud学习笔记4_”中,我们可以推测这是作者对SpringCloud的深入学习过程中的第四部分笔记,这部分笔记可能涉及到SpringCloud的更新和完善,特别是针对之前笔记中的错误进行了修正。...

    《springcloud&学习资料》--尚硅谷SpringCloud视频学习笔记.zip

    无论做毕业设计还是用于学习技能,或工作中当做参考资料,都能发挥重要作用 亲们下载我任何一个付费资源后,即可私信联系我免费下载其他相关资源哦~ 个人花大量时间整理出的实战资料,内容丰富,文档也很详细。无论...

    springCloud学习笔记.zip

    通过阅读 `springCloud学习笔记.md` 文件,你可以深入理解 Spring Cloud 的工作原理和实践技巧,这对于构建健壮的分布式系统是至关重要的。此外,你还可以学习如何结合 Spring Boot 的优势,快速搭建和管理微服务...

    springcloud学习笔记.docx

    SpringCloud 是一个基于 Spring Boot 实现的云应用开发工具集,它为开发者提供了在分布式系统(如配置管理、服务发现、断路器、智能路由、微代理、控制总线、一次性令牌、全局锁、领导选举、分布式会话、集群状态)...

    springCloud学习手册.zip

    SpringCloud学习手册是一个针对微服务架构的资源包,主要涵盖了SpringCloud的相关知识,适用于初学者。SpringCloud作为Java领域中的主流微服务框架,为开发者提供了构建分布式系统所需的工具和服务发现、配置管理、...

    SpringCloud学习笔记(十一)微服务项目结构搭建 代码包

    在本篇SpringCloud学习笔记中,我们将探讨微服务项目结构的搭建,这通常是任何基于SpringCloud的大型分布式系统开发的第一步。SpringCloud作为一个强大的微服务框架,提供了多种工具和服务来帮助开发者构建、配置和...

    SpringCloud学习笔记整理最新版本

    在学习Spring Cloud的过程中,可以按照以下几个方面进行系统性的整理和笔记记录: 1. **基础概念和架构**: - 了解微服务架构的基本概念和Spring Cloud的核心组件,如Eureka、Ribbon、Feign、Hystrix、Zuul、...

    尚硅谷周阳老师SpringCloud笔记

    【尚硅谷周阳老师SpringCloud笔记】是一份深入学习SpringCloud技术体系的教程资源,由知名教育机构尚硅谷的周阳老师编撰。SpringCloud作为微服务架构的重要框架,广泛应用于现代企业的分布式系统开发中。这份笔记...

    尚硅谷周阳SpringCloud第一季笔记(超详细非官方手工笔记)

    尚硅谷发布的周阳老师讲授的SpringCloud,讲的非常好,这个是有配置中心版本的,网上的好多是没有配置中心部分的。深入简出了解SpringCloud第一季核心技术,这个是本人在学习时亲手整理的笔记,希望对大家有帮助。

    spring-cloud:springCloud学习笔记

    SpringCloud学习笔记1. maven父子项目父工程配置新项目,maven,父工程名称字符编码,设置,编辑器文件编码注解功效激活java编译选择1.8 文件类型文件过滤删除掉父工程下的src,只保留一个pom.xml父工程的pom.xml...

Global site tag (gtag.js) - Google Analytics