今日内容
- 私服(了解)
- dubbo
- zookeeper安装
- 入门案例
- 高级内容
1,私服
1.1 私服启动
nexus /run nexus
1.2 仓库分类
宿主仓库 : 我们自己开发的资源、第三方非开源
代理仓库 : 和中央仓库中的一样
仓库组 : 管理
1.3 仓库操作
- 创建
- 将我们创建的仓库放在仓库组中
- 上传组件(jar包)
1.4 本地仓库访问私服的配置
在settings.xml配置文件中找servers标签,在标签的内部添加如下内容:
<server>
<id>heima-release</id>
<username>admin</username>
<password>admin</password>
</server>
<server>
<id>heima-snapshots</id>
<username>admin</username>
<password>admin</password>
</server>
在settings.xml配置文件中找mirrors标签,在标签的内部添加如下内容:
<mirror>
<id>nexus-heima</id>
<mirrorOf>*</mirrorOf>
<url>http://localhost:8081/repository/maven-public/</url>
</mirror>
1.5 在idea中的项目的pom.xml文件
<distributionManagement>
<repository>
<id>heima-release</id>
<url>http://localhost:8081/repository/heima-release/</url>
</repository>
<snapshotRepository>
<id>heima-snapshots</id>
<url>http://localhost:8081/repository/heima-snapshots/</url>
</snapshotRepository>
</distributionManagement>
2,dubbo(重点掌握)
2.1 概述
apache高效轻量级rpc的框架。
2.2 架构
dubbo要想正常运行,必须保证 服务提供者、服务消费者、注册中心。
服务提供者和服务消费者的代码有我们开发。
2.3 入门案例
2.3.1 服务提供者
service工程就是服务提供者工程。该工程为web工程。
-
引入dubbo的坐标
<!--Dubbo的起步依赖,版本2.7之后统一为rg.apache.dubb --> <dependency> <groupId>org.apache.dubbo</groupId> <artifactId>dubbo</artifactId> <version>2.7.4.1</version> </dependency> <!--ZooKeeper客户端实现 --> <dependency> <groupId>org.apache.curator</groupId> <artifactId>curator-framework</artifactId> <version>4.0.0</version> </dependency> <!--ZooKeeper客户端实现 --> <dependency> <groupId>org.apache.curator</groupId> <artifactId>curator-recipes</artifactId> <version>4.0.0</version> </dependency> <dependency> <groupId>org.apache.zookeeper</groupId> <artifactId>zookeeper</artifactId> <version>3.4.9</version> </dependency>
-
配置
在spring的配置文件中进行配置(applicationContext.xml)
<!--dubbo的配置--> <!--1.配置项目的名称,唯一--> <dubbo:application name="dubbo-service"/> <!--2.配置注册中心的地址--> <!--<dubbo:registry address="zookeeper://192.168.149.135:2181"/>--> <dubbo:registry address="zookeeper://localhost:2181"/> <!--3.配置dubbo包扫描--> <dubbo:annotation package="com.itheima.service.impl" />
-
在web.xml配置文件中进行配置
<!-- spring --> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath*:spring/applicationContext*.xml</param-value> </context-param> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener>
-
在service类上添加@Service注解
@Service注解是dubbo提供的
@Service//将这个类提供的方法(服务)对外发布。将访问的地址 ip,端口,路径注册到注册中心中 public class UserServiceImpl implements UserService { public String sayHello() { return "hello dubbo hello!~"; } }
2.3.2 服务消费方
-
引入jar包的坐标
<!--Dubbo的起步依赖,版本2.7之后统一为rg.apache.dubb --> <dependency> <groupId>org.apache.dubbo</groupId> <artifactId>dubbo</artifactId> <version>2.7.4.1</version> </dependency> <!--ZooKeeper客户端实现 --> <dependency> <groupId>org.apache.curator</groupId> <artifactId>curator-framework</artifactId> <version>4.0.0</version> </dependency> <!--ZooKeeper客户端实现 --> <dependency> <groupId>org.apache.curator</groupId> <artifactId>curator-recipes</artifactId> <version>4.0.0</version> </dependency> <dependency> <groupId>org.apache.zookeeper</groupId> <artifactId>zookeeper</artifactId> <version>3.4.9</version> </dependency>
-
springmvc的配置文件
<!--dubbo的配置--> <!--1.配置项目的名称,唯一--> <dubbo:application name="dubbo-web" > <dubbo:parameter key="qos.port" value="33333"/> </dubbo:application> <!--2.配置注册中心的地址--> <!-- <dubbo:registry address="zookeeper://192.168.149.135:2181"/>--> <dubbo:registry address="zookeeper://localhost:2181"/> <!--3.配置dubbo包扫描--> <dubbo:annotation package="com.itheima.controller" />
-
依赖注入
@RestController @RequestMapping("/user") public class UserController { //注入Service //@Autowired//本地注入 /* 1. 从zookeeper注册中心获取userService的访问url 2. 进行远程调用RPC 3. 将结果封装为一个代理对象。给变量赋值 */ @Reference//远程注入 private UserService userService; @RequestMapping("/sayHello") public String sayHello(){ return userService.sayHello(); } }
注意:
将service接口提取成一个新的模块。service工程依赖该模块,controller工程依赖该模块。