- 博客(16)
- 收藏
- 关注
原创 基于Netty的RPC实现
前言这个demo,主要是展示了RPC与Netty在一起所产生的一种奇妙的化学反应,与传统的,阻塞的通信不同,基于Netty的PRC框架,可以实现,两个服务之前,异步的方法调用。其实这篇文章的关键词已经给出来了,即:两个服务之前,异步的,方法调用。一、RPC是什么如果不清楚RPC是什么,推荐阅读我的博客《PRC原理分析:从一个简单的DEMO开始》https://blog.csdn.net/...
2019-04-10 18:28:11 6499 4
原创 Tomcat原理初探(一)
一、前言Tomcat是什么?如果是问现在的小孩子,他会一脸问号的看着你。如果你问80、90后,他会邪魅一笑,汤姆猫嘛,我还是杰瑞呢 =_=。emmmmm,直接开始正文吧。发现现在自己越来越直接了,没前戏,直接进入正戏。二、Tomcat是什么Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和...
2019-06-28 09:37:42 471
原创 重温JVM(二)JVM内存模型
一、前言上文讲过了虚拟机的内存划分,即,我们将内存分为线程共享和线程私有。线程共享的即java堆,和方法区。java堆大家可能都不会陌生;而方法区中包含了常量池,他也被称为永久代。通常方法区也会被叫做非堆,但是在逻辑上,他却是java堆的一部分,而且有些虚拟机会将方法区直接与java堆合并。线程私有的就是虚拟机栈了,而虚拟机栈,本地方法栈,以及程序计数器。这里我们就不展开讨论了。上面我就简...
2019-06-26 18:33:06 195
原创 重温JVM(一)虚拟机内存
一 、前言JVM是什么,我想诸位肯定都清楚。好吧,我还是简答说一下JVM即Java虚拟机(够简单吧 233333)。虽然说,所有抛开操作系统,讲虚拟机的内容,都是耍流氓。但是,贫僧不修善果,就爱杀人放火,就爱耍流氓。好吧,扯远了。言归正传,JVM这是第三遍重温了。第一遍读时,还是在飞机上读的,就记得飞机上的阳光很刺眼,肚子很难受,从书中汲取的知识很少。第二遍读时,是在做地铁时看完的。地铁很...
2019-06-24 09:43:23 208
原创 java线程启动原理分析
一、前言不知道哪位古人说:人生三大境界。第一境界是:看山是山看水是水;第二境界是看山不是山看水不是水;第三境界:看山还是山看水还是水。其实我想对于任何一门技术的学习都是这样。形而上下者为之器,形而上者为之道。一直很喜欢自己大一的高数老师,老师是老教授了,他讲数学,会引申到建筑学,计算机科学,以及哲学再到生活中的常识。也能从其他学科、日常生活中,提取出数学的概念。我想,这就是形而上者了。不胜...
2019-05-17 18:13:59 426 4
原创 与RabbitMQ的第一次亲密接触
一、前言首先说一下RabbitMQ,为什么叫RabbitMQ呢?嘿嘿嘿,我想大部分人没想过这个问题,Rabbit兔子,作者是想表示可以兔子繁殖起来异常的疯狂,就像分布式系统一样。说到兔子疯狂繁殖,让我想到了高中时代做过的很多数学题和生物题。说完命名问题,那为何要有RabbitMQ呢?他用来解决什么问题?适用于何种场景?如何使用?这就是本文要讨论的问题,但由于作者也并未深入的了解,很多地方都...
2019-05-17 16:33:29 257
原创 高并发处理,从Java8新特性说起
一、前言随着公司业务的扩展和用户的增加,我们的网关接口不得不面对高并发的场景。如何处理高并发请求呢?除了在系统架构上,分库分表、分布集群,异步处理等处理方式。本文来聊一聊,通过Java语言本身,来进行高并发场景的优化。二、核心思路如图所示1、多客户端同时向服务器发起请求。2、服务器将获取到的请求,添加到请求队列。3、由一个定时任务(比如10ms执行一次),获取队列的全部元素,并将之...
2019-05-16 10:28:29 778 2
原创 数据库数据量达到亿级的处理方案猜想
一、分库分表1、分库这里就不展开说了2、关于分表[1] 分表应该分两种情况,第一种是横向分表也就是对表横切,按照数据量进行拆分。到达何种数据量进行拆分呢?这个看业务区分。[2]第二种情况是纵向分表也就是拆分字段,比如一张表有N个字段,可以根据业务,分成N/M块,这样单张表的数据会少一些3、针对横向分表展开说[1]按批次分表新建一张表,复制原有表的全部字段以及数据,重命名如:op...
2019-04-30 14:05:59 1570
原创 在SpringBoot使用AOP
一、AOP是什么AOP(Aspect-Oriented Programming,面向方面编程),可以说是OOP(Object-Oriented Programing,面向对象编程)的补充和完善。OOP引入封装、继承和多态性等概念来建立一种对象层次结构,用以模拟公共行为的一个集合。当我们需 要为分散的对象引入公共行为的时候,OOP则显得无能为力。也就是说,OOP允许你定义从上到下的关系,但并不适合...
2019-04-28 17:55:57 181
原创 与NIO的第一次亲密接触
前言随着互联网的不断发展,用户群体越发庞大。从互联网初入中国,国内的上网用户不过数万,而上网也只能简单的进行邮件,浏览新闻。到现在几乎每个人都可以通过互联网进行社交,娱乐,学习。中间不但有社会经济的发展,java技术也随之不断发展,究竟是科学技术的发展促使了社会的发展,还是社会经济的发展促使了科学技术?这个问题我想大家应该都知道一句话:科学技术是第一生产力。随着用户全体的庞大,对于网络通信的...
2019-04-08 17:13:42 406
原创 java8之stream【一】steam的说明以及创建
一、Steam说明Steam与IO无任何关系。Java 8 中的Steam是对集合 (Collection) 对象功能的增强, 他专注于对集合对象进行各种非常便利,高效的聚合操作(aggregate operation), 或者大批量数据操作 (bulk data operation).Steam API借助于同样新出现的Lambda 表达式, 极大的提高编程效率和程序可读性. 同时他提供穿...
2019-03-20 15:22:50 5488 2
原创 Java8特性之'::' 关键字
Java8中提供了::,使我们可以直接访问类的构造函数,静态函数,对象函数。首选我们构造一个类Productpublic class Product { private long id; private String name; private BigDecimal price; public Product(){} public Product(...
2019-02-19 11:21:16 3093
原创 PRC原理分析:从一个简单的DEMO开始
项目结构如下一、service是服务层实现了如下接口:HelloServices 代码如下:package consumer.service;public interface HelloServices { String sayHi(String name);}HelloServiceImpl 代码如下:public class HelloServiceImpl i...
2019-01-18 13:54:32 6223
原创 SQL的left join、right join说明,以及on和where的区别
对SQL语句中的left join、 right join、on、where的描述以及讲解。就一段SQL查询代码展开select * from product right join (select product_id from product_color where color_id=1) as product_coloronproduct.id = product_color.product_id
2017-07-06 15:27:12 646
原创 sqlhelper中ConfigurationManager的问题
在sqlhelper中的GetConnSting函数,使用到了ConfigurationManager。 在编译的过程中遇到问题,问题原因是ConfigurationManager无法识别,我在命名空间引用了Configuration。 为何还是报错...
2015-07-21 10:35:23 552
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人