- 博客(645)
- 资源 (14)
- 收藏
- 关注
转载 什么是ClickHouse的表引擎?
什么是ClickHouse的表引擎?转自:https://jiamaoxiang.top/2020/09/14/%E7%AF%87%E4%BA%8C-%E4%BB%80%E4%B9%88%E6%98%AFClickHouse%E7%9A%84%E8%A1%A8%E5%BC%95%E6%93%8E/Sep 14, 2020|ClickHouse|14阅读|11.5k字|48分钟在上一篇分享中,我们介绍了ClickHouse的安装部署和简单使用。本文将介绍ClickHous...
2020-09-28 11:28:40 731
原创 架构师需要掌握的技术
架构级别的程序员经验更加丰富,对框架和工具更加熟悉,逻辑性、分析能力更高,自学能力更强,可以在短时间内学会另外一种语言。他们的代码已经不仅仅是“性能”了,往往还会追求更合理的架构,而且在接口设计上还会预测需求的变更,代码的可扩展性好、稳定性高、可读性高。架构应该掌握哪些技术呢一、开源框架解析程序员每天都和代码打交道。经过数年的基础教育和职业培训,大部分程序员都会「写」代码,或者至少会抄代码和...
2019-04-18 15:42:57 4654
转载 Spring Cloud 原理图
转自:https://m.imooc.com/article/23679服务注册发现组件Eureka工作原理服务网关组件Zuul工作原理跨域时序图Eureka与Ribbon整合工作原理解决分布式一致性级联故障流程断路器组件Hystrix工作原理分布式追踪Sleuth工作原理SpringBoot自动配置工作原理...
2019-03-15 18:59:58 921
原创 深入分析MyBatis
参考转自: https://www.cnblogs.com/dongying/tag/Mybatis%E6%B7%B1%E5%85%A5%E6%B5%85%E5%87%BA%E7%B3%BB%E5%88%97/1.insert、update、delete操作mapper映射文件的配置, 这是mybatis的核心之一,一定要学好。在mapper文件中,以mapper作为根节点,其下...
2019-03-12 17:23:03 500
原创 如何使用thread dump?你将如何分析Thread dump?
新建状态(New) 用new语句创建的线程处于新建状态,此时它和其他Java对象一样,仅仅在堆区中被分配了内存。 就绪状态(Runnable) 当一个线程对象创建后,其他线程调用它的start()方法,该线程就进入就绪状态,Java虚拟机会为它创建方法调用栈和程序计数器。处于这个状态的线程位于可运行池中,等待获得CPU的使用权。 运行状态(...
2019-01-04 17:55:42 3518 1
转载 SpringBoot与异步任务、定时任务、邮件任务
异步任务在需要开启异步的服务加上注解:@Async@Servicepublic class AsyncService { //告诉SpringBoot这是一个异步任务,SpringBoot会自动开启一个线程去执行 @Async public void testAsyncService(){ try { Thread.sle...
2018-12-20 09:56:46 591 1
转载 AQS与JUC中的锁实现原理
摘要提到JAVA加锁,我们通常会想到synchronized关键字或者是Java Concurrent Util(后面简称JCU)包下面的Lock,今天就来扒一扒Lock是如何实现的,比如我们可以先提出一些问题:当我们通实例化一个ReentrantLock并且调用它的lock或unlock的时候,这其中发生了什么?如果多个线程同时对同一个锁实例进行lock或unlcok操作,这其中又发生了什么...
2018-08-31 16:54:43 1310
转载 JDK1.8源码分析之AbstractQueuedSynchronizer
一、前言 在锁框架中,AbstractQueuedSynchronizer抽象类可以毫不夸张的说,占据着核心地位,它提供了一个基于FIFO队列,可以用于构建锁或者其他相关同步装置的基础框架。所以很有必要好好分析。二、AbstractQueuedSynchronizer数据结构 分析类,首先就要分析底层采用了何种数据结构,抓住核心点进行分析,经过分析可知,AbstractQueued...
2018-08-31 14:34:19 573 1
原创 基于Docker实现MySQL的主从复制和SpringBoot2+MyBatis的动态切换数据源的读写分离
1)从Docker官方下拉MySQL的image docker search mysqldocker pull mysql 2)设置目录 --- 将MySQL数据保存到当前主机上建立MySQL数据存储目录mkdir -pv /Users/pintec/jay/db_test 建立主服务器的配置目录 mkdir -pv /Users/pintec/jay/db_test/mys...
2018-05-31 16:40:32 919
原创 LinkedBlockingQueue原理分析---基于JDK8
1.常用的阻塞队列 1)ArrayBlockingQueue:规定大小的BlockingQueue,其构造函数必须带一个int参数来指明其大小.其所含的对象是以FIFO(先入先出)顺序排序的.2)LinkedBlockingQueue:大小不定的BlockingQueue,若其构造函数带一个规定大小的参数,生成的BlockingQueue有大小限制,若不带大小参数,所生成的Bl
2018-01-26 16:06:02 1468
转载 MongoDB数据导入与导出
-------------------MongoDB数据导入与导出-------------------1、导出工具:mongoexport 1、概念: mongoDB中的mongoexport工具可以把一个collection导出成JSON格式或CSV格式的文件。可以通过参数指定导出的数据项,也可以根据指定的条件导出数据。 2、语法:
2018-01-01 20:59:34 1329 1
转载 深入理解Redis的持久化机制和原理
Redis是一种面向“key-value”类型数据的分布式NoSQL数据库系统,具有高性能、持久存储、适应高并发应用场景等优势。它虽然起步较晚,但发展却十分迅速。 近日,Redis的作者在博客中写到,他看到的所有针对Redis的讨论中,对Redis持久化的误解是最大的,于是他写了一篇长文来对Redis的持久化进行了系统性的论述。文章主要包含三个方面:Redis持久化是如何工作的、这一性能是
2017-11-24 10:13:30 4163 1
原创 数据库持久化中的读写性能原理分析---基于存储引擎和索引原理
1.存储引擎的类型类型功能应用hash增删改、随机读、顺序扫描Key-Value存储系统 redis、memcachedB-Tree增删改、随机读、顺序扫描关系型数据库,MongoDB采用了B-Tree+lock-free,LSM增删改、随机读、顺序扫描
2017-11-23 10:35:22 1964 1
转载 我必须得告诉大家的MySQL优化原理
转自:http://www.jianshu.com/p/d7665192aaaf说起MySQL的查询优化,相信大家收藏了一堆奇技淫巧:不能使用SELECT *、不使用NULL字段、合理创建索引、为字段选择合适的数据类型..... 你是否真的理解这些优化技巧?是否理解其背后的工作原理?在实际场景下性能真有提升吗?我想未必。因而理解这些优化建议背后的原理就尤为重要,希望本文能让
2017-09-29 09:48:34 1044
原创 Java中集合与数组互转总结
1.集合之间,以及集合与数组互转1.List转换为ArrayList list = new ArrayList();list.add(“1”);list.add(“2”);list.add(“3”);list.add(“4”);String [] countries = list.toArray(new String[list.size()]);2.Array转换为ListS
2017-09-27 18:07:24 803
原创 解决Spring中ResponseBody返回中文乱码问题
使用HttpMessageConverter接口的相关实现类。我们先看配置文件中的配置信息。 text/pla
2017-09-25 15:14:07 1325
转载 写代码怎能不会这些 Linux 命令?
转自:https://juejin.im/entry/599b9e07f265da246d6af09f?utm_source=gold_browser_extension这篇文章翻译自www.thegeekstuff.com/2010/11/50-…这些都是一些很常用的命令,这篇文章中每个命令都有一些简单的示例说明它的用法,对于想学习Unix/Linux的人,这些命令基本上都是
2017-09-15 12:54:19 791
转载 架构设计的立方体扩展
转自:http://blog.csdn.net/houjixin/article/details/53675741本文是对《架构即未来》一书第20章的总结; 1. 立方体扩展是指X、Y、Z轴三个方向的扩展方式; 2. X轴扩展,指水平扩展,这种方式简单易于实现,它要求服务必须是无状态的,部署1个和部署多个是一样的,这样可以根据系统当前的业务承载量来部署所需数量的服务实例,一般情
2017-09-14 10:21:39 643
原创 提高系统性能的2个常用手段---缓存和异步
缓存缓存 1.1 缓存刷新机制,缓存刷新是指什么时候把数据库中的数据加载到缓存 (1) 定期刷新; (2) 缓存命中失败时刷新; 1.2 在有缓存时的数据写入方式: (1) 同步写入,即缓存和数据库同时被写入,即在应用层进行双写操作,这种方式可以有效保证缓存和DB中数据的一致性,由于这种方式即要更新缓存同时还要更改数据库,其访问效率相对较低,适合读多写少的场景;
2017-09-14 09:48:34 6138
原创 秒杀系统总结
挑战与解决策略压力挑战: 短暂的高流量,对现有网站业务造成冲击 秒杀是一个网站营销的一个附加活动,时间短,并发量大。 如果和网站原有应用部署在一起,必然会对现有业务造成冲击,稍有不慎可能导致整个网站瘫痪。 高并发,数据库高负载 用户秒杀开始前,通过不断刷新浏览器来保证不会错过秒杀活动。 频繁的访问程序
2017-09-11 13:56:50 6451 1
转载 高可用+高并发+负载均衡架构设计
转自:架构师之路前篇:《无限容量数据库架构设计》《MQ消息可达性+幂等性+延时性架构设计》都收到网友好评:系统性,全局性看问题体会更深刻简单易懂本文再做总结,体系化介绍高可用,高并发,负载均衡的一些架构技术。一、高可用文章:《究竟什么是互联网高可用架构设计》内容:
2017-09-09 14:26:07 2384
转载 CountDownLatch和CyclicBarrier的简单使用
转自:http://www.kissyu.org/2016/07/18/%E5%AD%A6%E4%B9%A0%E4%BD%BF%E7%94%A8CountDownLatch%E5%92%8CCyclicBarrier/简介CountDownLatch和CyclicBarrier都是线程同步的辅助工具。CountDownLatchCountDownLatch可
2017-08-30 09:44:18 492
原创 解析RocketMQ的client客户端
1.解析RocketMQ的client客户端参考:http://www.cnblogs.com/atliwen/p/5216849.html1.2个核心接口,3个默认实现 interface MQProducer --- DefaultMQProducer interface MQConsumer --- DefaultMQ
2017-08-28 16:14:38 8027
转载 How does a HashMap work in JAVA
Most JAVA developers are using Maps and especially HashMaps. A HashMap is a simple yet powerful way to store and get data. But how many developers know how a HashMap works internally? A few days ago,
2017-07-14 16:11:41 812
转载 最全正则表达式总结:验证QQ号、手机号、Email、中文、邮编、身份证、IP地址等
什么是 RegExp?RegExp 是正则表达式(Regular expression)的缩写,作用是对字符串执行模式匹配。通常用于格式验证、正则替换、查找子串等各种编程语言的正则表达式基本相同,不同的语言可能会有一些细小的差别RegExp入门:http://www.w3school.com.cn/js/js_obj_regexp.asp完整
2017-07-14 13:54:11 2081
转载 如果有人问你数据库的原理,叫他看这篇文章
http://blog.jobbole.com/100349一提到关系型数据库,我禁不住想:有些东西被忽视了。关系型数据库无处不在,而且种类繁多,从小巧实用的 SQLite 到强大的 Teradata 。但很少有文章讲解数据库是如何工作的。你可以自己谷歌/百度一下『关系型数据库原理』,看看结果多么的稀少【译者注:百度为您找到相关结果约1,850,000个…】 ,而且找到的那些文章都
2017-07-13 14:34:23 840 1
转载 Future --- 多线程设计模式
Future --- 多线程设计模式说到多线程的future,百度 多线程 future,网上也有各式各样的例子,写的比我还要好,但是实在是这个模式或者说例子以及实用性太大了,我不得不拿出来讲,甚至在实际生产环境中也是可以用的.我呢,也是拿出网上的例子详细的讲一遍~~看下面的图↓↓↓↓↓传统下单流程.jpg如上图,传统的订单下单流程,首先减商品库
2017-07-10 10:14:16 625
转载 springboot + shiro + cas4.2.7 实战
转自:http://www.cnblogs.com/xiaojf/p/6619060.html1. 下载地址 https://github.com/apereo/cas/archive/v4.2.7.zip2. 解压后, 用intellj idea 打开3. 执行 gradle build -x test ,打包编译4. 取消https,能够支持直接ht
2017-06-22 18:18:51 1730
原创 Map按照key和value进行排序
一.理论准备 Map是键值对的集合接口,它的实现类主要包括:HashMap,TreeMap,Hashtable以及LinkedHashMap等。 TreeMap:基于红黑树(Red-Black tree)的 NavigableMap 实现,该映射根据其键的自然顺序进行排序,或者根据创建映射时提供的 Comparator 进行排序,具体取决于使用的构造方法
2017-06-06 12:11:02 496
原创 Spring Cloud Netflix的3大组件应用 Eureka&Ribbon&Hystrix
参考:http://blog.csdn.net/a60782885/article/details/69267934服务发现:(Eureka)前面提到,Eureka分为服务端和客户端,服务端是服务注册中心,而客户端是提供服务的。创建服务注册中心(服务端)首先在pom文件中加入以下依赖:[html] view pla
2017-05-27 18:32:38 934
原创 Mac下配置环境变量的两种方式
1.配置全局变量(永久有效)root用户登录,修改 /etc/profile文件,末尾添加环境变量如下:2.配置单用户全局变量(重启后配置失效)
2017-05-09 17:01:57 8736
原创 Java高级深入与JVM
1.关于HashCode 不能根据hashCode值判断两个对象是否相等,但可以直接根据hashCode值判断两个对象不相等。 如果两个对象的hashCode值不等,一定是不同的对象,要判断两个对象是否真正相等,必须通过equals()方法 如果调用equals()方法得到的结果为true,则两个对象的hashCode值一定相等
2017-04-16 22:37:09 4688
原创 工作记录笔记
Java相关原理和深入学习:http://wiki.jikexueyuan.com/list/java/RPC框架: http://www.cnblogs.com/luxiaoxun/p/5272384.htmlhttps://my.oschina.net/huangyong/blog/361751编程狂人周刊:http://www.tuicool.c
2017-04-16 22:32:16 7305
转载 开发技术选型参考
转自:https://my.oschina.net/66das/blog/825950摘要: 监控平台,RPC框架,分布式统一框架,数据库访问层中间件,软负载,分布式存储,分布式缓存,性能分析工具,数据库连接池,消息中间件mq,序列化,分布式协调服务,前端选型监控平台: 1、cat:CAT基于Java开发的实时应用监控平台,包括实时应用监控,业务监控 https:
2017-04-14 15:05:04 6498 3
原创 Dubbo原理简单分析
alibaba有好几个分布式框架,主要有:进行远程调用(类似于RMI的这种远程调用)的(dubbo、hsf),jms消息服务(napoli、notify),KV数据库(tair)等。这个框架/工具/产品在实现的时候,都考虑到了容灾,扩展,负载均衡,于是出现一个配置中心(ConfigServer)的东西来解决这些问题。基本原理如图: 在我们的系统中,经常会有一些跨
2017-04-13 13:04:16 40771 4
原创 使用Redis实现分布式锁
1.实现分布式锁的几种方案 1.Redis实现 (推荐) 2.Zookeeper实现 3.数据库实现Redis实现分布式锁** 在集群等多服务器中经常使用到同步处理一下业务,这是普通的事务是满足不了业务需求,需要分布式锁** 分布式锁的常用3种实现:* 0.数据库乐观锁实现* 1.Redi
2017-04-07 16:28:24 9877 5
转载 如何健壮你的后端服务?
转自:http://www.cnblogs.com/LBSer/p/4753112.html 对每一个程序员而言,故障都是悬在头上的达摩克利斯之剑,都唯恐避之不及,如何避免故障是每一个程序员都在苦苦追寻希望解决的问题。对于这一问题,大家都可以从需求分析、架构设计 、代码编写、测试、code review、上线、线上服务运维等各个视角给出自己的答案。本人结合自己两年有限的互联网后端工作经验
2017-04-06 11:57:52 904
转载 深入Java集合HashMap实现原理
深入Java集合学习系列:HashMap的实现原理参考文献引用文献:深入Java集合学习系列:HashMap的实现原理,大部分参考这篇博客,只对其中进行稍微修改自己曾经写过的:Hashmap实现原理1. HashMap概述: HashMap是基于哈希表的Map接口的非同步实现(Hashtable跟HashMap很像,唯一的区别是Hashtalbe中的方法是线程
2017-04-05 10:26:49 529
转载 微服务的一种开源实现方式——dubbo+zookeeper
微服务架构成了当下的技术热点,实现微服务是要付出很大成本的,但也许是因为微服务的优点太过于吸引人,以至于大部分开发者都将它当成未来的发展趋势。 微服务架构的演进过程 dubbo的用户手册中介绍了服务化架构的进化过程,如下图:图一、服务化架构的演进过程 1.orm – 单一应用架构 一个高内聚
2017-03-31 17:43:18 5822 2
STS创建Spring Boot项目实战(Rest接口、数据库、用户认证、分布式Token JWT、Redis操作、日志和统一异常处理)
2016-11-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人