- 博客(52)
- 收藏
- 关注
原创 Dubbo之同城双活
同城双活应该很多人都有了解,也就是两个区两个应用同时接收流量且互不影响一方有难另一方能撑住全部流量具体大家可以网上了解这里只针对dubbo输出下我们的方案如果哪里有不对的欢迎指正共同成长共同进步。1.先看下大体的一个结构 这里做下说明,观澜和福田是深圳的两个片区,分别部署两套集群,zk这里我们做了互相同步保持数据一致,也就是zk福田中有观澜的服务,zk观澜有福田的服务,你中有我我中有你的感觉,这样一方挂了之后才能保持服务不断,但是我们正常情况下我们要保证:1.福田的消费方...
2021-07-25 18:42:01
561
原创 一道面试题引发的思考:char类型能否存储汉字
阿里的一道电面题:char类型能否存储汉字百度随便搜一下答案就应该能出来能存储汉字。下面看下何为charchar 类型想必大家都比较熟悉了,java的八大类型之一,能存储两个字节,看情况讲道理应该能存储汉字,答案也是能的。char型变量是用来存储Unicode编码的字符的,unicode编码字符集中包含了汉字,所以,char型变量中当然可以存储汉字。unicode如其名字,统一码,万国码 国际通用码,它的出现就是为了屏蔽各个国家不同编码的差异,unicode用两个字节表示一个字符,仿佛一切问
2020-07-19 18:16:06
468
原创 记录自己一次安装gitlab的过程
工欲善其事,必先利其器, 其实使用git的企业越来越多,我们与之打交道的时间也越来越多,用到的功能也越来越多,为了不局限于commit,pull,push操作,在这里记录一次自己的搭建过程(注:有些是从别的文章copy过来的但都是自己亲测)。我这里使用的是centOS6.8,并不一定适合你 ,但基本安装步骤应该都是类似的。1. 安装依赖软件yum -y install poli...
2018-09-16 11:48:36
624
转载 JDK动态代理实现原理
原文章地址:http://rejoy.iteye.com/blog/1627405之前虽然会用JDK的动态代理,但是有些问题却一直没有搞明白。比如说:InvocationHandler的invoke方法是由谁来调用的,代理对象是怎么生成的,直到前几个星期才把这些问题全部搞明白了。 废话不多说了,先来看一下JDK的动态是怎么用的。 Java代码 package dyn...
2018-08-19 10:07:01
253
转载 Java多线程之锁优化策略
转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6561264.html 锁的优化策略 编码过程中可采取的锁优化的思路有以下几种: 1:减少锁持有时间 例如:对一个方法加锁,不如对方法中需要同步的几行代码加锁; 2:减小锁粒度 例如:ConcurrentHashMap采取对seg...
2018-08-11 22:26:01
248
原创 记一次你不知道到单例模式之重排序
其实工作中单例模式也是很常见的,也有很多种写法,今天在这里也只说一种方式,也是面试中遇到的,请先看一下两种双重检查锁的写法有什么不同(以下内容引自《java并发编程的艺术》一书)。(1)public class DoubleCheckedLocking { private static DoubleCheckedLocking doubleCheckedLocking ; ...
2018-08-05 22:10:56
771
1
原创 vue项目部署到Apache中遇到的问题
最近刚重构完,我们的一个项目,由原来的jsp模式改为了前后端分离,前端选型为vue,开发完成之后第一件时间就是要部署测试,服务端选的是Apache。本来以为很简单的一件事情,几经坎坷部署了两天才算能够正常访问了。先记录如下,过程搭建Apache环境,vue项目build之后把生成的dist文件放到,Apache下面,启动Apache之后本以为能够正常访问了,前提说下:vue项目路由...
2018-05-18 17:33:04
4657
1
原创 Spring源码学习(一)
人对神秘的东西即好奇又恐惧,好奇心使人想一探究竟恐惧心又使人望而却步,工作了那么久对Spring源码一直怀有这样的心态,从来没有下决心进行研读,最近感觉压力在攀升,使自己不得不战胜恐惧心,进行更深入的学习,希望自己的学习同样也能给你小伙伴们带来一丝灵感。 接下来将更加一下小例子来跟读一下源码的实现sping.xml 从上面的代码加上以往的经验来看待上面的处理逻辑:1. 读取xml2...
2018-05-05 22:40:08
1451
原创 Jenkins+maven+gitlab+shell实现项目自动化部署
Jenkins+maven+gitlab+shell实现项目自动化部署 以前部署项目步骤比较繁琐,要先拉代码再通过maven打包,再上传,然后一切顺利的情况下启动tomcat,然后结束,一切太人工化也比较浪费实现,下面是工作之余在测试环境上搭建的一套流程搭建之前要确认,jdk , maven,git这些已经在服务器上搭建成功,这些搭建都比较简单,这这里就不再赘述,gitlab使用的是...
2018-05-03 21:13:51
1365
原创 Java Stack and Heap
工作中偶然遇到一个问题,让我想重温一下这个神秘的的领域Java 堆和栈What is Heap Memory? 对于大多数引用来说,Java堆(Java Heap)是Java虚拟机管理内存中最大的一块。Java堆是被所有线程共享的一块内存区域在虚拟机启动时创建,此内存区域唯一目的就是存放对象实例,几乎所有对象实例都在这里分配内存。这一点在java虚拟机规范中的描述是:所有的对象实例以及数组...
2018-04-29 16:28:56
668
原创 编码加密过后,前端传输数据后台+变空格
业务场景:1.Android端使用webview加载h5界面需要向后台传输数据2.据Android开发人员所说是post请求数据处理:1.des3加密2.base64编码问题:加密过后出现+后,后台通过request.getParamters("msg")获取加密过的数据,进行解密时出错原因:加密传输过来的数据含有特殊字符+,到后台拿到未解密数据时+变为空格问题处理过程如下:首先我们在后台自己模拟...
2018-04-18 22:23:30
5093
原创 使用redis生成全局唯一id
生成唯一客户编码需求:1.id生成有一定规则,可识别 2.全局保持唯一,支持分布式思路:1.年月日+每日自增数 2.每天23:59:59秒把自增数清0 优势:1.通过年月日可以看出用户注册时间 2.通过自增数可以看出每日注册量使用redis原因:redis本身单线程,不会出现并发问题redis自身有过期策略使用RedisAtomicL...
2017-10-24 20:31:51
11636
原创 本地代码调用远程shell代码
1.需求(两台机器没有设置ssh免登陆)shell 在另一台服务器上代码在其他服务器上2.要求:在代码端的服务器 来调用另一台服务器上的shell所需jar:commons-io-2.4.jar ganymed-ssh2-build210.jar3.代码实现 conn = new Connection("192.77.210.202"); //远程she
2015-11-30 16:36:14
827
原创 hive join
1.join表连接:(1) 两个表m,n之间按照on条件连接,m中的一条记录和n中的一条记录组成一条新记录(2)join 等值连接,只有某个值在m和n中同时存在时(3)left outer join 左外连接,左边表中的值无论是否在右表中存在时,都输出,右边表中的值只有在左边表中存在时才输出(4)right outer join 和left outer join 相反(5)
2015-11-24 23:22:50
395
原创 hive 动态分区
1.动态分区参数介绍2.实际例子几个参数:set hive.exec.dynamic.partition=true//使用动态分区set hive.exec.dynamic.partition.mode=nonstrick;//无限制模式如果模式是strick,则必须有一个静态分区,且放在最前面,就是第一个分区先给他指定好set hive.exec.max.dynamic.
2015-11-21 18:17:27
603
原创 hive 分桶
1.何为分桶以及和分区的区别2.实际例子分桶:如果我们根据某列进行分桶,意思就是对这列的值进行hash,然后除以桶的个数再决定把这个值放到哪个桶中,当我们查询数据的时候,where 分桶列=“” 首先也会对这个条件的值进行hash,找到他所在的桶,这样的话 其他桶就不会再找避免暴力扫描,速度上也会提升和分区区别:分区是增加实际目录,每增加一个分区就会多个目录,分桶时把一个大的文
2015-11-21 16:38:13
981
原创 Hive 不同文件读取对比
1.hive的读取方式2.各个方式的例子的对比读取方式:1. stored as textfile1.1 直接查看hdfs1.2 hadoop fs -text2.stored as sequencefile2.1 hadoop fs -text3.stored as rcfile3.1 hive -service rcfilecat path4.store
2015-11-20 22:15:47
1206
转载 Linux crontab 命令格式与详细例子
基本格式 :* * * * * command分 时 日 月 周 命令第1列表示分钟1~59 每分钟用*或者 */1表示第2列表示小时1~23(0表示0点)第3列表示日期1~31第4列表示月份1~12第5列标识号星期0~6(0表示星期天)第6列要运行的命令crontab文件的一些例子:30 21 * * * /usr/local/etc/rc.d/
2015-11-18 11:34:55
509
原创 初识flume
1.它是什么东西2.它能干些什么3.flume-og和flume-ng的区别是什么4.实际例子1.引用官方语言 它是个什么东西Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。
2015-11-17 23:15:58
473
原创 每天进步一点点生活就是进步的
越来越发现自己害怕孤独了,也许真的老了,怀念过去,不过再怀念再不舍也已经是过去,现在每天都在学习,期望自己能够越来越好,期望自己的技术能够越来越高
2015-11-16 22:39:18
439
转载 沉思一为何他能成功
人生如棋 我愿为卒 三思后行 步步为营 行动虽慢 何曾后退名人说出的话才能算的上是名言,要想说出名言首先你要是个名人........谨以此篇,缅怀自我。 第一句:“人都是逼出来的”。 每个人都是有潜能的,生于安乐,死于忧患,所以,当面对压力的时候,不要焦燥,也许这只是生活对你的一点小考验,相信自己,一切都能处理好,逼急了好汉可以上梁山,时世造英雄,穷者思变,人只有
2015-11-14 22:48:39
404
原创 flume 学习之监控文件上传hdfs
1.没有详细概念2.搭建flume环境2.使用flume监控文件上传至hdfs1.flume 安装包可以从下面进行下载链接:http://pan.baidu.com/s/1ntH6I1N 密码:czbp2.通过ftp上传至Linux3.解压安装文件(cd /usr/local/):tar zxvf apache-flume-1.5.0-bin.tar.gzt
2015-11-11 23:26:25
768
转载 分区、桶、Sort Merge Bucket Join
目录[-]1、Hive 分区表1.1 实现细节1.2 语法2、Hive 桶1. 创建带桶的 table :2. 强制多个 reduce 进行输出:3. 往表中插入数据:4. 查看表的结构:5. 读取数据,看每一个文件的数据:6. 对桶中的数据进行采样:7. 查询一半返回的桶数:3、举个完整的小栗子:(1)建student & studen
2015-11-08 11:29:26
462
原创 hive UDF操作
创建java类(导入对应的依赖包):public classHiveHello extendsUDF { public Text evaluate(Text in){ Stringresult="helloWorld"+in; returnnew Text(result); }}打成jar:hive> add jar /scr
2015-11-07 19:12:36
456
原创 hive 导入导出数据
1.创建练习所需表(外部表)hive> create external table export_test(id int,context string) row format delimited fields terminated by ' ' stored as textfile;2.在本地创建练习数据[root@hadoop02 hive]# touch export_data
2015-11-07 16:27:41
483
原创 hive 分区
hive 分区:1、在Hive Select查询中一般会扫描整个表内容,会消耗很多时间做没必要的工作。有时候只需要扫描表中关心的一部分数据,因此建表时引入了partition概念。2、分区表指的是在创建表时指定的partition的分区空间。3、如果需要创建有分区的表,需要在create表的时候调用可选参数partitioned by,详见表创建的语法结构。创建分区
2015-11-06 23:17:50
735
原创 hive 建表例子
1.creating hive tableshive>create table pokes (foo int,bar string);creates a table called pokes with two columns,the first being an integer and the other a stringload dataload inpath ""
2015-11-03 23:28:46
674
原创 java Timer 定时任务(一)
Java调用shell 执行定时项目中有修改一个定时任务,顺便了解了一下整个流程:带着问题看程序:1.Java 怎么调用shell的2.定时是怎么起的 3.里面一些原理性的东西有什么模仿着项目中的程序和网上的一些例子,首先写了一个简单的程序:ProcessBuilder proc = new ProcessBuilder("notepad.exe", "test
2015-11-03 14:51:31
521
转载 hive 建表
hive建表是学习hive的第一步,建表很容易,但建个适合自己的就不是那么容易了,建表语句也有很大的学问。1.建表语句:create [external] table [if not exists ] table_name[(col_name data_type [comment col_comment], ...)] [comment table_comment] [partitio
2015-11-02 22:47:51
617
转载 java Timer的使用
1.概览Timer是一种定时器工具,用来在一个后台线程计划执行指定任务。它可以计划执行一个任务一次或反复多次。TimerTask一个抽象类,它的子类代表一个可以被Timer计划的任务。简单的一个例程: Java代码 import java.util.Timer; import java.util.TimerTask; /** *//
2015-11-02 17:30:37
775
1
原创 shell 脚本监控MySQL数据库启动状态
大前提:MySQL环境要有需求:1. 端口号和进程同时存在时才能说明MySQL进程还在 2. 如果MySQL进程不在了 要能自动重启MySQL进程 并发出邮件通知开始:分步来:(1)查MySQL 端口号还在不在的命令 执行 :netstat -lnt | grep 3306 输出: tcp 0 0 0.0.0.0:3306
2015-10-31 21:39:55
1391
原创 ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock'
今天做一个简单的监控MySQL启动的一个shell出现了ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock'出现过程如下:新建shell脚本文件vi db.sh 如下#!/bin/shport=$(netstat -lnt|grep 3306|wc -l) #通过端口号查看M...
2015-10-31 21:13:28
576
原创 shell find和xargs学习(七)
shell 的find和xargs 学习: 在Linux系统中有时我们需要按照某种特征来查找文件,在我们不知道文件在何处时,文件多时无异于大海捞针,find是一个非常有效的工具,它可以遍历当前目录甚至于整个文件系统来查找某些文件或目录。1.find 命令的一般形式为find pathname -options [-print -exec -ok]下面是该命令的参数:
2015-10-30 23:17:02
615
原创 shell 字符串(六)
shell 字符串的操作说明 表达式说明${#string}返回字符串的长度${string:position}在$string 中从位置$position之后开始提取字串${string
2015-10-29 16:36:24
511
原创 shell 简单例子(五)
shell 简单例子①编写一个名为iffile程序,它执行时判断/bin目录下date文件是否存在?#!/bin/shfileName=/bin/dateif [ -f "$fileName" ] then echo "exists" exit 0fi注重解释:-f 存在且是普通文件-d 存在且是目录-s 存在且字
2015-10-28 17:29:03
1060
原创 shell 变量(四)
1.全局变量 shell 全局变量,顾名思义 就是大家都能用的 ,全局变量设置位置 在/etc/profile 中进行配置 或者cd /etc/profile.d/ 在其中 新建 变量名.sh 来指定PWDUIDSHLVLREPLYRANDOMSECONDSIFSPATHHOME 验证:(1)[root@localhos
2015-10-25 23:53:45
345
原创 shell 清空日志简单例子(三)
1.使用shell 清空日志 脚本新建立.sh 文件touch cleanMsg.shcd /var/logcat /dev/null > messagesecho "log cleaned up"在/var/log 日志目录下面 messages 是系统日志,这里只是模仿清空日志的方式,其实上面的操作有很多问题上面确实可以直接清除日志 但是 messages
2015-10-25 13:36:46
838
原创 Java多线程共享全局变量问题
现在安全问题,在我们做开发时只要涉及多线程都是属于必须考虑的问题,但多线程是个神奇的东西,东西太多,很难全部掌握,在这里我也是通过例子来见证他的奇迹1.会出现问题的例子 计数的类:public class Count {private Integer countNum=0; public void count() { for(int i =
2015-10-24 20:58:46
8614
3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人