Java
Shine_OfSun
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
RPC
RPCRPC( Remote Procedure Call Protocol ) 远程过程调用协议。就是用其他服务器方法实现需要的功能,而具体连接细节将被封装不需要了解底层协议。常用RPC框架Dubbo、Motan、Dubbox、rpcx、Hadoop、gRPC优缺点优点:提高系统可扩展性提升系统可维护性和持续交付能力实现系统高可用缺点:一个完善的RPC框架开发难度大,需要人员配置多RPC框架调用成功率受限于网络状况调用远程方法初学难度大结构Client原创 2020-09-20 21:21:38 · 171 阅读 · 0 评论 -
Netty(3)
Netty(4)TCP粘包和拆包TCP是个"流"协议,所谓流,就是没有界限的一串数据。类似于自来水管,其间是没有分界线的。但一般通讯程序开发是需要定义一个个相互独立的数据包的,比如用于登陆的数据包,用于注销的数据包。由于TCP"流"的特性以及网络状况,在进行数据传输时会出现以下几种情况。假设我们连续调用两次send分别发送两段数据data1和data2,在接收端有以下几种接收情况(当然不止这几种情况,这里只列出了有代表性的情况)。A.先接收到data1,然后接收到data2。B.先接收到data1原创 2020-08-20 17:14:55 · 245 阅读 · 0 评论 -
Netty(2)
Netty(2)Reactor模式通过一个或多个输入同时传递给服务处理器的模式(基于事件驱动)。服务器端程序处理传入的多个请求,并将它们同步分派到相应处理线程。使用IO复用监听事件,收到事件后,分发给某个线程(进程)。举例子: 有家独特的医院,当患者来了要门诊(请求Event),入口处前台服务员(ServiceHandler)先迎客,该服务员接着送这个顾客到空闲屋子处理业务进行门诊治疗(EventHandler)。单Reactor单线程Select是前面IO复用模型介绍的标准网络原创 2020-08-14 18:52:23 · 237 阅读 · 0 评论 -
Netty(1)
Netty(1)Netty 是一款异步的事件驱动的网络应用程序框架,支持快速地开发可维护的高性能的面向协议的服务器和客户端。 BIO、NIO和AIO采用烧水的例子:**BIO:**叫一个线程停留在一个水壶那,直到这个水壶烧开,才去处理下一个水壶。**NIO:**叫一个线程不停的循环观察每一个水壶,根据每个水壶当前的状态去处理。**AIO:**每个水壶上装一个开关,当水开了以后会提醒对应的线程去处理。BIO方式:采用BIO通信模型的服务端,通常由一个独立的Acceptor线程负责监听客户端的连原创 2020-08-13 18:06:32 · 197 阅读 · 0 评论 -
volatile和synchronized的区别
volatile和synchronized的区别volatile仅能使用在变量上,synchronized可以使用在变量和方法上;volatile仅能实现变量的可见性,不能保证原子性,synchronized可以保证变量的可见性和原子性;volatile不会造成线程阻塞,synchronized可能会造成线程阻塞(因为volatile只是将当前变量的值及时告知所有线程,而synchronized是锁定当前变量不让其它线程访问);volatile标记的变量不会被编译器优化(因为不能指令重排),syn原创 2020-08-13 11:38:02 · 623 阅读 · 0 评论 -
JMM( Java Memory Model )
JMM( Java Memory Model )什么是JMM: 因为在不同的硬件生产商和不同的操作系统下,内存的访问逻辑有一定的差异,结果就是当你的代码在某个系统环境下运行良好,并且线程安全,但是换了个系统就出现各种问题。Java内存模型,就是为了屏蔽系统和硬件的差异,让一套代码在不同平台下能到达相同的访问结果。JMM特征原子性: 操作不可分割的最小单元。可见性: 当某个线程修改完某个变量之后,在其他的线程中,可以观察到该变量已经被修改。有序性: Java的有序性跟线程相关。如果原创 2020-08-03 17:08:21 · 186 阅读 · 0 评论
分享