springCloud搭建心得

我们书接上回来继续搭建springCloud

服务消费者

今天我这搭建Ribbon模式的消费者
consumer是服务的消费者。

consumer调用provider有两种模式,Ribbon模式和Feign模式,先创建一个Ribbon模式的consumer。

依然是创建module,还是选择Spring Initializr,Group和前面的eureka-server写成一样的com.lkforce.cloud,Artifact和Name就叫consumer-ribbon
next,和provider一样选择Spring Cloud Discovery->Eureka Discovery Client,还有Web->SpringWeb
然后我们修改配置文件:

server.port: 8764 #端口
spring.application.name: consumer-ribbon #名称 
eureka.client.service-url.defaultZone: http://localhost:8761/eureka/   #生产者路径

接着在启动类前添加注解:@EnableEurekaClient并且创建一个RestTemplate对象语句如下:

@Bean
	@LoadBalanced
    RestTemplate restTemplate() {
        return new RestTemplate();
    }

添加到启动类中.
紧接着我们创建一个创建Service,用来调用provider接口:
就是正常的Service

 @Autowired
    RestTemplate restTemplate;
    public String hiService(String name) {
    HttpHeaders headers = new HttpHeaders();
        MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8");
        headers.setContentType(type);
        headers.add("Accept", MediaType.APPLICATION_JSON.toString());//头部自定义参数
        JSONObject jsonObj = JSONObject.fromObject(params);//对象转换json        
        HttpEntity<String> formEntity = new HttpEntity<String>(jsonObj.toString(), headers);  //使用resttemplate发送参数的格式
        String result = restTemplate.postForObject(url, formEntity, String.class);  //String.class对应调用方法返回的参数
        return result; //放回结果
        //由于博主只用到了一个参数使用我用到了下面的方法
         return restTemplate.getForObject("http://provider/hi?name="+name,List.class);
    }

然后controller调用Service即可.
调用JSONObject需要用到一下jar包

 <!--json转换-->
        <!-- https://mvnrepository.com/artifact/net.sf.json-lib/json-lib -->
        <dependency>
            <groupId>net.sf.json-lib</groupId>
            <artifactId>json-lib</artifactId>
            <version>2.4</version>
            <classifier>jdk15</classifier>
        </dependency>

这样一个消费者就搭建完成了.

接下来我们搭建网关

照例创建module,还是选择Spring Initializr,Group和前面的eureka-server写成一样的com.lkforce.cloud,Artifact和Name就叫zuul-server,next,除了选择Spring Cloud Discovery->Eureka Discovery Client,还有Web->SpringWeb之外,还需要Spring Cloud Routing下的Zuul.
创建module后,修改application.property:

server.port: 8769
spring.application.name: service-zuul
eureka.client.serviceUrl.defaultZone: http://localhost:8761/eureka/
zuul.routes.api-a.path: /api-a/**
zuul.routes.api-a.service-id: consumer-ribbon #这里的名字为生产者的名字

然后在启动类添加@EnableEurekaClient和@EnableZuulProxy注解
然后调用http://localhost:8769/api-a/加上接口名就可以调用了.

剩下的配置中心config-server,config-client我将会在下一篇文章讲解.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值