微服务的一次远程调用
服务消费者与服务提供者之间的调用关系往往是通过注册中心实现的,那么服务消费者具体是怎么通过注册中心去调用服务提供者所提供的服务的呢
1.确定通信框架
我们称消费者为客户端,注册中心为服务端,客户端想要跟服务端进行通信首先要确定的就是通讯框架,现在常用的通讯框架有两种:
Http协议,通过应用层的http协议进行通信是常用的方式之一,通过传统的三次握手建立连接
Socket通信,socket通信相比http要复杂一些,但是传输效率更高,socket通信首先要确定的是一组套接字,比如tomcat的80端口,服务端首先bind端口,然后进行监听,客户端与套接字建立连接然后在服务端进行确认,当连接建立后可以send信息到服务端,然后服务端recieve到消息,这样进行数据传输

2.服务端如何处理请求
当一个请求到了服务端以后怎么处理也是一个很重要的方面,通常情况下有三种处理方式
Bio  所谓Bio即同步阻塞的方式,即每当有一个服务请求到达后服务器都会生成一个线程来处理请求,底层的实现是通过一个acceptor线程来接收客户端的请求,每当一个请求过来的时候都会在服务端新建立一个线程,这种方式的好处是实现逻辑简单,缺点是会启动大量的线程,导致服务端线程栈溢出,进而导致服务器崩溃,同时这种方式还是阻塞的,当服务端需要读取数据的时候客户端就会一直阻塞等待,所以服务的请求效率不仅跟客户端有关同时也跟服务端有关

NIO 同步非阻塞,NIO的处理方式不需要在服务器端生成多个线程,每当服务器生成请求之后都会讲请求放入buffer缓冲区域中,然后服务端会有一个select线程轮询所有请求,当有请求达到可读可写的状态时就会进行处理,从而可以实现非阻塞的处理客户端请求

3.数据如何传输
这个步骤是为了确定数据传输协议,可以是Http协议,也可以是dubbo协议,确定了传输协议之后就可以确定数据的传输格式,可以是json或者xml等

从0开始学习微服务(二)相关推荐

  1. Re:从0开始的微服务架构--(二)快速快速体验微服务架构?--转

    原文地址:https://mp.weixin.qq.com/s/QO1QDQWnjHZp8EvGDrxZvw 这是专题的第二篇文章,看看如何搭建一个简单模式的微服务架构. 记得好久之前看到一个大牛说过 ...

  2. Re:从0开始的微服务架构:(二)如何快速体验微服务架构?

    记得好久之前看到一个大牛说过:如果单体架构都搞不好,就别搞微服务架构.乍一看,这句很有道理,后来发现这句话是不太对的,因为微服务架构的目的就是为了降低系统的复杂性,所以 微服务架构应该比单体架构更简单 ...

  3. 从0开始的微服务架构:(一)重识微服务架构

    2019独角兽企业重金招聘Python工程师标准>>> 导语 虽然已经红了很久,但是"微服务架构"正变得越来越重要,也将继续火下去. 各个公司与技术人员都在分享微 ...

  4. Re:从0开始的微服务架构:(一)重识微服务架构--转

    原文地址:http://www.infoq.com/cn/articles/micro-service-architecture-from-zero?utm_source=infoq&utm_ ...

  5. ASP.NET Core微服务(二)——【ASP.NET Core Swagger配置】

    ASP.NET Core微服务(二)--[ASP.NET Core Swagger配置]: 环境:win10专业版+vs2019+sqlserver2014/2019 ASP.NET Core微服务( ...

  6. Re:从0开始的微服务架构:(一)重识微服务架构

    导语 虽然已经红了很久,但是"微服务架构"正变得越来越重要,也将继续火下去. 各个公司与技术人员都在分享微服务架构的相关知识与实践经验,但我们发现,目前网上的这些相关文章中,要么上 ...

  7. springcloud:什么是分布式微服务,如何学习微服务(一)

    0. 引言 随着网络建设的丰富和技术发展的增强,传统的单机架构已经不能满足日益递增的用户需求.学习微服务开发也成了当今java后端开发必须掌握的技术. 接下来的日子我们一起来学习微服务开发.在真正开始 ...

  8. 【02】如何学习微服务

    一.学习微服务技术面临哪些问题? 也许你早就打算学习微服务技术,可是自己的公司业务规模小,接触不到先进的微服务架构技术:又或者面对五花八门的微服务开源框架,和各个大厂自研的黑科技技术,一时间不知道如何 ...

  9. java int不将0忽略_Java微服务:蛋糕是骗人的,但您不能忽略它

    java int不将0忽略 构建微服务实际上意味着什么? 通过微服务框架的眼光回答 忽略微服务的趋势已变得不可能. 有些人会说这只是另一个难以忍受的流行语,而另一些人会背诵打破巨石的优势或采取逆势方法 ...

最新文章

  1. 2021年大数据HBase(十四):HBase的原理及其相关的工作机制
  2. 前后端分离的探索(四)
  3. Leangoo敏捷开发工具怎么添加成员
  4. Css中路径data用法
  5. SAP概念之利润中心
  6. 哪个app最费电_关于石墨烯养生地暖,业主最关心的几大问题,答案附上!
  7. liunx下搭建mysql主从_linux下搭建mysql主从
  8. 理论基础 —— 索引 —— 稠密索引
  9. subprocess,类
  10. w讠ndows的中文读音,广西壮族自治区
  11. 易智瑞大赛——地图故事组参赛经验
  12. Android以太网框架情景分析之NetworkManagementService和netd交互深入分析二
  13. ISP(图像信号处理)介绍
  14. SAP 财务替代(基本内容及常用财务替代配置涉及退出提供源代码)
  15. 软考云题库Web版正式上线了
  16. Android高级特性笔记
  17. 小啊呜产品读书笔记001:《邱岳的产品手记-07》第13讲 无用却必要:产品规划【上】 第14讲 留白与节奏:产品规划【下】
  18. java response excel_java-返回在servlet中创建的excel文件作为响应
  19. kubernetes(k8s)全面介绍
  20. Python基础02-蟒蛇绘制

热门文章

  1. java ee李兴华_李兴华Java EE入门视频教程(魔乐科技解密版)
  2. 单路电压表c语言编程,单片机数字电压表的设计
  3. 连载 大学生求职七大昏招(五)说谎 4
  4. apk反编译工具及使用步骤(详解)
  5. apk 反编译工具和方法
  6. 查看java SDK中的类(change Attached sourse)
  7. 简单实现汉字向拼音的转换
  8. Wall的LocationCurve获得的墙基线位置 是否与墙的定位线有关?
  9. AI大行其道,你准备好了吗?—谨送给徘徊于转行AI的程序员
  10. java JDBC事务和JTA事务详解