开发者学堂课程【Spring Cloud 微服务架构设计与开发实战 :Spring Cloud 声明式调用客户端 Feign】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/60/detail/1087
Spring Cloud 声明式调用客户端 Feign
——分布式架构的又一巅峰
目录:
一、Spring Cloud 调用方 Feign
二、版本选择
三、执行过程
一、 Spring Cloud 调用方 Feign
Feign 主要是快速调用 API 调用工作,将代码大大地简化,微服务框架本身的设计思想简化微服务,开发工程师的工作,随版本的升高,可使用的插件也越来越多,功能越来越强大。
1.调用方,简化微服务 API 调用
2. Feign 是一种声明式、模板化的 HTTP 客户端。
3.简化 Http 客户端开发
4.只需要创建一个接口+@注解
5.Feign 注解和 JAX-RS 注解。
6.Feign 支持可插拔的编码器和解码器
7.Feign 默认集成了 Ribbon,并和 Eureka 结合
8.Eclipse 或者 IDEA 实战
总结:
Spring Cloud 的生态变得越来越丰富,越来越强大,利于我们做微服务架构的多样化的设计落地。
二、版本选择
1.打开 New Spring starter Proleet Depredencles 页面,
2.选择版本8 和2.3.7
3.勾选 Spring Boot DevTooh、Spring wWeb、openFeigns、 Eureka Dincorwery Clle 四个选项——Next——Finish。
不需要使用特别新的版本,因为大部分的企业因为资金的问题很难会使用特别新的版本,跟上互联网公司的程度则不需使用高版本
三、执行过程
配置文件作为一个调用端,与微服务调用端基本相同,则可以复制微服务调用端的配置。
项目改为 FeignClient
(1)在 waweassprinoecleud00000cFeigrClieneD emoApp lincati on jwvea com alibaba 界面中:
1spring.application. name=FeignClient
2 server.port=9001
3eureka.client.service-url.defaultzonemhttp:/ /localhost:8761/eureka/
4 eureka.client.fetch-registry=true
5 eureka.client.register-with-eurekamtrue
声明客户端的接口,order-microservice,注意大小写,注册中心中就是大写,匹配唯一的服务即接口地址偏移需要匹配。
(2)在 veaSprimgClousc0000OCderMivcrove rice Demo [boot]ldev tools] 界面:
1
<?xml version="1.0" encoding="UTF-8"?>
2owiwranluhumswtiw.2=<project xminsn"http://maven.apache .org/PON/4.0.0"xmIns:xsl "http:/
3xsi:schemaLocationn "http://maven.apache.org/PON/4.0.0 https ://mav
4xsi:schemaLocationn "http://maven.apache.org/PON/4.0.0 https ://mav
xsi:schemaLocationn "http://maven.apache.org/PON/4.0.0 5https ://mav
6xsi:schemaLocationn "http://maven.apache.org/PON/4.0.0 https ://mav
7xsi:schemaLocationn "http://maven.apache.org/PON/4.0.0 https ://mav
8xsi:schemaLocationn "http://maven.apache.org/PON/4.0.0 https ://mav
9
xsi:schemaLocationn "http://maven.apache.org/PON/4.0.0 https ://mav
1
0xsi:schemaLocationn "http://maven.apache.org/PON/4.0.0 https ://mav
1
1c/pament>
12<artifact1d>JavaSpringcloud8008e00rderMicroserviceDemoc/ artifact.;
13cversion>0.8.1-SNAPSHOT</verslon>
1
4ononn DIsly Hy wmrowo p-i
15Mwin thyn auouns Stnsta loplw Lsw cn 4h oum w ont=-haag
16ianeny Hs
微服务也属于分布式架构更高级更复杂的阶段,实际代理对象通过底层查找,保证注册中心正常,过程需要体验化掌握,不要只懂得概念
(3)在 e OderPeosey jaea 界面中:
1package com.alibaba;
2
3
import org.springframework. boot.SpringApplication;
5
6 @SpringBootApplication
7public class JavaSpringCloudo00808EurekaDemoApplication {
8
9
SpringApplication.run( JavaSpringCloudeoeo0eEurekaDemoApplicat
1
0SpringApplication.run( JavaSpringCloudeoeo0eEurekaDemoApplicat
自动装配,主要通过代理对象来调用远程微服务,本地是 9001test,逐渐套用,微服务也属于 RPC,9001test 用浏览器测试,微服务项目逐渐复杂,多样化。
(4)在 Jawreahpring Cihoudoooooc EureiaDemot pp licaticnsirva 界面中:
1 package com.alibaba;
2
3-import org.springframework.boot.SpringApplication;
6
7 @EnableEurekaServer
8 @SpringBootApplication
9 publicclassJavaSpringCloudo00008Eureka DemoApplication {
1
0
1
1public static void main(String[]args) {
1
2SpringApplication.run( JavaSpringCioude000o0EurekaDemoApplicat
1
3}
1
4}
先上线微服务,再提供调用端,开发调用(Service)行业上线后,才能被消费者们使用,注册中心中的服务要大写,匹配的服务名是固定的,且服务名不要重复
服务行业例如按摩、修脚、剃头、理发、餐饮、娱乐等。