当前位置: 首页 > news >正文

远程服务化的思路整理

这里客户端和远程服务都是具体和业务相关的,比如说会员服务需要独立部署。远程服务框架是要做的工作就是屏蔽具体和远程接口交互的细节,方便调用方进行调用,比如说配上接口名,服务器IP就能实现通信。实际应用中也不会太关心具体的机器IP。假如说会员服务是一个集群服务,那么对于客户端而言并不需要关心具体的IP,它所关心的只有服务,具体路由到哪台机器去处理也将是目标服务需要做的事情。并非客户端去做的事情。
1.注册中心,注射中心相当于一个管理者,或者说是一些基本的通信信息,比如说接口名,调用方法机器IP,目标机器IP,或者还有端口之类的一些最基本的可以完成通信的一些信息。
2. 客户 代理类 ,其实如果用过Spring的都知道,Spring是可以注入具体的实现类,但是指的是本地方法,如果是远程方法是没有办法直接进行注册的。这里就需要用远程框架进行中转,框架会提供一个本地方法注册到Spring,它屏蔽了和服务机交互的细节,中间用TCP/IP协议是毫无疑问的。
3.服务端前面也说了根据TCP/IP协议进行通信是最基本的。既然前面有发送请求的客户端,那么就一定有接收请求的服务端,服务端是和具体服务是在同一台机器。服务端接收到客户端发来的请求(一般是类名,方法名和参数等一些信息)然后调用具体的方法。再回传。这样就完成了一次完整的远程通信。
4.通信协议,这里说TCP基本没意义,因为可靠的网络传输协议都是通过这个。但是就像HTTP协议一样是在TCP协议之上封装了一层,我这里所说的意思也就是相当于一个HTTP协议。Java对象传输都需要进行序列化操作,一般不会采用Java自带的序列化,除去序列化的速度慢之外,数据量大小也是一个因素。序列化的速度毫无疑问会影响机器性能。数据量大小对于需要网络传输的服务而言,在一定的带宽下数据量越大肯定会影响影响具体的传输时间。

相关文章:

  • Android游戏框架AndEngine使用入门
  • 好的程序员应该第一时间去Google
  • 短信技术的几个基本概念
  • log4j:WARN No appenders could be found for logger
  • gbs使用手册之配置文件
  • gbs使用手册之gbs build
  • gbs使用手册之gbs chroot
  • 如何用doxygen生成文档
  • FreeMarker教程
  • Timer、TimerTask实现定时业务处理
  • windows宿主机与linux目标机联网通信
  • 腾讯面试题(持续更新ing)
  • 几种排序算法与运用实例
  • 计算文件夹下.h和.cpp文件的总行数
  • 为什么仍还用C编码?
  • 【跃迁之路】【699天】程序员高效学习方法论探索系列(实验阶段456-2019.1.19)...
  • Angular2开发踩坑系列-生产环境编译
  • ES6之路之模块详解
  • happypack两次报错的问题
  • java B2B2C 源码多租户电子商城系统-Kafka基本使用介绍
  • JavaScript工作原理(五):深入了解WebSockets,HTTP/2和SSE,以及如何选择
  • js
  • js递归,无限分级树形折叠菜单
  • PHP 7 修改了什么呢 -- 2
  • Python 反序列化安全问题(二)
  • SegmentFault 2015 Top Rank
  • SpiderData 2019年2月16日 DApp数据排行榜
  • Zsh 开发指南(第十四篇 文件读写)
  • 创建一个Struts2项目maven 方式
  • 规范化安全开发 KOA 手脚架
  • 基于MaxCompute打造轻盈的人人车移动端数据平台
  • 每天一个设计模式之命令模式
  • 普通函数和构造函数的区别
  • 使用parted解决大于2T的磁盘分区
  • 用Canvas画一棵二叉树
  • d²y/dx²; 偏导数问题 请问f1 f2是什么意思
  • Python 之网络式编程
  • #HarmonyOS:Web组件的使用
  • #if 1...#endif
  • (C++17) optional的使用
  • (C语言)输入自定义个数的整数,打印出最大值和最小值
  • (pytorch进阶之路)扩散概率模型
  • (草履虫都可以看懂的)PyQt子窗口向主窗口传递参数,主窗口接收子窗口信号、参数。
  • (转)linux自定义开机启动服务和chkconfig使用方法
  • * CIL library *(* CIL module *) : error LNK2005: _DllMain@12 already defined in mfcs120u.lib(dllmodu
  • *1 计算机基础和操作系统基础及几大协议
  • .chm格式文件如何阅读
  • .NET 回调、接口回调、 委托
  • .NET 事件模型教程(二)
  • .net 托管代码与非托管代码
  • .NET/C# 利用 Walterlv.WeakEvents 高性能地定义和使用弱事件
  • .NETCORE 开发登录接口MFA谷歌多因子身份验证
  • .Net多线程总结
  • .NET下的多线程编程—1-线程机制概述
  • /etc/sudoers (root权限管理)