• springcloud


    一 什么是SpringCloud?

    Author:呆萌老师 QQ:2398779723 微信:it_daimeng

    Spring Cloud是一个微服务框架,相比Dubbo等RPC框架, Spring Cloud提供的全套的分布式系统解决方案,是若干个框架的集合。
    
    Spring Cloud为微服务架构开发涉及的配置管理,服务治理,熔断机制,智能路由,微代理,控制总线,一次性token,全局一致性锁,leader选举,分布式session,集群状态管理等操作提供了一种简单的开发方式。
    
    Spring Cloud 为开发者提供了快速构建分布式系统的工具,开发者可以快速的启动服务或构建应用、同时能够快速和云平台资源进行对接。
    
    • 1
    • 2
    • 3
    • 4
    • 5

    二 SpringCloud结构

    SpringCloud包含了很多子项目:

    在这里插入图片描述

    • Spring Cloud Config:配置管理工具,支持使用Git存储配置内容,支持应用配置的外部化存储,支持客户端配置信息刷新、加解密配置内容等

    • Spring Cloud Bus:事件、消息总线,用于在集群(例如,配置变化事件)中传播状态变化,可与Spring Cloud Config联合实现热部署

    • Spring Cloud Netflix:针对多种Netflix组件提供的开发工具包,其中包括Eureka、Hystrix、Zuul、Archaius等。

      ​ Netflix Eureka:一个基于rest服务的服务治理组件,包括服务注册中心、服务注册与服务发现机制的实现,实现了云端负载均衡和中间层服务器的故障转移。

      ​ Netflix Hystrix:容错管理工具,实现断路器模式,通过控制服务的节点,从而对延迟和故障提供更强大的容错能力。

      ​ Netflix Ribbon:客户端负载均衡的服务调用组件。

      ​ Netflix Feign:基于Ribbon和Hystrix的声明式服务调用组件。

      ​ Netflix Zuul:微服务网关,提供动态路由,访问过滤等服务。

      ​ Netflix Archaius:配置管理API,包含一系列配置管理API,提供动态类型化属性、线程安全配置操作、轮询框架、回调机制等功能。

    • Spring Cloud for Cloud Foundry:通过Oauth2协议绑定服务到CloudFoundry,CloudFoundry是VMware推出的开源PaaS云平台。

    • Spring Cloud Sleuth:日志收集工具包,封装了Dapper,Zipkin和HTrace操作。

    • Spring Cloud Data Flow:大数据操作工具,通过命令行方式操作数据流。

    • Spring Cloud Security:安全工具包,为你的应用程序添加安全控制,主要是指OAuth2。

    • Spring Cloud Consul:封装了Consul操作,consul是一个服务发现与配置工具,与Docker容器可以无缝集成。

    • Spring Cloud Zookeeper:操作Zookeeper的工具包,用于使用zookeeper方式的服务注册和发现。

    • Spring Cloud Stream:数据流操作开发包,封装了与Redis,Rabbit、Kafka等发送接收消息。

    • Spring Cloud CLI:基于 Spring Boot CLI,可以让你以命令行方式快速建立云组件。

    二 服务的注册与发现–Eureka

    1.Eureka介绍

    Eureka是spring cloud中的一个负责服务注册与发现的组件。

    一个Eureka中分为eureka server和eureka client。其中eureka server是作为服务的注册与发现中心。eureka client既可以作为服务的生产者(服务注册),又可以作为服务的消费者(服务发现)。

    如图所示:

    在这里插入图片描述

    基本原理:

    服务启动后向Eureka注册,Eureka Server会将注册信息向其他Eureka Server进行同步,当服务消费者要调用服务提供者,则向服务注册中心获取服务提供者地址,然后会将服务提供者地址缓存在本地,下次再调用时,则直接从本地缓存中取,完成一次调用。

    2.Eureka服务注册和发现

    Eureka使用需要服务器端和客户端,他们都需要使用到SpringCloud版本,所以这里我们使用maven父子工程来处理。

    2.1 创建父工程

    创建一个最简单的SpringBoot项目

    在这里插入图片描述

    修改pom.xml文件

    添加版本管理器,添加SpringCloud版本,子项目里就不用设置版本号了,将pom文件中的dependencies和build删除,只需要这些:

    
    
        
            
                org.springframework.cloud
                spring-cloud-dependencies
                2020.0.3
                pom
                import
            
        
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    修改packaging的类型为pom,代表父工程只有pom文件

    
    pom
    
    • 1
    • 2

    父工程中的src等文件夹也可以删除

    2.2 创建Eureka的服务器端

    在父工程上右键->new Module–>选择maven–>next
    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    输入子工程的名字

    在pom文件中添加jar包

  • 相关阅读:
    webstorage
    Discourse 在 2022-11 的最新版本中提供了新的边栏
    【MySQL】日期格式化 yyyy-mm-dd 详解 DATE_FORMAT() 函数
    基因型数据VCF转EXCEL亲测好用
    sql中可以使用不在select中的字段排序
    webpack常用配置与性能优化插件
    Java字符集/编码集
    计算机毕业设计选题推荐-果园预售系统-Java项目实战
    SQLi-LABS Page-4 (Challenges)
    开发一个训练LORA的WebUI
  • 原文地址:https://blog.csdn.net/daimenglaoshi/article/details/127797767