自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

liushaoming

liushaoming

  • 博客(341)
  • 收藏
  • 关注

转载 一致性hash-2

使用场景现在我们假设有100台redis data服务器,一份数据101进来的时候,以散列公式hash(i)&100,计算所存放的服务器,假设hash(i) = i,那么数据被散列到标号为1的服务器,然后这个时候服务器新增了一台,然后散列公式为hash(i)%101,这个时候请求访问数据101的时候,被分配至0号服务器,但是其实这个时候数据是在1号服务器的。所以这个时候大量的数据失

2018-01-14 22:10:24 191

转载 一致性hash

转载请说明出处:http://blog.csdn.net/cywosp/article/details/23397179    一致性哈希算法在1997年由麻省理工学院提出的一种分布式哈希(DHT)实现算法,设计目标是为了解决因特网中的热点(Hot spot)问题,初衷和CARP十分类似。一致性哈希修正了CARP使用的简 单哈希算法带来的问题,使得分布式哈希(DHT)可以在P2P环境中真正得到

2018-01-14 22:08:11 161

转载 java antlr的开发

Antlr 是一个基于 Java 开发的功能强大的语言识别工具,Antlr 以其简介的语法和高速的运行效率在这类工具中出类拔萃。当你需要开发一种领域语言时,语言可能像 Excel 中的公式一样复杂,也可能像本文中的例子一样简单(只有算术运算),这时你可以考虑使用 Antlr 来处理你的语言。Antlr 简介ANTLR 语言识别的一个工具 (ANother Tool for La

2018-01-03 14:03:45 3363

转载 开发maven插件

转自https://www.cnblogs.com/dreamroute/p/5262890.htmlMaven工具有很多插件,各种各样的插件,让我们开发调试过程中非常方便,但是终究是有你想要的但是现目前插件不能满足的(可能性非常非常低),这个时候就需要使用其他的替代工具,或者是自己来开发一个Maven插件。  事实上,学Maven插件开发对于我们这种小鸟意义并不大,有两个原因:1、我们平常需要使用

2018-01-03 13:59:15 328

原创 golang以daemen后台形式运行

golang的控制台程序运行在linux上后, terminal如果被断开了(比如ssh的终端关闭掉后),golang的程序就会被关闭。 我们如果想用golang运行一个web服务器,这样就不行。 我想到了用linux的screen命令,可以后台运行一个进程。 于是,创建一个screen screen -S myserver ,然后运行./myserver &就可以了

2018-01-01 20:23:19 4134

转载 Maven3.x 插件开发入门

转自https://www.cnblogs.com/dreamroute/p/5262890.htmlMaven工具有很多插件,各种各样的插件,让我们开发调试过程中非常方便,但是终究是有你想要的但是现目前插件不能满足的(可能性非常非常低),这个时候就需要使用其他的替代工具,或者是自己来开发一个Maven插件。  事实上,学Maven插件开发对于我们这种小鸟意

2017-12-18 11:49:10 287

转载 ManagementFactory-JAVA获取系统相关的信息

java.lang.management.ManagementFactory可以获取JVM的很多数据信息 测试代码如下package com.lsm.mavenspring;import java.lang.management.GarbageCollectorMXBean;import java.lang.management.ManagementFactory;import java.ut

2017-12-16 09:17:58 6041 1

转载 Maven生成可以直接运行的jar包的多种方式

转自http://blog.csdn.net/xiao__gui/article/details/47341385Maven可以使用mvn package指令对项目进行打包,如果使用java -jar xxx.jar执行运行jar文件,会出现"no main manifest attribute, in xxx.jar"(没有设置Main-Class)、ClassN

2017-12-14 10:42:10 201

原创 maven 报错invalid LOC header(bad signature)

在命令行中执行mvn package的时候报错如下[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile (default-compile) on project bonus-notice-webapp: Compilation failure[ERROR] Fai

2017-11-24 21:44:25 22776

转载 观察者模式(Observer Pattern)的UML表示

观察者模式又称为发布订阅模式。一个发布者对应多个订阅者,一旦发布者的状态发生改变时,订阅者将收到订阅事件。本文中涉及的代码请点击这里。先看看一个生活中的例子:当我们想订一份报纸,我们先去邮局找到报纸的编号后填写订阅单并缴费。当报社有新报纸发出时,邮局会将我们订阅的报纸发给我们。为了简单我们去掉邮局环节简化成:报社有新报纸后马上通知用户,这就是观察者。定义对象间的一对多关系,当一个对象的状态

2017-11-22 21:44:31 3889

原创 extends MessageToMessageEncoder<T>的时候encode() 编码结果如果shuc

基于Netty自己去实现一个MessageToMessageEncoder<T>进行自定义的编码的时候。 编码好的ByteBuf如何输出结果?extends MessageToMessageEncoder<T>的时候encode() 编码结果如果输出 ?答案是 out.add(sendBuf);

2017-11-09 23:13:20 1764 1

原创 frpc 自己开发rpc框架--解决问题

Marshalling.getProvidedMarshallerFactory("serial");返回nullpublic class MarshallingCodecFactory { /** * 创建Jboss Marshaller * @throws IOException */ protected static Marshall

2017-11-08 13:41:51 1044 1

转载 ByteBuffer常用方法详解

缓冲区(Buffer)缓冲区(Buffer)就是在内存中预留指定大小的存储空间用来对输入/输出(I/O)的数据作临时存储,这部分预留的内存空间就叫做缓冲区:使用缓冲区有这么两个好处:1、减少实际的物理读写次数2、缓冲区在创建时就被分配内存,这块内存区域一直被重用,可以减少动态分配和回收内存的次数举个简单的例子,比如A地有1w块砖要搬到B地

2017-11-06 18:06:32 256

转载 Redis内存使用优化与存储

Redis常用数据类型Redis最为常用的数据类型主要有以下五种:StringHashListSetSorted set在具体描述这几种数据类型之前,我们先通过一张图了解下Redis内部内存管理中是如何描述这些不同数据类型的:首先Redis内部使用一个redisObject对象来表示所有的key和value,redisObject最主要的信息如上图所示:ty

2017-10-26 23:10:42 189

转载 springcloud config 修改配置

http://blog.csdn.net/liaokailin/article/details/51307603springcloud(第二篇)springcloud config 修改配置在git端修改配置后如何让客户端生效?访问接口修改refresh post方式执行http://localhost/refresh 会刷新env中的配置res

2017-10-26 22:26:51 1308

转载 Java中hashCode的作用

以下是关于HashCode的官方文档定义:[plain] view plain copyhashcode方法返回该对象的哈希码值。支持该方法是为哈希表提供一些优点,例如,java.util.Hashtable 提供的哈希表。     hashCode 的常规协定是:   在 Java 应用程序执行期间,在同一对象上多次调用 has

2017-10-26 10:07:15 208

原创 Java容易遗忘的知识点列表(持续更新)

1. msql有没有跟oracle类似的sequenceOracle 中可以创建 Sequence,下面创建一个 SequenceCREATE SEQUENCE mysequence START WITH 1 INCREMENT BY 10此 SEQUENCE的下一个值可以用 mysequence.nextval获得,比如SELECT mysequence.nextval from

2017-10-25 21:58:26 487

转载 mysql悲观锁总结和实践

最近学习了一下数据库的悲观锁和乐观锁,根据自己的理解和网上参考资料总结如下: 悲观锁介绍(百科):悲观锁,正如其名,它指的是对数据被外界(包括本系统当前的其他事务,以及来自外部系统的事务处理)修改持保守态度,因此,在整个数据处理过程中,将数据处于锁定状态。悲观锁的实现,往往依靠数据库提供的锁机制(也只有数据库层提供的锁机制才能真正保证数据访问的排他性,否则,即使在本系统中实现了加锁机制

2017-10-25 09:06:31 206

转载 乐观锁和悲观锁的区别(最全面的分析)

http://blog.csdn.net/rexct392358928/article/details/52230737 悲观锁(Pessimistic Lock), 顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁

2017-10-25 08:55:15 312

原创 git reset如何回滚代码

回滚代码的时候,如果需要备份代码。 详细如下1. 备份分支代码远程仓库:可以使用图形化界面checkout一个新的分支本地:git checkout -b bak_branch2. 本地拉去远程要回滚的代码分支git clone -b local_branch 若只回滚本地代码,此步骤可忽略3. 从远程或者本地查看commit号用图形化查看更方便命令:git log -

2017-10-23 12:56:25 487

原创 git clone后,如何从远程获取某一个远程服务器上的另外一个分支

git clone后,如何从远程获取某一个远程服务器上的另外一个分支?当前本地分支是develop分支,没有master分支,现在希望在当前的文件路径下。 获取远程的master分支。使用命令git branch master origin/master 例子如下:frank.liu@BCCDESKTOP0444 MINGW64 /d/git/frank-liu-1/container

2017-10-23 10:00:47 1217

转载 自己动手实现最简单版本的Spring AOP

Spring aop的实现原理简介  前段时间写的java设计模式--代理模式,最近在看Spring Aop的时候,觉得于代理模式应该有密切的联系,于是决定了解下Spring Aop的实现原理。  说起AOP就不得不说下OOP了,OOP中引入封装、继承和多态性等概念来建立一种对象层次结构,用以模拟公共行为的一个集合。但是,如果我们需要为部分对象引入公共部分的时候,O

2017-10-22 18:32:59 1079

原创 Spring AOP源码学习 最核心代码

最核心的是JdkDynamicAopProxyfinal class JdkDynamicAopProxy implements AopProxy, InvocationHandler, SerializableAopProxypackage org.springframework.aop.framework;public interface AopProxy { Obje

2017-10-22 18:01:16 570

转载 自己简单实现Spring的IOC原理

控制反转(Inversion ofControl,缩写为IoC)简单来说就是当自己需要一个对象的时候不需要自己手动去new一个,而是由其他容器来帮你提供;Spring里面就是IOC容器。例如:在Spring里面经常需要在Service这个装配一个Dao,一般是使用@Autowired注解:类似如下 public Class ServiceImpl{ @Autowired

2017-10-16 23:04:22 358

转载 MySQL 事务

MySQL 事务MySQL 事务主要用于处理操作量大,复杂度高的数据。比如说,在人员管理系统中,你删除一个人员,你即需要删除人员的基本资料,也要删除和该人员相关的信息,如信箱,文章等等,这样,这些数据库操作语句就构成一个事务!在 MySQL 中只有使用了 Innodb 数据库引擎的数据库或表才支持事务。事务处理可以用来维护数据库的完整性,保证成批的 SQL 语句要么全部执行

2017-10-15 20:35:41 254

转载 分布式锁与实现(二)——基于ZooKeeper实现

引言ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。ZooKeeper的架构通过冗余服务实现高可用性。因此,如果第一次无应答,客户端就可以询问另一台ZooKeeper主机。ZooKe

2017-10-15 16:40:09 229

转载 ZooKeeper实现分布式队列

让Hadoop跑在云端系列文章,介绍了如何整合虚拟化和Hadoop,让Hadoop集群跑在VPS虚拟主机上,通过云向用户提供存储和计算的服务。现在硬件越来越便宜,一台非品牌服务器,2颗24核CPU,配48G内存,2T的硬盘,已经降到2万块人民币以下了。这种配置如果简单地放几个web应用,显然是奢侈的浪费。就算是用来实现单节点的hadoop,对计算资源浪费也是非常高的。对于这么高性能的计算机

2017-10-15 16:37:53 329

转载 分布式锁与实现(一)——基于Redis实现

转自http://www.cnblogs.com/liuyang0/p/6744076.html概述目前几乎很多大型网站及应用都是分布式部署的,分布式场景中的数据一致性问题一直是一个比较重要的话题。分布式的CAP理论告诉我们“任何一个分布式系统都无法同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition tole

2017-10-14 21:13:39 357

转载 springboot打包为war包

原文地址:http://m.blog.csdn.net/article/details?id=52515226把spring-boot项目按照平常的web项目一样发布到tomcat容器下一、修改打包形式在pom.xml里设置 war二、移除嵌入式tomcat插件在pom.xml里找到spring-boot-starter-we

2017-09-24 21:31:43 376

原创 本地Consumer和Producer无法使用远程Kafka服务器的处理办法

我的服务器上装了一个kafka,服务器ip是115.x.x.x  端口是9092我在自己的开发电脑上想根据115.x.x.x:9092 的方式访问,发现打印的日志里面实际访问的是localhost:9092要想kafka可以被远程访问。 1. 在iptalbes里面,accept这个tcp端口vim /etc/sysconfig/iptables增加一行-A I

2017-09-17 22:23:14 1100

转载 Zookeeper Api(java)入门与应用(转)

如何使用Zookeeper 作为一个分布式的服务框架,主要用来解决分布式集群中应用系统的一致性问题,它能提供基于类似于文件系统的目录节点树方式的数据存储,但是 Zookeeper 并不是用来专门存储数据的,它的作用主要是用来维护和监控你存储的数据的状态变化。通过监控这些数据状态的变化,从而可以达到基于数据的集群管理,后面将会详细介绍 Zookeeper 能够解决的一些典型问题,这里先介绍一

2017-09-12 10:16:54 201

转载 @Configuration和@Bean的用法和理解

1、第一种自己写的类,Controller,Service。 用@controller @service即可2、第二种,集成其它框架,比如集成shiro权限框架,集成mybatis分页插件PageHelper,第三方框架的核心类都要交于Spring大管家管理@Configuration可理解为用spring的时候xml里面的标签@Bean可理解为用spring的时候xml里

2017-09-02 23:28:21 808

转载 SpringBoot启动慢--SecureRandom

springboot启动的时候,再这一步骤之前,启动很慢。IdGeneratorBase : Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [140,108] milliseconds.根本原因是SecureRandom 这个jre的工具类的问

2017-09-02 14:30:49 7270

原创 dubbo Thread pool is EXHAUSTED-故障排除

整个排除故障过程使用了jstack命令故障现象描述dubbo Thread pool is EXHAUSTEDdubbo线程池耗尽dubbo日志如下:16:54:34,026 WARN [New I/O server worker #1-4] - [DUBBO] Thread pool is EXHAUSTED! Thread Name: DubboServerHandler

2017-08-30 11:28:23 40958

原创 Eclipse中webapp部署到tomcat到路径

以mac系统为例子/Users/liushaoming/java/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0可以看出来, 都在当前这个eclipse的workspace(eclipse下可以新建多个workspace)的如下路径下.metadata/.plugins/org.eclipse.wst.

2017-08-29 23:03:48 540

原创 git -vv 获取本地所有分支的最后一次提交信息

git -vv  获取本地所有分支的最后一次提交信息

2017-08-29 09:43:14 3101

原创 git本地已经有了mater分支如何获取develop分支的源代码(不做合并操作,只拉代码)

直接贴代码$ git clone http://172.16.88.90/BCC-Jingwei/card-main.gitCloning into 'card-main'...remote: Counting objects: 11866, done.remote: Compressing objects: 100% (21/21), done.remote: Total 11866

2017-08-29 09:33:19 2517

转载 MyBatis动态传入表名,字段名参数的解决办法--用于分表--表名是动态的

转自:http://www.yuanrengu.com/index.php/mybatis1021.html  一直在使用Mybatis这个ORM框架,都是使用mybatis里的一些常用功能。今天在项目开发中有个业务是需要限制各个用户对某些表里的字段查询以及某些字段是否显示,如某张表的某些字段不让用户查询到。这种情况下,就需要构建sql来动态传入表名、字段名了。现在对解决方法进行下总结

2017-08-26 19:01:37 48661 7

转载 Linux下修改Mysql的用户(root)的密码

一、拥有原来的myql的root的密码;方法一:在mysql系统外,使用mysqladmin# mysqladmin -u root -p password "test123"Enter password: 【输入原来的密码】方法二:通过登录mysql系统,# mysql -uroot -pEnter password: 【输入原来的密码】mysql&gt;use mysql;...

2017-08-26 18:22:50 341

转载 java发送get请求和post请求示例

java向服务端发送GET和POST请求package com.hongyuan.test;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;import java.net.HttpURLCon

2017-08-06 18:24:43 971

空空如也

空空如也

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

TA关注的人

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