自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

靡不有初,鲜克有终。

记录技术人的日常,一起享受代码的乐趣。

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

原创 【待完善】Go语言

待完善GO语言的协程管理模型 MPG协程间通信模型 CSP协程 --- 线程---进程通道channelStruct、func、method、interface、闭包

2022-04-26 16:08:48 798

原创 沟通创造价值,分享带来快乐

这个周末,有幸拜听了乔新亮老师在极客时间上开的CTO复盘专栏课,收益匪浅。乔新亮,人称老乔,在我看来简直就是一个传奇人物,走过了18年的职业生涯,带来的不光是技术认知的提升,更重要的是一套技术思维框架和体系,甚至对世界、人生、软件哲学、人性方面的深度思考。里面有一句话,叫《契约精神是基础,洞察人性成就卓越》,给我印象深刻。的确,人无信则不立,生活中如此,软件设计中也是如此,你对客户的承诺,你对同事的承诺,你对产品的承诺,这些承诺应该贯穿在软件设计者的心中,在写下每一行代码,实现每一个小小的功能时

2022-03-20 22:58:48 537

转载 harbor镜像仓库搭建

Harbor仓库搭建及简单使用_hxt的博客-CSDN博客_harbor

2021-11-20 15:20:14 241

转载 Maven Nexus 详解

Maven Nexus详解_柔情小公牛-CSDN博客

2021-11-20 15:18:13 132

原创 使用Jenkins pipeline模式来构建持续集成环境

书续前文,前面使用Jenkins-maven构建的方式,搭建了持续集成环境。Pipeline介绍:是一套运行于Jenkins上的工作流框架,将原本独立运行于单个或者多个节点的任务连接起来,实现单个任务难以完成的复杂流程编排与可视化。Pipeline的实现方式是一套GroovyDSL,任何发布流程都可以表述为一段Groovy脚本,并且Jenkins支持从代码库直接读取脚本,从而实现了PipelineasCode的理念。将原本独立运行于多个Job或者...

2021-11-20 14:38:24 1074

原创 Docker+Jenkins+Gitlab+Maven搭建持续集成环境

接前文,已经在windows电脑上安装了虚拟机,部署安装了Docker和Gitlab,为了模拟实现实际工作中使用Jenkins完成持续集成和持续部署,现在此基础上,试着搭建Docker+Jenkins+Gitlab+Maven的持续集成环境。大体步骤如下:开发人员通过IDE工具将代码推送到gitlab. jenkins从gitlab中获取到源码,并使用maven编译、打包、自动构建镜像. jenkins在构建脚本中调用docker命令将构建好的镜像push到本地Docker ...

2021-11-15 22:47:55 2517 2

原创 Docker下安装gitlab

1、拉取docker镜像 docker pull gitlab/gitlab-ce 需要用清华大学的镜像仓库:Index of /docker-ce/linux/centos/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror 如果遇到下不下来,如403forbiden错误,可能需要切换到手机热点才可以2、docker运行gitlabdocker run --detach \--hostname gitl...

2021-11-14 10:28:03 1164

原创 连接Docker容器测试安装完的redis和mysql

在docker容器内安装完redis和mysql后,可以用其客户端功能,简单的测试下连通性。测试redis: centos下:docker exec -it 22381843ba2c redis-cli 【22381843ba2c】:意思为启动的docker 容器id,可以通过docker ps获取到 windows下:docker exec -it myRedis redis-cli测试mysql: centos下:docker exec ...

2021-11-12 21:23:55 1605

原创 如何把本地windows打好的docker镜像发布到centos

经过之前的一番折腾,终于在windows上打包项目的镜像,并在windows环境里验证了该镜像的有效性,下一步,就可以正式的“上线部署”了。(虽然距离实际的项目还差很多,这里只是模拟)。1、首先,为了方便镜像传输,我们需要把本地镜像push到公有云镜像上 我这里使用的是腾讯云容器镜像服务(登录 - 腾讯云),申请账号环节略。根据上面的快捷指令引导,我们来传docker镜像。知道怎么做了,我们就开始执行镜像推送:推送完成以后,我们就可以去腾讯云...

2021-11-07 20:03:17 921

原创 如何把本地项目发布到github上

目录1、申请个github账号,创建资源库。2、在idea中配置github账号,登录确认。3、在idea中创建git remotes:4、windows下获取自己客户端电脑的SSH Key公钥5、在github的网站上到ssh密钥管理页面,添加新公钥​6、至此,就可以在idea中添加和推送到git仓库了在技术学习的过程中,可能会同时写写示例代码,或者自己开发个小组件,为了日后分享,可以把项目保存到github上,以便持续迭代和持久保存。今天我们就开看下咋...

2021-11-07 18:39:24 837

原创 windows下打包java项目为Docker容器部署

目录第1步:编写java代码2、给项目打jar包出来3、准备Dockerfile文件4、把项目jar包和Dockerfile文件拷贝到同一个文件夹,编译镜像5、执行打包完的镜像,运行容器windows安装完了Docker,想试验一下如何把java项目打包为容器镜像。第1步:编写java代码项目非常简单,就一个hello-world,以spring-boot构建先在idea内运行OK2、给项目打jar包出来3、准备Dockerfile文件...

2021-11-07 18:15:54 3240 1

原创 阿里云Docker镜像加速器

sudo mkdir -p /etc/dockersudo tee /etc/docker/daemon.json <<-'EOF'{ "registry-mirrors": ["https://ihaz6p1p.mirror.aliyuncs.com"]}EOFsudo systemctl daemon-reloadsudo systemctl restart docker阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台欢迎登录阿里云,全球领先的云计...

2021-11-06 12:43:11 294

原创 Docker部署安装

1、在windows电脑上安装虚拟机和centos系统。vmwareXZ12 CentOS-7-x86_64-DVD-200

2021-11-06 11:30:45 126

原创 如何定义领域服务和应用服务的区别?

1、领域服务属于领域模型设计的范畴,解决的是业务复杂度的问题。 它与聚合的设计关系紧密,聚合侧重一个非常强事务的操作单元。 而领域服务用于处理某些不属于聚合内特定实体或值对象的逻辑, 把一系列操作步骤封装成一个统一的接口。2、应用服务更多的是提供与场景用例相关的接口, 它是在外围的基础设施层(封装了技术复杂度)与领域服务层之间的结合点。 应用服...

2019-08-22 09:03:01 5781

原创 关于LinkedBlockingQueue中notEmpty和notFull-Condition的一点困惑

/** * Inserts the specified element at the tail of this queue, waiting if * necessary for space to become available. */ public void put(E e) throws InterruptedException { i...

2019-07-11 09:22:58 2553 5

原创 网络分层

DHCP是基于UDP实现的HTTP是基于TCP实现的-------协议:网络实体之间为进行网络中的数据交换而建立的规则、标准或约定,如TCP、IP、HTTP、FTP、PPP。面向连接服务:1.可靠数据传输;2.流控制(防止接收buff溢出);3.拥塞控制(防止丢包)无连接服务:1.无连接;2.不可靠数据;3.无流控制;4.无拥塞控制TCP的应用:HTTP(web)...

2019-05-28 08:52:43 332

转载 【Guava】使用Guava的RateLimiter做限流

https://blog.csdn.net/aa1215018028/article/details/80866335

2019-05-27 09:44:42 183

转载 基于SLF4J MDC机制实现日志的链路追踪

转自:https://www.jianshu.com/p/3dca4aeb6edd

2019-05-27 08:58:57 228

原创 领域驱动设计学习资料汇总

1、书籍2、专栏https://blog.csdn.net/gitchat/article/details/81091470

2019-05-18 09:41:32 228

原创 如何使用mysql的SELETE LAST_INSERT_ID()获取刚刚插入的自增长的id?

互联网项目开发中,mysql的使用居多。而且,DBA也推荐使用数据库表自增长id作为主键,这种方式简单,性能好。但我们插入完实体后,往往需要知道刚插入的数据id,以便作为唯一标识生成或更新到实体中。通常的做法,可能是再发行另外一个SQL,大概是通过更新时间,或者一个刚刚辅助登录完的uuid反查,更或者是select max(id)(有并发问题),这几种方式都不是特别理想,增加了一定的代码复杂度...

2019-05-18 09:16:03 2101

原创 数据结构的底层实现小结

无界队列是基于链表实现的,叫做链式队列,一开始不需要指定内存大小有界队列是基于数组实现的,叫做顺序队列,定义数组时需要指定大小,需要操作系统分配一块独立的且连续的内存空间!《队列最大的特点就是先进先出,主要的两个操作是入队和出队。跟栈一样,它既可以用数组来实现,也可以用链表来实现。用数组实现的叫顺序队列,用链表实现的叫链式队列。特别是长得像一个环的循环队列。在数组实现队列的时候,...

2019-05-09 06:37:05 551

原创 把List按照某个批次量进行分割的方法

把List按照某个批次量进行分割的轮子:package org.apache.commons.collections4.ListUtils;List<String> list = new ArrayList<>();// 以500个为单位进行分割listList<List<String>> splitedList = ListU...

2019-05-06 09:10:15 2078

原创 关于线程池

实际是使用生产者-消费者模式。线程池的使用方式生产者,线程池本身是消费者。生产者决定了消费额度,消费者负责按一定机制(FIFO)消费。尽量使用ThreadPoolExecutor来创建线程池,参数如下:1. int corePoolSize2. int maximumPoolSize3. long keepAliveTime4. TimeUnit unit6. B...

2019-05-05 09:30:00 158

转载 Java8 读写锁的改进:StampedLock(高性能读写锁!)

https://blog.csdn.net/sunhaoning/article/details/68924625https://www.cnblogs.com/ten951/p/6590579.html StampedLock是Java8引入的一种新的所机制,简单的理解,可以认为它是读写锁的一个改进版本,读写锁虽然分离了读和写的功能,使得读与读之间可以完全并发,但是读和写之...

2019-04-29 09:03:38 700 1

原创 CountDownLatch 和CyclicBarrier的区别

区别点 CountDownLatch CyclicBarrier 概念 一个线程(或者多个), 等待另外N个线程完成某个事情之后才能执行。 N个线程相互等待,任何一个线程完成之前,所有的线程都必须等待。 强调点 重点在那《一个主线程》,他来协调其他N个线程执行完以后,主线程在做点其他的事 重点是那N个线程,他们之间任何一个没有完成,所有的线程都必须等待...

2019-04-26 20:23:32 1855

转载 关于JUC的Semaphore信号量的原理和示例

信号量的很好的源码解析:Semaphore信号量的原理和示例信号量,1、如果只有1个大小的话,有点类似生活中的红绿灯。当你执行前,看下只有绿灯的时候,才允许执行,否则等待。2、如果有N个大小的话,就类似银行的人工窗口,假设有20个人在等待3个窗口,则只有存在空闲窗口的时候, 才可以去一个人去办业务;而且只有有一个办完业务,释放了一个窗口后,则会唤醒等待队列里的一个人,去...

2019-04-25 19:34:03 184

转载 SpringBoot配置devtools实现热部署

https://www.cnblogs.com/lspz/p/6832358.htmlspring为开发者提供了一个名为spring-boot-devtools的模块来使Spring Boot应用支持热部署,提高开发者的开发效率,无需手动重启Spring Boot应用。devtools的原理深层原理是使用了两个ClassLoader,一个Classloader加载那些不会改变的类(第三...

2019-04-23 22:48:41 207

转载 java中ReentrantReadWriteLock读写锁的使用

读写锁:分为读锁和写锁,多个读锁不互斥,读锁与写锁互斥,这是由jvm自己控制的,你只要上好相应的锁即可。如果你的代码只读数据,可以很多人同时读,但不能同时写,那就上读锁;如果你的代码修改数据,只能有一个人在写,且不能同时读取,那就上写锁。总之,读的时候上读锁,写的时候上写锁!ReentrantReadWriteLock会使用两把锁来解决问题,一个读锁,一个写锁1、线程进入读锁的前提条件:...

2019-04-23 20:00:16 498

原创 关于synchronized锁和可重入锁

JAVA SDK并发报,最核心的便是对管程的实现。并发领域的两大问题,互斥和同步:互斥:同一时刻只允许一个线程访问共享资源,使用Lock解决。同步:线程之间如何通信,协作?使用Condition解决。这两个关键字与synchronized的区别?synchronized没办法解决《破坏不可抢占条件》,原因是synchronized申请资源如果申请不到,则线程直接进入阻塞状...

2019-04-23 09:31:08 956

原创 Java中的强引用、软引用、弱引用、幻象引用的区别

更详细的介绍可以参考帖子:https://blog.csdn.net/qq_26590199/article/details/71597698

2019-04-11 09:21:40 89

原创 Java线程的生命周期

2019-04-08 23:23:48 76

原创 并发编程的微观层面和宏观层面

关于Java内存模型的Happen-Before规则的一个示例:线程A,B同时并发执行,A先执行了writer()方法,把v的值改成了true,B线程执行reader()方法时看到了v的值为true,那么此时B线程看到的x的值是多少?class VolatileExample { int x = 0; volatile boolean v = false; ...

2019-04-08 08:58:29 495

原创 永远都要把wait()放到循环语句里面!

今天在网上看到一段代码,是模拟银行转账的,如何保证多次转账并发执行的时候,转出账户和转入账户的金额一致。代码可谓巧妙绝伦!先看代码:public class MyLock { public static void main(String[] args) { // 模拟转出和转入账户 Account src = new Account(100000)...

2019-04-07 07:51:57 1641

转载 ClassNotFoundException和NoClassDefFoundError的区别

http://www.cnblogs.com/duke2016/p/9153241.htmlClassNotFoundException NoClassDefFoundError 从java.lang.Exception继承,是一个Exception类型 从java.lang.Error继承,是一个Error类型 当动态加载Class的时候找不到类会抛出该异常 当编译...

2019-04-04 08:50:52 204

原创 Java是解析运行的吗?

Java是解析运行的吗?不正确!1. Java源代码经过JAVAC编译成.class字节码文件。2. .class文件经JVM解析或编译执行。1)解析:.class字节码文件经过JVM内嵌的解析器解释执行。(这种方式执行速度会相对比较慢,所以引入了下面2的缓存技术)2)编译:存在JIT编译器(Just In Time Compie 即时编译器)把经常运行的代码作为“热点代码”编...

2019-04-04 08:35:15 138

原创 1. 多线程学习笔记(01 | 可见性、原子性和有序性问题:并发编程Bug的源头)

CPU 增加了缓存,以均衡与内存的速度差异;操作系统增加了进程和线程,以分时复用CPU,进而均衡CPU和IO设备编译程序优化指令执行次序,使得缓存能够得到更加合理地利用。...

2019-03-30 07:29:24 119

原创 Mycat 单库按月分表

Mycat 单库按月分表项目中用到单库按月分表,今天研究了一下,可参考这个帖子做出来:https://blog.csdn.net/qq_25958497/article/details/78731148但,我一开始用的是1.6,但查询时后台控制台总是报个错,说是没有找到schem的table,后来改为1.6.5,不报错了,应该是1.6的一个bug。还有一个问题是,如果作为...

2018-10-26 07:43:44 6850 1

原创 JDK的动态代理

JDK的动态代理   待完善

2018-10-13 17:34:35 73

原创 技术书籍推荐

工作的时间久了,必定有些东西,如同大浪淘沙,留下来的才是最珍贵的,不容易被岁月风蚀的东西。今天就把这些年度过的一些印象深刻的经典图书分享出来。(持续更新)   ...

2018-10-13 16:53:54 664

原创 Java多线程处理之Fork/Join框架

有一些业务场景,需要计算的数据量比较大,这时候如果单线程去处理,必定占用较多的执行时间,Java并发包中有没有给我们提供一种类似大数据处理中的MapReduce的处理方式呢?但凡成熟的语言,它的API设计必然符合常识,为解决特定环境下的问题而生。于是,上述问题的答案是,有。那就是Java的Fork/Join框架:ForkJoinTask! Fork:英文翻译为叉子,分叉,意思是可以...

2018-10-13 16:33:46 262 1

C#编码规范(中文).doc

C#编码规范(中文).doc

2015-03-26

空空如也

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

TA关注的人

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