- 博客(19)
- 资源 (6)
- 收藏
- 关注
原创 Redis实现分布式锁进化
Redis实现分布式锁进化1、SetNXtryLock(){ SETNX $key $value}release(){ DELETE $key}如果业务执行因为某些原因意外退出了,导致创建了锁但是没有删除锁,那么这个锁将一直存在2、SetNX + SetExtryLock(){ SETNX $key $value EXPIRE $key Seconds}rele...
2020-03-31 17:26:16 1570
原创 redisson分布式锁并发测试
redisson分布式锁并发测试模拟秒杀抢购场景,100库存,用jmeter并发测试,起300个线程并发请求2次,总计600个请求数,最后查看库存是否为负数,证明分布式锁是否锁住了库存。注意:分布式锁并不是实现秒杀最佳方式,本文只是侧重说明分布式锁一、编写相关代码1、添加依赖项dependencies { compile 'org.springframework.boot:spr...
2020-03-30 17:57:25 2783 2
原创 使用bind转发consul DNS服务
使用bind转发consul DNS服务1、安装bindyum install bind bind-utils -y2、配置name服务做解析vim /etc/named.confoptions { listen-on port 53 { 127.0.0.1; }; listen-on-v6 port 53 { ::1; }; direc...
2020-03-27 11:33:40 1882
原创 consul DNS+ dnsmasq实现域名解析配置
consul DNS+ dnsmasq实现域名解析配置dnsmasq简介Dnsmasq 提供 DNS 缓存和 DHCP 服务功能。作为域名解析服务器(DNS),dnsmasq可以通过缓存 DNS 请求来提高对访问过的网址的连接速度。作为DHCP 服务器,dnsmasq 可以用于为局域网电脑分配内网ip地址和提供路由。DNS和DHCP两个功能可以同时或分别单独实现。dnsmasq轻量且易配置,适...
2020-03-27 10:58:35 3967
原创 consul各端口作用分析
consul各端口作用分析consul服务端启动时会监听5个端口,如下图:这5个端口的作用:8300:集群内数据的读写和复制8301:单个数据中心gossip协议通讯8302:跨数据中心gossip协议通讯8500:提供获取服务列表、注册服务、注销服务等HTTP接口;提供UI服务8600:采用DNS协议提供服务发现功能...
2020-03-26 16:13:00 9564
原创 SpringBoot中自定义consul的instance-id
SpringBoot中自定义consul的instance-idapplication.ymlspring: cloud: consul: discovery: instance-id: ${spring.application.name}:${spring.cloud.client.ip-address}:${server.port}...
2020-03-26 16:09:52 2036
原创 consul通过DNS协议查找服务
consul通过DNS协议查找服务1、centos默认没有dig命令,dig命令属于bind-utils工具包,安装这个包之后就可以使用dig命令了。yum -y install bind-utils2、使用DNS API来获取A记录ip地址对于DNS API,服务的DNS名称是 NAME.service.consul 。默认所有的DNS名称都是在 consul 名称空间下,当然这个是可...
2020-03-26 11:15:05 3050
原创 Dapper--Google生产环境下的分布式跟踪系统
Dapper--Google生产环境下的分布式跟踪系统概述当代的互联网的服务,通常都是用复杂的、大规模分布式集群来实现的。互联网应用构建在不同的软件模块集上,这些软件模块,有可能是由不同的团队开发、可能使用不同的编程语言来实现、有可能布在了几千台服务器,横跨多个不同的数据中心。因此,就需要一些可以帮助理解系统行为、用于分析性能问题的工具。Dapper--Google生产环境下的分...
2020-03-12 15:52:24 3366
原创 Consul 删除无效的服务
REST接口删除http://127.0.0.1:8500/v1/agent/service/deregister/service2-8080命令删除consul services deregister -id=service2-8080service2-8080为服务名称
2020-03-12 15:50:27 1732
原创 elasticsearch服务器CPU100%分析
elasticsearch服务器CPU100%分析1、通过top命令查询占用CPU高的进程ID2、查询是哪些线程占用比较高top -Hp 28354H代表显示线程信息p用来指定进程id发现线程31342、28478等占用比较多的CPU资源3、将十进制pid转换为十六进制的pidprintf “0x%x” 284784、查询具体的线程信息jstack -l 2835...
2020-03-12 15:44:55 6935
原创 JAVA常见内存溢出模拟
JAVA常见内存溢出模拟1、堆溢出import java.util.ArrayList;import java.util.List;/** * 堆溢出 * -Xms20m -Xmx20m -XX:+HeapDumpOnOutOfMemoryError * java.lang.OutOfMemoryError: Java heap space * Created by double...
2020-03-11 14:31:21 1548
原创 elasticsearch6.3.1中x-pack插件启用
elasticsearch6.3.1中x-pack插件启用elasticsearch版本6.3.1一、启用pack1、重写license验证源码重写x-pack下的2个类:LicenseVerifier.java和XPackBuild.java,反编译jar丁创建目录testmkdir testcd testvim LicenseVerifier.java跳过校验部分,直接返回...
2020-03-11 14:16:00 1340
原创 死锁模拟(JAVA)
死锁模拟(JAVA)/** * Created by double on 2019/7/29. */public class DeadLockDemo { private final Object lock1 = new Object(); private final Object lock2 = new Object(); void method1() { ...
2020-03-11 14:12:16 1069
原创 单例模式的几种实现方式(JAVA)
单例模式的几种实现方式(JAVA)概括起来,要实现一个单例,我们需要关注的点无外乎下面几个:构造函数需要是 private 访问权限的,这样才能避免外部通过 new 创建实例;考虑对象创建时的线程安全问题;考虑是否支持延迟加载;考虑 getInstance() 性能是否高(是否加锁)。1、饿汉式饿汉式的实现方式比较简单。在类加载的时候,instance 静态实例就已经创建并初始化好...
2020-03-11 11:28:40 1415
原创 java实现整形数字反转
java实现整形数字反转/** * 整形数字反转 * Created by double on 2019/9/3. */public class NumberReverse { public static void main(String[] args) { int num = 123123412; long reversedNum = 0; ...
2020-03-11 10:30:04 1235
原创 kafka-manager安装
kafka-manager安装1、下载安装链接: https://pan.baidu.com/s/1hmoD0uSNH4XvwZuNc3TMtA提取码: 17rvcd /opt/serverunzip kafka-manager-2.0.0.0.zip mv kafka-manager-2.0.0.0 kafka-managercd kafka-manager2、配置cd /o...
2020-03-10 17:15:22 1008
原创 elasticsearch-head安装
elasticsearch-head安装Node.js环境安装head插件要求Node.js环境,并且Node.js的版本 大于等于 6.0。下载 Node.js 12.13.0 版本。下载地址:https://nodejs.org/en/download/配置nodejs环境变量vim /etc/profileexport NODE_HOME=/home/tom/data/node-...
2020-03-10 17:11:41 1034
原创 zipkin server部署
zipkin server部署1 、创建相关目录mkdir -p /opt/server/zipkinmkdir -p /data/logs2、安装jdk1.8https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.htmlrpm -ivh jdk-8u231-linux...
2020-03-10 17:07:07 1417
原创 ELK采集nginx错误日志
ELK采集nginx错误日志一、filebeat采集配置1、在nginx服务器上安装filebeatwget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.3.1-x86_64.rpmyum localinstall filebeat-6.3.1-x86_64.rpm2、配置filebeat采集文件v...
2020-03-10 17:01:25 1469
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人