[TOC] ## 整个项目所有服务加中间启动最低需要什么配置 ### 1. 所有服务加中间件启动 * 所有微服务:8G * mysql、redis和nacos:2G * 日志系统ELK:2G * APM监控skywalking:2G * GPE监控预警:1G ### 2. 最小服务启动 * mysql、redis、nacos、auth-server、user-center、gateway-zuul、frontend:4G左右 ## 必要模块 ### 1. 认证中心`auth-server` ### 2. 用户中心`user-center` ### 3. 网关`gateway`或者`gateway-zuul`,这两个技术架构不一,spring cloud gateway比较新,性能更好但是使用复杂 ### 4. 前端工程`frontend` ``` 访问网关的地址在apiUrl.js修改 ``` ## 可选模块 ### 1. 文件中心`oss-server` * 需要搭配云平台的`oss`,修改`application.yml`的oss相关配置 ### 2. 代码生成器`code-generator` * 修改`application.yml`的数据库为要生成代码的表所在的数据库 * 修改`generator.properties`的以下配置项 * package * moduleName * author * tablePrefix ### 3. 微服务应用监控 * 工程目录:visual/monitor * 工程目录:visual/zipkin-db * 工程目录:visual/zipkin-elk ### 4. 日志系统与慢查询sql * 工程目录:log-server * 启动`log-server`和`search-server` * 需要自行部署`ELK+Filebeat`,具体搭建请查看[ELK日志系统和慢查询SQL](./elk/简介.md) * 并结构化日志数据为以下格式存在`Elasticsearch`中 ~~~ { "timestamp": "时间", "message": "具体日志信息", "threadName": "线程名", "serverPort": "服务端口", "serverIp": "服务ip", "logLevel": "日志级别", "appName": "工程名称", "classname": "类名" } ~~~ * 需要自行部署`ELK+Filebeat`,具体搭建请查看[ELK日志系统和慢查询SQL](./elk/简介.md)和[ELK日志系统和慢查询SQL-慢查询sql](./elk/慢查询sql.md) * 并结构化日志数据为以下格式存在`Elasticsearch`中 ~~~ { "id": "id", "timestamp": "时间", "query_str": "查询语句", "user": "数据库登录账号", "clientip": "客户端ip", "query_time": "查询时间", "lock_time": "锁等待时间", "rows_sent": "返回行数", "rows_examined": "优化器扫描行数" } ~~~ ### 5. 分布式任务调度 * 工程目录 * job/job-admin:任务中心控制台 * job/job-executor-demo:任务执行demo * 启动`job-admin`和`job-executor-demo` * 访问地址[http://localhost:8081/](http://localhost:8081/) ### 6. 服务限流、降级熔断控制台和应用吞吐量监控 * 服务降级功能自动开启的,具体使用方法和hystrix一样在`FeignClient`里添加`fallback`参数就可以了 * 可以参考:`net.dopan.pigframe.core.feign.UserService` * 启动 Sentinel 控制台 * 具体详情请查看[sentinel详解](./Sentinel详解.md) ### 7. APM监控 具体详情请查看[APM监控](./apm/APM监控.md),提供以下主要功能: * 分布式追踪和上下文传输 * 应用、实例、服务性能指标分析 * 根源分析 * 应用拓扑分析 * 应用和服务依赖分析 * 慢服务检测 * 性能优化 ### 8. 分布式事务(tx-lcn) * 初始化TxManager的数据 执行`sql\txlcn.sql`脚本 * 修改TxManager的配置 工程目录:`txlcn-tm`,修改nacos、数据库和redis * 启动TxManager(事务管理器) ### 9. 搜索中心 * 工程目录:search/search-server * 需要先部署好`elasticsearch`中间件,修改`search-server`中`application.yml`的`elasticsearch`相关配置 * 要实现实时搜索还需要另外搭建实时同步环境具体可看:[实时同步数据到ElasticSearch]() * 总体架构可参考:[实时搜索系统设计]() * 启动`search-server` ### 10. 首页(流量统计) * 需要启动以下两个服务: 1. 日志中心:`log-server` 2. 搜索中心:`search-server` * 另外需要搭建`ELK`抓取网关的埋点日志,可参考:[ELK日志系统和慢查询SQL](./elk/简介.md) * 如果需要展示统计修改文件名`console_tongji.html`为`console.html`即可 ## 访问系统 ~~~ http://127.0.0.1:8866 admin/admin ~~~