- 博客(68)
- 资源 (5)
- 收藏
- 关注
原创 分布式学习笔记1通过Java自己实现简单的HTTP RPC框架
什么是RPC?RPC(Remote Procedure Call Protocol)——远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。在OSI网络通信模型中,RPC跨越了传输层和应用层。RPC使得开发包括网络分布式多程序在内的应用程序更加容易。
2017-05-01 14:50:57
2998
原创 SpringBoot学习笔记(7) SpringBoot整合Dubbo(使用yml配置)
因为使用了yml或者properties的方式来配置dubbo, 所以我们还需要dubbo的AnnotionBean类,来扫描指定包下面的类.这里集成dubbo的时候和前面集成其他东西的是差不多的,不过在使用了AnnotionBean类的时候,因为AnnotionBean类实现了BeanFactoryPostProcessor接口.
2017-03-12 21:09:22
52921
14
原创 SpringBoot学习笔记(6) SpringBoot数据缓存Cache [Guava和Redis实现]
Spring定义了org.springframework.cache.CacheManager和org.springframework.cache.Cache接口来统一不同的缓存技术,而 SpringBoot为我们提供了自动配置多个CacheManager的实现
2016-09-21 15:50:22
42500
3
原创 SpringBoot学习笔记(5) Spring Boot集成Redis实现自动配置
通过上面一些笔记的介绍, 我们可以自己动手去集成Redis, 没有什么难度的还有Spring Boot官方提供了Spring-Data-Redis的Starter POM
2016-09-20 13:37:09
74826
1
原创 SpringBoot学习笔记(4) Spring Boot 集成 Mybatis
Mybatis 官方提供了 mybatis-spring-boot-starterhttps://github.com/mybatis/spring-boot-starterhttp://www.mybatis.org/spring-boot-starter/mybatis-spring-boot-autoconfigure/
2016-07-24 14:14:51
67592
10
原创 SpringBoot学习笔记(3) Spring Boot 运行原理,自动配置
在创建SpringApplication的时候初始化了一些ApplicationContext和ApplicationListener主要通过getSpringFactoriesInstances方法来实现
2016-07-24 13:36:33
36816
6
原创 SpringBoot学习笔记(2) Spring Boot的一些配置
Spring Boot允许使用properties文件、yaml文件或者命令行参数作为外部配置使用@Value注解,可以直接将属性值注入到你的beans中,并通过Spring的Environment抽象或绑定到结构化对象来访问。以前使用Spring的时候需要通过@PropertySource指明properties文件位置,然后通过@value注入.
2016-07-24 13:15:05
73112
原创 SpringBoot学习笔记(1) Spirng boot 初探
Spirng boot可以以jar包的形式独立运行,运行一个Spring boot项目只需通过java -jar xx.jar来运行,Spring boot 还内嵌了servlet容器,提供一系列的 starter pom 来简化maven 的依赖加载,Spirng boot还会自动配置spring ,提供基于 http、ssh、telnet 对运行的项目进行监控
2016-07-24 12:58:24
6725
2
原创 Redis分布式解决方案-Coids
Codis 是一个分布式 Redis 解决方案, 对于上层的应用来说, 连接到 CodisProxy 和连接原生的 Redis Server 没有明显的区别 (不支持的命令列表), 上层应用可以像使用单机的 Redis 一样使用, Codis 底层会处理请求的转发, 不停机的数据迁移等工作, 所有后边的一切事情, 对于前面的客户端来说是透明的, 可以简单的认为后边连接的是一个内存无限大的 Redis 服务.
2016-05-15 20:55:21
16419
原创 Redis学习笔记(五) 基于Redis 3.0的集群
虽然我们搭建了一个主从架构,但是每个Redis都要保存相同的数据,这样容易造成水桶效应.而且主从架构频繁TCP连接断开也可能会对服务器和网络带来很大负担。 如果我们使用的是java客户端jedis中的ShardedJedisPool话,那么我们在增加新的Redis服务器之后,我们以前保存在其他Redis服务器上面的数据就有可能访问不到.(因为ShardedJedisPool它是采用hash算法来分布Redis的Key,当我们增加Redis服务器之后,整个hash计算出来的结果已经是不一样了.) Re
2015-12-30 17:13:06
6813
1
原创 Redis学习笔记(四) Redis哨兵(sentinel)
Redis 的 哨兵(sentinel) 系统用于管理多个 Redis 服务器,该系统执行以下三个任务:• 监控(Monitoring): 哨兵(sentinel) 会不断地检查你的Master和Slave是否运作正常。• 提醒(Notification):当被监控的某个 Redis出现问题时, 哨兵(sentinel) 可以通过 API 向管理员或者其他应用程序发送通知。• 自动故障迁移(Automatic failover):当一个Master不能正常工作时,哨兵(sentinel) 会开始一次自
2015-12-30 16:39:51
28386
2
原创 Redis学习笔记(三) Redis主从架构和主从从架构 (1)
Redis的主从复制功能非常强大,一个master可以拥有多个slave,而一个slave又可以拥有多个slave,如此下去,形成了强大的多级服务器集群架构. 可以避免Redis单点故障,构建读写分离架构,满足读多写少的应用场景.
2015-12-30 16:12:01
14785
1
原创 Redis学习笔记(二) Redis持久化
Redis的所有数据都是保存在内存中,然后不定期的通过异步方式保存到磁盘上(这称为“半持久化模式”);也可以把每一次数据变化都写入到一个文件里面(这称为“全持久化模式”)。这里主要介绍这两种持久化方法RDB 方式 和 AOF方式可以单独的使用其中一种方式,也可以将两者结合起来一起使用在这种情况下,当 Redis 重启时,它会优先使用 AOF 文件来还原数据集,因为 AOF 文件保存的数据集通常比 RDB 文件所保存的数据集更完整. 你甚至可以关闭持久化功能,让数据只在服务器运行时存在. R
2015-12-22 09:01:02
1917
原创 Redis学习笔记(一) Redis安装与基本使用(windows)
Redis是一个开源的高性能键值对数据库.它通过提供多种键值数据类型来适应不同场景下的存储需求,并且借助许多高层级的接口使其可以胜任,如缓存、队列系统的不同角色.将键值对数据类型存放在内存中的一个数据库.
2015-12-21 13:03:07
1795
原创 JAVA高并发学习笔记(四) 无锁
Java当中提供了一些有关无锁类的使用,在底部使用比较交换指令来实现。一般来说有锁的方式,会导致线程可能会阻塞、挂起,在进入临界区之前由系统对它进行阻塞和挂起,相对来讲无锁的性能会更好些,除非是人为的挂起线程,否则通过无锁的方式线程是不可能被挂起的只会不断的重试。如果线程被挂起,做一次线程的上下文切换可能需要8万个时钟周期,但是如果做重试的操作(比如循环体),除非重试的操作过多,否则一般基本上
2015-09-09 08:29:51
3222
原创 JAVA高并发学习笔记(三) JMM(Java内存模型)
原子性是指一个操作是不可中断的。即使是在多个线程一起执行的时候,一个操作一旦开始,就不会被其他线程干扰。在并发时,程序的执行可能就会出现乱序可见性是指当一个线程修改了某一个共享变量的值,其他线程是否能够立即知道这个修改可能由各个环节优化产生,没有办法从一个线程当中看另外一个线程一个变量执行到什么程度去推测另外一个变量的情况。
2015-09-08 17:56:40
1218
原创 JAVA高并发学习笔记(二) 多线程基础
线程是进程(程序在计算机上的一次执行活动)内的执行单元进程是以独立于其他进程的方式运行的,进程间是互相隔离的。一个进程无法直接访问另一个进程的数据。进程的资源诸如内存和CPU时间片都是由操作系统来分配。线程又被称为轻量级进程。每个线程有它独自的调用栈, 但是在同一进程下的线程又能互相访问它们间的共享数据。每个线程都有它独自的缓存。如果一个线程读取了某些共享数据,那么它将这些数据存放在自己的缓存中以供将来再次读取。
2015-09-07 18:28:54
1262
原创 JAVA高并发学习笔记(一)
1.1.为什么需要并行① 业务需要业务模型需要一个逻辑执行的执行单元让不同线程承担不同的业务工作简化任务调度适合计算密集型② 性能问题多线程的程序在多核cpu上面性能要好一些cpu单核频率性能已经基本上无法提升了通过多核来提升处理能力
2015-09-07 16:04:51
2422
原创 springMVC学习笔记汇总(持续更新)
springMVCPDF 下载地址:http://download.youkuaiyun.com/detail/a67474506/8771789 (1-11章)视频教程地址:http://pan.baidu.com/s/1kTuyZtX
2015-06-07 14:00:43
1601
原创 SpringMVC 学习笔记(十一) SpirngMVC运行流程
springMVC 通过DispatcherServlet对请求进行处理,介绍整个请求处理流程,HandlerExecutionChain处理,拦截器调用过程,异常处理,渲染视图配置了<mvc:default-servlet-handler/> 会产生的影响等
2015-06-07 13:44:39
1573
原创 SpringMVC 学习笔记(十) 异常处理HandlerExceptionResolver
Spring MVC 通过 HandlerExceptionResolver 处理程序的异常,包括 Handler 映射、数据绑定以及目标方法执行时发生的异常。ExceptionHandlerExceptionResolver 主要处理 Handler 中用 @ExceptionHandler 注解定义的方法。在异常及异常父类中找到 @ResponseStatus 注解,然后使用这个注解的属性进行处理。对一些特殊的异常进行处理,比如NoSuchRequestHandlingMethodExcepti
2015-06-07 13:15:06
14519
原创 SpringMVC 学习笔记(九) 自定义拦截器
Spring MVC也可以使用拦截器对请求进行拦截处理,用户 可以自定义拦截器来实现特定的功能,自定义的拦截器必须实现HandlerInterceptor接口① preHandle():这个方法在业务处理器处理请求之前被调用,在该方法中对用户请求 request 进行处理。如果程序员决定该拦截器对请求进行拦截处理后还要调用其他的拦截器,或者是业务处理器去进行处理,则返回true;如果程序员决定不需要再调用其他的组件去处理请求,则返回false。② postHandle():这个方法在业务处理器处理完请求
2015-06-06 19:13:45
1421
原创 SpringMVC 学习笔记(八)文件上传
Spring MVC 为文件上传提供了直接的支持,这种支持是通过即插即用的 MultipartResolver 实现的。Spring 用Jakarta Commons FileUpload 技术实现了一个MultipartResolver 实现类:CommonsMultipartResovlerSpring MVC 上下文中默认没有装配 MultipartResovler,因此默认情况下不能处理文件的上传工作,如果想使用 Spring的文件上传功能,需现在上下文中配置 MultipartResolver
2015-06-06 19:09:42
1510
原创 SpringMVC 学习笔记(七) JSON返回:HttpMessageConverter作用
通过jackson返回JSONHttpMessageConverter<T> 是 Spring3.0 新添加的一个接口,负责将请求信息转换为一个对象(类型为 T),将对象(类型为 T)输出为响应信息使用 HttpMessageConverter<T> 将请求信息转化并绑定到处理方法的入参中或将响应结果转为对应类型的响应信息,Spring 提供了两种途径:– 使用 @RequestBody / @ResponseBody 对处理方法进行标注– 使用 HttpEntity<T> / ResponseEn
2015-06-04 16:54:23
11280
1
原创 SpringMVC 学习笔记(六) 数据绑定和JSR校验
① Spring MVC 主框架将 ServletRequest 对象及目标方法的入参实例传递给 WebDataBinderFactory 实例,以创建 DataBinder 实例对象② DataBinder 调用装配在 Spring MVC 上下文中的ConversionService 组件进行数据类型转换、数据格式化工作。将 Servlet 中的请求信息填充到入参对象中③ 调用 Validator 组件对已经绑定了请求消息的入参对象进行数据合法性校验,并最终生成数据绑定结果BindingData 对
2015-06-04 16:35:58
2884
原创 SpringMVC 学习笔记(五) 基于RESTful的CRUD
当提交的表单带有_method字段时,通过HiddenHttpMethodFilter 将 POST 请求转换成 DELETE、PUT请求,加上@PathVariable注解从而实现 RESTful 风格的CRUD
2015-06-04 16:02:41
9459
原创 SpringMVC 学习笔记(四) 处理模型数据
Spring MVC 提供了以下几种途径输出模型数据:– ModelAndView: 处理方法返回值类型为 ModelAndView时, 方法体即可通过该对象添加模型数据– Map及Model:入参为org.springframework.ui.Model、org.springframework.ui.ModelMap 或 java.uti.Map 时,处理方法返回时,Map中的数据会自动添加到模型中。– @SessionAttributes: 将模型中的某个属性暂存到HttpSession 中,以便
2015-06-04 15:49:50
8760
原创 SpringMVC 学习笔记(三) 使用ServletAPI 和 实体 做为参数
Spring MVC 会按请求参数名和 实体类属性名进行自动匹配,自动为该对象填充属性值。支持级联属性spirngMVC 支持 9种 参数javax.servlet.ServletRequestjavax.servlet.ServletResponsejavax.servlet.http.HttpSessionjava.security.Principaljava.util.Localejava.io.InputStreamjava.io.Readerjava.io.Out
2015-06-04 15:19:56
3284
原创 SpringMVC 学习笔记(二) @RequestMapping、@PathVariable等注解
SpringMVC 使用 @RequestMapping 注解为控制器指定可以处理那些URL 请求带占位符的 URL 是 Spring3.0 新增的功能,该功能在SpringMVC 向 REST 目标挺进发展过程中具有里程碑的意义通过 @PathVariable 可以将 URL 中占位符参数绑定到控制器处理方法的入参中:URL 中的 {xxx} 占位符可以通过@PathVariable("xxx") 绑定到操作方法的入参中。
2015-06-04 14:39:36
68243
6
原创 SpringMVC 学习笔记(一) Hello World
Spring MVC 是目前最主流的MVC 框架之一Spring MVC 通过一套 MVC 注解,让 POJO 成为处理请求的控制器,而无须实现任何接口。支持 REST 风格的 URL 请求采用了松散耦合可插拔组件结构,比其他 MVC 框架更具扩展性和灵活性
2015-06-04 14:26:16
3238
1
原创 JVM学习笔记1-jvm的基本结构
不管是YGC 还是 FGC 都会是程序停止,因为新生代区域里面的对象占用的内存比较小GC清理的数据较快,所以程序YGC较快结束程序很快就回复执行,而年老代占用的内存多,所以FGC会执行较长的一段时间,程序会停止较长的时间,应该尽量避免FGC执行的次数来提高程序的性能
2014-11-21 11:04:21
1207
原创 zookeeper学习笔记1-zk简单安装及zkCli客户端命令
zookeeper 是一种为分布式应用提供一致性服务的协调系统,是开源 hadoop 项目下的一个子项目。zookeeper的安装部署总共有3种:单机模式(stand-alone):单机单 server集群模式:多机多 server,形成集群伪集群模式:单机多个 server,形成伪集群
2014-11-16 20:27:21
5619
原创 activiti入门3排他网关,并行网管,包含网关,事件网关
网关用来控制流程的流向 网关可以消费也可以生成token。网关显示成菱形图形,内部有有一个小图标。 图标表示网关的类型。这里主要 介绍下 排他网关, 并行网关 , 和包含网关
2014-10-24 15:53:07
39184
6
原创 activiti入门2流程引擎的API和服务基础
RepositoryService : 管理和控制发布包和流程定义(包含了一个流程每个环节的结构和行为)的操作除此之外,服务可以查询引擎中的发布包和流程定义。暂停或激活发布包,对应全部和特定流程定义。 暂停意味着它们不能再执行任何操作了,激活是对应的反向操作。获得多种资源,像是包含在发布包里的文件, 或引擎自动生成的流程图。获得流程定义的pojo版本, 可以用来通过java解析流程,而不必通过xml。RuntimeService :负责启动一个流程定义的新实例,获取和保存流程变量,查询流程实例和
2014-10-23 15:49:41
6688
原创 Quartz入门实例14-让Quartz的Job使用Spring注入的Bean
当Spring在加载配置文件时,如果配置文件中有Bean实现了ApplicationContextAware接口时Spring会自动调用setApplicationContext方法我们可以通过这个获取Spring上下文然后在创建Job时让Job自动注入到Spring容器中
2014-08-06 15:38:15
11988
1
原创 Quartz入门实例13-spirng4和quartz2实现动态任务调用
Quartz入门实例13-spirng4和quartz2实现动态任务调用
2014-08-04 14:34:27
4483
9
原创 Quartz入门实例11-Quartz的远程方法调用
在Resource目录下添加2个properties文件client.properties
2014-08-01 10:51:59
6216
springMVC学习笔记
2015-06-04
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人