SpringCloud Alibaba应用

2023-11-18

目录

1.服务注册中心

1.1 nacos服务注册与发现

1.1.1 springcloud集成nacos服务注册中心

2.服务配置中心

2.1 nacos服务配置中心

3.远程调用

3.1 openfeign远程调用

4.网关服务

4.1 gateway网关服务

4.1.1 引入依赖

4.1.2 配置

4.1.3 注意事项

4.1.4 常见问题


1.服务注册中心

1.1 nacos服务注册与发现

服务中集成nacos的方式有多种,常用的有springboot和springcloud两种,官网也有很多示例,这里只记录springcloud方式

1.1.1 springcloud集成nacos服务注册中心

1. 引入依赖

        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-bootstrap</artifactId>
        </dependency>

2. 配置

springboot一般使用application.yml文件

springcloud需要使用 bootstrap.yml文件

server:
  port: 9001
spring:
  application:
    name: nacos-base
  main:
    allow-bean-definition-overriding: true
  cloud:
    nacos:
      discovery:
        server-addr: nacos_ip:port # nacos 服务ip和端口
        namespace: 0af8ec8f-2345-4ade-9bd4-3ffa26c7023a
        group: huachun
      config:
        server-addr: nacos_ip:port # nacos 服务ip和端口
        file-extension: yaml
        namespace: 0af8ec8f-2345-4ade-9bd4-3ffa26c7023a
        group: huachun

启动服务后查看nacos 服务管理,此时nacos-base已经被注册

2.服务配置中心

2.1 nacos服务配置中心

3.远程调用

3.1 openfeign远程调用

1. 引入依赖

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>

        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-bootstrap</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-loadbalancer</artifactId>
        </dependency>

2. 配置

server:
  port: 9005
spring:
  application:
    name: feign-base
  main:
    allow-bean-definition-overriding: true
  cloud:
    nacos:
      discovery:
        server-addr: nacos_ip:port # nacos 服务ip和端口
        namespace: 0af8ec8f-2345-4ade-9bd4-3ffa26c7023a
        group: huachun
      config:
        server-addr: nacos_ip:port # nacos 服务ip和端口
        file-extension: yaml
        namespace: 0af8ec8f-2345-4ade-9bd4-3ffa26c7023a
        group: huachun

3.启动注解

@SpringBootApplication
@EnableFeignClients
public class FeignBaseApplicationStart {

    public static void main(String[] args) {
        SpringApplication.run(FeignBaseApplicationStart.class, args);
    }
}

说明:需要添加@EnableFeignClients注解启动feign

4.定义接口

@FeignClient(value = "nacos-base", path = "/nb")
public interface FeignBaseService {

    @GetMapping("/hello/{str}")
    String hello(@PathVariable("str") String str);
}

说明:

        @FeignClient: value 指定访问服务 path 指定接口路径 

nacos-base服务中接口

@RestController
@RequestMapping("/nb")
public class NacosBaseController {

    @Autowired
    private NacosBaseService nacosBaseService;

    @GetMapping("/hello/{str}")
    public String hello(@PathVariable("str") String str) {
        return nacosBaseService.hello(str);
    }

}

5.编写控制器

@RestController
@RequestMapping("/fb")
public class FeignBaseController {

    @Autowired
    private FeignBaseService feignBaseService;

    @GetMapping("/hello/{str}")
    public String hello(@PathVariable("str") String str) {
        return feignBaseService.hello(str);
    }

}

4.网关服务

4.1 gateway网关服务

4.1.1 引入依赖

        <!-- 配置中心依赖 -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>

        <!-- 注册中心依赖 -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>

        <!-- 网关依赖 -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-gateway</artifactId>
        </dependency>

        <!-- bootstrap依赖 -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-bootstrap</artifactId>
        </dependency>

        <!-- 负载均衡依赖 nacos兼容feign,feign集成ribbon,默认实现负载均衡;nacos不兼容springcloud gateway自带的ribbon -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-loadbalancer</artifactId>
        </dependency>

版本信息

        <alibaba-cloud.version>2021.1</alibaba-cloud.version>
        <lombok.version>1.18.8</lombok.version>
        <!--   注意版本冲突,如果使用3.1.0版本不能使用lb://service_name方式路由     -->
        <spring-cloud.version>3.0.0</spring-cloud.version>

4.1.2 配置

spring:
  cloud:
    nacos:
      discovery:
        server-addr: nacos_ip:port # 自己nacos服务的ip和端口号
        namespace: 0af8ec8f-2345-4ade-9bd4-3ffa26c7023a
        group: huachun
      config:
        server-addr: nacos_ip:port # 自己nacos服务的ip和端口号
        file-extension: yaml
        namespace: 0af8ec8f-2345-4ade-9bd4-3ffa26c7023a
        group: huachun
        enabled: true

nacos配置中心配置

spring:
  cloud:
    gateway:
      discovery:
        locator:
          enabled: true
      routes:
        - id: abc                      #当前路由标识,要求唯一 (默认值uuid,一般不用,需要自定义)
          uri: lb://nacos-base                #请求最终要被转发的地址
          #uri: http://127.0.0.1:9001
          order: 1                            #路由优先级,数字越小,优先级越高
          predicates: #断言 判断条件,返回值是boolean 转发请求要返回的条件 (可以写多个)、
            - Path=/nb/**                     #当请求路径满足path指定的规则时,此路由信息才会正常转发
  #          filters: #过滤器(在请求传递过程中,对请求做一些手脚)
  #            - StripPrefix=1                   # 在请求转发之前去掉一层路径

说明:

uri:  

          lb: 表示用负载均衡方式访问服务        

          nacos-base: 表示目标访问服务的服务名

predicates:断言 (可以参考官网,示例太多)

原文参考 :Spring Cloud Alibaba入门十二:Spring Cloud Gateway的使用_清风雪的技术博客_51CTO博客g

官网参考:Spring Cloud Gateway

4.1.3 注意事项

1.注意版本信息

2.新手可以参考我的依赖信息搭建

4.1.4 常见问题

1. 503 Service Unavailable

请注意查看是否版本冲突,我出现这个问题原因就是版本冲突,另外查看是否少了依赖

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SpringCloud Alibaba应用 的相关文章

随机推荐

  • SQL查询一对多返回一条数据

    一 查询中product和product img是一对多的关系 数据库是MySQL select p id p product cost price p product trade price p product sale price p
  • Android:基本 UI 组件

    前言 组件是 Android 程序设计的基本组成单元 通过使用组件可以高效地开发 Android 应用程序 文本类组件 Android 中提供了一些与文本显示 输入相关的组件 通过这些组件可以显示或输入文字 TextView 类 用于显示文
  • 已知先序后序遍历找n种二叉树问题

    Description 二叉树是一种特殊而重要的结构 有着广泛的应用 二叉树或者是一个结点 或者有且仅有一个结点为二叉树的根 其余结点被分成两个互不相交的子集 一个作为左子集 另一个作为右子集 每个子集又是一个二叉树 遍历一棵二叉树就是按某
  • IP地址、子网掩码、默认网关和DNS服务器之间的联系与区别

    文章目录 1 IP地址 2 子网掩码 3 默认网关 4 DNS服务器 1 IP地址 IP 是32位二进制数据 通常以十进制表示 并以 分隔 IP 地址是一种逻辑地址 用来标识网络中一个个主机 IP 有唯一性 指的是公网地址 即每台机器的 I
  • 微信小程序图片显示不出来的解决方案

    调试上没有什么问题 真机ios调试也没有什么问题 但是发布体验版后 在Android上图片却不见了 显示不出来 开始以为是兼容性的问题 最后才发现其实事情并没有这么难解决 以下是可能出现的问题 1 注意在微信小程序中的图片标签是
  • Python3,5行代码,制作Gif动图,太简单了。

    gif动图制作 1 引言 2 代码实战 2 1 安装 2 2 代码 3 总结 1 引言 小屌丝 鱼哥 你能不能帮我找一个动图 小鱼 啥动图 你自己百度不就行了 小屌丝 我这不是没找到吗 不然我就自己来找了 小鱼 找不到 你就自己制作一个呗
  • 轻松打造“文生图”神器!10分钟部署Stable Diffusion

    最近一年 扩散模型太火了 已经成为重要的生产力工具 在AI研究领域也不断有新的工作出现 成为产业界和学术界的热点 本文将在趋动云平台部署扩散模型中广受关注的stable diffusion webui项目 手把手教程 创建项目 首先创建项目
  • 【网络安全】Docker部署DVWA靶机环境

    目录 前言 Docker部署 DVWA部署 仓库镜像部署DVWA 手动部署DVWA 前言 Docker很好用 DVWA更是网络安全学习当中必不可少的靶机 但是DVWA的部署实在是太过麻烦了 如果每次不小心删除虚拟机或者更新了VM之后导致虚拟
  • TCP延迟确认过长问题

    在并发环境下 tcp 确认时间过长 造成大部分时间在等待状态 造成性能降低 解决方式 网络传输设置为不需要延迟确认 分析问题 例子 假如 一次传输时间 延迟确认时间 200ms 数据传输时间 1ms 查询时间 1ms 严重超时 机器 A 输
  • (附源码)node.js-医院预约挂号系统的设计与实现 毕业设计141041

    医院预约挂号系统 摘 要 随着科学技术的飞速发展 各行各业都在努力与现代先进技术接轨 通过科技手段提高自身的优势 对于医院预约挂号系统当然也不能排除在外 随着网络技术的不断成熟 带动了医院预约挂号系统 它彻底改变了过去传统的管理方式 不仅使
  • Zabbix appliance 6.4.4 安装vmware tools

    虚拟机选择 Linux kernel4 0 32bit 点击 安装vmware tool mount dev cdrom mnt mkdir tmp vmware cd tmp vmware cp mnt yum install tar t
  • 寻址模式

    寻址模式 代码后补 立即 数 寻址 指令中的形式地址部分 不是操作数的地址 而是操作数本身 特点 指令执行阶段CPU不访问主存 而形式地址的位数限制了立即数的范围 直接寻址 指令中的形式地址部分就是操作数的实际地址 特点 在执行阶段访问了一
  • Spring JDBC(配置数据源,操作数据库)

    Java知识点总结 想看的可以从这里进入 目录 14 Spring JDBC 14 1 配置数据库资源 14 1 1 简单数据源 14 1 2 Druid连接池 14 2 JdbcTemplate 14 Spring JDBC Spring
  • git checkout 远程分支失败的问题解决

    今天git checkout b xxx origin yyy 远程分支失败了 报错 fatal Cannot update paths and switch to branch 解决方法 git fetch p 然后重新 git chec
  • 转:Chrome浏览器查看网站登录 Cookie 信息的方法

    当我们使用自动签到等程序的时候一般都要用到网站Cookie 我们可以借助浏览器的扩展来获取Cookie信息 但其实通过浏览器本身的功能就可以查看Cookie信息 以Chrome类浏览器为例有以下三种方法 chrome浏览器 方法一 1 打开
  • 网易笔试题 推箱子

    pre class java 时间限制 10000ms单点时限 1000ms内存限制 256MB描述推箱子是一款经典游戏 如图所示 灰色格子代表不能通过区域 蓝色方格是箱子 黑色圆形代表玩家 含有圆点的格子代表目标点 push png规定以
  • 第J2周:ResNet50V2算法实战与解析

    一 课题背景和开发环境 第J2周 ResNet50V2算法实战与解析 语言 Python3 Pytorch 本周任务 1 请根据本文TensorFlow代码 编写出相应的Pytorch代码 建议使用上周的数据测试一下模型是否构建正确 2 了
  • pytorch 中的torchsummary

    torchsummary torchsummary能够查看模型的输入和输出的形状 可以更加清楚地输出模型的结构 torchsummary summary model input size batch size 1 device cuda 功
  • 深度学习与计算机视觉系列(中)--GAN

    深度学习与计算机视觉入门系列 中 数据嗨客最近发布了一个深度学习系列 觉得还不错 主要对深度学习与计算机视觉相关内容做了系统的介绍 看了一遍 在这里做一下笔记 目录 深度学习与计算机视觉入门系列 中 目录 深度学习第6期 循环神经网络RNN
  • SpringCloud Alibaba应用

    目录 1 服务注册中心 1 1 nacos服务注册与发现 1 1 1 springcloud集成nacos服务注册中心 2 服务配置中心 2 1 nacos服务配置中心 3 远程调用 3 1 openfeign远程调用 4 网关服务 4 1