自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

IT哈哈的博客

公众号:IT哈哈

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

转载 高可用架构之限流降级

一、服务等级协议我们常说的N个9,就是对SLA的一个描述。SLA全称是ServiceLevel Agreement,翻译为服务水平协议,也称服务等级协议,它表明了公有云提供服务的等级以及质量。例如阿里云对外承诺的就是一个服务周期内集群服务可用性不低于99.99%,如果低于这个标准,云服务公司就需要赔偿客户的损失。1.1 做到4个9够好了吗对互联网公司来说...

2019-09-30 14:43:10 329

转载 MySQL的索引结构为什么使用B+树?

前言在MySQL中,无论是Innodb还是MyIsam,都使用了B+树作索引结构(这里不考虑hash等其他索引)。本文将从最普通的二叉查找树开始,逐步说明各种树解决的问题以及面临的新问题,从而说明MySQL为什么选择B+树作为索引结构。一、二叉查找树(BST):不平衡二叉查找树(BST,Binary Search Tree),也叫二叉排序树,在二叉树的基础上需要满足:...

2019-09-29 18:33:02 240

转载 面试官:你了解乐观锁和悲观锁吗?

前言乐观锁和悲观锁问题,是出现频率比较高的面试题。本文将由浅入深,逐步介绍它们的基本概念、实现方式(含实例)、适用场景,以及可能遇到的面试官追问,希望能够帮助你打动面试官。一、基本概念乐观锁和悲观锁是两种思想,用于解决并发场景下的数据竞争问题。 乐观锁:乐观锁在操作数据时非常乐观,认为别人不会同时修改数据。因此乐观锁不会上锁,只是在执行更新的时候判断一下在此期间别人是...

2019-09-27 11:06:30 102

转载 面试官最爱的volatile关键字

在Java相关的岗位面试中,很多面试官都喜欢考察面试者对Java并发的了解程度,而以volatile关键字作为一个小的切入点,往往可以一问到底,把Java内存模型(JMM),Java并发编程的一些特性都牵扯出来,深入地话还可以考察JVM底层实现以及操作系统的相关知识。下面我们以一次假想的面试过程,来深入了解下volitile关键字吧!面试官: Java并发这块了解的怎么样?说说...

2019-09-26 09:20:14 132

转载 Java CAS 原理剖析

在Java并发中,我们最初接触的应该就是synchronized关键字了,但是synchronized属于重量级锁,很多时候会引起性能问题,volatile也是个不错的选择,但是volatile不能保证原子性,只能在某些场合下使用。像synchronized这种独占锁属于悲观锁,它是在假设一定会发生冲突的,那么加锁恰好有用,除此之外,还有乐观锁,乐观锁的含义就是假设没有发生冲突,那么我正...

2019-09-25 07:31:05 166

转载 RPC框架的简单实现

一、RPC理论1.什么是RPC① RPC简介RPC(Remote Procedure Call Protocol)-远程过程调用协议。通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。它假定某种传输协议的存在,如TCP,UDP,为通信程序之间携带信息数据。在OSI网络通信模型中,RPC跨越了传输层和应用层,因分布式,微服务等而兴起其实简单点来理解,就是比如有一个应...

2019-09-23 14:20:35 564

转载 2019最新整理JAVA面试题附答案

包含的模块:本文分为十九个模块,分别是:Java 基础、容器、多线程、反射、对象拷贝、Java Web 、异常、网络、设计模式、Spring/Spring MVC、Spring Boot/Spring Cloud、Hibernate、MyBatis、RabbitMQ、Kafka、Zookeeper、MySQL、Redis、JVM如下图所示:共包含 208 道面试题,本文的宗旨是...

2019-09-21 19:04:24 797

转载 权限系统设计

前言权限管理是所有后台系统的都会涉及的一个重要组成部分,主要目的是对不同的人访问资源进行权限的控制,避免因权限控制缺失或操作不当引发的风险问题,如操作错误,隐私数据泄露等问题。目前在公司负责权限这块,所以对权限这块的设计比较熟悉,公司采用微服务架构,权限系统自然就独立出来了,其他业务系统包括商品中心,订单中心,用户中心,仓库系统,小程序,多个APP等十几个系统和终端1.权限模型迄今为...

2019-09-17 14:18:24 1424

转载 后端必备 Nginx 配置

防盗链location~*\.(gif|jpg|png)${#只允许192.168.0.1请求资源valid_referersnoneblocked192.168.0.1;if($invalid_referer){rewrite^/http://$host/logo.png;}}根据文件类型设置过...

2019-09-16 16:01:20 314

转载 Redis的最常被问到知识点总结

1.什么是redis?   Redis 是一个基于内存的高性能key-value数据库。2.Reids的特点     Redis本质上是一个Key-Value类型的内存数据库,很像memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据flush到硬盘上进行保存。因为是纯内存操作,Redis的性能非常出色,每秒可以处理超过 10万次读写操作,是已知性能最...

2019-09-15 14:13:59 191

转载 为什么选择B+树作为数据库索引结构?

背景首先,来谈谈B树。为什么要使用B树?我们需要明白以下两个事实:【事实1】不同容量的存储器,访问速度差异悬殊。以磁盘和内存为例,访问磁盘的时间大概是ms级的,访问内存的时间大概是ns级的。有个形象的比喻,若一次内存访问需要1秒,则一次外存访问需要1天。所以,现在的存储系统,都是分级组织的。最常用的数据尽可能放在更高层、更小的存储器中,只有在当前层找不到,才向更低层、更大的存储器中...

2019-09-12 17:04:31 148

转载 java 代理模式:静态代理与动态代理

最近在研究SpringAOP,当然要学习AOP就要知道这么健硕、强大的功能的背后究竟隐藏着怎样不可告人的“秘密”?接下来就是查阅了许多资料详细的研究了一下Java的代理模式,感觉还是非常非常重要的,我们作为一个有“内涵的”程序员就更应该掌握啦!(本文需要细心、带有审视的目光来甄别其中的内容)在学习代理模式的时候我首先要提出几个问题:1、什么是代理模式?举个例子吧:...

2019-09-11 09:25:56 150

转载 Java 8 In Action

函数式编程函数式编程给我的直观感受: 让方法参数具备行为能力,以使方法能够从容地应对频繁的业务需求变更。(替代接口的匿名实现类的编写) 简化代码的编写,并增强代码的可读性 引言——让方法参数具备行为能力假设你现在是一个农场主,你采摘了一筐苹果如下:Apple现在需要你编写一个方法,挑选出箩筐中颜色为绿色的苹果,于是你轻而易举地写了如下代...

2019-09-10 10:50:12 1026

转载 一千行 MySQL 学习笔记

以下为本人初学 MySQL 时做的笔记,也从那时起没再更新过,但还是囊括了基本的知识点,有时还翻出来查查。/* 启动MySQL */net start mysql/* 连接与断开服务器 */mysql -h 地址 -P 端口 -u 用户名 -p 密码/* 跳过权限验证登录MySQL */mysqld --skip-grant-tables-- 修改root密码密码加密...

2019-09-09 15:06:14 99

转载 SpringBoot2.x(十七)Actuator监控实战

什么是actuator官方介绍Spring Boot包含许多附加功能,可帮助您在将应用程序投入生产时监视和管理应用程序。 可以选择使用HTTP端点或JMX来管理和监控您的应用程序,自动应用于审计,健康和指标收集;一句话:springboot提供用于监控和管理生产环境的模块官方文档用来干嘛有时我们需要编写一个定时任务不断查看某应用程序的系统情况(如内存占用率、磁盘占用率、...

2019-09-08 08:49:01 338

转载 SpringBoot2.x(十六)响应式编程webflux和服务器端主动推送SSE

何为响应式想象一个排队买奶茶的场景:场景一客户们买奶茶需要到奶茶店前台排队,前台服务人员收到客户请求(如买一杯柠檬奶茶)后通知后台去做,后台做完后给前台,前台再给客户,该客户消费完成,轮到下一位客户购买场景二客户们买奶茶只需将请求报给前台服务人员(如买一杯巧克力味奶茶),前台服务人员马上打出一张付费票据给客户并告诉客户可在周围稍作等待(可能是十分钟左右),奶茶做好后会通过喇叭通知客...

2019-09-07 17:46:30 4240 1

转载 SpringBoot2.x(十五)多环境配置

SpringBoot对多环境配置的支持对于多环境配置,你也许有过相关的了解,如 maven profile,目的就在于方便应用程序在运行环境对不同配置文件的切换。有时我们在本机上开发,连接的是本机的测试数据库(dev);而部署到测试(test)或生产环境(pro),连接的可能又是另外一个数据库。这时我们需要定义多个配置文件(如 application.properties,applicat...

2019-09-07 00:07:42 320

转载 SpringBoot2.x(十四)RocketMQ介绍和整合

简介Apache RocketMQ作为阿里开源的一款高性能、高吞吐量的分布式消息中间件特点在高压下1毫秒内响应未延迟超过99.6%。 适合金融类业务,高可用性跟踪和审计功能。 支持发布订阅模型,和点对点 支持拉pull和推push两种消息模式 单一队列百万消息 支持单master节点,多master节点,多master多slave节点概念 Producer:消息生产者...

2019-09-06 18:56:25 1114

转载 SpringBoot2.x(十三)整合ActiveMQ

JMS简介常用场景跨平台 多语言 多项目 解耦 分布式事务 流量控制 最终一致性 RPC调用 上下游对接,数据源变动->通知下属 基础概念JMS提供者:Apache ActiveMQ、RabbitMQ、Kafka、Notify、MetaQ、RocketMQ JMS生产者(Message Producer):监听、接收消息 JMS消费者(Message Co...

2019-09-06 07:58:10 1150

转载 SpringBoot2.x(十二)整合ElasticSearch

本文将介绍Linux7环境下如何安装ElasticSearch、ElasticSearch常见启动异常解决方法、SpringBoot2.x整合ElasticSearch。简介elasticsearch下文简称 es是一个解决大数据搜索(TB/PB级别)的框架。 对比数据库,index、type、document的理解:mysql database table re...

2019-09-05 20:43:26 3583

转载 SpringBoot2.x(十一)Logback日志介绍和SpringBoot整合实战

新日志框架LogBack介绍常用处理java的日志组件有 slf4j,log4j,logback,common-logging等。logback介绍基于Log4j基础上大量改良,不能单独使用,推荐配合日志框架SLF4J来使用。Logback当前分成三个模块:logback-core,logback-classic和logback-access;logback-core是其它两个模块...

2019-09-05 16:17:27 1260

转载 SpringBoot2.x(十)整合定时任务和异步任务处理

整合定时任务1. 创建定时任务业务类,如 MyTask2. 在 MyTask上添加 Component注解以作为组件能被扫描到。3. 在定时任务方法上添加 @Scheduled以指明执行该任务的时机package top.zhenganwen.springbootmybatis.task;import org.springframework.scheduling....

2019-09-04 17:50:44 731

转载 SpringBoot2.x(九)整合Redis实战

Redis安装和配置下载windows用户:官方源码压缩包:https://redis.io/download#installation linux用户:wget http://download.redis.io/releases/redis-4.0.9.tar.gztar xzf redis-4.0.9.tar.gzcd redis-4.0.9make启动启动服...

2019-09-04 08:40:07 961

转载 SpringBoot2.x(八)整合Mybatis和事务讲解

持久化数据方式介绍 原始java访问数据库:开发流程麻烦 ​ 1、注册驱动/加载驱动:Class.forName("com.mysql.jdbc.Driver") ​ 2、建立连接 Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/dbname","root",...

2019-09-03 15:02:08 1678

转载 SpringBoot2.x(七)常用Starter介绍和整合模板引擎Freemarker、Thymeleaf

SpringBoot StarterStarters are a set of convenient dependency descriptors that you can include in your application. You get a one-stop shop for all the Spring and related technologies that you need...

2019-09-02 16:44:58 616

转载 SpringBoot2.x(六)拦截器实战和Servlet3.0自定义Filter、Listener

SpringBoot过滤器从springboot启动日志中我们可以发现springboot默认加载的过滤器:2018-07-19 18:43:32.748 INFO 9332 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'characterEncodingFilter'...

2019-09-02 14:44:01 327

转载 SpringBoot2.x(五)启动方式&启动原理

启动方式jar包启动需引入springboot应用maven构建插件(主要用来指定应用启动类):<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <arti...

2019-09-01 15:30:41 622 1

空空如也

空空如也

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

TA关注的人

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