摘要: 本系列文章翻译自:http://tutorials.jenkov.com/netty/index.html 由Jakob Jenkov于2016-2017年所写,共6篇文章 在此之前,先学习Java NIO相关的教程可能会帮助理解:https://www.cnblogs.com/lay2017/p/ 阅读全文
posted @ 2020-05-20 10:21 __lay 阅读(1594) 评论(0) 推荐(1) 编辑
摘要: 在1.4以前Java的网络编程从BIO开始。jdk1.4开始,Java提供了NIO软件包,为高性能的网络编程提供了有力的帮助。 本教程共17篇,翻译自:http://tutorials.jenkov.com/java-nio/index.html 注意:这是原作者 Jakob Jenkov 于201 阅读全文
posted @ 2020-05-16 16:42 __lay 阅读(592) 评论(0) 推荐(0) 编辑
摘要: 目录 seata分布式事务框架 基础篇 seata简介 springboot项目使用seata实现分布式事务 源码篇 客户端 seata自动配置 GlobalTransactionalInterceptor拦截器 TransactionalTemplate处理全局事务 DataSourceProxy 阅读全文
posted @ 2020-03-13 11:02 __lay 阅读(2828) 评论(1) 推荐(1) 编辑
摘要: 事务,是软件开发的一个很重要的专题。java方向的开发人员通常从数据库和框架(比如spring)提供的机制开始接触事务。再到软件发展为分布式项目,就自然而然的接触分布式事务,比如阿里的fescar或者tx-lcn分布式事务框架。以及mq中间件之类的也会涉及事务问题。 总得来说,事务是一个很重要的概念 阅读全文
posted @ 2019-12-21 21:06 __lay 阅读(1048) 评论(0) 推荐(0) 编辑
摘要: springcloud是一个基于springboot的一站式企业级分布式应用开发框架。springboot为其提供了创建单一项目的便利性,springcloud组合了现有的、常用的分布式项目的解决方案,融合为一个全家桶。对于中小企业来说,这将使其轻易就能够构建出分布式应用。 对于研发人员来说,学会使 阅读全文
posted @ 2019-11-21 22:01 __lay 阅读(11017) 评论(0) 推荐(1) 编辑
摘要: 对于长时间基于spring框架做web开发的我们,springmvc几乎成为了开发普通web项目的标配。本系列文章基于快速启动的springboot,将从源码角度一点点了解springboot中mvc自动配置的面貌。在此之前,或许了解一些springboot启动流程会有所帮助。 目录: 1. 自动配 阅读全文
posted @ 2019-11-01 10:59 __lay 阅读(1516) 评论(0) 推荐(0) 编辑
摘要: restTemplate是spring实现的,基于restful风格的http请求模板。使用restTemplate可以简化请求操作的复杂性,同时规范了代码风格。本系列文章,将根据以下目录顺序,从源码的角度解析restTemplate。 目录: 阅读全文
posted @ 2019-10-25 21:03 __lay 阅读(3062) 评论(0) 推荐(0) 编辑
摘要: springboot出现有段时间了,不过却一直没有怎么去更多地了解它。一方面是工作的原因,另一方面是原来觉得是否有这个必要,但要持续做java似乎最终逃不开要去了解它的命运。于是考虑花一段时间去学习一下,计划按照如下目录让自己有一个整体概念,也希望遇到一些问题能够基于这个目录的知识去挖出问题点,即使 阅读全文
posted @ 2019-09-06 21:01 __lay 阅读(9301) 评论(1) 推荐(1) 编辑
摘要: mvcc全称是,多版本并发控制: multi version concurrency control 并发问题 我们注意到一个关键词是concurrency,表明了mvcc的初衷就是为了并发问题而设计的。既然mvcc是为了并发而生,那么是为了什么并发问题呢? 我们看这么一个例子,以下有一条数据 na 阅读全文
posted @ 2020-07-01 23:50 __lay 阅读(326) 评论(1) 推荐(0) 编辑
摘要: 为什么要有三范式 数据库是用来干啥的?毫无疑问主要的工作就是存储数据,本质上就是将数据一点点写入到硬盘上放起来。 但是我们知道,资源不是无限的。硬盘空间大小是有限的,所以你能够存储的数据量是有限的。机器IO能力是有限的,所以程序从数据库读写数据的能力就是有限的。我们没办法让资源无穷无尽,所以我们需要 阅读全文
posted @ 2020-06-20 15:33 __lay 阅读(859) 评论(0) 推荐(0) 编辑
摘要: 所有文章 https://www.cnblogs.com/lay2017/p/12922074.html 正文 除了服务端,netty还可以构建客户端。客户端你需要 1.创建EventLoopGroup 2.配置Bootstrap 3.创建ChannelInitializer 4.启动 示例代码如下 阅读全文
posted @ 2020-05-20 11:51 __lay 阅读(1706) 评论(0) 推荐(0) 编辑
摘要: 所有文章 https://www.cnblogs.com/lay2017/p/12922074.html 正文 要构建netty的tcp服务端,你需要 1.创建EventLoopGroup 2.配置一个ServerBootStrap 3.创建ChannelInitializer 4.启动服务 代码如 阅读全文
posted @ 2020-05-20 11:43 __lay 阅读(1084) 评论(0) 推荐(0) 编辑
摘要: 所有文章 https://www.cnblogs.com/lay2017/p/12922074.html 正文 ChannelPipeline是netty中非常核心的概念之一。每个SocketChannel都会包含ChannelPipeline,ChannelPipeline包含一系列Channel 阅读全文
posted @ 2020-05-20 11:08 __lay 阅读(565) 评论(0) 推荐(0) 编辑
摘要: 所有文章 https://www.cnblogs.com/lay2017/p/12922074.html 正文 为了了解netty的工作机制,这里有几个概念需要知道 1.BootStrap 2.EventLoopGroup 3.EventLoop 4.SocketChannel 5.ChanneIn 阅读全文
posted @ 2020-05-20 10:56 __lay 阅读(515) 评论(0) 推荐(0) 编辑
摘要: 所有文章 https://www.cnblogs.com/lay2017/p/12922074.html 正文 在Java项目安装netty,需要你下载jar包,并添加到类路径。 maven方式 比较流行的方式是直接采用项目管理工具,比如maven <dependency> <groupId>io. 阅读全文
posted @ 2020-05-20 10:36 __lay 阅读(1310) 评论(0) 推荐(0) 编辑
摘要: 所有文章 https://www.cnblogs.com/lay2017/p/12922074.html 正文 netty是一个高性能的Java IO工具包。本教程简单讲解如何上手netty,但是不会涉及太多的细节。 官网 https://netty.io/ 优点 比起Java原生的API,nett 阅读全文
posted @ 2020-05-20 10:33 __lay 阅读(949) 评论(0) 推荐(0) 编辑
摘要: 所有文章 https://www.cnblogs.com/lay2017/p/12901123.html 正文 我们什么时候该使用IO,什么时候该使用NIO呢? 本文会罗列一些NIO和IO的不同点,和用法,以及它们都是如何影响设计的。 主要的不同点 IO NIO 面向流 面向缓冲区 阻塞IO 非阻塞 阅读全文
posted @ 2020-05-20 10:12 __lay 阅读(191) 评论(0) 推荐(0) 编辑