首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

.NET Remoting 体系结构 之 生命周期管理

对于客户端,答案比较简单。只要客户端调用远程对象上的方法,就会产生一个 System.Runtime.Remoting.RemotingException 类型的异常。此时,只需处理这个异常,完成一些必要 的工作,如重试、写日志以及通知用户等。 对于服务器,服务器应何时检测客户端是否还在?即服务器何时可以清理为该客户端保存的资 源?可以一直等待来自客户端的下一个方法调用,但该客户端可能再没有方法调用了。在 COM 领 域中,DCOM 协议使用 ping 机制解决这个问题。客户端把 ping 和引用对象的信息发送给服务器。 因为客户端在服务器上可能有几百个引用的对象,所以 ping 中的信息非常多。为了使这个机制更加 有效,DCOM 不发送所有对象的所有信息,而只发送与上一个 ping 不同的信息。 虽然这个 ping 机制在 LAN 上非常有效,但它并不适用于可伸缩的解决方案。考虑到有成千上 万的客户端向服务器发送 ping 信息,.NET Remoting 为生命周期管理提供了一个伸缩性更强的解决 方案:即租约分布式垃圾收集器(Leasing Distributed Garbage Collector,LDGC)。 这个生命周期管理只对客户端激活的对象和知名的单一对象有效。因为单一对象不保存状态, 所以在每个方法调用之后就可以销毁它们。客户端激活的对象保存状态,我们应该知道它们使用的 资源。如果在应用程序域外部引用客户端激活的对象,就需要创建租约。租约有一个租约时间。当 租约时间为 0时,租约就已经到期,此时远程对象就会断开连接,后由垃圾收集器回收。

01

Linux下的DHCP服务的原理及搭建

DHCP:     动态主机配置协议Dynamic host configuration protocol     DHCP工作在OSI的应用层,可以帮助计算机从指定的DHCP服务器获取配置信息的协议。(主要包括:ip地址,子网掩码,网关和dns等)     工作原理:         1、客户机寻找服务器:广播发送discover包,寻找dhcp服务器         2、服务器响应请求:单播发送offer包,对客户机做出响应。提供客户端网络相关的租约以供选择         其中服务器在收到客户端的请求后,会针对客户端的mac地址与本身的设定数据进行一下工作:             a、到服务器的登录文件中寻找该用户之前曾经使用过的ip,若有且该ip目前没有人使用,这提供此ip为客户机             b、若配置文件中有针对该mac提供额外的固定ip,且该ip没有被使用,则提供此ip给客户机             c、如果没有符合以上两个条件,则随机取用目前没有被使用的ip参数给客户机并记录到leases文件中。         3、客户机发送ip请求:广播request包,选择一个服务器提供的网络参数租约回报服务器。             此外,客户机会发送一个广播封包给局域网内的所有主机,告知自己已经接受服务器的租约。         4、服务器确认租约:单播Ack包,服务器与客户机确认租约关系并记录到服务器的leases文件中 。         客户端打开68号端口,服务器打开67号端口。     配置:         配置文件都放在/etc/dhcp目录下;主配置文件为dhcpd.conf         将/usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample文件复制到配置文件目录下,并覆盖dhcpd.conf文件,即可获得主配置文件。         主配置文件的主要内容介绍:             option domain-name "example.org";      --指定网域的域名             option domain-name-servers ns1.example.org, ns2.example.org;        --指定域名解析服务器(DNS)的ip地址。             default-lease-time 600;    --默认租约时间,单位为s             max-lease-time 7200;        --最大租约时间,单位为s。过期续约,续约直接发送request包即可。             log-facility local7;        --日志设备类型为local7.一般日志设备类型包括mail、crontab。通过此选项可以找到该服务的日志记录路径             subnet 10.5.5.0 netmask 255.255.255.224 {      --指定分配网段的ip地址以及子网掩码,括号内部为局部配置。             range 10.5.5.26 10.5.5.30;      --可使用的地址池范围             option domain-name-servers ns1.internal.example.org;        --该网段的域名,可以省略             option domain-name "internal.example.org";      --网段DNS             option routers 10.5.5.1;        --指定网关             option broadcast-address 10.5.5.31;    --指定广播地址             default-lease-time 600;    --租约时间             max-lease-time 7200;        --最大租约时间。             }             host passacaglia {      --主机名称             hardware ethernet 0:0:c0:5d:bd:95;      --主机的MAC地址             filename "vmunix.passacaglia";             server-name "toccata.fugue.com";        --文件名和服务器名,不太需要。             fixed-address fantasia.fugue.com;      --固定的ip地址

02

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

相关资讯

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券