一、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

检出源码,并进行编译

git clone [email protected]:apache/shenyu.git
cd shenyu
mvn clean install -Dmaven.javadoc.skip=true -B -Drat.skip=true -Djacoco.skip=true -DskipITs -DskipTests

在这里插入图片描述

启动admin

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

在这里插入图片描述

  • 修改同步方式

    shenyu:
      sync:
        nacos:
          url: localhost:8848
          namespace: 1c10d748-af86-43b9-8265-75f487d20c6c
    
  • 修改application-mysql.yml配置信息

在这里插入图片描述

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

  • 运行ShenyuAdminBootstrap
  • 访问http://localhost:9095/admin/123456 登录
  • 设置dubbo插件

在这里插入图片描述

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

启动bootstrap

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

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

  • 这里还需要注意一点,官网的bootstrap没有引入nacos的同步包,所以需要手动引入一下,不然服务注册不到网关
        <!-- apache shenyu data sync start use nacos-->
        <dependency>
            <groupId>org.apache.shenyu</groupId>
            <artifactId>shenyu-spring-boot-starter-sync-data-nacos</artifactId>
            <version>${project.version}</version>
        </dependency>
  • 启动ShenyuBootstrapApplication
  • 网关接口地址:http://localhost:9195/

注册服务到网关

  • 打开shenyu-examples
    选中pom.xml ,右键设置为maven项目。
    在这里插入图片描述

  • 打开shenyu-examples

找到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
  • 启动TestApacheDubboAnnotationApplication

通过网关访问dubbo接口

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

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

猜你喜欢

转载自blog.csdn.net/wagnteng/article/details/126760883