`

[Spring Cloud] Spring Cloud 学习笔记一

阅读更多
1
下载JDK 1.8

2
下载JCE 1.8
解压到: JDK/jre/lib/security

3
下载Eclipse

4
下载Maven

5
property source: 属性配置文件
enviroment: spring.profiles.active
    - bootstrap context: bootstrap.properties/bootstrap.yml (默认配置,优先加载)
        - application context: application.yml.properties/application.yml


6
远程配置仓库:配置中心
GIT
# 配置服务器地址(默认端口:8080)
spring.cloud.config.uri=

# 强制拉取最新版本数据
spring.cloud.config.force-pull=true

spring.config.name=configserver
server.port=8080

# 客户端连接默认端口: 8888
spring.cloud.config.failFast=true



# 启用本地配置覆盖配置中心配置(配置中心)
spring.cloud.config.allowOverride=true
# 禁用本地配置覆盖配置中心配置(配置中心)
spring.cloud.config.overrideNone=true
# 启用本地配置覆盖配置中心配置,但不覆盖本地配置
spring.cloud.config.overrideSystemProperties=false

# 支持跨环境管理配置文件(DEV/SIT/UAT/PRODUCION)
# 配置文件从GIT仓库获取
spring.cloud.config.server.git.uri=https://github.com/spring-cloud-samples/config-repo

# 认证(spring-boot-starter-security)
spring.cloud.config.server.git.username=
spring.cloud.config.server.git.password=

spring:
  datasource:
    username: dbuser
    password: '{cipher}FKSAJDFGYOS8F7GLHAKERGFHLSAJ'

# 生成证书
keytool -genkeypair -alias mytestkey -keyalg RSA \
  -dname "CN=Web Server,OU=Unit,O=Organization,L=City,S=State,C=US" \
  -keypass changeme -keystore server.jks -storepass letmein

# 配置证书(bootstrap.yml)
encrypt:
  keyStore:
    location: classpath:/server.jks
    password: letmein
    alias: mytestkey
    secret: changeme

# 禁用临时目录
spring.cloud.config.server.git.basedir

# 配置文件命名规范
/{application}/{profile}[/{label}]
/{application}-{profile}.yml
/{label}/{application}-{profile}.yml
/{application}-{profile}.properties
/{label}/{application}-{profile}.properties

application: spring.application.name
profile: spring.prifiles.active
label: master/git 分支标签名

# GIT添加配置文件
$ cd $HOME
$ mkdir config-repo
$ cd config-repo
$ git init .
$ echo info.foo: bar > application.properties
$ git add -A .
$ git commit -m "Add application.properties"



7
服务发现
Eureka/Consul/Zoookeeper

server:
  port: 8761

eureka:
  instance:
    hostname: localhost
  client:
    registerWithEureka: false
    fetchRegistry: false
    serviceUrl:
      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/

eureka.instance.preferIpAddress=true
eureka.instance.leaseRenewalIntervalInSeconds

客户端注册
通过META-INF/spring.factories的org.springframework.cloud.client.discovery.EnableDiscoveryClient=

eureka:
  client:
    serviceUrl:
      defaultZone: http://localhost:8761/eureka/

# 禁用自动注册
@EnableDiscoveryClient(autoRegister=false)
# 禁用自动注册
spring.cloud.service-registry.auto-registration.enabled=false

eureka:
  instance:
    ...
    metadataMap:
      user: osufhalskjrtl
      password: lviuhlszvaorhvlo5847
      configPath: /config

8
负载均衡
ribbon/zuul

zuul:
  threadPool:
    useSeparateThreadPools: true
    threadPoolKeyPrefix: zuulgw
stores:
  ribbon:
    listOfServers: example.com,google.com

# 禁用失败重试(Spring Retry)
spring.cloud.loadbalancer.retry.enabled=false
client.ribbon.MaxAutoRetries=3
client.ribbon.MaxAutoRetriesNextServer=
client.ribbon.OkToRetryOnAllOperations

# 不同负载均衡策略共存
spring.aop.proxyTargetClass=true

# 指定网络接口
spring:
  cloud:
    inetutils:
      preferredNetworks:
        - 192.168
        - 10.0

# 排除网络接口
spring:
  cloud:
    inetutils:
      ignoredInterfaces:
        - docker0
        - veth.*
# 指定站点本地接口
spring:
  cloud:
    inetutils:
      useOnlySiteLocalInterfaces: true

9
HTTP Client/OK Http Client

spring.cloud.httpclientfactories.apache.enabled=true
spring.cloud.httpclientfactories.ok.enabled=false

10
熔断
Hystrix/Turbine
circuitBreaker.requestVolumeThreshold=20
circuitBreaker.errorThresholdPercentage=>50%
metrics.rollingStats.timeInMilliseconds=10

@HystrixCommand

11
REST
Feign
@FeignClient

feign:
  client:
    config:
      feignName:
        connectTimeout: 5000
        readTimeout: 5000
        loggerLevel: full
        errorDecoder: com.example.SimpleErrorDecoder
        retryer: com.example.SimpleRetryer
        requestInterceptors:
          - com.example.FooRequestInterceptor
          - com.example.BarRequestInterceptor
        decode404: false

feign:
  hystrix:
    enabled: false


hystrix:
  command:
    default:
      execution:
        isolation:
          strategy: SEMAPHORE

# 导入配置
@Import

# 注入
@Autowired

# 配置
@Configuration
@Bean
@Scope

# 请求压缩
feign.compression.request.enabled=true
feign.compression.response.enabled=true


12
日志
logging.level.cn.bisoft: DEBUG

13
服务端路由
zuul

zuul:
  routes:
    users:
      path: /myusers/**
      serviceId: users_service

uul:
  routes:
    echo:
      path: /myusers/**
      serviceId: myusers-service
      stripPrefix: true

hystrix:
  command:
    myusers-service:
      execution:
        isolation:
          thread:
            timeoutInMilliseconds: ...

myusers-service:
  ribbon:
    NIWSServerListClassName: com.netflix.loadbalancer.ConfigurationBasedServerList
    ListOfServers: http://example1.com,http://example2.com
    ConnectTimeout: 1000
    ReadTimeout: 3000
    MaxTotalHttpConnections: 500
    MaxConnectionsPerHost: 100

# 客户端
zuul:
  routes:
    users:
      path: /myusers/**
      sensitiveHeaders: Cookie,Set-Cookie,Authorization
      url: https://downstream

endpoints.routes.enabled=false

hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds: 60000
ribbon:
  ConnectTimeout: 3000
  ReadTimeout: 60000

zuul:
  forceOriginalQueryStringEncoding: true

zuul.servlet-path


zuul.host.connect-timeout-millis=
zuul.host.socket-timeout-millis=

14
RxJAVA

异步基于事件

15
Stream/Kafka/RabbitMQ

16
BUS

17
SSO
OAuth2




分享到:
评论

相关推荐

    Springcloud学习笔记.md

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

    Spring Cloud 学习笔记.pdf

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

    springcloud学习笔记.pdf

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

    尚硅谷周阳老师SpringCloud笔记

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

    狂神springcloud学习笔记加代码

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

    尚硅谷SpringCloud第二季笔记

    【尚硅谷SpringCloud第二季笔记】是一份详细记录了SpringCloud组件使用的学习笔记,涵盖了SpringCloud在云原生环境下的核心概念和实践应用。SpringCloud是基于Spring Boot实现的微服务框架,它提供了构建分布式系统...

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

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

    springCloud学习手册.zip

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

    黑马程序员-SpringCloud-学习笔记01-认识微服务

    黑马程序员-SpringCloud-学习笔记01-认识微服务

    黑马程序员-SpringCloud-学习笔记-03-Eureka注册中心

    黑马程序员-SpringCloud-学习笔记-03-Eureka注册中心

    SpringCloud学习笔记

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

    编程不良人的SpringCloud笔记和资料,全套

    1. **SpringCloud简介** SpringCloud是基于SpringBoot进行快速构建分布式系统的工具集,它利用SpringBoot的开发便利性简化了配置和服务管理,使得开发者可以轻松地实现云应用的开发、部署和管理。 2. **Eureka服务...

    springcloud.md

    springcloud学习笔记 springcloud学习笔记 springcloud学习笔记 springcloud学习笔记 springcloud学习笔记 springcloud学习笔记 springcloud学习笔记 springcloud学习笔记 springcloud学习笔记

    SpringCloud第3季2024.7z

    SpringCloud是微服务架构中的一个核心框架,它提供了一套完整的解决方案,用于构建分布式系统,如服务发现、负载均衡、断路器、API网关、数据流处理等。本资源"SpringCloud第3季2024.7z"很可能包含的是关于Spring...

    尚硅谷SpringCloud第2季2020版.mmap

    一篇很好的springCloud学习的思维导读,详细的介绍了,springCloud的搭建步骤以及各组件的说明讲解 涵盖 Eureka服务注册与发现 Zookeeper服务注册与发现 Consul服务注册与发现 Ribbon负载均衡服务调用 OpenFeign...

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

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

    springcloud学习笔记.docx

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

    springcloud笔记.pdf

    【SpringCloud笔记】是关于微服务架构的学习资料,主要涵盖了SpringCloud的基本概念、核心组件以及实战技巧。在学习SpringCloud之前,需要具备一定的基础知识,包括IDEA、JDK8、Maven、SpringBoot以及Linux环境的...

    SpringCloud笔记+思维导图

    笔记可能涵盖了SpringCloud的基础知识,例如如何初始化一个SpringCloud项目,配置Eureka服务器以实现服务注册与发现,如何使用Zuul作为API网关处理请求,以及如何利用Hystrix实现服务间的熔断和降级策略。此外,笔记...

Global site tag (gtag.js) - Google Analytics