导航

随笔分类 -  Java

摘要:RPC(远程过程调用) 的架构最常见的是“动态代理”方式,事先定义好接口,用一个代理假装实现了这个接口(真正的实现放在服务端),供客户端调用,代理内部将该方法调用封装成一个网络请求送到服务端。服务端根据参数找到对应的注册好的对象处理,返回给客户端。 官网的gRPC的宏观的架构图如下: 客户端调用 stub 对象,所谓 stub 对象就类似代理对象一样。作为跟服务通讯的封装抽象。 在 gR... 阅读全文

posted @ 2016-05-12 11:21 蝈蝈俊 阅读(4246) 评论(0) 推荐(0) 编辑

摘要:使用 protobuf 作为通讯内容序列化的简单例子请看:http://www.cnblogs.com/ghj1976/p/5458176.html 。 本文是使用 json 做为内容序列化的简单例子。 新建例子项目,从 proto 文件产生 通讯包的方式跟之前的完全一样。 本文的源码在: https://github.com/grpc/grpc-java/tree/master/exam... 阅读全文

posted @ 2016-05-05 15:25 蝈蝈俊 阅读(4079) 评论(1) 推荐(0) 编辑

摘要:新建一个普通的Maven项目: 配置pom文件,导入gRPC的依赖和插件 pom 中增加外部依赖 io.grpc grpc-all 0.13.2 注意,下面的增加 maven 插件: protobuf-maven-plugin: protobuf 的插件,不是 gRPC的插件,产生的代码只会是 pro... 阅读全文

posted @ 2016-05-04 13:58 蝈蝈俊 阅读(11941) 评论(1) 推荐(0) 编辑

摘要:编译 protoc-gen-grpc-java插件 的文档在: https://github.com/grpc/grpc-java/tree/master/compiler 编译的步骤: Change to the compiler directory: $ cd $GRPC_JAVA_ROOT/compiler To compile the plugin: $ ../grad... 阅读全文

posted @ 2016-05-03 14:45 蝈蝈俊 阅读(19276) 评论(2) 推荐(0) 编辑

摘要:gradle跟ant/maven一样,是一种依赖管理/自动化构建工具。但是跟ant/maven不一样,它并没有使用xml语言,而是采用了Groovy语言,这使得它更加简洁、灵活,更加强大的是,gradle完全兼容maven和ivy。 基本配置 build.gradle 首先明确gradle跟maven一样,也有一个配置文件,maven里面是叫pom.xml,而在gradle中是叫build.... 阅读全文

posted @ 2016-04-20 14:48 蝈蝈俊 阅读(670) 评论(0) 推荐(1) 编辑

摘要:本文的代码例子来自:https://github.com/grpc/grpc-java 定义服务 这一步与其他语言完全一样,需要定义gRPC的服务、方法、request和response的类型。 完整的proto定义代码在:grpc-java/examples/src/main/proto/route_guide.proto 在proto中,下面几个定义是为我们生成 Java 类所特有的... 阅读全文

posted @ 2016-04-20 11:03 蝈蝈俊 阅读(10235) 评论(0) 推荐(0) 编辑

摘要:服务器上生成dump文件 jmap jmap命令可以打印出某个java进程(使用pid)内存内的,所有‘对象’的情况(如:产生那些对象,及其数量)。 参数: -dump:[live,]format=b,file= 使用hprof二进制形式,输出jvm的heap内容到文件=. live子选项是可选的,假如指定live选项,那么只输出活的对象到文件. -final... 阅读全文

posted @ 2016-04-19 15:32 蝈蝈俊 阅读(901) 评论(0) 推荐(0) 编辑

摘要:jstatd是一个RMI(Remove Method Invocation)的server应用,用于监控jvm的创建和结束,并且提供接口让监控工具(如VisualVM)可以远程连接到本机的jvms 。注意是jvms,就是说运行jstatd命令后可以用监控工具监控本用户(运行jstatd命令的用户)所有已经启动的java程序。 jstatd的安装、启动、连接 JDK中默认就带 jstatd,如下... 阅读全文

posted @ 2016-04-18 17:09 蝈蝈俊 阅读(7994) 评论(0) 推荐(0) 编辑

摘要:VisualVM是一个免费的Java应用监控、分析工具。 简单说来,VisualVM是一种集成了多个JDK命令行工具的可视化工具,它能为您提供强大的分析能力。所有这些都是免费的!它囊括的命令行工具包括jstat, JConsole, jstack, jmap 和 jinfo,这些工具与JDK的标准版本是一致的。 你可以使用VisualVM生成和分析海量数据、跟踪内存泄漏、监控垃圾回收器、执行内... 阅读全文

posted @ 2016-04-18 14:39 蝈蝈俊 阅读(3696) 评论(0) 推荐(0) 编辑

摘要:新建Maven项目 新建一个 Maven 项目: pom定义了最小的maven2元素,即:groupId,artifactId,version。 groupId:项目或者组织的唯一标志,并且配置时生成的路径也是由此生成,如org.codehaus.mojo生成的相对路径为:/org/codehaus/mojo artifactId: 项目的通用名称 version:... 阅读全文

posted @ 2016-04-14 15:14 蝈蝈俊 阅读(18251) 评论(0) 推荐(0) 编辑

摘要:源码地址: https://github.com/alibaba/dubbo 需要提前准备好 Maven 环境, 相关准备方法请看: http://www.cnblogs.com/ghj1976/p/5254322.html 我这里通过 github 的客户端工具下载到了下面目录。 /Users/ghj1976/project/github/alibaba/dubbo 在dubbo的... 阅读全文

posted @ 2016-03-08 17:43 蝈蝈俊 阅读(1601) 评论(0) 推荐(0) 编辑

摘要:JDK 的安装 系统的“系统偏好设置”中我们可以看到 Java的设置, Java 7(含) 之后的版本在这里可以看到。 点击进去后,可以看到独立的 Java 控制面板 注意,这里是 JRE 的版本, 不是JDK的。 JRE 和 JDK 不同版本问题: 从 java.com 或 oracle.com 阅读全文

posted @ 2016-03-08 15:42 蝈蝈俊 阅读(9908) 评论(1) 推荐(1) 编辑

摘要:Netty和Mina是Java世界非常知名的通讯框架。它们都出自同一个作者,Mina诞生略早,属于Apache基金会,而Netty开始在Jboss名下,后来出来自立门户netty.io(http://netty.io/)。 Netty是一个基于JAVA NIO类库的异步通信框架,它的架构特点是:异步非阻塞、基于事件驱动、高性能、高可靠性和高可定制性。 NIO Netty 是基于NIO... 阅读全文

posted @ 2014-06-10 13:41 蝈蝈俊 阅读(3753) 评论(0) 推荐(0) 编辑

摘要:问题: centos 5.5 上用 yum 安装了 tomcat, 启动正常,但是访问 8080 端口的网页,是空白的。 查看linux版本 [root@inside ~]# lsb_release -a LSB Version: :core-3.1-amd64:core-3.1-ia32:core-3.1-noarch:graphics-3.1-amd64:gr... 阅读全文

posted @ 2011-10-14 16:28 蝈蝈俊 阅读(1904) 评论(0) 推荐(0) 编辑

摘要:UUID 和 GUID 的区别 UUID是一个由4个连字号(-)将32个字节长的字符串分隔后生成的字符串,总共36个字节长。比如:550e8400-e29b-41d4-a716-446655440000 http://gohands.blogbus.com/logs/147479174.html GUID 是微软对UUID这个标准的实现。UUID是由开放软件基金会(OSF)定义的。UUID还... 阅读全文

posted @ 2011-09-21 15:07 蝈蝈俊 阅读(3430) 评论(0) 推荐(0) 编辑

摘要:Jira系统管理中自带备份和导入功能,如下图: 但是你使用时会报错误: You have not named a safe backup directory and hence you are not allowed to make backups for security reasons. You must edit jira-application.properties and explici... 阅读全文

posted @ 2011-06-17 13:58 蝈蝈俊 阅读(1060) 评论(0) 推荐(0) 编辑

摘要:JDK 的安装参看: http://www.cnblogs.com/ghj1976/archive/2010/09/26/1836082.html 请首先确认 JDK 安装成功。环境变量都设置正确!   1、下载最新版本 Tomcat 下载地址: http://tomcat.apache.org/download-60.cgi  我下载的是稳定版本: http://ap... 阅读全文

posted @ 2010-09-26 17:55 蝈蝈俊 阅读(1214) 评论(0) 推荐(0) 编辑

摘要:1、下载最新版本的 JDK, 我是从 http://www.oracle.com/technetwork/java/javase/downloads/index.html 下载的,这里网速真慢。我下载的是: Java SE Development Kit 6u21  jdk-6u21-linux-i586.bin  这个文件。   2、 解压缩 在命令行下打开其... 阅读全文

posted @ 2010-09-26 16:09 蝈蝈俊 阅读(5666) 评论(0) 推荐(0) 编辑

摘要:这是最简单的方式的 lucene 的 Demo 步骤, 有稍稍的经验的都应该飘过。 step1:下载并安装并配置 JDK ,具体方法参看我之前的博客: Java环境的搭建 step2: 下载并配置 lucene, 下载请去: http://labs.renren.com/apache-mirror/lucene/java/ 以我下载的 lucene 3.0.1 为例,下载完后,我们在解压缩目录下... 阅读全文

posted @ 2010-05-12 12:45 蝈蝈俊 阅读(2192) 评论(0) 推荐(0) 编辑

摘要:Apache Ant,是一个基于JAVA的自动化脚本引擎,脚本格式为XML。除了做JAVA编译相关任务外,ANT还可以通过插件实现很多应用的调用。默认情况下,脚本文件名为build.xml 。 Windows 下的安装和配置 安装步骤: 下载最新版本,ANT官方网站: http://ant.apache.org/ 下载后解压缩即可。 配置环境变量: 打开环境变量配置窗口可以通过下面步骤打开:... 阅读全文

posted @ 2010-04-14 16:17 蝈蝈俊 阅读(32397) 评论(2) 推荐(8) 编辑