一. IllegalArgumentException异常
异常信息
java.lang.IllegalArgumentException: Not a managed type: class com.dragonsoft.
实体类上加注解:@Entity
二. zookeeper配置部署
可以从 https://zookeeper.apache.org/releases.html 下载ZooKeeper,目前最新的稳定版本为 3.4.8 版本,用户可以自行选择一个速度较快的镜像来下载即可。
下载并解压ZooKeeper软件压缩包后,可以看到zk包含以下的文件和目录:
- bin目录
zk的可执行脚本目录,包括zk服务进程,zk客户端,等脚本。其中,.sh是Linux环境下的脚本,.cmd是Windows环境下的脚本。 - conf目录
配置文件目录。zoo_sample.cfg为样例配置文件,需要修改为自己的名称,一般为zoo.cfg。log4j.properties为日志配置文件。 - lib
zk依赖的包。 - contrib目录
一些用于操作zk的工具包。 - recipes目录
zk某些用法的代码示例
运行配置
上面提到,conf目录下提供了配置的样例zoo_sample.cfg,要将zk运行起来,需要将其名称修改为zoo.cfg。
打开zoo.cfg,可以看到默认的一些配置。
- tickTime
时长单位为毫秒,为zk使用的基本时间度量单位。例如,1 * tickTime是客户端与zk服务端的心跳时间,2 * tickTime是客户端会话的超时时间。
tickTime的默认值为2000毫秒,更低的tickTime值可以更快地发现超时问题,但也会导致更高的网络流量(心跳消息)和更高的CPU使用率(会话的跟踪处理)。 - clientPort
zk服务进程监听的TCP端口,默认情况下,服务端会监听2181端口。 - dataDir
无默认配置,必须配置,用于配置存储快照文件的目录。如果没有配置dataLogDir,那么事务日志也会存储在此目录。
启动
在Windows环境下,直接双击zkServer.cmd即可。在Linux环境下,进入bin目录,执行命令
./zkServer.sh start
这个命令使得zk服务进程在后台进行。如果想在前台中运行以便查看服务器进程的输出日志,可以通过以下命令运行:
./zkServer.sh start-foreground
执行此命令,可以看到大量详细信息的输出,以便允许查看服务器发生了什么。
使用文本编辑器打开zkServer.cmd或者zkServer.sh文件,可以看到其会调用zkEnv.cmd或者zkEnv.sh脚本。zkEnv脚本的作用是设置zk运行的一些环境变量,例如配置文件的位置和名称等。
连接
如果是连接同一台主机上的zk进程,那么直接运行bin/目录下的zkCli.cmd(Windows环境下)或者zkCli.sh(Linux环境下),即可连接上zk。
直接执行zkCli.cmd或者zkCli.sh命令默认以主机号 127.0.0.1,端口号 2181 来连接zk,如果要连接不同机器上的zk,可以使用 -server 参数,例如:
bin/zkCli.sh -server 192.168.0.1:2181
三. 使用Shell命令查看zookeeper版本
echo stat|nc localhost 2181
执行结果
jiafeimao@jiafeimaodeMacBook-Pro:~$ echo stat|nc localhost 2181
Zookeeper version: 3.4.6-1569965, built on 02/20/2014 09:09 GMT
Clients:
/127.0.0.1:58098[0](queued=0,recved=1,sent=0)
Latency min/avg/max: 0/0/0
Received: 2
Sent: 1
Connections: 1
Outstanding: 0
Zxid: 0x4d6c
Mode: standalone
Node count: 176
四. cmd文件中停止命令
@pause
五. windows环境下安装zookeeper教程详解(单机版)
六. 异常UnsupportedClassVersionError:
UnsupportedClassVersionError: org/apache/zookeeper/server/quorum/QuorumPeerM
解决:java的环境变量配置为1.8的版本
七. 往数据库插入当前时间
insert into test (creatime) values (sysdate)
八. String数组怎么定义
String items[] = {};
九. duceap中修改方法问题
平台update修改如果实体类中有字段为null会出现出错,下面的方法参数可以避免这个问题,把修改了的属性的放到后面的参数里
Message update = messageRepository.update(message,"messageTitle","lostTime");
网友评论