商城项目

elasticsearch

docker安装与配置

docker pull elasticsearch:7.4.2  #

docker pull kibana:7.4.2 ##图形化界面工具

mkdir -p /mydata/elasticsearch/config  #配置文件

mkdir -p /mydata/elasticsearch/data  # 宿主机存一些数据

echo "http.host : 0.0.0.0" >> /mydata/elasticsearch/config/elasticsearch.yml  ###配置

 

#运行命令
docker run -it --name elasticsearch -p 9200:9200 -p 9300:9300 \
-e "discovery.type=single-node" \
-e ES_JAVA_OPTS="-Xms64m -Xmx128m" \
-v /mydata/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /mydata/elasticsearch/data:/usr/share/elasticsearch/data \
-v /mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-d elasticsearch:7.4.2

运行成功之后访问:


docker run --name kibana -e ELASTICSEARCH_HOSTS=http://192.168.56.10:9200 -p 5601:5601 \
-d kibana:7.4.2

  ###kibana运行命令

运行成功:

 

elasticsearch的使用

http://192.168.56.10:9200/_cat/nodes

http://192.168.56.10:9200/_cat/health

http://192.168.56.10:9200/_cat/master

http://192.168.56.10:9200/_cat/indices  查看索引

 

 

启动报错问题

docker run ... 报错

yml配置文件格式写错了:

name[空格]:[空格] value  正确格式

 

[root@centos7-01 config]# docker logs elasticsearch 
OpenJDK 64-Bit Server VM warning: Option UseConcMarkSweepGC was deprecated in version 9.0 and will likely be removed in a future release.
Exception in thread "main" 2020-07-08 12:47:22,006 main ERROR No Log4j 2 configuration file found. Using default configuration (logging only errors to the console), or user programmatically provided configurations. Set system property 'log4j2.debug' to show Log4j 2 internal initialization logging. See https://logging.apache.org/log4j/2.x/manual/configuration.html for instructions on how to configure Log4j 2
SettingsException[Failed to load settings from [elasticsearch.yml]]; nested: ParsingException[Failed to parse object: expecting token of type [START_OBJECT] but found [VALUE_STRING]];
        at org.elasticsearch.common.settings.Settings$Builder.loadFromStream(Settings.java:1097)
        at org.elasticsearch.common.settings.Settings$Builder.loadFromPath(Settings.java:1070)
        at org.elasticsearch.node.InternalSettingsPreparer.prepareEnvironment(InternalSettingsPreparer.java:83)
        at org.elasticsearch.cli.EnvironmentAwareCommand.createEnv(EnvironmentAwareCommand.java:95)
        at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:86)
        at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:125)
        at org.elasticsearch.cli.Command.main(Command.java:90)
        at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:115)
        at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:92)
Caused by: ParsingException[Failed to parse object: expecting token of type [START_OBJECT] but found [VALUE_STRING]]
        at org.elasticsearch.common.xcontent.XContentParserUtils.ensureExpectedToken(XContentParserUtils.java:78)
        at org.elasticsearch.common.settings.Settings.fromXContent(Settings.java:617)
        at org.elasticsearch.common.settings.Settings.access$400(Settings.java:82)
        at org.elasticsearch.common.settings.Settings$Builder.loadFromStream(Settings.java:1093)
        ... 8 more
 

 

运行环境搭建

virtual box 安装 6.0 

vagrant  安装  2.2.9

 

vagrant init centos/7   初始化一个虚拟环境

vagrant up  启动虚拟容器

按照此教程配置虚拟机:

https://www.jianshu.com/p/2207f730e64e

 

报错

No usable default provider could be found for your system.

解决办法:virtualbox6.1和vagrant2.2.9不兼容,换成6.0版本。

 

docker安装

https://www.runoob.com/docker/centos-docker-install.html

docker-mysql安装

docker pull mysql:5.7

mysql 启动:

sudo docker run -p 3306:3306 --name mysql02 --privileged=true \
-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

修改配置:vi /mydata/mysql/conf/mysql.conf 新增以下配置并保存
【client】
default-character-set=utf8

【mysql】
default-character-set=utf8
【mysqld】
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collection-server=utf8_unicode_ci
skip-character-set-client-handshake

docker-reids


skip-name-resolvedocker安装redis命令
mkdir -p /mydata/redis/conf
touch /mydata/redis/conf/redis.conf
docker run -p 6379:6379 --name redis --privileged=true \
-v /mydata/redis/data:/data \
-v/mydata/redis/conf/redis.conf:/etc/redis/redis.conf \
-d redis redis-server /etc/redis/redis.conf

修改配置:vi /mydata/redis/conf/redis.conf ,新增一行appendonly yes并保存

 

问题记录

git  push报错

$ git push
remote: Incorrect username or password ( access token )
fatal: Authentication failed for 'https://gitee.com/zhipanwang/gulimall.git/'
push的时候出现以上错误,原因是这里的凭据写错了,当这里有的时候,再push时不会让重新输入用户名密码,要么修改此处,要么删除此处push时填入正确的用户名密码。

 

vue导入前台项目 启动报错

 

 ERROR  Failed to compile with 1 errors                                                                         15:42:24
Module build failed: Error: No ESLint configuration found.
    at getLocalConfig (E:\Java\java项目\mygulimall\renren-fast-vue\node_modules\_eslint@3.19.0@eslint\lib\config.js:162:35)
    at Config.getConfig (E:\Java\java项目\mygulimall\renren-fast-vue\node_modules\_eslint@3.19.0@eslint\lib\config.js:260:26)
    at processText (E:\Java\java项目\mygulimall\renren-fast-vue\node_modules\_eslint@3.19.0@eslint\lib\cli-engine.js:224:33)
    at CLIEngine.executeOnText (E:\Java\java项目\mygulimall\renren-fast-vue\node_modules\_eslint@3.19.0@eslint\lib\cli-engine.js:754:26)
    at lint (E:\Java\java项目\mygulimall\renren-fast-vue\node_modules\_eslint-loader@1.7.1@eslint-loader\index.js:211:17)
    at Object.module.exports (E:\Java\java项目\mygulimall\renren-fast-vue\node_modules\_eslint-loader@1.7.1@eslint-loader\index.js:206:21)


解决办法

使用eslint时报错:No ESLint configuration found.

因为使用eslint时,项目目录下默认有一个.eslintrc.js文件

如果遇到这个错误,可以在项目下新建一个.eslintrc.js文件,然后进行配置就行了

具体配置根据项目配置,附上我的配置供参考
 

module.export  = {
    rout: true,
    env: {
        browser: true,
        node: true
    },
    parserOptions: {
        parser: 'babel-eslint'
    },
    extends: [
        'plugin:vue/recommended'
    ],
    plugins: [
        'vue'
    ],
    // 添加自定义规则
    rules: {}
}

 

node-sass 安装失败

node-sass安装失败,编译失败

cnpm install node-sass --save

npm install   都会有报错

 

Module build failed: Error: Node Sass does not yet support your current environment: Windows 64-bit with Unsupported runtime (72)
For more information on which environments are supported please see:
https://github.com/sass/node-sass/releases/tag/v4.9.0
    at module.exports (E:\Java\java项目\mygulimall\renren-fast-vue\node_modules\_node-sass@4.9.0@node-sass\lib\binding.js:13:13)
    at Object.<anonymous> (E:\Java\java项目\mygulimall\renren-fast-vue\node_modules\_node-sass@4.9.0@node-sass\lib\index.js:14:35)
    at Module._compile (internal/modules/cjs/loader.js:959:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:995:10)
    at Module.load (internal/modules/cjs/loader.js:815:32)
    at Function.Module._load (internal/modules/cjs/loader.js:727:14)
    at Module.require (internal/modules/cjs/loader.js:852:19)
    at require (internal/modules/cjs/helpers.js:74:18)
    at Object.<anonymous> (E:\Java\java项目\mygulimall\renren-fast-vue\node_modules\sass-loader\lib\loader.js:3:14)
    at Module._compile (internal/modules/cjs/loader.js:959:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:995:10)
    at Module.load (internal/modules/cjs/loader.js:815:32)
    at Function.Module._load (internal/modules/cjs/loader.js:727:14)
    at Module.require (internal/modules/cjs/loader.js:852:19)
    at require (internal/modules/cjs/helpers.js:74:18)
    at loadLoader (E:\Java\java项目\mygulimall\renren-fast-vue\node_modules\loader-runner\lib\loadLoader.js:18:17)

node版本是12     node-sass应该是4.12+   此项目配置的4.9 所以才安装失败,改完之后成功。

package.json中配置了依赖的版本。

 

启动应用时报端口被占用

 

window环境下查看端口被某个进程占用:

cmd

netstat -ano |findstr 8080

任务管理器结束任务

 

nacos

nacos server 部署

下载之后解压,运行:

E:\Toos\nacos\nacos\1.1.4\nacos-server-1.1.4\nacos\bin

服务注册实现 

参考官网:https://nacos.io/zh-cn/docs/quick-start-spring-cloud.html

1.导入依赖

依赖管理

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>2.1.0.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

依赖: 

        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>

 

2.注解开启

@EnableDiscoveryClient

3.配置

  3.1应用名

  3.2注册中心   spring.nacos.config.server-addr=127.0.0.1:8848

 

远程调用

导入openFeign

两个注解

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>

 

nacos配置中心

 

依赖

此处不能会用带starter的,那个里面根本就没有config配置。

        <!--配置中心-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-alibaba-nacos-config</artifactId>
        </dependency>

这个是官网提供的,埋了一个大坑,这个导入之后根本不能用。害我尝试的大半天。。。。。。。 

<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
    <version>${latest.version}</version>
</dependency>

 

配置

spring.cloud.nacos.config.server-addr=127.0.0.1:8848
spring.application.name=gulimall-coupon

在controller加上@RefreshScope 之后配置就可以动态更新:

 
 

 

网关使用

依赖

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>

配置

bootstrap.properties

配置中心,注册中心,

根据配置命名空间和后缀,读取远程配置 guliamll-gateway.yml 

spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
spring.application.name=gulimall-gateway
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
spring.cloud.nacos.config.namespace=264a052a-fc96-49c7-8fa8-0e4c8c371b02
spring.cloud.nacos.config.file-extension=yml

gulimall-gateway.yml 配置  简单的路由断言使用

server:
  port: 88

spring:
  cloud:
    gateway:
      routes:
      #请求路由
        - id: go-baidu
          uri: https://baidu.com
          #断言
          predicates:
            #请求中有go并且等于baidu时转发请求到uri
            - Query=go,baidu
        - id: go-nacos
          uri: http://localhost:8848/
          predicates:
            - Query=go,nacos

 

详细配置,查看官网文档

https://cloud.spring.io/spring-cloud-static/spring-cloud-gateway/2.2.2.RELEASE/reference/html/#configuration-properties

 

跨域解決

端口包括端口之前的任意部分不同,就是跨域請求:

package com.wang.gulimall.gateway.config;


import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.reactive.CorsConfigurationSource;
import org.springframework.web.cors.reactive.CorsWebFilter;
import org.springframework.web.cors.reactive.UrlBasedCorsConfigurationSource;

@Configuration
public class CorsConfigurationFilter {

    /**
     * 跨越配置
     * @return
     */
    @Bean
    public CorsWebFilter corsWebFilter(){
        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
        CorsConfiguration config = new CorsConfiguration();
        config.addAllowedHeader("*");
        config.addAllowedMethod("*");
        config.addAllowedOrigin("*");
        config.setAllowCredentials(true);
        source.registerCorsConfiguration("/**",config);
        return new CorsWebFilter(source);
    }

}

還是報錯:

The 'Access-Control-Allow-Origin' header contains multiple values

原來微服務還設置了一次跨域,注釋掉之後問題解決。。。

 

Unable to find instance

服務不可用,等一段時間之後就好了。

This application has no configured error view, so you are seeing this as a fallback.

Wed May 27 11:01:30 GMT+08:00 2020

[754bc5b2-31] There was an unexpected error (type=Service Unavailable, status=503).

Unable to find instance for gulimall-product

org.springframework.cloud.gateway.support.NotFoundException: 503 SERVICE_UNAVAILABLE "Unable to find instance for gulimall-product" at org.springframework.cloud.gateway.support.NotFoundException.create(NotFoundException.java:46) Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException: Error has been observed at the following site(s): |_ checkpoint ⇢ org.springframework.web.cors.reactive.CorsWebFilter [DefaultWebFilterChain] |_ checkpoint ⇢ org.springframework.cloud.gateway.filter.WeightCalculatorWebFilter [DefaultWebFilterChain] |_ checkpoint ⇢ HTTP GET "/api/product/category/list/tree" [ExceptionHandlingWebHandler] Stack trace:

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值