# gulimall
分布式商城
## Docker
### Docker安装RabbitMQ
```shell
docker run --name rabbitmq -p 5672:5672 -p 15672:15672 -d rabbitmq:3.8-management
```
### Docker安装Mysql
```shell
# 编写my.cnf配置文件
vim /root/docker/mysql/conf/my.cnf
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8mb4
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8mb4
[mysqld]
# 设置3306端口
port=3306
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。
max_connect_errors=10
# 服务端使用的字符集默认为utf8mb4
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
skip-name-resolve
# 运行容器
docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root \
-v /root/docker/mysql/conf:/etc/mysql/conf.d \
-v /root/docker/mysql/data:/var/lib/mysql \
-v /root/docker/mysql/log:/var/log/mysql \
-d mysql:8.0
```
### Docker安装Redis
```shell script
docker pull redis:5.0.9
mkdir /root/docker/redis
vim /root/docker/redis/redis.conf
port 6379
requirepass xxxx
appendonly yes
docker run -p 6379:6379 --name redis \
-v /root/docker/redis/data:/data \
-v /root/docker/redis/redis.conf:/etc/redis/redis.conf \
-d redis:5.0.9 redis-server /etc/redis/redis.conf
```
### Docker安装Nginx
```shell script
mkdir /root/docker/nginx
mkdir /root/docker/nginx/conf
# 由于我们现在没有配置文件,也不知道配置什么。可以先启动一个nginx,讲他的配置文件拷贝出来
# 再作为映射,启动真正的nginx
docker pull nginx:1.17.4
docker run --name some-nginx -d nginx:1.17.4
docker container cp some-nginx:/etc/nginx /root/docker/nginx/conf
# 然后就可以删除这个容器了
docker docker rm -f some-nginx
# 启动nginx
docker run --name nginx -p 80:80 \
-v /root/docker/nginx/conf:/etc/nginx \
-v /root/docker/nginx/html:/usr/share/nginx/html \
-d nginx:1.17.4
```
### Docker安装ElasticSearch
```shell script
docker pull elasticsearch:7.8.0
# 做映射之前赋予文件夹相应权限,
chmod -R 775 /root/docker/elasticsearch/data
chmod -R 775 /root/docker/elasticsearch/logs
docker run -p 9200:9200 -p 9300:9300 --name es7.8 \
-e "discovery.type=single-node" \
-e ES_JAVA_OPTS="-Xms128m -Xmx512m" \
-v /root/docker/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-v /root/docker/elasticsearch/data:/usr/share/elasticsearch/data \
-v /root/docker/elasticsearch/logs:/usr/share/elasticsearch/logs \
-d elasticsearch:7.8.0
```
### Docker安装Kibana
```sehll
# 拉取镜像
# kibana版本必须和elasticsearch版本保持一致
docker pull kibana:7.8.0
# 启动容器
# YOUR_ELASTICSEARCH_CONTAINER_NAME_OR_ID 正在运行的ES容器ID或name
docker run --link YOUR_ELASTICSEARCH_CONTAINER_NAME_OR_ID:elasticsearch -p 5601:5601 {docker-repo}:{version}
docker run --link es7.8:elasticsearch -p 5601:5601 --name kibana -d kibana:7.8.0
```
### DockerElasticSearch安装IK分词器
```sehll
# Ik分词器版本要和ES和Kibana版本保持一致
# 进入容器
docker exec -it es7.8 /bin/bash
#此命令需要在容器中运行
elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.8.0/elasticsearch-analysis-ik-7.8.0.zip
# 退出容器,重启容器
exit
docker restart es7.8
```
## spring-cloud-alibaba的使用
### 引入依赖,全套组件版本统一管理
```xml
<properties>
<springcloud.alibaba.version>2.2.2.RELEASE</springcloud.alibaba.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
```
### nacos作为注册中心
1. 本地启动nacos客户端,windows双击startup.bat
若启动失败,则在当前目录下打开cmd,执行startup.bat -m standalone
2. 引入nacos作为注册中心的依赖
```xml
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
```
3. 在配置文件中配置注册中心地址以及服务名和端口
```properties
# 服务端口
server.port=8070
# 服务名
spring.application.name=service-provider
# 注册中心地址
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
```
4. 启用服务注册发现配置 @EnableDiscoveryClient
```java
@SpringBootApplication
@EnableDiscoveryClient
public class NacosProviderApplication {
public static void main(String[] args) {
SpringApplication.run(NacosProviderApplication.class, args);
}
}
```
### nacos作为配置中心
1. 本地启动nacos客户端,windows双击startup.bat
若启动失败,则在当前目录下打开cmd,执行startup.bat -m standalone
2. 引入nacos作为配置中心的依赖
```xml
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
```
3. 在配置文件bootstrap.properties中配置注册中心地址以及服务名
```properties
# 服务名,配置服务名是因为服务名是默认读取的dataId的一部分
spring.application.name=service-provider
# 配置中心地址
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
```
当配置了nacos配置中心,服务启动时会去nacos配置中心加载默认命名空间(public)下默认命名的配置集,dataId的组成形式是 ${prefix}-${spring.profiles.active}.${file-extension}
- dataId:一组配置的集合的唯一表示
- prefix:默认值为配置文件中配置的服务名,也可以使用spring.cloud.nacos.config.prefix来自定义
- spring.profiles.active指当前激活的环境,如dev,prod等,如果当前服务不存在多个环境,则dataI
d将变为 ${prefix}.${file-extension}
- file-extension:配置中心中配置项的配置格式(默认是properties,因此只要内容格式是properties就可以不加后缀),可在配置文件中通过spring.cloud.nacos.config.file-extension指定,当前只支持yaml和properties
4. 获取配合中心中配置项的值可使用@Value注解,若希望读取的值随着配置中心中的改变而实时更新(不用重启项目),使用@RefreshScope自动刷新
- 若某个配置项既在application.yaml有配置,也在配置中心进行了配置,优先读取配置中心中的值
5. 关于配置中心的几个名字概念
- 命名空间:用来做配置隔离,区分每个dataId所属哪个命名空间,比如可以让每个服务所创建的所有dataId属于自己的命名空间
- 配置中心中新建的dataId默认所属的命名空间都是PUBLIC,服务启动时默认去读取的dataId是服务名.properties,若自己修改了其所属命名空间,则无法读取到配置项的内容
可以在配置文件bootstrap.properties中指定要读取哪个配置空间
- 每个配置空间下所创建的配置集dataId,可以设置其所属组,默认组是DEFAULT_PUBLIC,可以通过这个组来进行生产、测试等多个环境下的多个配置,然后在配置文件中指定读取的是哪个组即可
6. 读取多个配置文件
我们可以将服务的全部配置分成多个配置文件(数据连接相关,mybatis相关,redis相关,其他),为每部分的配置文件也都可以设置所属组,然后在配置文件中通过spring.cloud.nacos.config.extension-configs:来指定加在属于指定组的多个配置文件
7. 通常情况下,每个模块(微服务)会去创建自己专属的命名空间(如服务名),然后在命名空间内创建多个dataId进行相应部分的配置管理,并可以为其指定所属组来进行不同环境下的不同配置。
```java
@RestController
@RequestMapping("/config")
@RefreshScope
public class ConfigController {
@Value
没有合适的资源?快使用搜索试试~ 我知道了~
分布式项目谷粒商城,前后端分离,前端基于Vue+ElementUI,后端基于SpringBoot+Mybatis+Mysql
共909个文件
java:657个
xml:86个
js:38个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 84 浏览量
2024-01-04
15:10:25
上传
评论
收藏 3.16MB ZIP 举报
温馨提示
Java SpringBoot实现在线商城项目,实现了电商商城、淘淘商城、新蜂商城、小程序商城、电商书城、淘宝天猫商城、秒杀系统、黑马乐优商城、塔可商城、仿小米商城、微信商城,使用了SpringBoot、Redis、ElasticSearch、JWT、Vue、JavaScript、Dubbo、、Docker、RESTful API、BootStrap、微服务、高并发、Kafka、MyBatis、uni-app、Layui、MySQL、Kubernetes等技术,适用于大作业、课程设计、毕业设计、商用。
资源推荐
资源详情
资源评论
收起资源包目录
分布式项目谷粒商城,前后端分离,前端基于Vue+ElementUI,后端基于SpringBoot+Mybatis+Mysql (909个子文件)
bootstrap.min.css 118KB
AdminLTE.min.css 88KB
screen.css 43KB
print.css 41KB
all-skins.min.css 40KB
font-awesome.min.css 30KB
swagger-ui.css 26KB
ui.jqgrid-bootstrap.css 18KB
ui.jqgrid.css 17KB
layer.css 14KB
layer.css 5KB
style.css 3KB
style.css 3KB
main.css 1KB
reset.css 773B
ui.jqgrid-bootstrap-ui.css 662B
typography.css 0B
Dockerfile 134B
fontawesome-webfont.eot 162KB
glyphicons-halflings-regular.eot 20KB
throbber.gif 9KB
loading-0.gif 6KB
loading-2.gif 2KB
loading-1.gif 701B
expand.gif 73B
collapse.gif 69B
.gitattributes 57B
.gitignore 328B
reg.html 495KB
list.html 95KB
item.html 68KB
detail.html 64KB
confirm.html 33KB
index.html 30KB
cartList.html 30KB
list.html 24KB
login.html 8KB
pay.html 6KB
success.html 5KB
index.html 5KB
index.html 4KB
success.html 4KB
oauth2-redirect.html 2KB
generator.html 1KB
main.html 1KB
o2c.html 479B
favicon.ico 5KB
favicon.ico 4KB
favicon.ico 4KB
gulimall-common.iml 13KB
OrderServiceImpl.java 31KB
CategoryServiceImpl.java 23KB
HTMLFilter.java 20KB
HTMLFilter.java 20KB
SearchServiceImpl.java 20KB
SpuInfoServiceImpl.java 16KB
SeckillServiceImpl.java 15KB
GenUtils.java 14KB
CartServiceImpl.java 12KB
MongoScanner.java 12KB
PurchaseServiceImpl.java 11KB
WareSkuServiceImpl.java 10KB
HttpUtils.java 10KB
AttrServiceImpl.java 10KB
MemberServiceImpl.java 8KB
SkuInfoServiceImpl.java 8KB
AttrGroupServiceImpl.java 7KB
RabbitConfig.java 7KB
WeiboUserInfoVO.java 7KB
AlipayNotifyVO.java 6KB
TestSpringCache.java 5KB
AlipayTemplate.java 5KB
DataSourceProperties.java 5KB
ScheduleUtils.java 5KB
RegisterServiceImpl.java 5KB
DateUtils.java 5KB
SysMenuController.java 5KB
RabbitmqTest.java 4KB
CartInterceptor.java 4KB
SysUserServiceImpl.java 4KB
XssHttpServletRequestWrapper.java 4KB
ScheduleJobServiceImpl.java 4KB
SysUserController.java 4KB
AttrGroupController.java 4KB
SysRoleServiceImpl.java 4KB
RabbitmqConfig.java 4KB
SysOssController.java 4KB
RabbitConfigTestService.java 4KB
StockReleaseListener.java 4KB
OAuth2Filter.java 4KB
PurchaseController.java 4KB
CloudStorageConfig.java 3KB
OrderTO.java 3KB
OrderEntity.java 3KB
CategoryBrandRelationServiceImpl.java 3KB
CartController.java 3KB
OSSServiceImpl.java 3KB
Oauth2WeiboServiceImpl.java 3KB
SkuDiscountServiceImpl.java 3KB
MongoDBCollectionFactory.java 3KB
共 909 条
- 1
- 2
- 3
- 4
- 5
- 6
- 10
资源评论
AI码东道主
- 粉丝: 5443
- 资源: 165
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 科研绘图配色注意要点(视频课程).zip
- Surfer12作图视频教程(25节).zip
- DrawDB 是一个健壮且用户友好的数据库实体关系 (DBER) 编辑器,直接位于您的浏览器中
- PHP库通过返回原始SQL来实现ActiveRecord 用于PHP5.3和NO PDO场景的yii2 ORM移植
- 5152单片机proteus仿真和源码用数组作函数参数控制流水花样
- 2024年全域电商矩阵109节线上课-课程网盘链接提取码下载 .txt
- 对 sqlite 的使用进行简单封装,仅涉及简单的单表 增删改查,基于 FMDB, 操作基于 model
- 5152单片机proteus仿真和源码用函数型指针控制P1口灯花样
- 对Hibernate框架的二次封装,简化对数据库的操作
- 5152单片机proteus仿真和源码用定时器T1查询方式控制单片机发出1KHz音频
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功