手把手教你搭建Sping cloud分布式架构(图文详细)

1.创建服务注册中心的步骤

a、创建一个maven主工程,命名为spring-cloud

b、创建一个Module子工程,该工程作为服务注册中心,命名为Eureka-server

c、创建一个服务提供者,即一个Module子工程,命名为service-hello, 在配置文件中,将该服务注册在Eureka-server中

d、测试服务的多端口同时启动,观察Eureka-server中的信息

e、了解高可用性的服务注册中心。

一、Maven主工程创建

创建一个Maven主工程,命名为Spring-Cloud,在其pom文件引入依赖,spring Boot版本为2.0.3.RELEASE,Spring Cloud版本为Finchley.RELEASE。这个pom文件作为父pom文件,起到依赖版本控制的作用,其他module工程继承该pom。

主工程pom文件中添加spring-boot-starter和spring-boot-starter-test两个依赖包,添加一个spring-boot-maven-plugin的插件,添加一个依赖版本管理器。

二、搭建服务注册中心子项目Eureka-server

右键工程->创建model-> 选择spring initialir

点击next ,Group填写包名  artifact填写项目名,命名为eureka-server

点击next,选中spring cloud discovery,在中间选项中勾选上Eureka server

在pom文件中,继承主工程pom文件,添加spring-cloud-starter-netflix-eureka-server依赖包。

项目创建好后,结构如下,其中EurekaServiceApplication为springboot启动类,在该启动类中添加一个注解@EnableEurekaServer

项目配置文件采用yml的配置语法:

其中spring.application.name是唯一的,表明自己的服务名

Server.port是唯一的,表示启动该项目所用的tomcat端口

Eureka.instance.hostname表明该注册中心的ip地址

完成上面所有配置后,启动EurekaServerApplication启动类,在浏览器中访问http://localhost:8761/

其中Application处是所有注册在注册中心的服务列表,当前没有任何服务注册

General info是key-value格式的当前注册中心的相关信息

Instance info是当前所有在运行的注册中心实例的信息

三、开发一个微服务

创建一个子项目Module,命名为service-hello,

创建过程和eureka-server类似,但不需要勾选eureka-server选项。

pom文件继承主工程pom文件,并添加两个依赖:spring-cloud-starter-netflix-eureka-client和spring-boot-starter-web

配置文件如下:

Server.port指明当前项目的端口为8005

Spring.application.name指明当前服务的名称,服务与服务间的调用,后面的客户端调用服务,都是根据该名称

Eureka.client.serviceUrl.defaultZone指明该服务注册中心地址,即是我们刚刚部署启动的eureka-server

在spring-boot启动类中,加上一个注解@EnableEurekaClient,表明自己是一个服务提供方。 在启动类的子目录或同级目录下,编写HelloController,代码如下:

启动service-hello,访问服务注册中心地址: http://localhost:8761/ 可以看到我们的service-hello微服务已经注册在eureka-server中,这时可以直接访问微服务的地址端口,并附带参数gcm  http://localhost:8005/hello?name=gcm 可以看到浏览器打印出控制器返回的信息

四、一个微服务,启动并注册多个实例

在idea的启动管理器中,取消service-hello的单例限制,同时修改service-hello项目配置文件中的端口为8006,再次启动,可以看到在注册中心中,SERVICE-HELLO服务已经注册了两个不同端口的实例,你可以通过对应的地址分别访问这两个服务。

通过微服务的拷贝,可以将一个微服务部署在多个不同的计算机上,通过统一的注册中心进行管理,如果某一个微服务宕机了,仍然有其他相同的微服务可供客户端进行调用,这就是分布式的雏形。

拓展:高可用性的注册中心

除了微服务可以通过拷贝部署在多台计算机上实现分布式以外,Eureka Server还支持自身的分布式部署,当有服务注册时,多个Eureka-eserver是对等的,它们都存有相同的信息,这就是通过服务器的冗余来增加可靠性,当有一台服务器宕机了,服务并不会终止,因为另一台服务存有相同的数据。

持续更新中…,如果遇到问题欢迎联系我,在文章最后评论区【留言和讨论】

  • 27
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值