谷粒商城微服务分布式基础篇一——微服务架构,虚拟环境Docker搭建

微服务架构图

在这里插入图片描述

微服务划分图

在这里插入图片描述

搭建虚拟开发环境

1、下载安装VirtualBox 下载安装Vagrant
2、安装好后,创建一个存放vagrant box的目录,方便日后统一管理,比如叫做…/centOS7

$ mkdir ../centOS7

   
   
  • 1

3、初始化一个 centos/7系统

vagrant init centos/7

   
   
  • 1

4、启动虚拟机 默认密码vagrant

vagrant up

   
   
  • 1

5、其他命令

#自动使用vagrant用户连接虚拟机 
vagrant ssh 
# 退出这台虚拟机
exit
# 停止这台虚拟机
vagrant halt
# 销毁这台虚拟机
vagrant destroy

   
   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

6、修改ip
默认虚拟机的ip不是固定的,为了开发方便,对Vagrantfile文件进行修改
Vagrantfile文件:初始化会在当前目录生成的配置文件,包含有大量的配置信息,通过它可以定义虚拟机的各种配置,如网络、内存、主机名等
在Vagrantfile文件中修改:

config.vm.network "private_network", ip: "192.168.33.10"(这里的IP指的是物理机ip,可使用ipconfig找到,然后改为指定子网地址)

   
   
  • 1

然后使用vagrant up启动机器即可,然后使用vagrant ssh连接机器

7、默认只允许ssh登录方式,为操作方便,文件上传等。可以配置允许账号密码登录

Vagrant ssh 登录系统 vi etc/ssh/sshd_config
修改 PasswordAuthentication yes/no
重启服务,以后可以使用ssh连接工具连接 service sshd restart

8、执行vagrant up报错

A Vagrant environment or target machine is required to run this command. Run vagrant init to create a new Vagrant environment.Or,get an ID of a target machine from vagrant global-status to run this command on. A final option is to change to a directory with a Vagrantfile and to try again.

少前边vagrant init步骤了,或者没有进入对应vagrant init的文件夹

使用Docker技术
在这里插入图片描述
1、安装Docker

yum install docker

   
   
  • 1

安装完成后配置阿里云镜像

#查看docker版本
docker -v
#启动docker
systemctl start docker
#停止docker
systemctl stop docker
#重启docker
systemctl restart docker
#查看docker状态
systemctl status docker
#开机启动
systemctl enable docker

   
   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

2、MySQL部署

#拉取mysql镜像 默认拉取最新版本
docker pull mysql
#指定版本拉取
docker pull mysql:5.7
#查看镜像
docker images
#创建并启动MySQL容器
#-p 代表端口映射,格式为  宿主机映射端口:容器运行端口
#-v 将主机目录挂载到容器
#-e 代表添加环境变量  MYSQL_ROOT_PASSWORD是root用户的登陆密码
#-d 后台运行容器,并返回容器ID
docker run -p 3306:3306 --name mysql \
        -v /mydata/mysql/log:/var/log/mysql \
        -v /mydata/mysql/data:/var/lib/mysql \
        -v /mydata/mysql/conf:/etc/mysql \
        -e MYSQL_ROOT_PASSWORD=root \
        -d mysql:5.7
#进入mysql容器
docker exec -it javali_mysql /bin/bash
#登陆mysql
mysql -u root -p

   
   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

也可以通过远程图形化界面连接MySQL

#查看mysql容器ip
docker inspect javali_mysql

   
   
  • 1
  • 2

在这里插入图片描述

3、Redis部署

#拉取redis
docker pull redis
#查看是否安装
docker images
#创建目录和redis配置文件
mkdir -p /mydata/redis/conf
touch /mydata/redis/conf/redis.conf
#创建实例并启动
docker run -p 6379:6379 --name redis -v /mydata/redis/data:/data -v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf -d redis redis-server /etc/redis/redis.conf
#使用redis镜像执行redis-cli命令连接
docker exec -it redis redis-cli

   
   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

4、使用yum报错

Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fast

解决办法
清除yum repository缓存

sudo yum clean all

Loaded plugins: fastestmirror
Cleaning repos: base epel extras puppetlabs-pc1 updates
Cleaning up everything

   
   
  • 1
  • 2
  • 3

原因
Repository list的更新日期久远
yum判断你上次更新repository list的时间太久远,所以不让使用者操作yum,以避免安装到旧的软件

数据库数据初始化

资料
链接:https://pan.baidu.com/s/1ftzBq3p-SNtIWNq4YWZH-g
提取码:9tdf

使用人人开源搭建后台管理系统

前后端分离项目,需要先部署好后端,再部署前端页面。

后端部署:
1、通过 git ,下载renren-fast源码

git clone https://gitee.com/renrenio/renren-fast.git

   
   
  • 1

2、创建数据库 renren_fast ,数据库编码为 UTF-8
3、执行 doc/db.sql 文件,初始化数据(默认支持MySQL)
4、修改 application-dev.yml ,更新MySQL账号和密码
5、运行 io.renren.RenrenApplication.java 的 main 方法,则可启动项目

前端部署:
renren-fast-vue基于vue、element-ui构建开发,实现renren-fast后台管理前端功能,需要安装nodejs,常见错误看另外一篇文章,官网是安装node8,我是安装了10、

# 克隆项目
git clone https://gitee.com/renrenio/renren-fast-vue.git
# 安装依赖
npm install
# 启动服务
npm run dev

   
   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

前台登录的账号密码:admin/admin

使用人人开源逆向工程

#克隆项目
git clone https://gitee.com/renrenio/renren-generator.git

   
   
  • 1
  • 2

打开项目,对application.yml进行修改。只要修改数据库名、账号、密码,就可以了。其中,数据库名是指待生成的表,所在的数据库。

url: jdbc:mysql://你的数据库地址/你的数据库名?useUnicode=true&characterEncoding=UTF-8
username: 你的用户名
password: 你的用户密码

   
   
  • 1
  • 2
  • 3

配置文件:generator.properties 可以配置包名、作者信息、表前缀、类型转换。其中,类型转换是指,MySQL中的类型与JavaBean中的类型,是怎么一个对应关系。如果有缺少的类型,可自行在generator.properties文件中补充

#包名
package=com.daiaho.mall
#作者
author=DAIHAO
#Email
email=DAIHAO@gmail.com
#表前缀(类名不会包含表前缀)
tablePrefix=tb_
#类型转换,配置信息
tinyint=Integer
smallint=Integer
mediumint=Integer
int=Integer
integer=Integer
bigint=Long
float=Float
double=Double
decimal=BigDecimal
bit=Boolean
char=String
varchar=String
tinytext=String
text=String
mediumtext=String
longtext=String
date=Date
datetime=Date
timestamp=Date

   
   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28

然后启动renren-generator项目(运行RenrenApplication.java的main方法即可),进入前端页面选择需要生成代码的表生成代码即可。

                                </div>
            <link href="https://csdnimg.cn/release/phoenix/mdeditor/markdown_views-60ecaf1f42.css" rel="stylesheet">
                            </div>
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
天猫商城是一个基于SSM框架的综合性B2C电商平台,需求设计主要参考天猫商城的购物流程:用户从注册开始,到完成登录,浏览商品,加入购物车,进行下单,确认收货,评价等一系列操作。 作为模拟天猫商城系统的核心组成部分之一,采用SSM框架的天猫数据管理后台包含商品管理,订单管理,类别管理,用户管理和交易额统计等模块,实现了对整个商城的一站式管理和维护。本课程是一门专业的Java微服架构开发实战课程,主要讲解了当下流行的SpringBoot框架、SpringCloud架构以及与第三方技术整合开发实战内容。通过本课程的学习,能够理解并掌握SpringBoot的基础知识,同时能够掌握SpringBoot与常用的第三方技术整合实现实际开发中的业务需求,包括实现Web开发、数据访问、缓存管理、安全管理、消息服务、任务管理等;了解并掌握SpringCloud微服务架构基础知识及相关组件的应用,掌握微服务架构在企业级开发的实践,建立起微服架构思想。项目技术栈:采用SpringBoot简化商城系统的初始搭建以及开发过程采用SpringMVC+Spring+IBatis完成项目的整合采用Mysql作为数据库存储,Druid配置数据库连接池采用SpringCloud+Netflix 微服务技术栈的实战开发使用Redis完成缓存的数据存储,搭建Redis搭建主从、哨兵、集群应用,保证Redis的高可用使用ElasticSearch全文检索系统进行商品数据搜索,使用ElasticSearch搭建搜索服务的高可用使用Ngnix实现页面动静分离与负载均衡的配置采用FastDFS文件储存系统文件存储,完成广告图片、商品图片的上传和存储系统使用采用CAS+shiro单点登录系统实现用户认证使用ECharts根据后台查询数据生成图表使用POI实现了商城盈利状况的Excel表格导出。商品的详情页使用Thymeleaf完成页面静态化,减少页面数据展示延迟项目中使用SpringBoot下的Aop + 自定义注解完成用户行为记录,日志采集后台管理系统使用Shiro实现登录验证和权限管理(超级管理员、管理员、产品编辑员)项目整合微信完成订单的支付使用Redission完成分布式锁,生成订单的编号使用SpringCloud Alibaba Seat完成下订单模块的分布式事务(新增订单表,库存减少,库存超卖设计)使用RabbitMQ 做消息队列,完成订单未支付自动取消和模块直接的解耦合使用Quartz任务调度,完成缓存的定时刷新,保证缓存的一致性使用本地消息表机制完成消息然队列RabbitMQ消息可靠性传输订单支付模块使用微信扫码支付,并设置订单超时自动取消通过Jquery实现前端校验,通过基于Hibernate的Valida注解实现后端的校验功能使用Base64编码对Json数据传输进行编码和解码项目使用RESTful设计风格实现资源的访问,实现前后端分离项目使用聚合数据第三方短信平台完成用户的登陆功能项目使用SpringBoot整合JavaMail完成邮件的发送项目使用SpringBoot整合Swagger2生成接口文档使用PostMan完成接口的测试项目的测试:SpringTest、dbunit、EasyMock使用Docker 进行应用的自动化打包和发布、自动化测试和持续集成、部署和调整其他应用使用 PowerDesigner,完成数据库的建模项目使用禅道进行BUG管理环境采用Maven实施多模块项目构建,采用Git进行项目版本管理 架构解读:  项目部分截图:              讲义部分截图:          

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值