Perkins4j2的技术博客

一个人,一根烧火棍,面对整个世界.


  • 首页

  • 标签91

  • 分类8

  • 归档123

  • 搜索

Hazelcast部署方案

发表于 2019-10-08 | 分类于 架构
本文字数: 1.3k | 阅读时长 ≈ 1 分钟

启动

在/bin目录下

  • start.sh / start.bat: 使用默认配置启动成员实例。

  • stop.sh / stop.bat: 停止成员实例。

  • cluster.sh: 集群管理, 例如获取和改变集群状态, 关闭或删除数据等。

  • start.sh / start.bat 启动一个实例。可以解压Hazelcast ZIP 或 TAR.GZ 在多个目录下,启动多个实例。

    阅读全文 »

Hazelcast介绍和优势

发表于 2019-10-08 | 分类于 架构
本文字数: 1k | 阅读时长 ≈ 1 分钟

Hazelcast介绍

全称是Hazelcast IMDG (In-Memory Data Grid),内存数据网格。

特点

  • 开源
  • 仅需要JAR文件,无需安装其他软件。
  • 提供类库,不影响业务架构。
  • 提供开箱即用的分布式数据结构,例如Map, Queue, MultiMap, Topic, Lock and Executor。
  • 无主概念,没有单点故障,成员都是对等。
  • 集群动态扩展,新增成员可以弹性提高内存和计算能力。
  • 数据相互冗余和备份,防止成员宕机导致的数据丢失。
  • 成员相互感知,区别于传统的kv缓存解决方案。
  • 可使用SPI构建自定义分布式数据结构
  • 开源社区长久持续开发
    阅读全文 »

Shadowsocks配置

发表于 2019-09-29 | 分类于 工具利器
本文字数: 1.6k | 阅读时长 ≈ 1 分钟

更新源

如果是新系统,请先刷新软件源及更新软件

1
sudo apt-get update && sudo apt-get upgrade

Ubuntu 14.04 和 Ubuntu 16.04 用户需新增 PPA 源

1
sudo apt-get install software-properties-common && sudo add-apt-repository ppa:max-c-lv/shadowsocks-libev && sudo apt-get update
阅读全文 »

IDEA自定义Archetype

发表于 2019-09-27 | 分类于 工具利器
本文字数: 769 | 阅读时长 ≈ 1 分钟

创建自定义骨架

生成骨架

在maven项目下,执行mvn archetype:create-from-project,在target/generated-sources/archetype目录下生成Archetype project

阅读全文 »

Java8处理空对象之Optional

发表于 2019-09-26 | 分类于 并发编程
本文字数: 4.9k | 阅读时长 ≈ 4 分钟

Optional

Java8中引入java.util.Optional,这是一个封装Optional值的类。

举例来说,如果一个人可能有也可能没有车,那么Person类内部的car变量就不应该声明为Car,遭遇某人没有车时不应该把null引用赋值给它,而是应该将其声明为Optional类型。

在代码中始终如一地使用Optional,能非常清晰地界定出变量值的缺失是结构上的问题,还是算法上的缺陷,抑或是数据中的问题。

引入Optional类的意图并非要消除每一个null引用。与此相反,它的目标是帮助更好地设计出普适的API,以便看到方法签名,就能了解它是否接受一个Optional的值。这种强制会积极的将变量从Optional中解包出来,直面缺失的变量值。

阅读全文 »

JVM调试命令

发表于 2019-09-25 | 分类于 工具利器
本文字数: 3.3k | 阅读时长 ≈ 3 分钟

GC日志

打开GC日志

1
-server -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -Xloggc:./logs/gc.log

jmap

生成 java 程序的 dump 文件, 也可以查看堆内对象示例的统计信息、查看 ClassLoader 的信息以及 finalizer 队列。

阅读全文 »

Docker安装Nginx及配置

发表于 2019-09-25 | 更新于 2020-10-09 | 分类于 架构
本文字数: 3.6k | 阅读时长 ≈ 3 分钟

Docker安装

1
2
3
4
5
6
7
8
9
docker search nginx
name docker.io/nginx
OFFICIAL ok

docker pull nginx

docker images nginx

docker run --name nginx-test -p 9803:80 -d nginx
阅读全文 »

解决MySql死锁脚本

发表于 2019-09-25 | 分类于 架构
本文字数: 475 | 阅读时长 ≈ 1 分钟
1
2
3
4
5
6
7
8
9
10
11
12
13
#!/usr/bin/env bash

tmp_file=/tmp/my_process_list

HOST='xx-01'
USER='xxx'
PASS='xxxxxx'

mysql -u ${USER} -p ${PASS} -P3306 --protocol=tcp -h ${HOST} mysql -e "show processlist" > ${tmp_file}

for l in `grep 'table level lock' ${tmp_file} | grep -v 'system user' | awk '{print $1}'`; do
mysql -u ${USER} -p ${PASS} -P3306 --protocol=tcp -h ${HOST} mysql -e "kill $l;"
done
阅读全文 »

Hazelcast Client配置

发表于 2019-09-12 | 更新于 2019-11-30 | 分类于 架构
本文字数: 1.6k | 阅读时长 ≈ 1 分钟

最大value

  • 单个k-v的操作本身不受数据字节大小限制
  • 操作受最大堆内存-Xmx限制
  • 操作受超时时间限制hazelcast.max.operation.timeout

    1
    2
    INFO HazelcastTest - size:273437KB
    INFO HazelcastTest - elapsed:62ms
    阅读全文 »

Hazelcast性能评估

发表于 2019-09-12 | 分类于 架构
本文字数: 1.3k | 阅读时长 ≈ 1 分钟

基准测试

基于benchmarking tool

1
2
3
INFO  Performance IntByteMapTest
Total throughput 100.00% 7,948,805 ops 128,179.66 ops/s
Agent C_A1 100.00% 7,948,805 ops 128,179.66 ops/s

结论

  • int-int每秒可完成17W请求,并发线程10,随机读写,写概率0.1,读0.9
  • int-byte每秒13万请求,value最大2k,并发线程10,随机读写,写概率0.1,读0.9
    阅读全文 »
1…678…13
Perkins

Perkins

123 日志
8 分类
91 标签
RSS
0%
© 2020 Perkins | 站点总字数: 335k | 站点阅读时长 ≈ 5:04
|