自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小松de博客

一念成佛,一念成魔,你若不渡我成佛,那我渡你入魔

  • 博客(64)
  • 资源 (3)
  • 问答 (3)
  • 收藏
  • 关注

原创 Nacos + Sentinel + Dubbo 三剑合璧

目录1. 父工程和接口工程改造2. 改造提供者⼯程(简历微服务)3. 服务消费者工程改造改造“⾃动投递微服务”和“简历微服务”,删除OpenFeign 和 Ribbon,使⽤DubboRPC 和 Dubbo LB⾸先,需要删除或者注释掉⽗⼯程中的热部署依赖<!--热部署--><!--<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring

2021-01-11 00:02:29 271 1

原创 第⼆代 Spring Cloud 核⼼组件(SCA)Sentinel 分布式系统的流量防卫兵

目录1. Sentinel 介绍1.1 Sentinel 的两个部分1.2 Sentinel 的特征2. Sentinel 部署3. 服务改造1. Sentinel 介绍Sentinel是⼀个⾯向云原⽣微服务的流量控制、熔断降级组件。替代Hystrix,针对问题:服务雪崩、服务降级、服务熔断、服务限流Hystrix:服务消费者(⾃动投递微服务) > 调⽤服务提供者(简历微服务)在调⽤⽅引⼊Hystrix > 单独搞了⼀个Dashboard项⽬ > Turbine1)⾃⼰搭建监控平

2021-01-10 23:28:53 234

原创 第⼆代 Spring Cloud 核⼼组件(SCA) Nacos 服务注册和配置中⼼

目录1. Nacos 介绍2. Nacos功能特性3. Nacos 单例服务部署4. Nacos 服务注册中心4.1 服务提供者注册到 Nacos4.2 保护阈值4.3 服务消费者从Nacos获取服务提供者4.4 负载均衡1. Nacos 介绍Nacos(Dynamic Naming and Configuration Service)是阿⾥巴巴开源的⼀个针对微服务架构中服务发现、配置管理和服务管理平台。Nacos 就是注册中⼼+配置中⼼的组合(Nacos = Eureka + Config + Bu

2021-01-07 14:51:13 227

原创 微服务统一认证方案 Spring Cloud OAuth2 + JWT

目录1. 微服务架构下统⼀认证介绍2. 微服务架构下统⼀认证思路2.1 基于 session 的认证⽅式2.2 基于 token 的认证⽅式3. OAuth2 开放授权协议 / 标准3.1 OAuth2 相关介绍3.2 OAuth2 协议⻆⾊和流程3.3 什么情况下需要使⽤ OAuth23.4 OAuth2 颁发 Token授权⽅式4. Spring Cloud OAuth2 + JWT 的实现4.1 Spring Cloud OAuth2 介绍4.2 Spring Cloud OAuth2 构建微服

2021-01-06 11:38:19 1599 2

原创 微服务监控之分布式链路追踪技术 Sleuth + Zipkin

分布式链路追踪技术适用场景场景描述为了支撑日益增长的庞大业务量,我们会使用微服务架构设计系统,使系统不仅能够通过集群部署抵挡流量的冲击,又能根据业务进行灵活的扩展。那么,在微服务架构下,一次请求少则经过三四次服务调用完成,多则跨越几十个甚至是上百个服务节点。那么问题接踵而来:如何动态展示服务的调用链路?(比如:A服务调用了哪些其他的服务)如何分析服务调用链路中的瓶颈节点并对其进行调优?(比如:A > B > C,C服务处理时间特别长)如何快速进行服务链路的故障发现?这就是分布

2020-12-31 10:30:24 708 1

原创 Zookeeper学习:开源客户端 Curator

1. Curator 简介Curator 是 Netflix 公司开源的一套 Zookeeper 客户端框架,和ZKClient一样,Curator 解决了很多 Zookeeper 客户端非常底层的细节开发工作,包括连接重连,反复注册Watcher 和 NodeExistsException异常等,是最流行的Zookeeper客户端之一。从编码风格上来讲,它提供了基于 Fluent 的编程风格支持2. 准备工作添加依赖<dependency> <groupId>org.a

2020-10-29 08:49:11 136

原创 Zookeeper学习:开源客户端 ZkClient

1. 简介ZkClient是Github上一个开源的zookeeper客户端,在Zookeeper原生API接口之上进行了包装,是一个更易用的Zookeeper客户端,同时,zkClient在内部还实现了诸如Session超时重连、Watcher反复注册等功能2. 准备工作导入依赖<dependency> <groupId>com.101tec</groupId> <artifactId>zkclient</artifactId>

2020-10-29 00:08:42 372

原创 Zookeeper学习:Zookeeper 的 API 使用

1. API 相关介绍Zookeeper作为一个分布式框架,主要用来解决分布式一致性问题,它提供了简单的分布式原语,并且对多种编程语言提供了APl,Zooeeper API 共包含五个包,分别为∶org.apache.zookeeperorg.apache.zookeeper.dataorg.apache.zookeeper.serverorg.apache.zookeeper. server.quorumorg.apache.zookeeper.server.upgrade其中 org.

2020-10-28 23:24:16 687

原创 Zookeeper学习: ZooKeeper命令行操作

1. 进入命令行2. 创建节点3. 读取节点4. 更新节点5. 删除节点使用delete命令可以删除Zookeeper上的指定节点,语法如下: delete path [version]其中 version 表示数据版本,使用delete /zk-permanent 命令即可删除/zk-permanent节点可以看到,已经成功删除/zk-permanent节点。值得注意的是,若删除节点存在子节点,那么无法删除该节点,必须先删除子节点,再删除父节点...

2020-10-28 16:56:03 3858

原创 Zookeeper学习:Leader选举

1. Leader选举概述Leader选举是zookeeper最重要的技术之一,也是保证分布式数据一致性的关键所在。当Zookeeper集群中的一台服务器出现以下两种情况之一时,需要进入Leader选举。服务器初始化启动。服务器运行期间无法和Leader保持连接。2. 服务器启动时期的Leader选举若进行Leader选举,则至少需要两台机器,这里选取3台机器组成的服务器集群为例。在集群初始化阶段,当有一台服务器Server1启动时,其单独无法进行和完成Leader选举,当第二台服务器Ser

2020-10-28 16:43:47 142

原创 Zookeeper学习:服务器启动

1. 服务端整体架构图Zookeeper服务器的启动,大致可以分为以下五个步骤配置文件解析初始化数据管理器初始化网络 I/O 管理器数据恢复对外服务2. 单机版服务器启动单机版服务器的启动其流程图如下上图的过程可以分为预启动和初始化过程。2.1 预启动统一由 QuorumPeerMain 作为启动类。无论单机或集群,在 zkserver.cmd 和 zkServer.sh 中都配置了QuorumPeerMain 作为启动入口类。解析配置文件 zoo.cfg。zoo.cfg配

2020-10-28 16:25:42 895

原创 Zookeeper学习:服务器⻆色

1. LeaderLeader服务器是Zookeeper集群工作的核心,其主要工作有以下两个∶事务请求的唯一调度和处理者,保证集群事务处理的顺序性。集群内部各服务器的调度者。1.1 请求处理链使用责任链来处理每个客户端的请求是Zookeeper的特色,Leader服务器的请求处理链如下∶可以看到,从 prepRequestProcessor 到 FinalRequestProcessor 前后一共7个请求处理器组成了leader 服务器的请求处理链PrepRequestProcesso

2020-10-28 15:25:32 104

原创 Zookeeper学习:ZAB 协议

1. 概述zookeeper并没有完全采用 paxos 算法,而是使用了一种称为Zookeeper Atomic Broadcast(ZAB,Zookeeper原子消息广播协议)的协议作为其数据一致性的核心算法。ZAB协议并不像Paxos算法那样是一种通用的分布式一致性算法,它是一种特别为zookeeper专门设计的一种支持崩溃恢复的原子广播协议在zookeeper中,主要就是依赖ZAB协议来实现分布式数据的一致性,基于该协议,Zookeeper实现了一种主备模式的系统架构来保持集群中各副本之间的数据

2020-10-28 13:49:14 181

原创 Zookeeper学习:Zookeeper应用场景之分布式队列

1. 分布式队列介绍分布式队列可以简单分为两大类∶一种是常规的FIFO先入先出队列模型,还有一种是 等待队列元素聚集后统一安排处理执行的Barrier模型。2. FIFO先入先出FIFO(First Input First Output,先入先出),FIFO队列是一种非常典型且应用广泛的按序执行的队列模型∶先进入队列的请求操作先完成后,才会开始处理后面的请求。使用ZooKeeper实现FIFO队列,和之前提到的共享锁的实现非常类似。FIFO队列就类似于一个全写的共享锁模型,大体的设计思路其实非常简单

2020-10-28 11:03:34 366

原创 Zookeeper学习:Zookeeper应用场景之分布式锁

1. 分布式锁的介绍分布式锁是控制分布式系统之间同步访问共享资源的一种方式。如果不同的系统或是同一个系统的不同主机之间共享了一个或一组资源,那么访问这些资源的时候,往往需要通过一些互斥手段来防止彼此之间的干扰,以保证一致性,在这种情况下,就需要使用分布式锁了。在平时的实际项目开发中,我们往往很少会去在意分布式锁,而是依赖于关系型数据库固有的排他性来实现不同进程之间的互斥。这确实是一种非常简便且被广泛使用的分布式锁实现方式。然而有一个不争的事实是,目前绝大多数大型分布式系统的性能瓶颈都集中在数据库操作上。

2020-10-28 09:46:05 371

原创 Zookeeper学习:Zookeeper应用场景之Master选举

1. Master选举Master选举是一个在分布式系统中非常常见的应用场景。分布式最核心的特性就是能够将具有独立计算能力的系统单元部署在不同的机器上,构成一个完整的分布式系统。而与此同时,实际场景中往往也需要在这些分布在不同机器上的独立系统单元中选出一个所谓的"老大",在计算机中,我们称之为Master。在分布式系统中,Master往往用来协调集群中其他系统单元,具有对分布式系统状态变更的决定权。例如,在一些读写分离的应用场景中,客户端的写请求往往是由Master来处理的;而在另一些场景中,Maste

2020-10-28 00:25:37 330

原创 Zookeeper学习:Zookeeper应用场景之集群管理

1. 集群管理随着分布式系统规模的日益扩大,集群中的机器规模也随之变大,那如何更好地进行集群管理也显得越来越重要了。所谓集群管理,包括集群监控与集群控制两大块,前者侧重对集群运行时状态的收集,后者则是对集群进行操作与控制。在日常开发和运维过程中,我们经常会有类似于如下的需求∶如何快速的统计出当前生产环境下一共有多少台机器如何快速的获取到机器上下线的情况如何实时监控集群中每台主机的运行时状态在传统的基于Agent的分布式集群管理体系中,都是通过在集群中的每台机器上部署一个Agent,由这个Ag

2020-10-28 00:13:55 352

原创 Zookeeper学习:Zookeeper应用场景之命名服务

1. 命名服务命名服务(Name Service)也是分布式系统中比较常见的一类场景,是分布式系统最基本的公共服务之一。在分布式系统中,被命名的实体通常可以是集群中的机器、提供的服务地址或远程对象等 —— 这些我们都可以统称它们为名字(Name),其中较为常见的就是一些分布式服务框架(如RPC、RMI)中的服务地址列表,通过使用命名服务,客户端应用能够根据指定名字来获取资源的实体、服务地址和提供者的信息等。Zookeeper 提供的命名服务功能能够帮助应用系统通过一个资源引用的方式来实现对资源的定位与使

2020-10-27 21:49:51 652 3

原创 Zookeeper学习:Zookeeper应用场景之数据发布/订阅

1. 数据发布/订阅数据 发布 / 订阅(Publish / Subscribe)系统,即所谓的配置中心,顾名思义就是发布者将数据发布到 ZooKeeper 的一个或一系列节点上,供订阅者进行数据订阅,进而达到动态获取数据的目的,实现配置信息的集中式管理和数据的动态更新。发布/订阅系统一般有两种设计模式,分别是推(Push)模式和拉(Pull)模式。在推模式中,服务端主动将数据更新发送给所有订阅的客户端;而拉模式则是由客户端主动发起请求来获取最新数据,通常客户端都采用定时进行轮询拉取的方式。ZooKe

2020-10-27 21:34:30 298

原创 Zookeeper学习:CentOS 8 安装伪集群模式 Zookeeper

热武器

2020-10-27 14:32:47 122

原创 Zookeeper学习:CentOS 8 安装单机模式 Zookeeper

1. 复制路径

2020-10-27 09:19:08 117

原创 Zookeeper学习:ZooKeeper系统模型

1. ZooKeeper 数据模型 Znode在Zookeeper中,数据信息被保存在一个个数据节点上,这些节点被称为ZNode。ZNode 是 Zookeeper 中最小数据单位,在 ZNode 下面又可以再挂 ZNode,这样一层层下去就形成了一个层次化命名空间 ZNode 树,我们称为ZNode Tree,它采用了类似文件系统的层级树状结构进行管理。见下图示例:在Zookeeper中,每一个数据节点都是一个ZNode,上图根目录下有两个节点,分别是∶app1 和 app2,其中 app1 下面又

2020-10-24 22:48:20 157

原创 Zookeeper学习:分布式系统面临的问题及解决方案

1. 分布式系统定义及面临的问题ZooKeeper最为主要的使用场景,是作为分布式系统的分布式协同服务。我们将分布式系统定义为∶分布式系统是同时跨越多个物理主机,独立运行的多个软件所组成系统。类比一下,分布式系统就是一群人一起干活。人多力量大,每个服务器的算力是有限的,但是通过分布式系统,由n个服务器组成起来的集群,算力是可以无限扩张的。优点显而易见,人多干活快,并且互为备份。但是缺点也很明显。我们可以想象一下,以一个小研发团队开发软件为例,假设我们有一个5人的项目组,要开始一个系统的开发,项目组将面

2020-10-24 17:40:36 369

原创 数据结构和算法学习:数据结构之队列

1. 队列的使用场景银行办理业务排队2. 队列特点队列是一个有序列表,可以用数组或是链表来实现遵循先入先出的原则。即:先存入队列的数据,要先取出。后存入的要后取出3. 数组模拟队列3.1 思路队列本身是有序列表,若使用数组的结构来存储队列的数据,则队列数组的声明如下图,其中 maxSize 是该队列的最大容量因为队列的输出、输入是分别从前后端来处理,因此需要两个变量 front 及 rear 分别记录队列前后端的下标, front 会随着数据输出而改变,而 rear 则是随着数据

2020-10-23 15:51:18 117

原创 Zookeeper学习:Zookeeper 简介

1. 概述Zookeeper 是一个开源的分布式的,为分布式应用提供协调服务的 Apache 项目Zookeeper从设计模式角度来理解:是一个基于观察者模式设计的分布式服务管理框架,它负责存储和管理数据,然后接受观察者的注册,一旦这些数据的状态发生变化 ,Zookeeper就将负责通知已经在Zookeeper上注册那些观察者做出相应的反应。2. 特点Zookeeper:一个领导者(Leader),多个跟随者(Follower)组成的集群。集群中只要有半数以上节点存活,Zooke

2020-10-22 17:22:40 239

原创 行为型模式之观察者模式

天气预报项目需求,具体要求如下:气象站可以将每天测量到的温度,湿度,气压等等以公告的形式发布出去(比如发布到自己的网站或第三方)。需要设计开放型 API,便于其他第三方也能接入气象站获取数据。提供温度、气压和湿度的接口测量数据更新时,要能实时的通知给第三方1. 普通方案1.1 方案设计第三方获取的方案设计当有数据更新时,气象站通过调用 dataChange() 更新天气数据,当第三方再次从WeatherData 中获取数据时,就能得到最新数据推送的方案设计说明:Curren

2020-10-22 15:41:01 85

原创 数据结构和算法学习:数据结构之稀疏数组

1. 稀疏数组(SparseArray )1.1 需求编写的五子棋程序中,有存盘退出和续上盘的功能。问题分析: 因为该二维数组的很多值是默认值 0, 因此记录了很多没有意义的数据 > 稀疏数组1.2 基本介绍当一个数组中大部分元素为0,或者为同一个值的数组时,可以使用稀疏数组来保存该数组。稀疏数组的处理方法记录数组一共有几行几列,有多少个不同的值把具有不同值的元素的行列及值记录在一个小规模的数组中,从而缩小程序的规模稀疏数组举例说明1.3 应用实例使用稀疏数组,来保留类

2020-10-22 10:17:31 138

原创 数据结构和算法学习:数据结构和算法概述

1. 数据结构和算法的关系数据结构是一门研究组织数据方式的学科,有了编程语言也就有了数据结构。要学习好数据结构就要多多考虑如何将生活中遇到的问题,用程序去实现解决程序 = 数据结构 + 算法数据结构是算法的基础,换言之,想要学好算法,需要把数据结构学到位。2. 线性结构和非线性结构数据结构包括∶线性结构和非线性结构。2.1 线性结构线性结构作为最常用的数据结构,其特点是数据元素之间存在一对一的线性关系线性结构有两种不同的存储结构,即顺序存储结构(数组)和链式存储结构(链表)。顺序存储

2020-10-21 17:01:51 105

原创 分布式理论、架构设计学习:Netty

1. Netty认识Netty 是由 JBOSS 提供一个异步的、 基于事件驱动的网络编程框架。Netty 可以帮助你快速、 简单的开发出一 个网络应用, 相当于简化和流程化了 NIO 的开发过程。 作为当前最流行的 NIO 框架, Netty 在互联网领域、 大数据分布式计算领域、 游戏行业、 通信行业等获得了广泛的应用, 知名的 Elasticsearch 、 Dubbo 框架内部都采用了 Netty。1.1 为什么使用NettyNIO缺点NIO 的类库和 API 繁杂,使用麻烦。你需要熟

2020-10-21 15:13:46 134

原创 分布式理论、架构设计学习:BIO、NIO、AIO

1. 同步和异步同步(synchronize)、异步(asychronize)是指应用程序和内核的交互而言的同步指用户进程触发IO操作等待或者轮训的方式查看IO操作是否就绪。同步举例:银行取钱,我自己去取钱,取钱的过程中等待异步当一个异步进程调用发出之后,调用者不会立刻得到结果。而是在调用发出之后,被调用者通过状态、通知来通知调用者,或者通过回调函数来处理这个调用。说明: 使用异步IO时,Java将IO读写委托给OS处理,需要将数据缓冲区地址和大小传给OS,OS需要支持异步IO操作

2020-10-21 13:48:49 190

原创 分布式理论、架构设计学习:RMI

1. 简介Java RMI 指的是远程方法调用 (Remote Method Invocation),是java原生支持的远程调用,采用JRMP(Java Remote Messageing protocol)作为通信协议,可以认为是纯java版本的分布式远程调用解决方案, RMI主要用于不同虚拟机之间的通信,这些虚拟机可以在不同的主机上、也可以在同一个主机上,这里的通信可以理解为一个虚拟机上的对象调用另一个虚拟机上对象的方法。1.1 客户端存根/桩(Stub):远程对象在客户端上的代理;远程引用

2020-10-21 10:51:09 109

原创 分布式理论、架构设计学习:分布式系统设计策略

1. 心跳检测在分布式环境中,我们提及过存在非常多的节点(Node),其实质是这些节点分担任务的运行、计算或者程序逻辑处理。那么就有一个非常重要的问题,如何检测一个节点出现了故障乃至无法工作了?通常解决这一问题是采用心跳检测的手段,如同通过仪器对病人进行一些检测诊断一样。心跳顾名思义,就是以固定的频率向其他节点汇报当前节点状态的方式。收到心跳,一般可以认为一个节点和现在的网络拓扑是良好的。当然,心跳汇报时,一般也会携带一些附加的状态、元数据信息,以便管理如图所示,Client请求Server,Ser

2020-10-21 08:03:03 300 2

原创 分布式理论、架构设计学习:分布式架构网络通信基本原理及RPC

1. 基本原理要实现网络机器间的通讯,首先得来看看计算机系统网络通信的基本原理,在底层层面去看,网络通信需要做的就是将流从一台计算机传输到另外一台计算机,基于传输协议和网络IO来实现,其中传输协议比较出名的有tcp、udp等等,tcp、udp都是在基于Socket概念上为某类应用场景而扩展出的传输协议,网络IO,主要有bio、nio、aio三种方式,所有的分布式应用通讯都基于这个原理而实现,只是为了应用的易用,各种语言通常都会提供一些更为贴近应用易用的应用层协议。2. RPC介绍RPC全称为remot

2020-10-21 00:51:51 231

原创 分布式理论、架构设计学习:一致性协议 3PC

1. 三阶段提交介绍3PC,全称 “three phase commit”,是 2PC 的改进版,将 2PC 的 “提交事务请求” 过程一分为二,共形成了由CanCommit、PreCommit和doCommit三个阶段组成的事务处理协议。2. 阶段一 :CanCommit事务询问协调者向所有的参与者发送一个包含事务内容的canCommit请求,询问是否可以执行事务提交操作,并开始等待各参与者的响应。各参与者向协调者反馈事务询问的响应参与者在接收到来自协调者的包含了事务内容的canCommi

2020-10-20 23:51:52 157

原创 分布式理论、架构设计学习:一致性协议 2PC

1. 事务的基本特性Atomicity(原子性):是说事务是一个不可分割的整体,所有操作要么全做,要么全不做;只要事务中有一个操作出错,回滚到事务开始前的状态的话,那么之前已经执行的所有操作都是无效的,都应该回滚到开始前的状态。Consistency(一致性):是说事务执行前后,数据从一个状态到另一个状态必须是一致的,比如A向B转账(A、 B的总金额就是一个一致性状态),不可能出现A扣了钱,B却没收到的情况发生。Isolation(隔离性):多个并发事务之间相互隔离,不能互相干扰。关于事务的隔离性

2020-10-20 23:23:15 88

原创 分布式理论、架构设计学习:BASE 理论

1. 介绍BASE:全称 Basically Available(基本可用),Soft state(软状态),和 Eventually consistent(最终一致性)三个短语的缩写,来自 ebay 的架构师提出。BASE是对CAP中一致性和可用性权衡的结果,BASE理论的核心思想是:即使无法做到强一致性,但每个应用都可以根据自身业务特点,采用适当的方式来使系统达到最终一致性。2. Basically Available(基本可用)基本可用是指分布式系统在出现不可预知故障的时候,允许损失部分可用性

2020-10-15 14:29:30 265 1

原创 分布式理论、架构设计学习:CAP定理

1. 介绍2000 年7月的时候,加州大学伯克利分校的Eric Brewer 教授提出了 CAP 猜想,2年后,被 来自于麻省理工的Seth Gilbert 和 Nancy Lynch 从理论上证明了猜想的可能性,从此,CAP 定理正式在学术上成为了分布式计算领域的公认定理。并深深的影响了分布式计算的发展。CAP 理论含义是,一个分布式系统不可能同时满足一致性(C:Consistency),可用性(A: Availability)和分区容错性(P:Partition tolerance)这三个基本需

2020-10-15 14:16:40 153

原创 分布式理论、架构设计学习:一致性

1. 分布式一致性概念分布式数据一致性,指的是数据在多份副本中存储时,各副本中的数据是一致的。2. 副本一致性分布式系统当中,数据往往会有多个副本。如果是一台数据库处理所有的数据请求,那么通过ACID四原则,基本可以保证数据的一致性。而多个副本就需要保证数据会有多份拷贝。这就带来了同步的问题,因为我们几乎没有办法保证可以同时更新所有机器当中的包括备份所有数据。 网络延迟,即使我在同一时间给所有机器发送了更新数据的请求,也不能保证这些请求被响应的时间保持一致存在时间差,就会存在某些机器之间的数据不一致的

2020-10-15 10:52:17 139

原创 分布式理论、架构设计学习:分布式架构系统介绍

1. 分布式系统概念分布式系统是一个硬件或软件的组件分布在不同的网络计算机上,彼此之间仅仅通过消息传递进行通信和协调的系统。2. 分布式与集群的区别集群:多个人在一起作同样的事分布式 :多个人在一起作不同的事分布式系统的特点:分布性对等性并发性缺乏全局时钟故障总是会发生3. 分布式系统的发展阿里巴巴发起的"去 IOE"运动 (IOE 指的是 IBM 小型机、Oracle 数据库、EMC 的高端存储)。阿里巴巴2009 年“去IOE”战略技术总监透露,截止到 2013

2020-10-15 09:44:18 180

原创 nginx学习:nginx反向代理

正向代理正向代理,意思是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。说明:客户端才能使用正向代理。反向代理反向代理服务器位于用户与目标服务器之间,但是对于用户而言,反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器就可以获得目标服务器的资源。同时,用户不需要知道目标服务器的地址,也无须在用户端作任何设定。反向代理服务器通常可用来作为

2020-10-14 20:27:50 197

深入浅出MyBatis技术原理与实战

深入浅出MyBatis技术原理与实战的高清版电子书。PDF版本的

2018-08-17

javaweb从入门到精通精简PPT学习

javaWeb的ppt参考资料,包含javaWeb从入门到精通的每一章的PPT内容

2017-10-30

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

TA关注的人

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