
java分布式
日G一卒
java高级开发,日拱一卒
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
JMeter
JMeter原创 2019-08-26 14:32:46 · 98 阅读 · 0 评论 -
java 发布订阅
1.发布者接口package com.yy.subpub;/*** @Description: 发布者接口* @author: leijing* @date: 2016年9月29日 下午5:07:20*/public interface IPublisher<M> {/*** @Description: 向订阅器发布消息* @param subscribePubl...原创 2019-08-31 16:33:01 · 452 阅读 · 0 评论 -
java.util.Queue用法
队列是一种特殊的线性表,它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时,称为空队列。在队列这种数据结构中,最先插入的元素将是最先被删除的元素;反之最后插入的元素将是最后被删除的元素,因此队列又称为“先进先出”(FIFO—first in first out)的线性表。在java5中新增加了...原创 2019-08-31 16:48:55 · 495 阅读 · 0 评论 -
DUBBO
最近研究了一下阿里开源的分布式RPC框架dubbo,楼主写了一个 demo,体验了一下dubbo的功能。快速开始实际上,dubbo的官方文档已经提供了如何使用这个RPC框架example代码,基于 Netty 的长连接。楼主看这个框架主要是为了在微服务,service mesh大火的今天做一些技术储备以及了解一下分布式 RPC 框架的设计。当然即便是写一个dubbo的demo也不能随便写写就...原创 2019-09-02 11:30:12 · 2265 阅读 · 0 评论 -
RPC框架实现原理
一、什么是RPC框架?RPC,全称为Remote Procedure Call,即远程过程调用,是一种计算机通信协议。比如现在有两台机器:A机器和B机器,并且分别部署了应用A和应用B。假设此时位于A机器上的A应用想要调用位于B机器上的B应用提供的函数或是方法,由于A应用和B应用不在一个内存空间里面,所以不能直接调用,此时就需要通过网络来表达调用的方式和传输调用的数据。也即所谓的远程调用。二、...原创 2019-09-02 11:32:54 · 903 阅读 · 0 评论 -
zookeeper入门系列
zookeeper可谓是目前使用最广泛的分布式组件了。其功能和职责单一,但却非常重要。在现今这个年代,介绍zookeeper的书和文章可谓多如牛毛,本人不才,试图通过自己的理解来介绍zookeeper,希望通过一个初学者的视角来学习zookeeper,以期让人更加深入和平稳的理解zookeeper。其中参考了不少教程和书,相关书目列在文末,也感谢这些作者。学习新的框架,先让我们搞清楚他是什么,...原创 2019-09-02 12:27:45 · 160 阅读 · 0 评论 -
Zookeeper的功能以及工作原理
1.ZooKeeper是什么?ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作。最终,将简单易用的接口和性能高效、功能稳定的系统提供给用户2.ZooKeeper提供了什么?1)文件系统2)通知机制3.Zookeeper文件系统每个子目录项如 N...原创 2019-09-02 14:20:12 · 127 阅读 · 0 评论 -
分布式锁
分布式锁是控制分布式系统之间同步访问共享资源的一种方式。在分布式系统中,常常需要协调他们的动作。如果不同的系统或是同一个系统的不同主机之间共享了一个或一组资源,那么访问这些资源的时候,往往需要互斥来防止彼此干扰来保证一致性,在这种情况下,便需要使用到分布式锁。在分布式系统中,常常需要协调他们的动作。如果不同的系统或是同一个系统的不同主机之间共享了一个或一组资源,那么访问这些资源的时候,往往需要互...原创 2019-09-02 16:45:23 · 106 阅读 · 0 评论 -
ZooKeeper的安装与部署
本文讲述如何安装和部署ZooKeeper。一、系统要求ZooKeeper可以运行在多种系统平台上面,表1展示了zk支持的系统平台,以及在该平台上是否支持开发环境或者生产环境。表1:ZooKeeper支持的运行平台系统开发环境Linux支持Solaris支持FreeBSD支持Windows支持MacOS支持ZooKe...原创 2019-09-02 20:05:21 · 144 阅读 · 0 评论 -
Zookeeper 使用
安装和配置详解本文介绍的 Zookeeper 是以 3.2.2 这个稳定版本为基础,最新的版本可以通过官网 http://hadoop.apache.org/zookeeper/来获取,Zookeeper 的安装非常简单,下面将从单机模式和集群模式两个方面介绍 Zookeeper 的安装和配置。单机模式单机安装非常简单,只要获取到 Zookeeper 的压缩包并解压到某个目录如:/home/...原创 2019-09-02 21:38:45 · 216 阅读 · 0 评论 -
Dubbo+zookeeper基础讲解
一、dubbo是什么?1)本质:一个Jar包,一个分布式框架,,一个远程服务调用的分布式框架。既然是新手教学,肯定很多同学不明白什么是分布式和远程服务调用,为什么要分布式,为什么要远程调用。我简单画个对比图说明(图1看到图2。画板画的,勿喷)。你想一下,以前什么的都在一个服务器上,调用方法直接就自然而然调用了,没啥问题。现在因为需求增多拆分了这么多个,部署在不同的服务器上,那是不是相对以前...原创 2019-09-04 20:16:31 · 353 阅读 · 0 评论 -
Dubbo入门教程
服务端(dubbo-server)1. pom.xml<?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" ...原创 2019-09-04 20:31:32 · 420 阅读 · 0 评论 -
Java代码实现负载均衡五种算法
前言:负载均衡是为了解决并发情况下,多个请求访问,把请求通过提前约定好的规则转发给各个server。其中有好几个种经典的算法。在用java代码编写这几种算法之前,先来了解一下负载均衡这个概念。1.概念负载,从字面意思可以分析,是指后端server可以承受的压力。这个一方面是服务器的性能,另一方面就是代码的质量了。均衡,就是说把服务部署在多态server,如何调度这些资源。根据服务器性能不同...原创 2019-09-04 20:56:53 · 236 阅读 · 0 评论 -
Spring Cloud 微服务架构
一、分布式服务框架的发展1.1 第一代服务框架 代表:Dubbo(Java)、Orleans(.Net)等特点:和语言绑定紧密1.2 第二代服务框架 代表:Spring Cloud等现状:适合混合式开发(例如借助Steeltoe OSS可以让ASP.Net Core与Spring Cloud集成),正值当年1.3 第三代服务框架 代表:Service Mesh(服务网格) =...原创 2019-09-06 10:23:17 · 1062 阅读 · 0 评论 -
云技术
云技术是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。原创 2019-09-06 10:31:03 · 635 阅读 · 0 评论 -
一个可供中小团队参考的微服务架构技术栈
一个可供中小团队参考的微服务架构技术栈转载 2019-09-06 10:42:10 · 332 阅读 · 0 评论 -
Java秒杀业务架构设计之路
Java秒杀业务架构设计之路原创 2019-08-26 14:57:45 · 278 阅读 · 0 评论 -
Spring-boot 打成jar包后使用外部配置文件
官网说明第一种是在jar包的同一目录下建一个config文件夹,然后把配置文件放到这个文件夹下;第二种是直接把配置文件放到jar包的同级目录;第三种在classpath下建一个config文件夹,然后把配置文件放进去;第四种是在classpath下直接放配置文件。这四种方式的优先级是从一到四一次降低的,这里主要说前面两种外部配置文件使用。使用方法新建config文件夹放入applic...原创 2019-09-22 15:23:43 · 866 阅读 · 0 评论 -
Java实现消息队列服务
使用 JAVA 语言自己动手来写一个MQ (类似ActiveMQ,RabbitMQ)主要角色首先我们必须需要搞明白 MQ (消息队列) 中的三个基本角色ProducerBrokerConsumer整体架构如下所示自定义协议首先从上一篇中介绍了协议的相关信息,具体厂商的 MQ(消息队列) 需要遵循某种协议或者自定义协议 , 消息的 生产者和消费者需要遵循其协议(约定)才能后成功地生产...原创 2019-08-30 16:34:15 · 9927 阅读 · 2 评论 -
Java(发布/订阅模式)
1、概述观察者模式又称为发布/订阅(Publish/Subscribe)模式观察者设计模式涉及到两种角色:主题(Subject)和观察者(Observer)(1)Subject模块Subjec模块有3个主要操作addObserver():注册添加观察者(申请订阅)deleteObserver():删除观察者(取消订阅)notifyObserver():主题状态发生变化时通知所有的观察...原创 2019-08-30 15:56:43 · 3900 阅读 · 1 评论 -
activemq的使用场景
一、消息队列概述消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题。实现高性能,高可用,可伸缩和最终一致性架构。是大型分布式系统不可缺少的中间件。目前在生产环境,使用较多的消息队列有ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ等。二、消息队列应用场景以下介绍消息队列在实际应用中常用的使用场景。异步处理,应用解耦...原创 2019-08-30 06:44:01 · 629 阅读 · 0 评论 -
Java高并发高性能分布式框架从无到有微服务架构设计
Java高并发高性能分布式框架从无到有微服务架构设计原创 2019-08-26 15:03:18 · 289 阅读 · 0 评论 -
java分布式学习路线
先理解为什么需要分布式,因为服务器处理的能力需要提升,这里有两个方面,第一是纵向 也就是增加cpu的能力,或者加内存;另一个方向就是 横向 ,就是分布式。将本来一台计算机的压力分给多太计算机,从而可以平均分布io,同时提升响应速度。建议先从分布式 数据库看起,之后你可以用 虚拟机,和 本机进行测试 分布式数据库。之后你可以使用 java操作这种分布式 数据库。从而 依旧用虚拟机练习web项目...原创 2019-08-27 15:26:20 · 2097 阅读 · 0 评论 -
分布式学习路线
由于分布式系统所涉及到的领域众多,知识庞杂,很多新人在最初往往找不到头绪,不知道从何处下手来一步步学习分布式架构。本文试图通过一个最简单的、常用的分布式系统,来阐述分布式系统中的一些基本问题。负载均衡分布式缓存分布式文件系统/CDN分布式RPC分布式数据库/Nosql分布式消息中间件分布式session问题-总结下图为一个中大型网站/App的基本架构:在这个架构中,涉及...原创 2019-08-27 15:33:32 · 2616 阅读 · 1 评论 -
发布订阅
发布订阅原创 2019-08-28 07:49:35 · 453 阅读 · 0 评论 -
消息中间件应用场景
消息中间件应用场景原创 2019-08-28 07:50:24 · 826 阅读 · 0 评论 -
点对点
数据传输的可靠性是通过数据链路层和网络层的点对点和传输层的端对端保证的。点对点是基于MAC地址或者IP地址,是指一个设备发数据给另外一个设备,这些设备是指直连设备包括网卡,路由器,交换机。端对端是网络连接,应用程序之间的远程通信。端对端不需要知道底层是如何传输的,是一条逻辑链路。端到端与点到点是针对网络中传输的两端设备间的关系而言的。端到端传输指的是在数据传输前,经过各种各样的交换设备,在两端设...原创 2019-08-29 11:06:36 · 865 阅读 · 0 评论 -
MQ消息中间件介绍
消息队列技术是分布式应用间交换信息的一种技术,消息队列可驻留在内存或者磁盘上,队列存储消息直到它们被应用程序读走,通过消息队列,应用程序可以独立的执行—它们不需要知道彼此的位置,或者继续执行前不需要等待接收程序接收此消息。(1)队列管理器队列管理器是MQ系统中最上层的一个概念,由它为我们提供基于队列的消息服务。(2)消息在MQ中,把应用程序交由MQ传输的数据定义为消息,我们可以定义消息的内...原创 2019-08-29 11:12:08 · 400 阅读 · 0 评论 -
负载均衡
面对大量用户访问、高并发请求,海量数据,可以使用高性能的服务器、大型数据库,存储设备,高性能Web服务器,采用高效率的编程语言比如(Go,Scala)等,当单机容量达到极限时,我们需要考虑业务拆分和分布式部署,来解决大型网站访问量大,并发量高,海量数据的问题。从单机网站到分布式网站,很重要的区别是业务拆分和分布式部署,将应用拆分后,部署到不同的机器上,实现大规模分布式系统。分布式和业务拆分解决了...原创 2019-08-29 11:18:10 · 141 阅读 · 0 评论 -
各种缓存介绍
说起缓存相关技术,老多了, memcache、redis、squid、varnish、web cache、 CDN等等。缓存技术五花八门,但这些技术间有什么共性的地方,又有什么不同的地方呢?答案肯定是有的,这次为大家分享及整理一下缓存方面的技术,主要分为三个系列展开:缓存随谈系列之一:数据库缓存缓存随谈系列之二:静态缓存缓存随谈系列之三:动态缓存一、什么是数据库缓存我们知道常见的数据库,...原创 2019-08-29 11:23:45 · 465 阅读 · 0 评论 -
正向代理与反向代理
正向代理正向代理类似一个跳板机,代理访问外部资源。比如我是一个用户,我访问不了某网站,但是我能访问一个代理服务器,这个代理服务器呢,他能访问那个我不能访问的网站,于是我先连上代理服务器,告诉他我需要那个无法访问网站的内容,代理服务器去取回来,然后返回给我。从网站的角度,只在代理服务器来取内容的时候有一次记录,有时候并不知道是用户的请求,也隐藏了用户的资料,这取决于代理告不告诉网站。反向代理...原创 2019-08-29 12:26:37 · 108 阅读 · 0 评论 -
RPC简介及框架选择
简单介绍RPC协议及常见框架,对比传统restful api和RPC方式的优缺点。常见RPC框架,gRPC及序列化方式Protobuf等HTTP协议http协议是基于tcp协议的,tcp协议是流式协议,包头部分可以通过多出的\r\n来分界,包体部分如何分界呢?这是协议本身要解决的问题。目前一般有两种方式,第一种方式就是在包头中有个content-Length字段,这个字段的值的大小标识了POS...原创 2019-08-29 12:36:29 · 446 阅读 · 0 评论 -
JAVA中几种常用的RPC框架介绍
RPC是远程过程调用的简称,广泛应用在大规模分布式应用中,作用是有助于系统的垂直拆分,使系统更易拓展。Java中的RPC框架比较多,各有特色,广泛使用的有RMI、Hessian、Dubbo等。RPC还有一个特点就是能够跨语言,本文只以JAVA语言里的RPC为例。对于RPC有一个逻辑关系图,以RMI为例:其他的框架结构也类似,区别在于对象的序列化方法,传输对象的通讯协议,以及注册中心的管理与f...原创 2019-08-29 12:51:51 · 223 阅读 · 0 评论 -
跨语言RPC框架Thrift详解
一、 概念Apache的Thrift软件框架,是用来进行可伸缩的、跨语言的服务开发,它通过一个代码生成引擎来构建高效、无缝的服务,这些服务能够实现跨语言调度,目前支持的语言有: C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, JavaScript, Node.js, Smalltalk, OCaml and Delp...原创 2019-08-29 13:01:12 · 665 阅读 · 0 评论 -
RPC服务和HTTP服务对比
很长时间以来都没有怎么好好搞清楚RPC(即Remote Procedure Call,远程过程调用)和HTTP调用的区别,不都是写一个服务然后在客户端调用么?这里请允许我迷之一笑~Naive!本文简单地介绍一下两种形式的C/S架构,先说一下他们最本质的区别,就是RPC主要是基于TCP/IP协议的,而HTTP服务主要是基于HTTP协议的,我们都知道HTTP协议是在传输层协议TCP之上的,所以效率来看...原创 2019-08-29 13:23:29 · 99 阅读 · 0 评论 -
Nginx使用
Nginx 简介Nginx是一个高性能的http和反向代理服务器,它看起来好像不太符合英文单词的拼写习惯,因为Nginx是由名为 伊戈尔·赛索耶夫 的俄罗斯人开发的。Nginx主要特点为占用内存小,处理并发能力强悍,在国内被广泛采用。目前像阿里,京东,腾讯,百度,新浪,网页等国内的互联网巨头公司都在使用。下面我们来介绍Nginx的简单使用,笔者认为学会一个工具最快的方式为先使用,然后明白为什么...原创 2019-08-29 14:38:26 · 430 阅读 · 0 评论 -
分布式模式之Broker模式
问题来源:创建一个游戏系统,其将运行在互联网的环境中。客户端通过WWW服务或特定的客户端软件连接到游戏服务器,随着流量的增加,系统不断的膨胀,最终后台数据、业务逻辑被分布式的部署。然而相比中心化的系统,复杂度被无可避免的增大了,该如何降低各个组件之间的耦合度。挑战:需要保证可伸缩性、可维护性、可更新性,需要将服务划分为各个相对独立的组件,组件被分布式的部署,它们之间通过进程间通信方式实现交互...原创 2019-09-24 15:59:17 · 560 阅读 · 0 评论