spring cloud 01

1·spring cloud 提供分布式系统工具

  配置中心、服务发现、熔断(超时错误处理)、路由(拦截)、微代理、控制总线、leader选举、分布式session、集群状态

2·已接触子项目

  config,配置项目+配置中心(本地、git、subversion)

  netflix,开发工具包,包括eureka、hystrix、zuul、archaius等

  hystrix,容错管理工具

  zuul,边缘服务工具,提供动态路由,监控,弹性,安全服务

3·服务发现模块

  1·pom文件

    spring-cloud-starter-eureka-server

  2·在APP类上添加@EnableEurekaServer注解

  3·配置文件

    server.port=1111

    #禁用它的客户端注册行为

    eureka.client.register-with-eureka=false

    eureka.client.fetch-registry=false

    #注册中心地址

    eureka.client.serviceUrl.defaultZone=http://localhost:${server.port}/eureka/

4·生产者

  1·pom依赖

    spring-cloud-starter-eureka

  2·在APP类上添加@EnableDiscoveryClient注解

  3·配置信息

    #服务实例名

   spring.application.name

   server.port=2222

    eureka.client.serviceUrl.defaultZone=http://localhost:1111/eureka/

5·消费者

  1·使用ribbon做负载均衡

    ribbon是基于http和tcp客户端的负载均衡器,通过客户端中配置的ribbonServerList服务端列表去轮询访问

    当ribbon和eureka联合时,ribbobServerList被discoveryEnabledNIWSServerList重写,扩展为从eureka注册中心获取服务端列表。同时用NIWSDiscoveryPing来去掉IPing

  2·ribbon使用

    pom依赖:spring-cloud-starter-ribbon

    APP类上@EnableDiscoveryClient注解来添加发现服务能力,@EnableFeignClients注解请求其他服务

    APP类中创建restTemplate实例,并通过@[email protected]注解开启负载均衡

6·断路器(处理延时、出错故障)

  向调用方返回一个错误相应,而不是长时间的等待

  spring cloud中使用hystrix

  使用

    1·pom依赖

      spring-cloud-starter-hystrix

    2·APP类上@EnableCircuitBreaker来开启断路器功能

    3·在使用ribbon消费服务的函数上增加@HystrixCommand注解来指定回调方法。

      feign使用Hystrix

        pom不需要引入hystrix,feign中已经依赖了

        使用@feignClient注解的fallback属性指定回调类

        创建回调类实现这个借口,实现错误处理方法

7·配置中心

  原理

    git上存放配置文件

    config-server连接到git

    config-client连接到config-server

    启动config-client时,config-client通过config-server拿到远程git上的配置文件,通过soring加载到对象中

  使用

    1·添加pom依赖

      spring-cloud-config-server

    2·APP类上@EnableConfigServer

    3·配置文件

      spring.application.name=config-server

      server.port=7001

      spring.cloud.config.server.git.uri=http://git.oschina.net/zjb_china/SpringCloud-Learning

      spring.cloud.config.server.git.searchPaths=Chapter9-1-4/config-repo      spring.cloud.config.server.git.username=username       spring.cloud.config.server.git.password=password

    4·仓库一般有四类文件

      

    •   users.properties
    •   users-dev.properties
    •   users-test.properties
    •   users-prod.properties

    5`url和配置文件的映射关系

      /{label}/{application}-{profile}.yml,{label}对应git上不同的分支,默认为master

        例:要访问dev2分支,users应用的prod环境,可以通过:http://localhost:7001/users/prod/dec2

    6`消费者如何获取配置信息

      1`pom依赖:spring-cloud-starter-config

      2`boostrap.yml配置config-server

        spring.application.name=users

        spring.cloud.config.profile=test

          spring.cloud.config.label=dev2

         spring.cloud.config.discovery.serviceId=config-server

          spring.cloud.config.discovery.enabled=true

        server.port=7002

      3`@Value("${from}")

        private String from;绑定配置服务中心配置的from属性    7·不重启config-client情况下更新配置信息      client中添加pom依赖:spring-boot-starter-actuator      在需要自动更新配置的java类上@RefreshScope 修饰      以后更新git上配置文件时候,config客户端执行http://localhost:8080/refresh 就可以更新刷新配置变量到内存中了      那么问题来了,集群怎么办?        使用spring cloud bus解决          需要依赖AMQP、Redis、Kafka组件

时间: 2024-08-09 20:13:08

spring cloud 01的相关文章

Spring Cloud+Spring Boot 自学01

>>>>>>主要内容:Spring Cloud+Spring Boot初识和spring boot环境搭建 >>>>>>欢迎大家指正,发送你的问题一起讨论! 简介: Spring Cloud: Spring Cloud是一个基于Spring Boot实现的微服务架构开发工具.它位微服务架构中涉及的配置管理. 服务治理.断路器.智能路由.微代理.控制总线.全局锁.决策竞选.分布式会话和集群状态 管理等操作提供了一种简单的开发方式. Sr

Securing Spring Cloud Microservices With OAuth2

From Zero to OAuth2 in Spring cloud Today I am presenting hours of research about a (apparently) simple question: “How can I maintain security in my microservices architecture?”. The task is to enable a simple but mighty possibility to secure spring

《Spring Cloud Netflix》-- 服务注册和服务发现-Eureka的服务认证和集群

一. Eureka的服务认证 1. 服务端添加依赖 <dependency>      <groupId>org.springframework.boot</groupId>      <artifactId>spring-boot-starter-security</artifactId> </dependency> 2. 服务端添加配置 # 服务认证 security.basic.enabled=true security.use

开始Spring Cloud Config

什么是Spring Cloud Config Spring Cloud Config项目提供了一个解决分布式系统的配置管理方案.它包含了Client和Server两个部分. Spring Cloud Config Sever的管理git或svn的外部配置,集中配置到所有客户端. Spring Cloud Config Client根据Spring框架的Environment和PropertySource从Spring Cloud Config Sever获取配置. 所有要开始Spring Clo

跟大家介绍一下关于Spring Cloud Consul

Spring Cloud Consul项目是针对Consul的服务治理实现.Consul是一个分布式高可用的系统,它包含多个组件,但是作为一个整体,在微服务架构中为我们的基础设施提供服务发现和服务配置的工具.它包含了下面几个特性: 服务发现 健康检查 Key/Value存储 多数据中心 由于Spring Cloud Consul项目的实现,我们可以轻松的将基于Spring Boot的微服务应用注册到Consul上,并通过此实现微服务架构中的服务治理. 以之前实现的基于Eureka的示例(eure

漫谈spring cloud 与 spring boot 基础架构

详情请交流  QQ  709639943 01.漫谈spring cloud 与 spring boot 基础架构 02.漫谈spring cloud分布式服务架构 03.Node.js入门到企业Web开发中的应用 04.精通高级RxJava 2响应式编程思想 05.Java秒杀系统方案优化 高性能高并发实战 06.Java深入微服务原理改造房产销售平台 07.快速上手Linux 玩转典型应用 08.快速上手Ionic3 多平台开发企业级问答社区 09.Java Spring Security开

漫谈spring cloud分布式服务架构

详情请交流  QQ  709639943 01.漫谈spring cloud 与 spring boot 基础架构 02.漫谈spring cloud分布式服务架构 03.Node.js入门到企业Web开发中的应用 04.精通高级RxJava 2响应式编程思想 05.Java秒杀系统方案优化 高性能高并发实战 06.Java深入微服务原理改造房产销售平台 07.快速上手Linux 玩转典型应用 08.快速上手Ionic3 多平台开发企业级问答社区 09.Java Spring Security开

公众号牛牛程序出租EDAS再升级!全面支持Spring Cloud应用

近日,阿里中间件(Aliware)公众号牛牛程序出租h5.hxforum.com) 联系方式170618633533企鹅2952777280 源码出售 房卡出售 后台出租有意者私聊扣扣的企业级分布式应用服务EDAS宣布再次升级,全面支持Spring Cloud应用.今后,使用Spring Cloud开源框架的应用可以实现0代码修改,即能在EDAS上平滑运行.目的是帮助更多用户有效节省开发运维成本,提升开发效率. "随着阿里中间件的迅速发展,我们越来越发现,用户需要的不仅仅是良好的应用服务功能,体

Spring Cloud(十二):分布式链路跟踪 Sleuth 与 Zipkin【Finchley 版】

Spring Cloud(十二):分布式链路跟踪 Sleuth 与 Zipkin[Finchley 版] 发表于 2018-04-24 | 随着业务发展,系统拆分导致系统调用链路愈发复杂一个前端请求可能最终需要调用很多次后端服务才能完成,当整个请求变慢或不可用时,我们是无法得知该请求是由某个或某些后端服务引起的,这时就需要解决如何快读定位服务故障点,以对症下药.于是就有了分布式系统调用跟踪的诞生. 现今业界分布式服务跟踪的理论基础主要来自于 Google 的一篇论文<Dapper, a Larg