通信接口

springcloud子模块之间的通信

心已入冬 提交于 2019-11-30 03:36:48
              springcloud子模块之间的通信 1.搭建公共模块common 2.在common层搭建domain层user package cn.itsource.domain; public class User { private Long id; private String username; private String password; public User() { } public User(Long id, String username, String password) { this.id = id; this.username = username; this.password = password; } public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void

RPC原理及实现

岁酱吖の 提交于 2019-11-29 23:42:01
#0 系列目录# 聊聊远程通信 Java远程通讯技术及原理分析 聊聊Socket、TCP/IP、HTTP、FTP及网络编程 RMI原理及实现 RPC原理及实现 轻量级分布式 RPC 框架 使用 RMI + ZooKeeper 实现远程调用框架 深入浅出SOA思想 微服务、SOA 和 API对比与分析 聊聊同步、异步、阻塞与非阻塞 聊聊Linux 五种IO模型 聊聊IO多路复用之select、poll、epoll详解 聊聊C10K问题及解决方案 #1 简介# RPC 的主要功能 目标是让构建分布式计算(应用)更容易 ,在提供强大的远程调用能力时不损失本地调用的语义简洁性。为实现该目标,RPC 框架需提供一种透明调用机制让使用者 不必显式的区分本地调用和远程调用 。 #2 调用分类# RPC 调用分以下两种: 同步调用 客户方等待调用执行完成并返回结果。 异步调用 客户方调用后不用等待执行结果返回,但依然可以通过回调通知等方式获取返回结果。 若客户方不关心调用返回结果,则变成单向异步调用,单向调用不用返回结果。 异步和同步的区分在于是否等待服务端执行完成并返回结果 。 #3 结构拆解# RPC 服务方通过 RpcServer 去导出(export)远程接口方法 ,而 客户方通过 RpcClient 去引入(import)远程接口方法 。 客户方像调用本地方法一样去调用远程接口方法,

Vlan技术(Virtual Local Area Network)

我与影子孤独终老i 提交于 2019-11-29 17:06:42
1.Vlan作用 隔离广播域 :防止网络中的广播包过多,导致网络拥塞,同时也是为了提高网络带宽的利用率。 实现故障隔离 :减小网络故障带来的影响,缩小范围后也方便故障的定位和排除。 增强安全性 :不同Vlan间的数据通信只能通过三层设备进行,在三层设备上采取安全措施可以防止病毒在局域网内大范围扩散。 2.Vlan的划分方式 可以基于 交换机端口 的(最常用),基于 协议 的,基于 IP 地址的,基于 MAC 地址的。 3.802.1q帧结构 4.交换机端口分类 Access 类型的端口只能属于1个VLAN,一般用于连接计算机的端口。 Trunk 类型的端口可以允许多个VLAN通过,可以接收和发送多个VLAN的报文,一般用于交换机之间连接的端口。 Hybrid 类型的端口可以允许多个VLAN通过,可以接收和发送多个VLAN的报文,可以用于交换机之间连接,也可以用于连接用户的计算机。 Hybrid端口和Trunk端口在接收数据时,处理方法是一样的,唯一不同之处在于发送数据时 : Hybrid端口可以允许多个VLAN的报文发送时不打标签,而Trunk端口只允许缺省VLAN的报文发送时不打标签 。 端口的缺省VLAN的概念:Access端口只属于1个VLAN,所以它的缺省VLAN就是它所在的VLAN,不用设置;   Hybrid端口和Trunk端口属于多个VLAN,所以需要设置缺省VLAN

linux各种IPC机制

≯℡__Kan透↙ 提交于 2019-11-29 11:06:08
linux各种IPC机制   docker中的资源隔离,一种就是IPC的隔离。IPC是进程间通信。 下面的文章转载自https://blog.csdn.net/yyq_9623/article/details/78794775 原帖发表在IBM的developerworks网站上,是一个系列的文章,作者郑彦兴,通过讲解和例子演示了Linux中几种IPC的使用方式,我觉得很好,在这里做一个保留,能看完的话Linux IPC的基础是没有问题的了。 一)Linux环境进程间通信(一)管道及有名管道 http://www.ibm.com/developerworks/cn/linux/l-ipc/part1/ 二)Linux环境进程间通信(二): 信号 上: http://www.ibm.com/developerworks/cn/linux/l-ipc/part2/index1.html 下: http://www.ibm.com/developerworks/cn/linux/l-ipc/part2/index2.html 三)Linux环境进程间通信(三)消息队列 http://www.ibm.com/developerworks/cn/linux/l-ipc/part3/ 四)Linux环境进程间通信(四)信号灯 http://www.ibm.com/developerworks

详解RS232、RS485、RS422、串口和握手

牧云@^-^@ 提交于 2019-11-29 04:54:05
详解RS232、RS485、RS422、串口和握手 2019年08月06日 16:20:08 不脱发的程序猿 阅读数 1423更多 分类专栏: 技术分享 程序人生 通信 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接: https://blog.csdn.net/m0_38106923/article/details/98615747 目录 1、RS232基础 1.1、电气特性 1.2、连接器的机械特性 1.3、传输电缆 1.4、链路层 1.5、传输控制 1.6、RS-232标准的不足 2、RS485基础 2.1、RS-485 的电气特性 2.2、传输速率与传输距离 2.3、网络拓扑 2.4、连接器 3、RS422基础知识 4、串口与握手基础知识 4.1、串口基础知识 4.1.1、波特率 4.1.2、数据位 4.1.3、停止位 4.1.4、奇偶校验位 4.2、握手基础知识 4.2.1、软件握手 4.2.2、硬件握手 4.2.3、XModem握手 1、RS232基础 计算机与计算机或计算机与终端之间的数据传送可以采用串行通讯和并行通讯二种方式。由于串行通讯方式具有使用线路少、成本低,特别是在远程传输时,避免了多条线路特性的不一致而被广泛采用。 在串行通讯时,要求通讯双方都采用一个标准接口

【转载】DBUS及常用接口介绍

家住魔仙堡 提交于 2019-11-28 21:51:25
转自:https://blog.csdn.net/mr_wangning/article/details/60324291 DBUS是一种高级的进程间通信机制。DBUS支持进程间一对一和多对多的对等通信,在多对多的通讯时,需要后台进程的角色去分转消息,当一个进程发消息给另外一个进程时,先发消息到后台进程,再通过后台进程将信息转发到目的进程。DBUS后台进程充当着一个路由器的角色。 DBUS中主要概念为总线,连接到总线的进程可通过总线接收或传递消息,总线收到消息时,根据不同的消息类型进行不同的处理。DBUS中消息分为四类: 1. Methodcall消息:将触发一个函数调用 ; 2. Methodreturn消息:触发函数调用返回的结果; 3. Error消息:触发的函数调用返回一个异常 ; 4. Signal消息:通知,可以看作为事件消息。 1.2 DBUS应用场景 根据DBUS消息类型可知,DBUS提供一种高效的进程间通信机制,主要用于进程间函数调用以及进程间信号广播。 1 . 函数调用 DBUS可以实现进程间函数调用,进程A发送函数调用的请求(Methodcall消息),经过总线转发至进程B。进程B将应答函数返回值(Method return消息)或者错误消息(Error消息)。 2 . 消息广播 进程间消息广播(Signal消息)不需要响应

docker 网络模式详解

那年仲夏 提交于 2019-11-27 21:42:32
一、前言 Docker作为目前最火的轻量级容器技术,有很多令人称道的功能,如Docker的镜像管理。然而,Docker同样有着很多不完善的地方,网络方面就是Docker比较薄弱的部分。因此,我们有必要深入了解Docker的网络知识,以满足更高的网络需求。 我们在使用docker run创建Docker容器时,可以用--net选项指定容器的网络模式,Docker有以下4种网络模式: host模式,使用--net=host指定。 容器将不会虚拟出自己的网卡,配置自己的IP等,而是使用宿主机的IP和端口。 container模式,使用--net=container:NAME_or_ID指定。 创建的容器不会创建自己的网卡,配置自己的IP,而是和一个指定的容器共享IP、端口范围。 none模式,使用--net=none指定。 该模式关闭了容器的网络功能。 bridge模式,使用--net=bridge指定,默认设置。 此模式会为每一个容器分配、设置IP等,并将容器连接到一个docker0虚拟网桥,通过docker0网桥以及Iptables nat表配置与宿主机通信。 注意:使用 docker network ls 命令列出这些docker内置的网络模式。 Docker 网络模型 二、host模式 众所周知,Docker使用了Linux的Namespaces技术来进行资源隔离,如PID

万类之父——Object

孤街浪徒 提交于 2019-11-27 19:05:51
jdk1.8.0_144   Object类作为Java中的顶级类,位于java.lang包中。所有的类直接或者间接都继承自它。所以Object类中的方法在所有类中都可以直接调用。在深入介绍它的API时,先插一句它和泛型之间的关系。   在JDK1.5之前是没有泛型的,集合能够装下任意的类型,这就导致了一个潜在的问题——不能在编译时做类型检查,也就可能导致程序bug出现的概率。JDK1.5出现了泛型,在定义一个集合时指定一个泛型,这就能在编译时能做类型检查,避免了一些低级bug的出现。时至今日,实际上在JDK源码中遗留了部分不是特别优美的代码,从今天的角度来看是能够将其泛型化的(例如Map的get方法),但在当时需要考虑向后兼容不得不放弃对某些方法和类的泛型化,才导致了一丝瑕疵。   接下来将详细的剖析Object类中的一些方法,其中某些方法会延伸到其他方面(例如:wait和notify等)。 public final native Class<?> getClass()   返回Class对象实例。Class类有点“特殊”,因为它在我们的日常代码逻辑中不常出现,它所出现的地方往往是一些基础框架或者基础工具。     Class类所处的包同样是java.lang,毫无疑问它的父类还是Object。在学习面向对象编程时,我们知道类是对一个事物抽象的定义

【Android翻译】组件通信模式

99封情书 提交于 2019-11-27 09:22:21
##目标:避免紧耦合 本文对原文进行了精简 原文链接: Communication patterns for application components ##紧耦合 组件之间相互持有引用,以及直接调用方法.在下面的代码中,MenuFragment持有MagazineActivity的直接引用,因此, MenuFragment 就与 MagazineActivity紧耦合了. 一旦没有了MagazineActivity,就无法工作了. // 紧耦合示例 class MenuFragment extends Fragment { private void onArticleClick(int articleId) { MagazineActivity magAct = (MagazineActivity) getActivity(); magAct.showArticle(articleId); } } 在这样的设计中,一个类的修改可能会影响到一大波相关的类,如果开发中还涉及到多个开发人员,那么这种情况带来的只会是痛苦和悲哀.. 松耦合的核心就是一种减少组件之间的依赖关系,一个松耦合系统可以很方便的分解为良构的元素.这样就使得系统更具有弹性与扩展性. 每个开发人员可以维护一个单独的模块,并使用标准的协议与其他部分通信. ##常规解耦方式:接口 (个人补充

进程、线程以及IPC---linux

牧云@^-^@ 提交于 2019-11-27 07:08:05
进程(标识pid) <unistd.h> <sys/types.h> 资源集合:内存 文件 时间片 协处理器 完全复制:复制前执行什么,复制后执行什么 fork() 系统调用函数fork()是创建一个新进程的唯一方式 一次复制一个进程 返回值-1,创建失败; 返回值 0,进入子进程; 一般来说,fork()成功之后,父进程与子进程的执行顺序是不确定的。这取决于内核所使用的调度算法,如果要求父子进程相互同步,则要求某种形式的进程间通信。 vfork() 执行次序: fork():对父子进程的调度室由调度器决定的; vfork():是先调用子进程,等子进程的exit(1)被调用后,再调用父进程; 对数据段的影响: fork():父子进程不共享一段地址空间,修改子进程,父进程的内容并不会受影响。 vfork():在子进程调用exit之前,它在父进程的空间中运行,也就是说会更改父进程的数据段、栈和堆。即共享代码区和数据区,且地址和内容都是一样的。 IPC机制(6种) 管道(Pipe)及有名管道(named pipe): 管道可用于具有亲缘关系进程间的通信,有名管道克服了管道没有名字的限制,因此,除具有管道所具有的功能外,它还允许无亲缘关系进程间的通信; 信号(Signal): 信号是比较复杂的通信方式,用于通知接受进程有某种事件发生,除了用于进程间通信外,进程还可以发送信号给进程本身