springboot+dubbo+zookeeper微服務實踐demo
微服務化越來越火,實際上是應網際網路時代而生的,微服務化帶來的不僅是效能上的提升,更帶來了研發組織的更加便利,協作更加輕鬆,團隊效能更高。
當然不能為了技術而技術,我們需要切合實際的對業務進行劃分,降低模組間的耦合度,在加上容器時代的便利性,讓我們開發,部署更加便利。
關於微服務的好處和演化請自行百度,這裡給一個簡單的demo,是基礎的實現“微服務dubbo整合”,本地windows環境演示,記錄以便不時回顧,也方便初學者。
1.本地安裝配置zookeeper
配置:
複製zoo_sample.cfg改名為zoo.cfg修改其中的:
2.idea中建立兩個專案 :client和server,分別代表消費端和生產端
具體功能自己定了,這個demo中主要是實現了一個簡單的資料查詢功能,模擬現實中的微服務呼叫場景。
3.重點看一下生產端和消費短的dubbo配置檔案:
dubbo-provider.xml
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="" xmlns:xsi="" xmlns:dubbo="" xsi:schemaLocation=" /spring-beans.xsd /dubbo.xsd"> <!-- 服務應用名稱 --> <dubbo:application name="provider"> <dubbo:parameter key="qos.enable" value="true"/> <dubbo:parameter key="qos.accept.foreign.ip" value="false"/> <dubbo:parameter key="qos.port" value="33333"/> </dubbo:application> <!-- 使用zookeeper做為註冊中心 --> <dubbo:registry protocol="zookeeper" address="zookeeper://192.168.94.1:2181"/> <!-- 用dubbo協議在20880埠暴露服務,預設:20880 --> <dubbo:protocol name="dubbo" port="20881" /> <!-- 預設配置 --> <dubbo:provider timeout="30000" threadpool="fixed" threads="100" accepts="1000" id="payload" payload="11557050"/> <!-- ref中的值要跟服務實現類中的@Server的值一致 --> <dubbo:service interface="com.example.dubbo.service.StockPurchaseService" ref="stockPurchaseService"></dubbo:service> <!--<bean id="stockPurchaseService" clacom.example.dubbover.service.impl.StockPurchaseServiceImpl"/>--></beans>
dubbo-consumer.xml
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="" xmlns:xsi="" xmlns:dubbo="" xsi:schemaLocation=" /spring-beans.xsd /dubbo.xsd"> <!-- 服務應用名稱 --> <dubbo:application name="consumer"> <dubbo:parameter key="qos.enable" value="true"/> <dubbo:parameter key="qos.accept.foreign.ip" value="false"/> <dubbo:parameter key="qos.port" value="33334"/> </dubbo:application> <!-- 使用zookeeper做為註冊中心 --> <dubbo:registry protocol="zookeeper" address="zookeeper://192.168.94.1:2181"/> <!-- 用dubbo協議在20880埠暴露服務,預設:20880 --> <dubbo:protocol name="dubbo" port="20881" /> <!-- 預設配置 --> <dubbo:consumer timeout="1800000" retries="0"/> <!-- ref中的值要跟服務實現類中的@Server的值一致 --> <dubbo:reference interface="com.example.dubbo.service.StockPurchaseService" id="stockPurchaseService" check="false"/> <!--<bean id="stockPurchaseService" class="com.example.server.service.impl.StockPurchaseServiceImpl"/>--></beans>
重點關注:
生產和消費端的配置的介面路徑要保持一致,ref中的值要跟服務實現類中的@Service的值一致
4.注意:使用Dubbo進行資料傳遞時,需讓作為訊息傳遞的類序列化。
5.測試地址:
一個簡單的例子,最後提供原始碼在下面:(包含client,server以及資料庫指令碼)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/1343/viewspace-2819651/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Kubernetes 微服務最佳實踐微服務
- 『Microservices & Nameko』Python 微服務實踐ROSPython微服務
- go-kit 微服務實踐Go微服務
- 微服務架構最佳實踐微服務架構
- 微服務系列實踐 .NET CORE微服務
- Serverless 下的微服務實踐Server微服務
- .NET微服務最佳實踐 eShopOnContainers微服務AI
- 設計微服務的最佳實踐微服務
- SpringBoot微服務安全最佳實踐 - piotrminkowskiSpring Boot微服務
- SpringCloud 微服務最佳開發實踐SpringGCCloud微服務
- 微服務實踐手冊-服務的拆分策略微服務
- 微服務實踐之分散式定時任務微服務分散式
- SpringBoot整合gRPC微服務工程搭建實踐Spring BootRPC微服務
- 消費者雲CSE微服務實踐微服務
- 微服務架構十條最佳實踐微服務架構
- vivo 海量微服務架構最新實踐微服務架構
- 有效的微服務:10 個最佳實踐微服務
- gRPC-微服務間通訊實踐RPC微服務
- 同程旅遊微服務最佳實踐微服務
- 微服務快取原理與最佳實踐微服務快取
- ChaosBlade x SkyWalking 微服務高可用實踐微服務
- 用友微服務事務一致性實踐微服務
- 將微服務部署到 Azure Kubernetes 服務 (AKS) 實踐微服務
- 微服務訪問安全設計方案實踐微服務
- 測試微服務的4個最佳實踐微服務
- 微服務專案實踐之中建專案微服務
- 微服務架構知識及工程實踐微服務架構
- 微服務實踐分享(2)api閘道器微服務API
- 微服務的【資料庫管理】最佳實踐微服務資料庫
- 基於Golang的微服務——Micro實踐(一)Golang微服務
- 基於Golang的微服務——Micro實踐(二)Golang微服務
- 菜鳥 CPaaS 平臺微服務治理實踐微服務
- 阿里云云原生微服務可觀測實踐阿里微服務
- 微服務閘道器Gateway實踐總結微服務Gateway
- Go微服務實踐之增刪改查Go微服務
- 微服務治理平臺產品化實踐與應用微服務化解析微服務
- 教你玩轉微服務--基於DDD的微服務架構落地實踐之路微服務架構
- 簡單實現微服務架構的實踐分享微服務架構