• 博客(170)
  • 收藏
  • 关注

原创 UI/UE设计师全链路学习路线图,适合小白找工作学习【云图智联】

现在各行各业竞争压力越来越大,UI设计师,岂能只满足于只会美工,每一个职位都应该发展为,自己能干个工作室的状态,技多不压身,在任何情况下,都能生存才是王道!!! 我对UI设计师所涉及的学习,工作,行业等都做了详细介绍,希望可以帮助到对UI感兴趣的人,我还在整理UI学习资源,希望你可以持续关注我,一个过来人就应该不断分享。回答目录: UI设计师需要学习那些内容 (能力储备决定你的职场生命力) 为什么要成为UI设计师 (请不要盲目) UI设计师的市场前景 (了解市场,自然有方向.

2020-06-22 08:59:33 1880

原创 一次SQL查询优化原理分析(900W+数据,从17s到300ms)

有一张财务流水表,未分库分表,目前的数据量为9555695,分页查询使用到了limit,优化之前的查询耗时16 s 938 ms (execution: 16 s 831 ms, fetching: 107 ms),按照下文的方式调整SQL后,耗时347 ms (execution: 163 ms, fetching: 184 ms);操作:查询条件放到子查询中,子查询只查主键ID,然后使用子查询中确定的主键关联查询其他的属性字段;原理:减少回表操作;--优化前SQLSELECT各种字...

2020-07-29 17:34:00 260

原创 InnoDB一棵B+树可以存放多少行数据?

一个问题?InnoDB一棵B+树可以存放多少行数据?这个问题的简单回答是:约2千万。为什么是这么多呢?因为这是可以算出来的,要搞清楚这个问题,我们先从InnoDB索引数据结构、数据组织方式说起。我们都知道计算机在存储数据的时候,有最小存储单元,这就好比我们今天进行现金的流通最小单位是一毛。在计算机中磁盘存储数据最小单元是扇区,一个扇区的大小是512字节,而文件系统(例如XFS/EXT4)他的最小单元是块,一个块的大小是4k,而对于我们的InnoDB存储引擎也有自己的最小储存单元——页(Page)

2020-07-29 17:27:54 362

原创 MySQL:分库分表与分区的区别和思考

一.分分合合说过很多次,不要拘泥于某一个技术的一点,技术是相通的。重要的是编程思想,思想是最重要的。当数据量大的时候,需要具有分的思想去细化粒度。当数据量太碎片的时候,需要具有合的思想来粗化粒度。1.1 分很多技术都运用了分的编程思想,这里来举几个例子,这些都是分的思想 集中式服务发展到分布式服务 从Collections.synchronizedMap(x)到1.7ConcurrentHashMap再到1.8ConcurrentHashMap,细化锁的粒度的同时依旧保...

2020-07-29 17:23:14 329

原创 文件句柄?文件描述符?傻傻分不清楚

概述在实际工作中会经常遇到一些bug,有些就需要用到文件句柄,文件描述符等概念,比如报错: too many open files, 如果你对相关知识一无所知,那么debug起来将会异常痛苦。在linux操作系统中,文件句柄(包括Socket句柄)、打开文件、文件指针、文件描述符的概念比较绕,而且windows的文件句柄又与此有何关联和区别?这一系列的问题是我们不得不面对的。笔者通过翻阅相关资料,并采用了一些demo来验证相关观点。如果文中有理解偏差,欢迎指正。这里先笼统的将一下笔者对上面...

2020-07-29 17:13:38 922

原创 MySQL:互联网公司常用分库分表方案汇总

一、数据库瓶颈不管是IO瓶颈,还是CPU瓶颈,最终都会导致数据库的活跃连接数增加,进而逼近甚至达到数据库可承载活跃连接数的阈值。在业务Service来看就是,可用数据库连接少甚至无连接可用。接下来就可以想象了吧(并发量、吞吐量、崩溃)。1、IO瓶颈第一种:磁盘读IO瓶颈,热点数据太多,数据库缓存放不下,每次查询时会产生大量的IO,降低查询速度 -> 分库和垂直分表。第二种:网络IO瓶颈,请求的数据太多,网络带宽不够 -> 分库。2、CPU瓶颈第一种:SQL问题,如SQL中

2020-07-29 17:00:40 243

原创 我们公司是如何把项目中的2100个if-else彻底干掉的!

翻译自:Nicklas Millard的文章《Better Software Without If-Else》,参考:https://medium.com/swlh/5-ways-to-replace-if-else-statements-857c0ff19357设计更好的软件,替换If-Else的5种方法。入门到高级示例让我直接说这句话:If-Else通常是一个糟糕的选择。它导致设计复杂,代码可读性差,并且可能导致重构困难。但是,If-Else已成为事实上的代码分支解决方案,这.

2020-07-29 16:53:02 256

原创 Spring Security学习:05.初识Web应用安全的Java配置,3.x升级到4.x【云图智联】

新的安全问题不断出现,Spring Security也必须不断升级。作为一个主版本号修改的发行版本,Spring Security团队有机会来做一些主动的改变: Spring Security支持更多的默认安全行为 最小化信息泄露 移除不建议使用的API 要更详细的查看如果从3.x升级到4.x,请参考: Migrating from Spring Security 3.x to 4.x (XML Configuration) Migrating from Spr

2020-07-27 16:02:48 268

原创 Spring Security学习:04.Spring Security 4.1 的新特性

案例代码因为 Spring Security 是一个开源项目,我们强烈建议你check out github上的代码。你将可以看到所有的案例应用以及如何使用最新的 Spring Security API来构建应用。在进行调试的时候,有源码也是非常有帮助的。异常栈的追踪不再是黑盒,你可以直接定位引起问题的那一行代码来查看到底发生了什么。对于一个项目而言,源代码是其终极文档,而且通常是发现事情是如何进行的最简单的地方。要获得这个项目的源码,使用如下的git命令gitclonehttps://gi..

2020-07-27 15:57:29 257

原创 Spring Security学习:03.Spring Security模块【云图智联】

在Spring3.0中,Spring Security将代码划分到不同的jar中,这使得不同的功能模块和第三方依赖显得更加清晰。如果你使用maven来构建项目,下面可能是你将会加入到pom.xml中的模块。即使你不使用maven,我们也建议你查阅一下pom.xml文件,从而了解其对第三方的依赖和版本问题。此外,一个比较好的想法是查看案例应用中引入的类库。Core - spring-security-core.jar包含核心的authentication和authorization的类和接口,远...

2020-07-27 15:20:56 273

原创 Spring Security学习:02.项目中引入Spring Security【云图智联】

使用Maven基于maven的spring security的最少依赖如下所示:pom.xml<dependencies> <!--...otherdependencyelements...--> <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring...

2020-07-27 15:03:38 318

原创 Spring Security学习:01.Spring Security前世今生【云图智联】

声明:本文档基于Spring Security4.1的官方文档进行翻译,在官方文档的基础之上,添加一些源码解析的内容。因为有源码解读部分的内容,以及本人对内容安排原因,教程的顺序可能与官方文档略微有所不同。官方网址:http://projects.spring.io/spring-security/文档地址:http://docs.spring.io/spring-security/site/docs/4.1.x/reference/htmlsingle/Spring Security.

2020-07-27 14:59:47 262 1

原创 spring学习:多数据源深入解析,包括使用场景【云图智联】

1 多数据源的典型使用场景在实际开发中,经常可能遇到在一个应用中可能需要访问多个数据库的情况。以下是两种典型场景:1 业务复杂数据分布在不同的数据库中,笔者见过一个相对比较复杂的业务,一个业务中同时操作了9个库。2 读写分离一些规模较小的公司,没有专门的中间件团队搭建读写分离基础设施,因此需要业务开发人员自行实现读写分离。这里的架构与上图类似。不同的是,在读写分离中,主库和从库的数据库是一致的(不考虑主从延迟)。数据更新操作(insert、update、delete)都是在.

2020-07-23 17:46:20 628

原创 spring学习:BeanFacotory介绍与学习【云图智联】

1、Spring工厂类结构图2、BeanFactory 接口 和 ApplicationContext 接口区别 ?ApplicationContext接口继承BeanFactory接口 ,Spring 核心工厂是BeanFactory ,BeanFactory 采取延迟加载,第一次getBean时才会初始化Bean。ApplicationContext是对BeanFactory扩展,提供了更多功能: 国际化处理 事件传递 Bean自动装配 ...

2020-07-23 17:07:17 267

原创 spring学习:依赖注入(DI)急速入门【云图智联】

DI:Dependency Injection 依赖注入,在Spring框架负责创建Bean对象时,动态的将依赖对象注入到Bean组件。1、修改上一节的HelloServiceImplpublicclassHelloServiceImplimplementsHelloService{ privateStringinfo;//没有初始化,spring会自动将配置的属性值赋给这个变量 publicvoidsetInfo(Stringinfo){ ...

2020-07-23 16:53:15 228

原创 spring学习:控制反转( Ioc)急速入门,看图理解【云图智联】

2.1 什么是控制反转(IOC:Inverse of Control)IOC反转控制,实际上就是将对象的创建权交给了Spring,程序员无需自己手动实例化对象。可以看出来工厂的作用就是用来解耦合的,而在使用spring的过程中,spring就是充当这个工厂的角色。IOC反转控制,实际上就是将对象的创建权交给了Spring,程序员无需自己手动实例化对象。2.2、Spring编程—IOC程序实现2.2.1建立spring工程(基于maven)pom.xml<dependen

2020-07-23 15:46:24 268

原创 spring学习:spring与springmvc父子容器【云图智联】

1.spring和springmvc父子容器概念介绍在spring和springmvc进行整合的时候,一般情况下我们会使用不同的配置文件来配置spring和springmvc,因此我们的应用中会存在至少2个ApplicationContext实例,由于是在web应用中,因此最终实例化的是ApplicationContext的子接口WebApplicationContext。如下图所示:上图中显示了2个WebApplicationContext实例,为了进行区分,分别称之为:Servlet Web

2020-07-22 15:18:43 270

原创 RocketMQ学习教程:10.RocketMQ多端口监听【云图智联】

本文主要介绍RocketMQ的多端口监听机制,通过本文,你可以了解到Broker端源码中remotingServer和fastRemotingServer的区别,以及客户端配置中,vipChannelEnabled的作用。1 多端口监听在RocketMQ中,可以通过broker.conf配置文件中指定listenPort配置项来指定Broker监听客户端请求的端口,如果不指定,默认监听10911端口。listenPort=10911不过,Broker启动时,实际上会监听3个端口:10909、1

2020-07-22 15:02:49 2183

原创 RocketMQ学习教程:09.深入理解NameServer【云图智联】

1 NameServer介绍Name Server 是专为 RocketMQ 设计的轻量级名称服务,具有简单、可集群横吐扩展、无状态,节点之间互不通信等特点。整个Rocketmq集群的工作原理如下图所示: 可以看到,Broker集群、Producer集群、Consumer集群都需要与NameServer集群进行通信:Broker集群:Broker用于接收生产者发送消息,或者消费者消费消息的请求。一个Broker集群由多组Master/Slave组成,Master可写可读,S...

2020-07-22 14:42:04 791 2

原创 RocketMQ学习教程:08.消费者Rebalance机制【云图智联】

本文深入的分析了RocketMQ的Rebalance机制,主要包括以下内容: Rebalance必要的元数据信息的维护 Broker协调通知机制; 消费者/启动/运行时/停止时Rebalance触发时机 单个Topic的Rebalance流程 分区分配策略 RocketMQ与Kafka Rebalance机制的区别, 文章篇幅较长,感兴趣的用户可以先收藏,再阅读。1 Rebalance简介 Rebalance(再均衡)机制指的...

2020-07-22 14:00:54 755

原创 RocketMQ学习教程:07.RocketMQ消息查询【云图智联】

在实际开发中,经常需要排查一条消息是否成功发送到底层MQ中,或者查看MQ中消息的内容,以及如何将消息发送给指定的/所有的消费者组重新消费。本文对RocketMQ提供到的查询机制和背后原理进行深入的介绍。文章主要包括4个部分: 消息查询介绍:介绍消息查询中使用到的Message Key 、Unique Key、Message Id 的区别 消息查询工具:分别介绍命令行工具、管理平台、客户端API这三种工具的详细用法,以及如何让消费者重新消费特定的消息。 核心实现原理:介绍Messag

2020-07-21 15:12:14 1444

原创 RocketMQ学习教程:06.延迟消息【云图智联】

延迟消息是实际开发中一个非常有用的功能,本文第一部分从整体上介绍秒级精度延迟消息的实现思路,在第二部分结合RocketMQ的延迟消息实现,进行细致的讲解,点出关键部分的源码。第三步介绍延迟消息与消息重试的关系。1 延迟消息介绍基本概念:延迟消息是指生产者发送消息发送消息后,不能立刻被消费者消费,需要等待指定的时间后才可以被消费。场景案例:用户下了一个订单之后,需要在指定时间内(例如30分钟)进行支付,在到期之前可以发送一个消息提醒用户进行支付。一些消息中间件的Broker端内置了延迟消息支持

2020-07-21 14:07:04 339 1

原创 任意时间延时消息原理讲解:设计与实现

场景延时消息即消息发送后并不立即对消费者可见,而是在用户指定的时间投递给消费者。比如我们现在发送一条延时1分钟的消息,消息发送后立即发送给服务器,但是服务器在1分钟后才将该消息交给消费者。这种延时消息有一些什么应用场景呢?比如在电商网站上我们购物的时候,下单后我们没有立即支付,这个时候界面上往往会提醒你如果xx分钟还未支付订单将被取消。对于这么一个功能如果不使用延时消息,那我们就需要使用类似定时任务的功能,比如每分钟我们跑一个定时任务对订单表进行扫描,将未支付订单扫出,如果...

2020-07-21 13:51:41 346

原创 RocketMQ学习教程:05.Message消息对象【云图智联】

在RocketMQ中,生产者使用Message对象表示一条消息,本文对Message的属性和构造方法进行详细的讲解。1 Message属性Message的定义如下所示:org.apache.rocketmq.common.message.MessagepublicclassMessageimplementsSerializable{ privateStringtopic; privateintflag; privateMap<Strin...

2020-07-21 13:45:51 2234

原创 RocketMQ学习教程:04.集群搭建【云图智联】

本文首先会对rocketmq集群四种部署模式进行介绍,包括:单主模式,多master模式,多master多slave模式异步复制,多master多slave模式同步复制,对比各种模式的优缺点。接着将每一种模式部署成一个集群,因此总共有4个集群,由一个NameServer集群进行管理。最后会介绍常见部署错误问题的解决方案。1 部署模式介绍一个完整的RocketMQ集群由NameServer集群,Broker集群,Producer集群,Consumer集群组成。本节主要介绍NameServer集群,Br

2020-07-21 13:38:11 354

原创 RocketMQ学习教程:03.消息投递模式【云图智联】

消息中间件( Message Oriented Middleware,简称MOM)在企业开发中变得越来越重要。本文介绍消息中间件中的四种消息投递模型,主要是介绍模型的核心特性,以及不同模型之前的区别。这四种模型分别是: PTP模型 Pub/Sub模型 Partition模型 Transfer模型(笔者自己起的名字) 其中PTP模型和Pub/Sub模型在JMS(Java Message Service)规范中有定义,消息中间件ActiveMQ就实现了JM...

2020-07-20 16:37:27 313

原创 RocketMQ学习教程:02.为什么要使用消息中间件【云图智联】

对于很多消息中间件的初学者,一个比较困惑的地方在于,为什么要使用消息中间件。本文通过介绍消息中间件的两大特性:异步结构、流量削峰,来对这个问题进行解答。1 异步解耦当今微服务架构盛行,从传统的巨石应用拆分为多个微服务。在进行服务化之后,网页或者手机客户端发起的业务请求需要将后端不同的服务进行组合调用来实现业务处理。在《企业IT架构转型》一书中提到,目前淘宝的订单创建流程需要调用超过200个服务,如下图所示:如果所有业务逻辑均是在一个进程中顺序执行的方式,完成超过200次的远程服务调用,就算所

2020-07-20 16:06:11 147

原创 《Web前端技术H5+CSS3》笔记--第六章 盒子模型[云图智联]

所有HTML元素可以看作盒子,在CSS中,"box model"这一术语是用来设计和布局时使用。CSS盒模型本质上是一个盒子,封装周围的HTML元素,它包括:边距,边框,填充,和实际内容。盒模型允许我们在其它元素和周围元素边框之间的空间放置元素。1.1 盒子模型在学习盒子模型之前,先来看一个生活中的例子。假如墙上排列着几幅画。对于每幅画来说,都有一个边框,在英文中称为border;每个画框中,画和边框通常都会有一定的距离,这个距离称为内边距,在英文中称为padding;每一幅画间也不是紧挨着

2020-07-20 15:58:28 486

原创 《Web前端技术H5+CSS3》笔记--第四章 初识CSS3[云图智联]

1.1 CSS概述1.1.1 什么是CSSHTML 标签原本被设计为用于定义文档内容。通过使用 h1、p、table 这样的标签,HTML 的初衷是表达“这是标题”、“这是段落”、“这是表格”之类的信息。同时文档布局由浏览器来完成,而不使用任何的格式化标签。由于两种主要的浏览器(Netscape 和 Internet Explorer)不断地将新的 HTML 标签和属性(比如字体标签和颜色属性)添加到 HTML 规范中,创建文档内容清晰地独立于文档表现层的站点变得越来越困难。为了解决这个问题

2020-07-20 15:52:20 507

原创 《Web前端技术H5+CSS3》笔记--第三章 表单[云图智联]

1.1 表单概述1.1.1 表单在网页中的应用表单在网页中应用比较广泛,如申请电子邮件,用户需要首先填写注册信息,然后才能提交申请。又如希望登录邮箱收发电子邮件,也必须在登陆页面中输入用户名、密码才能进入邮箱,这就是典型的表单应用。通俗的讲,表单就是一个将用户信息组织起来的容器。将需要用户填写的内容放置在表单容器中,当用户单击“提交”按钮时,表单会将数据统一发送给服务器。表单的应用比较常见,典型的应用场景如下:1.登录,注册:登录时填写用户名,密码,注册信息时填写用户名电话等个人信息;...

2020-07-20 15:50:00 1499

原创 《Web前端技术H5+CSS3》第二章 HTML基础[云图智联]

1.1列表1.1.1列表及其应用1. 什么是列表简单来说,列表就是信息资源的一种展示形式。它可以使信息结构化和条理化,并以列表的样式显示出来。2. 列表的分类及其应用无序列表,语法:<ul><li>第一项</li><li>第二项</li><li>第三项</li></ul>有序列表,语法:<ol> <li>第一项</l...

2020-07-20 15:43:34 312

原创 RocketMQ学习教程:01.RocketMQ简介【云图智联】

1 RocketMQ的前世今生RocketMQ是一款阿里巴巴开源的消息中间件,在2017年9月份成为Apache的顶级项目,是国内首个互联网中间件在 Apache 上的顶级项目。RocketMQ的起源受到另一款消息中间件Kafka的启发。最初,淘宝内部的交易系统使用了淘宝自主研发的Notify消息中间件,使用Mysql作为消息存储媒介,可完全水平扩容。为了进一步降低成本和提升写入性能,需要在存储部分可以进一步优化,2011年初,Linkin开源了Kafka这个优秀的消息中间件,淘...

2020-07-20 15:38:24 194

原创 《Web前端技术H5+CSS3》笔记--第一章 HTML基础[云图智联]

1.1 HTML简介1.1.1 HTML:Hyper Text Markup Language(超文本标记语言)在学习使用HTML之前,大家经常会问,什么是HTML?HTML是用来描述页面的一种语言,它是一种超文本标记语言,也就是说,HTML不是一种编程语言,仅是一种标记语言。 HTML由一套标记标签组成,在制作网页时,HTML使用标记标签来描述网页。1.1.2 发展史1.1.3 HTML5的优势HTML5自正式推出以来,就以一种惊人的速度被迅速推广着,各主流浏览器对于HTM.

2020-07-17 10:45:27 848

原创 一口气说出 4 种分布式一致性 Session 实现方式【云图智联】

免费学习视频欢迎关注云图智联:https://e.yuntuzhilian.com/前言公司有一个 Web 管理系统,使用 Tomcat 进行部署。由于是后台管理系统,所有的网页都需要登录授权之后才能进行相应的操作。起初这个系统的用的人也不多,为了节省资源,这个系统仅仅只是单机部署。后来随着用的人越来越多,单机已经有点扛不住了,于是我决定再部署了一台机器。这时后端系统有两台服务,于是我们使用 Nginx 作为反向代理,整体架构图如下:这个架构图想必大家应该比较熟悉,现在主流的 Web

2020-07-17 10:17:25 158

原创 在线开发工具,方便程序员工作【云图智联】

网上可以找到开发社区贡献的大量工具,下文列出了我最喜欢的一些工具,这些工具给我的工作带来了许多便利。1. EnjoyCSS老实说,虽然我之前做过一些前端开发,但我并不擅长 CSS。当我陷入困境时,EnjoyCSS 是我的大救星。EnjoyCSS 提供了一个简单的交互界面,帮助我设计元素,然后自动输出相应的 CSS 代码。EnjoyCSS 可以输出 CSS、LESS、SCSS 代码,并支持指定需要支持哪些浏览器及其最低版本。开发简单页面时用起来比较方便,但不太适合复杂一点的前端项目(这类项目

2020-07-17 09:47:38 162

原创 2020年7月程序员工资及7月语言排行趋势揭秘【云图智联】

1.2020年7月TIOBE编程语言排行榜TIOBE 2020 年 7 月编程语言排行榜已经公布,排名前十的分别是:C,Java,Python,C++,C#,Visual Basic, JavaScript ,R,PHP,Swift。(数据来源:TIOBE 2020 年 7 月编程语言排行榜)2.2020年7月PYPL全球编程语言排行榜2020年7月 PYPL 全球编程语言流行度排行榜火热出炉前三甲仍为 Python、Java、Javascript。(数据来源:2020年7月..

2020-07-17 09:33:51 262

原创 MySQL死锁系列-常见加锁场景分析【云图智联】

免费学习视频欢迎关注云图智联:https://e.yuntuzhilian.com/本文我们就从原理走向实战,分析常见 SQL 语句的加锁场景。了解了这几种场景,相信小伙伴们也能举一反三,灵活地分析真实开发过程中遇到的加锁问题。如下图所示,数据库的隔离等级,SQL 语句和当前数据库数据会共同影响该条 SQL 执行时数据库生成的锁模式,锁类型和锁数量。下面,我们会首先讲解一下隔离等级、不同 SQL 语句 和 当前数据库数据对生成锁影响的基本规则,然后再依次具体 SQL 的加锁场景。隔离等级

2020-07-17 09:03:49 155

转载 阿里程序员常用的 15 款开发者工具,看看和自己一样吗

免费学习视频欢迎关注云图智联:https://e.yuntuzhilian.com/一、Java 线上诊断工具 Arthas 二、IDE 插件 Cloud Toolkit 三、混沌实验注入工具 ChaosBlade 四、Java 代码规约扫描插件 五、应用实时监控工具 ARMS 六、静态开源站点搭建工具 Docsite 七、Android 平台上的秒级编译方案 Freeline 八、性能测试工具 PTS 九、云效开发者工具 KT 十、架构可视化工具 AHAS 十一、数据处理工具

2020-07-16 09:42:20 256

原创 一个优秀的Vue团队代码规范是什么样子的?

免费学习视频欢迎关注云图智联:https://e.yuntuzhilian.com/规范与每个团队和个人都是息息相关的,因为其影响的不只是只是代码的维护和理解成本,严重的时候是会影响成员开发的心情一个团队的编码规范、git规范等,并没有绝对的最优解,心里要清楚明白没有银弹,规范是为了让团队统一,提高代码阅读性、降低代码维护成本等,本文是记录一些在项目code review中常见的规范,仅供参考。一、JS部分1. 和渲染无关的数据vue中data的数据默认便会进行双向数据绑定,若是将大

2020-07-16 09:40:43 151

原创 优秀的Python代码编辑器,别说你没用过

免费学习视频欢迎关注云图智联:https://e.yuntuzhilian.com/前言集成开发环境(IDE)允许开发人员用不同的编程语言运行代码,特别地,python IDE实际上是一种IDE,专门让您测试、运行和编辑用python语言编写的代码。当涉及到一个很大的项目时,在IDE上工作对开发人员来说会更简单,并且在一些特定的项目中拥有专门的工具也会有所帮助。市场上有很多选择,包括开源的和付费的IDE。在本文中,我们将列出3个您可以获得的免费的python IDE。Atom优点:

2020-07-16 09:18:58 234

空空如也

空空如也

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

TA关注的人

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