> 文档中心 > springCloud搭建心得

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: 8769spring.application.name: service-zuuleureka.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我将会在下一篇文章讲解.