pyd950812
码龄7年
关注
提问 私信
  • 博客:159,373
    159,373
    总访问量
  • 59
    原创
  • 1,491,203
    排名
  • 16
    粉丝
  • 0
    铁粉

个人简介:实战

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:上海市
  • 加入CSDN时间: 2017-08-25
博客简介:

pyd950812的博客

查看详细资料
个人成就
  • 获得65次点赞
  • 内容获得9次评论
  • 获得141次收藏
创作历程
  • 2篇
    2023年
  • 4篇
    2022年
  • 8篇
    2020年
  • 40篇
    2019年
  • 7篇
    2018年
  • 1篇
    2017年
成就勋章
TA的专栏
  • Java
    12篇
  • 面试
    3篇
  • 工具
  • sql
    1篇
  • 并发
    1篇
  • mybatisPlus
    1篇
  • docker
    1篇
  • spring data
  • kafka
  • kotlin
    1篇
  • linux
    3篇
  • 缓存
    1篇
  • redis
    2篇
  • cap
  • 锁
    1篇
  • es
    1篇
  • 多数据源
  • git
    1篇
  • Spring
    10篇
  • mybatis
    4篇
  • maven
    1篇
  • mq
    5篇
  • excel
    1篇
创作活动更多

如何做好一份技术文档?

无论你是技术大神还是初涉此领域的新手,都欢迎分享你的宝贵经验、独到见解与创新方法,为技术传播之路点亮明灯!

342人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

mysql Left Join on条件 where条件的用法区别

执行结果。
原创
发布博客 2023.08.22 ·
342 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Spring-Retry实现及原理

重试,其实我们其实很多时候都需要的,为了保证容错性,可用性,一致性等。一般用来应对外部系统的一些不可预料的返回、异常等,特别是网络延迟,中断等情况。还有在现在流行的微服务治理框架中,通常都有自己的重试与超时配置,比如dubbo可以设置retries=1,timeout=500调用失败只重试1次,超过500ms调用仍未返回则调用失败。如果我们要做重试,要为特定的某个操作做重试功能,则要硬编码,大概逻辑基本都是写个循环,根据返回或异常,计数失败次数,然后设定退出条件。
原创
发布博客 2023.06.02 ·
1639 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

Java常用设计模式

Java23种设计模式
原创
发布博客 2022.11.23 ·
455 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

设计模式分享

Java常用设计模式介绍
原创
发布博客 2022.10.17 ·
469 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

MySQL特性两次写(double write)的在故障恢复时几种情况的分析【双写】【doublewrite buffer】

msql
原创
发布博客 2022.09.06 ·
394 阅读 ·
1 点赞 ·
3 评论 ·
2 收藏

Redis集群方案

redis集群整理
原创
发布博客 2022.08.02 ·
201 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

设计模式之观察者模式

一、观察者模式 观察者模式(Observer),又叫发布-订阅模式(Publish/Subscribe),定义对象间一种一对多的依赖关系,使得每当一个对象改变状态,则所有依赖于它的对象都会得到通知并自动更新。UML结构图如下: 其中,Subject类是主题,它把所有对观察者对象的引用文件存在了一个聚集里,每个主题都可以有任何数量的观察者。抽象主题提供了一个接口,可以增加和删除观察者对象;Observer类是抽象观察者,为所有的具体观察者定...
原创
发布博客 2020.07.06 ·
250 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Apache RocketMQ源码学习之生产者发送消息

一、消息发送方式RocketMQ 支持常见的三种发送方式:SYNC、ASYNC、ONEWAYSYNC : 同步的发送方式,会等待发送结果后才返回。ASYNC : 异步的发送方式,发送完后,立刻返回。ONEWAY : 发出去后,什么都不管直接返回。二、RocketMQ生产者发送消息流程...
原创
发布博客 2020.06.04 ·
283 阅读 ·
1 点赞 ·
0 评论 ·
1 收藏

Apache RocketMQ源码学习之生产者启动

一、RocketMQ核心组件以及关系核心组件: producer:消息生产者,生产者的作用就是将消息发送到 MQ producer group:生产者组,简单来说就是多个发送同一类消息的生产者称之为一个生产者组 consumer :消息消费者,简单来说,消费 MQ 上的消息的应用程序就是消费者 consumer group:消费者组,和生产者类似,消费同一类消息的多个 consumer 实例组成一个消费者组 topic:是一种消息的逻辑分类 message : Message 是...
原创
发布博客 2020.06.04 ·
432 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

SpringBoot使用Sharding-JDBC分库分表实战

一、准备工作1.准备两个database、4张table二、引入相关maven <!-- druid --> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.9</ve.
原创
发布博客 2020.05.28 ·
656 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

设计模式之责任链模式

概念职责链模式(Chain of Responsibility)使多个对象都有机会处理同一个请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。责任链设计模式中的角色Handler抽象处理者(定义一个处理请求的接口,接口可以定义出一个方法,以设定和返回对下家的引用。通常由一个抽象类或接口实现)Concrete Handler具体处理者(具体请求者在接受到请求后,如果满足条件则自己处理请求,否则将请求传.
原创
发布博客 2020.05.19 ·
218 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

记一次Java并发本地内存、主内存相关

一、先上一段代码:package com.wx.wxjob;public class Test { public static void main(String[] args) { Aobing a = new Aobing(); a.start(); for (; ; ) { if (a.isFl...
原创
发布博客 2020.05.08 ·
259 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

代码优化之抽象类的引入

一、场景 场景:有个给不同类型的数据打上标签的功能。不同数据类型生成的标签规则不一样。二、编码实现1、首先定义一个抽象类(统一需要实现的方法)/** * FileName: AbstractMakeTagHandler * Author: pengyd * Date: 2020/3/13 * function: */public abstract clas...
原创
发布博客 2020.03.13 ·
280 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

SpringBoot项目整合Vue

一、首先需要安装vue所需环境以及基本项目架构(自行百度)vue项目架构如图:二、需要改动的页面App.vue<template> <div id="app"> <img src="./assets/logo.png"> <router-view/> </div></templa...
原创
发布博客 2019.12.31 ·
287 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

catch中为什么不建议使用e.printStackTrace

为什么尽量不用e.printStackTrace直接用e.printStackTrace来打印日志有错吗?当然不错,但是不好。主要原因有以下几点:1、占用太多内存,造成锁死要打印字符串输出到控制台上,需要字符串常量池所在的内存块有足够的空间。然而,因为e.printStackTrace() 语句要产生的字符串记录的是堆栈信息,太长太多,内存被填满了!大量线程产出字符串产出到一半,等待有...
原创
发布博客 2019.12.26 ·
3043 阅读 ·
3 点赞 ·
1 评论 ·
8 收藏

利用反射重构代码

一、需求先看代码:两个方法几乎一模一样,唯一的区别就是传入的对象不同二、改造利用反射,将对象映射成map,看代码:public Map<String, Object> class2Map(Object obj) { Class aClass = obj.getClass(); Field[] declaredFields = a...
原创
发布博客 2019.12.26 ·
399 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

阿里RoceketMQ使用

一、配置文件#该应用是否启用生产者rocketmq: producer: isOnOff: on #发送同一类消息的设置为同一个group,保证唯一,默认不需要设置,rocketmq会使用ip@pid(pid代表jvm名字)作为唯一标示 groupName: ${spring.application.name} #mq的nameserver地址 ...
原创
发布博客 2019.12.26 ·
590 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

工厂+策略模式消除if-else

需求代码改造:JSONArray result = new JSONArray(); switch (code) { case SUBJECT_IFACE_CODE: for (int i = 0, size = values.size(); i < size; i++) { ...
原创
发布博客 2019.12.26 ·
555 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

优雅的消除代码中的if-else

需求假设有这么一个需求:一个电商系统,当用户消费满1000 金额,可以根据用户VIP等级,享受打折优惠。根据用户VIP等级,计算出用户最终的费用。 普通会员 不打折 白银会员 优惠50元 黄金会员 8折 白金会员 优惠50元,再打7折 编码实现private static double getResult(long money, int ty...
原创
发布博客 2020.03.10 ·
632 阅读 ·
0 点赞 ·
2 评论 ·
2 收藏

SQL中关于IN和EXISTS的用法

一、执行历程sql语句:select * from student s where EXISTS(select stuid from score ss where ss.stuid = s.stuid)执行顺序: (1)先执行:select * from student s (2)再执行:EXISTS(select stuid from score ss where ss.st...
原创
发布博客 2019.11.25 ·
647 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏
加载更多