基于 Zookeeper、Dubbo 构建互联网分布式基础架构(3)|学习笔记

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: 快速学习基于 Zookeeper、Dubbo 构建互联网分布式基础架构(3)

开发者学堂课程【基于 Zookeeper、Dubbo 构建互联网分布式基础架构基于 Zookeeper、Dubbo 构建互联网分布式基础架构(3) 】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/635/detail/10164


基于 Zookeeper、Dubbo 构建互联网分布式基础架构(3)

 

目录:

一.面向接口编程

二.插件

三.测试

四.添加一个依赖

五.Spring.MVC.xml

六.Spring.MVC.xml 相关参数

七.运行测试

 

一、面向接口编程

<!--扫描注解-->

<context:component-scan base-package-"com.qianfeng"/>

<!--使用dubbo的另外一个原因,可以和spring无缝整合-->

<!--目的:找到注册中心,告诉它我是谁,我的端口是多少

<!--配置别名,目的是在后台可以看到这个服务的别名,好区分到底是谁,这个参数可以随便写,但是最好是通俗易懂-->

<dubbo:application name-"test1"/>
<!--2配置注册中心
address 注册中心地址 ,protocol 指的是注册中心的协议格式
<dubbo:registry address="192.168.3.224:2181"protocol-"zookeeper"/>

告诉注册中心我是谁
interfaceftan代表的就是类型
ref代表的就是到底具体发布哪个服务
timeout连接超时时间<dubbo:service interface-"com.gianfeng.testduboo.TestService"ref=" testServiceImpl"timeout="60000"/>

<!--配置我的端口,因为消费者要想连接我们,必须得通过我们的ip和端口进行访问,我们在连接注册中心的时候注册中心就知道了我们的ip,但是你这个服务的端口并不知道,所以需要设置端口.端口可以随便写,但是不能被其他占用,一个dubbo对外发布的时候必须独占一个端口

dubbo:protocol name="dubbo port=12345"
</beans>


二.插件(指定不同 tomcat)

<build>

<plugins>

<plugin>

<groupId>org.apache.tomcat.maven</groupId>

<artifactId>tomcat7-maven-plugin</artifactId>

<version>2.2</version>

<configuration>
<port>9000</port>

<path>/</path>
</configurat ion>
</plugin>
</plugins>
</build>

</project>


三.测试:

访问192.168.3.224:8080/dubbo,用户名与密码均为root,访问成功进入页面显示为com.qianfong.tostcuboo.TestService,提供者名称为192.168.3.84:12345,但目前没有使用者.


四.添加一个依赖

<dependency>

<groupId-org.sLf4j</groupId>

<arifactodstf4j-ai/artifactId>

<version>1.7.25</version»
</dependency>

 

五.Spring.MVC.xml

<?xml version-"1.0"encoding-"UTF-8"?>
<beans xmlns "http:1/ww,springfranework.org/schema/beans"
xmlns:xsi-"http://ww.v3.org/2001/XMLSchema-instance"
xmlns:nvç-"http:llww.springframework.org/schema/nyc"
xmlns:dubbo-"http://code,dlibabatech,com/5chema/dubbo "
xmlns:context="http://ww.springframework.org/schema/context"
xsi:schemaLocation-"http:/Www.5pring franework.org/schema/evc

http://ww.springframework.org/schema/mvcsrhttp://www,springframework.org/schena/beans 

http://ww.springfranework,org/schema/beans/spring-beans-4.3

http://ww,spring framework,org/schema/context http://www.springt framework.org/schema context/spring-contex

http://code.alibabatech,con/schema/dubbo

http://code.alibabatech,com/schema/dubbo/dubbo.xsd">
<cantext:component-scan base -package -"com.g1anfeng"/>
<!查找远程服务,找到对应的注册中心告诉它我需要个什么类型的服务

<1配置我是谁-->
<dubbo:application name"xiaofeizhe/>
<2配置注册中心-->
<dubbo:registry address="192.168.3.224.2181"protocol-"zookeeper"/>
<3告诉他我要什么-->
<dubbo:reference interface="con,uiantengLestdubog.TestService"id=" testService"/>

</beans>


六.spring.MVC 相关参数

web-app xmlns-"http:/7xmlns.cp.org/xmL/ns/)avace"

xmlns:xs="http://ww-w3,rg/2001/XMLSchema-instance"

xs1:schemaLocation-"http://xmlns.cp.org/xml/ns/avaee

http://xmlns.jcp.org/xml/ns/javaee/web app_3.1.xsd"

version="3.1"

metadata-complete-"trua"s

<servlet>

<servlet-name>springmvcservlet</servlet-name>

<servlet-class>org.springframework.web.servlet DispatcherServlet

</servlet-class><init-param
<param-name>contextConfigLocation</param-name>
<param-value>classpath:Spring-HVc.xml</param-value>
<1init-param>
<!-启动项目的时候就创建 servlet 的对象,这个参数必须在后面出现<load-on-startup></load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springmvcservlet</servlet-name>
<url-pattern>*.actionk/url-pattern>
</servlet-mapping>
</web-app>

 

七、运行测试

运行结果为有一个 zookeeper 没有连接上,注意不要在开热点的情况下运行,容易断开无连接。

成功则显示Successed conmect to server/192.168.3.84:12345 from NettycLient.192.168.3.84 using dubbo version 2.0.1.channel is NettyChannel.channele 11d: 0x3600898c,/192.168.384:49969 D/192.168.3.84:12345.dubbo version:2.0.1,current host: 192.168.3.84.DNFO AbstractCLlent:91.

image.gif

修改代码为

@Resource
private TestService
@RequestMapping"/getData" )
@ResponseBody
public String getData(String name)
Stringata = serv1ce.getData(name);

return data;

成功访问显示为

image.gif

相关实践学习
基于MSE实现微服务的全链路灰度
通过本场景的实验操作,您将了解并实现在线业务的微服务全链路灰度能力。
相关文章
|
13天前
|
监控 负载均衡 Cloud Native
ZooKeeper分布式协调服务详解:面试经验与必备知识点解析
【4月更文挑战第9天】本文深入剖析ZooKeeper分布式协调服务原理,涵盖核心概念如Server、Client、ZNode、ACL、Watcher,以及ZAB协议在一致性、会话管理、Leader选举中的作用。讨论ZooKeeper数据模型、操作、会话管理、集群部署与管理、性能调优和监控。同时,文章探讨了ZooKeeper在分布式锁、队列、服务注册与发现等场景的应用,并在面试方面分析了与其它服务的区别、实战挑战及解决方案。附带Java客户端实现分布式锁的代码示例,助力提升面试表现。
30 2
|
3月前
|
消息中间件 Java 网络安全
JAVAEE分布式技术之Zookeeper的第一次课
JAVAEE分布式技术之Zookeeper的第一次课
70 0
|
1月前
|
监控 NoSQL Java
Zookeeper分布式锁
Zookeeper分布式锁
90 1
|
3月前
|
监控 Dubbo Java
深入理解Zookeeper系列-2.Zookeeper基本使用和分布式锁原理
深入理解Zookeeper系列-2.Zookeeper基本使用和分布式锁原理
61 0
|
3月前
|
NoSQL 中间件 API
分布式锁【数据库乐观锁实现的分布式锁、Zookeeper分布式锁原理、Redis实现的分布式锁】(三)-全面详解(学习总结---从入门到深化)(下)
分布式锁【数据库乐观锁实现的分布式锁、Zookeeper分布式锁原理、Redis实现的分布式锁】(三)-全面详解(学习总结---从入门到深化)
82 2
|
3月前
|
NoSQL Java API
分布式锁【数据库乐观锁实现的分布式锁、Zookeeper分布式锁原理、Redis实现的分布式锁】(三)-全面详解(学习总结---从入门到深化)(上)
分布式锁【数据库乐观锁实现的分布式锁、Zookeeper分布式锁原理、Redis实现的分布式锁】(三)-全面详解(学习总结---从入门到深化)
73 0
|
2月前
|
Java Linux Spring
Zookeeper实现分布式服务配置中心
Zookeeper实现分布式服务配置中心
48 0
|
2月前
|
存储 分布式计算 Hadoop
ZooKeeper初探:分布式世界的守护者
ZooKeeper初探:分布式世界的守护者
64 0
|
2月前
|
NoSQL Java API
分布式锁【数据库乐观锁实现的分布式锁、Zookeeper分布式锁原理、Redis实现的分布式锁】(三)-全面详解(学习总结---从入门到深化)
分布式锁【数据库乐观锁实现的分布式锁、Zookeeper分布式锁原理、Redis实现的分布式锁】(三)-全面详解(学习总结---从入门到深化)
298 0
|
3月前
|
监控 前端开发 Java
JAVAEE分布式技术之Zookeeper技术
JAVAEE分布式技术之Zookeeper技术
16 0
JAVAEE分布式技术之Zookeeper技术

热门文章

最新文章