国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁(yè) > news >正文

網(wǎng)站制作公司源碼北京百度競(jìng)價(jià)托管

網(wǎng)站制作公司源碼,北京百度競(jìng)價(jià)托管,網(wǎng)頁(yè)設(shè)計(jì)代碼的意思,咖啡網(wǎng)站開發(fā)背景怎么寫需求:公司產(chǎn)品一直是nodejs的后臺(tái),采用的eggjs框架,也不是最新版本,現(xiàn)有有需求需求將這些應(yīng)用集成到微服務(wù)的注冊(cè)中心,領(lǐng)導(dǎo)要求用java。 思路:用spring cloud gateway將需要暴露的接口url轉(zhuǎn)發(fā),…

需求:公司產(chǎn)品一直是nodejs的后臺(tái),采用的eggjs框架,也不是最新版本,現(xiàn)有有需求需求將這些應(yīng)用集成到微服務(wù)的注冊(cè)中心,領(lǐng)導(dǎo)要求用java。

思路:用spring cloud gateway將需要暴露的接口url轉(zhuǎn)發(fā),并將這個(gè)gateway注冊(cè)到注冊(cè)中心

方案:

1、轉(zhuǎn)發(fā)原有nodejs的后臺(tái)服務(wù)

用Springboot建立一個(gè)gateway項(xiàng)目,引入gateway

        <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-gateway</artifactId><version>3.1.2</version></dependency>

配置文件

server:port: 9984 #此模塊的PORTservlet:encoding:force: truecharset: UTF-8enabled: truetomcat:uri-encoding: UTF-8spring:application:name: gatewaycloud:nacos:discovery:server-addr: localhost:8848 #注冊(cè)到nacosservice=test-provider: gatewaygateway:discovery:locator:enabled: true #開啟從注冊(cè)中心動(dòng)態(tài)創(chuàng)建路由的功能,利用微服務(wù)名進(jìn)行路由routes:- id: gateway1 #路由的ID,沒有固定規(guī)則但要求唯一,建議配合服務(wù)名uri: http://IP:PORT #匹配nodejs的服務(wù)IP及端口號(hào)predicates:- Path=/你的需要暴露的服務(wù)的根路徑/** # 斷言,路徑相匹配的進(jìn)行路由
app文件
@SpringBootApplication
@EnableDiscoveryClient // cloud 需要 注冊(cè)中心==發(fā)現(xiàn)
public class App {public static void main(String[] args) {SpringApplication.run(App.class, args);}
}

啟動(dòng)后在nacos中,可以看到此項(xiàng),這時(shí)可以測(cè)試9984端口已經(jīng)轉(zhuǎn)發(fā)了原有nodejs的服務(wù)

2、消費(fèi)者

需要引入loadblancer否則報(bào)錯(cuò)

    <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-loadbalancer</artifactId><version>3.1.1</version></dependency>

(1)RestTemplate進(jìn)行服務(wù)請(qǐng)求

新建一個(gè)MyConfiguration類對(duì)RestTemplate進(jìn)行配置

package org.example;
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;@Configuration
public class MyConfiguration {@LoadBalanced@Beanpublic RestTemplate restTemplate(){return new RestTemplate();}
}

在使用的類進(jìn)行初始化

private final RestTemplate restTemplate;@Autowiredpublic ConsumerController(RestTemplate restTemplate) {this.restTemplate = restTemplate;}

使用

String url = "http://nacos中模塊名稱/...";HttpHeaders headers = new HttpHeaders();headers.setContentType(MediaType.APPLICATION_JSON);HttpEntity<String> request = new HttpEntity<>(pars.toJSONString(), headers);//請(qǐng)求String result = restTemplate.postForObject(url, request, String.class);//System.out.println(result);

這種模式可以很好的調(diào)用springboot 自己發(fā)布的URL,但是不知道為什么請(qǐng)求對(duì)nodejs的服務(wù)返回的為亂碼,所有的都亂碼不只是中文亂碼。

分析認(rèn)為是GZIP的原因,nodejs的服務(wù)打開了GZIP,所以這里需要處理。可以用以下進(jìn)行GZIP處理,完美結(jié)局

ResponseEntity<byte[]> responseEntity = restTemplate.postForEntity(url, request, byte[].class);GZIPInputStream fi = new GZIPInputStream(new ByteArrayInputStream(responseEntity.getBody()));BufferedReader reader = new BufferedReader(new InputStreamReader(fi));StringWriter writer = new StringWriter();String line = "";while ((line = reader.readLine()) != null) {writer.write(line);}result = writer.toString();

(2)FeignClient,此種方法更加優(yōu)雅

引用

<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId><version>3.1.1</version></dependency>

接口

package org.example;import com.alibaba.fastjson.JSONObject;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;/*** @author * * @date 2024/12/8*/
@FeignClient("gateway")//這里寫nacos中服務(wù)名稱
public interface ProviderFeignClient {//這里是post請(qǐng)求,json格式參數(shù)的例子@PostMapping("/.....")//這里寫具體的路徑String tblcodefactoryv6_GetList(@RequestBody JSONObject pars);}

使用時(shí)就很簡(jiǎn)單了

//初始化@AutowiredProviderFeignClient providerFeignClient;//方法中這樣用就好了,簡(jiǎn)潔result = providerFeignClient.tblcodefactoryv6_GetList(pars);

以上就是使用gateway將nodejs的服務(wù)加入到nacos注冊(cè)中心作為微服務(wù)的過(guò)程。

http://aloenet.com.cn/news/41520.html

相關(guān)文章:

  • 深圳做網(wǎng)站的給說(shuō)網(wǎng)店推廣有哪些
  • 做網(wǎng)站最好最佳的資源搜索引擎
  • 環(huán)保網(wǎng)站查詢碾米是否做備案做個(gè)網(wǎng)站需要多少錢
  • jsp網(wǎng)站開發(fā)實(shí)例教程北京廈門網(wǎng)站優(yōu)化
  • 廈門網(wǎng)站流量?jī)?yōu)化價(jià)格app推廣平臺(tái)放單平臺(tái)
  • 無(wú)錫做網(wǎng)站6seo技術(shù)助理
  • 邵陽(yáng)市城鄉(xiāng)建設(shè)廳網(wǎng)站網(wǎng)絡(luò)營(yíng)銷是學(xué)什么的
  • 企業(yè)做自己的網(wǎng)站要注意什么window優(yōu)化大師
  • 模板網(wǎng)站演示站點(diǎn)怎么做口碑營(yíng)銷案例2022
  • 主機(jī)怎么做網(wǎng)站二次跳轉(zhuǎn)怎么理解搜索引擎優(yōu)化
  • 網(wǎng)站掛馬怎么辦優(yōu)化網(wǎng)站排名方法教程
  • 阿里云ecs裝wordpress長(zhǎng)沙的seo網(wǎng)絡(luò)公司
  • 男人和女人做受吃母乳視頻網(wǎng)站免費(fèi)互聯(lián)網(wǎng)銷售是什么意思
  • 網(wǎng)站低保圖用什么做贛州seo外包
  • 站酷設(shè)計(jì)官方網(wǎng)站磁力下載
  • wordpress 圖片 cdn臺(tái)州seo優(yōu)化公司
  • WordPress建站 用插件怎么推廣軟件
  • 深圳建設(shè)交易中心網(wǎng)站首頁(yè)福州百度關(guān)鍵詞優(yōu)化
  • 網(wǎng)站建設(shè)我要自學(xué)網(wǎng)優(yōu)化網(wǎng)站關(guān)鍵詞的技巧
  • 如何選定目標(biāo)關(guān)鍵詞及網(wǎng)站欄目名稱的確定企業(yè)建網(wǎng)站一般要多少錢
  • 太倉(cāng)網(wǎng)站設(shè)計(jì)早晨設(shè)計(jì)泰州seo
  • 正版?zhèn)髌媸钟喂俜骄W(wǎng)站市場(chǎng)調(diào)研報(bào)告范文3000字
  • 南郊網(wǎng)站建設(shè)報(bào)價(jià)ks刷粉網(wǎng)站推廣馬上刷
  • 可以做微課ppt模板 網(wǎng)站有哪些網(wǎng)站制作開發(fā)
  • 為政府做網(wǎng)站的公司百度怎么發(fā)帖做推廣
  • wordpress登陸可見插件外貿(mào)網(wǎng)站推廣優(yōu)化
  • 北京注冊(cè)公司地址費(fèi)用外貿(mào)建站seo
  • wordpress建站需要寫代碼嗎seo是哪里
  • 大網(wǎng)絡(luò)公司做網(wǎng)站武漢seo服務(wù)外包
  • 廣州做網(wǎng)站的企業(yè)品牌傳播策劃方案