4 riemann_

尚未进行身份认证

我要认证

公众号: 程序员屌爷

等级
TA的排名 3k+

HttpClient、okhttp和RestTemplate的区别

一、HttpClient1、pom依赖<!--HttpClient--><dependency> <groupId>commons-httpclient</groupId> <artifactId>commons-httpclient</artifactId> <version>3.1</version></dependency>2、HttpClient代码实现p

2020-10-19 21:13:30

我的架构梦:(五十四) 分库分表实战及中间件之Mycat实战

分库分表实战及中间件之Mycat实战一、 Mycat 简介二、Mycat 核心概念三、server.xml配置四、schema.xml配置五、rule.xml配置六、Mycat实战七、Mycat事务一、 Mycat 简介Mycat 是一个实现了 MySQL 协议的 Server,前端用户可以把它看作是一个数据库代理,用 MySQL 客 户端工具和命令行访问,而其后端可以用 MySQL 原生协议或JDBC 协议与多个 MySQL 服务器通信, 其核心功能是分库分表和读写分离,即将一个大表水平分割为 N 个

2020-10-16 00:34:40

我的架构梦:(五十三) 分库分表实战及中间件之ShardingSphere实战

上一篇:我的架构梦:(五十二) 分库分表实战及中间件之实战背景分库分表实战及中间件之ShardingSphere实战二、ShardingSphere实战1、ShardingSphere2、Sharding-JDBC3、数据分片剖析实战5、强制路由剖析实战6、数据脱敏剖析实战7、分布式事务剖析实战8、SPI 加载剖析9、编排治理剖析10、Sharding-Proxy实战二、ShardingSphere实战1、ShardingSphereApache ShardingSphere是一款开源的分布式数据库

2020-10-13 23:43:06

我的架构梦:(五十二) 分库分表实战及中间件之实战背景

一、实战背景1、背景描述刚开始我们的系统只用了单机数据库随着用户的不断增多,考虑到系统的高可用和越来越多的用户请求,我们开始使用数据库主从架构当用户量级和业务进一步提升后,写请求越来越多,这时我们开始使用了分库分表2、遇到的问题用户请求量太大单服务器TPS、内存、IO都是有上限的,需要将请求打散分布到多个服务器单库数据量太大单个数据库处理能力有限;单库所在服务器的磁盘空间有限;单库上的操作IO有瓶颈单表数据量太大查询、插入、更新操作都会变慢,在加字段、加索引、机器迁移都会产生高负

2020-10-12 21:16:54

平衡树和二叉树的区别

一、平衡二叉树(AVL树)1、概念AVL树是带有平衡条件的二叉查找树,一般是用平衡因子差值判断是否平衡并通过旋转来实现平衡,左右子树树高不超过1,和红黑树相比,AVL树是严格的平衡二叉树,平衡条件必须满足(所有节点的左右子树高度差不超过1)。不管我们是执行插入还是删除操作,只要不满足上面的条件,就要通过旋转来保持平衡,而旋转非常耗时的,由此我们可以知道AVL树适合用于插入与删除次数比较少,但查找多的情况。2、局限性由于维护这种高度平衡所付出的代价比从中获得的效率收益还大,故而实际的应用不多,更多的地

2020-09-25 22:23:33

远程调用 Dubbo 与 Feign 的区别

一、相同点Dubbo 与 Feign 都依赖注册中心、负载均衡。二、区别1、协议Dubbo:支持多传输协议(Dubbo、Rmi、http、redis等等),可以根据业务场景选择最佳的方式。非常灵活。默认的Dubbo协议:利用Netty,TCP传输,单一、异步、长连接,适合数据量小、高并发和服务提供者远远少于消费者的场景。Feign:基于Http传输协议,短连接,不适合高并发的访问。2、负载均衡Dubbo:支持4种算法(随机、轮询、活跃度、Hash一致性),而且算法里面引入权重的概

2020-09-23 22:02:21

eureka、nacos、consul的区别

1、配置中心配置中心eureka不支持nacos支持 用起来简单,符合springBoot的命名风格,支持动态刷新consul支持 但用起来偏麻烦,不太符合springBoot框架的命名风格,支持动态刷新2、注册中心eurekanacosconsul应用内/外直接集成到应用中,依赖于应用自身完成服务的注册与发现属于外部应用,侵入性小属于外部应用,侵入性小ACP原则遵循AP(可用性+分离容忍)原则,有较强的可用性,服务注册快

2020-09-22 23:27:07

请说说你对线程安全的理解

其实博主之前面试也有被问到这个问题,当时我用自己的语言组织回答的,我觉得当时回答的不够严谨。现在我查阅了相关资料做了以下的总结。《深入理解Java虚拟机》第二版 周志明著 Page386页有相关定义。周志明也是引用的别人的定义,我这里贴出来。笔者认为《Java Concurrency In Partice》的作者 Brian Goetz 对 “线程安全” 有一个比较恰当的定义:“当多个线程访问一个对象时,如果不用考虑这些线程在运行时环境下的调度和交替执行,也不需要进行额外的同步,或者在调用方进行任何其他

2020-09-19 20:36:17

HashMap存1000条数据,构造时传多少才能让HashMap不需要动态扩容?

一、HashMap 的初始化关于HashMap 的初始化,可以参考我们上一篇说过:JDK8中的HashMap初始化和扩容机制二、HashMap 的 table 初始化这个问题也可以这样问,HashMap存1000条数据,构造时传1000会不会让HashMap动态扩容?回到 HashMap 的构造方法,threshold 为扩容的阈值,在构造方法中由 tableSizeFor() 方法调整后直接赋值,所以在构造 HashMap 时,如果传递 1000,threshold 调整后的值确实是 1024,但

2020-09-19 17:53:13

JDK8中的HashMap初始化和扩容机制

一、HashMap初始化方法HashMap() 不带参数,默认初始化大小为16,加载因子为0.75;HashMap(int initialCapacity) 指定初始化大小;HashMap(int initialCapacity, float loadFactor) 指定初始化大小和加载因子大小;HashMap(Map<? extends K,? extends V> m) 用现有的一个map来构造HashMap。二、分析初始化过程1、初始化代码测试用例Map<Str

2020-09-19 14:03:36

我的架构梦:(五十一) MySQL存储与优化之MySQL集群架构

MySQL存储与优化之MySQL集群架构一、集群架构设计二、主从模式三、 双主模式四、分库分表一、集群架构设计1、架构设计理念在集群架构设计时,主要遵从下面三个维度:可用性扩展性一致性2、可用性设计站点高可用,冗余站点服务高可用,冗余服务数据高可用,冗余数据保证高可用的方法是冗余。但是数据冗余带来的问题是数据一致性问题。实现高可用的方案有以下几种架构模式:主从模式简单灵活,能满足多种需求。比较主流的用法,但是写操作高可用需要自行处理。双主模式互为主从,有双主双写、双

2020-09-17 23:37:51

SpringBoot 配置文件位置的加载顺序

SpringBoot配置文件可以使用yml格式和properties格式分别的默认命名为:application.yml、application.properties 官网都是以yml作为参考,层级结构更清晰的一种配置文件。–file:./config/–file:./–classpath:/config/–classpath:/SpringBoot配置文件默认可以放到以下目录中,下面四种可以自动读取到:1、项目根目录下2、项目根目录中config目录下3、项目的resources目录

2020-09-16 21:29:14

我的架构梦:(五十) MySQL存储与优化之MySQL事务和锁

MySQL存储与优化之MySQL事务和锁一、ACID 特性二、事务控制的演进三、 事务隔离级别四、锁机制和实战五、死锁与解决方案一、ACID 特性在关系型数据库管理系统中,一个逻辑工作单元要成为事务,必须满足这 4 个特性,即所谓的 ACID原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)。1、原子性原子性:事务是一个原子操作单元,其对数据的修改,要么全都执行,要么全都不执行。修改---》Buffer Pool修改---》

2020-09-16 00:58:31

我的架构梦:(四十九) MySQL存储与优化之MySQL索引原理

一、索引类型索引可以提升查询速度,会影响where查询,以及order by排序。MySQL索引类型如下:从索引存储结构划分:B Tree索引、Hash索引、FULLTEXT全文索引、R Tree索引从应用层次划分:普通索引、唯一索引、主键索引、复合索引从索引键值类型划分:主键索引、辅助索引(二级索引)从数据存储和索引键值逻辑关系划分:聚集索引(聚簇索引)、非聚集索引(非聚簇索引)1、普通索引这是最基本的索引类型,基于普通字段建立的索引,没有任何限制。创建普通索引的方法如下:CREA

2020-09-15 00:35:17

String s = new String()分析各个场景创建了几个堆和栈

场景1:String str1 = “abc”;System.out.println(str1 == “abc”);步骤:栈中开辟一块空间存放引用str1String池中开辟一块空间,存放String常量”abc”引用str1指向池中String常量”abc”str1所指代的地址即常量”abc”所在地址,输出为true场景2:String str2 = new String(“abc”);System.out.println(str2 == “abc”);步骤:栈中开辟一块

2020-09-13 17:06:02

我的架构梦:(四十八) MySQL存储与优化之MySQL架构原理

一、MySQL体系架构MySQL Server架构自顶向下大致可以分网络连接层、服务层、存储引擎层和系统文件层。1、网络连接层客户端连接器(Client Connectors):提供与MySQL服务器建立的支持。目前几乎支持所有主流的服务端编程技术,例如常见的 Java、C、Python、.NET等,它们通过各自API技术与MySQL建立连接。2、服务层(MySQL Server)服务层是MySQL Server的核心,主要包含系统管理和控制工具、连接池、SQL接口、解析器、查询优化器和缓存六

2020-09-13 16:16:02

Redis多集群客户端

一、pom依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-processor</artifactId> <optional>true</optional></dependency>如果不加这个依赖,配置类会出现下面的问题。二、mult

2020-09-09 21:33:44

Scala多线程初始化redis集群

话不多说,上代码:def multiThreadInitialization(): Unit = { var coreSize = Runtime.getRuntime.availableProcessors() + 1; var threadPool:ExecutorService = Executors.newFixedThreadPool(coreSize); // 这里为了处理JedisConnector初始化时间过长问题 val jedisCluster = JedisUtils

2020-09-08 22:34:37

源码解读之(八)ConcurrentLinkedQueue

源码解读之(八)ConcurrentLinkedQueue一、前言二、ConcurrentLinkedQueue介绍与结构三、offer操作四、poll操作五、peek操作六、size操作七、remove操作八、ConcurrentLinkedQueue遇到的问题九、总结一、前言在并发编程中我们有时候需要使用线程安全的队列。如果我们要实现一个线程安全的队列有两种实现方式:一种是使用阻塞算法,另一种是使用非阻塞算法。使用阻塞算法的队列可以用一个锁(入队和出队用同一把锁)或两个锁(入队和出队用不同的锁)等方

2020-09-08 22:25:17

我的架构梦:(四十七) 第二代 Spring Cloud核心组件之Nacos+Sentinel+Dubbo三剑合璧

第二代 Spring Cloud核心组件之Nacos+Sentinel+Dubbo三剑合璧一、前言二、服务提供者工程改造三、 服务消费者工程改造一、前言改造自动投递微服务和简历微服务,删除OpenFeign 和 Ribbon,使用Dubbo RPC 和 Dubbo LB首先,需要删除或者注释掉父工程中的热部署依赖。<!--热部署--><!--Nacos+Sentinel+Dubbo整合需要去掉devtools--><!--<dependency>

2020-09-01 23:04:33

查看更多

勋章 我的勋章
  • 领英
    领英
    绑定领英第三方账户获取
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 脉脉勋章
    脉脉勋章
    绑定脉脉第三方账户获得
  • 签到王者
    签到王者
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 技术圈认证
    技术圈认证
    用户完成年度认证,即可获得
  • 推荐红人
    推荐红人
    发布高质量Blink获得高赞和评论,进入推荐栏目即可获得
  • 阅读者勋章Lv3
    阅读者勋章Lv3
    授予在CSDN APP累计阅读博文达到30天的你,是你的坚持与努力,使你超越了昨天的自己。
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 1024勋章
    1024勋章
    #1024程序员节#活动勋章,当日发布原创博客即可获得
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 学习力
    学习力
    《原力计划【第二季】》第一期主题勋章 ,第一期活动已经结束啦,小伙伴们可以去参加第二期打卡挑战活动获取更多勋章哦。
  • 原力新人
    原力新人
    在《原力计划【第二季】》打卡挑战活动中,成功参与本活动并发布一篇原创文章的博主,即可获得此勋章。