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

网站关键词如何快速上首页企业服务平台工程建设云

网站关键词如何快速上首页,企业服务平台工程建设云,从网上怎么做网站营销,网站建设飠金手指排名十一queue#xff0c;是很好的削峰填谷工具#xff0c;在业内也是主流#xff1b;发布订阅#xff0c;可以有效的解耦两个应用#xff0c;所以dapr把他们进行了有效的封装#xff0c;我们使用起来更简单高效。本篇的案例是下完订单后#xff0c;会把消息发布到redis#xf… queue是很好的削峰填谷工具在业内也是主流发布订阅可以有效的解耦两个应用所以dapr把他们进行了有效的封装我们使用起来更简单高效。本篇的案例是下完订单后会把消息发布到redis当然也可以是其他中通知系统和支付系统会订单这个消息同时通知系统和支付系统的两个实例中只会有一个实例接收到这个消息进行处理调用示意图如下项目结构如下一、配置用docker-compose部署docker-compose.yml内容version: 3.4services:#┌────────────────────────────────┐#│ ordersystem app Dapr sidecar │#└────────────────────────────────┘ordersystem:image: ${DOCKER_REGISTRY-}ordersystemdepends_on:- redis- placementbuild:context: ../dockerfile: OrderSystem/Dockerfileports:- 3500:3500volumes: - ../OrderSystem:/OrderSystem networks:- b2c-daprordersystem-dapr:image: daprio/daprd:latestcommand: [ ./daprd, -app-id, order, -app-port, 80,-placement-host-address, placement:50006,-components-path,/components]depends_on:- ordersystemnetwork_mode: service:ordersystemvolumes: - ../components:/components #┌───────────────────────────────────┐#│ paymentsystem1 app Dapr sidecar │#└───────────────────────────────────┘ paymentsystem1:image: ${DOCKER_REGISTRY-}paymentsystembuild:context: ../dockerfile: PaymentSystem/Dockerfileports:- 3601:3500volumes: - ../PaymentSystem:/PaymentSystem networks:- b2c-dapr paymentsystem1-dapr:image: daprio/daprd:latestcommand: [ ./daprd, -app-id, pay, -app-port, 80,-placement-host-address, placement:50006,-components-path,/components ]depends_on:- paymentsystem1network_mode: service:paymentsystem1volumes: - ../components:/components #┌───────────────────────────────────┐#│ paymentsystem2 app Dapr sidecar │#└───────────────────────────────────┘ paymentsystem2:image: ${DOCKER_REGISTRY-}paymentsystembuild:context: ../dockerfile: PaymentSystem/Dockerfilevolumes: - ../PaymentSystem:/PaymentSystem ports:- 3602:3500networks:- b2c-dapr paymentsystem2-dapr:image: daprio/daprd:latestcommand: [ ./daprd, -app-id, pay, -app-port, 80 ,-placement-host-address, placement:50006,-components-path,/components]depends_on:- paymentsystem2network_mode: service:paymentsystem2volumes: - ../components:/components #┌───────────────────────────────────┐#│ noticesystem1 app Dapr sidecar │#└───────────────────────────────────┘ noticesystem1:image: ${DOCKER_REGISTRY-}noticesystembuild:context: ../dockerfile: NoticeSystem/Dockerfileports:- 3701:3500volumes: - ../NoticeSystem:/NoticeSystem networks:- b2c-dapr noticesystem1-dapr:image: daprio/daprd:latestcommand: [ ./daprd, -app-id, notice, -app-port, 80,-placement-host-address, placement:50006,-components-path,/components ]depends_on:- noticesystem1network_mode: service:noticesystem1volumes: - ../components:/components #┌───────────────────────────────────┐#│ noticesystem2 app Dapr sidecar │#└───────────────────────────────────┘ noticesystem2:image: ${DOCKER_REGISTRY-}noticesystembuild:context: ../dockerfile: NoticeSystem/Dockerfileports:- 3702:3500volumes: - ../NoticeSystem:/NoticeSystem networks:- b2c-dapr noticesystem2-dapr:image: daprio/daprd:latestcommand: [ ./daprd, -app-id, notice, -app-port, 80,-placement-host-address, placement:50006,-components-path,/components ]depends_on:- noticesystem2network_mode: service:noticesystem2volumes: - ../components:/components #┌────────────────────────┐#│ Dapr placement service │#└────────────────────────┘ placement:image: daprio/daprcommand: [./placement, -port, 50006]ports:- 50006:50006networks:- b2c-dapr#┌───────────────────┐#│ Redis state store │#└───────────────────┘ redis:image: redis:latestports:- 6380:6379networks:- b2c-dapr networks:b2c-dapr:pubsub.yaml在components文件夹下 内容是默认如下apiVersion: dapr.io/v1alpha1 kind: Component metadata:name: pubsub spec:type: pubsub.redisversion: v1metadata:- name: redisHostvalue: redis:6379- name: redisPasswordvalue: 订阅配置文件如下subscription.yaml在components文件夹下 apiVersion: dapr.io/v1alpha1 kind: Subscription metadata:name: myevent-subscription spec:topic: orderCompleteroute: /ordercompletepubsubname: pubsub scopes: - pay - notice二、代码OrderSystem项目的appsettings.jsonPublishUrl: http://localhost:3500/v1.0/publish/pubsub/orderCompleteOrderSystem项目的发布方法[HttpGet(/orderpub/{orderno})]public async TaskIActionResult OrderPub(string orderno){try{_logger.LogInformation($Order,publish);await Task.Delay(400);var client _clientFactory.CreateClient();var stringContent new StringContent(Newtonsoft.Json.JsonConvert.SerializeObject(new { OrderNo orderno, Amount 30000, OrderTime DateTime.UtcNow}), System.Text.Encoding.UTF8, application/json);_logger.LogInformation(stringContent.ToString());var content await client.PostAsync(_publishUrl, stringContent);return new JsonResult(new { order_result Order success,and publish, pay_result content });}catch (Exception exc){_logger.LogCritical(exc, exc.Message);return new JsonResult(new { order_result Order success,and publish,pay exception, message exc.Message });}}PaymentSystem和NoticeSystem项目中的订阅实现两个实体类public class PubBody {public string id { get; set; }public string source { get; set; }public string pubsubname { get; set; }public string traceid { get; set; }public PubOrder data { get; set; }public string specversion { get; set; }public string datacontenttype { get; set; }public string type { get; set; }public string topic { get; set; } }public class PubOrder {public string OrderNo { get; set; }public decimal Amount { get; set; }public DateTime OrderTime { get; set; } }NoticeSystem和PaymentSystem两个项目中的订阅方法如下[HttpPost(/ordercomplete)]public async TaskIActionResult OrderComplete(){try{_logger.LogInformation(PaymentSystem OrderComplete runing……);using var reader new StreamReader(Request.Body, System.Text.Encoding.UTF8);var content await reader.ReadToEndAsync();var pubBody Newtonsoft.Json.JsonConvert.DeserializeObjectPubBody(content);_logger.LogInformation($--------- HostName:{Dns.GetHostName()},OrderNo:{pubBody?.data.OrderNo},OrderAmount:{pubBody?.data.Amount},OrderTime:{pubBody?.data.OrderTime} -----------);await Task.Delay(200);_logger.LogInformation($subscription pay complete);_logger.LogInformation($return SUCCESS);return new JsonResult(new{Status SUCCESS});}catch (Exception exc){_logger.LogCritical(exc, exc.Message);_logger.LogInformation($return RETRY);return new JsonResult(new{Status RETRY});}}三、发布测试进入在B2C目发用命令行启动docker composedocker-compose up -d可以测试了调用OrderSystem的对外地址下订单NO0001和NO0002localhost:3500/v1.0/invoke/order/method/orderpub/NO0001和localhost:3500/v1.0/invoke/order/method/orderpub/NO0001查看容器noticesystem1查看容器noticesystem2查看容器paymentsystem1查看容器paymentsystem2NoticeSystem和PaymentSystem同时订阅OrderSystem项目的发布orderComplete两个实例会轮询处理订阅结果。Dapr就这样把复杂的发布订阅封装成一个api一样的简单调用和接收项目中没有一点的痕迹。
http://www.pierceye.com/news/287827/

相关文章:

  • 教学网站建设网站建设岗位有哪些
  • 网站建设合同的验收表网页网站的区别是什么
  • 开福区网站建设中wordpress调用所有栏目
  • 网站建设的流程是什么意思青岛做网站公司
  • 什么网站有项目做中铁建设企业门户网
  • 网站域名商代理商安卓商店
  • 深圳中英文网站建设广州知名设计公司排名
  • 一个公司设计网站怎么做的蜜桃传奇免费网页版
  • 网络推广网站培训班有人用wordpress默认主题
  • 网站建设 后台南宁做网站方案
  • 在线制作插画网站网站建设有哪些公司
  • 合肥的网站建设剂屏自己可以做开奖网站吗
  • 官网设计比较好看的网站学校网站建设对教学的意义
  • 济南建站推荐企汇优见效付款毕设代做网站招聘
  • 泰然建设网站免费软件app下载大全正能量网站
  • 张掖市网站建设北京代理记账财务公司
  • 中铁建设集团网站网络公司手机网站
  • 站长工具是什么意思建设银行网站 开户行怎么查
  • 做简历模板的网站都有哪些wordpress是啥东西
  • 网站流量渠道湖州做网站优化
  • 汽车网站哪个好预付的网站开发费用怎么入账
  • 网站代管理哪个网站有介绍拿到家做的手工活
  • 惊艳的网站网站建设实训过程报告
  • 秦皇岛做网站公司企业网站备案需要什么
  • 做网站必须开厂吗科协网站建设建议
  • 西宁 网站建设凡科做视频网站
  • wordpress中文主题 wp-cmsseo排名赚钱
  • 优质的网站制作在线查企业信息查询平台
  • 天津网站建设学习电子商务企业网站建设实训报告
  • 怎么让网站收录在google怎么免费安装wordpress主题