自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(480)
  • 收藏
  • 关注

原创 java agent开发

本文主要记录下如何创建一个简单的java Agent,并配置运行。1.创建Agent类package com.java4all.grouth.agent;import java.lang.instrument.Instrumentation;/** * @description: java Agent * @author: IT云清 */public class MyAgent { public static void premain(String agentArgs, Ins

2021-01-22 11:11:13 703

转载 CQRS架构实战

1.CQRS架构图2.什么是CQRS这里只通过Udi Dahan的《Clarified CQRS》文章中的一张图片简要介绍一下:UI上有两种类型的操作:命令和查询,例如显示销量最好的5个产品就属于查询,而提交一个订单、修改密码等则属于命令。因为大部分系统都是读多写少,而且业务逻辑基本都出现在写入的一端,所以查询和命令的分离可以让我们独立的去优化查询。查询 (Query)上图中,可以看到Query不是通过DB来查询,而是通过一个专门用于查询的Read DB(上图中的Cache,它不一定是数据库

2020-12-25 12:01:05 673

原创 springboot整合nacos配置中心

1.nacos添加配置2.项目引入依赖 <dependency> <groupId>com.alibaba.boot</groupId> <artifactId>nacos-config-spring-boot-starter</artifactId> <version>0.2.1</version> </dependency>3.配置spring:

2020-12-11 10:45:53 1100

原创 一致性hash算法java实现

一致性hash算法java版本简单实现package com.java4all.grouth.consistent;import java.util.LinkedList;import java.util.List;import java.util.SortedMap;import java.util.TreeMap;import org.slf4j.Logger;import org.slf4j.LoggerFactory;/** * 一致性hash算法java简易实现 * @au

2020-12-09 17:29:51 2900 16

转载 面向对象设计七大原则

面向对象设计的几大原则,在项目重构,业务拓展,业务反复变更的时候,每一次踩坑,发现代码混乱难以下手时,回头看看,都有新的体会。这些简单的原则里,所浓缩的指导思想,不断踩坑,才发现都是朴素的真理。单一职责原则(Single Responsibility Principle)每一个类应该专注于做一件事情。里氏替换原则(Liskov Substitution Principle)超类存在的地方,子类是可以替换的。依赖倒置原则(Dependence Inversion Pri

2020-11-06 09:14:22 269

原创 seata 1.3 redis模式重构性能对比

非官方数据,数据为尝试重构server端redis模式下,中间过程的测试数据。!!!测试目的比较server端redis模式下,全局锁及事务信息存储,使用string和hash两种数据结构的性能差异。此结果仅仅代表这一种场景下,和本人本地测试结果。场景较为极端,并发修改的三个库的数据均为相同的数据。场景为:order - > storage -> account分别修改数据为order insert 1条 - > storage 修改5条 -> account 修改1

2020-09-23 20:06:22 4253 2

转载 git协作常用术语

WIP   Work in progress, do not merge yet. // 开发中LGTM Looks good to me. // Riview 完别人的 PR ,没有问题PTAL Please take a look. // 帮我看下,一般都是请别人 review 自己的 PRCC Carbon copy // 一般代表抄送别人的意思RFC  —  request for comments. // 我觉得这个想法很好, 我们来一起讨论下IIRC  —  if I recall c

2020-09-21 21:45:21 322

转载 深入理解Redis Cluster和Jedis Cluster

本文转载自:https://zhuanlan.zhihu.com/p/69800024Redis Cluster是Redis官方提供的集群解决方案。由于业务的飞速增长,单机模式总会遇到内存、性能等各种瓶颈,这个时候我们总会喊,上集群啊。就跟我家热得快炸了,你总喊开空调呀一样。的确,上集群可以解决大多数问题,但是在使用集群的过程中,不可避免会遇到这样那样的问题,这个时候怎么办呢,各种百度各种群里去问吗?NO,作为开发人员,在享受第三方提供的方便前,有必要去了解其基本的工作机制,这样才能在遇到问题时快速定位,

2020-09-09 14:24:36 2863 1

原创 seata redis模式重构之全局事务更新

关于重构全局事务信息存储重构过程中一个问题的思考。1.watch的必要性jedis.hmset命令的语义:如果这个map存在,就更新这个多个值;如果这个map不存在,则新建map,然后设置键值对;同时将多个 field-value (域-值)对设置到哈希表 key 中。 此命令会覆盖哈希表中已存在的域。如果 key不存在,一个空哈希表被创建并执行 HMSET 操作。如果命令执行成功,返回 OK 。当 key 不是哈希表(hash)类型时,返回一个错误。在更新全局事务session的ma

2020-09-05 22:28:45 1354 2

原创 grafana踩坑记录

1.鼠标移动悬停时数据不变更2.数据显式和库里查询结果不同数据库为postgresqlsql为SELECTdate_trunc('HOUR', gmt_create) as time,project_name as metric,count(distinct(user_id)) as valueFROM log_info where project_name like 'middleground-pro%'GROUP BY time,metric;库里显式为:而页面显式为:后来

2020-08-31 12:33:40 4498

原创 java中的final关键字和effectively final

我们在给lamda传参数时,可能会出现如下情况:Variable used in lambda expression should be final or effectively final一般情况下,我们是把变量用final显式的修饰,来解决这个问题。如果不显式的修饰呢,能否解决呢?也是可以的,只要变量被判定为一个effectively final变量,也是可以的。关于这个部分的描述,可以参考java的官方文档。这个部分 说明了哪些情况下,变量可以被认定为effectively final。

2020-08-29 17:38:18 1499 2

转载 Redis sort 排序命令详解

本文介绍redis排序命令,redis支持对list,set,sorted set元素的排序sort 排序命令格式:sort key [BY pattern] [LIMIT start count] [GET pattern] [ASC|DESC] [ALPHA] [STORE dstkey]1) sort key (list)这是最简单的情况,没有任何选项对集合自身元素排序并返回排序结果,默认为value升序。示例:代码如下:127.0.0.1:6379> lpush mimvp 12

2020-08-19 16:21:30 665

转载 高可用Redis: Redis Cluster

Redis Cluster是Redis官方提供的Redis集群功能1.为什么要实现Redis Cluster1.主从复制不能实现高可用2.随着公司发展,用户数量增多,并发越来越多,业务需要更高的QPS,而主从复制中单机的QPS可能无法满足业务需求3.数据量的考虑,现有服务器内存不能满足业务数据的需要时,单纯向服务器添加内存不能达到要求,此时需要考虑分布式需求,把数据分布到不同服务器上4.网络流量需求:业务的流量已经超过服务器的网卡的上限值,可以考虑使用分布式来进行分流5.离线计算,需要中间环节

2020-08-07 10:47:06 397

原创 tomcat调优 tomcat配置优化

1.修改内存/jvm配置调整前JAVA_OPTS="-Xms1024m -Xmx4096m -Xss1024K -XX:PermSize=512m -XX:MaxPermSize=2048m"调整后JAVA_OPTS="-Xms2048m -Xmx2048m -Xss1024K -XX:PermSize=512m -XX:MaxPermSize=2048m"参数含义:-server:启用 JDK的 server 版本;-Xms:Java虚拟机初始化时堆的最小内存;-Xmx:Java虚拟机

2020-08-06 15:49:59 1419 2

转载 yum install nodejs 报错问题及centos环境下nodejs安装解决方案

直接yum install -y nodejs会提示找不到nodejs这个模块,参考官网,发现有以下俩种安装方式:1、安装nodesource后再执行yum install -y nodejscurl --silent --location https://rpm.nodesource.com/setup_8.x | sudo bash -或者curl --silent --location https://rpm.nodesource.com/setup_10.x | sudo bash -

2020-08-05 11:26:54 1744

转载 Redis Pipeline(管道)

Redis 的 pipeline(管道)功能在命令行中没有,但 redis 是支持 pipeline 的,而且在各个语言版的 client 中都有相应的实现。 由于网络开销延迟,就算 redis server 端有很强的处理能力,也会由于收到的 client 消息少,而造成吞吐量小。当 client 使用 pipelining 发送命令时,redis server 必须将部分请求放到队列中(使用内存),执行完毕后一次性发送结果;如果发送的命令很多的话,建议对返回的结果加标签,当然这也会增加使用的内存;Pi

2020-07-22 18:40:10 536

原创 nginx rewrite 跨域

1.rewrite指令rewrite 指令语法:rewrite regex replacement [flag];作用域:server 、location、if功能:如果一个URI匹配指定的正则表达式regex,URI就按照 replacement 重写。rewrite 按配置文件中出现的顺序执行。可以使用 flag 标志来终止指令的进一步处理。如果 replacement 以 http:// 、 https:// 或 $ scheme 开始,将不再继续处理,这个重定向将返回给客户端。re

2020-07-22 14:44:28 1694 1

原创 mysql查看数据库和表使用空间

– 1.切换USE information_schema;– 2.查看数据库使用大小SELECT concat( round( sum(data_length / 1024 / 1024), 2 ), 'MB' ) AS DATAFROM TABLESWHERE table_schema = 'user_server';– 3.查看表使用大小SELECT concat( round( sum(data_length / 1024 / 1024),

2020-07-08 10:47:20 679 1

原创 java操作kudu 增删改查

1. 构建 maven 工程、导入依赖 <dependency> <groupId>org.apache.kudu</groupId> <artifactId>kudu-client</artifactId> <version>1.6.0</version> </dependency>2.增删改查/**

2020-05-12 20:12:14 2063

原创 There is no known eureka server; cluster server list is empty

com.netflix.discovery.shared.transport.TransportException: There is no known eureka server; cluster server list is empty at com.netflix.discovery.shared.transport.decorator.RetryableEurekaHttpClient....

2020-04-16 20:47:49 2131

转载 分布式系统理论基础 - 一致性、2PC和3PC

引言狭义的分布式系统指由网络连接的计算机系统,每个节点独立地承担计算或存储任务,节点间通过网络协同工作。广义的分布式系统是一个相对的概念,正如Leslie Lamport所说[1]:What is a distributed systeme. Distribution is in the eye of the beholder.To the user sitting at the keybo...

2020-04-09 19:37:08 462

转载 Java中Properties类

本文转载自:https://www.cnblogs.com/bakari/p/3562244.html一、Java Properties类​ Java中有个比较重要的类Properties(Java.util.Properties),主要用于读取Java的配置文件,各种语言都有自己所支持的配置文件,配置文件中很多变量是经常改变的,这样做也是为了方便用户,让用户能够脱离程序本身去修改相关的...

2020-02-28 21:30:54 436

原创 JDBC的PreparedStatement获取自增id

@Override public void insert(Account account) throws ClassNotFoundException, SQLException { account = new Account(100, 1001, new BigDecimal("1000"), new BigDecimal("10"),new BigDecimal...

2020-02-04 18:30:26 2339

原创 YAMLException: incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulate

使用hexo g出现如下错误,一顿排查,发现,是文章的文件名和文章的title有非法字符,原title为:ssh: connect to host github.com port 22: Connection timed out。修改名称即可。G:\blog> hexo gINFO Start processingERROR Process failed: _posts/ssh: c...

2020-01-30 21:53:13 3164

原创 ssh: connect to host github.com port 22: Connection timed out fatal: Could not read from remote repo

换了个wifi,git clone拉取代码就会报错,切回原来的wifi,又是可以的,反复尝试,最终确认,这个特定的wifi下,网页和命令行都不能访问github,甚是神奇。G:\mylearn\source-code>git pullssh: connect to host github.com port 22: Connection timed outfatal: Could not...

2020-01-30 20:59:00 4315 2

原创 Gradle sync failed: Cause: com.intellij.util.containers.HashMap cannot be cast to com.intellij.util.

使用idea导入gradle项目,报这个错误:Gradle sync failed: Cause: com.intellij.util.containers.HashMap cannot be cast to com.intellij.util.containers.MultiMap而且搜索不到任何解决方案,Stack Overflow也没有,求知道的大佬支招啊。...

2020-01-09 17:35:45 690 2

原创 seata教程-Seata 1.0版本整合教程

seata 1.0教程技术选型及版本spring-cloud-starter-alibaba-seataspring-cloud-alibaba:1.5.1.RELEASEspringcloud:Edgware.SR4seata-all:1.0.0springboot:1.5.4mybatis-spring-boot-starter.version:2.0.0java:jdk81...

2019-12-27 09:10:45 7988 9

转载 java中getClass()和getSuperClass()的讲解

为了讲解这个问题,我们先来看一下下面的代码:package com.yonyou.test; import java.util.Date; class Test extends Date{ private static final long serialVersionUID = 1L; public static void main(String[] args) { ...

2019-12-07 11:17:36 1433

转载 Class的isAssignableFrom方法详解

Class的isAssignableFrom方法Class类的isAssignableFrom是个不常用的方法,感觉这个方法的名字取得不是很好,所以有必要在此解析一下,以免在看源码时产生歧义,这个方法的签名如下:public native boolean isAssignableFrom(Class<?> cls);由方法签名可见是一个本地方法,即C代码编写的。以下是JDK中...

2019-12-07 09:57:24 1700

转载 Java中的bridge method(桥接方法)

java4all原创,欢迎关注摘要:Java中的bridge method(桥接方法)是什么?1.什么是桥接方法桥接方法是 JDK 1.5 引入泛型后,为了使Java的泛型方法生成的字节...

2019-12-03 09:17:00 471 1

原创 fineReport切换数据源

fineReport切换数据源:1.配置数据连接2.报表内选中

2019-12-02 13:22:17 2028 1

原创 seata整合踩坑

2019-11-26 16:44:11 [restartedMain] INFO o.s.b.a.l.AutoConfigurationReportLoggingInitializer - Error starting ApplicationContext. To display the auto-configuration report re-run your application wi...

2019-11-26 20:04:58 5301 14

原创 mysql字符串包含关系查询

例如判断bill表中,detail字段中不包含money的结果集。SELECT * FROM bill a WHERE !LOCATE(a.money,a.detail);

2019-11-25 19:38:01 1961

原创 windows下代码分支批量处理脚本

@echo.@chcp 65001@echo.@echo offchoice /C yn /M "确认执行merge操作?"if errorlevel 2 goto nif errorlevel 1 goto y:yecho.echo 从源头分支%1 echo 合并到目的分支%2echo.echo 请确认分支无误pauseecho.echo ------------...

2019-11-23 11:26:01 518 5

原创 source tree Access denied FATAL ERROR: Server sent disconnect message type 2 (protocol error) "Too

使用sourceTree时,配置好了sshkey,但是还是无法拉取和推送代码,一直报下方的错误:git -c diff.mnemonicprefix=false -c core.quotepath=false fetch originAccess deniedAccess deniedAccess deniedAccess deniedAccess deniedFATAL ERROR...

2019-11-14 20:06:46 8623

转载 Spring事务隔离级别详解

java4all,欢迎关注摘要:本文主要讲解Spring中的事务隔离级别。当两个事务对同一个数据库的记录进行操作时,那么,他们之间的影响是怎么样的呢?这就出现了事务隔离级别的概念。数据库的隔离性与并发控制有很大关系。ACID,即原子性(atomicity)、一致性(consistency)、隔离性(isolation)和持久性(durability)。...

2019-11-13 09:17:00 4542 1

原创 mysql查询数据库数据量

查询数据库数据量大小-- SHOW TABLE_SCHEMA;-- use information_schema;SELECT concat( round( sum(data_length / 1024 / 1024), 2 ), 'MB' ) AS DATAFROM TABLESWHERE table_schema = '你的数据库名字';...

2019-11-12 15:27:30 560

原创 seata中事务隔离性与锁分析

1.官方说法官方的文章中,有这么一段话:全局事务的隔离性是建立在分支事务的本地隔离级别基础之上的。在数据库本地隔离级别 读已提交 或以上的前提下,Fescar 设计了由事务协调器维护的 全局写排他锁,来保证事务间的 写隔离,将全局事务默认定义在 读未提交 的隔离级别上。我们对隔离级别的共识是:微服务场景产生的分布式事务,绝大部分应用在 读已提交 的隔离级别下工作是没有问题的。而实际上,这...

2019-10-24 20:34:14 4776 6

转载 mockito简单教程

首先添加maven依赖 <dependency> <groupId>org.mockito</groupId> <artifactId>mockito-all</artifactId> <version>1.9.5</version> <scope>t...

2019-09-29 17:14:45 634

转载 《阿里工程师的自我修养》正式发布

世界在变,技术在变,需求在变。从入门到进阶,从普通员工到主管,从知识到落地,从量的积累到质的飞跃,在不确定性的世界中,你遇到的种种难题,阿里工程师正在探索着最优解。3大思...

2019-09-24 09:17:00 779

空空如也

空空如也

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

TA关注的人

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