8 冰 河

尚未进行身份认证

大数据架构师,编程专家,拥有多年的项目架构和实战经验,多年来致力于分布式系统、微服务、分布式数据库、分布式事务、大数据技术的研究,在高并发、高可用、高可扩展性、高可维护性和大数据等领域拥有丰富的实战经验,对Hadoop、Spark、Storm、Flink等大数据框架源码进行过深度分析并具有丰富的实战经验。为Mykit系列开源框架创始人、核心架构师和开发者,《海量数据处理与大数据技术实战》作者。

等级
TA的排名 77

Win10问题篇:一次性永久关闭win10系统自动更新

今天我的Win10系统又自动更新了,这让我很困惑,明明按百度上说的关闭了WindowsUpdate服务怎么还会更新。我抱着怀疑的态度再次打开服务。冷静分析是这里的锅。可是这个系统组件又不能关闭。设置一切正常!可是每次开机更新服务还是会被唤醒。于是我又去百度找方法,下面这个方法是可行的。1.按“Win+R”组合键打开运行输入“gpedit.msc”再点“确定”;2....

2019-11-13 09:09:55

PHP之——PHPStorm配置PHP运行环境

至此,PHPStorm配置PHP运行环境完成

2019-11-11 13:33:37

Spring之——从源码角度理解AOP原理(思路)

AOP原理:【看给容器中注册了什么组件,这个组件什么时候工作,这个组件的功能是什么?】@EnableAspectJAutoProxy;1、@EnableAspectJAutoProxy是什么?@Import(AspectJAutoProxyRegistrar.class):给容器中导入AspectJAutoProxyRegistrar利用AspectJAuto...

2019-11-08 22:43:46

Spring之——基于注解的AOP实例

Spring中很强大的两种特性就是IOC和AOP,相信很多同学对此也比较了解,尤其是当面试的时候,通常也会被问及。这里,我就再简单介绍下Spring如何实现基于注解的AOP示例。一、SpringAOP概述AOP:【动态代理】指在程序运行期间动态的将某段代码切入到指定方法指定位置进行运行的编程方式;1、导入aop模块;SpringAOP:(spring-aspects)2、定义...

2019-11-08 14:12:43

Java之——Java8新特性

一、Java8新特性简介速度更快 代码更少(增加了新的语法Lambda表达式) 强大的StreamAPI 便于并行 最大化减少空指针异常Optional 其中最为核心的为Lambda表达式与StreamAPI二、Lambda表达式1.为什么使用Lambda表达式Lambda是一个匿名函数,我们可以把Lambda表达式理解为是一段可以传递的代码(将代...

2019-11-06 15:20:34

Android之—— Android Studio配置文件路径修改的方法

前言:AndroidStudio作为一个安卓APP开发工具,必然要的组件和所占的空间是比较多的,但往往我们安装AndroidStudio后有些配置文件会默认帮我们安装到C盘,导致C盘空间减少,这往往是我们不想看到的,这篇文章就讲述怎么修改AndroidStudio配置文件路径AndroidStudio安装好后会在系统盘用户目录下产生这几个文件夹.android是AndroidSD...

2019-11-03 23:43:50

RocketMQ之——单机环境搭建

今天,带来一篇搭建RocketMQ单机环境的文章,为后面的分布式事务专栏做准备。RocketMQ是阿里巴巴开源的一款高性能分布式消息中间件,有关RocketMQ的详细讲解,后面会单独开设一个RocketMQ专栏。这里,先简单介绍一下搭建RocketMQ的单机环境,为分布式事务的介绍做准备。接下来,进入主题。注意:我这里搭建RocketMQ环境的主机操作系统为:CentOS6.8,IP地址为:...

2019-11-02 23:41:58

Java之——深入理解SPI

SPI的概念SPI在Java中的全称为ServiceProviderInterface,是JDK内置的一种服务提供发现机制,是Java提供的一套用来被第三方实现或者扩展的API,它可以用来启用框架扩展和替换组件。JAVASPI=基于接口的编程+策略模式+配置文件的动态加载机制SPI的使用场景Java是一种面向对象语言,虽然Java8开始支持函数式编程和Stream,但是...

2019-10-31 22:13:18

SpringSecurity之——权限管理

1.只要能登录即可在继承org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter类的子类中覆写protectedvoidconfigure(AuthenticationManagerBuilderauth)throwsException方法,使用内存方式指...

2019-10-29 17:57:31

SpringSecurity之——SpringBoot整合SpringSecurity

一、创建工程新建Maven工程springsecurity-demo,并编辑pom.xml文件如下:<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XML...

2019-10-28 12:53:51

SpringSecurity之——权限管理与SpringSecurity概述

1.为什么需要权限管理安全性:误操作、人为破坏、数据泄露等 数据隔离:不同权限能看到及操作不同的数据 明确职责:运营、客服等不同角色,leader和dev等不同级别2.权限管理核心用户-权限:人员少,功能固定,或者特别简单的系统 RBAC(Role-BasedAccessControl):基于角色的权限访问控制,用户-角色-权限3.理想中的权限管理能实现的角色级权限...

2019-10-28 11:55:11

高并发之——服务降级与熔断

服务降级由于爆炸性的流量冲击,对一些服务进行有策略的放弃,以此缓解系统压力,保证目前主要业务的正常运行。它主要是针对非正常情况下的应急服务措施:当此时一些业务服务无法执行时,给出一个统一的返回结果。降级服务的特征原因:整体负荷超出整体负载承受能力。 目的:保证重要或基本服务正常运行,非重要服务延迟使用或暂停使用 大小:降低服务粒度,要考虑整体模块粒度的大小,将粒度控制在合适的范围内...

2019-10-27 20:56:24

高并发之——限流

概念限流就是通过对并发访问/请求进行限速或一个时间窗口内的请求进行限速,从而达到保护系统的目的。一般系统可以通过压测来预估能处理的峰值,一旦达到设定的峰值阀值,则可以拒绝服务(定向错误页或告知资源没有了)、排队或等待(例如:秒杀、评论、下单)、降级(返回默认数据)限流不能乱用,否则正常流量会出现一些奇怪的问题,从而导致用户抱怨。限流场景模拟假设有130W到140W的数据插入到...

2019-10-27 20:19:38

高并发之——应用拆分

应用拆分实例应用拆分原则1业务优先2循序渐进(拆分、测试)3兼顾技术(重构、分层)4可靠测试应用拆分的思考1.应用之间的通信:RPC(dubbo等)、消息队列消息传输适用于传输数据包小但是数据量大,对实时性要求不高的场景。比如下单成功后通过短信通知用户。而选用RPC框架实时性更高一些。你应该知道的RPC原理2.应用之间的数据库设计:每个应用都有独立的数据库...

2019-10-27 19:51:25

高并发之——消息队列思路

现在假设这样一个场景,用户下单成功需要给用户发短信,如果没有消息队列,我们会选择同步调用发短信的接口并等待短信发送成功。现在假设短信接口实现出现了问题或者短信发送短时间内达到了上限,这个时候是选择重试几次还是放弃发送呢?这里的设计会很复杂如果使用了消息队列,我们选择将发短信的操作封装成一条消息发送到消息队列,消息队列通知一个服务去发送一条短信,即使出现了上述的问题,可以选择把消息重新放到消息队列...

2019-10-27 14:31:29

高并发之——Guava Cache

最近需要用到缓存来存放临时数据,又不想采用Redis,Java自带的Map功能太少,发现Google的Guava提供的Cache模块功能很强大,于是选择使用它。本地缓存本地缓存作用就是提高系统的运行速度,是一种空间换时间的取舍。它实质上是一个做key-value查询的字典,但是相对于我们常用HashMap它又有以下特点:1.并发性:由于目前的应用大都是多线程的,所以缓存需要支持并发的写...

2019-10-27 11:18:02

高并发之——缓存思路

缓存特征(1)命中率:命中数/(命中数+没有命中数)(2)最大元素(空间):代表缓存中可以存放的最大元素的数量,一旦缓存中元素的数量超过这个值,或者缓存数据所占的空间超过了最大支持的空间,将会触发缓存清空策略。根据不同的场景,合理设置最大元素(空间)的值,在一定程度上可以提高缓存的命中率,从而更有效的使用缓存。(3)清空策略:FINO(先进先出)、LFU(最少使用)、LRU(最近最少使用)...

2019-10-27 11:13:25

高并发之——多线程并发与线程安全总结

可以参考如下博文:《Java之——内存模型》《高并发之——如何安全的发布对象(含各种单例代码分析)》《高并发之——线程安全性》《高并发之——线程安全策略》《高并发之——AQS》《高并发之——J.U.C组件扩展》《高并发之——线程池》《高并发之——死锁,死锁的四个必要条件以及处理策略》《高并发之——多线程并发扩展》...

2019-10-26 23:05:08

高并发之——多线程并发扩展

死锁死锁-必要条件(1)互斥条件进程对所分配到的资源进行排他性的使用,即在一段时间内某个资源只由一个进程占用,如果此时还有其他进程请求资源,那么请求者只能等待,直到占用资源的进程将资源释放。(2)请求和保持条件进程已经保持了至少一个资源,但又提出了新的资源请求,而该资源已被其他进程占有。此时,请求进程阻塞,但又对自己已获得的其他资源保持不放。(3)不剥夺条件进程已获得资源,在未使...

2019-10-26 22:59:46

高并发之——死锁,死锁的四个必要条件以及处理策略

一、什么是死锁多线程以及多进程改善了系统资源的利用率并提高了系统的处理能力。然而,并发执行也带来了新的问题——死锁。死锁是指两个或两个以上的进程(线程)在运行过程中因争夺资源而造成的一种僵局(Deadly-Embrace)),若无外力作用,这些进程(线程)都将无法向前推进。下面我们通过一些实例来说明死锁现象。先看生活中的一个实例,2个人一起吃饭但是只有一双筷子,2人轮流吃(同时...

2019-10-26 21:52:09

查看更多

CSDN身份
  • 博客专家
勋章 我的勋章
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 1024勋章
    1024勋章
    #1024程序员节#活动勋章,当日发布原创博客即可获得
  • 1024超级勋章
    1024超级勋章
    授予原创文章总数达到1024篇的博主,感谢你对CSDN社区的贡献,CSDN与你一起成长。
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。