更新时间 2021.04.21
介绍
- 介绍如何在本地通过
PAI
来进行微服务开发
前置条件
- 开发环境配置:
开发环境安装
- Demo 程序已经开发完毕,详见 前置步骤
应用开发流程
- Demo 程序源码:
本地测试
- 本地测试不需要认证,只需本地启动即可使用Swagger 进行接口测试
准备工作
- 本地测试不需要用户登录,首先注释启动类上的
@EnablePaiResourceServer
注解,该注解启动了Token的校验,本地不需要。 - 关闭Spring Security 的安全配置,在项目中加入配置类,关闭校验,但不要把这个配置提交的Git仓库,只适用本地测试。
package cn.flyrise.pai.democy.config;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
@Configuration
public class CustomWebSecurityConfigurerAdapter extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
// 禁用 security basic 验证
http.httpBasic().disable();
// 禁用 csrf
http.csrf().disable();
}
}
启动 demo 服务
使用IDEA 启动服务
API 测试
访问本地服务 localhost:8080/doc.html
集成测试
- 集成测试即讲本地服务注册到注册中心,通过 swagger 测试API
操作示例
1. 服务注册
在启动类 Application 有 @SpringCloudApplication 的注解,如果没有就添加该注解。
观察 bootstrap.yml 中参数
spring: port: 8080 application: name: pai-demo-cy profiles: # 环境配置 active: dev
观察 bootstrap-dev.yml 中参数
127.0.0.1 仅用来参考,具体以实际分配地址为准。
spring:
cloud:
nacos:
discovery:
namespace: b35efc59-d693-4a20-9489-90ff09efbc51
server-addr: http://127.0.0.1:8848
file-extension: yaml
# Nacos 服务开启认证时需要配置
# username:
# password:
# context-path: nacos
config:
namespace: b35efc59-d693-4a20-9489-90ff09efbc51
server-addr: http://127.0.0.1:8848
file-extension: yaml
# 读取Nacos配置时间(默认3000,单位:毫秒)
# timeout: 3000
# Nacos 服务开启认证时需要配置
# username:
# password:
# context-path: nacos
- 这些配置都是在创建项目的时候产生的,无需修改即可使用。
- 如果本地是局域网内,一般需要关闭防火墙或者开放端口,别的服务才能访问到本地服务。
- 如果本地有多块网卡,如本地有虚拟机、VPN 等,需要在配置文件中指定注册的IP网段,否则服务器上访问到其它网段可能导致访问不通本地服务。
spring:
cloud:
inetutils:
# 本地多网卡时,忽略回环网卡
ignored-interfaces[0]: lo
# 本地多网卡时,选择注册的网段
preferred-networks[0]: xx.xx
2. 配置服务路由
- 服务在部署后默认 会生成 xxx-api 的路由 例如 demo 服务有个 获取用户的接口
- 本地访问用户接口地址: localhost:8080/getUser
- 部署到pai 后的接口地址: pai.flyrise.cn/demo-api/getUser
3. 接口权限
PAI 的接口权限遵循 RBAC。需要在接口上添加 @PreAuthorize() 注解。
详情请看
文档更新时间: 2024-03-25 11:23 作者:朱灿奕