- 博客(55)
- 收藏
- 关注
原创 spring cloud+spring boot直播电子商务小程序
涉及平台:平台管理(包含自营店面)、商家端(PC端、手机端)、买家平台(PC端、H5/公众号、小程序、APP端(IOS/Android)、业务微服务核心架构:Spring Cloud、Spring Boot、Mybatis Plus、Redis前端框架:VUE、Bootstrap/H5/CSS3、IOS、Android、小程序核心思想:分布式、微服务、云架构、模块化、原子化、持续集成、集群部署开发模式:代码生成工具、驱动式开发模式、提高开发效率社交模式:VR全景虚拟现实线上线下、直播带货、短视频带
2020-06-18 09:24:42
327
原创 Spring Boot : Webflux 和 MVC 性能对比
前言最近在网上看到,很多人都讲 Spring Boot Webflux 要超过 SpringMVC ,感觉在高并发的场景下, Spring Boot Webflux 简直就是银弹。本文将通过最简单的方式,来简单测试对比一下 Spring Boot Webflux 和 SpringMVC 在高并发场景下的性能。准备首先介绍一下本人的硬件情况:CPU:因特尔的 i7-8700内存:16G DDR4 2666系统:win10压测工具选择 Apache 的 jmeter ,版本为 5.1.1.
2020-06-12 11:35:33
516
原创 Spring Boot : 优雅的使用 API 文档工具 Swagger2
引言各位在开发的过程中肯定遇到过被接口文档折磨的经历,由于 RESTful 接口的轻量化以及低耦合性,我们在修改接口后文档更新不及时,导致接口的调用方(无论是前端还是后端)经常抱怨接口与文档不一致。程序员的特点是特别不喜欢写文档,但是又同时特别不喜欢别人不写文档。所以 API 文档工具这时就应运而生了,本篇文章我们将会介绍 API 文档工具 Swagger2 。快速上手既然 Swagger2 是一个 API 文档工具,我们就在代码中看一下这个文档工具在 Spring Boot 中是如何使用的吧..
2020-06-12 11:28:41
259
原创 SpringCloud+SpringBoot+SSO单点登录之OAuth2.0 根据token获取用户信息(4)
上一篇我根据框架中OAuth2.0的使用总结,画了SSO单点登录之OAuth2.0 登出流程,今天我们看一下根据用户token获取yoghurt信息的流程:Java代码 /** * 根据token获取用户信息 * @param accessToken * @return * @throws Exception */ @RequestMapping(value = "/user/token/{accesstoken}", method = RequestMethod.G
2020-06-10 14:30:58
1393
原创 SpringCloud+SpringBoot+SSO单点登录之OAuth2.0登出流程(3)
上一篇我根据框架中OAuth2.0的使用总结,画了一个根据用户名+密码实现OAuth2.0的登录认证的流程图,今天我们看一下logout的流程:Java代码/** * 用户注销 * @param accessToken * @return */ @RequestMapping(value = "/user/logout", method = RequestMethod.POST) public ResponseVO userLogout(@Req
2020-06-10 14:28:50
510
原创 SpringCloud+SpringBoot+SSO单点登录之OAuth2.0登录流程(2)
上一篇是站在巨人的肩膀上去研究OAuth2.0,也是为了快速帮助大家认识OAuth2.0,闲话少说,我根据框架中OAuth2.0的使用总结,画了一个简单的流程图(根据用户名+密码实现OAuth2.0的登录认证):上面的图很清楚的描述了当前登录login的流程,现在我们针对于login做成相关的微服务,解析如下:请求方式:POST服务URL: http://localhost:8080/user/login参数类型:application/jsonHeaders: Content-Type: ap
2020-06-10 14:27:04
605
原创 SpringCloud+SpringBoot+SSO单点登录之OAuth2.0登录认证(1)
之前写了很多关于spring cloud的文章,今天我们对OAuth2.0的整合方式做一下笔记,首先我从网上找了一些关于OAuth2.0的一些基础知识点,帮助大家回顾一下知识点:一、oauth中的角色client:调用资源服务器API的应用Oauth 2.0 Provider:包括Authorization Server和Resource Server(1)Authorization Server:认证服务器,进行认证和授权(2)Resource Server:资源服务器,保护受保护的资源use
2020-06-10 14:24:13
997
原创 Spring Boot : Spring Boot Admin 监控 Spring Boot 应用
1. 引言在微服务的体系中,我们的服务数量是非常多的,这同样不方便我们人工管理,在这样的背景下,诞生了另一个开源软件,也是本篇文章要介绍的: Spring Boot Admin 。2. Spring Boot Admin 简介Spring Boot Admin 是一个 Web 应用,用于管理和监视 Spring Boot 应用程序的运行状态。每个 Spring Boot 应用程序都被视为客户端并注册到管理服务器。背后的数据采集是由 Spring Boot Actuator 端点提供。前端 Spring
2020-06-10 09:26:22
99
原创 Spring Boot : 微服务应用监控 Spring Boot Actuator 详解
1. 引言在当前的微服务架构方式下,我们会有很多的服务部署在不同的机器上,相互是通过服务调用的方式进行交互,一个完整的业务流程中间会经过很多个微服务的处理和传递,那么,如何能知道每个服务的健康状况就显得尤为重要。万幸的是 Spring Boot 为我们提供了监控模块 Spring Boot Actuator ,本篇文章将和大家一起探讨一些 Spring Boot Actuator 一些常见用法方便我们在日常的使用中对我们的微服务进行监控治理。Spring Boot Actuator 帮我们实现了对程序
2020-06-10 09:21:52
91
原创 Spring Boot: Mybatis 增强工具 MyBatis-Plus
1. 简介在目前微服务的架构模式下,每个服务拥有自己的单独的数据库,单表的使用场景会越来越多, Mybatis 的使用无疑会产生很多重复劳动。Mybatis Plus 在这样的背景下应运而生了,MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。而开源团队对这个开源项目的愿景如下:愿景我们的愿景是成为 MyBatis 最好的搭档,就像 魂斗罗 中的 1P、2P,基友搭配,效率翻倍。2. 特性无侵入:只做
2020-06-09 09:38:45
198
原创 Spring Boot : Mybatis极简配置
前言ORM 框架的目的是简化编程中的数据库操作,经过这么多年的发展,基本上活到现在的就剩下两家了,一个是宣称可以不用写 SQL 的 Hibernate ,一个是对 SQL 非常友好的 Mybaties ,,两者各有特点,在企业级系统开发中可以根据需求灵活使用。发现一个有趣的现象:传统企业大都喜欢使用 Hibernate ,互联网行业通常使用 Mybatis 。Hibernate 特点就是所有的 SQL 都用 Java 代码来生成,不用跳出程序去写(看) SQL ,有着编程的完整性,发展到最顶端就是 .
2020-06-09 09:30:23
73
原创 为 JPA 插上翅膀的 QueryDSL
1. 引言不可否认的是 JPA 使用是非常方便的,极简化的配置,只需要使用注解,无需任何 xml 的配置文件,语义简单易懂,但是,以上的一切都建立在单表查询的前提下的,我们可以使用 JPA 默认提供的方法,简单加轻松的完成 CRUD 操作。但是如果涉及到多表动态查询, JPA 的功能就显得有些捉襟见肘了,虽然我们可以使用注解 @Query ,在这个注解中写 SQL 或者 HQL 都是在拼接字符串,并且拼接后的字符串可读性非常的差,当然 JPA 还为我们提供了 Specification 来做这件事情,从
2020-06-08 10:56:40
257
原创 Redis缓存使用姿势盘点
1. Redis 简介Redis 是目前业界使用最广泛的内存数据存储。相比 Memcached,Redis 支持更丰富的数据结构,例如 hashes, lists, sets 等,同时支持数据持久化。除此之外,Redis 还提供一些类数据库的特性,比如事务,HA,主从库。可以说 Redis 兼具了缓存系统和数据库的一些特性,因此有着丰富的应用场景。本文介绍 Redis 在 Spring Boot 中两个典型的应用场景。2. Lettuce 简介如果在 Java 应用中使用过 Redis 缓存,那么对
2020-06-08 10:50:10
83
原创 Druid 连接池密码加密与监控
Druid 是什么?我们先来看一下官方的回答:Druid 是 Java 语言中最好的数据库连接池。 Druid 能够提供强大的监控和扩展功能。说 Druid 是 Java 语言中最好的数据库连接池,这个笔者个人觉得有些吹牛了,至少在性能上和我们上一篇介绍的 Hikari 是没得比的,。但是 Druid 在其他的一些方面就做的比较出色了,功能非常丰富:了解源码可+求求: 1791743380可以监控数据库访问性能, Druid 内置提供了一个功能强大的StatFilter插件,能够详细统计 SQ.
2020-06-05 09:47:14
556
原创 ORM 框架 JPA 与连接池 Hikari
1. 概述数据库方面我们选用 Mysql , Spring Boot 提供了直接使用 JDBC 的方式连接数据库,毕竟使用 JDBC 并不是很方便,需要我们自己写更多的代码才能使用,一般而言在 Spring Boot 中我们常用的 ORM 框架有 JPA 和 Mybaties ,本篇文章我们要介绍的就是 JPA 的使用姿势。说道使用 ORM 框架,就不得不顺便聊一下连接池,市面上很多成熟的数据库连接池,如 C3P0 、 Tomcat 连接池、 BoneCP 等等很多产品,但是我们为什么要介绍 Hikar
2020-06-05 09:39:47
327
原创 spring cloud微服务开发b2b2c电子商务小程序
核心架构:Spring Cloud、Spring Boot、Mybatis、Redis、Rabbit MQ、微服务、分布式、电子商务核心思想:产品微服务、模块化、原子化、持续集成、分布式、集群部署开发模式:代码生成工具、驱动式开发模式、提高开发效率微信扫码可以体验~...
2020-06-04 08:51:04
137
原创 Spring Boot :模版引擎 Thymeleaf 渲染 Web 页面
1. 什么是 Thymeleaf ?虽然我们目前拥有许多十分优秀的前端框架,例如: Vue 、 React 等,非常适用于前后端分离的场景,前端可以独立部署成为服务,前后端从物理上完全进行隔离,降低程序耦合度。但是 Spring Boot 官方依然为我们提供了模版引擎用于一些无需前后端分离的场景。 Thymeleaf 是新一代的模板引擎,在 Spring Boot 中,官方推荐使用 Thymeleaf 来做前端模版引擎。打开 https://start.spring.io/ 可以看到,在当前Spring
2020-06-03 09:43:49
172
原创 Spring Boot :快速开始
Spring Boot是什么?Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。讲的通俗一点就是Spring Boot并不是一个新的框架,它只是整合和默认实现了很多框架的配置方式。(了解源码可+求求: 1791743380)好处是什么?最大的好处就是简单、快捷、方便,在Spring Boot之前,我们如果要搭建一个框架需要做什么?配置.
2020-06-03 09:37:08
107
原创 spring cloud开发的b2b2c电子商务小程序
核心架构:Spring Cloud、Spring Boot、Mybatis、Redis、Rabbit MQ、微服务、分布式、电子商务核心思想:产品微服务、模块化、原子化、持续集成、分布式、集群部署开发模式:代码生成工具、驱动式开发模式、提高开发效率在这里插入图片描述微信扫码可以体验~...
2020-06-02 17:16:11
105
原创 Spring Cloud 之 okhttp
什么是 okhttp ?okhttp 是由 square 公司开源的一个 http 客户端。在 Java 平台上,Java 标准库提供了 HttpURLConnection 类来支持 HTTP 通讯。不过 HttpURLConnection 本身的 API 不够友好,所提供的功能也有限。大部分 Java 程序都选择使用 Apache 的开源项目 HttpClient 作为 HTTP 客户端。Apache HttpClient 库的功能强大,使用率也很高。为什么要使用 okhttp ?okhtt..
2020-06-01 11:01:51
369
原创 Spring Cloud 组件 Docker 化
本篇文章我们将介绍如何在 IDE 工具 idea 中使用 Docker 工具,并为我们的工程构建镜像。实战2.1 创建父工程 chapter18父工程 pom.xml 依赖文件:代码清单:chapter18/pom.xml<build> <plugins> <plugin> <groupId>com.spotify</groupId> <artifactId
2020-06-01 10:56:35
918
原创 SpringCloud第十八篇:微服务 Docker 化之基础环境
容器化Docker 的横空出世,给了容器技术带来了质的飞跃,Docker 标准化了服务的基础设施,统一了应用的打包分发,部署以及操作系统相关类库等,解决了测试生产部署时环境差异的问题。对于运维来讲,由于镜像的不可变性,更容易进行服务部署和回滚操作。利用各种第三方容器管理平台,实现一键部署、动态伸缩等操作变的轻而易举。基础镜像选择在操作系统的选择上,可选择传统的 CentOS 、 Ubuntu 或者更为轻量化的 Alpine 。比如 CentOS 或者 Ubuntu 的镜像都在 100MB 以...
2020-05-29 15:32:46
352
原创 SpringCloud第十七篇:服务网关Zuul基于Apollo动态路由
Zuul作为一个老牌的开源服务网关组件,动态路由对它来讲是一个十分必要的功能,毕竟我们不能随便重启服务网关,服务网关是一个微服务系统的大门,今天我们介绍的Zuul动态路由的解决方案来自于携程开源的配置中心Apollo。Apollo概述Apollo(阿波罗)是携程框架部门研发的开源配置管理中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性。Apollo支持4个维度管理Key-Value格式的配置:application (应用)en
2020-05-29 15:23:21
411
原创 SpringCloud:微服务利剑之APM平台(二)Pinpoint
Pinpoint概述Pinpoint是一个由韩国人编写的为大型分布式系统服务的链路跟踪平台,并提供大量链路跟踪数据分析汇总解决方案。自2012年7月开始开发,与2015年1月做为一个开源项目推出。Pinpoint主要特性分布式事务跟踪,跟踪跨分布式应用的消息。自动检测应用拓扑,帮助你搞清楚应用的架构。水平扩展以便支持大规模服务器集群。提供代码级别的可见性以便轻松定位失败点和瓶颈。使用字节码增强技术,添加新功能而无需修改代码。Pinpoint优势无入侵:采用字节码增强技术,新增功..
2020-05-28 15:02:47
1313
原创 SpringCloud:微服务利剑之APM平台(一)Skywalking
Skywalking概述Skywalking与2016年11月2日由国人吴晟在Github上传v1.0版本,用于提供分布式链路追踪功能,从5.x开始,成为一个功能较为完善的APM(Application Performance Management)系统,2019年4月17日从Apache孵化器毕业,正式成为Apache顶级项目。提供分布式追踪、服务网格遥测分析、度量聚合和可视化一体化解决方案。官方对自己介绍是专为微服务,云原生和基于容器(Docker,Kubernetes,Mesos)架构而设计。..
2020-05-28 14:50:41
506
原创 Spring Cloud Gateway高级应用
熔断限流重试限速路由器限速在高并发场景中比较常用的手段之一,可以有效的保障服务的整体稳定性,Spring Cloud Gateway 提供了基于 Redis 的限流方案。所以我们首先需要添加对应的依赖包spring-boot-starter-data-redis-reactive org.springframework.boot spring-boot-starter-data-redis-reactiveCOPY配置文件中需要添加 Redis 地址和限流的相关配置server:
2020-05-27 09:52:44
214
1
原创 Spring Cloud Gateway服务化和过滤器
注册中心1.1 准备服务和注册中心上篇主要讲解了网关代理单个服务的使用语法,在实际的工作中,服务的相互调用都是依赖于服务中心提供的入口来使用,服务中心往往注册了很多服务,如果每个服务都需要单独配置的话,这将是一份很枯燥的工作。Spring Cloud Gateway 提供了一种默认转发的能力,只要将 Spring Cloud Gateway 注册到服务中心,Spring Cloud Gateway 默认就会代理服务中心的所有服务,下面用代码演示。在介绍Zuul的时候,我们用到了Eureka和pro.
2020-05-27 09:49:10
136
原创 服务网关Zuul高级篇
上一篇我们主要聊到了Zuul的使用方式,以及自动转发机制,其实Zuul还有更多的使用姿势,比如:鉴权、流量转发、请求统计等。Zuul的核心Zuul的核心是Filter,用来实现对外服务的控制。分别是“PRE”、“ROUTING”、“POST”、“ERROR”,整个生命周期可以用下图来表示。Zuul大部分功能都是通过过滤器来实现的。Zuul中定义了四种标准过滤器类型,这些过滤器类型对应于请求的典型生命周期。PRE: 这种过滤器在请求被路由之前调用。我们可利用这种过滤器实现身份验证、在集群中选择请
2020-05-25 16:50:10
216
1
原创 第九篇:服务网关Zuul初探
前面的文章我们介绍了,Eureka用于服务的注册于发现,Feign支持服务的调用以及均衡负载,Hystrix处理服务的熔断防止故障扩散,Spring Cloud Config服务集群配置中心,似乎一个微服务框架已经完成了。我们还是少考虑了一个问题,外部的应用如何来访问内部各种各样的微服务呢?在微服务架构中,后端服务往往不直接开放给调用端,而是通过一个API网关根据请求的url,路由到相应的服务。当添加API网关后,在第三方调用端和服务提供方之间就创建了一面墙,这面墙直接与调用方通信进行权限控制,后将请求均
2020-05-25 16:48:06
171
1
原创 第八篇:Spring Cloud Bus 消息总线
前面两篇文章我们聊了Spring Cloud Config配置中心,当我们在更新github上面的配置以后,如果想要获取到最新的配置,需要手动刷新或者利用webhook的机制每次提交代码发送请求来刷新客户端,客户端越来越多的时候,需要每个客户端都执行一遍,这种方案就不太适合了。使用Spring Cloud Bus(国人很形象的翻译为消息总线,我比较喜欢叫消息巴士)可以完美解决这一问题。Spring Cloud BusSpring cloud bus通过轻量消息代理连接各个分布的节点。这会用在广播状态的
2020-05-25 16:45:32
185
1
原创 第七篇:Spring Cloud Config 配置中心高可用和refresh
引言上一篇我们聊了Spring Cloud Config 配置中心,并且和Github做了集成,我们的Server端是单机版的,任何单机版的服务都只能使用与测试环境或者自己做Demo测试,生产环境严禁使用单机服务,配置中心在整个微服务体系中都是及其重要的一个节点,尤其是在DevOps中自动扩容,如果配置中心宕机,那么所有的自动扩容都会失败。所以这一篇我们聊聊配置中心的高可用,说到高可用,在springcloud体系中,是有注册中心的,那么,我们的配置中心也是一个服务,可不可以使用Eureka做服务的.
2020-05-25 16:44:07
207
原创 第六篇:Spring Cloud Config Github配置中心
随着分布式项目越来越大,勤劳的程序猿们会开始面临一个挑战,配置文件会越来越繁杂,虽然spring提供了一个鸡肋版的解决方案,spring.profiles.active,在大型的分布式项目体系中,聊胜于无吧,手动维护配置文件的痛苦,生产,UAT,测试,开发环境的隔离,额外的配置文件,如:logback.xml日志的配置文件,bootstrap.properties配置文件,当系统中有几十个服务,相应的会有上百个配置文件,简直就是史诗级的灾难大片,每次发布上线,都要手动去检查配置文件,相应的服务都需要重启,那
2020-05-25 16:42:21
147
原创 学SpringCloud | 第五篇:熔断监控Hystrix Dashboard和Turbine
Hystrix-dashboard是一款针对Hystrix进行实时监控的工具,通过Hystrix Dashboard我们可以在直观地看到各Hystrix Command的请求响应时间, 请求成功率等数据。但是只使用Hystrix Dashboard的话, 你只能看到单个应用内的服务信息, 这明显不够。我们需要一个工具能让我们汇总系统内多个服务的数据并显示到Hystrix Dashboard上, 这个工具就是Turbine。Hystrix Dashboard 创建一个新的项目hystrix-dashboar
2020-05-22 11:17:14
104
原创 学SpringCloud | 第四篇:熔断器Hystrix
熔断器 服务雪崩 在正常的微服务架构体系下,一个业务很少有只需要调用一个服务就可以返回数据的情况,这种比较常见的是出现在demo中,一般都是存在调用链的,比如A->B->C->D,如果D在某一个瞬间出现问题,比如网络波动,io偏高,导致卡顿,随着时间的流逝,后续的流量继续请求,会造成D的压力上升,有可能引起宕机。你以为这就是结束么,图样图森破,这才是噩梦的开始,在同一个调用链上的ABC三个服务都会随着D的宕机而引发宕机,这还不是结束,一个服务不可能只有一个接口,当它开始卡顿宕机时,会影响
2020-05-22 11:10:17
125
原创 学SpringCloud | 第三篇:服务的提供与Feign调用
上一篇,我们介绍了注册中心的搭建,包括集群环境吓注册中心的搭建,这篇文章介绍一下如何使用注册中心,创建一个服务的提供者,使用一个简单的客户端去调用服务端提供的服务。本篇文章中需要三个角色,分别是服务的提供者,服务的消费者,还有一个是上一篇文章的主角——注册中心Eureka(使用单机版本即可,本篇的示例也会使用单机版本的Eureka)。整体流程为:先启动注册中心Eureka 启动服务的提供者将提供服务,并将服务注册到注册中心Eureka上 启动服务的消费者,在注册中心中找到服务并完成消费服务提供者p
2020-05-22 11:08:37
172
原创 学SpringCloud | 第二篇:注册中心Eureka
Eureka是Netflix开源的一款提供服务注册和发现的产品,它提供了完整的Service Registry和Service Discovery实现。也是springcloud体系中最重要最核心的组件之一。注册中心的意义注册中心管理各种服务功能包括服务的注册、发现、熔断、负载、降级等,比如dubbo admin后台的各种功能。有了注册中心,调用关系的变化,画几个简图来看一下。服务A调用服务B有了注册中心之后,任何一个服务都不在是直连的,都需要通过注册中心去调用。如果是一个连续调用:服务
2020-05-22 11:06:18
125
原创 学SpringCloud | 第一篇:介绍
什么是springcloud? Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。Spring Cloud并没有重复制造轮子,它只是将目前各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过Spring Boot风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维
2020-05-22 10:54:06
93
原创 java版 Spring Cloud分布式微服务b2b2c电子商务(三)断路器-b2b2c小程序
一、在ribbon使用断路器 了解springcloud架构可以加求求:三五三六二四七二五九改造serice-ribbon 工程的代码,首先在pox.xml文件中加入spring-cloud-starter-hystrix的起步依赖:<dependency> <groupId>org.springframework.cloud</groupId> ...
2020-03-16 17:30:34
98
原创 java版 Spring Cloud分布式微服务b2b2c电子商务(二)服务注册与发现-b2b2c小程序
一、ribbon简介Springcloudb2b2c电子商务社交平台源码请加企鹅求求:一零三八七七四六二六。ribbon是一个负载均衡客户端,可以很好的控制htt和tcp的一些行为。Feign默认集成了ribbon。ribbon 已经默认实现了这些配置bean:IClientConfig ribbonClientConfig: DefaultClientConfigImplIRule ri...
2020-03-16 17:21:35
149
1
原创 java版 Spring Cloud分布式微服务b2b2c电子商务(一)服务注册与发现-b2b2c小程序
spring cloud简介电子商务平台源码请加企鹅求求:三五三六二四七二五九-spring cloud 为开发人员提供了快速构建分布式系统的一些工具,包括配置管理、服务发现、断路器、路由、微代理、事件总线、全局锁、决策竞选、分布式会话等等。它运行环境简单,可以在开发人员的电脑上跑。另外说明spring cloud是基于springboot的,所以需要开发中对springboot有一定的了解,如...
2020-03-16 17:16:23
234
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人