目录
一、学习的内容
一、常见的商城模式
二、谷粒商城项目的微服务架构
三、谷粒商城项目的微服务划分
四、谷粒商城项目的亮点
五、微服务的基本的概念
二、完成的进度
三、学到的东西
四、总结
6月9日正式下决心开始学习谷粒商城项目,之前早就听说谷粒商城项目的鼎鼎大名了,只是由于其它事,一直停留在前几集上面,总是担心自己的微服务还没学完,就来学是不是不好,其实真正我往后面学才发现,真正得将知识与项目结合,如果只是学知识,可能你学了是学了,但是不知道如何运用在项目里。项目能力是真的很重要。好了,下面正文开始:
一、学习的内容
先是对谷粒商城项目进行简要介绍,看了一下最终的效果,然后说明此次的商城项目是B2C模式,也就是商家对客户,商家直接将商品给用户,和小米商城,京东还有阿里是一样的,当然京东、阿里是多种模式于一身。
一、常见的商城模式
到这里其实常见的商城模式还是得知道的,一般来说有5种模式:
1、B2C
最常见的传统模式,商家对客户。比如说小米商城,京东,阿里巴巴
2、C2B
客户对商家,就是客户提供需求,然后商家去实现。不是那么的常见
3、C2C
客户对客户,也就是客户自己个人出售商品,然后另外的客户买下商品。比如说咸鱼
4、B2B
商家对商家,商家与商家建立关系。比如说阿里巴巴
5、O2O
online-offline,即线上对线下,也就是线下的商业也和线上互联网联系起来了。比如说饿了么、美团、淘票票
然后就是了解谷粒商城这个项目的微服务架构和微服务划分:
二、谷粒商城项目的微服务架构
架构没啥好说的,现在也只是一个大概的了解,并不能做到深刻的理解,等完整的将项目做完,再回来看,应该才能理解的比较深刻,下面贴出课件资料中的微服务架构图:
大体的过程就是,通过外网的部署,搭建Nginx的方式,然后访问到内网,先通过网关,网关可以进行鉴权,限流以及路由,就可以路由到目标服务,而到底是怎样知道有哪些服务呢,又如何知道哪些服务还能用呢,就得依赖nacos的服务注册与服务发现了,真正进入到微服务的时候,并不是直接去的,如果说同一个服务有多个实例,那么到底该选择哪个实例呢,于是就得通过负载均衡来按照规则进行选择,有轮询、随机、Hash等规则,另外可以使用sentinel进行熔断降级,熔断降级其实就是将复杂的东西进行拆分,使得变得简单,我反正就是这么简单的理解的,降级嘛是吧,顾名思义是吧,就是降低了等级是吧,然后就到达了业务层了,业务层实际上也就是核心业务咯,也就是需要在这个上面花时间的,如果摒弃了其它所有,只留下这个业务,就变成单体项目了,当然在以前做项目的时候也知道,并不是什么样的接口都是可以访问的,还是需要一定的权限的,可以使用springsecurity框架对权限进行管理,不同的用户所拥有的权限是不同的。然后的话,就相较于springsecurity好像有个升级吧,就是搭配OAuth2.0认证中心进行认证,好像可以使用这个认证中心进行社交认证,也就是使用QQ或者是微博登录等,然后这些服务在工作的时候,肯定得记录下来,这里就使用日志的存储技术,好像还要搭配着文本检索来使用,这里我也不是很明白,反正这里的检索就是使用的ES,上面说的就是一条主线,当然在这个过程中,数据是需要存储的,可以使用Redis存到内存里面,应该是提高一个效率吧,相较于每次直接操作MySql数据库,性能肯定是高的,另外的话,Redis这里可以搭建集群,当然持久化存储的话还得是存到MySql里面,这里MySql也可以集群,然后使用的好像是主从复制的方式吧,也没有详细的学过,另外微服务之间的通信通常是不同步的,也就是异步的通信方式,使用RabbitMQ来实现,另外对数据的一个检索,采用的是ES,能高效的检索数据,另外还有任务的调度,并且可以将文件存到OSS对象存储中,然后又扯到服务的一个管理,先是讲的主线,然后是数据,最后大致上是服务的一个监控,首先对于众多的微服务,我们肯定是不能对每个微服务单独的一个一个的去进行一个配置管理,使用Nacos来进行集中的配置,也就是配置中心了,然后可以使用zipkin、sleuth进行服务的监控以及链路的追踪,最后还可以将异常警告信息发送到我们的手机上,最后是运维,运维是采用的持续集成持续部署的策略,也就是CICD策略,就是说我们可以持续的将代码上传到中央仓库,然后打成docker镜像,然后交给运维人员使用k8s对容器进行管理。
三、谷粒商城项目的微服务划分
微服务划分其实就是对项目进行简要的拆分,首先是前端的vue或者是移动端小程序等,然后发送请求,首先经过网关,来进行鉴权、限流、路由,然后就到达微服务群,就是由多个微服务构成的集合,其中包括商品服务、订单服务、支付服务等等服务,然后就是微服务的核心嘛,就是一个服务的治理,比如说服务注册、配置、分布式事务、服务的容错熔断服务的降级、还有远程调用、负载均衡、链路的追踪。然后涉及到服务的一个监控,另外的话这其中涉及到第三方服务,比如说物流、短信、支付、金融服务,在整个过程中,数据的支撑层,有Redis、Mysql、RabbitMQ、还有ES、包括还有OSS。
下面是划分图:
四、谷粒商城项目的亮点
1、基于前后端分离开发的模式,基于vue开发的后台管理系统
2、使用springcloud这一套全新的解决方案
3、应用监控、限流、网关、熔断降级等分布式的解决方案
4、透彻的讲解分布式事务、分布式锁等分布式难题
5、分析高并发场景下的编码方式,线程池的使用,还有异步编排
6、压力测试与性能优化
7、各种集群技术的区别与使用
8、CI/CD的使用
五、微服务的基本的概念
1. 什么是微服务
其实微服务就是比如说可以根据业务进行划分,就是将大的项目拆分为一个一个的小的应用,实现解耦合。每个小的服务都单独部署单独运行。
2 . 集群/分布式/节点
集群其实就是一堆机器堆在一起就叫集群,而分布式就是将业务把它分散到不同的地方,分布式中的每一个服务其实就是服务群中的一个节点。就比如说京东,是一个大型的分布式系统,它将用户服务、商品服务、订单服务放置在不同的机器上运行,而每一种服务又不是单独就一台机器,而是多台机器一起,提高并发量,降低风险,这就是集群
3 . 远程调用
因为现在是分布式的,各个服务其实是独立的,而服务间的相互调用就得通过远程调用。
4 . 负载均衡
负载均衡就是使得资源得到合理的利用,既不让一些机器太忙也不让一些机器太闲,然后采取一些手段措施,使得其负载均衡,常见的有:轮询、随机、散列。
5. 服务的注册发现
因为现在是分布式的系统,调用其它服务,得知道其它服务一个情况,得知道它是不是可用,有哪些是正常的,有哪些已经是下线了的。
6. 配置中心
众多的服务肯定会有众多的配置,如果一个一个的去配置,效率极低,所以采用配置中心进行统一集中配置管理。
7. 服务熔断与服务降级
这其实就是一种容灾的这么一种机制
服务的熔断,顾名思义,熔断就是把它断了,比如说去调用某个服务,发现某个服务很久都不进行相应,那么就不会等它了,就会进行另外的一套解决方案,比如说返回一个默认值
服务的降级,顾名思义,就是降低等级,就是说如果当前项目的核心模块的压力很大,那么就让那些非核心模块,能够让出来就让出来,把资源分配给需要资源的服务
8 . API网关
主要进行还是路由、限流、鉴权,其实就是进入到真正的微服务的前一步,然后其实还有很多功能,比如说负载均衡,熔断它都能干,统一认证,灰度发布,日志统计
二、完成的进度
大致的听了一下,对这种微服务其中的一些组件大致的了解了一下,但是只是简单的一个了解,并没有深入的学习。也算完成进度了吧。
三、学到的东西
首先还是商城项目的一些模式然后又加深了一遍,然后是这个项目的大致的架构划分知道了,就是说知道了,我们接下来,大致的方向,微服务的方向。对微服务中的一些概念又是巩固了一遍,当然咯,还只是简单的了解,具体的深刻的理解还要通过做项目来加深。文章来源:https://www.toymoban.com/news/detail-496353.html
四、总结
收获其实也并不是很大,主要是从项目的宏观的角度整体的看那些组件,技术栈,浅浅的了解微服务,其实这一天主要还是对微服务的相关概念,一些组件了解。 文章来源地址https://www.toymoban.com/news/detail-496353.html
到了这里,关于谷粒商城第一天-项目概述、架构、Linux环境搭建的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!