
java后端框架等技术
谷神通
天子望气,谈笑杀人。
展开
-
分布式定时任务对比(elastic-job , xxl-job ,quartz , saturn, opencron , antares)
分布式定时任务对比 - sharedCode源码交流 - 优快云博客https://blog.youkuaiyun.com/u012394095/article/details/79470904分布式定时任务对比1. 什么是分布式定时任务把分散的,可靠性差的计划任务纳入统一的平台,并实现集群管理调度和分布式部署的一种定时任务的管理方式。叫做分布式定时任务。2. 常见开源方案...转载 2019-07-11 12:28:19 · 6321 阅读 · 3 评论 -
Netty学习路线总结
Netty学习路线总结序之前开过品味性能系列、Mysql学习系列,颇为曲高和寡。都是讲理论,很少有手把手深入浅出的文章。不过确实我就这脾气,文雅点的说法叫做“伪雅”,下里巴人叫做“装逼”。学习资料本篇文章,打算总结下学习过程,分析学习要点。关于netty的资料颇多,学习起来未免杂乱。对于初学者麻烦点在于难以找到重点,再此则推荐一个学习路线。Netty 实战(精髓) Ne...转载 2018-11-09 16:57:54 · 3173 阅读 · 2 评论 -
spring-redis序列化
(一)spring data redis 提供了多种可选择策略(RedisSerializer)JdkSerializationRedisSerializer:POJO对象的存取场景,使用JDK本身序列化机制,将pojo类通过ObjectInputStream/ObjectOutputStream进行序列化操作,最终redis-server中将存储字节序列。是目前最常用的序列化策略。 ...转载 2018-09-11 16:12:10 · 1394 阅读 · 0 评论 -
性能测试应该怎么做?
偶然间看到了阿里中间件Dubbo的性能测试报告,我觉得这份性能测试报告让人觉得做这性能测试的人根本不懂性能测试,我觉得这份报告会把大众带沟里去,所以,想写下这篇文章,做一点科普。首先,这份测试报告里的主要问题如下:1)用的全是平均值。老实说,平均值是非常不靠谱的。2)响应时间没有和吞吐量TPS/QPS挂钩。而只是测试了低速率的情况,这是完全错误的。3)响应时间和吞吐量没有和成功率挂钩。为什么平均值...转载 2018-07-12 14:13:42 · 1974 阅读 · 0 评论 -
Dubbo&hsf&Spring-cloud的区别
Dubbo:简介:Dubbo是一个分布式服务框架,以及SOA治理方案。其功能主要包括:高性能NIO通讯及多协议集成,服务动态寻址与路由,软负载均衡与容错,依赖分析与降级等。底部NIO基于netty框架; HSF:简介:HSF提供的是分布式服务开发框架,taobao内部使用较多,总体来说其提供的功能及一些实现基础:1.标准Service方式的RPC 1)、Service定义:基于OSGI的...转载 2018-07-12 11:48:18 · 922 阅读 · 0 评论 -
shiro学习
《跟我学Shiro》PDF完结版下载博客分类: 跟我学Shiro跟我学Shiro 历经三个月左右时间,《跟我学Shiro》系列教程已经完结,暂时没有需要补充的内容,因此生成PDF版供大家下载。最近项目比较紧,没有时间解答一些疑问,暂时无法回复一些问题,很抱歉,不过可以加群(334194438/348194195)一起讨论问题。 点击下载《跟我学Shiro》教程PDF版。学习交流使用,请勿用于其他任...转载 2018-05-26 18:29:38 · 237 阅读 · 0 评论 -
公钥,私钥和数字签名理解
一、公钥加密 假设一下,我找了两个数字,一个是1,一个是2。我喜欢2这个数字,就保留起来,不告诉你们(私钥),然后我告诉大家,1是我的公钥。我有一个文件,不能让别人看,我就用1加密了。别人找到了这个文件,但是他不知道2就是解密的私钥啊,所以他解不开,只有我可以用数字2,就是我的私钥,来解密。这样我就可以保护数据了。我的好朋友x用我的公钥1加密了字符a,加密后成了b,放在网上。别人偷到了这个文件,但...转载 2018-04-20 14:34:40 · 552 阅读 · 0 评论 -
TCP三次握手和四次挥手以及缺陷(详细)
建立TCP需要三次握手才能建立,而断开连接则需要四次握手。整个过程如下图所示:1、TCP连接建立——三次握手几个概念: 【1】seq:序号,占4个字节,范围[0,4284967296],由于TCP是面向字节流的,在一个1个TCP连接中传送字节流中国的每一个字节都按照顺序编号,此外序号是循环使用的 【2】ACK: 仅当ACK=1时确认字段才有效,当ACK=0时确认字段无效,并且TCP规定,在连接建立...转载 2018-04-18 16:03:54 · 2094 阅读 · 0 评论 -
幂等、分布式锁
一、幂等性1.1 防范POST重复提交1.2 接口api的幂等性支持1.3 幂等的技术方案1.3.1 唯一索引,防止新增脏数据1.3.2 token机制,防止页面重复提交1.3.3 使用唯一id解决重复提交问题(类似redis的删除token判断)1.3.4 悲观锁1.3.5 乐观锁1.3.6 分布式锁二、分布式锁2.1 Redis的SETNX通过setnx和getset实现分布式锁通过setnx...转载 2018-04-11 15:14:43 · 374 阅读 · 0 评论 -
分布式锁的几种实现方式~
分布式锁的几种实现方式~目前几乎很多大型网站及应用都是分布式部署的,分布式场景中的数据一致性问题一直是一个比较重要的话题。分布式的CAP理论告诉我们“任何一个分布式系统都无法同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance),最多只能同时满足两项。”所以,很多系统在设计之初就要对这三者做出取舍。在互联网领域的绝大多数的...转载 2018-04-11 14:56:11 · 199 阅读 · 0 评论 -
spring的aop原理
0、前言Spring 提供了AOP(Aspect Oriented Programming) 的支持, 那么,什么是AOP呢?本文将通过一个另外一个角度来诠释AOP的概念,帮助你更好地理解和使用Spring AOP。读完本文,你将了解到:1. Java程序运行在JVM中的特征2. Java程序的执行流【了解AOP、连接点(Join Point)、切入点(point cut) 的概念...转载 2018-04-10 18:14:13 · 354 阅读 · 0 评论 -
windows下ES和head插件的安装
ES安装成功后,是6.3.0的版本,装head插件时,发现好多教程都不适用,终于找到一篇可以适用的,特此记录下来。原文地址:https://blog.youkuaiyun.com/qq3401247010/article/details/78742524 ES6.0版本安装head插件1.1 前言 不知道是我电脑问题还是最近的开源软件都比较**,mysql和elasticse...转载 2018-11-02 16:12:02 · 1249 阅读 · 2 评论 -
kibana中文教程
kibana中文教程:https://www.elastic.co/guide/cn/kibana/current/introduction.html转载 2018-11-07 10:52:12 · 8088 阅读 · 0 评论 -
netty
转自:https://juejin.im/post/5bdaf8ea6fb9a0227b02275a?utm_source=tuicool&utm_medium=referral#heading-1Netty到底是什么从HTTP说起有了Netty,你可以实现自己的HTTP服务器,FTP服务器,UDP服务器,RPC服务器,WebSocket服务器,Redis的Proxy服务器,...转载 2019-04-16 16:54:32 · 215 阅读 · 0 评论 -
Redis常见面试题
介绍:Redis 是一个开源的使用 ANSI C 语言编写、遵守 BSD 协议、支持网络、可基于内存亦可持久化的日志型、Key-Value 数据库,并提供多种语言的 API的非关系型数据库。传统数据库遵循 ACID 规则。而 Nosql(Not Only SQL 的缩写,是对不同于传统的关系型数据库的数据库管理系统的统称) 一般为分布式而分布式一般遵循 CAP 定理。Github 源码:h...转载 2019-02-18 14:40:40 · 250 阅读 · 0 评论 -
activemq、rabbitmq、kafka原理和比较
一、activemq 虽然是java写的消息队列,但是提供Java, C, C++, C#, Ruby, Perl, Python, PHP各种客户端,所以语言上是没什么问题的。配置和使用,基本上是java xml这一套。同时对jms、spring之类的支持很友好。 而且因为是Java写的,所以可以作为一个jar包,放到java项目里,用代码启动和配置,这个对于java开发者而...转载 2019-02-18 13:26:42 · 216 阅读 · 0 评论 -
RabbitMQ消息确认(发送确认,接收确认)
消息确认每个 Consumer 可能需要一段时间才能处理完收到的数据。如果在这个过程中,Consumer 出错或异常退出,而数据还没有处理完成,那么这段数据就丢失了。因为我们采用 no-ack 的方式进行确认,也就是说,每次 Consumer 接到数据后,不管是否处理完成,RabbitMQ Server 会立即把这个 Message 标记为完成,然后从 Queue 中删除。为了保证数据不被...转载 2019-01-18 17:13:20 · 4204 阅读 · 0 评论 -
rabbitmq集成spring的xml配置和java代码
RabbitMQ官方支持以下五种队列类型。队列名称 队列模型 适用 简单队列 否 工作队列 否 发布/订阅模式 是 路由模式 是 主题模式 是 使用依赖:<!-- https://mvnrepository.com/artifact/org.springframework...原创 2019-01-17 15:35:56 · 2200 阅读 · 0 评论 -
centos7上rabbitmq搭建
RabbitMQ是目前使用广泛的消息队列中间件。当前使用的版本为3.7.9Erlang有两种安装Erlang的方式。一种为安装RabbitMQ专属Erlang,只包含了RabbitMQ所需要的组件,由RabbitMQ团队提供;另一种为安装完整版本的Erlang。这里采用第一种方案创建仓库文件sudo vim /etc/yum.repos.d/rabbitmq-erlang....原创 2019-01-17 15:24:44 · 150 阅读 · 0 评论 -
分布式文件系统FastDFS详解
分布式文件系统FastDFS详解为什么要使用分布式文件系统呢?嗯,这个问题问的好,使用了它对我们有哪些好处?带着这个问题我们来往下看:单机时代初创时期由于时间紧迫,在各种资源有限的情况下,通常就直接在项目目录下建立静态文件夹,用于用户存放项目中的文件资源。如果按不同类型再细分,可以在项目目录下再建立不同的子目录来区分。例如: resources\static\file、 resou...转载 2018-12-04 14:00:14 · 772 阅读 · 0 评论 -
基于mybatis拦截器实现数据权限
数据权限是很多系统常见的功能,实现的方式也是很多的,最近在做项目的时候,自己基于mybatis拦截器做了一个数据权限的功能。**功能设计a) 需要做数据权限功能的表加上一个权限id字段。权限id可以不仅仅是组织,还可以是其他自定义的字段,用来做数据权限,如: 主键Id 字段1 字段2 字段3 ...原创 2018-12-02 11:41:38 · 17527 阅读 · 5 评论 -
IOC的实现原理—反射与工厂模式
反射机制概念 我们考虑一个场景,如果我们在程序运行时,一个对象想要检视自己所拥有的成员属性,该如何操作?再考虑另一个场景,如果我们想要在运行期获得某个类的Class信息如它的属性、构造方法、一般方法后再考虑是否创建它的对象,这种情况该怎么办呢?这就需要用到反射! 我们.java文件在编译后会变成.class文件,这就像是个镜面,本身是.java,在镜中是.class,他...转载 2018-04-10 17:30:59 · 387 阅读 · 0 评论 -
Dubbo背景和简介以及入门demo
Dubbo背景和简介Dubbo开始于电商系统,因此在这里先从电商系统的演变讲起。单一应用框架(ORM) 当网站流量很小时,只需一个应用,将所有功能如下单支付等都部署在一起,以减少部署节点和成本。 缺点:单一的系统架构,使得在开发过程中,占用的资源越来越多,而且随着流量的增加越来越难以维护 垂直应用框架(MVC) 垂直应用架构解决了单一应用架构所面临的扩容问题,流量能够分散到各个子系统当中,且系统的...转载 2018-04-10 17:03:43 · 188 阅读 · 0 评论 -
Java Servlet完全教程
------------好久没用了,回顾熟悉一下,毕竟底层的东西不能丢------------Java Servlet完全教程Servlet 是一些遵从Java Servlet API的Java类,这些Java类可以响应请求。尽管Servlet可以响应任意类型的请求,但是它们使用最广泛的是响应web方面的请求。 Servlet必须部署在Java servlet容器才能使用。转载 2016-08-30 11:21:22 · 483 阅读 · 0 评论 -
spring注解配置原理浅析
除了使用xml文件配置以外,spring还支持使用注解实现JavaBean的配置,其具体实现方式网上已经介绍的很详细,这里就不再赘述了。本文将主要通过源代码解析spring注解配置JavaBean的全过程。这里主要分析的是@component和@Autowired这两个注解。 首先要明确这样一个问题,注解配置和xml文件配置二者并“完全”不冲突。说不完全是因为如果使用@compone转载 2016-08-17 14:54:53 · 4738 阅读 · 1 评论 -
Tomcat 日志概述
1 Tomcat 日志概述Tomcat 日志信息分 为 两 类 :一是运行中的日志,它主要 记录 运行的一些信息,尤其是一些异常 错误 日志信息 。二是 访问 日志信息,它 记录 的 访问 的 时间 , IP , 访问 的 资 料等相 关 信息。2 Tomcat 日志配置2.1 访问日志的配置默认 tomcat 不记录访问日志,如下方法可以使转载 2016-07-18 11:52:48 · 6022 阅读 · 0 评论 -
cronexpression 详解
一、先看配置文件Xml代码 bean id="taskJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> property name="targetObject"> -->转载 2016-06-16 18:56:34 · 6799 阅读 · 0 评论 -
Spring定时任务的几种实现
近日项目开发中需要执行一些定时任务,比如需要在每天凌晨时候,分析一次前一天的日志信息,借此机会整理了一下定时任务的几种实现方式,由于项目采用spring框架,所以我都将结合spring框架来介绍。一.分类从实现的技术上来分类,目前主要有三种技术(或者说有三种产品):Java自带的java.util.Timer类,这个类允许你调度一个java.util.T转载 2016-06-16 16:50:43 · 431 阅读 · 0 评论 -
spring事务管理
现在说下事务spring提供俩种事务管理方式1.annotation(注解)2.xml配置(aop技术) 贴下配置文件Xml代码 xml version="1.0" encoding="UTF-8"?> beans xmlns="http://www.springframework.org/schema/beans"转载 2016-06-29 22:14:41 · 466 阅读 · 0 评论 -
MyBatis传入参数与parameterType
MyBatis传入参数与parameterTypeDecember 25, 2013DatabaseJavaopenwaresMybatis的Mapper文件中的select、insert、update、delete元素中有一个parameterType属性,用于对应的mapper接口方法接受的参数类型。可以接受的参数类型有基本类型和复杂类型。mapper接口方法一般接转载 2016-06-13 20:57:37 · 9902 阅读 · 1 评论 -
MyBatis Generator自动生成代码文件
MyBatis Generator中文文档MyBatis Generator中文文档地址:http://mbg.cndocs.tk/该中文文档由于尽可能和原文内容一致,所以有些地方如果不熟悉,看中文版的文档的也会有一定的障碍,所以本章根据该中文文档以及实际应用,使用通俗的语言来讲解详细的配置。本文中所有节点的链接都是对应的中文文档地址,可以点击查看详细信转载 2016-06-13 20:46:03 · 2830 阅读 · 0 评论 -
Spring 使用注解方式进行事务管理
使用步骤:步骤一、在spring配置文件中引入命名空间 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="http://www.springframework.org/schem原创 2016-05-09 17:26:27 · 875 阅读 · 0 评论 -
Spring4 MVC入门教程
本教程是基于以下工具写的:MyEclipse 10Spring 4.0.3.RELEASE2- 预览应用程序执行流程Spring MVC DispatcherServlet 读取 xml 配置文件的原则:{servlet-name} ==> /WEB-INF/{servlet-name}-servlet.xml如果你不想用 Sprin转载 2016-05-04 19:24:59 · 4869 阅读 · 0 评论 -
面向过程和面向对象
1、引言 机算机科学是一门应用科学,它的知识体系是典型的倒三角结构,所用的基础知识并不多,只是随着应用领域和方向的不同,产生了很多的分支,所以说编程并不是一件很困难的事情,一个高中生经过特定的训练就可以做得到。但是,会编程和编好程绝对是两码事,同样的程序员,有的人几年之后成为了架构师,有的人却还在不停地coding,只不过ctrl-c、ctrl-v用得更加纯熟了。在中国,编程人员最终的归途转载 2016-08-30 17:25:44 · 3358 阅读 · 0 评论 -
定时任务-在spring中配置quartz
使用的版本Spring4.04+Quartz2.2.3,关于jar包自行下载。详细需要以下几个步骤来完成:1. 定义要执行的Job类2. 定义quartz的配置文件applicationContext-quartz.xml 2.1 定义要调用的对象和对象的方法 2.2 在触发器中配置使用该方法的时间 2.3 在总管类中添加该任务转载 2016-12-12 16:47:08 · 8575 阅读 · 0 评论 -
spring cloud学习,转载自纯洁的微笑
spring Cloud ExamplesDemo website:http://www.ityouknow.com/Spring Boot学习示例代码Spring Cloud 中文索引参与贡献 | Englishgithub地址码云地址Spring Cloud使用的各种示例,以最简单、最实用为标准spring-cloud-eureka:eureka server...转载 2018-04-10 16:53:51 · 992 阅读 · 0 评论 -
Nginx配置详解
Nginx配置详解序言Nginx是lgor Sysoev为俄罗斯访问量第二的rambler.ru站点设计开发的。从2004年发布至今,凭借开源的力量,已经接近成熟与完善。Nginx功能丰富,可作为HTTP服务器,也可作为反向代理服务器,邮件服务器。支持FastCGI、SSL、Virtual Host、URL Rewrite、Gzip等功能。并且支持很多第三方转载 2017-04-27 16:09:59 · 351 阅读 · 0 评论 -
Lucene 实例教程(四)之检索方法总结
转自作者:永恒の_☆ 地址:http://blog.youkuaiyun.com/chenghui0317/article/details/10281311最近研究数据库模糊查询,发现oracle数据库中虽然可以用instr来替代like提高效率,但是这个效率提高是有瓶颈的,可以用搜索引擎技术来进一步提高查询效率一、 前言 前面简单介绍了如何使用Lucene删除转载 2016-12-19 16:48:43 · 470 阅读 · 0 评论 -
Lucene 实例教程(三)之操作索引
转自作者:永恒の_☆ 地址:http://blog.youkuaiyun.com/chenghui0317/article/details/10281311最近研究数据库模糊查询,发现oracle数据库中虽然可以用instr来替代like提高效率,但是这个效率提高是有瓶颈的,可以用搜索引擎技术来进一步提高查询效率一、 前言 前面简单介绍了如何使用Lucene将索转载 2016-12-19 16:46:54 · 1187 阅读 · 0 评论 -
Lucene 实例教程(一)初识Lucene
作者:永恒の_☆ 地址:http://blog.youkuaiyun.com/chenghui0317/article/details/10052103一、Lucene的介绍 Lucene是一个全文检索的框架,apache组织提供了一个用Java实现的全文搜索引擎的开源项目,其功能非常的强大,api非常简单,并且有了全文检索的功能支持可以非常方便的实现根据关键字来搜索整个应用系统的内容转载 2016-12-19 16:35:05 · 699 阅读 · 0 评论