• 一、ShenYu快速开始


    整体介绍

    先大体介绍一下我们项目使用的架构,网关ShenYu,注册中心/配置中心:nacos,微服务框架:dubbo

    在这里插入图片描述

    首先ShenYu是由 ShenYu Admin ShenYu Bootstrap 两块组成。

    • ShenYu Admin是网关的后台管理系统,能够可视化管理所有插件、选择器和规则,设置用户、角色,控制资源。
    • ShenYu Bootstrap这部分才是网关核心部分,引入各个插件包。官方给出的一个网关demo,你也可以自己取其他名字作为网关羡慕,引入自己需要的插件包,以及插件的拓展。

    快速开始

    博主这边是使用的源码编译的方式来启动服务的。

    环境准备

    • 本地正确安装JDK1.8+

    • 本地正确安装Git

    • 本地正确安装Maven

    • 选择一款开发工具,比如IDEA

    • 设置git配置项

    因为shenyu源码文件命名较长,git限制了文件名不能超过 260 个字符。

    git config --global core.longpaths true
    
    • 1

    检出源码,并进行编译

    git clone git@github.com:apache/shenyu.git
    cd shenyu
    mvn clean install -Dmaven.javadoc.skip=true -B -Drat.skip=true -Djacoco.skip=true -DskipITs -DskipTests
    
    • 1
    • 2
    • 3

    在这里插入图片描述

    启动admin

    更改后台存储方式

    ShenYu提供了多种存储方式,我们选择适合的一种,这里我们选择mysql

    在这里插入图片描述

    修改同步方式
    shenyu:
      sync:
        nacos:
          url: localhost:8848
          namespace: 1c10d748-af86-43b9-8265-75f487d20c6c
    
    • 1
    • 2
    • 3
    • 4
    • 5
    修改application-mysql.yml配置信息

    在这里插入图片描述

    ​ 数据源信息修改为自己本地测试数据库即可,启动时会自动创建表。

    运行

    直接启动ShenyuAdminBootstrap

    访问admin

    直接浏览器访问http://localhost:9095/admin/123456 登录

    设置dubbo插件

    在这里插入图片描述

    这里填写你的nacos的地址,一定要注意后面的namespace

    启动bootstrap

    修改配置application.yml
    shenyu:
      sync:
        nacos:
          url: localhost:8848
          namespace: 1c10d748-af86-43b9-8265-75f487d20c6c
    
    • 1
    • 2
    • 3
    • 4
    • 5
    注意

    注意这里的namespace与admin的同步配置保持一致

    • 这里还需要注意一点,官网的bootstrap没有引入nacos的同步包,所以需要手动引入一下,不然服务注册不到网关
            
            <dependency>
                <groupId>org.apache.shenyugroupId>
                <artifactId>shenyu-spring-boot-starter-sync-data-nacosartifactId>
                <version>${project.version}version>
            dependency>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    启动

    直接启动ShenyuBootstrapApplication

    访问网关

    直接浏览器访问地址:http://localhost:9195/

    注册服务到网关

    打开shenyu-examples

    选中pom.xml ,右键设置为maven项目。
    在这里插入图片描述
    找到shenyu-examples-apache-dubbo-service-annotation ,主要修改注册的配置为nacos,以及dubbo注册中心同步改为nacos即可。

    shenyu:
      register:
        registerType: nacos #zookeeper #etcd #nacos #consul
        serverLists: localhost:8848 #localhost:2181 #http://localhost:2379 #localhost:8848
        props:
          username: admin
          password: 123456
      client:
        dubbo:
          props:
            contextPath: /dubbo
            appName: dubbo
    
    dubbo:
      application:
        name: test-dubbo-service
      registry:
        address: nacos://127.0.0.1:8848
      protocol:
        name: dubbo
        port: 20888
      scan:
        base-packages: org.apache.shenyu.examples.apache.dubbo.service.annotation.impl
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    启动

    启动测试类TestApacheDubboAnnotationApplication

    通过网关访问dubbo接口

    启动服务以后,你可以在admin后台能看到你的服务注册到网关上了

    在这里插入图片描述
    随意访问一个接口即可看到返回结果,则表示网关正常使用。http://localhost:9195/dubbo/findAll

  • 相关阅读:
    会员通?会员通!
    变量名命名的艺术
    MindFusion.Diagramming for WPF V3.8.3
    862. 和至少为 K 的最短子数组(难度:困难)
    数据结构的结构复杂度你了解么
    使用python连接Linux服务器发送指定命令
    CAS:122567-66-2_DSPE-生物素_DSPE-Biotin
    数据结构与算法之希尔排序
    【Pytorch、torchvision、CUDA 各个版本对应关系以及安装指令】
    GO的安装和配置
  • 原文地址:https://blog.csdn.net/wagnteng/article/details/126760883