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

局域网网站架设文章写作网站

局域网网站架设,文章写作网站,唐山网站公司建站,单产品网站模板状态管理和上一章的订阅发布都算是Dapr相较于其他服务网格框架来讲提供的比较特异性的内容#xff0c;今天我们来讲讲状态管理。目录#xff1a;一、通过Dapr实现一个简单的基于.net的微服务电商系统二、通过Dapr实现一个简单的基于.net的微服务电商系统(二)——通讯框架讲解… 状态管理和上一章的订阅发布都算是Dapr相较于其他服务网格框架来讲提供的比较特异性的内容今天我们来讲讲状态管理。目录一、通过Dapr实现一个简单的基于.net的微服务电商系统二、通过Dapr实现一个简单的基于.net的微服务电商系统(二)——通讯框架讲解三、通过Dapr实现一个简单的基于.net的微服务电商系统(三)——一步一步教你如何撸Dapr四、通过Dapr实现一个简单的基于.net的微服务电商系统(四)——一步一步教你如何撸Dapr之订阅发布附录(如果你觉得对你有用请给个star)一、电商Demo地址https://github.com/sd797994/Oxygen-Dapr.EshopSample二、通讯框架地址https://github.com/sd797994/Oxygen-Dapr  什么是状态简单来讲就是数据状态。比如我访问/api/user/1,返回{userid:1,name:xiaoming}无论我的实例有多少个我通过接口访问这个url都能够得到该条信息。一般的设计中我们的应用是无状态的所谓无状态就是每一个实例并不握持状态(排除缓存的情况)而是通过第三方组件可能是缓存组件也可能是数据库来维持状态。数据库维持状态这个大家都比较熟悉了毕竟都是靠CRUD起家的。另外一种则就是缓存状态缓存状态有多种方式最简单以及最熟悉的就是我们asp.net的session以及system.cache。到了.netcore时代微软给我们很贴心的提供了Extensions.Caching.xxx来对我们的缓存提供一些外部支持虽然在fx时代也有不过相对比较麻烦。而到了dapr则对其提供了更进一步的支持包括更广泛的组件支持列表、非介入性SDK集成(可直接通过http访问)。通过这样的方式让我们的服务很容易对外提供并发安全的、一致性的状态体验。  状态管理和上一章讲到的订阅发布一样主要是依赖于Dapr强大的Component来连接Dapr适配的各种各样的缓存中间件同时对上层(应用)抽象为一组rest api作为读/写操作入口,它的读写操作格式如下(仅列出部分完整的API参考这里)GET http://localhost:daprPort/v1.0/state/storename/keyPOST http://localhost:daprPort/v1.0/state/storenameDELETE http://localhost:daprPort/v1.0/state/storename/key  state代表我们将调用dapr的状态服务storename则是我们申明的类型为state的componentkey则是我们需要存取到redis的kv键值对(值在post body中以json格式发送)  一份标准的状态component如下此处依然以redis为例查看这里是所有支持列表apiVersion: dapr.io/v1alpha1 kind: Component metadata:name: statestore spec:type: state.redisversion: v1metadata:- name: redisHostvalue: redis.infrastructure.svc.cluster.local:6379- name: keyPrefixvalue: none选择Dapr为我们托管状态管理的好处是什么呢1、我们屏蔽了技术复杂性避免了在基础设施层去集成各种类型的状态中间件SDK2、Dapr为我们实现了分布式并发和数据一致性具体来讲在并发控制方面Dapr提供了一套OCC乐观并发控制机制通过附加的etag来做版本校验确保用户回写过程和服务器端的版本一致才能操作。3、dapr为我们提供了bulk批处理可以批量插入/删除数据这部分demo没有涉及大家可以看看这里  同样的我们来看看代码状态管理相较比较简单首先我们还是打开之前的解决方案在RPC项目里创建一个model该model继承一个StateStore主要是强制规范统一命名必须包含key,data。public class TestState : Oxygen.Client.ServerSymbol.Store.StateStore{public TestState(){Key TestState;}public override string Key { get; set; }public override object Data { get; set; }}接着我们再在ClientCallService的构造函数引入IStateManager依赖同时在Call方法中我们写入一个状态其他代码随上一章内容不变private readonly IServiceProxyFactory serviceProxyFactory;private readonly IStateManager stateManager;public ClientCallService(IServiceProxyFactory serviceProxyFactory, IStateManager stateManager) {this.serviceProxyFactory serviceProxyFactory;this.stateManager stateManager;}public async Taskdynamic Call(){var result1 new OutDto();var result2 new OutDto();var remoteService serviceProxyFactory.CreateProxyIHelloService();await stateManager.SetState(new TestState() { Data new OutDto() { Word 123 } });try{result1 await remoteService.HelloWorld();result2 await remoteService.HelloWorldByName(new InputDto() { Name xiaoming });}catch(Exception e){}return new { result1, result2 };}接着我们在servicesample打印出来 var result await stateManager.GetStateOutDto(new TestState());Console.WriteLine(result.Word);启动项目打开postman访问并打印控制台可以看到状态被正确的从clientsaample写入并从servicesample读取打印到了控制台上这里注意如果不想状态被其他服务读写也就是仅能在当前服务的scope内被读写可以在设置component时删除keyPrefix节即可    状态管理就讲到这里整体使用上比较简单开发者只需要考虑持久化设备的可用性以及可扩展性其他都可以交给Dapr即可。  今天补一个小的功能点在oxygen框架中我为AOP提供了一个入口可以在ConfigureServices时通过LocalMethodAopProvider这个静态类的RegisterPipelineHandler方法注册请求前、方法前、方法后、方法异常四个匿名委托。请求前主要是注入了一个OxygenHttpContextWapper的包装器类该类包含了原始请求中的path/header/cookie等等原始data,并提供了一个当前请求的ILifetimeScope用于用户进行对象注入。在方法前则提供了一个object类型的入参方便用户做方法前校验。方法后则是拦截的方法体返回的result。而异常则是方法内抛出的所有unhandle异常都会被这个委托捕获方便用户统一处理。   今天的分享就到这里欢迎大家评论区留言交流欢迎对github上starfork~相关文章Dapr能否引领云原生中间件的未来云原生 | 阿里巴巴的Dapr实践与探索Dapr | 云原生的抽象与实现Dapr 可视化指南Dapr 知多少 | 分布式应用运行时Dapr 正式发布 1.0Dapr 交通流量控制示例Dapr是如何简化微服务的开发和部署微软开源微服务运行时Dapr赋能云原生应用开发YARP实现Dapr服务调用的反向代理Dapr微服务应用开发系列0概述Dapr微服务应用开发系列1环境配置Dapr微服务应用开发系列2Hello World与SDK初接触Dapr微服务应用开发系列3服务调用构件块Dapr微服务应用开发系列4状态管理构件块Dapr微服务应用开发系列5发布订阅构建块Windows环境下Dapr入门云原生 | .NET 5 with Dapr 初体验通过Dapr实现一个简单的基于.net的微服务电商系统通过Dapr实现一个简单的基于.net的微服务电商系统(二)——通讯框架讲解通过Dapr实现一个简单的基于.net的微服务电商系统(三)——一步一步教你如何撸Dapr通过Dapr实现一个简单的基于.net的微服务电商系统(四)——一步一步教你如何撸Dapr之订阅发布
http://www.pierceye.com/news/522247/

相关文章:

  • 网站的流量检测怎么做禹州做网站的公司
  • 百度网站录入北京到安阳高铁
  • 去马来西亚做网站网站安卓网站开发平台
  • jsp 哪些网站利用技术搭建网站做网站代理
  • 网站建设 分类广告html做网站自适应宽度
  • 鄂州市建设局网站佰牛网站建设
  • 织梦网站上传及安装步骤农畜产品销售平台的网站建设
  • 网站续费如何做分录做交互设计的网站
  • 国家网站备案查询系统安丘网站建设多少钱
  • 长沙公司网站设计鹤壁建设网站推广公司电话
  • 电子商务网站建设与管理实务电子商务网站的构建
  • 做网站的集团用什么自己做网站
  • 买网站空间网站模块图片
  • 上海建设网站公在微信上怎么开店
  • 哪家网站雅虎全球购做的好做一婚恋网站多少钱
  • 苏州企业网站公司都有哪些php开源企业网站系统
  • wordpress收录很慢自己的网站如何优化
  • 个人介绍网站源码1v1网站建设
  • 大宇网络做网站怎么样app制作器下载软件
  • 四川建行网站做网站公司职务
  • 广州定制网站设计图标设计免费 logo
  • 十大网站有哪些网站建设 模板
  • 网站流量一直下降中国十大品牌网
  • 同学录网站开发的背景域名注册网站免费
  • 旅游电子商务网站建设规划书温州网站建设策划方案
  • 国家住房建设部网站域名查询官方网站
  • app开发 网站开发统称宁波seo推广咨询
  • 专门做书单的网站网络营销策划方案的设计
  • 网站建设推广合同自己建设网站需要花多少钱
  • 深圳网站建设电话哈尔滨建设网站官网