自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Cosmos的博客

一个努力向大佬学习的低级程序员

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

原创 JUC之Condition源码解析

定义Condition主要是用来处理线程之间的通信,当满足某一条件时,唤醒其他的线程。主要配合重入锁完成等待唤醒的操作。案例此demo定义了一个容量为5的数组。当数组容量达到容器最大容量时,写线程等待,读线程取走一个值,则唤醒写线程。同理,当容量为空时,读线程等待,写入一个值,则唤醒读线程。public class ConditionTest { public static ...

2019-07-15 16:49:07 224

原创 springboot+docker部署的踩坑

修改docker配置允许远程上传镜像//修改配置,见图vi /lib/systemd/system/docker.service//重启dockersystemctl daemon-reloadsudo service docker restart修改红框处,端口用户可自由指定//测试如图即成功curl 127.0.0.1:2375/version修改springboot...

2019-07-12 14:06:26 641

原创 JUC之重入锁ReentrantLock

定义重入锁是一种递归无堵塞的同步机制。类似于synchronized,但是比synchronized更加的灵活,可自由选择加锁的位置。它有一个与锁相关的获取计数器,如果拥有锁的某个线程再次得到锁,那么获取计数器加1,并且锁需要被释放两次才能真正获得释放。重入锁提供了两种加锁方式,公平锁以及非公平锁。默认是非公平锁。公平锁表示线程获取锁的顺序是按照线程加锁的顺序来分配的,即先来先得的FIFO先...

2019-07-11 15:22:18 170

原创 JUC之同步组件核心AQS

定义AQS是类AbstractQueuedSynchronizer的简称(以下均以AQS代替),提供了一种实现堵塞锁(独占锁)和一系列FIFO等待队列(共享锁)的同步框架。独占锁:此代码有且只有一个线程能够执行,如ReentrantLock共享锁:多个线程可同时获取锁,如Semaphore/CountDownLatchAQS源码Node节点(线程状态维护)AQS中维护线程状态是通过一个...

2019-07-11 14:13:58 202

原创 SpringCloud使用Consul作为注册中心和配置中心

安装consul集群1.这里采用的是docker-compose的方式来部署consul集群,代码如下,docker的安装以及docker-compose的安装在此不做介绍。创建docker-compose.yml文件并将其上传到服务器中,在目录下执行docker-compose up -d既可。version: '2'networks: consul: driver: brid...

2019-05-02 10:59:56 4248 2

原创 skywaling踩坑记录

前言随着微服务概念的火热,系统排错的问题也越来越突出 。如何监控分布式链路是每个团队都会遇到的问题。目前市场上开源的APM有,推特的zikpin(在springcloud生态下较为容易),美团的CAT,pinpoint以及skywalking。在此博文记录下skywalking的踩坑实录。踩坑在github的skywalking(https://github.com/apache/incub...

2019-04-19 13:00:47 1972

原创 设计模式之单例模式

此处介绍两个线程安全的单例,分别使用饿汉式单例,懒汉式单例。饿汉式单例代码如下:在类加载初始就实例化对象。弊端:如果对象很大,在未使用对象的时候,就加载到内存中,是对内存的一种极大的浪费。public class StarvationSingleton { private static StarvationSingleton uniqueInstance = new Starvatio...

2018-12-25 10:51:10 114

原创 设计模式之观察模式

一:介绍定义:定义了对象之间一对多依赖,这样一来,当对象改变状态的时候,他所有依赖者都会接受到通知并自动更新。观察者模式属于行为型模式。二:设计原则原则:为了交互对象之间的松耦合设计而努力。三:实战案例:天气预报。此处就直接引用head first的案例主题接口:public interface Subject { /** * 注册需要通知的观察者 * ...

2018-12-25 09:51:43 229

原创 设计模式之策略模式

一:介绍策略模式定义了算法族,继承相同的接口,分别封装起来,让他们能够相互替换。以此来达到运行时更改算法。此模式让算法的变化独立于使用算法的客户。二:设计原则1.找出应用中可能变化之处,把他们独立出来,不要和那些不需要变化的代码混在一块。2.针对接口编程,而不是针对实现编程。3.多用组合,少用继承。三:实战场景:计算器的加减乘除1.定义抽象方法用来表示计算public inter...

2018-12-25 08:47:58 158 1

原创 Http首部字段记录

通用首部字段首部字段名说明Cache-Control控制缓存的的行为Connection逐跳首部,连接的管理Date创建报文的日期时间Pragma报文指令Trailer报文末端的首部一览Transfer-Encoding指定报文主题的传输编码方式Upgrade升级为其他协议Via代理服务器的相关信息Warning...

2018-12-23 11:36:31 246

原创 Http状态码记录

类别原因1XX信息性状态码接收的请求正在处理2XX成功状态码请求正常出完毕3XX重定向状态码需要进行附加操作以完成请求4XX客户端错误状态码服务器无法处理请求5XX服务器错误状态码服务器处理请求错误2XX 详解200 :表示从客户端发来的请求在服务器端被正常处理了。204 :表示服务器接收的请求的已成功处理,但在返回的响应...

2018-12-23 11:00:44 186

原创 JVM垃圾回收器参数总结

UseSerialGC虚拟机运行在client模式下的默认值,打开此开关后,使用Serial+SerialOld的收集器组合进行内存回收。UserParNewGC使用ParNew+Serial Old的收集器组合进行内存回收UserConMarkSweepGC:使用ParNew+CMS+Serial Old的收集器组合进行内存回收。Serial Old收集器将作为CMC收集器...

2018-12-22 21:03:35 438

转载 idea2018.3激活方式

步骤和上面差不多,有一点点不一样.下载jar包JetbrainsIdesCrack-3.4-release-enc.jar, http://idea.lanyus.com/jar/JetbrainsIdesCrack-3.4-release-enc.jar,并将 JetbrainsIdesCrack-3.4-release-enc.jar 放置到 D盘根目录。2.在IntelliJ IDE...

2018-12-16 22:00:41 1176

原创 Grafana+Prometheus实现服务器监控----------window版

一:介绍Prometheus官网是这么介绍,一个最初在SoundCloud上构建的开源系统监视和警报工具包。Prometheus是一个完整的监控和趋势系统,包括基于时间序列数据的内置和主动抓取,存储,查询,绘图和警报。简单来说,我们可以用Prometheus来监控包括linux,window系统,nginx以及mysql的性能指标。Grafana,一个将数据可视化的软件,具有非常高大上的u...

2018-12-07 22:07:41 7730 2

转载 Springboot+elk实现分布式日志管理

本博文大部分内容来自http://blog.51cto.com/zero01/2079879,详细内容可参考此博文。一:准备工作1.准备三台机器:10.2.0.151 主10.2.0.152 数据中心10.2.0.153 数据中心机器上都安装上jdk2.修改host文件vim /etc/hosts10.2.0.151 master-node10.2.0.152 data-n...

2018-11-27 10:36:44 4481 1

原创 jenkins+github自动化构建部署

一:准备工作1.Git的安装配置1.1安装git https://gitforwindows.org/ (一直next就行)在path中添加git环境变量 如:E:\TOOL\Git\cmd1.2生成秘钥打开git bash生成的秘钥就在用户目录的.ssh下1.3将公钥放置在gitlab,github上,由用户自行决定2.配置maven添加 M2_HOME 和 MAVE...

2018-11-23 10:35:30 1613

原创 搭建Consul集群

一:准备三台虚拟机n1: 10.2.0.151 linuxn2:10.2.0.133 linuxn3:10.2.0.149 window server二:从官网下载consul1.下载地址:https://www.consul.io/downloads.html将下载好的文件放入指定的位置:如:/usr/local/consul/data2.解压文件进入存放的目录执行 unzip...

2018-11-22 09:51:18 764

原创 ECS服务搭建PHP运行环境---笔记

一:安装Apache yum install httpd修改默认端口:/etc/httpd/conf/httpd.conf修改配置: Listen 80 为Listen ip二:安装PHP配置yum源# yum install epel-release# rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release...

2018-11-16 11:04:32 261

原创 Spring自定义标签的解析

一:项目demoSpring提供了可扩展的支持,利用如下的代码来一步步实现spring自定义解析。项目结构如下,引入spring4.01.创建一个user对象public class User { private String userName; private String email; ...............省略getset}2.创建一个XS...

2018-11-15 14:06:13 194

原创 Mysql主从复制实现读写分离

一:安装mysql,在这里我是在两台server上安装mysql5.7(安装过程不在详细介绍)主:10.2.0.134从:10.2.0.149二:配置master服务器1.创建用户CREATE USER 'cosmos'@'10.2.0.%' ;ALTER USER 'cosmos'@'10.2.0.%'IDENTIFIED BY 'cosmos' ;GRANT Replicat...

2018-11-13 11:02:41 156

原创 spring源码之bean包

测试代码如下:创建一个Teacher类:public class Teacher { private String description = "teacher"; public String getDescription() { return description; } public void setDescription(String...

2018-11-09 20:12:01 1283

原创 spring源码之Resource资源读取

想必接触过spring的朋友都应该写过大量的配置文件吧。那么java是如何读取配置文件的呢?以下是Resource的源码:public interface Resource extends InputStreamSource { //存在性 boolean exists(); //可读性 default boolean isReadable() { retu...

2018-11-09 11:28:17 612

原创 引入springboot后无法找到@SpringBootApplication

今天搭建配置中心时,引入springboot后,找不到@SpringBootApplication,但是其他的项目确可以。尝试删除重建还是原样。网上查阅资料,删除maven目录下repository\org\springframework\boot 目录下的spring-boot-autoconfigure 文件夹,即可。经尝试,发现此方法凑效。顾记录下此博客,以待以后遗忘。...

2018-11-08 18:00:13 5469 1

原创 Linux下jdk的安装与卸载

序:小白学习liunx安装之路一:查看系统是否有jdkwhich java 查看Java的执行路径echo $JAVA_HOME 查看java目录echo $PATH 查看java的bin目录二:卸载旧版的jdk查看jdk的版本rpm -qa | grep jdkrpm -qa | grep gcj卸载yum -y remove java-1.7.0-openjd...

2018-11-08 14:08:55 216

原创 代码质量管理平台之SonarQube

代码质量管理平台之SonarQube一:基本介绍二:安装教程三:安装插件四:maven+sonar五:后记一:基本介绍在官方文档中,是这么介绍的:SonarQube® is an automatic code review tool to detect bugs, vulnerabilities and code smells in your code. It can integrate w...

2018-11-05 13:39:18 453

空空如也

空空如也

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

TA关注的人

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