码迷,mamicode.com
首页 > Web开发 > 详细

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

时间:2018-12-30 20:34:11      阅读:236      评论:0      收藏:0      [点我收藏+]

标签:添加   poll   lse   日志   new   实现   它的   bubuko   window   

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

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

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

1.日志使用Log4net+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 });
            //发送新增购物车MQ
            var 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看下:

技术分享图片

 

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

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

标签:添加   poll   lse   日志   new   实现   它的   bubuko   window   

原文地址:https://www.cnblogs.com/weiBlog/p/10200241.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!