自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

年少有伟

公众号 : 「Java半颗糖」 专注IT知识分享,期待你的关注,保证你收获满满。

  • 博客(314)
  • 论坛 (1)
  • 收藏
  • 关注

转载 如何用形象的描述大数据生态?Hadoop、Hive、Spark 之间是什么关系?

大数据本身是个很宽泛的概念,Hadoop生态圈(或者泛生态圈)基本上都是为了处理超过单机尺度的数据处理而诞生的。你可以把它比作一个厨房所以需要的各种工具。锅碗瓢盆,各有各的用处,互相之间又有重合。你可以用汤锅直接当碗吃饭喝汤,你可以用小刀或者刨子去皮。但是每个工具有自己的特性,虽然奇怪的组合也能工作,但是未必是最佳选择。大数据,首先你要能存的下大数据。传统的文件系统是单机的,不能横跨不同的机器。HDFS(Hadoop Distributed FileSystem)的设计本质上是为了大量的数据能横...

2020-12-01 17:29:55 7

转载 线程并发redisson使用遇到的坑

背景因为业务上的一个购买需求,需要对库存进行行程保护,防止超卖的出现(我们不是电商公司),经过调研,最终选择使用Redission来进行控制。主要因为Redission丰富的API,开源框架,已经被广泛应用于实际生产环境。问题描述当我们使用Ression中Lock.lock()方法之后,如果存在线程并发常见情况下,会出现如下异常:java.lang.IllegalMonitorStateException: attempt to unlock lock, not locked by curr

2020-12-01 13:20:26 4

转载 【Java基础知识】条件语句的多层嵌套问题优化

前言《阿里巴巴开发手册》中,有关于多 if-else 分支和嵌套的建议和解决方案,如下:那么本文介绍几种优化方案,给大家提供一些思路卫语句《重构--改善既有代码的设计》 书籍中有有如下描述:如果某个条件极其罕见,就应该单独检查该条件,并在条件为真时立即从函数中返回。这样的单独检查常常被称为 “卫语句”。使用卫语句,我们可以对上面的示例修改为: public String getFactoryName(int type) { // 条件检查 .

2020-11-23 17:56:52 55

转载 【深入理解JVM】JVM-卡表(Card Table)

我们知道,JVM在进行垃圾收集时,需要先标记所有可达对象,然后再清除不可达对象,释放内存空间。那么,如何快速的找到所有可达对象呢?最简单粗暴的实现,就是每次进行垃圾收集时,都对整个堆中的所有对象进行扫描,找到所有存活对象。逻辑是简单,但性能比较差。简单粗暴的实现方式,通常都是不可取的。那JVM是如何实现快速标记可达对象的?答案是GC Roots。简介现代JVM,堆空间通常被划分为新生代和老年代。由于新生代的垃圾收集通常很频繁,如果老年代对象引用了新生代的对象,那么,需要跟踪从老年代...

2020-11-22 15:20:23 50

转载 【深入理解JVM】深入理解Java虚拟机

阅读《深入理解Java虚拟机》后,收获很多,在阅读过程记录了笔记前言首先,java程序可以“一次编写,到处运行”就是因为有Java虚拟机这个东西作为容器。Java虚拟机作为一个中间层,向上接受由我们编写的代码生成的字节码,向下给机器提供可以被直接执行的目标代码,这就有了Java的“平台无关性”的基础。通过这个定义我们知道,一切可以编译出字节码的语言都可以获得这种“平台无关性”,也就是说像一些类Java语言比如Groovy Scala等,因为用他们也可以生成字节码,所以也可以用Java虚拟机来执行,也

2020-11-22 14:21:58 17

原创 【并发编程】变量可见性线程安全解密

一、什么是并发中变量可见性问题问题1:变量分为哪几种?

2020-11-21 08:39:17 5

转载 【RabbitMQ】RabbitMQ的基础

一、基本原理 RabbitMQ 消息确认机制 以及 原理解析 RabbitMQ 延迟任务(限时订单) 原理 以及代码 实战

2020-11-19 11:04:32 19

原创 【深入理解JVM】常见经典问题梳理

相关问题不通过 GC ROOT,仍使用引用计数方式,怎么解决它的循环引用问题?快速访问可以通过强、弱引用计数结合方式解决引用计数的循环引用问题,实际上 Android 的智能指针就是这样实现的。...

2020-11-12 20:53:54 19

原创 【Redis】布隆过滤器

一、Redis 布隆过滤器场景分析假如我们在使用新闻客户端看新闻时,它会给我们不停的推荐新的内容,而它每次推荐时,都要去重,以去掉那些我们已经看过的内容。那么问题来了,新闻客户端推荐系统是如何实现推送去重的?你可能会想到:服务器已经记录了用户看过的所有历史记录,当推荐系统推送新闻时可以从每个用户的历史记录里进行筛选,以过滤掉那些已经存在的记录。问题是,当用户量很大、每个用户看过的新闻又很多的情况下,使用这种方式,推荐系统的去重工作在性能上能跟的上吗?实际上,如果历史记录存储在关系数据库里,去重就

2020-11-07 12:29:26 79

转载 【阿里云】服务器常见问题记录

问题汇总使用yum命令的时候若出现 Could not resolve host: mirrors.cloud.aliyuncs.com; Name or service not known" 解决

2020-10-24 17:05:29 25

转载 【Redis】redis的主从复制和哨兵模式实践

常见问题参考文章redis的主从复制和哨兵模式

2020-10-16 17:31:54 19

转载 【MySQL】MySQL主存复制

相关文章 主从复制

2020-10-14 17:01:43 23

原创 【SQLServer】SQLServer 使用记录

一、SQL中常见用法1.1 常用函数(1)SQLServer 日期函数大全1.2SQL中Merge的用法(1)根据与源表联接的结果,对目标表执行插入、更新或删除操作(2) 使用Merge的场景:数据同步 数据转换 基于源表对目标表做Insert,Update,Delete操作(3) 案例 相关文章 在本地编译的存储过程中实现MERGE功能 ...

2020-10-14 09:27:52 21

原创 【Linux】揭露定时任务真相

常见问题一、Linux/Unix层面1.1二、JVM层面2.1Timer类2.2ScheduledExecutor2.3Quartz2.4Spring boot task三、分布式定时任务层面(多JVM) 把分散的,可靠性差的计划任务纳入统一的平台,并实现集群管理调度和分布式部署的一种定时任务的管理方式。叫做分布式定时任务。3.1分布式任务调度平台XXL-JOB大众点评员工徐雪里于2015年发布的分布式任务调度平台,是一个轻量级分布式任...

2020-10-13 10:35:28 52

原创 【公众号】运营管理

一、运营人员(1)常见问题 运营者微信号怎么登录微信公众平台

2020-10-06 22:25:36 38

原创 【SpringBoot】SpringBoot和Bean的加载流程

在上一篇文章中,我一步步分析了使用 BeanFactory 获取并创建 Bean 的过程,并且解释了 Spring 是如何解决循环依赖的? 【SpringBoot】SpringBoot和循环依赖 一、相关知识补充1.1类继承结构 DefaultSingletonBeanRegistry 负责单例的注册 AbstractAutowireCapableBeanFactory 自动装配工厂1.2 创建Bean核心过程简化 ...

2020-10-06 00:34:57 65

原创 【SpringBoot】SpringBoot和循环依赖

一句话说清楚Spring解决的循环依赖是单例情况下通过属性注入和接口注解注入的方式,而构造方式注入和多例的bean注入循环依赖并未解决相关文章一、案例分析经典问题:Spring是如何解决循环依赖的?1.1循坏依赖场景(1)用户服务中引用商品服务public class UserService { private GoodsService goodsService;}(2)商品服务中引用用户服务public class GoodsService { pr.

2020-10-05 22:59:05 39

原创 【Python】Python 基础

一、前置条件准备(1)pycharm配置 Pycharm中设置py文件头部注释信息 #!/usr/bin/env python# -*- coding: utf-8 -*-# @Time : ${DATE} ${HOUR}:${MINUTE}# @Author : Lynn# @Site : ${SITE}# @File : ${NAME}.py# @Software: ${PRODUCT_NAME}二、基本语法入门(1)基础语法...

2020-10-05 14:26:54 33

原创 【好用的工具】GoLand配置GoLang开发环境

一、简介常用的go开发编辑器liteIDE 运行速度快,代码提示特别好用,但是调试功能不太好用 VSCode 调试功能好用,但是代码提示非常一般,写起来特别费劲 GoLand 各项功能非常完善,但是是收费的,并且占用资源较多我询问了比较有经验的同事和朋友,大家一致推荐使用GoLand,关于激活码方面网上搜索一下基本都可以解决。官方下载地址:https://www.jetbrains.com/zh-cn/go/下载下来直接安装,激活请网上解决。...

2020-10-04 14:52:23 89

原创 【好用的工具】PyCharm配置Python3开发环境

一、简介PyCharm 的下载地址:http://www.jetbrains.com/pycharm/download/#section=windows

2020-10-04 14:44:07 52

原创 【好用的工具】视频剪辑工具

一、喵影工厂 1.1 使用教程:https://miao.wondershare.cn/help/articles.html相关文章万兴喵影(喵影工厂)好用吗?二、PRAE和Pr同属Adobe公司,都属于专业级的视频剪辑软件,但是AE稍有不同,是一款属于制作特效的辅助软件,一般用于从事设计和视频特技的机构,是个做特效特别强大的后期软件。精通AE,你也能剪出漫威大片!官网:https://www.adobe.com/cn/creativecloud/video.html2.1...

2020-10-04 12:44:50 35

原创 【架构设计解决方案】分库分表

一、分库分表—扩容分库、分表、垂直拆分和水平拆分 分库:因一个数据库支持的最高并发访问数是有限的,可以将一个数据库的数据拆分到多个库中,来增加最高并发访问数。 分表:因一张表的数据量太大,用索引来查询数据都搞不定了,所以可以将一张表的数据拆分到多张表,查询时,只用查拆分后的某一张表,SQL 语句的查询性能得到提升。 分库分表优势:分库分表后,承受的并发增加了多倍;磁盘使用率大大降低;单表数据量减少,SQL 执行效率明显提升。 水平拆分:把一个表的数据拆分到多个数据库,每个数据库中的表...

2020-10-04 02:14:11 170

原创 【架构设计解决方案】分布式缓存

在高频访问数据库的场景中,我们会在业务层和数据层之间加入一套缓存机制,来分担数据库的访问压力,毕竟访问磁盘 I/O 的速度是很慢的。比如利用缓存来查数据,可能5ms就能搞定,而去查数据库可能需要 50 ms,差了一个数量级。而在高并发的情况下,数据库还有可能对数据进行加锁,导致访问数据库的速度更慢。分布式缓存我们用的最多的就是 Redis了,它可以提供分布式缓存服务。一、Redis 缓存1.1. Redis 数据丢失哨兵机制Redis 可以实现利用哨兵机制实现集群的高可用。那什么十哨兵.

2020-10-04 01:58:26 22

转载 【SpringBoot】Spring Boot 部署与服务配置

Spring Boot 其默认是集成web容器的,启动方式由像普通Java程序一样,main函数入口启动。其内置Tomcat容器或Jetty容器,具体由配置来决定(默认Tomcat)。当然你也可以将项目打包成war包,放到独立的web容器中(Tomcat、weblogic等等),当然在此之前你要对程序入口做简单调整。项目构建我们使用Maven或Gradle,这将使项目依赖、jar包管理、以及打包部署变的非常方便。一、内嵌 Server 配置Spring Boot将容器内置后,它通过配置文件的方式

2020-10-03 21:09:31 27

原创 【Docker】Docker基础入门

一、Docker简介Docker 是一个开源的应用容器引擎,基于Go 语言并遵从 Apache2.0 协议开源。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。Docker 从 17.03 版本之后分为 CE(Community Edition: 社区版) 和 EE(Enterprise ..

2020-10-03 12:53:02 33 2

原创 【故障分析】JAVA线上故障排查全套路

线上故障主要会包括cpu、磁盘、内存以及网络问题,而大多数故障可能会包含不止一个层面的问题,所以进行排查时候尽量四个方面依次排查一遍。同时例如jstack、jmap等工具也是不囿于一个方面的问题的,基本上出问题就是df、free、top 三连,然后依次jstack、jmap伺候,具体问题具体分析即可。一、CPU一般来讲我们首先会排查cpu方面的问题。cpu异常往往还是比较好定位的。原因包括业务逻辑问题(死循环)、频繁gc以及上下文切换过多。而最常见的往往是业务逻辑(或者框架逻辑)导致的,可以使用js

2020-10-02 16:50:54 133

转载 【好用的工具】Linux终端操作工具

一、全能终端神器——MobaXterm现今软件市场上有很多终端工具,比如:secureCRT、Putty、telnet,等等。secureCRT其实也是一款很强大的终端工具,良许也使用过它很长时间,但是,它毕竟是收费软件,在公司里不允许使用。而且在良许自己的电脑里一量输入大写,整个界面就乱了(原因未知,未深究),这是直接导致良许放弃它的原因。而Putty,它非常小巧,而且免费,在我们公司大量使用。但是良许不喜欢它的原因是它真的不好用,不支持标签,开多个会话的话就需要开多个窗口,窗口切换也很不方便,因

2020-10-02 14:34:50 63

原创 【虚拟容器】Idea 打包项目实现Docker镜像部署服务器

常见问题Docker系列文章 docker运行spring boot 包镜像出现no main manifest attribute问题 一、Docker开启远程访问[root@izwz9eftauv7x69f5jvi96z docker]# vim /usr/lib/systemd/system/docker.service#修改ExecStart这行ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/

2020-09-30 17:40:24 44

原创 【Redis】Redis解决方案

常见问题 宕机后,Redis如何实现快速恢复?

2020-09-29 09:07:12 22

原创 【MySQL】MySQL之Explain执行计划

常见问题Explain完整总结 Explain执行计划 官网 我的笔记在 select 语句之前增加 explain 关键字,MySQL 会在查询上设置一个标记,执行查询时,会返回执行计划的信息,而不是执行这条SQL(如果 from 中包含子查询,仍会执行该子查询,将结果放入临时表中)数据准备:CREATE TABLE course (cid INT (3), cname VARCHAR (20), tid INT (3));CREATE TABLE teacher (tid INT

2020-09-28 11:00:11 28

原创 【好用的工具】Navicat Premium 操作手册

常见功能 Navicat Premium 操作MySql 取消自动提交

2020-09-27 10:55:58 28

原创 【架构设计解决方案】分布式消息队列

常见问题消息积压[ LRU、TTL、死信队列(表)] 消息丢失[开启事务、持久化、Ack手动确认] 消息重复消费

2020-09-21 21:18:26 20

转载 【Spring】Spring 事务管理

1、事务执行的时候是在前面开启事务,后面关闭事务,结束事务有两种方式,一种是正常的提交事务,一种是出现问题回滚事务。spring事务默认只有在抛出unchecked Exception才会回滚UncheckedException包括error和runtimeException派生出的所有子类2、什么时候才用事务?对数据库的数据进行批量或连表操作时,为了保证数据的一致性和正确性,我们需要添加事务管理机制进行管理。当对数据库的数据进行操作失败时,事务管理可以很好保证所有的数据回滚到原来的数据,如果

2020-09-21 16:50:38 31

原创 【Dubbo】Dubbo基础知识

直奔主题,先看一下官方的说明

2020-09-20 13:54:05 31

转载 【架构设计解决方案】单点登录SSO设计与实现

什么是单点登录前言:是时候了解一下SSO相关的知识了,本篇主要是概念篇,发现网上两篇不错的文章,简单整合了一下,原文链接:https://www.cnblogs.com/Java3y/p/10877465.htmlhttps://www.cnblogs.com/EzrealLiu/p/5559255.html1、什么是SSO?SSO( Single Sign-On ),中文意即单点登录,单点登录是一种控制多个相关但彼此独立的系统的访问权限,拥有这一权限的用户可以使用单一的ID和密码访

2020-09-20 10:40:33 27

转载 【服务隔离解决方案】谈谈怎么做服务隔离

引言OK,如下图所示那显而易见,做服务隔离的目的就是避免服务之间相互影响。毕竟谁也不能说自己的微服务百分百可用,如果不做隔离,一旦一个服务出现了问题,整个系统的稳定性都会受到影响! 因此,做服务隔离是很有必要的。那么怎么隔离呢?有如下两种方式 - 按*种类隔离* - 按*用户隔离*OK,接下来开始细说这两种方式!正文种类隔离其实按照服务种类隔离要从两个纬度来说:即服务提供方和服务调用方! 假设我们一个系统有三个服务:订单...

2020-09-20 10:24:39 22

转载 【架构设计解决方案】SaaS多租户数据隔离的三种方案

另附一片论文,关于SaaS和多租户下的数据存储与扩容:http://www.360doc.com/document/12/0823/16/10636892_231933452.shtml一、多租户在数据存储上存在三种主要的方案,分别是:1. 独立数据库这是第一种方案,即一个租户一个数据库,这种方案的用户数据隔离级别最高,安全性最好,但成本较高。  优点:    为不同的租户提供独立的数据库,有助于简化数据模型的扩展设计,满足不同租户的独特需求;如果出现故障,恢复数据比较简单。  缺点:   

2020-09-20 10:06:59 52

转载 【架构设计解决方案】RBAC权限系统分析、设计与实现

转载请备注来源:《RBAC权限系统分析、设计与实现》|shuwoom.com最近,因为项目上需要设计实现一个权限管理模块,所以专门整理总结了RBAC的一些知识。目前,使用最普遍的权限管理模型正是RBAC(Role-Based Access Control)模型,这篇文章也主要是介绍基于RBAC的权限管理系统,我会从RBAC是什么、如何设计RBAC两部分来介绍。一、RBAC是什么1、RBAC模型概述RBAC模型(Role-Based Access Control:基于角色的访问控制)...

2020-09-20 09:58:45 32

原创 【Redis】分布式锁

分布式锁实现:redis、zookeeper、redLock、redission等常见问题:锁超时(保证原子性),可重入(ThreadLocal+引用计数)

2020-09-19 12:21:32 41

原创 【MySQL】MySQL索引

MySQL数据结构和数据库设计范式

2020-09-15 22:55:16 35

空空如也

软件工程专业适不适合考研

发表于 2019-01-26 最后回复 2019-01-28

空空如也

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

TA关注的人 TA的粉丝

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