dubbo伺服器搭建
A. bbo原理和機制是什麼
分為幾個模塊:
內核層:
bbo自己的SPI實現
SPI機制的adpative原理
bbo自己的IOC和AOP原理
服務發布
集群容錯
網路通信
B. java分布開發bbo問題
並不是非要啟動tomcat,只是bbo更好用在支持spring的容器里,裸的應用也可以啟動。而且用bbo的場合基本都是需要分布式的增刪改查系統,所以tomcat容器也可以用。
C. 如何使用bbo 實現微服務集群
一個高內聚版本,所有功能部署在一起。數據訪問框架(orm)成為關鍵。這個架構很少被人使用,幾乎接近滅絕了吧。
優點:成本低,適合功能少又簡單 缺點:很多,比如無法適應高流量,二次開發難,部署成本高
D. 如何開發基於Dubbo RPC的分布式服務
什麼是Dubbo?
Dubbo[]是一個分布式服務框架,致力於提供高性能和透明化的RPC遠程服務調用方案,以及SOA服務治理方案。
其核心部分包含:
遠程通訊: 提供對多種基於長連接的NIO框架抽象封裝,包括多種線程模型,序列化,以及「請求-響應」模式的信息交換方式。
集群容錯: 提供基於介面方法的透明遠程過程調用,包括多協議支持,以及軟負載均衡,失敗容錯,地址路由,動態配置等集群支持。
自動發現: 基於注冊中心目錄服務,使服務消費方能動態的查找服務提供方,使地址透明,使服務提供方可以平滑增加或減少機器。
Dubbo能做什麼?
透明化的遠程方法調用,就像調用本地方法一樣調用遠程方法,只需簡單配置,沒有任何API侵入。
軟負載均衡及容錯機制,可在內網替代F5等硬體負載均衡器,降低成本,減少單點。
服務自動注冊與發現,不再需要寫死服務提供方地址,注冊中心基於介面名查詢服務提供者的IP地址,並且能夠平滑添加或刪除服務提供者。
想了解跟多關於Dubbo的信息,請查看:http://alibaba.github.io/bbo-doc-static/Home-zh.htm
在Crystal框架下,如何開發基於Dubbo RPC的服務?
第一步:定義介面
創建介面Jar項目,如:test-bbo-service-api;
創建介面類和介面方法,和通常的介面定義沒有什麼區別,如:
public interface TestService {
/**
*
* @param a
* @return
*/
public String test(String a);
}
第二步:實現並發布服務
創建服務實現項目,如:test-bbo-service-impl;
引入介面項目(test-bbo-service-api)、Crystal框架bbo服務支持包(crystal-remote-server-bbo),如:
<dependency>
<groupId>com.gsoft.test</groupId>
<artifactId>test-bbo-service-api</artifactId>
</dependency>
<dependency>
<groupId>com.gsoft.crystal</groupId>
<artifactId>crystal-remote-server-bbo</artifactId>
</dependency>
實現服務介面,如:
@Service
public class TestServiceImpl implements TestService {
@Value("${crystal.application.name}")
private String name;
/*
* (non-Javadoc)
*
* @see com.gsoft.test.bbo.TestService#test(java.lang.String)
*/
@Override
public String test(String a) {
return "Hello, " + a + "! " + " I'm " + name + " " + System.getenv("LOGONSERVER") + ".";
}
}
在實現類上添加註解@Service,此處Service為bbo服務的聲明註解com.alibaba.bbo.config.annotation.Service,到此,基於Dubbo發布的服務已經開發並發布完成。
E. bbo+zookeeper項目選什麼樣的阿里雲伺服器一台伺服器夠嗎
分布式的不建議使用一台伺服器,可以用多台阿里雲伺服器,如果預算有限一台伺服器也是可以的。伺服器的配置有高低,不能一概而論夠不夠用,可以阿里雲查看詳情網頁鏈接