Dubbo之同城双活 同城双活应该很多人都有了解,也就是两个区两个应用同时接收流量且互不影响一方有难另一方能撑住全部流量具体大家可以网上了解这里只针对dubbo输出下我们的方案如果哪里有不对的欢迎指正共同成长共同进步。1.先看下大体的一个结构 这里做下说明,观澜和福田是深圳的两个片区,分别部署两套集群,zk这里我们做了互相同步保持数据一致,也就是zk福田中有观澜的服务,zk观澜有福田的服务,你中有我我中有你的感觉,这样一方挂了之后才能保持服务不断,但是我们正常情况下我们要保证:1.福田的消费方...
一道面试题引发的思考:char类型能否存储汉字 阿里的一道电面题:char类型能否存储汉字百度随便搜一下答案就应该能出来能存储汉字。下面看下何为charchar 类型想必大家都比较熟悉了,java的八大类型之一,能存储两个字节,看情况讲道理应该能存储汉字,答案也是能的。char型变量是用来存储Unicode编码的字符的,unicode编码字符集中包含了汉字,所以,char型变量中当然可以存储汉字。unicode如其名字,统一码,万国码 国际通用码,它的出现就是为了屏蔽各个国家不同编码的差异,unicode用两个字节表示一个字符,仿佛一切问
记录自己一次安装gitlab的过程 工欲善其事,必先利其器, 其实使用git的企业越来越多,我们与之打交道的时间也越来越多,用到的功能也越来越多,为了不局限于commit,pull,push操作,在这里记录一次自己的搭建过程(注:有些是从别的文章copy过来的但都是自己亲测)。我这里使用的是centOS6.8,并不一定适合你 ,但基本安装步骤应该都是类似的。1. 安装依赖软件yum -y install poli...
JDK动态代理实现原理 原文章地址:http://rejoy.iteye.com/blog/1627405之前虽然会用JDK的动态代理,但是有些问题却一直没有搞明白。比如说:InvocationHandler的invoke方法是由谁来调用的,代理对象是怎么生成的,直到前几个星期才把这些问题全部搞明白了。 废话不多说了,先来看一下JDK的动态是怎么用的。 Java代码 package dyn...
Java多线程之锁优化策略 转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6561264.html 锁的优化策略 编码过程中可采取的锁优化的思路有以下几种: 1:减少锁持有时间 例如:对一个方法加锁,不如对方法中需要同步的几行代码加锁; 2:减小锁粒度 例如:ConcurrentHashMap采取对seg...
记一次你不知道到单例模式之重排序 其实工作中单例模式也是很常见的,也有很多种写法,今天在这里也只说一种方式,也是面试中遇到的,请先看一下两种双重检查锁的写法有什么不同(以下内容引自《java并发编程的艺术》一书)。(1)public class DoubleCheckedLocking { private static DoubleCheckedLocking doubleCheckedLocking ; ...
vue项目部署到Apache中遇到的问题 最近刚重构完,我们的一个项目,由原来的jsp模式改为了前后端分离,前端选型为vue,开发完成之后第一件时间就是要部署测试,服务端选的是Apache。本来以为很简单的一件事情,几经坎坷部署了两天才算能够正常访问了。先记录如下,过程搭建Apache环境,vue项目build之后把生成的dist文件放到,Apache下面,启动Apache之后本以为能够正常访问了,前提说下:vue项目路由...
Spring源码学习(一) 人对神秘的东西即好奇又恐惧,好奇心使人想一探究竟恐惧心又使人望而却步,工作了那么久对Spring源码一直怀有这样的心态,从来没有下决心进行研读,最近感觉压力在攀升,使自己不得不战胜恐惧心,进行更深入的学习,希望自己的学习同样也能给你小伙伴们带来一丝灵感。 接下来将更加一下小例子来跟读一下源码的实现sping.xml 从上面的代码加上以往的经验来看待上面的处理逻辑:1. 读取xml2...
Jenkins+maven+gitlab+shell实现项目自动化部署 Jenkins+maven+gitlab+shell实现项目自动化部署 以前部署项目步骤比较繁琐,要先拉代码再通过maven打包,再上传,然后一切顺利的情况下启动tomcat,然后结束,一切太人工化也比较浪费实现,下面是工作之余在测试环境上搭建的一套流程搭建之前要确认,jdk , maven,git这些已经在服务器上搭建成功,这些搭建都比较简单,这这里就不再赘述,gitlab使用的是...
Java Stack and Heap 工作中偶然遇到一个问题,让我想重温一下这个神秘的的领域Java 堆和栈What is Heap Memory? 对于大多数引用来说,Java堆(Java Heap)是Java虚拟机管理内存中最大的一块。Java堆是被所有线程共享的一块内存区域在虚拟机启动时创建,此内存区域唯一目的就是存放对象实例,几乎所有对象实例都在这里分配内存。这一点在java虚拟机规范中的描述是:所有的对象实例以及数组...
编码加密过后,前端传输数据后台+变空格 业务场景:1.Android端使用webview加载h5界面需要向后台传输数据2.据Android开发人员所说是post请求数据处理:1.des3加密2.base64编码问题:加密过后出现+后,后台通过request.getParamters("msg")获取加密过的数据,进行解密时出错原因:加密传输过来的数据含有特殊字符+,到后台拿到未解密数据时+变为空格问题处理过程如下:首先我们在后台自己模拟...
使用redis生成全局唯一id 生成唯一客户编码需求:1.id生成有一定规则,可识别 2.全局保持唯一,支持分布式思路:1.年月日+每日自增数 2.每天23:59:59秒把自增数清0 优势:1.通过年月日可以看出用户注册时间 2.通过自增数可以看出每日注册量使用redis原因:redis本身单线程,不会出现并发问题redis自身有过期策略使用RedisAtomicL...
本地代码调用远程shell代码 1.需求(两台机器没有设置ssh免登陆)shell 在另一台服务器上代码在其他服务器上2.要求:在代码端的服务器 来调用另一台服务器上的shell所需jar:commons-io-2.4.jar ganymed-ssh2-build210.jar3.代码实现 conn = new Connection("192.77.210.202"); //远程she
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)
hive 动态分区 1.动态分区参数介绍2.实际例子几个参数:set hive.exec.dynamic.partition=true//使用动态分区set hive.exec.dynamic.partition.mode=nonstrick;//无限制模式如果模式是strick,则必须有一个静态分区,且放在最前面,就是第一个分区先给他指定好set hive.exec.max.dynamic.
hive 分桶 1.何为分桶以及和分区的区别2.实际例子分桶:如果我们根据某列进行分桶,意思就是对这列的值进行hash,然后除以桶的个数再决定把这个值放到哪个桶中,当我们查询数据的时候,where 分桶列=“” 首先也会对这个条件的值进行hash,找到他所在的桶,这样的话 其他桶就不会再找避免暴力扫描,速度上也会提升和分区区别:分区是增加实际目录,每增加一个分区就会多个目录,分桶时把一个大的文
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
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/
初识flume 1.它是什么东西2.它能干些什么3.flume-og和flume-ng的区别是什么4.实际例子1.引用官方语言 它是个什么东西Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。