jdk1.8+zookeeper+dubbo+spring+springmvc基础环境搭建
来源:互联网 发布:大学教授评定条件知乎 编辑:程序博客网 时间:2024/05/18 00:38
为了实”微服”,用了dubbo管理各个生产者,消费者之间的关系,使服务之间透明。主要关系:
图凑活看吧,个人理解大概意思是这样子。
注解:
zookeeper负责rpc服务之间的通信,
dubbo负责系统之间的服务的管理(github下载连接),
consumer服务消费者,消费者一般是是web工程(负责接收htttp等请求,可以理解为带有controller层),
provider为生产者,一般是业务,为service层,
所以上面流程对应途中的顺序是
1,dubbo注册到zookeeper为通信做准备,
2,服务生产者暴露服务接口到dubbo,
3,服务消费者注册需要的服务到dubbo,
4,消费者通过获取的到的对应的服务接口调用对应的servcie接口,
环境搭建:
下载和系统对应的jdk,zookeeper,dubbo-admin(我能提供2.5.4版本的);
jdk安装不在说,
一,zookeeper安装win7直接点击.exe按照提示就行,mac安装可以用:
$brew install zookeeper==> Downloading https://homebrew.bintray.com/bottles/zookeeper-3.4.6_1.mavericks.bottle.2.tar.gz######################################################################## 100.0%==> Pouring zookeeper-3.4.6_1.mavericks.bottle.2.tar.gz==> CaveatsTo have launchd start zookeeper at login: ln -sfv /usr/local/opt/zookeeper/*.plist ~/Library/LaunchAgentsThen to load zookeeper now: launchctl load ~/Library/LaunchAgents/homebrew.mxcl.zookeeper.plistOr, if you don't want/need launchctl, you can just run: zkServer start==> Summary�� /usr/local/Cellar/zookeeper/3.4.6_1: 207 files, 13M
安装完成可以从下面目录看下配置文件(win环境下zoo.cfg是没有安装之后,所以可以把zoo_sample.cfg复制从新命名为zoo.cfg,原因是zk启动的时候需要加载)。
ls /usr/local/etc/zookeeperdefaults log4j.properties zoo.cfg zoo_sample.cfg
zookeeper服务启动
$ zkServer startJMX enabled by defaultUsing config: /usr/local/etc/zookeeper/zoo.cfgStarting zookeeper ... STARTED
可以用zk客户端看是否可连接:
$zkCliConnecting to localhost:2181Welcome to ZooKeeper!JLine support is enabled[zk: localhost:2181(CONNECTING) 0] [zk: localhost:2181(CONNECTING) 0] WATCHER::WatchedEvent state:SyncConnected type:None path:null[zk: localhost:2181(CONNECTED) 0] ls[zk: localhost:2181(CONNECTED) 1] ls /
二,dubbo-admin安装:
打开tomcat找到webapps删除默认的ROOT把下载好的复制到这目录,找到WEB—INF文件,可以看到有个dubbo.properties文件,打开之后看到
dubbo.registry.address=zookeeper://127.0.0.1:2181dubbo.admin.root.password=rootdubbo.admin.guest.password=guest
第一行识需要注册到的zookeeper服务地址,填写zookeeper安装的ip替换127.0.0.1,如果在本地(zk和dubbo在一台机器上)安装就不用替换了,下面的用户名和密码,可以自己修改。
三,启动tomcat;访问localhost:8080会提示输入密码,输入上面的用户密码就可以看到画面,证明dubbo-admin安装注册成功:
四,生产者和消费者项目创建,
可以为maven或者一般的普通项目,只要能把需要的jar导入就行,
除了spring和springmvc需要jar之外,几个重要jar分别是
//dubbo--jar,<dependency> <groupId>com.alibaba</groupId> <artifactId>dubbo</artifactId> <version>2.5.3</version> <exclusions> <exclusion> //为了解决和spring-jar的冲突 <groupId>org.springframework</groupId> <artifactId>spring</artifactId> </exclusion> </exclusions> </dependency> //zookeeper--jar <dependency> <groupId>org.apache.zookeeper</groupId> <artifactId>zookeeper</artifactId> <version>3.4.6</version> </dependency> //zookeeper客户端jar, <dependency> <groupId>com.github.sgroschupf</groupId> <artifactId>zkclient</artifactId> <version>0.1</version> </dependency>
生产项目:
看到没有controller,当然这里我把dao也没写呢,重点在servcie和servcieImpl,
配置文件在spring文件中配置:
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:p="http://www.springframework.org/schema/p" xmlns:dubbo="http://code.alibabatech.com/schema/dubbo" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.1.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.1.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.1.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.1.xsd http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd"> <mvc:annotation-driven /> <!-- 对包中的所有类进行扫描,以完成Bean创建和自动依赖注入的功能 需要更改 --> <context:component-scan base-package="com.java.spring" /> <!-- 提供方应用名称信息,这个相当于起一个名字,我们dubbo管理页面比较清晰是哪个应用暴露出来的 --> <dubbo:application name="dubbo_provider"></dubbo:application> <!-- 使用zookeeper注册中心暴露服务地址 --> <dubbo:registry address="zookeeper://127.0.0.1:2181" check="false" subscribe="false" register="true"></dubbo:registry> <!-- <dubbo:registry protocol="zookeeper" address="127.0.0.1:2181" /> --> <dubbo:protocol accesslog="true" name="dubbo" port="20880" /> //注:如果要做负载均衡就要更改20880这个端口,每个应用的应该为唯一的,并且要修服务名字:如dubbo_provider为dubbo_provider_1; <!-- 要暴露的服务接口 --> <dubbo:service interface="com.java.spring.provider.service.UserService" ref="userServiceImpl" /> </beans>
接口和实现类代码分别为:
UserService接口
public interface UserService { public String registerUser(String param); public String resetPassword(User user); }
UserServiceImpl实现类
/** * @author 作者:zhaofq * @version 创建时间:2017年1月10日 下午2:13:25 类说明 */@Servicepublic class UserServiceImpl implements UserService { private static Logger loger = Logger.getLogger(UserServiceImpl.class.getName());// @Autowired// UserDao userDao; public String registerUser(String param) {// Message message = new Message(); System.out.println("hello--我是provider---------"+ param); return param; } /* (non-Javadoc) * @see com.java.spring.provider.service.UserService#restPassword(com.java.spring.provider.mudles.User) */ public String resetPassword(User user) { System.out.println("reset"+user.getIdNumber()); return "reset"+user.getIdNumber(); }}
消费者项目:
只有controller层,这个需要调用service接口,就需要吧生产者接口打包为jar,然后把jar引入这项目。就可以自动引入了。
controller的代码为:
import com.java.spring.provider.mudles.User;import com.java.spring.provider.service.UserService;/*** @ClassName: Controller* @Description: TODO(这里用一句话描述这个类的作用)* @author zhaofq* @date 2017年6月2日*/@Controllerpublic class UserController { @Autowired UserService userServiceImpl; @RequestMapping(value="/register") public @ResponseBody String userRegister(String param) { System.out.println("helllo\n"); User user = new User(); user.setIdNumber("999999"); HttpServletRequest param1= null;// userServiceImpl.registerUser(param); param = "hahahhah"; System.out.println(userServiceImpl.resetPassword(user)+"\n"); return userServiceImpl.registerUser(param); }}
从上面的引入包路径可看出是provider的接口,
配置文件也是本项目的:spring文件中;
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:p="http://www.springframework.org/schema/p" xmlns:dubbo="http://code.alibabatech.com/schema/dubbo" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.1.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.1.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.1.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.1.xsd http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd"> <mvc:annotation-driven /> <!-- 对包中的所有类进行扫描,以完成Bean创建和自动依赖注入的功能 需要更改 --> <context:component-scan base-package="com.java.spring.consumer" /> <!-- 消费方应用名,用于计算依赖关系,不是匹配条件,不要与提供方一样 --> <dubbo:application name="dubbo_consumer" /> <!-- 使用zookeeper注册中心暴露服务地址 --> <!-- <dubbo:registry address="zookeeper://127.0.0.1:2181" check="false"></dubbo:registry> --> <dubbo:registry protocol="zookeeper" address="127.0.0.1:2181"/> <!-- 生成远程服务代理,可以像使用本地bean一样使用demoService --> <dubbo:reference id="userServiceImpl" interface="com.java.spring.provider.service.UserService" />
至此配置代码都完成,先启动zookeeper,然后两个项目在在tomcat中启动,登陆dubbo-admin可以看到
访问:
http://localhost:8080/consumer/register
基本环境搭建完成;
- jdk1.8+zookeeper+dubbo+spring+springmvc基础环境搭建
- dubbo+zookeeper环境搭建
- dubbo+zookeeper环境搭建
- Dubbo+zookeeper环境搭建
- 搭建dubbo+zookeeper环境
- dubbo起步搭建Spring+SpringMVC+dubbo的开发环境
- dubbo+zookeeper+springmvc搭建实例教程
- dubbo+zookeeper+springmvc搭建实例教程
- dubbo+SpringMVC环境搭建
- SpringMVC + Spring + Mybatis+ Dubbo + Zookeeper
- dubbo+zookeeper+spring+springMVC+mybatis
- linux环境搭建dubbo+zookeeper
- 搭建 Dubbo、Zookeeper开发环境
- 搭建dubbo+zookeeper Linux环境
- 本地搭建dubbo+zookeeper环境
- dubbo+zookeeper+dubbo-admin环境的搭建
- spring+springMVC+mybatis +dubbo架构的开发环境搭建(一)
- spring+springMVC+mybatis +dubbo架构的开发环境搭建(二)
- Android RecyclerView滚动定位
- Ubuntu apt-get彻底卸载软件包
- IOS Cornerstone的使用方法
- EL和JSTL
- 管道
- jdk1.8+zookeeper+dubbo+spring+springmvc基础环境搭建
- android混淆
- Linux命令
- 时间
- Java 线程池(ThreadPoolExecutor)原理分析与使用 – 码农网
- cas 单点登录修改认证方式 jeesite
- tomcat 如何配置默认加载路径
- 使用JSP相关元素实现页面内容输出
- YV12 and NV12