SpringCloud--->Spring生态体系的微服务架构:https://spring.io/

官网贴图,如下所示,介绍了微服务的架构体系(话说,英语好读官网,可能很爽吧,没体验过)。

1、微服务是一种架构风格(微服务架构是区分与单体架构的)。一个大型的复杂软件应用,由一个或多个微服务组成。系统中的各个微服务可被独立部署,各个微服务之间是松耦合的。每个微服务仅关注于完成一件任务并很好的完成该任务。

2、常见的架构风格,如是,a、客户端与服务端、b、基于组件模型的架构(EJB)、c、分层架构(MVC)、d、面向服务架构(SOA)。

3、微服务的特点,如下所是:

  特点一:系统是由多个服务构成。

  特点二、每个服务可以单独独立部署。

  特点三、每个服务之间是松耦合的。服务内部是高内聚的,外部是低耦合的。高内聚就是每个服务只关注完成一个功能。

4、微服务的优缺点,如下所示:

  优点:测试容易、可伸缩性强、可靠性强、跨语言程度会更加灵活、团队协作容易、系统迭代容易。

  缺点:运维成本过高,部署数量较多、接口兼容多版本、分布式系统的复杂性、分布式事务。

5、常见软件架构方式的区别,包含MVC架构、RPC架构(面向服务架构)、SOA架构(面向服务架构)、微服务架构(面向服务架构)。如下所示:

aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAA1kAAAH2CAYAAACC1EYhAAAACXBIWXMAAAsTAAALEwEAmpwYAAAgAElEQVR4nOzdd1iTVxsG8DthTxkKKoiDOlBxoeLeC/cerbXWWmjVtlakVltrrXVjaz+1oq21WrVaJy5U3IobR1XcKAgIiohMWeH74zSBkDDUSEi8f9fFBbx5x3n1kLzPGc+R5Obm5oKIiIiIiIg0QqrtAhAREREREekTBllEREREREQaxCCLiIiIiIhIgxhkERERERERaRCDLCIiIiIiIg1ikEVERERERKRBDLKIiIiIiIg0iEEWERERERGRBjHIIiIiIiIi0iAGWURERERERBrEIIuIiIiIiEiDGGQRERERERFpEIMsIiIiIiIiDWKQRUREREREpEEMsoiIiIiIiDSIQRYREREREZEGMcgiIiIiIiLSIAZZREREREREGsQgi4iIiIiISIMYZBEREREREWkQgywiIiIiIiINYpBFRERERESkQQyyiIiIiIiINIhBFhERERERkQYxyCIiIiIiItIgBllEREREREQaxCCLiIiIiIhIgxhkERERERERaRCDLCIiIiIiIg1ikEVERERERKRBDLKIiIiIiIg0iEEWERERERGRBjHIIiIiIiIi0iAGWURERERERBrEIIuIiIiIiEiDGGQRERERERFpEIMsIiIiIiIiDWKQRUREREREpEEMsoiIiIiIiDSIQRYREREREZEGMcgiIiIiIiLSIAZZREREREREGsQgi4iIiIiISIMYZBEREREREWkQgywiIiIiIiINYpBFRERERESkQQyyiIiIiIiINIhBFhERERERkQYxyCIiIiIiItIg3Q+yMjKA+fOBZs0AW1tAIsn7mjxZeV9/f+XXC/vicTyOx/E4HsfjeByP43E8jsfp1nEjRwLh4SgLDLVdgNeSkQG0agVcvKj25bgUICom73fHJMC5BKflcTyOx/E4HsfjeByP43E8jsfp2HHr1wNbtwLBwUCbNiU4+5sjyc3NzdVqCV7H/PnA118DAB78vBrPu/ZBto2diGSJiIiIiEjvSTNewOLiGVT1HQuTiHtAvXrAlSuAgYH2yqS1K2vCli0ARID1dOhoZNvaM8AiIiIiInqLyExMkdyyA8IOX4XMzByy6jWAp0+1Wibd7slydQXCw3HlWrwIsIiIiIiI6K3magfY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tVh+P1DqyuW4bv4ZuFwcuv7n+MM8+GNi2z2vKmMMpd+7vPnnqM2fEv///3rS19c4jdM4jdM4jdM4jdM4jdO4njsu9PBBYta9Q8T2fOOBO+6APn1O+npdKmB1K1YEAn37BgLwjVPl9TcGCsoCzVPJo8tOOkbjNE7jNE7jNE7jNE7jNE7jLDRu1qxAoLLS7A4lYPk9WVx7LUydCh9+CNu2QUlJh0+LGjOGqJhWv5gwBnJyTvryGqdxGqdxGqdxGqdxGqdxGteDx3k8MGgQjBkDZ5990tfpDtb+MmIREREREZEexvIXvhAREREREelJ1GSJiIiIiIgEkZosERERERGRIFKTJSIiIiIiEkRqskRERERERIJITZaIiIiIiEgQqckSEREREREJIjVZIiIiIiIiQaQmS0REREREJIjUZImIiIiIiASRmiwREREREZEgUpMlIiIiIiISRGqyREREREREgkhNloiIiIiISBCpyRIREREREQkiNVkiIiIiIiJBpCZLREREREQkiNRkiYiIiIiIBJGaLBERERERkSBSkyUiIiIiIhJEarJERERERESCSE2WiIiIiIhIEKnJEhERERERCSI1WSIiIiIiIkGkJktERERERCSI1GSJiIiIiIgEkZosERERERGRIFKTJSIiIiIiEkRqskRERERERIJITZaIiIiIiEgQ/S8jJV1vlAPXgwAAAABJRU5ErkJggg==" alt="" />

不同软件架构的描述,如下所示:

6、什么是 SpringCloud?

  1)、Spring Cloud是一个服务治理平台,提供了一些服务框架。包含了:服务注册与发现、配置中心、消息中心 、负载均衡、数据监控等等。

  2)、Spring Cloud是一个微服务框架,相比 Dubbo 等 RPC 框架, Spring Cloud 提供的全套的分布式系统解决方案。

  3)、Spring Cloud对微服务基础框架 Netflix 的多个开源组件进行了封装,同时又实现了和云端平台以及和 Spring Boot 开发框架的集成。

  4)、Spring Cloud为微服务架构开发涉及的配置管理,服务治理,熔断机制,智能路由,微代理,控制总线,一次性 token,全局一致性锁,leader 选举,分布式session,集群状态管理等操作提供了一种简单的开发方式。

  5)、Spring Cloud为开发者提供了快速构建分布式系统的工具,开发者可以快速的启动服务或构建应用、同时能够快速和云平台资源进行对接。

  6)、Sping Cloud是Spring 的一个顶级项目与 Spring Boot、Spring Data 位于同一位置。

7、Spring Cloud的子项目。

)、Spring Cloud Config:配置管理工具,支持使用 Git 存储配置内容,支持应用配置的外部化存储,支持客户端配置信息刷新、加解密配置内容等。
)、Spring Cloud Bus:事件、消息总线,用于在集群(例如,配置变化事件)中传播状态变化,可与 Spring Cloud Config 联合实现热部署。
)、Spring Cloud Netflix:针对多种 Netflix 组件提供的开发工具包,其中包括Eureka、Hystrix、Zuul、Archaius 等。
  a、Netflix Eureka:一个基于 rest 服务的服务治理组件,包括服务注册中心、服务注册与服务发现机制的实现,实现了云端负载均衡和中间层服务器的故障转移。
  b、Netflix Hystrix:容错管理工具,实现断路器模式,通过控制服务的节点, 从而对延迟和故障提供更强大的容错能力。
  c、Netflix Ribbon:客户端负载均衡的服务调用组件。
  d、Netflix Feign:基于 Ribbon 和 Hystrix 的声明式服务调用组件。
  e、Netflix Zuul:微服务网关,提供动态路由,访问过滤等服务。
  f、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,可以让你以命令行方式快速建立云组件。

8、什么是服务注册中心。

  答:服务注册中心是服务实现服务化管理的核心组件,类似于目录服务的作用,主要用来存储服务信息,譬如提供者 url 串、路由信息等。服务注册中心是 SOA 架构中最基础的设施之一。

9、服务注册中心的作用。

  答:服务的注册、服务的发现。

10、常见的注册中心有哪些。

  答:例如,Dubbo的注册中心Zookeeper、Sringcloud的注册中心Eureka。

11、服务注册中心解决了什么问题。

  答:服务管理、服务的依赖关系管理。

12、什么是Eureka注册中心?

  答:Eureka是Netflix开发的服务发现组件,本身是一个基于 REST 的服务。Spring Cloud 将它集成在其子项目 spring-cloud-netflix 中,以实现Spring Cloud 的服务注册于发现,同时还提供了负载均衡、故障转移等能力。

13、Eureka 注册中心三种角色。

  a、Eureka Server,通过 Register、Get、Renew 等接口提供服务的注册和发现。
  b、Application Service (Service Provider),服务提供方,把自身的服务实例注册到 Eureka Server中。
  c、Application Client (Service Consumer),服务调用方,通过 Eureka Server获取服务列表,消费服务。

14、Eureka的入门案例介绍与使用,首先创建Eureka Server,通过 Register、Get、Renew 等接口提供服务的注册和发现。由于使用的是maven构建的springboot项目,所以首先引入pom.xml配置文件,这里需要注意的是springboot的版本、springcloud的版本对应,不然会出现一个版本不对应错误,稍后可以贴一下错误。我使用的springboot版本是2.2.0的,springcloud版本是Hoxton.RC1。

 <?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2..RELEASE</version>
<relativePath />
<!-- lookup parent from repository -->
</parent>
<groupId>com.bie</groupId>
<artifactId>springcloud-eureka-server</artifactId>
<version>0.0.-SNAPSHOT</version>
<name>springcloud-eureka-server</name>
<description>Demo project for Spring Boot</description> <properties>
<project.build.sourceEncoding>UTF-</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<spring-cloud.version>Hoxton.RC1</spring-cloud.version>
<maven-jar-plugin.version>3.1.</maven-jar-plugin.version>
</properties> <dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency> <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies> <dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement> <build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build> <repositories>
<repository>
<id>spring-milestones</id>
<name>Spring Milestones</name>
<url>https://repo.spring.io/milestone</url>
</repository>
</repositories> </project>

如果版本不一致,报错如下所示:

 java.lang.NoSuchMethodError: org.springframework.boot.builder.SpringApplicationBuilder.<init>([Ljava/lang/Object;)V

如果不知道如何,找对应的版本,可以使用spring官网的案例,将pom.xml配置拷贝到你的代码里面即可。

最后找到这个页面,然后将这个jdk、打包方式、java语言、maven方式、项目名称、包名称、依赖包等等选择好,就可以下载下来,然后将pom.xml里面的配置拷贝到你的项目里面即可。

然后配置一下application.properties配置文件。将eureka不注册到Eureka-server服务中、不从Eureka-server中获取服务注册信息,避免出现错误。

 # 配置项目名称
spring.application.name=springcloud-eureka-server # 配置端口号
spring.port= # 是否将自己注册到 Eureka-Server 中,默认的为 true
eureka.client.registerWithEureka=false # 是否从 Eureka-Server 中获取服务注册信息,默认为 true
eureka.client.fetchRegistry=false

可以将注册@EnableEurekaServer添加到主类上面,表示启动Eureka-server服务端。Eureka提供服务的注册与发现。

 package com.bie;

 import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; @EnableEurekaServer // 表示启动的是eureka的server服务器端
@SpringBootApplication
public class SpringCloudApplication { public static void main(String[] args) {
SpringApplication.run(SpringCloudApplication.class, args);
} }

启动主类以后,如果正常启动可以在浏览器查看到页面信息,Eureka提供的管理界面,通过管理界面可以看到注册到Eureka-server的服务信息。如下所示:

aaarticlea/jpeg;base64,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" alt="" />

作者:别先生

博客园:https://www.cnblogs.com/biehongli/

如果您想及时得到个人撰写文章以及著作的消息推送,可以扫描上方二维码,关注个人公众号哦。

SpringCloud的入门学习之Eureka(Eureka的单节点)的更多相关文章

  1. 【原创】SpringBoot & SpringCloud 快速入门学习笔记(完整示例)

    [原创]SpringBoot & SpringCloud 快速入门学习笔记(完整示例) 1月前在系统的学习SpringBoot和SpringCloud,同时整理了快速入门示例,方便能针对每个知 ...

  2. SpringCloud的入门学习之概念理解、Eureka服务注册与发现入门

    1.微服务与微服务架构.微服务概念如下所示: 答:微服务强调的是服务的大小,它关注的是某一个点,是具体解决某一个问题.提供落地对应服务的一个服务应用,狭意的看,可以看作Eclipse里面的一个个微服务 ...

  3. SpringCloud的入门学习之深入理解Eureka注册中心

    1.Eureka 注册中心三种角色. 答:a.Eureka Server,注册中心,通过 Register.Get.Renew 等接口提供服务的注册和发现. b.Application Service ...

  4. SpringCloud的入门学习之概念理解、Hystrix断路器

    1.分布式系统面临的问题,复杂分布式体系结构中的应用程序有数十个依赖关系,每个依赖关系在某些时候将不可避免地失败. 2.什么是服务雪崩? 答:多个微服务之间调用的时候,假设微服务A调用微服务B和微服务 ...

  5. SpringCloud的入门学习之概念理解、Feign负载均衡入门

    1.Feign是SpringCloud的一个负载均衡组件. Feign是一个声明式WebService客户端.使用Feign能让编写Web Service客户端更加简单, 它的使用方法是定义一个接口, ...

  6. SpringCloud的入门学习之概念理解、Ribbon负载均衡入门

    1.Ribbon负载均衡,Spring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端.负载均衡的工具. 答:简单的说,Ribbon是Netflix发布的开源项目,主要功能 ...

  7. SpringCloud的入门学习之Eureka(高可用注册中心HA)构建Provider服务、Consumer服务

    1.在高可用的Eureka注册中心中构建provider服务. 使用springboot的多环境配置,来搭建Eureka的高可用集群式部署.由于使用的是maven构建的springboot项目,所以首 ...

  8. SpringCloud的入门学习之Netflix-eureka(Eureka的集群版搭建)

    1.Eureka单机版的话,可能会出现单点故障,所以要保障Eureka的高可用,那么可以进行搭建Eureka的集群版. 高可用的Eureka的注册中心,将注册中心服务部署到多台物理节点上,形成一个集群 ...

  9. 微服务框架SpringCloud(Dalston版)学习 (一):Eureka服务注册与发现

    eureka-server eureka服务端,提供服务的注册与发现,类似于zookeeper 新建spring-boot工程,pom依赖: <dependency> <groupI ...

随机推荐

  1. IDE开发小技巧-快速引包/替换关键词

    快速引包 Ctrl+Shift+O 快速搜索/查找替换   Ctrl+F

  2. js之好看的鼠标点击-光标特效

    1.光标特效 <script src="https://blog-static.cnblogs.com/files/axqa/bubbleCursor.js">< ...

  3. Java描述设计模式(07):适配器模式

    本文源码:GitHub·点这里 || GitEE·点这里 一.适配器模式简介 1.基础概念 适配器模式把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在 ...

  4. 单个div元素实现双边框

    昨天被问到一个很有意思的问题,单个div元素怎么实现双边框,当时脑子懵了一下,然后就回答出来用伪元素,别的实在是想不起来了,所以在此总结一下子防止以后再被问到 总结了一下大约有以下几种方案: 伪元素实 ...

  5. maven工程指定web资源包,创建jsp文件

    进入项目的project structure. 选择web. 在右侧增加web资源包路径

  6. 分布式的cap原理

    由来 1998年的加州大学的计算机科学家 Eric Brewer 提出,分布式有三个指标. Consistency,Availability,Partition tolerance. 简称即为CAP. ...

  7. [Abp vNext 源码分析] - 5. DDD 的领域层支持(仓储、实体、值对象)

    一.简要介绍 ABP vNext 框架本身就是围绕着 DDD 理念进行设计的,所以在 DDD 里面我们能够见到的实体.仓储.值对象.领域服务,ABP vNext 框架都为我们进行了实现,这些基础设施都 ...

  8. 并发编程-多线程,GIL锁

    本章内容: 1.什么是GIL 2.GIL带来的问题 3.为什么需要GIL 4.关于GIL的性能讨论 5.自定义的线程互斥锁与GIL的区别 6.线程池与进程池 7.同步异步,阻塞非阻塞 一.什么是GIL ...

  9. C#(1)运用C#实现一键从Word文档转换TXT文本的功能

    有想直接从Word转TXT文本的可以看看,懒得复制粘贴的也可以使用下,方便而快捷!! 首先打开vs2012创建一个简单的form窗体: 里面主要的就是一个存放Word文档的button和一个执行的bu ...

  10. SQLi-LABS Page-1(Basic Challenges) Less5-Less10

    Less5 GET - Double Injection - Single Quotes http://10.10.202.112/sqli/Less-5?id=1 http://10.10.202. ...