Soul网关接入与验证

简介: 本章基于前两章搭建的应用,引入Soul网关,重点讲解Provider与Consumer如何通过注解和配置接入Soul。涵盖pom依赖、Controller注解(@SoulSpringMvcClient)、配置文件参数说明,并支持HTTP与Dubbo双协议注册,最后验证服务是否成功接入。

此章节将基于上一章节基础之上,引入Soul网关,至于Soul网关是干什么的,怎么做的,我们会在后续章节讲解,1-3章节侧重于搭建应用。
本章节的Soul网关接入,如果你1,2章节都是和我保持一致,那么只需要直接启动Soul网关即可,但是对应的provider,consumer应用是需要额外的代码接入的。
开发环境和第二章保持一致。
3.1 提供者接入Soul
3.1.1 pom
3.1.2 Controller
与之前不同的是,这里我们会在Controller增加一个注解,@SoulSpringMvcClient,标注其注册成为一个SoulSpringMvcClient对象。这里有两种方式,一种是全局,一种是下面示例文件的局部,我会在 3.1.3 配置文件具体讲解二者实现上的差异性。
其中@SoulSpringMvcClient(path = "/consumer/ "), 标识允许访问:consumer路径下全部,如果在当前Controller中,你只想部分暴露,那么更正为:
删除Controller上的:SoulSpringMvcClient(path = "/consumer/** ")
在对应需要暴露的接口上,加上全路径,如: @SoulSpringMvcClien(path = "/consumer/getUserById")
3.1.3 配置文件
说明:
http:标注这里协议是Http,同样还有(dubbo等)
adminUrl:对应soul-admin启动的应用地址,端口
contextPath:对应注册进Soul的路由前缀(即我们后续通过网关访问的限制名,多个应用应不同)
appName:对应的应用名称,不配置的话,会默认取 dubbo配置中application 中的名称
full:true则表示代理全部,全局允许访问,权限很大;false表示非全局,只访问有注解的地方(推荐)
port:当前应用的启动端口,并非soul-admin或网关,需保持一直
另外,如果你在 application.yaml(properties) 中配置了context-path,请删除,这个配置对于Soul而言是无感知的,即你的配置文件中不应出现下面的servlet配置:
如果你在这里配置的:full是false,那么对应3.1.2章节就无需调整,如果是true,直接3.1.2关于SoulPringMvcClient相关注解即可。
3.2 消费者接入Soul
消费者相关配置,和提供者是一致的,这里不再赘述,直接贴出相关代码。
3.2.1 pom
3.2.2 Controller
Java
运行代码
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
package com.youzha.dubbo.controller;

import com.youzha.dubbo.dto.ResultDTO;
import lombok.extern.slf4j.Slf4j;
import org.dromara.soul.client.springmvc.annotation.SoulSpringMvcClient;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

/**

  • @author youzhaxiaobo
  • @version 1.0
  • @date 2020/7/4 0004 13:52
  • @Desc
    /
    @Slf4j
    @RestController
    @RequestMapping("/provider")
    @SoulSpringMvcClient(path = "/provider/*
    ")
    public class ProviderController {

    @GetMapping(value = "/hello", produces = MediaType.APPLICATION_JSON_VALUE)
    public ResultDTO getUserById(@RequestParam("id") int id) {

     log.info("id=" + id);
     if (id > 0) {
         return new ResultDTO(-1, "获取失败");
     }
     return new ResultDTO(200, "获取成功");
    

    }
    }
    3.2.3 配置文件
    YAML
    复制代码
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    soul:

    网关dubbo配置

    dubbo:
    adminUrl: http://127.0.0.1:9093
    contextPath: /provider-youzha
    appName: provider-youzha

    网关http配置

    http:
    adminUrl: http://127.0.0.1:9093
    contextPath: /provider
    appName: provider
    full: false
    port: 9091
    说明:
    这里同时暴露出去了dubbo,http两套协议,dubbo对应的就是我们提供在Service层的代码,其变更很小,如下,只是增加了一个注解:@SoulDubboClient
    dubbo,http提供的contextPath的路由前缀,需要保持不同,同时全局唯一(即不能和其他应用一致)
    3.3 验证
    前提:启动了zookeeper,启动了MySQL。

相关文章
深入探究Camunda加签问题
camunda加签的两种方式
3855 0
|
人工智能 移动开发 JavaScript
AI + 低代码技术揭秘(十二):开发人员工具和可扩展性
VTJ平台提供开发工具与扩展框架,支持低代码应用的开发与拓展。包含CLI、插件系统及Uni-App集成,结合Vite、TypeScript和Vue优化开发流程。
456 62
|
监控 NoSQL Java
若依RuoYi项目环境搭建教程(RuoYi-Vue + RuoYi-Vue3版本)
若依(RuoYi)是一款基于Spring Boot和Vue.js的开源Java快速开发脚手架,支持OAuth2、JWT鉴权,集成多种安全框架和持久化框架。它提供了系统管理、监控管理、任务调度、代码生成等常用功能模块,适合中小型公司快速搭建Web应用。本文主要介绍若依框架的特点、版本发展、优缺点及项目部署步骤,帮助开发者快速上手并部署若依项目。
22821 3
若依RuoYi项目环境搭建教程(RuoYi-Vue + RuoYi-Vue3版本)
|
前端开发 搜索推荐 开发工具
通义灵码与颜色板生成器,为前端开发提供智能配色解决方案
在前端开发中,色彩搭配对用户体验和界面美观至关重要。通义灵码提供的颜色板生成器通过自动推荐配色方案、随机生成颜色组合及支持自定义调整,帮助开发者高效完成配色任务。该工具支持一键导出为 CSS 样式表,并提供简洁的中文指令交互方式,大大提升开发效率,助力开发者打造美观和谐的用户界面。
|
前端开发 开发工具 开发者
用 通义灵码 为网站生成动感粒子背景,打造星空效果
星空粒子背景因其动态性与交互性,成为网站设计中提升用户体验的重要元素。通过通义灵码,开发者可以轻松生成多种风格的星空粒子背景,并将其融入网页设计。本文介绍了使用通义灵码创建动态粒子背景的步骤,展示了
|
8月前
|
Java 测试技术 Apache
安装Jmeter
JMeter依赖JDK,需先安装并配置JDK环境变量。前往Apache JMeter官网(http://jmeter.apache.org/download_jmeter.cgi)下载最新版本,解压后即可使用,适用于性能测试与负载模拟。
|
8月前
|
安全 Java 开发工具
整合SpringSecurity
本文介绍了Spring Security与Spring Boot的整合步骤:引入依赖、启动验证及登录测试。通过日志变化和自动跳转至login页面验证集成成功,使用默认用户名user和控制台生成的动态密码登录后,可访问受保护资源。完整代码见GitHub仓库Day01分支。
|
8月前
|
Arthas Java 测试技术
Arthas安装
Arthas是一款Java诊断工具,需先启动Java应用并安装JDK。通过arths-boot.jar启动后选择对应进程即可接入,支持多进程管理,适用于SpringBoot等应用的线上问题排查与性能分析。(236字符)
|
传感器 人工智能 Java
通义灵码新功能体验
最近体验了通义灵码的新功能,尤其是新增的智能体模式,让AI编程助手跃升新高度。它支持自主决策、环境感知和工具利用,可从零开发应用。例如创建Spring Boot项目,只需描述需求,它便生成所需文件并提供启动建议。集成MCP工具后,能调用2400多个服务,快速定位配置文件。更新还增强了记忆能力,根据用户习惯优化响应,加入Qwen3模型提升复杂任务处理效率。此外,上下文支持工程目录和多文件选择,进一步提高重构效率。对于开发者来说,这是一次极具吸引力的升级。