SpringCloud--register、provider
来源:互联网 发布:asp控件怎么隐藏js 编辑:程序博客网 时间:2024/05/21 09:24
本篇文章是自己针对SpringCloud学的的总结。主要总结SpringCloud的服务注册、发现和消费。
一、服务的注册
在使用SpringCloud开发应用中,我们需要将所有的功能模块都注册到一个相同的容器,而这个容器就是我们下面看到的register。下面详解创建服务注册器的过程。
(1)创建一个SpringBoot工程。
由于SpringCloud是基于SpringBoot的分布式框架,所以我们需要创建SpringBoot工程。工程结构如下:
(2)需要引入的Maven依赖
<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.example</groupId> <artifactId>register</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>liutao-register</name> <description>the demo of springCloud register</description> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.2.RELEASE</version> <relativePath/> </parent> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka-server</artifactId> </dependency> </dependencies> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>Brixton.RELEASE</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build></project>(3)配置文件配置项
server.port=8000eureka.client.register-with-eureka=falseeureka.client.fetch-registry=falseeureka.client.serviceUrl.defaultZone=http://localhost:${server.port}/eureka/上面配置了register的端口号和注册地址。
(4)程序运行主类
package com.liutao.application;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;/** * 用于配置和启动引导 */@EnableEurekaServer@SpringBootApplicationpublic class Application {public static void main(String[] args) {SpringApplication.run(Application.class, args);}}上面的@EnableEurekaServer注解表示启动一个服务注册中心。
(5)查看注册结果
现在我们就可以直接运行程序,然后在浏览器中链接到http://localhost:8000地址就可以看见服务注册中心的注册情况了,如下:
从上图我们可以看见目前注册中心没有任何服务注册进去。
下面我们就开始了解服务是如何注册到服务注册中心的。
二、服务提供者
在通常的SpringCloud程序开发中,我们需要将项目按照功能创建不同的模块,而这些模块业务逻辑的主要实现就是在服务提供者中,一个项目通常有很多的服务提供者,这些服务提供者都需要注册到register中才能被消费。
(1)创建一个简单的SpringBoot工程
工程结构如下:
注意:上面的工程是自己主要想在项目中使用而搭建的,包含了以下部分:
1)集成Swagger。
2)集成logBack日志管理。
3)集成了Jpa和Mybatis。
4)集成了单元测试。
5)本工程的数据连接池使用的是durid。
(2)需要添加的maven依赖
<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.example</groupId> <artifactId>demo</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>Springcloud - provider</name> <description>the demo of springCloud</description> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.2.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <version.spring>3.2.9.RELEASE</version.spring> <version.jackson>2.4.4</version.jackson> <java.version>1.8</java.version> </properties> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka</artifactId> <version>1.3.0.RELEASE</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-aop</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-freemarker</artifactId> </dependency> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.2.0</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web-services</artifactId> </dependency> <dependency> <groupId>org.springframework.restdocs</groupId> <artifactId>spring-restdocs-mockmvc</artifactId> <scope>test</scope> </dependency> <!--start数据库连接--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.0.25</version> </dependency> <!--end数据库链接--> <!--start Swagger--> <dependency> <groupId>com.mangofactory</groupId> <artifactId>swagger-springmvc</artifactId> <version>0.9.5</version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.6.1</version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.6.1</version> </dependency> <!--end Swagger--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-ribbon</artifactId> <version>1.3.0.RELEASE</version> </dependency> <!--添加单元测试--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-log4j</artifactId> <version>1.3.8.RELEASE</version> </dependency> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>4.2.0</version> </dependency> </dependencies></project>注意上面的maven依赖并不是在所有情况下都需要,某些是根据我自己的需要添加的。
(3)配置文件针对SpringCloud的配置
#the common of SpringCloudspring.application.name=liutao-providerserver.port=8001eureka.client.serviceUrl.defaultZone=http://localhost:8000/eureka/上面的配置,分别配置了服务名称,用于 注册到注册中心 方便后面消费者的使用,服务端口,服务注册中心地址。
(4)程序主类
package com.liutao.application;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.cloud.client.discovery.EnableDiscoveryClient;import org.springframework.context.annotation.ComponentScan;/** * 用于配置和启动引导 */@EnableDiscoveryClient@SpringBootApplication@ComponentScan(basePackages={"com.liutao"})public class Application {public static void main(String[] args) {SpringApplication.run(Application.class, args);}}注意,上面的@EnableDiscoveryClient主要是w为了服务注册中心发现服务。
(5)程序测试Controller
package com.liutao.controller;import com.liutao.entity.User;import com.liutao.service.UserService;import com.wordnik.swagger.annotations.Api;import org.apache.log4j.Logger;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.*;/** * Created by liutao on 2015/8/27. */@RestController@Api(value = "test")@RequestMapping("/liutao")public class UserController { private Logger logger = Logger.getLogger(UserController.class); @Autowired private UserService userServiceImpl; @GetMapping(value = "/userInfo") @ResponseBody public User getUserInfo(@RequestParam("username") String username) { logger.info("username:"+username); User user = userServiceImpl.getUserInfo(username); if(user!=null){ logger.info(user); } return user; }}
(6)测试
到目前位置我们可以启动程序,然后再次访问上面的服务注册中心,就可以看见服务被注册到了服务注册中心,如下图:
至此,我们已经完成了服务的注册,针对服务的消费在下一篇中讲解。
详细代码请参考gitHub地址:SpringCloud--register、provider
- SpringCloud--register、provider
- The 'Microsoft.ACE.OLEDB.12.0' provider is not register
- SpringCloud
- springcloud
- SpringCloud
- springcloud
- springcloud
- springcloud
- register
- register
- register
- Register
- register
- register
- Register~~
- register
- register
- register
- 浏览器渲染页面的过程,以及重绘和重排
- 异常处理+异常+处理异常+自定义异常
- 基于用户画像的精准营销决策建议
- 网易之表达式从左往右依次计算
- netty——helloworld
- SpringCloud--register、provider
- 打不开eclipse
- eclipse批量修改文件编码
- linux复制文件到另一个文件夹
- 强连通分量(Kosaraju算法)
- caffe学习笔记19-batchsize参数
- three.js 渲染器更改背景色的几种方法
- composer安装及使用composer安装laravel框架
- css3中的flex的用法详解