JAVA ’ 目录归档

Dubbo-从入门到深入

Dubbo-从入门到深入,如何使用dubbo搭建一个分布式系统,dubbo特性介绍,dubbo原理剖析。

阅读全文

原创文章,转载请注明: 转载自并发编程网 – ifeve.com本文链接地址: Dubbo-从入门到深入

Leader-Follower线程模型概述

一、前言

IO线程模型一直在演化,由最开始的单线程模型,到BIO方式的单线程接受请求线程池线程具体处理单个请求的读写事件,再到NIO的单线程接受请求线程池里面的单个线程可以处理不同请求的读写事件,一个字没有最快,只有更快。最近发现还有个Leader-follower线程模型,其的出现是为了解决单线程接受请求线程池线程处理请求下线程上下文切换以及线程间通信数据拷贝的开销,并且不需要维护一个队列。 阅读全文

原创文章,转载请注明: 转载自并发编程网 – ifeve.com本文链接地址: Leader-Follower线程模型概述

《Apache Thrift官方文档》简介

Apache Thrift

最后修改时间: 2017-11-11

 

简介

Thrift是一个轻量级、语言无关的软件栈,它具有一套为RPC通信生成代码的机制。Thrift为数据的传输、序列化,以及应用层处理提供了干净的抽象。采用这种抽象栈,它的代码生成器仅使用一种简洁的定义语言作为输入,便能够生成跨编程语言的代码,以构建互操作的RPC客户端和服务器。

Apache Thrift层级架构

阅读全文

原创文章,转载请注明: 转载自并发编程网 – ifeve.com本文链接地址: 《Apache Thrift官方文档》简介

《RabbitMQ官方指南》安装指南

原文链接   翻译:xiezc

目录(其中的文章后续翻译):

  • Windows下安装
  • Debian / Ubuntu下安装
  • 基于RPM的Linux下安装
  • Mac OS X下安装
  • Homebrew安装
  • Windows(手动)下安装
  • 通用Unix安装
  • So​​laris下安装
  • EC2安装
  • 升级
  • Blue-green (一种安全部署应用的方法)
  • 支持的平台
  • 更新日志
  • Erlang版本
  • 签名软件包
  • Java客户端下载
  • .NET客户端下载
  • Erlang客户端下载
  • 社区插件
  • 快照

阅读全文

原创文章,转载请注明: 转载自并发编程网 – ifeve.com本文链接地址: 《RabbitMQ官方指南》安装指南

在Windows上安装RabbitMQ

原文链接    翻译:xiezc

  下载服务器

描述 下载
Windows系统安装程序(来自Bintray 的RabbitMQ的服务器-3.7.4.exe (签名)
Windows系统安装程序(来自GitHub 的RabbitMQ的服务器-3.7.4.exe (签名)

阅读全文

原创文章,转载请注明: 转载自并发编程网 – ifeve.com本文链接地址: 在Windows上安装RabbitMQ

动手实现一个 LRU cache

前言

LRU 是 LeastRecentlyUsed 的简写,字面意思则是 最近最少使用。通常用于缓存的淘汰策略实现,由于缓存的内存非常宝贵,所以需要根据某种规则来剔除数据保证内存不被撑满。如常用的 Redis 就有以下几种策略:

策略 描述
volatile-lru 从已设置过期时间的数据集中挑选最近最少使用的数据淘汰
volatile-ttl 从已设置过期时间的数据集中挑选将要过期的数据淘汰
volatile-random 从已设置过期时间的数据集中任意选择数据淘汰
allkeys-lru 从所有数据集中挑选最近最少使用的数据淘汰
allkeys-random 从所有数据集中任意选择数据进行淘汰
no-envicition 禁止驱逐数据

摘抄自:github

阅读全文

原创文章,转载请注明: 转载自并发编程网 – ifeve.com本文链接地址: 动手实现一个 LRU cache

《Thrift官方文档》Thrift支持的语言

Apache Thrift 支持语言

最后修改时间: 2018-03-06

Thrift支持多种编程语言,它具有一组引人注目的测试套件,展示了大量案例用法,这些案例包含了在不同语言、协议、传输器的数千种可能组合中的大多数。对每种语言,一般有一个Thrift所需的最低版本和支持类库,有些库是必需的、有些是可选的。下面的信息可以帮你评估能否在你的项目中使用Thrift。很明显,要维护这样一个矩阵是很复杂的,在某些情况下信息可能不准确。如果你发现有错误,请通过邮件列表告知我们。

阅读全文

原创文章,转载请注明: 转载自并发编程网 – ifeve.com本文链接地址: 《Thrift官方文档》Thrift支持的语言

《Thrift官方文档》 – docker构建说明

Docker 集成

由于Apache Thrift的构建需要依赖多种编程语言,为了最大限度地保证测试覆盖率,我们使用docker容器在多种不同平台上构建和测试Thrift。

Travis CI 集成

Travis CI 脚本的行为,由下面的环境变量和逻辑来决定。

阅读全文

原创文章,转载请注明: 转载自并发编程网 – ifeve.com本文链接地址: 《Thrift官方文档》 – docker构建说明

浅尝一致性Hash原理

一、前言

在解决分布式系统中负载均衡的问题时候可以使用Hash算法让固定的一部分请求落到同一台服务器上,这样每台服务器固定处理一部分请求(并维护这些请求的信息),起到负载均衡的作用。

但是普通的余数hash(hash(比如用户id)%服务器机器数)算法伸缩性很差,当新增或者下线服务器机器时候,用户id与服务器的映射关系会大量失效。一致性hash则利用hash环对其进行了改进。 阅读全文

原创文章,转载请注明: 转载自并发编程网 – ifeve.com本文链接地址: 浅尝一致性Hash原理

Dubbo剖析-线程模型

一、前言

Dubbo默认的底层网络通讯是使用Netty来做的,在服务提供方NettyServer使用两级线程池,其中EventLoopGroup(boss)主要用来接受客户端的链接请求,并把接受的请求分发给EventLoopGroup(worker)来处理,boss和worker线程组我们称为IO线程。

如果服务提供方的逻辑能迅速完成,并且不会发起新的 IO 请求,则直接在 IO 线程上处理更快,因为这减少了线程池调度。

但如果处理逻辑较慢,或者需要发起新的 IO 请求,比如需要查询数据库,则必须派发到新线程池,否则 IO 线程阻塞,将导致不能接收其它请求。

阅读全文

原创文章,转载请注明: 转载自并发编程网 – ifeve.com本文链接地址: Dubbo剖析-线程模型

分布式理论:CAP是三选二吗?

CAP是什么?

CAP理论,被戏称为[帽子理论]。CAP理论由Eric Brewer在ACM研讨会上提出,而后CAP被奉为分布式领域的重要理论[1] 。

阅读全文

原创文章,转载请注明: 转载自并发编程网 – ifeve.com本文链接地址: 分布式理论:CAP是三选二吗?

Jarslink1.6.1版本特性

Jarslink 在4月初推出了新版本,增加支持Spring注解和模块多版本特性。欢迎参与开源项目,成为我们的Commiter

注解的使用

新版本加入了注解的支持,用户只需要在构建ModuleConfig的时候调用ModuleConfig.addScanPackage(String)方法即可,可以多次调用该方法来添加多个扫描包配置,该配置会被spring用来作为扫描包配置。

阅读全文

原创文章,转载请注明: 转载自并发编程网 – ifeve.com本文链接地址: Jarslink1.6.1版本特性

《Thrift官方文档》翻译邀请

本月(4月)并发编程网组织翻译《Thrift官方文档》,欢迎有兴趣的同学参与。

如何领取

通过评论领取想要翻译的文章,每次领取一章或一节(根据内容长短),翻译完后再领取其他章节。领取完成之后,译文最好在一个星期内翻译完成,如果不能完成翻译,也欢迎你邀请其他同学和你一起完成翻译。请谨慎领取,很多文章领取了没有翻译,导致文章很长时间没人翻译。

阅读全文

原创文章,转载请注明: 转载自并发编程网 – ifeve.com本文链接地址: 《Thrift官方文档》翻译邀请

《Apache RocketMQ用户指南》之定时消息示例

定时消息示例

原文链接       译者:小村长

什么是定时消息?

定时消息与正常消息的不同之处在于,它是在指定的时间后执行。

阅读全文

原创文章,转载请注明: 转载自并发编程网 – ifeve.com本文链接地址: 《Apache RocketMQ用户指南》之定时消息示例

使用Spring框架实现远程服务暴露与调用

一、前言

Spring框架提供了通过HTTP协议实现远程调用的方式,具体是调用方使用HttpInvokerProxyFactoryBean生成一个代理对象,通过代理对象远程通过http服务调用服务提供方法的服务,服务提供方则通过HttpInvokerServiceExporter在服务端暴漏远程调用接口。 阅读全文

原创文章,转载请注明: 转载自并发编程网 – ifeve.com本文链接地址: 使用Spring框架实现远程服务暴露与调用

return top