最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

springboot分布式整合dubbo的方式

 更新時間:2021年11月29日 10:45:44   作者:孤依寒  
Dubbo是一款高性能、輕量級的開源Java RPC框架,本文通過實例代碼給大家介紹springboot分布式整合dubbo的方式,感興趣的朋友跟隨小編一起看看吧

 Dubbo是Alibaba開源的分布式服務(wù)框架,它最大的特點是按照分層的方式來架構(gòu),使用這種方式可以使各個層之間解耦合(或者最大限度地松耦合)。從服務(wù)模型的角度來看,Dubbo采用的是一種非常簡單的模型,要么是提供方提供服務(wù),要么是消費方消費服務(wù),所以基于這一點可以抽象出服務(wù)提供方(Provider)和服務(wù)消費方(Consumer)兩個角色。

1.服務(wù)提供者配置

//需要額外引入的jar包  提供者      
<dependency>
            <groupId>com.alibaba.boot</groupId>
            <artifactId>dubbo-spring-boot-starter</artifactId>
            <version>0.2.0</version>
        </dependency>

        <dependency>
            <groupId>com.github.sgroschupf</groupId>
            <artifactId>zkclient</artifactId>
            <version>0.1</version>
        </dependency>

spring配置方式

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans.xsd
    http://code.alibabatech.com/schema/dubbo
    http://code.alibabatech.com/schema/dubbo/dubbo.xsd">

<dubbo:application name="user-service-provider"></dubbo:application>
    <!-- 指定注冊中心的地址,將來服務(wù)提供者要向注冊中心進(jìn)行注冊-->
    <dubbo:registry address="zookeeper://192.168.192.3:2181"></dubbo:registry>
    <!-- 指定將來服務(wù)消費者消費我的時候使用的rpc協(xié)議 -->
    <dubbo:protocol name="dubbo" port="11123"></dubbo:protocol>
    <!-- 服務(wù)發(fā)布 -->
    <bean id="userService" class="com.oracle.shop.user.service.impl.UserServiceImpl"></bean>
    <dubbo:service interface="com.oracle.shop.user.service.UserService" ref="userService"></dubbo:service>

</beans>

springboot配置方式

#dubbo的配置
#服務(wù)名
dubbo.application.name=user-provider
#注冊中心地址
dubbo.registry.address=zookeeper://192.168.192.3:2181
#使用的協(xié)議以及端口號
dubbo.protocol.name=dubbo
dubbo.protocol.port=11111

發(fā)布服務(wù)的方式

在相應(yīng)的實現(xiàn)類上添加注解

import com.alibaba.dubbo.config.annotation.Service;
import com.oracle.shopping.user.mapper.MenuMapper;
import com.oracle.shopping.user.po.Menu;
import com.oracle.shopping.user.service.MenuService;
import javax.annotation.Resource;
@Service  //dubbo的注解表示發(fā)布該類
@org.springframework.stereotype.Service//spring的注解表示會在啟動時實例化該類
public class MenuServiceImpl implements MenuService {

    @Resource
    private MenuMapper menuMapper;

    @Override
    public int deleteByPrimaryKey(String id) {
        return menuMapper.deleteByPrimaryKey(id);
    }

    @Override
    public int insert(Menu record) {
        return menuMapper.insert(record);
    }

    @Override
    public int insertSelective(Menu record) {
        return menuMapper.insertSelective(record);
    }

    @Override
    public Menu selectByPrimaryKey(String id) {
        return menuMapper.selectByPrimaryKey(id);
    }

    @Override
    public int updateByPrimaryKeySelective(Menu record) {
        return menuMapper.updateByPrimaryKeySelective(record);
    }

    @Override
    public int updateByPrimaryKey(Menu record) {
        return menuMapper.updateByPrimaryKey(record);
    }

}

啟動類中添加dubbo的掃包器,設(shè)置掃描路徑

@SpringBootApplication
@MapperScan("com.oracle.shopping.user.mapper")
@EnableTransactionManagement
@DubboComponentScan("com.oracle.shopping.user.service.impl")
public class UserProviderApp {

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

2.服務(wù)消費者訂閱

 <dependency>
            <groupId>com.alibaba.boot</groupId>
            <artifactId>dubbo-spring-boot-starter</artifactId>
            <version>0.2.0</version>
        </dependency>

        <dependency>
            <groupId>com.github.sgroschupf</groupId>
            <artifactId>zkclient</artifactId>
            <version>0.1</version>
        </dependency>

spring配置方式

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans.xsd
    http://code.alibabatech.com/schema/dubbo
    http://code.alibabatech.com/schema/dubbo/dubbo.xsd">

<dubbo:application name="user-web-consumer"></dubbo:application>
    <!-- 指定注冊中心的地址,將來服務(wù)提供者要向注冊中心進(jìn)行注冊-->
    <dubbo:registry address="zookeeper://192.168.192.3:2181"></dubbo:registry>
    <!-- 訂閱具體服務(wù),讓dubbo幫咱們生成動態(tài)代理客戶端對象-->
    <dubbo:reference interface="com.oracle.shop.user.service.UserService" id="userService"></dubbo:reference>
    <dubbo:reference interface="com.oracle.shop.order.service.OrderService" id="orderService"></dubbo:reference>

</beans>

在controller中進(jìn)行依賴注入和調(diào)用

@Controller
@RequestMapping("/user")
public class UserController {
    //通過動態(tài)代理的方式生成的動態(tài)代理類
    @Autowired(required = false)
    private UserService userService;
    //不進(jìn)行檢查,防止報錯無法運行
    @Autowired(required = false)
    private OrderService orderService;


    @RequestMapping("/a")
    public @ResponseBody
    User detail(){
     return userService.findUserById(1);
    }

    @RequestMapping("/b")
    public @ResponseBody
    Orders details(){
        return orderService.findUserById(1);
    }

}

springboot配置方式

#指定自己的名稱
dubbo.application.name=user-consumer
#指定注冊中心的地址
dubbo.registry.address=zookeeper://192.168.192.3:2181

?在controller當(dāng)中使用注解聲明要使用的服務(wù)(實現(xiàn)類)

@RestController
@RequestMapping("/user")
public class UserController {

    //表示要使用的服務(wù)
    @Reference(interfaceName = "com.oracle.shopping.user.service.UserService")
    private UserService userService;

    @Autowired
    private RedisTemplate redisTemplate;


    @RequestMapping("/detail")
    public User detail(String id){
        return userService.selectByPrimaryKey(id);
    }
}

啟動類中設(shè)置dobbo注解的掃描路徑

@SpringBootApplication
@DubboComponentScan("com.oracle.shopping.user.controller")
public class UserConsumerApp {

    public static void main(String[] args) {
        SpringApplication.run(UserConsumerApp.class );
    }
}

到此這篇關(guān)于springboot(分布式)整合dubbo的文章就介紹到這了,更多相關(guān)springboot整合dubbo內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 關(guān)于重寫equals()方法和hashCode()方法及其簡單的應(yīng)用

    關(guān)于重寫equals()方法和hashCode()方法及其簡單的應(yīng)用

    這篇文章主要介紹了關(guān)于重寫equals()方法和hashCode()方法及其簡單的應(yīng)用,網(wǎng)上的知識有些可能是錯誤的,關(guān)于?equals()?方法的理解,大家討論不一樣,需要的朋友可以參考下
    2023-04-04
  • java調(diào)用dll方法總結(jié)

    java調(diào)用dll方法總結(jié)

    本篇文章小編給大家整理了java調(diào)用dll的方法的總結(jié),有需要的朋友參考學(xué)下一下吧。
    2017-12-12
  • SpringBoot整合Mybatis-plus的具體過程使用

    SpringBoot整合Mybatis-plus的具體過程使用

    這篇文章主要介紹了SpringBoot?整合mybatis+mybatis-plus的步驟,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-06-06
  • java中線程的狀態(tài)學(xué)習(xí)筆記

    java中線程的狀態(tài)學(xué)習(xí)筆記

    在本文里我們給大家整理了關(guān)于java中線程的狀態(tài)的相關(guān)知識點內(nèi)容,對此有需要的朋友們學(xué)習(xí)參考下。
    2019-03-03
  • Springboot與vue實現(xiàn)數(shù)據(jù)導(dǎo)出方法具體介紹

    Springboot與vue實現(xiàn)數(shù)據(jù)導(dǎo)出方法具體介紹

    這篇文章主要介紹了Springboot與vue實現(xiàn)數(shù)據(jù)導(dǎo)出方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧
    2023-02-02
  • 最新評論

    安庆市| 辽中县| 蓝田县| 视频| 岱山县| 普格县| 慈利县| 宁乡县| 南江县| 宿州市| 永济市| 保山市| 泰宁县| 启东市| 江油市| 榆社县| 盐边县| 宁安市| 化州市| 广宗县| 平利县| 广平县| 松滋市| 灵川县| 永平县| 龙里县| 且末县| 六安市| 浦城县| 东明县| 子洲县| 乌兰浩特市| 东明县| 乌兰浩特市| 阆中市| 钟祥市| 肥东县| 临猗县| 南丹县| 美姑县| 准格尔旗|