[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
~~~
- 微服务介绍
- 软件架构设计
- 系统简介
- 运行环境
- 模块介绍
- 启动部署命令参数
- 打包说明
- 开发说明
- Java8
- 认证理论
- 有网络隔离
- 无网络隔离
- token自动续签设计
- url级权限控制
- 单点登录
- 登录
- 用户名密码(+验证码)登录
- 通过openId获取token
- 通过手机号获取token
- 第三方系统接口对接
- 第三方系统单点登录
- 通用刷新token
- 账号登出接口
- 统一异常处理
- 日志埋点工具
- 审计日志
- yml自定义配置自动提示
- Redis使用
- CacheManager集成
- 搜索中心
- 网关zuul动态路由
- swagger
- 解决开发环境的服务冲突和实例乱窜
- 多租户理论
- 多租户实现
- 分布式锁
- 分布式id生成器
- 分布式事务
- 分库分表sharding-sphere
- 消息队列
- 系统幂等性
- X 实时搜索系统设计
- Spring Cloud性能调优
- 链路跟踪
- JWT的RSA非对称密钥生成
- jdk
- Oracle
- OpenJDK
- Dragonwell
- JVM介绍
- 常见JVM内存错误及解决方案
- JVM分析工具详解
- nexus
- docker
- 安装
- docker-compose安装
- 私有仓库搭建
- 指定数据储存目录
- 添加私有仓库
- 提交拉取镜像
- X 免Dockerfile文件构建项目镜像
- 持续集成部署CI/CD
- Confluence知识管理
- JIRA事务与项目跟踪软件
- Gitlab代码仓库
- Jenkins自动化部署
- SonarQube代码检测
- Rancher容器管理平台
- nacos
- 部署
- Rancher部署nacos
- 注册中心
- 配置中心
- 多环境
- 生产部署方案
- X 通过Nginx来实现环境隔离
- Sentinel详解
- 动态规则扩展
- 在生产环境中使用 Sentinel
- 启动配置项
- X 网关流控
- ELK日志系统和慢查询SQL
- docker安装
- 普通安装
- Filebeat安装部署
- ES数据定期删除
- 没数据问题排查思路
- X Logstash的grok语法调试
- 慢查询sql
- 审计日志
- Elasticsearch性能优化
- APM监控
- SkyWalking介绍
- Zipkin,Pinpoint,SkyWalking三种服务链路监控组件分析
- 服务端部署
- 客户端部署
- 日志清理
- Metrics监控
- 二进制包部署
- docker部署
- docker安装各组件监控
- Grafana仪表盘和告警配置
- JMeter压力测试工具
- 使用说明
- 分布式事务
- TX-LCN(同步)
- X SEATA(同步)
- X RocketMQ(异步)
- 消息队列
- RocketMQ
- RocketMQ安装部署
- RocketMQ常见异常处理
- SpringCloud-Stream
- RabbitMQ
- Redis
- 单机安装
- 主从复制
- 主从复制+哨兵
- cluster集群
- 持久化方案
- MySQL
- 单机安装
- 主从复制
- 主从切换
- 主主复制
- 高可用
- 分表分库
- Canal数据库日志解析消费
- Canal安装
- 实时同步数据到ElasticSearch
- FastDFS
- docker安装
- centos安装
- 项目管理系统
- 禅道
- 111