- 博客(232)
- 资源 (11)
- 收藏
- 关注
原创 Dubbo学习(十三):服务降级
一、dubbo降级服务 dubbo开发中,可能由于服务没有启动或者网络不通,调用中会出现RpcException,也就是远程调用失败。如果是服务启动顺序的问题,可能加工check="false"的配置可以得到很好的解决。但是,如果是服务宕掉或者并发数太高导致的RpcException该如何处理? 经过过12306抢票的人应该经常会遇到这个问题:在抢票高峰的时候,
2016-04-26 16:45:53
11501
2
原创 Dubbo学习(十二):服务多版本
package com.baizhi.service.impl;import com.baizhi.service.IDemoService;public class DemoService_v1 implements IDemoService { public int sum(Integer x, Integer y) { try{ Thread.sleep(3000);
2016-04-26 15:30:19
7166
原创 Dubbo学习(十一):结果缓存
为什么要用到结果缓存,主要是用于加速热门数据的访问速度,Dubbo提供声明式缓存,以减少用户加缓存的工作量 缓存的应用非常广泛,为了提高数据访问的速度。Dubbo也不例外,它提供了声明式缓存,以减少用户加缓存的工作量。一、Dubbo中缓存策略lru 基于最近最少使用原则删除多余缓存,保持最热的数据被缓存。threadlocal 当前线程缓存,比如一个页面渲染,用到很多
2016-04-25 21:53:04
2700
原创 Dubbo学习(十):异步调用
一.异步调用和同步调用的区别 我们知道,常见的方法调用都是同步调用,这种调用方式是一种阻塞式的调用方式,即客户端(主调用方)代码一直阻塞等待直到被服务端(被调用方)返回 为止。这种调用方式相对比较直观,也是大部分编程语言直接支持的一种调用方式。但是,如果我们面对是基于粗粒度的服务组件,面对的是一些需要比较长时间才 能有响应的应用场景,那么我们就需要一种非阻塞式调用方式,即异步调用方
2016-04-25 21:31:34
5631
原创 Dubbo学习(九):dubbo管理控制台(Admin)安装和使用
dubbo管理控制台开源部分主要包含: 提供者 路由规则 动态配置 访问控制 权重调节 负载均衡 负责人,等管理功能。1、下载dubbo我上传地址:http://download.csdn.net/detail/liweifengwf/7784901官方地址:http://code.alibabatech.com/mvn/releases
2016-04-22 22:07:33
1785
原创 Dubbo学习(八):监控中心Monitor
dubbo-monitor安装、 监控中心 配置过程使用dubbo的话,两个工具是不可少的:1:dubbo的管理控制台,在之前的笔记中介绍过2:简易控制中心monitor 简单介绍下monitor:Simple Monitor挂掉不会影响到Consumer和Provider之间的调用,所以用于生产环境不会有风险。 配置好了之后可以结
2016-04-22 22:04:20
3446
1
原创 Quartz定时任务学习(1)--基本的使用方法
最近在研究Spring中的定时任务功能,最好的办法当然是使用Quartz来实现。对于一个新手来说,花了我不少时间,这里我写个笔记,给大家参考。 我使用的是Maven来管理项目,需要的Jar包我给大家贴出来。 quartz-1.8.5.jar commons-logging.jar spring-core-3.0.5.RELEASE.jar spring-beans-3.0.5.
2016-04-21 17:27:22
1216
原创 Spring容器中的Bean几种初始化方法和销毁方法的先后顺序
Spring 容器中的 Bean 是有生命周期的,Spring 允许 Bean 在初始化完成后以及销毁前执行特定的操作。下面是常用的三种指定特定操作的方法:通过实现InitializingBean/DisposableBean 接口来定制初始化之后/销毁之前的操作方法;通过 元素的 init-method/destroy-method属性指定初始化之后 /销毁之前调用的操作方法;在指定方法
2016-04-10 15:20:57
1076
1
原创 Zookeeper学习(十三):Zookeeper的选举算法
1.ZAB(原子广播协议)2.服务器角色3.服务器状态4.集群通信5.选举触发的时机6.影响成为Leader的因素7.初次启动
2016-04-06 10:08:30
1879
1
原创 Zookeeper学习(十二):Zookeeper启动异常-无法启动的分析(It is probably not running)
在文章 zookeeper启动失败的排错中描述了zookeeperd的一种启动错误,今天笔者还发现了另外一种启动错误,顺便记录下来:一台测试的服务器重启后,运行zookeeperd的启动脚本显示启动成功:[plain] view plain copyJMX enabled by default Using con
2016-04-05 17:09:23
6322
2
原创 Dubbo学习(七):服务的升级和降级
1.开关 先讲一下开关的由来,例如京东在6月18日做店庆促销活动,在交易下单环节,可能需要调用A、B、C三个接口来完成,但是其实A和B是必须的,C只是附加的功能(例如在下单的时候做一下推荐),可有可无,在平时系统没有压力,容量充足的情况下,调用下没问题,但是在类似店庆之类的大促环节,系统已经满负荷了,这时候其实完全可以不去调用C接口,怎么实现这个呢?改代码?no,no,no,这
2016-03-31 16:40:44
15470
2
原创 Dubbo学习(六):多注册中心
1.多注册中心 多注册中心是指同一个服务消费者,可以连接两个不同的服务注册中心,不同的服务注册中心中可以提供同一个服务的不同实现版本2.3.示例 dubbo.xml中的配置,US和China两个注册中心是引用不同的接口实现类,实现的接口是一样的,但是实现的内容有所不同
2016-03-25 15:10:18
3229
1
原创 Dubbo学习(四):集群容错
1.什么是集群容错 是指在一个服务下去暴露多个provider(即同一个服务有多个服务提供者支持),可以有任何一个provider宕机,不影响服务的正常提供。 2.dubbo具有自动注册和自动发现的功能
2016-03-25 11:05:08
2969
原创 Dubbo学习(三):启动时检查
1.什么是启动检测 就是在启动spring的时候需不需要去检查当前引用的服务可不可用2. <dubbo:reference id="demoService" interface="com.baizhi.service.IDemoService" protocol="dubbo" check="false" />
2016-03-24 23:27:56
2868
2
原创 Dubbo学习(二):dubbo中的注意事项
1.dubbo启动后会在zookeeper中注册,注册是一服务的接口名来命名的 <dubbo:service 这个是注册服务地址 ref="demoService" interface="com.baizhi.service.IDemoService" protocol="dubbo" /> <dubbo:reference
2016-03-24 23:06:55
5744
2
原创 RPC学习(二):RPC的原理分析
1.RPC的大致工作原理: 分为1.服务的提供者(生产者), 2.服务的调用者(生产者) 3.服务的提供者和调用者,都要用到的接口 4.RPC框架 服务的提供者实现接口中的方法,服务的调用者引用同一个接口, 1).服务的调用者会把要调用的接口和方法,还有参数,传递给RPC框架,
2016-03-24 20:41:32
1293
原创 RPC学习(一):RPC的基础
1.RPC的概念 远程过程调用(RPC)是一个协议,程序可以使用这个协议请求网络中另一台计算机上某程序的服务而不需知道网络细节, RPC是指远程过程调用,也就是说两台服务器A,B,一个应用部署在A服务器上,想要调用B服务器上应用提供的函数/方法,由于不在一个内存空间,不能直接调用,需要通过网络来表达调用的语义和传达调用的数据。3.RPC的模型C/S模式基于传
2016-03-23 16:36:56
3669
1
原创 Zookeeper学习(十一):ZooKeeper 实现命名服务
1.命名服务命名服务可以理解为提供名字的服务Zookeeper的命名服务,有两个应用方向: 1.提供类似JNDI的功能: 利用zookeeper中的树形分层结构,可以把系统中的各种服务的名称,地址以及目录信息存放在zookeeper中,需要的时候去zookeeper中去读取 2. 利用zookeeper中的顺序节点的特性
2016-03-21 15:18:51
5117
原创 Zookeeper学习(九):ZooKeeper 实现分布式锁
1.什么是分布式锁 一般的锁:一般我们说的锁是但进程多线程的锁,在多线程并发编程中,用于线程之间的数据同步,保护共享资源的访问 分布式锁:分布式锁指的是在分布式环境下,保护跨进程,跨主机,跨网络的共享资源,实现互斥访问,保证一致性2.分布式锁的架构图3.分布式锁的算法流程
2016-03-21 11:25:33
2837
原创 Zookeeper学习(八):Zookeeper的数据发布与订阅模式
1.发布订阅的基本概念 1.发布订阅模式可以看成一对多的关系:多个订阅者对象同时监听一个主题对象,这个主题对象在自身状态发生变化时,会通知所有的订阅者对象,使他们能够自动的更新自己的状态。 2.发布订阅模式,可以让发布方和订阅方,独立封装,独立改变,当一个对象的改变,需要同时改变其他的对象,而且它不知道有多少个对象需要改变时,可以使用发布订阅模式
2016-03-20 19:48:00
15272
1
原创 (java并发)ScheduledThreadPoolExcutor
1.用timer缺点非常大Timer 的优点在于简单易用,但由于所有任务都是由同一个线程来调度,因此所有任务都是串行执行的,同一时间只能有一个任务在执行,前一个任务的延迟或异常都将会影响到之后的任务。我们关于定时/周期操作都是通过Timer来实现的。但是Timer有以下几种危险a. Timer是基于绝对时间的。容易受系统时钟的影响。 b. Timer只新建了一个
2016-03-20 17:46:00
7837
1
原创 Zookeeper学习(五):ZKClient的使用
1.创建会话public class createSession { public static void main(String[] args) { //zk集群的地址 String ZKServers = "192.168.30.164:2181,192.168.30.165:2181,192.168.30.166:2181"; /** * 创建会话 * n
2016-03-19 23:22:02
25482
2
原创 Dubbo学习(一):dubbo的基本概念
一.ZooKeeper选举1.什么是SOA 就是将以前写的模块单独的抽取出来,成为一个独立的应用,独立的服务运行,不依赖与其它模块 好处:1.解耦合,更高层次的解耦合 2.高度的业务服务复用 3.解决信息孤岛问题,有利于数据的统一整合2.高性能系统系统间通信,不使用WebService
2016-03-19 11:29:28
7995
2
原创 Zookeeper学习(四):选举及数据一致性
一.ZooKeeper选举1.ZAB协议 2.服务器角色2.服务器状态3.集群通信4.ZK选举的触发时机5.影响成为leader的因素
2016-03-18 22:21:53
2169
原创 Zookeeper学习(三):Zookeeper的基础进阶
一.Znode1.znode节点2.临时节点二.watcher的工作机制1.watcher的作用2.watcher的组成和机制 3.watcher的java接口4.watcher中的事件5.watcher的
2016-03-18 10:16:48
2196
原创 Kafka学习(四):Kafka的安装
1.下载 http://kafka.apache.org/downloads.html2.解压 tar -zxvf kafka_2.10-0.8.1.1.tgz
2016-03-17 14:57:35
1218
原创 Kafka学习(三):Kafka的内部机制深入(持久化,分布式,通讯协议)
一.Kafka的持久化1.数据持久化: 发现线性的访问磁盘(即:按顺序的访问磁盘),很多时候比随机的内存访问快得多,而且有利于持久化; 传统的使用内存做为磁盘的缓存 Kafka直接将数据写入到日志文件中,以追加的形式写入2.日志数据持久化特性: 写操作:通过将数据追加到文件中实现 读操作:读的时候从文件中读就好了
2016-03-16 15:58:41
9287
原创 Kafka学习(二):Kafka的基本结构和概念
一.Kafka的逻辑架构 注: 当一个Topic中消息过多时,会对Topic进行分区处理,把消息分到不同的Partition中。 为什么要分区: 是为了对大量的数据进行分而治之,把数据分区,不同的Consumer可以消费不同分区的数据,不同Consumer对数据的消费可以做成并行的,这样可以加快数据处理的速
2016-03-15 18:14:43
12575
原创 Kafka学习(一):Kafka背景及架构介绍
一.Kafka简介 Kafka是分布式发布-订阅消息系统。它最初由LinkedIn公司开发,之后成为Apache项目的一部分。Kafka是一个分布式的,可划分的,冗余备份的持久性的日志服务。它主要用于处理活跃的流式数据。 在大数据系统中,常常会碰到一个问题,整个大数据是由各个子系统组成,数据需要在各个子系统中高性能,低延迟的不停流转。传统的企业消息系统
2016-03-14 19:51:54
3221
原创 Zookeeper学习(二):Zookeeper中的基本概念
1.集群中的角色2.会话3.数据节点4.版本5.Watcher(观察者)6.ACL(访问权限控制列表)
2016-02-26 15:05:00
2294
原创 Zookeeper学习(一):Zookeeper的概述
一.Zookeeper介绍 Zookeeper是一个高性能,分布式的,开源分布式应用协调服务。它提供了简单原始的功能,分布式应用可以基于它实现更高级的服(如Dubbo基于Zookeeper),比如,配置管理,集群管理,名空间。它被设计为易于编程,使用文件系统目录树作为数据模型。服在端跑在java上,提供java和C的客户端API。 两个重要的问题:
2016-02-23 21:10:46
2770
原创 Redis-benchmark命令测试Redis性能
Redis-benchmark是官方自带的Redis性能测试工具,可以有效的测试Redis服务的性能。使用说明如下:Usage: redis-benchmark [-h ] [-p ] [-c ] [-n [-k ] -h Server hostname (default 127.0.0.1) -p Server port (defaul
2016-02-19 13:27:44
1145
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅