自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(81)
  • 收藏
  • 关注

原创 java架构之路-(dubbo专题)dubbo的基本使用

  今天我们来说一下dubbo的基本使用,没有什么高阶的知识,真的超级简单易懂。Dubbo核心功能解释   dubbo 阿里开源的一个SOA服务治理框架,从目前来看把它称作是一个RPC远程调用框架更为贴切。单从RPC框架来说,功能较完善,支持多种传输和序列化方案。所以想必大家已经知道他的核心功能了:就是远程调用。太多的理论知识我就不说了,这是他的官网http://dubbo.apac...

2020-02-27 21:26:00 311

原创 java架构之路-(微服务专题)feign的基本使用和nacos的配置中心

上次回归:  上次我们说了ribbon的基本使用,包括里面的内部算法,算法的细粒度配置,还有我们自己如何实现我们自己的算法,主要还是一些基本使用的知识,还不会使用ribbon的小伙伴可以回去看一下上一篇博客。什么是Feign:  Feign是Netflix开发的声明式、模板化的HTTP客户端,其灵感来自Retrofit、JAXRS­2.0以及WebSocket。Feign 可帮助我...

2020-02-21 13:55:00 527

原创 java架构之路-(微服务专题)ribbon的基本使用和内部算法的自我实现

上次回归:  上次我们主要说了,我们的注册中心nacos的使用,如我们的命名空间、分组、集群、版本等是如何使用的,如果是这样呢?我们现在有三个用户服务和三个订单服务,我们应该如何分发这些请求呢?都请求到一个服务?轮询?权重?这次我们就来看一下我们的如何解决这些问题的。本次主要内容:  本次我们主要来说ribbon的使用,还有ribbon是如何配置各个分发策略的,再就是我们怎么能自...

2020-02-20 09:36:00 323

原创 java架构之路-(微服务专题)nacos集群精讲实战

上次回顾:  上次博客,我们主要说了微服务的发展历程和nacos集群单机的搭建,单机需要-m standalone启动,集群建议使用nginx做一下反向代理,自行保证mysql和ngxin的高可用。本次定位:  一、nacos的内部概念  二、nacos的基本使用  三、为下次ribbon组件做准备nacos的内部概念  上次我们搭建好了nacos集群,这次我们就在那个集群...

2020-02-19 09:58:00 403

原创 java架构之路-(微服务专题)初步认识微服务与nacos初步搭建

历史演变:  以前我们都是一个war包,包含了很多很多的代码,反正我开始工作的时候做的就是这样的项目,一个金融系统,代码具体多少行记不清楚了,内部功能超多,但是实际能用到的不多,代码冗余超大,每次部署大概要10分钟以上。  这个war包包含了我们的所有,jsp、js、css、java代码。代码很臃肿,每次改BUG很容易“碰瓷”。还有很多很多的不方面,这里就不一一列举了。画个图~!...

2020-02-18 11:15:00 417

原创 java架构之路-(netty专题)netty的编解码(出入战)与粘包拆包

上次回归:  上次博客我们主要说了netty的基本使用,都是一些固定的模式去写的,我们只需要关注我们的拦截器怎么去写就可以了,然后我们用我们的基础示例,改造了一个简单的聊天室程序,可以看到内部加了一个StringEncoder和StringDecoder,这个就是用来编解码我们字符串的,这次我们就来说说这个编解码。编码&解码:  上次我们写的那个简单的聊天室程序大家还记得吧...

2020-02-17 10:08:00 203

原创 java架构之路-(netty专题)netty的基本使用和netty聊天室

上次回顾:  上次博客,我们主要说了我们的IO模型,BIO同步阻塞,NIO同步非阻塞,AIO基于NIO二次封装的异步非阻塞,最重要的就是我们的NIO,脑海中应该有NIO的模型图。Netty概念:  Netty是由JBOSS提供的一个java开源框架,现为Github上的独立项目。Netty提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户...

2020-02-14 10:45:00 237

原创 java架构之路-(netty专题)初步认识BIO、NIO、AIO

  本次我们主要来说一下我们的IO阻塞模型,只是不多,但是一定要理解,对于后面理解netty很重要的IO模型精讲  IO模型就是说用什么样的通道进行数据的发送和接收,Java共支持3种网络编程IO模式:BIO,NIO,AIO。BIO  BIO(Blocking IO) 同步阻塞模型,一个客户端连接对应一个处理线程。也是我们熟悉的同步阻塞模型,先别管那个同步的概念,我们先来看一下...

2020-02-13 14:55:00 156

原创 java架构之路(多线程)原子操作,Atomic与Unsafe魔术类

  这次不讲原理了,主要是一些应用方面的知识,和上几次的JUC并发编程的知识点更容易理解.知识回顾:  上次主要说了Semaphore信号量的使用,就是一个票据的使用,我们举例了看3D电影拿3D眼镜的例子,还说了内部的抢3D眼镜,和后续排队的源码解析,还有CountDownLatch的使用,我们是用王者农药来举例的,CyclicBarrier栅栏的使用和CountDownLatch几...

2020-02-03 19:22:00 293

原创 java架构之路(多线程)JUC并发编程之Semaphore信号量、CountDownLatch、CyclicBarrier栅栏、Executors线程池...

上期回顾:  上次博客我们主要说了我们juc并发包下面的ReetrantLock的一些简单使用和底层的原理,是如何实现公平锁、非公平锁的。内部的双向链表到底是什么意思,prev和next到底是什么,为什么要引入heap和tail来值向null的Node节点。高并发时候是如何保证state来记录重入锁的,在我们的上次博客都做了详细的说明。这次我们来聊一些简单易懂且实用的AQS中的工具类。...

2020-01-19 16:02:00 334

原创 java架构之路(多线程)AQS之ReetrantLock显示锁的使用和底层源码解读

  说完了我们的synchronized,这次我们来说说我们的显示锁ReetrantLock。上期回顾:  上次博客我们主要说了锁的分类,synchronized的使用,和synchronized隐式锁的膨胀升级过程,从无锁是如何一步步升级到我们的重量级锁的,还有我们的逃逸分析。锁的粗化和锁的消除  这个本来应该是在synchronized里面去说的,忘记了,不是很重要,但是需要...

2020-01-15 15:58:00 130

原创 java架构之路(多线程)synchronized详解以及锁的膨胀升级过程

  上几次博客,我们把volatile基本都说完了,剩下的还有我们的synchronized,还有我们的AQS,这次博客我来说一下synchronized的使用和原理。  synchronized是jvm内部的一把隐式锁,一切的加锁和解锁过程是由jvm虚拟机来控制的,不需要我们认为的干预,我们大致从了解锁,到synchronized的使用,到锁的膨胀升级过程三个角度来说一下synchr...

2020-01-14 15:10:00 236

原创 java架构之路(多线程)大厂方式手写单例模式

上期回顾:  上次博客我们说了我们的volatile关键字,我们知道volatile可以保证我们变量被修改马上刷回主存,并且可以有效的防止指令重排序,思想就是加了我们的内存屏障,再后面的多线程博客里还有说到很多的屏障问题。  volatile虽然好用,但是别用的太多,咱们就这样想啊,一个被volatile修饰的变量持续性的在修改,每次修改都要及时的刷回主内存,我们讲JMM时,我们...

2020-01-14 08:32:00 148

原创 java架构之路(多线程)JMM和volatile关键字(二)

  貌似两个多月没写博客,不知道年前这段时间都去忙了什么。  好久以前写过一次和volatile相关的博客,感觉没写的那么深入吧,这次我们继续说我们的volatile关键字。复习:  先来简单的复习一遍以前写过的东西,上次我们说了内存一致性协议M(修改)E(独占)S(共享)I(失效)四种状态,还有我们并发编程的三大特性原子性、一致性和可见性。再就是简单的提到了我们的volatile...

2020-01-13 17:44:00 210

原创 java架构之路(Sharding JDBC)mysql5.7yum安装和主从

安装mysql5.7单机1.获取安装yum包[root@iZm5e7sz135n16ua2rmbk6Z local]# wget http://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm你可以下载到你的本地,然后上传到linux某目录下2.安装软件源,在其目录下输入[root@iZm5e7s...

2019-11-26 11:28:00 177

原创 java架构之路(MQ专题)kafka集群配置和简单使用

  前面我们说了RabbitMQ和RocketMQ的安装和简单的使用,这次我们说一下Kafka的安装配置,后面我会用几个真实案例来说一下MQ的真实使用场景。天冷了,不愿意伸手,最近没怎么写博客了,还请见谅。一、目标  1.知道什么是Kafka  2.懂得kafka的单机和集群安装配置  3.了解内部参数的简单配置二、Kafka简介  Kafka是由Apache软件基金会开...

2019-11-19 16:52:00 224

原创 java架构之路-(NoSql专题)MongoDB快速上手

  NoSQL(NoSQL = Not Only SQL ),意即"不仅仅是SQL"。在现代的计算系统上每天网络上都会产生庞大的数据量。这些数据有很大一部分是由关系数据库管理系统(RDBMS)来处理。 1970年 E.F.Codd's提出的关系模型的论文 "A relational model of data for large shared data banks",这使得数据建模和应用...

2019-11-11 16:31:00 209

原创 java架构之路-(MQ专题)RocketMQ从入坑到集群详解

  这次我们来说说我们的RocketMQ的安装和参数配置,先来看一下我们RocketMQ的提出和应用场景吧。  早在2009年,阿里巴巴的淘宝第一次提出了双11购物狂欢节,但是在2009年,服务器无法承受到大规模的并发,导致了大规模宕机停运,当时还是IOE的服务架构,也就是没有我们的消息队列中间件,直接由IBM的小型机、Oracle数据库、EMC存储设备来提供服务的,可想而知,我们的大...

2019-11-06 22:35:00 238

原创 足疗小张和面向对象的7个设计原则

  设计模式在我们的开发中是不可或缺的一部分,很多人会说,我没用那些设计模式啊,我也开发的挺好的,其实不然,我们在开发中都用到了这些设计模式,只不过我们并没有在意这些,今天我就用开车的方法来解释一下我们的7个设计原则。简述  面向对象的设计原则有七个,包括:开闭原则、单一职责原则、里氏替换原则、迪米特原则(最少知道原则)、接口分离原则、依赖倒置原则、组合/聚合复用原则。1>开...

2019-11-05 14:14:00 290

原创 java架构之路-(MQ专题)RabbitMQ安装和基本使用

RabbitMQ安装  我这里安装是使用阿里云的CentOS7.5来安装的,使用CentOS版本低于7的可能会报错。1.安装rabbitmq所需要的依赖包输入$ yum install build-essential openssl openssl-devel unixODBC unixODBC-devel make gcc gcc-c++ kernel-devel m4 ...

2019-10-29 15:36:00 181

原创 java架构之路-(Redis专题)redis面试助力满分+

1.Redis支持的数据类型?答:五种,在第一节redis相关的博客我就说过,String,Hash,List,Set,zSet,也就是我们的字符串,哈希,列表,集合,有序集合五种。结构图如下。2.什么是Redis持久化?Redis有哪几种持久化方式?优缺点是什么?答:Redis持久化主要分为三种,RDB、AOF还有我们的混合持久化,RDB是一个二进制文件,AOF是保存...

2019-10-29 09:19:00 579

原创 java架构之路-(Redis专题)聊聊大厂那些redis

  上几次说了redis的主从,哨兵,集群配置,但是内部的选举一直没说,先来简单说一下选举吧。集群选举  redis cluster节点间采取gossip协议进行通信,也就是说,在每一个节点间,无论主节点还是从节点,他们之间都是存在相互通信的。例如你的redis端口号是6379,那么你的gossip协议端口号就是16379。  gossip协议包含多种消息,包括ping,po...

2019-10-28 14:30:00 98

原创 java架构之路-(Redis专题)简单聊聊redis分布式锁

  这次我们来简单说说分布式锁,我记得过去我也过一篇JMM的内存一致性算法,就是说拿到锁的可以继续操作,没拿到的自旋等待。思路与场景  我们在Zookeeper中提到过分布式锁,这里我们先用redis实现一个简单的分布式锁,这里是我们一个简单的售卖减库存的小实例,剩余库存假设存在数据库内。@GetMapping(value = "/getLock")public St...

2019-10-28 08:21:00 185 1

原创 java架构之路-(Redis专题)SpringBoot连接Redis超简单

  上次我们搭建了Redis的主从架构,哨兵架构以及我们的集群架构,但是我们一直还未投入到实战中去,这次我们用jedis和springboot两种方式来操作一下我们的redis主从架构  如何配置我上次已经讲过了,https://www.cnblogs.com/cxiaocai/p/11711377.html。我们这次主要看如何用java来操作redis,先来复习一下上次的配置,...

2019-10-25 08:10:00 180

原创 java架构之路-(Redis专题)Redis的主从、哨兵和集群

  我们使用的redis,单机的绝对做不到高可用的,万一单机的redis宕机了,就没有备用的了,我们可以采用集群的方式来保证我们的高可用操作。主从架构    大致就是这样的,一个主节点,两个从节点(一般两个就可以了)主从工作原理  如果你为master配置了一个slave,不管这个slave是否是第一次连接上Master,它都会发送一个SYNC命 令(redis2....

2019-10-22 08:18:00 369

原创 java架构之路-(Redis专题)Redis的高性能和持久化

  上次我们简单的说了一下我们的redis的安装和使用,这次我们来说说redis为什么那么快和持久化数据  在我们现有的redis中(5.0.*之前的版本),Redis都是单线程的,那么单线程的Redis为什么还会有那么高的效率呢?因为它所有的数据都在内存中,所有的运算都是内存级别的运算,而且单线程避免了多线程的切换中性能损耗的问题,正因为Redis是单线程,所以我们要小心使用Red...

2019-10-21 07:59:00 139

原创 java架构之路-(Redis专题)Redis的安装与五种结构的使用

  这次我们来说说我们的redis,在我们的redis的认知里,最熟悉的就是用redis作为缓存使用,还有我们的分布式session,其实还有很多redis的使用,还有redis的哨兵模式等等。  Redis(全称:Remote Dictionary Server 远程字典服务)是一个开源的使用ANSIC语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并...

2019-10-16 09:41:00 183

原创 国内算法竞赛网址收集

本文链接:https://blog.youkuaiyun.com/fan3652/article/details/82382519树愿:http://www.datadreams.orgDC竞赛:http://www.dcjingsai.com/阿里天池:https://tianchi.aliyun.com/京东JDATA:https://jdata.jd.com/DataFountain:ht...

2019-10-12 17:09:00 204

原创 三天讲透SpringBoot-初识基础使用

  这次我们来说一下我们的SpringBoot,现在SpringBoot已经成为趋势,在我这里我用三篇文章的形式来讲清楚我们的SpringBoot,大致分为,第一篇讲搭建,基本使用,第二篇三方集成,自动装配原理,第三篇,将main方法启动原理,总结史上最全的SpringBoot注解及其含义。后面有机会再细致的扒一下源码(书还没看完,怕误导大家)。  我们先来看我们的搭建,很简单,我们...

2019-10-12 16:47:00 153

原创 java架构之路-(分布式zookeeper)zookeeper真实使用场景

  上几次博客,我说了一下Zookeeper的简单使用和API的使用,我们接下来看一下他的真实场景。一、分布式集群管理✨✨✨  我们现在有这样一个需求,请先抛开Zookeeper是集群还是单机的概念,下面提到的都是以Zookeeper集群来说的。    1. 主动查看线上服务节点    2. 查看服务节点资源使用情况    3. 服务离线通知    4. 服务资源...

2019-10-11 16:03:00 152

原创 java架构之路-(面试篇)Mysql面试大全

  说一下mysql比较宏观的面试,具体咋写sql的这里就不过多举例了。后面我还会给出一个关于mysql面试优化的试题,这里主要说的索引和B+Tree结构,很少提到我们的集群配置优化方案。1.索引是什么?有什么作用以及缺点  答:索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息。也可以理解为索引就是一本书的目录,创建索引和维护索引要耗费时...

2019-10-09 15:01:00 266

原创 python爬虫---初识爬虫

我们开始来谈谈python的爬虫。1.什么是爬虫:  网络爬虫是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。互联网犹如一个大蜘蛛网,我们的爬虫就犹如一个蜘蛛,当在互联网遇到所需要的资源,我们就会爬取下来,即为爬虫是一个请求网站并且提取数据的自动化程序。2.下面我们来提到两个名词:  1)请求,request即为我们的请...

2019-10-09 10:43:35 257

原创 java架构之路-(面试篇)JVM虚拟机面试大全

  下文连接比较多啊,都是我过整理的博客,很多答案都在博客里有详细说明,理解记忆是最扎实的记忆。而且我的答案不一定是最准确的,但是我的答案不会让你失望,而且几乎每个答案都是问题的扩展答案。1.JVM内存模型  答:https://www.cnblogs.com/cxiaocai/p/11483629.html先经过类装载子系统装载,经由验证,准备,解析,初始化四个过程...

2019-10-09 08:56:00 167

原创 java架构之路-(spring源码篇)springIOC容器源码解析(上)

  我们这次来叭叭一下Spring的源码,这次博客主要来说说Spring源码,先粗略的撸一遍,下篇博客选几个重点去说,由于过于复杂,我也是看了一点点,我们先来过一遍源码,然后上流程图,最后我们再回头总结一下,我们来循序渐进的叭叭一下。我们来回顾一下上次Spring博客的内容,每次都有用到AnnotationConfigApplicationContext来加载我们的配置类,我们就从这...

2019-10-08 14:12:00 190

原创 java架构之路-(SpringMVC篇)SpringMVC主要流程源码解析(下)注解配置,统一错误处理和拦截器...

  我们上次大致说完了执行流程,也只是说了大致的过程,还有中间会出错的情况我们来处理一下。统一异常处理比如我们的运行时异常的500错误。我们来自定义一个类package com.springmvcbk.utils;import org.springframework.web.servlet.HandlerExceptionResolver;import org...

2019-10-08 14:01:00 134

原创 java架构之路-(SpringMVC篇)SpringMVC主要流程源码解析(上)源码执行流程

  做过web项目的小伙伴,对于SpringMVC,Struts2都是在熟悉不过了,再就是我们比较古老的servlet,我们先来复习一下我们的servlet生命周期。servlet生命周期1)初始化阶段  当客户端向 Servlet 容器发出 HTTP 请求要求访问 Servlet 时,Servlet 容器首先会解析请求,检查内存中是否已经有了该 Servlet 对象,如...

2019-10-08 07:45:00 253

原创 java架构之路-(分布式zookeeper)zookeeper集群配置和选举机制详解

  上次博客我们说了一下zookeeper的配置文件,以及命令的使用https://www.cnblogs.com/cxiaocai/p/11597465.html。我们这次来说一下我们的zookeeper的集群配置和java的API相关操作。集群:  一般情况下我们用zookeeper来做任务调度中心的,所以一定要做到高可用的,单机的不可能做到永不宕机,我们也不会信任他单机的永...

2019-09-29 17:34:00 229

原创 java架构之路-(分布式zookeeper)初识zookeeper安装与参数详解

  ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。(百度百科)。ZooKeeper代码版本中,提供了分布式独享锁、选举、队列的接口,其中分布锁和队列有Java和C两个版本,选举只有Jav...

2019-09-28 23:26:00 177

原创 java架构之路-(mysql底层原理)Mysql事务隔离与MVCC

  上几篇博客我们大致讲了一下mysql的底层结构,什么B+tree,什么Hash需要回行啊,再就是讲了mysql优化的explain,这次我们来说说mysql的锁。mysql锁  锁从性能上分为乐观锁(用版本对比来实现)和悲观锁,乐观锁的性能要比悲观锁高。  从对数据库操作的类型分,分为读锁和写锁(都属于悲观锁)  读锁(共享锁):针对同一份数据,多个读操作可以...

2019-09-27 13:19:00 142

原创 java架构之路-(设计模式)五种创建型模式之单例模式

  设计模式自身一直不是很了解,但其实我们时刻都在使用这些设计模式的,java有23种设计模式和6大原则。设计模式是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性、程序的重用性。其中包含创建型模式,共五种:单例模式、工厂方法模式、抽象工厂模式、建造者模式、原型模式。结构型模式,共七种:...

2019-09-23 20:21:00 88

空空如也

空空如也

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

TA关注的人

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