• (注册中心)每一个微服务上线都需要将它注册到注册中心,这样做的好处就是,如果订单服务想要调用商品服务,订单服务先去注册中心看哪个商品服务被注册进来了,发现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简介相关推荐

  1. SpringCloud系列一:SpringCloud的简介和架构

    声明:本文来源于MLDN培训视频的课堂笔记,写在这里只是为了方便查阅. 一.SpringCloud简介 SpringCloud就是一套分布式服务治理的框架,既然它是一套服务治理的框架,那么它本身不会提 ...

  2. springcloud之简介

    springcloud官方文档翻译网站:https://springcloud.cc/ 一.网站架构的演变过程.(这些架构描述的不是很到位,之后需要从新学习) 传统架构 -> 分布式架构 -&g ...

  3. 【SpringCloud】简介及其核心组件详解

    一.什么是Spring Cloud [百度百科]--Spring Cloud是一系列框架的有序集合.它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册.配置中 ...

  4. SpringCloud Config简介

    简介 Spring Cloud Config为分布式系统的外部配置提供服务端(server)和客户端(client)的支持.Config服务端提供了一个集中的地方来管理所有环境下各个应用的配置,Con ...

  5. 电商架构设计与开发 - 20分布式组件-SpringCloud Alibaba简介

    Spring Cloud Netflix Spring Cloud Alibaba 注册中心 Eureka Nacos 配置中心 SpringCloud Config Nacos API网关 zuul ...

  6. 开启springcloud全家桶1:springcloud套餐简介

    为什么需要学习Spring Cloud 不论是商业应用还是用户应用,在业务初期都很简单,我们通常会把它实现为单体结构的应用.但是,随着业务逐渐发展,产品思想会变得越来越复杂,单体结构的应用也会越来越复 ...

  7. SpringCloud Alibaba 简介

    概述 Spring Cloud Alibaba 致力于提供微服务开发的一站式解决方案.此项目包含开发分布式应用微服务的必需组件,方便开发者通过 Spring Cloud 编程模型轻松使用这些组件来开发 ...

  8. SpringCloud Config Server搭建

    文章目录 1 创建Git仓库 2 创建应用配置文件 3 将应用配置文件commit到Git仓库中 4 创建Config Server应用 5 配置运行Config Server 6 访问Config ...

  9. SpringCloud微框架系列整体模块梳理

    转载自:https://www.cnblogs.com/softidea/p/6498125.html SpringCloud微框架系列整体模块梳理 以下为Spring Cloud的核心功能: 分布式 ...

最新文章

  1. Advanced Transact-SQL for SQL Server 2000 学习译文
  2. MySQL主从复制Linux实现
  3. Spring Boot Redis Cluster 实战干货
  4. 【Ubuntu】Ubuntu16.04安装 搜狗输入法 史上最详细
  5. Linux下的常用软件列表
  6. js数组往队头添加数据、js数组从队头移出数据
  7. altera fpga sdi输出方案_FPGA设计太复杂?四大设计要点总结助你快速上手!
  8. MySQL用户的增删改权以及root远程连接
  9. k8s架构以及相关概念普及
  10. 互联网大厂数据分析面试常见问题及解法,建议收藏
  11. winform右下角弹窗
  12. 2022危险化学品经营单位主要负责人考试题库及在线模拟考试
  13. Node.js版-七夕无事,人艰勿拆,求别说...
  14. 【verbs】ibv_modify_qp()|RDMA
  15. 【ELMAN回归预测】基于matlab天牛须算法优化ELMAN回归预测【含Matlab源码 1375期】
  16. AMD CPU搞编程能行吗
  17. java 奇数trun_N26-博客作业-week15
  18. mac安装软件的一般目录
  19. 一语成谶:灾祸普遍是自己说大话感…
  20. 解决 redis 存入中文,取出来是乱码wenti

热门文章

  1. python-迭代器、生成器、内置函数及面向过程编程
  2. 【逆向基础】JS逆向入门:小白也可以看懂
  3. 为什么测试/开发程序员有很多都是秃头?现实居然是这样......
  4. 解决centos8下安装docker提示“为 repo ‘docker-ce-stable‘ 下载元数据失败“的问题
  5. 聚合查询+联合查询+子查询
  6. 浙工商计算机学院教师,浙工商计算机与信息工程学院导师介绍:刘东升
  7. 怎么制作炫酷软件安装包
  8. Django留言板项目完整搭建
  9. 【go语言圣经】练习答案--第一章
  10. hive 插入数据映射到hbase_年薪50万都难招的大数据工程师,凭什么?