当前位置:网站首页>谷粒商城-环境(p1-p27)
谷粒商城-环境(p1-p27)
2022-07-01 06:27:00 【一条小咸鱼i】
1、项目架构图
前后分离开发,分为内网部署和外网部署,外网是面向公众访问的,部署前端项目,可以有手机APP,电脑网页;内网部署的是后端集群,前端在页面上操作发送请求到后端,在这途中会经过Nginx集群,Nginx把请求转交给API网关(springcloud gateway)(网关可以根据当前请求动态地路由到指定的服务,看当前请求是想调用商品服务还是购物车服务还是检索),从路由过来如果请求很多,可以负载均衡地调用商品服务器中一台(商品服务复制了多份),当商品服务器出现问题也可以在网关层面对服务进行熔断或降级(使用阿里的sentinel组件),网关还有其他的功能如认证授权、限流(只放行部分到服务器)等。
到达服务器后进行处理(springboot为微服务),服务与服务可能会相互调用(使用OpenFeign组件),有些请求可能经过登录才能进行(基于OAuth2.0的认证中心。安全和权限使用springSecurity控制)
服务可能保存了一些数据或者需要使用缓存,我们使用redis集群(分片+哨兵集群)。持久化使用mysql,读写分离和分库分表。
服务和服务之间会使用消息队列(RabbitMQ),来完成异步解耦,分布式事务的一致性。有些服务可能需要全文检索,检索商品信息,使用ElaticSearch。
服务可能需要存取数据,使用阿里云的对象存储服务OSS。
项目上线后为了快速定位问题,使用ELK对日志进行处理,使用LogStash收集业务里的各种日志,把日志存储到ES中,用Kibana可视化页面从ES中检索出相关信息,帮助我们快速定位问题所在。
在分布式系统中,由于我们每个服务都可能部署在很多台机器,服务和服务可能相互调用,就得知道彼此都在哪里,所以需要将所有服务都注册到注册中心。服务从注册中心发现其他服务所在位置(使用阿里Nacos作为注册中心)。
每个服务的配置众多,为了实现改一处配置相同配置就同步更改,就需要配置中心,也使用阿里的Nacos,服务从配置中心中动态取配置。
服务追踪,追踪服务调用链哪里出现问题,使用springcloud提供的Sleuth、Zipkin、Metrics,把每个服务的信息交给开源的Prometheus进行聚合分析,再由Grafana进行可视化展示,提供Prometheus提供的AlterManager实时得到服务的告警信息,以短信/邮件的方式告知服务开发人员。
还提供了持续集成和持续部署。项目发布起来后,因为微服务众多,每一个都打包部署到服务器太麻烦,有了持续集成后开发人员可以将修改后的代码提交到github,运维人员可以通过自动化工具Jenkins Pipeline将github中获取的代码打包成docker镜像,最终是由k8s集成docker服务,将服务以docker容器的方式运行。
2、linux环境搭建
通过vitualbox,vagrant可以快速的搭建一个虚拟机,他有一个镜像仓库。
去https://www.vagrantup.com/ 下载vagrant安装,安装后重启系统。cmd中输入vagrant有版本代表成功了。
输入vagrant init centos/7,即可初始化一个centos7系统。(注意这个命令在哪个目录下执行的,他的Vagrantfile就生成在哪里)
vagrant up启动虚拟机环境。
启动后出现default folder:/cygdrive/c/User/… =>/vagrant。然后ctrl+c退出
前面的页面中有ssh账号信息。vagrant ssh 就会连上虚拟机。可以使用exit退出
不过他使用的网络方式是网络地址转换NAT(端口转发),如果其他主机要访问虚拟机,必须由windows端口如3333断发给虚拟机端口如3306。这样每在linux里安一个软件都要进行端口映射,不方便,(也可以在virualBox里挨个设置)。我们想要给虚拟机一个固定的ip地址,windows和虚拟机可以互相ping通。
3、
4、
5、
6、
7、
8、
9、
10、
边栏推荐
- 阿里OSS Postman Invalid according to Policy: Policy Condition failed: [“starts-with“, “$key“, “test/“]
- Picture server project test
- C#如何打印輸出原版數組
- lxml模块(数据提取)
- Requests module (requests)
- SQL语言的学习记录一
- [automatic operation and maintenance] what is the use of the automatic operation and maintenance platform
- C语言课设学生考勤系统(大作业)
- Promise
- 高阶-二叉平衡树
猜你喜欢
Promise
async 与 await
Free trial of self-developed software noisecreater1.1
[ManageEngine Zhuohao] what is network operation and maintenance management and what is the use of network operation and maintenance platform
端口扫描工具对企业有什么帮助?
【ManageEngine卓豪 】助力世界顶尖音乐学院--茱莉亚学院,提升终端安全
VS2019如何永久配置本地OpenCV4.5.5使用
[summary of knowledge points] chi square distribution, t distribution, F distribution
HCM Beginner (IV) - time
C language course set up salary management system (big homework)
随机推荐
Forkjoin and stream flow test
【ManageEngine】终端管理系统,助力华盛证券数字化转型
Camouflage request header Library: Anti useragent
阿里OSS Postman Invalid according to Policy: Policy Condition failed: [“starts-with“, “$key“, “test/“]
数据库对象:视图学习记录
【ManageEngine卓豪】移动终端管理解决方案,助力中州航空产业数字化转型
如果我在广州,到哪里开户比较好?究竟网上开户是否安全么?
【#Unity Shader#自定义材质面板_第二篇】
On siem
ForkJoin和Stream流测试
[summary of knowledge points] chi square distribution, t distribution, F distribution
【企业数据安全】升级备份策略 保障企业数据安全
C language course design student information management system (big homework)
C语言课设职工信息管理系统(大作业)
Discrimination between left and right limits of derivatives and left and right derivatives
[ManageEngine Zhuohao] helps Huangshi Aikang hospital realize intelligent batch network equipment configuration management
10-golang运算符
DML statement in SQL (data operation language)
@Transactional的传播属性REQUIRES_NEW深入理解
Movable mechanical wall clock