zoukankan      html  css  js  c++  java
  • 实例管理3()

          单例服务      

          当服务被配置为单例(Singleton)时,所有客户端都将独自连接相同的单个知名(Well-Known)实例,而不用考虑他们连接的是服务的哪一个终结点。单例服务的生存期是无限的,只有在关闭宿主时,才会被释放。创建宿主时,单例服务会被创建,并接只能被创建一次。

          本质上讲,单例实例是共享的,每个客户端都可以创建自己的代理指向它。

          单例服务的状态是同步的,因此与可伸缩性想背。对象是单例的意味着它包含了一些有价值的状态,开发这希望这项状态能够被多个客户端共享。当多个客户端连接单例服务时,需要处理并发性问题,这回降低系统的吞吐量、响应速度以及可用性,因此它不太适合于规模较大的系统。

          分布操作

          我们在处理订单时可能需要注意操作顺序。WCF允许指定契约操作为启动或终止会话的操作,可以使用OperationContract的IsInitiating和IsTerminating属性。

          实例停用

          每个服务实例都被托管在上下文中,会话实际要做的不仅是关联客户端消息,还有关联托管了服务的上下文。启动会话时,宿主会创建一个新的上下文。会话终止时,上下文也随之而终止。默认情况下,上下文的生命周期与发布的服务实例的生命周期相同。处于优化的目的,WCF提供了分离两种生命周期的选项,该选项允许WCF独立的停用实例,而不必依赖于它的上下文。实际上,WCF还允许不包含实例的上下文存在。控制上下文停用的最常见办法是通过OperationBehavior特性的ReleaseInstanceMode属性。      

          也可以通过实例上下文的ReleaseServiceInstance()方法实现显式停止。

          限流

          限流允许开发者限制客户端连接数以及服务的负荷,可以避免服务的最大化,以及分配与使用重要资源的最大化。

          可以通过配置文件实现。使用服务的behaviorConfiguration标签。

          在使用TCP和命名管道绑定时,我们也可以在绑定中为一个特定的终结点配置最大连接数。采用binding中的maxConnections属性。

  • 相关阅读:
    Agilent RF fundamentals (7) Oscillator characterization
    Agilent RF fundamentals (6)
    L136
    Agilent RF fundamentals (5)
    Agilent RF fundamentals (4)- Impedance match and distortions
    L134
    2018.9.14 长难句1
    L133
    PyQt(Python+Qt)学习随笔:QTreeWidget中给树型部件增加顶层项的方法
    PyQt(Python+Qt)学习随笔:invisibleRootItem方法访问QTreeWidget树型部件的隐形根节点
  • 原文地址:https://www.cnblogs.com/jyz/p/1445485.html
Copyright © 2011-2022 走看看