国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

微服務(wù)——http客戶端Feign

這篇具有很好參考價(jià)值的文章主要介紹了微服務(wù)——http客戶端Feign。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

目錄

Restemplate方式調(diào)用存在的問(wèn)題

Feign的介紹

基于Feign遠(yuǎn)程調(diào)用

Feign自定義配置

修改日志方式一(基于配置文件)

修改日志方式二(基于java代碼)

Feign的性能優(yōu)化

連接池使用方法?

Feign_最佳實(shí)踐分析?

?方式一:

方式二

?實(shí)現(xiàn)Feign最佳實(shí)踐(方式二)

?兩種解決方案


Restemplate方式調(diào)用存在的問(wèn)題

微服務(wù)——http客戶端Feign,微服務(wù),微服務(wù),http,架構(gòu)

Feign的介紹

就像早期的事務(wù),需要手動(dòng)的開(kāi)啟事務(wù),提交事務(wù),有了spring之后聲明式事務(wù)只需要在配置文件里面定義好規(guī)則即可。

聲明式http也是一樣,提前定義好發(fā)送請(qǐng)求需要的信息,剩下的Feign完成。

微服務(wù)——http客戶端Feign,微服務(wù),微服務(wù),http,架構(gòu)

基于Feign遠(yuǎn)程調(diào)用

定義和使用Feign客戶端

微服務(wù)——http客戶端Feign,微服務(wù),微服務(wù),http,架構(gòu)

?微服務(wù)——http客戶端Feign,微服務(wù),微服務(wù),http,架構(gòu)

在這里剛好用到了所有在使用Restemplate發(fā)送請(qǐng)求時(shí)用到的數(shù)據(jù)。

微服務(wù)——http客戶端Feign,微服務(wù),微服務(wù),http,架構(gòu)

業(yè)務(wù)代碼如下

@Service
public class OrderService {

    @Autowired
    private OrderMapper orderMapper;

    @Autowired
    private UserClient userClient;

    public Order queryOrderById(Long orderId) {
        // 1.查詢訂單
        Order order = orderMapper.findById(orderId);
        //2.利用Feign遠(yuǎn)程調(diào)用
        User user = userClient.findById(order.getUserId());
        //3.封裝user到order
        order.setUser(user);
        // 4.返回
        return order;
    }
//    @Autowired
//    private RestTemplate restTemplate;
//
//    public Order queryOrderById(Long orderId) {
//        // 1.查詢訂單
//        Order order = orderMapper.findById(orderId);
//        //2.利用RestTemplate發(fā)起http請(qǐng)求,查詢用戶
//        String url="http://userserver/user/"+order.getUserId();
//        User user = restTemplate.getForObject(url, User.class);
//        //3.封裝user到order
//        order.setUser(user);
//        // 4.返回
//        return order;
//    }
}

?小問(wèn)題_:如果項(xiàng)目里面引入了下面這注解就一定要去配置bootstrap.yml獲取nacos上的配置文件,不然項(xiàng)目會(huì)一直報(bào)錯(cuò)。

<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>

并且Feign里面自帶一個(gè)ribbon,實(shí)現(xiàn)了負(fù)載均衡。

Feign自定義配置

微服務(wù)——http客戶端Feign,微服務(wù),微服務(wù),http,架構(gòu)

修改日志方式一(基于配置文件)

微服務(wù)——http客戶端Feign,微服務(wù),微服務(wù),http,架構(gòu)

沒(méi)修改前:

微服務(wù)——http客戶端Feign,微服務(wù),微服務(wù),http,架構(gòu)?修改后:? 輸出日志瞬間多了很多

微服務(wù)——http客戶端Feign,微服務(wù),微服務(wù),http,架構(gòu)

修改日志方式二(基于java代碼)

微服務(wù)——http客戶端Feign,微服務(wù),微服務(wù),http,架構(gòu)

微服務(wù)——http客戶端Feign,微服務(wù),微服務(wù),http,架構(gòu)

Feign的性能優(yōu)化

有了連接池可以減少性能損耗

微服務(wù)——http客戶端Feign,微服務(wù),微服務(wù),http,架構(gòu)

連接池使用方法?

微服務(wù)——http客戶端Feign,微服務(wù),微服務(wù),http,架構(gòu)

?微服務(wù)——http客戶端Feign,微服務(wù),微服務(wù),http,架構(gòu)

Feign_最佳實(shí)踐分析?

?方式一:

微服務(wù)——http客戶端Feign,微服務(wù),微服務(wù),http,架構(gòu)

左下面這個(gè)消費(fèi)者中的代碼就是用注解聲明遠(yuǎn)程調(diào)用的一些信息,用于發(fā)送請(qǐng)求到提供者中去。

右下面換這個(gè)提供者中的代碼就是用于接收的類。

兩個(gè)方法除了方法名不同,其余都相同。這兩個(gè)是必須一樣,不是巧合。

微服務(wù)——http客戶端Feign,微服務(wù),微服務(wù),http,架構(gòu)微服務(wù)——http客戶端Feign,微服務(wù),微服務(wù),http,架構(gòu)

?微服務(wù)——http客戶端Feign,微服務(wù),微服務(wù),http,架構(gòu)

??spring官方有所一般情況下不推薦服務(wù)端和客戶端共享接口,會(huì)造成緊耦合。

方式二

將對(duì)同一個(gè)服務(wù)同一些接口的FeignClinent抽取出來(lái)形成一個(gè)獨(dú)立模塊供所有的消費(fèi)者使用。

微服務(wù)——http客戶端Feign,微服務(wù),微服務(wù),http,架構(gòu)

?實(shí)現(xiàn)Feign最佳實(shí)踐(方式二)

微服務(wù)——http客戶端Feign,微服務(wù),微服務(wù),http,架構(gòu)

?按照上面方法測(cè)試會(huì)有一個(gè)報(bào)錯(cuò)

?'cn.itcast.feign.clients.UserClient'?that could not be found.

不是編譯報(bào)錯(cuò),而是springIOC容器里面沒(méi)有這個(gè)對(duì)象,無(wú)法實(shí)現(xiàn)自動(dòng)注入。

這是因?yàn)橄旅孢@個(gè)接口原本有@FeignClient這個(gè)注解,spring掃描到了這個(gè)注解就會(huì)給該接口創(chuàng)建對(duì)象?,F(xiàn)在因?yàn)椴辉趩?dòng)類所在包里面了,掃描不到了。微服務(wù)——http客戶端Feign,微服務(wù),微服務(wù),http,架構(gòu)

?兩種解決方案

微服務(wù)——http客戶端Feign,微服務(wù),微服務(wù),http,架構(gòu)

?推薦使用第二種,用到什么就指定什么。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-610609.html

到了這里,關(guān)于微服務(wù)——http客戶端Feign的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 十二、Feign客戶端整合Hystrix服務(wù)保護(hù)

    目錄 1、項(xiàng)目pom文件中引入feign客戶端依賴 2、編寫feign客戶端接口,并配置fallback回調(diào)方法的類 3、編寫controller,使用feign客戶端進(jìn)行RPC遠(yuǎn)程過(guò)程調(diào)用

    2024年02月05日
    瀏覽(21)
  • 【Spring Cloud】如何把Feign默認(rèn)的HTTP客戶端URLConnection更換成支持連接池的Apache HttpClient或OKHttp

    【Spring Cloud】如何把Feign默認(rèn)的HTTP客戶端URLConnection更換成支持連接池的Apache HttpClient或OKHttp

    本次示例代碼的文件結(jié)構(gòu)如下圖所示。 Feign 發(fā)送 HTTP 請(qǐng)求時(shí),底層會(huì)使用到別的客戶端。下面列出常用的 3 種 HTTP 客戶端。 HTTP客戶端 特點(diǎn) URLConnection Feign 的默認(rèn)實(shí)現(xiàn),不支持連接池 Apache HttpClient 支持連接池 OKHttp 支持連接池 其中, URLConnection 是 Feign 默認(rèn)使用的 HTTP 客戶端

    2024年02月14日
    瀏覽(54)
  • 微服務(wù)架構(gòu),客戶端如何catch服務(wù)端的異常?

    微服務(wù)架構(gòu),客戶端如何catch服務(wù)端的異常?

    在微服務(wù)架構(gòu)或者分布式系統(tǒng)中,客戶端如何捕捉服務(wù)端的異常? 這里說(shuō)的客戶端指調(diào)用方、服務(wù)端指被調(diào)用方,它們通常運(yùn)行在不同的進(jìn)程之中,這些進(jìn)程可能運(yùn)行在同一臺(tái)服務(wù)器,也可能運(yùn)行在不同的服務(wù)器,甚至不同的數(shù)據(jù)機(jī)房;其使用的技術(shù)??赡芟嗤?,也可能存在

    2024年03月09日
    瀏覽(23)
  • Nginx HTTP/3服務(wù)器-客戶端環(huán)境搭建

    一、 NGINX 服務(wù)器介紹: NGINX是一個(gè)高性能的開(kāi)源Web服務(wù)器,也可用作反向代理服務(wù)器、負(fù)載均衡器和HTTP緩存。它由俄羅斯的程序員Igor Sysoev創(chuàng)建,并于2004年首次公開(kāi)發(fā)布。NGINX的設(shè)計(jì)重點(diǎn)是高性能、高并發(fā)和低內(nèi)存消耗,使其成為了現(xiàn)代Web架構(gòu)中的關(guān)鍵組件之一。 NGINX的一些

    2024年03月11日
    瀏覽(28)
  • java代碼構(gòu)建簡(jiǎn)單http服務(wù)器和客戶端

    java代碼構(gòu)建簡(jiǎn)單http服務(wù)器和客戶端

    初識(shí)http a、超文本傳輸 、應(yīng)用層的面向?qū)ο蟮膮f(xié)議,概念介紹網(wǎng)上資源一大堆,關(guān)鍵是基于TCP/IP通信協(xié)議來(lái)傳遞數(shù)據(jù)。 b、一開(kāi)始接觸web項(xiàng)目,都是先接觸的servlet,tomcat服務(wù)器默認(rèn)實(shí)現(xiàn)的一套http規(guī)范,提供了基礎(chǔ)服務(wù)和組件環(huán)境,直接拿到請(qǐng)求、構(gòu)建正文、響應(yīng)客戶端 然而

    2024年02月10日
    瀏覽(28)
  • 使用Go語(yǔ)言的HTTP客戶端和服務(wù)器

    使用Go語(yǔ)言的HTTP客戶端和服務(wù)器

    使用Go語(yǔ)言進(jìn)行HTTP客戶端和服務(wù)器開(kāi)發(fā)是一種高效且強(qiáng)大的方式。Go語(yǔ)言的標(biāo)準(zhǔn)庫(kù)提供了對(duì)HTTP協(xié)議的全面支持,使得創(chuàng)建HTTP客戶端和服務(wù)器變得簡(jiǎn)單。 首先,讓我們來(lái)看一下如何創(chuàng)建一個(gè)簡(jiǎn)單的HTTP服務(wù)器。在Go中,可以使用 net/http 包來(lái)創(chuàng)建HTTP服務(wù)器。以下是一個(gè)簡(jiǎn)單的示例

    2024年01月16日
    瀏覽(47)
  • 使用HTTP/2實(shí)現(xiàn)服務(wù)端主動(dòng)推送消息給客戶端

    使用HTTP/2實(shí)現(xiàn)服務(wù)端主動(dòng)推送消息給客戶端

    77. 使用HTTP/2實(shí)現(xiàn)服務(wù)端主動(dòng)推送消息給客戶端 HTTP/2 協(xié)議的服務(wù)器主動(dòng)推送機(jī)制是通過(guò)服務(wù)器在接收到客戶端請(qǐng)求后,主動(dòng)向客戶端推送相關(guān)資源的方式來(lái)實(shí)現(xiàn)的。下面將詳細(xì)解釋如何在服務(wù)器端和客戶端實(shí)現(xiàn) HTTP/2 的服務(wù)器主動(dòng)推送,并給出相應(yīng)的代碼示例。 客戶端實(shí)現(xiàn):

    2024年02月11日
    瀏覽(31)
  • Netty理論與實(shí)踐(二) 創(chuàng)建http客戶端 服務(wù)端

    Netty理論與實(shí)踐(二) 創(chuàng)建http客戶端 服務(wù)端

    1. 使用echo服務(wù)器模擬http 通過(guò)上一篇文章中的echo服務(wù)器程序來(lái)模擬一次HTTP請(qǐng)求。 接收消息的代碼如下: 我們通過(guò)postman直接訪問(wèn)echo服務(wù)器: 請(qǐng)求成功,echo服務(wù)器接收到了本次HTTP請(qǐng)求,控制臺(tái)打印內(nèi)容如下: 上面的原理很容易理解,postman通過(guò)tcp建立與服務(wù)器localhost:8001的連

    2024年02月16日
    瀏覽(20)
  • HTTP介紹 原理 消息結(jié)構(gòu) 客戶端請(qǐng)求 服務(wù)器響應(yīng) HTTP狀態(tài)碼

    HTTP介紹 原理 消息結(jié)構(gòu) 客戶端請(qǐng)求 服務(wù)器響應(yīng) HTTP狀態(tài)碼

    HTTP協(xié)議 是Hyper Text Transfer Protocol(超文本傳輸協(xié)議)的縮寫,是用于萬(wàn)維網(wǎng)(www.world wide web)服務(wù)器傳輸超文本到本地瀏覽器的傳送協(xié)議 HTTP 是基于TCP/IP(三次握手,四次揮手)通信協(xié)議來(lái)傳輸數(shù)據(jù)(HTML文件,圖片文件,查詢結(jié)果等) TCP:可靠的,丟包重傳 UTP:不可靠的,直播,

    2024年02月05日
    瀏覽(28)
  • linux搭建http源【服務(wù)端和客戶端詳細(xì)說(shuō)明】

    linux搭建http源【服務(wù)端和客戶端詳細(xì)說(shuō)明】

    inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0 [root@master ~]# 關(guān)閉防火墻和selinux firewall的話,直接 systemctl stop firewalld 即可 如果使用的是iptables,則吧firewalld替換成iptables [root@master ~]# systemctl is-active firewalld active [root@master ~]# [root@master ~]# systemctl stop firewalld [root@master ~]# [root@m

    2024年04月13日
    瀏覽(33)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包