微服务架构知识非完整梳理

本文探讨了微服务架构的概念及其与单体架构的区别,详细介绍了微服务的四大关键问题及解决方案,包括服务访问、服务间调用、服务治理和故障处理。同时,对比了Java与GO在微服务领域的生态系统,以及K8S的优势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

单体架构

 

微服务架构

微服务架构是一种架构思想,架构就是为了解耦,实际的开发方式是分布式系统开发。

 

Java单体架构:三层架构

视图层

账单模块 Controller

用户模块

业务层

账单模块 Service

用户模块

数据层

账号模块 Dao

用户模块

 

SOA与微服务区别

微服务基本架构

微服务要素

三大指标

高可用=服务一可用用,N个9,6个9,允许宕机时间为31秒

高性能=尽量快一点,3秒内打开

高并发=系统承载能力

垂直拓展:升级配置

水平拓展:加机器

数据库水平拆分:分库、分表

数据库中间件:Apache Sharding-sphere

https://blog.youkuaiyun.com/qq_34808893/article/details/103993659

 

四大问题

1、客户端如何访问?

API网关

Zuul

  • Spring Cloud Gateway

2、服务与服务之间如何调用?

同步通讯

对外REST对内RPC

REST:HTTP

RPC:Dubbo、Thrift

https://dubbogo.github.io/dubbo-go-website/zh-cn/docs/user/quick-start.html

https://github.com/apache/dubbo-go/blob/master/README_CN.md

异步通讯

Kafka CP

https://baijiahao.baidu.com/s?id=1655359291726496245&wfr=spider&for=pc

3、服务如何治理?

注册中心:

Nacos(https://studygolang.com/articles/26329?fr=sidebar)、

Etcd、(https://blog.youkuaiyun.com/c_circle/article/details/98473421

Zookeeper、

Consul(https://www.jianshu.com/p/ce7c7b9dcf14

链路追踪:

ZipKin、

SkyWalking(https://blog.youkuaiyun.com/zhounixing/article/details/105815910

限流

4、服务挂了怎么办?

熔断机制:Sentinel、Hystrix

负载均衡

CAP理论

1、Redis中间件 —-> AP

2、RocketMQ中间件 —–> AP

3、分布式事务-2pc —-> CP

4、分布式事务-最大努力尝试 —> AP

5、Eureka —> AP

6、ES ---> AP

7、Kafka ---> CP

两地三活

 

 

Java的微服务架构生态

Spring Cloud 是一种编程模型,微服务的开发标准,一系列的接口。

Spring Cloud Netflix

https://github.com/spring-cloud/spring-cloud-netflix

https://www.funtl.com/zh/guide/Spring-Cloud-Netflix.html

Spring Cloud Alibaba

https://github.com/alibaba/spring-cloud-alibaba/blob/master/README-zh.md

https://www.funtl.com/zh/guide/Spring-Cloud-Alibaba.html

 

GO的微服务架构生态

Dubbo-go

https://github.com/apache/dubbo-go/blob/master/README_CN.md

go-micro

https://github.com/micro/go-micro

janus

https://github.com/hellofresh/janus

gatekeeper

https://github.com/didi/gatekeeper

 

K8S优势

 

阿里云ECS架构

k8s服务接入

 

 

 

 

 

### Vue CLI 项目目录结构详解 #### 1. `node_modules` 该目录含了项目所需的所有依赖模块,这些模块是通过管理工具(如 npm 或 yarn)自动下载并安装的。开发人员通常不需要手动修改此目录中的内容[^1]。 #### 2. `src` 这是项目的源码目录,也是开发者主要的工作区域。以下是其子目录和文件的主要功能: - **`main.js`**: 这是应用的入口文件,负责初始化 Vue 实例以及引入其他必要的资源。 - **`App.vue`**: 应用的核心组件,定义了整个页面的基础布局和样式。 - **`components`**: 存放可复用的 Vue 组件,用于构建更复杂的界面逻辑。 - **`assets`**: 放置静态资源文件,例如图片、字体等。 - **`router` (如果存在)**: 配置路由规则的地方,适用于单页应用程序(SPA),控制不同路径下的视图切换。 - **`store` (如果存在)**: 如果使用 Vuex,则在此处配置状态管理模式。 - **`views` (如果存在)**: 存储与特定页面对应的 Vue 文件,便于管理和维护。 #### 3. `public` 存放不会被 Webpack 处理的静态文件,比如 favicon.ico 和 index.html 模板。当运行打命令时,这些文件会被直接复制到最终的输出目录中。 #### 4. `.gitignore` 指定 Git 版本控制系统忽略哪些文件或目录,常见的有 node_modules、dist 等临时生成的内容。 #### 5. `package.json` 记录了项目的元数据信息,括名称、版本号、描述、作者、许可证声明以及所使用的脚本命令和依赖项列表。 #### 6. `babel.config.js` / `.eslintrc.*` 分别用来配置 Babel 编译器选项和支持 JavaScript 的语法检查工具 ESLint 的行为设置。 #### 7. `build` 作为生产环境下构建过程的关键部分,其中含多个辅助性的脚本文件,例如 `build.js` 是执行 `npm run build` 命令后的实际处理流程起点[^3]。 #### 初始化与卸载操作说明 为了创建一个新的基于 Vue CLI 架构的应用程序实例可以采用如下指令完成初始化工作;而要移除已有的全局范围内的旧版插件则需按照相应方法来实现[^2]: ```bash # 创建新项目 vue create my-new-project # 卸载 vue-cli 工具链 npm uninstall -g vue-cli ``` #### 安装指南补充链接 更多关于如何正确搭建本地开发所需的软硬件环境的信息可以从这里获取更多信息[^4]: [VUE官方文档](https://cli.vuejs.org/) | [古兰精博客文章](https://www.cnblogs.com/goloving/p/8693189.html) ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

e421083458

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值