自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Dubbo相关知识点梳理

目录一、Dubbo入门二、Dubbo注册中心1.Multicast注册中心2.Zookeeper注册中心三、Dubbo多协议1.Dubbo协议2.其他协议四、Dubbo服务特性1.本地伪装2.服务降级3.本地存根4.负载均衡5.集群容错五、Dubbo其他特性1.线程模型2.并发控制3.异步执行4.异步调用5.连接控制6.日志适配7.配置加载流程8.调用拦截扩展六、Dubbo最佳实践1.服务化最佳实践2.容量规划3.优雅停机七、Dubbo服务治理1.治理行为2.路由配置八、Dubbo工作原理一、Dubbo入

2020-08-14 16:16:47 307

原创 手写一个RPC框架

目录一、CAP理论和BASE理论二、RPC概念三、设计实现一个RPC框架1.客户端2.服务端一、CAP理论和BASE理论二、RPC概念三、设计实现一个RPC框架1.客户端2.服务端

2020-08-11 12:09:41 315

原创 Zookeeper相关知识点梳理

目录一、Zookeeper入门1.ZK的数据模型2.ZK的watch机制3.ZK的特性二、Zookeeper应用场景1.ZK实现配置中心2.ZK实现命令服务3.ZK实现Master选举4.ZK实现分布式队列5.ZK实现分布式锁三、Zookeeper集群1.ZK集群基本概念2.ZK集群ZAB协议3.ZK集群Leader选举四、分布式一致性协议一、Zookeeper入门1.ZK的数据模型2.ZK的watch机制3.ZK的特性二、Zookeeper应用场景1.ZK实现配置中心2.ZK实现命令服务3

2020-08-10 02:34:04 305

原创 ElasticSearch相关知识点梳理

目录一、搜索引擎核心理论思想二、ElasticSearch安装三、ElasticSearch应用场景及核心概念四、ElasticSearch查询语法解析五、ElasticSearch高级查询六、ElasticSearch高性能集群七、ELK实时日志分析平台一、搜索引擎核心理论思想二、ElasticSearch安装ElasticSearch安装步骤如下(docker安装):(1)安装ES:docker run -d --name es --restart=always -p 9200:9200 -p

2020-08-06 11:07:31 681

原创 MongoDB相关知识点梳理

目录一、MongoDB入门二、MongoDB基本使用1.数据增加2.数据查询3.数据更新4.数据删除三、MongoDB索引四、MongoDB聚合五、MongoDB深入操作一、MongoDB入门MongoDB是一种NoSQL数据库,它与关系型数据库的关系如下:关系型数据库MongoDB表集合行文档列(字段)成员主键objectID(MongoDB自动生成,为时间戳+机器码+PID+计数器,不会重复)相对于传统的关系型数据库,表结构一旦定义,就必须按照结

2020-07-29 12:45:50 284

原创 MySQL相关知识点梳理

目录一、MySQL入门二、MySQL索引三、MySQL语句分析四、MySQL优化方案五、MySQL锁机制六、MySQL事务一、MySQL入门二、MySQL索引三、MySQL语句分析四、MySQL优化方案五、MySQL锁机制六、MySQL事务

2020-07-24 17:30:03 435

原创 Mycat相关知识点梳理

目录一、Mycat入门二、Mycat读写分离三、Mycat分库分表四、Mycat架构五、Mycat安装一、Mycat入门二、Mycat读写分离三、Mycat分库分表四、Mycat架构五、Mycat安装以下是Mycat的安装步骤:1.环境准备:(1)JDK使用的是jdk-8u261-linux-x64.rpm(2)MySQL使用的是5.7.22版本(3)MyCat使用的是Mycat-server-1.6.6.1-release-20181031195535-linux.tar2.JDK安

2020-07-20 17:17:23 291

原创 Redis相关知识点梳理

目录一、Redis数据结构和常用命令1、Redis简介2、Redis应用场景3、Redis数据结构与常用命令4、Redis使用案例二、Redis持久化机制三、Redis内存管理四、Redis主从复制五、Redis哨兵高可用机制六、Redis集群分片存储机制一、Redis数据结构和常用命令1、Redis简介Redis是一个开源的C语言编写、支持网络、可基于内存亦可持久化的日志型,key-value数据库,并提供多种语言API。它的特点是使用简单、性能强悍以及功能应用场景丰富。(我们可以简单把它理解为一个

2020-07-17 11:19:01 212

原创 Ngnix负载均衡原理与配置

目录一、Nginx负载均衡原理1.Nginx负载均衡简介2.Nginx进程模型3.Nginx缓存机制二、Nginx负载均衡配置一、Nginx负载均衡原理1.Nginx负载均衡简介首先我们来理解以下什么是反向代理?对于一个系统来说,通常我我们说反向代理是指一个代理服务器来接受Internet上的连接请求,然后将请求转发给内部网络上的后台服务器,并将从后台服务器上得到的结果返回给Internet上请求连接的客户端的过程。反向代理有2个作用:(1)保证内网安全:阻止网络攻击,大型网站通常将反向代理作为公网

2020-07-15 03:05:42 340

原创 RabbitMQ相关知识点梳理

目录一、RabbitMQ入门简介二、RabbitMQ集群高可用方案三、RabbitMQ持久化机制与内存控制四、RabbitMQ消息可靠性一、RabbitMQ入门简介RabbitMQ是一个开源的AMQP实现,服务器端使用Erlang语言编写,支持多种客户端。它用于分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。以下是RabbitMQ的安装过程,文档可百度云自取(当然也可以用Docker版安装): 链接: rabbitmq单机到集群完整搭建 提取码: vq38RabbitMQ会绑定一些

2020-07-08 16:41:29 661

原创 JVM的类加载机制和垃圾回收介绍

一、类加载机制我们知道java代码是先被编译为.class字节码,再加载到JVM中去运行的,那么.class字节码是如何加载进JVM的呢?首先我们了解一下类的生命周期:(1)加载:读取二进制内容;(2)验证:验证class文件格式是否规范,语义分析,引用验证,字节码验证;(3)准备:分配内存,设置类static修饰的变量的初始值;(4)解析:类、接口、字段、类方法多等解析;(5)初始化:为静态变量赋值,执行静态代码块;(6)使用:创建实例对象;(7)卸载:从JVM方法区中卸载。接着回答上

2020-07-03 11:45:51 281

原创 高并发编程常用容器和J.U.C包常用工具介绍

J.U.C包中一些工具的简介一、HashMap

2020-06-29 17:15:17 277

原创 Lock接口读写锁原理介绍

Lock接口读写锁原理介绍一、线程间通信的方式首先,介绍以下几种线程间的通信方式:协作方式死锁方式1(通过主动加把锁)死锁方式1(先唤醒再挂起)备注suspend/resume死锁死锁弃用wait/notify不死锁死锁只能在synchronized关键字中用,基于对象监视器park/unPark死锁不死锁用LockSupport,令牌机制condition的await/signal不死锁死锁只能在ReentrantLock中用二

2020-06-24 17:55:38 646

原创 两个例子解释线程的可见性和原子性问题

两个例子解释线程的可见性和原子性问题多线程情况下,会出现两种线程安全的问题:可见性和原子性问题。具体针对这两种多线程情况下出现问题的解决方案如下:(1)可见性://用volatile关键字屏蔽CPU缓存和指令重排序,保证线程可见性public class VolatileTest { boolean flag = true;//用这个会导致thread1线程不能读到被修改的flag值,thread1线程的循环永远不会结束// volatile boolean flag = true;

2020-06-24 11:49:53 228

原创 线程池原理与API使用介绍

线程池原理与API使用简介一、线程池原理首先我们要明确为什么用多线程?是不是线程越多就越好?随着现代多核CPU的发展,

2020-06-23 16:29:36 435

原创 利用请求合并发挥高并发下批量处理的优势

利用请求合并发挥高并发下批量处理的优势一、需求分析:我们经常会写一些查询接口,假设现在我们需要写一个查询用户信息的接口,要求传入用户Id,返回用户名称。那么最简化的流程就是:用户发送请求->controller层->service层->dao层->数据库。每次请求就相当于请求一条用户信息。当这个接口被用户频繁请求时,此接口就不断的在做“请求”到“返回”的操作,服务端同时会开辟许多线程帮我们执行这些操作,这么多的线程会消耗许多系统资源,服务端承受了巨大压力。//单查询接口@Ge

2020-06-18 11:28:40 997 2

原创 利用Spring的Aop机制、自定义注解和反射实现代码功能增强

利用Spring的Aop机制、自定义注解和反射实现代码功能增强一、预备知识的简单介绍:(1)AOP:它是Spring为我们提供的一个十分有用的机制,AOP采用称为“横切”的技术,把一些与业务代码不是强相关的功能独立出来,从而形成一个“切面”,并且我们把这个“切面”切到业务流程的某个位置,以实现业务增强。(2)注解:它是一种能被添加到java代码中的元数据,类、方法、变量、参数和包都可以用注解来修饰。注解对于它所修饰的代码并没有直接的影响。通俗来说,注解就是一个标签,我们可以用@interface来写一

2020-06-15 18:06:36 388

原创 基于Zookeeper实现分布式配置中心

基于Zookeeper实现分布式配置中心一、需求分析与实现思路:在我们工作中,往往充斥着大量的配置文件。之前在我的工作中,都是把配置文件直接写在代码中,工程量小的时候无所谓,我们可以一个一个改;但是随着工程量越来越大,在修改配置的时候会非常麻烦,而且不便于统一管理。所以,有没有什么方法可以统一管理这些工程的配置,并且可以在配置修改的时候立即通知到各个应用呢?这里就要引入分布式配置中心的概念了。配置中心顾名思义,就是用来统一管理配置的,而分布式可以保证配置中心的可靠性。配置中心在市面上也有许多现成的开源实

2020-06-14 19:59:05 953

原创 springCloud组件介绍

springCloud组件介绍目录springCloud组件介绍一、CAP理论二、springCloud组件之Eureka三、springCloud组件之Ribbon四、springCloud组件之hystrix五、springCloud其他组件一、CAP理论        在介绍springCloud之前,我们...

2020-05-05 01:04:56 243

原创 kubernetes与docker介绍

容器化技术介绍(kubernetes与docker)一、docker二、kubernetes三、kubernetes集群环境搭建一、docker      伴随着计算机技术的飞速发展,容器化技术现在越来越火,而Docker无疑是其中的明星产品,目前Docker 在国内特别是在一线互联网公司发展的如火如荼,Docker 的使用已经是十分普遍了。&nbsp...

2020-02-10 17:26:55 638

原创 kafka相关知识点梳理

kafka入门介绍一、消息队列首先,为什么我们要使用消息队列?一般来说,消息队列被认为有以下好处:1)解耦:消息队列可以帮我们解耦原本复杂的业务系统,分解复杂的业务功能;2)冗余:消息队列可以把数据进行持久化直到这些数据已经被完全处理,通过这一方式可以规避数据丢失的风险,确保数据被安全的保存直到你使用完毕;3)峰值处理和系统弹性:在访问量剧增的情况下,应用仍然需要继续发挥作用,但是这样的...

2020-01-05 22:42:43 264

原创 从BIO到NIO再到Netty一次讲明白

一、Netty简介netty是一个高性能、高可扩展的异步事件驱动的网络应用程序框架,它极大地简化了TCP和UDP客户端和服务器开发等网络编程。要了解netty首先我们需要要先了解BIO和NIO:1. BIO: BIO是Java中提供的阻塞式网络编程开发包,它通过socket接口和I/O包进行通信与数据处理。但是,这种方法有一些缺陷,比如,ServerSocket.accept()方法是一个阻...

2019-11-12 23:59:24 308

原创 synchronized关键字锁升级原理

一、Java中锁的相关概念自旋锁:指当一个线程在获取锁的时候,如果锁已经被其他线程获取,那么该线程将循环等待,然后不断地判断锁是否能获取成功,直到获取到锁。(CAS操作中就用到了自旋锁)乐观锁:它假定不会产生冲突,在修改数据时如果发现数据和之前获取的不一样,则读取最新的数据,修改后(CAS操作)重试。悲观锁:它假定会发生冲突,同步所有对数据的相关操作,从读数据就开始上锁。(如synchro...

2019-10-13 23:31:32 185

原创 JVM内存结构介绍(java运行时数据区)

关于JVM内存结构的一点介绍(java运行时数据区)写前BB:这是本人的第一篇博客,主要记录我在学习过程中的一些心得体会与知识总结,以后也会不定期更新。通过写博客,我总结和复盘了学习的知识,也希望通过我的分享能让更多的人获得一些启发。当然由于本人是一个菜鸟,写博客中也会出现一些错误和用词不当的地方,还请多多交流,同时也希望各位大佬们轻喷_(:з」∠)_ _java运行时数据区我们进行jav...

2019-08-19 18:55:10 196

空空如也

空空如也

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

TA关注的人

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