自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

MarkLin编程部落格

Be all I can be!

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

原创 Java并发编程解析 | 基于JDK源码解析Java领域中并发锁之同步器Semaphore,CyclicBarrier以及CountDownLatch等的设计思想与实现原理 (四)

在Java领域中,我们可以将锁大致分为基于Java语法层面(关键词)实现的锁和基于JDK层面实现的锁。在Java领域中, 尤其是在并发编程领域,对于多线程并发执行一直有两大核心问题:同步和互斥。互斥(Mutual Exclusion):一个公共资源同一时刻只能被一个进程或线程使用,多个进程或线程不能同时使用公共资源。即就是同一时刻只允许一个线程访问共享资源的问题。同步(Synchronization):两个或两个以上的进程或线程在运行过程中协同步调,按预定的先后次序运行。

2022-09-22 05:33:16 318 1

原创 Java并发编程解析 | 基于JDK源码解析Java领域中并发锁之同步器Semaphore,CyclicBarrier以及CountDownLatch等的设计思想与实现原理 (四)

苍穹之边,浩瀚之挚,眰恦之美; 悟心悟性,善始善终,惟善惟道! —— 朝槿《朝槿兮年说》写在开头在并发编程领域,有两大核心问题:一个是互斥,即同一时刻只允许一个线程访问共享资源;另一个是同步,即线程之间如何通信、协作。主要原因是,对于多线程实现实现并发,一直以来,多线程都存在2个问题:线程之间内存共享,需要通过加锁进行控制,但是加锁会导致性能下降,同时复杂的加锁机制也会增加编程编码难度过多线程造成线程之间的上下文切换,导致效率低下因此,在并发编程领域中,一直有一个很重要的设计原则:

2022-09-22 05:28:28 234

原创 Java并发编程解析 | 基于JDK源码解析Java领域中并发锁之StampedLock锁的设计思想与实现原理 (三)

苍穹之边,浩瀚之挚,眰恦之美; 悟心悟性,善始善终,惟善惟道! —— 朝槿《朝槿兮年说》写在开头在并发编程领域,有两大核心问题:一个是互斥,即同一时刻只允许一个线程访问共享资源;另一个是同步,即线程之间如何通信、协作。主要原因是,对于多线程实现实现并发,一直以来,多线程都存在2个问题:线程之间内存共享,需要通过加锁进行控制,但是加锁会导致性能下降,同时复杂的加锁机制也会增加编程编码难度过多线程造成线程之间的上下文切换,导致效率低下因此,在并发编程领域中,一直有一个很重要的设计原则:

2022-09-22 05:20:50 466 1

原创 Java并发编程解析 | 基于JDK源码解析Java领域中并发锁之ReentrantReadWriteLock锁的设计思想与实现原理 (二)

苍穹之边,浩瀚之挚,眰恦之美; 悟心悟性,善始善终,惟善惟道! —— 朝槿《朝槿兮年说》写在开头在并发编程领域,有两大核心问题:一个是互斥,即同一时刻只允许一个线程访问共享资源;另一个是同步,即线程之间如何通信、协作。主要原因是,对于多线程实现实现并发,一直以来,多线程都存在2个问题:线程之间内存共享,需要通过加锁进行控制,但是加锁会导致性能下降,同时复杂的加锁机制也会增加编程编码难度过多线程造成线程之间的上下文切换,导致效率低下因此,在并发编程领域中,一直有一个很重要的设计原则:

2022-09-22 05:11:28 176

原创 Java并发编程解析 | 基于JDK源码解析Java领域中ReentrantLock锁的设计思想与实现原理 (一)

在Java领域中,我们可以将锁大致分为基于Java语法层面(关键词)实现的锁和基于JDK层面实现的锁。在Java领域中, 尤其是在并发编程领域,对于多线程并发执行一直有两大核心问题:同步和互斥。互斥(Mutual Exclusion):一个公共资源同一时刻只能被一个进程或线程使用,多个进程或线程不能同时使用公共资源。即就是同一时刻只允许一个线程访问共享资源的问题。同步(Synchronization):两个或两个以上的进程或线程在运行过程中协同步调,按预定的先后次序运行。

2022-09-22 04:54:42 198

原创 Java并发编程解析 | 基于JDK源码解析Java领域中的并发锁,我们需要特别关注哪些内容?

在并发编程领域,有两大核心问题:一个是互斥,即同一时刻只允许一个线程访问共享资源;另一个是同步,即线程之间如何通信、协作。主要原因是,对于多线程实现实现并发,一直以来,多线程都存在2个问题:因此,在并发编程领域中,一直有一个很重要的设计原则: “ 不要通过内存共享来实现通信,而应该通过通信来实现内存共享。”简单来说,就是尽可能通过消息通信,而不是内存共享来实现进程或者线程之间的同步。本文用到的一些关键词语以及常用术语,主要如下:在Java领域中, 尤其是在并发编程领域,对于多线程并发执行一直有两大核心问题:

2022-09-21 15:55:18 312 1

原创 Java 并发编程解析 | 基于JDK源码解析Java领域中的并发锁,我们可以从中学习到什么内容?

苍穹之边,浩瀚之挚,眰恦之美; 悟心悟性,善始善终,惟善惟道! —— 朝槿《朝槿兮年说》写在开头在Java领域中, 尤其是在并发编程领域,对于多线程并发执行一直有两大核心问题:同步和互斥。其中:互斥(Mutual Exclusion):一个公共资源同一时刻只能被一个进程或线程使用,多个进程或线程不能同时使用公共资源。即就是同一时刻只允许一个线程访问共享资源的问题。同步(Synchronization):两个或两个以上的进程或线程在运行过程中协同步调,按预定的先后次序运行。即就是线程之间如何

2022-09-17 14:19:22 243

原创 Java并发编程解析 | 解析AQS基础同步器的设计与实现

关健术语本文用到的一些关键词语以及常用术语,主要如下:信号量(Semaphore): 是在多线程环境下使用的一种设施,是可以用来保证两个或多个关键代码段不被并发调用,也是作系统用来解决并发中的互斥和同步问题的一种方法。信号量机制(Semaphores): 用来解决同步/互斥的问题的,它是1965年,荷兰学者 Dijkstra提出了一种卓有成效的实现进程互斥与同步的方法。管程(Monitor) : 一般是指管理共享变量以及对共享变量的操作过程,让它们支持并发的一种机制。基本概述在Jav

2022-09-08 17:23:14 328

原创 Java 并发编程解析 | 如何正确理解Java领域中的并发锁,我们应该具体掌握到什么程度?

苍穹之边,浩瀚之挚,眰恦之美; 悟心悟性,善始善终,惟善惟道! —— 朝槿《朝槿兮年说》写在开头对于Java领域中的锁,其实从接触Java至今,我相信每一位Java Developer都会有这样的一个感觉?不论是Java对锁的实现还是应用,真的是一种“群英荟萃”,而且每一种锁都有点各有各的驴,各有各的本,各不相同。在很多情况下,以及在各种锁的应用场景里,各式各样的定义,难免会让我们觉得无所适从,很难清楚该如何对这些锁做到得心应手?在并发编程色世界中,一般情况下,我们只需了解其是如何使用锁之后

2022-09-07 03:55:21 655

原创 Java 并发编程解析 | 如何正确理解Java领域中的锁机制,我们一般需要掌握哪些理论知识?

苍穹之边,浩瀚之挚,眰恦之美; 悟心悟性,善始善终,惟善惟道! —— 朝槿《朝槿兮年说》写在开头提起Java领域中的锁,是否有种“道不尽红尘奢恋,诉不完人间恩怨“的”感同身受“之感?细数那些个“玩意儿”,你对Java的热情是否还如初恋般“人生若只如初见”?Java中对于锁的实现真可谓是“百花齐放”,按照编程友好程度来说,美其名曰是Java提供了种类丰富的锁,每种锁因其特性的不同,在适当的场景下能够展现出非常高的效率。但是,从理解的难度上来讲,其类型错中复杂,主要原因是Java是按照是否含有某

2022-09-02 20:20:10 357

原创 Java 并发编程解析 | 如何正确理解Java对象创建过程,我们主要需要注意些什么问题?

苍穹之边,浩瀚之挚,眰恦之美; 悟心悟性,善始善终,惟善惟道! —— 朝槿《朝槿兮年说》写在开头从接触 Java 开发到现在,大家对 Java 最直观的印象是什么呢?是它宣传的 “Write once, run anywhere”,还是目前看已经有些过于形式主义的语法呢?有没有静下心来仔细想过,对于 Java 到底了解到什么程度?自从业以来,对于Java的那些纷纷扰扰的问题,我们或多或少都有些道不明,说不清的情绪,一直心有余悸,甚至困惑着我们的,可曾入梦。是不是有着,不论查阅了多少遍的资料,.

2022-08-30 18:44:44 468

原创 Java 并发编程解析 | 如何正确理解Java领域中的多线程模型,主要用来解决什么问题?

苍穹之边,浩瀚之挚,眰恦之美; 悟心悟性,善始善终,惟善惟道! —— 朝槿《朝槿兮年说》写在开头我国宋代禅宗大师青原行思在《三重境界》中有这样一句话:“ 参禅之初,看山是山,看水是水;禅有悟时,看山不是山,看水不是水;禅中彻悟,看山仍然山,看水仍然是水。”作为一名Java Developer,在面对Java并发编程的时候,有过哪些的疑惑与不解 ?对于Java领域中的线程机制与多线程,你都做了哪些功课?是否和我一样,在看完《Java编程思想》和《Java并发编程实战》之后,依旧一头雾水,不知其迹.

2022-08-13 05:36:28 669

原创 Java 并发编程解析 | 如何正确理解线程机制中常见的I/O模型,各自主要用来解决什么问题?

苍穹之边,浩瀚之挚,眰恦之美; 悟心悟性,善始善终,惟善惟道! —— 朝槿《朝槿兮年说》写在开头作为一名Java Developer,我们都清楚地知道,主要从搭载Linux系统上的服务器程序来说,使用Java编写的是”单进程-多线程"程序,而用C++语言编写的,可能是“单进程-多线程”程序,“多进程-单线程”程序或者是“多进程-多线程”程序。从一定程度上 来说,主要由于Java程序并不直接运行在Linux系统上,而是运行在JVM(Java 虚拟机)上,而一个JVM实例是一个Linux.

2022-08-10 01:28:54 484

原创 Java 并发编程解析 | 关于Java领域中的线程机制,我们应该知道的那些事?

苍穹之边,浩瀚之挚,眰恦之美; 悟心悟性,善始善终,惟善惟道! —— 朝槿《朝槿兮年说》写在开头我们都知道,经过多年的发展和无数Java开发者的不懈努力,Java已经由一门单纯的计算机编程语言,逐渐演变成一套强大的以及仍在可持续发展中的技术体系平台。虽然,Java设计者们根据不同的技术规范,把Java划分为3种结构独立且又彼此依赖的技术体系,分别是Java SE,Java EE 以及Java ME,其中Java EE 在广泛应用在企业级开发领域中。除了包括Java API组件外,其衍生和扩充.

2022-08-02 12:51:26 373

原创 Java 并发编程解析 | 如何正确理解Java领域中的内存模型,主要是解决了什么问题?

苍穹之边,浩瀚之挚,眰恦之美; 悟心悟性,善始善终,惟善惟道! —— 朝槿《朝槿兮年说》写在开头这些年,随着CPU、内存、I/O 设备都在不断迭代,不断朝着更快的方向努力。在这个快速发展的过程中,有一个核心矛盾一直存在,就是这三者的速度差异。CPU 和内存的速度差异可以形象地描述为:CPU 是天上一天,内存是地上一年(假设 CPU 执行一条普通指令需要一天,那么 CPU 读写内存得等待一年的时间)。内存和 I/O 设备的速度差异就更大了,内存是天上一天,I/O 设备是地上十年。我们都知道的是,.

2022-07-31 04:02:20 473 1

原创 Java 并发编程解析 | 关于线程机制的那些事,你究竟了解多少?

苍穹之边,浩瀚之挚,眰恦之美; 悟心悟性,善始善终,惟善惟道! —— 朝槿《朝槿兮年说》写在开头众所周知,在计算机操作系统中,进程(Process)是一个很关键的概念,最本质的理解就是操作系统执行的一个应用程序(Application Program)。与每个进程相关的是地址空间(Address Space)。其中,描述的是从某个最小值的存储位置(通常是0)到最大值的存储位置的列表。在这个地址空间中,进程可以进行读写操作。地址空间中可以存放可执行程序,以及程序需要的数据和栈针。与每个进程相关的资.

2022-07-30 03:30:08 307

原创 消息中间件解析 | 如何正确理解软件应用系统中关于系统通信的那些事?

苍穹之边,浩瀚之挚,眰恦之美;悟心悟性,善始善终,惟善惟道! —— 朝槿《朝槿兮年说》写在开头随着业务需求的发展和用户数量的激增,对于互联网应用系统或者服务应用程序则提出了新的挑战,也对从事系统研发的开发者有了更高的要求。作为一名IT从业研发人员,我们都知道的事,良好的用户体验是我们和应用系统间快速反馈,一直以来都是我们考量一个系统是否稳定和是否高效的设计目标,但是保证这个目标的关键之一,主要在于如何保证系统间的通信稳定和高效。从而映射出,如何正确理解软件应用系统中关于系统通信的那些事?是我们必.

2022-07-29 23:21:10 487

原创 Java 并发编程解析 | 每个Java Developer都应该知道的关于并发编程的那点事?

苍穹之边,浩瀚之挚,眰恦之美; 悟心悟性,善始善终,惟善惟道! —— 朝槿《朝槿兮年说》写在开头 在这个互联网应用乱象丛生的时代,应对复杂业务需求,如何开发和设计一个高效和稳定的应用程序,一直都是我们备受瞩目的关注点 。作为一名Java Developer,从接触 Java 开发到现在,相信大家对于并发编程这个概念都不陌生,你对 Java并发编程最直观的印象是什么呢?是各个大厂面试宝典宣扬的高频热词,还是在实际工作中,都有过实际工作场景必备高阶开发技术?关于并发编程的基础和原则都做到了.

2022-07-28 16:38:24 369

原创 在Java中,为啥synchronized 锁升级的过程中,锁标记从对象头拷贝到线程本地变量表?

​提起synchronized ,我们都知道它是Java语言中的关键词,是提供给开发人员使用的同步工具,可以将其看成一种“语法糖”。主要是Java为解决多线程并发执行过程中数据同步的问题而内建的同步机制,而在其他编程语言里面,在处理同步问题时是需要自己进行锁处理。由此可见,Java提供这个关键词对于我们确实很友好,同时也很方便。synchronized 是内置锁(Intrinsic Locking),提供了互斥语义和可见性,当一个线程已经获取当前锁锁时,其他试图获取锁的线程只能等待或者被阻塞在那里。即就

2022-07-05 08:13:09 114

原创 Linux系统Centos7 基于Docker搭建ELK分布式日志系统

ELK 基本概述ELK是Elasticsearch、Logstash、Kibana的简称,常常用于部署分布式系统日志服务。Elasticsearch:全球实时全文搜索和分析引擎,提供搜集、分析、存储数据三大功能;是一套开放REST和JAVA API等结构提供高效搜索功能,可扩展的分布式系统。它构建于Apache Lucene搜索引擎库之上。Logstash:用来搜集、分析、过滤日志的工具。它支持几乎任何类型的日志,包括系统日志、错误日志和自定义应用程序日志。它可以从许多来源接收日志,这些来源包括

2022-04-08 18:26:40 559 3

原创 OAuth 授权协议 | 都云原生时代了,我们应该多懂一点OAuth ?

We are not here because we are free .we are here because we are not free. 我们在这里不是因为我们自由,我们在这里是因为我们不自由。——《黑客帝国》写在开头 在这个互联网最美好的时代,随着业务产品线的增多,业务应用平台逐渐增多后,每个系统单独管理各自的用户数据容易形成信息孤岛,分散的用户管理模式阻碍了企业应用向平台化演进。当业务产品线发展到一定规模,构建统一的标准化账户管理体系将是必不可少的,构建一套互联网云平台的重要基..

2022-04-07 14:48:36 409

原创 Mysql数据库 | 基于Docker搭建Mysql-8.0以上版本主从实例实战

Mysql主从环境概述Mysql集群主从环境搭建 本次采用Docker部署集群,并且首先主从实例配置。1.Mysql-Cluster集群服务规划2.Mysql-Cluster集群先决条件创建 Mysql-Cluster集群主要配置目录如下:2.1 Mysql-Master节点[3308]创建 Mysql-Slave节点主要配置文件目录以及配置文件如下:[1].mysql.cnf配置文件:# Copyright (c) 2015, 2021, Oracle and/or its..

2022-02-09 11:12:48 1191

原创 分布式文件存储服务器之Minio对象存储技术参考指南

Minio对象存储技术MinIO 是一种高性能对象存储解决方案,原生支持 Kubernetes 部署。MinIO 提供与 Amazon Web Services S3 兼容的 API 并支持所有核心 S3 功能。MinIO 是在GNU Affero 通用公共许可证 v3.0下发布的。 也许提起对象存储技术,我们都经历过Fastdfs长时间的拉锯战,即使现在大部分都在使用云服务厂商提供的OSS对象存储服务,但是其所花费的经济成本也是递增的,而且数据都存储在别人的服务器上,从一定程度上来说,对于文

2021-10-10 04:10:26 1956

原创 Nginx服务器 | Nginx配置服务实战

When you realize you want to spend the rest of your life with somebody,you want the rest of your life to start as soon as possible. 当你意识到想和某人共度余生时,便会恨不得下半场人生马上开始。——《当哈利遇到莎莉》1989基本概述或许当提前80端口和443端口的时候,我们就能想起对应的Http访问[基于HTTP协议]和Https访问[基于HTTP协议+SSL证书]..

2021-03-29 19:44:11 490

原创 Nginx服务器 | Nginx基础服务实战

You got a dream,you gotta protect it.People can’t do something themselves,they wanna tell you you can’t do it.If you want something,go get it.不要别人告诉你该做什么,有梦想,就得保护。他人做不成什么事情,就跟你说你也做不成。如果你想要什么,就要去争取。——《当幸福来敲门》基本概述Nginx 是互联网主流的高性能 http 和 反响代理 Web 服务器...

2021-03-26 13:57:33 158 1

原创 Micronaut微服务 | 实战入门

Your story may not have a happy beginning, but that doesn't make you who you are, it is restof your story, who you choose to be.你或许没有一个幸福的开始,但是这并不能够代表你的所有,接下来你的生活取决于你的选择。——《功夫熊猫2》基本概述既然决定去做一件事情,就好比把自己铺成一张稿纸,不论是信笔涂鸦还是书写酣畅,就尽情去享受和体验就好。每一进步一点,天道酬勤,..

2021-03-12 17:12:49 1061

原创 Micronaut微服务 | 基础入门

Some people hear their own inner voices with great clearness. And they live by what they hear.Such people become crazy,or they become legends ......有些人能清楚地听到自己内心深处的声音,并以此行事。这些人要么变成了疯子,要么成为传奇。——《秋日传奇》基本概述A modern, JVM-based, full-stack framework for..

2021-03-09 21:58:30 258

原创 Micronaut微服务 | 基础入门

Some people hear their own inner voices with great clearness. And they live by what they hear.Such people become crazy,or they become legends ......有些人能清楚地听到自己内心深处的声音,并以此行事。这些人要么变成了疯子,要么成为传奇。——《秋日传奇》基本概述A modern, JVM-based, full-stack framework for..

2021-03-09 21:57:41 394

原创 Java编程开发之数据图表分析模型

数据统计分析多曲线图表分析实现基本需求分析假设在怪兽出没的年岁,加上年关在即,需要统计分析各个道路卡口车流量出入统计,主要从车流量和车牌地角度出发。如图所示的业务需求:道路卡口-车流量分析:道路卡口-车牌地分析:主要从车流量和车牌地2个纬度去分析与统计对应的流量数据横向与纵向分析:X轴和Y轴各自有3条曲线[总数=进关数+出关数]不同的时间纬度:按天统计[默认当天以及最近30天]和按月统计不同道路卡口统计:不同卡口以及卡口组统计数据业务需求分析道路卡口-车流量分析统计时间.

2021-03-01 21:56:37 501

原创 Java编程技术之浅析Java容器技术

Java容器集合是一种存储数据的容器,是Java开发中使用最频繁的对象类型之一.或许提起Collection,都会第一时间意识到List和Set以及Map等相关关键词。因为这几乎是我们日常开发里接触最多和遇见最频繁的,以及与数据处理交互最多的Java对象类型。换句话说,就是我们与数据进行处理的数据对象存储模型。但是:List->[AbstractList,ArrayList,AbstractSeaquentialList,LinkedList]Set->[AbstractSet,

2021-01-28 17:01:21 140

原创 Linux系统环境基于Docker搭建Mysql数据库服务实战

开放端口规划:mysql-develop:3407mysql-test: 3408mysql-release: 3409ps:1.不推荐使用默认端口-3306,建议自定义端口2.如果采用阿里云服务器,在安全组开放端口3.自建服务器依据实际情况打开防火墙开放端口[各个系统防火墙不一样,操作有所不同],譬如:Centos7 环境-防火墙[firewall-cmd]:firewall-cmd --zone=public --add-port=3407/tcp --permanen

2021-01-28 16:58:54 120

原创 Java编程技术之浅析JVM内存

JVMJVM->Java Virtual Machine:Java虚拟机,是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。基本认知:1.JVM是用于运行Java代码的假象计算机,主要有一套字节码指令集,一组寄存器,一个栈,一个垃圾回收,堆 和 一个存储方法域。2.JVM运行在操作系统之上,与硬件没有直接的交互。Java程序执行过程:1.编译->源文件由编译器编译成字节码[ByteCode] Java 源文件—-

2021-01-28 16:57:58 124

原创 Java编程技术之浅析SPI服务发现机制

SPI服务发现机制SPI是Java JDK内部提供的一种服务发现机制。SPI->Service Provider Interface,服务提供接口,是Java JDK内置的一种服务发现机制通过在ClassPath路径下的META-INF/services文件夹查找文件,自动加载文件里所定义的类[⚠️注意事项]:面向对象的设计里,一般推荐模块之间基于接口编程,模块之间不对实现类进行编码。如果涉及实现类就会违反可插拔的原则,针对于模块装配,Java SPI提供了为某个接口寻找服务的

2021-01-28 16:57:27 193 1

原创 Java编程开发之浅析Java引用机制

对于一个Java的对象而言,存储主要分为两种,一种是内存堆(Heap),内存堆是无序的,主要用来存放创建的Java对象;一种是内存栈(Stack),主要用来存放Java引用,然后在管理过程使用Java引用指向Java对象。关于Reference引用的“那些事儿"随着黄金梅丽号在大海之上的飘荡,一切看着是那么的风平浪静,但是每个人似乎都在忙着自己手里的那些事情....突然韦柏向萨博提出了一个问题:都知道JVM调优是当下从事Java开发必须要去具备甚至要去提升自己的一个重要环节,那你知道堆.

2021-01-21 18:04:53 172 1

原创 Linux系统环境基于Docker搭建Jenkins实战

关于CI,CD&CDCI->Continuous Integration:持续集成CD->Continuous Delivery:持续交付CD->Continuous Deployment:持续部署JenkinsJenkins是一款开源 CI&CD 软件,用于自动化各种任务,包括构建、测试和部署软件。支持各种运行方式,可通过系统包、Docker 或者通过一个独立的 Java 程序。Jenkins部署方式1.基于独立应用程序部署[Jenkin

2021-01-06 10:34:02 88

原创 Elasticsearch数据库 | Elasticsearch-7.5.0应用搭建实战

Elasticsearch 是一个可用于分布式以及符合RESTful 风格的搜索和数据分析引擎。—— Elastic Stack 官网搭建Elasticsearch的“那些事儿" 有一天,在黄金梅丽号的甲板上,韦柏告诉萨博,需要在接下来的项目开发过程中,运用到Elasticsearch数据库,主要用于黄金梅丽号上的各种设备采集数据实时查询,或许后期还会运用于分布式日志系统的搭建运用等,让萨博先做一次技术预研。于是,在萨博查询大量的资料发现,关于Elasticsearch数据库的搭建.

2020-11-06 00:19:04 438 1

原创 Elasticsearch数据库 | Elasticsearch-7.5.0应用基础实战

Elasticsearch 是一个可用于分布式以及符合RESTful 风格的搜索和数据分析引擎。—— Elastic Stack 官网关于Elasticsearch的“爱恨情仇"或许提起搜索服务器,大部分人都会想起Solr 和 Elasticsearch 甚至以及国产大厂自研等。随着人工智能和大数据时代的到来,甚至还带动了一系列的机器引擎的出现,譬如Splunk等。其中Solr 和 Elasticsearch是基于Lucene的搜索服务器。一般Solr是面向的是全文检索引擎,而Elast.

2020-09-27 01:19:05 373

原创 Linux系统环境基于Docker搭建Jenkins实战

关于CI,CD&CDCI->Continuous Integration:持续集成CD->Continuous Delivery:持续交付CD->Continuous Deployment:持续部署JenkinsJenkins是一款开源 CI&CD 软件,用于自动化各种任务,包括构建、测试和部署软件。支持各种运行方式,可通过系统包、Docker 或者通过一个独立的 Java 程序。Jenkins部署方式1.基于独立应用程序部署[Jenkin

2020-09-01 00:59:37 307

原创 Linux系统环境基于Docker搭建Jenkins实战

关于CI,CD&CDCI->Continuous Integration:持续集成CD->Continuous Delivery:持续交付CD->Continuous Deployment:持续部署JenkinsJenkins是一款开源 CI&CD 软件,用于自动化各种任务,包括构建、测试和部署软件。支持各种运行方式,可通过系统包、Docker 或者通过一个独立的 Java 程序。Jenkins部署方式1.基于独立应用程序部署[Jenkin

2020-09-01 00:57:10 273

原创 Java编程技术之浅析Java容器技术

Java容器集合是一种存储数据的容器,是Java开发中使用最频繁的对象类型之一.或许提起Collection,都会第一时间意识到List和Set以及Map等相关关键词。因为这几乎是我们日常开发里接触最多和遇见最频繁的,以及与数据处理交互最多的Java对象类型。换句话说,就是我们与数据进行处理的数据对象存储模型。但是:List->[AbstractList,ArrayList,AbstractSeaquentialList,LinkedList]Set->[AbstractSet,

2020-07-07 17:53:56 618

基于JDK源码解析Java领域中的并发锁,我们需要特别关注哪些内容?

在并发编程领域,有两大核心问题:一个是互斥,即同一时刻只允许一个线程访问共享资源;另一个是同步,即线程之间如何通信、协作。 主要原因是,对于多线程实现实现并发,一直以来,多线程都存在2个问题: ● 线程之间内存共享,需要通过加锁进行控制,但是加锁会导致性能下降,同时复杂的加锁机制也会增加编程编码难度 ● 过多线程造成线程之间的上下文切换,导致效率低下 因此,在并发编程领域中,一直有一个很重要的设计原则: “ 不要通过内存共享来实现通信,而应该通过通信来实现内存共享。” 简单来说,就是尽可能通过消息通信,而不是内存共享来实现进程或者线程之间的同步。

2022-09-21

基于JDK源码解析Java领域中的并发锁之设计与实现.pdf

在Java领域中, 尤其是在并发编程领域,对于多线程并发执行一直有两大核心问题:同步和互斥。其中: - 互斥(Mutual Exclusion):一个公共资源同一时刻只能被一个进程或线程使用,多个进程或线程不能同时使用公共资源。即就是同一时刻只允许一个线程访问共享资源的问题。 - 同步(Synchronization):两个或两个以上的进程或线程在运行过程中协同步调,按预定的先后次序运行。即就是线程之间如何通信、协作的问题。 针对对于这两大核心问题,利用管程是能够解决和实现的,因此可以说,管程是并发编程的万能钥匙。 虽然,Java在基于语法层面(synchronized 关键字)实现了对管程技术,但是从使用方式和性能上来说,内置锁(synchronized 关键字)的粒度相对过大,不支持超时和中断等问题。 为了弥补这些问题,从JDK层面对其“重复造轮子”,在JDK内部对其重新设计和定义,甚至实现了新的特性。

2022-09-17

Java并发编程解析 | 解析AQS基础同步器的设计与实现

Java并发编程解析 | 解析AQS基础同步器的设计与实现

2022-09-08

Linux Centos7 环境搭建Docker部署Zookeeper服务实战.pdf

Linux Centos7 环境搭建Docker部署Zookeeper服务实战

2021-03-08

Linux环境基于CentOS7 搭建部署Docker容器.pdf

Linux环境基于CentOS7 搭建部署Docker容器

2019-08-30

空空如也

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

TA关注的人

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