- 博客(206)
- 资源 (25)
- 收藏
- 关注
原创 webpack 管理资源
如果你是从开始一直遵循着指南的示例,现在会有一个小项目,显示 “Hello webpack”。现在我们尝试整合一些其他资源,比如图像,看看 webpack 如何处理。像 webpack 这样的工具,将**动态打包(dynamically bundle)**所有依赖项。这是极好的创举,因为现在每个模块都可以明确表述它自身的依赖,我们将避免打包未使用的模块。webpack 最出色的功能之一就是,除了 JavaScript,还可以通过 loader 引入任何其他类型的文件。也就是说,以上列出的那些 JavaScr
2022-06-09 09:00:00
420
6
原创 webpack 快速开始
webpack 用于编译 JavaScript 模块。一旦完成安装,你就可以通过 webpack 的 CLI或 API与其配合交互。首先我们创建一个目录,初始化 npm,然后 在本地安装 webpack,接着安装 webpack-cli(此工具用于在命令行中运行 webpack):现在我们将创建以下目录结构、文件和内容:projectsrc/index.jsindex.html我们还需要调整 文件,以便确保我们安装包是,并且移除 入口。这可以防止意外发布你的代码。package.json在此
2022-06-08 08:30:00
393
1
原创 安装 webpack 的各种方法
本指南介绍了安装 webpack 的各种方法。在开始之前,请确保安装了 Node.js 的最新版本。使用 Node.js 最新的长期支持版本(LTS - Long Term Support),是理想的起步。使用旧版本,你可能遇到各种问题,因为它们可能缺少 webpack 功能以及/或者缺少相关 package 包。要安装最新版本或特定版本,请运行以下命令之一:如果你使用 webpack 4+ 版本,你还需要安装 CLI。对于大多数项目,我们建议本地安装。这可以使我们在引入破坏式变更(breaking c
2022-06-07 07:45:00
933
原创 webpack 基本概念
本质上,webpack 是一个现代 JavaScript 应用程序的静态模块打包器(module bundler)。当 webpack 处理应用程序时,它会递归地构建一个依赖关系图(dependency graph),其中包含应用程序需要的每个模块,然后将所有这些模块打包成一个或多个 bundle。从 webpack v4.0.0 开始,可以不用引入一个配置文件。然而,webpack 仍然还是高度可配置的。在开始前你需要先理解四个核心概念:本文档旨在给出这些概念的高度概述,同时提供具体概念的详尽相关用例。*
2022-06-06 10:12:21
315
原创 k8s入门 公布应用程序
公布应用程序目标了解 Kubernetes 的 Service(服务)了解 Labels(标签)和 LabelSelector(标签选择器)与 Service(服务)的关系在 kubernetes 集群中,通过 Service(服务)向外公布应用程序Kubernetes Service(服务)概述事实上,Pod(容器组)有自己的 生命周期。当 worker node(节点)故障时,节点上运行的 Pod(容器组)也会消失。然后,Deployment (opens new window可以通过创
2022-06-04 09:15:00
174
原创 k8s 入门 查看Pods/Nodes
查看Pods/Nodes目标了解Kubernetes Pods(容器组)了解Kubernetes Nodes(节点)排查故障Kubernetes Pods在 部署第一个应用程序中创建 Deployment 后,k8s创建了一个 Pod(容器组) 来放置应用程序实例(container 容器)。Pods概述Pod 容器组 是一个k8s中一个抽象的概念,用于存放一组 container(可包含一个或多个 container 容器,即图上正方体),以及这些 container (容器)的一些
2022-06-03 07:45:00
5788
原创 Kubernetes 部署快速开始
Kubernetes 部署在 k8s 上进行部署前,首先需要了解一个基本概念 DeploymentDeployment 译名为 部署。在k8s中,通过发布 Deployment,可以创建应用程序 (docker image) 的实例 (docker container),这个实例会被包含在称为 Pod 的概念中,Pod 是 k8s 中最小可管理单元。在 k8s 集群中发布 Deployment 后,Deployment 将指示 k8s 如何创建和更新应用程序的实例,master 节点将应用程序实例调度
2022-06-01 08:30:00
120
原创 k8s 入门 伸缩应用程序
伸缩应用程序目标使用 kubectl 伸缩应用程序。Scaling(伸缩)应用程序在之前的文章中,我们创建了一个 Deployment (opens new window,然后通过 服务 (opens new window提供访问 Pod 的方式。我们发布的 Deployment 只创建了一个 Pod 来运行我们的应用程序。当流量增加时,我们需要对应用程序进行伸缩操作以满足系统性能需求。伸缩 的实现可以通过更改 nginx-deployment.yaml 文件中部署的 replicas(副本数
2022-06-01 08:15:00
484
原创 Kubernetes 介绍
Kubernetes是一个可以移植、可扩展的开源平台,使用 声明式的配置并依据配置信息自动地执行容器化应用程序的管理。在所有的容器编排工具中(类似的还有 docker swarm / mesos等),Kubernetes的生态系统更大、增长更快,有更多的支持、服务和工具可供用户选择。回顾为了理解Kubernetes的用处,我们先回顾一下历史。大致来说,在部署应用程序的方式上,我们主要经历了三个时代:传统部署时代:早期,企业直接将应用程序部署在物理机上。由于物理机上不能为应用程序定义资源使用边界,
2022-05-31 09:42:31
2250
原创 java Collections使用方法与详细分析
Collections此类仅由对集合进行操作或返回集合的静态方法组成。用例import java.util.*;public class Test { public static void main(String[] args) { ArrayList<Integer> arrayList = new ArrayList<>(); arrayList.add(12); arrayList.add(10); .
2022-05-22 08:30:00
1201
原创 ArrayDeque 使用方法与源码分析
目录ArrayDeque属性构造函数方法入队扩容出队检索作为栈总结ArrayDeque接口的可调整大小的数组实现Deque。数组双端队列没有容量限制;它们会根据需要增长以支持使用。它们不是线程安全的;在没有外部同步的情况下,它们不支持多线程并发访问。禁止使用空元素。此类可能比 Stack用作堆栈时更快,并且比LinkedList 用作队列时更快。这个类的iterator方法返回的迭代器是 快速失败的:如果在迭代器创建后的任何时候修改了双端队列,除了通过迭代器自己的remove 方法之外,迭代器通常会.
2022-05-21 09:00:00
487
原创 LinkedHashSet 详细分析
LinkedHashSetSet接口的哈希表和链表实现,具有可预测的迭代顺序。此实现与 HashSet的不同之处在于它维护一个双向链表,该列表贯穿其所有条目。这个链表定义了迭代顺序,即元素插入集合的顺序(插入顺序)。请注意,如果将元素重新插入集合中,则插入顺序**不受影响。LinkedHashSet底层使用LinkedHashMap存储元素。LinkedHashSet是有序的,它是按照插入顺序排序的。 public LinkedHashSet() { super(16, .75f,.
2022-05-20 08:30:00
890
原创 TreeSet 使用与详细分析
TreeSet底层基于TreeMap,在集合创建时使用其自然排序或Comparator提供的排序,具体取决于使用的构造函数。import java.util.*;public class Test { public static void main(String[] args) { TreeSet<Integer> set=new TreeSet<>(); set.add(5); set.add(4); .
2022-05-19 16:49:45
598
原创 k8s 中 Redis 部署
目录Redis 部署NFS 服务创建Redis PV/PVC 创建Redis ConfigMap创建Redis Deploy 创建Redis Service 创建k8s验证关于appendonly.aof和dump.rdbRedis 部署NFS 服务创建这里不说了,大家可以自行搜索一下创建 NFS 存储服务,这里依赖的持久化就是 NFS 服务。Redis PV/PVC 创建apiVersion: v1kind: PersistentVolumemetadata: name: redis-.
2022-05-17 08:00:00
3444
原创 k8s 中 Mysql 部署
目录Mysql 部署NFS 服务创建Mysql PV/PVC 创建Mysql Deploy 创建Mysql Service 创建Mysql 部署部署 Mysql 的前提是有 K8s 集群,之前有一篇已经详细写过如何测试部署 K8s 集群了,这里就不再多说。NFS 服务创建这里不说了,大家可以自行搜索一下创建 NFS 存储服务,这里依赖的持久化就是 NFS 服务。Mysql PV/PVC 创建Persistent Volume 和 Persistent Volume Claim,主要是管理服务持.
2022-05-16 19:42:13
1206
原创 k8s中Docker配置详解
Docker配置详解Docker Engine V1.12 之后版本,用户可以自行创建 daemon.json 文件对 Docker Engine 进行配置和调整。vim /etc/docker/daemon.json{ “dns”: [“192.168.1.1”], ——————设定容器DNS的地址,在容器的 /etc/resolv.conf文件中可查看。 “data-root”:"/var/lib/docker", ————-Docker运行时使用的根路径,默认/var/lib/.
2022-05-15 09:30:00
4914
原创 K8s 修改NodePort的范围
修改NodePort的范围在 Kubernetes 集群中,NodePort 默认范围是 30000-32767,某些情况下,因为您所在公司的网络策略限制,您可能需要修改 NodePort 的端口范围,本文描述了具体的操作方法。修改kube-apiserver.yaml使用 kubeadm 安装 K8S 集群的情况下,您的 Master 节点上会有一个文件 /etc/kubernetes/manifests/kube-apiserver.yaml,修改此文件,向其中添加 --service-node.
2022-05-14 08:45:00
2271
原创 Docker harbor的安装部署
集群要求说明:在安装 Harbor 私有镜像仓库之前,需要先有一个K8S集群,本文中使用的集群的搭建过程请见 基于CentOS 7.8安装Kubernetes 1.25.5单Master节点集群 这篇博文。硬件要求说明:安装 Harbor 私有镜像仓库的主机或虚拟机要求至少2核4G且内存硬盘不低于40GB,本文中使用的是 CentOS7.8 虚拟机来安装Harbor私有镜像仓库。软件要求说明:安装 Harbor 私有镜像仓库之前需要先安装 docker 和 docker-compose。特别说明:本文
2022-05-13 12:18:19
1555
原创 使用kubeadm安装kubernetes_v1.21.x(单主)
目录使用kubeadm安装kubernetes_v1.21.x(单主)配置要求检查 centos / hostname检查网络安装安装containerd/kubelet/kubeadm/kubectl初始化 master 节点安装网络插件calicoflannel初始化 worker节点获得 join命令参数初始化worker检查初始化结果卸载非root用户安装说明k8s 设置Node节点驱逐pod的时间(待验证)kube-controller-manager调整kube-apiserver调整kube.
2022-05-12 14:39:29
570
原创 分布式数据库HBase
目录分布式数据库HBase独立模式下载解压最新版本启动 HBaseShell 练习停止 HBase伪分布式用于本地测试分布式模式分布式数据库HBase独立模式本指南介绍了在单机安装HBase的方法。会引导你通过shell创建一个表,插入一行,然后删除它,最后停止HBase。下载解压最新版本选择一个 Apache 下载镜像,下载 HBase Releases. 点击 stable目录,然后下载后缀为 .tar.gz 的文件$ wget https://archive.apache.org/dis.
2022-05-10 07:30:00
174
原创 flink 教程 Window
WindowKeyedStream → WindowedStream可以在已分区的 KeyedStreams 上定义 Windows。Windows 根据某些特征(例如,最近 5 秒内到达的数据)对每个键中的数据进行分组。import org.apache.flink.api.common.functions.FlatMapFunction;import org.apache.flink.api.java.tuple.Tuple2;import org.apache.flink.streaming
2022-05-09 07:30:00
862
原创 【JAVA多线程】ConcurrentLinkedQueue源码分析
ConcurrentLinkedQueue基于链接节点的无界线程安全队列。此队列对元素进行 FIFO(先进先出)排序。队列的*头部*是在队列中时间最长的元素。队列的*尾部*是在队列中时间最短的元素。新元素被插入到队列的尾部,队列检索操作获取队列头部的元素。`ConcurrentLinkedQueue`当许多线程将共享对公共集合的访问时,A是一个合适的选择。与大多数其他并发集合实现一样,此类不允许使用`null`元素。此实现采用了一种有效*的非阻塞* 算法
2022-05-08 09:00:00
282
原创 【JAVA多线程】PriorityBlockingQueue源码分析
PriorityBlockingQueue是一个无界队列,它没有限制,在内存允许的情况下可以无限添加元素;它又是具有优先级的队列,是通过构造函数传入的对象来判断,传入的对象必须实现comparable接口。
2022-05-07 18:11:25
337
原创 【JAVA多线程】DelayQueue 源码分析
非常适合指定时间之后,才能让消费者获取到的场景。队列 的*头部*`Delayed`是过去延迟过期最远的元素。如果没有延迟过期,则没有 head`poll` 并将返回`null`。当元素的 `getDelay(TimeUnit.NANOSECONDS)`方法返回的值小于或等于零时,就会发生过期。即使无法使用`take`or`poll`删除未过期的元素,它们也会被视为普通元素。例如,该`size`方法返回过期和未过期元素的计数。此队列不允许空元素。
2022-05-06 12:32:00
518
原创 【JAVA多线程】Thread 源码分析
*线程*是程序中的执行线程。Java 虚拟机允许应用程序同时运行多个执行线程。每个线程都有一个优先级。具有较高优先级的线程优先于具有较低优先级的线程执行。每个线程可能会也可能不会被标记为守护进程。当在某个线程中运行的代码创建一个新`Thread`对象时,新线程的优先级最初设置为等于创建线程的优先级,并且当且仅当创建线程是守护进程时,它才是守护线程。有两种方法可以创建一个新的执行线程。一种是将类声明为`Thread`。创建线程的另一种方法是声明一个实现`Runnable`接口的类。
2022-05-05 09:15:00
711
原创 【JAVA多线程】ThreadLocal源码分析
此类提供线程局部变量。这些变量不同于它们的正常对应变量,因为每个访问一个(通过它的 `get`或`set`方法)的线程都有它自己的、独立初始化的变量副本。 `ThreadLocal`实例通常是希望将状态与线程的类中的私有静态字段(例如,用户 ID)相关联。场景:一般在连接池优化上会使用到ThreadLocal,避免使用同步,提高性能。
2022-05-04 08:15:00
310
原创 【JAVA多线程】ArrayBlockingQueue 源码分析
由数组支持的有界阻塞队列。此队列对元素进行 FIFO(先进先出)排序。队列的 *头部*是在队列中时间最长的元素。队列的*尾部*是在队列中时间最短的元素。新元素被插入到队列的尾部,队列检索操作获取队列头部的元素。这是一个经典的“有界缓冲区”,其中一个固定大小的数组保存由生产者插入并由消费者提取的元素。一旦创建,容量将无法更改。尝试将`put`一个元素放入一个完整的队列将导致操作阻塞;尝试`take`从空队列中获取元素同样会阻塞。
2022-05-03 07:45:00
270
原创 【JAVA多线程】LinkedBlockingQueue 源码分析
基于链接节点的可选有界阻塞队列。此队列对元素进行 FIFO(先进先出)排序。队列的*头部*是在队列中时间最长的元素。队列的*尾部*是在队列中时间最短的元素。新元素被插入到队列的尾部,队列检索操作获取队列头部的元素。链接队列通常比基于数组的队列具有更高的吞吐量,但在大多数并发应用程序中性能更不可预测。可选的容量绑定构造函数参数用作防止过度队列扩展的一种方式。容量,如果未指定,则等于`Integer.MAX_VALUE`。链接节点在每次插入时动态创建,除非这会使队列超出容量。
2022-05-02 09:30:00
642
原创 【Java源码分析】TreeMap源码分析
TreeMap基于红黑树的NavigableMap实现。Map根据其键的自然顺序或Comparator在Map创建时提供的排序,具体取决于使用的构造函数。TreeMap利用了红黑树左节点小,右节点大的性质,根据 key 进行排序,使每个元素能够插入到红黑树适当的位置,维护了 key 的大小关系,适用于 key 需要排序的场景。因为底层使用的是红黑树,所以 TreeMap 中的 containsKey、get、put、remove 等方法的时间复杂度都是 log(n)。实例import java..
2022-05-01 09:30:00
345
原创 【Java源码分析】LinkedHashMap源码分析
目录LinkedHashMap用法属性插入节点获取节点删除节点总结LinkedHashMapMap接口的哈希表和链表实现,具有可预测的迭代顺序。此实现与 HashMap的不同之处在于它维护一个双向链表,该列表贯穿其所有条目。这个链表定义了迭代顺序,通常是键插入映射的顺序(插入顺序)。实现不是同步的。当我们将true传递给accessOrder时,我们将实例化一个访问顺序LinkedHashMap 。 访问顺序LinkedHashMap维护从最近使用到最近使用的元素的访问顺序,而不是插入顺序。用法.
2022-04-30 08:15:00
337
原创 【Java源码分析】String getChars
getChars()getChars() 方法将字符从字符串复制到目标字符数组。语法public void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)参数srcBegin – 字符串中要复制的第一个字符的索引。srcEnd – 字符串中要复制的最后一个字符之后的索引。dst – 目标数组。dstBegin – 目标数组中的起始偏移量。返回值没有返回值实例public class Test { .
2022-04-30 07:45:00
514
原创 【Java源码分析】String 字符串连接 join
join返回由delimiter连接的副本和指定的副本组成的新字符串 。请注意,如果元素为空,则"null"添加。语法:join(CharSequence delimiter, CharSequence... elements)join(CharSequence delimiter, Iterable<? extends CharSequence> elements)参数:delimiter- 分隔每个元素的分隔符elements- 要连接在一起的元素。返回:一个新Str.
2022-04-29 07:45:00
565
原创 【Java源码分析】String 替换 replace
字符串替换replace()replace() 方法通过用 newChar 字符替换字符串中出现的所有 searchChar 字符,并返回替换后的新字符串。语法public String replace(char searchChar, char newChar) 参数searchChar – 原字符。newChar – 新字符。返回值替换后生成的新字符串。实例以下实例对字符串 Runoob 中的字符进行替换:public class Main { public.
2022-04-28 07:45:00
2522
原创 【Java源码分析】String 字符串索引查找 indexOf
indexOf()indexOf() 方法有以下四种形式:返回指定字符在字符串中第一次出现处的索引,如果此字符串中没有这样的字符,则返回 -1。public int indexOf(int ch):public int indexOf(int ch, int fromIndex): 。int indexOf(String str):int indexOf(String str, int fromIndex)参数ch – 字符,Unicode 编码。如a-97fromIndex – .
2022-04-27 08:00:00
1931
原创 【Java源码分析】String 检测 isEmpty
isEmptyisEmpty() 方法用于判断字符串是否为空。语法public boolean isEmpty()参数无返回值如果字符串为空返回 true,否则返回 false。字符串通过 length()方法计算字符串长度,如果返回 0,即为空字符串。实例以下实例演示了 isEmpty() 方法的使用:public class Main { public static void main(String[] args) { String myStr1 =.
2022-04-27 07:45:00
246
原创 【Java源码分析】String 字符串索引查找lastIndexOf
lastIndexOflastIndexOf() 方法有四种形式:返回指定字符在此字符串中最后一次出现处的索引,如果此字符串中没有这样的字符,则返回 -1。语法public int lastIndexOf(int ch)或public int lastIndexOf(int ch, int fromIndex)或public int lastIndexOf(String str)或public int lastIndexOf(String str, int fromIndex)参数.
2022-04-26 08:30:00
839
原创 【Java源码分析】String 检测 endsWith
endsWith()endsWith() 方法用于测试字符串是否以指定的后缀结束。语法public boolean endsWith(String suffix)参数suffix – 指定的后缀。返回值如果参数表示的字符序列是此对象表示的字符序列的后缀,则返回 true;否则返回 false。注意,如果参数是空字符串,或者等于此 String 对象(用 equals(Object) 方法确定),则结果为 true。实例public class Test { public s.
2022-04-26 07:45:00
363
原创 【Java源码分析】String 字符串hashCode
hashCodehashCode() 方法用于返回字符串的哈希码。字符串对象的哈希码根据以下公式计算:s[0]*31^(n-1) + s[1]*31^(n-2) + ... + s[n-1]使用 int 算法,这里 s[i] 是字符串的第 i 个字符的 ASCII 码,n 是字符串的长度,^ 表示求幂。空字符串的哈希值为 0。语法public int hashCode()参数无。返回值返回对象的哈希码值。实例public class Test { public
2022-04-25 10:30:00
2050
原创 【Java源码分析】String 检测 startsWith
目录startsWith()语法参数返回值实例源码startsWith()startsWith() 方法用于检测字符串是否以指定的前缀开始。语法public boolean startsWith(String prefix, int toffset)或public boolean startsWith(String prefix)参数prefix – 前缀。toffset – 字符串中开始查找的位置。返回值如果字符串以指定的前缀开始,则返回 true;否则返回 false。
2022-04-25 09:03:55
285
原创 JAVA String 转换相关函数分析
目录字符串转换valueOf参数返回值实例源码toCharArray()语法参数返回值实例源码toLowerCase实例toUpperCasegetBytes()语法参数返回值实例字符串转换valueOfvalueOf() 方法有以下几种不同形式:valueOf(boolean b): 返回 boolean 参数的字符串表示形式。.valueOf(char c): 返回 char 参数的字符串表示形式。valueOf(char[] data): 返回 char 数组参数的字符串表示形式。v
2022-04-25 08:52:07
620
AI+deepseek+入门级教程
2025-02-27
Flink 旨在以闪电般的速度处理连续的数据流。这个简短的指南将向您展示如何下载、安装和运行最新的 Flink 稳定版本。您还将
2022-04-11
jdk7新特性jdk8新特性
2022-01-13
JAVA23种设计模式及快捷记忆
2022-01-13
大数据Hadoop相关技术
2019-11-20
云计算OpenStack技术云数据库中心与运维
2019-11-19
Linux基础-云计算.zip
2019-11-19
09.大数据工作流引擎Oozie.pptx.pptx
2019-11-07
08.分布式分析引擎Kylin.pptx.pptx
2019-11-07
07.新一代计算框架Tez.pptx.pptx
2019-11-07
06.Flume的体系架构与示例.pptx
2019-11-07
05.Yarn体系架构与资源调度模型.pptx
2019-11-07
04.Flink的DataSet与DataStream.pptx.pptx
2019-11-07
03.Flink的体系架构.pptx
2019-11-07
02.分布式计算模型MapReduce.pptx
2019-11-07
敏捷项目管理终极培训-Scrum.ppt
2019-09-16
spring学习源码包括IOC 、AOP、MVC等
2019-09-16
redis命令参考手册.zip
2019-09-16
JAVA6新特性介绍.zip
2019-09-16
软件开发之开源与敏捷
2018-03-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人