SpringCloud AlibabanacosOpenFeign简介
- (注册中心)每一个
微服务上线
都需要将它注册到注册中心
,这样做的好处就是,如果订单服务想要调用商品服务,订单服务先去注册中心看哪个商品服务被注册进来了,发现1号,2号机器商品服务被注册进来了,订单服务随便挑一个进行远程调用 - (配置中心)各个微服务的配置众多,假如有十台机器,需要改配置,那么十台机器都需要改很麻烦,所以我们需要一个配置中心,集中管理配置,所有的商品服务从配置中心获取它自己的配置,我们从配置中心,
改掉某一个配置,同样的服务实时更新配置
- (网关)所有前端的请求先通过网关,进行统一的
鉴权、过滤、路由
等等,通过网关抵达其它服务,来做一些预先的工作
-注册中心
、配置中心
、网关
在初代产品中分别对应这几个组件。
服务的注册发现使用
Eureka
,配置中心使用Spring Cloud Config
,网关使用Netflix
组件里的Zuul
,短路保护Hystrix
1、SpringCloud Alibaba简介
1)、简介
Spring Cloud Alibaba 致力于提供微服务开发的一站式解决方案
。此项目包含开发分布式应用微服务的必需组件,方便开发者通过 Spring Cloud 编程模型轻松使用这些组件来开发分布式应用服务。
依托Spring Cloud Alibaba,您只需要添加一些注解和少量配置,就可以将Spring Cloud 应用接入阿里微服务解决方案,通过阿里中间件来迅速搭建分布式应用系统。
https://github.com/alibaba/spring-cloud-alibaba
2)、为什么使用
Spring Cloud 的组件也不是自己写的,是他整合外部的
SpringCloud的几大痛点
- SpringCloud部分组件停止维护和更新,给开发带来不便;
- SpringCloud,部分环境搭建复杂,没有完善的可视化界面,我们需要大量的二次开发和定制
- SpringCloud配置复杂,难以上手,部分配置差别难以区分和合理应用
SpringCloud Alibaba的优势:
- 阿里使用过的组件经历了考验,性能强悍,设计合理,现在开源出来大家用成套的产品搭配完善的可视化界面(配置中心、注册中心、服务熔断)给开发运维带来极大的便利
- 搭建简单,学习曲线低。
结合SpringCloud Alibaba我们最终的技术搭配方案:
- SpringCloud Alibaba- Nacos :注册中心(服务发现/注册)(替换以前的Eureka)
- SpringCloud Alibaba- Nacos :配置中心(动态配置管理)(替换以前的SpringCloud Config)
- SpringCloud-Ribbon:负载均衡
- SpringCloud-Feign:声明式HTTP客户端(调用远程服务)(Feign已经闭源,新开OpenFeign)
- SpringCloud Alibaba-Sentinel:服务容错(限流、降级、熔断)有监控平台运行起来方便(替换以前的Hystix)
- Springcloud-Gateway: API网关(webflux,编程模式)(有比Zuul更强大的功能和更优秀的设计)
- SpringCloud-Sleuth:调用链监控,包括整合zipkin
- SpringCloud Alibaba-Seata:原Fescar,即分布式事务解决方案
3)、版本选择
由于Spring Boot 1和 Spring Boot 2在 Actuator模块的接口和注解有很大的变更,且spring-cloud-commons 从 1.x.x 版本升级到2.0.0 版本也有较大的变更,因此我们采取跟SpringBoot版本号一致的版本:
- 1.5.x版本适用于Spring Boot 1.5.x
- 2.0.x版本适用于Spring Boot 2.0.x
- 2.1.x版本适用于Spring Boot 2.1.x
dependencyManagement依赖管理以后在dependency中引入spring-cloud-alibaba,不用写版本号,统一由spring-cloud-alibaba管理
<dependencyManagement><dependencies><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-alibaba-dependencies</artifactId><version>2.1.0.RELEASE</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement>
2、SpringCloud Alibaba-Nacos[作为注册中心
由于需要将每一个微服务
都放到注册中心
当中,所以将Nacos
放在common(公共)模块,那么其它依赖common的子模块就拥有了服务注册发现功能
<!-- springcloud alibaba nacos 依赖 --><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency>
Nacos 是阿里巴巴开源的一个更易于构建云原生应用的动态服务发现﹑配置管理和服务管理平台。他是使用java编写。需要依赖java环境
Nacos,文档地址: https://nacos.io/zh-cn/docs/quick-start.html
1)、下载nacos-server
https://github.com/alibaba/nacos/releases
2)、启动nacos-server
- 双击bin中的startup.cmd文件
- 访问http://localhost:8848/nacos/
- 使用默认的nacos/nacos进行登录
每一个微服务,想要注册到注册中心,就需要指定注册中心的地址
Nacos启动失败 https://www.jianshu.com/p/597117dfcc91
只要将集群改为单机模式就可以正常启动了。命令是 startup.cmd -m standalone
spring:datasource:username: rootpassword: rooturl: jdbc:mysql://192.168.56.10:3306/gulimall_smsdriver-class-name: com.mysql.cj.jdbc.Drivercloud:nacos:discovery:server-addr: 127.0.0.1:8848
3)、将微服务注册到nacos中
1、首先,修改pom.xml文件,引入Nacos Discovery Starter。
3.OpenFeign远程调用
使用:假如会员服务要调用优惠卷服务,只需要在会员服务中引入OpenFeign,那么它就具有远程调用的能力
用一个包feign专门来放远程调用的请求接口
HTTP客户端:给远程发送HTTP请求
例子:会员(member)和优惠卷(coupon)已经注册到Nacos中,会员(member)想从优惠卷(coupon)中获取当前会员的所有优惠卷,会员服务先从注册中心中查找优惠卷服务都在哪些服务当中,注册中心返回优惠卷的机器,会员服务选择一台机器发送请求,要来响应数据。
会员服务从注册中心获取优惠卷服务的地址
nacos测试:
测试member和coupon的远程调用
想要获取当前会员领取到的所有优惠券。先去注册中心找优惠券服务,注册中心调一台优惠券服务器给会员,会员服务器发送请求给这台优惠券服务器,然后对方响应。
- 服务请求方发送了2次请求,先问nacos要地址,然后再请求
SpringCloud AlibabanacosOpenFeign简介相关推荐
- SpringCloud系列一:SpringCloud的简介和架构
声明:本文来源于MLDN培训视频的课堂笔记,写在这里只是为了方便查阅. 一.SpringCloud简介 SpringCloud就是一套分布式服务治理的框架,既然它是一套服务治理的框架,那么它本身不会提 ...
- springcloud之简介
springcloud官方文档翻译网站:https://springcloud.cc/ 一.网站架构的演变过程.(这些架构描述的不是很到位,之后需要从新学习) 传统架构 -> 分布式架构 -&g ...
- 【SpringCloud】简介及其核心组件详解
一.什么是Spring Cloud [百度百科]--Spring Cloud是一系列框架的有序集合.它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册.配置中 ...
- SpringCloud Config简介
简介 Spring Cloud Config为分布式系统的外部配置提供服务端(server)和客户端(client)的支持.Config服务端提供了一个集中的地方来管理所有环境下各个应用的配置,Con ...
- 电商架构设计与开发 - 20分布式组件-SpringCloud Alibaba简介
Spring Cloud Netflix Spring Cloud Alibaba 注册中心 Eureka Nacos 配置中心 SpringCloud Config Nacos API网关 zuul ...
- 开启springcloud全家桶1:springcloud套餐简介
为什么需要学习Spring Cloud 不论是商业应用还是用户应用,在业务初期都很简单,我们通常会把它实现为单体结构的应用.但是,随着业务逐渐发展,产品思想会变得越来越复杂,单体结构的应用也会越来越复 ...
- SpringCloud Alibaba 简介
概述 Spring Cloud Alibaba 致力于提供微服务开发的一站式解决方案.此项目包含开发分布式应用微服务的必需组件,方便开发者通过 Spring Cloud 编程模型轻松使用这些组件来开发 ...
- SpringCloud Config Server搭建
文章目录 1 创建Git仓库 2 创建应用配置文件 3 将应用配置文件commit到Git仓库中 4 创建Config Server应用 5 配置运行Config Server 6 访问Config ...
- SpringCloud微框架系列整体模块梳理
转载自:https://www.cnblogs.com/softidea/p/6498125.html SpringCloud微框架系列整体模块梳理 以下为Spring Cloud的核心功能: 分布式 ...
最新文章
- Advanced Transact-SQL for SQL Server 2000 学习译文
- MySQL主从复制Linux实现
- Spring Boot Redis Cluster 实战干货
- 【Ubuntu】Ubuntu16.04安装 搜狗输入法 史上最详细
- Linux下的常用软件列表
- js数组往队头添加数据、js数组从队头移出数据
- altera fpga sdi输出方案_FPGA设计太复杂?四大设计要点总结助你快速上手!
- MySQL用户的增删改权以及root远程连接
- k8s架构以及相关概念普及
- 互联网大厂数据分析面试常见问题及解法,建议收藏
- winform右下角弹窗
- 2022危险化学品经营单位主要负责人考试题库及在线模拟考试
- Node.js版-七夕无事,人艰勿拆,求别说...
- 【verbs】ibv_modify_qp()|RDMA
- 【ELMAN回归预测】基于matlab天牛须算法优化ELMAN回归预测【含Matlab源码 1375期】
- AMD CPU搞编程能行吗
- java 奇数trun_N26-博客作业-week15
- mac安装软件的一般目录
- 一语成谶:灾祸普遍是自己说大话感…
- 解决 redis 存入中文,取出来是乱码wenti
热门文章
- python-迭代器、生成器、内置函数及面向过程编程
- 【逆向基础】JS逆向入门:小白也可以看懂
- 为什么测试/开发程序员有很多都是秃头?现实居然是这样......
- 解决centos8下安装docker提示“为 repo ‘docker-ce-stable‘ 下载元数据失败“的问题
- 聚合查询+联合查询+子查询
- 浙工商计算机学院教师,浙工商计算机与信息工程学院导师介绍:刘东升
- 怎么制作炫酷软件安装包
- Django留言板项目完整搭建
- 【go语言圣经】练习答案--第一章
- hive 插入数据映射到hbase_年薪50万都难招的大数据工程师,凭什么?