8 十年呵护

尚未进行身份认证

我要认证

从业10年,专注于数据治理、架构设计、以及生活导向的自媒体探索者

等级
TA的排名 5k+

基于Docker部署Mysql主从复制-实战详解篇

一、前言MySQL的主从复制详细讲解,根据网上教程也踩了很多坑,浪费了一些时间 ,特地全面的梳理下基于docker构建的mysql主从复制构建过程、遇到的问题以及提供安装包样例等希望一篇文章足以解决搭建环境:一主(192.168.26.148) 一从(192.168.26.123)Centos 7.2 64位MySQL 5.7.24Docker 18.06.1-cedocker安装包共享:mysql主从 复制共享:二、MySql主从复制实战2.1 dock...

2020-09-14 22:24:58

Java性能优化:架构设计-分布式架构设计

分布式架构设计一、前言随着微服务的流行,“分布式架构”作为高频词时常出现在开发者面前,我们是否理解分布式架构?它和微服务有什么区别呢?这一小节我们将讲解微服务和分布式架构那些事。二、概念1、分布式: 将一个大的系统划分为多个业务模块,业务模块分别部署到不同的机器上,各个业务模块之间通过接口进行数据交互。区别分布式的方式是根据不同机器不同业务。上面:service A、B、C、D 分别是业务组件,通过API Geteway进行业务访问。(注:分布式需要做好事务管理)..

2020-09-05 17:20:58

Java性能优化:架构设计-分库分表设计

分库分表设计一、前言美团外卖,每天都是几千万的订单,淘宝的历史订单总量应该百亿,甚至千亿级别,这些海量数据远不是一张表能Hold住的。事实上MySQL单表可以存储10亿级数据,只是这时候性能比较差,业界公认MySQL单表容量在1KW量级是最佳状态,因为这时它的BTREE索引树高在3~5之间。那如何解决这一问题呢?分库分表中间件有哪些以及各自的优缺点等,本小节将简单介绍下。二、问题答疑2.1、为什么要分库分表?如前言中的例子,公司业务发展越好,用户就越多,数据量越大,请求量越大,.

2020-09-05 17:17:14

Java性能优化:架构设计-搜索引擎设计

搜索引擎设计一、前言所谓搜索引擎,就是根据用户需求与一定算法,运用特定策略从互联网检索出信息反馈给用户的一门检索技术。搜索引擎应用场景在全文检索、加快检索效率方面应用广泛,而本小节主要介绍我们工作中用的比较多的两个中间件Solr和ElasticSearch二、搜索引擎组件介绍2.1 常用场景项目开发中,遇到全文检索和加快检索效率业务场景,经常会选用Solr或ES(ElasticSearch)组件来解决,那我们来简单了解下相关设计全文搜索:一般网络用户适用于全文搜索引擎。这种.

2020-09-05 17:13:49

Java性能优化:架构设计-缓存常见问题汇总

缓存常见问题汇总系统在高并发、高性能场景下正常运行,此时架构设计中缓存技术是起着至关重要的作用。缓存不仅仅是key-value的简单存取,它在具体的业务场景中,还是很复杂的,需要很强的架构设计能力。缓存架构设计不当,可能导致了系统崩溃。本下节将从缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级等概念的讲解到缓存应用介绍下缓存那些事。一、常见的缓存中间件谈到缓存,当下常用的组件有redis、memcache、EhCache、mongodb等,缓存的使用主要解决以下几类问题第一,加快用.

2020-09-05 17:09:34

Java性能优化:架构设计-流量控制设计

一、前言随着用户量日益增多,当达到一定峰值时,数以万计的流量来临,项目即时响应和顺利运行至关重要,如何设计架构才能够抗住这千万级的流量?架构设计的时候需要哪些"原则"?本章将从架构各个组件设计来剖析软件设计那些事。二、常用的架构设计"原则"我们经常听到项目需要支持高并发、高可用、自动扩容等词这些也是开发过程需要根据项目场景以及未来发展趋势首先考虑的。那这些设计原则可从不同的维度进行归纳总结,如下1.高并发:**服务拆分:**将整个项目拆分成多个子项目或者模块,分而治之,将项目进..

2020-09-05 17:05:21

Java性能优化:案例实践

一、前言之前章节对JVM性能的监控和调优都有所介绍,本小节将汇总Web应用程序开发和部署过程中经常遇到的业务场景,结合工作实战案例从数据压缩、内容缓存、会话持久、静态文件分发等多维度探索Web应用调优。二、Web应用案例汇总Web应用涉及的优化方面非常多,以下将从多个维度介绍Web应用优化的注意事项2.1前后端分离在前后端不分离架构中,所有的静态资源和业务代码统一部署在同一台服务器上。服务器接收到浏览器的请求后,进行处理得到数据,然后将数据填充到静态页面中,最终返回给浏览器。实...

2020-09-05 17:00:29

Java性能优化:数据传输优化

数据传输优化一、前言客户端与服务端经常进行着频繁的数据传输,数据传输又影响着用户体验,本小节就传输速率的优化,整理了部分注意事项。二、数据传输优化2.1 减少数据字节数:在开始的时候,采用的是xml传输,这就要使用到Serializable/Parcelable序列化以及反序列化,其传输速度之慢,基本已经被遗弃,后来又出现了JSON序列化传输,其常用工具就是GSON和fastjson,但随着时代的进步,json也体现出了局限性json的局限性主要体现在其是基于字符串的传输,在

2020-09-05 16:58:16

6.1Java性能优化:数据交换技术简介

数据交换技术简介一、前言数据交换共享在企业系统交互时应用广泛,本小节将介绍数据交换的常用方式、XML和JSON两种数据交换格式的特点,在数据交换过程中根据各自特点合理选择对应技术栈。二、数据交换方式异构数据交换指异构数据处理环境下不同数据源的互操作。随着企业之间联系日趋紧密,业务系统不断增加,不同系统之间的信息交流日益增多,异构数据交换技术的应用在企业中也非常的广泛,常用的交换技术可以汇总如下:2.1电子数据交换(EDI)方式:EDI通过统一的格式来交换企业信息,企业通过专用的数据网络来交换数据,

2020-09-05 16:47:18

5.8样例讲解(下)

样例讲解(下)一、前言承接上小节,我们将从Web应用运行的现状和调优过程继续进行样例的讲解,通过初步调优,可通过测试工具JMeter测试系统的指标提升(如吞吐量、响应时间、并发量等)二、调优前web应用运行状况上小节我们简单了解了Tomcat的调优参数,可通过简单参数设置提升系统性能。这小节我们用SpringBoot的一个项目deme为例,测试下项目性能指标。将应用程序通过java -jar…不设置任何JVM参数的情况启动,并启动JMeter,对Tomcat进行压力测试JMeter参数设置:

2020-09-05 14:59:21

5.7样例讲解(上)

实战JVM调优一、前言本小节会将结合案例,较为系统的介绍JVM调优的过程,本模块共涉及以下内容,将用两小节实战剖析整个流程:Tomcat服务器基本状况和调优方法JMeter的使用方法(性能测试工具)Web应用程序调优过程和思路二、Tomcat简介和调优Tomcat是一个免费开源的Web应用服务器,应用很广泛的Servlet容器之一,官网下载安装后下图(8.0为例)bin目录主要是用来存放该目录下存放二进制的可执行文件。这些文件主要有两大类,一类是以.sh结尾的(linux命令),另

2020-09-05 14:53:29

5.6JVM性能调优方法简介

JVM性能调优方法简介一、前言为了提升系统的性能,开发人员可以从系统的各个角度和层次对系统进行优化。除了开篇讲到的代码层面优化外,在软件架构上、JVM虚拟机层、数据库以及操作系统层面都可以通过各种方法进行调优,从而在整体上提升系统的性能。那本小计结将着重讲解下JVM虚拟机层面调优的一些方法。二、JVM调优介绍Java软件运行在JVM虚拟机上,软件开发后期对JVM调优一定程度提升了Java程序性能。作为Java软件的运行平台,JVM的各项参数将会直接影响Java程序的性能,如JVM的堆大小、垃圾回收

2020-09-05 14:49:02

5.5JVM性能监控常用方法

JVM性能监控一、前言本小节会介绍JVM性能监控,掌握几种常用的监控工具辅助我们更好的了解JVM的性能状态。生产环境中监控JVM性能,分析监控数据,可以知道何时需要JVM调优,可见监控是非常重要的。JVM的监控范围包括垃圾收集、JIT编译以及类加载。那其中具体都包含哪些?如何监控呢?我们开始探索下吧二、垃圾收集监控JVM的垃圾收集非常的重要,因为它对应用的吞吐量和延迟有着深刻的影响。重要的垃圾收集数据包括:当前使用的垃圾收集器Java堆的大小新生代和老年代的大小永久代的大小Minor

2020-09-05 14:46:47

5.4JVM垃圾收集机制

JVM垃圾收集机制一、前言上小节我们了解了常见的垃圾收集器,本小节将从内存回收、常用垃圾算法、常见面试题等维度拓展垃圾收集机制知识为什么学这些(来自刚接触者的疑惑):我们仅知道GC垃圾收集器,那何时回收内存、回收哪些内存、垃圾回收算法有哪些等等…这些问题对于想深入探索的小伙伴是不是很有“吸引力”,因为可以让我们更好的理解JVM工作原理好了,我们开始正文知识的探索吧!二、正文2.1 内存回收JVM的内存结构包括五大区域:程序计数器、虚拟机栈、本地方法栈、堆区、方法区。垃圾收集器所需关注主要

2020-09-05 14:39:16

5.3HotSpot VM 的垃圾收集器

HotSpot VM 垃圾收集器一、前言垃圾收集器是垃圾回收算法(标记-清除算法、复制算法、标记-整理算法、火车算法)的具体实现,不同商家、不同版本的JVM所提供的垃圾收集器可能会有很在差别,本文主要介绍HotSpot虚拟机中的垃圾收集器。二、HotSpot VM介绍JDK7/8后,HotSpot虚拟机所有收集器及组合(连线),如下图(A)图中展示了7种不同分代的收集器:​ Serial、ParNew、Parallel Scavenge、Serial Old、Parallel

2020-09-05 14:36:50

5.2JVM生命周期以及类加载

JVM生命周期以及类加载一、前言上小节我们对HotSpot VM做了下介绍,有了初步认识。本节介绍HotSpot VM运行时环境,让我们更好地理解运行时环境在VM中的职责和角色,也有助于了解VM运行时提供了哪些服务,在某些情况下我们只需要调节VM运行时环境的选项参数就能显著改善Java应用性能。如下图所示:VM运行时环境包含命令行选项解析、VM生命周期、类加载、字节码解释器、异常处理、同步、线程管理…本下节主要介绍下VM生命周期和类加载。二、VM生命周期谈VM生命周期不由想到人的整个过程1.

2020-09-05 14:26:55

5.1HotSpot VM 介绍

HotSpot VM 介绍一、前言对于多数开发者Java虚拟机(JVM)是个**“黑盒”**,不去过多关注它的基本架构、内存管理机制以及优化方案。因为目前来讲JVM有了很多改进,Java应用的性能基本都能达到性能要求,开发者更多精力放在业务方面。但是若要提高整个项目的性能,就需要对JVM有个基本认识。本章将围绕JVM相关知识进行讲解:如JVM内存模结构内存分配相关的参数垃圾回收器的种类以及使用方法JVM调优实例讲解…说这么多,有的小伙伴觉得"鸭梨山大"了,刚从前两章“渡劫”升迁,所以

2020-09-05 14:25:19

4.3问题总结和答疑

问题总结和答疑一个人怎样才能认识自己呢?决不是通过思考,而是通过实践。——德国剧作家、诗人、思想家歌德一、开篇前两章我们从设计模式和并发设计两方面介绍了优化方案,本小节我们汇总学习过程中遇到的问题,及时总结交流,如果您对这方面有疑惑,可以留言进行交流,好了,我们先总结下常见问题。二、问题汇总1.设计模式的学习是否必须?需要掌握到什么程度?小伙伴在工作之初就开始接触设计模式,随着工作年限增多,设计模式掌握越发重要,汇总一句:如果我们想成为一个高级软件工程师或者架构师那么设计模式学习以及掌握是

2020-09-05 14:23:51

4.2并发常用技术点汇总

并发常用技术点汇总开篇前上篇对多线程设计模式做了简单讲解,本篇我们将从:JDK多任务执行框架、JDK并发数据结构、JDK并发控制方法、锁的性能和优化、无锁的并行计算、协程等6方面汇总并发编程技术点,让小伙伴学习有个总体脉络。学习小提示:并发编程在某些高并发场景下能显著提升程序性能,本章带大家了解下并发编程方面的知识,但本小节涵盖知识点比较多,学习过程中遇到不明白知识点要及时讨论汇总。一、JDK多任务执行框架为了给并行程序开发提供更好的支持,Java提供了Thread类、Runnable接口

2020-09-05 14:12:30

4.1并发应用场景

并发应用场景思索:两个工人在砌一堵墙.有人过来问:“你们在干什么?”第一个没好气地说“没看见吗?砌墙!”第二个人笑了笑说:“我们在盖一幢高楼.”这个故事不新鲜了,小伙伴基本都听过,其实编码常被比喻成“搬砖”,和上面例子也有类似之处。枯燥的重复编码工作让我们提升受限,如何让传统重复的CRUD工作“量变产生质变”,提高代码质量,高性能运行服务整个系统?通过上章节的设计模式以及本章并发编程学习,都是从软件代码层面讲解编程需要简洁、高效、设计合理。学以致用、温故知新,希望小伙伴能够应用到项目实战当中。并

2020-09-05 14:07:26

查看更多

CSDN身份
  • 博客专家
勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 签到新秀
    签到新秀
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 学习力
    学习力
    《原力计划【第二季】》第一期主题勋章 ,第一期活动已经结束啦,小伙伴们可以去参加第二期打卡挑战活动获取更多勋章哦。
  • 博客之星-入围
    博客之星-入围
    授予每年博客之星评选结果第21-200名的用户
  • 原力新人
    原力新人
    在《原力计划【第二季】》打卡挑战活动中,成功参与本活动并发布一篇原创文章的博主,即可获得此勋章。
  • 分享小兵
    分享小兵
    成功上传3个资源即可获取