自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

魂-淡

共同进步

  • 博客(329)
  • 收藏
  • 关注

原创 SpringBoot 集成 RocketMQ

RocketMQ 主要由 Producer、Broker、Consumer 三部分组成,其中 Producer 负责生产消息,Consumer 负责消费消息,Broker 负责存储消息。Broker 在实际部署过程中对应一台服务器,每个 Broker 可以存储多个 Topic 的消息,每个Topic 的消息也可以分片存储于不同的 Broker。消息中转角色,负责存储消息、转发消息。表示一类消息的集合,每个主题包含若干条消息,每条消息只能属于一个主题,是RocketMQ 进行消息订阅的基本单位。

2023-03-20 16:38:06 7219 1

原创 Spring Cloud Gateway Nacos 实现动态路由

微服务都是互相独立的,假如我们的网关和其他服务都在线上已经运行了好久,这个时候增加了一个微服务,这个时候要通过网关访问的话需要通过修改配置文件来增加路由规则,并且需要重启项目,所以我们需要实现动态路由。

2023-02-22 11:32:13 2086

转载 【转】12 个提升程序员软技能与效率的必备工具

提升效率的必备工具

2023-02-22 10:28:44 276

转载 【转】Spring Cloud Gateway 服务网关的部署与使用详细介绍

传统的单体架构中只需要开放一个服务给客户端调用,但是微服务架构中是将一个系统拆分成多个微服务,如果没有网关,客户端只能在本地记录每个微服务的调用地址,当需要调用的微服务数量很多时,它需要了解每个服务的接口,这个工作量很大。那有了网关之后,能够起到怎样的改善呢?简化客户端的工作。网关将微服务封装起来后,客户端只需同网关交互,而不必调用各个不同服务;降低函数间的耦合度。一旦服务接口修改,只需修改网关的路由策略,不必修改每个调用该函数的客户端,从而减少了程序间的耦合性。

2023-02-20 11:04:16 270

转载 【转】Java8 新特性之--CompletableFuture

ForkJoinPool是ExecutorSerice的一个补充,而不是替代品。JAVA8中CompeleteFuture、并发流等都是基于ForkJoinPool实现,默认并发数是CPU核数。

2023-02-03 17:24:51 501

转载 【转】面试必问:分布式事务六种解决方案

事务想必大家并不陌生,至于什么是 ACID,也是老生常谈了。不过暖男为了保证文章的完整性确保所有人都听得懂,我还是得先说说 ACID,然后再来介绍下什么是分布式事务和常见的分布式事务包括 2PC、3PC、TCC、本地消息表、消息事务、最大努力通知。可以看出 2PC 和 3PC 是一种强一致性事务,不过还是有数据不一致,阻塞等风险,而且只能用在数据库层面。而 TCC 是一种补偿性事务思想,适用的范围更广,在业务层面实现,因此对业务的侵入性较大,每一个操作都需要实现对应的三个方法。

2023-02-02 14:42:09 211

转载 【转】分布式事务:Seata

事务(Transaction)是访问并可能更新数据库中各种数据项的一个程序执行单元。在关系型数据库中,一个事务由一组sql语句组成。事务应该具有4个属性:原子性、一致性、隔离性、持久性。这四个属性通常被称为ACID特性。原子性(atomicity):一个事务是一个不可分割的工作单位,事务中包括的诸操作要么都做,要么都不做。一致性(consistency):事务必须是使数据库从一个一致性状态变到另一个一致性状态,事务的中间状态不能被观察到的。

2023-02-01 17:25:02 284

原创 Seata AT 模式事务隔离级别与全局锁设计

本地事务提交前,先拿到该记录的 全局锁 ,本地提交释放本地锁。我们知道 Seata 的事务是一个全局事务,它包含了若干个分支本地事务,在全局事务执行过程中(全局事务还没执行完),某个本地事务提交了,如果 Seata 没有采取任务措施,则会导致已提交的本地事务被读取,造成脏读,如果数据在全局事务提交前已提交的本地事务被修改,则会造成脏写。由此可以看出,传统意义的脏读是读到了未提交的数据,Seata 脏读是读到了全局事务下未提交的数据,全局事务可能包含多个本地事务,某个本地事务提交了不代表全局事务提交了。

2023-02-01 15:12:02 978

转载 【转】Android 7.0+模拟器Fiddler抓包详细教程

众所周知,假如设备是android 7.0+的系统同时应用设置targetSdkVersion >= 24的话,那么应用默认是不信任安装的Fiddler用户证书的,所以你就没法抓到应用发起的https请求,然后你在Fiddler就会看到一堆200 HTTP Tunnel to xxx.xxx.xxx:443的请求日志,这些都是没有成功抓取的https请求,下面重点介绍一下各种解决方案,相信总有一款解决方案适合你~

2023-02-01 11:09:31 2783

转载 【转】Spring Event,贼好用的业务解耦神器

spring event 实现业务解耦

2022-09-22 10:06:29 113

转载 【转】Redis 常见使用场景

例如:热点数据缓存(例如报表、明星出轨),对象缓存、全页缓存、可以提升热点数据的访问数据。String 类型,因为 Redis 是分布式的独立服务,可以在多个应用之间共享。List提供了两个阻塞的弹出操作:blpop/brpop,可以设置超时时间。list,双向链表,直接作为timeline就好了。老规矩,用 tags:i5001 来维护商品所有的标签。假如上面的微博ID是t1001,用户ID是u3001。

2022-09-16 14:49:06 123

转载 【转】正则表达式续

正则表达升阶

2022-09-14 16:49:27 102

转载 【转】正则表达式

本文旨在用最通俗的语言讲述最枯燥的基本知识。

2022-09-14 15:26:09 111

原创 使用 @JSONField 将字段类型转为 String

@JSONField

2022-08-30 15:35:23 3039 1

转载 【转】MapStruct 用法

org.mapstruct:mapstruct,它是专门用来处理 domin 实体类与 model 类的属性映射的

2022-08-30 11:42:36 2177

原创 Spring Cloud Alibaba Sentinel介绍和使用

随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 是面向分布式、多语言异构化服务架构的流量治理组件,主要以流量为切入点,从流量路由、流量控制、流量整形、熔断降级、系统自适应过载保护、热点流量防护等多个维度来帮助开发者保障微服务的稳定性。轻量级的流量控制,熔断降级Java库。除了流量控制以外,降低调用链路中的不稳定资源也是 Sentinel 的使命之一。由于调用关系的复杂性,如果调用链路中的某个资源出现了不稳定,最终会导致请求发生堆积。

2022-08-03 16:38:04 2475

原创 SpringBoot 异步使用@Async原理及线程池配置

所谓异步任务,其实就是异步执行程序,有些时候遇到一些耗时的的任务,如果一直卡等待,肯定会影响其他程序的执行,所以就让这些程序需要以异步的方式去执行。那么下面就来介绍Spring Boot 如何实现异步任务。Spring中用@Async注解标记的方法,称为异步方法。在spring boot应用中使用@Async很简单:调用异步方法类上或者启动类加上注解@EnableAsync在需要被异步调用的方法外加上@Async所使用的@Async注解方法的类对象应该是Spring容器管理的bean对象注解配

2022-05-10 16:37:30 7775

原创 Windows 下载安装 Seata

本案例演示的seata 版本为 v1.4.2相较于之前的版本,v1.4.2 版本支持从一个 Nacos dataId中获取到配置信息,不需要像之前版本那样子需要上传几十个配置项了一.下载seata下载地址:https://github.com/seata/seata/releases或者是这个下载地址:https://seata.io/zh-cn/blog/download.html一共需要下载两个包,一个是源码的压缩包,一个是已经编译好的压缩包二.seata安装和配置编译包解压后的目.

2022-04-21 13:54:09 10619 3

原创 Windows 下载安装 SonarQube和使用

一.SonarQube简介SonarQube是一个开源的代码质量管理系统,可用来快速定位代码中的Bug、漏洞以及不优雅的代码。它支持几乎所有的常见编程语言,例如Java、JavaScript、TypeScript、Kotlin、Ruby、Go, Scala等。并且还有插件机制,利用插件,可以让SonarQube更加强大,例如可以整合Findbugs、PMD、Checkstyle等。可以说,SonarQube是一款提升项目代码质量必备的工具。二.下载前往 https://www.sonarqube.or

2022-04-18 17:12:59 7772

原创 OpenFeign介绍和使用注意

FeignClient注解的使用介绍value,namevalue 和 name 的作用一样,如果没有配置url那么配置的值将作为服务名称,用于服务发现。反之只是一个名称。serviceIdserviceId已经废弃了,直接使用name即可。contextId比如我们有个user服务,但user服务中有很多个接口,我们不想将所有的调用接口都定义在一个类中,比如:Client 1@FeignClient(name = "optimization-user")public interface

2022-03-28 17:23:04 5925 4

原创 MySQL5.7开启 binlog

前言binlog日志,即binary log,是二进制日志文件。它有两个作用,一是增量备份,即只备份新增的内容;二是用于主从复制等,即主节点维护了一个binlog日志文件,从节点从binlog中同步数据开启步骤1. Linux下1.登录MySQLmysql -h 127.0.0.1 -u root -p输入密码2. 查看状态show variables like '%log_bin%';目前是:未开启状态3.创建目录和设置权限组mkdir /usr/local/mysql/lo

2022-03-28 13:32:21 12814 3

原创 开源SQL审核查询平台Archery-基于docker安装

一.Archery产品介绍在技术团队内部进行有效的 SQL 管理并不容易,如何进行数据库的统一管理,和线上 SQL 操作的统一审核,变得尤为重要。Archery,这个开源的 SQL 审核查询平台,或许能为 SQL 审核工作带来不小的效率提升。一条高质量的 SQL 语句能使整个服务加速好几倍,而一条有问题的 SQL 则可能会引发灾难,造成严重后果,因此,数据库管理人员的工作就十分重要了,他们掌握着千百万数据的命运。简介Archery,是 hhyo 在 Github 上开源的 SQL 审核查询平台,项目

2022-03-25 14:29:34 5566 1

转载 【转】Centos7下安装Docker

一.Docker简介百科说:Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。看起来有点雾,用过虚拟机的应该对虚拟化技术有点印象,不知道也没关系,就把它当成轻量级的虚拟机吧(虽然一个是完全虚拟化,一个是操作系统层虚拟化),这个解释到位:https://www.cnblogs.com/kex1n/p/6933039.html百科又说:Docker 使

2022-03-25 11:55:32 85

转载 【转】SSH如何访问局域网内其它主机上的NAT网络模式下的虚拟机

需求说明情况是这样的,笔者有两台电脑,windows10笔记本(主机A)和windows10台式机(主机B)且在同一局域网下。同时有Ubuntu系统(主机C)运行在主机B的VMware虚拟机上。现在想在主机A上通过ssh访问主机C。当前网络配置:主机A:IP=10.4.0.199主机B:IP=10.4.0.195主机C:IP=192.168.75.129VMware 虚拟机为NAT模式,ping命令测试:AB通,BC通,AC不通。VMware网络模式Host-only模式下虚拟机不能访问外

2022-03-09 19:42:03 1380

转载 【转】VMware Workstation pro 无法在Windows上运行问题解决

在Windows 10 下安装 Vmware 时遇到的问题和解决,记录一下问题:解决方法:添加注册表内容1. 打开注册表编辑器2.复制路径填入HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags3.新建->填入3.1. 复制引号内的部分以及后面的数字填入“{3d9912c3-cb54-4f34-ab71-1d429553bf96}”=dword:00000077(数据填写 77

2022-03-09 19:33:48 2866

原创 centos7设置默认启动界面

centos7设置默认启动界面为字符界面或者图形界面字符界面:systemctl set-default multi-user.target图形界面:systemctl set-default graphical.target

2022-03-09 19:21:21 1130

原创 $.ajax 中关于get、post 与@RequestBody和@RequestParam使用注意

$.ajax里关于get、post的@RequestBody和@RequestParam使用注意1、在GET请求中,不能使用@RequestBody。因为往GET请求里加body是不符合规范的,不保证所有的实现都支持,所以在ajax 里注意请求方式如果用 get 后端参数不能用 @RequestBody 来接收它。(所以本人在 ajax ,或者什么表单,一般爱好用post,既安全,又能解决中文乱码问题)2、在POST请求,可以使用@RequestBody和@RequestParam,但是如果使用@Req

2021-08-27 11:10:28 5273 1

原创 @PostConstruct 注解,解决工具类静态方法需要依赖注入

@PostConstruct 介绍@PostConstruct注解好多人以为是Spring提供的。其实是Java自己的注解。此注解是在Java EE5规范中加入的,在Servlet生命周期中有一定作用,它通常都是一些初始化的操作,但初始化可能依赖于注入的其他组件,所以要等依赖全部加载完再执行。Java中该注解的说明:@PostConstruct该注解被用来修饰一个非静态的 void()方法。被@PostConstruct修饰的方法会在服务器加载Servlet的时候运行,并且只会被服务器执行一次。Pos

2021-08-27 10:26:32 2977

转载 【转】Java8 函数式编程详解

1.Java函数式编程的语法:使用Consumer作为示例,它是一个函数式接口,包含一个抽象方法accept,这个方法只有输入而无输出也就是说这个方法无返回值。现在我们要定义一个Consumer接口的实例化对象,传统的方式是这样定义的:public static void main(String[] args) { //JDK1.8版本之前的做法 Consumer<Integer> con = new Consumer<Integer>() { @Override

2021-05-08 18:36:57 2357

转载 【转】SpringBoot&Shiro实现权限管理

一、数据库模板设计在本文中,我们使用RBAC(Role-Based Access Control,基于角色的访问控制)模型设计用户,角色和权限间的关系。简单地说,一个用户拥有若干角色,每一个角色拥有若干权限。这样,就构造成“用户-角色-权限”的授权模型。在这种模型中,用户与角色之间,角色与权限之间,一般者是多对多的关系。如下图所示:然后我们在来根据这个模型图,设计数据库表,记得自己添加一点测试数据哦CREATE TABLE `tb_permission` ( `id` int(11) NOT

2020-08-18 18:18:52 261

转载 【转】SpringBoot整合Spring Security——常见问题处理

spring security 常见问题处理

2020-08-18 15:59:36 899 1

转载 【转】面试题思考:什么是基于注解的切面实现?(AOP是Aspect Oriented Program的首字母缩写)

首先解释下AOP :在程序运行时,动态的将代码切入到类的指定方法、指定位置上的编程思想就是面向切面编程一般而言,我们管切入到指定类指定方法的代码片段为切面,而切入的哪些类、哪些方法则叫切入点。有了AOP,我们就可以把几个类共有的代码,抽取到一个切片中,等到需要时在切入对象中去,从而改变其原有的行为。AOP就是OOP的补充而已。OOP从横向上区分出一个个类来,而AOP则从纵向上向对象加入特定的代码。有了AOP,OOP变得立体了,如果加上时间维度,AOP使OOP从二维变成三维。从技术上来说,AOP基本上

2020-08-18 11:02:27 226

转载 【转】springboot项目的maven的pom.xml文件第一行报错 Unknown Error

原因 : maven的插件版本的问题,造成与IDE的不兼容解决办法 :在pom中加上 <maven-jar-plugin.version>3.1.1</maven-jar-plugin.version>就可以了 <properties> <java.version>1.8</java.version> <spring-cloud.version>Greenwich.SR1</spring-clo

2020-08-18 10:52:55 410

转载 【转】Mybatis 查询返回 List 集合

返回List集合时,需要将resultType的值定义为集合中元素类型,而不是返回集合本身。有时候,我们不需要整个表的所有字段,而是只需要某一个字段的内容,比如:我希望从资产表中查出所有资产的名称,并且不存在重复。 <select id="groupNameList" resultType="java.lang.String"> SELECT `asset_name` FROM `asset` group by `asset_name` </select>看到代码有的小

2020-08-18 10:50:19 14702 1

转载 【转】Spring 中使用@DateTimeFormat 和 @JsonFormat 注解

1、准备定义一个pojo,它有一个 java.util.Date 类型的属性 date。import java.util.Date; public class DateVo { private Date date; public void setDate(Date date){ this.date = date; } public Date getDate(){ return date; }}定义一个Controlle

2020-08-18 10:35:08 469

转载 【转】@Transactional事务几点注意

这里面有几点需要大家留意:A. 一个功能是否要事务,必须纳入设计、编码考虑。不能仅仅完成了基本功能就ok。B. 如果加了事务,必须做好开发环境测试(测试环境也尽量触发异常、测试回滚),确保事务生效。C. 以下列了事务使用过程的注意事项,请大家留意。不要在接口上声明@Transactional ,而要在具体类的方法上使用 @Transactional 注解,否则注解可能无效。不要图省事,将@Transactional放置在类级的声明中,放在类声明,会使得所有方法都有事务。故@Transaction

2020-08-18 10:18:28 381

转载 【转】spring boot-mybatis plus 多数据源

1.基本介绍(1)dynamic-datasource-spring-boot-starter 是一个基于 springboot 的快速集成多数据源的启动器。其支持 Jdk 1.7+,SpringBoot 1.4.x 1.5.x 2.0.x。注意:该插件可以不依赖 MyBatis-Plus,可以独立使用。(2)它主要用于读写分离,一主多从的环境。(当然也可以纯粹当成多库使用)一主多从的环境下数据库分工:主数据库建议只执行 INSERT、UPDATE、DELETE 操作。从数据库建议只执行 SE

2020-07-27 14:10:44 1068 2

转载 【转】Spring Security 两种资源放行策略,千万别用错了

Spring Security 中,到底该怎么样给资源额外放行?

2020-07-27 11:37:25 2497 1

转载 【转】Spring注解@EnableWebMvc使用坑点解析

通过注解的方式来进行Spring4 MVC开发时,我们都会在配置文件中加入<mvc:annotation-driven> 标签,这个配置会自动注册了一个 RequestMappingHandlerMapping、一个RequestMappingHandlerAdapter、以及一个ExceptionHandlerExceptionResolver 以支持使用注解Controller的注解方法(如**@RequestMapping**、@ExceptionHandler)来处理reques..

2020-07-27 10:32:29 313

转载 【转】理解Cookie和Session的区别和使用

前言HTTP 是一种无状态的协议,为了分辨链接是谁发起的,需要自己去解决这个问题。不然有些情况下即使是同一个网站每打开一个页面也都要登陆一下。而Session 和Cookie 就是为了解决这个问题而提出来的两个机制。应用场景登陆网站,今天输入用户名密码登录了,第二天再打开很多情况下就直打开了。这个时候用到的一个机制就是cookie。session 一个场景是购物车,添加了商品之后客...

2020-04-17 15:06:12 231

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除