- 博客(921)
- 资源 (21)
- 收藏
- 关注
转载 exe4j打包java的jar成exe(window版)
概述:java是需要运行环境的,如果在没有配置jdk环境电脑那怎么运行?自带jre环境。为了安全问题一般会将jar打包成exe文件,jar是可以被反编译的;其二打包exe方便后期打包成安装包(InnoSetup工具可以胜任,这里不涉及)关于防止反编译:exe运行时可能在windows运行目录获取内部jar,所以为了防止反编译自定义classLoader,将重要的class加密读取,这样可以防...
2019-12-13 16:23:05 530
转载 MySQL分区和分表
MySQL分区和分表一、概念1.为什么要分表和分区?日常开发中我们经常会遇到大表的情况,所谓的大表是指存储了百万级乃至千万级条记录的表。这样的表过于庞大,导致数据库在查询和插入的时候耗时太长,性能低下,如果涉及联合查询的情况,性能会更加糟糕。分表和表分区的目的就是减少数据库的负担,提高数据库的效率,通常点来讲就是提高表的增删改查效率。2.什么是分表?分表是将一个大表按照一定的规...
2019-11-28 12:25:30 143
转载 分库分表需要考虑的问题及方案
分库分表的基本思想Sharding的基本思想就要把一个数据库切分成多个部分放到不同的数据库(server)上,从而缓解单一数据库的性能问题。不太严格的讲,对于海量数据的数据库,如果是因为表多而数据多,这时候适合使用垂直切分,即把关系紧密(比如同一模块)的表切分出来放在一个server上。如果表并不多,但每张表的数据非常多,这时候适合水平切分,即把表的数据按某种规则(比如按ID散列)切分到多个...
2019-11-21 11:39:52 370
转载 数据库的分区分库分表,水平切分与垂直切分
在整理项目的时候,突然发现对数据库的水平切分与垂直切分比较模糊,特此学习!参考:https://www.cnblogs.com/bluebluesky/articles/6413831.html1、数据库分区就是把同一个数据库里的表放到不同的服务器上,负载均衡,但是在用户上来看,只有一个服务器2、数据库分表把一张表按照一定的规则分解成不同的实体表。比如垂直划分和水平划...
2019-11-21 11:31:46 876
转载 微服务设计、拆分原则-AFK
一、AKF拆分原则 业界对于可扩展系统架构设计有一个朴素的理念:通过加机器就可以解决容量和可用性问题。 这一理念在云计算概念疯狂流行的今天,得到了广泛的认可,对于一个规模迅速增长的系统而言,容量和性能问题当然是首当其冲的。但随着时间的向前,系统规模的增长,除了面对性能与容量的问题外,还要面对功能与模块数量上的增长带来的系统复杂性问题以及业务的变化带来的提供差异化服务的问题。 然而...
2019-11-21 11:20:04 3604
转载 CSDN怎么转载别人的博客
在参考“如何快速转载CSDN中的博客”后,由于自己不懂html以及markdown相关知识,所以花了一些时间来弄明白怎么转载博客,以下为转载CSDN博客步骤和一些知识小笔记。 参考博客原址:http://blog.csdn.net/bolu1234/article/details/5186...
2019-11-19 10:30:55 80
转载 Spring Cloud Nacos 作为注册和配置中心 + Spring Cloud Gateway作为网关 + Sentinel 作为熔断服务
因为要整合gateway所以(版本的选择为spring官方的推荐搭配)springcloud 的版本选择 Finchley.SR2springboot 的版本选择 2.0.6.RELEASE这里nacos的starter选择用以下版本<nacos.version>0.2.1.RELEASE</nacos.versio...
2019-11-19 10:27:47 1276 1
转载 httpclient使用不当产生大量CLOSE_WAIT的解决过程
案例1:近日,我们的k8s+rancher的docker环境出现了一个很奇怪的问题,在没有进行任何操作的情况下,我们的web跑着跑着就突然挂了。导致我们自动化用例全部执行失败。于是我和罗仔开始了以下的排查过程。首先就是在我们的web上查看日志,发现没有任何抛错。我们的自动化用例开启后,一直再向服务端发起请求,但是服务端返回给客户端的响应都是异常,说明服务端压根没有收到请求。于是我们chec...
2019-11-18 14:40:46 7296
转载 docker存储volume
#环境 centos7.4 , Docker version 17.12.0-cedocker volume创建、备份、nfs存储#docker volume数据存容器内,删容器即销毁全部数据要保留的数据(数据持久化),需存储在容器外docker volume是文件或目录,mount到docker容器中使用docker volume bind muount #挂载任意目录或文件 ...
2019-11-13 16:45:19 129
转载 [Docker]清理Docker占用的磁盘空间,迁移 /var/lib/docker 目录所解决的问题
清理空间:1. Docker System命令在《谁用光了磁盘?Docker System命令详解》中,我们详细介绍了Docker System命令,它可以用于管理磁盘空间。docker system df命令,类似于Linux上的df命令,用于查看Docker的磁盘使用情况:dockersystemdfTYPETOTAL...
2019-11-07 10:34:15 7349
转载 [Docker]docker启动服务故障排查-Linux与docker文件系统不匹配
环境: os:=====>centos 7.4 docker:=====>1.13.1 docker-compose:=====>1.23.2 image:=====>php:7.2-apache image:=====>mysql:5.7问题表现:使用同一个docker 镜像启动服务,一部分节点启动服务正常,一部分...
2019-11-06 23:18:06 1144
转载 常量池、字符串常量池的整理
由于之前研究了一下JVM的内存划分,对里面方法区的常量池一知半解,于是想要探究一下先看这篇 写得比较清晰https://blog.csdn.net/tophawk/article/details/78704074(jdk1.8版本)https://blog.csdn.net/youyou1543724847/article/details/52337257以下内容有点儿乱,还未整理...
2019-09-26 12:56:36 196
转载 分布式事务[7]柔性事务:可靠消息最终一致性
柔性事务:可靠消息最终一致性消息发送一致性:是指产生消息的业务动作与消息发送的一致。也就是说,如果业务操作成功,那么由这个业务操作所产生的消息一定要成功投递出去(一般是发送到kafka、rocketmq、rabbitmq等消息中间件中),否则就丢消息。柔性事务、可靠消息最终一致性、异步确保性下面用伪代码进行演示消息发送和投递的不可靠性:1、先进行数据库操作,再发送消息...
2019-09-05 10:04:01 315
转载 分布式事务[6]柔性事务 :TCC两阶段补偿型
6.0 柔性事务 :TCC两阶段补偿型2018-02-05 03:12:0422,77112 TCC方案是可能是目前最火的一种柔性事务方案了。关于TCC(Try-Confirm-Cancel)的概念,最早是由Pat Helland于2007年发表的一篇名为《Life beyond Distributed Transactions:an Apostate’s Opinion》...
2019-09-05 10:03:13 420
转载 浅谈,分布式事务与解决方案
分布式事务与主流解决方案之理论篇前言 分布式事务就是指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上。简单的说,就是一次大的操作由不同的小操作组成,这些小的操作分布在不同的服务器上,且属于不同的应用,分布式事务需要保证这些小操作要么全部成功,要么全部失败。本质上来说,分布式事务就是为了保证不同数据库的数据一致性。产生原因...
2019-09-05 10:02:58 197
转载 分布式事务:不过是在一致性、吞吐量和复杂度之间,做一个选择
这是一个开撕的话题,我经历过太多的关于分布式事务的需求:“有没有简单的方案,像使用数据库事务那样,解决分布式数据一致性的问题”。特别是微服务架构流行的今天,一次交易需要跨越多个“服务”、多个数据库来实现,传统的技术手段,已经无法应对和满足微服务情况下这些复杂的场景了。针对微服务下的交易业务如何保障数据一致性,本文尽量做到理论结合实践,将我们在实际产品中用到的分布式事务实现机制,和大家扒一扒,希望能...
2019-09-05 10:02:41 164
转载 Spring Cloud分布式事务终极解决方案探讨
开源项目我们利用消息队列实现了分布式事务的最终一致性解决方案,请大家围观。可以参考GithubCoolMQ源码,项目支持网站:http://rabbitmq.org.cn,最新文章或实现会更新在上面二 前言阿里2017云栖大会《破解世界性技术难题!GTS让分布式事务简单高效》中,阿里声称提出了一种破解世界性难题之分布式事务的终极解决方案,无论是可靠性、还是处理速率都领先于市面上所有...
2019-09-05 10:01:48 1322
转载 详细解读 Github 上发布仅一个月就获得4k+ star 的分布式事务解决方案
导读:阿里分布式事务开源项目Fescar,自1月9日发布第一个版本以来,便受到了开发者的极大关注,目前收获的star数已超过4700,本文将详细解读这款分布式事务解决方案,希望对您有所帮助。FESCAR on GitHubhttps://github.com/alibaba/fescar更新:FESCAR 已更新为Seata微服务倡导将复杂的单体应用拆分为若干...
2019-09-05 10:01:33 701
转载 源码阅读:全方位讲解LongAdder
高并发下计数功能最好的数据结构就是LongAdder与DoubleAdder,低并发下效率也非常优秀,这是我见过的java并发包中设计的最为巧妙的类,从软硬件方面将java并发累加操作优化到了极致,所以应该我们应该弄清楚它的每一行代码为什么要这样做,它俩的实现大同小异,下面以LongAdder类为例介绍下它的实现。Striped64类public class LongAdder extend...
2019-09-05 10:00:50 206
转载 jdk1.8 LongAdder源码学习
LongAdder是jdk8新增的用于并发环境的计数器,目的是为了在高并发情况下,代替AtomicLong/AtomicInt,成为一个用于高并发情况下的高效的通用计数器。高并发下计数,一般最先想到的应该是AtomicLong/AtomicInt,AtmoicXXX使用硬件级别的指令 CAS 来更新计数器的值,这样可以避免加锁,机器直接支持的指令,效率也很高。但是AtomicXXX中的 CAS ...
2019-09-05 09:57:29 96
转载 Java中的Unsafe
Java和C++语言的一个重要区别就是Java中我们无法直接操作一块内存区域,不能像C++中那样可以自己申请内存和释放内存。Java中的Unsafe类为我们提供了类似C++手动管理内存的能力。Unsafe类,全限定名是sun.misc.Unsafe,从名字中我们可以看出来这个类对普通程序员来说是“危险”的,一般应用开发者不会用到这个类。Unsafe类是"final"的,不允许继承。且构造函数...
2019-09-05 09:44:06 295
转载 分布式事务[4] 柔性事务:最大努力通知
5.0 柔性事务:最大努力通知2018-02-05 02:51:055,9560最大努力通知型( Best-effort delivery)是最简单的一种柔性事务,适用于一些最终一致性时间敏感度低的业务,且被动方处理结果 不影响主动方的处理结果。典型的使用场景:如银行通知、商户通知等。最大努力通知型的实现方案,一般符合以下特点: 1、不可靠消息:业务活动主动方,...
2019-09-04 16:21:40 487
转载 分布式事务[3]3.0 JTA规范
3.0 JTA规范2018-02-05 02:31:404,9081JTA规范下载地址:http://download.oracle.com/otn-pub/jcp/jta-1.1-spec-oth-JSpec/jta-1_1-spec.pdfJTA规范事务模型Java事务API(JTA:Java Transaction API)和它的同胞Java事务服务(JTS...
2019-09-04 16:19:21 161
转载 分布式事务[2]mysql 对XA事务的支持
2.0 mysql 对XA事务的支持2018-02-05 02:20:504,9941MySQL 从5.0.3开始支持XA分布式事务,且只有InnoDB存储引擎支持。MySQL Connector/J 从5.0.0版本之后开始直接提供对XA的支持。需要注意的是,在DTP模型中,mysql属于资源管理器(RM)。而一个完整的分布式事务中,一般会存在多个RM...
2019-09-04 16:17:15 326
转载 分布式事务[1]分布式事务概述
1.0 分布式事务概述2018-02-05 02:05:2617,34181、事务简介 事务(Transaction)是访问并可能更新数据库中各种数据项的一个程序执行单元(unit)。在关系数据库中,一个事务由一组SQL语句组成。事务应该具有4个属性:原子性、一致性、隔离性、持久性。这四个属性通常称为ACID特性。 原子性(atomicity):个事务是...
2019-09-04 16:14:48 161
转载 CAP与BASE理论
1.经典的分布式系统理论-CAP 2000年7月,加州大学伯克利分校的Eric Brewer教授在ACM PODC会议上提出CAP猜想。Brewer认为在设计一个大规模的分布式系统时会遇到三个特性:一致性(consistency)、可用性(Availability)、分区容错(partition-tolerance),而一个分布式系统最多只能满足其中的2项。2年后,麻省理工学院的Seth...
2019-09-04 16:12:31 156
转载 分布式事务-初步理解及解决方案
0Github1 面试题分布式事务了解吗?你们如何解决分布式事务问题的?2 考点分析只要聊到做了分布式系统,必问分布式事务,若你对分布式事务一无所知的话,确实很坑,起码得知道有哪些方案,一般怎么来做,每个方案的优缺点是什么。现在面试,分布式系统成了标配,而分布式系统带来的分布式事务也成了标配.你做系统肯定要用事务,那你用事务的话,分布式系统之后肯定要用分布式事务.先不...
2019-09-04 15:51:12 122
转载 分布式锁的三种实现方式及对比分析(代码实现细节)
一、问题介绍日常工作中很多场景下需要用到分布式锁,例如:任务运行(多个节点同一时刻同一个任务只能在一个节点上运行(分片任务除外)),交易请求接收(前端交易请求发送时,可能由于两次提交,后端需要识别出这是一个交易)等,怎么样实现一个分布式锁呢?一般有:zookeeper、redis、database等三种实现方式。二、分布式锁实现2.1、zookeeper2.1.1、原理zook...
2019-09-04 15:23:06 401
转载 分布式锁解决并发的三种实现方式
在很多场景中,我们为了保证数据的最终一致性,需要很多的技术方案来支持,比如分布式事务、分布式锁等。有的时候,我们需要保证一个方法在同一时间内只能被同一个线程执行。在单机环境中,Java中其实提供了很多并发处理相关的API,但是这些API在分布式场景中就无能为力了。也就是说单纯的Java Api并不能提供分布式锁的能力。所以针对分布式锁的实现目前有多种方案:分布式锁一般有三种实现方式:1. ...
2019-09-04 15:21:23 292
转载 Java8内存模型—永久代(PermGen)和元空间(Metaspace)
从jdk开始,就开始了永久代的转移工作,将譬如符号引用(Symbols)转移到了native heap;字面量(interned strings)转移到了java heap;类的静态变量(class statics)转移到了java heap。但是永久在还存在于JDK7中,直到JDK8,永久代才完全消失,转而使用元空间。而元空间是直接存在内存中,不在java虚拟机中的,因此元空间依赖于内存大小。当...
2019-09-04 09:48:16 147
转载 JDK8 JVM内存模型
正文内存是非常重要的系统资源,是硬盘和CPU的中间仓库及桥梁,承载着操作系统和应用程序的实时运行JVM内存布局规定了Java在运行过程中内存申请、分配、管理的策略,保证了JVM的高效稳定运行不同的JVM对于内存的划分方式和管理机制存在着部分差异结合JVM虚拟机规范,来探讨经典的JVM内存布局运行时内存:1 Program Counter Register (程序计数寄存...
2019-09-04 08:52:53 5259 1
转载 Reactive Programming 带来哪些显著的编程变化
前言作为一名 Java 开发人员,尤其是 Java 服务端工程师,对于 Reactive Programming 的概念似乎相对陌生。随着 Java 9 以及 Spring Framework 5 的相继发布,Reactive 技术逐渐开始被广大从业人员所注意,我作为其中一员,更渴望如何理解 Reactive Programming,以及它所带来的哪些显著的编程变化,更为重要的是,怎么将其用于...
2019-09-03 14:21:12 178
转载 Dubbo 3.0 预览版的新特性和新功能
Dubbo 自 2011 年 10 月 27 日开源后,已被许多非阿里系的公司使用,其中既有当当网、网易考拉等互联网公司,也不乏中国人寿、青岛海尔等大型传统企业。更多用户信息,可以访问:https://github.com/apache/incubator-dubbo/issues/1012自去年 12 月开始,Dubbo 3.0 便已正式进入开发阶段,并备受社区和广大 Dubbo ...
2019-09-03 14:15:45 1126
转载 CAP原理分析[4]ACID和CAP的详尽比较
ACID和CAP的详尽比较 事务机制ACID和CAP理论是数据管理和分布式系统中两个重要的概念,很不巧,这两个概念中都有相同的“C”代表 "Consistency"一致性,但是实际上是完全不同的意义,下面是比较两个概念的不同之处。什么是ACID? 事务的定义和实现一直随着数据管理的发展在演进,当计算机越来越强大,它们就能够被用来管理越来越多数据,最终,多个用户可以在一台计算机上共...
2019-08-30 10:37:24 203
转载 CAP原理分析[3]总结-大数据之分布式系统CAP理论
分布式系统传统的系统架构形式是纵向扩展,所谓纵向扩展就是所说的“堆硬件”,1G内存不够,就再加上1G内存,依此类推。但是,这样做有一个坏处,就是提升的空间有限,不够灵活。随着硬件资源的越发便宜,再加上若干个节点组成一个集群已经可以从理论层面走向实践。通过集群的方式来构成我们私人的“超级计算机”理论上是没有问题的。集群之间需要进行通信,通信的方式就采用TCP通信形式,虽然TCP通信能够保证可...
2019-08-30 10:30:41 275
转载 CAP原理分析[2]维基百科 解释
前言众所周知,CAP理论是架构师在设计分布式系统过程中,处理数据一致性问题时必须考虑的基石级理论(圣经级的,V)。大意是说,在分布式网络分区环境中,数据的一致性、可用性和分区容忍性三者之间,至多只能保证两者,无法三者同时保证。对于CAP理论,个人刚接触时感觉很容易理解,不就是讲的一个在分布式环境下鱼和熊掌不能兼得的问题吗?诚然,如果从直观上泛泛而谈,的确不难,即在多节点的网络环境中,当要求数据强...
2019-08-30 10:27:32 742
转载 CAP原理分析[1]简易理解
分布式系统(distributed system)正变得越来越重要,大型网站几乎都是分布式的。分布式系统的最大难点,就是各个节点的状态如何同步。CAP 定理是这方面的基本定理,也是理解分布式系统的起点。本文介绍该定理。它其实很好懂,而且是显而易见的。下面的内容主要参考了 Michael Whittaker 的文章。一、分布式系统的三个指标1998年,加州大学的计算机科学家 Er...
2019-08-30 10:15:42 127
转载 AtomicLong与LongAdder对比
前言《阿里巴巴 Java开发手册》读后感—拥抱规范,远离伤害:https://blog.csdn.net/f641385712/article/details/84930279写这篇博文的原因,是因为我今天在看阿里的规范手册的时候(记录在了这里:《阿里巴巴 Java开发手册》读后感—拥抱规范,远离伤害),发现了有一句规范是这么写的:如果是count++操作,使用如下类实现: Atomi...
2019-08-28 17:29:40 1013
转载 剖析Disruptor:为什么会这么快?(三)揭秘内存屏障(validate关键词解析)
主题是什么?我写这个系列的博客主要目的是解析Disruptor是如何工作的,并深入了解下为什么这样工作。理论上,我应该从可能准备使用disruptor的开发人员的角度来写,以便在代码和技术论文[Disruptor-1.0.pdf]之间搭建一座桥梁。这篇文章提及到了内存屏障,我想弄清楚它们到底是什么,以及它们是如何应用于实践中的。什么是内存屏障?它是一个CPU指令。没错,又一次,我们在讨...
2019-08-28 16:59:53 367
转载 java中关键字volatile的作用
volatile让变量每次在使用的时候,都从主存中取。而不是从各个线程的“工作内存”。volatile具有synchronized关键字的“可见性”,但是没有synchronized关键字的“并发正确性”,也就是说不保证线程执行的有序性。也就是说,volatile变量对于每次使用,线程都能得到当前volatile变量的最新值。但是volatile变量并不保证并发的正确性。=======...
2019-08-28 16:41:07 191
博客下载工具
2017-06-22
Java调用C#com方法
2013-08-13
Oracle创建删除用户、角色、表空间、导入导出数据库命令行方式总结.pdf
2013-05-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人