- 浏览: 454792 次
- 性别:
- 来自: 杭州
最新评论
-
goody9807:
goody9807 写道server.1和server.2启动 ...
深入浅出Zookeeper之五 Leader选举 -
goody9807:
server.1和server.2启动后,无法选出Leader ...
深入浅出Zookeeper之五 Leader选举 -
小黄牛:
分布式事务解决方案演示效果:http://www.iqiyi. ...
深入浅出Zookeeper之七分布式CREATE事务处理 -
chenghaitao111111:
兄弟syncedUpdateBrokersInfo这个代码和g ...
[metaq]Producer -
victory_gwb:
我看的3.4.6版本中takeSnapshot(); 这个方 ...
深入浅出Zookeeper之一Server启动
文章列表
某一天想查看某个应用里的hsf活跃线程数(工作线程)。
第一个想到的jstack,根据jstack打出的日志分析。
典型日志:
"HSFBizProcessor-thread-6"prio=10 tid=0x00002aaabdffd800 nid=0x201f runnable [0x000000004768e000]
java.lang.Thread.State: RUNNABLE
at java.lang.Class.getEnclosingMethod0(Native Method)
at java.lang.Cl ...
大名鼎鼎的Zookeeper是解决分布式问题的神器。小编最近简单阅读了代码,分享一下。有不对之处,还请大家指出。
整篇文章将分多个系列完成,因为涉及点比较多,很难在一片文章内搞定。关于zookeeper的使用场景,大家参考http://rdc.taobao.com/team/jm/archives/1232。api使用参考官网手http://zookeeper.apache.org/doc/trunk/。这里以最新的zookeeper3.4.5为例。
这个系列的第一篇来说说zookeeper server端的启动,以单机为例,分布式zookeeper将在后续专门分析。
单机版启动类Z ...
最近小弟要分析一些gc数据,同时要分析几台机器的gc日志,主要统计每天数据:minor gc次数,最大运行时间,最小运行时间,平均运行时间,minor gc引起的总的stop world时间,major gc次数,major gc引起的总的stop world时间。
原始数据:
2012-10-25T13:00:22.244+0800:234273.762: [GC 234273.762: [ParNew: 1418872K->53180K(1501888K), 0.0337000secs] 3512438K->2148338K(4057792K), 0.0340 ...
处理流程:
1. 在web容器启动时,通过SphFilter启动降级线程,初始化整个Sph框架。
Web.xml配置:
<filter>
<filter-name>SphFilter</filter-name>
<display-name>SphFilter</display-name>
<filter-clas ...
在我们应用经常需要统计一些计数,比如调用次数等。典型代码如下:
Keys keys = newKeys("XXX","doSomething");
MonitorLog.addStat(keys, System.currentTimeMillis()-begin, 1L);
在监控系统的页面上就能看到准实时 ...
各位好,最近小弟接到一个需求,需要dump数据从云梯(淘宝的hadoop环境)到TAIR(淘宝的缓存系统)。
原先的大概设计:
先从云梯原始表分析出部分数据,再用Datax(数据同步工具)将这些数据导入mysql单表,再起一个单机多线程任务跑(这里需要8个多小时)。
我的一个简单想法,既然数据在云梯上,为什么不直接在云梯上直接跑MapReduce任务呢?然后我就开始这么干了。。。
1.由于原始表在hive环境中,大概20亿条记录,而我感兴趣的只是其中部分数据。所以先用hivesql过滤数据,sql如下:
set mapred.reduce.tasks=45;/ ...
在双11之前,做了一些UMP GC优化的事情,和大家分享下问题查找和优化的思路。
一. 一些GC基础知识
1. 大部分jvm都有分代的概念,堆被分成2个部分,一个Young区,一个old区
2. -Xmx设置堆的最大值,-Xmn设置young区的大小,减一下就是old区的大小
3. Young区又分为Eden,survivor(s0,s1,大小通过SuvivorRatio指定)区,新生对象一般都在eden区分配,Hotspot为了优化对象创建的效率,给每个线程默认分配了部分内存TLAB,线程先在自己的TLAB空间创建对象,如果不够则去eden区分配。 ...
前两篇文章为大家带来了HSF容器启动和Porvider的分享。这篇来分析下consumer端的运行机制。
一. Consumer的启动
1. 服务代理
在HSFSpringConsumer的启动中会返回一个HSFServiceProxy的jdk动态代理,后续调用其实都是通过这个代理类来实现的。
InvocationHandler handler = newHSFServiceProxy(metadata);
Object proxyObj =Proxy.newProxyInstance(getClass().getClassLoader(), new ...
上篇文章,简单介绍了HSF框架的初始化。这一篇,小编将为大家带来HSF provider的启动和服务细节。主要关注点:Server的启动,服务的注册,调用处理主流程(IO线程,业务线程)。
一. Server的启动
在某一个HSFSpringProviderBean初始化时,启动HSF Server。在HSF默认协议使用TBRemoting作为RPC框架,TBRemotingRPCProtocolComponent.registerProvider中:
providerServer.startHSFServer();
其代码如下:
Server s ...
大家平时都在用这个服务框架。简单阅读了下代码,了解其原理可以方便解决一些常见hsf的问题。限于篇幅,整个分析将分几个系列发布。第一篇将简单介绍Hsf的启动和各组件之间关系。
一. Hsf总体架构
这个图很经典,想必大家都了解,Consumer,Provider,中间通过ConfigServer联接。那么其内部是如何实现的呢?请看下文。
二. 容器启动,jboss为例
HSF使用基于equinox(OSGi框架的eclipse实现,http://www.eclipse.org/equinox/)的OSGi,启动流程
1. ...
前2篇分析了echo server端的运行机制,本篇同样以echo client为例,分析netty的nio客户端的运行机制。
总体来说client端和server端的处理是类似的,NioWorker是重用的,也就意味着client和server的读写机制是一样的,都是通过worker线程来管理的。所不同的是Boss线程,server端的boss线程一个bind端口起一个,主要负责接收新请求,而client端的boss线程是一个可配置的数组,一个connect端口分配一个,主要负责connect过程,如果connect成功则将channle注册到worker线程中处理。在Client同样有Pi ...
Server bind之后,就可以对外提供服务了。Netty使用了reactor模式来提升服务的并发处理能力。boss线程负责监听新的连接请求,当有新的连接进来时,将对应的channel指派一个worker线程来处理。Worker线程负责对该Channel的读写操作。
一.Boss线程
1.阻塞Select
for (;;) {
try {
// Boss线程专门负责监听新入连接,所以阻塞select
selector.selec ...
以netty提供的echo server作为分析入口,echoServer代码:
public void run() {
// 构造NioServerSocketChannelFactory,初始化bootstrap
ServerBootstrap bootstrap = new ServerBootstrap(
new NioServerSocketChannelFactory(
Executors.newCachedThreadPool(),
Executors.newCachedThreadPool()));
// 创建一 ...
Netty是一个java领域常用的IO框架,小编最近简单看了下它的实现,和大家分享下。小编能力有限,有不对的地方还请大家指出。这个系列将分多个文章来完成,第一篇先简单介绍下netty的概念模型。使用的netty版本是3.5.11.Final。
Netty的核心概念可以用这个类图来表示:
一.Bootstrap
netty框架启动的工具类,分client,server和udp3种,其核心功能是初始化主channel
二.ChannelFactory
创建Channel的工厂,接受ChannelPipeline参数,创建一个Channel。针对不同场景,netty提供了各种 ...
Hello world
之前的qing地址 http://qing.weibo.com/1557922863