Sofa服务接入

    接入前,请正确启动 shenyu-admin,并开启sofa插件,在网关端和sofa服务端引入相关依赖。可以参考前面的 Sofa快速开始

    应用客户端接入的相关配置请参考:。

    数据同步的相关配置请参考:数据同步配置

    • 在网关的 pom.xml 文件中增加如下依赖:

    • sofa版本换成你的,引入你需要的注册中心依赖,以下是参考。

      ```

    • 重启网关服务。

    可以参考:

    1. <dependency>
    2. <groupId>org.apache.shenyu</groupId>
    3. <artifactId>shenyu-spring-boot-starter-client-sofa</artifactId>
    4. <version>${shenyu.version}</version>
    5. </dependency>

    如果是spring构建,引入以下依赖:

    并在你的 bean定义的xml文件中新增如下 :

    1. <bean id ="sofaServiceBeanPostProcessor" class ="org.apache.shenyu.client.sofa.SofaServiceBeanPostProcessor">
    2. <constructor-arg ref="shenyuRegisterCenterConfig"/>
    3. </bean>
    4. <bean id="shenyuRegisterCenterConfig" class="org.apache.shenyu.register.common.config.ShenyuRegisterCenterConfig">
    5. <property name="serverList" value="http://localhost:9095"/>
    6. <property name="props">
    7. <map>
    8. <entry key="contextPath" value="/你的contextPath"/>
    9. <entry key="ifFull" value="false"/>
    10. </map>
    11. </property>
    12. </bean>
    • 首先在 shenyu-admin 插件管理中,把sofa 插件设置为开启。

    • 其次在 sofa 插件中配置你的注册地址或者其他注册中心的地址.

    • sofa服务的类或者方法上加上 @ShenyuSofaClient 注解,表示该类或接口方法注册到网关。

    • 启动sofa服务提供者,成功注册后,进入后台管理系统的 插件列表 -> rpc proxy -> sofa,会看到自动注册的选择器和规则信息。

    可以通过 http 的方式来请求你的 sofa 服务。Apache ShenYu 网关需要有一个路由前缀,这个路由前缀就是接入网关配置的 contextPath

    • 参数传递:

      • 通过 http协议, post 方式访问网关,通过在http body中传入类型参数。
      • 更多参数类型传递,可以参考 shenyu-examples-sofa 中的接口定义,以及参数传递方式。
    • 单个java bean参数类型 (默认)

    • bodyhttpbody传的json字符串。

    • parameterTypes: 匹配到的方法参数类型列表,如果有多个,则使用,分割。

    • 把你的类注册成Springbean,覆盖默认的实现。