double+zookeeper
dubbox是基于注解方式發布接口
dubbo核心部件:
provider:生產者, 暴露服務的提供方,可以通過jar或者容器的方式啟動服務
consumer:消費者,調用遠程服務的服務消費方。
registry: 注冊中心,服務注冊中心和發現中心
Monitor: 統計服務和調用次數,調用時間監控中心。(dubbo的控制臺頁面中可以顯示,目前只有一個簡單版本)
負載均衡機制:保證每臺機器請求量一致,平衡每臺機器的訪問量
springboot 整合dubbo+zookeeper 創建生產者項目,選擇Web MySql Mybatis創建消費者項目,選擇Web Thymeleaf生產者和消費者,實體類對象要一致、service接口要一致、除了上面指定jar包不一致,其他jar包要一致生產者和消費者項目中實體類對象必須實現序列化接口:implements Serializable生產者:
1.導入pom jar包<!--dubbo 依賴 --><dependency><groupId>com.alibaba.spring.boot</groupId><artifactId>dubbo-spring-boot-starter</artifactId><version>2.0.0</version></dependency><!-- zookeeper client依賴 --><dependency><groupId>com.101tec</groupId><artifactId>zkclient</artifactId><version>0.10</version></dependency>配置dubbo服務端生產者在application.properties中配置#配置dubbo服務提供者#服務名稱spring.dubbo.application.name=providerspring.dubbo.server=true#注冊中心地址spring.dubbo.registry.address=zookeeper://127.0.0.1:2181#dubbo 協議spring.dubbo.protocol.name=dubbospring.dubbo.protocol.port=20880配置本地zookeeper 在zookeeper/conf/zoo.cfg中配置數據目錄和日志目錄位置,注意目錄需要手動創 建#數據位置dataDir=D:\\zookeeper-3.3.6\\data#日志位置dataLogDir=D:\\zookeeper-3.3.6\\logs本地啟動zookeeper:在zookeeper/bin目錄下文件地址欄中輸入cmd,執行zkServer回車即可啟動zookeeper在service實現類上加上dubbo提供的Service注解//通過dubbo提供的Service注解將接口發布出去@Service(interfaceClass = UserService.class)@Component spring注入需要用到6.在application啟動類中加上開啟dubbo配置注解@EnableDubboConfiguration消費者:1.導入pom jar包<!--dubbo 依賴 --><dependency><groupId>com.alibaba.spring.boot</groupId><artifactId>dubbo-spring-boot-starter</artifactId><version>2.0.0</version></dependency><!-- zookeeper client依賴 --><dependency><groupId>com.101tec</groupId><artifactId>zkclient</artifactId><version>0.10</version></dependency>2.配置dubbo消費者#為防止和生產者端口號沖突server.port=8081#配置dubbo消費者spring.dubbo.application.name=consumer#配置注冊中心spring.dubbo.registry.address=zookeeper://127.0.0.1:2181#dubbo協議spring.dubbo.procotol.name=dubbospring.dubbo.procotol.port=20880#消費者啟動檢測生產者是否已啟動,當值為true時才會檢測,默認為truespring.dubbo.consumer.check=false#roundrobin輪詢機制#random #隨機機制#leastactive #最少活躍調用數機制spring.dubbo.reference.loadbalance=roundrobin3.在controller中通過dubbo提供的Reference注解引用接口@Referenceprivate UserService userService;在application啟動類中加上開啟dubbo配置注解@EnableDubboConfigurationapplication.properties所需配置:
修改端口號以免被占用:server.port=端口號
數據庫連接:ee
spring.datasource.url=jdbc:mysql://localhost:3306/ssh2_maven?useUnicode=true&characterEncoding=utf-8
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
#配置dubbo服務端生產者
#在application.properties中配置
#配置dubbo服務提供者
#服務名稱
spring.dubbo.application.name=provider
spring.dubbo.server=true
#注冊中心地址
spring.dubbo.registry.address=zookeeper://127.0.0.1:2181
#dubbo 協議
spring.dubbo.protocol.name=dubbo
spring.dubbo.protocol.port=20880
時間處理
#指定Date時間類型輸出格式為yyyy-MM-dd HH:mm:ss;
spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
#指定時區,解決8小時的時間差問題
spring.jackson.time-zone=GMT+8
消費者(consumer) 包結構:controller,model,service(只有接口)
StringbootConsumerApplication中需要繼承:extends WebMvcConfigurationSupport
重寫:
//這里配置靜態資源文件的路徑
@Override
protected void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/static/**").addResourceLocations(ResourceUtils.CLASSPATH_URL_PREFIX + “/static/”);
super.addResourceHandlers(registry);
}
在static里把css樣式 js…引入進去
application.properties中配置:
#為防止和生產者端口號沖突
server.port=8081
#配置dubbo消費者
spring.dubbo.application.name=consumer
#配置注冊中心
spring.dubbo.registry.address=zookeeper://127.0.0.1:2181
#dubbo協議
spring.dubbo.procotol.name=dubbo
spring.dubbo.procotol.port=20880
#消費者啟動檢測生產者是否已啟動,當值為true時才會檢測,默認為true
spring.dubbo.consumer.check=false
#roundrobin輪詢機制
#random #隨機機制
#leastactive #最少活躍調用數機制
spring.dubbo.reference.loadbalance=roundrobin
#thymeleaf配置
spring.thymeleaf.prefix=classpath:/templates/
spring.thymeleaf.mode=HTML5
spring.thymeleaf.encoding=UTF-8
spring.thymeleaf.servlet.content-type=text/html
spring.thymeleaf.cache=false
#指定Date時間類型輸出格式為yyyy-MM-dd HH:mm:ss;
spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
#指定時區,解決8小時的時間差問題
spring.jackson.time-zone=GMT+8
總結
以上是生活随笔為你收集整理的double+zookeeper的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 京东小程序 Taro 开发对比原生开发测
- 下一篇: 在vue中怎么写行内样式高_vue v-