疯狂创客圈 Java 高并发【 亿级流量聊天室实战】实战系列 【博客园总入口

架构师成长+面试必备之 高并发基础书籍 【Netty Zookeeper Redis 高并发实战


前言

Crazy-SpringCloud 微服务脚手架 &视频介绍

Crazy-SpringCloud 微服务脚手架,是为 Java 微服务开发 入门者 准备的 学习和开发脚手架。并配有一系列的使用教程和视频,大致如下:

高并发 环境搭建 图文教程和演示视频,陆续上线:

中间件 链接地址
Linux Redis 安装(带视频) Linux Redis 安装(带视频)
Linux Zookeeper 安装(带视频) Linux Zookeeper 安装, 带视频
Windows Redis 安装(带视频) Windows Redis 安装(带视频)
RabbitMQ 离线安装(带视频) RabbitMQ 离线安装(带视频)
ElasticSearch 安装, 带视频 ElasticSearch 安装, 带视频
Nacos 安装(带视频) Nacos 安装(带视频)

Crazy-SpringCloud 微服务脚手架 图文教程和演示视频,陆续上线:

组件 链接地址
Eureka Eureka 入门,带视频
SpringCloud Config springcloud Config 入门,带视频
spring security spring security 原理+实战
Spring Session SpringSession 独立使用
分布式 session 基础 RedisSession (自定义)
重点: springcloud 开发脚手架 springcloud 开发脚手架
SpingSecurity + SpringSession 死磕 (写作中) SpingSecurity + SpringSession 死磕

小视频以及所需工具的百度网盘链接,请参见 疯狂创客圈 高并发社群 博客

1 Spring Cloud 、Spring Boot版本选项

Spring Cloud是基于Spring Boot构建的,其版本也是有对应关系的,在构建项目时,注意版本之间的对应关系,版本对不上会有问题。

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>

2 {Crazy-SpringCloud 微服务开发脚手架} 功能介绍

本脚手架,侧重于开发,而不是侧重于 生产环境的监控。凡是与开发有关的部分,后续会逐步的增加和完善。

4. 模块规范说明

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层的代码实现

5.部署流程

  • 操作系统:

建议使用 centos 或者其他 linux 。 如果个人学习在windows环境,强烈建议使用 虚拟机 。

  • 中间件:

依赖于Redis、Zookeeper、RabbitMQ,启动服务前请安装和启动好 Mysql 、Redis、Zookeeper、RabbitMQ。后面三个软件的安装,请参考以下教程和视屏:

Redis: Linux Redis 安装(网盘中带离线工具、实战视频

Zookeeper: Linux Zookeeper 安装(带视频)

RabbitMQ: Linux RabbitMQ 安装(网盘中带离线工具、实战视频

  • 数据库

可以是 Mysql 、oracle 或者其他 JPA 支持的数据库。 微服务中配置了自动建表。 所以,没有提供专门的sql脚本。 例如:

spring:
application:
name: user-provider
jpa: #配置自动建表:updata:没有表新建,有表更新操作,控制台显示建表语句
hibernate:
ddl-auto: update
  • 部署脚本

提供了linux系统的启动脚本 start.sh, 需要适当的调整一些参数。 具体的部署,请参见 {疯狂创客圈} 脚手架部署视频

6.端口配置

组件 端口
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

7.环境变量

通过环境变量的使用,使得各种服务器的主机切换,多了一层灵活性。而且,可以做到不用明文编码一些密码之类的敏感信息,多了一层安全性。

配置文件中,会涉及到以下环境变量:

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 来填充了。

总之,通过环境变量的使用,使得各种服务器的主机切换,多了一层灵活性。而且,可以做到不用明文编码一些密码之类的敏感信息,多了一层安全性。

8.{Crazy-SpringCloud 微服务开发脚手架} 部署视频

组件 链接地址
Eureka Eureka 入门,带视频
SpringCloud Config springcloud Config 入门,带视频
spring security spring security 原理+实战
Spring Session SpringSession 独立使用
分布式 session 基础 RedisSession (自定义)
重点: springcloud 开发脚手架 springcloud 开发脚手架
SpingSecurity + SpringSession 死磕 (写作中) SpingSecurity + SpringSession 死磕
crazymaker-USER ....ing
crazymaker-seckill ....ing
cloud-zuul ....ing

小视频以及所需工具的百度网盘链接,请参见 疯狂创客圈 高并发社群 博客

具体,请关注 Java 高并发研习社群博客园 总入口


最后,介绍一下疯狂创客圈:疯狂创客圈,一个Java 高并发研习社群博客园 总入口

疯狂创客圈,倾力推出:面试必备 + 面试必备 + 面试必备 的基础原理+实战 书籍 《Netty Zookeeper Redis 高并发实战


疯狂创客圈 Java 死磕系列

  • Java (Netty) 聊天程序【 亿级流量】实战 开源项目实战

SpringCloud 脚手架的更多相关文章

  1. 微服务的脚手架Jhipster使用(一)

    随着微服务的普及以及docker容器的广泛应用,有传统的soa服务衍生出微服务的概念,微服务强调的是服务的独立性,屏蔽底层物理平台的差异,此时你会发现微服务跟容器技术完美契合.在此基础上衍生出的云原生 ...

  2. 快速搭建 SpringCloud 微服务开发环境的脚手架

    本文适合有 SpringBoot 和 SpringCloud 基础知识的人群,跟着本文可使用和快速搭建 SpringCloud 项目. 本文作者:HelloGitHub-秦人 HelloGitHub ...

  3. 推荐一个超牛的SpringCloud微服务项目,开发脚手架

    前言 Cloud-Platform是国内首个基于Spring Cloud微服务化开发平台,具有统一授权.认证后台管理系统,其中包含具备用户管理.资源权限管理.网关API 管理等多个模块,支持多业务系统 ...

  4. springcloud(一):大话Spring Cloud

    研究了一段时间spring boot了准备向spirng cloud进发,公司架构和项目也全面拥抱了Spring Cloud.在使用了一段时间后发现Spring Cloud从技术架构上降低了对大型系统 ...

  5. Spring SpringMVC SpringBoot SpringCloud概念、关系及区别

    一.正面解读: Spring主要是基于IOC反转Beans管理Bean类,主要依存于SSH框架(Struts+Spring+Hibernate)这个MVC框架,所以定位很明确,Struts主要负责表示 ...

  6. (转)springcloud(一):大话Spring Cloud

    http://www.ityouknow.com/springcloud/2017/05/01/simple-springcloud.html 研究了一段时间Spring Boot了准备向Spring ...

  7. SpringCloud和Springboot

    SpringBoot+SpringCloud+SpringMVC+SpringData 我们把这种架构也称之为spring全家桶 什么是SpringCloudSpring Cloud是一系列框架的有序 ...

  8. 初识SpringCloud微服务

    微服务是一种架构方式,最终肯定需要技术架构去实施. 微服务的实现方式很多,但是最火的莫过于Spring Cloud了.为什么? 后台硬:作为Spring家族的一员,有整个Spring全家桶靠山,背景十 ...

  9. 【微服务系列】Spring SpringMVC SpringBoot SpringCloud概念、关系及区别

    一.正面解读 Spring主要是基于IOC反转Beans管理Bean类,主要依存于SSH框架(Struts+Spring+Hibernate)这个MVC框架,所以定位很明确,Struts主要负责表示层 ...

随机推荐

  1. 【Android - IPC】之Binder机制简介

    参考资料: 1.<Android开发艺术探索>第二章2.3.3 Binder 2.[Android Binder设计与实现-设计篇] 3.[Android Binder机制介绍] 1. 什 ...

  2. Codeforces Round #451 (Div. 2) A B C D E

    Codeforces Round #451 (Div. 2) A Rounding 题目链接: http://codeforces.com/contest/898/problem/A 思路: 小于等于 ...

  3. js实现冒泡排序(bubble sort)快速排序(quick sort)归并排序(merge sort)

    排序问题相信大家都比较熟悉了.用js简单写了一下几种常用的排序实现.其中使用了es6的一些语法,并且不仅限于数字--支持各种类型的数据的排序.那么直接上代码: function compare (a, ...

  4. js学习——1

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  5. css实现对勾

    <!DOCTYPE html><html> <head> <meta charset=%;background-color: #2ac845;} %;back ...

  6. Netty实现丢弃服务协议(Netty4.X学习一)

    何为丢弃服务(Discard Protocol),丢弃服务就是一个协议,是最简单的协议,它的作用是接受到什么就丢弃什么,它对调试网路状态有一定的用处.基于TCP的丢弃服务,服务器实现了丢弃丢弃协议,服 ...

  7. Python面试180道题

    版权声明:本文为CSDN博主「CSDN学院官方账号」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明. 原文链接:https://blog.csdn.net/csd ...

  8. 时至今日,我们应该承认.Net目前的状况实在堪忧

    一:  .Net之前 .Net 经历了多年的锤炼,语言特性本身非常优雅和完善,也是非常甜品的一种语言 二:  .Net现状 但是与此同时,.Net的生态日益糟糕,困扰着广大.Neter 三:   .N ...

  9. NAT回流(Twice NAT)Hairping 参数详解

    内网用户需要通过域名访问内网的服务器,一般商用环境是无法访问的,需要经过以下配置,原理不说了,直接说配置. nat (inside,inside) source dynamic inside-net  ...

  10. jquery.countdown 倒计时插件的学习

    1.第一种简单的使用 第一个时间是你的倒计时截止时间,finalDate格式可以是YYYY/MM/DD MM/DD/YYYY YYYY/MM/DD hh:mm:ss MM/DD/YYYY hh:mm: ...