SpringCloud快速入门篇(一)


    • (一)Ribbon

    • (二)Feign

    • (一)Eureka

    •  

    • (1)单机版Eureka搭建

    • (2)集群版Eureka搭建

    • (一)微服务

    • (二)微服务架构

    • (三)微服务技术栈

    • (四)springCloud简介

    • 一、微服务与springCloud

    •  

    • 二、服务注册与发现(Eureka)

    •  

    • 三、SpringCloud负载均衡

    •  

一、微服务与springCloud

(一)微服务

微服务指的是具体解决某一个问题提供对应服务的一个服务应用 ,从技术角度来说,就是一种小而独立的处理过程,可以将其和进程类比,拥有独立的资源环境,自行创建以及销毁。

(二)微服务架构

微服务架构是种架构模式,它提倡将单应程序划分成组的服务,服务之间互相协调、互相配合,为户提供最终价值。每个服务运在其独的进程中,服务与服务间采轻量级的通信机制互相协作(通常是基于HTTP协议的RESTful API)。每个服务都围绕着具体业务进构建,并且能够被独的部署到产环境、类产环境等。另外,应当尽量避免统的、集中式的服务管理机制,对具体的个服务,应根据业务上下,选择合适的语、具对其进构建。

(三)微服务技术栈

dubbo和SpringCloud的优缺点选型?


最大区别:
SpringCloud抛弃了dubbo的RPC通信,采用的是基于HTTP的REST方式。
严格来说,这两种方式各有优劣。虽然从一定程度上来说,后者牺牲了服务调用的性能,但也避免了上面提到的原生RPC带来的问题。而且REST相比RPC更为灵活,服务提供方和调用方的依赖只依靠一纸契约,不存在代码级别的强依赖,这在强调快速演化的微服务环境下,显得更加合适。


品牌机与组装机的区别:
很明显,Spring Cloud的功能比dubBO更加强大,涵盖面更广,而且作为Spring的拳头项目,它也能够与Spring Framework、Spring Boot、Spring Data、Spring Batch等其他Spring项目完美融合,这些对于微服务而言是至关重要的。使用dubbo构建的微服务架构就像组装电脑,各环节我们的选择自由度很高,但是最终结果很有可能因为一条内存质量不行就点不亮了,总是让人不怎么放心,但是如果你是一名高手,那这些都不是问题;而Spring Cloud就像品牌机,在Spring Source的整合下,做了大量的兼容性测试,保证了机器拥有更高的稳定性,但是如果要在使用非原装组件外的东西,就需要对其基础有足够的了解。


社区支持与更新力度:
最为重要的是,dubBO停止了5年左右的更新,虽然2017.7重启了。对于技术发展的新需求,需要由开发者自行拓展升级(比如当当网弄出了dubBox),这对于很多想要采用微服务架构的中小软件组织,显然是不太合适的,中小公司没有这么强大的技术能力去修改dubbo源码+周边的一整套解决方案,并不是每一个公司都有阿里的大牛+真实的线上生产环境测试过。

(四)springCloud简介

SpringCloud,基于SpringBoot提供了一套微服务解决方案(springCloud依赖springboot,而springboot可以独立成应用,SpringBoot专注于快速、方便的开发单个微服务个体,SpringCloud关注全局的服务治理框架。),包括服务注册与发现,配置中心,全链路监控,服务网关,负载均衡,熔断器等组件,除了基于NetFlix的开源组件做高度抽象封装之外,还有一些选型中立的开源组件。
SpringCloud利用SpringBoot的开发便利性巧妙地简化了分布式系统基础设施的开发,SpringCloud为开发人员提供了快速构建分布式系统的一些工具,包括配置管理、服务发现、断路器、路由、微代理、事件总线、全局锁、决策竞选、分布式会话等等,它们都可以用SpringBoot的开发风格做到一键启动和部署。

二、服务注册与发现(Eureka)

(一)Eureka

Spring Cloud 封装了 Netflix 公司开发的 Eureka 模块来实现服务注册和发现。Eureka 采用了 C-S 的设计架构


Eureka Server
Eureka Server 作为服务注册功能的服务器,它是服务注册中心,各个节点启动后,会在EurekaServer中进行注册,这样EurekaServer中的服务注册表中将会存储所有可用服务节点的信息,服务节点的信息可以在界面中直观的看到。
系统中的其他微服务,使用 Eureka Client连接到 Eureka Server并维持心跳连接。这样系统的维护人员就可以通过 Eureka Server 来监控系统中各个微服务是否正常运行。SpringCloud 的一些其他模块(比如Zuul)就可以通过 Eureka Server 来发现系统中的其他微服务,并执行相关的逻辑。


EurekaClient:
EurekaClient是一个Java客户端,用于简化Eureka Server的交互,客户端同时也具备一个内置的、使用轮询(round-robin)负载算法的负载均衡器。在应用启动后,将会向Eureka Server发送心跳(默认周期为30秒)。如果Eureka Server在多个心跳周期内没有接收到某个节点的心跳,EurekaServer将会从服务注册表中把这个服务节点移除(默认90秒)。

(1)单机版Eureka搭建

下面举个例子来看一下springBoot中如何使用Eureka的,步骤如下
①创建服务端
springboot Initializr 快速创建一个springboot项目就不多说了。如果对springboot不熟的可以看看我写的springboot的相关博客。

  • 第一步、添加服务端依赖pom.xml

  1. <!--eureka-server服务端 -->

  2. <dependency>

  3. <groupId>org.springframework.cloud</groupId>

  4. <artifactId>spring-cloud-starter-eureka-server</artifactId>

  5. </dependency>

  • 第二步、在application.yml中增加配置

  1. server:

  2. port: 7001

  3. eureka:

  4. instance:

  5. hostname: localhost #eureka服务端的实例名称

  6. client:

  7. register-with-eureka: false #false表示不向注册中心注册自己。

  8. fetch-registry: false #false表示自己端就是注册中心,我的职责就是维护服务实例,并不需要去检索服务

  9. service-url:

  10. defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/ #设置与Eureka Server交互的地址查询服务和注册服务都需要依赖这个地址。

  • 第三步、在启动类上加注解

  • @SpringBootApplication

  • @EnableEurekaServer//EurekaServer服务器端启动类,接受其它微服务注册进来

    在浏览器中输入localhost:7001就 可以看到如下界面

     

SpringCloud快速入门篇(一)
①创建客户端(客户端也就是某个微服务)

  • 第一步、添加服务端依赖pom.xml

  1. <!-- 将微服务provider侧注册进eureka -->

  2. <dependency>

  3. <groupId>org.springframework.cloud</groupId>

  4. <artifactId>spring-cloud-starter-eureka</artifactId>

  5. </dependency>

  6. <dependency>

  7. <groupId>org.springframework.cloud</groupId>

  8. <artifactId>spring-cloud-starter-config</artifactId>

  9. </dependency>

  • 就可以啦!!!

SpringCloud快速入门篇(一)

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/290943.html

(0)
上一篇 2022年10月12日 04:51
下一篇 2022年10月12日 14:03

发表回复

登录后才能评论