- 博客(15)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 jvm优化及垃圾回收
深入理解JVM 对于一个线上系统来说,经常性的会发生如:系统突然卡死,无法访问,甚至出现OOM。服务器的CPU负载突然升高。直接使用默认JVM参数上线,最终发现系统宕机。想要调整JVM参数,但是无从下手。。。。。对于这些问题的出现,都是因为对JVM了解的不够多而导致的。本次会主要讲解JVM相关内容。1 JVM概述1.1 概述 JVM全称Java Virtual Machine,即Java虚拟机。它本身是一个虚拟计算机。Java虚拟机基于二进制字节码执行,由一套字节码指令集、一组寄存
2020-12-15 21:15:36
846
2
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 并发编程与源码解析 (一)
并发编程 (一)1. 并发基础 Java从诞生开始,其就已经内置了对于多线程的支持。当多个线程能够同时执行时,大多数情况下都能够显著提升系统性能,尤其现在的计算机普遍都是多核的,所以性能的提升会更加明显。但是,多线程在使用中也需要注意诸多的问题,如果使用不当,也会对系统性能造成非常严重的影响。1.1 并发编程核心概念要理解并发编程,务必要先理解三个概念,分别为:原子性、可见性、有序性。区分:事务的四大特性:原子性、一致性、隔离性、持久性。2.1.1 原子性 所谓原子性即:一个或者多个操作,
2020-11-17 02:11:03
467
5
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Dubbo的远程过程调用和自定义RPC框架
Dubbo的介绍Apache Dubbo是一款高性能的Java RPC框架。其前身是阿里巴巴公司开源的一个高性能、轻量级的开源Java RPC框架,可以和Spring框架无缝集成。Dubbo提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。官网:http://dubbo.apache.org/什么是RPC?RPC全称为remote procedure call,即远程过程调用。比如两台服务器A和B,A服务器上部署一个应用,B服务器上部署一个应用,A服务器上的
2020-10-29 20:02:13
688
3
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 什么是分布式事务?常用的分布式事务的解决方案有哪些什么?各有什么优缺点?
分布式事务一、分布式事务介绍1.1 什么是事务数据库事务(简称:事务,Transaction)是指数据库执行过程中的一个逻辑单位,由一个有限的数据库操作序列构成[由当前业务逻辑多个不同操作构成]。事务拥有以下四个特性,习惯上被称为ACID特性:原子性(Atomicity):事务作为一个整体被执行,包含在其中的对数据库的操作要么全部被执行,要么都不执行。一致性(Consistency):事务应确保数据库的状态从一个一致状态转变为另一个一致状态。一致状态是指数据库中的数据应满足完整性约束。除此之外,
2020-10-18 00:22:39
4063
2
原创 MySQL性能优化
MySQL性能优化1 优化介绍 在进行优化分享之前,先请大家记住不要听信你看到的关于优化的“绝对真理”,而应该是在实际的业务场景下通过测试来验证你关于执行计划以及响应时间的假设:本次只是给大家提供一些优化方面的方向和思路,而具体业务场景的不同,使用的MySQL服务版本不同,都会使得优化方案的制定也不同。1.1 MySQL介绍 MySQL凭借着出色的性能、低廉的成本、丰富的资源,已经成为绝大多数互联网公司的首选关系型数据库。可以看到Google,Facebook,Twitter,百度,新浪,腾讯,
2020-12-23 22:42:31
432
1
原创 并发编程与源码解析 (三)
并发编程 (三)1 Fork/Join分解合并框架1.1 什么是fork/join Fork/Join框架是JDK1.7提供的一个用于并行执行任务的框架,开发者可以在不去了解如Thread、Runnable等相关知识的情况下,只要遵循fork/join开发模式,就完成写出很好的多线程并发任务。 同时其按照分而治之的思想,可以把一个大任务分割成若干个小任务,最终汇总每个小任务结果后得到大任务结果的框架。 对于Fork/Join框架的理解可以认为其由两部分组成,Fork就是把一个大任务切分为若干
2020-12-03 00:37:16
414
原创 并发编程与源码解析 (二)
并发编程 (二)1 CAS算法1.1 什么是CASCAS(Compare and Swap),即比较并替换,是用于实现多线程同步的原子操作。 所谓原子操作是指不会被线程调度机制打断的操作。这种操作一旦开始,就一直运行到结束,中间不会有任何context switch(切换到另一个线程)。 实现原子操作可以使用锁,锁机制对于满足基本的原子需求是没问题的,但synchronized是基于阻塞的锁机制,也就是当一个线程拥有锁时,访问同一资源的其他线程需要等待,直到该线程释放锁。 同时基于sy
2020-11-29 23:00:04
351
原创 常见单例模式与四大原则详解
单例模式单列模式有5种常见的写法饿汉式懒汉式双检锁静态内部类,用的最多枚举单例的四大原则:构造私有。以静态方法或者枚举返回实例。确保实例只有一个,尤其是多线程环境。4确保反序列换时不会重新构建对象。饿汉模式 public class SingleTon { private static SingleTon INSTANCE = new SingleTon(); private SingleTon() { } public stat
2020-11-06 00:49:15
506
原创 Dubbo集群容错、服务治理、线程IO模型和Dubbo原理详解
dubbo高可用1)集群容错服务路由:服务路由包含一条路由规则,路由规则决定了服务消费者的调用目标,即规定了服务消费者可调用哪些服务提供者,dubbo提供三种服务路由实现,分别为条件路由ConditionRouter、脚本路由ScriptRouter、标签路由TagRouter,这里重点分析条件路由条件路由规则的格式:[服务消费者匹配条件] => [服务提供者匹配条件]host = 10.20.153.10 => host = 10.20.153.11该条规则表示 IP 为 1
2020-11-03 18:34:31
261
1
原创 详解zookeeper分布式锁教程
案例:减少库存案例:多线程对共享数据并发操作问题;线程安全问题:同步代码块和锁机制来解决;导入junit依赖<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http:/
2020-11-02 12:55:17
312
原创 FastDFS轻量级分布式文件系统
1. FastDFS简介1.1 FastDFS体系结构FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。回顾:Dubbo工作流程FastDFS工作流程FastDFS为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,使用FastDFS很容易搭建一套高性能的文件服务器集群提供文件上传、下
2020-10-24 10:12:21
305
原创 ZooKeeper最详细的介绍
一、分布式概述早期我们使用单体架构,即所有服务部署在一台服务器的一个进程中,随着互联网的发展,逐步演进为分布式架构,多个服务分别部署在不同机器的不同进程中。二、zookeeper概述zookeeper是一个开源的分布式协调服务,提供分布式数据一致性解决方案,分布式应用程序可以实现数据发布订阅、负载均衡、命名服务、集群管理分布式锁、分布式队列等功能。zookeeper是一个开源的分布式协调服务,提供分布式数据一致性解决方案,分布式应用程序可以实现数据发布订阅、负载均衡、命名服务、集群管理分布式锁、分
2020-10-18 01:21:46
2495
1
原创 IntelliJ IDEA设置添加过滤文件或目录
在工作中,每次导入项目的时候会经常遇到下面这样的问题:但是 IntelliJ IDEA 有个很人性化的设置,那就是添加过滤文件或目录了解决方法:1.首先,点击左上角的 “File”,选择 “settings”,或直接按快捷键Ctrl+Alt+s2.选择“Editor”3.选择 “File Types”—>在右侧的忽略文件和目录(Ignore files and folders)中添加自己需要过滤的内容在右侧窗口“Ignore files and folders”一栏中添加如下忽略:
2020-09-29 20:10:24
3289
原创 IntelliJ IDEA设置自动导包方法
IntelliJ IDEA设置自动导包方法IntelliJ IDEA 有个很人性化的设置,那就是自动导包了,这对于我们来说,是个提高我们开发效率的功能1.首先,点击左上角的 “File”,选择 “settings”,或直接按快捷键Ctrl+Alt+s2.选择“Editor”3.选择 “general”4.选择“auto import” —>在右侧将空勾选[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7TbBAVyV-1601306702309)(C:\
2020-09-28 23:35:00
18044
2
原创 IntelliJ IDEA 统一设置编码为UTF-8编码
IntelliJ IDEA 统一设置编码为UTF-8编码 方法一:File->Settings->Editor->File Encodings 方法二:File->Other Settings->Default Settings ->Editor->File Encodings 方法三:1.找到项目中的.idea文件夹2.将项目中的.idea文件夹中的encodings.xml用Notepad++打开3.将文件中的编码格式改为:UTF-8
2020-09-26 12:47:54
592
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人