- 集中式应用就是:在一个应用中包含了应用运行的所有需要的资源。
-
分布式的应用分成客户端和服务端,客户端的controller调用服务端的service是通过网络传输来调用。
这种通过网络在不了解底层协议情况下TCP/UDP用controller像调用本地服务一样调用远程的service的技术叫做RPC技术。远程过程调用协议。RPC技术的底层原理:就是对象的序列化、反序列化以及序列化后数据的传输。 -
ZooKeeper是分布式应用程序协调服务,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。服务端服务的注册和客户端服务的调用。
-
1,解压到无中文空格的目录中
2,修改配置文件
zoo_sample.cfg复制修改成zoo.cfg(默认找它)
# 内存数据的备份地址
新建data目录, 把目录放在dataDir后(不能有中文)
dataDir=F://zookeeper-3.4.5//data
# 存放日志地址
新建log目录, 把目录放在dataLogDir后(不能有中文)
dataLogDir=F://zookeeper-3.4.5//log
3,双击bin目录下的zkServer.cmd,运行zookeeper
clientPort 注册中心对外提供的端口(给B/S用) -
(springboot 提供的spring-boot-starter-dubbo 只支持注解方式,如果要使用xml方式只能自己导入dubbo.jar包)
导入dubbo相关依赖
<!-- dubbo -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>dubbo</artifactId>
<version>2.5.3</version>
<exclusions>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring</artifactId>
</exclusion>
</exclusions>
</dependency>
<!--zookeeper-->
<dependency>
<groupId>com.101tec</groupId>
<artifactId>zkclient</artifactId>
<version>0.2</version>
</dependency>
<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
<version>3.4.5</version>
</dependency> -
-
客户端直接连接服务端,当前用户目录下添加dubbo-resolve.properties文件,该文件内容是服务列表。
register=”false”去用户目录下去找dubbo-resolve.properties文件 -
缓存服务列表:首次连接服务端后,会拉取存在zookeeper中的服务列表保存到客户端中,叫dubbo.cache自动生成,可自定义。如果dubbo-resolve.properties 文件中有此服务的地址则不会再放入缓存,配<dubbo:register file="${user.home}/dubbo.cache"
-
一,shop-parent
|—shop-api-goods(商品系统的api,不需继承parent)
|—shop-server-goods(商品系统)
|—shop-api-order(订单系统的api 不需继承parent)
|—shop-server-order(订单系统)
|—shop-client-mgrsite(后台管理系统)
|—shop-clinet-website(移动端接口)二、添加项目相关依赖
1、在parent项目添加springboot项目 C/B子项目继承parent , C/B都需要 启动单独运行在自己的服务器上(内嵌Tomcat)
2、api包让parent管理,service和client依赖, api不继承parent只作为parent子模块,
3、在parent添加springboot-web依赖
4、在parent添加连接数据库的相关依赖 连接jar
5、在parent里添加dubbo依赖 ,C/B都需要
6、创建springboot应用的启动类三,各个服务service系统整合mybatis,service层调数据库
1、在application.properties配置文件中添加如下配置信息:
#数据库连接地址
spring.datasource.url=jdbc:mysql://localhost:3306/coding_shop
#MySQL驱动
spring.datasource.driverClassName=com.mysql.jdbc.Driver
#数据库账号
spring.datasource.username=root
#数据库密码
spring.datasource.password=root
#阿里巴巴Druid连接池
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
#mybatis的mapper.xml配置文件路径
mybatis.mapperLocations=classpath:mapper/*.xml
#mybatis的mapper.xml配置文件domain对象别名扫描路径
mybatis.typeAliasesPackage=cn.wolfcode.shop.api.domain2、各个服务,在启动类添加如下注解:
//扫描mybatis接口的注解
service里贴
@MapperScan("cn.wolfcode.server.goods.mapper")生成包下接口代理实现类
//开启事务管理
@EnableTransactionManagement四、各个服务系统整合mybatis-generator插件
1、在各个服务service系统的pom文件中添加mybatis-generator插件
2、在resources目录下添加generatorConfig.xml文件,不能夸项目生成domain所以现在service生成在考到api里 改Mapper domain 路径
五、各个服务系统整合dubbo发布服务程序 xml方式注解方式 springboot属性配置方式
1、在application.properties配置文件中添加如下配置信息:
#dubbo服务名
spring.dubbo.application.name=shop-server
#注册中中心
spring.dubbo.registry.address=zookeeper://127.0.0.1:2181
#spring.dubbo.registry.register=true
#dubbo的RPC协议
spring.dubbo.protocol.name=dubbo
#dubbo的RPC端口
spring.dubbo.protocol.port=20880
#发布服务扫描的路径
spring.dubbo.scan=com.xmg.shop.server.service.impl六、发布一个服务(以发布商品服务为例)
1、使用mybatis-genenrator插件生成domain类、mapper接口、mapper.xml文件
2、把domain类剪切到对应的api项目中
3、在对应的api项目中创建一个服务接口
4、创建服务实现类
在该实现类上贴上@Service注解,贴上了该注解就代表了该类需要发布服务
注意:
1、该注解是com.alibaba.dubbo.config.annotation包下的注解不是spring的注解(整合了spring的@service)
2、贴上该注解的服务实现类必须要在上面的配置项spring.dubbo.scan=xxx能够扫描到的路径下
5、启动springboot应用七、各个客户端整合dubbo引用服务程序
1、在application.properties配置文件中添加如下配置信息:
#dubbo应用名
spring.dubbo.application.name=shop-client-mgrsite
#连接的注册中心地址
spring.dubbo.registry.address=zookeeper://127.0.0.1:2181
#引用服务扫描的路径
spring.dubbo.scan=cn.wolfcode.client.mgrsite.controller八、引用服务(以商品controller为例)
1、创建商品的controller调用商品的服务
在该controller需要注入服务的依赖上贴上@Refrence注解,贴上该注解就可以自动的把需要引用的服务注入进来在client 的启动类上没有引入service的properties文件
-
服务监控中心使用步骤:
部署方式①service.xml里配置项目路径②把可运行的war包放到Tomcat的webapp目录下(不需上下文路径可直接放到root目录下,要把war解压,不然把war包名当做上下文路径[或者在webapp下新建test把war解压到test上下文路径就是test])
1,下载服务监控中心
监控部署在服务器的服务状态 要读取注册中心的服务
2,修改配置文件
(1,修改webapps/root/WEB-INF/dubbo.properties文件的zookeeper地址
(2,启动tomcat
3,访问服务监控中心
访问:http://localhost:8099
账号和密码都是root
dubbo
最新推荐文章于 2024-04-14 12:30:26 发布