当前位置:网站首页>谷粒商城-环境(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、
边栏推荐
- idea 好用插件汇总!!!
- To sort out the anomaly detection methods, just read this article!
- 【ManageEngine卓豪】用统一终端管理助“欧力士集团”数字化转型
- 【Unity Shader 消融效果_案例分享】
- 高阶-二叉搜索树详解
- FPGA - clocking -02- clock wiring resources of internal structure of 7 Series FPGA
- 端口扫描工具对企业有什么帮助?
- Requests module (requests)
- 【ManageEngine卓豪】网络运维管理是什么,网络运维平台有什么用
- [ManageEngine Zhuohao] use unified terminal management to help "Eurex group" digital transformation
猜你喜欢

How did ManageEngine Zhuohao achieve the goal of being selected into Gartner Magic Quadrant for four consecutive years?

ForkJoin和Stream流测试

C语言课设学生信息管理系统(大作业)

HCM Beginner (II) - information type

Promise

【#Unity Shader#自定义材质面板_第二篇】
![阿里OSS Postman Invalid according to Policy: Policy Condition failed: [“starts-with“, “$key“, “test/“]](/img/3c/7684b7c594f7871471f89007294703.png)
阿里OSS Postman Invalid according to Policy: Policy Condition failed: [“starts-with“, “$key“, “test/“]

On siem

【自动化运维】自动化运维平台有什么用

Forkjoin and stream flow test
随机推荐
[automatic operation and maintenance] what is the use of the automatic operation and maintenance platform
Discrimination between left and right limits of derivatives and left and right derivatives
SQL学习笔记九种连接2
C语言课设学生选修课程系统(大作业)
C语言课设物业费管理系统(大作业)
C language course set up property fee management system (big work)
libpng12.so. 0: cannot open shared object file: no such file or directory
sci-hub如何使用
Design of sales management system for C language course (big homework)
@Transactional的传播属性REQUIRES_NEW深入理解
Picture server project test
[unity shader stroke effect _ case sharing first]
C language course is provided with employee information management system (large operation)
存储函数学习笔记
三分钟带你快速了解网站开发的整个流程
启牛学堂合作的证券公司是哪家?开户安全吗?
Internet worm
[ManageEngine] terminal management system helps Huasheng securities' digital transformation
What are the functions of LAN monitoring software
端口扫描工具对企业有什么帮助?