自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(95)
  • 收藏
  • 关注

原创 Redis HA 配置

Sentinel简介Redis HA 需要用到Redis的Sentinel模块,该模块的稳定版自2.8之后集成在Redis的发行版中,因此不需要单独安装。Sentinel的特点监控:持续检查Redis集群中Master Slave节点的健康状态;通知:当节点有错误时通知使用者,管理员;自动故障转移:当Master节点故障时,自动从Slave节点选择一个作为Master,其他Slave配置为新的Sl...

2015-12-29 18:28:25 308 1

原创 用BTrace排查性能问题

BTrace是一个可以动态跟踪Java代码执行的工具,网上已经有很多文章介绍,我这里分享一个我在实际工作中排查性能问题的例子。现象我的一个REST接口调用非常慢,postman耗时3873 ms,这个接口就是从redis里把一批数据取出来,redis性能很好,理论上不会这么慢,于是用btrace,trace方法调用。 /* BTrace Script Template */...

2015-12-11 19:04:04 448

原创 Javaassist技术

Javaassist是一个高层的Java字节码处理类库,能运行时动态生成类,修改类。Javaassit能动态生成类的基础源于Java Class的字节码技术:只要遵从规范,Java Class可以来自任何地方。类似的技术还有:bcel,asm等,他们相对于Javaassit,偏向底层,效率较高,但编码难度更高(需要了解JVM指令)。Javaassist是Jboss的一个子项目,其特点是...

2015-09-15 15:31:08 2392

原创 dea架构分析

一、DEA整体架构图1 DEA和其他组件图2 DEA和warden 二、DEA和外部组件1、DEA和NATS在CF内部,各个组件相互配合来完成某项功能,都是通过nats的消息机制来完成的;2、DEA和cloud controller1)dea启动时,生成唯一的uuid来标识自身    dea将自身信息发布到 staging.advertise 和 dea.adve...

2015-09-11 10:55:49 759

原创 weblogic buildpack简介

weblogic buildpack是支持oracle weblogic应用服务器的容器,是从java-buildpack fork出来,并把默认容器从tomcat改成了weblogic。功能特性由于weblogic是部署在CF上,部分weblogic本身特性将不支持默认创建一个以应用名称开头的域(domain),也可以在应用包配置中指定;通过域名配置可以支持数据源(datas...

2015-09-11 10:41:08 156

原创 Linux系统环境变量

设置全局环境变量/etc/profile仅为登录用户shell初始化,Bourne shell兼容的都可以用/etc/bash.bashrc仅为交互shell初始化,bash支持/etc/environment全局环境变量,不论是否登录,是否交互,都可以用,但是内容只能是:key=value格式,不能export,不能用变量,但要注意启动顺序,可能你的程序比这个先执行,依...

2015-08-27 11:29:59 91

原创 设置Spring的配置文件为war包外部的文件

用Spring开发Web项目的时候,有些情况下,需要在不解开war包的情况下修改配置在不同环境读取不同的配置文件,例如:开发环境:web-dev-config.properties,测试环境:web-test-config.properties,生产环境:web-production-config.properties,这时候就需要动态的载入配置文件。 从JVM参数获取配置文件路径J...

2015-08-20 15:24:01 623

原创 Sensu Server源码剖析

Sensu Server是Sensu的核心组件,是Sensu业务逻辑实现的核心组件。Server的启动Sensu Server的入口在sensu/bin/sensu-serveroptions = Sensu::CLI.readSensu::Server::Process.run(options)和这里Client几乎一样,解析命令行参数,调用Process.runrun方法也是,创建一...

2015-04-20 11:15:05 150

原创 Sensu Client源码剖析

概述Sensu Client是运行在其监控的App Server上的,主要工作有:1. 订阅rabbitMQ消息,接收来自Server端的check任务,执行任务,并返回结果给Server端(通过rabbitMQ);2. 周期性执行客户端standalone的check,并返回结果给Server端(通过rabbitMQ);3. 监听TCP端口和UDP端口,接收来自外部的监控数据,返回给Se...

2015-04-20 11:10:48 163

原创 Sensu源码剖析

Sensu的核心组件有:Server,Client,API,都是ruby的工程。代码结构sensu/   ├╴bin/ # 启动脚本  │ ├╴sensu-api  │ ├╴sensu-client  │ └╴sensu-server  │   ├╴CHANGELOG.md  ├╴CONTRIBUTING.md   ├╴Gemfile  ├╴lib/  │ ├╴sensu/  │ │ ├╴api...

2015-04-20 11:08:35 123

原创 Sensu+InfluxDB+Grafana环境搭建

Sensu安装Sensu Server端包含以下几个必须的模块RabbitMQRedisSensu ServerSensu API他们可以安装在不同的服务器组成集群,也可以装成单机版。另外还有一个可选模块,管理UIUchiwa监控数据显示UIgrafanaSensu的安装过程官方文档已经比较齐全,按此安装过程也比较顺利,这里只是记录安装过程中出现的问题和解决办法。1. 安装过程需要root...

2015-04-20 10:38:53 234

原创 应用监控框架Sensu

Sensu是一个开源的监控系统Sensu运行一系列的check脚本检查应用和服务的可用性,当某个条件满足时触发handlers,check脚本也可以附带数据实现计量数据收集。功能特性架构灵活,简单,方便扩展,整合通知类型丰富计量数据收集和转存支持多种数据库,序列化数据库,SQL数据库等可接受来自外部的TCP/UDP输入check脚本比较灵活,可以用任何语言编写,只需要向客户端监听的端口写数据即...

2015-04-20 10:36:24 280

原创 Flume

Flume是Apache的开源项目,是hadoop的周边组件之一。Flume-ng则是Flume改进后的新版本。严格的讲Flume-ng是一个日志搜集、处理、存储的系统。架构source是搜集日志的前端,接受不同的日志数据格式;channel 是日志的暂存地,接收 source 的输出;sink是日志的输出端,消费channel里的日志输出到不同的存储设备;even...

2015-03-12 14:56:53 110

原创 flume-ng安装

 下载flume-ng$ wget http://mirrors.hust.edu.cn/apache/flume/1.5.2/apache-flume-1.5.2-bin.tar.gz解压,创建文件输出目录创建flume的配置$ vi conf/flume-conf.properties agent1.sources ...

2015-03-12 14:54:01 214

原创 基于openstack上的MICRO BOSH 安装cf

bosh部署3要素1. manifest2. release包3. stemcell如何获得?创建manifest用spiff生成manifestspiff下载地址:https://github.com/cloudfoundry-incubator/spiff/releases在cf-release根目录修改spec/fixtures/openstack...

2015-01-28 22:34:19 227

原创 MySQL Service Broker 代码解读

mysql service broker 是mysql接入CF的代理服务实现,它是一个ROR(Ruby On Rails)工程。目录结构app - web应用的前端代码\- asserts - 静态资源\- controllers - MVC中的C,控制器代码\- models -  MVC中的M,业务数据集\- queries - 查询\- views - MVC中...

2015-01-26 11:09:58 334

原创 CF MySQL Service BOSH部署

前提BOSH(microbosh)部署成功cf部署成功准备BOSH部署需要的三个文件:stemcell,release包,deploy-manifest生成release包a. 从源码生成https://github.com/cloudfoundry/cf-mysql-release生成,但是由于网络问题,会比较慢。b. 下载release包下载地址:h...

2015-01-26 11:00:55 218

原创 uaa认证授权流程

uaa采用OAuth的认证方式uaa支持多种OAuth认证方式认证码授权(Authorization Code Grant)浏览器请求码(Browser Requests Code)这里的用户是已经登陆的情况,如果没登陆,在第3步会要求用户在页面填写用户名和密码 非浏览器请求码(Non-Browser Requests Code)和上面的流程一样,不同的是客户端要求...

2015-01-26 10:57:44 7994

原创 admin buildpack

1.admin buildpack定义:admin buildpack是指将多种语言的buildpack打包后,上传到本地的CF的仓储之中,这类buildpack zip包的集合就是buildpack。2.admin buildpack的作用:admin buildpack的目的是为了能够让用户在push app的时候,不指定app对应的buildpack的url,直接上传至CF部署...

2015-01-26 10:57:24 142

原创 uaa配置详解

uaa的配置文件是uaa.yml。war包中的uaa.yml不需要改动,一般通过指定环境变量:$CLOUDFOUNDRY_CONFIG_PATH,指定运行时外部uaa.yml路径。具体配置项如下:123456789101112131415161718192021222324...

2015-01-16 19:14:31 1301

原创 CF用户管理

基于角色的权限控制CF的权限管理是基于角色(role-based access control:RBAC)的,权限是设置在组织(Org)或空间(Space)上的。组织(Orgs)CF为方便管理,将用户按组织分开,组织内的用户共享一个组织配额(Quota),可用的服务,和域名。空间(Spaces)CF的所有应用和服务都被分配在空间里,一个组织至少包含一个空间,角色和权限...

2015-01-16 19:13:11 222

原创 CF权限控制

接口访问控制默认的接口访问create(POST),update(PUT)和delete操作需要cloud_controller.admin的权限范围(scope)read(GET)操作,需要cloud_controller.admin的权限范围或用户已经登录权限验证流程默认的权限验证这里讨论的都是基本的权限验证,在基类中定义的。每一个API接口调用时,在业务方法调...

2015-01-16 19:12:03 486

原创 dea-warden内部查错

dea启动应用实例后,会异步探测应用访问端口(宿主机上的端口,如:61003),如果多次探测都无法连接,dea会认为应用启动失败,随即会销毁容器,导致现场不能保留。解决办法:注释代码中的destroy代码/var/vcap/packages/dea_next/lib/dea/task.rb,在方法:promise_destroy和destroy直接返回return常用路径wa...

2015-01-16 19:08:12 110

原创 weblogic-buildpack离线包制作及排错

离线包制作从github上获取源码$ git clone https://github.com/pivotal-cf/weblogic-buildpackweblogic的包制作比较特别,需要自己下载oracle的jdk,和weblogic。到官方网站下载后,放到一个目录:fileserver,目录结构:fileserver/├── jdk│ ├── index.y...

2015-01-16 19:04:28 135

原创 Docker vs Warden

相同点: 都是依赖宿主操作系统内核的轻量级容器; 都采用了linux内核技术实现容器隔离(namespace)和资源限制(cgroup); 都使用了aufs文件系统; 不同点: 用途 warden是CF内部的一个轻量级的容器,只包含容器部分 docker更全面,docker除了容器部分还包含镜像管理,镜像仓库,服务发现,selinux等,提供了...

2015-01-14 17:40:58 146

原创 UAA Token解析

用户登录时,uaa会颁发一个token给客户端,该token是一个JSON Web Token(JWT)关于JWT的详细信息参考:http://tools.ietf.org/html/draft-ietf-oauth-json-web-token-25类似:eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiJmNzdiNTUxZi02NTU2L...

2015-01-13 14:39:37 853

原创 uaa权限scope

token管理tokens.write:token除权,包括用户和客户端tokentokens.read:token读取,包括用户和客户端tokenUAA用户组管理scim.read:读用户和组 scim.write:添加/更新/删除用户和组password.write:修改自己的密码scim.userids:访问用户 ids/user的endpointscim...

2015-01-13 09:57:51 342

原创 uaa配置详解

uaa的配置文件是uaa.yml。war包中的uaa.yml不需要改动,一般通过指定环境变量:$CLOUDFOUNDRY_CONFIG_PATH,指定运行时外部uaa.yml路径。具体配置项如下:name: uaa # 组件名称database: # 数据库配置url: jdbc:postgresql://192.168.1.63:5524/uaadb # !数据库连接URL...

2015-01-13 09:51:18 1341

原创 Cloud Foundry Eclipse Plugin

Cloud Foundry Eclipse Plugin是方便开发人员部署、管理运行在CloudFoundry的Java和Spring应用的eclipse插件。安装从eclipse的市场可以搜索到该插件。依次点击:Help->Eclipse Marketplace...搜索cloudfoundry点击:install安装使用添加CloudFoundry服务...

2015-01-12 17:54:51 151

原创 java-buildpack源码分析之Release

  release的入口是bin/release,同样需要一个构建目录实例化buildpack对象,并调用其release接口 buildpack#release方法 代码的基本结构和compile很相似,探测各个组件是否支持,然后调用各个组件的release方法def release container = component_detection('container...

2015-01-12 15:24:52 105

原创 java-buildpack源码分析之Detect

Detect该buildpack的探测的内容包含:容器,JRE,框架。具体内容在components.yml中可以看到:# Configuration for components to use in the buildpack---containers:- "JavaBuildpack::Container::DistZip"- "JavaBuildpack::Cont...

2015-01-12 15:21:31 124

原创 java-buildpack源码分析之Compile

Compile编译用户的应用。bin/compile入口是:bin/compile,该脚本和detect脚本很类似:需要一个构建目录实例化buildpack对象,并调用其compile接口。注意:在这个脚本看似只有一个参数,但运行时实际需要第二个参数:应用缓存目录,当下载JDK,compile方法compile先调用component_detection,探测了对容器,JRE...

2015-01-12 15:17:04 137

原创 java-buildpack源码分析

java-buildpack将在JVM上运行的应用包(zip,war,jar等),配置,组合成可运行的应用。java-buildpack探测应用包的容器,JRE,框架等,并下载其依赖包,并配置其运行参数。Java-buildpack对Java应用的支持情况容器tomcatDistZipGroovyJavaMainPlayFrameworkRatpackS...

2015-01-12 15:10:55 313

原创 go语言安装编译

安装过程下面的文档比较详细http://www.yiibai.com/go/go_install.html#go_install但运行编译链接的时候报错:6g:未找到命令原因是未将编译命令所在的包加入$PATH将下面的环境变量加入~/.bashrc # go lang environment variablesexport GOROOT=$HOME/goexpor...

2015-01-07 23:28:30 103

原创 Cloudfoundry之Service

Cloudfoundry(CF)是VMware推出的开源的PaaS平台,提供给用户应用部署运行的环境,并支持多种第三方应用服务。概述Cloudfoundry目前支持的服务主要有:RDS:mysql,postgresqlNoSQL:redis,mongodb,couchdb,neo4jMQ:rabbitmqFilesystem:local,nfsObject Stor...

2013-10-21 14:04:00 189

原创 groovy简明教程(三)常用的类及集合

5.1 GStringgroovy.lang.GString是对java String的扩展:常量表示更加方便,提供了更多的方法。 'hello world'"hello $name"'''-------python style string -------'''"""triple double quotewith $Gstring aware"""...

2013-10-18 12:47:33 135

原创 用jXLS和poi导出Excel

apache的poi提供了支持MS Office文档操作的java API。jXLS则是基于poi提供了支持Excel模版操作的API。jXLS的主页是:http://jxls.sourceforge.net,似乎国内不能访问,需要代理。 下面是一些例子,以及我对导出到多个sheet的一个封装。先定义一个模版: 这里的jxls tag和JSP的tag很像,varStatus...

2013-09-27 15:39:08 845

原创 并行管理工具pssh

pssh是一个简单的字符界面并发向多个服务器发送指令进行执行的工具。适合一次性向集群大量服务器发送相同指令(并观察输出) 1. 安装a. 到google code找到最新的安装包http://code.google.com/p/parallel-ssh/downloads/list$ wget http://parallel-ssh.googlecode.com/files...

2013-09-17 10:50:13 155

原创 groovy简明教程(六)面向对象

8. groovy的面向对象groovy来自java,当然是含有面向对象的基因。8.1 属性和本地变量groovy有private,protected,public等访问修饰符,但据groovy 2.0.7测试的结果,这些修饰符都是没有起作用,都是public的访问权限,这似乎是一个bug,但是尚未修复,http://jira.codehaus.org/browse/GROOVY-...

2013-09-03 22:37:52 201

原创 groovy简明教程(五)控制结构

7. Groovy的控制结构要理解groovy的控制结构,首先要明白其布尔值的判定。groovy借鉴了很多脚本语言,把数字0,空字符串,空集合等判定为false,除此之外null对象为false。7.1 swith语句groovy的swith语句支持很多类型,如下面的例子,实际上是调用了case条件中对象的isCase()方法,这里列举了以下实现isCase()方法的对象(注释中的...

2013-09-03 22:37:23 200

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除