【 Java 】
Francis-Leo
管理自己的时间,流程化工作
展开
-
【SpringBoot】Controller
常用注解@Controller表明该类是SpringMVC里的Controller 1. Dispatcher Servlet会自动扫描该类; 2. Web请求映射到注解了@RequestMapping的方法上;@RequestMapping用来映射Web请求、处理类和方法 可注解在类和方法上,注解在方法上的路径会继承注解在类上的路径@ResponseBody支持返回值...原创 2018-08-05 20:45:39 · 1783 阅读 · 0 评论 -
【Redis】Jedis使用
单机版使用1.添加pom<!-- Redis客户端 --><dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId>&原创 2018-08-14 00:09:18 · 311 阅读 · 0 评论 -
【ActiveMQ】整体介绍
概念MQ是消息中间件,是一种在分布式系统中应用程序借以传递消息的媒介,常用的有ActiveMQ,RabbitMQ,kafka。在实时消息系统中,MQ消息中间件广泛应用于各类消息系统中,在异步消息处理架构中,MQ几乎是必备的中间件。 同时,MQ的处理性能也将直接影响整个系统的性能。 核心知识ActiveMQ是消息队列技术,为解决高并发问题而生ActiveMQ基本...原创 2018-08-16 09:48:54 · 316 阅读 · 0 评论 -
【Java】集合基础
Java的集合类由两个接口派生:Collection 、MapCollection派生出3个接口:Set、Queue、ListHashSet:Set接口的典型实现HashSet的特点:1.元素顺序不能保证;2.不同步;3.集合元素可为nullHashSet添加元素:根据hashCode确定在HashSet中存储位置LinkedHashSet:HashSet的子类...原创 2018-08-27 08:17:24 · 291 阅读 · 1 评论 -
【freemarker】网页静态化
方案静态化时机:添加商品生成静态页面静态页面保存位置:保存磁盘的任意目录静态页面访问:使用nginx访问(tomcat性能较差) 流程添加商品后发送给MQ;订阅消息的多个工程生成以商品id为文件名的静态html;配置nginx访问各工程生成的静态html;配置反向代理服务器nginx转发请求访问各nginx服务器; 操作步骤1.修改...原创 2018-08-23 19:36:02 · 192 阅读 · 0 评论 -
【SSO】单点登录 & Session共享
单点登录背景:Tomcat集群可能因为两次访问的Session不一致导致登录失败,无法访问后续页面; 解决可以通过tomcat互相进行Session共享实现,但是这仅仅试用于小集群; 如果集群变大,就会有大量Session进行互相共享,负载很大;SSOSSO英文全称Single Sign On,单点登录。SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系...原创 2018-08-23 23:20:47 · 3470 阅读 · 0 评论 -
【ActiveMQ】使用Demo
Queue DemoQueueProducer Demo//1、创建一个连接工厂对象,需要指定服务的ip及端口。ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://192.168.21.80:61616");//2、使用工厂对象创建一个Connection对象。Connection co...原创 2018-08-21 10:14:40 · 269 阅读 · 0 评论 -
【ActiveMQ】Spring整合
1.添加pom<dependency> <groupId>org.apache.activemq</groupId> <artifactId>activemq-all</artifactId></dependency><dependency> <groupId&原创 2018-08-21 12:07:10 · 181 阅读 · 0 评论 -
【zookeeper】框架 & 数据模型
概念ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作。最终,将简单易用的接口和性能高效、功能稳定的系统提供给用户它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务数据发布/订阅 、 负载均衡 ...原创 2018-08-31 11:33:07 · 209 阅读 · 1 评论 -
【MyCat】安装与配置
概念Schema.xmlSchema.xml管理着MyCat的逻辑库、表、分片规则、DataNode以及DataSource< schema >标签:用于定义MyCat实例中的逻辑库< table >标签:定义了MyCat中的逻辑表< dataNode >标签:定义了MyCat中的数据节点,也就是数据分片< dataHost >标...原创 2018-08-24 11:33:30 · 311 阅读 · 0 评论 -
【Tomcat】热部署
修改Tomcat配置进入tomcat路径,cd tomcat-7.0/conf修改配置文件,vim tomcat-users.xml,见下文 [ tomcat-users.xml ]重启服务,bin/shutdown.sh 、bin/startup.sh[ tomcat-users.xml ]<role rolename="manager-gui" /><r...原创 2018-08-24 12:09:16 · 242 阅读 · 0 评论 -
【Spring】IoC容器实现
IoC容器初始化过程定位BeanDefinition的资源定位,由ResourceLoader通过统一的Resource接口完成,这个Resource对各种形式的BeanDefinition的使用都提供了统一的接口。载入把用户定义好的Bean表示成IoC容器内部的数据结构,而这个容器内部的数据结构就是BeanDefinition。注册通过调用BeanDefinitionRe...原创 2018-08-18 13:26:38 · 235 阅读 · 0 评论 -
【Redis】单机安装 & 集群搭建
单机安装安装步骤安装编译环境:yum install gcc-c++解压缩redis:tar zxvf redis-3.0.0.tar.gz进入redis目录:cd redis-3.0.0编译:make安装:make install PREFIX=/usr/local/redis前端启动进入启动文件夹:cd /usr/local/redis/bin前端启动redis...原创 2018-08-13 17:12:32 · 212 阅读 · 0 评论 -
【SpringBoot】Spring-Data-JPA
添加pom依赖&lt;dependency&gt; &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt; &lt;artifactId&gt;spring-boot-starter-data-jpa&lt;/artifactId&gt;&lt;/dep原创 2018-08-06 08:53:33 · 196 阅读 · 0 评论 -
【SpringBoot】简易搭建
概念Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。&nbsp;步骤1.初始化项目,访问 http://start.spring.io/,输入Group和Artifact,点击“Generate Project” 2.导入到I...原创 2018-07-22 23:04:11 · 220 阅读 · 9 评论 -
【Nginx】架构说明
概念 Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。 Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:...原创 2018-08-10 11:45:42 · 295 阅读 · 0 评论 -
【Nginx】配置说明
基本配置文件# 内核模块 ############################user nobody;worker_processes 1;#error_log logs/error.log;#error_log logs/error.log notice;#error_log logs/error.log info;#pid logs/n...原创 2018-08-10 15:58:19 · 191 阅读 · 0 评论 -
【Solr】整体说明
概念Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口。用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过Http Get操作提出查找请求,并得到XML格式的返回结果。Solr可以独立运行,运行在Jetty、Tomcat等这些Servlet容器中。Solr不提供构建UI的功能,Solr提供了一个管理界面...原创 2018-08-15 00:11:07 · 220 阅读 · 0 评论 -
【FastDFS】使用方法
准备工作1.导入FastDFS工程,maven install;2.添加依赖&lt;dependency&gt; &lt;groupId&gt;fastdfs_client&lt;/groupId&gt; &lt;artifactId&gt;fastdfs_client&lt;/artifactId&gt; &am原创 2018-08-12 08:48:33 · 525 阅读 · 0 评论 -
【Solr】安装教程
配置环境安装 jdk 环境安装 tomcat安装步骤解压solr:tar zxvf solr-4.10.3.tgz.tgz创建solr文件夹:mkdir /usr/local/solr复制tomcat:cp apache-tomcat-7.0.47 /usr/local/solr/tomcat -r复制war...原创 2018-08-15 14:05:45 · 177 阅读 · 0 评论 -
【FastDFS】架构说明
概念原创 2018-08-12 23:59:37 · 179 阅读 · 0 评论 -
【Solr】SolrJ使用
测试Demo1.添加Document Demopublic void addDocument() throws Exception { //创建一个SolrServer对象,创建一个连接。参数solr服务的url SolrServer solrServer = new HttpSolrServer("http://192.168.21.80:8080/solr/collec...原创 2018-08-15 17:39:34 · 191 阅读 · 0 评论 -
【Nginx】安装教程
配置安装环境yum install gcc-c++ , gcc环境,用于编译yum install -y pcre pcre-devel , Perl库,解析http模块中正则表达式yum install -y zlib zlib-devel , 多种压缩和解压缩,对http包内容进行gzipyum install -y openssl openssl-devel , 安全套接字层密码...原创 2018-08-08 17:36:57 · 238 阅读 · 0 评论 -
【zookeeper】工作机制 & 原理
会话机制会话概念zookeeper的连接与会话就是客户端通过实例化Zookeeper对象来实现客户端与服务端创建并保持TCP连接的过程会话状态在zookeeper客户端与服务端成功完成连接创建后,就创建了一个会话,zookeeper会话在整个运行期间的生命周期中,会在不同的会话状态中之间进行切换状态分为CONNECTING、CONNECTED、RECONNECTING、RE...原创 2018-08-31 20:26:50 · 314 阅读 · 0 评论 -
【Java】集合底层原理
整体&nbsp; &nbsp;Collection体系&nbsp;ArrayList底层结构:数组实现原理:当调用add()方法,先计算容器的大小,重新new一个新的数组大小,并将当前的数组所有元素复制到这个新的数组中,然后将最新的值放入数组的最后一个LinkedList底层结构:双向链表实现原理:链表由每一个节点构成,每一个节点包含指向前后两个节...原创 2018-08-29 09:35:29 · 564 阅读 · 0 评论 -
【Java】异常
异常体系Throwable :派生类为 Exception 、 ErrorError:虚拟机相关问题(系统崩溃、虚拟机错误、动态链失败 …)Exception:分为 Checked异常 和 Runtime异常&nbsp;异常处理机制1、抛出异常:try块中代码出现异常,系统自动生成一个异常对象,提交给Java运行环境 2、捕获异常:Java运行环境收到异常对象,自...原创 2018-08-29 09:59:49 · 184 阅读 · 0 评论 -
【Redis】缓存设计
缓存的收益和成本收益加速读写:缓存是全内存的,可以加速读写,优化用户体验降低后端负载:减少后端访问量和复杂计算,降低了负载成本数据不一致:缓存层和存储层的数据存在着一定时间窗口的不一致性,时间窗口和更新策略有关代码维护成本:需要同时处理缓存层和存储层的逻辑运维成本:例如Redis Cluster,增大了运维成本 缓存更新策略LRU / LFU /...原创 2018-09-09 09:52:56 · 1007 阅读 · 0 评论 -
【Redis】键管理
单个键管理键重命名(强行):rename key newkey 键重命名(key不存在情况):renamenx key newkey随机返回一个键:randomkey键过期(seconds秒后):expire key seconds 键过期(timestamp后):expire key timestamp查询过期时间(秒级):ttl key 查询过期时间(毫秒...原创 2018-09-06 11:39:14 · 217 阅读 · 0 评论 -
【Java】线程池
概念线程池好处降低资源消耗:重复利用线程,从而降低创建和销毁造成的消耗提高响应速度:任务到达时,可以不需要等到线程创建就能立即执行提高线程的可管理性:线程会耗尽资源,降低稳定性,线程池可以统一分配、调优、监控线程池组成线程池管理器(ThreadPool):用于创建并管理线程池,包括 创建线程池,销毁线程池,添加新任务工作线程(PoolWorker):...原创 2018-09-15 21:48:53 · 328 阅读 · 0 评论 -
【Redis】实用功能
慢查询分析修改配置1.修改配置文件# 超过20ms记录slowlog-slower-than 20000# 存储1000调慢查询记录slowlog-max-len 10002.命令动态修改config set slowlog-slower-than 20000config set slowlog-max-len 1000config rewrite...原创 2018-09-06 21:15:34 · 247 阅读 · 0 评论 -
【RabbitMQ】模型架构
&nbsp;MQ 作用解耦:通过基于数据的接口层,让不同的模块各自扩展修改,实现解耦冗余:MQ 可以把数据进行持久化直到它们被完全处理,规避了数据丢失的风险扩展性:通过解耦可以方便增加应用的处理过程,从而提高消息入队和处理的效率,实现扩展削峰:MQ可以支撑关键组件支撑突发访问压力,缓冲上下游流量差,实现削峰可恢复性:部分组件失效时,加入消息队列的消息仍然可以在系统恢复后处理...原创 2018-09-10 09:21:10 · 956 阅读 · 1 评论 -
【RabbitMQ】开发
连接 RabbitMQConnectionFactory factory = new ConnectionFactory();factory.setUsername(USERNAME);factory.setPassword(PASSWORD);factory.setVirtualHost(virtualHost);facotry.setHost(IP_ADRESS);...原创 2018-09-10 11:45:10 · 559 阅读 · 0 评论 -
【MySQL】索引
&nbsp;索引类型B-Tree 索引概念B-Tree意味着所有的值都是按顺序存储的,并且每一个叶子页到根的距离相同,B-Tree从索引的根节点开始搜索,根节点槽中存放了指向子节点的指针,通过比较节点页的值和要查找的值可以找到合适的指针进入下层子节点 B-Tree索引适用于全键值、键值范围或键前缀查找(最左前缀),因为节点有序,可以用于查询中 order by 操作有效...原创 2018-09-17 21:51:53 · 204 阅读 · 0 评论 -
【RabbitMQ】进阶总结
&nbsp;消息传递情况mandatorymandatory=true,如果交换器无法根据自身的类型和路由键找到一个符合条件的队列,RabbitMQ会调用 Basic.Return 命令将消息返回给生产者mandatory=false,上述情形下,RabbitMQ 将消息直接丢弃生产者通过调用 channel.addReturnListener 添加监听器接收返回结果...原创 2018-09-11 00:06:42 · 358 阅读 · 0 评论 -
【Redis】Replication
配置复制配置文件添加:slaveof {masterHost} {masterPort},随启动生效redis-server启动命令后:--slaveof {masterHost} {masterPort},生效直接使用命令:slaveof {masterHost} {masterPort},生效 其它命令查看复制状态:info replication断开复制...原创 2018-09-07 16:50:23 · 340 阅读 · 0 评论 -
【Redis】阻塞问题
Redis是单线程架构,在高并发的场景下,如果出现阻塞,会有严重后果,以下就是对阻塞问题的分析排查和解决 内在原因API 或 数据结构 使用不合理排查: 发现慢查询:执行 slowlog get {n}发现大对象:执行 redis-cli -h {ip} -p {port} --bigkeys解决:解决慢查询:调整命令为低算法度命令...原创 2018-09-07 18:39:26 · 1491 阅读 · 0 评论 -
【JVM】类加载机制
概念类加载机制:JVM把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型类型的加载、连接、初始化都是在程序运行期间完成,增加了性能开销,提高了灵活性每个Class文件代表类或接口在JVM中Class文件是一串二进制的字节流 类加载步骤类从加载到内存到使用完卸载,需要经历 加载 - 连接(...原创 2018-09-05 21:47:16 · 234 阅读 · 0 评论 -
【Dubbo】多协议 & 多版本
多协议Dubbo 允许配置多协议,在不同服务上支持不同协议或者同一服务上同时支持多种协议多服务 - 多协议 - 配置<dubbo:application name="world" /><dubbo:registry id="registry" address="10.20.141.150:9090" username="admin" password="hell原创 2018-09-03 11:46:18 · 426 阅读 · 0 评论 -
【Spring】框架
概念Spring 的核心是轻量级的容器,它实现了 IoC 容器、非侵入性的框架Spring提供 AOP 概念的实现方式,提供对持久层、事务的支持,提供对MVC Web框架的实现IoC组件之间的依赖关系由容器在运行时决定控制权由对象本身转向容器;由容器根据配置文件去创建实例并创建各个实例之间的依赖关系。IoC要求:容器尽量不要侵入到应用程序中去,应用程序本身可以依赖于抽...原创 2018-08-25 12:38:17 · 186 阅读 · 0 评论 -
【Spring】Bean 作用域 & 生命周期
作用域singleton:单例模式,在整个Spring IoC容器中,使用singleton定义的Bean将只有一个实例prototype:原型模式,每次通过容器的getBean方法获取prototype定义的Bean时,都将产生一个新的Bean实例request:对于每次HTTP请求,使用request定义的Bean都将产生一个新实例。只有在Web应用中使用Spring时,该作用域才有...原创 2018-08-25 17:24:35 · 190 阅读 · 0 评论