Spring Cloud快速搭建开放平台解决方案

字母哥的博客 2019-04-22 15:13:59 ⋅ 1246 阅读

一、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.sop</groupId>
<artifactId>sop-service-common</artifactId>
<version>1.0.0-SNAPSHOT</version>
</dependency>

<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</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 {

}

好了,基本工作全部准备完成啦!接下来就是新增接口了。

接口界面预览



贡献者

  • IT实战联盟-Line


---------------END----------------

后续的内容同样精彩

长按关注“IT实战联盟”哦




全部评论: 0

    我有话说:

    Spring Cloud(Greenwich版)-06-Spring Cloud集成Feign

    Spring Cloud系列教程第6节-Spring Cloud集成Feign

    Spring Cloud Alibaba 发布毕业后的首个版本

    方剑,花名洛夜,GitHub ID @fangjian0423,开源爱好者,阿里巴巴高级开发工程师,阿里云产品 EDAS 开发Spring Cloud Alibaba 开源项目负责人。

    构建数据集成和实时数据处理流水线工具Spring Cloud Data Flow

    Spring Cloud Data Flow 是基于原生云对 Spring XD 的重新设计

    深入理解 Spring Cloud 核心组件 底层原理

    搜云库技术团队:https://mp.weixin.qq.com/s/_KCBWTPvFQ2QsM4P8-gqTQ 之前一直在看 Spring Cloud 及微服务架构 对 Spring Cloud

    Spring Cloud(Greenwich版)-03-编写高可用Eureka Server(集群)

    前言 上一章Spring Cloud(Greenwich版)-02-服务注册与服务发现-Eureka入门,我们实现了将User和Goods微服务都注册到了Eureka上,那么在生产环境中为了达到高

    码云推荐:一个优秀的分布式spring boot/Spring Cloud API限流框架,特别适合微服务架构

    一个优秀的分布式spring boot/Spring Cloud API限流框架,特别适合微服务架构.

    架构实战篇(三)-Spring Boot架构RESTful API案例

    之前分享了Spring Boot 整合Swagger 让API可视化和前后端分离架构 受到了大家一致好评 ,本节就接着上节的代码做了详细的查询代码的补充和完善并RESTful API架构案例。

    Docker - 大数据环境快速步骤

    快速一个大数据的环境,我们可以使用Docker来实现,文章会演示如何使用。

    架构实战篇(一)-Spring Boot+MyBatis基础架构

    Spring的追求一定是简单点简单点,让java的开发变得更加简单、容易。瞧瞧的告诉你们直接copy就能用哦~~~

    【轻阅读】基于 Java Spring cloud的开源在线教育系统调试实战

    转载自:https://www.toutiao.com/i6759167063090004483开篇之前分享

    运用Docker快速部署分布式项目

    快速Docker分布式项目环境

    「轻阅读」阿里云-开放平台高级技术家教你微服务架构的四大金刚利器

    孔凡勇,花名云狄,阿里云-开放平台高级技术家,对高并发、高性能、高可用、可伸缩的分布式系统架构设计有丰富经验,Cloud Native坚定拥护者,坚守开发一线打磨匠艺的架构师。

    Fes.js v0.4.1 版本发布,一套优秀的中后台系统前端解决方案

    Fes.js 是一套优秀的中后台前端解决方案。提供初始项目、开发调试、Mock接口、编译打包的命令行工具。内置布局、权限、数据字典、状态管理、存储、Api等多个模块。以约定、配置化、组件化的设计思想

    WebMIS 1.0.0 beta.3 发布,全栈开发基础框架

    ,为企业提供一套完整的技术解决方案,满足快速开发...

    开源资讯」免费站系统,Joomla 3.9.22 发布

    、MacOSX等各种不同的平台上执行。目前是由Ope...