spring cloud
文章平均质量分 83
等那时夕颜
这个作者很懒,什么都没留下…
展开
-
spring cloud脚手架项目(十四)rocketmq使用事务消息
前言最近有看分布式的事务相关的内容。之前有配置过XA模式的分布式事务。然后又刚好看了有关rocketmq的最终一致性的相关方案。决定实践一下逻辑实现1、A 系统先发送一个 prepared 消息到 mq,如果这个 prepared 消息发送失败那么就直接取消操作别执行了;2、如果这个消息发送成功过了,那么接着执行本地事务,如果成功就告诉 mq 发送确认消息,如果失败就告诉 mq 回滚消息;3、如果发送了确认消息,那么此时 B 系统会接收到确认消息,然后执行本地的事务;4、mq 会自动定时轮询所有原创 2020-10-29 20:18:24 · 463 阅读 · 0 评论 -
spring cloud脚手架项目(十三)Fegin微服务应用之间请求追踪链路开发
前言在之前的一篇文章中,我写了一个aop日志打印的功能,通过注解的实现,可以让接口直接打印出入参和出参,并且在日志上添加uuid。因为当服务器的请求很多的时候,会发现日志都挤在一起,自己都不知道这个日志信息对应的调用链路的情况了。相关文章:spring cloud脚手架项目(五)日志模块之出入参数和日志链路追踪UUID2 实现效果上一篇文章的实现效果[430c8ee7-6d34-4414-8ccc-9042c4cc340c][2020-10-23 22:14:24.948][http-nio-87原创 2020-10-23 23:09:03 · 233 阅读 · 0 评论 -
spring cloud脚手架项目(十)简单好用的上下文写法
前言好久没更新之前的脚手架项目的文章了。其实我最近也写了蛮多的代码。在git记录里面可以看到,但是把demo转为实际的例子又需要一些语言表达,最近公司被迫9116,还没有补偿。也没什么心思写这个。最近准备重新准备一下面试,相对工作也会划水一点,打算把之前代码漏下的更新一下。介绍什么是上下文写法呢?想必在大家写代码的时候总会遇到,有一个逻辑特别复杂的代码。又是一线到底的逻辑,也不需要用到什么设计模式。但是就是复杂,判断多。一梭子写下来。一个方法500行。就想老太太的裹脚布,又臭又长。而且这种代码。刚写完原创 2020-10-19 22:42:04 · 375 阅读 · 1 评论 -
spring cloud脚手架项目(九)各层模型Pojo转换工具类BeanCopyUtil
前言编程中比较常见的问题就是controller层的DTO转为对应的数据操作层的DO。或者是在一系列service操作之后返回到controller层的DTO转换。或者是还需要把DTO转VO。模型介绍1、用户发出请求,表单的数据层被匹配为 VO2、展示层把 VO 转换为服务层对应方法锁要求的 DTO,传输给服务层3、服务层首先根据 DTO 的数据构造一个 DO,调用 DO 的业务方法完成具体业务4、服务层把 DO 转换为持久层对应的 PO,调用持久层持久化方法,把 PO 传递给它完成持久化操作原创 2020-05-15 20:37:49 · 432 阅读 · 0 评论 -
spring cloud脚手架项目(八)nacos动态配置中心接入以及json配置
前言上一篇我接入了rocketmq和redis,本次要接入的中间件是阿里的nacos,用于当做配置中心。关于nacos的安装可以参考我之前写过的docker 安装naocos的文件介绍nacos是阿里用于spring cloud体系下的一个突破吧,可以用作注册发现和配置中心,支持自动刷新配置,我个人更加喜欢他的自动刷新配置功能,比spring cloud 的config和bus的动态配置有更多用法。常见用法就是用于动态刷新配置。举例:有一个项目由一个新功能上线。我也不确定这个功能是否好用,我需要及时原创 2020-05-13 10:14:51 · 4413 阅读 · 2 评论 -
spring cloud脚手架项目(七)redis和rocketmq接入
前言上一篇讲到了工厂类和工厂类对应的使用。本篇则讲到了mq和redis的整合。在mysql负载不过来过多请求的时候,我们需要缓存,这时候就是redis登场的时候了。以及我们的请求需要削峰,降低请求压力。就需要mq,我们本地接入的是rocketmqrocketmq和redis的docker安装可以考察我之前的代码参考博客:redis:https://www.cnblogs.com/L-Wirepuller/p/11150742.htmlrocketmq:https://juejin.im/post/原创 2020-05-13 10:14:00 · 697 阅读 · 0 评论 -
spring cloud脚手架项目(六)spring boot全局异常捕获处理
前言上一章我们说了全局的aop日志处理和追踪UUID日志打印。这一节讲的是全局的异常捕获。代码中再也不需要填入无数的try catch这种无效代码来进行异常捕获,去抛出,返回对应的Spring mvc结果。都可以通过这节的代码来解决参考博客:https://www.cnblogs.com/xuwujing/p/10933082.html代码BaseException 自定义异常public class BaseException extends RuntimeException { pri原创 2020-05-12 10:35:37 · 334 阅读 · 0 评论 -
spring cloud脚手架项目(五)日志模块之出入参数和日志链路追踪UUID
前言之前4篇已经构建完成了一个基本的spring boot项目。换在我之前工作的时候,就是一个标准的SSM的Web项目了,已经可以配合数据库做一个单机Web后端服务器使用了。接下来需要开发的就是日志模块了。参考博客:https://www.cnblogs.com/quanxiaoha/p/10789843.htmlhttps://blog.csdn.net/xubin320121/article/details/93857126代码自定义Aop注解ParamsLogimport java.l原创 2020-05-12 10:33:56 · 473 阅读 · 0 评论 -
spring cloud脚手架项目(四)mybaits+druid多数据+atomikos分布式事务
前言本篇是我的spring cloud脚手架项目的第四篇。上篇讲的是feign接口。我们的spring boot项目已经可以做一个最基本的接口返回和微服务提供了。本篇讲的是所有项目常用的数据库相关配置的接入参考博客:https://blog.csdn.net/u012702547/article/details/103029910https://blog.csdn.net/m0_37809146/article/details/86673372https://blog.csdn.net/ypp91原创 2020-05-11 20:38:55 · 418 阅读 · 0 评论 -
spring cloud脚手架项目(三)feign接口调用
前言在结束技术选择和模块化项目搭建之后。我们的spring boot项目就可以启动了。这时候就需要聊到微服务的一个重大作用,RPC调用文章参考:feign问题处理:http://www.imooc.com/article/289005如何调用feign:https://segmentfault.com/a/1190000012496398feignfeign接口调用是spring cloud下常用的RPC调用,自带Spring Cloud Ribbon 与 Spring Cloud Hystri原创 2020-05-11 15:47:45 · 469 阅读 · 0 评论 -
spring cloud脚手架项目(二)模块化项目搭建以及maven分环境打包部署
前言个人从17年毕业,算上实习等等经历,也是机缘巧合,对于从零开始搭建项目这件事情在每一家公司都经历过了。到今天为止,也算是有点心得。现在就讲一下我从零开始搭建一个微服务应用的理解。模块化搭建现在的应用项目,都是追求一个模块化的概念,恰巧idea这个写代码工具的项目管理也是模块化的,和现在的情况如出一辙,很利于项目的管理。我觉得也是lide流行的原因之一吧。还有一个不得不提的就是maven的,他对于项目的构建非常重要,我在大学写java项目的时候,还需要自己去网上把jar包下载下来,完全不知道mav原创 2020-05-10 11:41:27 · 586 阅读 · 0 评论 -
spring cloud脚手架项目(一)技术选型
前言目前因为有些原因。也是因为自己上一家项目使用了spring cloud的技术栈,所以希望能自己搭建一个spring cloud相关的项目脚手架,也是对之前干的事情的一个总结吧。写一个项目的第一步是需要进行技术选型和中间件选择,下面我会列出我这个项目中需要用到的技术和项目。基本框架-spring cloud boot微服务的大旗下面的目前的选择我所熟悉的只有dubbo和spring cloud的,如文章所言,所以我选择的是spring cloud版本,spring cloud和boot之前有一个对应原创 2020-05-09 11:43:16 · 1725 阅读 · 1 评论 -
docker搭建eureka注册中心
eureka相关配置springboot yml配置server: port: 8761eureka: instance: hostname: localhost client: registerWithEureka: false fetchRegistry: false serviceUrl: defaultZone: http:/...原创 2020-04-28 16:05:58 · 1589 阅读 · 0 评论