java架构师入门
每天都在进步,每周都在总结,Java架构师成长之路。目前已经有Netty,Nginx,MySQL,Java,Redis,Shiro,Solr,SpringBoot,SpringData,SSO,Mybatis,MongoDB
ITDragon龙
你的背景是我前进的动力,https://github.com/ITDragonBlog
展开
-
Java编程配置思路详解
Java编程配置思路详解SpringBoot虽然提供了很多优秀的starter帮助我们快速开发,可实际生产环境的特殊性,我们依然需要对默认整合配置做自定义操作,提高程序的可控性,虽然你配的不一定比官方提供的starter好。上周因为工作和装修的事情,导致博客没有正常更新,害怕停更会让人懒惰起来,挤了一点时间写了一篇内容比较简单的文章。后面闲谈一下我是如何从装修小白到入门的经历。技术:Con...原创 2018-03-30 09:19:58 · 850 阅读 · 0 评论 -
消息中间件企业级应用
消息中间件企业级应用众所周知,消息中间件是大型分布式系统中不可或缺的重要组件。它使用简单,却解决了不少难题,比如异步处理,系统藕合,流量削锋,分布式事务管理等。实现了一个高性能,高可用,高扩展的系统。本章通过介绍消息中间件的应用场景,消息中间件的传输模式,ActiveMQ快速入门 三个方面来对消息中间件进行入门介绍。还在等什么,赶快来学习吧!说明:消息中间件非常强大,值得我们认真去学习和使...原创 2018-03-15 14:37:03 · 453 阅读 · 0 评论 -
Redis 快速入门
Redis 快速入门谈到Redis,大家应该都不陌生。它是用c语言开发的一个高性能键值数据库,主要用于缓存领域。本章通过Redis的安装,Redis的五大数据类型,Redis的Java客户端,Redis与Spring 的整合 。来让读者对它有一个初步的了解。下一章再通过介绍配置文件来搭建Redis的主从模式和集群模式(配置大于编程,先从简单的编程入手)。效果图: 需求:对商品类目进行Redis缓存原创 2017-11-25 23:41:07 · 591 阅读 · 0 评论 -
Redis 持久化之RDB和AOF
Redis 有两种持久化方案,RDB (Redis DataBase)和 AOF (Append Only File)。如果你先快速了解和使用RDB和AOF,可以直接跳到文章底部看总结。本章节通过配置文件,触发快照的方式,恢复数据的操作,命令操作演示,优缺点来学习 Redis 的重点知识**持久化**。## RDB 详解RDB 是 Redis 默认的持久化方案。在指定的时间间隔内,执行指定次数的写操作,则会将内存原创 2017-11-27 22:29:00 · 585 阅读 · 0 评论 -
Redis 主从复制
本章介绍Redis的一个强大功能--主从复制。一台master主机可以拥有多台slave从机,而一台slave从机又可以拥有多个slave从机。如此下去,形成强大的多级服务器集群架构(高扩展)。可以避免Redis单点故障,实现容灾恢复效果(高可用),读写分离的架构,满足读多写少的并发应用场景。原创 2017-11-30 22:14:21 · 579 阅读 · 0 评论 -
Redis 高可用集群
Redis 的集群主从模型是一种高可用的集群架构。本章主要内容有:高可用集群的搭建,Jedis连接集群,新增集群节点,删除集群节点,其他配置补充说明。## 高可用集群搭建>集群(cluster)技术是一种较新的技术,通过集群技术,可以在付出较低成本的情况下获得在性能、可靠性、灵活性方面的相对较高的收益,其任务调度则是集群系统中的核心技术。Redis 3.0 之后便支持集群。Redis 集群中内置了 1638原创 2017-12-02 19:08:04 · 953 阅读 · 0 评论 -
SolrJ 复杂查询 高亮显示
SolrJ 复杂查询 高亮显示上一章搭建了Solr服务器和导入了商品数据,本章通过SolrJ去学习Solr在企业中的运用。笔者最先是通过公司的云客服系统接触的Solr,几百万的留言秒秒钟就查询并高亮显示,不同的广告员还可以只检索自己所属的国家的留言。瞬间就跪拜在Solr的石榴裙下。现在看来其实就是 q + fq + lg 的用法。通过本章内容你将会学习到Solr分词配置;SolrJ的复杂查询和关键字原创 2017-12-08 21:09:28 · 1387 阅读 · 1 评论 -
SpringData 基于SpringBoot快速入门
SpringData 基于SpringBoot快速入门本章通过学习SpringData 和SpringBoot 相关知识将面向服务架构(SOA)的单点登录系统(SSO)需要的代码实现。这样可以从实战中学习两个框架的知识,又可以为单点登录系统打下基础。通过本章你将掌握 SpringBoot项目的搭建,Starter pom的使用,配置全局文件,核心注解SpringBootApplication 介绍以原创 2017-12-16 21:01:08 · 2212 阅读 · 1 评论 -
Nginx 反向代理 负载均衡 虚拟主机配置
Nginx 反向代理 负载均衡 虚拟主机配置通过本章你将学会利用Nginx配置多台虚拟主机,清楚代理服务器的作用,区分正向代理和反向代理的区别,搭建使用Nginx反向搭理和负载均衡,了解Nginx常用配置的说明。即学即用,你还在等什么?一睹为快先了解Nginx的三大功能 Nginx 可以作为一台http服务器。可以做网站静态服务器,比如图片服务器,高效,减轻服务器压力。同时它也支持https服务。原创 2017-12-18 22:38:24 · 686 阅读 · 0 评论 -
单点登录系统实现
单点登录系统实现基于SpringBoot今天的干货有点湿,里面夹杂着我的泪水。可能也只有代码才能让我暂时的平静。通过本章内容你将学到单点登录系统和传统登录系统的区别,单点登录系统设计思路,Spring4 Java配置方式整合HttpClient,整合SolrJ ,HttpClient简易教程。还在等什么?撸起袖子开始干吧! 效果图:8081端口是sso系统,其他两个8082和8083端口模拟...原创 2017-12-23 22:39:32 · 1428 阅读 · 4 评论 -
MySQL索引优化分析
MySQL索引优化分析为什么你写的sql查询慢?为什么你建的索引常失效?通过本章内容,你将学会MySQL性能下降的原因,索引的简介,索引创建的原则,explain命令的使用,以及explain输出字段的意义。助你了解索引,分析索引,使用索引,从而写出更高性能的sql语句。还在等啥子?撸起袖子就是干!案例分析我们先简单了解一下非关系型数据库和关系型数据库的区别。 MongoDB是NoSQL中的一种。原创 2018-01-03 22:25:28 · 885 阅读 · 0 评论 -
MySQL 表锁和行锁机制
MySQL 表锁和行锁机制行锁变表锁,是福还是坑?如果你不清楚MySQL加锁的原理,你会被它整的很惨!不知坑在何方?没事,我来给你们标记几个坑。遇到了可别乱踩。通过本章内容,带你学习MySQL的行锁,表锁,两种锁的优缺点,行锁变表锁的原因,以及开发中需要注意的事项。还在等啥?经验等你来拿!MySQL的存储引擎是从MyISAM到InnoDB,锁从表锁到行锁。后者的出现从某种程度上是弥补前者的原创 2018-01-09 21:47:06 · 1645 阅读 · 0 评论 -
Netty序章之BIO NIO AIO演变
Netty序章之BIO NIO AIO演变Netty是一个提供异步事件驱动的网络应用框架,用以快速开发高性能、高可靠的网络服务器和客户端程序。Netty简化了网络程序的开发,是很多框架和公司都在使用的技术。更是面试的加分项。Netty并非横空出世,它是在BIO,NIO,AIO演变中的产物,是一种NIO框架。而BIO,NIO,AIO更是笔试中要考,面试中要问的技术。也是一个很好的加分项,加分就是原创 2018-01-24 18:32:29 · 600 阅读 · 0 评论 -
Netty 拆包粘包和服务启动流程分析
Netty 拆包粘包和服务启动流程分析通过本章学习,笔者希望你能掌握EventLoopGroup的工作流程,ServerBootstrap的启动流程,ChannelPipeline是如何操作管理Channel。只有清楚这些,才能更好的了解和使用Netty。还在等什么,快来学习吧!知识结构图:技术:Netty,拆包粘包,服务启动流程 说明:若你对NIO有一定的了解,对于本章知识来说原创 2018-01-29 20:16:24 · 878 阅读 · 0 评论 -
Netty 编解码技术 数据通信和心跳监控案例
Netty 编解码技术 数据通信和心跳监控案例多台服务器之间在进行跨进程服务调用时,需要使用特定的编解码技术,对需要进行网络传输的对象做编码和解码操作,以便完成远程调用。Netty提供了完善,易扩展,易使用的编解码技术。本章除了介绍Marshalling的使用,还会基于编解码技术实现数据通信和心跳检测案例。通过本章,你将学到Java序列化的优缺点,主流编解码框架的特点,模拟特殊长连接通信,心跳原创 2018-02-04 08:21:07 · 676 阅读 · 0 评论 -
双刃剑MongoDB的学习和避坑
双刃剑MongoDB的学习和避坑MongoDB 是一把双刃剑,它对数据结构的要求并不高。数据通过key-value的形式存储,而value的值可以是字符串,也可以是文档。所以我们在使用的过程中非常方便。正是这种方便给我们埋下了一颗颗地雷。当内嵌的文档太深,或者内嵌文档有相同的属性名。你会被炸得很惨。本章节通过 MongoDB简介,Shell编程,SpringBoot整合MongoDB,工作中注...原创 2018-03-07 21:54:54 · 1624 阅读 · 0 评论 -
架构师入门笔记十一 Netty5编解码
架构师入门笔记十一 Netty5编解码1 基础知识1.1 什么是编解码技术编解码技术,其实就是java的序列化技术。序列化有两个目的:第一进行网络传输;第二对象持久化。1.2 为什么要用编解码技术因为java的序列化存在很多缺点,比如无法跨语言,序列化后码流太大,序列化性能太低等1.3 有那些主流的编解码框架JBoss 的 Marshalling(本章会介绍Marsha原创 2017-10-15 11:39:00 · 951 阅读 · 0 评论 -
架构师入门笔记十 Netty5快速入门
架构师入门笔记十 Netty5快速入门在了解IO,NIO,AIO知识后,学习Netty5便会轻松很多,本章节主要介绍Netty是如何接收,反馈数据和拆包粘包的问题。1 Netty基础知识1.1 Netty作用Netty是一个提供异步事件驱动的网络应用框架,用以快速开发高性能、高可靠性 的网络服务器和客户端程序。Netty是一个NIO框架,使用它可以简单快速地原创 2017-09-22 15:40:10 · 1062 阅读 · 0 评论 -
架构师入门笔记九 初识IO NIO AIO
架构师入门笔记九 初识IO NIO AIO在学习netty之前,我们要对Socket网络编程有一定的了解。这里先来了解一下 IO(BIO),NIO,AIO(NIO2.0)这几种通信的特点以及其演变的过程。1 IO(BIO)1.1 基础理论IO(input/output)又称BIO(block-IO),BIO通信模型是同步阻塞的通信模式。Socket 又称“套原创 2017-09-15 14:52:08 · 1855 阅读 · 0 评论 -
架构师入门笔记八 并发框架Disruptor场景应用
架构师入门笔记八 并发框架Disruptor场景应用今天用一个停车场问题来加深对Disruptor的理解。一个有关汽车进入停车场的问题。当汽车进入停车场时,系统首先会记录汽车信息。同时也会发送消息到其他系统处理相关业务,最后发送短信通知车主收费开始。看了很多文章,里面的代码都是大同小异的,可能代码真的是很经典。以下代码也是来源网络,只是自己手动敲的,加了一些注释。代码包含以下内容:原创 2017-09-09 16:31:06 · 19464 阅读 · 1 评论 -
架构师入门笔记七 并发框架Disruptor快速入门
架构师入门笔记七 并发框架Disruptor快速入门1. 什么是DisruptorDisruptor它是一个高性能的异步处理的开源并发框架,能够在无锁的情况下实现网络的Queue并发操作。可以认为是最快的消息框架(轻量的JMS),也可以认为是一个观察者模式的实现,或者事件监听模式的实现。2. HelloWorld代码在生产者-消费者设计模型的中,采用有界队列Blocki原创 2017-09-01 21:46:56 · 2741 阅读 · 0 评论 -
架构师入门笔记六 初识线程安全锁
架构师入门笔记六 初识线程安全锁这章主要介绍Synchronized,ThreadLock,Lock,Concurrent.util等方法。1 Lock 锁在java多线程中,可以使用synchronized关键字实现线程间的同步互斥工作,而Lock对象,能更好地完成同步互斥的工作(灵活性高。在jdk1.8之前,性能比synchronized关键字好)。今天主要学习它的重入锁和原创 2017-08-26 09:37:14 · 1693 阅读 · 0 评论 -
架构师入门笔记五 初识线程池
架构师入门笔记五 初识线程池线程池,顾名思义是线程的池子。当任务提交给线程池的时候,线程池会安排一个空闲的线程去执行任务,当任务执行结束后返回到线程池中。若没有空闲的线程去执行任务,则该任务就会进入队列中等待。若队列满了,线程池开始新增线程。若线程池中的总线程大于线程池运行的最大线程,则会报错。1 为什么要用线程池一个线程从被创建到被销毁是需要时间。若多线程频繁的创建和销毁,严原创 2017-08-20 08:44:03 · 1456 阅读 · 0 评论 -
架构师入门笔记四 初识多线程设计模式
架构师入门笔记四 初识多线程设计模式这章讲解常用的并行设计模式,为后续的多线程打基础。常用的并行设计模式有:Future 模式、Master-Worker模式 和 生产者-消费者模式。其中生产者-消费者模式是最为经典的常用模型。(注:并行设计模式是对一些常用的多线程结构的总结和抽象,属于设计优化的一部分)1Future 模式1.1 核心思想除去主线程等待时间,将原创 2017-08-15 18:52:08 · 1970 阅读 · 0 评论 -
架构师入门笔记三 初识Queue队列
架构师入门笔记三 初识Queue队列1.wait和notify模拟Queue1.1 wait / notify 基础知识线程通信概念:线程是操作系统中独立的个体,但这些个体如果不经过特殊的处理,就不能成为一个整体,线程之间的通信就成为整体的必用方法之一。使用 wait/ notify 方法实现线程间的通信:1)wait 和 notify 必须要配合 synchroni原创 2017-08-10 21:30:26 · 2516 阅读 · 0 评论 -
架构师入门笔记二 初识java容器
架构师入门笔记二 初识java容器上一章简单介绍了 线程的关键字 synchronized 和 volatile 的用法及其注意事项。这章来讲解一下同步类容器,并发类容器,COW容器的原理和优缺点。1. 同步类容器同步类容器:如古老的Vector、HashTable。这些容器的同步功能其实都是有JDK的Collections.synchronized 等工厂方法创建实现的。其底原创 2017-08-07 14:07:29 · 2125 阅读 · 0 评论 -
架构师入门笔记一 初识线程关键字
架构师入门笔记一 初识线程关键字本章主要介绍线程的关键字 synchronized,volatile 的含义,使用方法和使用场景,以及注意事项。下一章介绍线程的队列知识。首先要了解线程安全概念:当多个线程访问某一个类(对象或方法)时,这个对象始终都能表现出正确的行为,那么这个类(对象或方法)就是线程安全的。关键字 synchronizedsynchronized 可以在任意对象及原创 2017-08-04 14:08:22 · 7704 阅读 · 0 评论