AG-Admin微服務框架入門html
@qq羣:一羣: 837736451 二羣 169824183前端
AG-Admin後臺地址:https://gitee.com/minull/ace-securityvue
AG-Admin前端地址:https://gitee.com/minull/AG-Admin-v2.0java
要想玩兒轉spring cloud必須進行一大波兒的學習哦,先有個心理準備。node
AG-Admin基於Spring Cloud微服務化開發平臺,具備統一受權、認證微服務雲框架。其中包含了服務註冊與發現、用戶管理、資源權限管理、網關API管理等多個模塊,支持多業務系統並行開發,是一個完整的微服務腳手架開發框架。mysql
AG-Admin採用先後端分離架構,前端基於vue-admin-element框架,項目地址:https://github.com/PanJiaChen/vue-element-adminreact
對git必要的熟練使用,由於現有的開源項目都是在git開源中國或者github上。你應具備熟練的項目拉取,提交代碼能力。說了那麼多來一個簡單的教程:https://backlog.com/git-tutorial/cn/nginx
請使用IDEA集成工具開發Spring應用,什麼eclipse,myeclipse仍是別了,來一個IDEA安裝教程git
http://www.javashuo.com/article/p-fhowitlg-ee.htmlgithub
安裝教程
https://www.cnblogs.com/yyiou/archive/2017/08/22/7411409.html
想進一步瞭解Maven:
http://www.javashuo.com/article/p-thrlmzag-hu.html
你應對前端框架Vue有所瞭解,或者對前端三大框架react,angular,vue任意一個框架有所瞭解,或者最低要求可以對nodejs有所瞭解。由於AG-Admin前端是基於vue的vue-admin-element一個 開源項目。來一個nodejs的入門教程:
http://www.javashuo.com/article/p-mpdcimfc-hw.html
首先去Nginx官網下載一個最新版本的Nginx,下載地址:http://nginx.org/en/download.html。我這裏下載的版本是:nginx/Windows-1.11.6。下載完成以後,獲得一個.zip的壓縮包,把壓縮包解壓到D盤根目錄。
1) 修改配置文件。打開「conf」文件夾下的「nginx.conf」文件,使用以下配置所有覆蓋
#user nobody;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;#長鏈接超時時間,單位秒
#gzip on;#啓用Gzip壓縮
server{
listen 8104;#監聽8020端口,能夠改爲其餘端口
server_name localhost;#當前服務的域名
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
if ($request_method = 'OPTIONS') {
add_header 'Access-Control-Allow-Origin' 'http://localhost:9527';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header 'Access-Control-Allow-Credentials' 'true';
#
# Custom headers and headers various browsers *should* be OK with but aren't
#
add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization';
#
# Tell client that this pre-flight info is valid for 20 days
#
return 204;
}
proxy_pass http://localhost:8765;
proxy_redirect default;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_cookie_path /nginx/ /;
proxy_set_header Cookie $http_cookie;
proxy_cookie_domain domino.server localhost;
include uwsgi_params;
add_header 'Access-Control-Allow-Origin' 'http://localhost:9527';
add_header 'Access-Control-Allow-Credentials' 'true';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type';
}
}
}
2)打開命令行,定位到Nginx當前目錄,使用「start nginx」命令啓動nginx
由於Ag-Admin是基於Spring Cloud,而Spring Cloud是基於Spring boot,所以他是基礎你必須有所瞭解。
來一個簡單的教程:
http://www.javashuo.com/article/p-gvdaraqu-hx.html
克隆到本地
使用idea打開
在這裏先認識一下API網關就能夠了,API網關是全部服務對外暴露API接口的惟一有效入口,也就是前端訪問後臺都是走API網關就能夠了,至於API網關具體怎麼回事先不要捉急去深究。其餘沒有標註的暫時不用去關心,咱們先入門,別急。
1)因爲Rabbit MQ是基於erlang所以先把erlang裝上,下載地址
http://www.erlang.org/downloads
安裝完成以後建立一個名爲ERLANG_HOME的環境變量,其值指向erlang的安裝目錄,同時將%ERLANG_HOME%\bin加入到Path中
進入cmd輸入:erl出現下圖說明安裝配置ok,若是不行請檢查上行步驟
下載安裝Rabbit MQ,地址:http://www.rabbitmq.com/download.html
默認安裝的RabbitMQ 監聽端口是5672,默認用戶名:guest,密碼:guest。
2)、RabbitMQ-Plugins插件安裝
這個插件至關因而一個管理界面,方便咱們在瀏覽器界面查看RabbitMQ各個消息隊列以及exchange的工做狀況,安裝方法是:打開命令行cd進入rabbitmq的sbin目錄(個人目錄是:C:\Program Files\RabbitMQ Server\rabbitmq_server-3.7.2\sbin),輸入:
rabbitmq-plugins enable rabbitmq_management
命令,稍等會會發現出現plugins安裝成功的提示
而後重啓服務,使用命令(此時最後以管理員運行CMD):
net stop RabbitMQ && net start RabbitMQ
插件安裝完以後,在瀏覽器輸入http://localhost:15672進行驗證
地址:https://github.com/MSOpenTech/redis/releases
啓動resies-server
分別執行ace-admin/db/init.sql、ace-auth-server/db/init.sql 這兩個腳本,執行成功以後,會建立ag_admin_v1和ag_auth_v1兩個數據庫以及如下一些表:
配置hosts文件
進入:C:\Windows\System32\drivers\etc
將hosts拷貝到桌面而後使用記事本打開,加入如下2句,保存將後將桌面上的hosts文件複製,到原來系統路徑下的hosts粘貼覆蓋
127.0.0.1 ace-admin
127.0.0.1 ACE-ADMIN
修改ace-admin/src/main/resources/application.yml、ace-auth/src/main/resources/application.yml這兩個配置文件中鏈接數據庫的一些信息:
同時注意Rabbit MQ連接配置檢查一遍
修改項目裏全部的defaultZone參數,他默認用的是docker,可是咱們是這本地開發的,因此改爲本地的
1)啓動ace-center,是註冊發現服務他是全部服務的中心
2)啓動ace-auth,是認證中心
3)啓動ace-admin,他在ace-modules下面是指向ag_admin_v1數據庫的基礎數據服務
4)啓動ace-gate,網關
5)啓動前端項目,AG-Admin-v2.0
找到該目錄下將base_api地址 修改成:http://localhost:8104
取消如圖文件的註釋保存
在cmd中進入項目目錄:個人是E:\git\vue\AG-Admin-v2.0
輸入:npm install --registry=https://registry.npm.taobao.org
若是已經安裝了cnpm,則直接輸入cnpm install
等待安裝完成後輸入npm run dev便可在瀏覽器打開:localhost:9527
若是是非H5瀏覽器請下載使用chrome瀏覽器而後把地址粘貼過來
使用postman登陸
這個應該是spring cloud版本問題,請將本身maven本地倉庫下全部文件刪除,C:\Users\Administrator\.m2
而後在ag-admin下面找到pom.xml隨便修改一下內容,而後等到ideam提示導入修改,而後再次撤銷剛纔的修改,再次應用修改,這樣作的目的是爲了讓maven再次下載spring cloud所有依賴,這個過程可能須要等待個10多分鐘,等再次下載完成而後按照啓動順序啓動。
請檢查各自項目下的application.yml文件中的mysql配置是否正確
請檢查application.yml文件中mq配置是否正確,能夠經過http://localhost:15672/,guest,guest查看mq可否能夠用
請檢查application.yml文件中redies配置是否正確,或者redies是否啓動
首先應檢查ace-admin啓動過程當中控制檯有無異常輸出,若是異常輸出請檢查是否屬於上面的問題,若是不是能夠嘗試修改application.yml裏面的超時設置單位爲微秒
這個是由於ace-gate的maven配置沒有加入spring boot的緣故所以在pom.xml加入一下配置從新編譯 部署。
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<kotlin.version>1.1.51</kotlin.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-webflux</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>
<dependency>
<groupId>org.isomorphism</groupId>
<artifactId>token-bucket</artifactId>
<version>1.7</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.projectreactor</groupId>
<artifactId>reactor-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.assertj</groupId>
<artifactId>assertj-core</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-stdlib</artifactId>
<version>${kotlin.version}</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-reflect</artifactId>
<version>${kotlin.version}</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-sleuth-zipkin</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.amqp</groupId>
<artifactId>spring-rabbit</artifactId>
</dependency>
<dependency>
<groupId>com.github.wxiaoqi</groupId>
<artifactId>ace-interface</artifactId>
<version>2.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.github.wxiaoqi</groupId>
<artifactId>ace-auth-client</artifactId>
<version>2.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.github.wxiaoqi</groupId>
<artifactId>ace-common</artifactId>
<version>2.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>5.0.4.RELEASE</version>
</dependency>
</dependencies>
<build>
<finalName>ace-gate</finalName>
<plugins>
<!-- 此插件用來生成通用mapper的代碼 -->
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.2</version>
<configuration>
<configurationFile>${basedir}/src/main/resources/builder/generatorConfig.xml</configurationFile>
<overwrite>true</overwrite>
<verbose>true</verbose>
</configuration>
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.30</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper</artifactId>
<version>${mapper.version}</version>
</dependency>
</dependencies>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
@qq羣:一羣: 837736451 二羣 169824183