软件开发 --- 微服务举例
一般软件开发总的来说要解决两个问题,实现什么业务需求,采用什么技术,比如我要开发一个后端商品浏览,我一定会用到springboot技术作为支撑。
以下是对图片中列出的技术的简要解释:
### 前端工程师
1. **H5**: 指HTML5,创建网页和移动应用的基础技术,用于搭建响应式网站和Web应用。
2. **Vue**: 一种用于构建用户界面的JavaScript框架,适合开发单页应用(SPA)。
### 软件架构师
1. **Spring Cloud Zuul**: API网关服务,负责处理所有对微服务的请求,提供路由和过滤功能。
2. **Spring Cloud Security**: Spring框架中的安全模块,提供认证和授权服务,确保微服务安全。
3. **Spring Cloud OAuth2**: 用于处理分布式应用中的认证授权,基于OAuth2协议。
4. **Sentinel**: 阿里巴巴提供的流量防控组件,保护分布式系统的稳定性和服务质量。
5. **JWT**: JSON Web Token,用于用户身份验证,尤其在分布式系统中,用于用户认证信息的传递。
### 后端工程师
1. **Spring Boot**: 基于Spring的框架,简化了Java后端开发,适合构建独立的微服务应用。
2. **Druid**: 数据库连接池,提供监控和优化功能,常用于提高数据库访问效率。
3. **Dubbo Spring Cloud**: 阿里巴巴开源的分布式服务框架,支持远程服务调用。
4. **Log4j2**: 用于Java应用的日志记录库,提供高性能的日志记录功能。
5. **Guava**: Google开源的Java工具库,提供常用的工具方法和数据结构。
6. **Mybatis Plus**: 基于Mybatis的ORM框架,简化数据库操作,适合快速开发。
7. **sharding-jdbc**: 数据分片中间件,支持数据库水平分片和分布式事务管理。
8. **Swagger**: 用于生成API文档的工具,支持自动生成交互式API文档。
9. **XXL-job**: 分布式任务调度平台,支持高效管理和执行定时任务。
10. **Freemarker**: 模板引擎,用于动态生成HTML页面或邮件内容。
### 数据库工程师
1. **Mysql**: 最流行的开源关系型数据库,适用于各类Web应用的数据存储。
2. **RocketMQ**: 阿里巴巴开源的分布式消息队列系统,支持高性能消息传递。
3. **Redis**: 内存中的键值存储系统,常用于缓存和高性能数据存储。
### 基础设施
1. **七牛云**: 云存储服务提供商,支持文件存储、内容分发等功能。
2. **腾讯云**: 云计算服务提供商,提供服务器、数据库、存储等云端服务。
### 高级运维师
1. **Maven**: 项目管理工具,主要用于Java项目的构建和依赖管理。
2. **Jenkins**: 持续集成工具,自动化构建、测试和部署应用程序。
3. **Nacos Config**: 阿里巴巴开源的配置管理工具,支持微服务架构中的动态配置。
4. **Git/Gogs**: 分布式版本控制系统(Git)和轻量级Git服务器(Gogs),用于代码管理和协作。
5. **Docker**: 容器化技术,简化应用的开发、部署和运行环境的配置。
6. **ELK**: Elasticsearch, Logstash 和 Kibana 的组合,用于日志分析、搜索和可视化。
7. **Nacos Discovery**: 服务发现和配置管理的组件,适合微服务架构中的动态服务注册和发现。
8. **Zipkin**: 分布式追踪系统,用于监控微服务调用链路,帮助排查性能瓶颈。
通过这些技术,整个开发和运维团队能够构建、管理和运维从前端到后端、数据库、云平台和DevOps的全栈应用系统。