微服务 (3)

注册中心

spring cloud ( ribbon 他是下面的依赖 默认下的)
(使用 feign 需要自行加依赖)

//依赖管理 
<dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Edgware.SR2</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
    
    //spring-boot-starter-parent是一个特殊的starter,它用来提供相关的Maven默认依赖。使用它之后,常用的包依赖可以省去version标签。
	<parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.10.RELEASE</version>
     </parent>
//注册中心的依赖
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-eureka-server</artifactId>
        </dependency>
    </dependencies>
    //maven 的注释
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
//注册中心的依赖

注册中心需要一个application.yml文件

//端口
server:
  port: 8761 

eureka:
  instance:
  //名字
    hostname: localhost
  client:
    #是否注册到注册中心,注册中心自己不需要注册
    registerWithEureka: false
    #是否抓取注册中心的注册信息
    fetchRegistry: false
    #是微服务和客服端用来注册和发现的地址
    serviceUrl:
      defaultZone: http://localhost:8761/eureka/

注册中心的main

@SpringBootApplication
@EnableEurekaServer
public class Application {

    public static void main(String[] args) {
        new SpringApplicationBuilder(Application.class).web(true).run(args);
    }

}

客户端pom

  //spring cloud 的依赖
	<dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-eureka</artifactId>
       </dependency>
//小辣椒的依赖 
		<dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.16.6</version>
            <scope>provided</scope>
        </dependency>
//spring cloud 的组件
		<dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>

客户端的application.yml文件

server:
  port: 809

eureka:
  instance:
  //是否使用ip地址
    prefer-ip-address: true
    hostname: localhost
  client:
   #是否注册到注册中心,注册中心自己不需要注册
    registerWithEureka: true
    fetch-registry: true
      #是微服务和客服端用来注册和发现的地址
    serviceUrl:
      defaultZone: http://192.168.241.130:8761/eureka/
//给客户端的名字
spring:
  application:
    name: uselist

客户端的main

@SpringBootApplication
@EnableEurekaClient
//启用feign
@EnableFeignClients
@RestController
public class empMain {

//使用ribbon实例化RestTemplate
    @LoadBalanced
    @Bean
    public RestTemplate restTemplate(){
        return new RestTemplate();
    }


    public static void main(String[] args) {
        new SpringApplicationBuilder(empMain.class).web(true).run(args);

    }

}

使用feign
要使用接口

//你要链接的微服务
@FeignClient(name = "USERSERVICE")
public interface Query {
    //他的路径
    @GetMapping("/emp/{id}")
    public Emp querys(@PathVariable("id") String id);


    @PostMapping("/emp")
    public Result add(@RequestBody Emp emp);

    @PutMapping("/emp/{id}")
    public Result pub(@PathVariable("id")String id , @RequestBody Emp emp) ;

}
//返回josn对象
@RestController
public class contoll {
//自动装配 接口
    @Autowired
    private Query query;

    @GetMapping(value = "most")
    public Result equals(Emp emp){
        String id="1";
        Result add = query.add(emp);
        return add;
    }

    @GetMapping(value = "host/{id}")
    					//获取url路径的参数
    public Result equals(@PathVariable("id") String id,Emp e){
        e.setName("99");
        Result emp=query.pub(id,e);
        return emp;
    }
}

使用ribbon

@RestController
public class contes {

	//自动装配
    @Autowired
    private RestTemplate restTemplate;

    @GetMapping(value="/as")
    public String name(){
    	//url路径
        String url="http://USERSERVICE/a";
        String strin = restTemplate.getForObject(url, String.class);//返回的路径
        return strin;
    }


}

服务端
service的pom

<dependencies>
	//spring cloud 组件
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-eureka</artifactId>
    </dependency>
//spring cloud 组件
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-openfeign</artifactId>
    </dependency>
    //spring boot 的wed包
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    
    //mybatis plus 组件
    <dependency>
        <groupId>com.baomidou</groupId>
        <artifactId>mybatis-plus-boot-starter</artifactId>
        <version>3.0.3</version>
    </dependency>
//mysql 驱动
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
    </dependency>
    //小辣椒
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.16.6</version>
        <scope>provided</scope>
    </dependency>


服务端的application.yml

server:
  port: 8092

eureka:
  instance:
  //是否使用ip
    prefer-ip-address: true
    hostname: localhost
  client:
     #是否注册到注册中心,注册中心自己不需要注册
    registerWithEureka: true
      #是微服务和客服端用来注册和发现的地址
    fetch-registry: true
    serviceUrl:
    #链接注册中心
      defaultZone: http://192.168.0.113:8761/eureka/


spring:
  application:
  #给服务端的名字
    name: userservice
    #连接数据库4要数
  datasource:
    url: jdbc:mysql://localhost/unit02
    username: root
    password: ps123456
    driver-class-name: com.mysql.jdbc.Driver

服务端的main

@RestController
@SpringBootApplication
//mybatis plus 扫描包
@MapperScan("cn.ps.mapperll")
public class Starys {

    /**
     * 分页插件
     */
    @LoadBalanced
    @Bean
    public PaginationInterceptor paginationInterceptor() {
        return new PaginationInterceptor();
    }

    public static void main(String[] args) throws Exception {
        SpringApplication.run(Starys.class, args);
    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值