springCloud单机环境搭建
个人理解 先学习怎么用 再去理解为什么这么用 当前阶段应该只涉及项目的搭建 让项目能够正常的运行
首先把一个完整的项目分为消费者 服务者 以及注册中心
起一个maven的项目 然后在里面添加module
PS:除了这三个组成部分还有一个单独存放实体的module 为了后面的拓展
导入依赖
首先是注册中心依赖
<!--这里只需要导入 eureka server 的依赖就好了-->
<dependencies>
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka-server</artifactId> <version>1.4.6.RELEASE</version> </dependency> </dependencies>
然后是服务者
<dependencies> <!--完善监控信息--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <!-- eureka --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka</artifactId> <version>1.4.6.RELEASE</version> </dependency> <!-- 获得实体类 配置api module--> <dependency> <groupId>com.xd</groupId> <artifactId>springcloud-api</artifactId> <version>1.0-SNAPSHOT</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-core</artifactId> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> </dependency> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jetty</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> </dependency> </dependencies>
最后是消费者
<dependencies> <!--ribbon --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-ribbon</artifactId> <version>1.4.6.RELEASE</version> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka</artifactId> <version>1.4.6.RELEASE</version> </dependency> <dependency> <groupId>com.xd</groupId> <artifactId>springcloud-api</artifactId> <version>1.0-SNAPSHOT</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> </dependency> </dependencies>
首先修改host文件,为了以后的集群准备
C:\Windows\System32\drivers\etc
127.0.0.1 eureka.7001.com
127.0.0.1 eureka.7002.com
127.0.0.1 eureka.7003.com
注册中心配置
server:
port: 7001
eureka:
instance:
hostname: eureka.7001.com #Eureka服务端的实例名称
client:
register-with-eureka: false # 表示是否向注册中心注册自己
fetch-registry: false # 表示如果为 false 表示自己为注册中心
service-url:
defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/ # 单机
.yml 文件 目前是单机状态后面会搭建集群
服务者配置
server: port: 8001 mybatis: mapper-locations: classpath:mapper/*Mapper.xml type-aliases-package: com.xd.springcloud.pojo configuration: cache-enabled: true spring: application: name: springcloud-provider-dept datasource: type: com.alibaba.druid.pool.DruidDataSource driver-class-name: org.gjt.mm.mysql.Driver url: jdbc:mysql://localhost:3306/db01?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&failOverReadOnly=false&allowMultiQueries=true&useSSL=false username: root password: root eureka: client: service-url: defaultZone: http://eureka.7001.com:7001/eureka/ instance: instance-id: springcloud-provider-dept-8001 # 修改默认的描述信息 info: # 单纯的给 eureka 一些信息 app.name: xd-springcloud company.name : LTIL
消费者配置
server:
port: 80
eureka:
client:
register-with-eureka: false # 不向注册中心注册自己
service-url:
defaultZone: http://eureka.7001.com:7001/eureka/
我们的注册中心只需要一个启动类就可以了
// 启动之后 访问 http://eureka.7001.com:7001/ @SpringBootApplication @EnableEurekaServer // EnableEurekaServer 服务端的启动类 可以接收别人注册进来 public class EurekaServer_7001 { public static void main(String[] args) { SpringApplication.run(EurekaServer_7001.class, args); } }
这个时候就可以看到注册中心启动 但是并没有服务
上面是后面会搭建的集群
下面是会显示的服务
这个时候启动服务者
这个时候下面就有了服务
PS:这个时候的服务者和我们平时的springBoot没有区别只是 使用了spring cloud启动,真正的spring cloud配置和内容还没有展现
启动消费者
PS:消费者不会在注册中心注册
这个时候就可以访问消费者,消费者会通过 RestTemple 去连接服务者 这个时候也可以直接去访问服务 提供者,但是考虑到后续的业务情况可能非常复杂,所以我们通过消费者来访问服务者
@Autowired private RestTemplate restTemplate;
private static final String REST_URL_PERFIX = "http://localhost:8001";
@RequestMapping("/consumer/dept/queryAll") public List<Dept> queryAll() { return restTemplate.getForObject(REST_URL_PERFIX + "/dept/queryAll", List.class); }
可以直接去获取,非常的简单,后续会配置属于自己的 RestTemple
单机情况下的配置和简单应用就到这里了 项目就可以正常运行了