天天看點

SpringCloud微服務實戰——搭建企業級開發架構(二):環境準備

這裡簡單說明一下在Windows系統下開發SpringCloud項目所需要的的基本環境,這裡隻說明開發過程中基礎必須的軟體,其他擴充功能(Docker,k8s,MinIO,XXL-JOB,EKL,Keepalived,Nginx,RabbitMQ,Kafka等)用到的軟體會在具體使用時詳細說明,本地開發的環境軟體以Windows版本的安裝配置為例,資料庫等中間件以Linux(CentOS7)的安裝配置為例,其他系統Mac/Linux可自行配置。

後端開發需要準備的環境及軟體有:JDK 1.8+,Maven 3.6.3+,Mysql 5.7.11+,Redis 5.0+,Nacos 1.4.0+,Sentinel 1.8.0+,IntelliJ IDEA 2020.2.1

    前端開發需要準備的環境及軟體有:Node.js 15.9.0+,npm/cnpm/yarn,Visual Studio Code

*    實際上環境軟體可以使用Docker安裝,更加簡單友善,如果說自己為了更詳細地了解各項配置及安裝原理,還是通過軟體包一步步安裝配置(這裡暫不深入讨論資料庫、消息中間件等應不應該使用Docker安裝的問題),以下為詳細安裝操作步驟,不是小白請略過...*

後端開發所需環境及軟體安裝步驟:

一、安裝JDK

    2019年4月16日,Oracle釋出了Oracle JDK的8u211和8u 212兩個版本(屬于JDK8系列),并從這兩個版本開始将JDK的授權許可從BCL換成了OTN,也就是從這兩個版本開始商用收費。當然,個人開發和測試并不會收費,那麼商用環境我們可以有兩個選擇: 下載下傳之前的版本(2019年1月15日釋出的Oracle JDK 8u201和8u202)進行使用或者選擇使用OpenJDK。目前我們一般的做法是在本地開發環境使用Oracle JDK ,在測試環境和正式環境中使用OpenJDK。為了保持使用的特性一緻,需選擇合适的版本。

我們這裡在開發過程中選擇使用Oracke JDK, Oracle JDK官網下載下傳選擇頁面已标注好8u211後面的版本和8u202之前的版本友善下載下傳,https://www.oracle.com/java/technologies/oracle-java-archive-downloads.html

SpringCloud微服務實戰——搭建企業級開發架構(二):環境準備

  1. 選擇JDK免費版進行下載下傳,根據自己合适的Windows系統版本下載下傳,我這裡選擇Windows x64版本,提前做好Oracke JDK網站的系統注冊和登入,否則在下載下傳過程中會提示登入,選擇頁面: 
    SpringCloud微服務實戰——搭建企業級開發架構(二):環境準備
  2. 輕按兩下下載下傳的Oracle JDK進行安裝,根據提示一步步地點選下一步即可:
    SpringCloud微服務實戰——搭建企業級開發架構(二):環境準備
    SpringCloud微服務實戰——搭建企業級開發架構(二):環境準備
    SpringCloud微服務實戰——搭建企業級開發架構(二):環境準備
    SpringCloud微服務實戰——搭建企業級開發架構(二):環境準備
    SpringCloud微服務實戰——搭建企業級開發架構(二):環境準備
  3. 配置環境變量:

    在系統環境變量中添加JAVA_HOME和 CLASSPATH,并将JAVA的bin目錄加入到path中

    SpringCloud微服務實戰——搭建企業級開發架構(二):環境準備
    SpringCloud微服務實戰——搭建企業級開發架構(二):環境準備
  4. 驗證是否安裝配置成功:

    運作 -> cmd指令視窗,在指令行中輸入:java -version,下面出現版本資訊說明安裝配置成功。

    SpringCloud微服務實戰——搭建企業級開發架構(二):環境準備

二、安裝Maven

我們的SpringCloud項目使用Maven進行建構和依賴管理,Maven 的 Snapshot 版本與 Release 版本:1、Snapshot 版本代表不穩定、尚處于開發中的版本;2、Release 版本則代表穩定的版本。Gradle 作為建構工具最近幾年也比流行,和Maven比較各有優缺點吧,如果說哪一個比較好,這個仁者見仁智者見智,我們這裡仍選擇Maven進行項目建構。

  1. 下載下傳安裝:

    Maven(http://maven.apache.org/download.cgi)需要JDK的支援,我們這裡選擇最新的Manven版本3.6.3,需要JDK1.7以上的支援,JDK的安裝以及配置在上面我們已經完成。 下載下傳Maven的zip包: apache-maven-3.6.3-bin.zip

    SpringCloud微服務實戰——搭建企業級開發架構(二):環境準備
  2. 配置環境:

    在系統環境變量中添加 M2_HOME 和 MAVEN_HOME,最後在PATH中添加Maven的bin目錄: %MAVEN_HOME%\bin

    SpringCloud微服務實戰——搭建企業級開發架構(二):環境準備
    SpringCloud微服務實戰——搭建企業級開發架構(二):環境準備
  3. 運作 -> cmd指令視窗,在指令行中輸入:mvn -version ,如下圖所示,展示版本資訊說明安裝配置成功。
    SpringCloud微服務實戰——搭建企業級開發架構(二):環境準備
  4. 注冊阿裡雲私服并擷取私服倉庫位址:

    我們可以選擇安裝Nexus作為Maven倉庫管理器,也可以使用阿裡雲提供的Maven私服,配置方式都是一樣的,這裡我們選擇使用阿裡雲的Maven私服,如果是企業使用,這裡建議申請私有倉庫:

    SpringCloud微服務實戰——搭建企業級開發架構(二):環境準備
    SpringCloud微服務實戰——搭建企業級開發架構(二):環境準備
    SpringCloud微服務實戰——搭建企業級開發架構(二):環境準備
    5、配置Maven私服位址和本地倉庫路徑,請按下面的注釋進行替換為自己的私有倉庫資訊。
<!--?xml version="1.0" encoding="UTF-8"?-->
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemalocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
        <!--請替換為自己本地的倉庫位址-->
	<localrepository>D:\maven\repository</localrepository>
    <mirrors>
        <mirror>
            <id>mirror</id>
            <mirrorof>!rdc-releases,!rdc-snapshots</mirrorof>
            <name>mirror</name>
            <url>http://maven.aliyun.com/nexus/content/groups/public</url>
        </mirror>
    </mirrors>
    <servers>
        <server>
            <id>rdc-releases</id>
            <username>使用者名/密碼請替換為自己阿裡雲倉庫的</username>
            <password>使用者名/密碼請替換為自己阿裡雲倉庫的</password>
        </server>
        <server>
            <id>rdc-snapshots</id>
            <username>使用者名/密碼請替換為自己阿裡雲倉庫的</username>
            <password>使用者名/密碼請替換為自己阿裡雲倉庫的</password>
        </server>
    </servers>
    <profiles>
        <profile>
            <id>nexus</id>
            <repositories>
                <repository>
                    <id>central</id>
                    <url>http://maven.aliyun.com/nexus/content/groups/public</url>
                    <releases>
                        <enabled>true</enabled>
                    </releases>
                    <snapshots>
                        <enabled>false</enabled>
                    </snapshots>
                </repository>
                <repository>
                    <id>snapshots</id>
                    <url>http://maven.aliyun.com/nexus/content/groups/public</url>
                    <releases>
                        <enabled>false</enabled>
                    </releases>
                    <snapshots>
                        <enabled>true</enabled>
                    </snapshots>
                </repository>
                <repository>
                    <id>rdc-releases</id>
                   <!--下面的url替換為自己的阿裡雲私服位址-->
                    <url>替換為自己的阿裡雲私服位址</url>
                    <releases>
                        <enabled>true</enabled>
                    </releases>
                    <snapshots>
                        <enabled>false</enabled>
                    </snapshots>
                </repository>
                <repository>
                    <id>rdc-snapshots</id>
                    <url>替換為自己的阿裡雲私服位址</url>
                    <releases>
                        <enabled>false</enabled>
                    </releases>
                    <snapshots>
                        <enabled>true</enabled>
                    </snapshots>
                </repository>
            </repositories>
            <pluginrepositories>
                <pluginrepository>
                    <id>central</id>
                    <url>http://maven.aliyun.com/nexus/content/groups/public</url>
                    <releases>
                        <enabled>true</enabled>
                    </releases>
                    <snapshots>
                        <enabled>false</enabled>
                    </snapshots>
                </pluginrepository>
                <pluginrepository>
                    <id>snapshots</id>
                    <url>http://maven.aliyun.com/nexus/content/groups/public</url>
                    <releases>
                        <enabled>false</enabled>
                    </releases>
                    <snapshots>
                        <enabled>true</enabled>
                    </snapshots>
                </pluginrepository>
                <pluginrepository>
                    <id>rdc-releases</id>
                   <!--下面的url替換為自己的阿裡雲私服位址-->
                    <url>替換為自己的阿裡雲私服位址</url>
                    <releases>
                        <enabled>true</enabled>
                    </releases>
                    <snapshots>
                        <enabled>false</enabled>
                    </snapshots>
                </pluginrepository>
                <pluginrepository>
                    <id>rdc-snapshots</id>
                    <!--下面的url替換為自己的阿裡雲私服位址-->
                    <url>替換為自己的阿裡雲私服位址</url>
                    <releases>
                        <enabled>false</enabled>
                    </releases>
                    <snapshots>
                        <enabled>true</enabled>
                    </snapshots>
                </pluginrepository>
            </pluginrepositories>
        </profile>
    </profiles>
    <activeprofiles>
        <activeprofile>nexus</activeprofile>
    </activeprofiles>
</settings>
           

三、安裝Mysql

    這裡介紹在CentOS7上通過安裝通用預編譯包方式安裝MySql資料庫:

  1. 增加使用者名和使用者組 :
#groupadd mysql  
#useradd -r -g mysql mysql  ---建立msyql 使用者禁止登入shell
           
  1. 下載下傳、解壓MySQL通用編譯包:
#wget ftp://ftp.mirrorservice.org/sites/ftp.mysql.com/Downloads/MySQL-5.7/mysql-5.7.11-linux-glibc2.5-x86_64.tar.gz  
#cd /usr/local/     ---切換到存放源碼包所在目錄(這裡也是安裝目錄) 
#tar -xvf mysql-5.7.11-linux-glibc2.5-x86_64.tar.gz  ---在目前目錄解壓通用編譯包
#ln -s /usr/local/mysql-5.7.11-linux-glibc2.5-x86_64.tar.gz mysql ---建立軟連結mysql 友善操作
           
  1. 設定權限并初始化MySQL系統授權表:
#cd mysql ---進入軟連結目錄 
#mkdir /usr/local/mysql/data  ---建立資料目錄  
#chmod 770 /usr/local/mysql/data ---更改data目錄權限為770 
#chown -R mysql. ---更改所有者,注意是mysql.  
#chgrp -R mysql.  ---更改所屬組,注意是mysql.  
#bin/mysqld —initialize -user=mysql -basedir=/usr/local/mysql --datadir=/usr/local/mysql/data ---以root 初始化操作時要加--user=mysql參數,生成一個随機的密碼(儲存登入時使用) 
#chown -R root. ---更改所有者,注意是root.  
#chown -R mysql /usr/local/mysql/data ---更改data目錄所有者為mysql
           
  1. 建立配置檔案并背景啟動MySQL
# mv/etc/my.cnf /etc/my.cnf.bak      ---my.cnf 改名或删除(預設的my.cnf 會影響mysql 啟動)  
#cd /usr/local/mysql/support-files  ---進入MySQL 安裝目錄支援檔案目錄  
#cp my-default.cnf/etc/my.cnf ---複制模闆為新的配置檔案,根據需要修改檔案中配置選 項如不修改配置MySQL則按預設配置參數運作。 
#/usr/local/mysql/bin/mysqld_safe --user=mysql &    ---背景啟動mysql 
           
  1. 配置MySQL自動啟動
#cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql ---複制啟動檔案  
#chmod 755 /etc/init.d/mysql ---增加執行權限  
#chkconfig -add mysql  ---加入自動啟動項  
#chkconfig --level 345 mysql on ---設定MySQL 在345 等級自動啟動  ***把服務檔案放到/etc/init.d/目錄下面相當于改為了rpm包安裝的服務使用方式。
           
  1. 配置MySQL系統環境變量
#vi /etc/profile  ---編輯/etc/profile檔案在最後添加如下兩行:
PATH=/usr/local/mysql/bin:$PATH
export PATH  ---不加登入mysql 時會報錯“-bash: mysql: command not found”  
#source /etc/profile  ---使環境變量及時生效
           
  1. 啟動MySQL服務
#/usr/local/mysql/support-files/mysql.server start ---啟動mysql服務 
#/usr/local/mysql/support-files/mysql.server restart ---重新開機mysql  
#/usr/local/mysql/support-files/mysql.server stop  ---停止mysql服務  
           

也可以用service mysql start或systemctl start mysql這樣的rpm服務指令,還可以使用絕對路徑/etc/init.d/mysql start來啟動mysql,因為上面已經把啟動方式改為了rpm服務啟動方式。

  1. 通路MySQL資料庫
#mysql -u root-p  ---連接配接mysql,輸入初始化時生成的密碼  
mysql> alter user 'root^'localhost' identified by '123456';  ---修改root 新密碼
mysql> quit; ---退出也可用exit;  
# mysql -u root -p  ---提示輸入密碼時輸入新設定的密碼登入  
mysql>use mysql;  ---通路資料庫mysql
mysql>GRANT ALL ON *.* TO 'root'@'%' IDENTIFIED BY '密碼' WITH GRANT OPTION; ---建立可以遠端連結的使用者
           
  1. 建立SSL/RSA檔案
#cd /usr/local/mysql/bin ---切換目錄  
#mysql_ssl_rsa_setup -user=mysql -basedir=/usr/local/mysql --datadir=/usr/local/mysql/data  ---建立新的SSL檔案 
           
  1. MySQL預設區分大小寫,需要修改配置檔案使其不區分大小寫

    在/etc/my.cnf中的[mysqld]後加入下面一行,并重新開機MySQL

lower_case_table_names=1
           

11、常見問題及解決方式:

a、登入時報錯

#myslq -u root -p 
報錯:  ERROR 1045 (28000): 
Access denied for user 'root'local host' (using password: NO)---(不輸入密碼時)ERROR 1045 (28000): 
Access denied for user ,root,@,localhost, (using password: YES)---(輸入密碼時)
           

解決方式:

#/etc/init.d/mysql stop  ---停止mysql 服務  
#mysqld_safe -skip-grant-tables -skip-networking &  ---跳過權限表控制,跳過TCP/IP 協定在本機通路 
#mysql -u root -p mysql  ---提示輸入密碼時直接到 7 丨(  
mysql>update user set authentication_string=password('123456,) where user='root'; --修改密碼,在 MySQL5.7.9中密碼字段名是authentication_string 而不是原來的password 了。 
mysql> flush privileges; ---重新整理MySQL的系統權限相關表使其生效  
mysql> quit;  ---退出mysql  
#/etc/init.d/mysqld restart  ---重新開機mysql 服務
           

b、通路資料庫時報錯

#myslq -u root -p ---提示輸入密碼時輸入新設定的密碼  
mysql>use mysql; 
報錯:  ERROR 1820 (HY000): You must SET PASSWORD before executing this statement
           

解決方式:

mysql>alteruseruser() identifiedby '123456'; ---再重新設定下密碼,注意方法與之前5.6版本的“SET  PASSWORD = PASSWORD('new_password'}/MH
           

c、啟動MySQL服務報錯

#systemctl start mysql  
報錯:  Starting MySQL.. ERROR! The server quit without updating PID file (/usr/local/mysql/data/localhost.localdomain.pid).
           
初始化沒有指定路徑參數造成的加上參數即可  
#cd /usr/local/mysql  
#bin/mysqld -initialize-user=mysql -basedir=/usr/local/mysql -datadir=/usr/local/mysql/data
           

d、使用druid作為資料庫連接配接池時,密碼加密(找到maven目錄下的druid包)

java -cp druid-1.0.14.jar com.alibaba.druid.filter.config.ConfigTools you_password
           

四、安裝Redis

下面是在CentOS7中安裝Redis的操作步驟,在指令行執行以下指令:

  1. 下載下傳并解壓Redis安裝包
wget http://download.redis.io/releases/redis-5.0.5.tar.gz

cd /opt/software/

tar zxf redis-5.0.5.tar.gz -C /usr/local/src
           
  1. 編譯并安裝Redis
cd /usr/local/src/redis-5.0.5

make && make install

ln -s /usr/local/src/redis-5.0.5 /usr/local/redis
           
  1. 修改Redis配置檔案
vi /usr/local/redis/redis.conf
#修改内容如下:
daemonize yes                           #開啟背景運作
timeout 120                                #逾時時間
bind 0.0.0.0                                #任何位址IP都可以登入redis
requirepass 123456          #redis密碼123456
           
  1. 啟動Redis
cd /usr/local/redis/src
./redis-server /usr/local/redis/redis.conf
           
  1. 測試安裝配置是否成功
redis-cli -h 127.0.0.1 -p 6379 -a 123456

127.0.0.1:6379> KEYS * (empty list or set)
127.0.0.1:6379> set user ray
OK
127.0.0.1:6379> KEYS *
1) "user"
           

常見問題:

redis不能遠端連接配接時,可能是防火牆的問題,關閉防火牆或者開放對應的redis端口即可

五、安裝Nacos

    Nacos是一個更易于建構雲原生應用的動态服務發現、配置管理和服務管理平台,Nacos 緻力于幫助您發現、配置和管理微服務。Nacos 提供了一組簡單易用的特性集,幫助您快速實作動态服務發現、服務配置、服務中繼資料及流量管理。

  1. Nacos釋出位址:https://github.com/alibaba/nacos/releases,從裡面選擇需要的版本,這裡選擇1.4.0版本,下載下傳位址為:https://github.com/alibaba/nacos/releases/download/1.4.0/nacos-server-1.4.0.tar.gz。
    SpringCloud微服務實戰——搭建企業級開發架構(二):環境準備
  2. 下載下傳完成後,上傳到測試Linux伺服器解壓。(如果隻想本地windows安裝,可以下載下傳nacos-server-1.4.0.zip,解壓後使用方法基本一緻)
[root@localhost soft_home]# cd nacos
[root@localhost nacos]# ls
nacos-server-1.4.0.tar.gz
[root@localhost nacos]# tar -zxvf nacos-server-1.4.0.tar.gz 
nacos/LICENSE
nacos/NOTICE
nacos/target/nacos-server.jar
nacos/conf/
nacos/conf/schema.sql
nacos/conf/nacos-mysql.sql
nacos/conf/application.properties.example
nacos/conf/nacos-logback.xml
nacos/conf/cluster.conf.example
nacos/conf/application.properties
nacos/bin/startup.sh
nacos/bin/startup.cmd
nacos/bin/shutdown.sh
nacos/bin/shutdown.cmd
[root@localhost nacos]# ls
nacos  nacos-server-1.4.0.tar.gz
[root@localhost nacos]# cd nacos
[root@localhost nacos]# ls
bin  conf  LICENSE  NOTICE  target
[root@localhost nacos]# cd bin
[root@localhost bin]# ls
shutdown.cmd  shutdown.sh  startup.cmd  startup.sh
[root@localhost bin]# pwd
/usr/local/nacos/nacos/bin
[root@localhost bin]# 

           
  1. 修改配置檔案的資料庫連接配接,修改為自己實際的資料
#*************** Config Module Related Configurations ***************#
### If use MySQL as datasource:
spring.datasource.platform=mysql

### Count of DB:
db.num=1

### Connect URL of DB:
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user=nacos
db.password=nacos

           
  1. 在資料庫中刷入/nacos/conf目錄下的nacos-mysql.sql資料庫腳本,如果需要其他配置或者了解使用方式可以通路官網,官網位址:https://nacos.io/zh-cn/docs/quick-start.html。
  2. 進入到bin目錄下直接執行sh startup.sh -m standalone。
[root@localhost bin]# sh startup.sh -m standalone
/usr/java/jdk1.8.0_77/bin/java  -server -Xms2g -Xmx2g -Xmn1g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m -XX:-OmitStackTraceInFastThrow -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/usr/local/nacos/nacos/logs/java_heapdump.hprof -XX:-UseLargePages -Dnacos.member.list= -Djava.ext.dirs=/usr/java/jdk1.8.0_77/jre/lib/ext:/usr/java/jdk1.8.0_77/lib/ext -Xloggc:/usr/local/nacos/nacos/logs/nacos_gc.log -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M -Dloader.path=/usr/local/nacos/nacos/plugins/health,/usr/local/nacos/nacos/plugins/cmdb -Dnacos.home=/usr/local/nacos/nacos -jar /usr/local/nacos/nacos/target/nacos-server.jar  --spring.config.location=file:/usr/local/nacos/nacos/conf/,classpath:/,classpath:/config/,file:./,file:./config/ --logging.config=/usr/local/nacos/nacos/conf/nacos-logback.xml --server.max-http-header-size=524288
nacos is starting with cluster
nacos is starting,you can check the /usr/local/nacos/nacos/logs/start.out
           

6、服務啟動之後,可以通路http://ip:8848/nacos通路管理背景,預設使用者名密碼:nacos/nacos

SpringCloud微服務實戰——搭建企業級開發架構(二):環境準備
SpringCloud微服務實戰——搭建企業級開發架構(二):環境準備

六、安裝Sentinel

  1. 下載下傳Sentinel釋出版本,位址https://github.com/alibaba/Sentinel/releases
  2. 将下載下傳的jar包sentinel-dashboard-1.8.0.jar上傳到CentOS7伺服器,Sentinel 是一個标準的 Spring Boot 應用,以 Spring Boot 的方式運作 jar 包即可,執行啟動指令
nohup java -Dserver.port=8086 -Dproject.name=sentinel-dashboard -jar sentinel-dashboard-1.8.0.jar >/dev/null &
           

3、在浏覽器輸入測試的http://ip:8086 即可通路登入界面,預設使用者名密碼為sentinel/sentinel

SpringCloud微服務實戰——搭建企業級開發架構(二):環境準備

4、至此,一個簡單的Sentinel就部署成功了,其他更詳細功能及使用方式請參考:https://github.com/alibaba/Sentinel/wiki/介紹

  1. SpringCloud微服務實戰——搭建企業級開發架構(二):環境準備
  2. SpringCloud微服務實戰——搭建企業級開發架構(二):環境準備
    SpringCloud微服務實戰——搭建企業級開發架構(二):環境準備
  3. SpringCloud微服務實戰——搭建企業級開發架構(二):環境準備
  4. SpringCloud微服務實戰——搭建企業級開發架構(二):環境準備
    SpringCloud微服務實戰——搭建企業級開發架構(二):環境準備
    SpringCloud微服務實戰——搭建企業級開發架構(二):環境準備
<!--?xml version="1.0" encoding="UTF-8"?-->
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemalocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
        <!--請替換為自己本地的倉庫位址-->
	<localrepository>D:\maven\repository</localrepository>
    <mirrors>
        <mirror>
            <id>mirror</id>
            <mirrorof>!rdc-releases,!rdc-snapshots</mirrorof>
            <name>mirror</name>
            <url>http://maven.aliyun.com/nexus/content/groups/public</url>
        </mirror>
    </mirrors>
    <servers>
        <server>
            <id>rdc-releases</id>
            <username>使用者名/密碼請替換為自己阿裡雲倉庫的</username>
            <password>使用者名/密碼請替換為自己阿裡雲倉庫的</password>
        </server>
        <server>
            <id>rdc-snapshots</id>
            <username>使用者名/密碼請替換為自己阿裡雲倉庫的</username>
            <password>使用者名/密碼請替換為自己阿裡雲倉庫的</password>
        </server>
    </servers>
    <profiles>
        <profile>
            <id>nexus</id>
            <repositories>
                <repository>
                    <id>central</id>
                    <url>http://maven.aliyun.com/nexus/content/groups/public</url>
                    <releases>
                        <enabled>true</enabled>
                    </releases>
                    <snapshots>
                        <enabled>false</enabled>
                    </snapshots>
                </repository>
                <repository>
                    <id>snapshots</id>
                    <url>http://maven.aliyun.com/nexus/content/groups/public</url>
                    <releases>
                        <enabled>false</enabled>
                    </releases>
                    <snapshots>
                        <enabled>true</enabled>
                    </snapshots>
                </repository>
                <repository>
                    <id>rdc-releases</id>
                   <!--下面的url替換為自己的阿裡雲私服位址-->
                    <url>替換為自己的阿裡雲私服位址</url>
                    <releases>
                        <enabled>true</enabled>
                    </releases>
                    <snapshots>
                        <enabled>false</enabled>
                    </snapshots>
                </repository>
                <repository>
                    <id>rdc-snapshots</id>
                    <url>替換為自己的阿裡雲私服位址</url>
                    <releases>
                        <enabled>false</enabled>
                    </releases>
                    <snapshots>
                        <enabled>true</enabled>
                    </snapshots>
                </repository>
            </repositories>
            <pluginrepositories>
                <pluginrepository>
                    <id>central</id>
                    <url>http://maven.aliyun.com/nexus/content/groups/public</url>
                    <releases>
                        <enabled>true</enabled>
                    </releases>
                    <snapshots>
                        <enabled>false</enabled>
                    </snapshots>
                </pluginrepository>
                <pluginrepository>
                    <id>snapshots</id>
                    <url>http://maven.aliyun.com/nexus/content/groups/public</url>
                    <releases>
                        <enabled>false</enabled>
                    </releases>
                    <snapshots>
                        <enabled>true</enabled>
                    </snapshots>
                </pluginrepository>
                <pluginrepository>
                    <id>rdc-releases</id>
                   <!--下面的url替換為自己的阿裡雲私服位址-->
                    <url>替換為自己的阿裡雲私服位址</url>
                    <releases>
                        <enabled>true</enabled>
                    </releases>
                    <snapshots>
                        <enabled>false</enabled>
                    </snapshots>
                </pluginrepository>
                <pluginrepository>
                    <id>rdc-snapshots</id>
                    <!--下面的url替換為自己的阿裡雲私服位址-->
                    <url>替換為自己的阿裡雲私服位址</url>
                    <releases>
                        <enabled>false</enabled>
                    </releases>
                    <snapshots>
                        <enabled>true</enabled>
                    </snapshots>
                </pluginrepository>
            </pluginrepositories>
        </profile>
    </profiles>
    <activeprofiles>
        <activeprofile>nexus</activeprofile>
    </activeprofiles>
</settings>
           
#groupadd mysql  
#useradd -r -g mysql mysql  ---建立msyql 使用者禁止登入shell
           
#wget ftp://ftp.mirrorservice.org/sites/ftp.mysql.com/Downloads/MySQL-5.7/mysql-5.7.11-linux-glibc2.5-x86_64.tar.gz  
#cd /usr/local/     ---切換到存放源碼包所在目錄(這裡也是安裝目錄) 
#tar -xvf mysql-5.7.11-linux-glibc2.5-x86_64.tar.gz  ---在目前目錄解壓通用編譯包
#ln -s /usr/local/mysql-5.7.11-linux-glibc2.5-x86_64.tar.gz mysql ---建立軟連結mysql 友善操作
           
#cd mysql ---進入軟連結目錄 
#mkdir /usr/local/mysql/data  ---建立資料目錄  
#chmod 770 /usr/local/mysql/data ---更改data目錄權限為770 
#chown -R mysql. ---更改所有者,注意是mysql.  
#chgrp -R mysql.  ---更改所屬組,注意是mysql.  
#bin/mysqld —initialize -user=mysql -basedir=/usr/local/mysql --datadir=/usr/local/mysql/data ---以root 初始化操作時要加--user=mysql參數,生成一個随機的密碼(儲存登入時使用) 
#chown -R root. ---更改所有者,注意是root.  
#chown -R mysql /usr/local/mysql/data ---更改data目錄所有者為mysql
           
# mv/etc/my.cnf /etc/my.cnf.bak      ---my.cnf 改名或删除(預設的my.cnf 會影響mysql 啟動)  
#cd /usr/local/mysql/support-files  ---進入MySQL 安裝目錄支援檔案目錄  
#cp my-default.cnf/etc/my.cnf ---複制模闆為新的配置檔案,根據需要修改檔案中配置選 項如不修改配置MySQL則按預設配置參數運作。 
#/usr/local/mysql/bin/mysqld_safe --user=mysql &    ---背景啟動mysql 
           
#cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql ---複制啟動檔案  
#chmod 755 /etc/init.d/mysql ---增加執行權限  
#chkconfig -add mysql  ---加入自動啟動項  
#chkconfig --level 345 mysql on ---設定MySQL 在345 等級自動啟動  ***把服務檔案放到/etc/init.d/目錄下面相當于改為了rpm包安裝的服務使用方式。
           
#vi /etc/profile  ---編輯/etc/profile檔案在最後添加如下兩行:
PATH=/usr/local/mysql/bin:$PATH
export PATH  ---不加登入mysql 時會報錯“-bash: mysql: command not found”  
#source /etc/profile  ---使環境變量及時生效
           
#/usr/local/mysql/support-files/mysql.server start ---啟動mysql服務 
#/usr/local/mysql/support-files/mysql.server restart ---重新開機mysql  
#/usr/local/mysql/support-files/mysql.server stop  ---停止mysql服務  
           
#mysql -u root-p  ---連接配接mysql,輸入初始化時生成的密碼  
mysql> alter user 'root^'localhost' identified by '123456';  ---修改root 新密碼
mysql> quit; ---退出也可用exit;  
# mysql -u root -p  ---提示輸入密碼時輸入新設定的密碼登入  
mysql>use mysql;  ---通路資料庫mysql
mysql>GRANT ALL ON *.* TO 'root'@'%' IDENTIFIED BY '密碼' WITH GRANT OPTION; ---建立可以遠端連結的使用者
           
#cd /usr/local/mysql/bin ---切換目錄  
#mysql_ssl_rsa_setup -user=mysql -basedir=/usr/local/mysql --datadir=/usr/local/mysql/data  ---建立新的SSL檔案 
           
lower_case_table_names=1
           
#myslq -u root -p 
報錯:  ERROR 1045 (28000): 
Access denied for user 'root'local host' (using password: NO)---(不輸入密碼時)ERROR 1045 (28000): 
Access denied for user ,root,@,localhost, (using password: YES)---(輸入密碼時)
           
#/etc/init.d/mysql stop  ---停止mysql 服務  
#mysqld_safe -skip-grant-tables -skip-networking &  ---跳過權限表控制,跳過TCP/IP 協定在本機通路 
#mysql -u root -p mysql  ---提示輸入密碼時直接到 7 丨(  
mysql>update user set authentication_string=password('123456,) where user='root'; --修改密碼,在 MySQL5.7.9中密碼字段名是authentication_string 而不是原來的password 了。 
mysql> flush privileges; ---重新整理MySQL的系統權限相關表使其生效  
mysql> quit;  ---退出mysql  
#/etc/init.d/mysqld restart  ---重新開機mysql 服務
           
#myslq -u root -p ---提示輸入密碼時輸入新設定的密碼  
mysql>use mysql; 
報錯:  ERROR 1820 (HY000): You must SET PASSWORD before executing this statement
           
mysql>alteruseruser() identifiedby '123456'; ---再重新設定下密碼,注意方法與之前5.6版本的“SET  PASSWORD = PASSWORD('new_password'}/MH
           
#systemctl start mysql  
報錯:  Starting MySQL.. ERROR! The server quit without updating PID file (/usr/local/mysql/data/localhost.localdomain.pid).
           
初始化沒有指定路徑參數造成的加上參數即可  
#cd /usr/local/mysql  
#bin/mysqld -initialize-user=mysql -basedir=/usr/local/mysql -datadir=/usr/local/mysql/data
           
java -cp druid-1.0.14.jar com.alibaba.druid.filter.config.ConfigTools you_password
           
wget http://download.redis.io/releases/redis-5.0.5.tar.gz

cd /opt/software/

tar zxf redis-5.0.5.tar.gz -C /usr/local/src
           
cd /usr/local/src/redis-5.0.5

make && make install

ln -s /usr/local/src/redis-5.0.5 /usr/local/redis
           
vi /usr/local/redis/redis.conf
#修改内容如下:
daemonize yes                           #開啟背景運作
timeout 120                                #逾時時間
bind 0.0.0.0                                #任何位址IP都可以登入redis
requirepass 123456          #redis密碼123456
           
cd /usr/local/redis/src
./redis-server /usr/local/redis/redis.conf
           
redis-cli -h 127.0.0.1 -p 6379 -a 123456

127.0.0.1:6379> KEYS * (empty list or set)
127.0.0.1:6379> set user ray
OK
127.0.0.1:6379> KEYS *
1) "user"
           
  1. SpringCloud微服務實戰——搭建企業級開發架構(二):環境準備
[root@localhost soft_home]# cd nacos
[root@localhost nacos]# ls
nacos-server-1.4.0.tar.gz
[root@localhost nacos]# tar -zxvf nacos-server-1.4.0.tar.gz 
nacos/LICENSE
nacos/NOTICE
nacos/target/nacos-server.jar
nacos/conf/
nacos/conf/schema.sql
nacos/conf/nacos-mysql.sql
nacos/conf/application.properties.example
nacos/conf/nacos-logback.xml
nacos/conf/cluster.conf.example
nacos/conf/application.properties
nacos/bin/startup.sh
nacos/bin/startup.cmd
nacos/bin/shutdown.sh
nacos/bin/shutdown.cmd
[root@localhost nacos]# ls
nacos  nacos-server-1.4.0.tar.gz
[root@localhost nacos]# cd nacos
[root@localhost nacos]# ls
bin  conf  LICENSE  NOTICE  target
[root@localhost nacos]# cd bin
[root@localhost bin]# ls
shutdown.cmd  shutdown.sh  startup.cmd  startup.sh
[root@localhost bin]# pwd
/usr/local/nacos/nacos/bin
[root@localhost bin]# 

           
#*************** Config Module Related Configurations ***************#
### If use MySQL as datasource:
spring.datasource.platform=mysql

### Count of DB:
db.num=1

### Connect URL of DB:
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user=nacos
db.password=nacos

           
[root@localhost bin]# sh startup.sh -m standalone
/usr/java/jdk1.8.0_77/bin/java  -server -Xms2g -Xmx2g -Xmn1g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m -XX:-OmitStackTraceInFastThrow -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/usr/local/nacos/nacos/logs/java_heapdump.hprof -XX:-UseLargePages -Dnacos.member.list= -Djava.ext.dirs=/usr/java/jdk1.8.0_77/jre/lib/ext:/usr/java/jdk1.8.0_77/lib/ext -Xloggc:/usr/local/nacos/nacos/logs/nacos_gc.log -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M -Dloader.path=/usr/local/nacos/nacos/plugins/health,/usr/local/nacos/nacos/plugins/cmdb -Dnacos.home=/usr/local/nacos/nacos -jar /usr/local/nacos/nacos/target/nacos-server.jar  --spring.config.location=file:/usr/local/nacos/nacos/conf/,classpath:/,classpath:/config/,file:./,file:./config/ --logging.config=/usr/local/nacos/nacos/conf/nacos-logback.xml --server.max-http-header-size=524288
nacos is starting with cluster
nacos is starting,you can check the /usr/local/nacos/nacos/logs/start.out
           
SpringCloud微服務實戰——搭建企業級開發架構(二):環境準備
SpringCloud微服務實戰——搭建企業級開發架構(二):環境準備
nohup java -Dserver.port=8086 -Dproject.name=sentinel-dashboard -jar sentinel-dashboard-1.8.0.jar >/dev/null &
           
SpringCloud微服務實戰——搭建企業級開發架構(二):環境準備

七、安裝IntelliJ IDEA

    背景Java代碼我們使用目前最流行的IntelliJ IDEA進行開發

  1. 下載下傳需要的安裝包,IntelliJ IDEA下載下傳,輕按兩下安裝,一直點選下一步,盡量修改一下安裝目錄,不要安裝在C槽即可。
    SpringCloud微服務實戰——搭建企業級開發架構(二):環境準備
    SpringCloud微服務實戰——搭建企業級開發架構(二):環境準備
    SpringCloud微服務實戰——搭建企業級開發架構(二):環境準備
    SpringCloud微服務實戰——搭建企業級開發架構(二):環境準備
  2. 想辦法擷取到注冊碼
  3. 配置預設的Maven和JDK路徑
    SpringCloud微服務實戰——搭建企業級開發架構(二):環境準備
    SpringCloud微服務實戰——搭建企業級開發架構(二):環境準備
    IDEA預設會讀取到系統配置的JDK環境變量,具體項目可通過File -> Project Structure進行配置。
  4. 通過插件中心,安裝Lombok,MybatisX, Save Actions, Eclipse Code Formatter插件,後面會詳細介紹幾款插件的用法:
    SpringCloud微服務實戰——搭建企業級開發架構(二):環境準備

前端開發所需環境及軟體安裝步驟:

一、安裝Node.js

    如果是剛接觸Vue的話,建議學習一下vue-element-admin系列文章,介紹得很詳細,雖然ElementUI已經不更新了,但是這位前端大神寫的文檔比AntDesignVue文檔高好幾個層級,AntDesignVue适合掌握一定Vue能力的人去使用學習。

  1. Node.js下載下傳位址:https://nodejs.org/en/download/releases/
    SpringCloud微服務實戰——搭建企業級開發架構(二):環境準備
    SpringCloud微服務實戰——搭建企業級開發架構(二):環境準備
  2. 輕按兩下安裝包,一步步點選下一步即可
    SpringCloud微服務實戰——搭建企業級開發架構(二):環境準備
    SpringCloud微服務實戰——搭建企業級開發架構(二):環境準備
    SpringCloud微服務實戰——搭建企業級開發架構(二):環境準備
    SpringCloud微服務實戰——搭建企業級開發架構(二):環境準備
    SpringCloud微服務實戰——搭建企業級開發架構(二):環境準備
    SpringCloud微服務實戰——搭建企業級開發架構(二):環境準備
  3. 檢查是否安裝成功

    運作 -> cmd指令視窗 ,在指令行中輸入 node -v ,顯示node版本資訊表示安裝成功

    SpringCloud微服務實戰——搭建企業級開發架構(二):環境準備
npm config set registry https://registry.npm.taobao.org/
           
  1. 安裝cnpm
npm install -g cnpm --registry=https://registry.npm.taobao.org
           
  1. 安裝yarn
npm install -g yarn
yarn config set registry&nbsp;`https://registry.npm.taobao.org -g`
           
  1. 下載下傳合适的VSCode安裝包,下載下傳位址
    SpringCloud微服務實戰——搭建企業級開發架構(二):環境準備
  2. 我們這裡選擇的是.zip解壓版,下載下傳解壓後就可使用。
  3. 安裝插件,打開VSCode,點選左側下面的擴充按鈕,選擇需要的插件進行安裝

    漢化插件: Chinese (Simplified) Language Pack for Visual Studio Code

    代碼檢查/格式化工具: ESLint

    Html/js/css進行格式化對齊顯示: Beautify

    Vue開發工具 : Vetur

  4. 配置ESLint自動檢測格式化前端代碼

    在我們使用的前端架構中,已經生成eslint 相關的配置檔案.eslintignore和.eslintrc.js,當我們編輯代碼儲存時,ESlint插件會将我們的代碼自動按照配置好的格式進行格式化,這裡介紹在VSCode中如何配置使用Eslint。

    修改VSCode配置,檔案->首選項->設定,在設定頁,點選右上角第一個按鈕,打開setting.json,修改内容為:

{
    //儲存自動格式化
    "editor.formatOnSave": true,
    //autoFixedOnSave 設定已廢棄,采用如下新的設定
    "editor.codeActionsOnSave": {
        "source.fixAll.eslint": true
    },
    //.vue檔案template格式化支援,并使用js-beautify-html插件
    "vetur.format.defaultFormatter.html": "js-beautify-html",
    // js-beautify-html格式化配置,屬性強制換行
    "vetur.format.defaultFormatterOptions": {
        "js-beautify-html": {
            "wrap_attributes": "force-aligned"
        }
    },
    //後面不添加逗号
    "vetur.format.defaultFormatter.js": "vscode-typescript",
    //方法後面加空格
    "javascript.format.insertSpaceBeforeFunctionParenthesis": true,
    "files.autoSave": "off",
    "eslint.format.enable": true,
    //autoFix預設開啟,隻需輸入字元串數組即可
    "eslint.validate": [
        "javascript",
        "javascriptreact",
        "vue",
        "html",
        "vue-html"
    ],
    "eslint.run": "onSave"
}