1.概述 在概述了数据描述格式的基本知识.IO通信模型的基本知识后.我们终于可以进入这个系列博文的重点:系统间通信管理.在这个章节我将通过对RMI的详细介绍,引出一个重要的系统间通信的管理规范RPC,并且继续讨论一些RPC的实现:再通过分析PRC的技术特点,引出另一种系统间通信的管理规范ESB,并介绍ESB的一些具体实现.最后我们介绍SOA:面向服务的软件架构. 2.RMI基本使用 RMI(Remote Method Invocation,远程方法调用),是JAVA早在JDK 1.1中提供的JV…
接上文<架构设计:系统间通信(8)--通信管理与RMI 上篇>.之前说过,JDK中的RMI框架在JDK1.1.JDK1.2.JDK1.5.JDK1.6+几个版本中做了较大的调整.以下我们讨论的RMI工作原理都是基于JDK1.6+版本的. 3.JAVA RMI 工作原理 通过上面的两组代码,我们大概知道了RMI框架是如何使用的.下面我们来讲解一下RMI的基本原理.本人翻阅网上的众多RMI资料基本上代码都是一大抄(甚至变量名.语法错误都一样),还有很多资料存在误导读者的情况.下图描述了整个RMI框…
前言 本文是<分布式java应用基础与实践>读书笔记:另外参考了此博客,感觉讲的挺好的,尤其是其中如下内容: 另外,消息方式实现系统间通信本文不涉及.RMI则只采用spring RMI框架来实现效果,更多的则是来讲讲webService及效果. RMI (Remote Method Invocation) ----> spring RMI(配置及实现直接参考spring文档,已经很详细了) spring RMI工作原理图如下: RMI代码结构图: 服务端代码 接口Business.jav…
1.概述 经过了详细的信息格式.网络IO模型的讲解,并且通过JAVA RMI的讲解进行了预热.从这篇文章开始我们将进入这个系列博文的另一个重点知识体系的讲解:RPC.在后续的几篇文章中,我们首先讲解RPC的基本概念,一个具体的RPC实现会有哪些基本要素构成,然后我们详细介绍一款典型的RPC框架:Apache Thrift.接下来我们聊聊服务治理和DUBBO服务框架.最后总结一下如何在实际工作中选择合适的RPC框架. 2.RPC概述 2-1.什么是RPC RPC(Remote Procedure…
架构设计:系统间通信(10)——RPC的基本概念 1.概述经过了详细的信息格式.网络IO模型的讲解,并且通过JAVA RMI的讲解进行了预热.从这篇文章开始我们将进入这个系列博文的另一个重点知识体系的讲解:RPC.在后续的几篇文章中,我们首先讲解RPC的基本概念,一个具体的RPC实现会有哪些基本要素构成,然后我们详细介绍一款典型的RPC框架:Apache Thrift.接下来我们聊聊服务治理和DUBBO服务框架.最后总结一下如何在实际工作中选择合适的RPC框架. 2.RPC概述2-1.什么是RP…
1.概述 从本篇文章开始,我们将花一到两篇的篇幅介绍ESB(企业服务总线)技术的基本概念,为读者们理清多个和ESB技术有关名词.我们还将在其中为读者阐述什么情况下应该使用ESB技术.接下来,为了加深读者对ESB技术的直观理解,我们将利用Apache Camel一起搭建一个ESB技术的服务实现,虽然这个示例不能把目前主流的ESB服务实现中所有功能模块都保罗进来,但至少可以让读者看到ESB技术核心服务完整的工作方式. 2.为什么需要ESB 2-1.ESB与SOA 2-1-1.SOA SOA(Serv…
7.异步IO 上面两篇文章中,我们分别讲解了阻塞式同步IO.非阻塞式同步IO.多路复用IO 这三种IO模型,以及JAVA对于这三种IO模型的支持.重点说明了IO模型是由操作系统提供支持,且这三种IO模型都是同步IO,都是采用的"应用程序不询问我,我绝不会主动通知"的方式. 异步IO则是采用"订阅-通知"模式:即应用程序向操作系统注册IO监听,然后继续做自己的事情.当操作系统发生IO事件,并且准备好数据后,在主动通知应用程序,触发相应的函数: 和同步IO一样,异步IO…
近期在给公司项目做二次重构,将原来庞大的系统拆分成几个小系统.系统与系统之间通过接口调用,系统间通信有非常多方式,如系统间通信接口做成请求controller,只是这样不方便也不安全,经常使用的方式是使用rpc技术,能够使用webservices技术等等.因为我的架构是使用spring,并且spring在集成这块做的非常不错.如hessian,blurp,webservices.httpinvoke,rmi,jms等,我这里採用的是jms技术. 废话不多说间代码. 场景描写叙述:A系统须要调用B…
来源:http://blog.csdn.net/yinwenjie 1.全文提要 系统间通信本来是一个很大的概念,我们首先重通信模型开始讲解.在理解了四种通信模型的工作特点和区别后,对于我们后文介绍搭建在其上的各种通信框架,集成思想都是有益的. 目前常用的IO通信模型包括四种(这里说的都是网络IO):阻塞式同步IO.非阻塞式同步IO.多路复用IO.和真正的异步IO.这些IO模式都是要靠操作系统进行支持,应用程序只是提供相应的实现,对操作系统进行调用. 上篇中,首先介绍传统的阻塞式同步IO和非阻塞…
基于Java自身包实现消息方式的系统间通信的方式有:TCP/IP+BIO,TCP/IP+NIO,UDP/IP+BIO,UDP/IP+NIO.下面就这4种类型一一做个详细的介绍: 一.TCP/IP+BIO 在java中可基于Socket,ServerSocket来实现TCP/IP+BIO的系统间通信.Socket主要用于实现建立连接以及网络IO的操作,ServerSocket主要用于实现服务器端端口的监听及Socket对象的获取.基于Socket实现客户端的代码如下: public class C…
(接上文<架构设计:系统间通信(19)--MQ:消息协议(上)>) 上篇文章中我们重点讨论了"协议"的重要性.并为各位读者介绍了Stomp协议和XMPP协议. 这两种协议是消息队列中两种不同使用场景下的典型代表. 本文主要接续上文的篇幅,继续讨论消息队列中还有一种典型协议:AMQP协议. 3-3.AMQP协议 AMQP协议的全称是:Advanced Message Queuing Protocol(高级消息队列协议).眼下AMQP协议的版本号为 Version 1.0.这个…
Windows进程间共享内存通信实例 抄抄补补整出来 采用内存映射文件实现WIN32进程间的通讯:Windows中的内存映射文件的机制为我们高效地操作文件提供了一种途径,它允许我们在WIN32进程中保留一段内存区域,把硬盘或页文件上的目标文件映射到这段虚拟内存中.注意:在程序实现中必须考虑各进程之间的同步问题. 在Windows操作系统下,任何一个进程不允许读取.写入或是修改另一个进程的数据(包括变量.对象和内存分配等),但是在某个进程内创建的文件映射对象的视图却能够为多个其他进程所映射,这些进…
用隧道协议实现不同dubbo集群间的透明通信 前言 笔者最近完成了一个非常有意思的隧道机制(已在产线运行),可以让注册到不同zookeeper之间的dubbo集群之间能够正常进行通信.如下图所示: 例如图中A/B两个网络隔离的集群,两者只能通过专线进行通信.但是对于在里面的应用来说,调用另外一个集群的dubbo服务(例如app1调用app3)依旧和原来的方式一模一样,无需做任何修改.这个特性对于新建单元(机房),业务网络隔离等场景非常有用. 本文就稍稍聊一下这个机制. 场景 这个dubbo集群通…
应用笔记 V1.0 2015/03/26 PC和FPGA间的串口通信实现   概述   本文将介绍PC和FPGA间的串口通信实现的基本思路和Verilog代码,对于通信而言,收发双方都要有相应的控制.PC端采用MATLAB控制串口进行操作.本文档将详细介绍这一过程. 修订历史 以下表格展示了本文档的修订过程 日期 版本号 修订内容 2015/03/26 V1.0 初始版本,运行正确   简介   PC端程序基于MATLAB 2014a 编写,本文档中提到的"MATLAB"均指该特定版本…
在一次项目中,因笔者负责的java端应用需要与公司C++系统进行交互,公司选定Protocol Buffer方案,故简单的了解一下 有需要的可以看一下其他作者的文章,了解一下Protobuf: http://www.cnblogs.com/stephen-liu74/archive/2013/01/02/2841485.html http://blog.csdn.net/think_soft/article/details/8227363 ==== http://www.cnblogs.com/…
1 介绍 如今是网络化的时代,我们每一个人要更好的发展.离不开网络化.信息化的支持.利用网络的支持.在不同的操作系统间共享文件等信息,是计算机专业学生必备的一项技能. 本文所讲的就是怎样建立.设置.链接Sambaserver,使得处在网络中的两台电脑,一台装的是Ubuntu操作系统,一台装的是Win7,通过共享目录的形式来共享信息.这两台电脑在网络上处的位置和网络架构为图1所看到的. watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvUm9iZXJ0Q2h…
日常工作中经常涉及到系统间的文件传输,下面就简单说一下常用的方法   linux--windows      工具:winscp.SecureCRT.Zmodem(sz, rz)   linux--linux      工具:scp.rsync (具体用法,参照man手册)   通用方法:Python快捷搭建http服务器 一.直接使用python的SimpleHTTPServer 模块搭建http下载服务器(只能下载不能上传) python -m SimpleHTTPServer 8000 #…
RDIFramework.NET — 基于.NET的快速信息化系统开发框架 5.3 数据库连接管理模块 5.3 数据库连接管理模块 我们经常可以看到很多软件直接把数据库连接字符串放在软件执行目录下的配置文件中,这种直接把数据库连接字符串(不管加密与否)放在客户端很不安全.在我们的框架中,可以挂接无数个各种类型的数据库,通过把这些连接字符串统一通过特殊处理存放到数据库中,前端开发人员只需要调用相应的数据库访问接口即可,变更数据库服务器地址等都极为方便,数据库连接管理如图5.2.1所示.所有数据库连…
基于B/S系统间单点登录 此处说的单点登录的概念,即不同系统公用一个登录界面.一处系统通过登录验证,在接入的各系统均为登录状态.一般有两种情景: 1)  一级域名相同 例如:tieba.baidu.com 和 www.baidu.com 这种情形的解决方案,非常简单.就是在统一登录页面登录成功以后,将用户的token(共享的session)信息存在cookie里,且cookie的作用域设为一级域名,例如设为baidu.com.这样同一个浏览器就实现了用户登录信息的共享. 2)  一级域名不相同…
系统自带的日志管理工具-rsyslogd 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.日志管理简介 1.什么是日志 系统日志是记录系统中硬件.软件和系统问题的信息,同时还可以监视系统中发生的事件.用户可以通过它来检查错误发生的原因,或者寻找受到攻击时攻击者留下的痕迹.系统日志包括系统日志.应用程序日志和安全日志.   2.日志服务 在CentOS6.x中日志服务已经由rsyslogd取代了原先的syslogd服务.rsyslogd日志服务更加先进,功能更多.但是不论该服…
1.何为client 公司内部的系统调用,如果采用http直接调用,会非常不方便,而且不规范,接口升级或者变动,系统间的改动也是相当麻烦.所以在系统间采用client的互相调用,调用简单,如下: 获取用户信息: UserRequserReq userReq = new UserReq(); //填充需要的字段 ... UserClient.getUserInfo(userReq); 是不是简单,规范很多. 2.如何优雅的实现 包结构 client |-controller | |_UserCon…
本来想简化 ThinkSNS 系统里面的一个缓存管理函数: <?php /** * 用来对应用缓存信息的读.写.删除 * $expire = null/0 表示永久缓存,否则为缓存有效期 */ function S($name, $value = '', $expire = null) { static $_cache = array(); //减少缓存读取 $cache = model('Cache'); //$name = C('DATA_CACHE_PREFIX').$name; if (…
**可以快速二次开发的开源小程序商城系统源码**源码开源地址:https://github.crmeb.net/u/LXT 项目介绍: CRMEB系统就是集客户关系管理+营销电商系统,能够真正帮助企业基于微信公众号.小程序实现会员管理.数据分析,精准营销的电子商务管理系统.可满足企业新零售.批发.分销.预约.O2O.多店等各种业务需求. 通过绑定微信开放平台,统一用户ID,实现公众号小程序数据同步,源码包含积分.优惠券.秒杀.砍价.分销等功能.后台采用form-builder组件和后台多任务操作…
一.用户账户管理 Linux/Unix是一个用户.多任务的操作系统:在讲Linux账号及账户组管理之前,先简单了解一下多用户.多任务操作系统的基本概念. Linux的单用户多任务 在Linux下,当你登录后,你也可以同时开启很多的服务任务和进程,而各自服务都会跑的很好却对其他任务没有任何影响,这种登录一个用户登录系统执行多个服务任务和进程的情况,就称为单用户多任务. Linux的多用户多任务 有时可能是很多用户同时用同一个系统,如公司几十个运维人员,每台机器都可以和被若干个运维人员登录部署或解决…
风险识别系统-大数据智能风控管理平台-企业风控解决方案– 阿里云 https://www.aliyun.com/product/saf…
借助.NET Core提供的承载(Hosting)系统,我们可以将任意一个或者多个长时间运行(Long-Running)的服务寄宿或者承载于托管进程中.ASP.NET Core应用仅仅是该承载系统的一种典型的服务类型而已,任何需要在后台长时间运行的操作都可以定义成标准化的服务并利用该系统来承载. 一.承载长时间运行服务 一个ASP.NET Core应用本质上是一个需要长时间运行的服务,开启这个服务是为了启动一个网络监听器.当监听到抵达的HTTP请求之后,该监听器会将请求传递给应用提供的管道进行处…
4.多路复用IO模型 在"上篇"文章中,我们已经提到了使用多线程解决高并发场景的问题所在,这篇文章我们开始 4-1.现实场景 我们试想一下这样的现实场景: 一个餐厅同时有100位客人到店,当然到店后第一件要做的事情就是点菜.但是问题来了,餐厅老板为了节约人力成本目前只有一位大堂服务员拿着唯一的一本菜单等待客人进行服务. 那么最笨(但是最简单)的方法是(方法A),无论有多少客人等待点餐,服务员都把仅有的一份菜单递给其中一位客人,然后站在客人身旁等待这个客人完成点菜过程.在记录客人点菜内容…
这篇博客基本照搬了分布式java应用基础与实践一书的内容 java自带的远程调用分两种一种是rmi,一种是webservice 我们先看rmi(remote method invoke)# 使用rmi 看代码 /** * <构建高性能的大型分布式Java应用> * 书中的示例代码 * 版权所有 2008---2009 */ package book.chapter1.rmi; import java.rmi.Remote; import java.rmi.RemoteException; /*…
/** * Created by LiuHuiChao on 2016/11/15. * description:based on TCP/IP+NIO to deliver the message */ public class TCP_IP_NIO { @Test public void clientStart() throws IOException { SocketChannel channel=SocketChannel.open(); channel.configureBlockin…
最近看到阿里的一位童鞋写的一本关于分布式的书,感觉不错,准备把这本书上基础的代码都写一写. /** * Created by LiuHuiChao on 2016/11/15. * description:based on TCP/IP+BIO to deliver the message */ public class TCP_IP_BIO { /** * client端 * @throws IOException */ @Test public void startClient() thro…