Spring Cloud快速搭建开放平台解决方案
作者:互联网
一、SOP简介
基于Spring Cloud实现的一个开放平台解决方案项目,能够让开发团队快速得搭建起自己的开放平台。
SOP提供了两种接口调用方式,分别是:支付宝开放平台的调用方式和淘宝开放平台的调用方式。通过简单的配置后,你的项目就具备了和支付宝开放平台的一样的接口提供能力。
SOP封装了开放平台大部分功能包括:签名验证、统一异常处理、统一返回内容 、业务参数验证(JSR-303)、秘钥管理等,未来还会实现更多功能。
二、架构图
三、优势
接入方式简单,与老项目不冲突,老项目注册到注册中心,然后在方法上加上注解即可。
架构松耦合,业务代码实现在各自微服务上,SOP不参与业务实现,这也是Spring Cloud微服务体系带来的好处。
扩展简单,开放平台对应的功能各自独立,可以自定义实现自己的需求,如:更改参数,更改签名规则等。
四、目标群体
有现成的项目,想改造成开放平台供他人调用。
有现成的项目,想暴露其中几个接口并通过开放平台供他人调用。
想搭一个开放平台新项目,并结合微服务的方式去维护。
对开放平台感兴趣的朋友。
五、工程说明
doc:开发文档。
sop-registry:注册中心,eureka实现。
sop-gateway:网关,统一访问入口,Spring Cloud Zuul实现,可切换成Spring Cloud Gateway。
sop-common:公共模块,封装常用功能,包含签名校验、错误处理等功能。
sop-story:微服务示例,story服务,同时作为Provider提供服务。
sop-book:微服务示例,book服务,也是Consumer,调用story提供的服务。
sop-test:接口调用测试用例。
六、快速使用
1、运行环境准备
JDK8,Maven3,Zookeeper,Mysql
2、安装并启动zookeeper
官方安装教程
SpringBoot+zk+dubbo架构实践(一):本地部署zookeeper
3、执行Mysql脚本sop.sql
下载源码,执行sop.sql
源码地址:https://gitee.com/durcframework/SOP
4、IDE安装lombok插件
IDE安装lombok插件,然后打开项目(IDEA下可以打开根pom.xml,然后open as project)。
5、启动注册中心
在sop-registry工程 运行SopRegistryApplication.java
6、启动微服务
在sop-story-web工程运行SopStoryApplication.java
7、启动网关
打开sop-gateway项目下的application.yml,修改数据库username/password为自己部署的数据配置信息,SopGatewayApplication.java
8、运行
找到sop-test,打开测试用例,进行接口调用测试,运行com.gitee.sop.AlipayClientPostTest.testPost()
备注:注册中心要先启动
七、使用admin
找到sop-admin/sop-admin-server工程,打开sop-admin-server下的application-dev.yml,修改数据库username/password
运行com.gitee.sop.adminserver.SopAdminServerApplication.java
找到sop-admin/sop-admin-front/index.html文件,在IDEA下直接右键--Run'index.html'
如果没有用到IDEA,则需要把sop-admin-front放到静态服务器中然后访问index.html
默认登录账号:admin/123456
八、项目接入到SOP
SOP是以以springboot项目为例,springmes目前还不支持。
工程依赖sop-service-common,和eureka
<dependency> <groupId>com.gitee.sopgroupId> <artifactId>sop-service-commonartifactId> <version>1.0.0-SNAPSHOTversion> dependency> <dependency> <groupId>org.springframework.cloudgroupId> <artifactId>spring-cloud-starter-netflix-eureka-clientartifactId> dependency>
添加eureka配置
eureka: port: 1111 # eureka端口号 host: localhost # eureka地址 client: serviceUrl: defaultZone: http://${eureka.host}:${eureka.port}/eureka/
在springboot启动类上添加@EnableDiscoveryClient
@SpringBootApplication @ConfigurationProperties() @ServletComponentScan @EnableDiscoveryClient public class SpringBootStartApplication extends SpringBootServletInitializer { public static void main(String[] args) { SpringApplication.run(SpringBootStartApplication, args); } }
新增一个配置类,继承AlipayServiceConfiguration.java,内容为空
@Configuration public class OpenServiceConfig extends AlipayServiceConfiguration { }
好了,基本工作全部准备完成啦!接下来就是新增接口了。
接口界面预览
标签:调用,admin,Spring,eureka,sop,开放平台,Cloud 来源: https://blog.51cto.com/u_7117633/2871004