- 博客(54)
- 资源 (2)
- 收藏
- 关注
原创 mysql乐观锁+自旋
使用 MySQL 5.7 做测试,数据库引擎为 InnoDB,数据库隔离级别为可重复读(REPEATABLE-READ),读读共享,读写互斥。在这个隔离级别下,在多事务并发的情况下,还是会出现数据更新的冲突问题。先分析一下更新冲突的问题是如何产生的。假设我们有一张销量表goods_sale,表结构如下:字段 数据类型 说明 goods_sale_id varchar(32) 销量 id goods_id varchar(32) 商品 id co..
2021-04-30 11:19:00
969
原创 JVM GC
日前查看某个程序的日志,发现一直在报GC相关的信息,不确定这样的信息是代表正确还是不正确,所以正好借此机会再复习下GC相关的内容:以其中一行为例来解读下日志信息:[GC (Allocation Failure) [ParNew: 367523K->1293K(410432K), 0.0023988 secs] 522739K->156516K(1322496K), 0.0025301 secs] [Times: user=0.04 sys=0.00, real=0.01 secs].
2021-02-07 16:46:34
171
原创 geode
铁总在用的高性能分布式缓存计算框架 Geode什么是 Geode,有哪些特性官网定义Apache Geode 是一个数据管理平台,可在广泛分布的云架构中提供对数据密集型应用程序的实时、一致的访问。Geode 跨多个进程汇集内存、CPU、网络资源和可选的本地磁盘,以管理应用程序对象和行为。它使用动态复制和数据分区技术来实现高可用性、改进的性能、可伸缩性和容错性。除了作为分布式数据容器之外,Geode 还是一个内存数据管理系统,可提供可靠的异步事件通知和有保证的消息传递。主要组件概念locator:
2020-07-08 16:51:23
1191
转载 linux 安装node
网络上的资源、教程等等的非常的丰富,但是,有时候照着教程来走,依旧行不通,可能是时代的变更,技术的更新,导致已不可行;可能是,作者并没有从一个读者的角度出发,导致天马行空或者说倒序教程,等等原因。安装之前sudo su root #切换到root帐号cd / #进入根目录node -v #查看有无npm -v #查看有无安装之前download从 nodejs官网...
2019-11-27 18:02:46
226
原创 版本号比较
public class CompareVersionUtil { /** * 版本号比较 * * @param v1 * @param v2 * @return 0代表相等,1代表左边大,-1代表右边大 * Utils.compareVersion("1.0.358_20180820090554","1.0.358_20...
2019-11-26 14:17:45
397
原创 mysql查找json的某个字段
SELECT json_extract(字段名,'$.json结构') FROM 表名;如果json里有双引号,那这样取出来的数据也带双引号,要去掉就使用REPLACE函数例如:ps_push_data表里的push_data字段存的数据为:{"carRenewalInfoVo":{"licence":"浙AF55Z0"},"code":"1","msg":"成功"}使用sqlSEL...
2019-11-07 17:36:01
735
原创 linux搭建maven私服
最近对接很多第三方,有些需要自己重新封装一层,很多jar包需要互相传来传去,索性搭个私服,方便大家。网上看了不少文档,具体细节不再赘述,只说我遇到的问题。一、安装jdknexus3.x需要JDK1.8支持,所以我们首先在Linux下面安装JDK1.8.JDK下载地址:http://www.oracle.com/technetwork/cn/java/javase/downloads...
2019-11-07 11:30:03
321
原创 linux清理物理内存
当在Linux下频繁存取文件后,物理内存会很快被用光,当程序结束后,内存不会被正常释放,而是一直作为caching因此我们很有必要手动清理系统缓存释放内存。我们在清理缓存前应该先sync下因为系统在操作的过程当中,会把你的操作到的文件资料先保存到buffer中去,因为怕你在操作的过程中因为断电等原因遗失数据,所以在你操作过程中会把文件资料先缓存。所以我们在清理缓存先要先把...
2019-09-26 15:11:20
419
原创 nginx限制某个IP同一时间段的访问次数
如何设置能限制某个IP某一时间段的访问次数是一个让人头疼的问题,特别面对恶意的ddos攻击的时候。其中CC攻击(Challenge Collapsar)是DDOS(分布式拒绝服务)的一种,也是一种常见的网站攻击方法,攻击者通过代理服务器或者肉鸡向向受害主机不停地发大量数据包,造成对方服务器资源耗尽,一直到宕机崩溃。cc攻击一般就是使用有限的ip数对服务器频繁发送数据来达到攻击的目的,nginx...
2019-08-07 10:28:17
582
转载 hashmap原理
HashMap的工作原理是近年来常见的Java面试题。几乎每个Java程序员都知道HashMap,都知道哪里要用HashMap,知道HashTable和HashMap之间的区别,那么为何这道面试题如此特殊呢?是因为这道题考察的深度很深。这题经常出现在高级或中高级面试中。投资银行更喜欢问这个问题,甚至会要求你实现HashMap来考察你的编程能力。ConcurrentHashMap和其它同步集合的引入...
2019-07-04 13:59:14
123
原创 根据短链接获取长链接方法
public static String getLocationMethod(String reqUrl) { DefaultHttpClient httpclient = new DefaultHttpClient(); String location = null; int responseCode = 0; try { final...
2019-06-17 16:34:48
3869
原创 邮箱服务器搭建
最近需要用到发邮件功能,奈何第三方邮件(腾讯、网易、雅虎、阿里)都有次数限制,超过限制会判定为垃圾邮件或者进行拦截。只能自己搭建邮件服务器,目前常规的做法是安装Postfix, Dovecot以及数据库,但是过程极其麻烦。本文使用国内开源ewomail搭建,亲测可用前期准备服务器一台:国内国外都行,但是需要开启25端口,内存1G以上,本文使用的是华为云服务器,需要开启25端口,直接拨打客服...
2019-05-27 11:05:20
4081
1
原创 华为OBS、阿里云OSS文件图片上传下载
package com.vulcan.controller.attachment;import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.JSONObject;import com.obs.services.ObsClient;import com.obs.services.exception.ObsException;...
2019-05-13 09:39:33
5214
原创 后台管理系统之系统操作日志开发(Java实现)
一,功能点实现管理员操作数据的记录。效果如下二,代码实现基于注解的Aop日志记录1.Log实体类package com.vulcan.facade.operationlog.entity;import lombok.Data;import org.springframework.data.annotation.Id;import javax.persistence....
2019-04-13 14:44:51
6443
原创 重启gitlab ruby_block[supervise_redis_sleep] action run
在卸载gitlab然后再次安装执行sudo gitlab-ctl reconfigure的时候往往会出现:ruby_block[supervise_redis_sleep] action run,会一直卡无法往下进行!解决方案:1、按住CTRL+C强制结束;2、运行:sudo systemctl restart gitlab-runsvdir;3、再次执行:sudo gitlab-...
2019-04-01 18:09:02
277
原创 centos 7 64bit 安装gitlab
1. 安装依赖软件yum -y install policycoreutils openssh-server openssh-clients postfix2.设置postfix开机自启,并启动,postfix支持gitlab发信功能systemctl enable postfix && systemctl start postfix3.下载gitlab安装包,然后...
2019-04-01 18:08:21
294
原创 POI 设置Excel样式(转)
POI 设置Excel样式POI 设置Excel样式POI中可能会用到一些需要设置EXCEL单元格格式的操作小结:先获取工作薄对象:HSSFWorkbook wb = new HSSFWorkbook();HSSFSheet sheet = wb.createSheet();HSSFCellStyle setBorder = wb.createCellStyle();一、设置背...
2019-02-15 11:22:13
667
转载 面试
本人最近几年一直在做java后端方面的技术面试官,而在最近两周,又密集了面试了一些java初级和高级开发的候选人,在面试过程中,我自认为比较慎重,遇到问题回答不好的候选人,我总会再三从不同方面提问,只有当反复确认能力不行才会下结论,相反,如果候选人给我的印象不错,我也会从多个角度来衡量,以免招进会说但不会干活的“大忽悠”。 其实倒也不是我故意要为难候选人,毕竟入职后就是同事,但面试官的职...
2019-02-12 16:20:08
200
转载 spring cloud主要组件详解
概述毫无疑问,Spring Cloud是目前微服务架构领域的翘楚,无数的书籍博客都在讲解这个技术。不过大多数讲解还停留在对Spring Cloud功能使用的层面,其底层的很多原理,很多人可能并不知晓。因此本文将通过大量的手绘图,给大家谈谈Spring Cloud微服务架构的底层原理。实际上,Spring Cloud是一个全家桶式的技术栈,包含了很多组件。本文先从其最核心的几个组件入手,来剖析...
2019-01-17 11:06:03
189
转载 查看文章 mysql:表注释和字段注释
1 创建表的时候写注释create table test1( field_name int comment '字段的注释')comment='表的注释'; 2 修改表的注释alter table test1 comment '修改后的表的注释'; 3 修改字段的注释alter table test1 modify column field_name i...
2018-10-24 17:47:37
466
转载 注解@JsonIgnore的使用方法及其效果
作用:在json序列化时将java bean中的一些属性忽略掉,序列化和反序列化都受影响。使用方法:一般标记在属性或者方法上,返回的json数据即不包含该属性。场景模拟:需要把一个List<HistoryOrderBean>转换成json格式的数据传递给前台。但实体类中基本属性字段的值都存储在快照属性字段中。此时我可以在业务层中做处理,把快照属性字段的值赋给实体类中对应的基...
2018-10-24 17:45:49
1099
转载 git删除远程分支和本地分支
当我们集体进行项目时,将自定义分支push到主分支master之后,如何删除远程的自定义分支呢问题解决: (1)使用命令git branch -a 查看所有分支注: 其中,remote/origin/master表示的是远程分支 (2)删除远程分支 注: 如上所示,使用命令 git pu...
2018-09-29 21:27:47
798
转载 java8新特性(二):Lambda表达式
一、什么是Lambda表达式 上一篇中已经看到了Lambda表达式的使用场景,这一篇深入学习一下Java8的这个新特性。 首先Lambda说一下表达式的定义:它是一个简洁的可以用于传递的匿名函数。 包含以下一些特性: 1- 它是匿名的: 它不像不通的方法那样有一个明确的名称。 2- 它是一个函数: 因为它不属于某个特定的类,但是它有参数列表、函数体、返...
2018-09-28 11:46:40
154
转载 java8新特性(三):Stream流的概念
流就是让程序员可以用声明式编程来处理集合数据的java接口,简单来说你可以把它看成是遍历数据集的高级迭代器,可以透明的并行处理,所以不需要程序员再写任何多线程代码了。 java7 之前(指令式编程)List<Dish> menu = new ArrayList<>();List<Dish> lowCaloricDishes = new ArrayL...
2018-09-28 11:46:04
422
转载 java8新特性(四):Stream流的使用
过滤出素食List<Dish> vegetarian = menu.stream().filter(Dish::isVegetarian).collect(Collectors.toList()); 过滤出偶数,并且不重复的元素。List<Integer> numbers = Arrays.asList(1, 2, 1, 3, 3, 2, 4...
2018-09-28 11:43:07
372
转载 Nginx 安装与部署
1:安装工具包 wget、vim和gccyum install -y wget yum install -y vim-enhanced yum install -y make cmake gcc gcc-c++ 2:下载nginx安装包wget http://nginx.org/download/nginx-1.6.2.tar.gz 3:安装依赖包yu...
2018-09-11 21:02:29
104
转载 xshell连接阿里云服务器
Xshell登录阿里云服务器ECS1. 参考资料: 1). 《阿里云服务器怎么用?阿里云服务器使用教程》 链接:http://www.cr173.com/html/50758_1.html 2). eagle-zhang的CSDN博客《Xshell连接不上阿里云服务器》 链接:http://blog.csdn.net/zhangxing5...
2018-09-11 20:39:03
4531
2
转载 微服务理解
1、什么是微服务? 就目前而言,对于微服务业界并没有一个统一的,标准的定义。 但通常而言,微服务架构是一种架构模式或者说是一种架构风格,它提倡将单一应用程序划分一组小的服务,每个服务运行在其独立的自己的进程中,服务之间相互协调、互相配合,为用户提供最总价值。服务之间采用轻量级的通信机制互相沟通(通常是基于HTTP的RESTful API),每个服务都围绕着具体的业务进行构建,并且...
2018-09-08 14:34:31
2018
转载 dubbo
1. 什么是dubboDubbo是阿里巴巴SOA服务化治理方案的核心框架,是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。2. Dubbo使用的什么协议?主要使用协议有(dubbo 、rmi、hessian、http、webservice、thrift、memcached、redis)dubbo:Dubbo 缺省协议采用单一长...
2018-08-22 21:32:58
88
转载 spring ioc aop
IoC(Inversion of Control) (1). IoC(Inversion of Control)是指容器控制程序对象之间的关系,而不是传统实现中,由程序代码直接操控。控制权由应用代码中转到了外部容器,控制权的转移是所谓反转。 对于Spring而言,就是由Spring来控制对象的生命周期和对象之间的关系;IoC还有另外一个名字——“依赖注入(Dependency Injec...
2018-08-22 18:09:35
95
转载 zookeeper常见面试
Zookeeper是什么框架分布式的、开源的分布式应用程序协调服务,原本是Hadoop、HBase的一个重要组件。它为分布式应用提供一致性服务的软件,包括:配置维护、域名服务、分布式同步、组服务等。应用场景Zookeeper的功能很强大,应用场景很多,结合我实际工作中使用Dubbo框架的情况,Zookeeper主要是做注册中心用。基于Dubbo框架开发的提供者、消费者都向Zookeeper注册...
2018-08-21 18:22:22
117
原创 CountDownLatch 的简单理解
CountDownLatch的概念CountDownLatch是一个同步工具类,用来协调多个线程之间的同步,或者说起到线程之间的通信(而不是用作互斥的作用)。CountDownLatch能够使一个线程在等待另外一些线程完成各自工作之后,再继续执行。使用一个计数器进行实现。计数器初始值为线程的数量。当每一个线程完成自己任务后,计数器的值就会减一。当计数器的值为0时,表示所有的线程都已经完成了...
2018-08-21 15:10:06
132
原创 mysql索引和组合索引
1、索引分为单列索引和组合索引单列索引: 创建:CREATE INDEX 索引名 ON `表名`(`字段名`)删除:DROP INDEX 索引名 ON `表名`组合索引创建:CREATE INDEX 索引名 ON `表名`(`字段名1`,`字段名2`,...)如:ALTER TABLE mytable ADD INDEX name_city_age (name(1...
2018-08-21 11:26:39
451
转载 mysql索引
首先:先假设有一张表,表的数据有10W条数据,其中有一条数据是nickname='css',如果要拿这条数据的话需要些的sql是 SELECT * FROM award WHERE nickname = 'css'一般情况下,在没有建立索引的时候,mysql需要扫描全表及扫描10W条数据找这条数据,如果我在nickname上建立索引,那么mysql只需要扫描一行数据及为我们找到这条nickna...
2018-08-21 11:07:10
90
转载 分布式系统事务一致性解决方案
本文首发于InfoQ,版权所有,请勿转载!!!http://www.infoq.com/cn/articles/solution-of-distributed-system-transaction-consistency开篇在OLTP系统领域,我们在很多业务场景下都会面临事务一致性方面的需求,例如最经典的Bob给Smith转账的案例。传统的企业开发,系统往往是以单体应用形式存在的,也没有横跨多个数...
2018-05-29 18:23:55
194
原创 java中e.getMessage()和e.toString() 以及e.printStackTrace()
以空指针为例e.toString() :java.lang,NullPointerExceptione.getMessage() : null由此可以看出,e.toString() 获取的信息包括日常类型和异常详细信息而e.getMessage() 只是获取异常的详细消息字符串。e.printStackTrace() 从字面意思:输出栈的痕迹。白话意思就是打印出异常信息在代码中的信息以及位置。...
2018-05-29 09:47:02
4729
原创 mysql通过经纬度测算距离
通过经纬度测量距离:先要执行SET GLOBAL log_bin_trust_function_creators = 1;再执行以下代码:DELIMITER $$CREATE FUNCTION `dnDistance`(latitude1 DOUBLE, longitude1 DOUBLE, latitude2 DOUBLE, longitude2 DOUBLE) RETURNS doubleB...
2018-05-17 18:06:45
220
原创 java端转译app端发送的表情符号
import java.net.URLEncoder;//引用的jar包 String name="这里是表情"; //这里是将表情符转译为特殊标签 try { System.out.println(URLEncoder.encode(name, "UTF-8")); } catch (UnsupportedEncodingException e) {...
2018-05-07 11:59:29
195
原创 关于docker的一点笔记
之前公司用到了docker,但是一直似懂非懂。今天抽空正好看了看,做出如下总结:1、抽象概念:大家看docker的log,是不是一条鲸鱼驮着很多的集装箱,而docker就是起了一个大船上的集装箱的作用。集装箱解决了什么问题?在一艘大船上,可以把货物规整的摆放起来。并且各种各样的货物被集装箱标准化了,集装箱和集装箱之间不会互相影响。那么我就不需要专门运送水果的船和专门运送化学品的船了。只要这些货物在...
2018-05-04 14:21:40
106
转载 linux下安装rz sz命令
一.软件安装1)编译安装root 账号登陆后,依次执行以下命令:cd /tmpwget http://www.ohse.de/uwe/releases/lrzsz-0.12.20.tar.gztar zxvf lrzsz-0.12.20.tar.gz && cd lrzsz-0.12.20./configure && make && make install上面安装过程
2018-02-07 15:48:33
121
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人