热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

文章目录

文章目录

    • 微服务架构图
    • 微服务划分图
    • 搭建虚拟开发环境
    • 数据库数据初始化
    • 使用人人开源搭建后台管理系统
    • 使用人人开源逆向工程

微服务架构图

在这里插入图片描述

微服务划分图

在这里插入图片描述

搭建虚拟开发环境

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

E:\vagrant\centos7.2

3、导入刚刚下载的镜像(box文件)

E:\vagrant\centos7.2>vagrant box add centos7.2 E:/vagrant/box/centos7.2.box

4、初始化box

E:\vagrant\centos7.2>vagrant init

此时,在E:\vagrant\centos7.2>会自动生成Vagrantfile文件,修改文件中的box名称

config.vm.box = "centos7.2"

第四:启动box

E:\vagrant\centos7.2>vagrant up

启动成功后,打开virtualBox,你会看到vagrant已经为我们搭建好了一个正在运行的centos7.2系统了

其他命令

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

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

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

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

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

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

执行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

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

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

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

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

#查看mysql容器ip
docker inspect javali_mysql

在这里插入图片描述

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

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

原因
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

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

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

使用人人开源逆向工程

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

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

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

配置文件: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

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


推荐阅读
  • 一、Hadoop来历Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明 ... [详细]
  • 本文详细介绍了SQL日志收缩的方法,包括截断日志和删除不需要的旧日志记录。通过备份日志和使用DBCC SHRINKFILE命令可以实现日志的收缩。同时,还介绍了截断日志的原理和注意事项,包括不能截断事务日志的活动部分和MinLSN的确定方法。通过本文的方法,可以有效减小逻辑日志的大小,提高数据库的性能。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 使用Ubuntu中的Python获取浏览器历史记录原文: ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • 基于事件驱动的并发编程及其消息通信机制的同步与异步、阻塞与非阻塞、IO模型的分类
    本文介绍了基于事件驱动的并发编程中的消息通信机制,包括同步和异步的概念及其区别,阻塞和非阻塞的状态,以及IO模型的分类。同步阻塞IO、同步非阻塞IO、异步阻塞IO和异步非阻塞IO等不同的IO模型被详细解释。这些概念和模型对于理解并发编程中的消息通信和IO操作具有重要意义。 ... [详细]
  • 本文介绍了通过ABAP开发往外网发邮件的需求,并提供了配置和代码整理的资料。其中包括了配置SAP邮件服务器的步骤和ABAP写发送邮件代码的过程。通过RZ10配置参数和icm/server_port_1的设定,可以实现向Sap User和外部邮件发送邮件的功能。希望对需要的开发人员有帮助。摘要长度:184字。 ... [详细]
  • flowable工作流 流程变量_信也科技工作流平台的技术实践
    1背景随着公司业务发展及内部业务流程诉求的增长,目前信息化系统不能够很好满足期望,主要体现如下:目前OA流程引擎无法满足企业特定业务流程需求,且移动端体 ... [详细]
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • 本文介绍了Windows操作系统的版本及其特点,包括Windows 7系统的6个版本:Starter、Home Basic、Home Premium、Professional、Enterprise、Ultimate。Windows操作系统是微软公司研发的一套操作系统,具有人机操作性优异、支持的应用软件较多、对硬件支持良好等优点。Windows 7 Starter是功能最少的版本,缺乏Aero特效功能,没有64位支持,最初设计不能同时运行三个以上应用程序。 ... [详细]
  • 企业数据应用挑战及元数据管理的重要性
    本文主要介绍了企业在日常经营管理过程中面临的数据应用挑战,包括数据找不到、数据读不懂、数据不可信等问题。针对这些挑战,通过元数据管理可以实现数据的可见、可懂、可用,帮助业务快速获取所需数据。文章提出了“灵魂”三问——元数据是什么、有什么用、又该怎么管,强调了元数据管理在企业数据治理中的基础和前提作用。 ... [详细]
  • Oracle优化新常态的五大禁止及其性能隐患
    本文介绍了Oracle优化新常态中的五大禁止措施,包括禁止外键、禁止视图、禁止触发器、禁止存储过程和禁止JOB,并分析了这些禁止措施可能带来的性能隐患。文章还讨论了这些禁止措施在C/S架构和B/S架构中的不同应用情况,并提出了解决方案。 ... [详细]
  • 如何查询zone下的表的信息
    本文介绍了如何通过TcaplusDB知识库查询zone下的表的信息。包括请求地址、GET请求参数说明、返回参数说明等内容。通过curl方法发起请求,并提供了请求示例。 ... [详细]
  • 本文介绍了OpenStack的逻辑概念以及其构成简介,包括了软件开源项目、基础设施资源管理平台、三大核心组件等内容。同时还介绍了Horizon(UI模块)等相关信息。 ... [详细]
author-avatar
小小蜘蛛侠
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有