4 hei bai ying

尚未进行身份认证

我要认证

暂无相关简介

等级
TA的排名 2w+

Docker 核心概念与基本使用

一、Docker 简介Docker 是一个构建,发布和运行应用程序的开放平台。Docker 以容器为资源分隔和调度的基本单位,容器封装了整个项目运行时所需要的所有环境,通过 Docker 你可以将应用程序与基础架构分离,像管理应用程序一样管理基础架构,以便快速完成项目的部署与交付。Docker 使用 Go 语言进行开发,基于 Linux 内核的 cgroup,namespace,以及 AUFS...

2020-01-17 13:39:41

Nginx 基础之静态网站部署,负载均衡,动静分离

一、Nginx 简介1.1 简介Nginx(engine x)是一个免费的,开源的,高性能的 HTTP 服务器, IMAP/POP3 代理服务器 和 TCP/UDP 代理服务器,通常可以用于进行反向代理和实现基于软件的负载均衡,除此之外,它还具备以下特性:Nginx 在设计时遵循模块化的设计方案,可以通过组合模块来扩展实现不同的功能,具备很高的扩展性。Nginx 遵循 matser \ ...

2020-01-17 13:38:00

详解四层、五层、七层计算机网络模型

一、体系结构计算机网络的各层及其协议的集合被称为网络的体系结构,按照不同的维度,其常被分为七层、五层、四层网络结构:1.1 七层网络模型开放式系统互联模型(Open System Interconnection Model,简称为 OSI 模型)是一种概念模型,由国际标准化组织提出,并试图成为计算机在世界范围内互连为网络的标准框架,它具有七层网络结构。1.2 四层网络模型互联网协议套件(...

2020-01-17 13:36:02

深入理解 Java 虚拟机

一、基本概念1.1 OpenJDK自 1996 年 JDK 1.0 发布以来,Sun 公司在大版本上发行了 JDK 1.1、JDK 1.2、JDK 1.3、JDK 1.4、JDK 5,JDK 6 ,这些版本的 JDK 都可以统称为 SunJDK 。之后在 2006 年的 JavaOne 大会上,Sun 公司宣布将 Java 开源,在随后的一年多里,它陆续将 JDK 的各个部分在 GPL v2(...

2020-01-16 13:44:31

Java 23 种设计模式精讲

软件设计的原则1. 开闭原则定义:软件实体应当对扩展开放,对修改关闭。2. 里氏替换原则定义:继承必须保证超类所拥有的性质在子类中仍然成立。即子类在继承父类时,除了添加新的方法来新增功能外,尽量避免重写父类方法,因为这会导致整个继承体系的复用性变差。3. 依赖倒置原则定义:高层模块不应该依赖低层模块,两者都应该依赖其抽象;抽象不应该依赖细节,细节应该依赖抽象。其核心思想是要面向接口编程...

2020-01-16 13:41:04

详解 Java 并发编程

一、线程1.1 创建线程创建线程通常有以下三种方式:实现 Runnable 接口,并重写其 run 方法:public class J1_Method01 { public static void main(String[] args) { System.out.println("Main线程的ID为:" + Thread.currentThread().get...

2020-01-16 11:23:44

Java 反射与注解

一、Class 类1.1 Class 对象在 Java 中,每个已加载的类在内存中都有一份类信息,类信息对应的类是 java.lang.Class,每个对象都持有指向它所属类信息的引用。所以想要获取 Class 对象,有以下三种方法:通过类名获取:Class<Date> dateClass = Date.class;Class<Integer> integer...

2020-01-16 11:04:16

基于 HAProxy + KeepAlived 搭建 RabbitMQ 高可用集群

一、集群简介1.1 集群架构当单台 RabbitMQ 服务器的处理消息的能力达到瓶颈时,此时可以通过 RabbitMQ 集群来进行扩展,从而达到提升吞吐量的目的。RabbitMQ 集群是一个或多个节点的逻辑分组,集群中的每个节点都是对等的,每个节点共享所有的用户,虚拟主机,队列,交换器,绑定关系,运行时参数和其他分布式状态等信息。一个高可用,负载均衡的 RabbitMQ 集群架构应类似下图:...

2020-01-16 10:49:01

RabbitMQ 客户端开发

一、基本 API1.1 连接服务不论是进行生产者还是消费者的开发,第一步都必须要先连接到 RabbitMQ Broker ,然后创建信道 Channel,Channel 是后续一切操作的基础。代码如下:// 1.创建连接工厂ConnectionFactory factory = new ConnectionFactory();// 2.配置服务器地址和连接信息factory.setHo...

2020-01-16 10:47:01

RabbitMQ 核心概念

一、消息队列消息队列中间件 (Message Queue Middleware,简称 MQ) 是指利用高效可靠的消息传递机制进行与平台无关的数据交流,它可以在分布式环境下扩展进程间的数据通信,并基于数据通信来进行分布式系统的集成。它主要适用于以下场景:项目解耦:不同的项目或模块可以使用消息中间件进行数据的传递,从而可以保证模块的相对独立性,实现解耦。流量削峰:可以将突发的流量 (如秒杀数据...

2020-01-16 10:42:05

MongoDB 高可用集群架构

一、分片机制1.1 核心组件在单机环境下,高频率的查询会给服务器 CPU 和 I/O 带来巨大的负担,基于这个原因,MongoDB 提供了分片机制用于解决大数据集的分布式部署,从而提高系统的吞吐量。一个标准的 MongoDB 分片集群通常包含以下三类组件:shard :用于存储分片数据的 Mongod 服务器,为保证数据高可用,建议部署为副本集。config servers :配置服务...

2020-01-16 10:32:00

MongoDB 高可用基础之副本集

一、副本集1.1 复制功能为保证数据安全,实现高可用,MongoDB 提供了复制功能,可以将主节点上的数据复制到多个从节点上,这样即便主节点异常,由于数据是以多副本的方式存储,仍然可以保证数据安全。一个标准的三节点的副本集的架构如下: 1. 初始同步在副本集初始化时,主节点的 mongod 进程会扫描当前节点上每个数据库中的每个集合,然后将这些数据发送给从节点,进行初始化的全量复制。...

2020-01-16 10:29:30

MongoDB 聚合管道

一、聚合简述在日常开发中,我们通常需要对存储数据进行聚合分析后,再返回给客户端。MongoDB提供了三种聚合的方式,分别是聚合管道,map-reduce 函数和单用途聚合方法。二、聚合管道MongoDB 的聚合操作类似于流水线处理,文档会依次进入多个管道阶段并执行相应的操作。这里先插入部分演示数据:db.employees.insertMany([ { emp_no...

2020-01-16 10:26:39

MongoDB 索引详解

一、索引简介1.1 创建索引和大多数关系型数据库一样,MongoDB 支持使用索引来进行查询优化,采用类似 B-Tree 的数据结构来储存索引和文档的位置信息,同样也支持前缀索引和覆盖索引。在当前最新的 MongoDB 4.0 中,索引的创建语法如下:db.collection.createIndex( <key and index type specification>, &l...

2020-01-16 10:25:38

MongoDB 基本使用

一、数据类型1.1 BSON文档 (Documents) 是 MongoDB 中数据的基本单元,它是键值对的有序集合,在数据结构上类似于 JSON,但是由于 JSON 只支持基本的 6 种数据类型:null,布尔,数字,字符串,数组和对象,因此其表达能力有限,所以 MongoDB 基于 JSON 拓展出新的数据格式 BSON 。BSON (Binary JSON) 是类似 JSON 文档的二进...

2020-01-16 10:24:34

Redis 集群模式

一、集群模式介绍Redis Cluster 是 Redis 官方提供的分布式实现,在 Redis 3.0 版本正式推出,通过集群模式可以扩展单机的性能瓶颈,同时也可以通过横向扩展来实现扩容。此外,Redis 集群模式还提供了副本迁移机制,用于保证数据的安全和提高集群的容错能力,从而实现高可用。1.1 数据分区Redis Cluster 采用虚拟槽进行分区,槽是集群内数据管理和迁移的基本单位。...

2020-01-15 14:55:12

Redis 哨兵模式

一、复制为了解决单点问题,保证数据的安全性,Redis 提供了复制机制,用于满足故障恢复和负载均衡等需求。通过复制机制,Redis 可以通过多个副本保证数据的安全性,从而提供高可用的基础,Redis 的哨兵和集群模式都是在复制基础上实现高可用的。1.1 建立复制关系想要对两个 Redis 节点建立主从复制关系,可以通过以下三种方式来实现:在从节点的配置文件中配置 slaveof {mas...

2020-01-15 14:47:13

Redis AOF 和 RDB 持久化策略原理

一、数据持久化默认情况下 Redis 的数据都是保存在内存中,为避免 Redis 进程意外退出而导致数据丢失的问题,Redis 提供了 RDB 和 AOF 两种方式来实现数据的持久化存储。二、RDB 机制RDB 机制是以指定的时间间隔将 Redis 中的数据生成快照并保存到硬盘中,它更适合于定时备份数据的应用场景。可以通过手动或者自动的方式来触发 RDB 机制:2.1 手动触发可以通过...

2020-01-15 14:43:24

Redis 基本数据类型和常用命令

一、数据类型Redis 5 支持以下多种数据类型:二进制安全的字符串。Lists (列表):根据插入顺序排序的字符串元素的集合。Sets (集):未排序的不重复的字符串元素的集合。Sorted Sets (排序集):类似于集,但每个字符串元素与被称为分数的值相关,元素总是按其分数排序。Hashes (散列) :由字段 (Field) 和值都是字符串组成的映射的集合。Bit Arra...

2020-01-15 14:39:53

MySQL 查询性能分析之 Explain

EXPLAIN 关键字可以用于获取 SQL 语句执行计划的相关信息,在 MySQL 8.0 中,EXPLAIN 支持大多数 SQL 语句,如 SELECT 、DELETE 、INSERT 、REPLACE、和 UPDATE 。示例如下:mysql> EXPLAIN SELECT * FROM employees;+----+-------------+-----------+-----...

2020-01-08 11:32:46

查看更多

勋章 我的勋章
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。