自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

董广明的博客

好记性不如个烂笔头<br>学的越多,懂得就越少<br>https://github.com/dongguangming

  • 博客(108)
  • 资源 (1)
  • 收藏
  • 关注

原创 分布式事务

事务()是操作数据库中某个数据项的一个程序执行单元(unit)。事务应该具有4个属性:原子性、一致性、隔离性、持久性。这四个属性通常称为ACID特性。对于分布式系统而言,需要保证分布式系统中的数据一致性,保证数据在子系统中始终保持一致,避免业务出现问题。分布式系统中对数要么一起成功,要么一起失败,必须是一个整体性的事务。分布式事务指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上。

2023-12-31 22:15:00 1197

原创 高并发网络连接之IO多路复用 select/poll/epoll

select/poll/epoll 是 Linux 服务器提供的三种处理高并发网络请求的 IO 多路复用技术

2023-12-20 07:00:00 1006

原创 容器技术Linux Namespaces和Cgroups

其实容器的底层原理并不难,本质上就是一个特殊的进程,特殊在为其创建了 NameSpace 隔离运行环境,用 Cgroups 为其控制了资源开销,这些都是站在 Linux 操作系统的肩膀上实现的,包括 Docker 的镜像实现也是利用了 UnionFS 的分层联合技术。Linux Namespace和Cgroup。

2023-09-02 22:30:00 1763 1

原创 Spring boot如何工作

越来越方便了java技术生态发展近25年,框架也越来越方便使用了,简直so easy!!!我就以Spring衍生出的Spring boot做演示,Spring boot会让你开发应用更快速。快速启动spring boot 请参照官网https://spring.io/quickstart代码如下:@SpringBootApplication@RestControllerpublic class SpringBootTestApplication { public stati...

2023-08-25 15:30:00 660

原创 Java之AbstractQueuedSynchronizer

请先拜读下老外的paperhttp://gee.cs.oswego.edu/dl/papers/aqs.pdf参考: AbstractQueuedSynchronizer.javahttp://www.docjar.com/html/api/java/util/concurrent/locks/AbstractQueuedSynchronizer.java.html Class AbstractQueuedSynchronizerhttps://docs.oracle.com...

2023-08-25 10:31:52 224

原创 工作时使用redis,kafka查阅的资料链接

redis, kakfa

2023-08-15 23:58:02 1342

原创 安装bpftrace遇到的坑

与时俱进,因为很多高级特性其实是内核提供的,而非某语言或框架前提先按我的文章:在centos7上升级linux kernel到5系列https://blog.csdn.net/dong19891210/article/details/113750557, 升级下内核。参考: How To Install GCC on CentOS 7https://linuxhostsupport.com/blog/how-to-install-gcc-on-centos-7/ ...

2021-05-09 14:28:35 1634 1

原创 SOFABoot扩展@sofaservice

项目需要,使用了SOFABoot,它是蚂蚁金服开源的基于 Spring Boot (当然它是建立在spring 之上)的研发框架,使用过程中,发现很多个服务注册时有些慢,特别是测试时,其实我只想测试一两个服务,那么程序启动时我根本就不需要注册那么多服务,测试时按需注册、个性化,钉钉上问了相关工作人员,他们说没有,我只能自己实现了。1. 首先去github上把源码下载下来,地址:https://github.com/sofastack/sofa-boot导入到开发工具,看个人情况是eclipse...

2021-04-10 15:06:52 3071

原创 kafka为啥这么快?

1. 前言我们知道网络和IO(Input Output)是最基本的功能。可以简单回顾下读写文件的过程:1.1 读文件就以java读文件演示java程序发起 read文件请求之后,内核接收到 read 请求之后,会先检查内核空间中是否已经存在进程所需要的数据,如果已经存在,则直接把数据 copy 给进程的应用缓冲区。如果没有内核随即向磁盘控制器发出命令,要求从磁盘读取数据,磁盘控制器把数据直接写入内核 read 缓冲区,这一步通过 DMA完成。接下来就是内核将数据 ...

2021-01-27 17:06:05 692

原创 动态修改java线程池运行参数

曾看到过一篇写文章Java线程池实现原理及其在美团业务中的实践 ,有个问答是这样的一开始传给线程池的最大值是把运行时的线程池线程最大数量改掉了(从2改为了6)。当然你可以结合其他技术写自适应算法(不够则加,空闲多则减)。也当然有其他方式更改运行参数。担心很多后来码农没有读过以前的很多文献(不是短暂性流行框架),特别是sun公司。框架会过时,但理论很难过时,会进化,但底层能大改吗!!!参考:略...

2021-01-10 14:49:42 973

原创 Java代理模式

参考:Dynamically implement an Interfacehttps://www.logicbig.com/tutorials/core-java-tutorial/java-dynamic-proxies/runtime-interface-implementation.htmlObject Adapter based on Dynamic Proxyhttps://www.artima.com/weblogs/viewpost.jsp?thread=109017...

2020-12-09 01:55:46 282

转载 可视化JVM中的内存管理

<script async class="speakerdeck-embed" data-id="f4783404769145f4b990154d0cc05629" data-ratio="1.77777777777778" src="//speakerdeck.com/assets/embed.js"></script>

2020-12-01 18:11:19 544

原创 这些能力,是书本上学不到的

引导语:如今这个年代,在社会、在学校、在班里、在家庭、在很多地方,竞争都无处不在。那如何让我们在竞争中生存和发展呢?接下来,我们从学生时代和工作以后这两方面介绍一下应该怎样提高能力?提高哪些方面能力?从而更加适应竞争!【学生时代应该具备的能力】1、解决问题时的逆向思维能力面对工作中遇到的新问题,一时又找不到解决方法。而且,上司可能也没有什么锦囊妙计时,他们擅长用逆向思维办法去探索解决问题的途径。他们清楚具体业务执行者比上司更容易找出问题的节点,是人为的,还是客观的;是技术问题,还是管...

2020-11-29 14:24:20 719 1

原创 Java8 Streams流

参考:Java 8 Centralhttps://www.oracle.com/java/technologies/java8.html Java 8 Streamhttps://www.runoob.com/java/java8-streams.html Java 8 特性 – 终极手册http://ifeve.com/java-8-features-tutorial/ Java 8 中的 Streams API 详解 https://developer.i...

2020-11-28 15:09:27 521

原创 java中对象排序

最近老有人问我数据排序的问题,我就总结下我是怎么给数据排序的,注意数据不一定来源于数据(实际上大部分情况来源于数据库检索),个人经历排序分三类:第一类:直接通过sql语句sql样本create table ZHJDKP_CODE_TABLES( ID NUMBER(20) not null, TYPEID NUMBER(20) not null, VALUE VARCHAR2(100), CODE VARCHAR2(200), YXBZ VARCH.

2020-11-26 05:04:20 790

原创 编程感悟总结一

温故而知新上午学习总结完毕(好久都没手写过这么多字了,想必到了我这编码段,编程也只剩下操作系统和网络(协议)了)对我编程生涯有影响的几本书:下午进城入市(要过明城墙中华门才算)...

2020-11-15 12:31:16 327

原创 1024码农出售书籍

30多岁了,已得道,故出售部分书籍,多买多送!!!

2020-10-28 09:29:06 379

原创 MyBatis中一个SQL语句的执行过程解析

MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。平时用MyBatis框架开发时,配置好config.xml和mapper.xml映射文件和定义好java接口,就可以操作数据库了mybatis配置文...

2020-10-19 19:22:53 821

原创 Java中的SPI是怎么一回事

参考:Spring-SpringFactoriesLoader详解https://msd.misuland.com/pd/2884250137616453978探讨注解驱动Spring应用的机制,详解ServiceLoader、SpringFactoriesLoader的使用(以JDBC、spring.factories为例介绍SPI)https://cloud.tencent.com/developer/article/1497777Java Code Examples for org....

2020-10-14 23:35:03 327 1

原创 SpringBoot扩展点之EnvironmentPostProcessor

参考:Customize the Environment or ApplicationContext Before It Startshttps://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#howto-customize-the-environment-or-application-context10分钟搞懂SpringBoot的组件EnvironmentPostProcessor使用和原理https://...

2020-10-13 12:49:11 18245 3

原创 常用linux命令汇总(二)

继 常用linux命令汇总(一)https://blog.csdn.net/dong19891210/article/details/108896026下面编写其他的命令13. 文本处理grep grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。grep全称是GlobalRegularExpressionPrint,表示全局正则表达式版本,它的使用权限是所有用户。grep的工作方式是这样的,它在一个或多个文件中搜索字符串模板。如...

2020-10-12 17:49:26 596

原创 编程人生回忆录第一部

国庆放假期间,写了两篇总结:常用linux命令汇总(一) https://blog.csdn.net/dong19891210/article/details/108896026Spring框架@Autowired注解 https://blog.csdn.net/dong19891210/article/details/108920894温故了:加利福尼亚大学伯克利分校开放课程.操作系统和系统编程 https://www.ixigua.com/6880818501678...

2020-10-09 14:01:39 202

原创 Spring框架@Autowired注解

看到网上很多人在讨论spring里的几个注解@Autowired, @Resource, @Inject,有时面试也会问,其实没什么用,开发时谁关心呢,好比学习考驾照前,背题目、参加测验,可一旦拿了证就忘了很多交通规则,也好比考研前学习马列主义、毛泽东思想等,考上后就忘得差不多了。请先阅读下Java反射https://blog.csdn.net/dong19891210/article/details/106053065,一个Spring Bean从无到有的过程https://...

2020-10-06 05:39:34 2575

原创 常用linux命令汇总(一)

在it行业工作十年有余,由于我们实际部署运行的软件环境是linux,故把经常用的linux命令记录下来,且由于使用的linux系统有差异(早年是2011年Ubuntu,freebsd,centos),我就以这几年一直使用的centos为例总结以前常用命令。前提安装一台装有centos的电脑,略cd目录切换在linux文件系统上,你可以使用切换目录命令cd来将shell会话切换到另一个目录。cd命令的格式很简单:cd 目录名称cd命令可带单个参数即目录名称。如果用户没有为cd指定目.

2020-10-03 14:50:00 453

原创 码农开发资料集

下面是我董广明多年工作和学习过程中收集到的关于开发的资料集,免费供出(有的都是我花币买的,如今免费给所有新秀们)java:https://github.com/dongguangming/java开发资料:https://github.com/dongguangming/dgm-collection后续会慢慢上传其他。技术不为我所有,但要为我所用!!!...

2020-08-03 20:09:20 290

原创 Centos7安装RabbitMQ

0. 环境准备安装操作系统centos7,并做一些基础性配置,详细看参考11.安装erlangrabbitmq是使用erlang语言编写的,所以需要先安装erlang环境(类比消息队列activemq、rocketmq需要安装java环境一样)。另外rabbitmq对于erlang的版本是有要求的,请参考:RabbitMQ Erlang Version Requirements特别注意此时此刻我用的rabbitmq版本3.6.15,故需要对应的erlang版本是19.3~20...

2020-07-27 08:27:27 352

原创 Golang学习系列第七天:操作Redis

0 redis安装请参考Redis备忘录1. golang操作redis切换到golang工作目录,新建项目redis,然后建立连接redis的文件[root@master src]# pwd/dongguangming/goworkspace/src[root@master src]# mkdir redis[root@master src]# cd redis/[root@master redis]# touch redis-conn.go编辑redis-conn.g...

2020-07-26 14:57:36 476

原创 Golang学习系列第六天:操作MongoDB

0.ssh连接linux(我用的centos7),略1.MongoDB下载可以直接到MongoDB官网https://docs.mongodb.com/manual/tutorial/install-mongodb-on-red-hat-tarball/根据样板安装:,可根据自己的电脑操作系统下载对应的版本,我下载的是mongodb-linux-x86_64-4.0.0.tgz安装包,不过也可以直接点击下面这个链接直接下载 https://fastdl.mongodb.org/linux/mo...

2020-07-24 23:05:52 731

原创 PostgreSQL数据分页

继Golang学习系列第五天: Golang和PostgreSQL开发 RESTful API,有一个接口是查询文章,不过由于文章会有很多,所以需要分页显示,类似于下面的效果我使用的是PostgreSQL数据库,就以它为例展示如何完成后台数据分页,还好是数据库本身带有的特性。数据库文章表里原始数据:csdn=# select * from articles order by updated_at desc; id | created_at ...

2020-07-24 03:41:19 1151

原创 Golang学习系列第五天: Golang和PostgreSQL开发 RESTful API

继Golang学习系列第四天:操作数据库PostgreSQL,今天开始学习Golang和PostgreSQL开发 RESTful API接口,以Gorilla为例。0. 前言我们经常会用csdn、博客园、掘金、抖音、infoq等写文稿分享,我就以此写个这样的restful api接口,我写的是前后端分离式的接口(至于他们的是不是前后端一起或分离我就不知道了,也不想考究)。一篇文章会有标题、子标题、摘要、背景图片、具体内容、文章分类、文章标签、文章作者(可能是联名写的,就像写书时...

2020-07-21 05:47:13 1002 1

原创 Golang学习系列第四天:操作数据库PostgreSQL

0. 安装PostgreSQL数据库可以参考PostgreSQL官网https://www.postgresql.org/download/linux/redhat/安装该数据库特别需要说明的是,安装完成后,自动建立了一个名为postgres的用户,默认密码为空;同时也自动创建了一个名字叫postgres的数据库。0.1、修改默认生成的数据库用户postgres的密码。把密码设置为12345678.0.2 创建示例数据库测试数据库名可以自取,然后建一张测试表让gol...

2020-07-18 01:32:09 844

原创 Golang学习系列第三天:学习数组、切片、Map、结构体、指针、函数、接口类型、channel通道

继Golang学习系列第二天:变量、常量、数据类型和流程语句之后,今天开始学习数据类型之高级类型: 派生类型。学过java的人都知道,java其实就8种基本类型:byte、short、int、long、float、double、char、boolean,但它有引用数据类型:字符串、数组、集合、类、接口等。而golang也有这样的划分,基本类型(Golang学习系列第二天已学过)和派生类型(不叫引用类型),派生类型有以下几种:数组类型、切片类型、Map类型、结构体类型(struct)、指针...

2020-07-15 23:23:31 1013

原创 Golang学习系列第二天:变量、常量、数据类型和流程语句

继golang第一天后,今天学习下golang的变量、常量、数据类型和控制流语句。做过其他编程语言(比如JavaScript,java,python)项目的话,其实很好理解变量、常量、数据类型和控制流。变量也被称为“变数”,是反映事物运动变化状态的量,比如汇率、房贷利率、贷款利率。常量也被称“常数”,是反映事物相对静止状态的量,一旦定义,后续不能更改,比如圆周率PI。Golang是不同于JavaScript和python,但它和java一样,是一种静态类型的编程语言,就是说定义变量或常...

2020-07-13 23:09:37 502 1

原创 Golang学习系列第一天:安装golang

0. ssh连接linux(我用的centos7),略1. golang下载由于Golang官网https://golang.org/国内无法直接访问,故可以到Go语言中文网下载:https://studygolang.com/dl,可根据自己的电脑操作系统下载对应的版本,我下载的是go1.14.4.linux-amd64.tar.gz最新(当前时间)安装包,不过也可以直接点击下面这个链接直接下载https://dl.google.com/go/go1.14.4.linux-amd64.t...

2020-07-09 21:55:04 546

原创 MySQL的存储引擎InnoDB选择了B+ 树

我们知道数据的存储和检索是两个很重要的功能,当我们的数据量大了,怎么能快速的检索数据呢,答案是使用索引,可索引具体的技术实现有很多,选择哪一种呢,我就以mysql为例记录下它为什么选择了B+树作为索引的实现方式。1. 索引简介  索引是一种用于快速查询行的数据结构,就像一本书的目录就是一个索引,如果想在一本书中找到某个主题,一般会先找到对应页码。MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构。提取句子主干,就可以得到索引的本质:索引是数据结构。...

2020-06-27 05:36:31 1233

原创 Kubernetes存储之NFS

计算机世界的三大:计算调度、网络、存储。kubernetes集群搭建我就不细说了,我只就记录下一次使用NFS做共享存储的经历。场景是这样的: 学生开启一个单集群,通过web界面连接到docker容器(起了Jupyter notebook应用,很强大,The Jupyter Notebookhttps://jupyter.org/),每个学生都有自己的实验环境,可以做预设的实验,然后提交报告(包含.ipynb 文件),老师根据提交的报告给学生打分(评分之前要运行你的.ipynb ...

2020-06-24 20:06:04 561

原创 布隆过滤器BloomFilter

1.什么是布隆过滤器及其原理布隆过滤器(Bloom Filter)是1970年由布隆提出的。它实际上是一个很长的二进制向量和一系列随机映射函数。布隆过滤器可以用于检索一个元素是否在一个集合中。它的优点是空间效率和查询时间都远远超过一般的算法,缺点是有一定的误识别率和删除困难。如果想判断一个元素是不是在一个集合里,一般想到的是将集合中所有元素保存起来,然后通过比较确定。链表、树、散列表(又叫哈希表,Hash table)等等数据结构都是这种思路。但是随着集合中元素的增加,我们需要的存储空间越来越大..

2020-06-24 03:56:17 348

原创 回忆录之 消息中间件ActiveMQ

当系统业务量不是太大(未到百万千万过亿时),使用消息中间件ActiveMQ也可以,就简要记录下以前某治安监控系统用的ActiveMQ(可能当时版本有点老)。1. 什么是中间件在介绍ActiveMQ之前,简介介绍下什么是中间件。中间件是介于操作系统和在其上运行的应用程序之间的软件。中间件实质上充当隐藏转换层,实现了分布式应用程序的通信和数据管理。它有时被称为管道,因为它将两个应用程序连接在一起,使数据和数据库可在“管道”间轻松传递。 通过中间件,用户可执行很多请求,例如在 Web 浏...

2020-06-23 17:38:36 349

原创 前后端分离式----定制RBAC权限管理系统

参考: 角色权限管理项目实战springboot2+Vue+Shiro+MybatisPlus3(通用)https://edu.51cto.com/course/19772.html Springboot+Vue前后的分离整合项目实战-9-权限的经典表和RBAC理论-Array老师的在线视频教程-CSDN学院https://edu.csdn.net/course/play/25993/323105 vue-element-admin 之登陆及目录权限控制https://w...

2020-06-13 23:44:40 821

原创 Redis Sentinel哨兵功能

请在我的开源博文:Redis 主从复制Replication功能https://blog.csdn.net/dong19891210/article/details/106669143的基础上看下文,我是接着续写把redis默认Sentinel配置文件sentinel.conff重命名为sentinelMaster.conf(名字可以随便起,但最好一看名字就知道意思)mv sentinel.conf sentinelMaster.conf然后通过复制sentinelMaste...

2020-06-10 23:57:26 260

jsp简单进销存系统

此系统是本人毕业设计的原稿,不足之处还请见谅。

2012-06-08

空空如也

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

TA关注的人

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