自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

吴声子夜歌的博客

个人学习笔记

  • 博客(123)
  • 资源 (1)
  • 收藏
  • 关注

转载 Redis--集群搭建

集群概述redis是一个开源的key value存储系统,受到了广大互联网公司的青睐。redis3.0版本之前只支持单例模式,在3.0版本及以后才支持集群,我这里用的是redis3.0.0版本;redis集群采用P2P模式,是完全去中心化的,不存在中心节点或者代理节点;redis集群是没有统一的入口的,客户端(client)连接集群的时候连接集群中的任意节点(node)即可,集群内部的节点...

2020-02-29 23:53:14 187

原创 Redis--主从复制

Redis主从复制一个Redis服务可以有多个该服务的复制品,这个Redis服务称为Master,其它复制称为Slaves如图中所示,我们将一台Redis服务器作主库(Matser),其他三台作为从库(Slave),主库只负责写数据,每次有数据更新都将更新的数据同步到它所有的从库,而从库只负责读数据。这样一来,就有了两个好处:读写分离,不仅可以提高服务器的负载能力,并且可以根据读请求的规...

2020-02-29 11:03:14 337 1

原创 Redis--配置文件详解

Redis配置文件详解Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程daemonize no当Redis以守护进程方式运行时,Redis默认会把pid写入/var/run/redis.pid文件,可以通过pidfile指定pidfile /var/run/redis.pid指定Redis监听端口,默认端口为6379,为什么选用6379作为...

2020-02-28 12:09:59 203

原创 Mongoose--概述

概述之前我们都是通过shell来完成对数据库的各种操作的,在 开发中大部分时候我们都需要通过程序来完成对数据库的 操作。而Mongoose就是一个让我们可以通过Node来操作 MongoDB的模块。Mongoose是一个对象文档模型(ODM)库,它对 Node原生的MongoDB模块进行了进一步的优化封装, 并提供了更多的功能。在大多数情况下,它被用来把结构化的模式应用到一个 Mongo...

2020-02-27 15:13:03 369

原创 MongoDB--常用操作示例

//1.进入my_test数据库use my_test//2.向数据库的user集合中插入一个文档 db.users.insert({ username:"sunwukong"});//3.查询user集合中的文档db.users.find();//4.向数据库的user集合中插入一个文档 db.users.insert({ username:"zhub...

2020-02-27 12:42:39 261

原创 MongoDB--基本操作

创建数据库use 数据库名使用use时,如果数据库存在则会进入到相应的数据库,如果不存在则会自动创建一旦进入数据库,则可以使用db来引用当前库db.collection.insert(文档)向集合中插入文档,如果集合不存在则创建db.createCollection()创建一个新的集合db.collection.drop()删除集合文档的增删改查插入文档...

2020-02-27 12:40:13 292

原创 MongoDB--概述

MongoDB概述MongoDB是为快速开发互联网Web应用而设计的数据库系统。MongoDB的设计目标是极简、灵活、作为Web应用栈的一部分。MongoDB的数据模型是面向文档的,所谓文档是一种类似JSON的结构,简单理解MongoDB这个数据库中存的是各种各样的JSON。(BSON)三个概念数据库(database): 数据库是一个仓库,在仓库中可以存放集合。集合(colle...

2020-02-26 15:05:19 343

原创 Docker--安装MongoDB

Docker拉取MongoDB查看可用版本:docker search mongo拉取最新版:docker pull mongo:latest查看本地镜像:docker images运行容器:docker run -itd --name mongo -p 27017:27017 mongo --auth参数说明:-p 27017:27017 :映射容器服务的 2701...

2020-02-26 14:42:42 249

原创 并发编程--偏向锁、轻量级锁

锁的升级与对比Java SE 1.6为了减少获得锁和释放锁带来的性能消耗,引入了“偏向锁”和“轻量级锁”,在 Java SE 1.6中,锁一共有4种状态,级别从低到高依次是:无锁状态、偏向锁状态、轻量级锁状 态和重量级锁状态,这几个状态会随着竞争情况逐渐升级。锁可以升级但不能降级,意味着偏 向锁升级成轻量级锁后不能降级成偏向锁。这种锁升级却不能降级的策略,目的是为了提高 获得锁和释放锁的效率。...

2020-02-25 11:59:11 213

原创 Java并发--对象头

Java对象头如果对象为非数组类型,用2字宽存储对象头。如果对象为数组类型,用3字宽存储对象头。在32位虚拟机中,1字宽 等于4字节,即32bit,如下表所示:对象头的组成Mark Word:Java对象头里的Mark Word里默认存储对象的HashCode、分代年龄和锁标记位。32位JVM 的Mark Word的默认存储结构如下:在运行期间,Mark Word里存储...

2020-02-25 11:46:51 329

原创 SpringCloud Config配置实例

SpringCloud Config配置实例Git配置文件本地配置在本地D:\44\mySpringCloud\microservicecloud-config路径下新建文件microservicecloud-config-eureka-client.ymlmicroservicecloud-config-eureka-client.yml内容:spring: profiles: ...

2020-02-22 23:35:29 270

原创 SpringCloud Config--客户端配置

SpringCloud Config客户端配置与测试在本地D:\44\mySpringCloud\microservicecloud-config路径下新建文件microservicecloud-config-eureka-client.ymlspring: profiles: active: - dev---server: port: 8201sprin...

2020-02-22 22:11:51 658

原创 SpringCloud Config服务端配置、配置读取规则

SpringCloud Config服务端配置用自己的GitHub账号在GitHub上新建一个名为microservicecloud-config的新Repository:获取Repository的http链接本地硬盘目录上新建git仓库并clone:在本地D:\44\mySpringCloud\microservicecloud-config里面新建一个application.yml...

2020-02-22 21:14:18 1613

原创 SpringCloud Config--概述

SpringCloud Config概述分布式系统面临的—配置问题:微服务意味着要将单体应用中的业务拆分成一个个子服务,每个服务的粒度相对较小,因此系统中会出现大量的服务。由于每个服务都需要必要的配置信息才能运行,所以一套集中式的、动态的配置管理设施是必不可少的。SpringCloud提供了ConfigServer来解决这个问题,我们每一个微服务自己带着一个application.yml,上百...

2020-02-22 20:57:35 448

原创 zuul路由网关--概述、基本配置、路由规则

zuul路由网关Zuul包含了对请求的路由和过滤两个最主要的功能:其中路由功能负责将外部请求转发到具体的微服务实例上,是实现外部访问统一入口的基础而过滤器功能则负责对请求的处理过程进行干预,是实现请求校验、服务聚合等功能的基础.Zuul和Eureka进行整合,将Zuul自身注册为Eureka服务治理下的应用,同时从Eureka中获得其他微服务的消息,也即以后的访问微服务都是通过Zuul跳转后获...

2020-02-22 15:27:59 746

原创 服务监控hystrixDashboard

服务监控hystrixDashboardHystrix还提供了实时的调用监控(Hystrix Dashboard),Hystrix会持续地记录所有通过Hystrix发起的请求的执行信息,并以统计报表和图形的形式展示给用户,包括每秒执行多少请求,多少成功,多少失败等。Netflix通过hystrix-metrics-event-stream项目实现了对以上指标的监控。Spring Cloud也提...

2020-02-22 13:56:29 301

原创 Hystrix--服务降级

服务降级整体资源快不够了,忍痛将某些服务先关掉,待渡过难关,再开启回来。修改microservicecloud-api工程,根据已经有的DeptClientService接口新建一个实现了FallbackFactory接口的类DeptClientServiceFallbackFactory@Componentpublic class DeptClientServiceFallbackF...

2020-02-22 10:47:29 242

原创 Hystrix--服务熔断

Hystrix服务熔断熔断机制是应对雪崩效应的一种微服务链路保护机制。当扇出链路的某个微服务不可用或者响应时间太长时,会进行服务的降级,进而熔断该节点微服务的调用,快速返回"错误"的响应信息。当检测到该节点微服务调用响应正常后恢复调用链路。在SpringCloud框架里熔断机制通过Hystrix实现。Hystrix会监控微服务间调用的状况,当失败的调用到一定阈值,缺省是5秒内20次调用失败就会...

2020-02-22 10:40:07 265

原创 Hystrix断路器--概述

Hystrix概述分布式系统面临的问题:复杂分布式体系结构中的应用程序有数十个依赖关系,每个依赖关系在某些时候将不可避免地失败。服务雪崩:多个微服务之间调用的时候,假设微服务A调用微服务B和微服务C,微服务B和微服务C又调用其它的微服务,这就是所谓的“扇出”。如果扇出的链路上某个微服务的调用响应时间过长或者不可用,对微服务A的调用就会占用越来越多的系统资源,进而引起系统崩溃,所谓的...

2020-02-22 10:32:50 224

原创 Feign--概述、初步使用

Feign概述Feign是一个声明式WebService客户端。使用Feign能让编写Web Service客户端更加简单,它的使用方法是定义一个接口,然后在上面添加注解,同时也支持JAX-RS标准的注解。Feign也支持可拔插式的编码器和解码器。SpringCloud对Feign进行了封装,使其支持了Spring MVC标准注解和HttpMessageConverters。Feign可以与...

2020-02-21 23:46:07 271

原创 Ribbon--负载均衡、IRule、自定义Ribbon

Ribbon负载均衡Ribbon在工作时分成两步:第一步先选择EurekaServer,它优先选择在同一个区域内负载较少的server。第二部再根据用户指定的策略,在从server取到的服务注册列表中选择一个地址。其中Ribbon提供了多种策略:比如轮询,随机和根据相应时间加权。参考microservicecloud-provider-dept-8001,新建两份,分别命名为800...

2020-02-21 21:56:28 1459

原创 Ribbon--初步配置

修改microservicecloud-consumer-dept-80工程:添加依赖:<!-- Ribbon相关 --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spri...

2020-02-21 19:20:01 367

原创 Ribbon--概述

Ribbon概述Spring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端 负载均衡的工具。简单的说,Ribbon是Netflix发布的开源项目,主要功能是提供客户端的软件负载均衡算法,将Netflix的中间层服务连接在一起。Ribbon客户端组件提供一系列完善的配置项如连接超时,重试等。简单的说,就是在配置文件中列出Load Balancer(简称L...

2020-02-21 14:48:46 1218

原创 Eureka与Zookeeper对比

Eureka的优点著名的CAP理论指出,一个分布式系统不可能同时满足C(一致性)、A(可用性)和P(分区容错性)。由于分区容错性P是分布式系统中必须保证的,因此我们只能在A和C中间进行权衡。Zookeeper保证的是CP(一致性和分区容错性)Eureka保证的是AP(可用性和分区容错性)Zookeeper保证CP:当向注册中心查询服务列表时,我们可以容忍注册中心返回的是几分钟以前的注...

2020-02-20 21:42:35 395 1

原创 Eureka--服务注册、集群配置

服务注册创建microservicecloud-eureka-7001子模块:引入依赖:<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-i...

2020-02-20 21:29:07 334

原创 Eureka--概述、框架

Eureka概述Eureka是Netflix的一个子模块,也是核心模块之一。Eureka是一个基于REST的服务,用于定位服务,以实现云端中间层服务发现和故障转移。服务注册与发现对于微服务架构来说是非常重要的,有了服务发现与注册,只需要使用服务的标识符,就可以访问到服务,而不需要修改服务调用的配置文件了。功能类似于dubbo的注册中心,比如Zookeeper。Netflix在设计Eur...

2020-02-20 13:45:46 450

原创 SpringCloud--微服务架构简单案例

构建父工程(microservicecloud)引入依赖:<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ...

2020-02-20 12:44:24 452

原创 SpringCloud--概述

SpringCloudSpringCloud = 分布式微服务架构下的一站式解决方案,是各个微服务架构落地技术的集合体,俗称微服务全家桶。SpringBoot和SpringCloud的关系:SpringBoot专注于快速方便的开发单个个体微服务。SpringCloud是关注全局的微服务协调整理治理框架,它将SpringBoot开发的一个个单体微服务整合并管理起来,为各个微服务之间提供,配...

2020-02-19 14:12:31 397

原创 SpringCloud--微服务概述

微服务微服务化的核心就是将传统的一站式应用,根据业务拆分成一个一个的服务,彻底地去耦合,每一个微服务提供单个业务功能的服务,一个服务做一件事。从技术角度看就是一种小而独立的处理过程,类似进程概念,能够自行单独启动或销毁,拥有自己独立的数据库。微服务与微服务架构微服务:强调的是服务的大小,它关注的是某一个点,是具体解决某一个问题/提供落地对应服务的一个服务应用,狭意的看,可以看作Ecl...

2020-02-19 13:39:36 251

原创 Netty--编码器和handler的调用机制

编码器和handler的调用机制netty 的组件设计:Netty 的主要组件有 Channel、EventLoop、ChannelFuture、ChannelHandler、ChannelPipe 等ChannelHandler 充当了处理入站和出站数据的应用程序逻辑的容器。例如,实现 ChannelInboundHandler 接口(或 ChannelInboundHandlerAdap...

2020-02-17 14:44:23 544

原创 Netty--心跳机制检测示例

编写一个Netty心跳检测机制案例,当服务器超过3秒没有读时,就提示读空闲当服务器超过5秒没有写操作时,就提示写空闲实现当服务器超过7秒没有读或者写操作时,就提示读写空闲public class MyServer { public static void main(String[] args) throws Exception{ //创建两个线程组 ...

2020-02-17 12:00:26 279

原创 Netty--Unpooled类

Unpooled类Netty 提供一个专门用来操作缓冲区(即 Netty 的数据容器)的工具类。常用方法:ByteBuf的结构:示例public class NettyByteBuf01 { public static void main(String[] args) { //创建一个ByteBuf //说明 //1. 创建...

2020-02-16 23:14:18 7165 6

原创 Netty--核心模块组件

Bootstrap、ServerBootstrapBootstrap 意思是引导,一个 Netty 应用通常由一个 Bootstrap 开始,主要作用是配置整个 Netty 程序,串联各个组件,Netty 中 Bootstrap 类是客户端程序的启动引导类,ServerBootstrap 是服务端启动引导类。常见的方法有public ServerBootstrap group(Event...

2020-02-16 22:35:17 262

原创 Netty--异步模型

异步模型异步的概念和同步相对。当一个异步过程调用发出后,调用者不能立刻得到结果。实际处理这个调用的组件在 完成后,通过状态、通知和回调来通知调用者。Netty 中的 I/O 操作是异步的,包括 Bind、Write、Connect 等操作会简单的返回一个 ChannelFuture。调用者并不能立刻获得结果,而是通过 Future-Listener 机制,用户可以方便的主动获取或者通过通知...

2020-02-16 16:54:01 349

原创 Netty--Task的三种使用场景

Task 有 3 种典型使用场景用户程序自定义的普通任务 [举例说明]用户自定义定时任务非当前 Reactor 线程调用 Channel 的各种方法例如在推送系统的业务线程里面,根据用户的标识,找到对应的 Channel 引用,然后调用 Write 类方法向该用户推送消息,就会进入到这种场景。最终的 Write 会提交到任务队列中后被异步消费/*说明1. 我们自定义一个Handl...

2020-02-16 16:26:14 790

原创 Netty---入门实例(TCP)

服务端:public class NettyServer { public static void main(String[] args) throws Exception { //创建 BossGroup 和 WorkerGroup //说明 //1. 创建两个线程组 bossGroup 和 workerGroup //2. bossGroup 只是处理连接请求 , 真正的和...

2020-02-16 14:59:11 325

原创 Netty--Netty模型

Netty模型工作原理示意图:(简单版)Netty 主要基于主从 Reactors 多线程模型(如图)做了一定的改进,其中主从 Reactor 多线程模型有多个 ReactorBossGroup 线程维护 Selector , 只关注 Accecpt当接收到Accept事件,获取到对应的SocketChannel,封装成NIOScoketChannel并注册到Worker线程(事件循...

2020-02-16 13:51:17 389 1

原创 Netty--Reactor模式

Reactor模式针对传统阻塞 I/O 服务模型的 2 个缺点,解决方案:基于 I/O 复用模型:多个连接共用一个阻塞对象,应用程序只需要在一个阻塞对象等待,无需阻塞等待所有连 接。当某个连接有新的数据可以处理时,操作系统通知应用程序,线程从阻塞状态返回,开始进行业务处理 Reactor 对应的叫法: 1. 反应器模式 2. 分发者模式(Dispatcher) 3. 通知者模式(notifi...

2020-02-16 01:43:01 311

原创 NIO--零拷贝、AIO

零拷贝零拷贝是网络编程的关键,很多性能优化都离不开。在 Java 程序中,常用的零拷贝有 mmap(内存映射) 和 sendFile。传统IO数据读写:Java 传统 IO 和 网络编程的一段代码传统IO模型:mmap优化:mmap 通过内存映射,将文件映射到内核缓冲区,同时,用户空间可以共享内核空间的数据。这样,在进行网 络传输时,就可以减少内核空间到用户空间的拷贝次数。...

2020-02-15 21:54:14 756

原创 NIO--网络编程

NIO 非阻塞 网络编程原理分析图NIO 非阻塞 网络编程相关的(Selector、SelectionKey、ServerScoketChannel 和 SocketChannel) 关系梳理图当客户端连接时,会通过 ServerSocketChannel 得到 SocketChannelSelector 进行监听 select 方法, 返回有事件发生的通道的个数.将socketCha...

2020-02-15 20:45:10 264

vuedevtools安装.zip

用于Chrome本地安装vue-devtools,无脑安装!!!! 安装过程: 1.Chrome=》设置=》更多工具=》扩展程序 2.打开开发者模式 3.加载已解压的扩展程序=》选择解压后的文件夹 4.重启浏览器 5.如果失败,在加载后的vuedevtools设置页面开启“允许访问文件网址”

2019-10-27

空空如也

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

TA关注的人

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