微服务本质上是一种设计模式,一种指导思想。在落地实现时有多种技术选型。在一些文献中也会对其概念、思想、以及与SP或单体服务做些一些对比。这些内容在笔者看来只能是靠个人的理解和悟性来归纳总结,所以就不在此进行描述了。本文会贴合技术来描述下微服务的一些基础知识点。 一、基础 完整的架构如下图所示: 1.1、服务注册发现 服务注册就是维护一个登记簿,它管理系统内所有的服务地址。当新的服务启动后,它会向登记簿交待自己的地址信息。服务的依赖方直接向登记簿要ServiceProvider地址就行了。当下用于服务注册的工具非常多ZooKeeper,Consul,Etcd,还有Netflix家的eur...

一、理论基础    Storm是一个免费并开源的分布式实时计算系统。利用Storm可以很容易做到可靠地处理无限的数据流,像Hadoop批量处理大数据一样,Storm可以实时处理数据。在Storm中,topology的构建是一个有向无环图。结点就是Spout或者Bolt,而边就是Spout和Bolt之间或者是Bolt和Bolt之间连接关系。它的一些基本概念如下:在传统的master/slave架构中,都是master节点负责任务的接受、分配、监控等管理任务,从节点负责任务的执行。 Spout发送单元,流的源头 它有两种实现方式BaseRichSpout和IRich...

  9oWFY9lFLCDb   2023年11月02日   44   0   0

本章简单聊下网络和LBS相关的内容,本文中描述的都是基础部分。一般的公司会在基础上封装成需要的基础服务。网络分4层和7层: 4层:网络访问层、网络层、传输层、应用层; 7层:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层; 一、网络 1.1、TCP/IP原理 TCP/IP协议不是TCP和IP这两个协议的合称,而是指因特网整个TCP/IP协议族。从协议分层模型方面来讲,TCP/IP由四个层次组成:网络接口层、网络层、传输层、应用层。 1.1.1、详细解释 1.1.1.1、网络访问层 网络访问层(NetworkAccessLayer)在TCP/IP参考模型中并没有详细描述,只...

一、IO模型 1.1、阻塞IO模型 最传统的一种IO模型,即在读写数据过程中会发生阻塞现象。当用户线程发出IO请求之后,内核会去查看数据是否就绪,如果没有就绪就会等待数据就绪,而用户线程就会处于阻塞状态,用户线程交出CPU。当数据就绪之后,内核会将数据拷贝到用户线程,并返回结果给用户线程,用户线程才解除block状态。典型的阻塞IO模型的比如socket(data=socket.read()),如果数据没有就绪,就会一直阻塞在read方法。 1.2、非阻塞IO模型 当用户线程发起一个read操作后并不需要等待,而是马上就得到了一个结果。如果结果是一个error时,它就知道数据还没有准备好,于是...

一、原理 Netty是一个高性能、异步事件驱动的NIO框架,基于JAVANIO提供的API实现。它提供了对TCP、UDP和文件传输的支持,作为一个异步NIO框架,Netty的所有IO操作都是异步非阻塞的,通过Future-Listener机制,用户可以方便的主动获取或者通过通知机制获得IO操作结果。 二、核心设计 在IO编程过程中,当需要同时处理多个客户端接入请求时,可以利用多线程或者IO多路复用技术进行处理。IO多路复用技术通过把多个IO的阻塞复用到同一个select的阻塞上,从而使得系统在单线程的情况下可以同时处理多个客户端请求。与传统的多线程/多进程模型比,I/O多路复用的最大优势是系...

此文被笔者收录在系列文章​​​架构师必备(系列)​​中 设计并发程序时,性能并不是最优先的考虑,安全总是放在第一位的。首先要保证程序的正确性,而后只有当你的性能需求和评估标准需要程序运行得更快时,才去进行改进。 一、性能的思考 改进程序的目的就是为了充分利用硬件的能力,所以测试时我们要尽量分析CPU的问题还是内存的问题;1、要有效的利用我们现有的资源;2、出现新的问题时能更有效的利用现有资源。有时经过测试后,可调节线程池大小的多线程程序的池最适合大小为1,这时多线程的设计就属于多余的。 性能遭遇可伸缩性 应用程序可以从很多角度来衡量:比如服务时间、等待时间、吞吐量、效率、可伸缩性、生产量,...

关注 更多

空空如也 ~ ~

粉丝 更多

空空如也 ~ ~