SpringCloud微服务搭建(适合初学者)

2021-06-29 17:05

阅读:493

标签:不同   div   管理   color   pom.xml   nbsp   简单   play   通过   

Spring Cloud 微服务简介

1. 单体应用优化

    1.1 可使用SOA面向服务架构(将每个模块分开,某个模块出问题了,不会影响其他模块)
    1.2 如果某个服务于其他服务有调用关系,那么就需用到ESB(企业服务总线)

2. 微服务架构

    2.1 将单体应用切分为小服务单元

3. Spring Cloud

    3.1 是一个工具箱

    3.2 基于SpringBoot,封装了Netflix的框架

    3.3 将Netflix与Spring容器进行整合

4. Spring Cloud整合的Netflix框架

    4.1 Eureka:基于REST服务的分布式中间件,主要用于服务管理

    4.2 Hystrix:容错框架,通过添加延迟阀值以及容错的逻辑,来帮助我们控制分布式系统间组件的交互。

    4.3 Feign:一个REST客户端,目的是为了简化WebService客户端的开发

    4.4 Ribbon:负载均衡框架    Zuul:为微服务集群提供过代理,过滤,路由等功能

5. 微服务的优点

    5.1 易于开发和维护:由于微服务单个模块就相当于一个项目,开发这个模块我们就只需关心这个模块的逻辑即可,代码量和逻辑复杂度都会降低,从而易于开发和维护。

    5.2 启动较快:这是相对单个微服务来讲的,相比于启动单体架构的整个项目,启动某个模块的服务速度明显是要快很多的。

    5.3 局部修改容易部署:在开发中发现了一个问题,如果是单体架构的话,我们就需要重新发布并启动整个项目,非常耗时间,但是微服务则不同,哪个模块出现了bug我们只需要解决那个模块的bug就可以了,解决完bug之后,我们只需要重启这个模块的服务即可,部署相对简单,不必重启整个项目从而大大节约时间。

   5.4 技术栈不受限:比如订单微服务和电影微服务原来都是用java写的,现在我们想把电影微服务改成nodeJs技术,这是完全可以的,而且由于所关注的只是电影的逻辑而已,因此技术更换的成本也就会少很多。

 

上面简单的介绍了一下什么Spring Cloud微服务,那么下面直接上代码,为的就是能让初学者快速上手,自己搭建起Spring Cloud微服务框架。

 

搭建Eureka程序

什么是Eureka:Eureka是Netflix开发的服务发现组件,本身是一个基于REST的服务。Spring Cloud将它集成在其子项目spring-cloud-netflix中,以实现Spring Cloud的服务发现功能。

Eureka的配置可以说是非常简单的,配置如下:

技术分享图片技术分享图片
 1  2     org.springframework.boot 3     spring-boot-starter-parent
 4     2.0.3.RELEASE 5      6  7  8      9         org.springframework.cloud10         spring-cloud-starter-eureka-server
11     12 
pom.xml
技术分享图片技术分享图片
 1 # 自定义端口号
 2 server.port=8761
 3 
 4 eureka.instance.hostname=127.0.0.1
 5 
 6 eureka.client.serviceUrl.defaultZone=http://${eureka.instance.hostname}:${server.port}/eureka/
 7 
 8 # 为false意味着自身仅作为服务器,不作为客户端
 9 eureka.client.registerWithEureka=false
10 
11 # 为false意味着无需注册自身
12 eureka.client.fetchRegistry=false
application.properties
技术分享图片技术分享图片
1 @SpringBootApplication
2 @EnableEurekaServer
3 public class Application {
4 
5     public static void main(String[] args) {
6         new SpringApplicationBuilder(Application.class).web(true).run(args);
7     }
8 }
Application.java

 

技术分享图片

启动后,如果能够正常访问到这个页面的朋友们,恭喜你们  成功了 !!!

想要做集群的话,也是很简单的,只需在服务端改一下配置就可以了,废话不多说,请继续往下看:

需要修改系统文件:C:/Windows/System32/drivers/etc/hosts

增加映射:127.0.0.1 slave1 slave2(无论是slave1还是slave2,都会映射到127.0.0.1)(这个映射一定要加,否则映射时会出问题)

因加入了集群,那么就需要对每个服务进行单独启动(这里进行手动启动服务)区别如下:

技术分享图片技术分享图片
 1 @SpringBootApplication
 2 @EnableEurekaServer
 3 public class Application {
 4 
 5     public static void main(String[] args) {
 6         Scanner scan = new Scanner(System.in);// 需手动输入:刚刚配置过映射的 slave1、slave2
 7         String pro = scan.nextLine();
 8         new SpringApplicationBuilder(Application.class).profiles(pro).run(args);
 9     }
10 }
Application.java

为了方便配置,在这里将配置文件“application.properties”更改为“application.yml“,在这里有一点需要注意的是:在application.yml配置中的书写的规范,换行后 需加两个空格(使用缩进的话不知道会不会出现问题,本人没有亲自尝试过)

注:

两个配置中间的横杠:---(这里的”-“,一定要是三个,多一个 少一个都不行,本人亲自测试过)

name: spring-cloud-server(Eureka程序的项目名)

profiles: slave1(刚刚配置映射时的名称)

技术分享图片技术分享图片
 1 server:
 2   port: 8761
 3 spring:
 4   application:
 5     name: spring-cloud-server
 6   profiles: slave1
 7 eureka:
 8   client:
 9     serverUrl:
10       defaultZone: http://slave2:8762/eureka
11 ---
12 server:
13   port: 8762
14 spring:
15   application:
16     name: spring-cloud-server
17   profiles: slave2
18 eureka:
19   client:
20     serverUrl:
21       defaultZone: http://slave1:8761/eureka
application.yml

 

 输入”slave1“启动后截图:

技术分享图片

输入”slave2“启动后截图: 

技术分享图片

 到这里,Eureka集群配置就成功了!!!

 因时间有限,至于服务提供者及服务调用者,本人会在以后的时间里进行更新!!!

SpringCloud微服务搭建(适合初学者)

标签:不同   div   管理   color   pom.xml   nbsp   简单   play   通过   

原文地址:https://www.cnblogs.com/lpxdbk/p/9644677.html


评论


亲,登录后才可以留言!