前言

该Demo来源于网上,我为其增添了注释和使用手册..

一、准备工作

1.1配置虚拟主机映射

hosts文件路径:C:\Windows\System32\drivers\etc

增加三句:


127.0.0.1 eureka7001.com
127.0.0.1 eureka7002.com
127.0.0.1 eureka7003.com
127.0.0.1 config-3344.com

1.2数据库

创建三个数据库

create database cloudDB01;
create database cloudDB02;
create database cloudDB03;

三个库都创建相同的表

CREATE TABLE Dept
(
    deptno INT PRIMARY KEY,
    dname VARCHAR(50),
    db_source VARCHAR(50)
);

为表插入数据,db_source的值根据1,2,3分别标识(cloudDB01库对应的是1,cloudDB02库对应的是2)

-- database 1

INSERT INTO dept (deptno, dname, db_source) VALUES (1, 'Java1y', '1');
INSERT INTO dept (deptno, dname, db_source) VALUES (2, 'Java2y', '1');
INSERT INTO dept (deptno, dname, db_source) VALUES (3, 'Java3y', '1');
INSERT INTO dept (deptno, dname, db_source) VALUES (4, 'Java4y', '1');
INSERT INTO dept (deptno, dname, db_source) VALUES (5, 'Java5y', '1');

-- database 2


INSERT INTO dept (deptno, dname, db_source) VALUES (1, 'Java1y', '2');
INSERT INTO dept (deptno, dname, db_source) VALUES (2, 'Java2y', '2');
INSERT INTO dept (deptno, dname, db_source) VALUES (3, 'Java3y', '2');
INSERT INTO dept (deptno, dname, db_source) VALUES (4, 'Java4y', '2');
INSERT INTO dept (deptno, dname, db_source) VALUES (5, 'Java5y', '2');

-- database 3


INSERT INTO dept (deptno, dname, db_source) VALUES (1, 'Java1y', '3');
INSERT INTO dept (deptno, dname, db_source) VALUES (2, 'Java2y', '3');
INSERT INTO dept (deptno, dname, db_source) VALUES (3, 'Java3y', '3');
INSERT INTO dept (deptno, dname, db_source) VALUES (4, 'Java4y', '3');
INSERT INTO dept (deptno, dname, db_source) VALUES (5, 'Java5y', '3');

二、模块之间解释

2.0通用API

创建Dept实体,各个模块都可以使用了(不用每个微服务都创建一个Dept对象)。同时Service接口,Feign的代码也在那里编写。

  • microservicecloud-api

2.1服务注册中心

Eureka服务注册中心(集群)

  • microservicecloud-eureka-7001
  • microservicecloud-eureka-7002
  • microservicecloud-eureka-7003

2.2服务提供方

Eureka服务提供方(集群)

  • microservicecloud-provider-dept-8001
  • microservicecloud-provider-dept-8002
  • microservicecloud-provider-dept-8003

带有hystrix功能的服务提供方(hystrix Demo):

  • microservicecloud-provider-dept-hystrix-8001

2.3服务消费方

使用restTemplate+ribbon的方式来测试(ribbon自定义了负载均衡算法)

  • microservicecloud-consumer-dept-80

使用feign来调用远程服务

  • microservicecloud-consumer-dept-feign(直接调用microservicecloud-api的service接口)

监控消费方的指标(性能)

  • microservicecloud-consumer-hystrix-dashboard

使用方式:

  • 启动consumer-hystrix-dashboard项目,打开http://localhost:9001/hystrix.stream

我们可以监控:microservicecloud-provider-dept-hystrix-8001这个项目,于是在输入栏输入http://localhost:8001/hystrix.stream

随后,我们去测试接口:http://localhost:8001/dept/get/7

监控的数据就会变化了:

2.4网关

用于转发路由,服务过滤(安全验证),限流等等:

  • microservicecloud-zuul-gateway-9527

2.5Cloud配置文件

git脚本回顾:


1. git init //初始化仓库

2. git add .(文件name) //添加文件到本地仓库

3. git commit -m "first commit" //添加文件描述信息

4. git remote add origin + 远程仓库地址 //链接远程仓库,创建主分支

5. git pull origin master --allow-unrelated-histories  // 把本地仓库的变化连接到远程仓库主分支

6. git push -u origin master //把本地仓库的文件推送到远程仓库


SpringCloud Config服务端(获取配置都从这里来拿)

  • microservicecloud-config-3344

SpringCloud Config 客户端:

  • microservicecloud-config-client-3355
  • microservicecloud-config-dept-client-8001
  • microservicecloud-config-eureka-client-7001

2.6tip

如果使用的是IDEA的话,使用 Run dashboard比较方便~

echo "# microservicecloud" >> README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin https://github.com/NJAUzhangwenjun/microservicecloud.git
git push -u origin master
git remote add origin https://github.com/NJAUzhangwenjun/microservicecloud.git
git push -u origin master