自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Consul实现原理---Raft算法

公司的注册中心要调研选型,不再使用Eureka,我负责这件事,先调研了Consul,Raft算法真的很巧妙,可惜的是consul的一些设计架构无法在我们公司生产环境使用。Raft将一致性问题分解成了三个独立的部分:leader选举、日志复制、安全性。一、Raft一致性的实现复制日志 想要实现共识性算法主要有两种方式:第一种方式称为对称式或无主式,在这种方式下,所有的服务器都有相同的角色,它们有同等的权力,它们任何时候的行为几乎都是一样的,客户端可以与任何一台服务器进行通信...

2020-05-21 10:47:21 851

原创 Nacos参数配置详解

Nacos客户端版本<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> <version>2.1.0.RELEASE</version></dependency>参数配置详解com.ali

2020-05-10 15:03:26 12104 1

原创 Redis实现源码-字符串基础数据类型分析

Redis并没有直接使用C语言中的字符串类型,而是自己设计了一种数据结构,在Redis中,C语言中的字符串只使用在一些字符串值不会发生修改的地方,比如打印日志。它为什么要这样做?这样做的好处是什么呢?让我们先来了解一下这种被称为Simple dynamic string(SDS)简单动态字符的结构。 ...

2019-07-15 20:14:59 222

原创 DDOS攻击、DOS攻击、CC攻击和防御

                                                            一、DDoS攻击介绍    DDoS攻击是Distributed Denial of Service的缩写,意思是分布式拒绝服务。    DOS攻击想办法让目标机器停止服务或资源访问,这些资源包括磁盘空间、内存、进程甚至网络带宽,从而阻止正常用户的访问。        1....

2019-01-24 15:02:32 3809

原创 MySQL索引

一、索引的类型    1.主键索引:不能重复,不能为空    2.唯一索引:不能重复,可以为空    3.普通索引:无限制    4.组合索引:不能为空    5.全文索引二、索引的优点    1.使用索引可以提高查找数据的效率,减少I/O次数,可以更快的分组和排序三、索引的缺点    1.索引本身也是表,会占用存储空间索引的维护和创建需要成本,这个成本随着数据量的增大而增大四、索引...

2019-01-24 15:01:32 159

原创 懒汉式创建单例模式线程安全问题

一、synchronized加锁    public class Student {            private static Student student;        private Student(){}        public static synchronized Student getInstance(){            if (stud...

2019-01-04 23:33:14 673

原创 CyclicBarrier

一、CyclicBarrier作用    它允许一组线程互相等待,直到到达某个公共屏障点。在设计一组固定大小的线程的程序中,这些线程必须不时地相互等待,这时CyclicBarrier很有用。因为该Barrier在释放线程后可以重用,所以称它为循环(Cyclic)的屏障(Barrier)。二、CyclicBarrier内部实现    CyclicBarrier的内部是使用重入锁Reentran...

2018-09-25 22:31:01 2041

原创 网站应用微信登录开发

                                                 一、授权流程    微信OAuth2.0授权登录让微信用户使用微信省份安全登录第三方应用或网站,在微信用户授权登录已接入微信OAuth2.0的第三方应用后,第三方可以获取到用户的接口调用凭证(access_token),通过access_token可以进行微信开发平台授权关系接口调用,从而可实现获取...

2018-09-17 14:38:47 1440

转载 Hystrix生产环境中的线程池大小以及Timeout超时时长优化经验总结

注:发现一篇好文章忍不住分享一下 PS:感觉写的格式有点乱,整理了一下,并加上了一些自己的看法  原文:https://blog.csdn.net/kang123488/article/details/79512226一、生产环境线程池的配置的问题    生产环境里面,一个是线程池的大小怎么设置,timeout时长如果设置不合理的话,会出现很多问题        1.超时时间太短低于服...

2018-09-10 11:28:12 3552 2

原创 Dubbo架构

一、什么是Dubbo                1.Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,SOA服务治理方案。使我们告别WebService   模式中的WSDL,以服务者和消费者的方式在Dubbo上注册。                2.Dubbo核心部分包含:                    1.远程通讯:提供对多种基于长连接的NI...

2018-09-02 21:35:48 189

原创 数据库与缓存双写不一致保障方案

 一.cache aside pattern 先删除缓存再修改数据库                ?? 为什么是删除不是更新                        1.先更新缓存而后修改数据库,若修改数据库失败(网络故障),就导致缓存与数据库数据不一致                      2. 很多时候,复杂点的缓存场景,缓存中的数据不单单是从数据库取出来的值,可能还需...

2018-09-02 00:49:04 550

原创 APM

 一、当系统某一模块的部分功能访问很慢,怎样检测?            1.检查线上10台机器各硬件负载指标均正常(硬件)            2.查询线上10台会员系统日志,出现大量请求Timeout(网络)            3.检查3台MySQL数据库,访问非常慢,并且连接已占满(应用内部)            4.进一步查明,大量连接都在执行一个会员注册的SQL语句,找到...

2018-09-02 00:43:36 1420

原创 接口的平滑升级

一、暴露调用信息                1.通过RPC方案调用接口首先需要服务端将调用的信息暴露给服务端,一般暴露的信息有三部分:接口信息、模型信息、异常。                2.暴露接口的通常做法是接口和实现分离,服务端将接口、模型、异常、等统一放置于一个模块,实现置于另一个模块。调用方过Maven(nexus)私服进行引用。                3.大型分布...

2018-09-01 12:24:39 1050

原创 重定向原理

       客户端发送一个请求到服务器,服务器匹配servlet,这都和请求转发一样,servlet处理完之后调用了sendRedirect()这个方法,设置HTTP响应报头中的Status为302、设置HTTP响应报头中的Location值为指定的URL。 客户端接收这个响应,响应行告诉客户端你必须要再发送一个请求,去访问Location里的URL。客户端发送一个新的请求,去请求指定资源。...

2018-08-30 12:38:09 1622

转载 JVM源码分析之java对象头实现

本文转载自简书占小狼http://www.jianshu.com/users/90ab66c248e6/latest_articlesHotSpot虚拟机中,对象在内存中的布局分为三块区域:对象头、实例数据和对齐填充。对象头对象头包括两部分:Mark Word 和 类型指针。Mark WordMark Word用于存储对象自身的运行时数据,如哈希码(HashCode)、G...

2018-08-29 10:19:15 160

原创 线程上下文切换

            一、为什么要减少线程上下文切换                当CPU从执行一个线程切换到执行另外一个线程的时候,它需要先存储当前线程的本地的数据,程序指针等,然后载入另一个线程的本地数据,程序指针等,最后才开始执行。这种切换称为“上下文切换”(“context switch”)。CPU会在一个上下文中执行一个线程,然后切换到另外一个上下文中执行另外一个线程。上下文切换并...

2018-08-29 10:05:04 4306

原创 事务、Spring的事务、4种事务特性、4中隔离级别、传播行为

           一、事务概念                指作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全地不执行。 事务处理可以确保除非事务性单元内的所有操作都成功完成,否则不会永久更新面向数据的资源。通过将一组相关操作组合为一个要么全部成功要么全部失败的单元,可以简化错误恢复并使应用程序更加可靠。一个逻辑工作单元要成为事务,必须满足所谓的ACID(原子性、一致性、隔离...

2018-08-24 11:16:04 736

原创 ArrayList源码解读(1.8)

        一、数组和ArrayList的区别            既然提到ArrayList就不能不提一下数组,你知道什么时候用数组,什么时候用ArrayList么?他们有什么区别?                1.效率:当执行Add、AddRange、Insert、InsertRange等添加元素时,都会检查内部的数组的容量是否达到扩容的界限,如果达到,将会以当前容量大约1.5倍来...

2018-08-22 14:20:48 524

原创 分布式事务中常规MQ队列消息的处理流程和特点

           消息中间件在分布式系统中的主要作用:异步通讯、解耦、并发缓存 在分布式部署环境下,需要通过网络进行通讯,就引入了数据传输的不确定性也就是CAP理论中的P(分区容错性的问题)                           流程图:                                              消息发送的一致性如何保障 1.如果业务操作成...

2018-06-02 17:54:08 400

原创 Hystrix设计原则和目的以及资源隔离

                1.Hystrix是什么?                            在分布式系统中,每个服务都可能会调用很多其他的服务,被调用的那些服务就是依赖服务,依赖服务出现一些故障是很正常的,因为不能保障100%的可用性。hystrix可以让我们在分布式系统中对服务间的调用进行控制,加入一些调用延迟或者依赖故障的容错机制。Hystrix通过将依赖服务进行资源隔离...

2018-05-27 19:50:19 866

空空如也

空空如也

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

TA关注的人

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