SpringBoot
文章平均质量分 82
Julywhj
负责软件开发,及其系统架构设计。
展开
-
生产环境p0级故障:用户钱付了,订单还是显示未支付,用户把我们投诉了!
2022年9月3号,星期六,天气晴。辛苦一周终于可以不用早起美美的睡个懒觉啦。结果事与愿违…;生产环境爆出p0级事故。用户订单支付成功了,但是订单状态显示未支付…毫无疑问,用户肯定会炸,结果不是客诉,就是差评。用户感觉受到了欺诈那么这种情况是怎么发生的呢?我们先简单分析下订单支付的完整流程:订单支付的完整流程1、用户从平台前端(app、小程序等)发起支付申请,到订单服务,计算本次需要支付金额;2、订单服务向支付服务提交支付申请;原创 2022-09-12 16:53:43 · 668 阅读 · 1 评论 -
SpringCloud Gateway 基于nacos实现动态路由
Spring Cloud Gateway作为微服务的入口,需要尽量避免重启,而现在配置更改需要重启服务不能满足实际生产过程中的动态刷新、实时变更的业务需求,所以我们需要在Spring Cloud Gateway运行时动态配置网关。原创 2022-09-06 19:08:49 · 1666 阅读 · 0 评论 -
基于网关服务监控方案
一、需求背景为监控微服务接口运行情况如响应时间、成功率、接口请求频次、业务高峰期段等信息,需对接口进行监控,并可视化展示。二、方案选择方案选择,通常解决方案采用Metics埋点方式,业务系统基础埋点SDK,将埋点日志输出到本地,通过agent将埋点日志发送到Kafka,由Kafka将埋点日志推送到InfuxDB,并通过Grafan进行展示。这里由于我们服务尚未基础埋点,集成埋点工作量较大,短期内无法落地。同时现有技术体系中未使用InfuxDB等时序数据库和数据展示工具。所以我们采用简单数据采原创 2022-04-30 23:27:25 · 1351 阅读 · 1 评论 -
MongoDB实战项目-绘本管理
一、绘本项目需求1.1、绘本管理管理绘本分类和绘本管理;绘本分类需维护分类编号、分类名称、父级分类编号等字段绘本主要维护绘本编号、绘本名称、绘本作者、绘本简介、绘本封面、绘本音频、绘本视频、绘本阅读量、绘本每页详情图片、页码、单页说明等信息。二、模型设计2、针对以上需求,我们对MongoDB进行简单的模型设计。绘本分类数据模型:{"typeNo":"A0002","typeName":"A0002","status":{"$numberLong......原创 2022-04-27 15:03:26 · 997 阅读 · 0 评论 -
基于腾讯云tdmq消息队列封装SpringBootStarter(一)
一、环境准备1.1 注册腾讯云TDMQ创建tdmq集群创建完成后记录下集群ID(clusterId);1.2 创建命名空间创建好集群后,在命名空间中新建命名空间,命名空间名称可以根据实际业务场景进行区分,比如这里创建可以根据测试环境、预发布环境、生产环境等进行区分创建。新建命名空间1.3、创建好命名空间后,新建个`topic`主题。创建topic以上信息创建好后,我们在集群中可以看到集群的访问地址,如下:查看接入地址在创建tdmq集群时我们需要..原创 2022-01-03 14:38:44 · 1275 阅读 · 0 评论 -
CompletableFuture 异步编排详解
CompletableFuture 异步编排详解详情请查看:JulyWhj博客业务场景:查询商品详情页面逻辑比较复杂,有些数据需要远程调用,必然需要花费更多的时间。假如商品详情每个页面查询,需要的如下的标准时间完成,那么用户需要10s才能完成。这里我们需采用异步查询,但是比如接口A查询商品信息,而接口B需要查询商品的SKU,接口C需要查询商品供应商等信息,如接口C必须依赖接口A或接口B的返回值。那么我们就需要使用CompletableFuture接口来实现。一、开启异步编程runAsync:无入原创 2021-09-30 17:28:38 · 587 阅读 · 0 评论 -
支付宝微信支付服务端项目构建
支付宝微信支付服务端项目构建添加pom依赖在pom中添加一下信息<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.原创 2021-07-08 08:39:53 · 842 阅读 · 1 评论 -
微服务系统监控体系
分布式系统监控体系微服务的分层和监控监控是为服务治理的关键环节,监控系统的完善程度,直接影响整个微服务系统质量的好坏,我们微服务在线上运行的时候,有没有一套完善的监控体系,能够实时了解它的健康情况,对整个系统的可靠性和稳定性是非常重要的。本篇文章会介绍一下比较完善的微服务监控体系需要涉及哪些层次。微服务的监控层次主要划分为五个监控层次,分别是:基础设施监控、系统层监控、应用层监控、业务层监控、端用户体验监控。如下图基础设施监控该层次一般由运维团队负责,涉及的方面有网络交换机等,底层设备监控,这些原创 2021-01-06 21:13:11 · 1135 阅读 · 1 评论 -
微服务最经典的三种服务发现机制
微服务最经典的三种服务发现机制大家好,今天给大家分享一篇关于微服务的服务发现机制。在分布式系统当中有许多服务,在有些公司可能有几十个甚至上百个的服务。那么这些服务当中有生产者有消费者,那么这些消费者该怎么发现生产者呢?这就是微服务的服务发现问题。经过实战经验,这里给大家总结了三种主流的服务发现机制,第一种传统基于LB的模式,第二种进程内LB模式,第三种主机独立LB模式。传统LB模式目前大部分公司还是基于传统的LB方式进行做服务发现和负载均衡的,这个模式有一个独立的LB负载均衡的概念,比如使用硬件的F原创 2021-01-06 20:57:02 · 981 阅读 · 0 评论 -
微服务总体技术架构体系是怎样设计的?
微服务总体技术架构体系是怎样设计的?为服务的技术架构体系对于一些成型的互联网公司来说,内部一般都会有一套完善的微服务架构体系。我在下面列举了一个相对比较成型的微服务架构体系。并不是说所有的公司都是这种完善的架构体系。有些公司在成长的早期,或者中期并不是特别完善。对于大公司来说,一般我们回把他的技术体系进行模块化管理。微服务架构体系层次结构接入层最上面的接入层,主要是我们的负载均衡,负责把外部的流量接入到内部的平台上。基础设施层主要是由运维团队来处理,涉及的内容包括计算、网络、存储、NOC监控原创 2021-01-06 20:54:36 · 504 阅读 · 1 评论 -
微服务框架需要考虑哪些治理环节?
微服务框架需要考虑哪些治理环节?如果一个公司的微服务多了,需要有管理和治理。今天给大家介绍一下服务治理环节,一个好的微服务体系需要关注哪些治理环节。服务注册发现首先,我们的微服务框架需要注册服务发现,微服务当中有很多服务,几十个甚至上百个,他们之间有错综复杂的依赖关系。这个时候就存在消费者怎么去发现我们的服务的生产者。这个就是服务注册和发现要解决的问题。服务的负载均衡为了应对大的流量我们的服务一般是多份部署,这个时候就存在负载均衡。另外我能服务需要路由这个能力非常重要,如果我们需要支持灰度发布、原创 2021-01-06 20:52:20 · 428 阅读 · 0 评论 -
SpringBoot整合webSocket并增加用户权限验证
SpringBoot整合webSocket并增加用户权限验证1、网站中的消息功能如何实现思考:像这样的消息功能怎么实现?如果网页不刷新,服务端有新消息如何推送到浏览器?解决方案,采用轮询的方式。即:通过js不断的请求服务器,查看是否有新数据,如果有,就获取到新数据。这种解决方法是否存在问题呢?当然是有的,如果服务端一直没有新的数据,那么js也是需要一直的轮询查询数据,这就是一种资源的浪费。那么,有没有更好的解决方案? 有!那就是采用WebSocket技术来解决。2、什么是WebSocket?原创 2020-10-07 08:58:02 · 10106 阅读 · 4 评论 -
二 、Eureka服务注册与发现
二 、Eureka服务注册与发现1、服务的注册与发现关系调用说明:服务生产者启动时,向服务注册中心注册自己提供的服务服务消费者启动时,在服务注册中心订阅自己所需要的服务注册中心返回服务提供者的地址信息个消费者消费者从提供者中调用服务2、启动eureka注册中心 Eureka是Spring Cloud Netflix微服务套件中的一部分,可以与Springbo...原创 2019-03-09 12:19:33 · 345 阅读 · 0 评论 -
SpringBoot 集成 Shiro
SpringBoot 集成 Shiro1、框架搭建 创建SpringBoot项目,集成Shiro组件。打开idea工具。进入File-&gt;New-&gt;Project选择Spring Initializr包命自己命名。项目创建好后,修改`pom.xml`文件,引入Shiro和Thymeleaf。pom.xml文件如下:&lt;?xml version="1.0" encodin...原创 2019-03-03 22:15:53 · 228 阅读 · 0 评论