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

国内做医疗耗材的网站工商服务网

国内做医疗耗材的网站,工商服务网,网站运营报告,在哪里可以买到客户数据什么是发布-订阅发布订阅是一种众所周知并被广泛使用的消息传送模式#xff0c;常用在微服务架构的服务间通信#xff0c;高并发削峰等情况。但是不同的消息中间件之间存在细微的差异#xff0c;项目使用不同的产品需要实现不同的实现类#xff0c;虽然是明智的决策#x… 什么是发布-订阅发布订阅是一种众所周知并被广泛使用的消息传送模式常用在微服务架构的服务间通信高并发削峰等情况。但是不同的消息中间件之间存在细微的差异项目使用不同的产品需要实现不同的实现类虽然是明智的决策但必须编写和维护抽象及其基础实现。此方法需要复杂、重复且容易出错的自定义代码。Dapr为了解决这种问题提供开箱即用的消息传送抽象和实现封装在 Dapr 构建基块中。业务系统只需调用跟据Dapr的要求实现订阅发布即可。工作原理Dapr 发布订阅构建基块提供了一个与平台无关的 API 框架来发送和接收消息。服务将消息发布到指定主题 业务服务订阅主题以使用消息。服务在 Dapr sidecar 上调用 pub/sub API。然后sidecar 调用预定义 Dapr pub/sub 组件。任何编程平台都可以使用 Dapr 本机 API 通过 HTTP 或 gRPC 调用构建基块。若要发布消息请进行以下 API 调用http://localhost:dapr-port/v1.0/publish/pub-sub-name/topic上述调用中有几个特定于 Dapr 的 URL 段dapr-port 提供 Dapr sidecar 侦听的端口号。pub-sub-name 提供所选 Dapr pub/sub 组件的名称。topic 提供消息发布到的主题的名称。设置发布订阅组件Dapr 为 Pub/Sub 提供很多支持的组件例如 Redis 和 Kafka 等。支持组件详见 链接在win10上的自承载的Dapr中默认在 %UserProfile%\.dapr\components\pubsub.yaml 中使用redis作为了pub/sub组件dapr run一个app时使用默认组件作为pub/sub组件apiVersion: dapr.io/v1alpha1 kind: Component metadata:name: pubsub spec:type: pubsub.redisversion: v1metadata:- name: redisHostvalue: localhost:6379- name: redisPasswordvalue: 订阅主题Dapr 允许两种方法订阅主题声明式其中定义在外部文件中。编程方式订阅在用户代码中定义1.声明式订阅在默认组件目录 %UserProfile%\.dapr\components\pubsub.yaml 中新建subscription.yaml文件并写入以下内容apiVersion: dapr.io/v1alpha1 kind: Subscription metadata:name: myevent-subscription spec:topic: test_topicroute: /TestPubSubpubsubname: pubsub scopes: - frontend上面的示例显示了 test_topic主题的事件订阅使用组件 pubsub。route 告诉 Dapr 将所有主题消息发送到应用程序中的 /TestPubSub 端点。scopes 为 FrontEnd启用订阅现在需要在FrontEnd项目中定义接口TestSub在FrontEnd中新建TestPubSubControllerusing Dapr.Client;using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Logging;using System.IO; using System.Text; using System.Threading.Tasks;namespace FrontEnd.Controllers {[Route([controller])][ApiController]public class TestPubSubController : ControllerBase{private readonly ILoggerTestPubSubController _logger;private readonly DaprClient _daprClient;public TestPubSubController(ILoggerTestPubSubController logger, DaprClient daprClient){_logger logger;_daprClient daprClient;}[HttpPost]public ActionResult Post(){Stream stream Request.Body;byte[] buffer new byte[Request.ContentLength.Value];stream.Position 0L;stream.ReadAsync(buffer, 0, buffer.Length);string content Encoding.UTF8.GetString(buffer);return Ok(content);}[HttpGet(pub)]public async TaskActionResult PubAsync(){var data new WeatherForecast();await _daprClient.PublishEventAsyncWeatherForecast(pubsub, test_topic, data);return Ok();}} }需要在Startup的Configure中开启重复读取Body才能读取到数据app.Use((context, next) {context.Request.EnableBuffering();return next();});启动FrontEnddapr run --dapr-http-port 3501 --app-port 5001 --app-id frontend dotnet .\FrontEnd\bin\Debug\net5.0\FrontEnd.dll调用 pub API发布消息查看订阅情况订阅消息消费成功 2.编程式订阅为了防止声明式订阅的影响需要先把目录%UserProfile%\.dapr\components\pubsub.yaml中subscription.yaml文件删除TestPubSubController新增Api Sub[Topic(pubsub, test_topic)][HttpPost(sub)]public async TaskActionResult Sub(){Stream stream Request.Body;byte[] buffer new byte[Request.ContentLength.Value];stream.Position 0L;stream.ReadAsync(buffer, 0, buffer.Length);string content Encoding.UTF8.GetString(buffer);_logger.LogInformation(testsub content);return Ok(content);}在Startup的Configure方法中新增中间件public void Configure(IApplicationBuilder app, IWebHostEnvironment env) {// ...app.UseCloudEvents();app.UseEndpoints(endpoints {endpoints.MapSubscribeHandler();// ...}); }启动FrontEnddapr run --dapr-http-port 3501 --app-port 5001 --app-id frontend dotnet .\FrontEnd\bin\Debug\net5.0\FrontEnd.dll调用API发布消息 查看订阅情况订阅消息消费成功 通过DapreCLI同样可以发布消息dapr publish --publish-app-id frontend --pubsub pubsub --topic test_topic --data {date:0001-01-01T00:00:00,temperatureC:0,temperatureF:32,summary:null}查看订阅情况订阅消息消费成功相关文章Dapr实战一 基础概念与环境搭建Dapr .NET Core实战二 服务调用Dapr .NET Core实战三状态管理
http://www.pierceye.com/news/17913/

相关文章:

  • 高端大气的的网站上海原画培训机构排名
  • 怎么做网站互换链接个人网站建设知乎
  • sq网站推广海外营销策略
  • 如何制作一个属于自己的网站新乡 网站开发
  • 广州市住房和城乡建设局官方网站微信小程序商城开发教程
  • 国内外包网站wordpress连阿里云域名
  • 如何侵入网站服务器网站开发设计知乎
  • 一份电子商务网站建设规划书网站域名所有权
  • 网站源码做exe执行程序小程序哪家开发最好
  • 哪里学做网站网站备案主体是什么
  • 网站开发技术是什么专业会的江苏手机网站建设
  • 做网站用的字体是什么网站项目建设流程
  • 网站建设最低要求插件 wordpress开发
  • 佛山英文网站建设娄底网站制作
  • 贵阳市住房城乡建设局八大员网站宝塔面板配置wordpress
  • 织梦招商加盟网站源码怎么制作图片表格
  • 做网站维护有前途吗湖南网站推广多少钱
  • 专门做正品的网站有哪些长沙百度首页优化排名
  • 花生壳可以做网站吗百度小说
  • 龙岩市城乡规划建设局网站怎么查自己的邮箱号
  • 快三彩票网站建设asp购物网站源码
  • 中国建设银行app下载官网网站建设优化兼职在家
  • 网站页面设计图片素材制作网站项目实例
  • 延安网站优化怎么开网站
  • 建设网站石家庄网站模板兼容手机
  • 找代做海报的网站网站推广技巧有哪些
  • 校园网站制作php网站开发工资多少钱
  • 手机app开发技术济南网络优化推广公司哪家好
  • dmoz提交网站品牌建设方式有哪些
  • 网站提升排名海口模板建站