自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

努力+坚持,而且还很年轻

梦在翱翔,心在路上。不忘初心,砥砺前行。

原创 菜鸟程序员成长之路(六)——2020年,你被裁员了吗?
原力计划

2020年,你被裁员了吗???

2020-07-06 07:27:31 275 1

原创 多线程之死锁定位及故障分析,尽可能避免线上事故(十三)
原力计划

前两篇博文,我们介绍了[线程池技术实现原理,这篇就够了](https://blog.csdn.net/jiuqiyuliang/article/details/102383861)以及线程池的拒绝策略,以及生产环境如何合理设置参数,比较彻底的介绍了线程池。我们对多线程已经介绍了很多的内容,针对多线程,高并发的分布式系统,编写的代码一定会有问题,而且问题比较多。那么有哪些问题是比较常见的问题呢?死锁就是其中一个比较常见的问题,这篇博文我们介绍什么是死锁,以及死锁产生的原因,还有定位死锁。

2020-07-03 09:56:32 179

原创 使用Nacos作为分布式注册中心,实现服务注册与发现
原力计划

上篇博文我们介绍了Nacos的基本概念以及进行了安装,相信大家已经对Nacos有了基本认识,其实说白了Nacos就是分布式注册中心和分布式配置中心的集合体。这篇博文我们介绍Nacos的第一个特性,服务的注册与发现,也就是分布式注册中心的核心功能。什么是服务注册与发现服务注册与发现是来自于微服务架构的产物。在传统的架构系统中,服务的数量较少,一般使用静态配置的方式实现服务信息的配置。而伴随着微服务架构的发展,服务实例的数量和网络地址都是动态变化的,此时对系统运维提出了巨大的挑战。面对成百上千的服务实例,为

2020-07-02 08:57:50 604

原创 进入大厂必备秘籍——算法和数据结构

前言IT行业一直流传着一句名言,“程序设计=算法+数据结构”,这是瑞士计算机科学家Niklaus Wirth于1976年出版的一本书的书名,那么数据结构与算法在程序开发中的重要性也就不言而喻了。还记得刚上大学开始学习数据结构的时候,偶然听到一位编程大佬说数据结构其实是计算机专业基础课里最难的一门,我内心是不认可的,然而后来接触更深入时我才发现是我太年轻,并且也没有意识到它的重要性。正文如果说你要修一座房子,那么数据结构就是你的地基,地基不稳,如何建造高楼大厦?数据结构的一般定义是指相互之间存在着一种或

2020-06-12 09:07:27 385

原创 Nacos介绍与安装,开启新时代
原力计划

Nacos介绍与安装,开启新时代。。。

2020-05-18 10:16:01 296

原创 Spring Cloud Alibaba简介及版本说明
原力计划

Spring Cloud Alibaba 是什么?开始准备起飞。。。

2020-05-13 09:58:35 483

原创 Spring Cloud Alibaba系列教程——Spring Cloud Alibaba开篇
原力计划

随着Spring Cloud Alibaba的发展,Spring Cloud Alibaba的相关组件逐渐的成熟,对于它的学习和研究已经是java开发人员的趋势。这篇博文主要内容是介绍什么是Spring Cloud Alibaba,Spring Cloud 与Spring Cloud Alibaba的关系,以及我们为什么要学习它,以及畅想Spring Cloud Alibaba未来发展。

2020-05-11 10:25:18 1531

原创 多线程之线程池的拒绝策略,以及生产环境如何合理设置参数(十二)

上篇博文,我们详细的介绍了[线程池的原理](https://blog.csdn.net/jiuqiyuliang/article/details/102383861),这篇我们重点介绍线程池的饱和策略,以及生产环境如何合理设置参数。为什么我们要单独拿出一篇博文来写饱和策略以及配置参数呢?因为自定义线程池配置的重点就两项:一、选择合适的线程池类型,二、配置合适的饱和策略与参数。

2020-02-24 09:54:02 319

原创 多线程之线程池技术实现原理,这篇就够了(十一)

在Java语言中,有两种比较常见的创建线程的方法,一种是继承Thread类,一种是实现Runnable的接口,Thread类其实也是实现了Runnable接口。并且在前面的博文中我们也介绍了有返回结果的创建线程的方式。这篇博文我们就重点介绍线程池,内容如下:文章目录为什么使用线程池?线程池如何使用?架构说明线程池有几种实现参数对比应用场景对比ThreadPoolExecutor线程池的七大重要...

2020-02-18 09:55:46 357

原创 多线程之Condition的await和signal、signalAll等待/通知机制(十)

上篇博文,我们介绍了Condition的简介及原理,我们这篇重点介绍Condition的await和signal等待/通知机制,以及源码。原理相关的内容上篇博文,我们基本已经介绍完了,我直接看Condition接口的源码。await 方法先贴一波代码加注释:public final void await() throws InterruptedException { if (Thr...

2019-12-17 09:53:11 210

原创 多线程之Condition的简介及原理解析(九)

上篇博文,我们重点介绍阻塞队列BlockingQueue,并实现了生产者和消费者模式。这篇博文,我们重点介绍Condition的相关内容,我们会通过两篇博文来介绍Condition。这篇是对Condition的简介,与Object类的等待通知模式简单对比,Condition接口具体实现,以及等待队列原理解析。然后通过源码解读,看具体实现并使用Condition实现生产者和消费者模式。Condit...

2019-10-16 09:38:15 272

原创 多线程之阻塞队列BlockingQueue详解(八)

上篇博文,我们简单的介绍了多线程之Semaphore,这篇我们重点介绍阻塞队列BlockingQueue

2019-09-27 00:10:12 276

原创 多线程之Semaphore详解(七)

上篇博客我们介绍了一下CyclicBarrier,这篇博客我们详细的介绍Semaphore。

2019-09-26 08:54:18 169

原创 多线程之CyclicBarrier详解(六)

上篇博客我们介绍了一下 多线程之CountDownLatch详解.,这篇博客我们详细的介绍CyclicBarrier。

2019-09-25 09:22:51 196

原创 多线程之CountDownLatch详解(五)

上篇博客我们介绍了一下重入锁ReentrantLock,这篇博客我们详细的介绍CountDownLatch。CountDownLatch是什么?CountDownLatch如何工作?CountDownLatch应用demo

2019-09-23 16:10:18 193 1

原创 多线程之重入锁ReentrantLock(四)

在博文多线程之内存可见性Volatile(一),多线程之原子变量CAS算法(二)中,我介绍了如何安全的访问共享对象,给了两种解决方案,java5.0之后,增加了lock接口的高级功能。这篇博文,我们介绍lock接口的一种实现,重入锁ReentrantLock,我们只是简单的介绍和synchronized进行一下对比。对于重入锁更加深入的内容,后面我们会再详细的写。ReentrantLockReent

2017-04-14 17:57:21 2847 11

原创 多线程之创建线程的方式之一:实现Callable接口(三)

对于多线程,大家并不陌生,对于如何创建线程也是轻车熟路,对于使用new thread和实现runable接口的方式,不再多说。这篇博文我们介绍第三种:实现Callable接口。

2017-03-16 17:23:03 4824 5

原创 多线程之原子变量CAS算法(二)

上篇博文,我们介绍了多线程之内存可见性Volatile(一),但是也遗留了一个问题,如何保证变量的”原子性操作(Atomic operations)”?Volatile保证部分类型的原子性上篇博文,我们说Voloatile不能保证原子性,有一点局限: 因为在32位(4字节)处理器中,Java中读取long类型变量不是原子的,需要分成两步,如果一个线程正在修改该long变量的值,另一个线程可能只能看

2017-03-16 10:06:23 2447 6

原创 多线程之内存可见性Volatile(一)

从这篇博文开始,我们开始分享一些多线程的内容,毕竟在工作中,使用多线程比较多。多总结一下,终归没有坏处。这个系列的文章不会特别长,争取在3到5分钟之间结束,主要以说明白内容,给出相应的解决方案,重点在于实践。如标题所示,这篇博文我们简单的介绍一下内存可见性问题,之前,要简单的介绍一下什么是内存模型?内存模型什么是JAVA 内存模型?Java Memory Model (JAVA 内存模型)是描述线程

2017-03-15 11:59:07 5519 9

原创 Java NIO系列教程(一)java NIO简介

这个系列的文章,我们开始玩一玩IO方面的知识,对于IO和NIO,我们经常会接触到,了解他们的基本内容,对于我们的工作会有特别大的帮助。这篇博文我们仅仅是介绍IO和NIO的基本概念,以及一些关键词。基本概念IO是主存和外部设备(硬盘、终端和网络)进行数据拷贝的过程。IO是操作系统的底层功能实现,底层通过I/O指令完成对数据的操作。java标准IO回顾Java 标准 IO 类库是 io 面向对象的一种抽

2017-02-23 14:57:34 3476 5

原创 Zookeeper的java客户端API使用方法(五)

前面几篇博文,我们简单的介绍了一下zookeeper,如何安装zookeeper集群,以及如何使用命令行等。这篇博文我们重点来看下Zookeeper的java客户端API使用方式。创建会话客户端可以通过创建一个Zookeeper(org.apache.zookeeper.ZooKeeper)实例来连接ZooKeeper服务器。给大家推荐一篇博文,构造方法和参数都介绍的非常的详细,看一下就好。我们看一

2017-02-20 16:07:30 6342 4

原创 Zookeeper命令行zkCli.sh&zkServer.sh的使用(四)

上篇博文,我们成功的安装和启动了zookeeper服务器,zookeeper还提供了很多方便的功能,方便我们查看服务器的状态,增加,修改,删除数据(入口是zkServer.sh和zkCli.sh)。还提供了一系列四字命令,方便我们跟服务器进行各种交互,来确认服务器当前的工作情况(这也是服务器监控告警的基础)。zkServer.shzookeeper启动成功之后,我们先看一下zkServer.sh提供

2017-02-17 11:38:42 8465 4

原创 Zookeeper安装以及配置说明(三)

Zookeeper的安装和配置非常的简单,既可以配置成单机模式,也可以配置成集群模式。如下图所示:下面将分别进行介绍:单机模式下载最新稳定版本zookeeper的安装包之后(看第一篇博文), 解压到合适目录. 进入zookeeper目录下的conf子目录, 修改zoo_sample.cfg示例文件,改名zoo.cfg。不修改任何配置,运行bin目录下的启动命令即可(windows环境运行zkServ

2017-02-15 16:47:26 2291 2

原创 ZooKeeper的基本概念(二)

第一篇博文,我们对Zookeeper有了一个简单的认识,而且比较浅显,易懂,这篇博文,我们了解它的基本概念,如下图所示:了解它的基本概念,有助于我们后面的学习,虽然今天的文章都是概念性质的内容,但是意义重大。一、集群角色:Zookeeper集群通常有三种角色:Leader,Follower,Observer。 角色 描述 Leader服务器 整个Zookeeper集群工作机制中的核心

2017-02-13 15:22:38 3366 5

原创 菜鸟程序员的成长之路(五)——说说2015年,畅谈一下2016年

时间从不等人,一晃半年多的时间没有写博文了,实在惭愧。今天特别的清闲,简单的说一说2015,畅谈一下2016。 2015年上半年一直疯狂的写代码,做项目,虽然当时每天感觉有点累,但是每天都有新的收获和进步,每一步都很踏实。从15年6月份开始出来工作,在国企单位工作了半年的时间。半年的时间让完成了从毕业的大学生转变成真正的IT职场人士,多了另外的一个角色或者说身份。精彩内容太多了,十月一回来之后为大

2016-09-23 23:00:40 5398 18

转载 微服务架构下的数据一致性:可靠事件模式

在《微服务架构下的数据一致性:概念及相关模式》中介绍了在微服务中实现数据一致性的三种方式,包括可靠事件模式、业务补偿模式、TCC模式。本文重点说一下可靠事件投递。1. 可靠事件模式可靠事件模式属于事件驱动架构,微服务完成操作后向消息代理发布事件,关联的微服务从消息代理订阅到该事件从而完成相应的业务操作,关键在于可靠事件投递和避免事件重复消费。可靠事件投递有两个特性:1)每个服务原子性的完成业务操作

2016-08-17 09:51:25 3266 1

转载 微服务架构下的数据一致性:概念及相关模式

从2014年开始,微服务逐渐进入大家的实现,被认为是下一代实现信息化的有效手段。设计到系统,其中绕不开的就是数据一致性,从本地事务,到后来的分布式事务,都能够有效的保证数据一致性。但是在微服务架构中,这两种方式都不是最好的选择。1. 使用本地事务和分布式事务保证一致性在传统的单击应用中,最简单、最直接、最普遍的会使用一个关系型数据库,通过关系型数据库的事务保证数据的一致性。这种事务有四个基本要素:

2016-08-17 09:48:49 3198 2

原创 ZooKeeper简单介绍(一)

这篇博文我们简单的介绍一下什么是ZooKeeper,ZooKeeper的下载安装,以及Zookeeper的整体概况,它们将作为黑暗中的探照灯指明我们前进的方向。

2016-04-29 16:28:40 11873 10

原创 ElasticSearch教程(三)————ElasticSearch集群搭建

这篇博文我们亲自搭建一个简单的ElasticSearch集群。配置ElasticSearch集群异常的简单,简单到甚至只需要修改两个地方:保证集群名一致和保证集群的中节点端口不重复。

2016-04-29 15:38:34 34705 15

原创 ElasticSearch教程(一)——简介与安装

ElasticSearch一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。。。

2016-04-26 10:53:25 12778 6

原创 ElasticSearch教程(二)——ElasticSearch基本插件head

这篇文章我们介绍一个非常好的工具:elasticsearch-head,从简单介绍,到安装,最后使用。

2016-04-25 11:46:26 49314 12

翻译 muleESB的第一个开发实例-HelloWorld(二)

上篇博文我们简单的介绍了什么是ESB,教给了大家如何下载和安装了Studio。假设在学习本教程之前,假设您已经下载、安装并启动了Anypoint Studio。创建新项目单击File,选择New>Mule Project打开新的Mule项目向导,输入我们第一个项目的名称:My First Project,然后单击Finish。 打开一个新的空白项目,下面是用于快速构建Mule项目的各种视图: 开

2015-10-31 00:16:34 17352 9

原创 muleESB简介和安装(一)

MuleESB是一个企业服务总线(ESB)消息框架。。。

2015-10-30 00:01:49 12871 3

原创 【项目管理与构建】Nexus的详细介绍以及安装(四)

Nexus不是Maven的核心概念,它仅仅是一种衍生出来的特殊的Maven仓库。。。

2015-10-27 00:12:09 9198 15

原创 使用CXF开发简单的Web Service-HelloWorld(二)

上篇博文我们介绍了Web Service的基本概念,了解它的基本概念之后,我们这篇博文介绍一个开源的WebService框架-Apache CXF,并实现一个HelloWorld实例。

2015-10-07 17:01:07 9326 3

原创 Web Service简介(一)

这篇博文,我们对Web Service进行一个简单的介绍和认识,作为Web Service的入门。在学习之前,你需要对HTML和XML有基本的了解,Web Service并不难,而且非常的简单。

2015-09-28 10:08:13 9447 10

原创 深入浅出JMS(四)--Spring和ActiveMQ整合的完整实例

我们基于Spring+JMS+ActiveMQ+Tomcat,做一个Spring4.1.0和ActiveMQ5.11.1整合实例,实现了Point-To-Point的异步队列消息和PUB/SUB(发布/订阅)模型,简单实例,不包含任何业务。

2015-09-27 00:13:23 122072 186

原创 深入浅出JMS(三)--ActiveMQ简单的HelloWorld实例

JMS其实并没有想象的那么高大上,看完这篇博文之后,你就知道什么叫简单。。

2015-09-26 13:37:47 109204 63

原创 分享作为程序猿的快乐

做为资深程序猿最大的快乐,就是苦中作乐。相信每个人在工作中总会碰到各种无语的场景,请大家在文章评论中留下最搞笑的瞬间,笑一笑十年少,笑多了,不怀孕。 1. 当客户要求兼容各大主流浏览器 2. 当我的代码终于编译成功时: 3. 当一个Bug出现在周五晚上时~~~ 4. 当组长问:你是否测试时: 5. 当你没测试代码就上传,结果完美运行时: 6. 凌晨3点还在修Bug时:

2015-08-31 23:05:09 4473 8

原创 Git简单介绍(一)

Git是什么?Git是目前世界上最先进的开源的分布式版本控制系统(没有之一),用于敏捷高效地处理任何或小或大的项目。

2015-08-31 21:29:12 5294 5

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