成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

dubbo入門

dubbo 作為一項分布式服務(wù)調(diào)度框架,可以將系統(tǒng)的服務(wù)組件化,將服務(wù)單獨抽取出來。提高系統(tǒng)的性能,當(dāng)然,這個也僅限于分布式的服務(wù)當(dāng)中。dubbo的架構(gòu)圖如下:
dubbo入門

創(chuàng)新互聯(lián)建站堅持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:網(wǎng)站設(shè)計制作、成都網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的贛縣網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

dubbo的特性:
1 提供對多種基于長連接的NIO框架抽象封裝,包括多種線程模型,序列化,以及“請求-響應(yīng)”模式的信息交換方式。
2 提供基于接口方法的透明遠(yuǎn)程過程調(diào)用,包括多協(xié)議支持,以及軟負(fù)載均衡,失敗容錯,地址路由,動態(tài)配置等集群支持。
3 基于注冊中心目錄服務(wù),使服務(wù)消費方能動態(tài)的查×××提供方,使地址透明,使服務(wù)提供方可以平滑增加或減少機器。

dubbo 可以做什么:
1 透明化的遠(yuǎn)程方法調(diào)用(就像調(diào)用本地方法一樣調(diào)用遠(yuǎn)程方法,只需簡單配置,沒有任何API侵入。)
2 軟負(fù)載均衡及容錯機制(可在內(nèi)網(wǎng)替代F5等硬件負(fù)載均衡器,降低成本,減少單點。)
3 服務(wù)自動注冊與發(fā)現(xiàn)(不再需要寫死服務(wù)提供方地址,注冊中心基于接口名查詢服務(wù)提供者的IP地址,并且能夠平滑添加或刪除服務(wù)提供者。)

dubbo 應(yīng)用場景
1.RPC分布式服務(wù)
當(dāng)網(wǎng)站變大后,不可避免的需要拆分應(yīng)用進(jìn)行服務(wù)化,以提高開發(fā)效率,調(diào)優(yōu)性能,節(jié)省關(guān)鍵競爭資源等。
比如:為了適用不斷變化的市場需求,以及多個垂直應(yīng)用之間數(shù)據(jù)交互方便,我們把公共的業(yè)務(wù)抽取出來作為獨立的模塊,為其他的應(yīng)用提供服務(wù),系統(tǒng)逐漸依賴于抽象和rpc遠(yuǎn)程服務(wù)調(diào)用。
2.配置管理
當(dāng)服務(wù)越來越多時,服務(wù)的URL地址信息就會爆炸式增長,配置管理變得非常困難,F(xiàn)5硬件負(fù)載均衡器的單點壓力也越來越大。
3.服務(wù)依賴
當(dāng)進(jìn)一步發(fā)展,服務(wù)間依賴關(guān)系變得錯蹤復(fù)雜,甚至分不清哪個應(yīng)用要在哪個應(yīng)用之前啟動,架構(gòu)師都不能完整的描述應(yīng)用的架構(gòu)關(guān)系。
4.服務(wù)擴容
接著,服務(wù)的調(diào)用量越來越大,服務(wù)的容量問題就暴露出來,這個服務(wù)需要多少機器支撐?什么時候該加機器?等等……

dubbo官方推薦利用zookeeper來當(dāng)做服務(wù)注冊中心,至于zookeeper的特性及應(yīng)用場景在另外一篇文章中也有提到,這次利用zookeeper的windows版本進(jìn)行dubbo的入門學(xué)習(xí)。zookeeper的windows版本安裝比較簡單,主要可以分為三步。
1、下載zookeeper安裝包進(jìn)行解壓。
2、到解壓目錄的conf下面復(fù)制zoo_sample.cfg為zoo.cfg。修改zoo.cfg包括端口、數(shù)據(jù)路徑(dataDir)、數(shù)據(jù)日志路徑(dataLogDir)
3、運行bin下面的zkServer.cmd即可。

dubbo-helloworld 工程
縮寫的dubbo-helloworld工程結(jié)構(gòu)如下圖:
dubbo入門

    在api工程里面定義接口
package org.hzg.dubbo.api.service;
/**
 * Created by hzg on 2019/3/13
 */
public interface DubboHelloworldApi {
    //接口
    public void helloWorldInterface();
}

在service工程里面實現(xiàn)接口

package org.hzg.dubbo.service.service.impl;
import org.hzg.dubbo.api.service.DubboHelloworldApi;
import org.springframework.stereotype.Service;
/**
 * Created by hzg on 2019/3/15
 */
@Service("helloWorldImpl")
public class DubboHelloWorldApiImpl implements DubboHelloworldApi {
    @Override
    public void helloWorldInterface() {
        System.out.println("調(diào)用成功。。。。。。。。。。。。。。。。。。。。。。。。。。。。");
    }
}

在service工程里面進(jìn)行zookeeper相關(guān)配置

    <!-- 為當(dāng)前服務(wù)提供者取個名字,并且提供給注冊中心 -->
    <dubbo:application name="dubbo-helloworld-service"></dubbo:application>
    <!-- 注冊中心的配置,使用zk暴露服務(wù) -->
    <dubbo:registry protocol="zookeeper" address="127.0.0.1:2181"></dubbo:registry>
    <!-- 定義暴露服務(wù)的端口號 -->
    <dubbo:protocol name="dubbo" port="20880"></dubbo:protocol>
    <!-- 暴露具體的服務(wù)接口 -->
    <dubbo:service retries="3" interface="org.hzg.dubbo.api.service.DubboHelloworldApi"
        ref="helloWorldImpl"></dubbo:service>

在web工程里面進(jìn)行zookeeper配置

<!-- 為當(dāng)前服務(wù)提供者取個名字,并且提供給注冊中心 -->
    <dubbo:application name="dubbo-helloworld-web"></dubbo:application>

    <!-- 注冊中心的配置,用于消費者的監(jiān)聽 -->
    <dubbo:registry protocol="zookeeper" address="127.0.0.1:2181"></dubbo:registry>

    <!-- 監(jiān)聽服務(wù),通過注冊中心去進(jìn)行查找,查找到后進(jìn)行服務(wù)調(diào)用 -->
    <dubbo:reference id="dubboHelloworldApi" interface="org.hzg.dubbo.api.service.DubboHelloworldApi"
        retries="3" check="false" init="true"></dubbo:reference>

web工程里面的controller

package org.hzg.dubbo.web.controller;
import org.hzg.dubbo.web.service.HelloWorldService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
/**
 * Created by hzg on 2019/3/15
 */
@Controller
public class HelloWorldController {
    @Autowired
    private HelloWorldService helloWorldService;
    @RequestMapping("/index")
    public String index() {
        return "index";
    }
    @RequestMapping("/hello")
    @ResponseBody
    public String sayHello() {
        return "hello";
    }
    @RequestMapping("/helloDubbo")
    @ResponseBody
    public String sayHelloDubbo() {
        helloWorldService.dubboHelloWorld();
        return "this is the first step";
    }
}

web工程里面的service

package org.hzg.dubbo.web.service;

import org.hzg.dubbo.api.service.DubboHelloworldApi;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
 * Created by hzg on 2019/3/15
 */
@Service
public class HelloWorldService {
    @Autowired
    private DubboHelloworldApi dubboHelloworldApi;   //這里就是api里面定義的接口
    public void dubboHelloWorld() {
        dubboHelloworldApi.helloWorldInterface();
    }
}

以上都是一些主要的配置,至于pom文件,tomcat,spring等配置,這里不再贅述,接下來,看效果:
1、啟動zookeeper
dubbo入門

2、啟動service服務(wù)(可以看到啟動成功和一些注冊成功的服務(wù)信息)
dubbo入門

3、啟動消費者,即web工程
dubbo入門

訪問:127.0.0.1:8080/helloDubbo
dubbo入門

可以看到服務(wù)提供方的日志打印
dubbo入門

分享標(biāo)題:dubbo入門
文章地址:http://jinyejixie.com/article44/jjhoee.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計公司靜態(tài)網(wǎng)站、搜索引擎優(yōu)化、品牌網(wǎng)站設(shè)計、電子商務(wù)、微信公眾號

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

小程序開發(fā)
江川县| 新和县| 阿巴嘎旗| 唐山市| 清水河县| 普定县| 建宁县| 盐边县| 宿松县| 广水市| 从江县| 富源县| 本溪| 霍林郭勒市| 加查县| 巴林右旗| 鄄城县| 高青县| 绥芬河市| 龙海市| 辉南县| 乌拉特中旗| 北辰区| 色达县| 泰宁县| 屏东市| 奉新县| 阿图什市| 仲巴县| 右玉县| 江陵县| 体育| 新干县| 五指山市| 浦江县| 南充市| 岢岚县| 唐海县| 平乡县| 平阳县| 平遥县|