不吹不擂!美团T6首发内部SpringCloud笔记详解,理论实战齐飞

315 阅读4分钟

今日分享开始啦,请大家多多指教~

什么是微服务架构

简单地说,微服务是系统架构上的一种设计风格,它的主旨是将一个原本独立的系统拆分成多个小型服务,这些小型服务都在独立的进程中运行,服务之间通过基于HTTP的RESTful API进行通信协作。被拆分成的每一个小型服务都围绕着系统中的某一项或者耦合较高的业务进行构建,并且每个服务都维护者自身的数据存储、业务开发、自动化测试以及独立部署。由于有了轻量级的通信协作基础,所有这些微服务可以使用不同的语言来编写。

SpringCloud简介

SpringCloud是一个基于SpringBoot实现的微服务框架开发工具。它为微服务架构中涉及的配置管理、服务治理、断路器、智能路由、微代理、分布式会话和集群状态管理等操作提供了一个简单的开发方式。

SpringCloud Config:配置管理工具,支持使用Git存储配置内容,可以使用它实现应用配置的外部化存储,并支持客户端配置信息刷新等。

SpringCloud Netflix:核心组件,对多个NetflixOSS开源套件进行整合。

Eureka:服务治理组件,包含服务注册中心、服务注册和发现机制的实现。

Hystrix:容错管理组件,实现断路器模式,帮助服务依赖中出现的延迟和为故障提供强大的容错能力。

Ribbon:负载均衡的服务调用组件。

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

Zuul:网关组件,提供智能路由,访问过滤等功能。

SpringCloud Consul:服务发现和及配置管理工具。

SpringCloud Stream:通过Redis、Rabbit、或者Kakfa实现的消费微服务,可以通过简单的声明式模型来发送和接受消息。

等等~~~

Eureka

搭建注册中心

创建一个基础的SpringBoot工程,命名为eureka-server,并在pom文件中引入必要的依赖内容,代码如下:

image.png

image.png

在引导类上添加@EnableEurekaServer注解启动一个服务注册中心提供给其他应用进行对话

image.png

修改默认配置,端口号 ,微服务名称,注册中心地址

image.png

注册服务提供者

创建一个基础的SpringBoot工程,命名为eureka-provider,并在pom文件中引入必要的依赖内容,代码同上

在引导类上添加@EnableDiscoveryClient注解,将此微服务添加到注册中心

image.png

修改默认配置:端口号,微服务名称,注册给eureka

image.png

注册服务消费者

创建一个基础的SpringBoot工程,命名为eureka-consumer,并在pom文件中引入必要的依赖内容,代码同上

在引导类上添加@EnableDiscoveryClient注解,将此微服务添加到注册中心

image.png

修改默认配置:端口号,微服务名称,注册给eureka

image.png

测试:各一个项目都启动,

image.png

以上关于注册中心eureka就配置好了。

Feign

创建一个SpringBoot基础工程,取名feigen-counsumer。并在pom文件中引入必要的依赖内容

image.png

image.png

在引导类上添加@EnableFeignClients注解开启SpringCloud Feignd的支持

image.png

定义HelloService接口,通过@FeignClient注解指定服务名绑定服务

image.png

创建一个ConsumerController来实现对Feign客户端的调用,使用@Autowired直接注入上面的helloService实例

image.png

修改默认配置:端口号,微服务名称,注册给eureka

image.png

测试:

发送几次get请求Http:localhost:9001/feign-consumer,正确返回“hello World”

Zuul

创建一个SpringBoot基础工程,取名SpringCloud-Zuul。并在pom文件中引入必要的依赖内容

image.png

在引导类上添加@EnableZuulProxy注解开启SpringCloud Zuul的支持

image.png

创建LoginFilter继承自ZuulFilter ,添加拦截器的业务代码

image.png

image.png

image.png

修改默认配置:端口号,微服务名称,注册给eureka

image.png

测试:通过网关访问--URL不含token,包含token,打开的界面不一致

image.png

image.png

个人总结

Eureka

注册中心:eureka-server

         1.引入启动器

         2配置spring.application.name=dynamic.eureka 

         3.在引导类上添加@EnableEurekaServer

客户端:server-provider,server-consumer

        1.引入启动器 

        2 配置spring.application.name,eureka.service-url.defaultZone=http://localhost:10086/eureka   

       3.@EnableDiscoveryClient(启动eureka客户端) 

Feign

            1.引入openFeign启动器

            2.在引导类上加上@EnableFeignClients

            3.自定义接口,通过@FeignClient注解指定服务名绑定服务

            4.更改默认配置

Zuul

        1.引入Zuul启动器

        2.启动类上添加@EnableZuulProxy注解

        3.创建过滤器,继承ZuulFilter基类,重写四个方法

       4.配置路由  zuul.router. service-provider:  /service-provider/**

今日份分享已结束,请大家多多包涵和指点!