自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

【欢迎关注公众号:冬瓜白】

掉不尽的底子玩不尽的味,

  • 博客(26)
  • 资源 (2)
  • 收藏
  • 关注

原创 Linux C 编程基础之信号机制(一)

相关文章从 Java 程序优雅停机到 Linux 信号机制初窥在之前的一篇文章中简单分析了 Java 程序和 Linux 信号机制的处理。其中提到了 Linux 对信号的处理,但是感觉对这部分的理解还是不行,经过重新分析学习后,在这里进行记录。基本前提什么是信号首先看,什么是信号:信号(signal)是一种软件中断,它提供了一种处理异步事件的方法,也是进程间唯一的一步通信方式。这个是《Linux C 编程实战》的一段描述,要注意的就是不能直接说信号就是一种中断,只能说信号的响应..

2020-05-31 15:43:10 326

转载 Linux 下关于 printf 与 sleep 一起运行的困惑

问题是这样的:#include <stdio.h><br />int main()<br />{<br />while(1)<br /> {<br /> sleep(1);<br /> printf("hello/n");<br /> }<br />return 0;<br />} 运行成功,每隔一秒输出一个hello并换行~#include

2020-05-31 11:07:38 797

原创 Mac 屏幕色温一直变化

早上发现屏幕色温一直变化,找了好久,发现需要设置“关闭原彩显示”,这里记录下:

2020-05-29 09:36:20 8022 1

原创 BeanDefinitionStoreException: Failed to read candidate component class: URL [jar:file:/

今天处理一个历史老项目的时候,我修改了一个类,出现了这样的异常:[INFO]2020-05-28 15:27:48 [main] org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider.registerDefaultFilters(210) | JSR-330 'javax.inject.Named' annotation found and supported for component s

2020-05-28 15:36:52 1912 1

原创 自己动手调试 JDK(CLion)

相关文章从 Java 程序优雅停机到 Linux 信号机制初窥自己动手编译 JDK(MacOS)昨天已经可以自己编译 JDK 了。但是很明显还缺一个重要的环节,那就是调试 JDK。调试 JDK 有朋友说可以使用 GDB,但是对于我们应用层开发者来说,使用 IDE 进行调试可能会习惯点,而且交互更加友好。经过对比 VS Code、Xcode 和 CLion。最终选择了 CLion。CLion 官方下载地址:https://www.jetbrains.com/clion/在 CLion 中引入 O

2020-05-28 14:34:25 2303

原创 自己动手编译 JDK(MacOS)

相关文章从 Java 程序优雅停机到 Linux 信号机制初窥去年就尝试过自己编译 JDK,但是失败了,最近在分析 Java 虚拟机是如何处理 Linux 信号的时候,虽然大体流程清晰了,但是还是有很多方面无法理解,所以编译调试 JDK 势在必行。我的操作系统版本:macOS Catalina 10.15.5。安装 XCode 和 Commnad Line Tools for XCode这个应该是可以不安装的,但是为了避免出现依赖问题,我还是安装了。安装版本:11.5 (11E608c)。

2020-05-27 16:21:03 2394

转载 Dubbo 源码构建

代码签出通过以下命令可以签出最新的项目源码git clone https://github.com/apache/dubbo.git dubbo也可以在也可以直接在https://github.com/apache/dubbo上浏览源代码分支我们使用master作为主干版本开发,使用分支作为维护版本,可以通过https://github.com/apache/dubbo/tags来查看所有版本的标签构建dubbo使用maven作为构建工具官网要求:jdk:1.5以上:...

2020-05-26 09:26:43 360

转载 JVM安全退出(如何优雅的关闭java服务)

上线!重启!你还在为丢失任务而烦恼么?看这里看这里,从此不再丢任务,JVM可以安全退出的在交易流程中,为了提升服务的性能,我们做了一些异步化的优化,比如更新用户最近使用的收货地址、提单完成后通过MQ去发送各种通知类消息、清理用户的购物车等等这些操作,异步化加快了应用的响应速度同时也带来一个隐患,如何保障异步操作的执行?这个场景主要发生在应用重启时,对于通过线程或线程池进行的异步化,JVM重启时,后台执行的异步操作可能尚未完成。这时,需要通过JVM安全关闭来保证异步操作进行完成后,JVM再执行关闭。更广

2020-05-24 02:02:19 6772 1

原创 从 Java 程序优雅停机到 Linux 信号机制初窥

前不久,公司内部使用的一个 RPC 框架支持了优雅退出。优雅退出是很多框架非常重要的特征,在 Java 中是使用 Runtime.addShutdownHook 方法去注册关闭的钩子(Runtime 类代表了当前 JVM 进程的运行环境)。The Java virtual machine shuts down in response to two kinds of events:The program exits normally, when the last non-daemon thread

2020-05-24 01:57:06 864

转载 Linux 中 dig 命令返回结果解释

dig baidu.com 返回下面说明各项意义:; <<>> DiG 9.3.6-P1-RedHat-9.3.6-20.P1.el5_8.6 <<>> baidu.com;; global options: printcmddig程序的版本号,和要查询的域名Dig的部分输出告诉我们一些有关于它的版本信息(version 9.2.3)和全局的设置选项,如果+nocmd在命令行下是第一个参数的话,那么这部分输出可以通过加+nocmd的方式..

2020-05-23 00:53:05 1159

原创 Socket 基础之超时时间

平时经常会听到“连接超时”、“Socket 超时”,那么到底是什么超时呢。以我们目前内部使用的调度任务为例,有时候会收到这样的调度异常邮件:在 xxxx,Exception to request execution plan:java.net.SocketTimeoutException:connect timed out有时候会收到这样的:在 xxxx,Exception to request execution plan:java.net.SocketTimeoutException:Read

2020-05-23 00:36:12 8751

转载 关于IDEA 报Error:java:无效的源发行版13

很多相关的编译异常都可以按照这个方法处理。--------------------------------------------------------首先打开自己的项目,点击File–>Settings进入界面找到如图位置 并将相信应位置设置成自己的安装版本号,以我为列:1.8版本别忘了点击OK.下一步,点击File选择Project Structure…进入。继续(还是看自己的安装版本)继续(还是看自己的安装版本)设置完成后,别忘了ok.在运行下...

2020-05-22 09:35:55 1150

转载 MySQL 创建表的时候,添加字段注释

#创建表的时候写注释CREATE TABLE userinfo( id INT COMMENT '编号', uname VARCHAR(40) COMMENT '用户名', address VARCHAR(120) COMMENT '家庭住址', hobby VARCHAR(200) COMMENT '爱好' )COMMENT = '用户信息表'; #修改表的注释ALTER TABLE userinfo COMMENT '用户信息资料表'; #修改字段的注释,注意:字段名和字段类型.

2020-05-21 13:40:58 901

原创 Java 线程 UncaughtExceptionHandler 异常处理机制

先看一个例子:public static void main(String[] args) { try { new Thread(() -> { int i = 1/0; }).start(); }catch (Throwable e){ System.out.println("error..."); } }输出结果:Exception

2020-05-21 13:01:38 3464

原创 关于 Spring 中的 FactoryBean

一般我们会使用如 XML、@Bean、@Componet 等方式去注册,但是如果在 Bean 的实例化过程非常复杂,如有很多逻辑处理、层层依赖、复杂依赖等,这在第三方整合的时候尤为重要。FactoryBean 是 Spring 提供的基于接口编码的方式帮助我们向 Spring 容器中注册组件,相比注解和配置,更加灵活。最常见的比如 MyBatis 与 Spring 整合,这是从我之前学习 MyBatis 的笔记中截取的相关配置:FactoryBean 接口有三个方法:public interface

2020-05-20 12:43:21 358

转载 Spring 用了哪些设计模式?

1. 策略模式 2. 工厂方法模式 3. Builder模式 4. 小结 关于设计模式,如果使用得当,将会使我们的代码更加简洁,并且更具扩展性。本文主要讲解Spring中如何使用策略模式,工厂方法模式以及Builder模式。1. 策略模式关于策略模式的使用方式,在Spring中其实比较简单,从本质上讲,策略模式就是一个接口下有多个实现类,而每种实现类会处理某一种情况。我们以发奖励为例进行讲解,比如我们在抽奖系统中,有多种奖励方式可供选择,比如积分,虚拟币和现..

2020-05-15 22:07:57 382

转载 html 引入 icon 图标

http://www.iconfont.cn/我们引入icon都喜欢阿里的矢量图标库阿里的图标库也是可以下载为图片的当然下载图片不是我们想要的,我们想要的是字体第一种方法,本地使用首先我们选择自己想要的icon 添加入库点击下载代码,会自动下载一个压缩文件,解压之后将文件里的所有内容转移到自己项目的css文件夹下主要是文件中的iconfont.css文件,我们看看里面的内容给大家分析一下@font-face {font-family: "iconfo

2020-05-15 21:52:10 4679

原创 关于(历史)系统多租户设计的后续

相关文章:ThreadLocal 系列之 TransmittableThreadLocal基于 MyBatis 实现多租户数据隔离的实践因为某些原因,临近上线前我们调整了方案,即使用多数据源的方案去对系统进行多租户改造,这也是《基于 MyBatis 实现多租户数据隔离的实践》中与各位伙伴讨论的相对好的方案。这样改造过程平滑,两种方案(数据合并方案和多数据源方案)的风险、操作难度不在一个数量级。虽然多数据源方案相对简单很多,但还是要注意一些问题。这里将一些问题记录一下。(历史)系统多数据源配置

2020-05-14 16:38:40 407

转载 Mac 下 Visual Studio 设置中文

macOS 快捷键:command + shift + p输入搜索 configure language1.Ctrl+Shift+P 打开命令 2.搜索 Configure Display Language 将这里的“en”(英文)改为“zh-CN”(中文) 我这里版本是1.27需要自己去商店(marketplace)里下载语言包后再重启。 可通过上图注释中的网址进入商店,或直接访问 https://marketplace.visualstudio.com/search?targ...

2020-05-12 23:42:03 1667 1

原创 设计模式之简单工厂模式

简单工厂模式也叫静态工厂模式,不属于 GOF 23 种设计模式。这个模式其实很简单,但是我觉得从这个模式中学到的最重要的是要逐渐锻炼出“设计模式”的思维,即不要仅仅局限在一个类上面。这时候就要想起那道经典的面试题了:面向对象的三个基本特征?封装、继承、多态简单工厂模式就是将创建对象(产品)实例的过程交由工厂类去实现,即将 new 的过程进行了封装,工厂类根据传入的参数返回不同的产品实例,而这些产品实例有统一的父类。就好比现在有“某些场景下尽可能的少用 if else” 的说法,并不是说真的可以完全

2020-05-09 17:24:44 314

原创 简单使用 ZooKeeper 实现集群主备切换

昨天晚上看了一篇博客,作者实现了一个分布式的调度框架,其中支持两种集群模式,其中一种就是主备模式,是基于 ZooKeeper 实现的,这也是 ZooKeeper 很常见的应用场景,还没来得及看具体细节就去处理了一个线上问题,今天一直找不到那个博客链接。今天就尝试自己实现一下,本文会介绍两种实现方式(总体思想一致,部分细节有所差别)。这种主备模式首先需要从集群中选出 Master 节点,然后剩余节...

2020-05-05 22:25:19 4734

转载 关于Unable to read additional data from server sessionid 0x0问题的解决

今天搭建了一个zookeeper集群,分别为server1,server2,server3。# The number of milliseconds of each ticktickTime=2000# The number of ticks that the initial# synchronization phase can takeinitLimit=10# The...

2020-05-05 18:30:17 6167

原创 设计模式之模版模式

模版模式是我最喜欢的一个设计模式,也是最早尝试使用过的一个设计模式。根据《大话设计模式》中的描述:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模版方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。很关键的一点是算法,或者说函数的整体流程是不变的,但是部分流程是可变的、可扩展的,交由子类去实现。举一个简单的例子,比如考试,在系统中的流程是:系统创建考试 -&g...

2020-05-04 10:31:27 325

原创 设计模式之适配器模式

突然想到一句话:“软件开发不存在兼容问题,如果有问题,那么再加一层”。适配器模式应该是平时业务开发中无论是有意还是无意提到的比较多的一种设计模式。因为业务的变化是非常之快的,所以经常会出现“XXX 需要适配”一下,所以适配器模式也是个比较尴尬的模式,用的好,首先代码的复用性提高了,而且在对原有类不需改变或者改变不大的情况下可以扩展原有功能,从而快速完成新功能的开发,这是符合开闭原则的。但是如果用...

2020-05-04 00:23:20 406

原创 设计模式之迭代器模式

在《大话设计模式》是这么描述迭代器模式的:提供一种方法顺序访问一个聚合对象中各个元素,而又不暴露该对象的内部表示。这个描述有点文绉绉的,个人更喜欢后面的一段描述:当你需要访问一个聚集对象,而且不管这些对象是什么都需要遍历的时候,你就应该考虑迭代器模式。为遍历不同的聚集结构提供如开始、下一个、是否结束、当前哪一项等统一的接口。下面是在网上找的一张 UML 图相关链接见文末):[外...

2020-05-03 20:41:38 215

原创 理解 Spring Order 注解

我们都知道 @Order 是控制优先级的,越小优先级越高,那么问题来了,是控制什么的优先级呢(虽然不能太“杠”,但是个人认为有时候还是得咬文嚼字)。有博客(相关链接见文末)的说法是“注解 @Order 的作用是定义 Spring 容器加载 Bean 的顺序”,其相关示例如下:定义了三个 Bean:@Component@Order(1)public class Cat { ...

2020-05-02 09:20:56 1756 1

skywalking 6.5、6.6、6.6 es7 版本 tar 包

skywalking 6.5、6.6、6.6 es7 版本下载包,官方下载太慢。要注意如果连接 ES 7 记得下载 es7 版本

2021-02-04

IDEA查看Java运行代码的汇编指令工具

IDEA查看Java运行代码的汇编指令工具,将文件导入jre/bin中后,在IDEA中进行相关配置,即可查看汇编指令,具体方法可参看:https://blog.csdn.net/Dongguabai/article/details/82818120

2018-09-22

空空如也

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

TA关注的人

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