码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 一、ShenYu快速开始


    文章目录

      • 整体介绍
      • 快速开始
        • 环境准备
        • 检出源码,并进行编译
        • 启动`admin`
          • 更改后台存储方式
          • 修改同步方式
          • 修改`application-mysql.yml`配置信息
          • 运行
          • 访问admin
          • 设置`dubbo`插件
        • 启动`bootstrap`
          • 修改配置`application.yml`
          • 注意
          • 启动
          • 访问网关
        • 注册服务到网关
          • 打开`shenyu-examples`
          • 启动
        • 通过网关访问`dubbo`接口

    整体介绍

    先大体介绍一下我们项目使用的架构,网关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

  • 相关阅读:
    LeetCode:3. 无重复字符的最长子串
    nginx 配置 proxy_next_upstream 会出现未预期 502 错误问题排查
    2021年研究生数学建模竞赛优秀论文汇总
    群狼调研(长沙医院满意度调查)|医院患者满意度提升方案
    19c集群 两节点时间相差太大导致集群异常
    基于火鹰优化算法的函数寻优算法
    猿创征文|Vue结合Vant-ui实现数据列表上拉加载更多,下拉刷新功能
    Java 基础面试题大概有哪些?
    Android Framwork知识学习总结
    如何获得淘宝商品详情高级版 API 数据接口
  • 原文地址:https://blog.csdn.net/wagnteng/article/details/126760883
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号