
分布式
文章平均质量分 73
分布式
花开不合阳春暮
博客中只是一些之前学习的笔记,现在个人改在本地记录笔记,优快云博客不在维护了!!!
展开
-
反向代理服务器 nginx
Nginx 简介什么是NginxNginx 是高性能的 HTTP 和反向代理的服务器,处理高并发能力是十分强大的,能经受高负载的考验,有报告表明能支持高达 50,000 个并发连接数。正向代理 对象是客户端反向代理 代理的是服务端,隐藏了真实服务端 IP 地址负载均衡 增加服务器的数量,然后将请求分发到各个服务器上,将原先请求集中到单个服务器上的情况改为将请求分发到多个服务器上,将负载分发到不同的服务器动静分离常用Web服务器介绍apache、Nginx、tomcat、weblogic、ii原创 2020-07-06 17:26:03 · 553 阅读 · 0 评论 -
Redis 缓存的 Java 实现
Redis的下载安装http://www.redis.cn/download.html使用Redis缓存1.在启动类上加@EnableCaching注解 2.Controller加缓存@GetMapping("list")@Cacheable(cacheNames = "product", key = "123")public ResultVO list() { ...原创 2018-08-20 17:08:23 · 308 阅读 · 0 评论 -
分布式缓存 Redis
redis 基础存储结构字符类型散列类型列表类型集合类型有序集合功能可以为每个key设置超时时间可以通过列表类型来实现分布式队列的操作支持发布订阅的消息模式简单提供了很多命令与redis进行交互redis的应用场景数据缓存(商品数据、新闻、热点数据)单点登录秒杀、抢购网站访问排名应用的模块开发redis的安装下载redis安装包tar -zxvf 安装包在redis目录下 执行 make可以通过make test测试编译状态make instal原创 2020-06-12 13:48:15 · 382 阅读 · 0 评论 -
分布式消息通信 kafka
Kafka 简介Kafka 是一款分布式消息发布和订阅系统,具有高性能、高吞吐量的特点而被广泛应用与大数据传输场景。它由LinkedIn公司开发,使用Scala语言编写,之后成为Apache基金会的一个顶级项目。典型应用日志分析系统为什么使用 Kafka互联网公司在营销方面逐步要做到精细化运营需求,这样就能够针对不同的用户喜好推送不同的产品,而这个过程需要收集和分析用户的行为数据,而通过传统的ActiveMQ这类消息中间件在处理大数据传输的时候存在实效性、性能、消息堆积等问题。kafka 早期原创 2020-06-10 14:57:02 · 602 阅读 · 0 评论 -
ActiveMQ
JMS 基本概念java 消息服务(Java Message Service)是 java 平台中关于面向消息中间件的 API,用于在两个应用程序之间,或者分布式系统中发布消息,进行异步通信。JMS 是一个与具体平台无关的 API,绝大多数 MOM(Message Oriented Middleware,面向消息中间件)提供商都对 JMS 提供了支持。具体开源的 JMS 供应商JbossMQ(jboss4)、jboss messagling(jboss5)、joram、ubermg、mantamg、原创 2020-06-09 14:59:09 · 274 阅读 · 0 评论 -
深入分析 Netty 源码(3)
EventLoop一个Netty 程序启动时,至少要指定一个EventLoopGroup(如果使用到的是NIO, 那么通常是NioEventlLoopGroup),那么这个NioEventLoopGroup 在Netty中到底扮演着什么角色呢?我们知道,Netty是Reactor模型的一个实现,那么首先从Reactor的线程模型开始吧.关于Reactor的线程模型首先我们来看一下Reactor 的线程模型.Reactor的线程模型有三种:单线程模型多线程模型主从模型首先看单线程模型:原创 2020-06-07 16:47:57 · 266 阅读 · 0 评论 -
深入分析 Netty 源码(2)
Netty ChannelPipelineChannelPipeline在 Netty 中每个 Channel 都有且仅有一个 ChannelPipeline 与之对应,它们的组成关系如下:通过上图我们可以看到,一个Channel 包含了一个ChannelPipeline, 而ChannelPipeline 中又维护了一个由ChannelHandlerContext组成的双向链表.这个链表的头是HeadContext,链表的尾是TailContext, 并且每个ChannelHandlerConte原创 2020-06-06 18:54:24 · 217 阅读 · 0 评论 -
深入分析 Netty 源码(1)
BootStrap客户端 BootStrapBootStrap 是 Netty 提供的一个便利的工厂类,可以通过它来完成 Netty 的客户端或服务端的 Netty 初始化。从客户端方面启动 Netty:Bootstrap bootstrap = new Bootstrap();bootstrap.group(workerGroup).channel(NioSocketChannel.class).option(ChannelOption.SO_KEEPALIVE, true).handle原创 2020-06-06 15:27:30 · 285 阅读 · 0 评论 -
高性能框架 Netty
NettyNetty是一个高性能、异步事件驱动的NIO框架,它提供了对TCP、UDP和文件传输的支持,作为一个异步NIO框架,Netty的所有IO操作都是异步非阻塞的,通过Future-Listener机制,用户可以方便的主动获取或者通过通知机制获得IO操作结果。作为当前最流行的NIO框架,Netty 在互联网领域、大数据分布式计算领域、游戏行业、通信行业等获得了广泛的应用,一些业界著名的开源组件也基于Netty的NIO框架构建。Netty 高性能RPC 调用的性能模型分析传统 RPC 调用性能差原创 2020-06-05 11:46:36 · 211 阅读 · 0 评论 -
深入理解 NIO 原理
几个概念阻塞(Block)和非阻塞(Non-Block)阻塞和非阻塞是进程在访问数据的时候,数据是否准备就绪的一种处理方式。当数据没有准备的时候:阻塞:往往需要等待缓冲区中的数据准备好过后才处理其他的事情,否则一直等待在那里。非阻塞:当进程访问数据缓冲区的时候,如果数据没有准备好则直接返回,不会等待。如果已经准备好,也直接返回。同步(Synchronization)和异步(Asynchronous)的方式同步和异步都是基于应用程序和操作系统处理IO事件所采用的方式。同步:是应用程序要直接参与I原创 2020-06-03 16:23:55 · 830 阅读 · 0 评论 -
Dubbo源码解析
dubbo 源码基于 spring 配置文件的扩展NamespaceHandler:注册 BeanDefinitionParser,利用它来解析BeanDefinitionParser:解析配置文件的元素spring 会默认加载jar包下/META-INF/spring.handlers,找到对应的 NamespaceHandlerDubbo 的接入实现Dubbo中spring扩展就是使用spring的自定义类型,所以同样也有NamespaceHandler、BeanDefinitionPar原创 2020-05-26 20:17:06 · 885 阅读 · 1 评论 -
分布式事务解决方案
基于 spring 配置文件的扩展NamespaceHandler:注册 BeanDefinitionParser,利用它来解析BeanDefinitionParser:解析配置文件的元素spring 会默认加载jar包下/META-INF/spring.handlers,找到对应的 NamespaceHandlerInitializingBean,当spring容器初始化完以后,会调用...原创 2020-05-26 14:58:21 · 199 阅读 · 0 评论 -
分布式服务治理 Dubbo
zookeeper集群角色leaderleader是zookeeper集群的核心。事务请求的唯一调度者和处理者,保证集群事务处理的顺序性集群内部各个服务器的调度者follower处理客户端非事务请求,以及转发事务请求给leader服务器参与事务请求提议(proposal)的投票(客户端的一个事务请求,需要半数服务器投票通过以后才能通知leader commit;leader会发...原创 2020-04-16 21:06:21 · 321 阅读 · 0 评论 -
分布式协调服务 zookeeper
分布式环境分布式环境特点分布性并发性:程序运行过程中,并发性操作是很常见的。比如同一分布式系统中的多个节点,同时访问一个共享资源。数据库、分布式存储无序性:进程之间的消息通信,会出现顺序不一致问题分布式环境下面临的问题网络通信:网络本身的不可靠性,因此会涉及到一些网络通信问题网络分区:当网络发生异常导致分布式系统中部分节点之间的网络延时不断增大,最终导致组成分布式架构的所有节点,只有...原创 2020-04-13 21:03:30 · 375 阅读 · 0 评论 -
分布式通信
Java 序列化机制 Serialize接口java本身的序列化机制存在的问题:序列化数据结果比较大、传输效率比较低不能跨语言对接序列化的发展以至于在后来的很长一段时间,基于XML格式编码的对象序列化机制成为了主流,一方面解决了多语言兼容问题,另一方面比二进制的序列化方式更容易理解。以至于基于XML的SOAP协议及对应的WebService框架在很长一段时间内成为各个主流开发语言的必...原创 2020-04-10 09:45:18 · 715 阅读 · 0 评论 -
分布式基础
什么是分布式系统旨在支持应用程序和服务的开发,可以利用物理架构由多个自治的处理元素,不共享主内存,但通过网络发送消息合作。 三个特点: 多阶段 消息通信 不共享内存三个概念: 分布式系统(distributed system),集群(cluster),分布式计算(distributed computing)...原创 2018-08-20 10:30:48 · 649 阅读 · 0 评论 -
Docker基础
什么是DockerDocker:an open source project to pack,ship and run any application as a lightweight container.将任何应用以轻量级的形式来打包,发布和运行Docker可以被粗糙地理解为轻量级的虚拟机。Docker利用Host OS里面的namespace,controlgroup来做到将应用程序...原创 2018-11-01 16:45:41 · 692 阅读 · 0 评论 -
Spring Cloud Rancher与部署
将Eureka运行到Docker中1.创建一个简单的Eureka项目2.yml配置eureka: client: service-url: defaultZone: http://localhost:8761/eureka/ register-with-eureka: false server: enable-self-preservation: ...原创 2018-11-28 09:29:03 · 1604 阅读 · 3 评论 -
Spring Cloud 链路监控
Spring Cloud Sleuth<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-sleuth</artifactId></dependency>DEBUG [ord...原创 2018-11-23 11:42:50 · 801 阅读 · 0 评论 -
Sping Cloud Hystrix
Spring Cloud Hystrix防雪崩利器基于Netflix对应的Hystrix具备的功能:1.服务降级2.依赖隔离3.服务熔断4.监控(Hystrix Dashboard)服务降级优先核心服务,非核心服务不可用或弱可用通过HystrixCommand注解指定fallbackMethod(回退函数)中具体实现降级逻辑使用RestTemplate的简单实例:1.引入...原创 2018-11-22 14:04:37 · 218 阅读 · 0 评论 -
SpringCloud 服务网关和Zuul
服务网关的要素稳定性,高可用性能,并发性安全性扩展性常用的网关方案Nginx + LuaKongTykSpring Cloud ZuulZuul的特点路由 + 过滤器 = Zuul核心是一系列的过滤器Zuul路由1.创建项目2.修改配置spring: application: name: api-geteway cloud: config:...原创 2018-11-21 16:02:42 · 218 阅读 · 0 评论 -
SpringCloud 异步和消息
异步客户端请求不会阻塞进程,服务端的响应可以是非即时的RabbitMQ的简单使用1.添加依赖&lt;dependency&gt; &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt; &lt;artifactId&gt;spring-boot-starter原创 2018-11-08 14:00:31 · 2295 阅读 · 0 评论 -
SpringCloud 统一配置中心
统一配置中心1.创建项目2.启动类添加注解@EnableDiscoveryClient和@EnableConfigServer3.在码云或者GitHub创建一个git项目,并将需要使用统一配置的项目的配置文件放入git项目中4.复制git项目路径并修改配置文件spring: application: name: config cloud: config: ...原创 2018-11-07 09:45:57 · 745 阅读 · 0 评论 -
SpringCloud应用间通信
应用间通信HTTP:Spring CloudRPC:DubboSpring Cloud中服务间两种restful调用方式:1,RestTemplate2,FeginRestTemplate的三种使用方式1.第一种方式(直接使用restTemplate,url写死) RestTemplate restTemplate = new RestTemplate(); ...原创 2018-11-01 17:20:55 · 395 阅读 · 0 评论 -
微服务拆分
Eureka Server高可用配置3个Eureka服务端使用复制功能复制3个服务器配置,分别配置端口为8761,8762,8763 取消application.yml中的端口配置#server:# port: 8761依次启动Eureka Server启动EurekaApplication1时,配置:defaultZone: http://localhost:8...原创 2018-09-03 13:17:40 · 257 阅读 · 0 评论 -
spring cloud微服务
微服务的提出James Lewis &amp;amp;amp;amp;amp;amp;amp;amp;amp; Martin Fowler,2014年3月25日的《Microservices》。 微服务是一种架构风格。原文中的重要部分一系列微小的服务共同组成 跑在自己的进程里 每个服务为独立的业务开发 独立部署 分布式的管理单一应用架构-》垂直应用架构-》分布式服务架构-》流动计算架构 分布式定义一个项目原创 2018-08-22 16:13:35 · 671 阅读 · 0 评论