疯狂创客圈 经典图书 : 《Netty Zookeeper Redis 高并发实战》 面试必备 + 面试必备 + 面试必备 【博客园总入口 】html
疯狂创客圈 经典图书 : 《SpringCloud、Nginx高并发核心编程》 大厂必备 + 大厂必备 + 大厂必备 【博客园总入口 】linux
入大厂+涨工资必备: 高并发【 亿级流量IM实战】 实战系列 【 SpringCloud Nginx秒杀】 实战系列 【博客园总入口 】面试
《SpringCloud Nginx 高并发核心编程》 环境搭建 图文教程和演示视频:spring
组件 | 连接地址 |
---|---|
【必须】 虚拟机Linux 开发环境准备 | windows vmware 扩展硬盘 + 共享文件 |
Linux openresty 安装 | Linux openresty 安装 |
【必须】Linux Redis 安装(带视频) | Linux Redis 安装(带视频) |
【必须】Linux Zookeeper 安装(带视频) | Linux Zookeeper 安装, 带视频 |
Windows Redis 安装(带视频) | Windows Redis 安装(带视频) |
RabbitMQ 离线安装(带视频) | RabbitMQ 离线安装(带视频) |
ElasticSearch 安装, 带视频 | ElasticSearch 安装, 带视频 |
Nacos 安装(带视频) | Nacos 安装(带视频) |
【必须】Eureka | Eureka 入门,带视频 |
【必须】springcloud Config 入门,带视频 | springcloud Config 入门,带视频 |
【必须】Zuul 详解,带视频 | Zuul 详解,带视频 |
【必须】SpringCloud 脚手架打包与启动 | SpringCloud脚手架打包与启动 |
Spring Cloud是基于Spring Boot构建的,其版本也是有对应关系的,在构建项目时,注意版本之间的对应关系,版本对不上会有问题。sql
Spring Cloud | Spring Boot |
---|---|
Camden | 1.4.x |
Dalston | 1.5.x |
Edgware | 1.5.x |
Finchley | 2.0.x |
Finchley依赖2.0.x版本的Spring Boot,而2.0.x版本的Spring Boot依赖Spring Framework 5。数据库
<dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>Finchley.RELEASE</version> <type>pom</type> <scope>import</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId> <version>2.0.8.RELEASE</version> <scope>import</scope> <type>pom</type> </dependency> </dependencies> </dependencyManagement>
本脚手架,侧重于开发,而不是侧重于 生产环境的监控。凡是与开发有关的部分,后续会逐步的增长和完善。编程
crazymaker-server -- 父项目,公共依赖 │ ├─cloud-center -- 基础服务中心 │ │ ├─cloud-eureka -- 注册中心 │ │ ├─cloud-config -- 配置中心 │ │ ├─cloud-zuul -- 网关服务 │ │ ├─cloud-zipkin -- 监控中心 │ ├─crazymaker-base -- 公共依赖 │ │ ├─base-common -- 普通的公共依赖,如utils 通用方法 │ │ ├─base-runtime -- 运行时公共依赖,用运行时的 一些通用Bean的启动 │ ├─crazymaker-user -- 用户微服务 │ │ ├─user-api -- 用户DTO、Constants 等 │ │ ├─user-client -- 用户服务的 Feign 远程调用模块 │ │ ├─user-provider -- 用户服务核心实现,包含controller层、service层、dao层的代码实现 │ ├─crazymaker-seckill --秒杀微服务 │ │ ├─seckill-api -- 秒杀 DTO、Constants 等 │ │ ├─seckill-client -- 秒杀服务的 Feign 远程调用模块 │ │ ├─seckill-provider --秒杀服务核心实现,包含controller层、service层、dao层的代码实现
建议使用 centos 或者其余 linux 。 若是我的学习在windows环境,强烈建议使用 虚拟机 。bootstrap
依赖于Redis、Zookeeper、RabbitMQ,启动服务前请安装和启动好 Mysql 、Redis、Zookeeper、RabbitMQ。后面三个软件的安装,请参考如下教程和视屏:windows
Redis: Linux Redis 安装(网盘中带离线工具、实战视频
Zookeeper: Linux Zookeeper 安装(带视频)
RabbitMQ: Linux RabbitMQ 安装(网盘中带离线工具、实战视频centos
能够是 Mysql 、oracle 或者其余 JPA 支持的数据库。 微服务中配置了自动建表。 因此,没有提供专门的sql脚本。 例如:
spring: application: name: user-provider jpa: #配置自动建表:updata:没有表新建,有表更新操做,控制台显示建表语句 hibernate: ddl-auto: update
提供了linux系统的启动脚本 start.sh, 须要适当的调整一些参数。 具体的部署,请参见 {疯狂创客圈} 脚手架部署视频
组件 | 端口 | |
---|---|---|
Redis | 6379 | Linux Redis 安装(带视频) |
zookeeper | 2181 | Linux Zookeeper 安装, 带视频 |
myql | 3306 | |
cloud-eureka | 7777 | Eureka 入门,带视频 |
cloud-config | 7788 | |
cloud-zuul | 7799 | |
crazymaker-user | 7702 | |
crazymaker-seckill | 7701 |
经过环境变量的使用,使得各类服务器的主机切换,多了一层灵活性。并且,能够作到不用明文编码一些密码之类的敏感信息,多了一层安全性。
配置文件中,会涉及到如下环境变量:
export DB_HOST=192.168.233.128 export REDIS_HOST=192.168.233.128 export EUREKA_ZONE_HOST=192.168.233.128 export RABBITMQ_HOST=192.168.233.128 export ZOOKEEPER_HOSTS=192.168.233.128
这些环境变量,包含 Eureka、Redis、RabbitMq 等服务器的IP地址。若是在bootstrap.yml中要对 Eureka 进行配置,能够使用环境变量 EUREKA_ZONE_HOST ,具体以下:
eureka: client: serviceUrl: defaultZone: http://${EUREKA_ZONE_HOST:localhost}:7777/eureka/
上面的写法,经过${EUREKA_ZONE_HOST} 表达式去获取Eureka的IP地址。而且,环境变量后面跟着一个冒号和一个默认值,表示若是当前系统环境变量中 EUREKA_ZONE_HOST 为空时,就会使用默认值 localhost 来填充了。
总之,经过环境变量的使用,使得各类服务器的主机切换,多了一层灵活性。并且,能够作到不用明文编码一些密码之类的敏感信息,多了一层安全性。
最后,介绍一下疯狂创客圈:疯狂创客圈,一个Java 高并发研习社群 【博客园 总入口 】
疯狂创客圈,倾力推出:面试必备 + 面试必备 + 面试必备 的基础原理+实战 书籍 《Netty Zookeeper Redis 高并发实战》