最近加班有点多,一周五天,四天加班到11点+,心很累。原因是我当前在的这个组比较特殊,相当于业务的架构组,要为其它的开发组提供服务和监控。所以最近更新的也少,不过这个元旦三天假应该会更新三篇。

这篇是介绍一下商城的购物车,代码就不详细介绍了,因为技术点都已经再前面几篇介绍过了,无非就是产品的增删该查,当然,数据的更新交互这一块使用的是我们上一篇介绍的消息队列,比如购车的添加、修改、删除。

商城到这块功能方面就不打算继续往下写了,因为后面的功能都是围绕业务展开,技术方面千篇一律,而我们的关注点在于技术,所以后面的商城系列,一定是围绕着技术改造,现在还有几个技术点没有完成:

1.日志使用Log4net+Kafka+ELK (现在是直接将日志通过tcp发送到logstash)

2.添加SkyWalking调用链监控。

3.RabbitMQ消费端独立成Windows服务,并添加监控。

4.使用Apollo,将配置于程序进行解耦。

5.添加定时任务、消费补偿机制。

6.将服务部署到k8s中。

后面的打算是暂时把这几个技术点给完成,这些都是我们再生产项目中直接用到的技术,一方面巩固自己的掌握,另一方面可以给有兴趣的人了解一下,这里面,我暂时比较想完成的是第6个,有时间的话我会把这几个服务部署到k8s中,这样我们就不再需要依赖Consul的服务注册和发现机制了。

先来看一下购物车完成的情况:

业务其实很简单,添加到购物车然后进行展示,代码也就不细讲了,贴下主要的购物车代码:

/// <summary>/// 修改购物车产品数量/// </summary>public async Task<JsonResult> CountChange(int? CarID, int ProductID, int VersionID, string Operate){var request = new AddCountRequest { CarId = CarID, ProductId = ProductID, VersionId = VersionID };if(Operate== "reduce"){request.Num = -1;}else{request.Num = 1;}eventBus.Publish("ShopCarCountChange", request);return Json("OK");}/// <summary>/// 新增购物车/// </summary>public async Task<JsonResult> AddCar(int ProductID, int VersionID){var getColorResponse = await shopCarService.GetColorAsync(new GetColorRequest { VersionId = VersionID });//发送新增购物车MQvar addShopCarRequest = new AddShopCarRequest { ProductID = ProductID, VersionID = VersionID };try{eventBus.Publish("AddShopCar", addShopCarRequest);}catch(Exception ex){Console.WriteLine(ex.Message);return Json("error");}return Json("ok");}

可以看到,购物车这里对于数据库的交互都是通过消息队列来完成的,服务的代码就不看了,就是普通的增删改查。

到此。商城服务一共有5个,我们通过Consul看下:

应该不会再新增服务了,后面会逐步的实现文章开始提到的几个技术点改造。

转载于:https://www.cnblogs.com/weiBlog/p/10200241.html

.Net Core 商城微服务项目系列(八):购物车相关推荐

  1. .Net Core 商城微服务项目系列(一):使用IdentityServer4构建基础登录验证

    这里第一次搭建,所以IdentityServer端比较简单,后期再进行完善. 1.新建API项目MI.Service.Identity,NuGet引用IdentityServer4,添加类InMemo ...

  2. .Net Core 商城微服务项目系列(十四):分布式部署携程Apollo构建配置中心

    一.开场白 在系统设计里我们有很多配置希望独立于系统之外,而又能够被系统实时读取.但是在传统的系统设计里,配置信息通常是耦合在系统内的,比如.net里通常会放在App.config或者web.conf ...

  3. .Net Core 商城微服务项目系列(十二):使用k8s部署商城服务

    一.简介 本篇我们将会把商城的服务部署到k8s中,同时变化的还有以下两个地方: 1.不再使用Consul做服务的注册和发现,转而使用k8s-dns来实现. 2.不再使用Ocelot作为业务网关,使用T ...

  4. .Net Core 商城微服务项目系列(二):使用Ocelot + Consul构建具备服务注册和发现功能的网关...

    1.服务注册 在上一篇的鉴权和登录服务中分别通过NuGet引用Consul这个包,同时新增AppBuilderExtensions类: public static class AppBuilderEx ...

  5. .Net Core 微服务容器系列基础目录篇

    1.开场白 HI,各位老铁,大家端午好,之前写了些关于.net core商城系列的文章,有点乱,今天心血来潮想着整理一下(今天只是先把目录列出来,后面的每篇文章这两天会进行重新修改的,目前先将就看下) ...

  6. 微服务项目--商城管理系统的整合与测试

    一.微服务项目结构预览 1.商城微服务项目源码:https://github.com/shi469391tou/microservice-mallmanagement.git 项目源码 通过一个名为m ...

  7. 商城项目02_环境搭建、安装VAGRANT、DOCKER、MYSQL、REDIS、从0搭建各个微服务项目、数据库初始化、安装NGINX

    文章目录 ①. virtualBox - 管理虚拟机 ②. vagrant - 安装虚拟机 ③. 虚拟机安装 - docker ④. docker上安装mysql ⑤. docker上安装redis ...

  8. .NET Core with 微服务 - Consul 配置中心

    上一次我们介绍了Elastic APM组件.这一次我们继续介绍微服务相关组件配置中心的使用方法.本来打算介绍下携程开源的重型配置中心框架 apollo 但是体系实在是太过于庞大,还是让我爱不起来.因为 ...

  9. .NET Core with 微服务 - Elastic APM

    上一次我们介绍了Seq日志聚合组件.这次要给大家介绍的是Elastic APM ,一款应用程序性能监控组件.APM 监控围绕对应用.服务.容器的健康监控,对接口的调用链.性能进行监控.在我们实施微服务 ...

最新文章

  1. AlexNet:深度卷积神经网络的ImageNet分类
  2. 51Nod 1453 抽彩球
  3. B2B专线宽带业务成为企业上云新战场——Vecloud
  4. php伪静态教程,DedeCMS实现全站PHP伪静态
  5. java 运算优先级_Java-运算符优先级
  6. linux脚本awk,如何在awk脚本中使用shell变量?
  7. java 私有静态类_java中,在私有的静态类中如何触发jbutton
  8. 转:关于Apache与Nginx的优势比较(经典)
  9. 斯坦福CS231n—深度学习与计算机视觉----学习笔记 课时6
  10. 在有的公司,高手遍地走,天才不如狗
  11. volte的sip信令流程_VOLTESIP代码详解及SIP流程图解
  12. WiFi 5G频段差分巴伦电路对接收灵敏度的影响
  13. xdg-open命令
  14. (基础)Promise中then()方法使用,多次调用、链式调用
  15. LBS的概念、历史、现状与未来(一)
  16. 在国企的 Java 程序员是一种什么样的体验?让我来告诉你吧!
  17. 如何生成git的公钥和私钥
  18. Linux Raid相关知识
  19. js保留两位小数的方法
  20. Top 100 大学

热门文章

  1. python在坐标轴上画矩形_Python使用matplotlib实现在坐标系中画一个矩形的方法
  2. 基类成员的public访问权限在派生类中变为_C++ 派生类的构造函数(学习笔记:第7章 06)...
  3. 集合 Arrays.asList | java.lang.UnsupportedOperationException: null
  4. 企业网络推广期间关于网站分享功能设计有哪些细节需要加以重视?
  5. 如何判断网站设计是否优质?
  6. python内置数据结构教程_python课程第二周 内置数据结构——列表和元组
  7. ios 圆形旋转菜单_iOS高级动画:圆形树展开收起动画
  8. 百度相关搜索软件_Python与seo,百度关键词相关搜索关键词采集源码
  9. ES内存持续上升问题定位
  10. flask gevent uwsgi nginx 联合高并发 部署