自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 资源 (5)
  • 收藏
  • 关注

原创 docker启动容器指定时区 解决mysql时间非北京时间问题

运行docker镜像的时候可以指定环境变量TZ来设置使用那个时区的时间。如果不指定有些镜像在制作的时候设置了跟自己想用的时区不一样的时区就会出现尴尬的问题。

2023-01-04 14:29:55 1341

原创 Redis分布式锁之 JedisCluster 分布式Lock

Redis分布式锁重要的原则就是,加锁、解锁要原子性。Redis官方网站提供了RedLock锁。但是我感觉那个锁比较臃肿,完全没有必要。如果集群中有故障。锁获取失败就可以了,Redis锁的机制就决定了他不能像数据库事物一样。所以集群中挡掉节点的情况,我不予考虑。代码示例:/** * 获取redis锁,有重试机制 * @param lockKey 锁的key * @param redisLockRequestId new 一个RedisLockRequestId 对象即可 -

2021-01-12 10:57:05 1444

原创 Redis之 ShardedJedis 分布式Lock

Redis分布式锁最重要的就是要做到上锁、解锁都是原子性的。这样才能保证高并发下不会出现问题。请看实例代码:RedisLockRequestId.javapublic class RedisLockRequestId { private String requestId; public String getRequestId() { return requestId; } public void setRequestId(String request

2021-01-12 10:38:13 458

原创 curator 对zookeeper节点增删改查、分布式锁、事务的使用

以前写过一个原生zookeeper Api对zookeeper的操作使用。如果有想学习原生api的可以看这里:https://blog.csdn.net/RenJianLeLe/article/details/108034937直接上demo,如果项目用使用到了直接拿来稍微改动就能用。环境是版本说明:zookeeper 版本 3.4.14pom依赖(注意:我们使用zookeeper的Java客户端工具最好跟zookeeper版本保持一致)<properties><zooke

2020-09-13 12:08:48 326

原创 zookeeper伪集群搭建及observer模式配置笔记

环境说明本次伪集群搭建zookeeper版本是3.4.14、服务器用的是centos7。环境准备下载zookeeper按照包地址: zookeeper-3.4.14.tar.gz[root@localhost home]# wget https://www.apache.org/dyn/closer.lua/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz--2020-08-23 18:31:28-- https://www.apache.

2020-08-23 18:57:24 614

原创 基于Zookeeper实现高可用高性能分布式锁

分布式锁实现简单介绍分布式锁的实现方式有很多中常用到的可能是:1、具于数据库1、利用select … where … for update 排他锁这里需要注意的是:where name = "lock" 这个name一定要设置索引,不然数据库会锁整张表。但是特殊情况下,由于数据量不大,mysql优化器可能走不到这个索引,仍然出现锁表问题。2、利用数据库乐观锁 基于CAS思想,是不具有互斥性,不会产生锁等待而消耗资源。操作过程中认为不存在并发冲突,只有update version失败后才能觉察

2020-08-23 17:22:46 499 1

原创 spring 使用maven的profile功能 实现项目动态切换不工作环境配置文件(附带源码)

maven-profile-简单使用demo在开发过程中,我们的代码会运行在多种环境。比如开发环境、测试环境、生产环境等等多个环境。而我们的代码在不同的环境中,有的配置可能会不一样。比如数据源配置、日志文件配置、以及一些软件运行过程中的基本配置。那每次我们将软件部署到不同的环境时,都需要修改相应的配置文件,这样来回修改,很容易出错。maven提供了一种方便的解决这种问题的方案,就是profile功能。首先定义配置文件说明:这个项目只是简单演示,实际环境可能要更复杂。在src/main/r

2020-08-18 01:43:56 225

原创 Java api 对zookeeper节点增删改查以及权限的使用

上篇笔记是zookeeper中安装跟基本命令的使用,如果对zookeeper基本命令不太熟悉的,可以先看看基本命令连接:https://blog.csdn.net/RenJianLeLe/article/details/107997924项目搭建我这里使用的maven搭建的我的项目。同样我们也需要找到我们zookeeper对应的jar。我是用的zookeeper是3.4.14 这个版本。我项目中还引入 了一个Gson包为了方便查看一些java对象引入依赖<dependencies>

2020-08-16 20:25:00 324

原创 zookeeper安装及基本命令使用

zookeeper是什么ZooKeeper是一个集中服务,用于维护配置信息、命名、提供分布式同步和提供组服务。所有这些类型的服务都以某种形式被分布式应用程序使用。每次实现它们时,都要进行大量的工作来修复不可避免的bug和竞争条件。由于实现这类服务的困难,应用程序最初通常会忽略它们,这使得它们在发生变化时变得脆弱,并且难以管理。即使操作正确,在部署应用程序时,这些服务的不同实现也会导致管理复杂性。zookeeper常见使用场景维护配置信息分布式锁服务集群管理生成分布式唯一IDzookee

2020-08-16 12:42:05 432

原创 windows安装elasticsearch+kibana+ik分词器及基本DSL

下载 elasticsearch 和 kibanaelasticsearch官方下载地址:https://www.elastic.co/downloads/elasticsearchkibana官方下载地址:https://www.elastic.co/downloads/kibana说明:本次安装用的是7.6.1安装解压elasticsearh 安装包1、进入解压目录下bin 运行elasticsearch.bat 即可启动成功,访问:http://127.0.0.1:9200/ 看

2020-08-10 04:30:00 425 3

原创 docker-swarm实现服务动态扩缩容

docker swarm 是说明简单粗暴一句话:Docker Swarm 是 Docker 的集群管理工具。它将 Docker 主机池转变为单个虚拟 Docker 主机。Docker Swarm 提供了标准的 Docker API,所有任何已经与 Docker 守护程序通信的工具都可以使用 Swarm 轻松地扩展到多个主机。可以配合 Jenkins 一块使用。环境准备linux 主机 4台 (我用的是centos7 虚拟机)4台机器必须按装docker 环境参考官方文档docker

2020-08-06 22:08:17 1279

原创 docker-compose服务编排 && 使用docker-compose部署Redis集群

前言:如果我们的项目是分布式的微服务而且我们还用了docker容器,那么我们每启动一个实例都需要自己去docker bulid run这样的操作,如果一个服务器要在100台服务器上部署,麻烦就来了。docker-compose 就帮我解决了这一个问题。通过编写 Dockerfile文件跟compose文件就可以实现一键部署参考官方文档:https://docs.docker.com/compose/install/注意:使用docker-compose 需要基础的docker 服务 所以一定

2020-08-06 02:37:22 636

原创 使用docker容器创建cluster模式Redis集群

创建docker容器Redis自己的网路[root@localhost home]# docker network create --subnet 192.3.0.0/16 --gateway 192.3.0.1 redis生成Redis集群需要使用的配置文件#创建redis集群配置文件存放目录[root@localhost redis]# mkdir -p /home/redis#进入这个目录##我这偷懒了使用了一个shell脚本生成了6个集群的配置文件#创建 redis-cluter.s

2020-08-05 16:57:28 367

原创 docker 容器之间网络通讯 自建docker网络

前言:我们可能用到多个容器,但是容器之间需要网络传入,他们是怎么工作的?有没有办法不通过ip地址强制绑定?首先我们先运行两个tomcat的容器来做测试[root@localhost ~]# docker run -p8080:8080 -d --name tomcat01 tomcat#查看tomcat01容器的网络地址[root@localhost ~]# docker exec -it tomcat01 ip addr1: lo: <LOOPBACK,UP,LOWER_UP>

2020-08-05 14:16:47 540

原创 使用Dockerfile构建自己的镜像文件

前言:开发中我们经常需要构建多个软件到我们docker容器中。这里提供一个简单的镜像构建步骤参考,实际应用会比这个复杂很多,但是思路不会变。构建自己的JDK+tomcat镜像准备我们要往docker中安装的软件apache-tomcat-7.0.52jdk-8u181-linux-x64.tar.gz然后编写Dockerfile文件这里需要注意,如我们的Dockerfile文件不是叫这个名字,build的时候需要用 -f 指定我们的Dockerfile文件名称#编写Dockerfile

2020-08-05 00:02:44 354

原创 使用--volumes-from实现docker容器之间互相挂载目录实现数据同步

这里我们使用Dockerfile构建一个自己的容器,并指定匿名挂载。然后再启动几个容器使用--volumes-from来跟启动的第一个容器挂载相同的目录来实现数据同步。编写Dockerfile文件[root@localhost home]# vim Dockerfile#Dockerfile中输入命令FROM centosVOLUME ["voluem01","volume02"]CMD echo "----end----"CMD /bin/bash#通过DockerFile 生

2020-08-04 23:34:15 1979

原创 linux添加字体库

引言:最近开发过一段需求,使用java去生成图表,我用的是jfreechar。图标中自定义了一些图例的字体,上线以后发现都成了乱码。然后查询服务器后发现linux服务器带的字体库确实没有,那只能自己安装上去了。经过资料查询有两个种方式解决:1、设置java环境变量的方式 (很明显只适用于java)2、给系统添加字体库给系统添加字体库我当时使用的宋体,所以我找到了自己机器上的宋体字体库simsun.ttc然后拷贝出来然后 上传到linux字体库文件下/usr/share/fonts#然后

2020-08-04 16:53:16 1484

原创 Nginx config.conf 配置 负载动静分离及拦截指定url请求

nginx config.conf server 负载均衡、动静分离、https证书配置demo.工作实战笔记nginx.conf 设置及性能调优user nobody;#这里一般跟你机器的cpu核数相同性能最好worker_processes 2; #这个配置是当连接数过大以后linux对操作文件数量的限制worker_rlimit_nofile 65535;# 这个是请求异常日志,根据情况看是否打开#error_log logs/error.log;#error_log

2020-08-04 16:35:54 934

原创 centos下Nginx 日志管理及切割

在我日常开发服务器维护的时候经常发现我们的服务器磁盘被站满了。经过一顿排查发现多数发现是我们的日志没有处理好搞的问题。这时候如果我们可以将nginx日志切割然后定时删除一下很老的日志就非常方便了。说明本环境是centos6.5如果是linux 其他版本命令可能会有差异。日志切割自动删除思路使用linux的crontab定时计划去操作我们的日志就行新建定时任务执行日志处理脚本文件这个文件最好放到一个公共的目录,都用来存储我们的脚步文件[root@localhost corn]# vim

2020-08-04 16:04:44 345

原创 nginx 安装教程及常见错误解决

安装环境本教程安装环境是centos6,nignx使用的是1.10.1版本安装请自行下载 nginx-1.10.1.tar.gznginx官方下载地址:http://nginx.org/en/download.html如果想要更详细系统学习nginx请参考nginx官方文档:http://nginx.org/en/linux_packages.html其他环境如果是linux 安装步骤相同,但是命令可能不同安装上传我们下载的安装包到我们服务器的指定目录并解压[root@localhos

2020-08-04 15:45:51 2250

原创 Docker安装 及基本使用命令

Docker概述Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。一个完整的Docker有以下几个部分组成:DockerClient客户端Docker Daemon守护进程Docker Image镜像DockerContainer容器起源2010年,几个搞IT的人,在美国成立一家公司`dotCloud`做一些pass的云

2020-08-04 13:50:17 405

原创 netty解码及粘包问题

最近系统学习了一下netty,netty的框架着实让我上瘾,但是只是系统学习,不深入研究开发的时候也会碰到好多意想不到的问题,无从下手。学习完netty框架 或者说TCP通讯以后数据传输中粘包问题。至于为什么出现粘包问题这里就不再陈述,能看到这篇博客应该是已经知道原因的。疑问与答案相信好多小伙伴都会有这样的问题,不如我使用了某种协议再netty中做开发,比如google的protobuf 或者websocket等等。。我还用不用再去处理粘包问题?或者说粘包问题底层到底是怎么工作的?有这两个问题或者疑

2020-07-21 19:32:48 415

原创 JAVA Netty实现聊天室+私聊功能

功能介绍使用Netty框架实现聊天室功能,服务器可监控客户端上下限状态,消息转发。同时实现了点对点私聊功能。技术点我都在代码中做了备注,这里不再重复写了。希望能给想学习netty的同学一点参考。服务器代码服务器入口代码package nio.test.netty.groupChat;import io.netty.bootstrap.ServerBootstrap;import io.netty.channel.ChannelFuture;import io.netty.channel.Ch

2020-06-28 18:39:14 5955 7

原创 JAVA NIO 聊天室

功能介绍JAVA NIO 聊天室功。服务器端实现了 客户端上线、下线状态监控及消息转发功能。客户端写了两个,第一个是主线程写另外写了一个Thread去接受输入。第二是使用了Selector监听消息,输入在一个子Thread中。本人喜欢程序中使用线程池去管理线程,所以就算有一个线程我也使用了线程池去管理这个线程了,当然线程池用的是Executors.newSingleThreadExecutor(); 单线程线程池。服务器端代码package nio.test.groupChat;import ja

2020-06-27 05:35:32 193

原创 网络编程之Java BIO 概念及代码使用demo

JAVA BIO Socket 服务端代码demo代码只有Server端测试用的 telnet工具,代码后边有测试过程。package bio.test;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.net.ServerSocket;import java.net.Socket;import java.util.concurrent.Executor

2020-06-26 18:54:07 384

原创 网络编程之Java NIO 概念及代码使用demo

Java NIO 基本概念Java NIO 简介Java NIO 与 IO 的主要区别缓冲区( Buffer)Buffer 中的重要概念Buffer 的常用方法buffer测试代码直接与非直接缓冲区通道( Channel)Java 为 Channel 接口提供的最主要实现类如下获取通道的方式本地NIO 中channel及方法测试代码NIO的非阻塞式网络通信NIO阻塞模式SocketChannel选择器( Selector)NIO非阻塞模式SocketChannel使用SelectorNIO非阻塞模式Test

2020-06-26 01:43:09 285

原创 java通过ip地址获取相应对应的城市

发现了一比较好的本地ip对应地址的库资源文件--做一下笔记。官方网站 https://dev.maxmind.com/geoip/geoip2/geolite2/这里提供了免费的库文件,还有很好的api支持。(国内也用一个叫www.ipip.net 也有类似的)第一、java 获取IP地址 public static String getRemortIP(HttpServ......

2018-03-23 18:51:14 3586 2

原创 java 发送http get post 请求,以及java通过httpclient中转上传文件

java 发送http get post 请求,以及java通过httpclient中转上传文件package com.websocket.common.http.util;import java.io.File;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java....

2018-03-01 10:11:57 1136

u-boot跟文件系统命令行左侧用户名的修改

很多初学者在移植u-boot跟文件系统的时候移植完了以后总是带着前人的东西,比如说u-boot跟文件系统命令行左侧的logo。这个有时候让你看起来很是不专业,不过改他其实也很容易下面我们就开始试试吧

2013-04-16

flex-2.5.35.tar.gz

flex-2.5.35.tar.gz是一个语法解析器linux/unix上来生成编译器的编译器(编译器代码生成器)

2013-04-08

expat-2.0.1.tar.gz

蓝牙移植中用到的东西需要编译和安装 首先解压 让后配置环境变量 最后编译安装即可

2013-04-08

alsa-lib-1.0.26.tar.bz2

1.tar -jxvf alsa-lib-1.0.26.tar.bz2 解压 2.配置完环境变量以后make编译 3.makeintall安装就可以了

2013-04-08

D-bus-1.4.1.tar.gz

linux下的D-bus工具,使用tar -zxvf D-bus-1.4.1.tar.gz 解压

2013-04-08

空空如也

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

TA关注的人

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